Duplex 是什麼?白話文一次搞懂全雙工、半雙工與單工通訊原理
在學習通訊系統(像是 UART、RS-485、Ethernet、藍牙)時,你一定會遇到「Duplex(雙工)」這個詞。 但 Duplex 到底是什麼意思? 它和「同步」、「多工」又有什麼不同? 本文將用簡單的例子與清楚的表格,幫你一次搞懂。
一、Duplex 是什麼意思?
Duplex 這個字源自拉丁語「duo(雙)」與「plex(編織)」的結合, 在通訊領域中,它代表 「資料可否雙向傳輸」 的能力。
換句話說,Duplex 指的是:
「資料在兩個裝置之間,能不能同時來回傳輸?」
二、三種常見的通訊模式
| 模式名稱 | 英文名稱 | 傳輸方向 | 是否可同時收發 | 常見例子 |
|---|---|---|---|---|
| 單工 | Simplex | 單向 | ❌ 否 | 電視廣播、滑鼠資料傳輸 |
| 半雙工 | Half Duplex | 雙向(但需輪流) | ❌ 否 | 對講機、RS-485 |
| 全雙工 | Full Duplex | 雙向(可同時) | ✅ 是 | 電話、UART、乙太網路 |
三、簡單比喻:對講機 vs 電話
對講機 → 半雙工
一次只能一個人講,另一個人要等。
「喂~完畢!」→ 等對方回話。
這就是「Half Duplex(半雙工)」。
電話 → 全雙工
你可以邊講邊聽,不用等對方講完。
這就是「Full Duplex(全雙工)」。
四、在電子通訊中的實際應用
| 通訊介面 | 雙工模式 | 備註 |
|---|---|---|
| UART | 全雙工 | TX、RX 各一條線,可同時收發 |
| SPI | 全雙工 | MISO、MOSI 各一條線 |
| I²C | 半雙工 | 共用 SDA,需輪流傳輸 |
| RS-485 | 半雙工 | 共用線路,多裝置輪流通訊 |
| Ethernet | 全雙工 | 可同時上傳與下載 |
五、Duplex 與其他概念的差異
| 概念 | 說明 | 舉例 |
|---|---|---|
| Duplex(雙工) | 傳輸方向能力 | 單工 / 半雙工 / 全雙工 |
| Synchronous(同步) | 傳輸時序關係 | SPI、I²C 需要時脈線 |
| Asynchronous(非同步) | 無共用時脈,由起始位判斷 | UART |
| Multiplex(多工) | 資源共享技術 | 時分多工(TDM)、頻分多工(FDM) |
小結:
Duplex 是「能不能同時傳」。 Synchronous 是「怎麼對時間」。 Multiplex 是「怎麼共用通道」。
六、為什麼 Duplex 很重要?
在通訊設計或嵌入式開發中,了解 Duplex 模式能幫助你:
- ✅ 選擇正確的通訊介面(如 UART 或 RS-485)
- ✅ 設計通訊流程(誰先傳、誰後收)
- ✅ 降低干擾與線材使用量
- ✅ 提高傳輸效率與即時性
七、延伸應用與設計考量
- 硬體層面: 全雙工需要額外線路(TX/RX 分開),但可提升效率。 半雙工可節省線材,但需要軟體控制傳輸方向。
- 軟體層面: 半雙工需加入「方向控制(Direction Control)」或「資料仲裁(Arbitration)」。 全雙工可同時使用中斷處理傳輸與接收。
八、總結
| 模式 | 傳輸方向 | 是否同時 | 範例 |
|---|---|---|---|
| Simplex(單工) | 單向 | ❌ | 電視、滑鼠 |
| Half Duplex(半雙工) | 雙向(輪流) | ❌ | 對講機、RS-485 |
| Full Duplex(全雙工) | 雙向(同時) | ✅ | 電話、UART |
一句話記起來:
Duplex 描述的是「雙向通訊的能力」—— 全雙工能同時收發,半雙工要輪流,單工則只能單向。
