IIC串行总线的组成及工作原理
1.基本组成
IIC总线只有两根双向信号线:数据线SDA(serial data I/O),时钟线SCL(serial clock)。如图,IIC总线上可以挂多个器件,数据通讯方式采用主从方式,主机负责主动联系从机,而从机则被动回应数据。
IIC总线通过上拉电阻接正电源,总线空闲时两根线均为高电平,连接到总线上任一器件输出低电平都会将总线信号拉低,即各器件的SDA和SCL都是线“与”关系。
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 主机始终向从机发送数据,数据传送方向始终不变(阴影部分表示主机发出的数据,无阴影表示从机发出的数据):
A表示应答(低电平),S为起始信号,P为终止信号。