一种在fat文件系统中支持多国语言的方法及其装置的制作方法

文档序号:6651357阅读:122来源:国知局
专利名称:一种在fat文件系统中支持多国语言的方法及其装置的制作方法
技术领域
本发明涉及计算机原理领域,具体涉及在FAT文件系统中支持多国语言的方法,以及使用这种方法的装置。
背景技术
FAT文件系统定义了硬盘上的数据按照其不同的特点和作用分为5部分MBR区、DBR区、FAT区、DIR区和DATA区。
(1)MBR(主引导记录区),通常位于整个硬盘的0磁道0柱面1扇区,它包含了硬盘的一系列参数和一段引导程序,它由分区程序(如Fdisk.com)所产生的,并不依赖任何操作系统。
(2)DBR(操作系统引导记录区),它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区。它的主要任务是当MBR将系统控制权交给它时,判断本分区根目录前两个文件是不是操作系统的引导文件,如果确定存在,就把其读入内存,并把控制权交给该文件。
(3)FAT(文件分配表)位于DBR之后,从0磁道1柱面33扇区开始,占据扇区的多少由磁盘类型和大小而定。文件分配表是用来表示磁盘空间的分配信息。它不表示引导区、文件目录的信息,也不真正存储文件内容。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT(文件分配表)来保存的,表中有很多表项(entry),每项记录一个簇的信息。
(4)DIR根目录区(Directory),紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
(5)数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的绝大部分数据空间在FAT文件系统中,必不可少涉及文字编码。英文版的操作系统平台上,文件系统中的目录、文件全是英文字母,用ANSI码即可,但是在中文、韩文系统中就必须考虑编码问题。
若使FAT文件系统支持多国语言,必须支持Unicode编码。Unicode是一套字符集,与其他传统单一字节的字符集不同的是,它使用两个字节来表示一个字符,这使得可用字符的数量大大增加,因为理论上两个字节可以包含65536个字符,这样对于世界上所有国家的字符、符号或者货币都是足够的了。Unicode的字符都是双字节的,使得管理、转换和使用字符串变得十分容易,并且它支持世界上的所有的常用文字,使得一个程序可以同时在屏幕上显示多种语言的文字,而不用关心当前的代码页。
要使系统支持Unicode编码必然需要Unicode库来实现不同语言与Unicode间的转换,而在嵌入式系统中放置一个Unicode转换库是无法接受的,因为仅仅一个汉字GB码与Unicode间的转换库就有80k左右,更何况其它语言。显然FAT文件系统中放置Unicode库的方案在嵌入式系统开发中是不可行的,把含有Unicode库的FAT系统放置到芯片里则更不可行。

发明内容
本发明的目的是要克服目前现有技术的缺陷,提出一种有效的、嵌入式系统可以使用的、使FAT文件系统能支持多国语言的方法。
本发明提出一种在FAT文件系统中支持多国语言的方法,在应用层设置Unicode编码转换库;在应用层完成Unicode编码和非Unicode编码之间的转换,并将Unicode编码和非Unicode编码一并传给FAT系统;FAT文件系统中的参数处理模块对所传入的编码进行解析。
上述的在FAT文件系统中支持多国语言的方法,一种优选的方案是参数处理模块可以以Unicode应用程序调用接口形式实现。
本发明还提出一种装置,该装置使用了本发明提出的在FAT文件系统中支持多国语言的方法,该装置包括CPU和存储器,其中存储器内包括一个FAT文件系统,该文件系统包括一个参数处理模块,这个参数处理模块用于当应用层传入Unicode编码和非Unicode编码,解析这些编码;当FAT文件系统使用多国语言时,应用层通过编码转换库完成Unicode编码和非Unicode编码之间的转换,并将Unicode编码和非Unicode编码一并传入参数处理模块,参数处理模块将解析过的编码传入FAT文件系统。
上述的装置,一种优选的方案是系统的应用层包括一个Unicode编码转换库。
上述的装置,一种优选的方案是还包括USB模块,用于将该装置与计算机相连。
上述的装置,一种优选的方案是装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
采用本发明,可以有效的使FAT文件系统支持Unicode编码,从而有效的支持多国语言。本发明尤其适用于嵌入式系统和单片机开发,使得这些系统都可以支持多国语言。


