存储介质的数据读取方法和设备的制造方法

文档序号:8543445阅读:453来源:国知局
存储介质的数据读取方法和设备的制造方法
【专利说明】存储介质的数据读取方法和设备
[0001]本发明申请是申请日为2012年7月10日、申请号为201210237930.X、发明名称为"存储介质的数据读取方法和设备"的发明申请的分案申请。
技术领域
[0002]本发明涉及数据存储领域,尤其涉及一种存储介质的数据读取方法和设备。
【背景技术】
[0003]作为一个开源代码并且免费的操作系统,Linux系统已经广泛应用在各种嵌入式领域。通用串行总线(Univeral Serial Bus,USB)由于其高速的传输速度以及在行业内的通用性,已经成为嵌入式设备与其他设备通信的极为重要的方法。
[0004]比如,使用Linux操作系统的手持设备(例如手机)通过USB与上位机(比如PC机)连接后,可以高速的传递数据,又可以用来充电等,使手持设备可以发挥存储设备,无线网卡以及调试等多种功能。
[0005]目前,手持设备通过USB与PC机连接后,向PC机传递数据的流程大致如下:
[0006]步骤一:PC机向手持设备发送数据读取指令;
[0007]步骤二:手持设备接收到数据读取指令后,对该数据读取指令进行解析,得到用来存储数据的存储介质(例如TF卡)的地址信息等;
[0008]步骤三:手持设备调用fat文件系统,由于fat文件系统管理有手持设备内各存储介质的信息,因此fat文件系统可以根据解析得到的地址信息找到对应的存储介质,并通过执行读操作读取存储介质中的数据,将读取到的数据送到USB ;USB将数据传递给PC机;
[0009]步骤四:PC机接收到USB传递过来的数据后,执行对该数据的显示操作等。
[0010]将使用Linux操作系统的手持设备中能够通过USB向PC机传递数据的存储介质,称为Linux下的USB挂载介质。对Linux下的USB挂载介质的要求是,能透过fat文件系统对该介质进行访问,这就对存储介质本身增加了限制,对于通常用于嵌入式设备的其他存储介质来说,比如nand flash,由于其存储结构等的限制,无法加载fat文件系统,因而无法将该存储介质作为USB挂载介质与PC机进行通信。

【发明内容】

[0011]本发明实施例提供一种存储介质的数据读取方法和设备,用于解决手持设备中的存储介质由于无法加载fat文件系统而无法作为USB挂载介质与上位机进行通信的问题。
[0012]本发明实施例提供了一种存储介质的数据读取方法,包括:
[0013]手持设备通过通用串行总线USB与上位机相连,在接收到所述上位机的查询命令后,将存储有预制内容的块的信息、以及存储介质页的信息发送给所述上位机;
[0014]所述手持设备接收到所述上位机的读取命令,根据所述块的信息读取存储的预制内容,并将所述预制内容通过USB发送给上位机;
[0015]所述手持设备确定传输给所述上位机的数据量达到根据所述页的信息生成的需要读取的数据量,向所述上位机发送读操作完成命令。
[0016]由于本发明实施例的手持设备在通过USB与上位机连接后,在接收到上位机的查询命令后,将该块的信息、页的信息上报给上位机,在接收到上位机的读取命令后,能够根据块的信息,读取该块中存储的预制内容,并将读取的预制内容通过USB传输给上位机。因此,本发明实施例中实现了上位机对手持设备中的存储介质的读取操作,并且该过程中不需要加载fat文件系统,从而解决了手持设备中的存储介质由于无法加载fat文件系统而无法作为USB挂载介质与上位机进行通信的问题。
[0017]可选的,将所述预制内容通过USB通过USB发送给上位机之后,还包括:
[0018]所述手持设备确定传输给所述上位机的数据量未达到根据所述页的信息生成的需要读取的数据量,继续执行根据所述块的信息读取存储的预制内容的步骤。
[0019]可选的,所述手持设备通过通用串行总线USB与上位机相连之后,在接收到所述上位机的查询命令之前,还包括:
[0020]所述手持设备的内核层向用户层上报USB插入事件,用户层接收到该USB插入事件后,从维护的mtd分区列表中读取存储有预制内容的mtd分区的地址,并将读取到的mtd分区的地址发送给内核层;
[0021]所述手持设备的内核层接收用户层发送的所述mtd分区的地址,执行对该地址对应的mtd分区的读操作,得到所述mtd分区中存储有所述预制内容的块的信息。
[0022]可选的,所述手持设备根据所述块的信息读取存储的预制内容,具体包括:
[0023]所述手持设备根据所述块的信息生成逻辑块地址LBA,并将所述LBA转换成存储介质上的地址偏移量,确定所述地址偏移量所指向的所述mtd分区中的块,读取确定的块中存储的预制内容。
[0024]可选的,所述手持设备通过USB与上位机连接之前,还包括:
[0025]所述手持设备获取该手持设备中存储介质中存储有预制内容的mtd分区的地址,通过mtd设备的坏块管理函数对该地址对应的分区进行扫描,确定mtd分区中的坏块,并将坏块的信息记录在静态数组中;
[0026]所述手持设备在确定地址偏移量所指向的所述mtd分区中的块之后,读取确定的块中存储的预制内容之前,还包括:
[0027]所述手持设备根据记录的坏块的信息,确定所述地址偏移量所指向的块不为坏块。
[0028]可选的,若所述手持设备确定所述地址偏移量所指向的块为坏块,则所述手持设备在确定所述地址偏移量所指向的块为坏块之后,还包括:
[0029]所述手持设备将当前的地址偏移量更新为当前块的下一个好块的地址偏移量后,读取更新后的地址偏移量所指向的块中一个页大小的预制内容,并将读取的预制内容通过USB传输给上位机。
[0030]本发明实施例提供了一种手持设备,包括:
[0031]信息上报单元,用于通过通用串行总线USB与上位机相连,在接收到所述上位机的查询命令后,将存储有预制内容的块的信息、以及存储介质页的信息发送给所述上位机;
[0032]数据读取上报单元,用于接收到所述上位机的读取命令,根据所述块的信息读取存储的预制内容,并将所述预制内容通过USB发送给上位机;以及在确定传输给所述上位机的数据量达到根据所述页的信息生成的需要读取的数据量后,向所述上位机发送读操作完成命令。
[0033]可选的,所述数据读取上报单元,还用于:
[0034]将所述预制内容通过USB通过USB发送给上位机之后,确定传输给所述上位机的数据量未达到根据所述页的信息生成的需要读取的数据量,继续执行根据所述块的信息读取存储的预制内容的步骤。
[0035]可选的,还包括:
[0036]内核层单元,用于通过通用串行总线USB与上位机相连之后,在接收到所述上位机的查询命令之前,在该手持设备通过通用串行总线USB与上位机连接后,向用户层单元上报USB插入事件;接收用户层单元发来的mtd分区的地址,执行对该地址对应的mtd分区的读操作,得到所述mtd分区中存储有所述预制内容的块的信息;
[0037]用户层单元,用于接收到所述USB插入事件后,从维护的mtd分区列表中读取存储有预制内容的mtd分区的地址,并将读取到的mtd分区的地址发送给内核层单元。
[0038]可选的,所述数据读取上报单元还用于:
[0039]所述手持设备根据所述块的信息生成逻辑块地址LBA,并将所述LBA转换成存储介质上的地址偏移量,确
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1