復位
從狀態切換圖上看,一個 USB 設備連接后,它將會被供電,然后被復位。當軟件出錯時,我們也可以發出復位信號重新驅動設備。
那么,USB Hub 端口或 USB 控制器端口如何發出復位信號?發出 SE0 信號,并維持至少 10ms。
USB 設備看到 Reset 信號后,需要準備接收“SetAddress()”請求;如果它不能回應這個請求,就是“不能識別的設備”。
設備速率識別
低速/全速
Hub 端口的 D+、D- 都有 15K 的下拉電阻,平時為低電平。全速設備內部的D+ 有 1.5K 的上拉電阻,低速設備內部的 D- 有 1.5K
的上拉電阻,連接到 Hub 后會導致 Hub 的 D+ 或 D- 電平變化,Hub 根據變化的引腳分辨接進來的是全速設備還是低速設備。
高速
高速設備必定兼容全速模式,所以高速設備內部 D+ 也有 1.5K 的上拉電阻,只不過這個電阻是可以斷開的:工作于高速模式時要斷開它。
高速設備首先作為全速設備被識別出來,然后 Hub 如何確定它是否支持高速模式?
Hub 端口如何監測一個新插入的 USB 設備能否工作于高速模式?流程如下:
對于低速設備,Hub 端口不會監測它能否工作于高速模式。低速設備不能兼容高速模式。
Hub 端口發出 SE0 信號,這就是復位信號
USB 設備監測到 SE0 信號后,會發出“a high-speed detection
handshake”信號表示自己能支持高速模式,這可以細分為一下 3 種情景
如果 USB 設備原來處于“suspend”狀態,它檢測到 SE0 信號后,就發出“a high-speed detection
handshake”信號
如果 USB 設備原來處于“non-suspend”狀態,并且處于全速模式,它檢測到 SE0 信號后,就發出“a high-speed
detection handshake”信號。這個情景,就是一個設備剛插到 Hub 端口時的情況,它一開始工作于全速模式。
如果 USB 設備原來處于“non-suspend”狀態,并且處于高速模式,它會切換回到全速模式(重新連接D+的上拉電阻),然后發出“a
high-speed detection handshake”信號
“a high-speed detection handshake”信號,就是“高速設備監測握手信號”,既然是握手信號,自然是有來有回:
USB 設備維持 D+ 的上拉電阻,發出“Chirp K ”信號,表示自己能支持高速模式
如果 Hub 沒監測到“Chirp K ”信號,它就知道這個設備不支持高速模式
如果 Hub 監測到“Chirp K ”信號后,如果 Hub 能支持高速模式,就發出一系列的“Chirp K”、“Chirp J”信號,這是用來通知
USB 設備:Hub 也能支持高速模式。發出一系列的“Chirp K”、“Chirp J”信號后,Hub 繼續維持 SE0 信號直到 10ms。
USB 設備發出“Chirp K ”信號后,就等待 Hub 回應一系列的“Chirp K”、“Chirp J”信號
收到一系列的“Chirp K”、“Chirp J”信號:USB 設備端口 D+ 的上拉電阻,使能高速模式
沒有收到一系列的“Chirp K”、“Chirp J”信號:USB 設備轉入全速模式
-
usb
+關注
關注
60文章
7959瀏覽量
265048 -
信號
+關注
關注
11文章
2794瀏覽量
76880 -
hub
+關注
關注
1文章
115瀏覽量
41747
發布評論請先 登錄
相關推薦
評論