一种连接存储卡的系统和方法

文档序号:6563677阅读:160来源:国知局
专利名称:一种连接存储卡的系统和方法
技术领域
本发明申请系关于存储卡,具体为确定一个存储卡与一个软件驱动是否兼容。
背景技术
存储卡用于为便携电子设备如数码相机、数码摄像机、音频播放器、移动电话以及个人数据助理(PDA)等提供存储器。一种常见的存储卡为多媒体存储卡(MMC),可存储几个GB的数据(比如压缩音乐、压缩视频、高分辨率图像等等)。另一种类型的存储卡为安全数码卡(SD卡),容量也可达到数个GB。另外,SD卡通常允许对其中的数据进行写保护。还有一类卡称为安全数码输入输出卡(SDIO卡),除了SD卡的存储功能外,这类卡还具有数据传输功能。例如,有些SDIO卡使用美国电子电器工程师协会(IEEE)的无线局域网互连标准(802.11b),也称为WiFi,可用于连接网络。
要使用以上几种卡来存储和检索数据,必须将卡插入一个共用的可连接至计算机系统的插槽。软件驱动中包含了允许计算机系统与外设(比如存储卡)通讯的指令。通过与存储卡通讯,计算机系统和系统中运行的应用程序可以与插入插槽中的存储卡互动(比如存储数据、检索数据等等)。例如,微软公司生产的安全数码总线驱动符合SDIO标准主机控制器规格1.0,支持SD卡和SDIO卡但不支持其它类型的存储卡,如MMC卡。

发明内容
本发明一方面为一种设备,其中包含一个存储卡读卡器,在一个集成电路上实现。该存储卡读卡器包括至少一个寄存器,用于存储代表插槽中插入的存储卡类型的数据。该寄存器可以由一个安全数码(SD)驱动通过第一路径来读取以确定存储卡与SD驱动是否兼容。如果不兼容,MMC驱动通过第二路径读取该寄存器以确定存储卡与MMC驱动是否兼容。
本发明另一方面为一种设备,其中包含一个存储卡控制器电路,在一个集成电路上实现。该存储卡控制器电路包括一个存储卡检测器,可以在无需软件输入的情况下识别插入存储卡插槽的存储卡类型。存储卡控制器电路还包括一个寄存器,用于存储代表存储卡类型的数据。寄存器可以由SD驱动通过第一路径读取,也可由MMC驱动通过第二路径读取。
本发明另一方面为一种方法,其步骤包括在一个寄存器中存储代表插入存储卡插槽的存储卡类型的数据。其步骤也包括使用一个软件驱动通过第一路径读取该寄存器。其步骤还包括确定SD驱动是否与存储卡兼容。如果存储卡与SD驱动不兼容,该方法的步骤还包括使用MMC驱动通过第二路径读取寄存器,第二路径区别于第一路径。该方法的步骤还包括确定该存储卡是否与MMC驱动兼容。
本发明另一方面为一种物品,其中包括了存储介质,其存储的指令由机器读取后执行以下操作将代表插入存储卡插槽的存储卡类型的数据存储于一个寄存器中;使用第一个驱动通过第一路径读取该寄存器;确定SD驱动与存储卡是否兼容;如果SD驱动与之不兼容,使用MMC驱动通过第二路径读取该寄存器,第二路径区别于上述第一路径;确定MMC驱动与存储卡是否兼容。


