USB 2.0不是四根线那么简单:从引脚电平跳变读懂主机如何“认出”你的设备
你有没有遇到过这样的场景?
插上USB设备,电脑毫无反应;
拔掉重插,系统弹出“未知USB设备”;
用示波器一测,D+上拉电压只有2.1V——而手册白纸黑字写着“必须≥2.8V”;
或者更糟:设备工作几分钟后MCU莫名复位,VBUS纹波峰峰值飙到1.2V……
这些都不是驱动或固件的问题。它们藏在那四根看似简单的铜线里:D+、D-、VBUS、GND。
USB 2.0的“即插即用”,从来不是靠软件魔法实现的——它是一场精密的硬件级对话,从你把插头推进去的第1毫秒就开始了。
D+和D-:两根线,三种速率,一次握手定乾坤
别被“差分信号”这个词吓住。你可以把D+和D-想象成一对配合默契的对讲机——不靠时钟同步,全靠彼此电平的相对变化来传递信息。
它们到底在说什么?
| 状态 | D+电平 | D-电平 | 含义(全速/高速) | 含义(低速) | 协议作用 |
|---|---|---|---|---|---|
| J | 高 | 低 | 逻辑‘1’ | 逻辑‘0’ | 标识空闲、包起始 |
| K | 低 | 高 | 逻辑‘0’ | 逻辑‘1’ | 包结束、SE0前导 |
| SE0 |