第4节 I2C
推荐给好友
打印
加入收藏
更新于2008-09-05 21:30:10

I2C(Inter-Integrated Circuit)总线是一种由PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C 总线产生于在80 年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。

1.I2C 总线特点
I2C 总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25 英尺,并且能够以10Kbps 的最大传输速率支持40 个组件。I2C 总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

2.I2C总线工作原理
总线的构成及信号类型
I2C 总线是由数据线SDA 和时钟SCL 构成的串行总线,可发送和接收数据。在CPU 与被控IC 之间、IC与IC 之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU 发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC 在接收到8bit 数据后,向发送数据的IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
目前有很多半导体集成电路上都集成了I2C 接口。带有I2C 接口的单片机有:CYGNAL 的C8051F0XX 系列,PHILIPSP87LPC7XX 系列,MICROCHIP 的PIC16C6XX 系列等。很多外围器件如存储器、监控芯片等也提供I2C 接口。

3.总线基本操作
I2C 规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。 总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA 线上的数据状态仅在SCL 为低电平的期间才能改变,SCL 为高电平的期间,SDA状态的改变被用来表示起始和停止条件。
1)控制字节
在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROM 一般应为1010),接着三位为片选,最后一位为读写位,当为1 时为读操作,为0 时为写操作。
2)写操作
写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。
3)读操作
读操作有三种基本操作:当前地址读、随机读和顺序读。图4 给出的是顺序读的时序图。
应当注意的是:最后一个读操作的第9 个时钟周期不是“不关心”。为了结束读操作,主机必须在第9 个周期间发出停止条件或者在第9 个时钟周期内保持SDA 为高电平、然后发出停止条件。

I2C 接口设置:

I2C 模块图
I2C 包括时钟选择器,时钟分频器,移位时钟发生器,开始/停止条件产生电路,开始/ 停止条件检测电路和从地址比较电路。



I2C 总线控制寄存器0(IBCR00)
I2C 总线控制寄存器0 设置操作模式,中断,应答使能和MCU 的休眠设置。
点击查看图片



I2C 总线控制寄存器1(IBCR10)
I2C 总线控制寄存器1 设置操作模式,中断,应答使能和MCU 的休眠设置。
点击查看图片



I2C 总线状态寄存器1(IBSR0)
I2C 总线状态寄存器包括I2C 总线接口的状态。
点击查看图片



I2C 数据寄存器(IDDR0)
I2C 数据寄存器设置发送的数据、地址或者保持接收的数据、地址。

I2C 地址寄存器(IAAR0)
I2C 地址寄存器设置从地址。

I2C 时钟控制寄存器(ICCR0)
I2C 时钟控制寄存器设置I2C 工作使能和选择移位时钟频率。
点击查看图片

 

上一节                    下一节











 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.