收藏 分享(赏)

基于cpld的lbe总线与i^2c总线接口的实现.doc

上传人:cjc2202537 文档编号:231046 上传时间:2018-03-24 格式:DOC 页数:13 大小:45KB
下载 相关 举报
基于cpld的lbe总线与i^2c总线接口的实现.doc_第1页
第1页 / 共13页
基于cpld的lbe总线与i^2c总线接口的实现.doc_第2页
第2页 / 共13页
基于cpld的lbe总线与i^2c总线接口的实现.doc_第3页
第3页 / 共13页
基于cpld的lbe总线与i^2c总线接口的实现.doc_第4页
第4页 / 共13页
基于cpld的lbe总线与i^2c总线接口的实现.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、基于 CPLD 的 LBE 总线与 I2C 总线接口的实现第 39 卷第 5 期2009 年 9 月航空计算技术AeronauticalComputingTechniqueVo1.39No.5Sep.2009基于 CPLD 的 LBE 总线与 I2C 总线接口的实现王博,郭玉忠(中国航空计算技术研究所,陕西西安 710068)摘要:分析了 IC 串行总线的数据传输机制,描述了 LBE 总线的时序要求,设计了基于 CPLD 的IC 总线主模式与 LBE 总线的接 1:7 电路,其中包括 LBE 总线接口逻辑和 12C 总线接口逻辑两部分.最后,给出了在 Lattice4.1+ModelSim6.

2、0 软件平台中进行逻辑综合与时序仿真的结果.关键词:局部扩展总线(LBE);12C 总线;串行时钟线;串行数据线中图分类号:TP336 文献标识码:A 文章编号:1671654X(2009)050099.05引言IC 总线是 PHILIPS 公司开发的一种二线串行接口标准.它只需两根线(串行时钟线 SCL 和串行数据线 SDA)即可在连接于其上的器件之间传送信息.该总线具有总线仲裁机制和高低速设备同步等功能,以其接口简单,使用灵活等突出优点在数字系统中获得了广泛的应用.IC 总线从传输速率上,可以分为标准模式(100Kbit/s),快速模式(400Kbit/s),高速模式(3.4Mbit/s)

3、;从寻址范围上,可以分 7 位地址模式和 lO 位地址模式.本文使用 VHDL 语言设计的控制器模块采用快速,7 位地址的模式,结合应用实例(如实时时钟/日历芯片 PCF8563)描述了采用 CPLD 模拟 IC 总线实现控制的具体过程.112C 总线协议及其特点IC 总线通过 SDA 及 SCL 两根线总线上的器件之间传送信息,并根据地址识别每个器件.每个器件有一个唯一的地址识别,而且都可以作为一个发送器或接收器(由器件的功能决定).IC 总线最主要的优点是简单.总线上所有器件依靠 SDA 发送的地址信号寻址,不需要片选信号和专用的地址线,因此占用的空间非常小,节省了电路板空间,减少了芯片管

4、脚数量,降低了互联成本.此外,Ic总线还支持多主控制,其中任何能够进行发送和接收的设备都可以成为主器件,而当其从总线上接收信息时,它又成为接收器(也叫从器件).i2C 总线的数据传输流程如图 1 所示.其传输过程为:首先主机产生起始位,然后传送第一个字节.8位数据中首先传送的是数据的最高位 MSB,最低位LSB 为读写指示位 ,1 表示主机读,0 表示主机写,高 7位地址可使主机寻址 128 个从器件.臣 AcK起始信号AcK终虹信号图 1izC 总线的数据传输SDA 和 SCL 都是双向线路,使用时通过上拉电阻连接到电源.总线空闲时这两条线路都是高电平,连接到总线的器件的输出级必须是漏极开路

5、或集电极开路,以实现总线“线与“ 功能 .2IC 总线工作原理IC 总线在传送数据的过程中共有 4 种基本类型收稿日期:2009.03.05作者简介:王博(1975 一), 女 ,陕西咸阳人,工程师,研究方向为嵌入式计算机应用.?10O?航空计算技术第 39 卷第 5 期信号,分别是:开始信号,数据传输信号,应答信号和结束信号.a.开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据.所有的命令都必须在开始条件以后进行.b.结束信号:SCL 为低电平时 ,SDA 由低电平向高电平跳变,结束传送数据.所有的操作都必须在停止条件以前结束.总线开始和停止数据传送的时序如图2 所示

