何謂全雙工(Full-Duplex)、半雙工(Half-Duplex)、單工(Simplex)?
介紹
大家好,今天想跟大家分享在開發軟韌體上會常聽到的名詞,也就是全雙工、半雙工、單工是什麼?
這三個是資料傳輸方式的分類,用來描述「通訊雙方在什麼情況下可以傳送與接收資料」:
全雙工(Full-Duplex)、半雙工(Half-Duplex)、單工(Simplex)是什麼?
假設有A與B兩個裝置,全雙工代表的是A與B可同時互傳資料,意思也就是說A傳資料給B的時候,同時間,B也會傳資料給A。常見的全雙工就是SPI傳輸的模式,所以這種傳輸的方式是很快速,很有效率。
半雙工指的是A與B仍然是可以雙向傳遞,但是不能同時兩個發生,像是A傳給B,或B傳給A,常見的傳輸模式就是I2C。
單工指的是只能A傳給B或B傳給A。
| 類型 | 傳輸方向 | 說明 | 範例 |
|---|---|---|---|
| ✅ 全雙工(Full-Duplex) | ⬅️➡️ 同時雙向 | A 與 B 可同時互傳資料 | 電話、USB、Ethernet |
| ⚠️ 半雙工(Half-Duplex) | ⬅️ 或 ➡️ 單向一次 | A 與 B 可雙向,但不能同時 | 對講機、I2C、RS-485 |
| ❌ 單工(Simplex) | ➡️ 單向 | 只有一方能傳資料,另一方只能收 | 廣播電視、滑鼠資料傳到電腦 |
白話文說明
1. 全雙工(Full-Duplex)
- 雙向傳輸可以「同時」進行。
- 你說話的同時我也可以說話(像電話)。
- 常見在高效率通訊介面中,如:
- USB
- Ethernet(網路線)
- SPI(Serial Peripheral Interface)
- UART(在某些配置下)
技術上需要雙通道(像收音機和擴音器各一條線),或內部處理機制能同時接收與傳送。
2. 半雙工(Half-Duplex)
- 仍然是雙向,但一次只能一方傳資料。
- 比如對講機:「我說完換你說」。
- 常見應用:
- I2C(只有一條資料線)
- RS-485(工業常用總線)
- 單根天線的無線電
➡ 要小心資料衝突,因此韌體通常會加控制流程。
3. 單工(Simplex)
- 只有一個方向能傳資料,對方只能接收。
- 你只能聽,不能回應。
- 範例:
- 廣播電視(你不能對主播說話)
- 傳統鍵盤、滑鼠(只傳送資料到電腦)
結論
綜合這三者的比較,單工的運作方式會比較受限,代表這個系統的傳輸方式一開始就很受限,雙工的運作模式,會比較廣,因為可以支援雙向傳遞方式。
至於全雙工與半雙工的差別應該是要看應用場景,有些情況可能需要同步雙向傳遞,有些可以允許單向傳輸。
