IIC,全名两线式串行总线,这两条线一个是数据线SDA,一个是时钟线SCL。线总是要连接东西,连接什么呢?连接CPU与被控IC,或者IC与IC。IC比如说EEPROM(24C02)存储器。同时是半双工通信,即一次总线上只能由一方传输数据。
这个图就是说这两条线一般初始情况下都是置高电平。
另外,
IIC协议总共有6个特点:
1空闲状态
2开始信号
3停止信号
4应答信号
5数据的有效性
6数据传输
也就说,在IIC通信的代码中必须要涉及到这6个部分。下面分别来说。
1空闲状态:两条线处于高电平就是空闲状态。
2开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。
3结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。//这个都很好理解,不懂的可以私信。
注:起始信号和终止信号都是通过边沿触发而非电平触发
边沿触发就是电平在跳变的过程中进行触发。而电平触发是高电平触发或者低电平触发。
4应答信号:(这个相对就不太好理解了)
简单的说,就是你发送器发送一个字节过来,一个字节有8位,一个位一个时钟脉冲,那么就在第9个时钟脉冲高电平期间,释放数据线为低电平,算作为由接收器反馈了一个应答信号,如果是高电平就是没接受成功。
对应答信号ACK还有一个要求就是ÿ