I²C

维基百科,自由的百科全书

跳转到: 导航, 搜索

I2C bus

I²C内部整合电路的称呼,是一种串行通讯总线,使用多主从架构,由飞利浦公司在1980年代为了让主板嵌入式系统手机用以连接低速周边装置而发展。I²C的正确读法为"I-squared-C" ,而"I-two-C"则是另一种错误但被广泛使用的读法,在中国则多以"I方C"称之。截至2006年11月1日为止,使用I²C协定不需要为其专利付费,但制造商仍然需要付费以获得I²C从属装置位址。

TWI (Two Wire Interface) or TWSI (Two-Wire Serial Interface) is essentially the same bus implemented on various system-on-chip processors from Atmel and other vendors

目录

[隐藏]

[编辑] 设计概说

I²C只使用两条双向开放集极(Open Drain)(串行资料(SDA)及串行时脉(SCL))并利用电阻将电位上拉。I²C允许相当大的工作电压范围,但典型的电压准位为+3.3V或+5v。

I²C的参考设计使用一个7位元长度的位址空间但保留了16个位址,所以在一组总线最多可和112个节点通讯。常见的I²C总线依传输速率的不同而有不同的模式:标准模式(100 Kbit/s)、低速模式(10 Kbit/s),但时脉频率可被允许下降至零,这代表可以暂停通讯。而新一代的I²C总线可以和更多的节点(支援10位元长度的位址空间)以更快的速率通讯:快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。

虽然最大的节点数目是被位址空间所限制住,但实际上也会被总线上的总电容所限制住,一般而言为400 pF。

Data transfer sequence

[编辑] 修订

原始的I²C系统是在1980年代所建立的一种简单的内部总线系统,当时主要的用途在于控制由飞利浦所生产的芯片。

1992年完成了最初的标准版本释出,新增了传输速率为400 kbit/s的快速模式及长度为10位元的寻址模式可容纳最多1008个节点。1998年释出了2.0版,新增了传输速率为3.4Mbit/s的高速模式并为了节省能源而减少了电压及电流的需求。2.1版则在2001年完成,这是一个对2.0版做一些小修正,version 3.0, 2007年同时也是目前的最新版本。

[编辑] 应用

I²C-Bus

I²C被应用在简单的周边且其制造成本较传输速度更为要求。一些常见的应用如下:

  • 为了保存使用者的设定而存取NVRAM芯片。
  • 存取低速的数模转换器(DAC)。
  • 存取低速的模数转换器(ADC)。
  • 改变监视器的对比度、色调及色彩平衡设定(视讯资料通道)。
  • 改变音量大小。
  • 取得硬件监视及诊断资料,例如中央处理器的温度及风扇转速。
  • 读取实时的时钟(Real-time clock)。
  • 在系统设备中用来开启或关闭电源供应。

I²C的另一个强大用途在于微控制器的应用,利用两根通用的输入输出接脚及软件的规划,可以让微控制器控制一个小型网络。

周边可以在系统仍然在运作的同时加入或移出总线,这代表对于有热插拔需求的装置而言是个理想的总线。

像I²C这样的总线之所以流行起来,是因为电脑工程师发现到对于整合电路设计而言,许多的制造成本源自于封装尺寸及接脚数量。更小的包装通常能够减少重量及电源的消耗,这对于移动电话及手持式电脑而言格外重要。

[编辑] 操作系统的支援

Linux中,I²C已经列入了核心模组的支援了,更进一步的说明可以参考核心相关的文件及位于/usr/include/linux/i2c.h 的这个标头档OpenBSD则在最近的更新中加入了I²C的架构(framework)以支援一些常见的主控端控制器及感应器。

[编辑] 参见

[编辑] 外部链接

posted on 2011-04-15 15:47  katago  阅读(627)  评论(0编辑  收藏  举报