一种快速读写存储卡的方法

文档序号:6555247阅读:329来源:国知局
专利名称:一种快速读写存储卡的方法
技术领域


发明内容
涉及用于移动设备上的存储卡,尤其是对存储卡进行快速读写操作的方法。
背景技术
如今,很多设备上都使用存储卡,例如安全数字存储卡(SD,SecurityDigital Card)卡、多媒体卡(MMC,Multi Media Card)等来存储数据,从而配合这些设备完成一定的功能。例如,被广泛应用的个人数字助理(PDA)上一般配有全球定位系统(GPS)导航软件,而该软件需要使用绘制好的地图文件且该等地图文件所需要的存储空间往往比较大,因此,就需要将相关地图文件存储在设于PDA中的存储卡上,以便GPS导航软件可以调用相应的地图文件。当需要使用不同的地图文件时,又必须更换地图文件,即需要重新向存储卡内复制所需要的地图文件。
同样,其它设备,例如另一种经常被使用的掌上电脑(Pocket PC)也存在着上述类似的问题。
不仅如此,为了方便,很多使用者会将上述类似的设备,尤其是移动设备作为普通的存储器使用,这样使用者就不需要为了存储数据而单独携带其他移动存储设备,例如移动硬盘、USB(通用串行总线,Universal SerialBus)盘等。
目前,对上述存储卡进行读写的方式有如下两种第一,通过读卡器进行读写,即配备一台可以对相应的存储卡进行读写的读卡器,将存储卡放置于读卡器上,并将读卡器与其他设备,例如个人计算机相连接,从而完成对存储卡的读写操作;第二,借助数据线在存储卡所在设备,例如个人数字助理与其他设备,例如个人计算机相连接,并在两者间建立ActiveSync连接,从而完成对存储卡的读写操作,其中ActiveSync是微软提供的在基于视窗(Windows)操作系统的个人计算机和基于Windows CE操作系统的移动设备间的数据同步的软件,可以同步邮件、任务、日历等。它支持底层USB、串口,红外,蓝牙等数据连接方式。
上述两种方式都存在一定的缺点。如果使用第一种方法,一方面使用者必须额外购买一台读卡器,增加了最终用户的开销;另一方面,使用者必须随身携带该读卡器,这样给使用者带来了很大的麻烦,无疑与该等存储卡以及存储卡所在设备的便利性相背离。如果使用第二种方法,则与存储卡所在设备,例如个人数字助理相连接的其他设备,例如个人计算机上必须安装有ActiveSync应用软件,否则无法进行数据传输。而实际上并非所有的个人计算机或其他类似设备上都安装有ActiveSync软件,这也给该等存储卡以及存储卡所在设备的便利性带来了一定的局限性。
不仅如此,使用上述第二种方法还存在数据传输速度比较慢的问题,这主要是因为USB功能串行客户驱动程序(USB Function Serial C1ientDriver)和ActiveSync软件本身存在瓶颈,关于这方面的问题本领域的技术人员比较清楚,具体可以参考有关个人数字助理设备的技术论坛的讨论,例如http//www.splife.com/以及http//www.cnemb.com/等网站。
可见,上述问题都给SD卡、MMC卡或其他类似的存储卡以及应用这些存储卡的设备的使用带来了一定的困扰。
发明内容为了方便地对上述存储卡上的数据进行读写,也为了方便地提高对上述存储卡上的数据进行读写的速度,发明人通过对支持存储卡数据传输的驱动程序的研究,提出了一种快速读写存储卡的方法。
目前,支持USB进行传输的模式有两种,分别是上述的ActiveSync模式和大容量存储(Mass Storage)模式。其中,AcitveSync模式可以运行在USB串行客户驱动程序(USB Serial Client Driver)或USB RNDIS(远程网络驱动接口规范,Remote Network Driver Interface Specification)驱动程序之上,如图1所示的ActiveSync驱动程序层次示意图。同时参考图1,可以看到,上述两个驱动程序都是运行在USB最底层的USB功能控制(USB Function Controller)驱动程序之上。该驱动程序直接控制UDC(通用串口总线设备控制,Universal Serial Bus Device Controller)的所有端节点以及传输通道。通过它直接和与上述存储卡所在设备,例如个人数字助理连接的其他设备,例如个人计算机一端的ActiveSync进行数据的交互。同样参考图1,USB大容量存储模式则跟ActiveSync模式不同,它是运行在USB大容量存储客户驱动程序(USB Mass Storage ClientDriver)之上。而根据现有资料本领域的技术人员可以得知,通过USB大容量存储模式对上述存储卡中的数据进行传输的传输速率远大于ActiveSync传输模式。
基于上述特点,发明人提出了一种通过USB大容量存储模式进行传输,从而实现对存储卡的快速读写的解决方案。一种快速读写存储卡的方法,应用于存储卡所在设备上,该设备包括一控制模块,该程序与该设备所包括的其他模块,例如菜单模块相配合用于实现本发明所述的快速读写存储卡的方法,其特征在于,所述的快速读写存储卡的方法包括如下步骤步骤一,使用者在存储卡所在设备上选择快速读写模式;步骤二,存储卡所在设备上的控制模块判断存储卡所在设备上是否已经存在USB大容量存储驱动程序,若不存在,提示用户“USB大容量存储驱动程序不存在”,本次操作结束;若已经存在,则转步骤三;步骤三,上述控制模块判断USB大容量存储驱动程序是否已在存储卡所在设备的注册表中注册,若未注册,则提示用户“USB大容量存储驱动程序未注册”,本次操作结束;若已经注册,则转步骤四;步骤四,上述控制模块卸载USB串行客户驱动程序或USB RNDIS驱动程序;步骤五,上述控制模块加载USB大容量存储客户驱动程序,加载完成后,提示用户“快速读写模式切换完成,可以进行快速读写”。
上述存储卡所在设备是掌上电脑或个人数字助理或其他类似的设备。
上述控制模块除了实现本发明提供的快速读写存储卡的方法,还可以包括其他功能,例如对各项功能选项的配置等。
上述控制模块是对存储卡所在设备内原有的模块按照本发明所述内容进行修改后而得,例如对配置模块进行修改。上述控制模块也可以是单独增加的一个独立的模块。
在上述操作中,如果存储卡所在设备上不存在USB大容量存储驱动程序,或者虽然USB大容量存储驱动程序已经存在,但并未注册于存储卡所在设备的注册表中,也就是说没有列入存储卡所在设备的操作系统所维护的注册表中,则都没有办法应用本发明提供的快速读写存储卡的方法。此时,使用者可以在存储卡所在设备上安装USB大容量存储驱动程序,并将其注册到相应的注册表中,例如,存储卡所在设备上安装的操作系统的注册表,从而在下一次就可以直接使用本发明提供的快速读写存储卡的方法。
根据本发明提供的快速读写存储卡的方法,完成快速读写后,使用者可以同样在存储卡所在设备上选择切换成普通读写模式,选择后,上述设置于存储卡所在设备上的控制模块将执行切换成普通读写模式的步骤,即步骤一、卸载USB大容量存储客户驱动程序;步骤二,加载USB串行客户驱动程序或USB RNDIS驱动程序,加载完成后,提示用户“普通读写模式切换完成,可以进行普通读写”。
在上述步骤中,上述控制模块根据存储卡所在设备所使用的缺省驱动程序,加载USB串口客户驱动程序或USB RNDIS驱动程序。
通过上述方法,在采用USB大容量存储模式进行传输的时候,实际上是把存储卡所在设备作为一个读卡器处理,当插入USB线的时候,与上述存储卡所在设备相连接的其他设备,例如个人计算机,就可以直接把存储卡当成一个可移动磁盘进行管理并进行数据的传输。这样,与上述存储卡所在设备相连接的其他设备,例如个人计算机就不再需要安装ActiveSync软件以及相应的驱动程序,也不需要等待建立ActiveSync连接,只要插入USB线就可以轻松的读写存储卡。而采用USB大容量存储模式的唯一要求是上述的USB大容量存储客户驱动程序存在于存储卡所在设备中并能够被该存储卡所在设备所使用的操作系统的注册表所识别,就可以在所有可以支持USB大容量存储模式读写的设备上对上述存储卡进行读写。这样的工作只要进行一次,即安装USB大容量存储客户驱动程序就可以了,因此非常方便。这样,避免用户额外购买一台读卡器的开销,最大限度的利用了现有的硬件,上述存储卡所在设备,例如掌上电脑以及和该等设备相连接的其他设备,例如个人计算机均不需要添加额外的硬件支持,充分利用现有的软件技术,实现方便。而且,由于只需要对存储卡所在设备安装一次驱动程序就可以与任何可以与存储卡所在设备建立连接的设备进行数据传输,避免了对不同的与存储卡所在设备建立连接的设备安装ActiveSync软件的麻烦,为更加方便地使用上述存储卡所在设备,例如掌上电脑提供了条件。
而且上述的采用USB大容量存储模式的传输速度也比传统的使用ActiveSync模式的传输速度快。因此,与ActiveSync模式相比,USB大容量存储模式特别适合像全球定位系统所使用的地图文件,批量的MP3歌曲,大型游戏程序,电影等大文件的传输,大大提高了传输效率,方便了用户。
例如,凯立德公司制作的中国地图的容量为404M,在普通的ActiveSync模式进行向读写的情况下,将该地图文件写入市场上可以购买到的Mio A700型号的个人数字助理设备内的存储卡的时间约为4540秒,而使用本发明提供的快速读写存储卡的方法,向上述同样的设备写入同样的文件的时间约为1669秒。又如,Citus公司制作的澳大利亚地图的容量为273M,在普通的ActiveSync模式进行向读写的情况下,将该地图文件写入上述Mio A700型号的个人数字助理设备内的存储卡的时间约为3067秒,而使用本发明提供的快速读写存储卡的方法,向上述同样的设备写入同样的文件的时间约为1127秒。可见,本发明提供的快速读写存储卡的方法的读写速度与现在使用的ActiveSync模式的读写速度有很大的提高。


