通信特征
(从数据传输方向上):
- 单工:数据只能单一方向传输;
- 半双工:数据能在两个方向传输,但同一时刻只能在一个方向;
- 双工:数据能同时在两个方向传输;
I2C
I2C在物理层上有SCL和SDA两条线将主机和从设备连接,并有上拉电阻连接。I2C通信的工作逻辑如下:
SCL工作逻辑:
- 空闲时为高电平,通信开始后拉低
- 通信过程中,SCL低电平时主机在SDA上设置数据(电平信号),高电平时从机读取SDA的电平信号。
仲裁:
对于多主机、多节点,所有SDA或SCL都会通过上拉电阻连接到高电平,意味着I2C总线在理论上只能由一对主机、节点进行数据传输。各个主机通过监视SDA、SCL,直至停止条件发生、总线进入空闲时才开始传输消息。
如果出现多个主机同时开始传输,就需要进行仲裁:最先将SDA信号电平拉低的主机为仲裁获胜者,失败者立即暂停传输。
UART
异步通信协议,物理层上包括TX、RX两条数据传输的接线和共地的接线。
两个设备之间的UART通信需要有相同的波特率,以保持收发速率一致。
UART的传输以数据帧为单位,数据帧格式有两种,分别是无校准位(8位数据位)和有校准位(9位数据位)。
数据帧如下图:( 起始位+8位数据位/9位数据位(带奇偶检验)+停止位(1or2) )
SPI
SPI是同步、全双工,仅支持一主多从。物理层上包含:
- SCK时钟线
- MISO、MOSI数据线
- CS/NSS/SS片选:每个从机设备都有一个自己的片选线,置低电平时,该设备被选择与主机通信
SPI在时钟空闲时的电平(高/低)、数据线采样的时钟边沿(奇数沿/偶数沿)是可以配置的。
标签:SCL,主机,通信协议,传输,数据位,SDA,整理,I2C From: https://www.cnblogs.com/zero-000/p/18625288