ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

USB 3.0 HUB设计实战:从原理图到量产的高速信号与电源完整性指南

USB 3.0 HUB设计实战:从原理图到量产的高速信号与电源完整性指南 USB 3.0 HUB这个题目我前前后后做了三版才敢说真正摸透了。第一版板子能枚举但速度跑不上来第二版信号通了却偶尔掉盘直到第三版把电源和信号完整性协调好才算是完整的量产方案。这篇东西不是把数据手册翻译一遍而是把我踩过的坑、验证过的做法以及当初为什么这么选型的逻辑都摊开讲。无论你是做嵌入式主板要扩展USB口还是做独立HUB产品或者纯粹想搞清楚5Gbps高速信号到底要怎么走线这篇文章应该能帮你少折腾至少一个月。1. 项目概述与整体设计思路很多人觉得HUB就是个分叉器把1个USB口变成4个或者7个简单得很。但真把电路画出来、板子做回来通电一测就会发现USB 2.0时代的经验在USB 3.0上基本不够用。5Gbps的信号速率摆在那里差分走线的阻抗、等长、参考平面、电源纹波每一项都能让整个项目翻车。1.1 USB 3.0 HUB到底解决了什么问题接口数量不够这是最表面的需求。一台笔记本两个USB-A口插了鼠标键盘就没法插U盘一套嵌入式主板要同时接摄像头、4G模组、调试串口原生接口根本不够分。HUB解决的第一个问题就是端口扩展。但更深层的需求其实有三个。第一是高速信号的中继与重定时USB 3.0信号在5Gbps速率下经过连接器、线缆后信号质量会明显劣化HUB芯片内部的转发器架构可以对信号进行整形和重驱动让每一路下行端口都能获得完整的高速信号。第二是电源管理多端口同时供电、负载突变时需要平稳的电能分配HUB需要做限流保护防止一路短路拖垮整个系统。第三是拓扑管理即插即用、端口枚举、故障隔离这些底层协议交互都由HUB芯片自动完成硬件设计要保证芯片工作环境足够稳定。所以USB 3.0 HUB设计本质上是在做三件事高速数字信号的完整性设计、多路电源系统的稳定性设计、可靠性与保护机制设计。任何一件做不好最终表现为用户能感知的问题比如掉盘、速度不稳、设备无法识别。1.2 技术核心难点拆解我们用一句话概括USB 3.0 HUB的核心挑战在低成本、小面积的板卡上同时保证5Gbps超高速信号低损耗传输、多路电源低纹波供电、系统长时间稳定运行。具体拆开看有三个绕不开的难点。信号完整性是第一个门槛。USB 3.0的信号速率是5Gbps上升沿时间非常短PCB走线的分布参数已经不能忽略。差分阻抗要控制在90欧姆正负10%走线要尽可能短、等长、不跨分割过孔换层需要加回流地孔连接器选型也要考虑高速性能。这些细节在USB 2.0时代都不算事480Mbps的速度对走线宽容得多。电源完整性是第二个坑。HUB芯片内部有多个电源轨比如核心电压1.1V、模拟电压0.9V、IO电压3.3V每个轨对纹波和瞬态响应都有要求。更麻烦的是下行端口还要往外供电每个端口都可能突然插入一个大功率设备瞬间拉掉几百毫安甚至上安培电流如果前端电源设计不够强壮电压跌落会导致上行链路直接断开表现就是HUB掉了又恢复非常恶心。协议与兼容性是第三个层面。HUB不是简单的信号中继它要参与USB枚举过程要处理设备的挂起、唤醒、复位、带宽分配。硬件设计上如果复位时序不对、EEPROM配置错误、上电顺序有问题可能在某些主机上正常工作换一台电脑就识别不了。这种兼容问题排查起来极其耗时。1.3 我的方案设计路线参考目前市面上主流的独立HUB方案我做的是4端口USB 3.0 HUB上行一个USB 3.0 Type-C口下行四个USB 3.0 Type-A口。主控芯片选择台湾VLI的VL817这是市面上用量非常大的4口USB 3.0 HUB控制器成熟稳定、资料齐全、成本合理。电源部分采用AC-DC适配器输入12V板载降压电路转5V给HUB主控和下行端口供电同时用LDO为主控核心供电提供干净的低纹波电源。每个下行端口都配备独立的负载开关和过流保护。PCB采用四层板设计第二层完整地平面第三层电源平面顶层底层走信号满足差分阻抗控制和回流路径要求。这个方案不是一个激进的新设计而是建立在成熟架构上的稳健实现。选VL817而不是更新款的芯片核心考虑是它在市场上的验证时间够长网上能查到的参考设计和问题讨论也更多。量产项目最怕选到软件文档不完善、踩坑无参考的新芯片。2. 核心器件选型与原理剖析器件选型和技术方案是两回事。方案说的是用什么架构选型是具体到每一颗料用什么型号、为什么用它。器件选型做得细后面硬件调试能少很多事。2.1 HUB主控芯片选型对比市面上主流USB 3.0 HUB控制器主要就几家台湾VLI威锋、台湾Genesys Logic创惟、Microchip、TI。它们的产品各有侧重。VL817是VLI主推的4口USB 3.0 HUB控制器功能完整度很高内置5V转3.3V/1.1V稳压器支持MTT多事务转换器模式对USB 2.0全速/低速设备有更好的带宽分配支持通过外部EEPROM配置端口属性、LED指示灯模式等。它兼容USB 3.0和USB 2.0下行端口数量是4个可以级联扩展。优点是成熟稳定国内外大量产品在用原厂FAE支持也相对好参考设计多。缺点是芯片体积相对于其他方案略大物料成本不是最低。Genesys Logic的GL3523功能定位类似支持USB 3.1 Gen1内置5V转3.3V稳压器支持LED配置、过流检测在成本敏感的产品上应用很多。GL3523的功耗做得更小BOM成本可以压得更低。但它的固件配置工具和文档资料没有VLI那么全面遇到问题排查时参考资源少一些。Microchip的USB5744是更高端的方案是USB 3.1 Gen1 4端口HUB属于FlexConnect系列一个最大的卖点是支持端口复用配置可以做USB和I2C/SPI等功能的用户自定义口。适合需要灵活配置的复杂嵌入式产品但价格大约是VL817的两倍对于单纯做USB扩展的HUB产品来说性价比不高。TI的方案大多数需要外挂MCU做控制适合对成本完全不敏感、需要深度定制行为的场景普通HUB产品用得少。如果做成本敏感的消费级产品GL3523是不错的选择如果做兼容性优先、想减少开发风险的产品VL817是更稳妥的方案。我自己做的这个项目选了VL817主要是看重它的资料最全调试遇到问题时能找到的参考更多。2.2 电源系统设计与器件选型HUB板卡的电源架构分为上行取电和外部供电两种模式。独立的USB HUB产品通常使用外部电源适配器供电因为4个下行端口同时都要向外输出5V电源时仅靠USB主机口取电根本不够。本方案采用外部12V DC输入通过DC-DC降压芯片将12V转成5V然后给HUB芯片和下行端口供电再通过LDO把5V降到3.3V、1.1V给VL817的数字部分和模拟部分提供干净电源。DC-DC选型上我选的是同步降压转换器比如TI的TPS54531或者国产的MP2315输出能力至少3A。4个USB 3.0端口每个最大电流需要900mA理论总负载可到3.6A3A电流会有点紧张所以我会把下行端口的限流设置在900mA每路同时让前端DC-DC设计余量到4A左右做法是选择更大电流输出的降压芯片或者使用双相并联但双相设计复杂度高更直接的办法是选一颗输出能力5A的芯片留足余量。这里我实际用的是MP2315的升级型号MP23175A输出实测带满4路900mA负载纹波在30mV以内够用。LDO的选择主要看压降和纹波性能。5V转3.3V用AMS1117这类常规LDO就可以5V转1.1V压降太大用普通LDO效率低发热高这个轨我直接由DC-DC的5V输出经过一个低噪声LDO得到比如LT1963A它的噪声很低适合给对电源敏感的模拟部分供电。这里有一个非常重要的设计思想高速数字电路上开关电源的纹波噪声会直接影响时钟和信号质量所以HUB主控的数字模拟电源一定要用低噪声LDO做二次稳压不能直接拿DC-DC输出怼上去。当然DC-DC本身的开关频率选择也要注意不能恰好落在USB信号的谐波频点上现代DC-DC大多支持外部同步或频率编程设计时稍加留意即可。2.3 晶振与EEPROM配置VL817需要一个25MHz晶振晶振的精度要求是正负50ppm以内普通48MHz或25MHz无源晶振即可满足。晶振旁边需要并联两个负载电容容值按照晶振手册要求计算通常22pF到33pF之间。PCB布局时晶振要尽量靠近芯片时钟引脚走线不要过孔两侧包地避免高速信号串扰。EEPROM用来保存HUB的配置参数包括端口开关、端口指示LED模式、自定义设备描述符等。VL817有几颗配置引脚可以在上电时选择配置来源有的直接用引脚高低电平组合有的支持外挂EEPROM。我的做法是保留EEPROM焊盘通过配置引脚默认使用引脚配置模式这样不加EEPROM也能正常工作后续如果需要升级修改配置再贴EEPROM。EEPROM放在I2C总线附近走线短而直接。不要小看这个配置步骤很多HUB量产产品的定制功能比如指定某个端口不支持USB 2.0、改变端口供电模式、修改指示灯闪烁策略都是通过EEPROM内容实现的。特别地如果产品要过某些认证设备描述符里的厂商信息和序列号也需要通过EEPROM来配置这是设计中容易被忽略的一个环节。3. 原理图设计从接口到电源的完整拆解原理图是整个硬件设计的地基图片画起来不难难的是每一根线背后的设计考量。我按信号流向把原理图分成上行接口、主控芯片、下行接口、电源系统、保护电路五块来讲。3.1 USB 3.0高速信号链路设计USB 3.0采用双单工架构即一对超高速发送差分对SSTX/SSTX-和一对超高速接收差分对SSRX/SSRX-再加上USB 2.0的D/D-差分对。也就是说USB 3.0接口实际上同时包含了一组USB 2.0信号和两组5Gbps超高速信号一共六根数据线。在上行Type-C接口部分由于Type-C的CCConfiguration Channel引脚用于方向检测和供电协商需要将CC引脚通过5.1k欧姆下拉电阻接地表示该设备是Device模式UFP。如果想支持方向翻转需要用CC逻辑控制一个交叉开关来正确路由USB 3.0的TX/RX对但大多数HUB上行口直接做成固定方向用一个CC下拉就够不需要交叉开关。D/D-是USB 2.0的差分对也需要做90欧姆阻抗控制不过相对USB 3.0来说容错率高很多。VL817的USB 2.0引脚内部已有串联终端电阻通常不需要在外部额外串阻但可以在原理图上预留串阻焊盘调试时如果发现信号质量不好可以通过贴电阻来微调。USB 3.0的SSTX和SSRX差分对在芯片到连接器之间走线时要注意两个要点一是差分对内等长误差控制在5mil以内二是差分对之间的长度匹配也有要求一般控制在50mil以内尤其在连接到Type-C或Type-A连接器时引脚分布不均会导致长度差异需要用蛇形走线补齐。3.2 电源树设计与去耦策略整个板卡的电源树是这样的12V输入 → DC-DC降压到5V → 分成三路直接给下行端口的VBUS供电经过负载开关经过LDO降到3.3V给主控的数字IO、EEPROM、LED指示灯供电经过LDO降到1.1V给主控核心逻辑供电下行端口的5V VBUS是瞬态大电流的来源设计时至少要在每个端口的VBUS引脚附近放置一个100uF的电解电容或钽电容加上若干个0.1uF陶瓷电容。这里注意0.1uF高频去耦电容要尽量靠近连接器的VBUS引脚而大容量储能电容可以稍微远一点因为陶瓷电容ESR低、谐振点高对高频纹波的抑制更有效电解电容则负责提供瞬态电流的储备。VL817的电源引脚比较多包括AVDD、DVDD、PVDD等每一组电源引脚都要就近放置去耦电容。我的做法是每个电源引脚都放一个0.1uF的0402电容同时在芯片附近放置一个10uF的0805电容作为局部储能。去耦电容的摆放要优先靠近引脚连接线越短越好过孔直接打在焊盘附近。主控芯片内部有LDO时比如VL817内置5V转3.3V的稳压器如果直接使用内部LDO外部就只需要加输入输出电容我们板卡已经有外部5V电源可以直接使用外置低噪声LDO方案电源质量更好。3.3 复位与使能电路设计复位电路看似简单但最容易出问题。VL817的复位引脚是低电平有效上电时需要保持低电平一段时间直到电源稳定后才释放让芯片完成初始化。如果复位信号不可靠会导致芯片初始化失败或时序混乱出现上电后设备无法枚举的现象。我的做法是用一个专门的电源监控芯片比如MAX809或国产的SGM809监控5V电源上电时输出低电平复位信号延迟时间大约200ms确保电源稳定后再释放复位。这种专用复位芯片比简单的RC复位电路可靠得多尤其是输入电源有大电容时RC复位的时间常数很难匹配。主控芯片还有一个PWREN引脚或类似功能的引脚用来控制下行端口的供电总开关。调试时可以通过拉低这个引脚来模拟过流保护动作也可以在固件配置中控制这个引脚的默认状态。原理图上要给这个引脚加一个上拉或下拉电阻默认状态要确定好避免悬空导致不确定电平。3.4 保护电路设计USB HUB最容易损坏的就是在带电插拔时被静电打坏因此ESD保护是标配。在每一个USB连接器的数据线路上要放置一颗ESD保护阵列比如USBLC6-2它内部集成TVS二极管阵列专门为USB高速信号设计电容值极低典型值0.6pF不会对5Gbps信号造成明显劣化。ESD器件要放在连接器引脚附近尽量靠近接口并且通过短而粗的走线连接到地。在VBUS电源线上也要加TVS管或压敏电阻防止外部过压或静电损伤。同时每个下行端口都要有负载开关做过流保护比如使用AP2141或国产同类产品这是一颗带限流功能的USB电源开关输出电流到达设定阈值通常900mA后会自动断开或进入恒流状态并向主控上报过流信号。负载开关的过流阈值由外部电阻设置用来搭配系统设计。做了这些保护后整个HUB的可靠性会明显提升。我之前做过一版没加ESD的样品在客户环境里使用不到一周就有一颗下行端口识别不稳定后来分析就是静电累计损伤了主控芯片的接收端。4. PCB Layout实战高速信号的成败之地原理图只是画出了连通关系真正的硬仗在PCB Layout。同一个原理图不同人布线出来的板子高速性能可能差一个量级。USB 3.0的5Gbps信号对PCB布局布线的要求非常具体每一步都有依据。4.1 叠层设计与阻抗控制四层板是本项目的最低配置叠层结构为顶层信号层、第二层完整地平面、第三层电源平面、底层信号层。第二层完整的地平面是保证高速信号回流路径连续的基石绝对不能有长槽状分割。第三层电源平面可以根据电源轨分割成多个区域比如5V、3.3V、1.1V分割线要避开高速信号走线的投影区域。差分阻抗控制方面USB 3.0要求90欧姆正负10%差分阻抗。这个数值需要根据叠层的介电常数、介质厚度、铜厚以及线宽线距来计算。我用的是JLC04161H-3313叠层单端阻抗约50欧姆90欧姆差分对应的线宽约7.5mil、线距约5mil。关键是要和板厂确认他们的阻抗工艺控制能力最好让板厂直接按照你的叠层参数出一份阻抗报告。实际上最稳妥的做法是在Layout文件的制造说明里直接要求板厂对指定的差分对进行阻抗测试并在出货时附带阻抗测试报告。PCB加工中的介质厚度、蚀刻偏差都会影响阻抗板厂的工艺参数才是最终结果。提前沟通可以避免板子回来阻抗完全对不上的尴尬。4.2 差分对走线规则USB 3.0差分对走线必须遵守几个硬规则差分对内等长SSTX和SSTX-的长度差控制在5mil以内不够的地方用蛇形走线均匀补偿蛇形线的凹凸幅度控制在基线的3倍线宽以内太靠近会引起耦合不均。差分对之间等长SSTX对和SSRX对的长度差控制在50mil以内。这个要求来自于USB 3.0规范中的时钟纠正机制但越小的偏差越能提升信号质量。差分对要走同层尽量避免换层。如果必须换层在换层过孔旁边至少打两个回流地过孔为高速信号提供回流通道。差分对参考平面要连续。这句话的意思是差分对正下方最好是完整的地平面不能跨过电源分割槽。如果确实避免不了至少要在跨分割处预留一个并联电容让回流信号有路径但这个做法是万不得已的妥协。差分对之间要保持足够间距。不同差分对之间的距离要大于3倍线宽防止相互串扰。连接器输出区域的引脚间距小这个规则很难完美达到所以要尽量在连接器附近缩短并行距离。4.3 布局规划与关键元器件的摆放布局是整个Layout的灵魂一个好的布局可以让布线工作事半功倍。HUB主控芯片放在板卡中心位置四个方向分别排布四个USB 3.0 Type-A连接器上行Type-C接口放在一侧短边这样所有高速差分线都可以以最短路径从主控走向连接器既缩短了走线距离也避免了走线之间交叉。电源模块放在另一侧远离模拟信号区域。DC-DC降压电感的摆放要特别注意它既是发热源也是噪声源。电感下面不能走高速信号线同时要保证电感的开磁场区域朝向板边或空旷区域不要对着主控芯片。DC-DC的开关节点SW走线尽量短而粗减小寄生电感和辐射。去耦电容的位置前面讲过要靠近电源引脚。特别注意VL817的每个电源引脚边的电容哪怕面积紧张也要挤出来位置放这个不能省。如果布局时电容放不下就挪到反面焊盘下方打孔连到地平面效果会打折扣但比不放好。晶振的位置极其敏感要放在主控芯片时钟输入引脚附近周围包地下方地平面完整不要在晶振下面走任何信号线。晶振的两个负载电容要对称布局走线等长。如果晶振附近走线太乱会引入抖动直接影响HUB上行链路的眼图质量。ESD保护器件必须放在连接器旁边这是它保护效果的硬性条件。如果ESD器件离连接器太远走线电感会使ESD钳位电压上升保护能力大打折扣。我一般会让ESD器件的引脚到连接器引脚走线不超过200mil。4.4 电源与地平面的处理四层板的电源平面和地平面处理重点在于分割。地平面尽量不要分割保持完整。若第二层是完整地平面底层和顶层的高速信号都有近参考面。有一个反直觉的点电源平面的分割区域不能跨越高速差分对下方。如果第三层电源平面内部有从5V到3.3V的分割线而这个分割线恰好位于顶层或底层某个USB 3.0差分对下方那么参考平面不连续会造成严重的阻抗突变和回流问题。所以电源平面分割时要先看高速走线的投影范围把分割线避开关键区域。在下行端口区域每路5V电源从电源平面拉出后在连接器电容附近用一个小平面连接然后从负载开关输出端接入。在这里负载开关的GND引脚要直接打孔连接到地平面不要和芯片的地串在一起避免大电流地弹干扰。4.5 过孔设计与返工技巧USB 3.0信号换层时过孔的寄生电容、电感和阻抗不连续都会造成信号反射。设计时尽量选用较小的过孔比如外径0.3mm、内径0.15mm过孔附近打至少两个回流地孔。如果空间允许可以采用背钻工艺去掉过孔的stub不过这需要板厂支持成本会增加。对本项目来说走线尽量不换层如果必须换规范打孔也够了。这里分享一个实用技巧在Layout完成后做一次高速差分信号的3D检查查看每个差分对过孔处的参考平面连续性。很多EDA工具有这个功能能看到过孔周围的地孔数量和位置。如果某个过孔旁边没有地孔信号完整性会很差。5. 硬件调试与问题排查实录板子焊接好以后真正的考验开始了。不要期待一次就能跑通高速电路的调试本身就是逐步逼近的过程。我把调试分成三步上电安全检测、USB 2.0功能验证、USB 3.0高速性能验证。每一步都有对应的仪器和判断标准。5.1 调试工具与准备调试必备工具包括数字万用表、示波器至少200MHz带宽建议500MHz以上、可调电源、逻辑分析仪协议分析用、USB电流计、质量可靠的USB 3.0数据线。如果有条件可以准备一个USB 3.0信号眼图测试仪器比如Teledyne LeCroy的USB协议分析仪或Keysight的示波器软件套装但那个通常费用高个人项目可以用高带宽示波器配合专用探头粗略观察眼图。上电前的万用表检查不能省确认12V输入没有短路、5V输出没有短路、3.3V和1.1V对地阻抗正常、各电源轨对地阻抗没有异常低阻。通常我还会做一次红外温度成像开机但普通项目用摸芯片温度也够上电后芯片不应该明显发烫。5.2 上电与枚举排查上电后先量测各电源轨电压确认在精度范围内。接着用USB线连接HUB上行口到电脑在设备管理器里看是否能出现未知USB设备或HUB设备。如果系统完全没有反应按优先级排查电源指示LED是否点亮如果配置了主控芯片的时钟是否振荡用示波器量晶振引脚应该能看到25MHz正弦波复位信号是否正常释放上行接口的CC下拉电阻是否焊接正确主控芯片的固件配置引脚是否设置正确。这里我遇到过一个典型的坑VL817的P0端口默认是OTG口如果配置错误上行口接上去会枚举失败。解决办法是检查配置引脚的默认状态加上EEPROM后确保配置内容正确。这也是为什么我建议初期先不要贴EEPROM用引脚默认配置跑通基本功能再说。如果系统识别到了HUB但USB 2.0设备插上去不工作重点检查D/D-差分对走线、串联电阻是否贴错、ESD器件是否影响信号质量。5.3 高速信号与速度测试在USB 2.0功能正常后才进行USB 3.0测量。最简单的测试方法是用一个USB 3.0的U盘连续拷贝大文件观察速度是否能稳定在300MB/s以上。如果只能到30-40MB/s大概率USB 3.0高速链路没有建立系统跑到了USB 2.0模式。这种情况怎么查首先看操作系统是否正确识别为USB 3.0设备设备管理器中会显示“USB xHCI Compliant Host Controller”设备连接速度属性里会显示“SuperSpeed”。如果不是用示波器单端探头量SSTX引脚是否有信号差分探头看差分幅度是否正常。USB 3.0的信号质量分析最好的是看眼图。用高带宽示波器在SSTX接收端测试点测眼图正常的USB 3.0眼图应该有清晰的张开度高度至少100mV宽度符合规范。如果眼图闭合严重或噪声很大就要检查差分对阻抗是否匹配、是否有串扰、电源纹波是否偏高。没有高速示波器的情况下也可以做一些间接判断。比如用USB 3.0 U盘跑读写测试用dd命令或Windows的CrystalDiskMark记录速度再用质量好的线缆和数据量小的U盘交叉验证判断问题是出在HUB板卡还是外设。此外可以尝试把上行线缆换成短一些的线缆看速度是否改善如果明显改善说明信号链路裕量不足。5.4 常见问题速查表我把自己和身边朋友做HUB时踩过的常见坑整理成一个速查表方便对照排查。故障现象可能原因排查措施插上后电脑无任何反应电源没起来、晶振未起振、CC下拉缺失量电压/波形检查复位和时钟识别为USB 2.0速度跑不满差分对阻抗偏差大、USB 3.0走线长度不匹配查看USB枚举速度测眼图检查差分线拷贝大文件时掉盘电源瞬态跌落、ESD损伤、USB 3.0信号裕量不足量5V VBUS跌落波形加储能电容查信号质量某个下行口不工作该口供电未开、过流保护触发、ESD器件短路测VBUS电压查负载开关控制脚检查ESD器件插拔后主机蓝屏或USB总线重置上行链路信号质量差、主控芯片电源不稳缩短上行线缆增强去耦检查地平面反复枚举不成功偶尔成功复位时序不对、EEPROM配置异常检查复位芯片延迟重写EEPROM配置5.5 一次实际调试中的掉盘问题这里分享一个具体的排查经历。第三版板子做完USB 2.0正常但用USB 3.0硬盘拷贝大文件时拷贝十分钟后会掉盘重新插拔才能恢复。我先用示波器量了掉盘瞬间的5V VBUS电压发现在硬盘读写时5V有大约200mV的周期性跌落持续几百毫秒。这个跌落幅度看起来不大但可能触发主控芯片内部的欠压保护。继续追踪发现DC-DC降压芯片输入端的12V电压也有跌落说明输入端电源适配器的带载能力不足以支撑4路端口满负载同时工作。解决方法是两方面的。硬件上在DC-DC输入端加了两个330uF的电解电容提供瞬时能量储备同时把下行端口的负载开关过流阈值调低到750mA对需要900mA的外设确实够大多数U盘、移动硬盘启动电流不会超过这个值防止多个设备同时启动时总电流超限。软件上在固件配置中关闭了空闲端口的VBUS输出让只有插入设备的端口才供电。这个坑给我们的教训是USB HUB的电源设计不光要考虑稳态电流还要考虑瞬态峰值和端口启动时的浪涌电流。设计时如果只按总功率的1.2倍留余量实际使用时大概率会在高负载场景下出问题至少要留2倍。6. EMC、散热与量产经验补全样板跑通功能只是第一步想进入正式产品阶段EMC电磁兼容、散热、可制造性这些点必须提前考虑进去否则就是一次次的改板。6.1 EMC设计要点HUB板卡的EMC问题来源主要是两类DC-DC开关电源的开关噪声和谐波以及高速USB差分信号的共模辐射。DC-DC的开关噪声传导到电源线上通过外部线缆比如USB线、电源适配器线辐射出去这是最典型的EMC整改项。减小它的手段有在DC-DC输入端加共模电感抑制共模电流在开关节点和电感上做RC吸收电路减缓开关振铃尽量让SW节点的铜面积最小化但又要满足载流以减少天线效应。USB高速信号线的共模辐射主要靠差分信号的对称性来抑制。之前讲过的差分对等长、不至于太靠近边缘、参考平面完整、阻抗匹配这些做好了共模电流自然小。此外USB连接器的金属外壳要良好接地而且接地线要短直接连到地平面连接器外壳的GND不建议浮空否则会成为辐射天线。这里需要提一点连接器外壳接地的形式也有争议有些人倾向通过RC串联接地但USB高速应用通常直接接地效果更好。一个好的EMC设计策略是在原理图阶段就在每一个可能产生辐射的部位预留滤波器件焊盘比如共模电感、RC吸收、磁珠。调试时如果辐射超标可以直接贴上去验证不用重新改板。我就是因为在原理图上预留了这些焊盘后面做认证时才不至于推倒重来。6.2 散热设计与布局考量虽然单颗VL817功耗不大典型几百毫瓦但4个下行端口都满负荷供电时板卡上的DC-DC和负载开关会明显发热。如果外壳是封闭的塑料壳内部温度上升几十度完全正常这会缩短电解电容寿命也有可能导致HUB芯片过热保护。优化做法有DC-DC芯片的散热焊盘要按规格书打足够的过孔通过过孔阵列把热量导到板内的完整地铜皮上。负载开关要选带有热关断保护功能的型号过流和过热时会自动断开保护自身。大功率元件尽量分散布局不要集中在一角这样热量均衡分布避免局部热点。如果使用金属外壳可以考虑用导热垫把板卡上的主要发热元件热量导到外壳上。这需要结构工程师配合但效果非常显著。6.3 可制造性与量产注意事项做样品时我们手工焊接做产品时就要考虑SMT产线的工艺要求。有几个点容易踩坑。首先是封装选型尽量用0402以上的阻容0603更好0201对工艺要求高、设备良率低不必要的坑不要自己挖。其次是元件的极性标注极性器件电解电容、二极管、LDO的丝印一定要清晰明确方向统一防止产线贴反。再次是测试点要预留充分每一个电源轨、关键信号、I2C总线都要有测试点方便产线ICT在线测试和维修人员排查。还有一个非常实际的建议主控芯片和复杂度高的器件尽量用编带包装而不是托盘这样贴片机效率高、物料损耗低。另外VL817等主控芯片的存储环境有注意防潮等级拆封后要在规定时间内完成焊接否则需要烘烤除湿否则焊接时会出现“爆米花效应”焊点内部空洞导致虚焊。这是一个容易被忽略的量产细节。产线调试方面每一片板卡出厂前至少要做一次USB 2.0和USB 3.0功能测试自动化测试治具上通过GPIB控制电子负载模拟端口负载配合上位机脚本自动检测端口枚举状态和读写速度。如果条件允许还要加一次简单的眼图抽检确保高速信号质量稳定批次一致。7. 实测数据与优化心得文章最后我把自己这版HUB的实测结果和优化过程记录下来做一个有数据支撑的收尾。设计完成后我做了三组测试第一组是USB 3.0读写速度测试。使用三星T7移动固态硬盘连接HUB下行口上行口接到电脑的USB 3.2 Gen1口用CrystalDiskMark测试。实测顺序读取速度约为350MB/s写入约280MB/s与直连主机时的395MB/s/300MB/s相比性能损失约10%到15%。这个损耗对于HUB产品来说是可以接受的说明高速链路设计和供电方案基本合格。第二组是极限负载测试。四个下行口同时接入移动硬盘和U盘反复进行大数据量读写。连续拷写2小时HUB板卡温度稳定在55摄氏度左右未出现掉盘和枚举失败5V电源波动控制在2%以内。第三组是兼容性测试。把HUB插到不同品牌的笔记本和台式机Intel平台、AMD平台各两套以及一台嵌入式Linux主机上所有机器都能正确识别USB 2.0、USB 3.0设备均正常。这基本验证了VL817方案的成熟度。优化中收获最大的一点是最初版本的USB 3.0速度只能到200MB/s通过把差分对换层改为尽量不走信号层、增加回流过孔、把DC-DC开关频率从600kHz改为800kHz避开干扰最终速度提升到350MB/s。这说明很多高速问题不是一次设计能完全解决的需要迭代和实测反馈。我给后续想照着做的同行几个建议第一先跑通USB 2.0再碰USB 3.0不要急于求成。第二电源设计要有大余量特别是要对瞬态负载有考虑。第三信号完整性不是玄学90欧姆阻抗、等长、完整参考平面这些规定背后都是电磁理论支撑严格遵守能省掉大量调试时间。第四量产前一定做足够的兼容性和长期稳定性测试这个钱和精力不能省。USB 3.0 HUB这个项目做完我对高速电路设计的理解上了一个台阶。从最初以为就是画个分线器到后来深入理解信号完整性、电源完整性、EMC设计和可靠性设计整个过程最值钱的就是这些亲手试过的经验。希望这篇文档能帮你把弯路走直一点。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进