ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Altium Designer USB3.0差分线布线保姆级教程:从规则到等长绕线

Altium Designer USB3.0差分线布线保姆级教程:从规则到等长绕线 做硬件的朋友多少都躲不开USB3.0不管是给MCU扩展高速接口、做Type-C转接板还是画FPGA测试板只要板子上出现5Gbps的高速差分对在Altium Designer里布差分线就是逃不掉的一关。今天这篇只讲一件事在AD里把USB3.0的差分线从规则设置到等长绕线完整走通尽量做到保姆级每一步都拆开讲保证你看完能直接上手抄作业。先说清楚这篇适合谁。如果你刚接触AD没多久还没画过差分线那这篇能帮你走完完整流程如果你已经布过USB2.0或者LVDS这类低速差分信号这篇能帮你把思路升级到5Gbps的高速层面避免那些“看着连上了实测眼图一团糊”的坑。USB3.0最核心的电气要求就三条90Ω差分阻抗、信号完整性尽量做干净、对内/组间等长控制做好。整篇教程就围绕这三件事展开从叠层设计检查开始到规则设置、对线、绕线最后到DRC和投产前的验证项一条龙讲完。1. 动手之前先把三件事想明白1.1 拿到USB3.0原理图先分清这几种信号USB3.0接口里有两种信号阵营别一上来就急着布线。一种是USB2.0的D/D-90Ω单端或者跳线当45Ω单端来看传输速率480Mbps另一种是USB3.0的SSTX/SSTX-和SSRX/SSRX-这是真正意义上的5Gbps差分对也是今天的主角。如果你用的是Type-C连接器还要注意它支持正反插所以会有TX1/TX1-、TX2/TX2-、RX1/RX1-、RX2/RX2-四组差分对主控通常只需要其中一组工作另一组通过CC逻辑切换过来。这里有个很容易踩的坑有不少人把USB3.0的差分对当成USB2.0的D/D-来看待觉得都是差分信号规则差不多。实际上USB3.0单通道速率是5Gbps信号上升沿可能到100ps等效带宽接近5GHz。在这个频率下过孔stub、参考平面断裂、走线换层点不一致都会被放大直接反映到眼图上。所以做USB3.0的第一步不是去AD里点鼠标而是先把整条链路想清楚主控引脚到AC耦合电容电容到连接器引脚这中间每一段走线都是差分对每一段都要保持阻抗连续。1.2 90Ω差分阻抗从哪来叠层和计算工具很多新手有一个误解觉得阻抗是“布线规则里设置出来的”。其实规则只是告诉AD你要什么真正决定阻抗的是你的叠层参数——介质厚度、介电常数、铜厚、线宽线距。换句话说你先要确定板厂给的叠层能做出90Ω差分阻抗然后再去规则里填线宽线距。最简单的思路是直接用阻抗计算工具比如Polar Si9000、Saturn PCB Toolkit或者免费的在线阻抗计算器。以常见的四层板1.6mm板厚为例表层到参考平面用半固化片厚度通常在3.5mil到5mil左右介电常数4.2左右铜厚1oz约1.2mil。算下来表层差分微带线要做到90Ω线宽大概在5mil到6.5mil线距边到边大概在5mil到7mil这个区间。我习惯先按6mil线宽6mil线距作为初值去叠层工具里验证然后等板厂反馈他们的实际叠层后再微调。内层走线的话因为带状线两面都有参考平面阻抗更容易做稳定但线宽往往比表层要宽1到2mil。四层板如果层叠是TOP-GND-PWR-BOTTOM内层走线一般放在第三层或第二层附近不现实通常还是在表层走USB3.0除非你的板子层数多、走线特别密才考虑把差分对内层收。我的经验是能做在表层就做在表层微带线好算、好调试、绕线也方便代价是表层要注意屏蔽和串扰隔离。注意千万别跳过叠层计算直接凭感觉填线宽。你填一个11mil的“经验值”进去出来的实际阻抗可能只有65ΩUSB3.0根本过不了信号完整性测试板子又改不回来只能重新做。阻抗计算这一步花15分钟能省后面几周的折腾。1.3 AC耦合电容的位置和焊盘处理USB3.0规范要求发送端做交流耦合也就是说差分信号在物理链路上要串一个电容。这个电容一般放在主控侧容值常用0.1uF或0.22uF耐压要求不高但封装别选太大0402比较合适0603有时候也能用只是占地方且阻抗不连续的区域更大。电容位置有几个讲究。第一要靠近发送端放也就是主控引脚出来尽量快到电容而不是先绕一圈再回来串电容。第二电容两边的走线宽度要保持一致不能电容前是6mil、电容后变成5mil这样必然产生反射。第三电容的焊盘本身比走线宽会带来寄生电容导致局部阻抗偏低。解决办法是让电容下方紧邻参考平面保持完整有条件时可以把电容焊盘外的阻焊开窗优化一下让阻抗突变尽量小。我当然知道这些属于信号完整性细节很多小板子不较真也能跑起来但既然标题叫“保姆级教程”这些点早晚会遇到。你按这个思路做至少能保证流片一次通过而不是样板回来之后来来回回飞线。2. Altium Designer里差分对规则全设置流程2.1 网络命名和差分对创建一看就会的固定操作进AD之后别急着画线先把差分对建出来。AD识别差分对的方式很死板它靠网络名的后缀来匹配默认规则是_P和_N你也可以自定义后缀比如_P/_N、_PLUS/_MINUS。我强烈建议你在原理图阶段就把USB3.0的差分网络命名为SSTXP/SSTXN、SSRXP/SSRXN这样简洁且成对的名字导入PCB后直接在Differential Pair编辑器里选就行。具体操作打开PCB界面菜单Design-Differential Pairs或者用右下角的Panels调出PCB面板在下拉框里选Differential Pair Editor。左边是未分配的差分对列表右边是已生成的差分对。选中SSTX_P和SSTX_N点中间绿色的加号按钮再点OK一组差分对就生成了。四组信号都这么操作保证每组的_P和_N都被成功配对。这里有个小坑如果你原理图里网络名写的是SSTX和SSTX-AD默认是不认的你得在原理图里统一改成后缀命名或者到Differential Pair Editor里手动指定两个网络。所以在做原理图库的时候就要养成好习惯高速差分网络的后缀统一用_P/_N省得导入PCB后再手动配。2.2 规则设置里四个核心参数逐个说透差分对创建好后打开Design-Rules找到Routing-Differential Pairs Routing。这里要设置的参数看起来简单实际坑不少。线宽Width和线距GapAD里区分Min、Preferred、Max三种值。一般把Min和Max设得跟Preferred一致或者稍微留一点弹性但别让AD在自动布线时乱变化。对USB3.0我先算好叠层设成线宽6mil、线距6mil如果走线太密需要压缩可以改线距到5mil但线距越小差分耦合越强实际的差分阻抗也会下降改完一定要重新算一下。耦合方式CouplingAD里有Edge-Coupled和Broadside-Coupled两个选项。我们平常常用的表贴走线都是Edge-Coupled也就是并排耦合。Broadside-Coupled是层间耦合比如带状线一上一下不常用。别选错否则规则计算完全不同。最小间距Min Gap这个是差分对内部P和N之间的最小间距下限也有最大间距上限。很多人以为设了线距就完事了其实AD的差分规则还会受普通间距规则约束。如果你在Electrical-Clearance里设置的总间距比线距还大AD会以严格的为准实际走线时你会发现根本拉不出你想要的线距。说一下为什么USB3.0对线宽线距这么敏感。差分阻抗的大小由走线到参考平面的距离、走线宽度、走线之间的耦合距离共同决定。如果把线距拉得特别开两条线各自当单端线处理差分阻抗就会往上飘如果线距特别近耦合增强差分阻抗又会下降。这就是为什么规则里的Preferred值要跟叠层计算结果对齐而不是拿着鼠标拖到哪算哪。2.3 等长规则怎么设才不白设USB3.0的等长要求分两个层面对内等长同一组差分对内P和N的长度差和组间等长不同差分对之间的长度差。规范里通常建议对内等长控制在5mil以内组间等长控制在20mil以内。别以为只有对内等长才重要——组间等长影响的是数据线和时钟/选通信号的时序偏斜虽然USB3.0是嵌入式时钟要求宽松一点但为了减少接收端的CDR压力组间还是尽量对齐。AD里设置等长规则在High Speed-Matched Length。你需要新建一个等长规则把作用范围指向你的差分对网络。然后设置Tolerance也就是允许的长度误差。我一般对内设5mil组间设20mil。同一个规则里可以同时选中多组差分对让它们的长度都对齐到一个目标值。这里有一个很多新手不知道的技巧等长规则里不仅看实际走线长度还看Total Length也就是从焊盘到焊盘的完整链路长度。如果你的差分对经过AC耦合电容那么电容两边的走线长度都会被算进去AD在报告长度时会自动把两端加起来。所以绕等长的时候别只盯着其中一段要等电容两端的长度都确定之后再整体绕。除了等长USB3.0还推荐做相位控制也就是让P和N的走线形状尽量对称。这个靠等长规则做不了要靠走线时手动让两条线保持一致比如转弯的地方一起弯过孔的地方两个过孔靠近。后面绕线环节我会细讲。3. 布线实操从扇出到等长绕线一次走顺3.1 扇出和关键走线策略动手前先看这五点规则都设好了先别急着拉线。打开PCB先看主控芯片和连接器的相对位置。USB3.0差分线最好走直线层数有限时表层走线是最省事的方案。扇出的时候从BGA引脚出来如果特别密可以先打孔换到内层但要保证同一组差分对的两个过孔挨着打且过孔出来后两条线还能并行走。两组过孔之间的间距不要拉得太大否则会引入stub和不连续。走线顺序上我习惯先走USB3.0高速对再走USB2.0的D/D-最后走控制信号。因为差分对是优先级最高的且往往需要占用比较好的布线通道先把它们安排好了再去填充其他信号能有效避免后期发现差分对没有完整参考平面而返工。特别提醒USB3.0差分对千万不要跨分割。所谓跨分割就是走线下方经过的参考平面通常是大片GND中间有一条窄缝或断口比如某个电源通道或禁止布线区把它切断。这时回流电流就得绕着走回路面积变大信号质量明显劣化。在AD里可以打开View-Board Planning Mode或者用LS快捷键查看参考平面层确认你的差分走线路径下方是一整片完整的GND。3.2 手动拉差分线的快捷键和弯角控制在AD里走差分线很简单选中两个网络比如按SP打开Differential Pair选择然后按快捷键PTInteractive Differential Pair Routing就可以开始走线。走线过程中有几个实用技巧按ShiftSpace切换拐角模式建议用45°角走完再看用圆弧替换。圆弧的加工性更好阻抗突变也小但AD里用圆弧走线不如45°好控制一般在DRC允许范围内尽量用45°。走线时按Shift或快捷键4可以切换走线层换层时AD会自动打两个过孔分别对应P和N。但要检查过孔是不是靠近放、方向是否对齐不然两条线换层后距离会拉开。走线时按ShiftR可以循环切换冲突模式这个不常用但有时候要绕过障碍物时可以用Push模式让AD帮你推开普通网络。当其中一条线走完之后另一条线要用PT重新走AD会默认按最短路径去找目标焊盘但如果前面已经弯弯绕绕了一段你就得手动走、或者用Unroute快捷键UP把当前差分对撤销重来。我的建议是只要发现当前路径不够好就果断撤销整组别一条一条修补差分线最忌讳左右不对称。拐角的地方注意保持并行。90°拐角本身就带来阻抗突变30°以内的锐角会产生制造问题最保险的是45°拐角加一段斜线过渡。如果绕不开障碍物必须走超过45°的角度宁可绕远一点也不要在一对线里出现一个大直角。3.3 等长绕线实操手把手教你绕出规整蛇形线所有差分对都布通之后运行一下Report-Board Information或者直接看PCB面板里的Length列检查每对P/N的长度差。如果你之前对线够规整通常长度差不大也就几mil到几十mil。这时候就该绕线了。在AD里绕等长用的是Tools-Interactive Length Tuning快捷键TR然后点击需要调整的差分对走线。AD会以蛇形绕线的方式把这条线拉长你移动鼠标绕线幅度和长度实时更新屏幕上会显示当前长度和目标长度的差距。绕线时有几个调整项值得记住按ShiftW可以设置绕线的振幅也就是蛇形的高度、间距、以及绕线方式——蛇形、内波形、外波形三种。USB3.0差分对绕线我最常用的绕线方式就是蛇形默认振幅取线距的3到5倍不要绕得太夸张。比如你的线距是6mil振幅设18-30mil这个区间比较安全。振幅太小绕线密集区段之间的耦合会增强对阻抗影响大振幅太大蛇形线占用的空间多且容易跟旁边信号线串扰。绕线的时候高度是整个蛇形突出的距离AD默认会取一个经验值我一般手动改成20mil左右步进振幅和间距step gap保持差不多这样绕出来的蛇形线间距均匀、好看生产时出问题概率低。还要注意一点给一组差分对绕线时尽量在P线和N线之间交替或者同步绕不要让其中一条多绕了一大段才开始绕另一条。因为绕线本身就带来额外的长度偏差如果你先绕了一条10mil的长度差再绕另一条30mil的长度差虽然最终两者都达标了但两条线的物理形态差别很大可能造成差分模式转换也就是共模噪声增加。实操心得绕线结束后用Reports-Measure或者快捷键CtrlM实际量一下蛇形区域两个焊盘之间的长度别光看AD状态栏的长度报告。少数情况下AD报告的是“电气长度”而蛇形绕线的物理长度会因为绕线间距不达标产生偏差这个偏差在5Gbps下面可能会变成实实在在的时序误差。3.4 绕线优先级哪种板子先绕哪组如果板子上有多组USB3.0差分对比如Type-C的TX1/TX2/RX1/RX2绕线的顺序也有讲究。我一般先绕对内长度差大的再绕组间距离差距大的。比如一组已经差了80mil先把它绕回来另一组只差10mil后绕这样最后微调的空间大不会出现绕完这组发现那组需要大改。另外目标长度不是越短越好也不是越长越好。等长规则里指定了Tolerance如果你的板子空间充足目标长度可以取各组中当前实际走线最长的那个长度然后统一把其他组拉到这个目标。千万不要盲目把目标定得特别长导致所有的差分对都绕一大圈蛇形线白白增加损耗和辐射。4. 常见问题与排查技巧实录4.1 差分对不生效、规则被绕过这类问题怎么定位实际过程中最让人抓狂的不是绕线而是规则明明设置了、走线也走完了一跑DRC却报一堆错或者规则压根没有生效。我把踩过的坑汇总成下面这个速查表新手照着排查就行。现象可能原因排查/解决办法规则设置了线宽6mil走线拉出来却是8mil差分对规则在规则优先级里低于普通走线规则打开Design-Rules检查Routing/Width和Differential Pairs Routing的优先级把差分规则拖到最高优先级差分对编辑器里看不到网络原理图网络名没有_P/_N后缀或网络没导入PCB回到原理图统一命名重新导入PCB或在Differential Pair Editor里手动添加网络距离设置没问题DRC仍然报警普通间距规则Clearance比差分线距更严格覆盖了差分规则在Electrical/Clearance中新建规则把差分网的间距也设置为匹配值并提高优先级等长绕线拉不动/绕了一段之后数值不变没有选中正确的差分对网络或交互式长度调整多段选择问题先用TR点击走线段看状态栏提示若非活用ShiftX重新选择绕线时蛇形高度/间距无法修改选中了对但不是激活的绕线段在绕线状态下按ShiftW修改如果还是不动先退出绕线再重新进入4.2 等长绕了DRC也过了为什么实测眼图还是差这种情况最为头疼也是很多工程师“抄了教程还是失败”的原因。我用实际项目经验总结绕线达标但眼图差常见原因有三个。第一个是过孔stub问题。如果采用的是通孔设计差分对换层时的过孔本身存在一段没用的stub在5Gbps下这个stub的寄生电容和电感会形成反射。等长你做得再漂亮过孔造成的阻抗失配依然存在。解决办法是减少换层次数必须换层时尽量让过孔短板厂能用背钻就背钻或者采用盲埋孔。第二个是绕线区域离其他信号太近。蛇形线绕出来的那一团自身就是一个很强的耦合源要是旁边有USB2.0或者I2C这类低频信号线很容易被串扰。所以在开始布线时就要预留绕线空间USB3.0差分对周围至少保持3倍线宽的间距蛇形绕线区域则要更空旷一些。第三个是AC耦合电容摆放和焊盘处理不当。电容引脚处的阻抗不连续如果过大即使走线等长再准确发射到接收端的信号也会明显畸变。我见过不少板子电容离主控引脚两三厘米远焊盘下方参考平面又被掏空眼图直接麻花。把这些细节改掉之后同样布线规则下的眼图能明显打开。4.3 投产前怎么自检USB3.0板子画完板子不等于完事投产前我至少会做一次完整的自查清单这里分享出来差分对是否全部成功创建DRC里无未连接的差分对。所有差分对内等长误差小于5mil组间小于20mil。参考平面完整性打开内层GND/PWR确认差分线下方无分割孔/切割线特别是绕线区域。AC耦合电容位置是否靠近发送端电容两侧走线宽度是否一致。过孔数量是否最少化差分对换层点是否P/N一致换层。检查串扰差分线间距是否满足3W附近有无平行长走线。运行高亮规则检查让AD把不符合阻抗/等长规则的网络全部高亮逐条确认不是因为规则设置错误导致的误报。最后一条建议有条件的话送板厂做阻抗测试条。很多板厂在你下单时支持加阻抗测试条规格选90Ω。样板回来后用TDR测差分阻抗曲线实际值在85Ω到95Ω之间都算健康如果偏离太多优先怀疑叠层参数而不是责怪布线。测完阻抗如果还带仪器再看一下眼图眼图张开度好、眼高大于300mV基本上USB3.0就没问题。我个人在实际操作中的体会是USB3.0差分线设计的核心其实不在绕线那一下而在规则前移——叠层算准、差分对建好、等长规则设好后续布线就是按部就班执行的过程。很多板子之所以要改到第三版第四版都是因为最开始少算了阻抗或者图省事没做等长约束。把这个流程固定下来每块新板子都按这套方式走你会发现USB3.0也没那么玄乎。最后再送一个小技巧给做Type-C口的朋友把两组TX/RX差分对的距离尽量拉开分别安排到连接器两侧别挤在一起这样不仅能绕线更从容信号串扰和回流问题也能少很多。
返回列表