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