usb 驱动学习总结:
usb 采用分层的拓扑结构,金字塔型,最多是7层。
usb 是主从结构,主和主或者从和从之间不能交换数据。理论上一个usb主控制器最多可接127个设备,协议规定每个usb设备具有一个7bit的地址,范围是[0,127], 0地址是保留给为初始化的设备用的。
一个完整的USB数据传输过程如下:
下行:
USB主控制器发出命令和数据 -》 根hub -》子hub或者usb 设备。
上行:
设备接收到数据,处理返回数据和信息 -》 上一层hub -》上一层hub...-》主控制器。
hub 集线器可以扩展出更多的usb接口,但是是不能扩展出更多的带宽。
Usb2.0 插头:
USB-A: 指向主控制器,上行方向。
USB-B: 指向设备和hub, 下行方向。
usb3.0 插头:
上图是标准的usb3.0 A接口。
micro的接口,这里不记录,需要的时候查阅。
可以看到usb 主要有四根线, VBUS, D+, D-, GND.
可以看到GND和VBUS比D-,D+要长一些,这是专门为热插拔而设计的硬件结构。
当插入时:
先接通GND和VBUS ,然后接通数据线。
拔下时:
先断开数据线,再断开GND和VBUS
这就保证了在插拔时,不会出现有数据信号而无电源的情况.如果数据数据线早于电源线接通,则可能会让芯片I/O引脚电压比电源电压高,从而进入芯片闩锁-latch up 现象, 一旦进入这个状态,轻则不能工作,重则芯片过流,过热烧毁。要解除latch up现象,必须断开电源,重新上电。
usb信号线的颜色: VBUS:红色 D-:白色 D+:绿色 GND:黑色
参考文献:
http://www.totalphase.com/support/articles/200472426#s1.1