Nios II与CF卡的接口设计

发布者:化羽2015最新更新时间:2011-08-10 关键字:NiosII  CF卡 手机看文章 扫描二维码
随时随地手机看文章

  1 CF卡的特点及应用   

    CF卡是最近几年蓬勃发展固态非易失的存储介质,由于CF卡具有携带方便、易于升级、存储量大、抗震性好等优点,在大容量便携式数据存储和传输过程中,CF 有着非常广泛的应用前景,如数码相机、MP3播放器、PDA(个人数字助理)、数字式录音机、笔记本电脑、手提电话、机顶盒等。预计今后在其他领域将有更为广泛的应用。另外CF卡的兼容性佳,不仅同时支持3.3 V和5 V的电压,而且不同的CF卡都可以用单一的机构读写,特别是CF卡升级换代时也可以保证旧设备的兼容性。而纯电子运动的CF卡耗电量很低,仅为IBM 微型硬盘的5%。目前,CF卡容量从最早的2 MB到现今的8 GB,数据传输从最早的5 MB/s发展到现在的20 MB/s。

CF卡由2个基本部分构成:内部控制器和闪存模块。CF卡的闪存模块基本上都使用NAND型闪存,用于存储数据。内部控制器用来实现CF卡与主机的接口以及控制数据的传输。CF卡内部控制器的设计完全模拟硬盘,使用标准的ATA/IDE接口。

CF 的存取方式有3种:PC Card Memory模式、PC Card I/O模式以及True IDE模式。PC Card模式与PCMCIA标准兼容。True IDE模式与ATA标准兼容。

3种方式相比,在True IDE模式下,CF卡与主机通信的信号最少,硬件接口最简单、软件易于实现,因此本设计采用True IDE模式。

2 CF卡接口控制器的寄存器的定义   

在设计中,采用Altera提供的一个CF接口控制器内核实现CF卡数据的传输.该内核提供一个连接片外CF卡的Avalon总线接口,通过使用适当的时序把Avalon总线信号映射到CF卡,提供了对标准的实IDE模式寄存器的访问,允许设计者在Nios II系统中简易连接就可以使用CF卡。图1所示为CF卡接口控制器内核的结构框图。   

图1 CF卡控制器内核结构框图   

该内核提供2个Avalon总线从端口.第一个是为了访问CF设备内部的寄存器组,第二个是为了访问控制器内核内部的寄存器文件,CF核提供2个高有效的中断请求输出,一个是CF插入或移除的中断信号,另一个是把设备上的中断信号传送到Avalon主设备。

对于CF卡的操作(如:读/写),其实就是对CF卡控制器的寄存器进行操作。所以,必须对CF卡的寄存器十分熟悉。这些寄存器统称为任务文件(task file)寄存器:   

(1)数据寄存器(读/写),用于CF卡的读写操作。主机通过该寄存器向CF卡数据缓冲写入或从CF卡数据缓冲读出数据。

(2)错误寄存器(读)和特性寄存器(写) 读操作时,此寄存器为错误寄存器,用于指明错误的原因;写操作时,此寄存器为特性寄存器。

(3)扇区数寄存器(读/写)。用来记录读、写扇区的数目。

(4)扇区号寄存器(读/写),用来记录读、写和校验命令指定的起始扇区号或逻辑块地址(LBA)的BIT7:0。

(5)柱面号寄存器(读/写),用来记录读、写、校验和寻址命令指定的柱面号或LBA的BIT23:8。

(6)驱动器/磁头寄存器(读/写),记录读、写、校验和寻道命令指定的驱动器号、磁头号或LBA的BIT27:24,其中BIT6(LBA)用来设置CF卡扇区的寻址方式(LBA=0,采用CHS模式;LBA=1。采用LBA模式)。

(7)状态寄存器(读)和命令寄存器(写),在读操作时,该寄存器是状态寄存器,指示CF卡控制器执行命令后的状态,读状态寄存器则返回CF卡的当前状态;在写操作时,该寄存器是命令寄存器,接收主机发送给CF卡的控制命令。

