I2C通讯介绍

Jul 10, 2024

I2C通讯介绍

串口通信的限制

  • 串口通讯只能在两个设备之间进行
  • 三个设备互相通讯:每个设备需要两组串口,共三组独立的串口通讯
  • 四个设备:线路连接更加复杂

总线通讯的引入

  • 解决多设备通讯的复杂性
  • 各种协议介绍
  • 重点介绍I2C通讯

I2C通讯基础

  • 全称:Inter-Integrated Circuit (芯片与芯片之间的通讯)
  • 线路连接简单
  • 一主多从模式:单片机是主机,其它设备是从机

通讯过程示例:写数据

基本概念

  • I2C两根线:时钟线(SCL)和数据线(SDA)
  • 数据帧由时钟线和数据线共同作用
  • 空闲状态:数据线和时钟线均为高电平

数据传递细节

  1. 起始位
    • 时钟信号为高电平期间,数据信号实现由高到低的跳变(下降沿)
  2. 设备地址码
    • 发送7位设备地址码(唯一,区分从设备)
    • 7位地址码表示128种结果
  3. 数据传输规则
    • 时钟线为高电平时,数据线上的数据必须保持稳定
    • 数据线高电平:逻辑1
    • 数据线低电平:逻辑0

写数据帧示例

  • 发送地址为1010 000的设备地址码(如24C02)
  • 读/写位:写数据置0
  • 应答信号:从机发送,表示收到信息(0为收到/读取接收完成,1为未收到)
  • 设备寄存器地址:8位(如0X01,表示要访问的寄存器地址)
  • 数据内容:要写入的数据(如0000 1111)
  • 最后发送应答信号(告知主机写入成功)
  • 停止位:时钟信号高电平,数据信号低到高跳变

读取数据过程

  • 与写数据类似
  • 写设备地址
  • 写寄存器地址
  • 从机应答信号后,主机发送新的起始信号
  • 重新发送一遍设备地址
  • 读取寄存器数据
  • 主机发送应答信号(1,告知从机接收完成)