ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

USB2.0差分阻抗90Ω设计指南:四层板叠层与Altium Designer实操

USB2.0差分阻抗90Ω设计指南:四层板叠层与Altium Designer实操 1. USB2.0差分阻抗为什么偏偏是90Ω很多人画USB2.0的时候第一反应是“随便连两根线过去就行了反正全速也就480Mbps”。这个想法在早期低速设备上确实能蒙混过关但只要板子上跑了USB2.0高速模式差分阻抗没控住眼图一塌糊涂设备枚举失败、传输丢包、偶尔识别偶尔不识别这些问题就会像幽灵一样缠着你。先把最核心的问题说清楚USB2.0的差分阻抗标准值是90Ω±15%这个数字不是随便定的。它来自USB-IF规范对高速差分信号线的要求目的是让收发两端在传输线上实现阻抗匹配把反射降到最低。单端来看每根线对地的阻抗大约是45Ω两根线之间的差分阻抗就是90Ω。这个关系可以用一个简化公式理解Zdiff ≈ 2 × Z0 × (1 - k)其中Z0是单端特征阻抗k是两根线之间的耦合系数。当两根线靠得越近耦合越强k越大差分阻抗就越低。所以差分对的间距和线宽是两个互相拉扯的参数不能单独调一个。那为什么不是50Ω或者100Ω因为USB2.0的驱动器输出阻抗和接收器输入阻抗都是围绕90Ω设计的。你板子上如果做成100Ω虽然只差了10%但在480Mbps的速率下反射系数已经足够让眼图闭合。我实测过一块差分阻抗做到105Ω的板子低速设备能认高速U盘插上去十次有三次枚举失败换成90Ω的板子之后一次通过。还有一个容易被忽略的点USB2.0的差分阻抗要求是针对高速模式的。低速1.5Mbps和全速12Mbps对阻抗没那么敏感但你不能只按低速设计因为同一个接口插上高速设备就会切到高速模式。所以只要你的板子上有USB2.0接口就按90Ω来控别心存侥幸。在Altium Designer里做阻抗控制核心思路是先确定叠层结构再根据叠层算出线宽和间距最后在PCB里用规则约束住。下面我按实际项目流程一步步拆开讲。2. 四层板叠层设计阻抗控制的地基2.1 为什么选四层板而不是两层板两层板能不能做90Ω差分理论上可以但实际很难。两层板没有完整的地平面差分线对地的参考面不稳定阻抗会随着走线位置变化而波动。而且两层板要想做到90Ω线宽和间距的组合会非常极端要么线太细工厂做不出来要么间距太小导致耦合过强。四层板的标准叠层是顶层信号层 → 内层地平面 → 内层电源平面 → 底层信号层。这个结构的好处是顶层和底层的信号线都有一个完整的地平面作为参考阻抗可控性大幅提升。内层地平面和电源平面之间的距离可以做得很薄形成良好的平面电容对高速信号的回流也有帮助。我一般推荐的叠层顺序是层序层名用途铜厚L1Top信号层走USB差分对1ozL2GND完整地平面1ozL3PWR电源平面1ozL4Bottom信号层1oz介质厚度方面L1到L2的厚度是关键。这个厚度直接决定了差分线对地平面的距离也就是决定了单端阻抗的基础值。常见的四层板板材是FR-4介电常数Er大约在4.2到4.6之间1GHz频率下。我通常按Er4.3来算留一点余量。2.2 叠层参数怎么定从板厂能力反推这里有一个实操中非常重要的经验不要自己闭门造车算叠层先问板厂的工艺能力。不同板厂的半固化片PP型号和厚度不一样你算出来的线宽到了板厂那里可能根本做不出来。我一般会直接找板厂要他们的四层板标准叠层图上面会标明每层之间的介质厚度和对应的Er值。拿到之后把L1到L2的介质厚度记下来比如常见的0.2mm、0.15mm、0.1mm。这个厚度越薄差分线可以做得越细对高密度布线越有利但成本也会略高。假设板厂给的L1到L2介质厚度是0.2mmEr4.3铜厚1oz0.035mm。接下来就要用阻抗计算工具来反推线宽和间距。Altium Designer自带的Layer Stack Manager里有一个阻抗计算器但说实话它的精度一般我更喜欢用Saturn PCB Toolkit或者板厂提供的计算表格。2.3 用Saturn PCB Toolkit算差分线宽和间距打开Saturn PCB Toolkit选“Differential Microstrip”计算器。输入以下参数介质厚度H0.2mm介电常数Er4.3铜厚T0.035mm目标差分阻抗90Ω然后调整线宽W和间距S。我试过几组组合线宽W (mm)间距S (mm)计算差分阻抗 (Ω)0.200.2092.30.220.2089.70.250.2588.10.180.1594.6从表里可以看到线宽0.22mm、间距0.20mm的组合算出来是89.7Ω非常接近90Ω。这个组合的线宽和间距都在常规工艺能力范围内最小线宽/间距0.1mm板厂做起来没有压力。但这里有一个坑计算器算出来的是理论值实际板厂蚀刻之后线宽会有偏差。蚀刻因子通常会导致线宽比设计值小0.02mm左右。所以我在设计时会把线宽稍微放大一点比如设计0.24mm蚀刻后大约0.22mm阻抗会更接近90Ω。这个补偿量需要根据板厂的蚀刻能力来定第一次合作的时候可以先按理论值做回来测一下TDR再调整。3. Altium Designer里的差分对设置全流程3.1 原理图阶段就要定义差分对很多人是在PCB阶段才开始设置差分对其实在原理图阶段就可以把差分对定义好这样导入PCB之后网络类会自动带上差分属性省去很多手动操作。具体做法是在原理图里把USB的D和D-网络命名成带差分标识的格式比如“USB_DP”和“USB_DM”。然后在Altium Designer的菜单里找到“Place → Directives → Differential Pair”放到这两根线上。或者更简单的方式是直接在PCB里通过网络名来识别。我习惯用网络名后缀来标识D叫“USB1_DP”D-叫“USB1_DM”。然后在PCB界面的“Design → Classes”里右键添加一个Differential Pair Class把这两个网络加进去。Altium Designer会自动根据“_P”和“_N”或者“_DP”和“_DM”的命名规则来配对。注意差分对的命名规则在Altium Designer的“Project Options → Class Generation”里可以配置。默认是“_P”和“_N”如果你用的是“_DP”和“_DM”需要在这里改一下否则软件识别不到。3.2 PCB规则里的差分阻抗约束这是整个流程里最关键的一步。打开“Design → Rules”找到“Differential Pairs Routing”这一项。新建一个规则命名为“USB2.0_90ohm”然后在“Where The First Object Matches”里选择“Differential Pair Class”指定到你刚才建的USB差分对类。接下来设置参数Min Width / Max Width / Preferred Width填0.22mm根据前面算出来的值Min Gap / Max Gap / Preferred Gap填0.20mmTarget Impedance填90Ω这里有一个细节Altium Designer的“Target Impedance”只是一个参考值它不会自动帮你调整线宽和间距去匹配阻抗。真正的阻抗控制还是要靠你前面算好的线宽和间距。这个Target Impedance更多是给后续的阻抗分析工具用的。设置完之后在PCB里走差分线的时候按“P → I”启动交互式差分对布线软件会自动按照规则里的线宽和间距来走。如果你发现走出来的线宽不对检查一下规则优先级确保USB差分对的规则优先级高于全局默认规则。3.3 差分对布线时的实时阻抗显示Altium Designer有一个很实用的功能在差分对布线的时候按“ShiftW”可以调出线宽和间距的快捷菜单但更直观的是打开“PCB Panel → Differential Pairs”面板里面会实时显示当前差分对的线宽、间距和计算出来的阻抗。不过这个实时阻抗是基于Layer Stack Manager里的叠层参数算的所以前提是你在Layer Stack Manager里把叠层参数填对了。具体位置在“Design → Layer Stack Manager → Impedance”选项卡里把每层的介质厚度和Er值填进去软件就能算出阻抗。我实测下来Altium Designer自带的阻抗计算和Saturn PCB Toolkit的结果偏差在3%到5%左右。所以我的做法是用Saturn PCB Toolkit算出一个基准值然后在Altium Designer里微调线宽让软件显示的阻抗落在90Ω±5%范围内。最终以板厂打样回来实测的TDR数据为准。4. 差分对走线的实操细节与避坑4.1 等长比阻抗更重要吗这个问题我被问过很多次。答案是两者都重要但优先级不同。阻抗不匹配会导致反射等长不匹配会导致差分信号变成共模信号两者都会让眼图恶化。对于USB2.0高速模式差分对的长度偏差一般要求控制在5mil0.127mm以内。这个要求其实挺严格的因为USB连接器到芯片之间的走线往往要绕来绕去。我的做法是先保证阻抗连续再在蛇形绕线的时候保证等长。蛇形绕线有一个坑绕线的幅度和间距会影响阻抗。如果你把差分对绕成很密的蛇形线间的耦合会变化阻抗会偏离90Ω。所以绕线的时候尽量用大弧度蛇形间距至少是线宽的3倍以上。我一般用“Accordion”模式设置绕线幅度为线宽的5倍间距为线宽的4倍。4.2 参考平面的完整性怎么保证差分线的参考平面必须是完整的不能有跨分割的情况。什么叫跨分割就是差分线下面的地平面被一条槽或者一个电源区域切断了。一旦跨分割回流路径被迫绕远阻抗会突变信号质量直接崩掉。在四层板里L1的参考平面是L2地平面L4的参考平面是L3电源平面。L3是电源平面对于USB差分线来说电源平面也可以作为参考但前提是这个电源平面是完整的而且和地平面之间有良好的去耦。我的习惯是USB差分线尽量走在L1参考L2地平面。如果L1实在走不开走到L4的话参考L3电源平面但要在USB连接器附近放足够的去耦电容保证电源平面在高频下对地是低阻抗的。还有一个细节差分线下方不要走其他信号线尤其是时钟线或者开关电源的走线。这些线会在参考平面上产生噪声耦合到差分对上。如果实在避不开至少保证垂直交叉不要平行走线。4.3 连接器和ESD器件的处理USB连接器到芯片之间通常会放一个ESD保护器件。这个器件的选型很关键寄生电容要小。USB2.0高速模式对寄生电容很敏感一般要求ESD器件的寄生电容小于1pF。我用过一些便宜的ESD二极管寄生电容3pF以上插上U盘直接不识别。ESD器件的摆放位置也有讲究尽量靠近连接器这样ESD电流在进入板子之前就被导走了。但也不能太近否则连接器的焊盘和ESD器件的焊盘之间的走线会形成 stub影响阻抗。我一般放在连接器后面5mm到10mm的位置走线尽量短而直。连接器的引脚定义也要注意USB2.0的D和D-在连接器上是相邻的两个引脚但有些连接器的引脚间距不均匀会导致差分对的间距在连接器附近突变。这种情况下我通常会在连接器焊盘和差分线之间加一段渐变线让间距慢慢过渡而不是突然变化。5. 打样回来怎么验证阻抗是否达标5.1 TDR测试最直接的验证手段板子打样回来之后最靠谱的验证方法是TDR时域反射测试。TDR的原理是发射一个快速上升沿的信号通过测量反射回来的波形来计算阻抗。如果阻抗是90Ω反射系数为零波形是一条平线如果阻抗偏高波形会向上凸起偏低则向下凹陷。测试的时候需要注意几点探头校准TDR探头本身有阻抗测试前必须用标准件校准否则测出来的值偏差很大。测试点选择最好在差分对的末端测试但USB连接器通常不方便直接测。我一般会在板子上预留测试焊盘或者在芯片端测试。参考平面测试时探头的地线要尽量短最好用同轴探头直接接触测试点和旁边的地焊盘。我实测过一块板子设计阻抗90ΩTDR测出来平均87Ω偏差3.3%在可接受范围内。另一块板子设计时线宽算错了测出来102Ω高速设备直接不认。5.2 眼图测试看整体信号质量TDR测的是阻抗眼图测的是整体信号质量。眼图测试需要一台示波器和一个USB2.0信号发生器。把信号发生器接到板子的USB接口上示波器探头接在芯片端的差分对上观察眼图的张开程度。USB2.0高速模式的眼图模板要求眼高至少150mV眼宽至少0.3UI单位间隔。如果眼图闭合说明信号质量不达标可能是阻抗不匹配、损耗过大或者串扰太严重。我一般会先测TDR确认阻抗没问题再测眼图。如果TDR没问题但眼图不好那就要查串扰或者电源噪声。有一次我遇到眼图闭合查了半天发现是USB差分线旁边走了一根开关电源的SW节点线耦合过来的噪声把眼图搞砸了。把那根线移走之后眼图立刻张开。5.3 常见问题排查表现象可能原因排查方法高速设备不识别差分阻抗偏差过大TDR测试检查线宽和间距偶尔识别偶尔不识别阻抗不连续或串扰检查参考平面完整性和周边走线眼图闭合损耗过大或串扰测眼图检查走线长度和周边信号低速设备正常高速失败高速模式阻抗问题重点检查差分对阻抗和ESD器件TDR波形有尖峰过孔或连接器阻抗突变检查过孔设计和连接器焊盘6. 几个容易被忽略的实操心得6.1 过孔对差分阻抗的影响差分对换层的时候需要打过孔过孔会引入寄生电容和电感导致阻抗突变。一个普通的过孔寄生电容大约0.5pF寄生电感大约1nH。在480Mbps的速率下这个突变足以让眼图恶化。我的做法是差分对尽量不换层。如果必须换层在过孔旁边加接地过孔形成回流路径。接地过孔要尽量靠近信号过孔距离控制在1mm以内。另外过孔的反焊盘Anti-pad尺寸也要注意反焊盘太大会导致阻抗偏高太小会导致阻抗偏低。一般反焊盘直径比过孔焊盘大0.2mm左右比较合适。6.2 阻焊层对阻抗的影响阻焊层Solder Mask的介电常数和空气不一样覆盖在差分线上会改变阻抗。虽然影响不大但在高精度要求下需要考虑。Altium Designer的Layer Stack Manager里可以设置阻焊层的厚度和Er值一般阻焊层厚度0.01mmEr3.3。加上阻焊层之后阻抗会略微下降大约1Ω到2Ω。所以如果你算出来是90Ω加上阻焊层之后可能变成88Ω这时候可以把线宽稍微调细一点补偿。6.3 板厂沟通的注意事项和板厂沟通阻抗控制的时候不要只说“我要90Ω差分”要把叠层结构、线宽、间距、参考层都写清楚。最好附上一张叠层图标明每层的介质厚度和Er值。板厂会根据他们的工艺能力调整如果做不到他们会反馈给你。我遇到过板厂擅自调整叠层厚度的情况导致阻抗偏了10Ω。后来我养成了一个习惯在PCB文件里用文字标注阻抗要求在Layer Stack Manager里把参数填好生成Gerber的时候附上一份阻抗说明文档。这样板厂就不会搞错了。6.4 成本与性能的平衡四层板做90Ω差分阻抗成本比两层板高不少但比六层板低。对于大多数USB2.0应用来说四层板是性价比最高的选择。如果你的板子上还有DDR内存或者千兆以太网那可能要考虑六层板了。但纯粹为了USB2.0做六层板有点杀鸡用牛刀。还有一个省钱的技巧把USB差分对走在顶层底层走低速信号。这样只需要控制顶层的阻抗底层不用管。叠层方面L1到L2的介质厚度可以选标准值不需要特殊定制成本更低。7. 从设计到量产的最后一道关7.1 小批量试产时的阻抗抽检设计验证通过之后小批量试产的时候一定要抽检阻抗。因为板厂的工艺参数会有波动不同批次的阻抗可能不一样。我一般会要求板厂提供阻抗测试报告或者自己拿TDR抽测几块板子。抽检的时候要注意同一批板子里不同位置的差分对阻抗可能有差异。比如板子边缘的差分对和板子中心的差分对由于蚀刻均匀性的问题阻抗可能差2Ω到3Ω。所以抽检要覆盖不同位置。7.2 设计文件的归档与复用USB2.0差分阻抗控制这套流程一旦跑通之后可以做成模板复用。我一般会把叠层参数、差分对规则、走线模板都保存下来下一个项目直接调用。Altium Designer支持把规则导出成文件在“Design → Rules → Export Rules”里可以导出为.RUL文件新项目导入即可。叠层方面可以把Layer Stack Manager的配置保存成模板在新建PCB的时候直接套用。这样就不用每次都重新算线宽和间距了。7.3 一个真实的翻车案例最后分享一个我早期踩过的坑。有一次做一个USB2.0的板子四层板差分对线宽和间距都算好了规则也设了走线也等长了。打样回来一测高速设备死活不识别。查了半天发现是USB连接器的封装画错了D和D-的引脚顺序反了。原理图上D接的是连接器的D-引脚D-接的是D引脚。虽然差分对本身阻抗没问题但极性反了高速模式下直接失败。这个坑让我养成了一个习惯每次画完连接器封装都要用万用表蜂鸣档对着实物测一遍引脚通断。原理图检查再仔细封装画错了一样翻车。后来我在Altium Designer里建了一个连接器封装的检查清单每次调用之前都过一遍再也没犯过这个错误。USB2.0差分阻抗控制这件事说难不难说简单也不简单。核心就是三点叠层算对、规则设对、走线走对。但每一个环节都有细节细节没处理好板子就是不稳定。希望这篇内容能帮你少走几个弯路一次把板子跑通。
返回列表