做PCB设计这些年,差分走线算是高速电路里躲不开的硬骨头。很多刚接触Altium Designer的朋友,一听到“差分”两个字就觉得玄乎,其实真上手以后你会发现,它本质上就是一对等长、等宽、间距恒定的走线,难的不是操作,而是你对规则和阻抗这层底层的逻辑理不理解。这篇东西就结合我自己的项目经验,从规则设置讲到阻抗匹配,把完整流程一步步拆开讲清楚。
我做过的板子里,从PCIe、USB、以太网到HDMI,差分对基本覆盖了大部分高速接口。Altium Designer作为主力工具,在差分走线这块的功能已经相当成熟,尤其AD24之后的版本,交互式布线体验和阻抗规则配置都更顺手了。整篇内容不绕弯子,直接讲实操,就算你是第一次画差分对,跟着走也能把流程跑通。
1. 差分走线为什么不能随便画:先搞懂底层逻辑
1.1 差分信号的本质与抗干扰优势
差分信号传输,说白了就是用两根线上的电压差来表示逻辑状态。发送端同时驱动极性相反的两个信号,接收端检测的是两根线的差值。这样做最直接的好处是抗共模干扰,比如外部电磁噪声同时耦合到两根线上,那差值几乎不变,信号的完整性就不会被破坏。再一个,差分信号的回流电流路径比较稳定,产生的电磁辐射也比单端信号小,这对EMC测试帮助很大。
从原理上说,差分传输依赖的是两根线之间的耦合效应。这个耦合不是副作用,而是它性能好的根源。正因如此,差分走线才强调等长、等距、对称,目的就是保证两根线上的噪声一致、延时一致,让接收端采到的差值信号干净、无畸变。这也是为什么差分对不能像普通信号线那样随意拉线的原因。
1.2 奇模阻抗、偶模阻抗与差分阻抗的关系
刚开始学差分的时候,阻抗这个词最容易把人绕晕。简单理解,单端走线有单端阻抗,差分走线里每个根线单独看有个阻抗叫奇模阻抗,两根线一起看又有一个差分阻抗。它们的关系大概是:差分阻抗约等于两倍奇模阻抗,前提是两根线之间的耦合足够强。
这里有个概念很容易混:偶模阻抗通常和共模信号有关,共模阻抗约等于偶模阻抗的一半。实际设计里我们最关心的是差分阻抗,比如USB要求90Ω,以太网要求100Ω,HDMI要求100Ω,这些就是差分对的目标阻抗。在Altium Designer里设置规则的时候,你填的“阻抗”值就是基于这个来的。
1.3 紧耦合与松耦合的区别和选择
差分走线有个设计风格之争,就是紧耦合还是松耦合。紧耦合就是两根线离得近,线距小,耦合强;松耦合就是两根线离得远,线距大,耦合弱。紧耦合的优势是抗干扰能力强,对参考平面要求相对低一点,缺点是布线时灵活性差,容易出现等长困难;松耦合的优缺点刚好反过来,布线灵活,但对参考平面的连续性要求更高。
实际上,绝大多数量产板子都是紧耦合设计,尤其高速接口,比如PCIe、USB 3.0、HDMI,都建议用紧耦合。松耦合一般只用于速率不太高、布线空间紧张的场景。在Altium Designer中配置规则时,线距的设定就直接决定了你是紧耦合还是松耦合。
2. 动手之前先做功课:叠层与目标阻抗规划
2.1 叠层结构对差分阻抗的影响
差分阻抗不是拍脑袋定出来的,它取决于走线所在层的参考平面、介质厚度、介电常数、线宽、线距等多个因素。其中,走线到参考平面的介质厚度影响最大,介质越厚,阻抗越高;线宽越大,阻抗越低;线距越大,差分阻抗越大,但奇模阻抗的变化幅度相对小。
所以,设计叠层的时候就要通盘考虑。常见的四层板叠层一般是顶面信号层、内电地层、内电层、底面信号层,差分走线放在表层或底层走带状线或微带线。六层板、八层板走内层带状线的情况更多。每种叠层对应的阻抗计算公式不同,结果也会不一样。改叠层不重新算阻抗,是你画板验收时被发现“阻抗不对”的最常见原因。
2.2 用Polar SI9000快速计算目标线宽线距
阻抗计算工具,业内用得比较多的是Polar SI9000,也有用Saturn PCB Design Toolkit的。前者更专业,做高速板的基本人手一套;后者带叠层计算和多种传输线模型,免费且界面友好。计算时你先选择对应的传输线模型,比如表面微带线、内层带状线、或者有阻焊的涂覆微带线,然后填入参数:介电常数、介质厚度、铜厚、目标阻抗、线距,软件就会算出需要的线宽。
这里提醒一句:助焊层的厚度对表层微带线的阻抗影响挺大的,计算时要格外关注。很多板厂的叠层参数和你算的时候不一样,最好设计前就找板厂要叠层结构,或者让板厂帮你做阻抗计算建议值,拿到PCBFab后跟自己的叠层库对一下,再回填到Altium Designer规则里。
2.3 常见接口的目标阻抗参考值
做项目的时候,目标阻抗一般由接口协议和芯片手册决定。最常见的几个值:
- USB 2.0 Full/High Speed:90Ω差分
- USB 3.0 / 3.1 / 3.2:90Ω差分,另外还有RX、TX共四对
- PCIe(Gen1/2/3/4/5):85Ω差分
- 以太网10/100/1000M:100Ω差分
- HDMI:100Ω差分,TMDS时钟和数据对
- DisplayPort:100Ω差分
- SATA:100Ω差分
- MIPI D-PHY:100Ω差分
这些值要刻在脑子里,拿到新项目先确认接口,再去找对应的差分阻抗目标值。规则设置的第一步,永远是确定你要“匹配多少欧”。
3. Altium Designer规则设置实操:核心配置逐项拆解
3.1 新建差分对规则:线宽、线距怎么填
打开PCB面板,进入Design > Rules,或者在PCB界面直接按DR快捷键,进入规则设置界面。左边规则树里选Routing > Differential Pairs Routing,右键新建规则,给它起个容易识别的名字,比如“DP_100R_USB”。
这里主要设置两个关键参数:Minimum Width(最小线宽)、Preferred Width(首选线宽)、Maximum Width(最大线宽)以及Min Gap(最小线距)、Preferred Gap(首选线距)、Max Gap(最大线距)。线宽和线距的值,主要就是根据前面的阻抗计算出来的。以100Ω差分、JLC7628叠层为例,表层微带走线,常见的参数是线宽0.15mm、线距0.15mm,但这只是参考,最终以板厂叠层为准。内层带状线的话,线宽通常要更宽一些,比如0.2mm甚至0.25mm,因为内层介质厚。
设置规则的时候,别忘了把网络分配进去。在Differential Pairs Editor里,把物理网络对(比如USB_P和USB_N)指定为差分对,这样规则才能生效。尤其在AD24里面,这个编辑器还支持从原理图导入差分对定义,功能上更高效了。
3.2 差分对约束规则:间距、屏蔽地与区域约束
差分规则不仅能限制线宽线距,还能设置边界约束和区域约束。如果你要处理BGA内部的差分走线,空间紧张,线宽线距需要变通,可以局部加一个Room规则,在Room区域内允许更小的线距,但不能小到违反板厂工艺极限。
屏蔽地那条线也很关键。很多差分对旁边会要求加一条地线做屏蔽,这条地线不要靠得太近,一般建议保持两倍以上差分间距,否则会影响差分阻抗。另外,地线上最好有一些过孔接地,形成闭合的屏蔽效果,但注意不是每个过孔都需要,间距过密会导致参考平面切割。
3.3 规则优先级与检查:怎么确保设置真正生效
规则优先级是很多新手翻车的重灾区。在Altium Designer中,同类型规则可以定义多条(比如全局一个差分规则,BGA区域一个差分规则,USB差分对区域一个差分规则),约束范围有重叠的话,系统按优先级从高到低匹配。右键选择优先级,数字越小优先级越高。通常局部规则优先级要高于全局规则,否则你设置了半天,实际布线用的还是全局规则。
设置完规则之后,Ctrl+M检查一下,或者用Tools > Design Rule Check,重点确认Differential Pairs Routing这一项有没有报错。很多人的规则其实没生效,就因为没有正确跑DRC,或者规则的约束对象没选对网络。在规则设置里,要注意Where the First object matches这一项必须正确填上对应的差分对网络。
4. 布局阶段就要铺垫好:差分对在PCB上的摆放要求
4.1 差分对布线区域与接口器件摆放
差分对的性能,很大程度上在布局阶段就决定了。如果布局时把USB座子放在板边很远的地方、线必须绕一大圈才能连到芯片,那走线的时候很难做到等长等距,即使勉强拉通,信号质量也会打折扣。所以布局时尽量把接口器和控制器放在同一侧,缩短差分走线的距离,避免跨分割区。
另外一个容易忽视的点是:差分对两侧不要放高噪声器件,比如开关电源电感、晶振、时钟缓冲器。这些器件耦合到差分线上的噪声是共模噪声,虽然差分信号能抑制一部分,但抑制能力不是无限的,现场测试时才发现噪声超标就晚了。我在一个4G模块的设计中吃过这个亏,当时为保证天线净空,模块放在板子边缘,结果天线辐射串扰到了RGB信号线上,后来只能加屏蔽罩补救。
4.2 过孔与回流路径的规划
差分走线换层时,一对过孔要尽量靠近,对称放置,否则过孔引入的残桩和阻抗不连续会破坏时序裕量。常见的做法是:差分对的两根线同时打两个过孔,过孔间距与走线间距保持一致,再在过孔旁边加一个地孔,确保回流路径连续,但不是所有时候都适合过孔旁边加地孔,要看阻抗空间是否允许。
更重要的一点是:差分走线的正下方不要有分割的参考平面。如果参考平面被电源分割或者有狭缝,回流电流就得绕路,形成巨大的环路面积,差模辐射和串扰都会上升。高速差分线的参考平面一定要完整,这是布局阶段就要跟结构、叠层一起确认的问题。
5. 差分走线实操:从交互式布线到等长处理
5.1 交互式差分布线命令与参数设置
进入布线模式:按快捷键PM,再选择Differential Pair Interactive Routing,或者直接单击工具栏上的差分布线按钮。布线模式弹出后,按Tab键进入属性设置,可以设置线宽、过孔尺寸、转角方式(45度圆弧还是成角度)、目标长度等。
Altium Designer的差分布线是支持推挤、绕障和自动等长功能的,可以充分利用智能交互式布线。我建议转弯用45度角或圆弧,不要用直角。直角会形成阻抗突变,在高速电路里影响相当明显。在需要弯曲的地方,用Shift+Space可以切换布线转角模式,Alt是切换布线层。实际布线时我习惯把“Interactive Routing”里的“Obstacle Avoidance”设成Push模式,这样布线时系统会自动推挤其他走线,效率会高很多。
5.2 差分对等长走线的实现与长度匹配技巧
等长是差分走线的核心难点。当初USB 3.0规范要求TX/RX对内差分走线长度偏差不超过5mil,到了PCIe Gen4/5,要求更严。先在规则里把差分对的总长度目标值设好,然后在布线后期用Interactive Length Tuning工具来微调:选中一对走线,执行Route > Interactive Length Tuning,或者快捷键TR,进入等长调整模式,按Tab键设置目标长度和振幅限制。
蛇形线是等长调整的常见手段,但有讲究:蛇形线的间距一般要大于等于线距的3倍,避免相邻线段之间产生额外耦合;蛇形线尽量放在走线的末端,也就是靠近接收端的地方,避免信号反射相互叠加。AD里可以选择锯齿形、圆弧形等蛇形线,某专业人士习惯圆弧形,对信号质量的影响最小。驱动器设置中的Target于Diff Pair.
在扇出布线时,如果芯片引脚间距很小,BGA内部比较拥挤,差分管脚无法在FANOUT阶段就满足线距要求,可以在BGA内部稍微缩短一点线距,走出BGA区域后再恢复正常的线距要求。这是很多量产项目里的通用做法,但你必须在规则里增加相应的区域约束,否则DRC会报很多错。
5.3 过孔附近如何处理差异
差分对过孔附近的处理,特别容易忽略。过孔本身有寄生电容和寄生电感,对高速信号是一种阻抗不连续,但如果只是低速信号影响不大。关键问题是:差分对的两个过孔,位置要尽量对称,避免出现“一个孔离得近、一个孔离得远”的情况。那样会导致两根线的过孔残桩长度不一致,传播延时就有偏差,等长白做了。
我通常会在过孔附近做“泪滴”处理,补强金属连接,减小机械应力对走线的破坏。泪滴还改善了过孔与走线交接处的阻抗突变,虽说不一定能量化它到底降低了多少,但在板材胀缩、焊接应力下,可靠性确实好了不少。
6. 阻抗匹配的实现与端接方案选择
6.1 单端阻抗、差分阻抗与端接的关系
前面提到,阻抗匹配的核心目标是让传输线上的阻抗在各个位置保持一致,避免反射。差分信号发送端的输出阻抗和接收端的输入阻抗,通常和传输线的特征阻抗并不完全相等,中间就需要匹配措施。对于点对点的差分接口,有串阻端接、并联端接、RC端接等,选择哪种要看芯片手册和信号速率。
以PCIe为例,发送端的差分阻抗是85Ω,传输线也是85Ω,接收端通常已经集成了一端接电阻,所以PCB设计时只需要保证走线阻抗匹配即可,不需要额外端接。但如果芯片手册没有说明内部端接,你就要在接口处预留串阻或并联端接的位置。这些电阻放在芯片端还是连接器端,也有讲究,一般靠接收端放置,效果最好。
6.2 PCB工艺对阻抗匹配的实际影响
板厂的实际蚀刻精度、玻纤编织效应、阻焊厚度,都会影响最终的阻抗值。你在软件里算得再准,板厂做出来也不一定准。这就是为什么建议设计前就把叠层发给板厂,让板厂用他们的工艺参数帮忙计算参考线宽线距。我接过的项目中,板厂建议值和软件算出的值往往差5到10欧姆,如果你直接按软件算的做,最后量出来的阻抗很可能超规格。
对表层的差分走线,阻焊层的厚度对阻抗影响不小,尤其线宽较细的情况。计算时如果软件模型里带了阻焊厚度参数,一定要填准确值。温度对介电常数也有影响,但这种细微的变化在量产中通常不敏感,不用刻意考虑。
6.3 实测验证阻抗是否达标
投板回来之后的验证阶段,阻抗测试是必不可少的环节。板厂会从你的Gerber文件里选择阻抗测试条,用TDR(时域反射计)进行阻抗测量,交付时附带测试报告。自己有条件的话,也可以用VNA(矢量网络分析仪)做插入损耗和回波损耗测试,但成本高,多数工程师没有这个条件。
收到板厂的阻抗报告,重点关注几个值:目标阻抗与实测阻抗的偏差,偏差通常在5%到10%以内算合格。如果发现偏差到了15%以上,要回头分析:是叠层参数和实际不符,还是线宽在蚀刻时被削了,还是计算模型用错了。有一次我们把表层微带线算成了内层带状线模型,回来后实测阻抗低了十几欧姆,后来返工才解决。这个教训让我每次做板都对板厂叠层图和计算模型“对三遍”。
7. 差分走线的常见坑与排查方法速查
7.1 常见设计问题汇总
差分走线设计过程中,很多问题不是原理性错误,而是操作或规则设置上的疏忽。这里整理一个高频问题速查表,方便大家遇到问题的时候对照排查。
| 现象 | 可能原因 | 排查要点 |
|---|---|---|
| 规则设置了但走线不按规则来 | 差分对没有正确分配网络 | 检查Differential Pairs Editor中的网络对定义 |
| 只有一根线走,另一根不走 | 网络没有配对或走线模式错误 | 确认进入的是Differential Pair Routing模式 |
| 差分走线阻抗不达标 | 叠层参数与板厂不一致 | 与板厂核对叠层和线宽线距建议值 |
| 差分对等长调整后DRC报错 | 蛇形线间距太小或振幅超限 | 检查蛇形线间距及规则约束中的最大振幅 |
| 差分信号眼图很差 | 参考平面分割或回流路径不连续 | 检查差分线下方的平面是否连续 |
| 过孔处反射严重 | 两过孔不对称或残桩过长 | 调整过孔位置,考虑背钻方案 |
7.2 规则设置不生效的排查思路
规则设置不生效,99%是网络对象匹配问题。打开PCB Rules and Constraints Editor,点击差分走线规则,查看Full Query,确认它是否命中了你的差分对网络。如果规则里的网络填的是“All”,它就会和全局规则发生冲突,优先级低的那条会被忽略。
还有一种情况是,规则中设的线宽线距在布线时被系统禁止了,比如Minimum Width设定为0.2mm,但实际你走0.15mm的线,系统会提示违反规则,这时你第一反应应该是检查规则值而不是硬着头皮推线。Altium Designer有个很方便的功能:在布线过程中按Shift+R可以实时切换忽略规则等模式,但这个模式只是暂时的,最后DRC照样报错,别指望它蒙混过关。
7.3 等长调整时的经验技巧
等长调整是画差分对最花时间的环节。经验不足时容易来回调来调去,效率很低。我的个人习惯是:先布好线,把所有差分对的物理长度报告导出来,找出最长的那个,把目标长度设成最长那对减去一个较小的允许误差值,比如误差50mil,那么目标长度设成最长走线长度再减25mil,这样就有足够的空间做蛇形线补偿其他较短的线。
蛇形线振幅要均匀,锐角、直角不要出现。实际调整的时候,放大画面慢慢调整,并且时刻关注左下角的长度指示。AD的长度调谐工具里有个漂亮的动态长度表示,可以实时看到长度变化。调到目标长度后,再用Ctrl+M跑一遍DRC,检查有没有间距报错。
7.4 过孔背钻的事后修补方案
如果是8层以上多层板,信号高速率(比如PCIe Gen4以上)走线从表层换到内层,过孔残桩的影响就会明显放大。残桩相当于一小段短截线,会产生阻抗不连续和信号反射。解决办法可以选择背钻,把残桩钻掉。背钻会增加制作成本,每个背钻孔都会明确标注深度。所以不是所有过孔都需要背钻,只对高速差分信号换层的那几个孔做就足够了。如果板厂不支持背钻,那布局布线阶段就尽量少换层。
8. 设计完成后,如何验证确认万无一失
8.1 检查清单与DRC配置
每完成一次差分走线设计,我都会跑一遍完整的设计规则检查,并检查一下针对高速差分信号的附加规则。核心检查项包括以下几点。
- 差分对方是否全部完成规则覆盖。
- 等长偏差是否在目标范围内。
- 回流路径是否连续,参考平面是否被切割。
- 过孔数量和位置是否对称。
- 阻抗要求是否传递给板厂。
- 阻焊开窗是否处理了差分测试点。
DRC设置里,重点勾选Differential Pairs和UnRouted Net这两项,跑一遍,然后把错误定位到具体对象,结合报告逐个确认是否是误报。真正的干净板子,DRC应该零错误,最多也就是个别可忽略的工艺警告。
8.2 输出制造文件与发给板厂的配套文档
投板之前,和板厂沟通的时候别忘了附上一份“阻抗叠层说明”。这份文档里写清楚每层的叠层结构、介质厚度、铜厚,以及每条差分线的目标阻抗、线宽线距。很多板厂甚至有专门的阻抗调查问卷,务必填写清楚。你在Gerber里设置了“阻抗层”或者在说明里标注“100Ω差分对”,板厂就知道该怎么做了。
Altium Designer里可以输出制造文件的同时也导出一份钻孔文件、装配图、器件坐标文件和BOM,这些一起打包发给板厂,能大幅度减少沟通成本。如果你用的是AD24以上版本,OutJob功能可以一键输出所有文件,非常方便,我之前写过一篇关于OutJob快速导出文档的操作,这里就不再重复。
8.3 常见验收标准参考
投板回来后,对照板厂测试报告,确认每对差分线的阻抗实测值在允许范围内。典型允许偏差为±10%,高端要求会更严格。对于眼图测试,如果你手头有示波器和专用测试夹具,可以实际测一下眼图,观察眼高、眼宽和抖动参数。如果眼图质量差,先不要急着调布局,先看阻抗测试报告,多数问题都出在那里。
我在实际项目的经验是,跟板厂配合得好不好,决定了很多隐藏问题的排查效率。提前把叠层参数核对工作做好,后面会省下大量返工成本。真正做高速设计的工程师,一定是“设计+仿真+实测”三线并行,纸上谈兵在PCB这个领域走不远。
差分走线这个东西,一旦掌握了规则设置和阻抗匹配的底层原理,剩下的就是肌肉记忆。多画几块板子,对Altium Designer的操作熟了,对叠层阻抗的敏感度有了,自然就不觉得难了。希望这篇实战记录能帮你少踩几个坑,节省一些调试时间。如果还有什么具体问题,欢迎在留言区交流,我看到会尽量回复。