I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、 CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路 (IC) 间的通讯。
如图是通过IIC通信协议进行通讯的主机与各个从机示意图。
接下来介绍一下我个人理解的IIC读写基本过程。
这是通过协议写入一个字节 数据的过程。首先由主机发出传输信号(S),紧接着开始呼叫从机的具体地址(SLAVE ADDRESS),并且在地址信号后加上一位数据来表明读or写。由于SDA数据线上通常挂在着多个从机设备,所以在主机呼叫从机地址后,各个挂载设备会接受数据并且有与自己的地址进行比对,如果比对成功,则回应主机一位数据(A)。
这时候,主机与从机配对成功,建立通讯,主机开始正式向从机传输数据 (DATA),数据包的大小为 8 位,主机每发送完一个字节数据,都要等待从机的应答信号 (ACK),重复这个过程,可以向从机传输 N 个数据,这个 N 没有大小限制。当数据传输结束时,主机向从机发送一个停止传输信号 (P),表示不