(一)、简介:
1、I2C总线传输,顾名思义是用来作为数据传输用的。
2、是由Philips设计的。
3、只有两根线,一根SCL串行时钟线,一根SDA串行数据线。
4、I2C总线上可挂多个从机设备,每个挂在I2C总线上的从机都有唯一的设备地址,主机靠设备地址来区分从机。
5、I2C总线必须接上拉电阻,一般接4.7k的上拉电阻。
6、硬件结构图如下:
(二)、I2C协议及时序
1、起始位
当SCL处在高电平,SDA出现下降沿时,便是为起始位。
2、停止位
当SCL处在高电平,SDA出现上升沿时,便是为停止位。
3、数据传输
当SCL处于高电平时,SDA上的数据要保持稳定,也就是说SDA要提前准备好数据,当SCL处于高电平时才能保持稳定。当SCL低电平时,SDA才能改变数据。
4、应答信号
I2C主机每发送8位数据(不包括起始位和停止位)就会将SDA转为输入,下一个时钟信号就会给从机使用,并且等待从机将SDA拉低,这也就是应答(ACK)信号。有了ACK才表示通信成功。
5、写时序
I2C的操作就两个,主机向从机的某个寄存器写数据,或者主机读取从机某个寄存器的数据。首先写操作的时序是这样的:
分为三步:发送设备地址、发送寄存