第二章:硬件平台搭建——电源树设计、时钟树规划与Sensor硬件连接

各位同学,大家好。上一章我们聊了图像采集的整体架构,今天咱们来点硬核的——把板子搭起来。

硬件平台搭建,说白了就是三件事:供电、给时钟、连信号。这三件事要是没做好,后面调代码就是白费功夫。我见过太多项目,FPGA代码写得漂漂亮亮,一上板就冒烟,查到最后都是电源纹波太大或者时钟抖动超标。嗯,咱们今天就把这些坑一个个填上。

2.1 电源树设计——别让供电成为瓶颈

电源树设计,我个人的习惯是先算功耗,再选LDO还是DCDC,最后画电源树。顺序不能乱,否则后面改起来很痛苦。

2.1.1 功耗估算

FPGA的功耗主要来自三部分:核心电压(VCCINT)、IO电压(VCCO)和辅助电压(VCCAUX)。Sensor那边更简单,模拟供电(AVDD)、数字供电(DVDD)和IO供电(VDDIO)。

举个例子,我常用的Xilinx Artix-7系列,核心电压1.0V,电流大概2-3A。Sensor像OV5640,AVDD 2.8V/100mA,DVDD 1.5V/200mA,VDDIO 1.8V/50mA。加起来其实不大,但要注意启动瞬间的浪涌电流。

⚠️ 警告: 我曾经在一个项目里,FPGA核心电压用了1.0V/3A的LDO,结果上电瞬间电流冲到5A,LDO直接过温保护,板子反复重启。后来换成DCDC才解决。所以,核心供电建议用DCDC,效率高、电流大。Sensor那边电流小,用LDO更干净。

2.1.2 电源树结构

下面这张图是我常用的电源树结构,你们可以参考:

12V DC输入 第一级DCDC:12V → 3.3V / 5A DCDC:3.3V → 1.0V (FPGA核心) LDO:3.3V → 1.8V (FPGA IO) LDO:3.3V → 2.8V (Sensor AVDD) Sensor OV5640 FPGA Artix-7

这张图里,我用了两级电源架构。第一级DCDC把12V降到3.3V,第二级再分别转出1.0V、1.8V、2.8V。为什么这么设计?因为12V直接转1.0V压差太大,DCDC效率会很低,而且纹波不好控制。

💡 小技巧: 电源的上电时序也很重要。FPGA通常要求核心电压先上,IO电压后上。我习惯在DCDC的EN引脚上串RC延时,或者用电源监控芯片。别小看这个,我见过因为上电顺序反了,FPGA IO口锁死,整片板子废掉的情况。

2.2 时钟树规划——抖动的敌人

时钟是数字系统的脉搏。FPGA图像采集对时钟的要求尤其高,因为像素时钟直接决定了采样精度。

2.2.1 时钟源选择

我一般用有源晶振,频率稳定度在±25ppm以内。Sensor那边通常需要24MHz或27MHz的主时钟,FPGA这边可能需要50MHz或100MHz的系统时钟。

举个例子,OV5640的像素时钟最高可达96MHz,但实际用的时候,我建议先跑24MHz,调通了再往上提。为什么?因为高频时钟对PCB走线要求高,一旦反射或者串扰,图像就会出现条纹。

2.2.2 时钟分配

时钟分配有两种方式:

  • 独立晶振:Sensor和FPGA各用一个晶振,互不干扰。优点是设计简单,缺点是成本高、占面积。
  • FPGA输出时钟给Sensor:FPGA内部PLL生成时钟,通过IO口输出给Sensor。优点是灵活,缺点是FPGA的IO抖动可能比晶振大。

我个人更倾向独立晶振,尤其是做MIPI接口的时候。MIPI的时钟是差分对,对抖动极其敏感。我曾经试过用FPGA输出时钟给Sensor,结果MIPI眼图闭合,数据全是错的。后来换成独立晶振,问题立刻解决。

🔑 关键点: 时钟走线要短而直,远离电源和高速数据线。差分时钟要等长,误差控制在±5mil以内。这些是基本功,但很多人会忽略。

2.3 FPGA与Sensor的硬件连接——MIPI/LVDS/并行接口

终于到了最核心的部分。Sensor和FPGA怎么连?这取决于Sensor的输出接口类型。目前主流的有三种:MIPI、LVDS、并行接口。

2.3.1 MIPI接口

MIPI是手机摄像头的主流接口,特点是差分信号、低电压、高速。MIPI的物理层是D-PHY,包含一对时钟和一到四对数据线。

连接时要注意:

  • 阻抗匹配:差分阻抗100Ω,单端阻抗50Ω。PCB走线要严格控制。
  • 等长走线:同一组差分对内等长,不同组之间也要等长,误差±10mil。
  • AC耦合电容:MIPI信号需要串100nF电容,靠近发送端放置。

我画一个MIPI连接的示意图:

Sensor CLK_P CLK_N 100nF DATA0_P DATA0_N 100nF FPGA MIPI D-PHY输出 MIPI D-PHY输入
⚠️ 注意: MIPI的AC耦合电容不能省。我见过有人为了省成本去掉电容,结果MIPI链路的共模电压不对,数据全乱。另外,电容要选X7R或C0G材质,不要用Y5V,温度特性太差。

2.3.2 LVDS接口

LVDS和MIPI类似,也是差分信号,但电压摆幅更大(350mV vs 200mV),抗干扰能力更强。工业相机常用LVDS接口。

连接要点:

  • 终端电阻:在接收端加100Ω匹配电阻,靠近FPGA引脚放置。
  • 共模电压:LVDS的共模电压是1.2V,FPGA的LVDS输入需要支持这个范围。
  • 走线长度:LVDS可以走1米以上,但板内走线尽量控制在10cm以内。

2.3.3 并行接口

并行接口是最古老的,但也是最简单的。数据线、行同步、场同步、像素时钟,一根根连过去就行。

连接时要注意:

  • 数据线等长:所有数据线长度差控制在±50mil以内,否则数据会歪斜。
  • 时钟走线:像素时钟要单独走,不要和数据线并排太长距离,避免串扰。
  • IO电平匹配:Sensor输出可能是1.8V或2.8V,FPGA的IO bank要配置成对应的电平标准。
💡 经验之谈: 并行接口虽然简单,但调试起来最方便。用示波器一抓就能看到数据波形。MIPI和LVDS调试起来就麻烦多了,需要协议分析仪。所以,如果项目不急,我建议先用并行接口调通图像通路,再换成MIPI或LVDS。

2.4 实战检查清单

最后,我给大家列一个检查清单,上板前逐项确认:

检查项 要求 常见问题
电源电压 ±5%以内 DCDC反馈电阻焊错,电压偏高烧芯片
电源纹波 <50mVpp LDO输出电容太小,纹波过大导致图像噪点
时钟频率 ±100ppm 晶振负载电容不匹配,频率偏了
MIPI差分阻抗 100Ω ±10% PCB叠层设计不合理,阻抗偏差大
数据线等长 ±10mil 走线绕弯太多,长度差超标
上电时序 核心先于IO EN引脚没加延时,上电顺序反了

嗯,硬件平台搭建就讲到这里。记住一句话:硬件是基础,基础不牢,地动山摇。下一章咱们开始写FPGA代码,把Sensor的数据读进来。


可可精品资料库