首页 / 资讯中心 / 文章详情

USB 2.0引脚定义与90Ω差分阻抗匹配详解:从原理到PCB落地

USB 2.0引脚定义与90Ω差分阻抗匹配详解:从原理到PCB落地 ★ FEATURED ARTICLE
上周帮朋友看一块小板子主控是常见的MCU只做了USB 2.0全速/高速外设焊好后插电脑就是不认设备。我拿示波器一测D D-两个引脚上的波形边沿拖着长长的尾巴过冲之后还振了好几下。查到最后问题就出在很多人容易忽略的阻抗匹配上——PCB走线的差分阻抗偏了信号反射在D D-上来回弹眼图早就闭上了。USB 2.0接口看引脚定义只有4根线VBUS、D-、D、GND比SPI、UART都简单很多人就抱着能通就行的心态随便布线。等到枚举失败、掉线、速度异常才想起来D D-是一对高速差分信号引脚定义背后还藏着一套信号完整性规则。这篇文章就把USB 2.0接口定义里的引脚细节和阻抗匹配要求一次性讲清楚从引脚怎么认、阻抗为什么非得90Ω、到PCB上怎么落地、出了问题怎么排查适合硬件工程师、嵌入式开发者和自己打样做USB小设备的玩家收藏。1. USB 2.0接口引脚定义先把每个针脚认清楚1.1 标准USB 2.0 Type-A / Type-B的4针定义USB 2.0从规范层面定义了4根信号线Type-A和Type-B接口在引脚功能上是完全一致的只是物理形状不同。Type-A就是我们最常见的扁平口电脑主机上的那种做U盘、鼠标接收器基本都是它Type-B是方形口打印机、开发板比如STM32F103C8T6的核心板上经常见到。引脚编号信号名称线缆颜色功能说明1VBUS红5V电源供电标准端口最大500mA2D-白数据负信号差分对负端3D绿数据正信号差分对正端4GND黑电源地也是信号回流路径这里面的核心其实就一句话D和D-不是两根独立的信号线而是一对差分信号。USB 2.0所有数据传输都靠这对差分线上的电压差来实现数据不是看单根线对地电平而是看D和D-之间的相对电压。这也是后面所有阻抗匹配要求的起点。很多人容易忽略的是这4个引脚里还藏着一套速度检测机制。USB 2.0支持低速1.5Mbps、全速12Mbps和高速480Mbps三种模式设备插入后主机就是通过D或D-上的上拉电阻来判断速度等级的全速设备12Mbps在D引脚上接1.5kΩ上拉到3.3V低速设备1.5Mbps在D-引脚上接1.5kΩ上拉高速设备先按全速设备方式上拉D主机识别后再通过Chirp握手序列切换到480Mbps高速模式。主机端D和D-上各有一个15kΩ的下拉电阻用来检测设备插入时D或D-被拉高的情况。在设计原理图时这个上拉电阻的接法直接影响设备能不能被正确识别很多人布线没问题却识别失败就是因为上拉电阻接错了引脚。1.2 Mini、Micro与Type-C里的USB 2.0差异除了Type-A和Type-B嵌入式开发里还有Mini USB和Micro USB。它们比标准4针多了一个ID引脚总共5个引脚VBUS、D-、D、ID、GND。多出来的ID引脚主要用于OTGOn-The-Go功能用来区分本设备是当作主机Host还是外设Device使用。ID引脚接地表示本设备作为主机ID引脚悬空则作为外设。很多嵌入式产品只用Micro USB供电和通信把ID引脚直接悬空即可不影响USB 2.0基本连接。Type-C接口就更特殊了。Type-C物理上有24个引脚但在USB 2.0模式下真正用到的数据引脚只有DP1D和DN1D-——具体在Type-C座子上对应A6/A7或B6/B7取决于插入方向。Type-C的CC1/CC2引脚用于检测插入方向、协商供电能力而不是数据信号这一点很容易搞混。想用Type-C做USB 2.0设备除了接VBUS、GND、D、D-通常还需要在CC引脚上配置5.1kΩ下拉电阻作为设备或56kΩ上拉电阻作为主机否则主机不会认为有设备插入。另外要留意USB 3.x的接口。USB 3.0的Type-A虽然外形和USB 2.0一样但内部是9个引脚前面4个是USB 2.0兼容用的VBUS、D-、D、GND后面5个是超速信号SSTX/-、SSRX/-、GND。画原理图时一定要看仔细尤其是复用Type-C的方案USB 2.0信号和USB 3.x的SuperSpeed信号是两套独立总线引脚别接串。2. 阻抗匹配为什么USB 2.0会在意90Ω2.1 特征阻抗是怎么一回事要理解阻抗匹配先得放下导线就是0欧姆的直觉。低频电路里一根走线确实可以看成理想导线信号波长远大于走线长度导线上的电压到处都一样。但到了USB 2.0高速模式480Mbps的信号基本频率约240MHz不小更要命的是信号的上升沿只有几百皮秒这里面包含的高频分量能到几GHz。此时走线长度如果和信号波长可比导线就不再是普通导体而是一条传输线。传输线上每一点都会有一种瞬态阻抗它取决于走线的几何结构线宽、线厚和周围介质介质层厚度、介电常数以及和参考地平面的距离。这个瞬态阻抗如果沿线保持恒定就是特征阻抗单位是Ω。可以拿水管打个比方恒定水流在水管里平稳流动时什么感觉都没有但如果你把某一截水管突然变细或变粗水流到了变径处就会产生反射形成回波。信号在PCB走线上也是一样只要走线阻抗发生突变一部分能量会被反射回来一部分继续往前。反射回来的能量叠加在原始信号上就表现为振铃、过冲、台阶严重时直接让接收端误判电平。USB 2.0高速信号对反射尤其敏感。因为信号摆幅小高速模式下差分幅度约400mV、边沿快一点点反射就足以形成明显的振铃。阻抗匹配的本质就是让D D-走线的特征阻抗在整个链路中保持尽可能一致让信号能量顺畅地从驱动器传到接收端而不是在阻抗突变点来回弹。2.2 USB 2.0对阻抗匹配的硬指标与失控后的表现USB 2.0官方规范对线缆和连接器的特性阻抗要求是90Ω差分阻抗。这里说的是差分阻抗不是单端阻抗——差分阻抗指的是D和D-两根线作为一个整体呈现的阻抗。规范要求的范围是90Ω±15%也就是76.5Ω到103.5Ω之间。但实际工程里我强烈建议设计目标定在90Ω±10%以内有条件就压到±5%。因为USB 2.0链路不只是PCB还包括连接器、线缆、ESD保护器件每一段都会引入偏差。PCB如果已经跑到±15%的极限加上线缆和连接器的偏差整个链路就别想稳定了。我自己做项目时都是按90Ω±5%去和板厂沟通成本和普通阻抗控制相差不大但信号余量明显好很多。差分阻抗失控后最先表现在眼图上——这是衡量高速信号质量的核心指标。阻抗不匹配会造成反射反射叠加到信号上眼图的眼睛就会变小、变眯、甚至闭合。接收端在眼图闭合的情况下采样误码率直线上升。在实际使用中你可能不会直接看到眼图而是看到以下症状设备插入后枚举失败Windows提示无法识别的USB设备枚举偶尔成功但只要传输稍微大点的数据包就断开设备被识别成全速设备而不是高速设备说明高速Chirp协商失败退回了12Mbps全速模式设备能识别但通信不稳定插拔几次后失效。这里还要澄清一个容易混淆的概念差分阻抗90Ω不代表D、D-各自的单端阻抗是45Ω。差分线对之间存在耦合两根线离得越近差分阻抗相比2倍单端阻抗降低得越多。为了达到90Ω差分阻抗实际单端阻抗往往要设计在45Ω到55Ω之间具体要看走线间距和叠层。这也是为什么不能简单用单端50Ω的走线规则去套USB 2.0差分线必须用专门的差分阻抗计算工具。3. 从原理图到PCB90Ω差分阻抗的落地实操3.1 叠层规划与阻抗计算做好USB 2.0的阻抗匹配第一步不是在布线软件里画线而是先把叠层和阻抗参数算清楚。以最常见的四层板为例推荐的叠层结构是L1信号层D D-优先走这里L2完整地平面GNDL3电源平面PWRL4信号层低速信号D D-信号必须有紧邻的、连续的地平面作为回流路径第二层是完整地平面这对信号质量是个天然保障。两层板不是不能做USB 2.0高速但对走线下方地平面的连续性要求极高难度会大不少。新手做USB 2.0高速设备建议直接上四层板省下的调试时间远比板费值钱。计算阻抗时我常用Polar SI9000或者Saturn PCB Design Toolkit。SI9000是行业事实标准但上手门槛略高Saturn PCB Toolkit免费且够用。计算步骤如下确定叠层参数。需要知道参考层到信号层的介质厚度、介电常数Er、铜箔厚度。这些参数最好直接找板厂要不同板厂的叠层差异很大抄网上的线宽数据很可能翻车。选择模型。表层走线选Coated Microstrip带阻焊层的微带线内层走线选Edge-Coupled Stripeline或Broadside Coupled Stripline。阻焊层会让阻抗降低几个Ω计算时最好考虑进去。输入目标阻抗90Ω调整线宽Width和线距Gap得到满足要求的几何参数。在PCB制板说明文件里明确写上D D-差分阻抗控制90Ω±10%线宽线距按计算结果标注。经验上常规1.6mm四层板、表层铜厚1oz、信号层到参考层介质厚度约0.1mm的条件下表层90Ω差分线大约是线宽5mil、线距7mil左右。但不同板厂叠层不同数值可能在4.5/6.5到6/9之间浮动。一定不要直接抄参数要用工具算或者直接让板厂按阻抗要求帮你调整线宽线距。3.2 布线规则与细节阻抗计算只是第一步真正考验功夫的是布线。USB 2.0差分对的布线规则可以总结成几个死命令第一D和D-必须紧贴着平行走线。差分信号靠两根线之间的耦合来维持共模噪声抑制能力距离拉开、耦合变弱差分阻抗就会漂移。两根线之间不能夹其他信号也不能一个走表层一个走内层。第二D和D-尽量等长。USB 2.0高速模式本身对内等长要求不算苛刻但长度差会直接转换成共模噪声建议控制在5~10mil以内。注意绕等长的时候别用又长又密的蛇形线去强行补偿几毫米的差距稍微做一个S形短绕就够了。优先保证走线短、直、阻抗连续不要为了等长把简单问题复杂化。第三走线尽量短少打过孔。每次过孔都会引入阻抗不连续相当于在传输线中间塞了个小变径管。D D-如果必须换层旁边一定要放接地过孔给回流信号提供连续路径。打孔数量控制在1~2个以内过孔stub要短。第四D D-下方必须连续地平面。走线跨过地平面分割或开槽回流路径被截断阻抗和信号质量都会严重恶化。布板时先保证差分线下方干净再考虑其他信号。第五转角用45度或圆弧避免直角走线。直角处线宽突变会导致阻抗突变高速信号下尤其明显。另外建议D D-主走线长度控制在200mm以内。USB 2.0高速对走线总长度没有硬性规范但走线越长衰减和反射问题越突出。过长的走线即便阻抗匹配得很好信号幅度和眼图张开度也会变差。3.3 原理图侧的匹配措施阻抗匹配不只是PCB走线的事原理图上的器件选型同样关键。最常用的是串联匹配电阻。USB 2.0高速信号的驱动端阻抗往往偏低在靠近主控芯片的位置串一个22Ω到33Ω的电阻可以起到阻抗匹配、吸收反射的作用。这个电阻必须放在源端也就是靠近主控引脚的那一侧而不是靠近连接器。如果放错位置匹配效果几乎为零。电阻值不是随手定的要看主控的驱动能力和信号边沿串得太大信号幅度不够串得太小反射压不住。我常用的做法是先按22Ω画上去板子回来实测波形过冲大就加大到27Ω或33Ω幅度不够就减小。顺便说一句如果你用的主控是STM32这种内部已经做了驱动调整的有时候不串电阻也能工作但留有匹配电阻的位置永远是稳妥的。ESD保护器件也要格外小心。USB的D D-裸露在外静电防护必须有但普通TVS二极管的结电容可能达到3pF甚至更高直接挂在高速信号路径上等效于给传输线加了个大电容边沿会被拉缓眼图会明显收缩。选TVS时务必看结电容参数USB 2.0高速应用建议结电容不超过0.5pF像USBLC6-2SC6这种经典的USB专用ESD保护芯片结电容约0.6pF是很多成熟方案都在用的。TVS同样要靠近连接器放置让静电在入口就被泄放掉。还有一个容易被忽略的是共模扼流圈。它对于抑制USB电缆上的共模噪声很有效但前提是它本身的差分阻抗要和90Ω匹配且带宽足够覆盖480Mbps信号。不是每一个USB设计都必须加共模扼流圈不加时先保证布线质量加之前要仔细核对器件参数否则可能好心办坏事。4. 常见问题与排查技巧实录4.1 现象驱动的排查思路USB 2.0的故障现象往往一样但根因千差万别。下面整理我在实际调试中遇到最多的几类情况和对应的排查顺序。故障现象最容易忽视的原因排查方向设备完全不被识别D/D-接反、VBUS未供电、GND虚焊万用表量VBUS与GND量D/D-是否连通到主控对应引脚识别为未知USB设备D上拉电阻丢失或错位、串阻过大检查设备端1.5kΩ上拉是否在正确引脚量上拉与3.3V连通高速模式不稳定偶尔降为全速高速Chirp协商失败、D/D-信号质量差示波器看D/D-波形重点看边沿和振铃大文件传输时断开VBUS跌落、电源纹波大、连接器虚焊示波器测VBUS在传输时是否有跌落检查GND连通插拔几次后失灵ESD损伤、连接器焊盘开裂检查连接器机械强度和焊盘替换法验证D/D-接反是我见过最高频的错误尤其是从MCU引脚直接拉线出来做测试板的时候。USB 2.0的D和D-接反主机不会炸但设备就是无法识别。排查时不要只看原理图要一路量到MCU引脚确认D确实连到了主控的USB_DP引脚。另一个高频坑是1.5kΩ上拉电阻。全速设备必须在D上接1.5kΩ上拉高速设备在Chirp协商完成后由内部断开。如果这个电阻没接或者接到了D-上主机就检测不到设备插入。这个电阻的电源也需要注意必须来自3.3V不能直接接5V否则电平不匹配会导致通信失败。4.2 实测工具与验证手段排查USB 2.0信号问题示波器是少不了的但用不对探头反而会误导你。普通1x无源探头带宽低、输入电容大十几pF直接挂到D/D-上会严重加载信号看到的波形根本不是真实情况。10x无源探头电容小一些但超过100MHz带宽之后衰减明显对480Mbps信号来说也偏勉强。有条件建议用有源探头输入电容不到1pF测出来才靠谱。没有有源探头时至少用带弹簧探针的短地线把探头地环路缩到最小不然高频振铃很可能有一半是探头自己产生的。看波形时重点观察三个指标单端信号摆幅是否正常、上升沿是否平滑、过冲和振铃幅度大不大。USB 2.0高速信号在D/D-上的单端摆幅约400mV全速模式约3.3V摆幅。如果看到明显的过冲和振铃阻抗不连续基本跑不了。有条件的话用TDR时域反射计测一下D/D-沿线的阻抗曲线能直观看到阻抗突变点在哪里。没有TDR也问题不大拿眼图模式看D/D-信号如果眼睛又大又亮信号质量就没问题如果眼睛闭合、线条毛糙就是信号完整性问题。软件层面可以用USB逻辑分析仪或USBTrace这类工具抓枚举过程看主机发了什么请求、设备回了什么。如果设备枚举到了获取描述符那一步失败通常是数据阶段信号质量问题如果连设备插入都没检测到大概率是上拉电阻的问题。4.3 踩坑经验清单最后分享几条我用真金白银换来的经验每一条都对应过实际翻车现场。不要在D/D-上乱加测试点。我看到很多设计为了调试方便在差分线上拉出一根长走线接测试点这等于在高速信号路径上开了一个很长的stub反射、谐振全来了。非要留测试点用直径0.5mm的小焊盘直接放在走线旁边不要单独拉线出来更不要用排针。不要给D/D-加LED指示灯。LED本身是二极管结电容会加载到信号线上再加上限流电阻到地等于给高速信号挂了个电容负载轻则边沿变缓重则高速模式直接协商失败。指示灯要用就用串联方式或者干脆不要放在USB线上。差分线的绕等长要克制。很多工程师受并行总线设计影响看到长度差了十几mil就难受非要绕成完全等长。USB 2.0的高速信号对内skew容限并不紧十几mil的差距完全在范围内。强行绕线反而会引入额外的阻抗不连续得不偿失。双层板做USB 2.0高速要格外谨慎。不是不能做但地平面不完整D/D-回流路径很长阻抗一致性很难保证。实在要用双层板D/D-要尽量贴着地走线并且周围用地线填充包裹但包地操作本身也可能改变阻抗需要配合阻抗计算不是随手画一圈地线就算完。写在最后的一点体会USB 2.0这接口看起来老掉牙了但我这几年做下来每次都会被它给上一课。多数问题不是原理图错而是PCB细节不到位。90Ω差分阻抗不是玄学它是由走线几何、叠层参数、回流路径共同决定的工程指标只要每一步都按规矩来做USB 2.0高速模式完全可以做得又稳又干净。如果你只是做个全速12Mbps的小设备阻抗匹配的压力确实没那么大但我还是建议按照90Ω差分阻抗的标准去设计。因为接口规范是向后兼容的今天跑全速的设备明天换个主控可能就要跑高速PCB又不会重画提前按高标准做省得到时候再返工。
阅读完成 · 觉得有帮助?
咨询建站