协议简介
I2C Bus(IIC,inter-intergrated Circuit Bus),是一种在电子通信控制领域常用的通信协议。
由时钟线(SCL)和数据线(SDA)两根线构成通信线路,利用上拉电阻将他们拉成高电平,表示总线空闲,其典型的电压准位为+3.3V或+5V,具有电路简单,连接线少,控制简单,通信速率高等优点。
I2C总线是一个主从结构(Master/Slave)总线,I2C总线上的每一个设备都可以作为主设备或者从设备,但一个总线上一般只有一个从设备,可以带多个从设备,其中主设备用来产生允许传输的时钟信号,并初始化总线的传输数据,所以主设备通常是CPU;而从设备只能被动响应主设备发起的通信请求,所以各种I2C接口芯片将作为设备使用。
I2C用户手册:https://www.nxp.com.cn/docs/en/user-guide/UM10204.pdf
I2C从设备地址
因为一个I2C总线上可以有多个从设备,这样从设备需要通过地址来确定与哪个器件进行通信。I2C总线上每个从设备都有一个唯一的7bit地址物理识别,这个地址固话在芯片内部,并可以从芯片datasheet上找到。