| FAT32实现的基于S3C2410的CF卡标准文件系统 |
| 类别:网文精粹 |
| Research of FAT32 Based on S3C2410 and CF Card 摘 要:本文依据CF卡的基本结构和工作原理,设计了S3C2410与CF卡的接口电路和系统软件,按照FAT32格式实现基于S3C2410的CF卡文件系统。该系统可广泛应用于需要进行大容量的现场数据采集、存储和查询的场所。 关键词:CF卡;FAT32文件系统;S3C2410 Abstract:The basic structure and operational principle of CF card are introduced. The interface between S3C2410 and CF card and system software are designed based on it. In accordance with FAT32 format the S3C2410 based CF card file system is implemented. The system can be used in many places which needed data storage and inquire. Key words: CF Card , FAT32 File System ,S3C2410 1 引言 随着计算机应用技术的飞速发展,移动存储设备得到了广泛的应用。CF(Compact Flash)卡以其能捕获、保存、传送数据、及其它音像信息的设计理念诞生于1994年,它是最早推出的闪存卡。由于CF卡具有价格低廉、体积小、存储容量大、高速等特点,因此被广泛地应用于数码相机、PDA和笔记本电脑等那些需要高速采样、实时记录数据、然后再将数据传入计算机进行分析处理的仪器和设备中。 由于CF卡中存储的信息要能从PC机上读取出来,所以必须采用一种标准的格式组织数据,通常采用的方法是在CF卡中内嵌文件系统。目前,市场上存在多种商用的嵌入式操作系统可以支持文件系统,但这些操作系统对硬件要求一般都比较高,价格昂贵,且要额外占用一定量的存储空间。由于成本等方面的限制,较少使用嵌入式操作系统,因此很有必要开发一种不依赖于商用操作系统的标准文件系统。在此本文介绍了按照FAT32格式实现的基于S3C2410的CF卡文件系统。 2 CF卡简介 CF存储卡内嵌单片控制器及闪存模块,连接口为25针双排的母插口,点距为50mil(1.27mm)。CF卡内部结构模块图如图1所示。 500)this.style.width=500;" border=0> 主控制器通过一个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模式。
500)this.style.width=500;" border=0> 在True IDE模式下,某些信号有特殊的含义,必须采用True IDE模式下特有的设置方法,如表1True IDE模式I/O解码所示: 500)this.style.width=500;" border=0> 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。 4 系统软件构成 目前, 在PC机DOS/Windows的管理下, 广泛使用的是FAT12、FAT16 和FAT32 文件系统, FAT12一般用于软盘, FAT16 和FAT32 则用于硬盘。本系统采用FAT32文件系统。 FAT文件系统的卷由4个基本的区组成,它们在卷中的排列顺序如下: 0——保留区(引导区); 1——FAT区; 2——根目录区(FAT32中存在的是浮动的FDT表); 3——文件和目录数据区。 FAT卷中第1个重要的数据结构BPB(BIOS Parameter Block),它位于卷的保留区内第1个扇区中,BPB参数块记录着分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数, 分配单元大小等重要参数。文件分配表FAT,从逻辑1扇区开始, 它是文件管理系统用来给每个文件分配磁盘物理空间的表格, FAT文件分配表由表标识和簇映射的集合组成, 一个完全相同的镜像副本连续存储在主FAT表后, FAT的全部目的就是跟踪文件, 具体描述即需要说明整个磁盘分区中的每个存储单元(簇) 的使用情况、文件数据的簇存储情况(连续或碎片) 以及树型目录结构的描述。FAT实际上就是一个卷中所有簇使用情况的映射表, 每个文件、目录都同表中的若干项对应联系, 并在目录中进行索引。FAT之后就是根目录, 记录整个磁盘上所有文件的有用信息, 其中每一个文件占32个字节, 包括文件名、文件属性、文件的修改时间和文件的长度等等。根目录接下来是数据区, 用来存储采集的数据等信息。 在CF卡上进行文件读写操作过程如下:CF卡读写以扇区为单位,每扇区为512字节,每次可读写一个或多个连续的扇区。在CF卡读写时,分别向扇区计数、扇区号、低柱面、高柱面、选择卡/磁头寄存器写入CF卡需要访问的扇区位置,其写入模式有2种:即CHS(Cylinder/Head/Sector)模式和LBA(Logical Block Address)模式。通过设置选择卡/磁头寄存器的第6位LBA确定其模式:即如果LBA=0,则为CHS模式;如果LBA=I,则为LBA模式。本设计采用LBA寻址方式访问CF卡数据。 S3C2410对CF卡读扇区数据时首先分别向扇区计数、扇区号、低柱面、高柱面、选择卡/磁头寄存器写入相应的数据指定需要读写的扇区;再向命令寄存器写20H,读取状态字为58H后读取数据;最后读取命令寄存器的状态字,如果为50H表示没有错误, CF卡进入待命状态。 S3C2410对CF卡向指定扇区写数据的命令是30H,其操作与读数据相似,只不过在写入数据后要等到CF卡中数据稳定并进入空闲状态才能结束这一过程。 通过对CF卡写入命令ECH就可以读出1个扇区,其中包含了该CF卡的一些参数的信息,如容量、默认的柱面数、默认的磁头数、每个扇区的字节数、每个磁道的扇区数和CF卡上总的扇区数等,以此来判断是否需要格式化CF卡。在格式化后的CF卡中,具有FAT文件系统结构。 FAT32文件系统在CF卡上工作时,首先初始化文件系统;再建立一个目录;然后读/写 一个文件;接着删除这个文件和目录;最后关闭文件系统。 //初始化文件系统 DiskInit(); //初始化逻辑盘信息管理模块 AddFileDriver(CFCammand); //加载CF卡底层驱动程序 FileInit(); //初始化文件指针系统 //建立一个目录 ChangeDrive(“a:”); //改变当前逻删除一个底层驱动程序辑盘 MakeDir(“dir2.dir”); //建立目录 ChangDir(“a:\\dir2”); //改变当前目录 //读/写一个文件 FHandle = FileOpen(“a.txt”,w”); //以指定方式打开文件 If (FHandle != Not_Open_FILE) { FileSeek(FHandle,0,SEEK_END); //移动文件读/写位置 FileWrite(S,6, FHandle); //写文件 FileClose(FHandle); //关闭指定文件 } FHandle = FileOpen(“a.txt”,r”); If (FHandle != Not_Open_FILE) { FileSeek(FHandle,0,SEEK_END); FileRead(buf,6, FHandle2); FileClose(FHandle); } //删除这个文件、目录,最后关闭文件系统 RemoveFile(S); //删除文件 ChangeDir(“a:\\”); //改变当前目录 RemoveDir(“dir2”); //删除目录 RemoveFileDriver(GetDrive(“a”)); //GetDrive(“a”)—获取指定目录的逻辑盘号 // RemoveFileDriver—删除一个底层驱动程序 5 结论 按照FAT32文件格式,在S3C2410的应用系统中,实现了基于CF 卡的基本文件系统功能,如读写、创建、删除和复制文件,创建、打开和删除子目录以及返回上级目录等,且能与其他支持FAT32的系统交互信息。该系统可以很方便地进行存储容量的扩展, 而且耗电量低, 满足了长期大量数据存储的要求, 存储的文件与现在广泛使用的windows操作系统兼容, 更加方便了高速采样等场合的数据采集和回放分析。系统的扩展性强, 可以很方便地应用在各种工业现场以及小型便携式嵌入式系统中, 在数据采集存储方面更加灵活、稳定, 摆脱了操作系的限制。 本论文的创新点:介绍了一种不依赖于商用操作系统而按照FAT32格式实现的基于S3C2410的CF卡标准文件系统,使得CF卡中存储的信息能从PC机上读取出来。 |
- B2B搜索“联姻”..
- 2008-9-11
- HOLTEK推出H..
- 2008-9-11
- 关于ISPRO校验..
- 2008-9-11
- 利用适配板实现免制..
- 2008-9-11
- GSMSMS模块客..
- 2008-9-11
- ISPro下载型编..
- 2008-9-11
- C语言之stati..
- 2008-9-11
- 完美结合语音芯片与..
- 2008-9-11
- 又做一工具:ATm..
- 2008-9-11
- QE128的DEM..
- 2008-9-11
- 特别推荐一款高性能..
- 2008-9-11
- SATA硬盘使用解..
- 2008-9-16
- EPoX主板几种前..
- 2008-9-16
- 反其道行之降低电压..
- 2008-9-16
- 基于ATM8051..
- 2008-9-16
- THB6016H测..
- 2008-9-16
- 显示器黑屏的解决办..
- 2008-9-16
- 你会买网络服务器吗..
- 2008-9-16
- 酷漫教你制作只带一..
- 2008-9-16
- 酷漫破解网页右健锁定
- 2008-9-16



