介绍
串行通信是一种数据传输方式,其核心特点是数据一位接一位地按顺序通过单条或少数几条数据线传输,而非同时传输多位数据。
类比
像排队过窄门——所有人只能人依次通过,而不是一群人并排通过
例子
串行通信中,数据以“位(bit)”为单位,按时间顺序逐位发送(如先传最高位,再传次高位,直到最低位)。
例如,传输字节0x5A(二进制01011010)时,会按下图顺序传输:
时间→
位:0 1 0 1 1 0 1 0 (共8位,依次发送)
特点
线路精简:通常只需1-2条数据线(如发送线TX、接收线RX),大幅减少硬件连接成本和复杂度。
时间换空间:虽然单次只能传1位数据(速率相对并行通信较慢),但节省了线路资源,适合长距离传输。
广泛兼容性:几乎所有电子设备(从单片机到计算机)都支持,是设备间近距离或中长距离通信的基础方式。
应用场景
- 通用消费外设:直接用 USB(即插即用、高速兼容)。
- 短距离调试 / 低速小数据:优先 UART(接线简单、成本低)。
- 工业长距离多设备:选 RS-485(抗干扰、距离远)。
- 高速外设(如屏幕 / 存储):用 SPI(速率快、全双工)。
- 多传感器低线数:用 I2C(仅 2 线、支持多设备)。
时钟同步
时钟同步的核心目的是让串行通信的 发送方和接收方“节奏一致”,确保接收方能在正确的时间点读取数据,避免因“速度不匹配”导致数据错位或解析错误,是保证通信准确性的关键。
类比
就像两个人跳绳——必须按同一节奏摇绳和起跳(同步),否则会绊绳;通信中,时钟就是“摇绳的节奏”,数据就是“起跳动作”,没有同步就会“读错数据”。
解决“数据位边界模糊”问题
串行通信中,数据是“一位接一位连续传输”的(如1秒传9600位,每位持续约104微秒)。若没有时钟同步,接收方无法判断“某一时刻的信号属于哪一位数据”:
- 例:发送方按“每104微秒发1位”的速度传输
0101,若接收方误以为“每90微秒读1位”,就会把4位数据错读成5位,导致结果完全错误。 - 时钟同步的作用:通过固定的时钟信号(如每104微秒一个时钟脉冲),明确告知接收方“现在该读第1位”“现在该读第2位”,精准划分每一位数据的时间边界。
消除“累计误差”影响
即使收发双方初始速率接近,长期传输中也会因硬件(如晶振精度)差异产生“累计误差”:
- 例:发送方实际速率是9600bps(每位104.17微秒),接收方按9590bps(每位104.28微秒)读取,前几位可能正确,但传输1000位后,累计误差会超过1位的时间,导致后续所有数据错位。
- 时钟同步的作用:通过实时的时钟信号(如主设备主动发送CLK时钟),强制接收方与发送方保持完全一致的速率,从根源上消除累计误差。
总结
- 接收方无法判断数据位的时间边界,导致“读错位”(如把
01错读成001)。 - 长期传输会因速率误差累计,出现“数据错位”(前几位正确,后几位全错)。
- 高速传输时(如几十Mbps),误差会被放大,通信完全无法正常进行。
因此,时钟同步不是“可选功能”,而是串行通信的“基础保障”——无论是通过独立时钟线(同步通信)还是通过帧结构(异步通信),本质都是为了让收发双方“按同一节奏工作”,确保数据准确传递。
通信方式分类
根据同步方式的不同,时钟同步还能针对性解决特定场景的问题
串行通信中的 同步通信 和 异步通信 ,主要区别在于收发双方 如何协调传输节奏(即如何确保接收方正确解析发送方的数据)。
区别
同步通信:需要独立的时钟线(CLK),由主设备控制时钟信号,接收方根据时钟节拍解析数据。
异步通信:无需专用时钟线,通过数据帧中的起始位和停止位实现同步。
同步通信(Synchronous Communication)
原理
通过独立的时钟线(CLK) 同步收发节奏:
主设备产生时钟信号,每一个时钟脉冲对应一位数据的传输(发送或接收)
接收方严格按照时钟信号的节拍接收数据。
特点
- 优势:
- 效率高:无控制位开销,所有传输位都是有效数据。
- 速率高:时钟信号可精确控制,速率可达几十甚至上百Mbps(如SPI可达50Mbps)。
- 劣势:
- 硬件复杂:需额外时钟线,布线要求更高(时钟信号易受干扰)。
- 同步严格:收发双方必须严格遵循同一时钟信号,主从设备时钟需匹配。
典型协议与应用
- 协议:SPI、I2C、USB(同步模式)、SPI Flash通信。
- 场景:
- 高速外设通信(如单片机与OLED屏幕、高速ADC芯片)。
- 多设备短距离互联(如I2C传感器组网、SPI存储芯片读写)。
异步通信(Asynchronous Communication)
原理
数据以“帧”为单位传输,每帧包含 起始位、数据位、校验位(可选)、停止位,通过这些额外的“控制位”让接收方识别数据的开始和结束,无需时钟线同步。
典型帧结构(以UART为例):
[起始位(1bit)] [数据位(5-8bit)] [校验位(0-1bit)] [停止位(1-2bit)]
- 起始位:固定为0(低电平),表示数据开始。
- 数据位:实际传输的有效数据(通常8bit,即1字节)。
- 校验位:用于简单错误检测(奇校验/偶校验/无校验)。
- 停止位:固定为1(高电平),表示数据结束。
特点
- 优势:
- 硬件简单:无需时钟线,最少2根线(TX发送、RX接收)即可全双工通信。
- 灵活性高:收发双方可独立工作,无需严格同步时钟频率(允许小幅误差)。
- 劣势:
- 效率低:每帧有2-4bit的控制位开销(如8bit数据需10bit总长度,开销20%)。
- 速率受限:因无时钟同步,速率通常较低(如UART一般不超过1Mbps)。
典型协议与应用
- 协议:UART、RS-232、RS-485(异步模式)。
- 场景:
- 单片机调试(打印日志)、蓝牙模块通信、GPS数据传输。
- 工业长距离组网(RS-485),如智能电表抄表。
波特率 与 异步通信
波特率详见链接:
https://www.malaoshi.top/show_1GW1zDD9f0c4.html
异步通信 必须使用 相同的波特率,否则会解析错误。核心原因是它 没有独立的时钟线,只能通过“约定速率”来保证接收方正确识别每一位数据的时间边界,避免数据解析错误。
波特率不匹配会导致什么问题?
若收发双方波特率不同,接收方会“读错时间”,导致数据完全错乱:
示例1:发送方用9600波特(每位104微秒),接收方用4800波特(每位208微秒)。
发送方1位的时间,接收方会当成2位,原本的01会被错读成0011。示例2:发送方用115200波特(每位≈8.68微秒),接收方用9600波特(每位≈104微秒)。
发送方12位的时间,接收方才读1位,大量数据会被压缩成错误值。
允许微小误差,但不能超标
实际中,收发双方的波特率允许 ±5%以内 的误差(因异步通信有“起始位”触发校准),但超过这个范围就会出错:
- 起始位(从高电平跳变到低电平)会让接收方重新校准采样时间,抵消部分误差。
- 但误差过大时,后续数据位的采样时间会严重偏离实际位置,导致校验位或停止位识别失败,最终数据被丢弃。
同步通信 与 异步通信 对比
| 维度 | 异步通信 | 同步通信 |
|---|---|---|
| 时钟同步方式 | 起始位/停止位(无时钟线) | 专用时钟线(CLK) |
| 线路数量 | 少(2根线即可全双工) | 多(需时钟线,如SPI需4根) |
| 数据效率 | 低(含控制位开销) | 高(无额外开销) |
| 传输速率 | 较低(通常<1Mbps) |
较高(可达几十Mbps) |
| 抗干扰 | 一般(依赖信号完整性) | 较差(时钟信号易受干扰) |
| 适用距离 | 中长距离(如RS-485传1200米) | 短距离(如设备内部通信) |
| 典型协议 | UART、RS-485 | SPI、I2C |
如何选择
- 若需简单布线、长距离传输、允许低速(如设备调试、工业组网),选异步通信(如UART、RS-485)。
- 若需高速率、高效率、短距离(如传感器与单片机内部通信),选同步通信(如SPI、I2C)。
相关概念
传输方向
- 单工:数据只能单向传输(如早期收音机的信号接收)。
- 半双工:数据可双向传输,但同一时间只能收或发(如RS-485)。
- 全双工:数据可同时双向传输(如UART,需TX/RX两根线)。
主流串行通信协议
| 协议 | 同步方式 | 接线(核心线) | 传输方向 | 速率范围 | 典型应用场景 |
|---|---|---|---|---|---|
| UART | 异步(无时钟) | TX(发)、RX(收) | 全双工 | 300bps-1Mbps | 单片机调试、蓝牙模块、GPS |
| RS-232 | 异步 | TX、RX、GND | 全双工 | 0-20kbps | 早期电脑串口、Modem |
| RS-485 | 异步 | A(差分+)、B(差分-) | 半双工 | 10kbps-10Mbps | 工业组网、智能电表抄表 |
| SPI | 同步(有时钟) | CLK、MOSI、MISO、CS | 全双工 | 1Mbps-50Mbps | OLED屏幕、Flash存储、ADC |
| I2C | 同步(有时钟) | SCL(时钟)、SDA(数据) | 半双工 | 100kbps-400kbps | 多传感器互联(温湿度、陀螺仪) |
| USB | 同步 | D+、D-(差分数据) | 全双工 | 1.5Mbps-10Gbps | 电脑外设、手机数据传输 |
总结
串行通信以其线路精简、成本低、适用范围广的特点,成为电子设备通信的基础方式。选择协议时,需根据传输速率、距离、设备数量、成本等因素综合判断:短距离高速选SPI,多传感器低线数选I2C,工业长距离选RS-485,通用外设选USB。理解这些协议的底层逻辑,能帮助快速排查通信故障(如乱码、丢包)。