3 Nios II处理器与CF卡的硬件接口设计   

在Altera公司提供的SoPC软件中对该软核进行配置时,选用Nios II CPU、内部定时器、CF卡接口控制器、SDRAM 控制器、FLASH 存储器接口、LCD 接口和EPCS4串行配置器件控制器接口。其框图如图2所示。  

 图2 硬件接口框图   

4 CF卡的接口控制器的软件操作   

在Nios II系统中,应用软件架构在HAL(硬件抽象层)和C标准库函数上。在Nios II IDE 中建立新的软件工程时,IDE会根据SoPC Builder对系统的硬件配置自动生成一个定制HAL系统库。这个库能为程序和底层硬件的通信提供接口驱动程序,HAL系统库为CF卡接口控制器内核提供了两组直接访问设备寄存器的API函数,其中一个是针对IDE任务文件(ATA)寄存器的,主要提供了对标准的实IDE模式寄存器的访问设,另一个是针对CF接口控制寄存器的,主要提供了对电源,复位,插入或移除检测和中断的控制。设计者只需要调用这些函数就可以访问外部设备。

由于CF卡的读写是以一个扇区为基本单位的。在读写一个扇区之前必须先指明当前需要读写的柱面、头和扇区或LBA地址,然后发送读写命令。一个扇区的512 B需要一次性连续读出或写入。主机读/写CF卡上一个文件的过程是这样的:   

(1)CF卡检测。调用:   IORD_ALTERA_AVALON_CF_CTL_STATUS(CF_CTI_BASE)。

(2)CF卡内部控制器向CF卡某些寄存器填写必要的信息。如向扇区号寄存器填写读写数据的起始扇区号或I.BA地址、向扇区数寄存器填写读写数据所占的扇区个数、设置CF卡的扇区寻址方式等。调用:   IOWR_ALTERA_AVALON_CF_IDE_SECTOR_COUNT(CF_IDE_BASE,Sector_cunt);   IOWR_ALTERA_AVALON_CF_IDE_SECTOR_NUMBER(CF_IDE_BASE,Sector_num);   IOWR_ALTERA_AVALON_CF_IDE_CYLINDER_LOW(CF_IDE_BASE,0x00);   IOWR_ALTERA_AVALON_CF_IDE_CYLINDER_HIGH(CF_IDE_BASE,0x00);   IOWR_ALTERA_AVALON_CF_IDE_DEVICE_HEAD(CF_IDE_BASE,0xe0)。

(3)向CF卡的命令寄存器写入操作CF卡的命令。如写操作向CF卡的命令寄存器写入30H,读操作向CF卡的命令寄存器写入20H。调用:   IOWR_ALTERA_AVALON_CF_IDE_COMMAND(CF_IDE_BASE,0x30);   IOWR_ALTERA_AVALON_CF_IDE_COMMAND(CF_IDE_BASE,0x20)。

(4)CF卡有数据传输请求之后,主机读写CF卡的数据寄存器,从而实现从CF卡数据缓冲读出数据或向CF卡数据缓冲写入数据。调用:   IORD_ALTERA_AVAlON_CF_IDE_DATA (CF_IDE_BASE);   IOWR_ALTERA_AVALON_CF_IDE_DATA(CF_IDE_BASE,Data_Write)。

(5)在执行以上操作的过程中,每执行一步。都应该检测状态寄存器,确定CF卡的当前状态,从而确定下一步应该执行什么操作(参考状态寄存器的BIT位的意义,编写检测代码)。调用:   IORD_ALTERA_AVALON_CF_IDE_STATUS(CF_IDE_BASE)。

