I2C 应用: 不能说的秘密
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 总线上的上
拉电阻是必须的!