1. I2C协议基础概念与历史背景
I2C(Inter-Integrated Circuit)总线是Philips半导体(现NXP)在1980年代推出的同步串行通信协议,最初设计目的是为电视机芯片提供低成本的控制总线。经过30多年发展,已成为嵌入式系统中最常用的板级通信协议之一。
1.1 协议核心特性
I2C协议具有以下典型特征:
- 两线制架构:仅需SCL(时钟线)和SDA(数据线)两根信号线,极大简化硬件布线
- 多主多从支持:通过总线仲裁机制支持多个主设备协同工作
- 软件可编程地址:7位或10位地址空间,支持同一总线上挂载多个从设备
- 速率分级:
- 标准模式:100kbps
- 快速模式:400kbps
- 高速模式:3.4Mbps
- 超快速模式:5Mbps
注意:实际通信速率受总线电容限制,当总线上挂载设备较多时,需适当降低速率以保证信号完整性。
1.2 典型应用场景
在嵌入式系统中,I2C常用于以下场景:
- 传感器数据采集(温度、湿度、加速度等)
- EEPROM存储器访问
- 实时时钟(RTC)模块控制
- LCD/OLED显示驱动
- 数字电位器调整
以STM32F103系列MCU为例,其内置至少2个I2C外设,可直接驱动各类I2C器件,典型连接方式如图:
code复制MCU(I2C Master) ---- SCL ----+---- SCL ---- Device1
|
MCU(I2C Master) ---- SDA ----+---- SDA ---- Device2
|
+---- GND ----
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. I2C协议层深度解析
2.1 电气特性规范
I2C总线采用开漏输出结构,必须外接上拉电阻(典型值4.7kΩ)。信号电平规范如下:
| 参数 | 标准模式 | 快速模式 | 单位 |
|---|---|---|---|
| VIL(max) | 0.3VDD |
