一种fat32格式的数据文件管理系统的制作方法

文档序号:6535244阅读:251来源:国知局
一种fat32格式的数据文件管理系统的制作方法【专利摘要】本发明涉及一种FAT32格式的数据文件管理系统,属于机载/弹载侦察相机【
技术领域
】。本发明的FAT32格式的数据文件管理系统以TMS320C6414处理器+FPGA+电子硬盘为硬件平台,采用分层结构,包括物理实现层、数据缓冲层和文件实现层模块,物理实现层采用标准ATA/ATAPI-6的UDMA4数据读写模式,实现对电子硬盘的多扇区数据读写操作,数据缓冲层通过在TMS320C6414处理器内存中开辟多个数据缓冲区,采用双向访问链表缓存最近访问的磁盘扇区数据以实现对电子硬盘扇区数据进行缓存与管理,文件实现层采用FAT32文件标准,通过调用数据缓冲层接口函数以实现FAT32格式文件的读写操作。通过上述设计,本发明能够减少直接访问磁盘介质次数,提高了磁盘访问的效率,解决海量数据的高速存储问题。【专利说明】一种FAT32格式的数据文件管理系统【
技术领域
】[0001]本发明涉及一种FAT32格式的数据文件管理系统,属于机载/弹载侦察相机
技术领域
。【
背景技术
】[0002]在航空航天侦察、摄影、监视等诸多嵌入式图像采集系统应用领域当中,大面阵高分辨率航拍相机开始广泛应用,图像数据量迅速增加,甚至在同一个系统中需要处理多种图5数据格式。然而,随着机载/弹载成像系统小型化发展,系统资源极其有限,海量数据的高效文件管理成为嵌入式系统当前面临亟需解决的技术难题。[0003]为了实现相机高速数据采集和海量存储系统,国内外一般采用基于X86架构的ETX硬件平台和Linux或Windows操作系统。这类图像采集系统有两种比较明显的缺陷:(1)体积较大、可靠性难以有效保证,不适用于受空间严格限制的机载、弹载等较特殊应用环境。(2)无法做到多种数据流格式的文件管理,并且系统带宽有限,难以全面满足机载/弹载应用技术指标要求。【
发明内容】[0004]本发明的目的是提供一种FAT32格式的数据文件管理系统,以实现海量数据的高效存储管理。[0005]本发明为解决上述技术问题而提供一种FAT32格式的数据文件管理系统,该管理系统以处理器、FPGA和电子硬盘为硬件平台,该文件管理系统采用分层结构,包括物理实现层、数据缓冲层和文件实现层,所述的物理实现层采用标准的UDMA4数据读写模式,用于实现对电子硬盘的多扇区数据读写操作,并为数据缓冲层提供电子盘多扇区读写的功能函数,所述的数据缓冲层通过在处理器内存中开辟多个数据缓冲区,采用双向访问链表缓存最近访问的磁盘扇区数据以实现对电子硬盘扇区数据进行缓存与管理,所述的文件实现层采用FAT32文件标准,通过调用数据缓冲层接口函数以实现FAT32格式文件的读写操作。[0006]所述的物理实现层基于处理器的嵌入式系统完成对电子硬盘进行多扇区数据读写操作,为数据缓冲层提供电子盘多扇区读写的功能函数。[0007]所述的数据缓冲层采用新的硬盘扇区数据替换最久未被访问的缓冲区策略,同时将被替换缓冲区回写进硬盘。[0008]所述的链表以结构体数组的形式实现,链表的每一个节点为一个独一无二的缓冲区编号,最新开辟的缓冲区被添加到链表的头部,尾节点的缓冲区就是最久未访问的缓冲区号。[0009]所述的文件实现层以扇区为单位为文件分配FAT表。[0010]所述的文件实现层采用簇号递增的顺序为文件分配磁盘空簇。[0011]所述的文件实现层中的文件操作函数包括创建文件、打开文件、写文件、读文件、查找文件、关闭文件和硬盘数据格式化。[0012]所述的文件实现层中FAT32文件数据的访问步骤如下:[0013]1)由文件名和扩展名在FAT区中分配或找到它的文件目录项;[0014]2)在文件目录项中分配或得到存储此文件的起始簇号;[0015]3)根据文件起始簇号在FAT表中分配或得到文件首簇位置;[0016]4)通过FAT表所标识的簇链,分配或得到存储此文件的下一簇号;[0017]5)用该簇号在数据区中存取文件;[0018]6)循环执行步骤4)和步骤5)直到该文件结束。[0019]本发明的有益效果是:本发明的FAT32格式的数据文件管理系统以处理器+FPGA+电子硬盘为硬件平台,采用分层结构,包括物理实现层、数据缓冲层和文件实现层模块,物理实现层采用标准的UDMA4数据读写模式,用于实现对电子硬盘的多扇区数据读写操作,并为数据缓冲层提供电子盘多扇区读写的功能函数,数据缓冲层通过在处理器内存中开辟多个数据缓冲区,采用双向访问链表缓存最近访问的磁盘扇区数据以实现对电子硬盘扇区数据进行缓存与管理,文件实现层采用FAT32文件标准,通过调用数据缓冲层接口函数以实现FAT32格式文件的读写操作。通过上述设计,本发明能够减少直接访问磁盘介质次数,提高了磁盘访问的效率,解决海量数据的高速存储问题。【专利附图】【附图说明】[0020]图1是大面阵高分辨率航拍相机系统的硬件构成及接口示意图;[0021]图2是本发明FAT32格式的数据文件管理系统分层结构示意图;[0022]图3是本发明FAT32格式的数据文件管理系统的硬件实现框图;[0023]图4是本发明物理层软件工作流程图;[0024]图5是本发明实施例中电子硬盘各功能区逻辑关系与文件寻址过程示意图。【具体实施方式】[0025]下面结合附图对本发明的【具体实施方式】作进一步的说明。[0026]本实施例以大面阵高分辨率航拍相机系统中的数据管理进行说明,在机载或弹载高速大容量数据管理与存储的特殊应用的条件下,在基于TMS320C6414DSP处理器硬件平台上,图像数据以FAT32格式完成磁盘文件存储与管理,如图1所示,该系统包括依次连接的数码相机、CameralLink接口、嵌入式图像采集平台、高速IDE接口和电子硬盘,本发明将FAT32格式的数据文件系统应用于上述基于TMA320C6414处理器的嵌入式图像采集平台,釆用IDE接口的固态电子盘完成数据文件的存储,以实现多种数据格式放入图像文件管理。[0027]本发明的FAT32格式的数据文件管理系统以TMS320C6414处理器+FPGA+电子硬盘为硬件平台,如图2所示,本发明的图像文件管理系统采用分层次如图3所示,包括物理实现层、数据缓冲层和文件实现层,物理实现层为底层,该层采用IDE接口标准的电子盘,设计有文件操作函数集,以UDMA4模式访问,实现对电子硬盘的多扇区数据存取操作;数据缓冲层为中间层,采用一种双向访问链表缓存最近访问的磁盘扇区内容,管理硬盘FAT表内容,以减少直接访问磁盘介质次数,提高磁盘访问的效率,设计有多缓冲区数据操作访问函数集;文件实现层为顶层,采用DSPC语言编程,以FAT32文件系统标准,设计有实现文件操作的接口函数,如创建文件、写文件、读文件、查找文件和关闭文件等操作。下面是对物理实现层、数据缓冲层和文件实现层的具体描述。[0028]物理实现层依据ATA/ATAPI-6标准的UDMA4数据读写模式,基于TMS320C6414DSP处理器的嵌入式系统完成对电子硬盘进行多扇区数据读写操作,为数据缓冲层提供电子盘多扇区读写的功能函数。物理实现层软件工作流程如图4所示,具体过程如下:[0029]原始与压缩图像数据缓存至DSP片外SDRAM时,处理器TMS320C6414DSP采用乒乓式的数据流轮转处理方式,即缓存一帧图像数据(包括原始图像与压缩图像)的同时,存储另一帧;在FPGA内构造IDE接口FIFO作为DSP与FPGA间的高速数据缓存,IDRFIF0输出数据率参考ATA/ATAPI-6标准的UDMA4模式时序要求,建议采用50MB/S;当IDEFIFO数据量处于低于半满状态时,将图像数据写入FPGA的IDEFIFO;当FPGAIDEFIFO数据量处于非空状态,且硬盘处于写请求状态时,由FPGA产生读同步时钟,从FPGA的IDEFIFO读取数据,依据ATA-6标准UDMA4模式接口时序要求,将图像数据写入电子硬盘数据端口,直到硬盘写请求信号无效(IDE接口UltraDMA4模式读写时序请参考ATA/ATAPI-6标准)。[0030]数据缓冲层为了提高对电子盘的访问速度,降低硬盘介质访问频率和延长电子硬盘的使用寿命,通过在TMS320C6414微处理器内存中开辟多个数据缓冲区,对电子硬盘扇区数据进行高速缓存与管理,该数据缓冲层采用新的硬盘扇区数据替换最久未被访问的缓冲区策略,同时将被替换缓冲区回写进硬盘,其替换过程采用双向访问链表实现,链表的每一个节点为一个独一无二的缓冲区编号,最新开辟的缓冲区被添加到链表的头部,因此,尾节点的缓冲区就是最久未访问的缓冲区号,考虑到图像文件处理在TMS320C6414DSP中运行,链表以结构体数组的形式实现。为了确保链表中缓冲区号的唯一性和运行的高效,用一个集合和一个快速索引表来管理内存各缓冲区,集合是以所有在链表中的缓冲区编号为元素组成的集合,快速索引表以缓冲区编号为索引下标,以它在链表中的位置为索引值,数据缓冲层在访问某个缓冲区时,如果该缓冲区是第一次访问,其不在访问链表当中,只需要在链表头节点加入该缓冲区号;如果之前访问过该缓冲区,它必然在链表中的某个位置,需要在链表中先删除该缓冲区,再将其加入头节点。链表经过上述改造,成为了一个高效的快速链表,该快速链表的数据结构如下:[0031]Uin,.|:|.織!;.://链表头Uintitafl;//链表尾strust:JCSntinext;//?点:的后向擔翁Uintipre;//节.点_前向指:针Uintibuffindex;//节:点数羅纏之r-#缓冲:区号Uint8valid;//节点数纖域之:二,義冲;区有}table[LenthafListTable];//链表节貞数祖Uint8indoxtablc[LcnthofListTable];//快速索引表,用来快速找存放buf£i_ndex的tab..le:_下标?tset;//缓冲K集合IListTablo,*pUstTable;//擧向键表类鼠键表IP議型朦ecfefstri?i:.//缓冲区齡^^构_寒义[0032]:I?.t8byt#vect〇ri'NijinSetIi't,es];In18maxNumBlernents:;;:}TSet,氺[0033]链表所管理的数据缓冲区结构体类型定义及缓冲区定义如下:[0034]typedefstruct{IntSMPferCBMl;是一个扇区的字节大小Int3S?rate;以该缓神区是否被写过IntSmil://售缓神是纖占用S#et〇rAddrIta;//该缓冲区所缓冲_磁盘的_直地址}DSs:kB:utr:;//磁盘缓冲区单元_型,Dis&laiflectorBuff[N?:mSe:?Buffed]r//磁盘缓冲甚数组[0035]文件实现层用于调用数据缓冲层接口函数,并依据现行国际诵用的FAT32寸件系统标准,以实现基于FAT32文件系统的文件读写操作,为提高硬盘数据访问效率,文件实现层以扇区为单位为文件分配FAT表(实现对图像数据所占用簇号的管理),采用簇号递增的顺序为图像文件分配磁盘空续。[0036]主要数据类型定义如下:[0037](1)设计了文件句柄信息的数据类型定义如下:[0038]typede^struet;{Uint32iAteitota;//属_:,:?件或目录UirrtSSFirstJ^lmter·;//文#1或吕录所復的第^5个簇.Uint32Vilelmm//文件长度,目录不用U;in:t32CuFfnt^Clustgr;//工作指针之当前簇U:int32Ciirent^Sectar;//工作指针之当前扇S?誠g//工作指针之下一个字节::--:η1:32Offset;//工作指针之绝对偏移Uint32FIlerecorcLSec;//文件记录所在扇区[0039]Uint32Filerecord_Offset;//文件记录在扇区内开始的字节地址UintfIsed;//表示某个文件被打开标志'Ogefiiafeam.,;//文件打开模式}//文件句柄信息FilelnfgfilehdlΕ8§χΝ?:ΜΚ:--6:Η^:η(1:1::@::][0040]其中,MaxNumFileHandle宏定义为32,因此最多可以同时操作32个文件。[0041](2)设计了文件记录项的数据类型定义如下:[0042]娜pedefsttist{Int8Filejia购[8];//8害节,文件ig名,不足8字节部分需赋值为空格Int8FileJfe__Ex_3.d:£|].;;//:3字节:,,文件扩展:名Int8File-A^fciribilte.:;//1...字::节,:文辨属性Uintl6File-&娜g-竽节:,:值长文件名目:录项用,Uintl6FileJ^_te-Time:;_//g:字省,文件建立时间::,高5位小时,次6ft##Uintl6File-斷餓*:lDate:;//2字节,文件建立3?禽7位为相对于II猶部猶年份值,次4獄.爲働,蔚5:截月齒日u〇int16File雖Jtete;/;/文件最新访问日期,同:上:Mntl6Start-Cluster-Highl6;//起始鑛号高16位:jlintl6F〗le_Amend-Time;沒文件修改时间,:.:商位:小时,次6位分钟,后5位为二倍秒数肋itl6FileJ^stJV賴細JJMte;//文件最:新修改日爾,定义同Fi1e^:e:eess_Date--:?,(--16Startjlus*雜*-Lowl6;.//起始族.吁低16位IJint32File_Bjfte_Length;//文件字节长度iFil.cJHRJten^*pHle_DIR_J忠em;//文件记录类耶和;文件:?录措針类型[0043]根据机载或弹载侦查相机应用特点,设置有以下操作函数:[0044](1)创建文件:为图像文件在硬盘上分配空簇,并为图像数据创建文件名及扩展名以及其他文件记录项;返回文件创建成功或失败的状态。[0045](2)打开文件:读取硬盘并获取文件的记录项,初始化文件句柄,以便对文件进行操作;返回所打开文件的句柄。[0046](3)写文件:执行对指定文件的写操作,或在原有文件数据基础上追加新的数据;返回实际写入文件的字节数。[0047](4)读文件:执行对指定文件的读操作;返回实际从文件中读出的字节数。[0048](5)查找文件:执行在硬盘中查找指定的文件,输出文件记录所在的扇区地址及扇区内的字节偏移地址,并返回找到与否状态。[0049](6)关闭文件:文件操作完成后,若是读模式,则直接返回文件句柄;若是写模式,需要更新文件的相关记录项,回写所有硬盘缓冲区至硬盘扇区,防止数据丢失,保证硬盘文件系统的完整。[0050](7)硬盘数据格式化:重写FAT表,以全零填充FAT表所占用的簇,并执行文件系统全局参数初始化。[0051]参考FAT32文件系统的相关标准,硬盘各功能区逻辑关系与文件寻址过程如图5所示,可实现以文件为单位的数据存取操作,FAT32文件数据的访问步骤如下。[0052]①由文件名和扩展名在FDT区中找到它的文件目录项;[0053]②在文件目录项中得到存储此文件的起始簇号;[0054]③由文件起始簇号在FAT表中得到文件首簇位置;[0055]④通过FAT表所标识的簇链得到存储此文件的下一簇号;[0056]⑤用该簇号在数据区中存取文件;[0057]⑥循环执行步骤④和步骤⑤直到该文件结束。[0058]上述实施例在基于TMS320C6414硬件平台上应用了标准IDE接口的固态电子硬盘,采用的UDMA4的硬盘访问模式具有66MB/s的读写速度,有效地解决了高速数据采集与数据存储间的系统带宽匹配问题,在DSP硬件平台上找到了一种基于FAT32标准的海量相机数据存储的高效软件实现方法,并且能够满足航拍相机系统中对多格式图像数据管理需求。且本发明的应用增强了侦察相机系统的可靠性、环境适应性、抗振动、抗冲击等多项性能指标,实现了侦察数据与PC机无缝数据链接,大大改善了系统组件的使用维护性及通用性,解决了海量数据高速存储技术瓶颈。【权利要求】1.一种FAT32格式的数据文件管理系统,其特征在于,该管理系统以处理器、FPGA和电子硬盘为硬件平台,该文件管理系统采用分层结构,包括物理实现层、数据缓冲层和文件实现层,所述的物理实现层采用标准的UDMA4数据读写模式,用于实现对电子硬盘的多扇区数据读写操作,并为数据缓冲层提供电子盘多扇区读写的功能函数,所述的数据缓冲层通过在处理器内存中开辟多个数据缓冲区,采用双向访问链表缓存最近访问的磁盘扇区数据以实现对电子硬盘扇区数据进行缓存与管理,所述的文件实现层采用FAT32文件标准,通过调用数据缓冲层接口函数以实现FAT32格式文件的读写操作。2.根据权利要求1所述的FAT32格式的数据文件管理系统,其特征在于,所述的物理实现层基于处理器的嵌入式系统完成对电子硬盘进行多扇区数据读写操作,为数据缓冲层提供电子盘多扇区读写的功能函数。3.根据权利要求1所述的FAT32格式的数据文件管理系统,其特征在于,所述的数据缓冲层采用新的硬盘扇区数据替换最久未被访问的缓冲区策略,同时将被替换缓冲区回写进硬盘。4.根据权利要求3所述的FAT32格式的数据文件管理系统,其特征在于,所述的链表以结构体数组的形式实现,链表的每一个节点为一个独一无二的缓冲区编号,最新开辟的缓冲区被添加到链表的头部,尾节点的缓冲区就是最久未访问的缓冲区号。5.根据权利要求1所述的FAT32格式的数据文件管理系统,其特征在于,所述的文件实现层以扇区为单位为文件分配FAT表。6.根据权利要求5所述的FAT32格式的数据文件管理系统,其特征在于,所述的文件实现层采用簇号递增的顺序为文件分配磁盘空簇。7.根据权利要求6所述的FAT32格式的数据文件管理系统,其特征在于,所述的文件实现层中的文件操作函数包括创建文件、打开文件、写文件、读文件、查找文件、关闭文件和硬盘数据格式化。8.根据权利要求1-7中任意一项所述的FAT32格式的数据文件管理系统,其特征在于,所述的文件实现层中FAT32文件数据的访问步骤如下:1)由文件名和扩展名在FAT区中分配或找到它的文件目录项;2)在文件目录项中分配或得到存储此文件的起始簇号;3)根据文件起始簇号在FAT表中分配或得到文件首簇位置;4)通过FAT表所标识的簇链,分配或得到存储此文件的下一簇号;5)用该簇号在数据区中存取文件;6)循环执行步骤4)和步骤5)直到该文件结束。【文档编号】G06F17/30GK104298697SQ201410008213【公开日】2015年1月21日申请日期:2014年1月8日优先权日:2014年1月8日【发明者】张帆,方喜波,肖佑平,王春江,刘洋申请人:凯迈(洛阳)测控有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1