硬件学习笔记--90 同步通信、异步通信、串行通信、并行通信介绍
一、 时序维度:同步 vs. 异步
这个维度关注的是通信双方如何协调和保持数据节奏的一致性问题,即“如何知道一个数据位什么时候开始,什么时候结束”。
1. 异步通信
核心思想:不需要统一的时钟信号。通信双方各自使用独立的、频率相同的本地时钟。通过数据帧中的起始位 和停止位 来实现字符同步。
工作方式:
空闲状态:通信线路保持高电平(逻辑1)。
起始位:当要发送数据时,发送方首先拉低线路一个位时间,作为起始位。这个下降沿通知接收方:“数据马上要来,请准备好”。
数据位:紧接着起始位之后,是5-9位实际数据(通常是8位)。从最低位(LSB)开始发送。
校验位:可选位,用于简单的错误检测。
停止位:最后是1、1.5或2个位时间的高电平,作为停止位。这标志着本帧数据的结束,并使线路恢复到空闲状态,为下一帧的起始位下降沿做准备。
关键特点:
无时钟线:只需要数据线(对于双向通信,如UART,需要两根数据线:TX和RX)。
基于帧:数据以“帧”为单位传输,每帧包含起始位、数据位、停止位。
时钟精度要求:双方本地时钟的波特率必须一致,误差不能太大(通常要求<3%),否则会因累积误差导致采样错位。
开销:每传输一个字节的数据,都需要额外传输起始位和停止位,有固定开销。
典型代表:
UART:最常见的异步串行通信协议。注意:UART是异步串行通信。
RS-232, RS-485:在物理层上定义了电气特性的UART。
优点:简单、实现成本低、对硬件要求不高、适合低速到中速、间歇性的数据传输。
缺点:有额外开销、通信效率相对较低、对时钟精度有要求、不适合高速长距离通信。
2. 同步通信
核心思想:通信双方共享一个同步的时钟信号。发送方在时钟边沿(上升沿或下降沿)输出数据,接收方在对应的时钟边沿读取数据。
工作方式:
存在一条专门的时钟线。
数据按照时钟信号的节拍,一位一位地连续传输,形成稳定的数据流。
数据帧之间没有起始/停止位,但通常有更复杂的帧头 或同步字 用于标识一个数据包的开始。
数据传输是连续的,直到整个数据包发送完毕。
关键特点:
有时钟线:必须有一条额外的时钟线(如SPI的SCK,I2C的SCL)。
高效率:没有起始/停止位的开销,数据传输效率高。
高速度:由于时钟同步,可以有效抵抗时钟漂移,可以实现非常高的速率。
复杂性:硬件和协议相对复杂,需要管理时钟信号。
典型代表:
SPI:高速、全双工的同步串行通信。
I2C:多主多从、半双工的同步串行通信,只用两根线(数据线SDA和时钟线SCL)。
USB, Ethernet, PCIe:这些都是复杂的同步通信系统。
优点:速度快、效率高、无累积误差、适合高速、连续、大数据量传输。
缺点:需要时钟线(增加布线复杂度和成本)、主从设备间时钟信号可能因距离而产生延迟(时钟歪斜)。
二、 数据维度:串行 vs. 并行
这个维度关注的是数据的各个比特是如何在信道上传送的。
1. 串行通信
核心思想:一位一位地按顺序通过单一信道进行传输。
工作方式:
将数据的各个比特(如一个字节的8个比特)排成队列,在一条线路上依次发送。
接收方再按顺序将这些比特重新组装成完整的数据。
关键特点:
线路少:通常只需要一条数据线(单向)或一对数据线(双向)。
抗干扰能力强:由于数据位是依次传输,不存在“并行传输”中的时序对齐问题,更适合长距离传输。
成本低:布线简单,连接器引脚少。
速度瓶颈:在单一信道上传输,理论峰值速度受限于该信道的频率。
典型代表:
UART, I2C, SPI, USB, SATA, PCIe, Ethernet 等绝大多数现代通信协议。
2. 并行通信
核心思想:数据的多个比特通过多个并行的信道同时传输。
工作方式:
例如,要传输一个8位数据,就需要8条数据线。每一位(bit)占用一条线。
发送方在某个时刻同时将8个比特的电平放到8条线上,接收方在同一时刻读取所有线路的状态,从而一次性获得整个字节。
关键特点:
线路多:需要多条数据线(如8位、16位、32位)。
理论速度快:在相同单线速率下,并行通信的总带宽是串行的数倍。这就是“人多力量大”。
时序问题严重:在高频率下,很难保证所有数据线上的信号完全同步到达。微小的延迟差异(信号歪斜)就会导致读取错误。
成本高:布线复杂,连接器庞大,引脚多。
抗干扰差:多条信号线之间容易产生串扰。
典型代表:
老式打印机接口(LPT)
IDE硬盘接口(PATA)
CPU的前端总线
芯片内部的地址总线和数据总线
历史趋势:过去,并行是高速的代名词。但随着频率提升,并行通信的时序和串扰问题成为无法逾越的障碍。因此,现代高速通信(如USB, SATA, PCIe)都转向了串行通信。通过提高单通道速率(串行化/解串行技术SerDes),串行通信轻松超越了并行通信的极限。
三、 综合对比与总结
为了更直观地理解,我们可以将这些概念组合到一个表格中:
| 特性 | 异步通信 | 同步通信 |
|---|---|---|
| 时钟信号 | 无,双方依赖各自的本地时钟 | 有,共享时钟信号 |
| 数据格式 | 以帧为单位,含起始/停止位 | 以数据流或数据包为单位 |
| 连线 | 简单(主要是数据线) | 较复杂(数据线 + 时钟线) |
| 速度 | 低速至中速 | 高速 |
| 效率 | 较低(有固定开销) | 高(无额外开销) |
| 成本 | 低 | 较高 |
| 精度要求 | 双方波特率需严格匹配 | 时钟同步,无累积误差 |
| 典型协议 | UART, RS-232 | SPI, I2C, USB, Ethernet |
| 特性 | 串行通信 | 并行通信 |
|---|---|---|
| 数据位传输 | 一位接一位,在单条信道传输 | 多位同时,在多条信道传输 |
| 线路数量 | 少 | 多 |
| 理论速度 | 单信道速率有限 | 在低频率下,总带宽高 |
| 长距离适应性 | 好,抗干扰强,成本低 | 差,信号歪斜和串扰严重 |
| 成本 | 低(布线简单) | 高(布线复杂,接口大) |
| 现代应用 | 主流,几乎所有外部总线 | 衰落,主要用于芯片内部、短距板级通信 |
四、 经典协议归类示例
异步串行:UART - 最经典的代表,简单、通用。
同步串行:
SPI - 高速、全双工,需要4根线(时钟、数据入、数据出、片选)。
I2C - 节省引脚,多主多从,只需要2根线(时钟、数据)。
并行通信:
PATA - 老式硬盘接口,已被串行的SATA取代。
DDR Memory Bus - 现代计算机内存仍然是并行通信,因为它是在极短的PCB板上进行,可以控制时序。
五、结论
现代电子系统的发展趋势是 “同步串行通信” 。它结合了同步通信的高效高速和串行通信的抗干扰、低成本优势,通过不断提升单通道速率,满足了当今所有高速数据传输的需求(从处理器到外设,从设备到网络)。
