浅谈I2C总线接口电路的设计
2010-06-13孙轶君
孙轶君,周 霁,周 彬
(中国电子科技集团公司第四十七研究所,沈阳110032)
1 引言
I2C总线实际上已经成为一个国际标准,在超过100种不同的IC上实现而且得到超过50家公司的许可。在消费者电子,电讯和工业电子中,看上去不相关的设计里经常有很多相似的地方。例如几乎每个系统都包括:①一些智能控制,通常是一个单片的微控制器;②通用电路,例如LCD驱动器,远程I/O口,RAM,EEPROM或数据转换器;③面向应用的电路,譬如收音机和视频系统的数字调谐和信号处理电路,或者是音频拨号电话的DTMF发生器。
为了使这些相似之处对系统设计者和器件厂商都得益,而且使硬件效益最大,电路最简单,Philips开发了一个简单的双向两线总线,实现有效的IC之间控制。这个总线就称为InterIC或I2C总线。现在Philips包括超过150种CMOS和双极性兼容I2C总线的IC,可以执行前面提到的三种类型的功能。所有符合I2C总线的器件组合了一个片上接口,使器件之间直接通过I2C总线通讯。这个设计概念解决了很多在设计数字控制电路时遇到的接口问题。
2 I2C总线的概念
I2C总线支持任何IC生产过程(NMOS,MOS,双极性)。两线——串行数据(SDA)和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制器,LCD驱动器,存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。很明显,LCD驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。
3 总体特征
SDA和SCL都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压(见图1)。当总线空闲时,这两条线路都是高电平。连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。
图1 标准模式器件和快速模式器件连接到I2C总线
3.1 数据的有效性
SDA线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。
3.2 起始和停止条件
在I2C总线中,唯一出现的是被定义为起始(S)和停止(P)条件(见图2)的情况。其中一种情况是在SCL线是高电平时,SDA线从高电平向低电平切换。这个情况表示起始条件。
当SCL是高电平时,SDA线由低电平向高电平切换表示停止条件。起始和停止条件一般由主机产生。总线在起始条件后被认为处于忙的状态。在停止条件的某段时间后,总线被认为再次处于空闲状态。
3.3 仲裁
主机只能在总线空闲的时侯启动传输。两个或多个主机可能在起始条件的最小持续时间内产生一个起始条件,结果在总线上产生一个规定的起始条件。
当SCL线是高电平时,仲裁在SDA线发生。这样在其他主机发送低电平时,发送高电平的主机将断开它的数据输出级,因为总线上的电平与它自己的电平不相同。
4 电路的设计
依据上述规定,可以设计一个简单的满足I2C总线协议的电路。主要由总线控制逻辑、预分频器、地址寄存器和移位寄存器组成(见图2)。电路工作时由主机对总线进行控制,寻址从机,配置总线控制逻辑的状态寄存器和控制寄存器,接收从机的数据,并通过移位将数据由串行转换成并行给数据总线。数据开始传输时,先由主机发送一个起始信号,主机可以在不发送结束信号的情况下再发送起始信号,重复起始信号可以使主机在不释放总线的情况下,选择不同的从机或改变数据的传输方向。然后发送一个字节的数据,其中前7位是从机地址,紧跟着的是数据传输方向位,所有从机地址都不相同,只有与主机发出的地址相匹配的从机才会在SCL的第九个周期通过拉低SDA线给主机一个响应。寻址成功后就传送数据,每字节数据后都跟随一个响应位。传输结束时主机发送一个结束信号,在SCL高电平时,SDA发生一个由低到高的变化为结束信号。总线的传输速率与主机时钟有关,可以通过设置预分频寄存器改变,计算公式为预分频寄存器的值=[主机频率/(5×总线时钟频率)]-1。
图2 逻辑功能框图
5 结束语
在设计芯片时也可以集成I2C总线的功能,符合I2C总线的IC允许系统设计快速向前推进,直接从功能结构图到原型。此外,由于它们直接“剪贴”到I2C总线,没有任何额外的外部接口,所以允许简单地通过从或者向总线“剪贴”或“不剪贴”IC来修改或升级原型系统。
[1]Jong Sam Lee,Leonard E Miller.CDMA 系统工程手册[M].许希斌,周世东,赵明,等译.北京:人民邮电出版社,2002.
[2]李佳.ARM系列处理器应用技术完全手册[M].北京:人民邮电出版社,2006.
[3]毛德操,胡希明.嵌入式—采用公开源代码和STRONG ARM/XSCALE微处理器[M].浙江:浙江大学出版社,2003.
[4][美]斯密斯.专用集成电路[M].虞惠华,等译.北京:电子工业出版社,2004.