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。
[编辑] 修订
原始的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)以支援一些常见的主控端控制器及感应器。
[编辑] 参见
[编辑] 外部链接
- Philips I2C specifications
- 更了解I2C
- Detailed introduction, Primer
- Introduction to I2C
- I2C Bus / Access Bus
- Using the I2C Bus with Linux
- OpenBSD iic(4) manual page
- Linux package lm-sensors support I2C bus among others.
- massmind i2c page Source code, samples and technical information for using i2c with PC, PIC and SX microcontrollers.
- I2C bus
- Serial buses information page
- I2C Bus Technical Overview and Frequently Asked Questions
- The I2C Faq Version 2.0
- The Bus Buffer Resource. For 2-wire buses such as I2C, SMBus, PMBus, IPMB & IPMI
- I2C Licensing Information