1. I2C总线基础

1.1 I2C总线历史

I2C(Inter-Integrated Circuit)总线由飞利浦半导体(现恩智浦半导体)于1982年发明,最初用于电视接收机中微控制器与外围芯片之间的低成本、短距离通信。其设计目标是以最少的引脚数(仅需两根线)实现多设备互联,从而简化PCB布局并降低系统成本。

时间 里程碑 关键特性
1982年 飞利浦发布I2C总线规范v1.0 100 kbit/s标准模式,7位地址
1992年 I2C规范v2.0 新增400 kbit/s快速模式,10位地址扩展
1998年 I2C规范v2.1 明确电气特性与时序容差
2007年 I2C规范v3.0 新增1 Mbit/s快速模式+(Fm+)
2012年 I2C规范v4.0 新增3.4 Mbit/s高速模式(Hs-mode)
2014年 I2C规范v5.0 新增5 Mbit/s超快速模式(UFm)
实践提示:音频Codec驱动开发中最常用的I2C模式为标准模式(100 kHz)和快速模式(400 kHz)。高速模式(3.4 MHz)在部分高端音频Codec中开始出现,但需要主控器支持且对PCB布局要求更高。

1.2 物理层特性:SDA与SCL

I2C总线仅使用两条双向信号线:

  • SDA(Serial Data Line):串行数据线,用于传输地址、数据和控制信号。
  • SCL(Serial Clock Line):串行时钟线,由主设备产生,同步数据传输。

两条线均采用开漏(Open-Drain)输出结构,通过外部上拉电阻连接到VDD(通常为1.8V、3.3V或5V)。

关键电气特性:

  • 总线空闲时,SDA和SCL均为高电平(由上拉电阻拉高)。
  • 任何设备都可以将SDA或SCL拉低(输出低电平)。
  • 上拉电阻典型值:1.5 kΩ ~ 10 kΩ,取决于总线电容和通信速率。
  • 总线电容限制:标准模式最大400 pF,快速模式最大200 pF。
I2C总线物理层连接拓扑 主控制器 (MCU/SoC) Rp Rp VDD (1.8V/3.3V) SDA SCL 音频Codec (从设备1) 传感器 (从设备2) EEPROM (从设备3) 开漏输出 + 上拉电阻 “线与”逻辑:任意设备可拉低总线

1.3 总线拓扑结构

I2C总线采用多主多从的共享总线拓扑结构,所有设备通过SDA和SCL两条线并联连接。每个从设备拥有唯一的7位或10位地址,主设备通过地址选择通信目标。

拓扑特性 说明
总线类型 共享串行总线,所有设备共用SDA/SCL
设备角色 主设备(Master)发起通信并产生时钟;从设备(Slave)响应主设备
最大设备数 受限于总线电容(400 pF)和地址空间(7位:128个,10位:1024个)
通信方向 半双工,主设备可发送或接收数据
仲裁机制 多主同时发送时,通过SDA线的“线与”逻辑进行仲裁,低电平优先
最大传输距离 标准模式约1米(受总线电容和上拉电阻限制)
音频Codec调试注意:在音频Codec驱动开发中,I2C总线通常只挂载1~2个设备(Codec + 可能的触摸控制器或功放)。但若总线上存在多个设备,务必确认每个从设备的地址不冲突。音频Codec的I2C地址通常由芯片的ADDR引脚电平决定,常见地址为0x1A、0x1B、0x1C等。

1.4 多主从通信概念

I2C总线支持多主设备在同一总线上通信,这是其区别于SPI等简单总线的重要特性。多主通信的核心机制包括:

  • 总线仲裁(Arbitration):当多个主设备同时尝试控制总线时,通过SDA线的电平比较决定哪个主设备获得总线控制权。发送低电平的主设备将赢得仲裁。
  • 时钟同步(Clock Synchronization):多个主设备产生的SCL时钟通过“线与”逻辑自动同步,以最慢的主设备时钟为准。
  • 从设备地址冲突检测:每个从设备必须拥有唯一地址,否则会导致通信混乱。
多主设备仲裁与时钟同步流程 主设备A 主设备B 从设备 仲裁 时钟 同步 仲裁规则: 发送低电平的主设备 赢得总线控制权 丢失仲裁的主设备 转为从模式监听

多主通信在音频Codec场景中的实际意义:

  • 在智能手机/平板等复杂系统中,应用处理器和协处理器可能都需要访问音频Codec的寄存器。
  • 多主仲裁机制确保两个主设备不会同时驱动总线导致数据冲突。
  • 时钟同步机制自动协调不同主设备的时钟速率,保证通信可靠性。
  • 实际调试中,建议尽量使用单一主设备访问音频Codec,避免多主竞争带来的时序不确定性。

1.5 I2C总线与音频Codec驱动的关联

在音频Codec驱动开发中,I2C总线承担着控制通道的角色,用于读写Codec内部的寄存器,配置采样率、增益、路由、滤波器等参数。而音频数据本身通常通过I2S或TDM等音频总线传输。

总线类型 在音频系统中的角色 典型速率 传输内容
I2C 控制通道:寄存器读写、配置管理 100 kHz ~ 400 kHz 寄存器地址、配置值、状态查询
I2S 数据通道:音频PCM数据流 1.5 MHz ~ 12.288 MHz 左/右声道音频采样数据
TDM 多通道音频数据复用 6.144 MHz ~ 24.576 MHz 多声道音频数据