有关HUB供电方式——总线供电与自供电
一:根据USB规范,从电源方面来讲,USB设备分为自供电和总线供电两种设备类型,设备通过枚举过程的设备描述符声明自己的电源要求。自供电设备不使用 HSOT/HUB的电源,而是自身有电源供应;总线供电即指设备电源来自VBUS。
即USB设备:
- 自供电:使用外部电源进行供电。
- 总线供电:使用USB总线的(5V)进行供电。
二:对于由总线供电的设备,根据功耗可区分低功耗设备和高功耗设备:
- 低功耗设备:最大电源供电为100mA
- 高功耗设备:在设备枚举过程中配置供电为100mA,在正常使用过程中为500mA.
-
设计电路推荐
疑问:总线供电时,主机口是如何给设备分配电流的?
以下用于验证的HUB来自沁恒微电子的USB2.0高速4端口HUBCH334系列
总线供电方式验证:
开启HUB总线供电模式,HUB芯片由上行口电源供电,下行设备由外部电源供电
汤铭和创惟的HUB开启总线供电后现象一致(这里有个问题,虽然现象上是开启总线供电的表现,通过USBVIEWM中的描述符看,这两个HUB实际上传的描述符里还是自供电模式)
低速设备上报电流普遍为100mA,识别正常,全速高速设备所需最大电流需要200,300mA等,现象表明,主机可能是通过设备上传额的描述符值来判断电流,并不是实际的电流检测
利用CH549模拟一个HID类设备,修改配置描述符里的最大电流参数为98和102mA,
结果表明102mA异常,98mA正常,
猜想:HUB的最大工作电流为100mA,开启总线供电后,可能是设备上报的电流不能超过HUB,实际测试如果接4个100 mA的设备也是正常
反向验证:通过修改配置参数,将HUB的最大电流改为300mA,开启总线供电,外接549模拟设备,结果异常,结论不完全正确
结合下行口接四个100mA的设备均能正常识别
猜想:可能是上行 VBUS 500mA平均分给下行四个端口
结论:
总线供电的集线器在枚举后,VBUS 500mA 会被平均分为五个单位负载(每个单位负载100mA)给到集线器集线器内控制器和不可移除配置项(HUB内部用于配置电源的控制器)和下行四个外部端口,且总线供电的集线器只可以给每个外部端口一个单位负载100mA
以下是部分USB2.0协议原文:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具