新四季網

一種連接存儲卡的系統和方法

2023-05-04 00:10:41

專利名稱:一種連接存儲卡的系統和方法
技術領域:
本發明申請系關於存儲卡,具體為確定一個存儲卡與一個軟體驅動是否兼容。
背景技術:
存儲卡用於為便攜電子設備如數位相機、數碼攝像機、音頻播放器、行動電話以及個人數據助理(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日
發明者尼爾·摩洛 申請人:美國凹凸微系有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