简单记录下IIC相关知识点。老是忘记。
首先IIC是两根线,SDA和SCL,SDA用于传输数据,SCL是时钟脉冲。IIC是半双工的一种通信。
- 硬件连接
由于默认SDA和SCL都为高电平为空闲状态,所以这两根线会通过上拉电阻接到Vcc
- IIC的几种信号定义
- 空闲信号
当SDA和SCL都为高电平,认为是空闲状态
- 起始信号
SCL为高,SDA由高变到低。
- 终止信号
SCL为高,SDA从低变到高
- 数据传输
(1)发送起始信号
(2)数据传送:SCL为高,SDA稳定(一直为高或者低)
(3)数据跳变:SCL为低,SDA允许跳变
(3)发送终止信号
注:数据传送的时候,SDA不能跳变,否则就会被认为是起始/终止信号。
- 应答信号
这个信号表示,接收端成功或者不成功的接收了8个字节。当第9个字节为高表示ACK信号,表明接收端的肯定响应。当第9个字节为低表示NACK信号,表明接收端的否定响应。
(1)起始信号
(2)数据传送(SCL高SDA稳定。 SCL低SDA变化,直到发了8位)
(3)SCL低电平,SDA信号变化(接收端控制高低电平)
(4)SCL时钟脉冲变为高电平,SDA信号稳定(接收端控制)
(5)发送端检测在第9个SCL脉冲为高期间的SDA信号
(6)SDA为1表ACK,SDA为0表NACK
- 总线总裁