Skip to main content

什么是I2C协议?

21 串口通信(第1节)—串口通信协议简介 (六月 2025)

21 串口通信(第1节)—串口通信协议简介 (六月 2025)
Anonim

飞利浦于20世纪80年代开发出I2C,它已成为电子领域最常见的串行通信协议之一。无论组件是在同一PCB上还是通过电缆连接,I2C都可实现电子元件或IC与IC之间的通信。 I2C的关键特性是能够在单个通信总线上只有两条线路上拥有大量组件,这使得I2C非常适合要求简单和低成本的应用程序。

I2C协议

I2C是一种串行通信协议,只需要两条信号线。它专为PCB上芯片之间的通信而设计。 I2C最初设计用于100kbps通信,但多年来已经开发出更快的数据传输模式,以实现高达3.4Mbit的速度。 I2C协议已经建立为官方标准,它提供了I2C实现之间的良好兼容性和良好的向后兼容性。

I2C信号

I2C协议仅使用两条双向信号线与I2C总线上的所有器件通信。使用的两个信号是:

  • 串行数据线(SDL)
  • 串行数据时钟(SDC)

I2C只能使用两个信号与多个外设通信的原因在于如何处理沿总线的通信。每个I2C通信都以一个7位(或10位)地址开始,该地址调出外设的地址,其余的通信用于接收通信。这允许I2C总线上的多个器件根据系统的需要发挥主器件的作用。为了防止通信冲突,I2C协议包括仲裁和冲突检测功能,允许沿总线的平滑通信。

优点和局限

作为通信协议,I2C具有许多优点,使其成为许多嵌入式设计应用的理想选择。 I2C具有以下优势:

  • I2C仅需要两条信号线
  • 灵活的数据传输速率
  • 总线上的每个设备都是可独立寻址的
  • 设备具有简单的主/从关系
  • I2C能够通过提供仲裁和通信冲突检测来处理多个主通信
  • 比SPI更长距离的通信

利用所有这些优点,I2C还有一些可能需要设计的限制。最重要的I2C限制包括:

  • 由于只有7位(或10位)可用于器件寻址,因此同一总线上的器件可以共享相同的地址。有些设备能够配置地址的最后几位,但这仍然限制了同一总线上的设备。
  • 只有少数有限的通信速度可用,并且许多设备不支持更高速度的传输。需要对总线上的每个速度进行部分支持,以防止较慢的设备捕获将导致操作故障的部分传输。
  • 当总线上的单个设备停止运行时,I2C总线的共享特性可能导致整个总线挂起。将电源循环到总线可用于重新启动总线并恢复正常操作。
  • 由于设备可以设置其通信速度,因此较慢的操作设备可能会延迟更快速设备的运行。
  • 由于通信线路的漏极开路拓扑结构,I2C比其他串行通信总线消耗更多功率。
  • I2C总线的限制通常将总线上的设备数量限制为大约十几个设备。

应用

对于需要低成本和简单实现而非高速的应用,I2C总线是一个很好的选择。例如,读取某些存储器IC,访问DAC和ADC,读取传感器,传输和控制用户控制的动作,读取硬件传感器以及与多个微控制器通信是I2C通信协议的常见用途。