⑦ 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。
三、I2C协议层
I2C 的协议定义了通信的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等环节。
1、写操作
刚开始主机要发出一个start信号,然后发出一个设备地址(用来确定是往哪一个从机写数据),方向(读/写,0表示写,1表示读)。
回应(用来确定这个设备是否存在),然后就可以传输数据,传输数据之后,要有一个回应信号(确定数据是否接受完成),然后再传输下一个数据。
每传输一个数据,接受方都会有一个回应信号,数据发送完之后,主机就会发送一个P停止信号。
- 白色背景:主→从
- 灰色背景:从→主
2、读操作
刚开始主机要发出一个start信号,然后发出一个设备地址(用来确定是从哪一个芯片读取数据),方向(读/写,0表示写,1表示读)。
回应(用来确定这个设备是否存在),然后就可以传输数据,传输数据之后,要有一个回应信号(确定数据是否接受完成),然后在传输下一个数据。
每传输一个数据,接受方都会有一个回应信号,数据发送完之后,主机就会发送一个P停止结束信号。
- 白色背景:主→从
- 灰色背景:从→主
3、起始信号与停止信号
起始信号S和停止信号P是两种特殊的状态。
当 SCL 线是高电平时 SDA 线从高电平向低电平切换,这个情况表示通信的起始。
当 SCL 是高电平时 SDA 线由低电平向高电平切换,表示通信的停止。
起始和停止信号一般由主机产生。
4、设备地址与数据方向
I2C 总线上的每个设备都有自己的独立地址,主机发起通信时,通过SDA 信号线发送设备地址(SLAVE_ADDRESS)来查找从机。
I2C 协议规定设备地址可以是 7 位或 10 位,实际中 7 位的地址应用比较广泛。
紧跟设备地址的一个数据位用来表示数据传输方向,它是