由于CF卡由ATA控制器和FLASH存储器2部分构成,处理器访问FLASH存储器的速度远远小于访问内存的速度,如果系统频繁访问CF卡,势必会影响系统的实时性和工作效率。所以必须考虑CF卡读写程序的设计技巧 。根据存储器访问的局部性原理,CPU 存取数据所访问的存储单元都趋向于聚集在一个较小的连续区域。从时间上看,如果一个信息项正在被访问,那么在近期他很可能还会被再次访问。从空间上看,在最近将用到的信息很可能与目前正在使用的信息在空间地址上是临近的。在Nios II硬件系统设计中,添加了片上的存储空间,用于存储最近访问过的扇区数据。另外还设置了两个全局变量:一个保存最近备份的扇区编号;另一个说明备份数据是否与CF卡中的相应数据一致,如果一致,其值为0,否则为1。这样不但可以减少读写CF卡的次数。而且提高了访问速度,通过添加硬件缓冲区,满足嵌入式操作系统的实时性要求。目前,该设计已经在开发板上实现,运行稳定可靠。

关键字:NiosII  CF卡 引用地址:Nios II与CF卡的接口设计

上一篇:串口光纤通信的组网方式
下一篇:32 位ARM 嵌入式系统扩展USB 接口设计

推荐阅读最新更新时间:2024-05-02 21:31

基于NiosII软核处理器的步进电机接口设计
    电子技术发展日新月异,控制技术也发生了革命性的变化,特别是SOC技术的发展,文中主要研究的是远程控制系统中步进电机控制模块设计。首先,根据控制功能的要求设计了步进电机控制模块,该模块采用一种脉冲叠加算法,实现了对步进电机任意频率变速;然后,将该模块封装到SOPC Builder的标准模块库中;最后,利用SOPC技术,在Altera公司的Cyclone II EP2C35芯片上集成了NiosII软核,相关的外围控制器和自定义的电机控制模块,完成了该设计的验证工作。 1 基本原理     步进电机是一种把电脉冲信号变换成直线位移或角位移的执行元件。步进电机的转子做成多极的,定子上嵌装有多相不同连接的控制绕组,有专用电源供电
[嵌入式]
Xscale PXA255处理器与CF卡的接口设计
以导航设备存储系统应用为例,本文讨论了Intel Xscale PXA255嵌入式处理器与CF卡的硬件接口设计,并以读写CF卡扇区的程序为例,给出了CF卡软件编写的技巧。该设计为基于PXA255处理器的嵌入式系统提供了扩展存储空间的一种方法。 图1:CF卡结构框图 Intel Xscale PXA255处理器是新一代的嵌入式处理器,基于ARMv5TE体系结构的微处理器,性价比较高、功耗较低,适合于数字移动电话、个人数字助理、网络路由器等嵌入式系统的应用。在采用PXA255处理器开发诸如车载导航系统时,电子地图等海量地理信息数据需要一个容量大、体积小、性能优异的存储器。“Compact Flash”卡,简称CF卡
[单片机]
Xscale PXA255处理器与<font color='red'>CF卡</font>的接口设计
51单片机如何实现对CF卡的读写
  引言   由于CF卡(Compact Flash Card)具有容量大、体积小、高性能、携带方便等优点,而且读写速度快,可与多种电脑操作系统平台兼容,因此在数据采集系统中的数据记录或与PC机之间的数据转存多采用CF卡。为了在PC机中能方便地进行数据处理,在下位机端必须采用一种标准的格式组织数据,即将数据按照Windows标准文件格式写入,在PC机端通过读卡器将写入CF的内容以标准文件形式读出。Windows标准文件格式有FAT、FAT32和NTFS。考虑到广泛使用的Windows 98系统的CF卡的容量等因素,通常采用FAT(File Allocation Table)文件系统。单片机系统对CF卡的读写,就是从底层对它进行直接操
