1 引言
CF 卡(Compact Flsah Card)由于价格便宜、存储容量大、体积小、兼容性好等优点被广泛应用于嵌入式产品。然而现有的CF 卡接口电路存在接口复杂,稳定性不高等缺点,不能满足客户的需求。通过深入研究ARM 处理器AT91RM9200 的外部总线接口(EBI)、CF 卡和CPLD 的工作原理,提出利用CPLD来改进CF 卡接口电路以解决现有接口电路中存在的缺点。
通过深入研究ARM 处理器AT91RM9200 的外部总线接口(EBI)及CF 卡、CPLD 的工作原理,设计了新的CF 卡接口电路。新的CF 卡接口电路中采用了CPLD 来代替一般CF 卡接口电路中的双向缓冲器、与非门等所有逻辑器件,通过现场对CPLD 编程来实现不同的逻辑功能。实验表明,该电路更加简单、灵活、稳定、高速,对接口电路的设计有重要的参考价值。
2 器件简介
2.1 外部总线接口
系统采用了以ARM920T 为内核的AT91RM9200作为微处理器,它是完全围绕ARM920T Thumb 处理器构建的系统。它有丰富的系统与应用外设及标准的接口,包括一个高速片上SRAM 工作区及一个低等待时间的外部总线接口(EBI)以完成应用所要求的片外存储区和内部存储器映射外设配置的无缝连接。外部总线接口结构如图1 所示。
CFOE 与CFWE 通过CPLD 和CF 卡的OE 与WE连接起来,这是CF 卡在Memory Mode 的读写使能。
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 要接10 kΩ 的上拉电阻。RDY/BSY 是CF 卡的工作状态信号,当RDY/BSY 为1 时,CF 卡已经做好准备接收新的数据;当RDY/BSY 为0 时,CF 卡正在接受数据,这个信号也要接个10 kΩ上拉电阻。CF 卡的复位RESET 信号也是由系统的复位nRESET 信号在CPLD 中反相后产生的,以保持和系统的复位信号同步。
4 CPLD 程序开发
CPLD 程序在quartus Ⅱ下用Verilog HDL 语言编写。程序经过编译后,下载到CPLD 中固化。连接电路板和CF 卡,对CF 卡进行数据的读写 *** 作,测试结果表明数据传输正确无误,且传输速率更高。
5 结束语
该文重点研究了如何利用CPLD 来连接基于ARM 的嵌入式系统与CF 卡。其中使用的CPLD 不但简化了接口电路,使其适合现场编程,同时改进的接口电路还适合产生各种复杂组合逻辑和时序逻辑。这种存储技术的正确性已在电路板上得到验证,它为基于ARM 的嵌入式系统的CF 卡存储提供了一种有效的解决方案。
责任编辑:ct
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)