首页 | 期刊简介 | 编辑部 | 广告部 | 发行部 | 在线投稿 | 联系我们 | 产品信息索取
2024年4月26日星期五
2011年第01期
 
2010年第12期
 
2010年第11期
2010年第11期
 
2010年第10期
2010年第10期
 
2010年第09期
2010年第09期
 
2010年第09期
2010年第08期
 
2010年第07期
2010年第07期
 
2010年第06期
2010年第06期
 
2010年第05期
2010年第05期
 
2010年第04期
2010年第04期
 
2010年第03期
2010年第03期
 
2010年第02期
2010年第02期
 
2010年第01期
2010年第01期
 
2009年第12期
2009年第12期
 
2009年第11期
2009年第11期
 
2009年第10期
2009年第10期
 
2009年第9期
2009年第9期
 
2009年第8期
2009年第8期
 
2009年第7期
2009年第7期
 
2009年第6期
2009年第6期
 
2009年第5期
2009年第5期
 
2009年第4期
2009年第4期
 
2009年第3期
2009年第3期
 
2009年第2期
2009年第2期
 
2009年第1期
2009年第1期
 
2008年第12期
2008年第12期
 
2008年第11期
2008年第11期
 
2008年第10期
2008年第10期
 
2008年第9期
2008年第9期
 
2008年第8期
2008年第8期
 
2008年第7期
2008年第7期
 
2008年第6期
2008年第6期
 
2008年第5期
2008年第5期
 
2008年第4期
2008年第4期
 
2008年第3期
2008年第3期
 
2008年第2期
2008年第2期
 
2008年第1期
2008年第1期
飞利浦I2C总线产品简介

Introduction to Philips I2C Bus

飞利浦半导体


I2C总线简介

I2C(集成电路间互连总线)是由飞利浦公司于上世纪80年代早期开发的。它是一个简单的两线总线,包括一条数据线和一条时钟线。目前I2C已经成为重要的全球业界标准,被所有主要的IC厂商所认同和使用。它具有多种机功能和仲裁特性,采用主控-伺服通讯方式,通常在某一时刻,只有两个器件进行通信,广播呼叫例外,此种情形下伺服设备可充当伺服接收机或伺服发射机使用。

I2C是低数据速率方式,用于短距离用途。目前的I2C指标显示,它的速度可以做到100kHz、400kHz和3.4MHz,不过还没有出现3.4MHz的产品。400kHz产品是经过了很长一段时间才变得普及,3.4MHz走向应用尚需时间。这里将主要讨论100kHz、400kHz产品。I2C没有规定的电缆长度,唯一的限制是I2C总线规范,它规定I2C的最大电容是400pF,现在通过使用缓冲器如P82B96可以延长总线的距离。

所有的I2C硬件架构均为漏极开路或集电极开路设计,具有上拉电阻。上拉电阻的值为2-10千欧,它们不超过I2C规范中3mA反向电流的规定和上升时间的规定。大多数飞利浦伺服设备的SCL上没有下拉电阻。有一点特别重要,即设备的最大输入电容是10pF。

I2C总线与其它总线如UART、CAN、USB、SPI相比,在性能上各有千秋,I2C的优点是它非常简单,如在一个微控制器上使用两个插脚来产生I2C。I2C得到应用的时间比较长,为众多工程师所了解,也有着大量的产品系列支持。


I2C技术及产品介绍

飞利浦I2C器件

飞利浦拥有一系列的新器件用来克服规范指标上的限制,以扩展I2C使用。I2C总线的主要局限是它的7位地址,通过使用飞利浦的I2C多路复用器,可以在一条总线上使用具有相同地址的相同设备。多路复用器允许应用工程师将主I2C总线动态划分为几个子分支,以解决I2C地址冲突。如果在一个系统中有两个具有相同I2C地址的设备,显然造成系统问题。这时在系统中放置一个多路复用器,便可以使得主控者选择希望交谈的设备。

