实现嵌入式存储器多主接口的方法及装置的制作方法

文档序号:6576820阅读:286来源:国知局
专利名称:实现嵌入式存储器多主接口的方法及装置的制作方法
技术领域
本发明涉及实现存储器多主接口的方法及装置,具体是一种实现在嵌入式 系统环境下提供多个主机同时操作同一个存储器的方法及装置。
背景技术
现有的嵌入式多媒体播放设备对于NAND Flash (非易失闪存)或者 SD/MMC/CF卡等存储设备的操作都仅仅提供了单主机的支持,而不支持多个 主机同时操作同一个存储设备。比如当前国内外各大移动多媒体设备厂商生产 的设备在同个人电脑进行连接时, 一般通过USB传输线连接,且遵循USB Mass Storage协议,而在使用个人电脑操作多媒体播放器上的存储器时,多媒体播 放器是无法同时操作此存储器从而迫使多媒体播放器进入待机模式。在该模式 下,用户除了能够断开同个人电脑的联接外无法操作多媒体播放器,直到中断 个人电脑和设备的联接,用户才重新获得对于多媒体播放器的控制权。
所述USB,即Universal Serial Bus (通用串行总线)的縮写,是指一种电 子设备间串行通信的标准。
所述USB Mass Storage协议,是指通过USB接口使PC同外设之间进行 大数据传输的标准,即USB Implementers Forum组织的《Universal Serial Bus Mass Storage Class Specification Overview》文件标准。 发明的内容
本发明的申请人为了解决了在多媒体播放器和个人电脑通讯的同时,用户 无法操作多媒体播放器的问题,进行了改进研究,提出了一种实现嵌入式存储 器多主接口的方法及装置,通过多主存储器接口来支持个人电脑和多媒体播放 器同时操作同一个存储器,使得在手持设备同个人电脑通过USB接口遵循 Mass Storage协议连接时,播放器无需进入待机模式,用户仍可以操作播放器 内的存储器,进行图片、音乐、视频播放等需要读取存储器的操作。
本发明的技术方案如下
一种实现嵌入式存储器多主接口的方法,通过记录各个主机对存储器的操 作,检测存储器中被更新的文件所涉及的簇,生成各个主机各自的同步簇表, 在各个主机操作存储器时,根据同步簇表判断是否需要重新读取文件的簇结构信息,如果文件已被修改,则需要利用新的簇结构读取文件,使各个主机同步 操作存储器文件系统。
作为进一步的技术方案
一个主机修改了文件系统中的部分数据后,其他主机访问此被修改的数据 时都会被拒绝且被告知此数据已被修改。
有多主机重复访问文件结构资源时,对文件系统内文件结构资源提供锁操 作保护,并告知重复访问的主机该文件结构资源不可用。
对主机间不同步的文件进行读取操作,具体步骤如下
1) 作为主机的多媒体播放器的应用程序调用存储器的文件系统驱动,读 取一个文件的内容;
2) 文件系统驱动接受了这个文件读取请求之后从文件系统保护层中的文 件系统表缓存中得到文件的簇的链表信息,通过向存储器读取相应的簇完成读 取文件的操作;
3) 存储器的文件系统保护层接收到读取簇的请求后,同保存在文件系统
保护层中的此主机的文件系统表缓存比较,判断此文件的簇链接关系已经被其 他主机修改,此主机需要重新读取文件的簇信息,文件系统保护层向文件系统
表更新接口发出更新信息;
4) 文件系统表更新接口接到文件系统保护层的通知之后告知文件系统表 缓存需要更新;
5) 文件系统表缓存从存储器上读取新的文件的簇链表信息;
6) 得到文件的新的簇信息后,文件系统表更新接口通知存储器的文件系 统保护层已经更新了文件信息,可以允许读取文件;
7) 文件系统驱动根据新的文件簇信息向存储器读取文件;
8) 文件系统驱动将得到的文件提交给应用程序。
一种实现嵌入式存储器多主接口的装置,包括主机文件系统驱动和存储器 文件系统驱动;所述主机文件系统驱动,设置于主机系统内,用于通过调用存 储器驱动接口完成读写存储器上的文件;存储器文件系统驱动,设置于存储器 所在的系统内,负责向上层主机提供操作存储器的驱动接口,同时负责基于文 件系统的多主机操作保护;
所述存储器文件系统驱动包括一个文件系统保护层,用于记录各个主机操 作存储器的先后顺序,为每个主机建立文件系统表缓存,存放当前存储器上的文件系统的文件对于各个主机上的文件系统表缓存的同步情况;
所述主机文件系统驱动包括一个文件系统表更新接口 ,用于接收所述文件
系统保护层的同步信息,更新主机文件系统驱动上的文件系统表缓存,并通知
存储器文件系统驱动的文件系统保护层更新完成。 上述技术方案中
所述文件系统是指存储器上存储文件的方法和数据结构,即在存储器上组 织文件的方法。
本发明的有益技术效果是
本发明通过存储器文件系统驱动的文件系统保护层以及主机文件系统驱 动的文件系统表更新接口的协同管理,实现了在多个主机对同一个存储设备操 作时文件结构的同步。使多媒体播放器同个人电脑通过USB传输线连接且遵 循USB Mass Storage协议时,多媒体播放器同个人电脑主机能够同时操作多媒 体播放器上的存储器,而多媒体播放器无需进入USB模式(即数据传输模式)。 即个人电脑读取、修改、删除存储器上的文件时,多媒体播放器也同时处于工 作状态,能够读取存储器上的文件,进行音乐视频播放、图片显示等操作,但 多媒体播放器不能修改删除存储器上的文件。


