SEM百度竞价招聘求职QQ群 http://jdsshang.com/shenghuo/25069.html基于ARM的嵌入式系统
CF卡与CPLD连接技术详解
1引言
随着应用需求的不断提高,许多嵌入式系统在应用时都要求带有扩展的大容量存储器来存储数据。CF卡(CompactFlsahCard)由于价格便宜、存储容量大、体积小、兼容性好等优点被广泛应用于嵌入式产品。然而现有的CF卡接口电路存在接口复杂,稳定性不高等缺点,不能满足客户的需求。通过深入研究ARM处理器AT91RM的外部总线接口(EBI)、CF卡和CPLD的工作原理,提出利用CPLD来改进CF卡接口电路以解决现有接口电路中存在的缺点。
2器件简介
2.1外部总线接口
系统采用了以ARMT为内核的AT91RM作为微处理器,它是完全围绕ARMTThumb处理器构建的系统。它有丰富的系统与应用外设及标准的接口,包括一个高速片上SRAM工作区及一个低等待时间的外部总线接口(EBI)以完成应用所要求的片外存储区和内部存储器映射外设配置的无缝连接。外部总线接口结构如图1所示。
EBI通过集成电路支持CF卡与SmartMedia协议,从而极大地降低了对外部组件的需求。此外,EBI可处理多达8个外设的数据传输,每个外设分配8个在内置存储控制器中定义的地址空间。数据通过16位或32位数据总线进行传输,地址总线高达26位,8个芯片选择口(NCS[7:0])和在不同外部存储控制器间复用的多个控制引脚进行复用。
2.2CF卡
CF卡(CompactFlashCard)是采用FlashMemory技术的存储卡,具有体积小、价格低廉、兼容性强、存储量大等优点。CF卡支持三种接口模式,分别是PCCardMemoryMode、PCCardI/OMode、TrueIDEMode。因为TrueIDEMode不经常使用,故接口电路以PCCardMemoryMode和PCCardI/OMode设计。
2.3CPLD
CPLD(ComplexProgrammableLogicDevice)是一种较PLD复杂的逻辑元件[2],是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
该文采用的CPLD是Altera公司的MAXS系列的EPMSQL-10。它有84个引脚,其中5根用于ISP(INSystemProgrammable)下载,可方便的对其进行“在系统”编程。EPMSQL-10支持对电压工作,可以利用Altera公司的第四代开发平台quartusⅡ方便地进行仿真、综合和下载。
3硬件接口电路设计
硬件接口电路的电路图如图2所示。在此电路中用CPLD来实现一般CF卡接口电路中的双向缓冲器和与非门等一些逻辑器件的逻辑功能,使接口电路变的更为简单、稳定、高速,而且可以通过现场修改程序来实现不同的功能。
CF卡中的_CD1、_CD2是CF卡是否安装的状态检测信号,在CF卡中接地。当CF卡没有安装时,电路中_CD1、_CD2由上拉电阻将其输出拉为高电平;当CF卡安装时,_CD1、_CD2由CF卡接地输出为低电平,_CD1、_CD2相当于CF卡的总开关。在实际接口电路中_CD1、_CD2要接10kΩ的上拉电阻。
将片选任务寄存器的CS4A编程为1则可使能EBI的复用引脚NCS4/CFCS、NCS5/CFCE1、NCS6/CFCE2为CompactFlash信号CFCS、CFCE1、CFCE2,使能NOE/NRD/CFOE、NWR0/NEW/CFWE、NWR1/NBS1/CFIOR、NWR3/NBS3/CFIOW、A25/CFRNW为CompactFlash信号CFOE、CFWE、CFIOR、CFIOW、CFRNW。这样就可以通过访问保留给NCS4的地址空间来访问外部的CF卡。在NCS4的地址空间中用当前的传输地址来分辨I/O模式,通用存储模式是标志存储模式。传输地址总线的A23用作I/O模式选择。该文CF卡用A22/REG来分离通用存储模式和标志存储模式。
在I/O模式下,CompactFlash的逻辑驱动CFIOR与CFIOW信号上SMC的读写信号,此时CFOE与CFWE信号失效。同样在通用存储模式和标志存储模式下驱动CFOE与CFWE信号上的SMC,CFIOR与CFIOW信号失效。该逻辑如图3所示。
CFOE与CFWE通过CPLD和CF卡的OE与WE连接起来,这是CF卡在MemoryMode的读写使能。
CFIOE与CFIOW通过是I/OMode的使能。除了使能信号外,其他的信号对2种模式都是相同的。
CFCE1与CFCE2信号使能CF卡的数据总线由上或是由下访问,具体信息见表1。只有当NCS4引脚上的SMC配置为驱动8位存储器时才可进行奇字节访问,NCS4地址空间中的片选寄存器必须如表1所示进行设置。
_CD1、_CD2为低电平时,CPU的地址总线的低11位A[10∶0]于CF卡的地址总线A[10∶0]连通,CPU的数据总线的低16位D[15∶0]与CF卡的地址总线D[15∶0]连通。CPU的A25/CFRNW信号是数据流的方向的,NCS4/CFCS信号是数据总线的传输使能。详细内容请参阅表2。
CPU是高速器件,CF卡是低速器件,在CPU给CF卡传输数据的时候就会发生因为接收速度慢而丢失数据的情况。所以需要用_WAIT信号来延迟CPU的发送,这样才能使CPU的发送时序与CF卡的接受时序匹配,使得数据的传输正确无误。实际电路中CF卡的_WAIT信号通过CPLD来控制CPU的NWAIT信号,_WAIT要接10kΩ的上拉电阻。RDY/BSY是CF卡的工作状态信号,当RDY/BSY为1时,CF卡已经做好准备接收新的数据;当RDY/BSY为0时,CF卡正在接受数据,这个信号也要接个10kΩ上拉电阻。CF卡的复位RESET信号也是由系统的复位nRESET信号在CPLD中反相后产生的,以保持和系统的复位信号同步。
4CPLD程序开发
CPLD程序在quartusⅡ下用VerilogHDL语言编写。程序经过编译后,下载到CPLD中固化。连接电路板和CF卡,对CF卡进行数据的读写操作,测试结果表明数据传输正确无误,且传输速率更高。
5结束语
该文重点研究了如何利用CPLD来连接基于ARM的嵌入式系统与CF卡。其中使用的CPLD不但简化了接口电路,使其适合现场编程,同时改进的接口电路还适合产生各种复杂组合逻辑和时序逻辑。这种存储技术的正确性已在电路板上得到验证,它为基于ARM的嵌入式系统的CF卡存储提供了一种有效的解决方案。
来源:elecfans『本文转载自网络,版权归原作者所有,如有侵权请联系删除』END预览时标签不可点收录于话题#个上一篇下一篇