I
2C 总线是控制器与一系列外设之间的通信链路。该链路是使用一条双线总线建立的,这条总线包含串行时钟信号 (SCL) 和串行数据信号 (SDA)。在串行数据线路用于控制器与外设终端之间双向数据通信的所有情况下,串行时钟均来源于控制器。每个器件都有一个开漏输出可用于在串行数据线路 (SDA) 上传输数据。为了在数据传输期间将漏极输出拉至高电平,必须在串行数据线路上放置一个外部上拉电阻器。该器件上配有一个外设 I
2C 接口,这个接口支持以标准模式、快速模式和快速+ 模式运行,数据速率分别高达 100kbit/s、400kbit/s 和 1000kbit/s,并可实现与 I
2C 标准 3.0 兼容的自动递增寻址。如下图所示,数据传输由一个来自控制器的起始位启动。在 SCL 信号的高电平期间,当 SDA 线路从高电平转换为低电平时,会识别到启动条件。接收到起始位后,该器件将在 SDA 输入端接收串行数据,并检查是否存在有效地址和控制信息。如果为器件设置了外设地址位,则器件会发出确认脉冲并准备接收寄存器地址和数据。在接收到停止条件或接收到发送给器件的数据字时,数据传输即完成。停止条件是指在 SCL 信号的高电平期间,SDA 输入从低电平转换到高电平。SDA 线路的所有其他转换必须在 SCL 信号的低电平期间完成。在接收到有效地址、子地址和数据字后,会发出确认。I
2C 接口通过寄存器地址实现自动定序,以便在一次给定的 I
2C 传输中可以发送多个数据字。