---
# System prepended metadata

title: 好的，這份是根據您提供的簡報草稿內容 和我們的討論，為學生整

---

USB NRZI 編碼與傳輸技術摘要：

---

**USB 傳輸的小秘密：NRZI 編碼**

各位同學好！我們每天都在用 USB，但你知道裡面的資料是怎麼傳送的嗎？今天我們要來揭開 USB 傳輸的一個重要小秘密：**NRZI 編碼**。

**1. USB 是什麼？**

*   全名是 **Universal Serial Bus** (通用序列匯流排)，就像電腦跟很多不同裝置（滑鼠、鍵盤、隨身碟等）溝通的「萬用連接線」。
*   它超方便，**即插即用**，而且可以**邊用邊拔插**（熱插拔）。
*   除了傳**資料**，很多時候它也能**供電**。

**2. USB 資料是怎麼傳送的？**

*   USB 傳送資料的方式是**序列傳輸**，意思是資料是**一位元一位元排隊送出**，不像有些線是一次送很多位元。
*   它用兩條特別的線 (叫做 D+ 和 D-) 來傳送訊號，這種方式比較**不怕雜訊**干擾。
*   而最特別的是，USB 會把我們要傳的 0 和 1 資料，先用一種叫做 **NRZI 的「密碼」**方式轉換後才送出去。

**3. NRZI 編碼是什麼？**

*   NRZI 是 Non-Return to Zero Inverted 的縮寫。
*   它的原理很簡單：看你要傳的資料是 0 還是 1：
    *   如果要傳 **1**：訊號的狀態（電壓高或低）就**不變**。
    *   如果要傳 **0**：訊號的狀態就**切換**（原來高就變低，原來低就變高）。
*   你可以想像，資料 1 就像「維持現狀」，資料 0 就像「變身」。

**4. 為什麼 USB 要用 NRZI？**

*   最主要原因：幫助接收端跟傳送端「**對準節奏**」（這叫做**時脈同步**）。
*   因為 NRZI 在遇到 0 的時候訊號會切換，這個切換就像是一個**節拍點**。接收端偵測到這些切換點，就能更準確地判斷什麼時候要讀取下一個位元，這叫做**改善時鐘恢復能力**。
*   這樣能**避免訊號一直不變**，導致接收端「抓不到節奏」的問題。
*   最終目的是讓 USB 的資料傳輸更**穩定可靠**。

**5. NRZI 有個小問題，怎麼辦？**

*   NRZI 的問題是：如果資料中**連續出現很多很多的 1**，訊號就會**長時間不變**，這樣接收端還是會失去節奏，沒辦法同步。
*   解決方法：USB 會搭配一個聰明的技術，叫做 **bit stuffing (位元填充)**。
*   規則：當資料中看到**連續六個 1** 時，USB 會**自動在後面「塞」一個 0 進去**。這個額外塞的 0 會讓 NRZI 訊號強制切換一次，幫助接收端重新對準節奏。

**6. USB 資料的包裝**

*   USB 資料不是零散傳送的，它們會被包裝成一個一個的「**框架 (Frame)**」。
*   每個框架裡包含幾個部分：
    *   **SYNC**：開始訊號，告訴接收端資料要來了。
    *   **PID**：告訴接收端這個框架是哪種類型。
    *   **Payload**：真正要傳的資料本體。
    *   **CRC**：用來檢查資料在傳送過程中是否出錯。

**7. NRZI 在 USB 傳輸流程中的位置**

*   就像一個「資料處理管線」：
    *   **從電腦/裝置送出時：** 原始資料 → 經過 **NRZI 編碼** → 檢查並做 **bit stuffing** → 送出去。
    *   **到接收端時：** 收到訊號 → 先把塞進來的 0 **拿掉** (去 stuffing) → 進行 **NRZI 解碼** → 還原回原始資料。

**總結一下**：

NRZI 編碼是 USB 實現穩定傳輸的**關鍵技術**之一。它透過「資料為 0 時切換訊號」的規則，加上 **bit stuffing** 的輔助，有效地幫助 USB 接收端跟上傳送端的時脈節奏，解決了高速序列傳輸中的同步問題，讓我們的 USB 裝置可以快速又穩定地工作。