图1为采用本发明的FAT文件系统结构示意图;
图2为本发明的实施例的模块图。
具体实施例方式
本发明提出的在FAT文件系统中支持多国语言的方法,以及使用这种方式的装置,结合附图和实施例说明如下。以下实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由各项权利要求限定。
参照图2,本实施例中,整个FAT文件系统放置在一片音频处理芯片中,这个音频处理芯片包括CPU和存储器部分,其中CPU和存储器之间的数据传输采用现有技术中常用的DMA(直接存储器存取)传输方式。具体在说,在这片音频芯片的存储器中设置了一个FAT文件系统。由于这个FAT文件系统,因此通过它可以完成对外部存储介质的管理,例如通过它读取外部的SD、MMC、NandFlash记忆卡中的数据。这种通过一个文件系统进行对外部存储介质的管理属于现有技术,类似于在通用计算机上通过操作系统完成对USB存储器的管理一样,在此不作赘述。
在这个MCU(微程序控制器)系统1中,通过DMA方式与存储器之间通信。本装置采用现有技术中常用的音频处理模块,支持midi、mp3、wave多种格式的音乐播放功能,也支持midi+wave、midi+mp3的播放。这些音乐数据会通过音频混音模块,然后输出到EQ(智能)模块、3D模块,然后输出到扬声器2。
这个MCU系统中还包括USB模块,这个音频处理芯片可以通过该模块与通用计算机(PC)之间进行数据传输。
对于存储在存储器中的文件系统而言,这个文件系统的结构示意图如图1所示。该FAT文件系统包括保留区、FAT区、根目录区、文件和目录数据区。其中,保留区采用和现有技术一样的方案,具有MBR、DBR等系统参数,而且在语言支持方面,采用了本发明提出的使FAT文件系统中支持多国语言的方法,使得这片音频处理芯片的文件系统能支持多国语言。FAT文件系统的编写属于现有技术,因此,与现有技术相同的部分在本文中不作赘述。
根据本发明,一方面,把Unicode转换库放在应用层。应用层通常有足够大的空间,因此把Unicode转换库放在应用层是一种容易实现的做法。另一方面,在编写文件系统时,采用了本发明提出的支持多国语言的方法,为FAT文件系统增加一个参数处理模块。具体的实现方法是,使用一个API(应用程序接口)接口方式作为这个参数处理模块,实现对Unicode编码支持,这个API有一个额外参数用于传递相应的Unicode。
例如,打开文件的API接口,使用现有技术可以描述为f_open(constchar*name,const char*mode),该函数包含两个参数,一个是待打开的文件名name,另一个是文件打开的方式mode。
而采用本发明的方法,要使文件系统能支持Unicode,需要在FAT文件系统中增加一个参数处理模块。这个模块用Unicode API实现,这个API和现有技术的类似,但是需要多增加一个参数,把接口修改为f_open(const char*name,const char*uname,cosnt char*mode)在这里,添加一个参数uname用来传递待打开文件名字的Unicode编码。
例如,当需要创建一个涉及多国语言的新文件夹时,应用层根据编码转换库,完成Unicode编码和非Unicode编码的转换工作,然后将转换完的Unicode编码和Unicode编码并一起传入参数处理模块,由参数处理模块将解析过的编码数据传给FAT文件系统,因此Unicode编码对FAT文件系统是透明的。创建这样一个涉及多国语言的新文件夹所用的接口函数描述为UINT8 fn_mkdir(const SINT8*dirname,const SINT8*udirname)其中,udirname用来传递所创建的文件夹的名字的Unicode编码。
又例如,当需要设置文件的属性而且涉及多国语言时,由应用层根据编码库,将Unicode编码转换为非Unicode编码,由参数处理模块将解析过的编码数据传给FAT文件系统。设置文件的属性所用的接口函数描述为UINT8 fn_setattr(const SINT8*filename,const SINT8*ufilename,UINT8 attr)其中attr表示文件属性,这个属性在文件系统中有对应的宏定义#define F_ATTR_ARC 0x20 //普通存档文件#define F_ATTR_DIR 0x10 //目录#define F_ATTR_VOLUME 0x08 //磁盘卷标#define F_ATTR_SYSTEM 0x04 //系统#define F_ATTR_HIDDEN 0x02 //隐藏#define F_ATTR_READONLY 0x01 //只读另外,ufilename用来传递所创建的文件夹的名字的Unicode编码。
这样,应用层在设置文件属性时,同时传入对应的unicode、非unicode编码。当FAT文件系统按照既定的程序执行,需要用及unicode编码时,直接访问ufilename即可。也就是说,底层的文件系统不会直接调用到unicode编码,因此unicode编码对这样具有参数转换模块的文件系统而言是透明的。
这些函数构成一套Unicode API,这个API实现了参数处理模块的设计,因此FAT文件系统可以支持Unicode编码,由此实现FAT文件系统对多国语言的支持。
可见,采用本发明,编码转换库放在应用层,解决了因为编码转换库过大而难以放在FAT文件系统内的问题;通过参数处理模块可以有效的使得FAT文件系统支持Unicode编码,从而有效的支持多国语言。因此本发明非常适用于小型的FAT文件系统,例如嵌入式系统和单片机开发,使得这些不能容纳Unicode转换库的系统都可以支持多国语言。
这种采用了本发明提出的FAT文件中支持多国语言方法的FAT文件系统,本领域的技术人员都可以把它应用到其他场合中,例如应用到通用计算机或其他嵌入式开发中。本实施例仅用于支持本发明,本发明的保护范围应该由权利要求书限定。
权利要求
1.一种在FAT文件系统中支持多国语言的方法,其特征在于在应用层设置Unicode编码转换库;在应用层完成Unicode编码和非Unicode编码之间的转换,并将Unicode编码和非Unicode编码一并传给FAT系统;FAT文件系统中的参数处理模块对所传入的编码进行解析。
2.如权利要求1所述的在FAT文件系统中支持多国语言的方法,其特征在于参数处理模块可以以Unicode应用程序调用接口形式实现。
3.一种使用如权利要求1所述的方法的装置,包括CPU和存储器,其特征在于存储器内包括一个FAT文件系统,该文件系统包括一个参数处理模块,这个参数处理模块用于当应用层传入Unicode编码和非Unicode编码,解析这些编码;当FAT文件系统使用多国语言时,应用层通过编码转换库完成Unicode编码和非Unicode编码之间的转换,并将Unicode编码和非Unicode编码一并传入参数处理模块,参数处理模块将解析过的编码传入FAT文件系统。
4.如权利要求3所述的装置,其特征在于所述应用层包括一个Unicode编码转换库。
5.如权利要求3所述的装置,其特征在于还包括USB模块,用于将该装置与计算机相连。
6.如权利要求3所述的装置,其特征在于装置的CPU、存储器之间的通信采用DMA方式进行数据传输。
全文摘要
本发明涉及计算机原理领域。本发明提出一种在FAT文件系统中支持多国语言的方法,其中,在文件系统中增加参数处理模块,把Unicode转换库放在应用层。当FAT文件系统需要使用Unicode编码时,应用层完成编码之间的转换并把编码一并传入参数处理模块,参数处理模块将解析过的编码传入FAT文件系统。本发明可以有效的使得FAT文件系统支持Unicode编码,从而有效的支持多国语言,特别适用于嵌入式系统和单片机的开发。
文档编号G06F9/44GK1776685SQ20051013064
公开日2006年5月24日 申请日期2005年12月16日 优先权日2005年12月16日
发明者孙丰强, 赵原 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1