一种基于单磁盘实现多分区多盘符的方法、***及设备
技术领域
本发明涉及计算机信息技术领域,尤其涉及一种基于单磁盘实现多分区多盘符的方法、***及设备。
背景技术
磁盘分区实质上是对硬盘(例如:TF卡)的一种格式化,然后才能使用硬盘保存各种信息。创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分,磁盘一旦划分成多个分区,不同类别的目录与文件可以存储进不同的分区。盘符是DOS、WINDOWS***对于磁盘存储设备的标识符,具有FAT表的磁盘一旦挂载到计算机(DOS、WINDOWS***对)都会被计算机识别出一个可见盘符。
现有的技术一般分为两种,一种是基于微处理器嵌入式技术一般采用单个物理磁盘(例如TF卡或SD卡等)单一分区管理,挂载到计算机也只能映射出单个盘符。另一种是高级的ARM处理器,搭建Linux或者Wince***等高级嵌入式***,利用高等级、复杂的嵌入式***下多分区接口技术实现单磁盘多分区。
对于现有的基于微处理器嵌入式技术一般都是单个物理磁盘单一分区管理,单一盘符映射,在只有单个物理磁盘的嵌入式***中无法实现对于多用户多属性的管理,无法满足多用户的使用。引起上述的缺点主要是由于没法实现单磁盘多分区多盘符映射。虽然,现有的基于高级ARM处理器搭建Linux或者wince***,利用这种高级嵌入式***下集成多分区接口技术可以实现单磁盘多分区多盘符的映射,但是这种技术在硬件成本上给产品带来很大负担,不能满足市场的需求。
发明内容
本发明的目的在于提供一种基于单磁盘实现多分区多盘符映射方法、***及设备,旨在解决现有的基于微处理器嵌入式技术均是单个物理磁盘单一分区和盘符映射问题。
第一方面,一种基于单磁盘实现多分区多盘符的方法,所述方法包括以下步骤:
根据磁盘所需分区的数量N,为所述分区分配N个盘符,并设置所述N个分区和盘符在所述磁盘的起始地址和容量,N为正整数;
根据所述N个分区和盘符在所述磁盘的起始地址和容量,计算所述N个分区和盘符在所述磁盘的终止地址,对所述磁盘进行区域划分;
根据所述磁盘的区域划分,将所述N个分区按照FATFS文件***规则对磁盘进行物理映射,将所述N个盘符按照USB大容量存储协议对磁盘进行物理映射,且所述分区的物理映射和盘符的物理映射一一对应,并对分区进行格式化处理;
将完成物理映射的磁盘的读写驱动封装成USB读写单元接口和FATFS读写单元接口,调用所述USB读写单元接口和FATFS读写单元接口,对具有多分区多盘符的磁盘进行读写。
优选地,所述的方法还包括:设置所述分区和盘符的权限属性。
进一步地,所述权限属性包括共享权限和私有权限,所述分区和盘符的共享权限具体为:对于任意用户都具有读写权限;所述分区和盘符的私有权限具体为:对于普通用户具有只读权限。
优选地,所述设置所述分区和盘符的权限属性还包括:通过注册码对所述分区和盘符设置时间限制。
进一步地,所述分区的物理映射和盘符的物理映射一一对应具体为:通过所述分区和盘符在磁盘上的物理映射地址相同实现一一对应。
进一步地,所述磁盘包括TF卡、SD卡、NandFlash、NorFlash或EEPROM。
第二方面,一种基于单磁盘实现多分区多盘符的***,所述***包括:分配设置单元、计算划分单元、FATFS映射单元、USB映射单元、格式化单元、封装单元和调用读写单元;
所述分配设置单元,用于根据磁盘所需分区的数量N,为所述分区分配N个盘符,并设置所述N个分区和盘符在所述磁盘的起始地址和容量,N为正整数;
所述计算划分单元,用于根据所述N个分区和盘符在所述磁盘的起始地址和容量,计算所述N个分区和盘符在所述磁盘的终止地址,对所述磁盘进行区域划分;
所述FATFS映射单元,用于根据所述磁盘的区域划分,将所述分区按照FATFS文件***规则对磁盘进行物理映射;
所述USB映射单元,用于根据所述磁盘的区域划分,将所述盘符按照USB大容量存储协议对磁盘进行物理映射,且所述分区的物理映射和盘符的物理映射一一对应;
所述格式化单元,用于对分区进行格式化处理;
所述封装单元,用于将完成物理映射的磁盘的读写驱动封装成USB读写单元接口和FATFS读写单元接口;
所述调用读写单元,用于调用所述USB读写单元接口和FATFS读写单元接口,对具有多分区多盘符的磁盘进行读写。
优选地,所述***还包括权限设置单元,所述权限设置单元用于设置所述分区和盘符的权限属性;
所述权限设置单元还包括时间限制子单元,所述时间限制子单元用于通过注册码对所述分区和盘符设置时间限制。
第三方面,一种基于单磁盘实现多分区多盘符的设备,所述设备用于外设或内嵌存储介质,所述存储介质包括TF卡、SD卡、NandFlash、NorFlash或EEPROM,所述设备包括存储器和微处理器,以及一个或多个模块,所述存储器用于存储所述一个或多个模块,所述微处理器用于执行所述一个或多个模块,所述一个或多个模块包括用于执行以下步骤的指令:
根据磁盘所需分区的数量N,为所述分区分配N个盘符,并设置所述N个分区和盘符在所述磁盘的起始地址和容量,N为正整数;
根据所述N个分区和盘符在所述磁盘的起始地址和容量,计算所述N个分区和盘符在所述磁盘的终止地址,对所述磁盘进行区域划分;
根据所述磁盘的区域划分,将所述N个分区按照FATFS文件***规则对磁盘进行物理映射,将所述N个盘符按照USB大容量存储协议对磁盘进行物理映射,且所述分区的物理映射和盘符的物理映射一一对应,并对分区进行格式化处理;
将完成物理映射的磁盘的读写驱动封装成USB读写单元接口和FATFS读写单元接口,调用所述USB读写单元接口和FATFS读写单元接口,对具有多分区多盘符的磁盘进行读写。
优选地,所述设备还包括一检测模块,所述检测模块包括以下步骤的指令:检测所述设备是否处于正常工作状态,若是,则对磁盘进行分区。
进一步地,所述分区自动格式化具体为在设备上电时会检测每个分区是否存在FAT文件***,如果不存在,则按照FATFS文件***规则对分区进行格式化,使分区具有FAT文件***。
有益效果:与现有的技术相比,本发明提供了一种基于单磁盘实现多分区多盘符方法及***,基于单磁盘多分区多盘符管理方法实现了多用户多属性存储设备的文件管理,对不同等级用户开放不同等级的权限,提高对多用户的文件管理和***的开放性,大大提高用户的体验度,解决基于微处理器单磁盘多分区多盘符多属性技术难题。同时,相对于基于高级ARM处理器搭建Linux或者wince***下的多分区接口技术才能实现单磁盘多分区多盘符的映射,大大减低产品的硬件成本,并缩小产品体积空间,提高了产品在同行的竞争力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于单磁盘实现多分区多盘符的方法流程图;
图2是本发明一实施例提供的一种基于单磁盘实现多分区多盘符的***结构图;
图3是本发明一实施例提供的一种基于单磁盘实现多分区多盘符的设备结构图;
图4是本发明一实施例提供的一种基于单磁盘实现多分区的界面图;
图5是本发明一实施例提供的一种基于单磁盘实现多分区的界面图;
图6是本发明一实施例提供的一种基于单磁盘实现多分区多盘符的权限设置的效果图;
图7是本发明一实施例提供的一种基于单磁盘实现多分区多盘符的权限设置的效果图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施方式对本发明作进一步详细说明。
图1示出了本发明一实施例提供的基于单磁盘实现多分区多盘符的方法流程图,该方法包括以下步骤:
S101、根据磁盘所需分区的数量N,为所述分区分配N个盘符,并设置所述N个分区和盘符在所述磁盘的起始地址和容量,N为正整数。
在本步骤中,根据磁盘所需分区的数量,该磁盘是指单磁盘(包括TF卡、SD卡、NandFlash、NorFlash或EEPROM等),根据客户的实际需求确定磁盘的分区的数量,类似日常计算机常常把硬盘分成4个区,对应四个盘符,即C、D、E和F盘,所以数量N可以为2、3或4个,根据实际需求而定。假设分区为N个,需要为N个分区配置相对应的N个盘符,然后设N个分区和盘符在磁盘的起始地址和容量,设置好起始地址和容量,起始地址是磁盘的物理储存地址,采用进制码表示,起始地址具体为这些进制码,例如二进制码等,容量的既是硬盘的所采用的单位,例如MB、GB或TB等。
S102、根据所述N个分区和盘符在所述磁盘的起始地址和容量,计算所述N个分区和盘符在所述磁盘的终止地址,对所述磁盘进行区域划分。
根据每个分区的起始地址和容量就可以计算出该分区的终止地址,起始地址和终止地址均为进制码,进制码表示磁盘的物理地址,也就是说单个磁盘需要划分N个分区,规定了每个分区的起始地址和终止地址,起始地址和终止地址的差就是分区和盘符的容量。根据N个分区和盘符的起始地址和终止地址进行区域划分。
S103、根据所述磁盘的区域划分,将所述N个分区按照FATFS文件***规则对磁盘进行物理映射,将所述N个盘符按照USB大容量存储协议对磁盘进行物理映射,且所述分区的物理映射和盘符的物理映射一一对应,并对分区进行格式化处理;
在本步骤中,将上述的分区按照FATFS文件***规则对磁盘进行物理映射,通常在计算机上所看到的文件是在硬盘上是按照一定的格式存储,这种格式通常被称为文件***,计算机所识别的文件***有FAT16、FAT32、NTFT等等。所以只要是按照这种格式与计算机通信都会被计算机识别为文件,所谓的文件***就是在存储设备上(如计算机的硬盘)按照一定格式进行存储。其中,本实施例中FATFS文件***支持FAT16和FAT32,按照FATFS文件***规则对磁盘进行物理映射,按需求将磁盘映射出N个分区;相对应的,将上述的盘符按照USB大容量存储协议对磁盘进行物理映射,将磁盘映射出N个盘符,磁盘映射的N个分区和N个盘符是一一对应的,对该分区进行格式化处理。一一对应是以磁盘地址内存共享的同步化设计方式实现的,磁盘地址内存是指物理内存地址,假如分区一和盘符一的物理存储地址是相同,即是分区一和盘符一的起始地址和终止地址均所对应的进制码均相同,以物理地址共享的方式实现数据的同步。这样就保证了文件在存储设备上是按照一定的规则(FAT16、FAT32)进行存储,便于文件的管理,而读写单元接口则需要对存储的时序进行读写即可,这样所有数据都是按照FAT16或者FAT32的规则在存储设备中存储,这样无论是分区或者盘符对存储设备中的数据都是“可见的”。
S104、将完成物理映射的磁盘的读写驱动封装成USB读写单元接口和FATFS读写单元接口,调用所述USB读写单元接口和FATFS读写单元接口,对具有多分区多盘符的磁盘进行读写。
在本步骤中,将完成上述步骤103的物理映射的磁盘的读写驱动封装成USB读写单元和FATFS文件***读写单元接口,由于FATFS文件***和USB大容量存储协议都是开源的,都是基于文件管理的,但这些只是抽象层的管理,封装好的运用函数,也就是API(Application Programming Interface,应用程序编程接口),然而这种API是通用的,没有物理存储的约束,也无法做到某一款存储器,因此需要在FATFS文件***和USB大容量存储协议的基础上进行修改,做到针对某一款的存储设备,而每个存储设备(磁盘)都会有独立的读写时序和读写方式,通常把这种读写时序和读写方式实现过程进行封装(代码封装)叫做驱动封装,也就是读写单元,这部分的读写单元主要是负责把一定格式(FATFS文件***和USB大容量存储协议都支持的FAT16、FAT32)的数据写进存储设备(磁盘)或者从存储设备(磁盘)中读取出来。这种格式是由USB和FATFS的API接口对数据进行FAT16、FAT32进行格式封装。又因为USB大容量存储协议和FATFS文件***具有文件管理的功能,所以把磁盘的读写驱动进行封装成USB读写单元和FAT文件***读写单元接口,由USB和FATFS的API调用,这样就保证了文件在存储设备上是按照一定的规则(FAT16、FAT32)进行存储,便于文件的管理,而读写单元接口则需要对存储的时序进行读写即可,这样所有数据都是按照FAT16或者FAT32的规则在磁盘中存储。
另外,该基于单磁盘实现多分区多盘符的方法步骤S3之后还包括:设置所述分区和盘符的权限属性。
在本步骤中,设置上述N个分区和盘符的权限属性,权限属性指在***运行的过程中满足预定的条件具有的对应的属性,该权限属性包括共享权限和私有权限。假如分区和盘符的数量为两个,分别为UPDATE盘和STATIC盘,UPDATE盘对应的分区和盘符对任意用户都有具有读写权限,即共享权限;STATIC盘对普通用户来说只有只读的权限,而对于超级用户来说无论在什么情况下都有拥有最高权限—读写权限。
另外,权限属性还包括:通过注册码对某个分区和盘符设置时间限制,如果设备的使用时间超出注册码注册的时间,普通用户就会失去读的权限,这时候是读写权限都没有,因此在***界面上是无法显示该盘符,此时间限制功能只对某些分区和盘符进行设置,例如对STATIC盘进行时间限制,用户使用时间超出注册码注册的时间,就会失去读的权限,这时需要重新购买注册码,该方法采用时长和文件归属属性实现设置用户权限(设置用户权限:自动配置用户权限和手动配置用户权限),结合多分区多盘符技术实现多用户多文件管理,提高***对用户的开放性、便捷性和用户体验度。
图2示出了本发明一实施例提供的基于单磁盘实现多分区多盘符的***结构,该***2包括:分配设置单元21、计算划分单元22、FATFS映射单元23、USB映射单元24、格式化单元25、封装单元26和调用读写单元27。
分配设置单元21,用于根据磁盘所需分区的数量N,为所述分区分配N个盘符,并设置所述N个分区和盘符在所述磁盘的起始地址和容量,N为正整数;
计算划分单元22,用于根据所述N个分区和盘符在所述磁盘的起始地址和容量,计算所述N个分区和盘符在所述磁盘的终止地址,对所述磁盘进行区域划分;
FATFS映射单元23,用于根据所述磁盘的区域划分,将所述分区按照FATFS文件***规则对磁盘进行物理映射;
USB映射单元24,用于根据所述磁盘的区域划分,将所述盘符按照USB大容量存储协议对磁盘进行物理映射,且所述分区的物理映射和盘符的物理映射一一对应;
格式化单元25,用于对分区进行格式化处理;
封装单元26,用于将完成物理映射的磁盘的读写驱动封装成USB读写单元接口和FATFS读写单元接口;
调用读写单元27,用于调用所述USB读写单元接口和FATFS读写单元接口,对具有多分区多盘符的磁盘进行读写。
图2对应的实施例中的***与前述实施例中基于单磁盘实现多分区多盘符的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的***的结构及实施过程,为了说明书的简洁,在此就不再赘述。
图3示出了本发明一实施例提供的基于单磁盘实现多分区多盘符的设备结构,该设备3用于外设或内嵌存储介质,所述存储介质包括TF卡、SD卡、NandFlash、NorFlash或EEPROM,该设备3包括存储器31和微处理器32,以及一个或多个模块,存储器31用于存储所述一个或多个模块,微处理器32用于执行一个或多个模块,该一个或多个模块包括用于执行以下步骤的指令:
步骤1、根据磁盘所需分区的数量N,为所述分区分配N个盘符,并设置所述N个分区和盘符在所述磁盘的起始地址和容量,N为正整数;
步骤2、根据所述N个分区和盘符在所述磁盘的起始地址和容量,计算所述N个分区和盘符在所述磁盘的终止地址,对所述磁盘进行区域划分;
步骤3、根据所述磁盘的区域划分,将所述N个分区按照FATFS文件***规则对磁盘进行物理映射,将所述N个盘符按照USB大容量存储协议对磁盘进行物理映射,且所述分区的物理映射和盘符的物理映射一一对应,并对分区进行格式化处理;
步骤4、将完成物理映射的磁盘的读写驱动封装成USB读写单元接口和FATFS读写单元接口,调用所述USB读写单元接口和FATFS读写单元接口,对具有多分区多盘符的磁盘进行读写。
该设备还可以采用U盘拖曳式升级技术,保证数据传输的稳定性、可靠性和快捷性,改变了传统的在线升级,大大提高用户的体验度。
另外,设备3还包括一检测模块,检测模块包括用于检测设备3是否处于正常工作状态,若是,则对磁盘进行分区的指令。因为在***上电后,多磁盘进行必要初始化,对磁盘进行识别(如计算机的硬盘,能读到对应的型号ID和生产日期等等的重要参数)并让磁盘处于工作状态下,检测模块用确保磁盘处于正常的工作模式下,才能进入分区操作,否则无法进行分区操作,另外,分区自动格式化具体为在设备上电时会检测每个分区是否存在FAT文件***,如果不存在,则按照FATFS文件***规则对分区进行格式化,使分区具有FAT文件***。
图3对应的实施例中的***与前述实施例中基于单磁盘实现多分区多盘符的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的***的结构及实施过程,为了说明书的简洁,在此就不再赘述。
图4和图5分别示出了本发明一实施例提供的一种基于单磁盘实现多分区的界面图;图6和图7分别示出了本发明一实施例提供的一种基于单磁盘实现多分区的权限设置的效果图。
目前,对于现有的基于微处理器嵌入式技术一般都是单个物理磁盘单一分区管理,单一盘符映射,在只有单个物理磁盘的嵌入式***中无法实现对于多用户多属性的管理,无法满足多用户的使用。引起上述的缺点主要是由于没法实现单磁盘多分区多盘符映射。虽然,现有的基于高级ARM处理器搭建Linux或者wince***,利用这种高级嵌入式***下集成多分区接口技术可以实现单磁盘多分区多盘符的映射,但是这种技术在硬件成本上给产品带来很大负担,不能满足市场的需求。
本实施例中是使用微处理器基于单磁盘实现多分区多盘符的设备,该设备是基于微处理器而设计的,可以实现将单个磁盘的多分区多盘符映射管理,如图4所示的基于单磁盘实现多分区多盘符的效果图,在微处理器的设备上,将单磁盘实现了2个分区2个盘符的映射管理,对应普通的磁盘***计算机,只会显示单一分区和单一盘符,也只能进行简单的读写操作而已。相比于现有技术,使用微处理器基于单磁盘实现多分区多盘符的效果如图4中的STATIC盘41和UPDATE盘42,分别对应着盘符I和J,STATIC盘41和UPDATE盘42的剩余容量分别为7.0G和39.7MB,两个盘符的容量均是根据实际需求而设置的,即是设置STATIC盘41对应的分区和盘符的起始地址,知道STATIC盘的容量,可以计算STATIC盘的终止地址。UPDATE盘42也是一样,剩余容量则由电脑按照USB容量存储协议获取到盘符的实际剩余容量。如果继续打开查看,如图5所示,可以看出STATIC盘41和UPDATE盘42的实际容量大小和可用容量大小(剩余容量大小),此STATIC盘41和UPDATE盘42的实际容量大小是根据实际情况而进行设定的,采用图1实施例中基于单磁盘实现多分区多盘符的方法,将STATIC盘对应的分区按照FATFS文件***规则对磁盘进行物理映射,将STATIC盘对应的盘符按照USB大容量存储协议对磁盘进行物理映射。在根据实际需求,对STATIC盘41、UPDATE盘42所对应的分区和盘符进行权限设置,例如本发明的产品设备要求UPDATE盘42对应的分区和盘符对任意用户都有具有读写权限,因为这个盘符是***升级时需要存放***固件文件。可以对UPDATE盘42对应的分区和盘符设置共享权限;STATIC盘41是存放***运行参数、***运行日志和设备采集的数据,为了保证这些数据不会被用户无意删除(对用户来说必须与计算机的USB连接后在计算机中映射出盘符用户才可以看到STATIC盘41里面的文件),因此对普通用户来说只有只读的权限,即私有权限。如图6或图7所示,如果想往STATIC盘里拷贝资料或者删除资料,图6对应的是拷贝复制,打开STATIC盘,显示文件夹61,当需要复制文件夹61里的内容时,就会弹出磁盘被写保护框62并提示磁盘被写保护;图7对应的是删除文件,打开文件71想要删除文件夹71里的内容时,就会弹出磁盘被写保护框72并提示磁盘被写保护;这都是因为STATIC盘没有写的权限,则按照USB大容量存储的协议向计算机返回非法操作的提示,由计算机端呈现给用户。因此可以有效地保护文件信息不会被修改,提高了产品的安全性。
综上,从不同的实施例和效果图中可以看出,采用基于单磁盘实现多分区多盘符的方法可以实现使用微处理器基于单磁盘多分区多盘符管理,从而实现了多用户多属性存储设备的文件管理,并对不同等级用户开放不同等级的权限,提高对多用户的文件管理和***的开放性,大大提高用户的体验度,另外相对高级ARM处理器搭建Linux或者wince***下的多分区接口技术才能实现单磁盘多分区多盘符的映射,大大减低产品的硬件成本,并缩小产品体积空间,提高了产品在同行的竞争力。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。