当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]随着应用需求的不断提高,许多嵌入式系统在应用时都要求带有扩展的大容量存储器来存储数据。CF 卡(Compact Flsah Card)由于价格便宜、存储容量大、体积小、兼容性好等优点被广泛应用于嵌入式产品。然而现有的CF 卡接口电路存在接口复杂,稳定性不高等缺点,不能满足客户的需求。通过深入研究ARM 处理器AT91RM9200 的外部总线接口(EBI)、CF 卡和CPLD 的工作原理,提出利用CPLD来改进CF 卡接口电路以解决现有接口电路中存在的缺点。

1 引言

随着应用需求的不断提高,许多嵌入式系统在应用时都要求带有扩展的大容量存储器来存储数据。CF 卡(Compact Flsah Card)由于价格便宜、存储容量大、体积小、兼容性好等优点被广泛应用于嵌入式产品。然而现有的CF 卡接口电路存在接口复杂,稳定性不高等缺点,不能满足客户的需求。通过深入研究ARM 处理器AT91RM9200 的外部总线接口(EBI)、CF 卡和CPLD 的工作原理,提出利用CPLD来改进CF 卡接口电路以解决现有接口电路中存在的缺点。

2 器件简介

2.1 外部总线接口

系统采用了以ARM920T 为内核的AT91RM9200作为微处理器,它是完全围绕ARM920T Thumb 处理器构建的系统。它有丰富的系统与应用外设及标准的接口,包括一个高速片上SRAM 工作区及一个低等待时间的外部总线接口(EBI)以完成应用所要求的片外存储区和内部存储器映射外设配置的无缝连接。

EBI 通过集成电路支持CF 卡与SmartMedia 协议,从而极大地降低了对外部组件的需求。此外,EBI可处理多达8 个外设的数据传输,每个外设分配8 个在内置存储控制器中定义的地址空间。数据通过16 位或32 位数据总线进行传输,地址总线高达26位,8个芯片选择口(NCS[7:0])和在不同外部存储控制器间复用的多个控制引脚进行复用。

2.2 CF 卡

CF 卡(Compact Flash Card)是采用Flash Memory技术的存储卡,具有体积小、价格低廉、兼容性强、存储量大等优点。CF 卡支持三种接口模式,分别是PCCard Memory Mode、PC Card I/O Mode、True IDEMode。因为True IDE Mode 不经常使用,故接口电路以PC Card Memory Mode 和PC Card I/O Mode设计。

2.3 CPLD

CPLD(Complex Programmable Logic Device)是一种较PLD 复杂的逻辑元件[2],是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

该文采用的CPLD 是Altera 公司的MAX7000S系列的EPM7128SQL100-10。它有84 个引脚,其中5 根用于ISP(IN System Programmable)下载,可方便的对其进行“在系统”编程。EPM7128SQL100-10支持对电压工作,可以利用Altera 公司的第四代开发平台quartus Ⅱ方便地进行仿真、综合和下载。

3 硬件接口电路设计

在此电路中用CPLD 来实现一般CF 卡接口电路中的双向缓冲器和与非门等一些逻辑器件的逻辑功能,使接口电路变的更为简单、稳定、高速,而且可以通过现场修改程序来实现不同的功能。

CF 卡中的_CD1、_CD2 是CF 卡是否安装的状态检测信号,在CF 卡中接地。当CF 卡没有安装时,电路中_CD1、_CD2 由上拉电阻将其输出拉为高电平;当CF 卡安装时,_CD1、_CD2 由CF 卡接地输出为低电平,_CD1、_CD2 相当于CF 卡的总开关。在实际接口电路中_CD1、_CD2 要接10 kΩ 的上拉电阻。

将片选任务寄存器的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为Compact Flash 信号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 信号失效。

CFOE 与CFWE 通过CPLD 和CF 卡的OE 与WE连接起来,这是CF 卡在Memory Mode 的读写使能。

CFIOE 与CFIOW 通过是I/O Mode 的使能。除了使能信号外,其他的信号对2 种模式都是相同的。

CFCE1 与CFCE2 信号使能CF 卡的数据总线由上或是由下访问,具体信息见表1。只有当NCS4 引脚上的SMC 配置为驱动8 位存储器时才可进行奇字节访问。

_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 信号是数据总线的传输使能。

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 卡存储提供了一种有效的解决方案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

2024年4月18日,国民技术第四代可信计算芯片NS350 v32/v33系列产品正式发布并开始量产供货。NS350 v32/v33是一款高安全、高性能、超值可信密码模块2.0 (TCM 2.0)安全芯片,适用于PC、服...

关键字: PC 服务器平台 嵌入式系统

2024年,嵌入式系统将走向何方?如何才能走在趋势的前沿?从工厂到家电,从医院里昂贵的医疗设备,到随处可见的可穿戴设备,我们身边的联网设备越来越多,生活更加绿色低碳,嵌入式系统功不可没。ST于3月19日成功举办STM32...

关键字: 嵌入式系统 可穿戴设备

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM
关闭
关闭