2.1i2c通信协议
通信协议:用来实现数据传输。
i2c物理总线:SCL(时钟线) SDA(数据线)
i2c通信协议是 串行、同步、半双工 的通信方式。
i2c物理总线中,SCL时钟线只能由MCU来控制。SDA数据线可以收发数据。
i2c通信必须是MCU和i2c从设备之间的双方通信。
一条i2c总线上可以挂载多个i2c从设备。在进行通信时,必须是MCU和i2c从设备之间的通信,MCU一次只能和一个i2c从设备通信。
一条i2c总线上如果挂载多个i2c从设备,i2c总线通过器件地址来区别不同的i2c从设备。
器件地址:每一个i2c从设备挂载到i2c总线之后,必须得到的一个在该总线上的编号。
器件地址一般是一个8位的数据。
器件地址的组成:4(设备ID) + 3(可编程地址) + 1(读写控制位)
总结:i2c通信协议是同步通信,MCU通过器件地址查找要通信的i2c从设备。
i2c通信协议时序:
BB贝博艾弗森官方网站空闲信号、 起始信号、 读数据、 写数据、 发送应答、 接收应答、 终止信号
空闲信号:
SCL: 高
SDA: 高
起始信号:
SCL:高
SDA:由高变低
读数据:
SCL:高
SDA:获取SDA上的电平
写数据:
SCL:低
SDA:改变SDA电平状态
终止信号:
SCL:高
SDA:由低变高