I2C总线原理及应用实例

上传人:新** 文档编号:431046289 上传时间:2024-02-20 格式:DOC 页数:21 大小:750.50KB
返回 下载 相关 举报
I2C总线原理及应用实例_第1页
第1页 / 共21页
I2C总线原理及应用实例_第2页
第2页 / 共21页
I2C总线原理及应用实例_第3页
第3页 / 共21页
I2C总线原理及应用实例_第4页
第4页 / 共21页
I2C总线原理及应用实例_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《I2C总线原理及应用实例》由会员分享,可在线阅读,更多相关《I2C总线原理及应用实例(21页珍藏版)》请在金锄头文库上搜索。

1、I2C总线原理及应用实例来源12C(Inter - Integrated Circuit ,内置集成电路总线)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器 及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状 态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内 存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。1 I 2C总线特点1 2c总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2c总线占用的空间非常小,减少

2、了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10 Kbps的最大传输速率支持 40个组件。I2C总线的另一个优点是, 它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。2 I 2C总线工作原理2.1 总线的构成及信号类型I 2C总线是由数据线 SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的

3、号码才能工作,所以 每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发岀的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂 在同一条总线上,却彼此独立,互不相关。I 2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电

4、平跳变,结束传送数据。应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发岀特定的低电平脉冲,表示已收到数据。CPU向受控单元发岀一个信号后,等待受控单元发岀一个应答信号,CPU接收到应答信号后,根据实际情况作岀是否继续传递信号的判断。 若未收到应答信号,由判断为受控单元岀现故障。目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNA的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP勺PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I 2C接口。3 总线基本操作I 2C规程运用主/从双向通讯。器件发送数

5、据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件 都可以工作于接收和发送状态。总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在 SCL为低电平的期间才能改变,SCL为高电平的期间,SDA犬态的改变被用来表示起始和停止条件。参见图1。3.1 控制字节在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPROI一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。如图2所示。L I 1 I LEVKI4毗轴图2控

6、制字节配置3.2 写操作写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。关于页面写的地址、应答和 数据传送的时序参见图3。图3页面写3.3读操作读操作有三种基本操作:当前地址读、随机读和顺序读。图4给岀的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。为了结束读操作,主机必须在第9个周期间发岀停止条件或者在第 9个时钟周期内保持SDA为高电平、然后发出停止条件。 实例:X24C04与MCS-51单片机软硬件的实现X24C04是XICOR公司的CMOS 4096位串行EEPROM内部组织成512X8位。16字节页面写。与 MCS-5

7、1单片机接口如图5所示。由于SDA是漏极开路输出,且可以与任何数目的漏极开路或集电极开路输出“线或” (wire-Ored )连接。上拉电阻的选择可参考X24C04的数据手册。下面是通过 l2C接口对X24C04进行单字节写操作的例程。流程图及源程序如下:rkfcACirv-TtAAACKA.*TTHp*iiId1i iii 1I I rp |11 j I i II1 U * J! 一 L上匾m J.,tlJ- -j9 J*T*DAIArHltVAlA Fhum图4顺序读图5 X24C04与51单片机接口;名称:BSENT;描述:写字节;功能:写一个字节;调用程序:无;输入参数:A;输出参数:

8、无BSEND: MOV R2,#08H ; 1 字节 8 位SENDA: CLR P3.2RLC AMOV P3.3,CSETB P3.2DJNZ R2,SENDACLR P3.2SETB P3.3;左移一位;写一位;写完8个字节?;应答信号SETB P3.2RET图6流程图5 结束语在I 2C总线的应用中应注意的事项总结为以下几点:1 )严格按照时序图的要求进行操作,2)若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻。3 )程序中为配合相应的传输速率,在对口线操作的指令后可用NOP指令加一定的延时。EEPROI内部没有用的空间4 )为了减少意外的干扰信号将 EEPROI内的数据

9、改写可用外部写保护引脚(如果有),或者在写入标志字,每次上电时或复位时做一次检测,判断EEPROI是否被意外改写。+基于DSP与 CPLD勺I2C总线接口的设计与实现上传者:Lamborghini浏览次数:86摘要:介绍了一种使用CPLE完成DSP芯片I2C总线接口的设计和实现方案,重点叙述了 I2C核的设计思想。关键词:PWM SG352控制器带有I2C总线接口的器件可以十分方便地将一个或多个单片机及外围器件组成单片机系 统。尽管这种总线结构没有并行总线那样大的吞吐能力,但由于连接线和连接引脚少,因此其构成的系统价格低、器件间总线连接简单、结构紧凑,而且在总线上增加器件不影响系统 的正常工作

