USB全速和低速設備的檢測

1、全速和低速設備的檢測
如圖所示爲一個簡易的usb連接模型,左邊爲usb host,右邊爲usb設備。全速和低速設備通過其端接的上拉電阻的位置來區分。

簡單的usb設備連接圖

全速和低速設備端接如圖所示,設備的D+線上接上拉電阻(R4)1.5K歐姆,而低速設備D-線上接上拉電阻(R3)1.5K歐姆,二者下行端口的下拉端統一接15K歐姆的電阻連接到地。

當USB的host端口沒有連接設備時,由於下拉電阻的存在,使D+和D-上的電壓爲0,而當端口接上設備時,設備供電後,電源會通過上拉電阻(1.5K歐姆)和端口的下拉電阻(15K歐姆)分壓,在D+或D-上產生一個正脈衝,而USB主機根據脈衝產生在哪根數據線上,來判斷是全速還是低速。
2、高速設備和全速設備的檢測
在連接的最開始階段,高速設備是當成全速設備來識別的,因此,高速設備的D+線上也會有一個1.5K歐姆的上拉電阻到電源,但是與全速設備不相同的是,高速設備對這個上拉電阻,會有一個開關進行通斷控制。因爲高速信號傳輸是通過電流驅動的,D+和D-上的信號幅值在0V和400mv之間切換,所以傳輸時不允許有一個接到3.3V的上拉電阻存在。

*以下就是簡化的高速設備檢測流程。*
===》1,集線器或者主機必須確認連在它端口上的設備不是低速設備,高速設備是以一個全速設備的身份出現的,即和全速設備一樣,高速設備也在D+端有一個1.5K的上拉電阻。USB2.0的HUB把設備當成一個全速設備,然後進行一系列的握手信號來確認雙方的身份,如果HUB是USB2.0,設備也是高速的 就工作在高速模式,否則只能工作在全速模式。

===》2,當集線器或者主機確認端口設備不是低速設備後,它將在握手協議的最開始階段,T0時刻,發出一個SE0(D+,D-都爲低電平並持續至少10mS),用作復位。(當設備爲非低速設備,且總線處於SE0狀態纔可以進行高速握手。)

===》3,設備檢測這個SE0,進行復位。(這裏設備根據自己處在何種狀態,會作出不同的動作)

===》4,假如設備是高速設備,則它會讓上拉電阻仍然連接,但會使高速的端接無效,並驅動高速信號電流流向D-線上,這將在總線上產生一個K脈衝。該脈衝,在復位的TO時刻後,必須持續至少1.0 ms,但不能超過7.0ms
(低速下:D+爲“0”,D-爲“1”是爲“J”狀態,“K”狀態相反;
全速下:D+爲“1”,D-爲“0”是爲“J”狀態,“K”狀態相反;
高速下:D+爲“1”,D-爲“0”是爲“J”狀態,“K”狀態相反;)

===》5,集線器在觀察到設備發出的K脈衝至少2.5 us後,必須能檢測出這個脈衝。假如集線器沒有檢測出這個脈衝,則它必須持續的發出SE0信號,直到復位結束。

===》6,在當K脈衝信號在總線上存在不超過100 us的時間後,集線器必須開始發送間隔的K脈衝和J脈衝序列信號,在J’s和K’s之間的總線上不允許有空閒狀態發生。該序列信號在復位結束之前將持續一段時間,不少於100 us,但不長於500 us。(這保證了總線上始終保持活動狀態,阻止設備進入高速掛起狀態。)每一個獨立的K脈衝和J脈衝的持續時間至少爲40 us,但不能長於60 us。

===》7,在完成脈衝序列信號發生之後,集線器發出SE0信號,直到復位結束。在復位結束時,集線器必須轉到高速使能狀態,而無需在數據線上作出任何改變。

===》8,在設備完成發送它自己的脈衝信號(K脈衝)後,它將尋找高速集線器的脈衝信號。設備至少需要觀測到K-J-K-J-K-J脈衝序列,來作爲檢測到一個有效的集線器脈衝信號。每一個獨立的K脈衝和J脈衝至少需檢測到2.5 us。

A),假如設備檢測到脈衝序列K-J-K-J-K-J,則在檢測到後的500 us之內,設備要求斷開D+的上拉電阻,並使能高速端接,進入高速缺省狀態。即已進入高速模式

B),假如設備在完成它自己的脈衝信號之後的1.0 ms到2.5 ms之內,沒有檢測到脈衝序列K-J-K-J-K-J,則設備要回復到全速缺省狀態,並等待至復位結束。(進入全速模式)

注:部分內容參考自:

[USB2.0的高速、全速及低速設備的檢測]
(http://blog.csdn.net/lg2lh/article/details/7321542)

[USB2.0 速度識別–區分低速-高速-全速]
(http://www.mamicode.com/info-detail-969074.html)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章