织梦CMS - 轻松建站从此开始!

罗索

I2C应用: 不能说的秘密

jackyhwei 发布于 2011-01-11 20:45 点击:次 
I2C如今已经成为芯片间低速串行通信的事实标准,被广泛使用在消费、控制类电子设备场合。本文就实际应用中隐藏的一些简单问题进行讨论。
TAG:

导读:

I2C如今已经成为芯片间低速串行通信的事实标准,被广泛使用在消费、控制类电子设备场合。本文就实际应用中隐藏的一些简单问题进行讨论。
I2C专利问题

I2C是Philips在1987年获得的专利,必须得到Philips的授权才能使用,比如Maxim带有I2C接口功能的产品中一般都声明:
购买Maxim Integrated Products, Inc.或其它经过认证的相关公司的I2C产品,需转让将这些产品用于I2C系统的Philips I2C专利许可协议,保证系统符合Philips定义的I2C标准规范。
I2C协议虽然简单,但却受到Philips专利的限制。ATMEL,Maxim,Cirrus Logic,Linear等厂商都曾被Philips起诉侵权,就连使用这些产品的一些台湾主板厂家也未能幸免。
很多厂商采用多种手段来规避Philips专利,最典型的就是避称I2C,而采用其他称谓。一些厂家把串行控制接口设计成与I2C兼容(是I2C协议的子集),但却称为“Two wire”接口,如今手机市场中应用最多的CMOS Sensor芯片的串行控制接口采用的就是这种策略。
还有一类处理器,其采用软件模拟I2C接口时序的策略与其他设备通信,而不将I2C协议固化再硬件中,此举也可有效避开Philips专利。比如目前最流行的台系手机平台,即便将硬件I2C接口设计入芯片,但参考软件中仍然采用软件模拟的方法来完成I2C通信。
不过,基本的I2C专利在2004年已经期满,大多数I2C应用已经不受Philips的专利限制(从基本I2C扩展的一些高速规范以及I2C地址分配等仍然受到专利限制)。以目前某最流行的台系手机平台为例,在其某平台手册中,串行接口标称支持SCCB(OV所有,与I2C兼容协议);而在其升级平台中则标称支持I2C/SCCB。笔者推断,这两个平台芯片的控制端口不可能做过硬件修改,名称的变化或许就是受到了专利到期消息的刺激。
上拉电阻阻值的确定
由于I2C接口采用Open Drain机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻RP将信号线拉至高电平。因此I2C总线上的上拉电阻是必须的!

RP不宜过小,一般不低于1KΩ
一般IO 端口的驱动能力在2mA~4mA量级。如果RP阻值过小,VDD灌入端口的电流将较大,这导致端口输出的低电平值增大(I2C协议规定,端口输出低电平的最高允许值为0.4V);如果灌入端口的电流过大,还可能损坏端口。故通常上拉电阻应选取不低于1KΩ的电阻(当VDD=3V时,灌入电流不超过3mA)。
RP不宜过大,一般不高于10KΩ
由于端口输出高电平是通过RP实现的,线上电平从低到高变化时,电源通过RP对线上负载电容CL充电,这需要一定的时间,即上升时间。端口信号的上升时间可近似用充电时间常数RPCL乘积表示。
信号线负载电容(对地)由多方面组成,包括器件引脚、PCB信号线、连接器等。如果信号线上挂有多个器件,负载电容也会增大。比如总线规定,对于的400kbps速率应用,信号上升时间应小于300ns;假设线上CL为20PF,可计算出对应的RP值为15KΩ。
如果RC充电时间常数过大,将使得信号上升沿变化缓慢,达不到数据传输的要求。
因此一般应用中选取的都是几KΩ量级的上拉电阻,比如都选取4K7的电阻。
小阻值的RP电阻增大了端口Sink电流,故在可能的情况下,RP取值应稍大一点,以减少耗电。另外,通产情况下,SDA,SCL两条线上的上拉电阻取值是一致的,并上拉到同一电源上。

PCB布局布线与抗干扰设计

I2C信号线属于低速控制线,在手机PCB设计时,按通常的控制IO对待即可,无需做特别的保护设计,一般不用担心受到噪声源干扰。

但在一些特定的情况下,比如折叠、滑盖机型中,I2C的两根信号线需要通过转轴或滑轨处的FPC,此时由于信号路径比较长,距离天线比较近,而且Open drain的输出级对地阻抗大,对干扰比较敏感,因此比较容易受到RF信号源的干扰。在这种情况下,就应适当注意对I2C信号线的保护。比如I2C两条信号线(SDA,SCL)等长度地平行走线,两边加地线进行保护,避免临近层出现高速信号线等。

上拉电阻应安置在OD输出端附近。当I2C总线上主从器件(Master & Slave)两端均为OD输出时,电阻放置在信号路径的中间位置。当主设备端是软件模拟时序,而从设备是OD输出时,应将电阻安置在靠近从设备的位置。

I2C协议还定义了串联在SDA、SCL线上电阻Rs。该电阻的作用是,有效抑制总线上的干扰脉冲进入从设备,提高可靠性。这个电阻的选择一般在100~200ohm左右。当然,这个电阻并不是必须的,在恶劣噪声环境中,可以选用。

比如常用的FM 接收模块或者Capsense触摸感应功能块,都是通过I2C接口控制的。I2C接口信号从处理器出发,经过PCB上的信号路径,进入上述电路单元。I2C信号线上载有一定干扰,这种干扰虽然幅度并不很大,但还是会影响敏感的FM接收模块或Capsense触摸感应功能块。此时,可以通过在靠近FM模块或触摸感应模块的I2C信号线上串接Rs电阻,即可有效降低干扰的影响。此外,上拉电阻端的电源也要进行退耦处理。

(秩名)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201101/10749.html]
本文出处:rd3721.com 作者:秩名
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容