通用协议
I2C协议比串行通信协议更复杂,因为它必须支持多个设备之间的通信。让我们使用示例看看它是如何工作的:
主 -> 从
如果master要向slave发送数据:
- Master: 广播开始
- M: 广播从机地址(7 位)+ R/W(第 8 位)设置为WRITE
- Slave: 响应ACK(确认)
- M: 发送一个字节
- S: 响应ACK
- 重复步骤4和5零次或多次
- M: 广播停止或(广播重启并返回(2))
注意:从机地址可以是10位而不是7位长。其他一切都不会改变。
主 <- 从
如果master要从slave读取数据:
- M: 广播开始
- M: 广播从机地址(7 位)+ R/W(第 8 位)设置为 READ
- S: 以ACK响应
- S: 发送字节
- M: 以ACK响应
- 重复步骤4和5零次或多次
- M: 广播停止或(广播重启并返回(2))
注意:从机地址可以是10位而不是7位长。其他一切都不会改变。