在系统要求超过400pF限制的情况下,上升时间信号将超过I2C规范,这时也可以使用一个多路复用器或开关来克服这个限制。它可以做到动态分配主I2C总线给子分支,它可以编程,并可使用不止一个多路复用器。其局限是所有的子分支不能在相同时间内编址。如做一个500pF总线上通讯的主控设备,这里则需要改变总线,使其改变最大400pF的指标。放一个多路复用器进去,它将总线分成两个下行200pF线加一个100pF的上行总线。这种情形下的另一种潜在解决方案是使用I2C总线转发器或网络集线器。飞利浦的这类产品包括PCA8515A、PCA9516A等。

I2C总线延伸器用来延长电缆的距离,其主要性能为:双绞线85kHz下50米到31kHz下的1000米;超过400kHz为短距离,约10米。飞利浦这类产品有P82B715,P82B96。

飞利浦的I2C开关可以用来协调同一总线的不同I2C逻辑电平。假设有一些设备在5V下工作,有一些设备在3V或4V下工作,有一个主控者在2.7V下工作,这时便可以使用一个I2C开关对所有设备进行透明地对话。飞利浦这类产品有PCA954xx系列和GTL2000系列。

当需要在同一总线上同时使用100kHz、400kHz的设备时,可以使用一个I2C总线转发器,将两种设备隔离在两侧,使它们分别按自己的频率工作。飞利浦这类产品有PC9515A。

飞利浦的I2C总线微控制器可用于与微控制器的并行端口进行接口,以开发两主控者应用。这方面飞利浦的产品有PCF8584和PCA9564。PCF8584产品已发布较长时间。PCA9564为更新的产品。

飞利浦I2C器件应用

使用飞利浦I2C新器件可以使I2C总线更稳固或故障更少。它的主要应用方面包括:

(1)隔离有故障的伺服设备。用I2C开关将I2C总线分割为几个分支,在有总线挂起时,可将其隔离。这对高可靠性应用尤为重要。

(2)在同一总线使用一个主控者和一个备份的主控者,或是在一个总线上使用两个主控者,这种应用主要存在于高端服务器。这种情况下可以采用一个I2C主控选择器,这样可以使用两个独立的主控者控制总线,不会有故障或系统讹误,完全从总线上进行隔离。

(3)如果要做到将一种插卡实时插入系统而不影响I2C总线上的数据或损坏设备,可使用I2C热交换总线缓冲器,用它来检测总线闲置状态,隔离电容,防止SDA、SCL线上的脉冲干扰。


I2C器件应用案例

I2C器件的典型应用为:蜂窝电话、PDA、笔记本电脑、数码相机、便携式测试设备、服务器、cPCI和AdvancedTCA等。如在蜂窝电话中,有用户希望加入GPIO、LED闪光灯等,I2C是连接两种功能的很好的解决方案(图1)。此类应用中可使用飞利浦的PCA9537产品等,输出最多可达16个。

图1 手机应用实例图(略)


上面介绍过的总线缓冲器可以应用于多种ATCA板应用。I2C产品还可以应用于温度监控应用(图2),飞利浦的SA56004产品就具有外部和内部的传感器功能供使用。另外,飞利浦还拥有DIP开关应用产品,如夏普LCD电视,在最后的汇编中用I2C总线完成视频标准设置。

图 2 温控应用实例图(略)


问答选编

问:请介绍一下I2C总线的应用领域和应用注意事项。

答:I2C总线是一个通用的串行总线,可以在很多领 域中应用,如计算机、电信设备、消费类电子、 手 持设备等。应用中需要注意的主要有:总线容量、 信号传输距离 、总线频率、Slave地址、上拉电阻 阻值计算等。

问:我在I2C总线的芯片中在存放的数据会丢失,如 何解决?

答:我想这是存储芯片的问题,和什么接口并无关 系,除非没有写进去。若能确定数据已经写入,我 建议联系芯片供应商请求协助测试解决该问题。

问:1.I2C是否支持热拔插?

2.如果热拔插I2C总线上的设备,是否易对总线 及总线上的设备会产生严重影响,如何影响?
情况1:拔插当时总线上的空闲设备;
情况2:插拔当时总线上的Busy设备,Master或Slave。

