![wKgaomVwJqWARKTCAAp8j59Y5oY446.png](https://file1.elecfans.com/web2/M00/B2/DE/wKgaomVwJqWARKTCAAp8j59Y5oY446.png)
USB作為目前功能最為強大的接口,除了支持很多外設,如鍵盤、鼠標等。還可以進行多種總線的轉換,如USB轉網口、USB轉CAN等,這篇文章我們就來學習一下USB接口的相關知識。
不同USB版本的設備,數據傳輸速度也會有差別,兩個設備之間是如何區分高速、全速和低速的USB識別呢?為了方便大家理解,咱們只講邏輯給結果說事實,一些具體數值的計算小編已經貼心的幫大家省去了。
首先,全速和低速很好區分:因為在設備端有一個 1.5K 的上拉電阻,當設備插入控制器或上電時,有上拉電阻的那根數據線就會被拉高,控制器根據 D+/D-上的電平判斷所掛載的是全速設備還是低速設備。全速設備D+端有1.5K上拉電阻,低速設備D-端有1.5K上拉電阻。
![wKgaomVwJruAcXMxAAE_aA4uQX8567.png](https://file1.elecfans.com/web2/M00/B2/DE/wKgaomVwJruAcXMxAAE_aA4uQX8567.png)
接下來看一下如何區分高速設備和全速設備:高速設備初始是以一個全速設備的身份出現的,即和全速設備一樣,D+線上有一個1.5k的上拉電阻。USB2.0的控制器會把它當作一個全速設備來看待,之后控制器和設備端會通過一系列握手信號互相確認雙方的身份。在這里對速度的檢測是雙向的,比如高速的控制器需要檢測所掛上來的設備是高速、全速還是低速,高速的設備需要檢測所連上的控制器是 USB2.0 的還是1.0的,如果是前者,就進行一系列動作切到高速模式工作,如果是后者,就以全速模式工作。
控制器檢測到有設備插入/上電時,向主機通報,主機發送一個請求讓控制器復位新插入的設備。設備復位操作是控制器通過驅動數據線到復位狀態SE0(即 D+和 D-全為低電平)。
高速設備看到復位信號后,通過內部的電流源向D-線持續灌一個小電流,加上內部的等效阻抗近似于45R,所以在控制端可以看到一個約800mV的電壓,這就是 Chirp K 信號(由設備發起)。
在控制器端,雖然下達了復位信號,并一直驅動著SE0,但控制器端的USB2.0 的高速接收器一直在檢測設備端發起的ChirpK信號,如果沒有看到ChirpK信號,就繼續復位操作,直到復位結束,之后就在全速模式下操作。如果只是一個全速的控制器,不支持高速操作,那么該控制器不理會設備端發送的ChirpK信號,之后設備也不會切換到高速模式。
![wKgaomVwJtKAAVqrAADJXpkV1CU684.png](https://file1.elecfans.com/web2/M00/B2/DE/wKgaomVwJtKAAVqrAADJXpkV1CU684.png)
設備端發送的 Chirp K 信號結束后,控制器必須開始回復一連串的 KJKJKJ….序列,向設備表明這是一個USB2.0的控制器。KJ序列停止后再結束復位操作??刂破靼l送Chirp KJ 序列的方式和設備一樣,通過電流源向差分數據線交替灌一個小電流來實現。
再回到設備端來,設備檢測到控制器發出的Chirp信號后,它必須在 500us 內切換到高速模式。控制器發送出來的 Chirp KJ 序列幅值降到了原先的一半,為400mV。這是因為設備端會掛載新的終端電阻,此時等效阻抗為22.5R,正好是之前阻抗的一半。以后高速操作的信號幅值就是400mV而不像全速/低速那樣的800mV。
至此,高速設備與 USB2.0控制器握手完畢,進行后續的480Mbps 高速信號通信,這就是咱們常說的USB握手協議,關于USB接口就先介紹到這里,希望能對屏幕前的小伙伴提供幫助。
-
嵌入式
+關注
關注
5092文章
19177瀏覽量
307663 -
開發板
+關注
關注
25文章
5121瀏覽量
98193
發布評論請先 登錄
相關推薦
評論