[单片机]
TMS320VC5421与CF存储卡的接口实现
本文实现了TMS320VC5421与CompactFlash存储卡(以下简称CF卡)的接口。利用DSP的高速数字信号处理能力可完成数据的实时采集和处理;利用CF卡的容量大、非易失性和即插即用的特性可完成数据保存和传输。因此TMS320VC5401与CF卡的接口在工业检测前端系统的应用中有很好的前景。 1 TMS320VC5421芯片介绍 数字信号处理器(DSP)是数字信号处理理论与超大规模集成电路(VLSI)技术融合的结晶。TMS320VC5421更是定点系列DSP中的佼佼者。其系统框架如图1所示。 TMS320VC5421有4个主要特点: (1)TMS320VC5421包含两个独立的DSP子系统。每个子系
[嵌入式]
单片机读写U盘、cf卡开发心得
刚做完一个项目,要求将人体心电信号采集下来,存储到海量存储设备中,可以用U盘也可以用CF卡。这个项目的难点不在采集,只要做好信号放大、滤波防干扰,就可以保证信号采集的正确性。而难点在于数据的存储,要求患者将24小时甚至更长时间的所有心电信号都存储下来,按照10ms采集一次数据那么一个小时就要400K,一天的数据存储量需要9.6M。因此一般的静态E2满足不了使用的要求,有些情况下,设备要求能够连续使用一个礼拜,而数据不能丢失,因此必须选用一个大存储量器件。我们在这个项目中选择的是U盘,当然我的一个师弟采用的CF卡也完成了数据的存储。所谓U盘就是一个带有USB接口的硬盘,如果去掉USB接口芯片,U盘内部和CF卡和普通的PC硬盘结构一样。
[单片机]
基于NiosII的二维条码识别系统设计
二维条码PDF417中PDF为Portable Data File的缩写,每一个PDF码的储存量可高达1 108字节,若将数字压缩则可存放2 729字节。作为一种新的信息存储和传递技术,PDF417具有成本低、信息可随载体移动、不依赖于数据库和计算机网络、保密防伪性能强等优点,广泛应用在国防、公共安全、交通运输、医疗保健、工业、商业、金融、海关及政府管理等领域,PDF417码的例子如图1所示。 1 系统总体设计 本系统在FPGA上使用SOPC技术来实现无线手持二维条码识读器,与传统一维条码识读器最大的区别在于完全脱离后台数据库,以及在高达50%破损率的情况下能够进行高效率识别。 SOPC技术是一种基于FPGA解决方案的SOC
[单片机]
基于<font color='red'>NiosII</font>的二维条码识别系统设计
基于NiosⅡ的直流电机PID调速控制系统设计与应用方案
0 引言   以往的直流电机调速系统通常采用单片机或 DSP 进行控制,而单片机需要使用大量的外围电路,且系统的可升级性差,如更换控制器,往往要对整个软硬件进行重新设计,可重用性不高。而采用DSP作为主要控制器,如果碰到处理多任务系统时,一片DSP不能胜任,这时就需要再扩展一片DSP或者FPGA芯片来辅助控制,从而实行双芯片控制模式。但这样做,既增加了两个处理器之间同步和通信的负担,又使系统实时性变坏,延长系统开发时间。基于以上此类问题,本文提出了采用Altera公司推出的NiosⅡ软核来控制直流电机调速系统,它的好处在于Ni-osⅡ属于软核处理器,可以直接通过软件形式扩展成双核乃至多核,无需外加芯片;再者NiosⅡ软核处
[电源管理]
基于NiosⅡ的直流电机PID调速控制系统设计与应用方案
单片机实现对CF卡的读写
摘要:CF卡是一种包含了控制和大容量Flash存储器的标准器件,具有容量大、体积小、高性能、携带方便等优点,已广泛应用在数据采集系统和许多消息类电子产品中。本文详细介绍CF卡在单片机系统中的硬件接口电路,以及单片机对CF卡进行标准文件读写的实现,且写入的文件能被Windows操作系统读写。 关键词:CF卡 单片机 FAT文件格式 引言 由于CF卡(Compact Flash Card)具有容量大、体积小、高性能、携带方便等优点,而且读写速度快,可与多种电脑操作系统平台兼容,因此在数据采集系统中的数据记录或与PC机之间的数据转存多采用CF卡。为了在PC机中能方便地进行数据处理,在下位机端必须采用一种标准的格式组织数据,即将数
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved