何謂全雙工(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)

  • 只有一個方向能傳資料,對方只能接收。
  • 你只能聽,不能回應。
  • 範例:
    • 廣播電視(你不能對主播說話)
    • 傳統鍵盤、滑鼠(只傳送資料到電腦)

結論

綜合這三者的比較,單工的運作方式會比較受限,代表這個系統的傳輸方式一開始就很受限,雙工的運作模式,會比較廣,因為可以支援雙向傳遞方式。

至於全雙工與半雙工的差別應該是要看應用場景,有些情況可能需要同步雙向傳遞,有些可以允許單向傳輸。

Similar Posts