图1是实现嵌入式存储器多主接口的装置示意框图。 图2是图1的详细示意框图。
图3是实现嵌入式存储器多主接口的方法的流程示意图。
具体实施例方式
下面结合附图对本发明的具体实施方式
做进一步说明。
在使用存储器时, 一般将存储器的存储区划分为一个或者多个分区,每个 分区都将其格式化成某个文件系统,通过文件系统管理和使用存储器分区。
在多个主机,本实施例中指嵌入式多媒体播放器和个人电脑,同时操作同 一个存储器时,主机会遵从存储器的文件系统的格式使用存储器空间,而各个 主机之间是同步操作存储器,保证同时操作且不破坏文件系统。
图1是实现嵌入式存储器多主接口的装置示意框图。
如图1所示,实现嵌入式存储器多主接口的装置,包括主机文件系统驱动 和存储器文件系统驱动;主机文件系统驱动,设置于个人电脑或者媒体播放器 等主机系统内,用于通过调用存储器驱动接口完成读写存储器上的文件。存储
6器文件系统驱动,设置于存储器所在的系统内,负责向上层主机提供操作存储 器的驱动接口,同时负责基于文件系统的多主机操作保护。
本发明是在多媒体播放器的存储器文件系统驱动的存储器底层驱动层103 上层添加一层文件系统保护层101,同时在多媒体播放器的主机文件系统驱动 层添加文件系统表更新接口 102,由这两部分共同完成支持多主机的接口管理。
图1中的存储器底层驱动层103负责向上层提供基于扇区的存储器读写接 口。存储器接口 104负责管理各种硬件接口标准,提供给存储器底层驱动层103 统一的操作接口。
存储器文件系统驱动的文件系统保护层101的实现方法是通过监视存储器 上的文件系统表。文件系统表记录了存储器上的文件簇的链式结构。
文件系统表对于文件的组织关系是这样的,文件系统表中的一个表项代表 了一个簇,表项的数值表明了此簇的属性以FAT16文件系统格式为例,0000 代表未分配的簇,0002-FFEF代表己分配的簇,FFF0-FFF6代表系统保留簇, FFF7代表坏簇,FFF8-FFFF代表文件结束簇。文件系统表项内的值为 0002-FFEF之间的值表明为被占用的簇,且此值表明文件的下一个簇的位置, 最后以FFFF代表文件簇的结尾。因此一个文件的组成是由这个簇链组成的, 而文件系统表即保存了所有的文件的簇链接的关系,是文件系统的核心。
所述FAT16是指由美国的微软公司开发的一种磁盘文件系统。
所述簇是指存储器上的相邻的多个扇区(2、 4、 8、 16、 32或64个扇区) 组成的操作系统管理存储器的最小单元。
所述扇区是指存储器的最小的物理存储单元。
图2是图1的详细示意框图。
如图2所示,其中主机文件系统驱动的文件系统API201向操作系统提供 基于文件的API接口,如文件的读,写等基于文件的一系列操作。而FAT32 簇读/写202则负责基于磁盘簇的读写,它首先读取上层欲读取的文件的簇表 信息,根据簇表的链式结构通过底层IO接口向磁盘发出读写扇区请求。FAT 基本功能203则负责管理FAT规范中所涉及到的各种结构,组织文件簇链接关 系。FAT表缓存204则预先读取和保存常用的文件结构(如目录结构)以及最 近所读取的文件表信息。底层IO接口 205则提供基于扇区的磁盘读写接口。 存储器底层驱动层208则负责向上层提供基于扇区的存储器读写接口。存储器 接口 209负责管理各种硬件接口标准,提供给存储器底层驱动层208统一的操作接口 。上述各块均按现有技术编写,其调用过程也与现有技术中的过程相同。 本发明的不同之处在于如下结构。
存储器文件系统驱动包括一个文件系统保护层207,设置在存储器底层驱 动层208的上层,用于记录各个主机操作存储器的先后顺序,为每个主机建立 文件系统表缓存210,存放当前存储器上的文件系统的文件对于各个主机上的 文件系统表缓存210的同步情况。
多媒体播放器的主机文件系统驱动包括一个文件系统表更新接口 206,其 与底层IO接口 205并列于一层,用于接收来自文件系统保护层发送的保护信 息,如果多媒体播放器所读取的文件已被其他主机(如个人电脑)修改,则文 件系统保护层告知文件系统表更新接口读取失败,需要重新读取文件簇结构, 此时多媒体播放器放弃对文件内容的读取,转而读取文件系统表信息,读取完 成之后由文件系统表更新层告知文件系统保护层已经完成文件系统表的更新, 文件系统保护层此时允许播放器操作先前欲读取的文件。
通过上述装置的协同作用,得到的实现嵌入式存储器多主接口的方法如