答:1.支持热插拔;
2. 如果声明支持热插拔的I2C器件不会对总线产 生任何的影响,器件插入的时候它会自动的检测 线路状态,并且只在总线空闲的时候连接器件,所 以不会对总线产生任何的影响。

问:我们把I2C通过迷你USB接口从机器上引了出 来,和另外的一台机器连接。现在线长1米左右, 速度是280Kbps可以正常传输。我们想知道按 这种速度可以不出错传多远,如果距离很长,中 间是否需要加什么设备,是否有相应的解决方案。

答:如果采用USB 1.1可以传送25米,我们有相应的 芯片进行I2C和USB间的转换。

问:我一直搞不清I2C总线和CAN总线它们的真正 区别,希望专家能结合实例应用帮忙彻底区分。

答: CAN总线通过复杂的传输协议可以实现很高容 错性能,所以多用于对数据准确要求很高的场合, 比如汽车,机械等领域,但是其速度很低,协议复 杂。而I2C总线协议实现非常的简单,速度更高, 但是没有提供如CAN那样复杂的纠错和检测机 制。所以综合而言,CAN复杂,但是容错度高,速 度低。而I2C简单,高速,容错度相对低。

问:通过缓冲器可以扩大I2C总线传输距离,允许采 用多少级缓冲器?

答:Philips很多的缓冲器可以级联,所以允许无限的 缓冲器。

问:I2C总线与RS232、RS458有怎样的不同?

答:最主要的区别在于:
1. I2C主要用于系统内部,而RS485/232多用于外 部设备的连接;
2. I2C从技术上说属于同步串行总线,RS485/232 属于异步串行总线;
3. I2C总线上不需要专门的收发器设备,所以简 单,而RS485/232需要专门的电平转换器件。

问:I2C总线的传输速度有多高?它的数据完整性和 安全性如何?

答:I2C总线理论上传输速度可以为100KHz(标准)、 400KHz(快速)和3.4MHz(高速)。目前还没有成 熟的3.4MHz速率的产品。I2C总线是板内总线,总 线内部有地址管理和仲裁机制,在总线容量、Slave 地址等技术指标正确的情况下,数据的完整性和 安全性是有保证的。

问:请问LPC系列单片机的I2C接口是否支持热插拔?

答:不支持,I2C总线上的热插拔需要专门的器件支 持,比如PCA9511。

问:SDA线为什么需要一个漏极开路的上拉电阻? 这个电阻是否所有I2C器件内部都已经集成。

答:通过将总线拉至低电平,漏极开路驱动,所有总 线上设备都可以传送数据。有的I2C器件内部已 经集成了上拉电阻,如PCA9555等,有的则没有, 请使用前查阅数据表。

问:1. I2C总线的工作速度是否有下限?如果有,是 多少?
2. I2C总线的2个上拉电阻怎样计算?

答: 1. I2C总线的工作速度取决于主控器的性能,是 有下限的,如果是待机模式速度为0。
2.I2C总线的2个上拉电阻取决于电源电压、总线 电容、 连接器件的数量。电源电压决定了最小值, 容限和上升时间决定了最大值。

问:I2C总线是否会出现锁死?如果出现锁死,主设备 怎么才能察觉总线故障,以及排除?

答:就总线本身而言,不会锁死,锁死通常是由于外 部器件的失效和故障造成,此时主设备会连续收 到总线Busy的中断,若是Slave器件故障造成的, 那么必须移除或者通过I2C开关器件隔离故障器 件。

问:I2C总线有多大的优点,和过去的相比,最突出的 好处是什么?

答:1.方便将框图变成原理图;
2. 在总线上增加或去掉某器件不会影响到其它 器件工作;
3. 多主机功能允许通过外部连接到生产线,快速 测试和调整最终用户的设备,故障诊断和调试都 很简单;
4.软件调试简单,可调用应用软件包来缩短软件 开发进程;
5. 所有I2C器件共用一条总线可节省IC引脚资源, 减少PCB板面积;
6. 通过允许简单地构造设备变量,保持设计是最 新的简易升级功能增加了系统设计的灵活性。

问:I2C总线不存在差错处理机制,一旦总线发生故 障,如何解决?

