深入浅出了解IIC协议
SCL : 传输时钟信号
SDA : 传输数据信号
1.空闲状态 :
SDA 与 SCL都处于高电平
2.起始状态 :
在SCL为高的时候 主设备控制 SDA 从1 到 0 在进入起始位之后,我们把SCL翻转 从设备开始等待主机传输地址
3.发送阶段 :
先发送地址 确定的是哪一个设备 ,每个地址的编号都是唯一的
主设备按照从高到低的顺序,依次发送地址
并且附带上 读写控制位
读写控制位 0表示 主机对从机写 1表示 主机对从机读
因为SCL是时钟线 SDA传输数据 所以我们在SCL低的时候将 数据放到 SDA上
在SCL为高时 开始对SDA的数据进行采样
4.响应位 ;
我们观察 整个数据传输 会发现最后还剩下了一个 响应位
主机开始的时候 拥有对SDA的绝对控制权
( 我们在传输完地址之后 怎么表示正确传输了 这就需要从机来确认)
所以主机 在传输完成后 释放对SDA的控制 因为SDA 默认为拉高的状态 我们释放之后 交由 从机控制 如果从机接受到了响应 那么就把 高电平拉至 低电平 完成响应 表示我正确接收到了地址信息
5.数据位:
当我们传递完地址和响应之后 我们需要做的是对数据内容的传递 没穿第一个内容 就要跟上一个应答位
6.停止位:
停止位就是 SCL先拉高 ,在SCL为高电平时,再将SDA从低拉到高 此后 IIC协议电路重新进入空闲状态