图1是支持本发明所述的存储卡进行传输的驱动程序的示意图。
图2是本发明的一个实施例的连接示意图。
图3是本发明的一个实施例中从普通读写模式切换到快速读写模式的流程图。
标号说明1、存储卡2、掌上电脑
3、个人计算机具体实施方式
参考图1,其描述了目前支持本发明所述的存储卡进行数据传输的驱动程序的示意图。参考图1的下部以及上部的右侧所示,其描述了支持ActiveSync模式的驱动程序。可见,ActiveSync应用程序运行在USB串行客户驱动程序或USB RNDIS驱动程序之上,而该两个驱动程序又是运行在USB最底层的USB功能控制驱动程序之上。再参考图1的下部以及上部的左侧所示,其描述了支持USB大容量存储模式的驱动程序,USB大容量存储模式基于USB大容量存储客户驱动程序之上,而该驱动程序也运行在USB最底层的USB功能控制驱动程序之上。正是由于两者存在着共同的基础,即USB功能控制驱动程序,所以才能够实现本发明提供的快速读写存储卡的方法。
参考图2,其描述了本发明的一个实施例的连接示意图。其中,存储卡,即SD卡1置于掌上电脑2中,而掌上电脑2通过USB数据连接线与外部设备,即一台个人计算机3相连接。在掌上电脑2安装USB大容量驱动程序,且按照本发明提供的步骤切换到快速读写模式后,个人计算机3就可以对置于掌上电脑2中的SD卡1进行快速读写。
在与上述图2所示实施例相类似的其它实施例中,置于掌上电脑2中的存储卡也可以是与SD卡类似的其它存储卡,例如MMC卡。实际上所有可以通过上述USB大容量存储模式进行传输的存储卡都可以应用于本发明的实施例中。
类似地,上述放置SD卡1的掌上电脑也可以是其它设备,例如个人数字助理,或者某些安装有Windows CE操作系统的手机等。实际上,随着移动设备的不断更新,可以应用本发明的上述存储卡所在设备会越来越多,配备有Windows CE操作系统或具有同等功能的操作系统的设备都可以适用。
参考图3,其描述了本发明的一个实施例中进行快速读写切换的流程。使用者在存储卡所在设备,如上述的掌上电脑2上选择快速读写模式后开始进行快速读写模式的切换。设置于存储卡所在设备上的控制模块判断在存储卡所在设备上是否已经存在USB大容量存储驱动程序,步骤41,若不存在,提示用户“USB大容量存储驱动程序不存在”,本次操作结束;若已经存在,则转步骤42;上述控制模块判断USB大容量存储驱动程序是否列入存储卡所在设备的注册表中,若未列入,则提示用户“USB大容量存储驱动程序尚未注册”,本次操作结束;若已经列入,则转步骤43;上述控制模块卸载USB串行客户驱动程序或USB RNDIS驱动程序,步骤43;上述控制模块加载USB大容量存储客户驱动程序,步骤44,加载完成后,提示用户“快速读写模式切换完成,可以进行快速读写”。
通过上述步骤,即完成从普通读写模式向快速读写模式的切换。
为了本领域的技术人员更好地理解本发明,下面再具体地讲述本发明的一个实施例的实现过程。
根据本发明的上述描述,应预先将该库文件复制到存储卡所在设备,例如掌上电脑2中,此过程可以通过安装的过程完成,或者可以直接向存储卡所在设备中复制。
然后,在存储卡所在设备,例如掌上电脑2中对上述USB大容量存储驱动程序进行注册。在本实施例中,在存储卡所在设备的注册表中添加如下语句[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]11″Dll″=″usbmsfn.dll″12″InterfaceSubClass″=dword0613″InterfaceProtocol″=dword5014″DeviceName″=″DSK1″15″Removable″=dword1其中,语句11指定上述USB大容量存储驱动程序存在于usbmsfn.dll文件中,其是一个微软公司提供的驱动程序库文件,该文件在MicrosoftPocketPC Adaptor Kit中可以找到。
语句12指明在存储卡所在设备一端所使用的USB客户驱动程序的类型,该语句中的“06”即代表USB大容量存储客户驱动程序,而与存储卡所在设备相连接的其他设备,例如个人计算机即通过此语句识别相应的驱动程序。
语句13指明存储卡所在设备一端所支持的USB大容量存储传输协议,该语句中的“50”即代表大容量传输协议(BOT,bulk-only transport),与存储卡所在设备相连接的其他设备,例如个人计算机即通过此语句识别相应的传输协议。
语句14设定USB大容量存储模式映射的设备指向上述存储卡,在本实施例中指向一个SD卡。
语句15设置存储卡所在设备在于其相连接的其它设备中显示为可移动磁盘。
通过上述语句对存储卡所在设备的注册表进行配置完毕后,就可以通过控制模块完成对USB大容量存储模式的切换,从而最终实现本发明。在本实施例中,切换的语句如下所示21 Handle ufn=NULL;22 ufn=CreateFile(L″UFN1″,FILE_WRITE_ATTRIBUTES|GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);23 UFN_CLIENT_NAME InBuf;24 wcscpy((TCHAR*)InBuf.szName,_T(″Mass_Storage_Clas″));25 DeviceIoControl(ufn,IOCTL_UFN_CHANGE_CURRENT_CLIENT,&InBuf,sizeof(InBuf),NULL,0,NULL,NULL);其中,语句21、22用于创建一个指向USB功能控制驱动程序的句柄,语句23、24、25完成加载USB大容量存储驱动程序的操作。上述语句21~25均由存储卡所在设备中的控制模块完成。在本实施例中,所述控制模块是对存储卡所在设备中原有的配置模块进行修改后而得的,具体作法是在配置模块中增加了上述源代码并设置了该部分源代码与相关菜单的响应关系,即当用户点击“使用大容量存储传输模式”菜单后,则执行位于上述配置模块中的上述源代码,从而完成向快速读写模式的切换。
而在又一个实施例中,单独增加了一个切换控制模块,其中包括上述21~25所示的源代码,并同样设置了该部分源代码与相关菜单的响应关系。
类似地,在本实施例中,在上述控制模块中还增加了从本发明提供的快速读写模式向现有的使用Activesync模式切换的相应源代码,具体作法与上述实施例类似。
对关于上述对注册表以及加载驱动程序、卸载驱动程序的过程和具体语句,本领域的技术人员根据上述介绍以及本领域的公知内容可以容易地实现,因此,不再赘述。而且,本领域的技术人员可以找到与上述实施例类似的方法、表达实现本发明的内容。
在本实施例中,为了使用者可以方便地在两种传输模式间切换,在存储卡所在设备的菜单设置了一个菜单标明“使用大容量存储传输模式”和“使用Activesync传输模式”或类似的菜单。而在其它实施例中,也可以在存储卡所在设备中设置一个图标或一对图标,以便使用者点击时执行上述类似的操作。在另一个实施例中,在存储卡所在设备上设置了一个快捷按键,在按动按键后则在两种模式中进行切换。
尽管本发明已经以如上所述的优选实施例予以说明,但上述实施例并非用来限定本发明,任何对该领域熟悉的技术人员,根据本发明的设计思想、具体发明内容以及实施例的启示,应该可以各种改动和调整,而通过这些改动和调整所得到的新的内容应被本发明内容所涵盖。
权利要求
1.一种快速读写存储卡的方法,应用于存储卡所在设备上,该设备包括一控制模块,至少用于实现该方法,其特征在于,该方法包括如下步骤步骤一,使用者在存储卡所在设备上选择快速读写模式;步骤二,所述控制模块判断在存储卡所在设备上是否已经存在USB大容量存储驱动程序,若不存在,提示用户“USB大容量存储驱动程序不存在”,本次操作结束;若已经存在,则转步骤三;步骤三,上述控制模块判断USB大容量存储驱动程序是否列入存储卡所在设备的注册表中,若未列入,则提示用户“USB大容量存储驱动程序未注册”,本次操作结束;若已经列入,则转步骤四;步骤四,上述控制模块卸载USB串行客户驱动程序或USB RNDIS驱动程序;步骤五,上述控制模块加载USB大容量存储客户驱动程序,加载完成后,提示用户“快速读写模式切换完成,可以进行快速读写”。
2.如权利要求1所述的一种快速读写存储卡的方法,其特征在于,所述的USB大容量存储驱动程序预先安装到所述的存储卡所在设备上。
3.如权利要求1所述的一种快速读写存储卡的方法,其特征在于,所述的存储卡是安全数字存储卡或多媒体卡。
4.如权利要求1所述的一种快速读写存储卡的方法,其特征在于,所述的存储卡所在设备是掌上电脑或个人数字助理。
5.如权利要求1所述的一种快速读写存储卡的方法,其特征在于,所述的存储卡所在设备上设有一菜单用于快速读写模式与普通读写模式的切换。
全文摘要
一种快速读写存储卡的方法,包括选择快速读写模式的步骤、判断存储卡所在设备上是否存在USB大容量存储驱动程序的步骤、判断USB大容量存储驱动程序是否列入存储卡所在设备注册表的步骤、卸载USB串行客户驱动程序或USB RNDIS驱动程序的步骤、加载USB大容量存储客户驱动程序的步骤。通过本方法,可以提高对存储卡进行读写的速度,而且一次安装后就不再需要读卡器也不需要与存储卡所在设备相连接的其他设备上安装ActiveSync应用软件。本方法可以应用于使用安全数字存储卡或多媒体卡或其他类似存储卡以及使用这些存储卡的掌上电脑或个人数字助理或其他类似设备。
文档编号G06F13/10GK101030178SQ20061002422
公开日2007年9月5日 申请日期2006年2月28日 优先权日2006年2月28日
发明者周彬, 姜庆荣 申请人:环达电脑(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1