電腦是怎樣識別USB3.0 U盤的
https://blog.csdn.net/zoosenpin/article/details/31735727
1 How to Recognize USB Flash Drive
USB3.0電纜如Figure 1-1所看到的。
????????????????????????????????????????? Figure 1-1
USB3.0的接口比USB2.0接口多了5根線。這5根線各自是Shield、SSRX+/-和SSTX+/-,即是屏蔽地、超速發送差分對和接受差分對。
因此一個支持USB3.0的U盤插到電腦上我們有必要搞清楚是D+/D-傳遞數據還是SSRX+/-和SSTX+/-傳遞數據。當USB3.0的U盤連到支持SuperSpeed的電腦上後,引腳接口如Figure 1-2所看到的。
???????????????????????????????????????????????????????????????? Figure 1-2
Figure 1-2中兩端相連的電纜會在USB主機和設備端的SSRX+/-上產生一個等效下拉電阻R_Term(其範圍在18-30歐姆)。如Figure 1-3所看到的。
?????????????????????????????????????? Figure 1-3
插入電纜後等效電路能夠看成一個RC回路。而RC回路有一個重要特性。就是時間常數。這個常數就是R和C乘積。也是影響充放電特性的,其充放電特性如Figure 1-4所看到的。
?????????????????????????????????????????????? Figure 1-4
從Figure 1-4能夠看出,插入和拔除電纜。將Vo充電到特定的電壓,則插入電纜後,充電須要的時長添加了。電腦的USB3.0主機就是依據這個特性探測到U盤是支持超速特性的,否則插入電纜前後假設充電到電壓Vo沒有時間變化的話,電腦就覺得是快速U盤,而不是超速U盤了。
超速U盤就使用SSRX+/-和SSTX+/-傳遞數據,而且是全雙工的。否則快速U盤使用D+/D-傳遞數據。
2 PIPE PHY數據線寬度
USB3 PIPE PHY的數據線寬度是能夠設置的,最大寬度各自是TX 32bit、RX 32bit,須要依據PIPE PHY的接口頻率來設置數據線寬度。假設PIPE PHY執行在128MHz,那麽TX和RX的數據線寬度都是32bit;假設PIPE PHY執行在256MHz,那麽TX和RX的數據線寬度都是16bit。
USB3 Gen1的速度5Gbps,是指TX和RX的速率都是5Gbps(128MHz * 4bytes或者256MHz * 2bytes)。
3 Bulk傳輸速度計算
- Full-speed
每一個frame最大能夠傳輸19個Bulk包,每一個包最大是64 B,所以其最大傳輸速率是:64 x 19 x 1000 = 1.16MB/s。
- High-speed
USB2.0在每一個微幀中最大可傳輸13個Bulk包,而每一個微幀長固定為125μs,所以其最大傳輸速率為:512 x 13 x 8 x 1000 = 53MB/s。
4 XHCI PORTSC端口狀態控制寄存器
@ drivers/usb/host/xhci-hub.c?
xhci_get_ports()
5 Abbreviations
ARC:Argonant RISC Core
AT91SAM9260:SAM means Smart ARM-based Microcontroller
ATMEL SAMBA:ATMEL Smart ARM-based Microcontroller Boot Assistant
bdi:Linux backing device info
CC2530:TI ChipCon2530
DWC2:Design Ware Controller 2。Apple的嵌入式設備。包含iPad和iPhone都是使用的DWC2
ISP1161:Philips‘ Integrated host Solution Pairs 1161,“Firms introduce USB host controllers”,https://www.eetimes.com/document.asp?
doc_id=1290054
MPH:USB Multi-Port Host,Intel的MPH的Port1作為OTG使用,和DWC3(僅作為slave)使用一個MUX開關來控制Host還是UDC連接到該Port1
Quirks:the attributes of a device that are considered to be noncompliant with expected operation
SL811HS:Cypress/ScanLogic 811 Host/Slave。性能上與ISP1161(Integrated host Solution Pairs 1161)相當
SPH:USB Single-Port Host
TDI:TransDimension Inc.,該公司首先發明了將TT集成到EHCI RootHub中的方法,這樣對於嵌入式系統來說,就省去了OHCI/UHCI的硬件,同一時候減少了成本,作為對該公司的紀念,Linux內核定義了宏ehci_is_TDI(ehci);產品UHC124表示USB Host Controller;收購了ARC USB技術;現已被chipidea收購。chipidea又被mips收購
TLV:TI Low Value,高性價比
TPS:TI Performance Solution
TT:Transaction Translator(事務轉換器,將USB2.0的包轉換成USB1.1的包)
TUR:Test Unit Ready,sd_spinup_disk()執行該命令,底層排隊函數usb_stor_host_template.queuecommand()和ufshcd_queuecommand()
xECP:xHCI Extended Capabilities Pointer
電腦是怎樣識別USB3.0 U盤的