以下附图及其相关描述给出了本发明的一些实施例,说明了实现本发明的最佳模式。结合相应附图,对实施例的详细描述使得本发明之优点和内容对于本领域技术人员显而易见。本发明公开可以有别的实施例,在不背离本发明公开之精神的前提下,本发明在各个方面也容许存在细节上的修改。因此,以下附图和相应的说明应视为说明性而非限制性。
图1所示为一个便携式计算机和用于该计算机系统的存储卡。
图2为该插入插槽的存储卡和图1中所示计算机系统的组件的块图。
图3为图2中存储卡控制器电路的典型实施例块图。
图4为图3中存储卡控制器电路运作的流程图。
图5为图2中存储卡控制器电路的另一典型实施例的块图。
图6为图5中存储卡控制器电路运作的流程图。
具体实施例方式
图1为典型的计算机系统100,其中可包括一个插槽102供存储卡104使用。除了图中所示的计算机系统100外,很多电子设备都有一个或者多个存储卡插槽,如数码相机、数码摄像机、音频播放器、移动电话、个人数据助理(PDA)和/或其它类型的便携式电子设备等。存储卡104具有数据存储功能,可以以较快的速度存储和读取数据,其容量较为可观(通常为几个GB)。存储卡104可能为SD卡、SDIO卡和/或MMC卡。
计算机系统100可执行一个或多个应用程序,这些应用程序可读取该存储卡。例如,Microsoft OutlookTM和Microsoft EcxelTM都可能在存储卡104上存储数据,或者从存储卡104中检索数据。但是,在使用存储卡104之前,计算机系统100需要与存储卡建立起连接。于是,计算机系统100就需要为连接存储卡104选择一个合适的软件驱动。举例来说,如果存储卡104为SD卡,计算机系统100就可从存储器中挑选和使用标准SD软件驱动。或者如果存储卡104为MMC卡,计算机系统100就可使用MMC软件驱动与存储卡104通讯。通过挑选和使用合适的软件驱动,计算机系统100才能在SD卡、SDIO卡和/或MMC卡上存储或读取数据。
图2为图1中便携式计算机系统100的块图。存储卡104插入插槽102中。为了说明计算机系统100中的硬件和软件组件,系统被分为软件域200和硬件域202。软件域200可包括应用软件204、典型的SD驱动206和典型的MMC驱动208。除此外,软件域还可包括其它的软件组件,如操作系统和/或其它的软件驱动(如SDIO驱动)。
硬件域202可包括插槽102,供常用的存储卡如SD卡,MMC卡和/或SDIO卡使用。在此说明性示例中,存储卡104可插入插槽102。硬件域202还可包括中央处理单元(CPU)210,核心逻辑和总线接口电路212,以及存储卡控制器电路214。计算机系统100的硬件域202还可包括其它组件,例如一个或多个存储器(如随机存储器(RAM)、只读存储器(ROM)、静态随机存储器(SRAM)、动态随机存储器(DRAM)等等)和/或其它的一个或多个存储设备(如硬盘驱动器、CD-ROM等)。
一般来说,存储卡104中存储的信息可供应用软件204使用(由CPU 210执行)。例如,存储卡104可能提供网络连接将系统连接至局域网(LAN)、广域网(WAN)、个域网(PAN)或者其它类型的网络,同时还具有存储功能。
应用软件204通常可以直接和存储卡104进行通讯。为了与存储卡104建立起通讯连接,应用软件204可使用一个或多个能够与存储卡104通讯的软件驱动。例如,如果存储卡104为SD卡,应用软件204可使用SD驱动206来连接存储卡104。如果存储卡104为MMC卡,则可使用MMC驱动208来连接。
在使用SD驱动206、MMC驱动208和/或其它类型的软件驱动(如SDIO驱动)之前,必须识别存储卡的类型。存储卡控制器电路214中可包括一个逻辑电路和/或一个状态机电路用于和存储卡104通讯。通过收集和分析来自存储卡104的信息来识别出存储卡类型,比如识别出存储卡104为SD卡或者MMC卡。在此实施例中,CPU 210和核心逻辑和总线接口电路212允许SD驱动206和MMC驱动208读取存储卡控制器电路214收集到的信息并协助识别存储卡类型。
如上所述,存储卡类型可通过SD驱动206和/或MMC驱动208来识别。在某些实施例中,存储卡控制器电路214可以单独识别存储卡104的类型。类型确定后,存储卡控制器电路214发出信号,指定相应的驱动(比如SD驱动206、MMC驱动208)与存储卡104建立连接。使用合适的驱动建立起连接后,应用软件204就可使用存储卡104了。
图3为存储卡控制器电路214的典型实施例的块图。在此实施例中,存储卡控制器电路214可包括一个总线接口300、一个读卡器302、一个备用编程寄存器读写路径304和存储卡输入/输出电路306。在此实施例中,读卡器302可包括一个直接存储器读取(DMA)引擎308,一个或多个编程寄存器310和一个或多个数据缓冲器312,以及控制逻辑电路314。
总线接口300允许存储卡控制器电路214与核心逻辑和总线接口电路212之间传输数据(如图2所示)。总线接口300可为数据通讯建立起一个高速连接(如周边元件扩展(PCI)接口)。为了与存储卡104交换数据,控制逻辑电路314中含有一个状态机,编程寄存器310中存储的内容可引导该状态机与存储卡通讯。控制逻辑电路314还可连接至数据缓冲器和/或存储卡输入/输出电路306中可能与存储卡规格(如SD规格或MMC规格)兼容的驱动。DMA引擎308和编程寄存器310用于在数据缓冲器312中读取或写入数据。
存储卡104插入插槽102时可生成一个指示信号并传输给读卡器302。在本发明的一个实施例中,可在编程寄存器310中存储数据以表明存储卡104已插入插槽。当电源开始供电给存储卡时,就向编程寄存器310写入数据。与之类似,存储卡104从插槽102拔出时同样可生成指示信号。一旦存储卡插入的指示信号写入编程寄存器310,就通知SD驱动206(图2所示)插槽102中已经插入了存储卡。SD驱动206开始工作以确定存储卡104是否是SD卡。
为确定存储卡104的类型,SD驱动206可能通过存储卡控制器电路214与存储卡104进行通讯。例如,SD驱动206向编程寄存器310发出一个或多个命令,这些命令可在存储卡104的协助下得以执行。SD驱动206可通过总线接口300和编程寄存器310之间的路径316传输这些命令。SD驱动206使用该路径316时,可使用已经指派给一个或多个编程寄存器的地址。通过使用这些地址,SD驱动206可通过专门的路径316传输数据(即命令)给编程寄存器310或者从编程寄存器310接收数据(即存储卡104的回应)。通过传输命令给存储卡104并执行这些命令,存储卡104可返回数据给读卡器302,例如确认类型、厂商信息等等。SD驱动206就可通过路径316使用指派给编程寄存器310的地址来查看是否有肯定的回应。通过分析回应信息,SD驱动206确定存储卡104的相关信息如存储卡类型等。
如果SD驱动206无法确定存储卡104为SD卡,MMC驱动208可尝试确定存储卡104是否为MMC卡。MMC驱动208首先发送一个或多个命令和/或数据给编程寄存器310。这些命令和/或数据由存储卡104独立使用或与别的组件一起使用以生成回应信息。MMC驱动208读写编程寄存器310时使用指派给编程寄存器的另一个地址,该地址不同于上述SD驱动206通过路径316读写时使用的地址。如图所示,使用第二个地址时通过存在于总线接口300和编程寄存器310之间的备用编程寄存器读写路径304实现。与SD驱动206类似,MMC驱动208通过存储卡104的回应确定存储卡的相应信息如卡类型等。
MMC驱动208在以下一个或者几个事件之后开始尝试确定存储卡104是否为MMC卡。例如,如果SD驱动206终止了确定存储卡104是否为SD卡的操作,则MMC驱动208开始工作。另一方法是当SD驱动206停止给存储卡104供电时MMC驱动208开始工作。另一方法是当存储卡104停止通讯一段时间之后MMC驱动208开始工作。
如果SD驱动206和MMC驱动208中有一个确定存储卡104与其兼容,则应用软件204开始通过该驱动读写存储卡。例如,如果SD驱动206确定存储卡104为SD卡,应用软件204就通过SD驱动206读取存储卡104中存储的数据。或者,如果SD驱动206确定存储卡104与其不兼容而MMC驱动208确定存储卡104为MMC卡,应用软件204则通过MMC驱动208来使用存储卡104的存储功能。
图4为存储卡控制器电路214运作的流程图400。步骤402中检测到存储卡插入插槽(如插槽102)中。存储卡一旦插入插槽,存储卡控制器电路214就会得到信号,例如在编程寄存器310中包括一个状态寄存器,存储卡插入后该状态寄存器被激活。状态寄存器激活后,独立生成或者与别的组件共同生成一个CPU210的中断事件。在硬件域202中的组件得到信号的同时,软件域200中的组件也会在存储卡104插入插槽时得到信号。步骤404中,一个或者多个可能与存储卡兼容的软件驱动得到存储卡插入插槽的信号。如上已述,SD驱动206和MMC驱动208可能接收到此信号。接收到信号后各个软件驱动查阅编程寄存器310中存储的数据。SD驱动206可使用与路径316相关的地址读取编程寄存器310。MMC驱动208可使用与备用编程寄存器读写路径304相关的地址读取编程寄存器310。也可在备用编程寄存器读写路径304中包括一个独立的状态寄存器(图中未示出)用于将存储卡插入插槽的信号传递给MMC驱动208。
步骤406中,SD驱动206确定插入的存储卡是否与SD驱动兼容。SD驱动206在此过程中可能需要传输数据给存储卡和/或从存储卡接收数据,以确定存储卡类型以及容量等。SD驱动206可使用编程寄存器310来控制上述数据交换。
如果确定存储卡与SD驱动206兼容,则在步骤408中允许应用软件204通过SD驱动206来读写存储卡。步骤410中,存储卡控制器电路检测到存储卡已经从插槽拔出,在此步骤之前应用软件204都可读写存储卡。存储卡拔出后,存储卡控制器电路回到步骤402,以检测该存储卡再次插入或者别的存储卡插入插槽。
如果确定存储卡与SD驱动206不兼容,则在步骤412中SD驱动206停止读写编程寄存器310。SD驱动206停止读写后,存储卡与SD驱动之间不再交换数据。步骤414中,编程寄存器310确定SD驱动206是否已经终止通讯。MMC驱动208读写编程寄存器310时可使用路径316相关的地址。但是MMC驱动208一般使用备用编程寄存器读写路径304相关的地址。
MMC驱动208可读取编程寄存器310中存储的数据来确定SD驱动206是否已经终止通讯。该数据可表明系统在给存储卡供电或者已经停止供电。该数据也可表明SD驱动206使用的最后一个与存储卡交换数据的通讯命令。根据SD驱动206的最后一个命令,MMC驱动208可以确定SD驱动206是否已经和存储卡104终止通讯。另外,通过编程寄存器310从存储卡104接收到的数据也可以判断SD驱动206与存储卡的通讯是否已终止。在本发明的一个实施例中,如果编程寄存器310中获取的数据维持一段时间不变,则判断通讯已终止。例如,存储卡插入插槽4秒之后,存储卡104传输给编程寄存器的数据2秒钟之内都没有变化,则判断SD驱动206已经与存储卡终止通讯。
编程寄存器310中获取的多种类型的数据都可用于判断SD驱动206是否已经与存储卡104终止通讯,例如上述的表明供电状态和/或SD驱动206的最后一个命令的数据。其它可用的数据包括与存储卡104相关的一个或多个参数,如总线带宽,或者是特征,如读写速度、存储容量等等。也可使用其它技术来判断通讯是否终止,例如通电一段时间(比如2秒)之后,没有收到回应或者确定存储卡无法回应(non-responsive acknowledgement),则判断SD驱动206已经与存储卡104终止通讯。
步骤416中,SD驱动206确定已经停止读写编程寄存器310,MMC驱动208开始读写编程寄存器310,以确定存储卡104是否与MMC驱动兼容。为确定兼容性,MMC驱动208需要确定存储卡类型和/或存储卡容量,其与存储卡之间的数据交换使用编程寄存器310来控制。如果确定存储卡与MMC驱动208兼容,则进入步骤418,允许应用软件210通过MMC驱动208来读写存储卡104。在存储卡控制器电路214检测到存储卡104拔出插槽102(步骤410)之前,应用软件都可以读写存储卡。如果检测到存储卡拔出,则回到步骤402,存储卡控制器电路214等待该存储卡再次插入或者别的存储卡插入插槽102。与上述类似,如果存储卡104与MMC驱动208不兼容,存储卡控制器电路214等待存储卡拔出(步骤410)并回到步骤402等待存储卡插入。SD驱动206和/或MMC驱动208可通过与编程寄存器310通讯来确定存储卡104是否已经拔出插槽。例如,SD驱动206可通过使用路径316与编程寄存器310交换数据来得知存储卡104是否已经拔出。与之类似,MMC驱动208可通过使用备用编程寄存器读写路径304来与编程寄存器310通讯从而得知存储卡104是否已经拔出。另一典型技术中,MMC驱动208与一个专用的状态寄存器(图中未给出)通讯以得知存储卡104是否已拔出。
图5为存储卡控制器电路的另一实施例500。与图3所示存储卡控制器电路214类似,存储卡控制器500包括一个总线接口300,读卡器302,备用编程寄存器读写路径304和存储卡输入/输出电路306。另此,存储卡控制器电路500还包括一个存储卡检测器502。与图3所示存储卡控制器电路214类似,读卡器302包括DMA引擎308,编程寄存器310、数据缓冲器312和控制逻辑电路314。
存储卡检测器502可确定插入插槽的存储卡104是否与SD驱动206和/或MMC驱动208兼容。存储卡检测器502可在硬件域202中作出上述判断,从而减少或去除了软件域200中的组件(如SD驱动206,MMC驱动208等)的输入和/或分析操作。使用硬件实现后,兼容性的判断相对上述的使用SD驱动206和/或MMC驱动208进行判断(图3和图4所示)速度有所提高。
存储卡检测器502可使用硬件来进行逻辑判断和/或使用状态机技术来与插入插槽中的存储卡(例如存储卡104)进行数据交换。通过交换数据,存储卡检测器502可确定插入插槽的存储卡类型和/或容量。存储卡检测器502可控制插入插槽的存储卡的电源,比如通过控制一个开关闭合来给插槽102供电。另外,存储卡检测器502还可遮蔽存储卡104的插入而不让读卡器302得到信号。具体来说,存储卡检测器502可阻断所插入的存储卡与编程寄存器310之间的数据交换。
为了识别存储卡104的类型,存储卡检测器502可在本地存储一些信息,这些信息表明了SD驱动206、MMC驱动208以及软件域200中可能包含的其它软件驱动(比如SDIO驱动)所支持的存储卡容量。如果插入的存储卡与SD驱动206兼容,则存储卡检测器502发送信号给编程寄存器310,表明存储卡104已插入插槽102。另外,存储卡检测器502可能将所插入的存储卡104的控制移交给SD驱动206。或者如果存储卡检测器502确定所插入的存储卡与MMC驱动208兼容,存储卡检测器502将发送数据给一个或者多个与备用编程寄存器读写路径304相关的寄存器504。在此典型设计中,数据从存储卡检测器502通过路径506到达寄存器504。发送的数据即表明存储卡104已插入插槽102。存储卡检测器502随后将存储卡104的控制移交给MMC驱动208。MMC驱动208通过使用备用编程寄存器读写路径304提供命令给编程寄存器310,从而和存储卡104建立起通讯。MMC驱动208与存储卡104建立起通讯后,应用软件204就可使用存储卡了。
如果确定所有软件驱动(SD驱动206、MMC驱动208等)都与所插入的存储卡104不兼容,存储卡检测器502则停止给存储卡供电。停止供电后,存储卡检测器502继续阻止存储卡104插入插槽的信息传递给读卡器302。需要注意的是,在所插入的存储卡104与某个软件驱动兼容时,存储卡检测器502也可能停止给插槽102供电,比如,存储卡检测器502在将控制移交给兼容的软件驱动(比如SD驱动206、MMC驱动208等)之前停止给插槽102供电。控制移交给相应的软件驱动之后,供电恢复。
路径506使得存储卡检测器502可以使用备用编程寄存器读写路径304。这样,存储卡检测器502可通过路径506来使用总线接口300和/或编程寄存器310。备用编程寄存器读写路径304可包括解码逻辑,以用于给编程寄存器310分配额外的地址。备用编程寄存器读写路径304可包括一个或多个寄存器(如寄存器506)用于从存储卡检测器502收集信息。例如,存储卡检测器502可传输数据给寄存器506表明所插入的存储卡104可能与MMC驱动208兼容。在某些实施例中,存储卡控制器电路500还包括另外的电路(例如控制逻辑电路),使得MMC驱动208可以不使用备用编程寄存器读写路径304而控制存储卡104。
图6为存储卡控制器电路500的操作流程图600。步骤602中,存储卡检测器502检测到存储卡(如存储卡104)插入插槽102。检测到存储卡插入插槽的同时,存储卡检测器502无需软件域200中的组件(例如SD驱动206、MMC驱动208等)干涉即可给存储卡供电。
步骤604中,存储卡检测器502读取所插入的存储卡并尝试确定其类型和/或容量。为了查询所插入的存储卡的信息,存储卡检测器502无需软件域的组件如SD驱动206、MMC驱动208等的干涉即可与存储卡交换数据。同样,在查询存储卡信息的过程中,存储卡检测器502并不通知软件域200的组件(如SD驱动206、MMC驱动208等)存储卡已经插入插槽。
步骤606中,存储卡检测器502通过读取所插入的存储卡和查询其相关信息确定所插入的存储卡是否与SD驱动206兼容。如果存储卡104与SD驱动206兼容,则存储卡控制器电路500进入步骤608,存储卡检测器502通知SD驱动206所插入的存储卡可能与之兼容。在某些实施例中,存储卡检测器502在步骤608中传输数据给编程寄存器310,使得SD驱动206得知存储卡104已经插入插槽并可能与之兼容。步骤610中,SD驱动206得到通知后,应用软件204通过SD驱动206使用所插入的存储卡。步骤612中存储卡104拔出插槽102,在此步骤之前应用软件204都可使用存储卡。存储卡拔出后,应用软件204停止读写存储卡,同时停止给插槽102供电。同时存储卡检测器502在存储卡104拔出插槽以后回到步骤602,等待存储卡再次插入插槽或者别的存储卡插入。
如果所插入的存储卡与SD驱动206不兼容,则进入步骤614,通知MMC驱动208存储卡104已经插入插槽。在某些方法中,通过将数据存储于寄存器中、MMC驱动208读取该寄存器完成上述操作。所存储的数据即表明存储卡104已经插入插槽102。在本发明的一个实施例中,存储卡检测器502将表明存储卡已经插入插槽的数据存储于寄存器506中。该数据还可表明所插入的存储卡可能与MMC驱动208兼容。在另一实施例中,上述数据存储于其它寄存器中,比如编程寄存器310。
步骤616中,确定MMC驱动208是否支持所插入的存储卡。例如,存储卡检测器502确定所插入的存储卡类型或容量后,MMC驱动208可确定其是否支持该存储卡。如果支持,则进入步骤618,MMC驱动208允许应用软件204通过MMC驱动使用所插入的存储卡。MMC驱动208可通过编程寄存器310读写存储卡。在此方法中,MMC驱动208使用指派给编程寄存器的地址,通过备用编程寄存器读写路径504来与编程寄存器310互动。如上已述,与路径504相关的地址有别于路径316相关的地址,后者供SD驱动206用于和编程寄存器互动。在本发明的另一实施例中,MMC驱动208可通过一个专用的路径与所插入的存储卡104互动(图5中未示出)。该专用路径可包括一个或多个寄存器和/或电路(比如逻辑电路、状态机电路等)以用于控制所插入的存储卡。步骤612中存储卡从插槽102中拔出,在此之前应用软件都可读写存储卡。如果MMC驱动208确定其不支持所插入的存储卡,则不允许应用软件204读写存储卡,存储卡检测器502等待存储卡从插槽中拔出(步骤612)并回到步骤602检测是否该存储卡再次插入或者有别的存储卡插入插槽。
硬件域202中的一个或多个组件(图2所示)都可通过其它类型的架构实现。在某些实施例中,硬件组件可单独实现,也可两个或者多个组件组合在一起实现。例如,存储卡控制器电路500可使用一个或多个通用处理器(如微处理器)和/或一个或多个专用器件(如专用集成电路(ASIC)等)。存储卡控制器电路500可作为一块单片集成电路,也可是一块分布式结构的集成电路。与之类似,存储卡控制器电路500中的一个或者多个组件(比如存储卡检测器502)都可使用单片集成电路或者分布式结构的集成电路实现。在某些实施例中,存储卡控制器电路500中包含的寄存器(如编程寄存器310、寄存器506)可驻留于存储器中,如RAM、ROM、SRAM等。
以上流程图400和600相关的一个或多个操作可由一个或多个可编程处理器(如微处理器、ASCI等)作为计算机程序来执行。这些程序的执行可包括操作输入数据(如编程寄存器中的内容、存储卡中的内容等)和生成输出数据(如在编程寄存器310中存储数据等)。流程图400和600相关的一个或多个操作也可由存储卡控制器电路和/或其中的组件(如存储卡检测器502)来执行,上述电路和/或组件可能作为专用逻辑电路实现(如FPGA(域可编程门阵列)、ASIC等)。
在某些实施例中,存储卡控制器电路500(或其组件)的操作可能适合于由通用或专用微处理器来作为计算机程序运行。一般说来,处理器可从存储器(如ROM、RAM等等)接收指令和数据。因此,存储卡控制器电路500也可连接至单个或多个存储设备(如磁盘、磁光介质或者光盘等),存储卡控制器电路500可从存储设备接收数据,或传输数据给存储设备(或者二者兼有)以便于存储数据。适合于存储计算机程序指令和数据的信息载体包括非挥发性的存储介质,例如EPROM、EEPROM和闪存等半导体存储器;内置硬盘和移动硬盘等磁盘;磁光盘;CD-ROM碟片和DVD-ROM碟片等等。
存储卡控制器电路500(及其一个或多个组件)可使用数字电路实现,或使用计算机硬件、固件、软件或以上各种组合实现。存储卡控制器电路500也可作为一种计算机程序产品实现,例如一个计算机程序,其物质形式为可见的信息载体例如机器可读的存储设备如RAM、ROM、硬盘驱动器、CD-ROM等等,或者为一种可传播的信号。该计算机程序可以使用数据处理设备来执行,或者控制数据处理设备的运作,例如可编程处理器、计算机或者是多个计算机。计算机程序可以使用一种或多种形式的编程语言来编写,包括汇编语言和解释型语言,其形式也多样,可能为独立的程序,也可以是模块、组件、子程序或者其它适合于计算机环境使用的单位。计算机程序可能由单个计算设备(如控制器、计算机系统)来执行,也可能由单个地点的多个计算设备(如多个控制器)或者分散在多个地点使用通讯网络连接起来的多个计算设备来执行。
以上描述了本发明的多个实施例,但是本发明显然可以有各种修改,而不限于上述实施例。因此,后附权利要求书所界定之范围即为所有可能的实施例。
权利要求
1.一种设备,其特征在于,包括一个存储卡读卡器,使用集成电路实现,其中包括至少一个寄存器,用于存储插入插槽的存储卡信息,该寄存器可由安全数码(SD)驱动通过第一路径读取,以确定存储卡与SD驱动是否兼容,如果不兼容,该寄存器可由多媒体卡(MMC)驱动通过第二路径读取,以确定存储卡是否与MMC驱动兼容。
2.根据权利要求1所述之设备,其特征在于,所述第一路径与第一地址相关。
3.根据权利要求2所述之设备,其特征在于,所述第二路径与第二地址相关,有别于所述第一地址。
4.根据权利要求1所述之设备,其特征在于,所述SD驱动与存储卡交换数据以确定存储卡是否与SD驱动兼容。
5.根据权利要求1所述之设备,其特征在于,所述MMC驱动与所述存储卡交换数据以确定所述存储卡是否与所述MMC驱动兼容。
6.根据权利要求1所述之设备,其特征在于,如果SD驱动判断存储卡与其兼容,则SD驱动允许应用软件读写存储卡。
7.根据权利要求1所述之设备,其特征在于,如果MMC驱动判断存储卡与其兼容,则MMC驱动允许应用软件读写存储卡。
8.根据权利要求1所述之设备,其特征在于,如果SD驱动与存储卡不兼容,则SD驱动停止给存储卡供电。
9.根据权利要求1所述之设备,其特征在于,如果SD驱动与存储卡不兼容,则SD驱动停止与存储卡通讯。
10.根据权利要求1所述之设备,其特征在于,如果MMC驱动与存储卡不兼容,则MMC驱动停止给存储卡供电。
11.根据权利要求1所述之设备,其特征在于,所述存储卡为SD卡。
12.根据权利要求1所述之设备,其特征在于,所述存储卡为安全数码输入/输出(SDIO)卡。
13.根据权利要求1所述之设备,其特征在于,所述存储卡为MMC卡。
14.一种设备,其特征在于,包括存储卡控制器电路,使用集成电路实现,其中包括一个存储卡检测器,用于识别插入插槽的存储卡类型,而无需软件操作;一个第一寄存器,用于存储代表插入插槽的存储卡类型的数据,该寄存器可由SD驱动通过第一路径读取,也可由MMC驱动通过第二路径读取。
15.根据权利要求14所述之设备,其特征在于,还包括一个第二寄存器,用于存储与MMC驱动兼容的存储卡相关的数据。
16.根据权利要求15所述之设备,其特征在于,所述第二寄存器可由MMC驱动通过第二路径读取。
17.根据权利要求14所述之设备,其特征在于,所述存储卡与SD驱动兼容,应用软件可通过SD驱动读写存储卡。
18.根据权利要求14所述之设备,其特征在于,所述存储卡与MMC驱动兼容,应用软件可通过MMC驱动读写存储卡。
19.根据权利要求14所述之设备,其特征在于,所述第一路径与第一地址相关。
20.根据权利要求17所述之设备,其特征在于,所述第二路径与第二地址相关,有别于第一地址。
21.一种方法,其特征在于,其步骤包括将插槽中存储卡的相关数据存储于一个寄存器上;第一软件驱动通过第一路径读取寄存器;确定该存储卡是否与SD驱动兼容;如果存储卡与SD驱动不兼容,则MMC驱动通过第二路径读取寄存器,第二路径有别于第一路径;确定该存储卡是否与MMC驱动兼容。
22.根据权利要求19所述之方法,其特征在于,其步骤还包括如果存储卡与SD驱动兼容,则允许应用程序通过SD驱动读写存储卡。
23.根据权利要求19所述之方法,其特征在于,其步骤还包括如果存储卡与MMC驱动兼容,则允许应用程序通过MMC驱动读写存储卡。
24.根据权利要求19所述之方法,其特征在于,所述第一路径与第一地址相关。
25.根据权利要求24所述之方法,其特征在于,所述第二路径与第二地址相关,有别于第一地址。
26.一种物品,其特征在于,包括一种存储介质,其中存储了指令,当机器读取指令时,产生如下操作将插入插槽的存储卡相关数据存储于一个寄存器中;第一驱动通过第一路径读取寄存器;确定SD驱动是否与存储卡兼容;如果存储卡与SD驱动不兼容,MMC驱动通过第二路径读取寄存器,第二路径有别于第一路径;确定MMC驱动是否与存储卡兼容。
27.根据权利要求26所述之物品,其特征在于,所述指令由所述机器读取时,还产生以下操作如果存储卡与SD驱动兼容,则允许应用程序通过SD驱动读写存储卡。
28.根据权利要求27所述之物品,其特征在于,所述指令由所述机器读取时,还产生以下操作如果存储卡与MMC驱动兼容,则允许应用程序通过MMC驱动读写存储卡。
全文摘要
本发明提供了一种在集成电路上实现的设备,其中包括了一个存储卡读卡器。存储卡读卡器含有至少一个寄存器,其中存储了与插入插槽的存储卡相关的数据。安全数码(SD)驱动可通过第一路径读取该寄存器以确定存储卡是否与其兼容。如果插入的存储卡与SD驱动不兼容,则多媒体卡(MMC)驱动通过第二路径读取该寄存器以确定存储卡是否与其兼容。
文档编号G06F13/38GK1991735SQ200610160968
公开日2007年7月4日 申请日期2006年12月6日 优先权日2005年12月6日
发明者尼尔·摩洛 申请人:美国凹凸微系有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1