Skip to content
On this page

IIC时序


标签:嵌入式/总线  

IIC时序的概念

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

起始和停止条件

img/202306141927.png

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

数据传输(读写)

img/202306141939.png

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

应答和非应答信号

img/202306141955.png

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

设备地址

img/202306142002.png

  • 图片摘自IIC官方文档
  • 在IIC总线上,所有从机都有一个 7 位的地址^1
  • 主机在产生起始信号后,必须先发送一个 7 位的『从机地址』+ 1 位读写位
    • 0表示写,1表示读
  • 7 位从机地址 + 0:表示发送器向 SDA 线写入数据
  • 7 位从机地址 + 1:表示接收器从 SDA 线读取数据

Last updated: