更新时间:2023-12-01 15:05
I2C是内部整合电路的称呼,是一种串行通讯总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边装置而发展。I2C只使用两条双向开放集极(Open Drain)(串行资料(SDA)及串行时脉(SCL))并利用电阻将电位上拉。I2C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v。
I22C协定不需要为其专利付费,但制造商仍然需要付费以获得I2C从属装置位址。
I2C的参考设计使用一个7位元长度的位址空间但保留了16个位址,所以在一组总线最多可和112个节点通讯。常见的I2C总线依传输速率的不同而有不同的模式:标准模式(100 Kbit/s)、低速模式(10 Kbit/s),但时脉频率可被允许下降至零,这代表可以暂停通讯。而新一代的I2C总线可以和更多的节点(支援10位元长度的位址空间)以更快的速率通讯:快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。
虽然最大的节点数目是被位址空间所限制住,但实际上也会被总线上的总电容所限制住,一般而言为400 pF。
原始的I2C系统是在1980年代所建立的一种简单的内部总线系统,当时主要的用途在于控制由飞利浦所生产的芯片。
1992年完成了最初的标准版本释出,新增了传输速率为400 kbit/s的快速模式及长度为10位元的寻址模式可容纳最多1008个节点。1998年释出了2.0版,新增了传输速率为3.4Mbit/s的高速模式并为了节省能源而减少了电压及电流的需求。2.1版则在2001年完成,这是一个对2.0版做一些小修正,version 3.0, 2007年同时也是最新版本。
I2C-Bus
I2C被应用在简单的周边且其制造成本较传输速度更为要求。一些常见的应用如下:
I2C的另一个强大用途在于微控制器的应用,利用两根通用的输入输出接脚及软件的规划,可以让微控制器控制一个小型网络。
周边可以在系统仍然在运作的同时加入或移出总线,这代表对于有热插拔需求的装置而言是个理想的总线。
像I2C这样的总线之所以流行起来,是因为电脑工程师发现到对于整合电路设计而言,许多的制造成本源自于封装尺寸及接脚数量。更小的包装通常能够减少重量及电源的消耗,这对于移动电话及手持式电脑而言格外重要。
在Linux中,I2C已经列入了核心模组的支援了,更进一步的说明可以参考核心相关的文件及位于/usr/include/linux/i2c.h 的这个标头档。OpenBSD则在最近的更新中加入了I2C的架构(framework)以支援一些常见的主控端控制器及感应器。