I2C通信序列的典型特征
2024-11-18 10:10:27
晨欣小编
I2C是一种广泛应用于短距离设备间通信的串行总线通信协议,常用于连接传感器、EEPROM、显示器等设备。其通信序列具有以下关键特征:
1. 总线结构
I2C采用双线制通信,总线上包含以下两条信号线:
SCL(Serial Clock Line,时钟线): 用于同步数据传输的时钟信号。
SDA(Serial Data Line,数据线): 用于传输数据的信号线。
I2C总线支持多主机(Master)与多从机(Slave),主机负责控制通信,而从机根据地址选择是否参与通信。
2. 通信序列
I2C通信的典型步骤如下:
(1)起始信号(Start Condition,S):
通信开始时,主机通过将SDA线拉低(在SCL线为高电平的情况下)发出起始信号。这标志着数据传输的开始。
(2)地址传输(Addressing):
主机发送从机地址(通常为7位)及读/写标志位(R/W)。
R/W = 0 表示写操作(主机向从机发送数据)。
R/W = 1 表示读操作(主机从从机读取数据)。
从机会根据地址识别是否需要参与通信。
(3)数据传输(Data Transfer):
数据按字节(8位)进行传输,每次传输后接收方会发出应答信号(ACK或NACK)。
ACK(Acknowledge): 表示接收成功。
NACK(No Acknowledge): 表示接收失败或通信结束。
(4)停止信号(Stop Condition,P):
通信结束时,主机通过将SDA线从低电平拉高至高电平(在SCL线为高电平时)发出停止信号,标志着当前通信结束。
3. 时序与同步
同步传输: I2C是同步通信协议,数据传输由时钟信号(SCL)控制。
位传输时序: 每个数据位的传输在一个时钟周期内完成,通常在时钟的上升沿或下降沿采样数据。
4. 数据传输格式
数据格式由字节传输和应答信号组成:
数据字节: 每次传输8位数据。
应答信号: 每个数据字节后,接收方通过ACK/NACK确认是否接收成功。
ACK/NACK含义:
ACK: 接收设备将SDA线拉低,表示接收成功。
NACK: 接收设备保持SDA线高电平,表示接收失败或结束通信。
5. 多主模式与从设备地址
多主模式: I2C支持多个主设备,主机之间通过总线争用机制决定通信权。
从设备地址: 每个从机都有唯一的7位或10位地址,由制造商指定。R/W位用于区分读写操作。
6. 总线速率
I2C支持多种传输速率:
标准模式(Standard Mode):100 kbps
快速模式(Fast Mode):400 kbps
高速模式(High-speed Mode):3.4 Mbps
超高速模式(Ultra-fast Mode):5 Mbps或更高(特定应用)
I2C通信时序示例
以下是一个典型的I2C时序:
SDA
S
A
A
A
A
P
| SCL | | | | | | |
S(Start): 起始信号
A(Acknowledge): 应答信号
P(Stop): 停止信号
总结
I2C通信序列的特点:
使用两条信号线(SCL和SDA)进行数据传输。
每次通信以起始信号(Start)开始,以停止信号(Stop)结束。
从机通过7位地址选择是否参与通信,附带R/W位标识操作类型(读或写)。
每个字节传输后有ACK/NACK信号,用于确认接收成功与否。
支持多主多从设备的灵活通信,适用于多设备之间的低速短距离通信场景。