[笔记].I2C札记
数据的有效性
SDA数据线必须在SCL时钟线的高电平周期保持稳定,在SCL时钟线的低电平周期才可改变高低电平。
图1 I2C总线的位传输
起始和停止条件
起始条件(S):SCL时钟线保持高电平时,SDA数据线从高电平向低电平切换;
停止条件(P):SCL时钟线保持高电平时,SDA数据线从低电平向高电平切换。
图2 I2C总线的起始和停止条件
字节格式
发送到SDA数据线的每个字节必须为8位。每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是最高位(MSB)。
图3 I2C总线的数据传输
响应(应答)
数据传输必须带响应。在响应的时钟脉冲期间,发送器释放SDA数据线(高);接收器必须将SDA数据线拉低,使之在这个时钟脉冲的高电平期间保持稳定的低电平。响应位的数据状态遵循“谁接收谁产生”的原则,即总是由接收器产生响应位。此过程必须考虑建立和保持时间。
图4 I2C总线的响应
7位的地址格式
在起始条件(S)后,发送一个从机地址。这个地址共有7位,紧接着的是第八位的数据方向位(R/W’)。数据传输一般由主机产生的停止位(P)终止。如果主机仍希望在总线上通信,它可以产生重复其实条件(Sr)和寻址另一个从机,而不是首先产生一个停止位。
图5 完整的数据传输
可能的数据传输格式有:
1. 主机(发送器)发送到从机(接收器)。传输的方向不会改变。见图6。
2. 在第一个字节后,主机立即读从机。见图7。在第一次响应时,从机(发送器)变成主机(接收器),从机(接收器)变成从机(发送器)。第一次响应仍有从机产生。之前发送了一个不响应信号(A‘)的主机产生停止条件。
3. 复合格式,见图8。传输改变方向的时候,起始条件和从机地址都会被重复。但R/W’位取反。如果主机(接收器)发送一个重起始条件,它之前应该发送一个不响应信号(A‘)。
图6 主机(发送器)用7位地址寻址从机(接收器),传输方向不变
图7 在第一个字节后,主机立即读从机
图8 符合格式
信号连接示意图
图9 I2C总线信号连接示意图
参考
1.Philips Semiconductors, The I2C SPECIFICATION V2.1, 2000.02
2. 周立功单片机, I2C总线概要, 2006.11
3. 周立功单片机, 虚拟I2C汇编程序软件包
4. 何立民, I2C总线应用设计, 1995, 北京航天航空大学出版社