全双工vs半双工vs单工:电话、对讲机、广播

短文标题: 全双工vs半双工vs单工:电话、对讲机、广播

你有没有想过一个问题:为什么打电话时可以同时说话、同时听,而对讲机必须"说完一句,等对方说完"?这和USART、RS232、RS485的通信模式是一样的道理。通信按"能否双向"和"能否同时",分成三种:单工、半双工、全双工

单工:广播电台(收音机只听不说) 数据只能单向传输,一方固定发,一方固定收。比喻:广播电台(只能发)和收音机(只能收)。现实例子:电视广播、键盘到电脑(只输入不输出)。USART如果只配置TX不配RX,就工作在单工模式(但很少这样用)。

半双工:对讲机(能说能听,但不能同时) 数据双向传输,但不能同时进行。同一时刻只有一方能发,另一方只能听。比喻:对讲机(按住说话时不能听,松开才能听别人说)。现实例子:对讲机、RS485(同一对A/B线,收发切换分时)、I2C(时钟线SCl是单向?SDA是双向但需配合方向?其实I2C也是半双工,靠主从切换)。USART虽然硬件上全双工(有独立的TX和RX引脚),但软件如果设计成一发一收轮流(如Modbus主从一问一答),逻辑上是半双工。

全双工:电话(能说能听,同时进行) 数据双向 传输,而且可以同时进行。双方可以同时说、同时听。比喻:电话通话(你说话的同时也能听到对方的声音)。现实例子:USART(TX和RX独立引脚,可同时收发)、SPI(MOSI和MISO独立,全双工)、RS232(TX和RX分开,全双工)、以太网、现代电话。

**这个故事的启示,**为什么需要区分这三种?

  • 单工:最简单,最省引脚(1根数据线)
  • 半双工:省引脚(1根数据线+方向控制或共享总线)
  • 全双工:性能最高,需要更多引脚(2根数据线)

RS232是"电话":TX和RX分开,可以同时收发。RS485是"对讲机":A/B只有一对线,收发需要切换(RE/DE控制),同一时刻只能发或只能收。I2C也是半双工------发送地址后,切换方向读数据,SDA在同一根线上分时收发。

**写在最后,**下次你选通信接口,用三个比喻帮你决策:

  • 广播(单工):单向通知,用单工
  • 对讲机(半双工):一问一答,用RS485、I2C
  • 电话(全双工):高速实时交互,用USART、SPI、RS232

选对了少走弯路。


(本文灵感源于于振南《新概念ARM32单片机》教程第4.2节"双工通信分类与实现难点",感谢作者将双工分类讲得如此通透。)


如果您觉得这个故事对您有启发,欢迎点赞、转发,让更多工程师看到这个藏在"电话、对讲机、广播"背后的双工智慧。

相关推荐
笨笨饿2 小时前
#72_聊聊I2C以及他们的变体
linux·c语言·网络·stm32·单片机·算法·个人开发
CHANG_THE_WORLD2 小时前
从0到1 编写HexDump工具
单片机·嵌入式硬件
ghie90902 小时前
4轴运动控制源代码(STM32 + GRBL 1.1移植版)
stm32·单片机·嵌入式硬件
0南城逆流03 小时前
【STM32】RTT-Studio中HAL库开发教程十一:WS2812彩色RGB模块使用
stm32·单片机·嵌入式硬件
恶魔泡泡糖3 小时前
stm32F103C8T6标准库外部中断点灯
stm32·单片机·嵌入式硬件
The_superstar63 小时前
衡山派LVGL注意点
单片机·lvgl·衡山派·俊杰
fengfuyao9853 小时前
STM32 ADC音频采样与FFT频谱分析实现
stm32·嵌入式硬件·音视频
张海森-1688203 小时前
海思原生 isp调试工具使用方法
单片机
踏着七彩祥云的小丑4 小时前
嵌入式测试学习第 4 天:集成电路、芯片、FPGA
单片机·嵌入式硬件