2020年12月5日 星期六

USB Signal

USB 資料訊號 D+ 和 D- 是阻抗 90Ω ±15% 的雙絞線,使用 NRZI 差動訊號,電壓準位 low 為 0.0~0.3V、high 為 2.8~3.6V。

在主機端,D+ 和 D- 用 15 kΩ pull-down,在沒驅動的時候,訊號停在所謂的 single-ended zero (SE0) 狀態,表示 reset 或 disconnected。10~20 ms SE0 表示 reset。

D+ 和 D- 其中之一為 high 有兩種情形,其中一個稱為 J,另一個為 K。

USB 採用 NRZI 編碼,toggle (J 及 K 切換) 表示 0,不變 (維持 J 或 K) 表示 1,六個
連續 1 要作 bit-stuffing,多加一個 0。
連續六個 1 時,bit stuffing 一個 0 來避免太久沒準位變動。

USB 週邊 1.5 kΩ pull high 克服主機端的 pull-down,使得 data line 停在 idle state,稱為「J」。當 D+ 及 D- 一個為 high,一個為 low 為 J 或 K 狀態。

USB 封包一開始是 8-bit synchronization sequence '00000001',也就是在 idle state J 後出現「KJKJKJKK」,最後重複的 K 表示 sync pattern 的結束、USB frame 的開始。高頻寬 USB,使用 32-bit synchronization sequence。

USB 封包的結束稱為 EOP (end-of-packet),此時傳送端驅動 2 個 SE0 和 1 個 J,然後停止驅動而停在 J (idle) state。有時 hub 的 skew,在 EOP SE0 前多了 one bit,要忽略。

chirping 步驟:週邊先當作自己是 FS 而拉高 D+,然後收到 USB RESET 後改拉高 D− (K) 告訴主機端要用 HS。如果主機端支援 HS,會回 JK 告訴週邊端。週邊端至少要收到 3 sets of KJ chirps 才能切換到 HS。

http://wiki.csie.ncku.edu.tw/embedded/USB 有詳細說明

USB 連接器供電速度

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...