
做硬件这些年HDMI接口是我见过看起来最好画、板子最常翻车的接口之一。很多工程师觉得HDMI不就是几对差分线嘛照着参考设计拉出来就行结果板子打样回来1080p勉强能亮一到4K就雪花、闪屏、甚至完全黑屏。今天不聊协议层那些乱七八糟的HDCP和EDID就聊PCB设计里最核心的两件事——TMDS差分线的阻抗匹配和等长处理顺带把连接器布局、ESD防护、调试排错的实战经验一起讲清楚。这篇文章适合正在画HDMI接口的硬件工程师、PCB Layout工程师以及想搞明白为什么我的HDMI板子总是不稳定的入门选手。1. 先搞明白TMDS到底在传什么3对数据线加1对时钟线每一对都输不起1.1 HDMI接口的信号构成与速率等级HDMI接口的信号大致分三块TMDS通道、DDC通道和控制信号。TMDS通道就是3对数据线Data0、Data1、Data2加1对时钟线Clock这4对差分线承担了所有音视频数据的传输也是整个接口设计里最敏感的部分。DDC是I2C总线用来读显示器的EDID信息速率只有100kHz基本不用担心信号完整性。控制信号包括HPD热插拔检测、CEC、5V电源等主要是电平逻辑问题布线时注意走线完整即可。先说速率这个决定了你的等长和阻抗到底要做到多严。HDMI 1.4规范里1080p60Hz的TMDS时钟是148.5MHz单通道数据率是1.485Gbps到了4K30Hz时钟提到297MHz数据率2.97GbpsHDMI 2.0的4K60Hz更是到了594MHz的时钟、每通道5.94Gbps。以2.97Gbps为例一个数据UI单位间隔大约是337ps信号在FR4板材里的传播速度大概是6mil/ps左右这意味着一根走线上只要多出几十mil的长度差就会产生几个ps到十几个ps的偏移。你说这点偏移对337ps的UI来说大吗单看似乎不大但如果叠加阻抗不连续引起的反射、过孔stub的谐振、以及连接器本身的寄生参数问题就会在某个分辨率下突然爆发。1.2 为什么TMDS比USB、以太网更容易踩坑做USB 2.0的时候很多工程师随便拉拉线就能跑480Mbps做千兆以太网差分对要求宽松等长差个几百mil也不至于完全不通。但TMDS不一样它是源同步的并行差分传输3对数据线必须和时钟线严格对齐。时钟线就是那把尺子数据线就是被测量的对象任何一个数据通道相对时钟的偏移超过一定阈值接收端采样就会错位。而且HDMI发射端内部虽然有去偏斜de-skew机制但PCB上的偏差累积到几百ps级别的量级时再强的均衡也救不回来。我曾经遇到过一个案例板子两层板做的TMDS走线在顶层参考地平面残缺不全差分线还对内做了等长结果1080p60Hz能出图但屏幕上有轻微水波纹4K直接花屏到没法看。后来把HDMI翻到四层板走线全部参考完整地平面问题立刻消失。这说明一个道理HDMI设计里阻抗连续性、参考平面完整性、等长控制这三件事缺一不可很多时候等长其实没超反而是参考面先断了。1.3 一个明确的HDMI PCB设计指标清单结合我实际做过的项目给出一份HDMI接口PCB的关键设计指标清单方便大家画板时对照参考TMDS差分阻抗100Ω±10%单端50Ω±10%这个后面细说对内等长P与N之间建议控制在5mil以内至少不能超过10mil对间等长3对数据与1对时钟之间建议控制在20~50mil以内差分对间间距保持至少2倍线宽2W避免串扰过孔数量TMDS每根信号尽量不超过2个过孔最好1个或0个ESD器件的结电容选型时看规格书建议不超过0.5pF参考平面TMDS下方必须有完整的地平面严禁跨分割与高频/开关信号间距至少3W以上有条件就包地这份清单是我早期从各路参考设计里总结出来的之后每一个翻车案例都在反复验证其中的某一条。2. TMDS阻抗匹配的核心逻辑100Ω不是设计值是结果值2.1 差分100Ω和单端50Ω的换算关系很多新手一看TMDS规范说差分阻抗100Ω就想当然地把差分线的线宽线距按100Ω去仿真这本身没错但要理解差分阻抗和单端阻抗之间的关系。差分阻抗Zdiff约等于单端阻抗的2倍即Zdiff 2 × Z0 × (1 - k)其中k是耦合系数。当差分对间距较远弱耦合时k趋于0Zdiff约等于2×Z0当间距很近强耦合时k变大Zdiff会小于2×Z0。这意味着如果你把差分对拉开为了维持100Ω单端阻抗就要到50Ω附近如果让差分对靠得很近单端阻抗可能只需要45Ω甚至更低就能凑出100Ω差分。但问题在于TMDS接收端的输入结构是按单端50Ω来设计的差分走线拉开后单端阻抗接近50Ω反而更匹配。这也是为什么HDMI规范里同时给出了差分100Ω和单端50Ω两个值。2.2 四层板叠层怎么选参考平面比叠层本身更重要HDMI接口的PCB设计我强烈建议放在四层板及以上。两层板虽然理论上也能跑但你需要保证TMDS走线下方有一个连续的地平面这在两层板里几乎做不到——电源走线、其他信号必然会把地平面切开。四层板的经典叠层方案有两种叠层方案L1L2L3L4适用场景方案A信号地电源信号通用HDMI走顶层或底层方案B地信号信号地适合双面高密度布线但HDMI需要选靠近地的信号层我最常用的是方案AHDMI走L1信号层L2完整地平面直接作为参考面。L1到L2的介质厚度是决定阻抗线宽的关键参数。以常见的1.6mm四层板为例如果L1-L2介质厚度约0.1mm4mil左右做100Ω差分外层线宽大约需要5~6mil间距6~8mil如果介质厚度变成0.2mm线宽可能要到7~8mil。线宽不是拍脑袋定的必须根据厂家的具体叠层和板材参数去计算。2.3 阻抗算好之后还有四个隐形杀手计算阻抗只是第一步真正让阻抗失配的往往是后面这些细节第一焊盘处的阻抗坍塌。连接器的TMDS焊盘通常比走线宽很多还有ESD保护器件的焊盘、过孔焊盘这些地方的阻抗会急剧下降。你可以把走线的5mil突然变成连接器的0.6mm宽焊盘这段阻抗可能一下掉到60~70Ω信号在这里会产生明显的反射。解决办法是让连接器焊盘下面的参考平面尽量保留不要掏空同时走线进入焊盘前的过渡区尽量短。第二参考平面上的过孔反焊盘anti-pad会引起阻抗突变如果差分过孔的回流地过孔太远换层处的阻抗就会失控。第三绿油阻焊层的厚度会影响外层阻抗做阻抗计算时必须把阻焊厚度算进去否则真实板子的阻抗可能比你算的低2~3Ω。第四板厂蚀刻工艺导致的线宽误差一般±10%甚至更大所以要求板厂出阻抗报告时需要明确告诉他们对哪个网络做监控、目标值是多少。3. 差分线等长处理长度不是量出来的是按信号完整性推出来的3.1 对内等长和对外等长要分开算很多人在Allegro或AD里直接选中一对差分线约束管理器里设一个长度范围就完事了但等长这件事可以分为两个层次。对内等长指的是同一对差分线里P和N的长度差这个偏差直接转化为共模噪声和差分信号的相位偏移所以要求非常严格。TMDS的P和N是互为镜像传输的理想情况下它们的传播延时完全一致一旦有偏差接收端的差分放大器采样窗口就会变窄。我自己的习惯是强制要求内等长不超过5mil对应大约0.8ps的偏差这在2.97Gbps下是安全的。对外等长指的是3对数据线和1对时钟线之间的长度匹配。因为HDMI是源同步接口接收端用Clock通道的边沿去锁存数据如果某一对数据线比时钟线长太多数据相对于时钟的相位就会偏移。举个例子数据2走线比时钟走线长了200mil按6mil/ps算数据2相对时钟就有约33ps的延迟而2.97Gbps的UI是337ps33ps大约占10%的UI虽然在链路预算内但如果同时叠加了阻抗失配、连接器偏移就可能出问题。3.2 等长计算的实操方法一个mil一个mil算具体计算等长时我推荐这样操作先确定起止点。TMDS等长的起点是HDMI发射芯片SoC或独立HDMI Transmitter的驱动端焊盘终点是HDMI连接器的接收端焊盘。中间如果有ESD器件也要把ESD焊盘的贡献算进去。在Cadence Allegro里用CMConstraint Manager建好差分对后设定P和N的相对偏差比如5mil以及数据组和时钟组的绝对长度范围。计算逻辑很简单FR4板材中信号传播速度大约是5.8~6.2mil/ps取6mil/ps估算。如果时钟线总长2000mil要让所有数据线的偏离不超过30ps那么数据线长度必须控制在2000±180mil以内。换算成对内5mil大约就是0.8ps10mil是1.7ps。如果板子上空间实在有限对内做到10mil也能跑但风险会随速率上升而放大4K60Hz这种级别你最好还是老老实实压到5mil以内。3.3 绕等长的三种方法和一条红线等长绕线有三种常见方式直角绕线、45°绕线、圆弧绕线。直角绕线的拐角处会产生明显的阻抗不连续高频下反射更严重不推荐圆弧绕线信号完整性最好但在PCB工具里操作稍微繁琐45°绕线是绝大多数高速板的选择既满足了等长需求对阻抗的影响也可控。绕线的基本原则是绕线段的间距不小于线宽的3倍3W绕线段的长度尽量短不要在长的平行段上长距离并行走线。红线是什么差分对内等长绕线时P和N的绕线不能只绕一根而应该是两根同时、相同形状地绕。如果只绕P不绕N等长是满足了但耦合性和共模抑制会被破坏。在Allegro里画蛇形绕线时记得开差分对联动模式让P和N一起走蛇形。另外绕线区域下方不能有地平面被切开否则你绕出来的线不仅没解决等长问题反而制造了一个阻抗坑。4. 布局阶段决定成败连接器、ESD、电源去耦一个都不能少4.1 连接器放哪里不是随便找个边这么简单HDMI连接器的位置直接决定了整段TMDS走线的长度和质量。我的经验是连接器尽量靠近HDMI驱动芯片的引脚让TMDS走线尽可能短。如果用的是SOC直出HDMI芯片一般位于板子内部连接器在板边中间走线很难做到非常短但至少要做到不绕、不跨分割、不靠近晶振或DC-DC电感。连接器下方的地平面要保持完整不要在连接器下面掏空内层做结构避让否则TMDS焊盘和参考平面之间的距离会突变阻抗完全失控。另外HDMI连接器的金属外壳必须和系统地充分连接最好用多个过孔打到地平面形成良好的屏蔽。有些参考设计会在连接器外壳下方铺一块独立的地铜皮然后用0欧电阻或磁珠和系统地连接说是为了ESD和EMI但实际效果因方案而异。我个人偏向直接连到系统地用密集的接地过孔把外壳和地平面缝合起来EMI测试表现更稳定。4.2 ESD保护器件不是随便选一个TVS就行HDMI连接器暴露在机箱外面热插拔、静电是家常便饭ESD保护器件必须要有。但ESD器件的选择有个坑结电容。普通TVS管的结电容可能有几pF甚至十几pF直接串在TMDS差分线上相当于在高速链路上并联了一个大电容会让眼图闭合、阻抗崩塌。选ESD器件时要挑结电容小于0.5pF的高速专用TVS阵列通常在规格书上会标注适用于HDMI 2.0/2.1。布局上ESD器件要尽可能靠近HDMI连接器最好在5mm以内这样能在静电进入主板前就把它泄放掉。ESD器件到差分线的连接stub要非常短不要从差分线上拉出一根长线再去接ESD器件而是在走线上直接打孔或焊盘连接。这里有个细节很多人忽略ESD器件的焊盘位置会导致差分阻抗瞬时变化所以做阻抗计算时最好把ESD器件的焊盘也纳入仿真范围。4.3 5V、HPD、DDC这些简单信号的布局陷阱TMDS之外的辅助信号虽然不涉及高速但它们的布局错误会直接导致没输出。5V电源给显示器供电走线要足够宽至少20mil以上并且靠近连接器端口加退耦电容否则热插拔瞬间的浪涌可能把HDMI发射芯片打死。HPD是显示器发出我插上了的检测信号一般通过上拉电阻到HDMI发射端或SoC电阻阻值要按方案要求来太大或太小会导致检测逻辑不稳定现象就是插上HDMI线之后系统不识别。DDC的I2C总线需要在HDMI连接器端加上拉电阻通常1kΩ到2.2kΩ电压是5V走线不要太长避免干扰TMDS。如果DDC走线过于靠近TMDS数据线I2C的边沿噪声可能耦合到差分对上造成视频信号质量下降。布局时建议把辅助信号和TMDS分区布置电源和小信号走线走板的另一侧或另一层和差分对保持距离。5. 调试阶段的排查链路从完全黑屏到间歇闪屏的真实案例5.1 电视/显示器完全无信号的排查顺序板子贴片回来插上HDMI线显示器显示无信号这是最常见的故障现象。很多人第一步就去量TMDS差分波形其实顺序反了。正确的排查链路应该是先量5V连接器第18脚有没有输出5V没有的话查供电链路和使能信号。再量HPD第19脚有没有被拉到高电平显示器本身会拉高但要确认主控是否识别到这个高电平。通过I2C读EDID在第15、16脚上挂逻辑分析仪看DDC上有没有时钟和数据活动能不能从显示器那边读到EDID信息。如果I2C没有波形检查上拉电阻是否焊接、SoC的HDMI模块有没有配置好。最后才看TMDS时钟用示波器探头分别点到Clock和Clock-上正常情况能看到稳定摆动的差分时钟信号。如果时钟都没有说明主控到连接器之间链路断开或短路如果时钟有但屏幕还是黑屏再去查数据和等长。我遇到过一次比较邪门的情况5V正常、HPD正常、EDID能读但屏幕就是黑屏。最后拿示波器一量发现Clock通道上有波形但幅度只有200mV根本没有达到接收端的差分阈值。查了半天原来是SDRAM和HDMI共用了一段带状线SDRAM高频干扰耦合到了TMDS时钟上把信号摆幅压低了。把HDMI走线包地并移开之后问题解决。5.2 有图像但闪屏、雪花点、颜色不对怎么办如果画面能显示但闪屏、有雪花或颜色不对这基本就是信号完整性问题。闪屏和雪花点尤其是分辨率越高越严重绝大多数是等长超了或阻抗失配导致的。处理办法是先查约束报告看数据线和时钟线的长度差是否在预算内再看各段的阻抗是否连续特别是连接器焊盘、ESD器件焊盘、过孔换层这些位置。颜色不对通常意味着某一对数据线开路或短路用万用表逐段量DDC通道之外的三对数据和时钟的直流电阻检查有没有虚焊、连锡。还有一个常见的假故障用了100Ω差分阻抗的HDMI线但板和线之间的连接器匹配不好接触电阻偏大导致信号幅度衰减。这个不一定是板子画错了可能是连接器选型或生产焊接问题。拿一根质量好的HDMI线交叉测试很快就能区分。5.3 实测过后的一些额外提醒最后分享几个不太容易在教科书上看到、但实战中非常有用的经验。打样时一定让板厂出HDMI差分网络的阻抗报告而不是只给整板通用阻抗。很多板厂默认监控的阻抗测试条是独立的不一定跟你板上的HDMI布线一致要明确在工艺说明里指定需要监控的网络。如果项目里HDMI是高速信号重点建议在TMDS走线旁边留几个测试点方便板子回来后用示波器探头测量。小信号测试点对高速信号伤害很大但调试完后可以不用去除留着也不影响正常功能。如果板子已经量产了才发现HDMI不稳定排查原板不如拿一块新板子从叠层做起。我见过很多工程师在四层板上调来调去最后发现问题的根源是HDMI走线参考了电源平面而非地平面。电源平面在高频下的阻抗本来就比地平面高而且DC-DC带来的纹波会直接耦合进TMDS信号。设计阶段多花半天把参考平面理清楚比后期在实验室里熬夜调试有效得多。