Appearance
IIC时序的概念
- IIC 是一种串行通信接口,用于设备之间进行数据传输
- IIC 总线的时序描述了 IIC 通信各个信号和时间关系和传输规则
- 其包含的概念有:起始条件,传输地址,设备响应,数据传输和停止条件
- 时序的设计是完成 IIC协议 的物理基础
起始和停止条件

- 图片摘自IIC官方文档
- 起始信号:在 SCL 为高电平期间,SDA 从高电平到低电平的变化(下降沿)
- 停止信号:在 SCL 为高电平期间,SDA 从低电平到高电平的变化(上升沿)
- 起始信号和停止信号都是由主机产生的
- 主机主动发起数据,主机主动结束数据
- 起始信号产生后,IIC总线处于占用状态
- 停止信号产生后,IIC总线处于空闲状态
数据传输(读写)

- 图片摘自IIC官方文档
- 在 SCL 处于高电平期间,SDA 上的数据保持稳定,接收器从 SDA 上读取数据
- 数据是按帧发送的,所以不会和起始/终止条件冲突
- 在 SCL 处于低电平期间,SDA 上的数据允许变化,发送器向 SDA 上写入数据
应答和非应答信号

- 图片摘自IIC官方文档
- 每一个字节必须 8 位长度,数据发送时,先发送高位再发送低位
- 每个被传输的字节后面必须跟随一个应答信号
- 一帧数据 = 8 位数据位和 + 1位应答位 = 9 位
- 发送器在完成 8 位数据之后,接收器在第九个时钟周期,返回一个应答信号(低电平)或者非应答信号(高电平)
- 这需要发送器发送完数据后,释放数据线
- 接收器在第 9 个时钟周期,向数据线上写 0 (应答信号),1(非应答信号)
设备地址