6、.c.数据传输信号 :在开始条件以后,SCL 的高电平期间稳定,数据有效,开始进行读操作;在 SCL 的低电平周期期间,SDA 上的数据才允许改变.每位数据需要一个时钟脉冲.12C 总线的数据位传送时序如图 3所示.:一 scL厂一_什sDA二二二一_一故据线保持允许;定_数据有效数据变化图 3IC 总线的位传输d.应答信号:接收数据的从器件收到 8bit 数据后,向发送数据的主控器件发出特定的低电平脉冲,表示已收到数据.这要求主器件必须产生一个与确认位相应的额外时钟脉冲(第 9 个脉冲).若主控器件确认失败,主控器件必须发送一个数据结束信号给从器件.这时从器件必须使 SDA 线保持高电平,使

7、主控器件能产生停止条件.总线的应答信号时序见图 4.+_数据输出.:起始信号一一一7 一旺馨/图 412C 总线的应答信号时序3LBE 总线接口逻辑局部总线扩展(LocalBusExtent,LBE) 是一种 32位机载计算机内总线.LBE 总线包括系统信号区,用户信号区和测试信号区等,它必须且仅能包含一个第一主设备,支持最多三个第二主设备,最多可支持 8 个设备之间的互联,其总线时序图如图 5 所示.XMIO()仁二互匝XD/CXW/RWRITE:低:READXSEcL*孳 x 眦二rXCMDXWAITXBS16“图 5 总线基本周期时序根据 LBE 总线的时序逻辑,定义其在 CPLD 中的

8、端口定义为:entityi2cisport(12Cbussignalssda:inoutstdlogic;一一串行数据输入输出端,输出有三态scl:inoutstdlogic;一一时钟输出端,三态输出-_LBEparallelbusinterfaceaddr_bus:inSTDLOGICVECTOR(9downto0);一一地址总线databus:inoutSTDLOGICVECTOR(7downto0);一一数据总线byteen:inSTDLOGICVECTOR(1downto0);一一字节使能信号XWr:inSTDLOGIC;一一 XW/R:Ic 为高时,表示总线周期为写周期;为低时,表示

9、总线周期为读周期xsel:inSTDLOGIC;一一存储器空间使能信号,低电平有效xiocs:inSTDLOGIC;一一 I/O 空间使能信号xcyc:inSTDLOGIC;一一总线周期的状态和地址信号状态,低电平有效xbclk:inSTDLOGIC;一一总线时钟信号xreset:inSTDLOGIC;一一复位信号,低电平有效);2009 年 9 月王博等:基于 CPLD 的 LBE 总线与 12C 总线接口的实现412C 总线控制设计12C 总线控制器的主要作用是提供 LBE 总线和IC 总线之间的接口,为两者之间的通信提供物理层协议的转换.在串行应用系统中,外围器件(如串行E2PROM,实

10、时时钟等) 连接在 Ic 总线上,再通过 Ic总线控制器和 LBE 总线连起来.本文将控制器的设计分成两部分.一部分为 LBE 总线接口,另一部分为IC 控制接口,如图 6 所示.图 612C 控制器框图SDALBE 接口部分主要包含地址寄存器(MADR),控制寄存器(MBCR), 状态寄存器 (MBSR),数据寄存器(MBDR)和地址译码/总线接口模块.地址寄存器保存着 Ic 总线控制器作为从机时的地址 .控制寄存器是微处理器(CPU)控制 IC 总线控制器的主要途径,通过设置 0/1 来完成 Ic 总线控制器使能,中断使能,主/从(Master/Slave)模式选择,产生起始位等操作.状态

11、寄存器指示 Ic 总线控制器的当前状态 ,如传输是否完成,总线是否忙等信息.数据寄存器用于保存接收的数据或是待发送的数据.IC 接口通过一个主状态机来进行运作,它控制着整个 12C 接口的状态转换,和 IC 总线直接相连的模块有起始/停止位产生模块,ICHeader 寄存器,IC数据寄存器和仲裁及起始/停止位检测模块.当控制器是 Master 时,起始/停止位产生模块用于在 IC 总线上产生起始位和停止位;12C 数据寄存器用于保存总线上传送的数据;仲裁及起始/停止位检测模块的作用是执行仲裁,并检测 12C 总线上的起始/停止位,以便为主状态机提供输入.其他模块包括:IC 状态寄存器,用于记录

