目录
IIC总线协议
IIC前置
介绍
Inter Integrated Circuit ,集成电路总线,是一种同步(有时钟) 串行 半双工 通信总线。
IIC总线 IIC协议,两者都是指IIC,总线偏硬件,是传输数据通道,协议偏软件,是传输数据的规则。
IIC硬件软件区别
IIC总线拓扑图
- 第三点,每个器件都有自己的电容,fSCL 的频率是数据传输速率
IIC协议
IIC协议时序***!!!最重要!!!!
-
起始 、停止
-
从机获得 SCL高、SDA下降沿信号,会自身复位,等待主机
-
主机会再把SCL拽下来,占用总线,并保证,每个时序单元的SCL都是以低电平开始,低电平结束,这样SCL才能接续
-
-
停止之前,也就是应答位之后,会拉低SDA,此时SCL高电平读的就是上升沿信号
-
-
主机发送一个字节(高位先行,和串口时序不一样【低位先行】)
-
主机拉高SCL,从机在SCL上升沿就会读走数据,主机拉低SCL,准备下一位数据;但是主机拥有SCL主导权,可以在低电平时准备数据,晚点没关系。依次循环8次,即发送一个字节
-
因为主机才可以控制SCL时钟线,所以主机在发送字节时,有中断发生,主机不再操作SCL和SDA,时序会在中断的位置不断拉长,SCL、SDA电平都暂停变化,传输也完全暂停,等中断结束后,主机再回来操作
-
在发送字节时,主机全程控制SCL、SDA,而从机是在SCL高电平时,依次读取SDA。
-
-
主机接收一个字节
-
SCL低电平时,将数据放在SDA上,主机在SCAL高时读取
-
主机在接收之前,需要释放SDA。
-
所有设备,包括主机都始终处于输入模式,当主机需要发送的时候,就可以主动拉低SDA,主机在被动接收时,必须先释放SDA,从机就可以控制SDA数据线,即发送数据位 1/0;
-
(总线的 线与 特征,任何一个设备拉低,总线就是低电平,如果主机接收时,还控制SDA,别人发什么数据,总线都是低电平)
-
-
主机控制SCL时钟线:从机的数据变换基本上是 SCL时钟线下降沿进行的,主机可以在SCL高电平时任意读取
-
-
-
应答
-
主机发送应答
-
主机在接收完一个字节后,在下一个时钟发送一位数据,0是应答(告诉从机继续发),1是非应答。
-
从机接收应答位为 1 ,认为主机不需要从机继续发送数据,从机就会释放SDA数据线控制,SDA线会拉高。
-
-
-
主机接收应答
-
从机接
-
-