关于USB的那点糗事

本文作者分享了在产品设计中关于USB3.0接口的两个常见误区:误认为USB3.0/2.0是独立接口,以及误以为USB Hub能同时连接Host和Device。通过与模块厂家的技术交流,了解到USB2.0和USB3.0共用同一物理接口,并且USB Hub不能同时连接Host和Device。这两个误区提醒我们在技术设计中要避免自以为是,确保充分理解技术规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近,在做一款产品,里面用到了一个USB3.0接口,在做产品功能设计的时候,由于对USB的认识存在误区,导致了设计出现了错误,现记录一下,防止以后再发生类似的笑话 ):

误区一:认为USB3.0/2.0是两个独立的接口

我们使用的是一款5G模组,下面是产品手册上关于USB接口的描述:
在这里插入图片描述
注意,红框标注的部分。起初,我只注意到了,该USB接口符合USB2.0和USB3.0规范,就天真的认为,其为两个独立的接口,一个是USB2.0,另一个是USB3.0,所以,设计了如下的USB设备架构:
在这里插入图片描述
可以看到,USB2.0作为串口扩展,USB3.0作为调试口。但是,通过与模块厂家技术人员沟通之后,人家明确说,模块只有一个USB Phy,意思是USB2.0和USB3.0是同一个USB物理接口,只不过其符合USB2.0和USB3.0规范。其实,产品手册说的很清楚,提供了一个集成的USB接口,只不过,该接口支持USB3.0和USB2.0规范,哎,小学语文没有过关啊!-_-||

误区二:认为USB HUB可以同时接Host和Device

刚开始设计USB设备架构的时候,还进入一个十分低级的误区,那就是,天真的认为,USB HUB之后,既可以接USB Device(例如USB转UART芯片),也可以接USB Host(例如PC),如下图:
在这里插入图片描述
真是无知啊,一个USB接口,怎么可能同时即做Host,又做Device,即便通过USB HUB也是不可能的啊!USB HUB只是为USB Host服务的,其只是扩展了USB所能连接的USB设备的数量,但,HUB的两端,绝对不能,同时接两个HOST,那就违背了USB的设计原则:同一USB系统中,同时只能有一个HOST,记住,只能有一个!!

上面两个误区,可以表明,对于USB,我其实一无所知的,但,有趣的是,我竟然自以为是的设计了一套,自认为可以工作的USB设备架构,所幸,这是在设计阶段出现的问题,如果,硬件设计出来之后,再暴露问题,岂不呜呼哀哉!!所以,对于技术,我们要怀有敬畏,不能不懂装懂,更不能自以为是的去指导别人,否则,后果不堪设想!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值