[笔记].I2C札记

数据的有效性

SDA数据线必须在SCL时钟线的高电平周期保持稳定,在SCL时钟线的低电平周期才可改变高低电平。

图1 I2C总线的位传输

图1 I2C总线的位传输

起始和停止条件

起始条件(S):SCL时钟线保持高电平时,SDA数据线从高电平向低电平切换;

停止条件(P):SCL时钟线保持高电平时,SDA数据线从低电平向高电平切换。

图2 I2C总线的起始和停止条件

图2 I2C总线的起始和停止条件

字节格式

发送到SDA数据线的每个字节必须为8位。每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是最高位(MSB)。

图3 I2C总线的数据传输

图3 I2C总线的数据传输

响应(应答)

数据传输必须带响应。在响应的时钟脉冲期间,发送器释放SDA数据线(高);接收器必须将SDA数据线拉低,使之在这个时钟脉冲的高电平期间保持稳定的低电平。响应位的数据状态遵循“谁接收谁产生”的原则,即总是由接收器产生响应位。此过程必须考虑建立和保持时间。

图4 I2C总线的响应

图4 I2C总线的响应

7位的地址格式

在起始条件(S)后,发送一个从机地址。这个地址共有7位,紧接着的是第八位的数据方向位(R/W’)。数据传输一般由主机产生的停止位(P)终止。如果主机仍希望在总线上通信,它可以产生重复其实条件(Sr)和寻址另一个从机,而不是首先产生一个停止位。

图5 完整的数据传输

图5 完整的数据传输

可能的数据传输格式有:

1. 主机(发送器)发送到从机(接收器)。传输的方向不会改变。见图6。

2. 在第一个字节后,主机立即读从机。见图7。在第一次响应时,从机(发送器)变成主机(接收器),从机(接收器)变成从机(发送器)。第一次响应仍有从机产生。之前发送了一个不响应信号(A‘)的主机产生停止条件。

3. 复合格式,见图8。传输改变方向的时候,起始条件和从机地址都会被重复。但R/W’位取反。如果主机(接收器)发送一个重起始条件,它之前应该发送一个不响应信号(A‘)。

图6 主机(发送器)用7位地址寻址从机(接收器),传输方向不变

图6 主机(发送器)用7位地址寻址从机(接收器),传输方向不变

图7 在第一个字节后,主机立即读从机

图7 在第一个字节后,主机立即读从机

图8 符合格式

图8 符合格式

信号连接示意图

图9 I2C总线信号连接示意图

图9 I2C总线信号连接示意图

参考

1.Philips Semiconductors, The I2C SPECIFICATION V2.1, 2000.02

2. 周立功单片机, I2C总线概要, 2006.11

3. 周立功单片机, 虚拟I2C汇编程序软件包

4. 何立民, I2C总线应用设计, 1995, 北京航天航空大学出版社

原文地址:https://www.cnblogs.com/yuphone/p/1617923.html