10、,系统修改和可扩展性好。即使有 不同时钟速度的器件连接到总线上, 也能很方 便地确定总线的时钟。如今,为了提高系统的数据处理精度和处理速度,在家用电器、通讯设备及各类电子产 品中已广泛应用DSP芯片。但大多数的尚未提供I2C总线接口,本文将介绍一种基于 CPLD 的已实现的高速DSP的I2C总线接口方案。图1 FC总线接口电豁结构图1 I2C总线接口电路结构点击放大1 I2C通信协议I2C总线是一种用于IC器件之间的二线制总线。它通过SDA串行数据线)及SCL(串行同 步时钟线)两根线在连到总线上的器件之间传送信息, 通过软件寻址实现片选,减少了器件片 选线的连接。CPU不仅能通过指令将某个功

11、能单元电路挂靠或摘离总线,还可对该单元的工 作状况进行检测,从而实现 对硬件系统的扩展与控制。I2C总线接口电路结构如图1所示, I2C总线时序图如图2所示。I2C总线根据器件的功能通过软件程序使其可工作于发送(主)或接收(从)方式。总线上主和从(即发送和接收)的关系不是一成不变的,而是取决 于数据传送的方向。SDA和SCL均 为双向I/O线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接总线的器 件的输出级必须是集电极或漏极 开路的,以具有线“与”功能。I2C总线的数据传送速率在 标准工作方式下为1OOkbit/s,在快速方式下,最高传送速率可达 400kbit/s。开始状态结束

12、状态图2 PC总线时序图在数据传送过程中,必须确认数据传送的开始和结束信号(也称启动和停止信号)。当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平则 定义为“开始”信号;当SCL为 咼电平时,SDA由低电平跳变为咼电平则定义为“结束”信号。开始和结束信号都由主器件 产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲状态。在I2C总线开始信号后,依次送出器件地址和数据,I2C总线上每次传送的数据字节数 不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位 (第9位),也 叫应答位(ACK)。从器件的响应信号结束后,SDA线返回高电

13、平,进入下一个传送周期。2设计方案本文以DSP芯片ADSP2199与时钟芯片PCF8583的控制接口为例,说明基于CPLD勺I2C 总线接口设计方案。ADSP2199是 2003年最新推出的160MIPS带CAN!信接口的适合于高精度工业控制和 信号处理的高性能 DSP芯片。它带有48K片内RAM SPORT!信接口、SPI通信接口、8通道 14位A/D转换器以及PWM等。PCF8583是一款带有256字节静态CMOS RA的时钟/日历芯片。地址和数据严格按照双 向双线制I2C总线协议传输。内置地址寄存器在每次读/写后自动递增。2.1系统结构设计系统的基本功能是通过 CPLD勺I2C总线接口完

14、成ADSP21992主控芯片)与PCF8583勺数 据交换。系统框图如图3所示。系统主要由两个部分组成:一是 DSP与 CPLD的接口 ;另一是I2C核。为了能在DSPjf定 的时刻读/写PCF8583的数据,使用DSP的读写信号、同步时钟和最高位地址控制数据的传 输。最高位地址作为控制信号是因为 DSP的 I/O 口比较少,必须优先供应给其它外设,因此 用它来产生DSP提供给I2C核的片选信号。而DSP的地址总线位数较多,最高位一般使用不 到,这样正好可以充分利用资源。2.2 I2C 核I2C核原理示意图如图4所示。整个I2C核由控制模块和I/O模块构成。其中,控制模块包括控制信号发生部分和时钟 开关,I/O模块包括数据缓存和同步时钟缓存。当DSP的最高地址位出现一个有效信号时,便会使 I2C核内的触发器产生一个全局使能 信号EN它将会启动时钟、计数器和其它控制信号,但数据不会出现交换。如果此时DSP的读/写同步产生,则会启动相应的读/写进程,进行数据传输。图4 NC核原理示意图I2C核的关键技术是: 用计数器和全局使能信号EN配合触发进程。由于I2C核的片选信号EN是由触发产生的,不能象电平信号一样由DSP的I/O控制,因 此只能通过精确的计数器定时和读/写使能信号共同判别控制。读/写使能信号WR_EN/RD_EN象EN那样由触发产生,因此也要用同样的方法判别。 同

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号