1 引言
随着计算机应用技术的飞速发展,移动存储设备得到了广泛的应用。CF(Compact Flash)卡以其能捕获、保存、传送数据、及其它音像信息的设计理念诞生于1994年,它是最早推出的闪存卡。由于CF卡具有价格低廉、体积小、存储容量大、高速等特点,因此被广泛地应用于数码相机、PDA和笔记本电脑等那些需要高速采样、实时记录数据、然后再将数据传入计算机进行分析处理的仪器和设备中。
由于CF卡中存储的信息要能从PC机上读取出来,所以必须采用一种标准的格式组织数据,通常采用的方法是在CF卡中内嵌文件系统。目前,市场上存在多种商用的嵌入式操作系统可以支持文件系统,但这些操作系统对硬件要求一般都比较高,价格昂贵,且要额外占用一定量的存储空间。由于成本等方面的限制,较少使用嵌入式操作系统,因此很有必要开发一种不依赖于商用操作系统的标准文件系统。在此本文介绍了按照FAT32格式实现的基于S3C2410的CF卡文件系统。
2 CF卡简介
CF存储卡内嵌单片控制器及闪存模块,连接口为25针双排的母插口,点距为50mil(1.27mm)。CF卡内部结构模块图如图1所示。
图1 CF存储卡模块图 主控制器通过一个50针的连接器与CF卡连接。连接器为每排25针(1.27mm)的公插头。
CF卡的存取方式有三种:PC Card Memory模式、PC Card I/O模式以及True IDE模式。PC Card模式与PCMCIA标准兼容。True IDE模式与ATA标准兼容。
3 S3C2410与CF卡接口设计
本系统采用了ARM公司的32位嵌入式微处理器S3C2410。ARM 系列嵌入式微处理器,以其低功耗、高性能等突出优点已在32位嵌入式应用中稳居世界第一,成为高性能、低功耗嵌入式处理器的代名词。ARM核已是现在嵌入式SoC系统芯片的核心,也是现代嵌入式系统发展的方向。 S3C2410与CF卡的硬件连接关系如图2所示,通过改变CPLD内部逻辑关系可以实现三种模式。由于在True IDE模式下,CF卡与主机通信的信号最少,硬件接口最简单、软件易于实现,因此本设计采用了True IDE模式。
图2 S3C2410与CF卡的硬件连接关系图
在True IDE模式下,某些信号有特殊的含义,必须采用True IDE模式下特有的设置方法,如表1True IDE模式I/O解码所示:
表1 True IDE模式I/O解码
nCE2
| nCE1
| A2
| A1
| A0
| IORD
| IOWR
| 注
| 1 | 0 | 0 | 0 | 0 | RD数据
| WR数据
| 8位或16位
| 1 | 0 | 0 | 0 | 1 | 错误寄存器
| 特征
| 8位
| 1 | 0 | 0 | 1 | 0 | 扇区计数
| 扇区计数
| 8位
| 1 | 0 | 0 | 1 | 1 | 扇区号
| 扇区号
| 8位
| 1 | 0 | 1 | 0 | 0 | 低柱面
| 低柱面
| 8位
| 1 | 0 | 1 | 0 | 1 | 高柱面
| 高柱面
| 8位
| 1 | 0 | 1 | 1 | 0 | 选择卡/磁头
| 选择卡/磁头
| 8位
| 1 | 0 | 1 | 1 | 1 | 状态
| 命令
| 8位
| 0 | 1 | 1 | 1 | 0 | Alt状态
| 设备控制
| 8位
|
| nCE1是任务文件寄存器片选信号,低电平有效;nCE2是交替状态(Alternate Status)寄存器和设备控制(Device Control)寄存器片选信号,也是低电平有效。因为实际操作中,极少使用交替状态寄存器和设备控制寄存器,所以对CF卡的操作实际就是对任务文件寄存器的操作。因此,一般设置nCE1=0,nCE2=1。主机操作CF卡时,系统仅使用地址总线A2~A0,用于选择组成任务文件寄存器的8个寄存器之一。表1中,nCE1=0时,对应的8个寄存器统称为任务文件寄存器。需要注意的是,在True IDE模式下,nOE不是读使能信号,而是CF卡True IED模式的使能信号。CF卡上电时,若nOE(PIN9)为"0",则CF卡自动进入True IDE模式;若nOE="1"则进入PC Card 模式。当电源一直接通时,热拔插CF卡将会使其从原来的True IDE模式重新配置成PC Card模式。因此,热插拔过程中,为了使CF卡工作在True IDE模式,需要在CF卡加电启动的同时,将nOE信号接地。实现的方法:在CPLD中将nOE置0。True IDE模式下,nWE也不用作写使能信号,而应该由主机将之接地。处理方法:在CPLD中将其只置为1。
还有一点需要注意的是Reset信号在True IDE 模式下低电平有效,而在其它模式下高电平有效。将Reset信号接到S3C2410的系统复位信号nReset。 |