微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > I2C总线接口扩展技术

I2C总线接口扩展技术

时间:12-13 来源:互联网 点击:
  1 引言

i2c总线(inter ic bus,又常写作iic总线或i2c总线)是philips公司推出的新一代串行通信标准总线。它与spi、microwire/plus串行接口不同,仅仅依靠两根连线实现了完善的全双工同步数据传送:一根为串行数据线(sda),一根为串行时钟线(scl)。由于i2c总线具有接口电路简单,可进行系统的模块化、标准化设计,灵活性强,可维护性好等特性,目前已成为一种重要的串行通信总线。除了philips公司,像 motorola公司,韩国三星,日本三菱,美国 a/d等许多大公司都陆续推出了带有i2c总线标准接口的产品,涉及微处理器(mcu),通用的外围设备(eeprom,i/o口,a/d,d/a ,lcd/led显示器,日历时钟,键盘,打印机接口等等)和家电、音像产品。i2c总线的应用日益广泛,i2c总线器件的接口电路设计也显得十分重要。

2 i2c总线简介[1]

自从philips推出i2c总线标准以来,经历了3个版本:version 1.0-1992,version2.0-1998和version 2.1-2000。这使得i2c总线标准不断完善,应用范围日益广泛。i2c总线标准规定有如下3种工作模式:

(1) standard-mode(标准模式):线上最快传输速率为100kbps

(2) fast-mode(快速模式):线上最快传输速率为400kbps

(3) hs-mode(high-speed mode,高速模式):线上最快传输速率为3.4mbps

(4) 这3种工作模式可以向前兼容,即hs-mode环境下允许以f/s-mode(fast or standard-mode)工作,fast-mode环境下允许以standard-mode工作。实际电路中的具体工作模式主要取决于系统中i2c器件接口的电气特性。

i2c总线技术采用器件地址的硬件设置方法,通过软件寻址完全避免了器件片选线寻址的方法,从而使得硬件系统具有最简单而灵活的扩展方法。随着i2c技术的广泛应用,传统的7位从器件地址(slaver addresses)已经无法满足实际需要,在改进的i2c总线标准中增加了10位从地址寻址技术,这样可以把从器件地址由原来的100多个扩充为 1024个,为i2c总线技术的广泛应用奠定了基础。

目前,实际应用的i2c器件都以f/s-mode 和7位从地址标准为主。关于hs-mode 的应用和10位从地址的设计方法可以参阅文献1。

3 i2c总线协议要求[1,2]

i2c总线协议有严格的时序要求。总线工作时,由时钟控制线scl传送时钟脉冲,由串行数据线sda传送数据。总线传送的每帧数据均为1个字节 (8bit),但启动i2c总线后,传送的字节个数没有限制,只要求每传送1个字节后,对方回应1个应答位(acknowledge bit)。在发送时,首先发送的是数据的最高位(msb)。协议规定,启动总线后的第1个字节的高7位是从器件的寻址地址(硬件地址),第8位为方向位 (“0”表示主器件对从器件的写操作;“1”表示主器件对从器件的读操作),其余的字节为操作的数据。总线每次传送开始时有起始信号,结束时有停止信号。在总线传送完1个或几个字节后,可以控制scl线的电平变低,从而使传送暂停。

图1列出了i2c总线上典型的几个信号时序,图2表示了i2c总线上1次完整的数据传送过程。

在i2c总线系统中,信号传输的具体时序描述如下:

(1) 起始信号(s):在时钟scl为高电平期间,数据线sda出现由高电平向低电平的变化,启动i2c总线;

(2) 停止信号(p):在时钟scl为高电平期间,数据线sda出现由低电平向高电平的变化,停止i2c总线上的数据传送;

(3) 应答信号(a):i2c总线的第9个脉冲对应应答,对应sda线上显示低电平时为“应答”信号(a),sda线上显示高电平时为“非应答”信号(/a);

(4) 数据位传送:i2c总线开始信号或应答信号之后的第1~8个时钟脉冲对应一个字节的8位数据传送。在脉冲高电平期间,数据串行传送;在脉冲低电平期间,数据准备,允许总线上数据电平变化。

  4 i2c总线的接口扩展技术

i2c总线软硬件协议十分巧妙,它可以用于构成多主系统。系统中有多个i2c总线接口单片机时,会出现多主竞争的复杂状态。i2c总线软硬件协议,以及 i2c总线单片机中的sfr寄存器保证了多主竞争时的协调管理。i2c总线提供的状态处理软件包能自动处理总线上出现的26种状态。在使用i2c总线时,将这些软件在程序存储器中定位,利用这些软件编制出归一化的操作命令,设计起来十分简单,方便。对没有i2c总线接口的单片机,要构成多主系统,几乎不可能。因此,在多主的i2c总线系统中,一定要使用带i2c总线接口的单片机[7]。

在单主方式的i2c总线系统中,总线上只有一个主器件,其余都是带有i2c总线的外围器件。由于总线上只有一个主器件成为主节点,该主器件永远占据总线,不会出现总线竞争,主节点也不必有自己的节点地址。在单主系统中,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top