常见的通信总线有哪些?⭐⭐⭐⭐

通讯总线引脚电平时钟主/从设备全双工/半双工特点
I2C总线SCL、SDA单端同步一主多从半双工低速设备通信,支持多从模式
SPI总线SCK、MOSI、MISO、SS单端同步一主多从全双工高速通信,适用于连接外围设备和外部存储器,支持全双工模式
UART总线TX、RX单端异步点对点全双工异步通信,适用于连接串口设备、无线模块等
CAN总线CAN_H、CAN_L差分异步多主多从可以是全双工或半双工实时数据传输,多主多从,错误检测和优先级仲裁
USB总线D+、D-(USB 2.0)单端同步一主多从可以是全双工或半双工高速数据传输,支持多种传输模式,如控制传输、批量传输等
PCIe总线多引脚,具体取决于接口版本差分同步一主多从全双工高性能外设连接,高速全双工数据传输,低延迟
以太网RJ45或其他差分异步多点通信通常是全双工基于IP协议的数据传输,支持局域网或互联网连接

同步通信和异步通信⭐⭐⭐⭐

定义

同步通信:在同步通信中,发送方和接收方的时钟是相互关联的,数据的传输和接收是基于一个共同的时钟信号进行同步的。

  • 发送方在每个时钟周期内按照时钟的节拍发送数据,接收方也按照同样的时钟节拍接收数据。
  • 双方通过时钟信号的同步来保证正确的数据传输。同步通信对时序要求较高,需要在通信双方之间建立稳定的时钟信号。

异步通信:在异步通信中,发送方和接收方没有共同的时钟信号进行同步。

  • 数据的传输和接收不依赖于特定的时钟信号,而是通过特定的起始位和停止位来标识数据的传输开始和结束。
  • 每个数据帧都有自己的起始和停止位,这样接收方可以通过检测起始和停止位来识别每个数据帧。
  • 异步通信相对较为灵活,但需要额外的控制位来标识起始和停止。

区别

  • 时钟同步:同步通信使用共同的时钟信号进行同步,异步通信没有共同的时钟信号。
  • 数据帧结构:同步通信将数据划分为固定的时间片或时钟周期,而异步通信在数据之间插入起始和停止位来界定数据帧的开始和结束。
  • 时序要求:同步通信对时序要求较高,通信双方需要保持严格的同步;而异步通信对时序要求较低,通信双方无需精确同步。
  • 灵活性:同步通信相对刚性,因为通信双方必须始终保持同步;异步通信相对灵活,因为通信不依赖于特定的时钟信号。

UART

定义

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。是一种异步全双工串行通信协议,它将要传输的资料在串行通信与并行通信之间加以转换。

当总线处于空闲状态时信号线的状态为1高电平

协议

将数据的字节按照二进制一位接一位地传输 一数据包括起始位、数据位、校验位和停止位

起始位

开始进行数据传输时发送方要先发出一个低电平0来表示传输字符的开始。

  • 空闲位一直是高电平所以开始第一次通讯时先发送一个明显区别于空闲状态的信号即为低电平。
数据位

起始位之后就是要传输的数据,数据可以是5678位,构成一个字符,一般都是8位。先发送最低位LSB,再发送最高位MSB(小端模式)。

奇偶校验位

数据位传送完成后,要进行奇偶校验

  • 无校验(No Parity
  • 奇校验(Odd Parity):如果数据位中1的数目是偶数,则校验位为1才能满足1的个数为奇数,如果1的数目是奇数,校验位为0
  • 偶校验(Even Parity):如果数据为中1的数目是偶数,则校验位为0才能满足1的个数为偶数,如果1的数目是奇数,校验位为1
  • Mark Parity:校验位始终为1。
  • Space Parity:校验位始终为0。
停止位
波特率定义,为什么双方波特率要相同?⭐⭐⭐⭐

波特率(Baud rate)是一种衡量数据传输速率的单位,表示每秒传输的信号变化次数。 在串行通信中,波特率决定了数据传输的速率

发送方和接收方可以按照相同的时间间隔传输和接收数据,确保数据能够按正确的速率传输并且保持同步。

  • 单位bpsbits per second

与USART的区别

特点UARTUSART
通信方式只支持异步通信可支持异步和同步通信
全双工通信可以进行全双工数据传输可以进行全双工数据传输
功能通常只包括发送和接收功能包括发送、接收、同步和异步等多种功能
数据线两根数据线,无时钟线在同步通信模式下需要多个数据线和时钟线
适用场景适用于简单的低速异步通信应用适用于更复杂的通信需求,包括同步和异步通信等

I2C ⭐⭐

SPI ⭐⭐⭐

I2C与SPI的区别

区别I2CSPI
通信方式半双工全双工
确认机制ACK
数据采样SCL 高电平SCL跳变沿
设备选择7/10地址码CS片选线
引脚类型开漏输出推挽输出
上拉电阻需要不需要
速率/适用低速高速
传输流程每次一个字节没有限制
多主模式支持不支持

数据优先级

协议数据优先级是否可配置
I²CMSB优先
SPI默认 MSB优先,支持 LSB优先
UARTLSB优先