当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]Nios II与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卡的控制命令。 [!--empirenews.page--]

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卡的次数。而且提高了访问速度,通过添加硬件缓冲区,满足嵌入式操作系统的实时性要求。目前,该设计已经在开发板上实现,运行稳定可靠。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