本文轉載自:
1、高速USB和USB2.0有區別嗎?
高速USB和USB2.0是有區別的,區別在於USB2.0是一種規范,而"高速USB"僅指在USB2.0規范中數據傳輸率為480Mbps的那部分,某個設備可以是符合USB2.0的設備,同時還可以是全速設備 或低速設備。
2、USB2.0設備與計算機的通信速度有多快?
USB2.0支持低速、全速和高速三種速度,分別為1.5Mbps、12Mbps、480Mbps
3、USB規范定義了哪些數據傳輸機制(Endpoint Transfer Type)?
#控制傳輸(Control)
USB主機使用控制傳輸向USB設備發送命令和詢問。當枚舉USB設備時,控制傳輸使用端點0(EP0),這樣可強制所有USB設備支持EP0而無需考慮支持速度。控制包的最大容量為8、16、32或64字節。低速USB設備中控制傳輸的包長度必須為8字節,高速USB設備必須為64字節,而全速USB設備允許8、16、32或64字節(MicroChip官網對此有錯誤的說法),也就是說控制傳輸對於最大包長度有固定的要求。最大包長度信息在“設備描述符”中體現,即wMaxPacketSize為“設備描述符”包的Byte7,它反應了該端點對應的Buffer的大小,當通過一個端點進行數據傳輸而數據的大小超過該端點的最大包長度時,需要將數據分成若干個數據包傳輸,並且要求除最后一個包外,所有的包長度均等於該最大包長度,也就是說,如果一個端點收到/發送了一個長度小於最大包長度的包,即意味着數據傳輸結束。但需要注意:Setup包總是8 Bytes的。
#中斷傳輸(Interrupt)
中斷傳輸是USB設備向USB主機請求一定輪詢速率的方法。在枚舉過程中,USB設備向USB主機請求輪詢時間。全速設備的最大輪詢速率為每毫秒一次,低速設備為每10毫秒一次。低速USB設備的最大數據負載為8字節,全速USB設備為64字節,而高速設備最大數據包為1024字節。這使得全速USB設備的最大吞吐量為64KB/s,低速USB設備為800B/s。確認中斷傳輸可保證數據的傳送。如果傳輸包接收失敗,則會重新發送。中斷傳輸是單向傳輸,但這里的單向傳輸並不是說只支持一個方向的傳輸,而是指在某個端點上該傳輸僅支持一個方向,或輸入,或輸出,如果需要在兩個方向上進行某種單向傳輸,需要占用兩個端點,可分別配置成不同的方向。
#批量傳輸(Bulk)
批量傳輸是設備傳輸大量數據的方法,但是不能保證會及時發送。在總線安排傳輸時,批量傳輸的優先級最低。當其他傳輸完成后,余下的帶寬復位后將分配給批量傳輸。與中斷傳輸一樣,確認批量傳輸可保證數據的傳送。只有全速和高速設備支持批量傳輸。對於全速USB設備的端點而言,最大的包容量可為8、16、32或64字節長度。對於高速USB設備的端點而言,最大的包容量可高達512字節長度。
#同步傳輸(Isochronous)
同步傳輸保證了傳輸速率。全速同步傳輸每幀可發送1023字節的數據。同步傳輸無需確認。因此,同步包有可能並未送達。同步傳輸的典型應用為音頻/視頻流,其中最重要的是以丟失包為代價保持視頻和音頻的進行。全速USB設備的最大傳輸率為1023Kbps。
Note:HID設備只支持控制傳輸和中斷傳輸方式。
什么是令牌包?
USB協議定義了四種類型的包:
幀起始、令牌、數據與握手,而其中的令牌有三種不同的形式包:
IN——通知USB設備,主機欲讀取信息
OUT——通知USB設備,主機欲發送信息
Setup——通知設備,主機要進行控制傳輸
什么是枚舉過程?
USB主機通過枚舉過程可了解有新的USB設備與總線相連。在應用開始前,主機向設備詢問各種信息,以確定設備的類型、載入設備所需的設備驅動程序以及設備的功率需求等。在枚舉過程中,USB主機還為連接的設備分配地址。在地址設定后,USB主機將與位於該地址的設備進行通信。枚舉過程的最終任務之一是把設備設定為某一具體運行配置。枚舉過程的詳細內容在USB規范的9.1.2節中給出。
USB主機如何識別USB設備的速度?
USB主機在兩根通信線(D+和D-)上均有弱下拉電阻。如果設備要以全速模式運行,將會用較大的上拉電阻上拉D+。如果設備要運行在低速模式下,則會上拉D-。兩種情況中的上拉電阻的標稱值為1 kΩ(PIC18F1xK50 Datasheet規定該電阻為1.5Kohm)。
USB主機如何對USB設備進行復位?
將D+和D-拉低至少10毫秒,USB主機就會對設備進行復位。當D+和D-拉低時間超過2.5微秒,USB設備就可認為已發生復位。一旦USB設備檢測到了復位,在USB主機移除復位后將馬上進入默認狀態。該復位僅用於USB復位,不可復位控制器。
什么是VID和PID?
VID指的是廠商ID,PID指的是產品ID。通過支付費用,USB-IF會發出VID。USB-IF要求每個廠商擁有自己的VID,以便銷售其產品。當所使用的VID/PID不是惟一時,可能會發生法律和技術上的糾紛。
USB2.0支持三種傳輸速率:
低速(Low Speed),習慣稱為USB1.0,傳輸速率為1.5Mbps;
全速(Full Speed),習慣稱為USB1.1,傳輸速率為12Mbps;
高速(High Speed),習慣稱為USB2.0,傳輸速率為480Mbps;
USB支持哪些接口形式?
USB接口有三種形式,分別為USB Type A、Type B和Mini-USB,對於AB兩種類型來說,都只有四條接線,而Mini-USB卻有五條連線,其外觀圖如下圖所示:
端點(Endpoint):是USB設備中的一個獨特的概念,它是USB設備與USB Host交換數據的硬件單元, 不同的端點其傳輸數據的能力不同,適用於不同的應用場合;a USB Device Endpoint uses only one data transfer method;每個設備描述符下應當有多個端點描述符。一般的USB?芯片都會提供幾個標准的端點,每個端點都支持單一的總線傳輸方式,其中 端點0必須支持控制傳輸。
配置(Configuration):是用於 定義設備的功能,如果一個設備有幾種不同的功能,則每個功能都需要一個配置,配置是接口的集合;
接口(Interface):是指定設備中哪些硬件與USB交換數據,每一個與USB交換數據的硬件就叫一個端點,因此,接口是端點的集合。
HID設備的特點:
交換的數據存儲在報告結構內,設備必須支持HID報告格式;
每筆事務可以攜帶小量或中量的數據,低速設備每筆事務最大為8Bytes,全速設備每筆最大為64Bytes,高速設備最大為1024Bytes;
有最大傳輸速度的限制:低速設備最快10ms一筆事務,最高速度為800Bytes/s,全速設備最快1ms一筆事務,最高速度為64KBytes/s;高速設備最快125us一筆事務,最高速度為24.576MByts/s。沒有傳輸速度的保證。
為了把一個設備識別為HID類別,設備在定義描述符的"類別"字段必須設備為0x03以表示是HID類別,這樣主機就會繼續請求獲得設備的HID描述符和報告描述符。
USB分層結構如下圖所示,對應於“設備”、“配置”、“接口”與“端點”都有相應的“描述符”。
應用篇:
HID分為Standard?HID與?Custom-Build?HID,對於前者,比如說mouse/Key board都屬於該類型,而Custom-Build HID則為用戶自定義所用的HID。
