【IT168 技术】1 引言
随着测试技术的发展,测试系统的采集速度、处理能力和存储容量逐渐成为衡量其性能的重要指标。作为现代测试系统的一个重要发展方向,大容量数据存储系统的应用越来越广泛。例如,在一些特定应用场合,并不需要对数据进行实时处理和显示,只是记录下原始数据,将其作为一个“黑匣子”,为后端处理做准备。如果在系统中选择一种与PC机兼容的存储器,而且将数据按操作系统可以识别的格式管理,就可以利用PC机中的各种应用软件,更为方便地进行后端数据处理。
目前,PC机常用的移动存储设备有硬盘、优盘和CF(Compact Flash)卡。优盘只提供了USB接口,而硬盘和CF卡都可以按照标准IDE(Integrated Device Electronics)接口访问。在数据管理方面,IDE接口更为简单可靠。与硬盘相比,CF卡又具有体积小、功耗低和稳定性好等优点,故被优先采用。
本文旨在探索一种适用于CF卡的数据存储文件格式。它要求结构简单,稳定可靠,存储速率快,又要兼容PC机的文件管理系统,从而能够大大简化后端数据的分析和处理。
2 CF卡及其访问方式
CF卡崛起于90年代初,在短短的十几年中迅速发展,容量从最早的2MB到现今的1GB。CF卡同时支持3.3伏和5伏的电压,可适用于不同的数字集成电路。它采用统一的标准接口,有很好的兼容性和互换性,升级换代较为方便。
CF卡有50根引脚,有3种访问方式,即PC卡存储器模式、PC卡I/O模式和标准IDE模式。笔者采用其标准IDE模式,这和IDE接口硬盘的访问方式一样,都遵从ATA(AT Attachment,AT总线接口)标准。CF卡按照标准IDE模式访问时,只有40根信号线起作用,其他信号线按照要求接电源(地)或者接上拉(下拉)电阻。通过IDE接口的数据传输主要有三种操作模式,即PIO(Programmable I/O,可编程I/O)模式、单字DMA(Direct Memory Address,直接存储器存取)模式和多数据DMA模式。这里采用PIO模式,即CF卡的每一次读写操作都在外部干预下进行。
IDE操作的最小单元是扇区(512个字节),可以一次读写1到256个扇区。每一次读写操作都需要先“建立寄存器块”,即确定读写的扇区地址和扇区数,而后通过数据传输将一批数据全部读出或写入。
按照标准IDE模式,可以在CF卡中建立与操作系统类似的文件系统,这样就为PC机进行后端数据处理提供了较大的方便。
3 数据存储格式设计
3.1 DOS操作系统数据管理的方法
随着计算机技术的发展,操作系统也由当初的DOS发展到今天的Windows,同时也随之出现了FAT和NTFS两种基本的文件管理系统。 本文主要对FAT文件系统进行分析,并在此基础上探索出一种更适合实际应用的数据格式。
尽管操作系统不断地更新,但是它们管理磁盘的方法基本上是一致的,而且相互间有很好的兼容性。这里仅对DOS管理磁盘的方法进行分
表1 DOS磁盘格式表
主引导扇区用于存放主引导记录,确定操作系统所能管理的分区空间。DOS引导扇区存放了DOS系统引导程序,描述分区的扇区、磁道、根目录结构和FAT表。FAT表中存放了簇链,用于指示文件在磁盘中的位置,第二个FAT表仅作第一个的备份。FDT(File Directory Table,文件目录表)表用于记录文件信息,包括文件的大小、起始位置、文件名、属性和创建时间等。数据区用于记录所有文件的数据。
DOS访问文件时,首先搜索FDT表,寻找名字相符的文件。找到后,根据FDT表中文件首簇项在FAT表中找到相应的FAT项。从该项对应的簇中读取文件。然后沿着簇链读取文件的后面部分,直到最后一簇。
DOS管理的数据文件具有以下特点:
1) 结构复杂
DOS管理的数据文件,有其对应的FAT表、FDT表和数据区构成,访问过程比较繁琐。
2) 文件信息丰富
DOS管理的数据文件,有丰富的文件信息。包括文件大小、文件建立日期和文件属性等。
3) 数据区扇区可以不连续
DOS管理数据文件的数据区,是利用FAT表中的簇链链表进行访问的,在物理上其数据扇区是可以不连续的。
3.2 简化FAT格式的引出
从上面的分析中可以看出,DOS操作系统管理数据利用的是完整的FAT文件系统,这是一种很稳定的文件管理方法。但在大容量数据存储系统中,这种方法有以下的几点局限性:
1) 访问繁琐
访问一个DOS格式的文件,要先找到该文件FDT表,然后是FAT表及其对应的FAT项,再通过簇链链表找到文件的数据区,才能在数据区进行文件修改。
2) 实际操作困难,可靠性差
按照这种方法管理数据时,要明确知道每个文件FAT表、FDT表的准确物理地址,这在实际操作中会有较大难度。而且,FAT表和FDT表中不能出现任何错误,否则就可能造成所有数据丢失。
3) 访问效率不高
DOS管理文件时,首先要建立这个文件的FDT表和FAT表,这就降低了数据存储速率。更重要的是,在进行数据存储时,还要不断的建立簇链链表,这会导致硬盘的读写在FAT表区和数据区之间不断地“跳跃”,这种“跳跃”会大大降低数据存储速率。
从上面的分析中可以看出,在大容量数据存储系统中,完整的FAT文件系统并不是管理CF卡的非常好的选择。这就需要探索一种更好的文件管理方式,要求它不仅数据格式合理,能使操作系统识别,而且操作简单,稳定性高。也就是本文所提出的新型数据格式——简化FAT格式。
3.3简化FAT格式建立方法
所谓简化FAT格式,也就是FAT文件系统的一种简化形式。这种格式结构简单,却可以为DOS或Windows操作系统轻松识别。在实际应用中,它对系统的总体要求不高,而且操作较简单,有事半功倍的效果。
简化FAT格式的具体建立方法如下:
1) 对CF卡进行FORMAT格式化(选择FAT文件系统)。
2) 在根目录下建立一个或多个文件,文件大小视存储数据量而定,要比数据量稍大。
3) 找出每个文件的数据区物理扇区起始地址。
4) 在文件数据区第一个扇区中记录下该文件的信息,与FDT表中所需的信息一样。
5) 从文件数据区第二个扇区开始存储数据,存储长度不能超过2)中所建立的文件大小。
用此方法建立的各个数据文件都是简化FAT格式的。在大容量数据存储系统中,采用此方法管理CF卡中的文件,具有以下的优点:
1) 访问简单
对一个简化FAT格式的文件进行访问,只是对其数据区进行访问,省去了对FAT表和FDT表的访问。
2) 文件系统完善
简化FAT格式也是一个完善的文件系统,它包含了所有的文件信息,例如文件大小、文件建立日期和文件属性等。
3) 数据存储速率高
简化FAT格式的文件,是在对CF卡进行FORMAT格式化之后建立的。在文件建立之后,其FDT表和FAT表都没有改变过,因此文件的数据区扇区是连续的。这样在进行数据存储时,只是在连续的数据扇区中进行,也就避免了扇区物理地址的不断跳转,从而大大提高了数据的存储速率。
4 设计实例
根据上面的分析,笔者设计完成了一个大容量数据存储系统。其基本结构如图1所示:
从结构框图中可以看出,整个存储系统主要有以下几部分构成:模拟调理电路、AD转换器AD7864、数字信号处理器ADSP2187、总线驱动/隔离器74HC245和大容量存储介质CF卡。模拟调理电路将输入信号调理到AD7864的模拟输入范围内,AD7864将其转化为数字信号后再传给ADSP2187,ADSP2187再将采集数据进行适当处理(例如数字滤波和时频变换等)后存入到CF卡中。
该系统硬件简单,通用性强,只要在模拟输入前端配以不同的传感器就可以实现对不同类型信号的大容量数据存储系统。
在CF卡的存储数据管理上采用简化FAT格式。实践证明,这种数据管理方法简单可靠且执行效率高,适合本系统采用。
5 结束语
本文利用PC机在数据处理与分析中的种种优势,选择CF卡这一PC机常用的移动存储设备作为大容量存储器设计大容量数据存储系统,提出了CF卡中数据管理的新型格式——简化FAT格式,并对这种数据格式的优点与合理性进行了详细分析,最后通过实际应用验证了这种数据格式的合理性。