答:有两种方法:
1. Reset出现问题的Slave(如果这个Slave有Reset 管脚);
2. 启动“恢复序列”。
恢复序列流程为:
在SCL线发送9个时钟脉冲;
由Master保持SDA线为高,直到Slave-Transmitter 模式释放SDA执行ACK操作;
在ACK操作时,保持SDA线为高;
在Master-Receiver和Slave-Transmitter模式都过 去后,Master会发一个Stop命令完全初始化总线 。

问:在I2C总线上能否采用LVDS信号?有何好处?

答:我想是可以的,好处也是显而易见的,比如可以 传输更远的距离,提供更高的数据稳定性等。但是 实现起来会比较复杂。首先你必须将双向总线分 开,再接入LVDS驱动器件等。这样的话,I2C总想会 变成8条线,失去了I2C简洁易用的优势。

问:对上拉电平有没特别的要求?

答:具体电平承受能力要看具体芯片,现在Philips的 I2C芯片一般都可以承受2.3V~5.5V。再选择合 适的上拉电阻,可以保证上拉电平值正确。

问:在(一主多从),发现I2C从方式可以很可靠的工作 (定时器正常,不会溢出),而主方式有时候会读不 到数据(我设起始条件不满足或从器件没有响应 时提示),这时候再重新启动总线读一两次就正 常了,此情况不是经常出现,但是在要求特别高的 总线上就不允许了。请问,我该注意哪些问题以避免 有时读不到数据的情况,使用器件为 P87LPC767/769。

答:这个问题可能需要更详细的debug工作,因为I2C 总线基本由硬件完成,所以在由I2C接口的器件 上使用时一般不容易出现问题,我建议你可以考 虑I2C总线上的干扰,并尝试降低速率。

问:通过那些措施能提高I2C总线的防干扰能力?目 前能达到那种水平?

答:如果你所说的干扰是指电磁干扰的话,在I2C规 范限制条件下,减小上拉电阻是一个办法,考虑 使用I2C总线驱动器提高输出驱动能力也是一个 办法,至于确切的数据并无一个标准可以评价。

问:当使用I2C作为一主多从方式通讯,在速率不是 要求很高的情况下,总线能允许多长的线路(类 似RS232通讯,1米或者可以更长),有什么特殊 的要求吗?综合抗干扰能力如何?

答:在100KHz情况下,大约可以传输1m左右,如 果 要求更长距离的传输,可以考虑加总线驱动芯片, 如PCA9515A、P82B96等。

问:如何利用I2C进行程序的烧录?

答:我想提供I2C烧录功能的单片机应该是提供完整 的时序、指令和要求,这对于不同提供商的MCU 不一定是相同的。

问:I2C接口内部硬件是怎样的,是如何实现多用户 仲裁的?

答:I2C内部为漏极开路或集极开路。当2个或更多 Master发出Start命令时会出现仲裁问题,I2C芯片 有自动仲裁机制。

问:有的时候I2C在快速模式读写时会出错,在低速 模式读写时就没问题,该如何解决?

答:这种问题并不少见,也许是主从器件并不完全的 支持最高速度,还有就是是否总线电容负载较大, 是否布线过长等,调试中可以采取的动作有限, 可以尝试改变上拉电阻的值。

问:上拉电阻的大小对数据的传输速度和距离有什 么影响吗?

答:上拉电阻是由I2C芯片容许的反向电流和信号的 上升时间T(由传输速率决定) 。

问:I2C总线使用了几位地址码,最多能支持多少个 设备?

答:两种标准,7位和10位,所以最多支持1024个设备。

问:I2C的时钟同步的要求有多高?

答:I2C总线上如果有多个CLK,则总线时钟的Low由 时间最长的Low CLK决定,High由时间最短的High CLK决定。

问:如果超过8个节点,如何识辨?

答:1.使用我们的I2C mux/switch器件在不同时刻隔离。
2.考虑使用带有更多地址位的器件 。

2005GEC.2
         
版权所有《世界电子元器件》杂志社
地址:北京市海淀区上地东路35号颐泉汇 邮编:100085
电话:010-62985649
E-mail:dongmei@eccn.com