IIC通信
0. 前言
1. 基础知识
物理层
- SCL 时钟线
- SDA 数据线
通信方式
IIC是串行、同步、半双工工的通信方式
通讯速率
IIC有不同的模式
标准模式,时钟频率为100KHz,即数据传输速率为100Kbit/s
快速模式,时钟频率为400KHz,数据传输速率为400Kbit/s
高速模式,时钟频率为3.4MHz,数据传输速率为3.4Mbit/s
特点
IIC通信分为主机和从机,IIC可以有多个主机,但是同一个时刻只能有一个主机工作。也可以有多个从机
2. 时序
通信过程(这是一般情况,具体的请参考芯片手册)
- 主机启用IIC总线
- 发送设备地址,选择相应的从机,应答
- 发送寄存器地址,应答(有的芯片会有寄存器地址)
- 发送数据
- 等待从机应答(循环4,5)
- 主机发送停止信号
主机向从机写入数据
主机向从机读取数据
IIC数据传输
- 传送开始
- 传送停止
- 传送有效
- 传送应答
IIC通信在应用中有硬件IIC和模拟IIC之分,常用GPIO模拟IIC来实现工程的芯片之间的通信,信号时序图如下。
起始信号、停止信号
- 起始信号:SCL为高电平,SDA由高电平向低电平跳变,开始数据传输
- 停止信号:SCL为高电平,SDA由低电平向高电平跳变,结束数据传输
数据有效
- 在SCL低电平期间,SDA的电平可以变化
- SCL电平变为高电平,SDA必须保持不变
- SCL电平变为低电平,1bit数据发送完毕
数据应答
IIC发送一个字节数据后,就在第9个时钟脉冲期间释放总线,接收从机的应答信号,如果信号为低电平,表示从机成功的接收了数据
图片以及部分内容来自网上,侵权请联系删除