IIC串行总线的组成及工作原理

1.基本组成

IIC总线只有两根双向信号线:数据线SDA(serial data I/O),时钟线SCL(serial clock)。如图,IIC总线上可以挂多个器件,数据通讯方式采用主从方式,主机负责主动联系从机,而从机则被动回应数据。
IIC串行总线的组成及工作原理
IIC总线通过上拉电阻接正电源,总线空闲时两根线均为高电平,连接到总线上任一器件输出低电平都会将总线信号拉低,即各器件的SDA和SCL都是线“与”关系。
IIC串行总线的组成及工作原理

2.传输协议

2.1 数据位的有效性规定

SCL高电平期间SDA上的数据必须保持稳定;
SCL为低电平期间SDA状态才允许变化。

2.2 起始和终止信号

SCL高电平期间,SDA由高电平向低电平的变化表示起始信号;
SCL高电平期间,SDA由低电平向高电平的变化表示终止信号。

2.3 字节的传送与应答

1)一个字节必须保证是8位长度,先传送最高位(MSB),每个被传送的字节后面都得有一位应答位,也就是说,一帧共有9位。
2)从机发出的应答位为“0”表示发出应答;从机发出的应答位为“1”表示发出非应答。
3)当主机接收数据时,在其收到最后一个字节后,必须向从机发出一个结束传送的信号,然后从机释放SDA线以允许主机产生终止信号。

2.4 总线寻址

在起始信号之后第一个字节为7位的(从机)寻址字节(第8位为数据传送方向位)。该字节包括固定部分和可编程部分(决定了该总线上可搭载的相同器件的最大个数)。

3.数据传送过程中常用的几种组合方式

3.1 主机始终向从机发送数据,数据传送方向始终不变(阴影部分表示主机发出的数据,无阴影表示从机发出的数据):

IIC串行总线的组成及工作原理
A表示应答(低电平),S为起始信号,P为终止信号。

3.2 主机在第一个字节后立即从从机读数据:

IIC串行总线的组成及工作原理

3.3 数据传送需要改变方向时,起始信号和从机地址都重复产生一次,但两次的方向位正好反向。

IIC串行总线的组成及工作原理

4.通信时序

IIC串行总线的组成及工作原理