通过记录各个主机对存储器的操作,检测存储器中被更新的文件所涉及的 簇,生成各个主机各自的同步簇表,在各个主机操作存储器时,根据同步簇表 判断是否需要重新读取文件的簇结构信息,如果文件已被修改,则需要利用新 的簇结构读取文件,使各个主机同步操作存储器文件系统。
一个主机修改了文件系统中的部分数据后,其他主机访问此被修改的数据 时都会被拒绝且被告知此数据己被修改。
有多主机重复访问文件结构资源时,对文件系统内文件结构资源提供锁操 作保护,并告知重复访问的主机该文件结构资源不可用。
图3是实现嵌入式存储器多主接口的方法的流程示意图。
下面结合图3具体阐述是如何通过存储器的文件系统保护层以及多媒体播 放器的文件系统表更新接口来实现多主存储器接口的。
从图中可以看到,我们将一次有文件冲突,即主机间文件不同步的读取操 作分为以下8个步骤
1 )多媒体播放器的应用程序301调用存储器的文件系统驱动302,读取一 个文件的内容;
2)文件系统驱动302接受了这个文件读取请求之后从文件系统保护层303
8中的文件系统表缓存304中得到文件的簇的链表信息,通过向存储器读取相应 的簇完成读取文件的操作;
3) 存储器的文件系统保护层303接收到读取簇的请求后,同保存在文件 系统保护层303中的此主机的文件系统表缓存304比较,判断此文件的簇链接 关系已经被其他主机修改,此主机需要重新读取文件的簇信息,文件系统保护 层303向文件系统表更新接口 305发出更新信息;
4) 文件系统表更新接口 305接到文件系统保护层303的通知之后告知文 件系统表缓存304需要更新;
5) 文件系统表缓存304从存储器上读取新的文件的簇链接信息;
6) 得到文件的新的簇信息后,文件系统表更新接口 305通知存储器的文 件系统保护层303已经更新了文件信息,可以允许读取文件;
7) 文件系统驱动302根据新的文件簇信息向存储器读取文件;
8) 文件系统驱动302将得到的文件提交给应用程序301。 通过以上8个步骤完成了一次非同步文件的读取操作。 需要注意的是,尽管此处所述的处理步骤是以顺序的方式描述的,但是这
些处理也可以配置成以变幻的次序进行工作。换句话说,描述的任何步骤的顺 序或次序都并非必然指示这些步骤应当以该种次序执行。此处所述的处理步骤 可以以任何可行的次序来执行。进一步,有些步骤可以同时执行。
在设计中涉及到的个人电脑主机采用USB接口的Mass Storage协议同多 媒体播放器进行数据通讯。此种通信方式由于所遵循的协议的限制,无法向主 机传达文件系统的同步信息,因此在此类设计中,存储器所在的本地的多媒体 播放器对于存储器的操作仅限于读操作,文件系统保护层所作的同步是对本地 多媒体播放器的读取同步。而个人电脑作为主机可以读写存储器,而不受其他 主机的限制。同时整个系统中仅能有一个这样无视同步保护信息的主机。
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以 理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想 到的其他改进和变化,均应认为包含在本发明的保护范围之内。
权利要求
1.一种实现嵌入式存储器多主接口的方法,其特征在于通过记录各个主机对存储器的操作,检测存储器中被更新的文件所涉及的簇,生成各个主机各自的同步簇表,在各个主机操作存储器时,根据同步簇表判断是否需要重新读取文件的簇结构信息,如果文件已被修改,则需要利用新的簇结构读取文件,使各个主机同步操作存储器文件系统。
2. 根据权利要求1所述的实现嵌入式存储器多主接口的方法,其特征在 于一个主机修改了文件系统中的部分数据后,其他主机访问此被修改的数据时 都会被拒绝且被告知此数据已被修改。
3. 根据权利要求1所述的实现嵌入式存储器多主接口的方法,其特征在 于有多主机重复访问文件结构资源时,对文件系统内文件结构资源提供锁操作 保护,并告知重复访问的主机该文件结构资源不可用。
4. 根据权利要求1所述的实现嵌入式存储器多主接口的方法,其特征在于对主机间不同步的文件进行读取操作,具体步骤如下1) 作为主机的多媒体播放器的应用程序调用存储器的文件系统驱动,读取一个文件的内容;2) 文件系统驱动接受了这个文件读取请求之后从文件系统保护层中的文 件系统表缓存中得到文件的簇的链表信息,通过向存储器读取相应的簇完成读 取文件的操作;3) 存储器的文件系统保护层接收到读取簇的请求后,同保存在文件系统 保护层中的此主机的文件系统表缓存比较,判断此文件的簇链接关系已经被其 他主机修改,此主机需要重新读取文件的簇信息,文件系统保护层向文件系统 表更新接口发出更新信息;4) 文件系统表更新接口接到文件系统保护层的通知之后告知文件系统表 缓存需要更新;5) 文件系统表缓存从存储器上读取新的文件的簇链表信息;6) 得到文件的新的簇信息后,文件系统表更新接口通知存储器的文件系 统保护层己经更新了文件信息,可以允许读取文件;7) 文件系统驱动根据新的文件簇信息向存储器读取文件;8) 文件系统驱动将得到的文件提交给应用程序。
5. —种实现嵌入式存储器多主接口的装置,包括主机文件系统驱动和存 储器文件系统驱动;所述主机文件系统驱动,设置于主机系统内,用于通过调 用存储器驱动接口完成读写存储器上的文件;存储器文件系统驱动,设置于存 储器所在的系统内,负责向上层主机提供操作存储器的驱动接口,同时负责基 于文件系统的多主机操作保护;其特征在于-所述存储器文件系统驱动包括一个文件系统保护层,用于记录各个主机操 作存储器的先后顺序,为每个主机建立文件系统表缓存,存放当前存储器上的 文件系统的文件对于各个主机上的文件系统表缓存的同步情况;所述主机文件系统驱动包括一个文件系统表更新接口 ,用于接收所述文件 系统保护层的同步信息,更新主机文件系统驱动上的文件系统表缓存,并通知 存储器文件系统驱动的文件系统保护层更新完成。
全文摘要
一种实现嵌入式存储器多主接口的方法及装置,通过存储器文件系统驱动的文件系统保护层以及主机文件系统驱动的文件系统表更新接口的协同管理,实现了在多个主机对同一个存储设备操作时的文件系统结构的同步。本发明使多媒体播放器同个人电脑通过USB传输线连接,且遵循USB Mass Storage协议时,多媒体播放器同个人电脑主机能够同时操作多媒体播放器上的存储器,而多媒体播放器无需进入USB模式,用户仍可以操作播放器内的存储器,进行图片、音乐、视频播放等需要读取存储器的操作。
文档编号G06F17/30GK101493844SQ20091011630
公开日2009年7月29日 申请日期2009年3月6日 优先权日2009年3月6日
发明者佴立峰, 张善文, 张振辉, 辉 戴 申请人:无锡紫芯集成电路系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1