I2C总线是Philips公司推出的芯片间串行传输总线。它用两根线实现了完备的全双工同步数据传送,可以极为方便地构成多机系统和外围器件扩展系统。I2C总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有简单灵活的扩展方法,按照I2C总线规范,总线传输中的所有状态都生成相对应的状态码,系统中的主机能够依照这些状态码自动地进行总线管理,用户只要在程序中装入这些标准处理模块,根据数据操作要求完成I2C总线的初始化,启动I2C总线,就能自动完成规定的数据传送操作。I2C总线接口电路结构如图1所示。
I2C总线接口为开漏或开集电极输出,需加上拉电阻。系统中所有的单片机、外围器件都将数据线SDA和时钟线SCL的同名端相连在一起,总线上的所有节点都由器件和管脚给定地址。系统中可以直接连接具有I2C总统接口的单片机,也可以通过总线扩展芯片或I/O口的软件仿真与I2C总线相连。在I2C总线上可以挂接各种类型的外围器件,如RAM/EPROM、日历/时钟、A/D转换器、D/A转换器以及由I/O口、显示驱动器构成的各种模块。
I2C总线上数据传送的基本单位为字节,采用低位在前的格式。主从器件之间一次传输的数据称为一帧,由启动信号、若干个数据字节和应答位以及停止信号组成。可以看出,I2C
图1 I2C总线接口电路结构
的主要命令只有读、写两种,虽然读写的字节根据具体器件的不同而不同,但其时序关系不会发生改变。根据这一点,下位机只要具备I2C的基本时序即可。这些基本时序包括:启动、写字节、读字节、应答位、停止信号,并可以组合成两个子程序:读N字节子程序、写N字节子程序。
带有I2C器件的读写操作有多种形式,写操作有两种类型:字节写和页面写;读操作有三种类型:读当前地址内容、读随机地址内客和读顺序地址内容。以AT24C01为例,写N个字节数据的操作时序如图2所示,AT24C01读N个字节技据的操作时序如图3所示。
<?XML:NAMESPACE PREFIX = U1 /> |
8位 |
|
8位 |
|
8位 |
|
8位 |
|
|
8位 |
|
|
起始信号 |
器件地址 |
响应信号 |
字地址 |
响应信号 |
数据1 |
响应信号 |
数据2 |
响应信号 |
… |
数据N |
响应信号 |
结束信号 |
|
|
|
写操作 |
|
写操作 |
|
写操作 |
|
|
写操作 |
|
8位 |
|
8位 |
|
8位 |
|
|
8位 |
|
|
起始信号 |
器件地址 |
响应信号 |
字地址 |
响应信号 |
数据1 |
响应信号 |
… |
数据N |
响应信号 |
结束信号 |
|
|
|
写操作 |
|
读操作 |
|
|
读操作 |
上图中器件地址说明如下:
①器件地址码的第7~4位为从器件地址位,用于确认器件的类型。AT24C01的器件地址码为1010,1010表示从器件为串行E2PROM。
②器件地址码的第3~l位为第l~第8片的片选或存储器内的页面地址选择位。此三个控制位用于片选或者内部页面选择。
如在存储容量8Kb(1024×8位)的AT24C01内部,存储矩阵分为4个页面,每一页面有256个字节。通过器件地址码的第2位和第1位,可以选择数据读写的页面。
③器件地址码的第0位为读、写(R/W)操作控制码。若此位为1,下一字节进行读操作(R);此位为0,下一字节进行写操作(W)。
AT24C01每接收一个字节后,都必须发送一个确认应答信号位ACK,即时序中的响应信号。此时单片机必须产生一个与此确认位相应的时钟脉冲。AT24C01在读写操作时。具有地址自动加1功能,即读、写完某一地址空间后,会自动指向下一个地址单元。
I2C总线最显著的特点是规范的完整性、结构的独立性和用户使用时的“傻瓜”化。I2C总统有严格的规范,如接口的电气特性、信号时序、信号传输的定义、总线状态设置、总线管理规则及总线状态处理等。
在I2C总线规范中。总线上的器件节点具有极大的独立性,而且各节点上的器件、模块都有相对独立的地址编号。
严格、完善的规范,并将这些规范的应用尽可能“傻瓜”化,除了有充分的硬件支持外,在软件方面,Philips公司为用户提供了一套完善的总线状态处理软件包,以致于用户可以不去熟悉I2C总线的规范,不去理睬总线的管理方法,只要掌握I2C总线的应用程序设计方法就可方使地使用I2C总线,并且能很快地掌握I2C总线系统的软、硬件设计方法。
由于I2C总线系统中,各个节点的电气特性及地址给定都具有较强的独立性,因此,在应用系统中采用I2C总线结构就有可能实现用户梦寐以求的器件及功能单元的软、硬件标准化和模块化设计。
器件及功能单元的标准化、模块化,取决于器件单元硬件电气连接的最少相关性与软件的独立性。软件的独立性则表现在独立编址及数据传送方式的简单化与单一性。而I2C总线所具有的特点很好地满足了上述要求。
在硬件结构上,任何一个具有I2C总线接口的外围器件,不仅其功能差别有多大,都具有相同的电气接口;除了总线外,各器件节点没有其他电气连接,甚至各节点的电源都可以单独供电;在各器件节点上没有并行扩展时所必须的片选线,器件地址给定完全取决于器件类型与单元电路结构。在软件上,不论何种器件,其I2C总线的数据传送都具有相同的操作模式,而且每个器件操作时都与其他器件节点无关。在实际使用中,总线节点上的器件甚至可在总线工作状态下挂上总线或撤除。
目前I2C总线大量应用在视频、音像系统中,Philips推出的近200种I2C总统接口器件主要是视频、音像类器件。除Philips公司外,I2C总线已被众多的厂家使用在高档电视机、电话机、音响、摄/录像系统中,在大量测控领域单片机应用系统中正逐步推广。