单片机
返回首页

51单片机I2C协议设计案例

2025-09-25 来源:bilibili

1 I2C协议介绍

1.1 I2C总线的物理拓扑结构

I2C总线物理上有SDA和SCL以及上拉电阻组成,这两条线分别叫做串行数据线和串行时钟线。通过对两条线的时序控制完成I2C协议信号的传递。在空闲状态,两根线被上拉电阻拉高。I2C协议为半双工通信,仅有一根数据线。


1.2 I2C总线特征

I2C总线上的每一个设备都可以作为主设备或者从设备(一般把CPU带I2C总线接口的模块作为主设备,其他设备作为从设备)。总线上的每一个设备都对应唯一的地址,I2C总线上挂接的设备总数量受最大点燃400pF和设备地址的限制。

I2C总线数据传输速率:标准模式下100kbit/s,快速模式下400kbit/s,高速模式下3.4Mbit/s,可通过I2C总线接口可编程时钟调整速率,同时也跟上拉电阻有关。I2C总线上的主从设备以字节为单位进行数据传递。


1.3 I2C总线协议

总线上的数据传输必须是以一个起始信号为开始,一个结束信号作为终止条件,起始信号和终止信号由主设备产生,然后等到从设备的通信。

起始信号:总线空闲时候,SCL和SDA都为高电平,SCL保持高电平,SDA由高到低,产生一个起始信号,之后总线处于忙状态,其他设备无法访问总线;SCL为高电平,SDA由低到高,产生一个终止信号。

产生起始信号之后,开始数据传递,在SCL的每个时钟周期在SDA上传输一个数据位

当一个字节的数据位从高到底的顺序传输完之后,从设备拉低SDA线,回传给主设备一个应答位。此时一个字节才真正的被传输完成(当从设备不能再接收主设备发送的数据时,从设备将回传一个否 定应答位)。数据传输的过程如下:

I2C总线上的每一个设备都对应一个唯一的地址,主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7位的,然后协议规定再给地址添加一个最低位用来表示接下来数据传输的方向,0表示主设备向从设备写数据,1表示主设备向从设备读数据。向指定设备发送数据的格式如图所示:(每一最小包数据由9bit组成,8bit内容+1bit ACK, 如果是地址数据,则8bit包含1bit方向)。

1.4 I2C总线操作

I2C总线的操作模式大致可以分为以下几类:

(1)主设备往从设备写数据

(2)主设备从从设备读数据

(3)主设备往从设备中写数据,然后重启起始条件,紧接着从从设备中读取数据;或者是主设备从从设备中读数据,然后重启起始条件,紧接着主设备往从设备中写数据。数据传输格式如下:


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 1瓦四级调频发射机

  • 500W MOS场效应管电源逆变器,12V转110V/220V

  • 红外开关

  • LM317过压保护

  • 0-30V/20A 大功率稳压电源(采用LM338)

    相关电子头条文章