通讯协议的基本概念——同步和异步
假设现在波特率为1bps,现在发送方需要发送11111111,那么现在发送方需要掐时间来发送这8bit的数据一共需要掐8次,总时间为8s,而接收方在接收这一组数据时也需要去掐时间,但是现在问题来了发送方和接收方的时间基准不一致,比如发送方发送了1s的高电平,但是接收方只接收了0.9s的高电平,下面的0,1s被接收方作为下一位bit的数据,如果发送了10个数据,那这样的话是不是就会错出一位,一旦错出一位以后以后的话,后续的数据是不是全就乱了,为了避免这个情况,规定了串口通信不允许连续发动,以防止累计误差的出现除此之外还有另外一种方式,那就是同步发送方和接收方的时间基准,也就是同步,而上面描述的发送方和接收方时间基准不一致的称之为异步
在通信领域,异步通信(Asynchronous Communication)与同步通信(Synchronous Communication)是两种核心的数据传输方式,二者的本质区别在于时钟同步机制和数据传输的协调方式。
一、同步通信(Synchronous Communication)
1. 定义
数据传输依赖统一的时钟信号,发送方与接收方通过时钟信号实现严格的位同步。
- 核心要素:
- 时钟信号:由主设备或独立时钟源(如晶振)产生,控制数据传输的节奏。
- 数据与时钟绑定:每个数据位的传输时刻与时钟边沿(上升沿/下降沿)严格对齐。
2. 典型结构
- 单同步模式:发送方在数据块前插入一个同步字符(如ASCII码
0x16),接收方检测到同步字符后开始按时钟采样数据。 - 双同步模式:使用独立的时钟线传输时钟信号(如SPI的SCK、I2C的SCL),数据与时钟同步传输。
3. 关键特点
| 优点 | 缺点 |
|---|---|
| ① 传输效率高:无需额外起始/停止位,适合大块数据传输(如以太网帧)。 | ① 硬件复杂:需专用时钟线或同步机制,增加布线成本(如SPI需4线)。 |
| ② 同步精度高:时钟信号确保采样点精准,误码率低。 | ② 时钟同步要求高:长距离传输时,时钟信号易受干扰(如时钟 skew)。 |
| ③ 适合高速场景:如USB、PCIe等高速总线依赖同步时钟。 |
4. 典型应用场景
- 短距离高速总线:
- SPI(Serial Peripheral Interface):用于MCU与Flash、ADC等设备通信,时钟频率可达数十MHz。
- I2C(Inter-Integrated Circuit):多设备同步通信,时钟频率最高400kHz(标准模式)至3.4MHz(高速模式)。
- 长距离同步传输:
- 以太网:通过曼彻斯特编码将时钟嵌入数据信号(如10Base-T),接收方从数据中提取时钟。
- 光纤通信:发送方与接收方使用同源时钟(如GPS同步),确保高速数据(如10Gbps)同步传输。
二、异步通信(Asynchronous Communication)
1. 定义
无独立时钟信号,数据传输通过约定的波特率和数据帧格式(起始位、停止位)实现松散同步。
- 核心机制:
- 发送方与接收方预先约定波特率(如9600bps)。
- 每个数据字节附加起始位(低电平)和停止位(高电平),用于标识字节的开始和结束。
2. 典型数据帧格式(以8N1为例)
[空闲位(高电平)] → [起始位(0)] → [数据位(8位,低位先传)] → [校验位(可选)] → [停止位(1或2位,1)]
- 示例:传输字符
'A'(ASCII码0x41,二进制01000001):起始位(0) → 数据位(01000001,低位先传为10000010) → 停止位(1) 实际传输顺序:0(起始)→ 1 → 0 → 0 → 0 → 0 → 0 → 1 → 1(停止)
3. 关键特点
| 优点 | 缺点 |
|---|---|
| ① 硬件简单:仅需数据线(如UART的TX/RX),无需时钟线。 | ① 传输效率低:每个字节需附加2~3位开销(如起始位+停止位),有效载荷仅80%(8N1格式)。 |
| ② 灵活性高:可随时启停传输(如交互式命令输入)。 | ② 同步依赖波特率精度:双方波特率偏差需<5%,否则易导致采样错位。 |
| ③ 适合低速场景:如人机交互(键盘输入)、低速传感器通信。 |
4. 典型应用场景
- 低速串行接口:
- UART(Universal Asynchronous Receiver-Transmitter):用于MCU与蓝牙模块、Wi-Fi模块通信(如ESP8266的AT指令)。
- RS-232/RS-485:工业设备通信(如PLC与上位机),支持长距离(RS-485达1200米)。
- 人机交互设备:
- 老式鼠标、键盘通过PS/2接口(异步串行)传输数据。
三、关键对比:同步 vs 异步
| 维度 | 同步通信 | 异步通信 |
|---|---|---|
| 时钟信号 | 必须(内置或独立时钟线) | 无需(依赖波特率和帧格式) |
| 传输单位 | 数据块(Block,如帧、包) | 单字节(Byte,带起始/停止位) |
| 典型协议 | SPI、I2C、USB、以太网 | UART、RS-232、Modbus RTU |
| 波特率/时钟频率 | 时钟频率决定传输速度(如SPI 10MHz=10Mbps) | 波特率=比特率(如9600bps=9600bit/s) |
| 适用场景 | 高速、大块数据、实时性要求高 | 低速、非实时、点对点简单通信 |
| 硬件复杂度 | 高(需时钟电路或同步逻辑) | 低(仅需简单移位寄存器) |
四、技术实现与典型案例
案例1:SPI(同步) vs UART(异步)
- SPI传输流程:
- 主设备通过SCK时钟线发送时钟信号,每个时钟周期传输1位数据(MOSI/MISO)。
- 数据与时钟边沿严格对齐,接收方在时钟边沿采样数据。
- 示例:传输1字节
0x55(01010101),需8个时钟周期,无额外开销。
- UART传输流程:
- 发送方在空闲时保持高电平,发送起始位(0)表示数据开始。
- 逐位发送8位数据(低位先传),附加1位停止位(1)。
- 示例:传输1字节
0x55需10位(1起始+8数据+1停止),有效效率80%。
案例2:以太网的同步机制
- 以太网使用曼彻斯特编码,将时钟信号嵌入数据中:
- 每个比特中间的跳变既表示数据(高→低为1,低→高为0),又作为时钟信号。
- 接收方无需独立时钟,直接从数据波形中提取同步信号。
五、如何选择通信方式?
优先选同步通信的场景:
- 需高速传输(如>1Mbps)。
- 多设备同步(如传感器阵列同时采集数据)。
- 示例:设计一个高速数据采集系统(如ADC通过SPI传输数据至MCU)。
优先选异步通信的场景:
- 低速、低成本需求(如<100kbps)。
- 点对点简单通信(如单个传感器与MCU交互)。
- 示例:开发一个基于蓝牙的遥控小车(手机通过UART发送指令至MCU)。
六、总结
- 同步通信以时钟为核心,追求效率与精准,是高速通信的基石(如现代计算机总线、互联网);
- 异步通信以简单灵活见长,在低速场景和嵌入式系统中广泛应用(如串口调试、工业仪表)。
理解二者差异后,可根据项目的速度需求、硬件成本、同步精度选择合适的通信方式。实际开发中,还可结合两者优势,例如:
- 用同步总线(如SPI)实现高速数据传输,用异步串口(如UART)实现控制指令交互,形成“高低速互补”的混合通信架构。

浙公网安备 33010602011771号