ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

HDMI接口PCB设计实战:TMDS阻抗匹配与差分线等长经验

HDMI接口PCB设计实战:TMDS阻抗匹配与差分线等长经验 HDMI接口的PCB设计说简单也简单说难也难。说简单是因为很多工程师拿着芯片原厂的参考设计照抄板子回来也能点亮说难是因为一旦速率上去、布局受限、层叠紧张TMDS信号的红线就一个接一个踩——阻抗断点、等长不够、回流路径断裂最后调出来要么花屏要么间歇性黑屏要么过了EMC但产品项目周期已经烧掉一大半。我这些年做过不少带HDMI的板子从消费类盒子到工业主控板都有今天把TMDS阻抗匹配和差分线等长这两块的经验系统整理一遍全部是工程实操里验证过的做法偏嵌入式、偏量产、偏“能落地”。1. 先搞清楚HDMI在PCB上到底跑的是什么信号1.1 TMDS信号链路的基本结构HDMI接口的核心物理通路是TMDS通道全称Transition Minimized Differential Signaling。它在PCB上表现为四对差分线三对数据加一对时钟。每一对差分线的单端阻抗要求是50Ω两线之间的差分阻抗是100Ω这个数字是所有HDMI布线规则的源头。为什么必须是100Ω因为TMDS链路的发送端和接收端内部都集成了50Ω对地的端接电阻差分看过去就是100Ω。PCB上的传输线如果做不到100Ω差分阻抗信号在传播过程中就会在阻抗不连续点产生反射。速率低的时候反射能量占信号幅度比例小系统能容忍速率一高反射叠加在信号上眼图直接劣化误码率飙升。还有一个点容易被忽略TMDS采用的是电流驱动逻辑发送端灌出的电流大小固定接收端靠端接电阻把电流转成电压。如果PCB阻抗偏离100Ω太多不仅反射增大接收端采样到的电压摆幅也会明显偏离协议规定的信号电平范围这是很多“看起来通了但长时间运行不稳定”的隐性根因。1.2 HDMI版本升级对PCB设计的要求变化HDMI 1.4时代TMDS通道的比特率是3.4Gbps对应时钟频率340MHz那时候走线要求相对宽松普通FR4板材、常规层叠只要线宽算对、等长做得差不多基本都能过。HDMI 2.0把单通道速率提到6Gbps这时PCB上的损耗、过孔残桩、阻抗偏差对信号质量的影响就被显著放大了很多工程师第一次感受到“照着1.4的规则画2.0的板子会翻车”。到了HDMI 2.1FRL模式单通道跑12Gbps这已经非常接近高速SerDes的范畴对PCB设计的要求是连贯性、等长精度、参考平面完整性全都必须严格管理。虽然市面上真正把HDMI 2.1做进嵌入式产品的还不多但如果你在设计时就把裕量留足未来产品升级固件就能支持更高规格板子不用重新画这是很划算的投入。从DDC通道的角度看I2C信号虽然是低速的但如果和TMDS差分线靠得太近高速信号的串扰会耦合到DDC上轻则HDMI识别不稳定重则CEC、HDCP握手失败表现为设备无法输出画面。这个位置的布局问题我在第4章会细说。2. TMDS阻抗匹配从公式计算到板级落地2.1 用微带线和带状线模型算阻抗阻抗匹配的第一步是确认走线模型。表层走线用的是微带线模型内层走线用的是带状线模型。两者的计算公式不同对板材参数的敏感度也不同。微带线的差分阻抗简化计算公式可以用Zdiff ≈ 2 × Z0 × (1 - 0.48 × e^(-0.96 × s/h))其中Z0是单端阻抗s是线间距h是介质厚度。更精确的做法是用场求解器比如Polar SI9000或者ADS的LineCalc。工程上我习惯先在SI9000里把目标参数算好再拿一块阻抗测试板让板厂做TDR验证确认理论模型和实际工艺的偏差。举一个常用的例子四层板表层到参考层介质厚度约0.1mm4milFR4介电常数取4.21oz铜厚约0.035mm走线线宽0.15mm6mil线间距0.15mm差分阻抗大约能到100Ω。如果把线宽缩到0.12mm间距不变阻抗会升到110Ω左右线宽加到0.18mm间距不变阻抗可能会降到90Ω上下。这说明线宽对阻抗的影响非常敏感每变化0.01mm都会产生几个欧姆的偏差。2.2 层叠结构决定阻抗控制的天花板PCB的阻抗匹配不是靠画线画出来的是靠层叠结构定下来的。很多工程师在layout阶段发现“线都画好了才想起来算阻抗”这属于顺序搞反了。正确的做法是画板之前就把层叠方案定下来根据目标阻抗反推线宽线距再根据线宽线距来布局。四层板是HDMI设计中最常见的方案推荐的层叠顺序是顶层信号、第二层完整地、第三层电源、底层信号。TMDS差分线优先走顶层或底层这样只用做微带线模型而且靠近参考平面回流路径短。如果你把TMDS走在内层那就是带状线模型虽然屏蔽性更好但对层间距的均匀性要求更高而且过孔换层两次阻抗不连续点变多。在层叠设计时有一点特别要注意信号层和参考平面之间的介质厚度必须足够薄才能让特征阻抗对线宽的变化保持敏感可控。如果信号层到地的距离是0.2mm线宽要拉到0.08mm才能凑出100Ω这个线宽在工艺上受蚀刻精度影响很大批量生产的阻抗一致性会变差。行业里的通行做法是把表层到参考平面的介质控制在0.08mm到0.12mm之间这样线宽可以落在0.12mm到0.2mm的舒适区。板材的选择也影响阻抗的稳定性。FR4的介电常数在不同频率下会有差异低频时可能是4.2到4.4到了5GHz以上可能降到3.8到4.0。如果你做的是HDMI 2.0以上的板子建议选择损耗更低的板材比如MEGTRON6或者松下M6系列虽然成本高一些但高频段的介电常数更稳定阻抗的频域浮动更小。2.3 阻抗控制的实操细节阻抗匹配不只是线宽一个参数的问题铜厚、阻焊层、线间距都会参与。实际工程里我遇到过阻抗测试与设计值偏差过大的情况排查下来主要原因有三个一是铜厚与标称值不一致比如1oz的铜实际完成厚度只有0.028mm二是阻焊层对表层微带线阻抗有拉低作用也就是说如果裸线阻抗算出是103Ω盖上绿油可能掉到98Ω三是线间距控制不均匀特别是在BGA区域扇出和连接器引脚区域差分对的两根线间距会被强迫拉大局部阻抗升高。针对这几个问题我的处理经验是与板厂沟通时明确要求“按最终成品阻抗匹配”而不是按裸线理论值。专业的板厂会帮你考虑阻焊层和铜厚误差调整线宽线距来保证成品阻抗在100Ω±10%以内。扇出区域和连接器脚位区域尽量缩短阻抗不连续的长度。如果连接器引脚本身做不到100Ω至少要保持过渡区域短而急不要为了美观把过渡区拉得很长。差分线下方必须保证参考平面完整不能有分割槽横跨。如果在第二层地平面上有电源分割TMDS走线的投影区域要避开分割边缘否则回流电流绕路等效于在走线上串了一个大电感阻抗波形会出现明显的毛刺。注意TMDS差分线对下方不要放置任何与信号无关的过孔阵列这些过孔会破坏参考平面的连续性即便它们没有直接连接到信号线也会通过改变介质层的有效介电常数来影响阻抗。3. 差分线等长如何从原理到实战一步到位3.1 等长误差到底要控多少差分线等长的目的是为了保证同一对差分线上的正负信号到达接收端的时间偏差尽可能小。TMDS链路在接收端用差分信号对进行采样如果P端和N端的传输延迟差过大会造成输入信号的共模转变直接后果是眼图的交叉点偏移上升沿和下降沿的不对称度增加。等长误差的工程指标取决于速率。计算方法是码元时间UI与允许的时序偏差之间的比例。以HDMI 2.0为例单通道速率6Gbps一个UI约166ps通常要求对内等长误差控制在±5mil以内。PCB走线的信号传播速度大约是6mil/psFR4微带线5mil对应约0.8ps的时差占UI的比例不到0.5%这个误差在接收端容忍范围之内。对间等长即三对数据线和一对时钟线之间的长度匹配要求相对宽松一般控制在±20mil以内。为什么数据对之间不需要像对内那么严格因为TMDS链路在做数据恢复时每个通道会单独对齐时钟通道间的偏差只要不超过时钟恢复电路的适应范围就行。时钟线是最关键的它给所有数据通道提供参考时序时钟与数据之间的偏差过大会直接导致采样错误。所以实际布线时我的习惯是先把四条通道的总长度拉到同一个目标值再把每对内部的偏差收得很紧。另外要特别提醒做等长时目标长度应该以“从驱动端引脚到接收端引脚”的完整路径来计算不能只看板上走线本身。如果驱动芯片到连接器之间经过AC耦合电容、ESD保护器件或共模电感这些器件的引脚和内部走线也有寄生延迟虽然很小但在12Gbps速率下不能忽略。精确的做法是让等长工具把过孔、焊盘、封装内部的走线全部纳入计算。3.2 蛇形走线的工程准则等长调整最常用的手法就是蛇形走线。蛇形走线有几个硬性准则违反了比不等长的危害还大蛇形弯折的间距必须大于等于3倍线宽最好做到5倍线宽或5倍介质厚度。间距过小会导致相邻绕线之间的电磁耦合增强相当于在这个局部段落里改变了差分对的耦合系数反而引入了新的阻抗不连续。我曾经见过一块板子为了凑等长把间距做到1.5倍线宽结果TDR测试在蛇形段阻抗掉了将近10Ω眼图质量比不做等长还差。蛇形幅度不要超过两倍线间距绕线段的长度也要均匀分配。TL的绕线长度通常按单次绕线增加的长度来算“一个来回”等于两倍的蛇形幅宽。布局时把操作目标分成小段来加边加边看报告避免一次性绕得过多造成空间浪费或者把旁边区域的走线挤得无法正常布线。蛇形走线的起始端和结束端应该避免紧贴过孔或连接器引脚。因为在过孔位置本身就有阻抗不连续再叠加蛇形走线的耦合变化问题会被放大。我一般会保证蛇形段距离过孔至少40mil以上。差分线的转角处理也是等长的一部分。建议全程使用45度角走线或圆弧角不要使用90度直角。90度角的内角在蚀刻时容易产生金属堆积外角容易被过度蚀刻造成线宽变化另外直角位置的电场集中效应也会在高速信号下引起轻微的EMI问题。现代EDA工具都有圆弧角功能比如Allegro的“smooth 45/arc”命令AD里用shiftspace切换布线模式可以快速把转角打成圆弧。3.3 在EDA工具里做等长调整的实战流程以Altium Designer为例做HDMI差分对等长的完整流程大致是这样在PCB规则管理器里把差分对规则建好线宽设为目标阻抗对应的值线距设为与板厂确认过的耦合间距优先级设为最高。选择“Interactive Differential Pair Routing”把四对差分线全部布完。布线时优先保证参考平面完整不跨分割。在主菜单选择“Design → Rules → High Speed”把“Length”规则打开设置对内等长为±5mil对间等长为±20mil。注意这里的长度指“current length”和“target length”的偏差范围。运行DRC查看哪对线超差。然后用选择工具选中差分对执行“Interactive Length Tuning”按快捷键“Shift R”或“T → L”进入交互式长度调整模式。此时光标会自动附带一条蛇形长度调整预览按Tab键可以修改蛇形间距与振幅。边调整边看右上角的长度状态指示绿色表示达标红色表示过长或过短。调整完成后重新运行DRC确认全绿。AllegroCadence里的步骤类似用的是“Route → Unsupported → Length Tuning”或菜单里的“Route Etch Delay/Length Tuning”命令。需要强调的一点是Allegro里对差分对做等长时要在Constraint Manager里先把“Same Net Spacing”同网络间距设好防止蛇形走线靠太近。提示等长调整尽量在普通走线全部布完后再进行否则你调整好的长度会因为后续改局部拓扑而重新被打乱。等长是对“最终走线路径”的补偿不要当成早期布局工具来用。4. 实战中高频踩坑与排查口诀4.1 六种最常见的HDMI PCB设计错误我整理了一个高频错误清单每次评审HDMI部分都会对着检查一遍错误类型现象根因预防方案差分对之间平行走线过长相邻通道串扰导致花屏数据对间间距过小对间间距≥3倍线宽至少拉开20mil差分对换层时参考平面断裂眼图塌陷、码间干扰回流路径被迫绕路换层处旁边放地过孔每对至少2个等长误差只做了对内没做对间时钟与数据偏斜过大间歇性黑屏只设了对内规则没设对间规则规则里同时设置两类长度约束AC耦合电容摆放过远阻抗不连续段过长电容位置距连接器太远电容尽量靠近连接器引脚或靠近驱动端路径越短越好共模电感/ESD器件阻抗适配不足高频回损大信号衰减明显器件本身也是传输线的一部分选择HDMI专用型号关注其差分阻抗指标DDR或电源等大电流网络穿越TMDS区域噪声耦合到信号上布局阶段未规划隔离区划出TMDS专用区域强干扰网络绕行第一个问题值得展开讲。很多工程师习惯把同类信号线并排走认为这样整齐好看但差分线对之间如果平行走线距离过长、间距又小相邻通道的电磁场会互相耦合这种串扰等效于一部分能量从目标通道泄漏到了旁边的通道。到了接收端每个通道除了接收自己该收的信号还收到了一堆邻居信号表现为眼图背景噪声明显抬高。解决办法就是在布线初期就把间距规则设好不要等布完再改。第二个问题也常见。TMDS差分线从顶层换到内层或者底层时一定要在换层位置旁边打地过孔为回流电流提供连续的路径。这个地过孔要离信号过孔足够近一般控制在20到30mil之内。如果你的层叠结构里信号层紧邻地平面换层后信号参考的面变了回流电流也必须跟着换层这个地过孔就是给回流电流搭桥的。没有这个过孔回流会绕很远等效于在信号回路里串入一个大电感高速性能急剧恶化。4.2 HDMI无输出或者画面异常的排查流程遇到HDMI无输出不要第一时间怀疑PCBPCB问题通常表现为“时好时坏”“特定分辨率才出问题”“温度变化后异常”而不是完全没信号。但PCB设计相关的“完全无输出”也确实存在比如ESD器件选型不当导致TMDS信号被严重衰减、AC耦合电容放错位置导致直流偏置不对等。我习惯的排查顺序是先用示波器测连接器端的TMDS时钟有没有波形。有波形说明源端电路在工作问题可能出在哪条通道上完全没波形先查电源、时钟芯片、HDMI使能控制引脚。有波形但没画面把示波器切到差分模式或直接用差分探头测三条数据通道的摆幅。TMDS数据通道正常摆幅大约在400到600mV之间如果某条通道明显偏低重点检查这条通道的阻抗连续性和参考平面完整性。如果波形看起来频率对、摆幅也对但是画面有雪花或花屏大概率是等长问题。用TDR测量各通道长度确认是否存在局部阻抗突变。TDR不好借的情况下可以先用软件检查等长报告排除基础问题。检查DDC通道。用I2C逻辑分析仪抓HDMI握手过程看有没有ACK响应。如果DDC被高频信号干扰握手可能时好时坏这基本能反推为布局问题——DDC和TMDS靠太近需要调整走线间距或者增加屏蔽。4.3 TMDS走线周边的辅助电路布局最后一个容易忽略的点是HDMI接口不只是差分线它周围还有5V供电、HPD热插拔检测、DDC信号、CEC控制信号。这些信号的布局如果处理不好同样会让整个接口功能异常。HPDHot Plug Detect引脚通过一个电阻上拉到5V用来通知源端“显示器已连接”。这个信号建议走线加粗到0.3mm以上并在走线上预留一个对地滤波电容的位置防止静电耦合导致误触发。CEC和DDC这类低频控制信号布线时不要与TMDS差分线长距离平行至少拉开30mil以上必要时加地线隔离。ESD防护器件的选型对信号质量影响很大。早期的TVS管结电容大高频时会把TMDS信号的高频分量泄放掉导致眼图闭合。现在针对HDMI 2.0以上的ESD器件要求的结电容一般低于0.3pF比如一些专门针对TMDS链路的阵列式TVS。选型时一定要看器件的信号完整性指标不能只看耐压和ESD等级。如果设计用到AC耦合电容比如某些HDMI转接方案要求电容选0603封装比较合适容值0.1uF左右ESR尽量低。两个差分对的AC耦合电容要对称放置P和N的电容位置要严格对齐不能一个靠前一个靠后否则会人为制造差分延迟差。这个细节在很多参考设计里都不显眼但实测数据表明不对称摆放会让眼图的交叉点偏移增大不少。5. 关于流程的一点点建议最后说点流程层面的体会。HDMI接口PCB设计这件事最容易踩的坑往往不在某个单一环节而在于环节之间的衔接断裂。参考设计拿到了层叠结构是自己拍的阻抗参数是软件自动算的没有和板厂确认工艺能力等长是在布线后期来不及了才临时凑的——每一步看着都差不多合起来就是一台测试台上反复改版的无底洞。我自己现在固定下来的流程是画原理图之前先确定层叠和阻抗目标用SI9000算好一批关键参数发给板厂确认可行性布局阶段严格划出TMDS专属区域不允许其他网络穿越布线优先把差分对整组走完根部走完就做一次临时性等长DRC规则里对内对外约束一次到位不需要后期绞尽脑汁去“修长度”。这样走下来HDMI部分的改版率明显低了很多。如果你正在做一个要用HDMI的产品希望这篇东西能帮你少走几步弯路。尤其是那些看着参考设计照抄但总感觉哪里不对的板子回头按这个清单捋一遍往往能找出隐藏的坑。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进