12、 12C 总线的状态;地址比较模块,用于比较总线上传送的地址和本机的从机地址是否一致,如果一致,说明其他主机正在寻址本控制器,控制器必须立即切换到从机状态,同时发出响应位.4.1LBE 接口设计LBE 接口用于连接系统 CPU 接口电路和 12C 接口电路,主要实现两者之间的信息交互握手机制.设计时可以用 VHDL 提供的状态机来描述信号交互机制中的工作状态切换,如图 7(a)所示.LBE 接口电路中使用的四组寄存器地址是 10 位的,高 7 位为 12C 总线控制器的基址(MBASE),低 3 位用于区别不同的寄存器.寄存器本身为 8 位寄存器,控制寄存器和状态寄存器的位含义如图 7(b)所

13、示.一效兰 As 有效.s 有效LBE 接口中寄存器的寻址使用 LBE 地址总线的低三位 XA42和由高位地址译码得到的 Ic 控制使能信号 men.在整个访问周期中,LBE 当做 IC 主设备,主从位 msta 设置为1,发出读,写命令后,设置相应的 Ic 读写命令 mLx(高写低读)进行访问,读写完成后,状态机发出完成信号,LBE 总线撤去总线信号.Mien 为中断使能信号,系统中未接人中断信号,逻辑映射时设置其为0,禁止中断.LBE 内部寄存器定义如表 14 所示,表中定义了各寄存器的位含义.4.212C 接口设计IDLE/壁三 i启动:lBITg!H三EAiDERl住有效启动=1:=二

14、二二 =ACKHEADER=,疆收 lSDA=0L_二=_rJSDA=0I 发送,DDRmatch=1lADDRmatch=11/一RX_DBAlT1ACNT=8Bll=ACKDAT 停止=1/_LBITCNT=SD=0停止=1 一丽 cSr【】P图 812C 总线的数据传输IC 接口用于 IC 总线的驱动和接收,当 IC 总线控制器为主机时,Ic 接口必须按 IC 总线规范驱动总线;当总线控制器为从机时,IC 必须能正确接收满足Ic 总线规范的信号.Ic 设计规范对总线的时序作了?102?航空计算技术第 39 卷第 5 期详细的定义,在不同模式下这些参数的具体数值都有明确的规定.I2C 接口

15、主状态机的转移图如图 8 所示.本接口设计中实现了 Ic 总线具体的读 ,写操作命令及其状态转移过程,每发起一次传输都必须先对12C 器件进行寻址,此时都必须设置控制寄存器(MB-CR)中 mtx 位为“1“, 以表明是一个发送任务,并在地址寄存器(MADR)中填人要寻址的 IC 器件的从地址,在传输完地址之后,若地址符合(ADDRmatch 为“1“),再按需要改写 mtx 位来实现接收或发送.控制寄存器被写入后,逻辑置 mbcrwr 位为“1“, 表明控制寄存器已被改写过,读控制寄存器时,mbcrwr 位置为“0“.在接收过程中如果仲裁位丢失,软件设置 rsta 位为“1“,使之重新开始启

16、动 12C 周期.表 1LBE 模块内部寄存器寄存器位数地址操作功能表 2 地址寄存器位内容描述备注7:1 从节点地址 l 芯片 PCF8563 的读地址为0 写入时为 010xA3,写地址为 0xA2.表 3 控制寄存器7mcf 数据结束标志 1 结束6maas 从节点地址标志位 1 从地址5mbb 总线忙位 1 忙4mal 总线仲裁位( 写入 1 时为复位 ma1)l 仲裁丢失3 保留位读为 02srw 从节点读/写 0 读,1 写1mif 中断挂起标志(写入 1 时复位 mif)1 有中断0rxak 接收应答 0 获得应答5 仿真与硬件实现仿真工具采用 Mentor 公司的 ModelSimPlus6.0sE,其显着的优越性能是提供了一个混合语言仿真环境,已在产业界广泛应用.为了测试验证系统的功能,用 VHDL 语言构建了 testbench(测试向量),对所设计IC 总线控制器进行仿真.仿真结果如图 9,10 所示.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报