
1. 为什么USB2.0差分阻抗必须死磕90ΩUSB2.0高速模式跑在480Mbps差分信号沿PCB走线传播时走线本身的特性阻抗如果不匹配信号能量会在阻抗突变点产生反射。反射回来的能量叠加在原始信号上直接压缩眼图的张开度严重时接收端根本解不出正确的0和1。USB2.0协议规范里写得很清楚高速差分对的差分特性阻抗目标是90Ω允许±15%的偏差也就是76.5Ω到103.5Ω之间。注意这是差分阻抗不是单端阻抗。很多新手看到“90Ω”就以为是单根线对地的阻抗这是最常见的误解之一。差分阻抗的本质是两条耦合传输线在差模激励下的等效阻抗。它由单端阻抗和线间耦合共同决定。单端阻抗通常在45Ω到55Ω之间两条线靠近时线间电容和互感会拉低差分阻抗。所以你不能只控制单端阻抗就完事必须把线宽、线距、到参考平面的距离、介质厚度这几个参数放在一起算。那为什么是4层板两层板能不能做理论上可以但两层板没有完整的地平面回流路径不连续差分阻抗很难稳定控制在90Ω附近。4层板的典型叠层是顶层信号、内层地、内层电源、底层信号。这样顶层和底层的差分线都有紧邻的参考平面回流路径短且连续阻抗可控性大幅提升。而且4层板成本比6层板低不少对于大多数USB2.0应用来说4层板是性价比最高的选择。这篇文章面向的是已经会用Altium Designer画原理图和PCB、但对高速差分线阻抗控制还没有系统实操经验的工程师。我会从叠层设计开始一步步拆解线宽线距的计算、Altium Designer里的规则设置、差分对布线技巧、以及后期怎么验证。你跟着走一遍基本能独立完成一块USB2.0 4层板的差分阻抗控制。2. 4层板叠层设计与阻抗计算的核心逻辑2.1 叠层方案选型为什么优先选“信号-地-电源-信号”4层板的叠层排列有好几种常见的有叠层方案结构优点缺点方案A信号/地/电源/信号顶层底层都有参考平面回流路径好电源平面和地平面之间需要去耦方案B信号/电源/地/信号同上但电源平面在上电源平面分割时影响顶层回流方案C信号/信号/地/电源内层走线多顶层信号参考不连续不推荐方案D地/信号/信号/电源表层无走线调试困难不推荐我实测下来方案A最稳。顶层走USB2.0差分线参考内层地平面底层走其他低速信号参考内层电源平面。注意底层信号的回流会经过电源平面再通过去耦电容回到地平面所以去耦电容的摆放位置很关键后面会细说。叠层厚度方面以常见的JLC 4层板为例总厚度1.6mm的典型结构是顶层铜厚1oz35μm介质层PP0.2mm内层地铜厚1oz芯板1.2mm内层电源铜厚1oz介质层PP0.2mm底层铜厚1oz这个结构里顶层到内层地的介质厚度是0.2mm。这个参数直接决定差分线的线宽线距。如果你用的板厂叠层不同一定要找他们要叠层结构图不能自己瞎猜。2.2 差分阻抗计算线宽、线距、介质厚度的三角关系差分阻抗的计算公式比较复杂但你可以用Altium Designer自带的阻抗计算器或者用Saturn PCB Toolkit、Polar SI9000这类工具。我习惯用Saturn PCB Toolkit免费且够用。以顶层到内层地介质厚度0.2mm、铜厚1oz、FR4介电常数4.3为例用边缘耦合微带线模型计算目标差分阻抗90Ω线宽W0.2mm线距S0.2mm单端阻抗约50Ω差分阻抗约88Ω到92Ω之间这个组合是比较容易实现的。如果你把线宽加到0.25mm线距保持0.2mm差分阻抗会降到82Ω左右偏低。如果把线距拉到0.3mm差分阻抗会升到95Ω左右。所以线宽和线距要一起调。注意很多板厂的工艺能力是线宽/线距最小3mil0.076mm但0.2mm约8mil的线宽线距对大多数板厂来说都是轻松做到的良率高成本低。不要为了追求理论上的完美阻抗而把线宽线距压到极限那样反而容易出问题。还有一个容易被忽略的参数阻焊层厚度。阻焊油墨覆盖在差分线上会改变表面的有效介电常数从而影响阻抗。通常阻焊层会让差分阻抗降低2Ω到5Ω。如果你算出来是92Ω加上阻焊影响可能就变成88Ω了。所以计算时最好把阻焊因素考虑进去或者直接按90Ω算留一点余量。2.3 共面波导还是微带线什么时候需要考虑共面波导如果你的差分线两侧有密集的地铜皮并且地铜皮和差分线的间距很小比如小于2倍线宽那就变成了共面波导结构。共面波导的差分阻抗会比纯微带线低一些因为地铜皮增加了耦合电容。我一般建议USB2.0差分线两侧的地铜皮间距至少保持3倍线宽以上比如线宽0.2mm那地铜皮离差分线至少0.6mm。这样共面波导效应可以忽略按微带线模型计算就够了。如果空间实在紧张必须用地铜皮包紧那就得用共面波导模型重新算阻抗。3. Altium Designer里的差分对设置与规则配置3.1 原理图阶段差分对的命名与标识差分对在原理图里就要定义好。Altium Designer识别差分对的方式是靠网络名称的命名规则。默认规则是网络名以“_P”和“_N”结尾或者以“”“-”结尾。比如USB_DP和USB_DN或者USB_D和USB_D-。我习惯用“_P”和“_N”后缀因为不容易和电源符号混淆。在原理图里你可以用差分对符号Place Directive Differential Pair直接放在两条线上然后给它们起一个差分对名称比如“USB_HS”。这样在PCB里就能直接按差分对来布线和规则检查。实操心得有些工程师喜欢在原理图里用总线Bus来组织差分对比如USB_HS[0..1]。但Altium Designer对总线的差分对识别有时候会出问题特别是总线成员命名不规范的时候。我建议差分对就老老实实用两条独立的网络线命名清晰别搞太复杂。3.2 PCB阶段差分对规则的创建与参数设置打开PCB文件后进入Design Rules找到Differential Pairs Routing规则。这里要设置几个关键参数Min Width / Max Width / Preferred Width差分线的线宽。根据前面的计算设为0.2mm。Min Gap / Max Gap / Preferred Gap差分线之间的间距。设为0.2mm。Max Uncoupled Length最大未耦合长度。这个参数控制差分线分开走的最大距离。USB2.0建议不超过5mm越短越好。Target Impedance目标阻抗。填90Ω。设置完这些Altium Designer会在布线时自动按这些参数来约束差分对。但要注意Altium Designer的阻抗计算是简化的它不会考虑阻焊层和铜皮的影响。所以规则里的阻抗值更多是参考实际阻抗还是靠线宽线距来保证。另外还要在Clearance规则里设置差分对和其他网络的安全间距。一般建议差分对到其他信号线的间距至少3倍线宽也就是0.6mm以上。如果空间紧张至少也要保证2倍线宽。3.3 层叠管理器里的阻抗计算Altium Designer的Layer Stack Manager里有一个阻抗计算器。你可以添加阻抗配置文件选择微带线或差分对模型输入线宽、线距、介质厚度、介电常数它会算出阻抗值。我一般会在这里做初步验证把板厂给的叠层参数输进去然后调整线宽线距看阻抗能不能落在90Ω±10%以内。如果能就把这组参数记下来作为布线规则的依据。注意Altium Designer的阻抗计算器精度有限特别是对共面波导和阻焊层的处理比较粗糙。所以最终参数还是要用Saturn PCB Toolkit或Polar SI9000复核一遍。我通常两个工具都跑一遍取交集。4. 差分对布线实操从扇出到端接的全流程4.1 差分对扇出BGA和连接器的处理技巧USB2.0连接器通常是4针或5针的插件或贴片座。如果是贴片座焊盘间距可能只有0.5mm甚至更小。从焊盘扇出时差分对要尽量保持对称。我的做法是从连接器焊盘出来后先用短线段把线宽过渡到0.2mm然后立即开始耦合布线。如果连接器焊盘间距太小无法直接走出0.2mm线宽和0.2mm线距那就先走出焊盘区域在空旷区域再调整到目标线宽线距。但要注意过渡区域要尽量短而且两条线的过渡要对称。如果是BGA封装的USB控制器扇出会更麻烦。BGA焊球间距通常是0.8mm或0.65mm焊球之间只能走一根线。这时候差分对可能需要通过过孔换层。换层时两条线要同时换层过孔要靠近放置保持对称。实操心得过孔会引入阻抗不连续。一个过孔大概会带来0.5nH到1nH的电感在480Mbps下影响不大但两个过孔不对称就会导致差分 skew。所以差分对换层时两个过孔要尽量靠近最好对称放置。如果空间允许可以在过孔旁边加接地过孔提供回流路径。4.2 耦合布线保持等长、等距、参考平面连续差分对布线最核心的要求就三个等长、等距、参考平面连续。等长是为了保证两条线的传播延迟一致否则差分信号会变成共模信号产生EMI。USB2.0的差分对长度匹配要求通常在5mil0.127mm以内。Altium Designer里可以用Interactive Diff Pair Length Tuning工具来做蛇形绕线补偿长度差。等距是为了保持差分阻抗稳定。如果两条线间距忽大忽小差分阻抗就会波动。所以布线时尽量保持线距恒定不要一会儿靠近一会儿分开。参考平面连续是指差分线下面的地平面或电源平面不能有裂缝或分割。如果参考平面不连续回流路径就会绕远导致阻抗突变和EMI。所以差分线不要跨过平面分割线。如果必须跨那就在跨线处放缝合电容。我布线时的顺序是先布差分对再布其他信号。差分对优先走顶层因为顶层到内层地的介质厚度最薄阻抗最容易控制。如果顶层走不通再考虑底层。4.3 端接与匹配串联电阻和共模扼流圈的位置USB2.0高速差分线通常不需要端接电阻因为收发器内部已经有匹配。但有些设计会在差分线上串联共模扼流圈Common Mode Choke来抑制共模噪声。共模扼流圈要放在靠近连接器的位置而且差分对进出共模扼流圈的走线要尽量短且对称。如果USB控制器和连接器之间的距离比较远比如超过10cm可以考虑在靠近控制器的一端串联0Ω电阻方便调试时断开。但0Ω电阻的封装要选0402或更小避免引入额外的寄生参数。注意共模扼流圈的选择要看它的差分阻抗和共模阻抗。差分阻抗要尽量小最好在5Ω以下否则会影响信号幅度。共模阻抗要尽量大通常在100Ω以上。选型时看数据手册里的阻抗-频率曲线确保在480MHz附近共模阻抗足够高。5. 后期验证与常见问题排查5.1 用TDR或VNA实测差分阻抗板子打回来后如果有条件用TDR时域反射计或VNA矢量网络分析仪实测差分阻抗。TDR可以直接看到沿走线的阻抗变化曲线哪里阻抗突变一目了然。VNA可以测S参数看回波损耗和插入损耗。如果没有这些设备至少要用万用表测一下差分对有没有短路或断路。然后上电测试USB2.0能不能正常枚举和传输数据。如果枚举失败或者传输不稳定大概率是阻抗或信号完整性问题。5.2 常见问题速查表现象可能原因排查方法解决方法USB2.0无法枚举差分对短路或断路万用表测通断检查焊接和走线枚举成功但传输不稳定差分阻抗偏差大TDR测阻抗调整线宽线距重新打板传输速度上不去差分对长度不匹配检查等长绕线重新绕线控制长度差在5mil内EMI测试超标共模噪声大近场探头扫描加共模扼流圈优化回流路径眼图闭合阻抗不连续或损耗大眼图测试检查过孔、连接器、线宽过渡5.3 独家避坑技巧第一个坑忽略阻焊层对阻抗的影响。我早期做的一块板子按微带线模型算出来是90Ω结果实测只有83Ω。后来发现是阻焊层太厚介电常数又高把阻抗拉低了。解决办法是在计算时把阻焊层厚度算进去或者直接按95Ω设计留出余量。第二个坑差分对换层时过孔不对称。有一次差分对从顶层换到底层两个过孔一个在左一个在右距离差了2mm。结果眼图明显不对称误码率偏高。后来把两个过孔并排放在一起问题解决。第三个坑参考平面分割。有一块板子差分线下面的地平面被电源分割线切断了回流路径绕了一大圈。结果EMI超标严重。后来在地平面分割处加了缝合电容问题缓解。所以差分线下面一定要保证参考平面完整实在避不开分割就加缝合电容。第四个坑连接器焊盘到差分线的过渡。连接器焊盘通常比差分线宽很多如果直接连接会形成一个阻抗突变点。我的做法是在焊盘和差分线之间加一段渐变线长度约1mm到2mm让线宽平滑过渡。这样阻抗变化更平缓反射更小。6. 从设计到打板文件输出与板厂沟通要点6.1 OutJob文件配置快速输出Gerber和钻孔文件Altium Designer的OutJob文件可以一键输出Gerber、钻孔文件、贴片文件等。我习惯创建一个OutJob包含以下输出Gerber文件顶层、底层、内层地、内层电源、阻焊层、丝印层NC钻孔文件钻孔表和钻孔文件贴片文件Pick and Place测试点报告如果有测试点的话输出Gerber时注意单位选毫米格式选2:5精度足够。钻孔文件选Excellon格式单位毫米。6.2 给板厂的阻抗控制说明打板时一定要在备注里写清楚USB2.0差分对需要控制差分阻抗90Ω±10%。最好附上叠层结构和线宽线距参数。有些板厂会帮你调整线宽线距来匹配阻抗但前提是你得告诉他们你的要求。我一般会写一个简单的阻抗控制说明包含叠层结构顶层信号/内层地/内层电源/底层信号介质厚度顶层到内层地0.2mm差分对线宽0.2mm差分对线距0.2mm目标差分阻抗90Ω参考层内层地板厂收到后如果有疑问会联系你确认。如果板厂说做不到那就得调整线宽线距或者换叠层。实操心得有些板厂会提供免费的阻抗测试报告打板时勾选这个选项。虽然多花一点钱但能拿到实测阻抗数据对后续设计很有参考价值。我一般都会选。6.3 打板后的调试与迭代板子回来后先目测检查差分对走线有没有明显问题比如线宽不均匀、过孔偏位、参考平面裂缝等。然后上电测试USB2.0功能。如果功能正常再考虑做信号完整性测试。如果功能不正常先排查焊接和连接器再排查差分对走线。用万用表测差分对的通断和短路用示波器看差分信号的波形。如果波形明显畸变大概率是阻抗问题需要重新调整线宽线距打板。迭代时每次只改一个参数比如只改线宽或者只改线距这样才能知道哪个参数对阻抗影响最大。不要一次改好几个参数否则出了问题都不知道是哪个引起的。7. 我个人的实操体会做了这么多块USB2.0的板子我最大的体会是阻抗控制不是算出来的是试出来的。理论计算给你一个起点但实际板厂的工艺偏差、阻焊层厚度、铜厚公差都会影响最终阻抗。所以第一版板子一定要留足够的调试余量比如线宽线距做几组不同的组合打回来实测哪组最接近90Ω。另外不要迷信仿真。仿真软件再准也模拟不了板厂的实际工艺。我见过太多仿真完美但实测翻车的案例。所以有条件的话第一版板子一定要做阻抗测试拿到实测数据后再优化。最后差分对布线要趁早。在PCB布局阶段就要规划好差分对的走向不要等到最后才布。差分对优先布其他信号给它让路。如果空间实在不够宁可加层或者改布局也不要强行把差分对布得歪歪扭扭。这个内容后续还可以这样扩展如果你要做USB3.0或者USB Type-C差分阻抗要求变成85Ω或90Ω而且速率更高对过孔和连接器的要求更严。到时候可以在这个基础上进一步优化叠层和布线策略。