專(zhuān)利名稱(chēng):用于更新存儲(chǔ)卡上固件的系統(tǒng)內(nèi)編程的實(shí)現(xiàn)的制作方法
背景技術(shù):
1.發(fā)明領(lǐng)域本發(fā)明通常涉及大容量數(shù)字?jǐn)?shù)據(jù)存儲(chǔ)系統(tǒng)。尤其是,本發(fā)明涉及用于使用戶(hù)能夠更新與大容量數(shù)字?jǐn)?shù)據(jù)存儲(chǔ)系統(tǒng)(例如,存儲(chǔ)卡)有關(guān)的固件的各種系統(tǒng)和方法。
2.相關(guān)技術(shù)的描述由于非易失存儲(chǔ)器系統(tǒng)的物理尺寸小,并且具有被反復(fù)重新編程的能力,因此,人們?cè)絹?lái)越多地使用非易失存儲(chǔ)器系統(tǒng)(例如,快閃記憶存儲(chǔ)系統(tǒng))??扉W記憶存儲(chǔ)系統(tǒng)精簡(jiǎn)的物理尺寸促進(jìn)了在日益普遍的各種設(shè)備中使用這類(lèi)存儲(chǔ)系統(tǒng)。使用快閃記憶存儲(chǔ)系統(tǒng)的設(shè)備包括(但不局限于)數(shù)字相機(jī)、數(shù)字可攜式攝像機(jī)、數(shù)字音樂(lè)播放機(jī)、手持個(gè)人計(jì)算機(jī)和全球定位設(shè)備。具備對(duì)快閃記憶存儲(chǔ)系統(tǒng)內(nèi)所包括的非易失存儲(chǔ)器反復(fù)進(jìn)行重新編程的能力,就能夠使用和再使用快閃記憶存儲(chǔ)系統(tǒng)。
當(dāng)需要更新允許指令在快閃存儲(chǔ)器系統(tǒng)(例如,存儲(chǔ)卡)上運(yùn)行的固件時(shí),用戶(hù)通常將該卡發(fā)送回到存儲(chǔ)卡的制造商。該制造商可以更新存儲(chǔ)卡(例如,“小型快閃”(CF)卡或“安全數(shù)字”(SD)卡)上的固件,以便為該卡提供新的特點(diǎn)或修理固件中的故障。通常,制造商可能會(huì)使用專(zhuān)用硬件來(lái)更新固件。精通該技術(shù)領(lǐng)域的人將會(huì)理解,被用于更新存儲(chǔ)卡中的固件的程序通常很復(fù)雜并容易出錯(cuò)。所以,對(duì)于存儲(chǔ)卡的制造商而言,更新存儲(chǔ)卡中的固件常常是一個(gè)既耗費(fèi)時(shí)間、又困難重重的過(guò)程。
對(duì)于制造商而言,更新存儲(chǔ)卡中的固件除了耗時(shí)、困難以外,還經(jīng)常會(huì)給用戶(hù)帶來(lái)不便。特別當(dāng)用戶(hù)無(wú)法在一段延長(zhǎng)的時(shí)期內(nèi)使用存儲(chǔ)卡時(shí),將存儲(chǔ)卡發(fā)送或提供給制造商用于更新以及等候所更新的存儲(chǔ)卡返回可能會(huì)很不方便。
所以,我們需要的是一種能夠使存儲(chǔ)卡上的固件被有效地更新的系統(tǒng)。尤其是,需要一種系統(tǒng)和方法,使用戶(hù)能夠有效率地、比較容易地更新存儲(chǔ)卡上的固件,而無(wú)須將存儲(chǔ)卡返回給制造商。
發(fā)明概述本發(fā)明涉及一種系統(tǒng)和方法,用于有效率地更新與快閃存儲(chǔ)卡有關(guān)的固件。根據(jù)本發(fā)明的一個(gè)方面,用于更新與記憶存儲(chǔ)設(shè)備有關(guān)的固件的一種方法包括將新固件提供給主機(jī),并將該新固件從主機(jī)發(fā)送到與主機(jī)進(jìn)行通信的閱讀器。該閱讀器與包括已被安裝的固件的記憶存儲(chǔ)設(shè)備連接。該方法也包括將新固件從閱讀器發(fā)送到記憶存儲(chǔ)設(shè)備,并將新固件并入記憶存儲(chǔ)設(shè)備,以便新固件至少局部代替已被安裝的固件。在一個(gè)實(shí)施例中,該方法還包括將新固件嵌入第一個(gè)命令。在這種實(shí)施例中,將新固件從主機(jī)發(fā)送到閱讀器包括將第一個(gè)命令從主機(jī)發(fā)送到閱讀器。
在另一個(gè)實(shí)施例中,通過(guò)將新固件寫(xiě)入使用主機(jī)的記憶存儲(chǔ)設(shè)備,若將新固件并入記憶存儲(chǔ)設(shè)備,則可以更新已被安裝的固件。在這種實(shí)施例中,該方法也可以包括啟用閱讀器上的系統(tǒng)內(nèi)編程功能,這些功能允許新固件被并入記憶存儲(chǔ)設(shè)備。
允許用戶(hù)通過(guò)使用主機(jī)和閱讀器來(lái)基本上更新記憶存儲(chǔ)設(shè)備(例如,快閃存儲(chǔ)卡)上的固件,這樣,可以有效率地執(zhí)行更新。利用都被布置成支持系統(tǒng)內(nèi)編程的閱讀器和快閃存儲(chǔ)卡,卡上固件更新的執(zhí)行可以不要求相對(duì)較多的投資時(shí)間。通過(guò)軟件包將更新提供給用戶(hù),并允許該軟件包與卡閱讀器合作以便將更新提供給存儲(chǔ)卡,這樣,使存儲(chǔ)卡升級(jí)的過(guò)程也會(huì)變得比較簡(jiǎn)單。
根據(jù)本發(fā)明的另一個(gè)方面,用于更新與存儲(chǔ)卡有關(guān)的固件的一種系統(tǒng)包括(除了其上安裝有卡上固件的存儲(chǔ)卡以外)用于將新的卡上固件提供給存儲(chǔ)卡的裝置,以及將新的卡上固件并入存儲(chǔ)卡以便新的卡上固件至少局部代替已被安裝的卡上固件的裝置。在一個(gè)實(shí)施例中,用于將新的卡上固件提供給存儲(chǔ)卡的裝置包括一個(gè)主機(jī)和用于允許主機(jī)與存儲(chǔ)卡連接的裝置。該主機(jī)將新的卡上固件提供給用于允許主機(jī)與存儲(chǔ)卡連接的裝置,用于允許主機(jī)與存儲(chǔ)卡連接的裝置包括用于將新的卡上固件發(fā)送到存儲(chǔ)卡的裝置。
根據(jù)本發(fā)明的另一個(gè)方面,與閱讀器連接的記憶存儲(chǔ)設(shè)備包括存儲(chǔ)數(shù)據(jù)的一個(gè)存儲(chǔ)元件和固件。固件與該存儲(chǔ)元件合作,以存儲(chǔ)數(shù)據(jù)并執(zhí)行指令。固件也支持系統(tǒng)內(nèi)編程功能,這些功能使固件能夠被基本上更新,同時(shí),記憶存儲(chǔ)設(shè)備與閱讀器連接。在一個(gè)實(shí)施例中,記憶存儲(chǔ)設(shè)備也包括一種接收機(jī)制,該機(jī)制通過(guò)閱讀器來(lái)接收有關(guān)固件的更新。在這種實(shí)施例中,固件并入更新,以更新固件。
根據(jù)本發(fā)明的另一個(gè)方面,使存儲(chǔ)器設(shè)備能夠與計(jì)算系統(tǒng)進(jìn)行通信的適配器包括一個(gè)端口和固件。該端口被布置成基本上將該存儲(chǔ)器設(shè)備接納到適配器中,該固件支持系統(tǒng)內(nèi)編程功能。這些系統(tǒng)內(nèi)編程功能包括使計(jì)算系統(tǒng)能夠通過(guò)適配器來(lái)為存儲(chǔ)器設(shè)備提供有關(guān)存儲(chǔ)器設(shè)備的被更新的固件碼。在一個(gè)實(shí)施例中,適配器是USB閱讀器或PC閱讀器之一。
通過(guò)閱讀以下詳細(xì)的描述并研究各幅附圖,將會(huì)明白本發(fā)明的這些和其他的優(yōu)點(diǎn)。
附圖簡(jiǎn)述通過(guò)參考以下的描述并結(jié)合附圖,可以最佳程度地理解本發(fā)明。在這些附圖中
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一般主機(jī)系統(tǒng)的概略圖,該主機(jī)系統(tǒng)包括一個(gè)非易失存儲(chǔ)器設(shè)備。
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)、閱讀器和存儲(chǔ)卡的概略圖,它們是一個(gè)系統(tǒng)的一部分,在該系統(tǒng)中,可以更新與存儲(chǔ)卡有關(guān)的卡上固件。
圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的程序流程圖,展示了與更新卡上的卡上固件的過(guò)程有關(guān)的各個(gè)步驟。
圖4a和4b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的程序流程圖,展示了與更新安全數(shù)字存儲(chǔ)卡上的固件有關(guān)的各個(gè)步驟。
圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的程序流程圖,展示了與更新”CF”存儲(chǔ)卡上的固件有關(guān)的各個(gè)步驟。
圖6a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、與“檢查ISP”命令有關(guān)的命令描述符塊的概略圖,“檢查ISP”命令適用于具有安全數(shù)字存儲(chǔ)卡的系統(tǒng)中。
圖6b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)塊的概略圖,該數(shù)據(jù)塊適用于響應(yīng)于“檢查ISP”命令而將數(shù)據(jù)從閱讀器返回給主機(jī)。
圖6c是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、與“媒體卡執(zhí)行SD”命令有關(guān)的命令描述符塊的概略圖,“媒體卡執(zhí)行SD”命令適用于具有安全數(shù)字存儲(chǔ)卡的系統(tǒng)中。
圖7a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、與“媒體卡執(zhí)行CF”命令有關(guān)的命令描述符塊的概略圖,“媒體卡執(zhí)行CF”命令適用于具有”CF”存儲(chǔ)卡的系統(tǒng)中。
圖7b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)塊的概略圖,”CF”存儲(chǔ)卡可以響應(yīng)于“媒體卡執(zhí)行CF”命令而將該塊返回給主機(jī)。
圖8a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的、與“檢查ISP”命令有關(guān)的命令塊寄存器數(shù)據(jù)的概略圖,“檢查ISP”命令適用于小型快閃卡。
圖8b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的命令塊寄存器數(shù)據(jù)的概略圖,小型快閃卡可以將該命令塊寄存器數(shù)據(jù)返回給閱讀器。
圖8c是根據(jù)本發(fā)明的一個(gè)實(shí)施例的命令塊寄存器數(shù)據(jù)的概略圖,當(dāng)在處理“檢查ISP”命令的過(guò)程中遇到錯(cuò)誤時(shí),可以將該命令塊寄存器數(shù)據(jù)從小型卡發(fā)送到閱讀器。
圖8d是根據(jù)本發(fā)明的一個(gè)實(shí)施例的命令塊寄存器數(shù)據(jù)的概略圖,可以將該命令塊寄存器數(shù)據(jù)從小型快閃卡(作為“媒體卡執(zhí)行CF ISP”命令的一部分)發(fā)送到閱讀器。
圖8e是根據(jù)本發(fā)明的一個(gè)實(shí)施例的命令塊寄存器數(shù)據(jù)的概略圖,可以在小型快閃卡與閱讀器之間發(fā)送該命令塊寄存器數(shù)據(jù),這指出“媒體卡執(zhí)行CFISP”命令已正常執(zhí)行。
圖8f是根據(jù)本發(fā)明的一個(gè)實(shí)施例的命令塊寄存器數(shù)據(jù)的概略圖,可以將該命令塊寄存器數(shù)據(jù)從小型快閃卡發(fā)送到閱讀器,以指出“媒體卡執(zhí)行CF ISP”命令還沒(méi)有正常執(zhí)行。
實(shí)施例的詳細(xì)描述對(duì)于擁有者或用戶(hù)而言,用于使快閃存儲(chǔ)卡上的固件更新或升級(jí)的傳統(tǒng)程序經(jīng)常很不方便,既耗時(shí)、又困難。由于制造商通常更新用戶(hù)所擁有的存儲(chǔ)卡上的固件,因此,需要用戶(hù)將存儲(chǔ)卡提供給制造商常常很不方便,因?yàn)楫?dāng)存儲(chǔ)卡在制造商手中時(shí),用戶(hù)可能無(wú)法使用存儲(chǔ)卡。制造商用來(lái)更新存儲(chǔ)卡上的固件的程序經(jīng)常十分復(fù)雜,因而既耗時(shí)、又容易出錯(cuò)。
通過(guò)使用戶(hù)能夠基本上更新快閃存儲(chǔ)卡上的固件(例如,通過(guò)使用用戶(hù)可獲得的計(jì)算機(jī)和卡閱讀器),可以有效率地、(通常)比較方便地執(zhí)行更新。通過(guò)軟件包將更新提供給用戶(hù),并允許該軟件包與卡閱讀器合作以便將更新提供給存儲(chǔ)卡,這樣,使存儲(chǔ)卡升級(jí)的過(guò)程也會(huì)變得比較簡(jiǎn)單。
通常,結(jié)合主機(jī)系統(tǒng)來(lái)使用適用于總系統(tǒng)中的存儲(chǔ)卡,總系統(tǒng)允許更新與該存儲(chǔ)卡有關(guān)的固件。首先參考圖1,將描述包括一個(gè)非易失存儲(chǔ)器設(shè)備(例如,”CF”存儲(chǔ)卡或“安全數(shù)字”(SD)卡)的一般主機(jī)系統(tǒng)。主機(jī)或計(jì)算機(jī)系統(tǒng)100通常包括系統(tǒng)總線(xiàn)104,該系統(tǒng)總線(xiàn)允許微處理器108、隨機(jī)存取存儲(chǔ)器(RAM)112和輸入/輸出電路116進(jìn)行通信。應(yīng)該理解,主機(jī)系統(tǒng)100通??梢园ㄆ渌考?例如,顯示設(shè)備和聯(lián)網(wǎng)設(shè)備),這里沒(méi)有對(duì)其進(jìn)行舉例展示。
一般而言,主機(jī)系統(tǒng)100可能能夠捕獲的信息包括(但不局限于)靜態(tài)圖像信息、音頻信息和視頻圖像信息。這種信息可以被實(shí)時(shí)捕獲,并可以用無(wú)線(xiàn)方式被傳遞到主機(jī)系統(tǒng)100。主機(jī)系統(tǒng)100基本上可以是任何系統(tǒng),而主機(jī)系統(tǒng)100通常是諸如數(shù)字相機(jī)、攝像機(jī)、移動(dòng)通信設(shè)備、音頻播放機(jī)或視頻播放機(jī)的一種系統(tǒng)。但是,不言而喻,主機(jī)系統(tǒng)100通常實(shí)質(zhì)上可以是存儲(chǔ)數(shù)據(jù)或信息并檢索數(shù)據(jù)或信息的任何系統(tǒng)。
主機(jī)系統(tǒng)100也可以是要么只捕獲數(shù)據(jù)、要么只檢索數(shù)據(jù)的一種系統(tǒng)。也就是說(shuō),主機(jī)系統(tǒng)100可能是一種存儲(chǔ)數(shù)據(jù)的專(zhuān)用系統(tǒng),也可能是一種讀取數(shù)據(jù)的專(zhuān)用系統(tǒng)。舉例來(lái)講,主機(jī)系統(tǒng)100可能是只被安排為寫(xiě)入或存儲(chǔ)數(shù)據(jù)的存儲(chǔ)復(fù)寫(xiě)器。或者,主機(jī)系統(tǒng)100可能是諸如MP3播放機(jī)的一種設(shè)備,它通常被安排為讀取或檢索數(shù)據(jù),而不捕獲數(shù)據(jù)。
非易失存儲(chǔ)器設(shè)備120(在一個(gè)實(shí)施例中,它是可移動(dòng)的非易失存儲(chǔ)器設(shè)備)被安排為與總線(xiàn)104連接,以存儲(chǔ)信息。通常,非易失存儲(chǔ)器設(shè)備120通過(guò)接口130與總線(xiàn)104進(jìn)行通信。接口130可用于減少總線(xiàn)104上的負(fù)載,精通該技術(shù)領(lǐng)域的人將會(huì)理解這一點(diǎn)。在一個(gè)實(shí)施例中,接口130可能是閱讀器或適配器。
非易失存儲(chǔ)器設(shè)備120包括非易失存儲(chǔ)器124和存儲(chǔ)控制系統(tǒng)128。在一個(gè)實(shí)施例中,可以在單一芯片或管芯上執(zhí)行非易失存儲(chǔ)器設(shè)備120。或者,可以在多芯片模塊上或在多個(gè)離散部件(可以一起被用作非易失存儲(chǔ)器設(shè)備120)上執(zhí)行非易失存儲(chǔ)器設(shè)備120。
非易失存儲(chǔ)器124或核心被安排為存儲(chǔ)數(shù)據(jù),以便可以按需要來(lái)存取并讀取數(shù)據(jù)。雖然不言而喻,非易失存儲(chǔ)器124中的一些數(shù)據(jù)可能無(wú)法被消除,但是,也可以適當(dāng)?shù)叵且资Т鎯?chǔ)器124中所存儲(chǔ)的數(shù)據(jù)。存儲(chǔ)數(shù)據(jù)、讀取數(shù)據(jù)和消除數(shù)據(jù)的程序通常由存儲(chǔ)控制系統(tǒng)128來(lái)控制。在一個(gè)實(shí)施例中,存儲(chǔ)控制系統(tǒng)128對(duì)非易失存儲(chǔ)器124的操作進(jìn)行管理,以便通過(guò)本質(zhì)上使非易失存儲(chǔ)器124的各個(gè)部分的磨損程度基本上相等,來(lái)切實(shí)地將非易失存儲(chǔ)器124的壽命延長(zhǎng)到極限。
通常將非易失存儲(chǔ)器設(shè)備120描述為包括存儲(chǔ)控制系統(tǒng)128(即存儲(chǔ)控制器),但不言而喻,并非所有的非易失存儲(chǔ)器設(shè)備都包括一個(gè)控制器。舉例來(lái)講,包括(但不局限于)PC卡、”CF”卡、“多媒體”卡和“安全數(shù)字”卡的非易失存儲(chǔ)器設(shè)備包括控制器,而包括(但局限于)“智能媒體”卡和記憶棒卡的其他非易失存儲(chǔ)器設(shè)備可能不包括控制器。在一個(gè)實(shí)施例(其中,非易失存儲(chǔ)器設(shè)備124不包括控制器)中,可以將與控制器有關(guān)的各項(xiàng)功能并入一個(gè)單一芯片,精通該技術(shù)領(lǐng)域的人將會(huì)理解這一點(diǎn)。如前所述,不言而喻,非易失存儲(chǔ)器設(shè)備120通??梢宰鳛閱我恍酒O(shè)備或多芯片模塊來(lái)加以執(zhí)行。
在一個(gè)實(shí)施例中,主機(jī)系統(tǒng)100可能是通過(guò)卡閱讀器接口將信息存儲(chǔ)到非易失存儲(chǔ)器設(shè)備(例如,存儲(chǔ)卡)或從其那里讀取信息的一種計(jì)算機(jī)系統(tǒng)。也就是說(shuō),主機(jī)系統(tǒng)100可能是使用存儲(chǔ)卡來(lái)存儲(chǔ)數(shù)據(jù)和讀取數(shù)據(jù)的一種計(jì)算機(jī)系統(tǒng)。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一種計(jì)算機(jī)系統(tǒng)、閱讀器和存儲(chǔ)卡的概略圖,它們進(jìn)行合作,以更新與存儲(chǔ)卡有關(guān)的固件。計(jì)算機(jī)系統(tǒng)202通常通過(guò)閱讀器230與存儲(chǔ)卡220進(jìn)行通信。閱讀器230通常用作計(jì)算機(jī)系統(tǒng)202與存儲(chǔ)卡220之間的接口,以便使計(jì)算機(jī)系統(tǒng)202能夠?qū)?shù)據(jù)存儲(chǔ)在存儲(chǔ)卡220的存儲(chǔ)器224中并從存儲(chǔ)器224中檢索數(shù)據(jù)。也就是說(shuō),當(dāng)計(jì)算機(jī)系統(tǒng)202與存儲(chǔ)卡220進(jìn)行通信以便在計(jì)算機(jī)系統(tǒng)202與存儲(chǔ)卡220之間傳遞數(shù)據(jù)時(shí),通過(guò)閱讀器230來(lái)進(jìn)行通信。閱讀器230可以包括一個(gè)端口或插座(未示出),它使存儲(chǔ)卡220能夠用通信聯(lián)絡(luò)方式與閱讀器230連接,以便閱讀器230可以在存儲(chǔ)卡220與計(jì)算機(jī)系統(tǒng)202之間實(shí)現(xiàn)通信。
存儲(chǔ)卡220包括存儲(chǔ)器224和控制器228。存儲(chǔ)器224可以包括各個(gè)存儲(chǔ)元件、塊或存儲(chǔ)一些信息的單元??刂破?28與存儲(chǔ)器224連接,以促進(jìn)來(lái)自存儲(chǔ)器224的數(shù)據(jù)的存儲(chǔ)和檢索??刂破?28包括卡上固件229,卡上固件229通過(guò)有效地允許使用控制器228來(lái)執(zhí)行或運(yùn)行指令,可以促進(jìn)控制器228的操作。對(duì)于其中可以使用計(jì)算機(jī)系統(tǒng)202和閱讀器230來(lái)更新卡上固件229的一個(gè)實(shí)施例而言,卡上固件229也包括系統(tǒng)內(nèi)編程(ISP)支持功能。ISP支持功能通常所提供的功能性使用戶(hù)基本上能夠更新卡上固件299,而不要求將存儲(chǔ)卡220返回給制造商用于更新卡上固件299。
閱讀器230(例如,可能是“通用串行總線(xiàn)”(USB)閱讀器或個(gè)人計(jì)算機(jī)(PC)卡閱讀器)包括閱讀器固件232,該閱讀器固件允許閱讀器230運(yùn)行與閱讀器230的操作有關(guān)的指令。類(lèi)似于卡上固件229,閱讀器固件232也包括ISP支持功能。也就是說(shuō),將閱讀器固件232安排為支持卡上固件229的更新或升級(jí)。
當(dāng)確定卡上固件229需要更新或升級(jí)(例如,通過(guò)來(lái)自存儲(chǔ)卡220的制造商的通知)時(shí),計(jì)算機(jī)系統(tǒng)202可以從網(wǎng)絡(luò)240獲得包括新的或被更新的卡上固件的軟件210。舉例來(lái)講,計(jì)算機(jī)系統(tǒng)202可以與網(wǎng)絡(luò)240上的一個(gè)網(wǎng)站(與存儲(chǔ)卡220的制造商有關(guān)聯(lián))進(jìn)行通信,以下載軟件210和(在一個(gè)實(shí)施例中)軟件驅(qū)動(dòng)器206。不言而喻,也可以使用媒體存儲(chǔ)設(shè)備(例如,CD-ROM或軟盤(pán))來(lái)獲得軟件210,從而代替通過(guò)網(wǎng)絡(luò)240來(lái)獲得軟件210。
計(jì)算機(jī)系統(tǒng)202可以與閱讀器230合作,使用軟件210中所包括的信息來(lái)更新卡上固件229。例如,軟件210中所包括的新的或被更新的卡上固件基本上可以由計(jì)算機(jī)系統(tǒng)202從軟件210中提取出來(lái),并被提供給使用閱讀器230的存儲(chǔ)卡220。將被更新的卡上固件提供給存儲(chǔ)卡220通常涉及將被更新的卡上固件作為輸入提供給存儲(chǔ)卡220(例如,作為到存儲(chǔ)卡220的輸入/輸出端口或接收機(jī)制(未示出)的輸入)。當(dāng)閱讀器230和存儲(chǔ)卡都包括ISP支持功能時(shí),存儲(chǔ)卡220可以成功地并入被更新的卡上固件。
當(dāng)固件被下載時(shí),可以分配一小組ISP代碼來(lái)處理ISP。不言而喻,一旦開(kāi)始下載被更新的固件,卡上固件229通常就基本上完成其所有的內(nèi)部活動(dòng)。此外,一旦開(kāi)始下載被更新的卡上固件,卡上固件229可能就無(wú)法處理除與讀取被更新的卡上固件內(nèi)容有關(guān)的命令和與下載過(guò)程有關(guān)的命令以外的任何命令。一旦完成下載,存儲(chǔ)卡220就可以使用新近安裝的固件來(lái)執(zhí)行重置程序。
參考圖3,將根據(jù)本發(fā)明的一個(gè)實(shí)施例來(lái)描述與更新存儲(chǔ)卡上的卡上固件有關(guān)的一般步驟。更新卡上固件的程序302在步驟306處開(kāi)始,在該步驟中,包括新的卡上固件(將實(shí)質(zhì)上取代當(dāng)前在存儲(chǔ)卡上的卡上固件)的軟件被下載到計(jì)算機(jī)(即與存儲(chǔ)卡進(jìn)行通信的計(jì)算機(jī))上。如以上有關(guān)圖2的描述,包括新的卡上固件的軟件可以從網(wǎng)絡(luò)被下載到計(jì)算機(jī)上。
一旦軟件被下載,就在步驟310中執(zhí)行軟件,以便將新的卡上固件下載到閱讀器上,該閱讀器用作計(jì)算機(jī)與存儲(chǔ)卡之間的接口。在一個(gè)實(shí)施例中,執(zhí)行軟件包括實(shí)際上從軟件中提取新的卡上固件,以便新的卡上固件可以被發(fā)送或下載到閱讀器。在新的卡上固件被下載到閱讀器上之后,工藝流程進(jìn)行到步驟314,其中,閱讀器將新的卡上固件發(fā)送或下載到存儲(chǔ)卡。一接收到或獲得新的卡上固件,新的卡上固件就在步驟318中被安裝在存儲(chǔ)卡上。通常,新的卡上固件取代或增大曾在存儲(chǔ)卡上的卡上固件。一旦新的卡上固件被安裝在存儲(chǔ)卡上,就完成了更新卡上固件的過(guò)程。
一般而言,用于更新卡上固件的特殊程序可能會(huì)根據(jù)正在被更新的存儲(chǔ)卡的類(lèi)型而變化。舉例來(lái)講,用于更新SD存儲(chǔ)卡的卡上固件的程序可能會(huì)不同于用于更新CF存儲(chǔ)卡上的卡上固件的程序。將結(jié)合圖4a和4b來(lái)描述用于更新SD存儲(chǔ)卡的卡上固件的一個(gè)合適的程序,同時(shí),以下將參考圖5來(lái)描述用于更新CF存儲(chǔ)卡的卡上固件的一個(gè)合適的程序。
圖4a和4b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的程序流程圖,展示了與更新SD卡上的固件有關(guān)的各個(gè)步驟。更新SD卡上的固件的程序400在步驟404處開(kāi)始,在該步驟中,主計(jì)算機(jī)確定允許該主計(jì)算機(jī)與SD卡連接的閱讀器是否支持ISP。在所描述的實(shí)施例中,通過(guò)檢查閱讀器上是否有關(guān)于ISP支持的小型計(jì)算機(jī)系統(tǒng)接口(SCSI)“詢(xún)問(wèn)”數(shù)據(jù)信息,可以進(jìn)行這種確定。精通該技術(shù)領(lǐng)域的人將會(huì)理解,SCSI是USB系統(tǒng)使用的一個(gè)并行接口標(biāo)準(zhǔn),用于將外圍設(shè)備(例如,卡閱讀器)連接到計(jì)算機(jī)。關(guān)于SD卡是否支持ISP的確定可以包括確定卡特殊性數(shù)據(jù)信息中的一個(gè)特定的位是否被加以設(shè)置(例如,卡特殊性數(shù)據(jù)信息中的第九個(gè)位是否被設(shè)置為“1”)。
不言而喻,與更新SD卡上的固件有關(guān)的各個(gè)步驟也可以被應(yīng)用于更新“多媒體”卡(MMC)上的固件。照此,雖然按照SD卡來(lái)進(jìn)行描述,但是,與程序400有關(guān)的步驟通常也可以應(yīng)用于MMC卡。
在步驟408中,確定閱讀器是否支持ISP。如果確定閱讀器不支持ISP,那么,表示閱讀器可能不被用于促進(jìn)對(duì)SD卡上的固件的更新。照此,工藝流程進(jìn)行到步驟412,其中,提出一個(gè)例外,以指出閱讀器不支持ISP。一旦提出該例外,就有效地終止了更新SD卡上的固件的過(guò)程。
或者,如果在步驟408中確定閱讀器支持ISP,那么,在步驟416中,主機(jī)將命令(例如,“SCSI檢查ISP”命令)發(fā)送到閱讀器上的固件,以啟用ISP支持。以下將結(jié)合圖6a來(lái)描述“檢查ISP”命令的一個(gè)實(shí)施例。在發(fā)送“檢查ISP”命令之后,在步驟420中,在閱讀器上啟用ISP支持。在一個(gè)實(shí)施例中,啟用ISP支持可以包括響應(yīng)于“檢查ISP”命令,將卡特殊性數(shù)據(jù)信息中的第12個(gè)位設(shè)置為“1”。響應(yīng)于啟用ISP支持的命令,閱讀器可以將數(shù)據(jù)結(jié)構(gòu)返回給切實(shí)地識(shí)別SD卡的相對(duì)卡地址(RCA)的主機(jī),以下將參考圖6b來(lái)討論這一點(diǎn)。
一旦在閱讀器上啟用ISP支持,就在步驟424中在SD或MMC卡上啟用ISP支持。在一個(gè)實(shí)施例中,在SD或MMC卡上啟用ISP支持可以包括將具有第20個(gè)位組的卡特殊性數(shù)據(jù)寫(xiě)入(即,指出ISP被支持)使用主機(jī)的SD或MMC卡。實(shí)行檢索的CMD9命令和對(duì)卡特殊性數(shù)據(jù)進(jìn)行編程的CMD27命令可能切實(shí)地被嵌入“SCSI媒體卡執(zhí)行SD”命令內(nèi),以下將結(jié)合圖6c來(lái)討論這一點(diǎn)。
在卡特殊性數(shù)據(jù)被寫(xiě)入SD卡或MMC卡之后,在步驟428中將與CMD16有關(guān)的塊長(zhǎng)設(shè)置為卡上固件的尺寸,該卡上固件將從主機(jī)被轉(zhuǎn)移到SD卡或MMC卡。精通該技術(shù)領(lǐng)域的人將會(huì)理解,CMD16命令是SD卡和MMC卡所識(shí)別的一個(gè)標(biāo)準(zhǔn)命令。MMCA技術(shù)委員會(huì)于2000年1月發(fā)表的《多媒體卡系統(tǒng)說(shuō)明書(shū)(2.2版本)》中描述了CMD16命令,該文被包括于此,用作其整體參考。CMD16命令可以被嵌入“媒體卡執(zhí)行SD”命令內(nèi)。
在步驟432中,通過(guò)使用諸如ACMD24命令的命令(可以被嵌入“媒體卡執(zhí)行SD”命令內(nèi))的閱讀器,將CMD16命令和新的卡上固件從主機(jī)發(fā)送到SD卡。一般而言,ACMD24命令使新的卡上固件能夠被寫(xiě)入SD卡。照此,一旦ACMD24命令被SD卡接收到,SD卡實(shí)質(zhì)上就可以安裝新的卡上固件。
一旦新的卡上固件被安裝在SD卡上,該卡就在步驟436中執(zhí)行開(kāi)電重置。也就是說(shuō),SD卡有效地重新引導(dǎo)自身,以便使與SD卡有關(guān)的初始化代碼能夠執(zhí)行,從而切實(shí)地對(duì)被更新的卡上固件(即包括新的卡上固件的卡上固件)進(jìn)行初始化。在一個(gè)實(shí)施例中,由卡上固件執(zhí)行的開(kāi)電重置本質(zhì)上包括停止使用SD卡,然后重新起動(dòng)SD卡。在執(zhí)行開(kāi)電重置之后,主機(jī)在步驟440中將“檢查ISP”命令發(fā)送給閱讀器,以禁止ISP支持。可以通過(guò)發(fā)送具有被設(shè)置為“0”的一個(gè)合適的位的“檢查ISP”命令,來(lái)禁止ISP支持。
一接收到禁止ISP支持的命令,閱讀器通常就在步驟444中用電子學(xué)方法將自身與主機(jī)分離。用電子學(xué)方法將閱讀器與主機(jī)分離可以包括閱讀器使自身與主機(jī)的USB總線(xiàn)分離;而用電子學(xué)方法將閱讀器與主機(jī)分離也可以包括在物理上將閱讀器與主機(jī)分離。一旦用電子學(xué)方法將閱讀器與主機(jī)分離,閱讀器就在步驟448中發(fā)送命令給SD卡,以便重新對(duì)SD卡進(jìn)行初始化。CMD0命令可以重置SD卡,而CMD1命令可以激活MMC卡的初始化過(guò)程,ACMD41可以激活SD卡。
在SD卡被重新初始化之后,閱讀器在步驟452中用電子學(xué)方法將自身重新連接到主機(jī)。通過(guò)在步驟452中用電子學(xué)方法將自身重新連接到主機(jī),閱讀器可有效地使主機(jī)或(尤其是)與主機(jī)有關(guān)的軟件跟作為新設(shè)備的SD卡相互作用。換言之,通過(guò)在步驟444中對(duì)閱讀器實(shí)行電子分離并在步驟452中對(duì)閱讀器實(shí)行電子再連接,切實(shí)地使主機(jī)將SD卡視作新設(shè)備,因而使SD卡上的被更新的固件能夠?yàn)橹鳈C(jī)所識(shí)別。一旦閱讀器用電子學(xué)方法將自身重新連接到主機(jī),就完成了更新SD卡上的卡上固件的過(guò)程。
另一種類(lèi)型的存儲(chǔ)卡可以支持ISP,因而包括實(shí)質(zhì)上可以由用戶(hù)更新的卡上固件,這種存儲(chǔ)卡是CF卡。圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的程序流程圖,展示了與更新CF卡上的固件有關(guān)的各個(gè)步驟。將新的卡上固件提供給CF卡的程序500始于步驟504,在該步驟中,主計(jì)算機(jī)確定允許主計(jì)算機(jī)與CF卡連接的閱讀器是否支持ISP。在所描述的實(shí)施例中,通過(guò)檢查閱讀器上是否具備有關(guān)ISP支持的“SCSI詢(xún)問(wèn)”數(shù)據(jù)信息,可以進(jìn)行這種確定。有關(guān)CF卡是否支持ISP的確定可以包括確定包含設(shè)備信息的特定字中的一個(gè)特定的位是否被適當(dāng)?shù)丶右栽O(shè)置(例如,“識(shí)別設(shè)備”信息中的第83個(gè)字的位零是否被設(shè)置為“1”)。
在步驟508中,確定閱讀器是否支持ISP。如果確定閱讀器不支持ISP,那么,表示可能不使用閱讀器來(lái)更新CF卡上的固件。因此,工藝流程進(jìn)行到步驟512,在該步驟中,拋出一個(gè)例外,以指出閱讀器不支持ISP。一旦拋出該例外,就有效地終止了更新CF卡上的固件的過(guò)程。
或者,如果在步驟508中確定閱讀器支持ISP,那么,主機(jī)將命令(例如,“SCSI檢查ISP”命令)發(fā)送給閱讀器上的固件,以啟用ISP支持。以下將結(jié)合圖8a來(lái)描述適用于CF卡的“檢查ISP”命令的一個(gè)實(shí)施例。在發(fā)送“檢查ISP”命令之后,在步驟520中,在閱讀器上啟用ISP支持。在一個(gè)實(shí)施例中,啟用ISP支持可以包括響應(yīng)于“檢查ISP”命令,將“識(shí)別設(shè)備”信息的第86個(gè)字中的位零設(shè)置為“1”。
在步驟524中,啟用CF卡上的ISP支持。通常,主機(jī)發(fā)送一個(gè)命令給CF卡,該命令使CF卡自身能夠接收和并入新固件。在一個(gè)實(shí)施例中,該命令可能是“媒體卡檢查CF ISP”,可能采取被嵌入“SCSI媒體卡執(zhí)行CF”命令中的“AT連接”(ATA)命令的形式。在該技術(shù)領(lǐng)域中眾所周知的ATA命令在位于加利福尼亞州的Sunnyvale的SanDisk公司2000年4月所發(fā)表的《小型快閃存儲(chǔ)卡產(chǎn)品手冊(cè)》中有所描述,該文被包括于此,用作其整體參考。以下將結(jié)合圖7a來(lái)描述其中嵌入“媒體卡檢查CF ISP”命令的一項(xiàng)“SCSI媒體卡執(zhí)行CF”命令。
一旦啟用CF卡上的ISP支持,就在步驟528中將新的卡上固件從主機(jī)發(fā)送到CF卡。在“媒體卡執(zhí)行CF ISP”命令(是可以被嵌入“SCSI媒體卡執(zhí)行CF”命令內(nèi)的ATA命令)中,可以將新的卡上固件從主機(jī)發(fā)送到CF卡。在新的卡上固件被發(fā)送到CF卡之后,CF卡在步驟532中執(zhí)行開(kāi)電重置操作,該步驟禁止CF卡上的ISP支持。然后,工藝流程進(jìn)行到步驟534,在該步驟中,主機(jī)將“檢查ISP”命令發(fā)送給閱讀器,以禁止閱讀器上的ISP支持。
在禁止閱讀器上的ISP支持之后,閱讀器通常在步驟536中用電子學(xué)方法將自身與主機(jī)分離。一旦用電子學(xué)方法將閱讀器與主機(jī)分離,閱讀器就在步驟540中發(fā)送命令給CF卡,以便重新對(duì)CF卡進(jìn)行初始化。在一個(gè)實(shí)施例中,除了重置CF卡以外,閱讀器也可以從CF卡中讀取新的設(shè)備識(shí)別信息。從步驟540開(kāi)始,工藝流程進(jìn)行到步驟544,在該步驟中,閱讀器用電子學(xué)方法將自身重新連接到主機(jī)。通過(guò)用電子學(xué)方法將自身重新連接到主機(jī),閱讀器有效地使主機(jī)或(尤其是)與主機(jī)有關(guān)的軟件跟作為新設(shè)備的CF卡相互作用。閱讀器一將自身重新連接到主機(jī),就完成了更新CF卡上的卡上固件的過(guò)程。
如以上有關(guān)圖4a和4b的陳述,支持SD卡的ISP的總系統(tǒng)包括“檢查ISP”命令的識(shí)別。也就是說(shuō),與SD卡有關(guān)的ISP特點(diǎn)組包括“檢查ISP”命令。圖6a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的“檢查ISP”命令的命令描述符塊的概略圖?!皺z查ISP”命令描述符塊602通常包括12個(gè)字節(jié)606,每個(gè)字節(jié)有8個(gè)位610。塊602與D0h命令代碼有關(guān)聯(lián),并且,它本質(zhì)上是從主機(jī)被發(fā)送到閱讀器(例如,從主機(jī)被發(fā)送到與閱讀器有關(guān)的固件)的SCSI命令的一個(gè)部分。
字節(jié)606a被安排為包括一個(gè)操作代碼。字節(jié)606k的位610a被安排為啟用媒體卡通過(guò)命令。也就是說(shuō),字節(jié)606k的位610a被安排為指出主機(jī)是否可以通過(guò)閱讀器而切實(shí)地直接將命令或軟件發(fā)送給卡,而不是讓主機(jī)發(fā)送命令給閱讀器,閱讀器再將該命令發(fā)送給卡。在所描述的實(shí)施例中,字節(jié)606k的位610a或“PASS ENB”域可以被設(shè)置為值“1”,以指出媒體卡通過(guò)功能性被啟用。
通常,由于ISP一般使用通過(guò)命令,因此,當(dāng)啟用ISP支持時(shí),啟用媒體卡通過(guò)功能性。當(dāng)啟用ISP支持時(shí),ISP ENB域(例如,字節(jié)606k的位610b)可以被設(shè)置為值“1”。于是,在所描述的實(shí)施例中,由于ISP使用通過(guò)命令,因此,當(dāng)ISP ENB域被設(shè)置為“1”時(shí),PASS ENB域也被設(shè)置為“1”。為了禁止ISP支持,可以將ISP ENB域設(shè)置為值“0”。
字節(jié)606k的位610h是一個(gè)“鎖位”,它可以被設(shè)置為值“1”,以指出可能無(wú)法通過(guò)改變ISP ENB域或PASS ENB域來(lái)更改ISP模式或支持和媒體卡通過(guò)模式(即,使主機(jī)能夠通過(guò)閱讀器而切實(shí)地直接將卡上固件發(fā)送給卡的一種模式)。換言之,字節(jié)606k的位610h有效地用于防止在啟用ISP模式和媒體卡通過(guò)模式方面發(fā)生錯(cuò)誤。
當(dāng)ISP ENB域被設(shè)置為“1”并且與閱讀器有關(guān)的固件接收到塊602時(shí),閱讀器固件可以為ISP處理設(shè)置一個(gè)內(nèi)部標(biāo)志。也就是說(shuō),閱讀器固件可以將自身配置成啟用ISP處理。閱讀器固件也可以進(jìn)行檢查,以確定SD卡的卡特殊性數(shù)據(jù)是否具備ISP支持功能。在將閱讀器固件配置成啟用ISP處理并且用被設(shè)置為“0”的ISP ENB域接收塊602或清除塊602之后,閱讀器固件通常假設(shè)對(duì)應(yīng)的卡上固件已被更新,或者,主機(jī)終止更新過(guò)程。結(jié)果,閱讀器可以重置卡,將自身與主機(jī)的USB總線(xiàn)分離,并將自身重新連接到主機(jī)。
在一個(gè)實(shí)施例中,閱讀器可以響應(yīng)于“檢查ISP”命令而將數(shù)據(jù)塊返回給主機(jī)。圖6b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)塊的概略圖,該數(shù)據(jù)塊響應(yīng)于“檢查ISP”命令而被返回給主機(jī)。數(shù)據(jù)塊622包括三個(gè)字節(jié)626,每個(gè)字節(jié)有8個(gè)位630;該數(shù)據(jù)塊從閱讀器被發(fā)送到主機(jī),作為對(duì)所接收的“檢查ISP”命令的確認(rèn)。不言而喻,當(dāng)接收“檢查ISP”命令的閱讀器無(wú)法支持ISP時(shí),閱讀器可以將一個(gè)代碼返回給主機(jī),該主機(jī)指出“檢查ISP”命令實(shí)際上曾是無(wú)效的。由具有“非法請(qǐng)求”(ILLEGAL REQUEST)的“SCSI傳感數(shù)據(jù)格式”來(lái)識(shí)別無(wú)效命令,值5作為“傳感密鑰”和“CDB中的無(wú)效域”(INVALIDFIELD IN CDB),值24h和00h作為ASC和ASCQ。
數(shù)據(jù)塊622的第一個(gè)字節(jié)626a包括作為PASS ENB域的位630,這個(gè)域指出閱讀器是否被安排為指出在執(zhí)行“檢查ISP”命令之后,是否啟用媒體卡通過(guò)功能。第一個(gè)字節(jié)626a中的第二個(gè)位630b是ISP ENB域,這個(gè)域被安排為指出是否啟用ISP支持。通常,PASS ENB域中的值“1”指出媒體卡通過(guò)功能被啟用,而ISP ENB域中的值“1”指出ISP支持被啟用。
字節(jié)626a的位630c-f被安排為包含一種媒體卡類(lèi)型。例如,在一個(gè)實(shí)施例中,如果卡是標(biāo)準(zhǔn)SD存儲(chǔ)卡,則字節(jié)626a的位630c-f可以被設(shè)置為“001”;而如果卡是MMC卡,則字節(jié)626a的位630c-f可以被設(shè)置為“010”。在這種實(shí)施例中,可以為SD輸入-輸出(IO)卡將字節(jié)626a的位630c-f設(shè)置為“011”,可以為個(gè)人計(jì)算機(jī)存儲(chǔ)卡國(guó)際協(xié)會(huì)(PCMCIA)卡將字節(jié)626a的位630c-f設(shè)置為“100”,并且,可以為CF卡將字節(jié)626a的位630c-f設(shè)置為“101”。不言而喻,與卡型有關(guān)的各種代碼可以改變。
一些卡型具有有關(guān)的RCA。例如,當(dāng)卡是SD卡時(shí),字節(jié)626b和626c可以包括RCA位,這些RCA位被主機(jī)用來(lái)切實(shí)地確保命令被發(fā)送到合適的地址(即與卡有關(guān)的地址)。
圖6c是根據(jù)本發(fā)明的一個(gè)實(shí)施例的“媒體卡執(zhí)行SD”命令描述符塊的概略圖?!懊襟w卡執(zhí)行SD”命令塊652可以被布置在對(duì)應(yīng)的SCSI命令描述符(未示出)內(nèi),將該命令塊安排為允許主機(jī)發(fā)送命令給通過(guò)閱讀器的SD卡,并且,該命令塊與D1h命令代碼有關(guān)聯(lián)。
塊652通常被安排作為被嵌入總SCSI命令的SD命令或包裝。字節(jié)656a被安排為包含與操作代碼有關(guān)的信息,在所描述的實(shí)施例中,該操作代碼與D1h命令代碼一致。
被嵌入塊652中的SD或MMC命令包括字節(jié)656c-j。當(dāng)閱讀器接收塊652時(shí),閱讀器切實(shí)地至少除去嵌入命令的一些部分(即,除去與字節(jié)656c-j有關(guān)的信息),并將嵌入命令發(fā)送到接受的SC卡。嵌入命令包括被存儲(chǔ)在字節(jié)656c中的一個(gè)命令索引。該命令索引切實(shí)地將命令保存到SD卡,而被存儲(chǔ)在字節(jié)656d-g中的命令自變量是到與命令索引有關(guān)的命令的自變量。字節(jié)656h-j保存與將要從主機(jī)被轉(zhuǎn)移的數(shù)據(jù)量有關(guān)的數(shù)據(jù)傳遞長(zhǎng)度。
塊652的字節(jié)656k被安排為(例如)在位660e-h中包含一種響應(yīng)類(lèi)型,該響應(yīng)類(lèi)型指出字節(jié)656c中被識(shí)別的命令的SD或MMC響應(yīng)類(lèi)型。字節(jié)656k的位660d被安排為指出數(shù)據(jù)傳遞的方向。舉例來(lái)講,當(dāng)字節(jié)656k的位660d被設(shè)置為值“1”時(shí),可以將數(shù)據(jù)從閱讀器傳遞到主機(jī);而當(dāng)字節(jié)656k的位660d被設(shè)置為值“0”時(shí),可以將數(shù)據(jù)從主機(jī)傳遞到閱讀器。字節(jié)656k的位660c被安排為指出一種命令類(lèi)型,以便當(dāng)位660c被設(shè)置為值“1”時(shí),命令被認(rèn)為是正常命令,而當(dāng)位660c被設(shè)置為值“0”時(shí),命令被認(rèn)為是應(yīng)用命令。當(dāng)將要檢索響應(yīng)數(shù)據(jù)時(shí),字節(jié)656k的位660b(響應(yīng)于命令關(guān)聯(lián)字節(jié)656c,它指出是否要檢索響應(yīng)數(shù)據(jù))可以被設(shè)置為值“1”;當(dāng)不將檢索響應(yīng)數(shù)據(jù)時(shí),它可以被設(shè)置為值“0”。將要被檢索的任何響應(yīng)數(shù)據(jù)的長(zhǎng)度實(shí)質(zhì)上由字節(jié)656h-j中所保存的數(shù)據(jù)傳遞長(zhǎng)度來(lái)規(guī)定。
一般而言,“媒體卡執(zhí)行SD”命令開(kāi)始與塊652有關(guān)的嵌入SD命令的執(zhí)行。閱讀器或(尤其是)與閱讀器有關(guān)的固件可以將嵌入命令發(fā)送到SD卡,并可以接收任何預(yù)期的響應(yīng)。舉例來(lái)講,如果嵌入命令是從SD卡中檢索數(shù)據(jù)的命令,則閱讀器通常將會(huì)從SD卡讀取數(shù)據(jù)并將該數(shù)據(jù)傳遞給主機(jī)。如果閱讀器不具備被安排裝載從主機(jī)讀取的數(shù)據(jù)的緩沖器,則閱讀器可以從SD卡讀取部分?jǐn)?shù)據(jù)并將該部分?jǐn)?shù)據(jù)傳遞給主機(jī)。通常,對(duì)于沒(méi)有緩沖器的閱讀器而言,閱讀器將會(huì)繼續(xù)讀取并傳遞部分?jǐn)?shù)據(jù),直到從SD卡所要求的基本上所有的數(shù)據(jù)都被傳遞給主機(jī)為止。同樣,如果嵌入命令是將數(shù)據(jù)(例如,新的卡上固件)寫(xiě)入SD卡的命令,則閱讀器可以從主機(jī)讀取數(shù)據(jù),并且,例如,當(dāng)閱讀器不包括緩沖器時(shí),可以基本上突然或逐漸增量地將數(shù)據(jù)從主機(jī)傳遞到SD卡。精通該技術(shù)領(lǐng)域的人將會(huì)理解,通??梢允褂脤?shí)質(zhì)上任何合適的協(xié)議來(lái)實(shí)現(xiàn)數(shù)據(jù)傳遞。在一個(gè)實(shí)施例中,可以使用遵守X3T10標(biāo)準(zhǔn)的數(shù)據(jù)傳遞協(xié)議。
適用于SD卡的“媒體卡執(zhí)行”命令通常不同于適用于CF卡的“媒體卡執(zhí)行”命令。參考圖7a,將根據(jù)本發(fā)明來(lái)描述“媒體卡執(zhí)行CF”命令的一個(gè)實(shí)施例,“媒體卡執(zhí)行CF”命令適合用于允許更新與CF卡有關(guān)的固件的系統(tǒng)中?!癝CSI媒體卡執(zhí)行CF”命令的命令描述符塊702(通常被嵌入總SCSI命令描述符內(nèi))包括12個(gè)字節(jié)706,每個(gè)字節(jié)有8個(gè)位710?!懊襟w卡執(zhí)行CF”命令通常與D2h命令代碼一致。字節(jié)706a被安排為包含與操作代碼有關(guān)的信息,在所描述的實(shí)施例中,該操作代碼與D2h命令代碼一致。
實(shí)質(zhì)上,使用ATA任務(wù)文件寄存器來(lái)填充字節(jié)706f-k。換言之,字節(jié)706f-k可以對(duì)應(yīng)于ATA命令1F2至1F7,以便與CF卡有關(guān)的任務(wù)文件寄存器可以作為數(shù)據(jù)被返回。精通該技術(shù)領(lǐng)域的人將會(huì)理解,任務(wù)文件寄存器可以包括(但不局限于)錯(cuò)誤寄存器、扇區(qū)計(jì)數(shù)寄存器、扇區(qū)寄存器、柱面低寄存器、柱面高寄存器、設(shè)備/磁頭寄存器和命令/狀態(tài)寄存器。通常,字節(jié)706f-k可以由閱讀器取出,并被發(fā)送到CF卡。關(guān)于其中數(shù)據(jù)將從CF卡被傳遞到閱讀器的實(shí)施例,寄存器值可以從CF卡中被加以檢索,并以圖7b中所示的格式通過(guò)閱讀器被返回給主機(jī)。示出雖然位716c-j通常將具有不同的任務(wù)文件寄存器值,但是,如圖7b所示的塊752包括的位716c-j對(duì)應(yīng)于塊702的位c-j。
字節(jié)7061被安排為包括位710a,該位指出啟動(dòng)“媒體卡執(zhí)行CF”命令的主機(jī)是否計(jì)劃讀回ATA任務(wù)文件寄存器。當(dāng)字節(jié)7061的位710a被設(shè)置為值“1”時(shí),可能會(huì)指出主機(jī)實(shí)質(zhì)上計(jì)劃只讀回ATA任務(wù)文件寄存器。圖7b中表現(xiàn)了被返回的任務(wù)文件寄存器的數(shù)據(jù)格式。將字節(jié)7061的第二個(gè)位710b安排成被設(shè)置為用于讀取或輸入操作的值“1”,并被設(shè)置為用于寫(xiě)入或輸出操作的值“0”。字節(jié)7061的第三個(gè)位710c被安排為指出是否有將要被傳遞的數(shù)據(jù)。
一般而言,除了當(dāng)字節(jié)7061的位710a被設(shè)置為值“1”時(shí)以外,閱讀器取出字節(jié)706f-k,并將任務(wù)文件寄存器發(fā)送到CF卡。如果要求傳遞數(shù)據(jù)(即,當(dāng)字節(jié)7061的位710c指出有將要被傳遞的數(shù)據(jù)時(shí)),則任務(wù)文件寄存器使用標(biāo)準(zhǔn)協(xié)議(例如,USB大容量存儲(chǔ)類(lèi)別的只大塊協(xié)議)來(lái)指定扇區(qū)計(jì)數(shù)寄存器、扇區(qū)寄存器、柱面寄存器和磁頭寄存器。通常在塊702(例如,在字節(jié)7061的位710b中)和實(shí)質(zhì)上包圍塊702的USB包裝中指定數(shù)據(jù)傳遞方向和數(shù)據(jù)傳遞長(zhǎng)度。在一個(gè)實(shí)施例中,所使用的數(shù)據(jù)傳遞協(xié)議遵守諸如X3T13標(biāo)準(zhǔn)的標(biāo)準(zhǔn)。
適用于CF卡的“檢查ISP”命令可以由閱讀器固件來(lái)生成,并被發(fā)送到CF卡。在所描述的實(shí)施例中,這種“檢查ISP”命令也可以適用于SD卡。也就是說(shuō),對(duì)于CF卡和SD卡而言,“檢查ISP”命令可以一樣。這種“檢查ISP”命令可以與CF卡的D5h命令代碼一致,并且,一旦閱讀器生成該命令,該命令通常就從閱讀器被發(fā)送到快閃卡。圖8a是根據(jù)本發(fā)明的一個(gè)實(shí)施例的命令塊的概略圖,該命令塊與適用于CF卡的“檢查ISP”命令有關(guān)聯(lián)。命令塊804包括與寄存器812有關(guān)的位808。在一個(gè)實(shí)施例中,寄存器可能與圖7a中的字節(jié)706f-706k有關(guān)聯(lián)。也就是說(shuō),塊804可能被有效地嵌入圖7a中的塊702內(nèi)。
與寄存器812a有關(guān)的位808a被安排為指出是將啟用CF或SD卡來(lái)支持ISP,還是將禁止CF或SD卡支持ISP。例如,寄存器812a的位808a可以被設(shè)置為值“1”,以指出將要啟用ISP模式;它被設(shè)置為值“0”,以指出將要禁止使用ISP模式。與寄存器812g有關(guān)的位808被安排為指出Dh5命令代碼。
通常,如果閱讀器支持媒體卡通過(guò)特點(diǎn)組,并且“檢查ISP”命令中的合適的位被設(shè)置成啟用ISP支持(例如,圖8a中的字節(jié)812a的位808a被設(shè)置為“1”),那么,閱讀器會(huì)被配置成切實(shí)地處理任何隨后的媒體卡通過(guò)命令。不言而喻,如果圖8a中的字節(jié)812a的位808a被設(shè)置為“0”,則表示主機(jī)已在CF卡上禁止ISP模式。照此,沒(méi)有ISP命令可以通過(guò)閱讀器而被發(fā)送到CF卡。
將結(jié)合圖8b來(lái)描述與支持ISP命令的閱讀器有關(guān)的狀態(tài)寄存器輸出。圖8b是根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)塊的概略圖,該數(shù)據(jù)塊可以由CF卡返回給閱讀器。塊814包括寄存器822,這些寄存器中的每個(gè)寄存器都包括8個(gè)位818。在所描述的實(shí)施例中,0h在錯(cuò)誤寄存器822a和柱面寄存器822d、822e中被返回,而55h在扇區(qū)計(jì)數(shù)寄存器822b中被返回,AAh在扇區(qū)數(shù)字寄存器822c中被返回。
設(shè)備磁頭寄存器822f被安排為指出位818e中的一個(gè)所選擇的設(shè)備,它通常被設(shè)置為值“0”,只有一張媒體卡被連接到閱讀器,并且,指出寫(xiě)保護(hù)是否在位818d中的CF卡內(nèi)起作用。當(dāng)寫(xiě)保護(hù)起作用時(shí),可以將寄存器822f的位818d設(shè)置為值“1”;而如果寫(xiě)保護(hù)不起作用,則可以將寄存器822f的位818d設(shè)置為值“0”。寄存器822f的位818a-c可以被設(shè)置成指出一種媒體類(lèi)型。例如,當(dāng)卡是CF卡時(shí),寄存器822f的位818a-c可以被設(shè)置為值“101”。不言而喻,已將塊814描述為適合從CF卡被傳遞到閱讀器,但也可以將塊814配置成用于其他媒體類(lèi)型。當(dāng)塊814用于其他媒體類(lèi)型時(shí),寄存器822f的位818a-c的內(nèi)容可以指出合適的媒體類(lèi)型。
狀態(tài)寄存器822g(通常返回50H)包括位818h,一旦適當(dāng)?shù)赝瓿擅?例如,“檢查ISP”命令),位818h就被設(shè)置為值“0”。在狀態(tài)寄存器822g內(nèi),位818g可以被設(shè)置為值“1”,而當(dāng)完成命令時(shí),設(shè)備故障位818f、位818d和錯(cuò)誤位818a可以被設(shè)置為值“0”。
當(dāng)在處理“檢查ISP”命令的過(guò)程中有錯(cuò)誤時(shí),錯(cuò)誤輸出塊可以從CF卡被發(fā)送到閱讀器。這種錯(cuò)誤輸出塊通??梢灾赋鰶](méi)有啟用ISP支持。圖8c是根據(jù)本發(fā)明的一個(gè)實(shí)施例的錯(cuò)誤數(shù)據(jù)塊的概略圖,當(dāng)在處理“檢查ISP”命令的過(guò)程中遇到錯(cuò)誤時(shí),該錯(cuò)誤數(shù)據(jù)塊可以從CF卡被發(fā)送到閱讀器。錯(cuò)誤數(shù)據(jù)塊824包括被分成位828的寄存器832。當(dāng)在處理諸如“檢查ISP”命令的命令的過(guò)程中發(fā)生錯(cuò)誤時(shí),錯(cuò)誤寄存器832a中的一個(gè)位(例如,位828c)通常被設(shè)置成指出還沒(méi)有成功地處理該命令。在一個(gè)實(shí)施例中,錯(cuò)誤寄存器832a的位828c可以被設(shè)置成值“1”,以指出已有效地放棄命令。
與設(shè)備/磁頭寄存器832f有關(guān)的位828e被安排為指出所選擇的設(shè)備,并通常被設(shè)置為值“0”,只有一張媒體卡被連接到閱讀器。狀態(tài)寄存器832g被安排為包括各種信息。舉例來(lái)講,狀態(tài)寄存器832g包括位828a,該位通常被設(shè)置為值“1”,以指出已發(fā)生錯(cuò)誤;而位828h被安排為切實(shí)地被清除到值“0”,以指出已有效地完成命令的執(zhí)行;如果發(fā)生設(shè)備故障,則位828f(被安排為指出何時(shí)發(fā)生設(shè)備故障)被設(shè)置為值“1”。在所描述的實(shí)施例中,寄存器832g的位828g可以被設(shè)置為“1”,以便將塊824識(shí)別為錯(cuò)誤數(shù)據(jù)塊;而寄存器832g的位828d可以被設(shè)置為“0”,以識(shí)別沒(méi)有更多的數(shù)據(jù)要傳遞。
“媒體卡執(zhí)行CF ISP”命令(可能與D6h命令代碼一致)與“媒體卡執(zhí)行CF”命令(例如,以上結(jié)合圖7a所描述的命令)有關(guān)聯(lián)。“媒體卡執(zhí)行CF ISP”命令通常開(kāi)始被嵌入對(duì)應(yīng)的SCSI命令內(nèi)的本地命令的執(zhí)行。嵌入命令是從CF卡或基礎(chǔ)卡中檢索固件數(shù)據(jù)的命令,對(duì)應(yīng)的閱讀器可以從CF卡讀取該數(shù)據(jù)并將所讀取的數(shù)據(jù)傳遞到主機(jī)。如果閱讀器不包括緩沖器,則可以從CF卡讀取部分?jǐn)?shù)據(jù),并在一個(gè)程序中將其傳遞到主機(jī),該程序可以被重復(fù),直到基本上傳遞所有所讀取的數(shù)據(jù)為止?;蛘?,如果嵌入命令是將固件數(shù)據(jù)寫(xiě)入CF卡(即,更新CF卡上的固件)的命令,則閱讀器通常將從主機(jī)讀取數(shù)據(jù),并將所讀取的數(shù)據(jù)從主機(jī)傳遞到CF卡。當(dāng)適配器沒(méi)有緩沖器時(shí),可以從主機(jī)讀取部分?jǐn)?shù)據(jù),并將其重復(fù)地傳遞到CF卡,直到基本上所有的數(shù)據(jù)都被傳遞到CF卡為止。
圖8d是根據(jù)本發(fā)明的一個(gè)實(shí)施例的命令塊的概略圖,該命令塊可以作為“媒體卡執(zhí)行CF ISP”命令在閱讀器與CF卡之間被發(fā)送。命令塊844包括寄存器852,這些寄存器每個(gè)都包括8個(gè)位848。命令寄存器852g被安排為指出塊844與D6h命令代碼一致,而特點(diǎn)寄存器852a包括位848b-h,這些位被安排為返回0h值和位848a(被安排為指定數(shù)據(jù)傳遞方向)。當(dāng)將要從CF卡讀取固件時(shí),特點(diǎn)寄存器852a的位848a可以被設(shè)置為值“1”;而當(dāng)固件將要被寫(xiě)入CF卡時(shí),特點(diǎn)寄存器852a的位848a可以被設(shè)置為值“0”。
扇區(qū)計(jì)數(shù)寄存器852b被安排為存儲(chǔ)將要被處理(即,將要從CF卡被讀取,或?qū)⒁粚?xiě)入CF卡)的許多扇區(qū)。扇區(qū)數(shù)字寄存器852c被安排為存儲(chǔ)或返回與CF卡中的固件有關(guān)的開(kāi)始邏輯塊地址(LBA)的最不重要的位,而柱面寄存器852d、852e被安排為分別存儲(chǔ)LBA的中間字節(jié)和LBA的最重要的位。
參考圖8e,將描述命令塊的一個(gè)實(shí)施例,該命令塊可以在CF卡與閱讀器(指出“媒體卡執(zhí)行CF ISP”命令已正常執(zhí)行)之間被發(fā)送。當(dāng)命令已基本上成功地執(zhí)行時(shí),命令塊864(包括被分成寄存器872的位868)可以從CF卡被發(fā)送到閱讀器。寄存器872a-e可以基本上被清除,而設(shè)備/磁頭寄存器872f可以包括指出設(shè)備的位868e,并可以被設(shè)置為值“0”,只有一張媒體卡被連接到閱讀器,這有效地成為與該命令的執(zhí)行有關(guān)的目標(biāo)。
狀態(tài)寄存器872g(被安排為返回50H)包括位868h,該位被設(shè)置為值“0”,以指出已完成命令的執(zhí)行。狀態(tài)寄存器872g的位868g可以被設(shè)置為值“1”,而位868a、868d、868f都可以基本上被清除或被設(shè)置為值“0”,以指出命令已正常執(zhí)行。
當(dāng)在處理命令(例如,“媒體卡執(zhí)行CF ISP”命令)的過(guò)程中發(fā)生錯(cuò)誤時(shí),可以將錯(cuò)誤數(shù)據(jù)塊從CF卡發(fā)送到閱讀器,以指出已發(fā)生錯(cuò)誤。例如,當(dāng)主機(jī)預(yù)期CF卡具有20千字節(jié)(kbs)的固件時(shí),在命令的處理期間可能會(huì)發(fā)生錯(cuò)誤,CF卡實(shí)際上具有10kbs的固件。圖8f是根據(jù)本發(fā)明的一個(gè)實(shí)施例的錯(cuò)誤塊的概略圖,該錯(cuò)誤塊可以從CF卡被發(fā)送到閱讀器,以指出“媒體卡執(zhí)行CF ISP”命令還沒(méi)有正常執(zhí)行。錯(cuò)誤數(shù)據(jù)塊892包括與寄存器892有關(guān)的位888。狀態(tài)寄存器892f包括位888e,該位識(shí)別曾經(jīng)作為失敗命令的目標(biāo)的設(shè)備或CF卡。
當(dāng)在處理命令的過(guò)程中有錯(cuò)誤時(shí),CF卡可以設(shè)置狀態(tài)寄存器892g的位888a,以指出已發(fā)生錯(cuò)誤,并可以相應(yīng)地在錯(cuò)誤寄存器892a中設(shè)置有關(guān)的位888。例如,如果CF卡有根本的數(shù)據(jù)錯(cuò)誤,則錯(cuò)誤寄存器892a的位888g可以被設(shè)置為值“1”。此外,在一個(gè)實(shí)施例中,如果該卡在下載過(guò)程結(jié)束之前被移走或被更改,則字節(jié)892a的位888c可以被設(shè)置為值“1”,以指出失敗的過(guò)程。也就是說(shuō),錯(cuò)誤寄存器892a的位888c可以被設(shè)置為值“1”,以指出由于命令.沒(méi)有獲得支持,因此,命令被放棄了;曾經(jīng)沒(méi)有執(zhí)行命令;或者,曾啟動(dòng)命令的執(zhí)行,但沒(méi)有完成。
在狀態(tài)寄存器892g內(nèi),必須根據(jù)X3T10協(xié)議來(lái)設(shè)置位888d。如果由于設(shè)備故障而在處理命令的過(guò)程中發(fā)生錯(cuò)誤,或者,更通常的情況是,如果發(fā)生了設(shè)備故障,那么,狀態(tài)寄存器892g的位888f可以被設(shè)置為值“1”。當(dāng)曾完成命令時(shí),狀態(tài)寄存器892g的位888g可以被設(shè)置為值“1”。
如果可應(yīng)用的話(huà),則扇區(qū)數(shù)字寄存器892c被安排為提供與正在命令執(zhí)行過(guò)程中引起錯(cuò)誤的CF卡中的扇區(qū)有關(guān)的LBA的最不重要的位。也就是說(shuō),當(dāng)某個(gè)扇區(qū)導(dǎo)致命令的執(zhí)行被放棄時(shí),那個(gè)扇區(qū)的LBA的最不重要的位被返回到扇區(qū)數(shù)字寄存器892c中的閱讀器。當(dāng)扇區(qū)是失敗命令的原因時(shí),柱面低寄存器892d和柱面高寄存器892e被安排為分別返回該扇區(qū)的LBA的中間字節(jié)和該扇區(qū)的LBA的最重要的位。
雖然只描述了本發(fā)明的一些實(shí)施例,但是,應(yīng)該理解,在不脫離本發(fā)明的精神或范圍的前提下,本發(fā)明可以用許多其他特殊的形式來(lái)加以具體表現(xiàn)。舉例來(lái)講,閱讀器通常被描述為是USB閱讀器,但閱讀器實(shí)質(zhì)上可以是允許存儲(chǔ)卡與主機(jī)系統(tǒng)進(jìn)行通信的任何合適的閱讀器或適配器。合適的閱讀器包括(但不局限于)PC卡閱讀器。
通常將固件的下載描述為涉及通過(guò)閱讀器而實(shí)質(zhì)上將新的卡上固件或代碼從主計(jì)算機(jī)直接發(fā)送到存儲(chǔ)卡或媒體卡。當(dāng)實(shí)質(zhì)上將固件從主計(jì)算機(jī)直接發(fā)送到卡時(shí),基本上可以通過(guò)只升級(jí)計(jì)算機(jī)上的軟件,來(lái)實(shí)現(xiàn)將會(huì)增強(qiáng)總系統(tǒng)的性能的任何變化。換言之,可能不一定要更新閱讀器固件來(lái)增強(qiáng)ISP功能。本質(zhì)上,可以增強(qiáng)ISP功能,以便使與主計(jì)算機(jī)系統(tǒng)有關(guān)的軟件升級(jí)。但是,不言而喻,在一些實(shí)施例中,新的卡上固件可以從主計(jì)算機(jī)被發(fā)送到閱讀器,該閱讀器可以將ISP命令發(fā)送到存儲(chǔ)卡。
當(dāng)新的卡上固件被提供給存儲(chǔ)卡以更新或升級(jí)存儲(chǔ)卡時(shí),新的卡上固件通??梢园ü碳葏^(qū),這些扇區(qū)意在取代當(dāng)前在存儲(chǔ)卡中的對(duì)應(yīng)的固件扇區(qū)。新的卡上固件也可以包括將要被加入當(dāng)前在存儲(chǔ)卡上的固件(例如,增大當(dāng)前的固件)的固件扇區(qū)。在一個(gè)實(shí)施例中,被提供給存儲(chǔ)卡的新的卡上固件可以意在基本上取代當(dāng)前在存儲(chǔ)卡上的所有固件。
與各種功能和命令描述符有關(guān)的位和字可能會(huì)發(fā)生很大的變化。換言之,特殊的位或字按某種方法被設(shè)置在命令描述符塊中,以指出與塊有關(guān)的各種不同的狀態(tài),這些特殊的位或字可能會(huì)發(fā)生變化。例如,被設(shè)置成指出ISP被支持的位,以及被設(shè)置成啟用ISP支持的位通常可能會(huì)改變。例如,實(shí)質(zhì)上可以設(shè)置任何其他的位,而代替將卡特殊性數(shù)據(jù)信息中的位19設(shè)置為“1”,以指出ISP在與SD卡有關(guān)的系統(tǒng)中被支持。只要總系統(tǒng)知道將要設(shè)置哪個(gè)位以指出ISP被支持,就可以設(shè)置任何位。
命令和數(shù)據(jù)塊通常被描述為適用于SD卡或CF卡,但應(yīng)該理解,命令通??梢詰?yīng)用于其他類(lèi)型的存儲(chǔ)卡。舉例來(lái)講,適合SD卡的命令也可以適合多媒體卡。此外,已被描述為適用于CF卡的命令和數(shù)據(jù)塊可以被增大,以用于包括(但不局限于)SD卡的其他類(lèi)型的卡?;蛘?,這種命令和數(shù)據(jù)塊實(shí)質(zhì)上可以適用于一些類(lèi)型的存儲(chǔ)卡,而無(wú)須增大。
此外,具有固件(可以使用ISP命令來(lái)加以更新)的存儲(chǔ)卡可能會(huì)發(fā)生很大的變化。具有固件(可以使用以上所描述的方法來(lái)加以更新)的其他類(lèi)型的存儲(chǔ)卡包括(但不局限于)記憶棒卡和“智能媒體卡”。
主機(jī)被描述為與閱讀器進(jìn)行通信,該閱讀器與存儲(chǔ)卡進(jìn)行通信。雖然主機(jī)和閱讀器實(shí)質(zhì)上可能是分開(kāi)的實(shí)體(即,閱讀器可能是可容易地連接到主機(jī)并與主機(jī)分離的外圍設(shè)備),但是,應(yīng)該理解,閱讀器也可能是主機(jī)的一部分。例如,閱讀器可能是主機(jī)的一個(gè)整體部分,它可能無(wú)法被容易地連接到主機(jī)或與主機(jī)分離。
在一個(gè)實(shí)施例中,可被更新的固件可以包括使ISP能夠被支持的固件代碼。也就是說(shuō),可以使用被安排為更新或升級(jí)卡上固件的ISP程序,在存儲(chǔ)卡中更新ISP代碼本身。尤其是,如果卡上固件在電可擦除編程只讀存儲(chǔ)器(EEPROM)中,并且,固件的執(zhí)行在靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)中,那么,可以在卡上固件更新程序期間更新與卡上固件有關(guān)的ISP代碼。
一般而言,與本發(fā)明的各種程序有關(guān)的步驟可能會(huì)有很大的變化。在不脫離本發(fā)明的精神或范圍的前提下,可以重新安排、改變、增加和取消步驟。舉例來(lái)講,與更新SD卡和CF卡上的卡上固件有關(guān)的程序可以包括一些步驟,這些步驟與確定SD卡和CF卡是否分別支持ISP有關(guān)聯(lián)。所以,這些例子將被認(rèn)為起說(shuō)明作用,而不起限制作用,本發(fā)明不局限于這里所提供的細(xì)節(jié),而可以在所附權(quán)利要求書(shū)的范圍內(nèi)加以修改。
權(quán)利要求
1.用于更新與記憶存儲(chǔ)設(shè)備有關(guān)的固件的一種方法,其特征在于,包括將新固件提供給主機(jī);將新固件從主機(jī)發(fā)送到閱讀器,主機(jī)與閱讀器進(jìn)行通信,閱讀器被安排為與記憶存儲(chǔ)設(shè)備連接,其中,記憶存儲(chǔ)設(shè)備包括所安裝的固件;將新固件從閱讀器發(fā)送到記憶存儲(chǔ)設(shè)備;以及,將新固件并入記憶存儲(chǔ)設(shè)備,其中,新固件至少局部取代所安裝的固件。
2.如權(quán)利要求1所述的方法,其特征在于,還包括將新固件嵌入第一個(gè)命令,其中,將新固件從主機(jī)發(fā)送到閱讀器包括將第一個(gè)命令從主機(jī)發(fā)送到閱讀器。
3.如權(quán)利要求2所述的方法,其特征在于,還包括實(shí)質(zhì)上從第一個(gè)命令中提取被嵌入的新固件,其中,閱讀器實(shí)質(zhì)上提取被嵌入的新固件。
4.如權(quán)利要求1所述的方法,其特征在于,將新固件提供給主機(jī)包括從服務(wù)器下載新固件。
5.如權(quán)利要求1所述的方法,其特征在于,通過(guò)將新固件并入記憶存儲(chǔ)設(shè)備,可以更新所安裝的固件。
6.如權(quán)利要求5所述的方法,其特征在于,將新固件并入記憶存儲(chǔ)設(shè)備還包括將新固件寫(xiě)入使用主機(jī)所述的記憶存儲(chǔ)設(shè)備。
7.如權(quán)利要求6所述的方法,其特征在于,還包括啟用閱讀器上所述的系統(tǒng)內(nèi)編程功能,其中,這些系統(tǒng)內(nèi)編程功能允許新固件被并入記憶存儲(chǔ)設(shè)備。
8.如權(quán)利要求7所述的方法,其特征在于,還包括在將新固件并入記憶存儲(chǔ)設(shè)備之后,重置記憶存儲(chǔ)設(shè)備;禁止使用閱讀器上所述的系統(tǒng)內(nèi)編程功能;切實(shí)地用通信聯(lián)絡(luò)方法使閱讀器與主機(jī)分離;重新對(duì)記憶存儲(chǔ)設(shè)備進(jìn)行初始化;以及,切實(shí)地用通信聯(lián)絡(luò)方法重新將閱讀器連接到主機(jī)。
9.如權(quán)利要求8所述的方法,其特征在于,記憶存儲(chǔ)設(shè)備是包括一個(gè)非易失存儲(chǔ)器的存儲(chǔ)卡。
10.如權(quán)利要求9所述的方法,其特征在于,存儲(chǔ)卡是從包括安全數(shù)字卡、”CF”卡、多媒體卡、智能媒體卡和記憶棒卡等一組中選擇的一種卡。
11.用于更新與存儲(chǔ)卡有關(guān)的固件的一種系統(tǒng),其特征在于,該系統(tǒng)包括存儲(chǔ)卡,該存儲(chǔ)卡包括所安裝的卡上固件;用于將新的卡上固件提供給存儲(chǔ)卡的裝置;以及,用于將新的卡上固件并入存儲(chǔ)卡以便新的卡上固件至少局部取代所安裝的卡上固件的裝置。
12.根據(jù)如權(quán)利要求11所述的系統(tǒng),其特征在于,用于將新的卡上固件提供給存儲(chǔ)卡的裝置包括一臺(tái)主機(jī);以及,用于允許主機(jī)與存儲(chǔ)卡連接的裝置,主機(jī)被安排為將新的卡上固件提供給用于允許主機(jī)與存儲(chǔ)卡連接的裝置,其中,用于允許主機(jī)與存儲(chǔ)卡連接的裝置包括用于將新的卡上固件發(fā)送到存儲(chǔ)卡的裝置。
13.根據(jù)如權(quán)利要求12所述的系統(tǒng),其特征在于,主機(jī)包括用于將新的卡上固件嵌入第一個(gè)命令的裝置;其中,主機(jī)將第一個(gè)命令提供給用于允許主機(jī)與存儲(chǔ)卡連接的裝置。
14.根據(jù)如權(quán)利要求13所述的系統(tǒng),其特征在于,用于允許主機(jī)與存儲(chǔ)卡連接的裝置包括用于切實(shí)地從第一個(gè)命令中提取被嵌入的新的卡上固件的裝置。
15.根據(jù)如權(quán)利要求12所述的系統(tǒng),其特征在于,主機(jī)被安排為將信息寫(xiě)到存儲(chǔ)卡上。
16.根據(jù)如權(quán)利要求12所述的系統(tǒng),其特征在于,主機(jī)被安排為從存儲(chǔ)卡讀取信息。
17.根據(jù)如權(quán)利要求11所述的系統(tǒng),其特征在于,存儲(chǔ)卡包括一個(gè)非易失存儲(chǔ)器。
18.根據(jù)如權(quán)利要求15所述的系統(tǒng),其特征在于,存儲(chǔ)卡是從包括安全數(shù)字卡、“CF”卡、多媒體卡和記憶棒卡等一組中選擇的一種卡。
19.一種記憶存儲(chǔ)設(shè)備,該記憶存儲(chǔ)設(shè)備被安排為與閱讀器連接,其特征在于,該記憶存儲(chǔ)設(shè)備包括一個(gè)存儲(chǔ)元件,該存儲(chǔ)元件被安排為存儲(chǔ)數(shù)據(jù);固件,該固件被安排為與存儲(chǔ)元件合作以存儲(chǔ)數(shù)據(jù)并執(zhí)行指令,該固件進(jìn)一步被安排為支持系統(tǒng)內(nèi)編程功能,其中,系統(tǒng)內(nèi)編程功能使固件能夠被基本上更新,而記憶存儲(chǔ)設(shè)備與閱讀器連接。
20.如權(quán)利要求19所述的記憶存儲(chǔ)設(shè)備,其特征在于,還包括一種接收機(jī)制,該接收機(jī)制被安排為通過(guò)閱讀器來(lái)接收固件的更新。
21.如權(quán)利要求20所述的記憶存儲(chǔ)設(shè)備,其特征在于,固件被安排為并入更新,以便更新固件。
22.如權(quán)利要求21所述的記憶存儲(chǔ)設(shè)備,其特征在于,被更新的固件包括一種功能,該功能執(zhí)行開(kāi)電重置,以便切實(shí)地重置與記憶存儲(chǔ)設(shè)備有關(guān)的固件。
23.如權(quán)利要求19所述的記憶存儲(chǔ)設(shè)備,其特征在于,還包括一個(gè)控制器,其中,固件被包括在該控制器中。
24.如權(quán)利要求19所述的記憶存儲(chǔ)設(shè)備,其特征在于,存儲(chǔ)元件是非易失記憶存儲(chǔ)元件。
25.如權(quán)利要求24所述的記憶存儲(chǔ)設(shè)備,其特征在于,記憶存儲(chǔ)設(shè)備是從包括安全數(shù)字卡、“CF”卡、多媒體卡和記憶棒卡等一組中選擇的一種卡。
26.一種適配器,該適配器被安排為使存儲(chǔ)器設(shè)備能夠與計(jì)算系統(tǒng)進(jìn)行通信,其特征在于,該適配器包括一個(gè)端口,該端口被安排為接受存儲(chǔ)器設(shè)備;一個(gè)固件,該固件被安排為支持系統(tǒng)內(nèi)編程功能,這些系統(tǒng)內(nèi)編程功能包括使計(jì)算系統(tǒng)能夠通過(guò)適配器來(lái)為存儲(chǔ)器設(shè)備提供存儲(chǔ)器設(shè)備的被更新的固件代碼。
27.如權(quán)利要求25所述的適配器,其特征在于,適配器是USB閱讀器或PC閱讀器之一。
28.一種命令描述符,該命令描述符適用于包括主機(jī)、閱讀器和記憶存儲(chǔ)設(shè)備的計(jì)算機(jī)系統(tǒng)中,該閱讀器和記憶存儲(chǔ)設(shè)備被安排為支持與閱讀器有關(guān)的固件所述的系統(tǒng)內(nèi)編程更新,其特征在于,該命令描述符包括第一組二進(jìn)制位,這第一組二進(jìn)制位被安排為指出操作代碼,該操作代碼與命令描述符所支持的第一個(gè)命令有關(guān)聯(lián);以及,至少第一個(gè)二進(jìn)制位,該至少的第一個(gè)位被安排為指出將在記憶存儲(chǔ)設(shè)備中啟用系統(tǒng)內(nèi)編程。
29.如權(quán)利要求28所述的命令描述符,其特征在于,還包括至少第二個(gè)二進(jìn)制位,該至少的第二個(gè)位被安排為指出至少第二個(gè)命令能夠通過(guò)閱讀器從主機(jī)傳遞到記憶存儲(chǔ)設(shè)備,其中,第二個(gè)命令是通過(guò)命令。
30.如權(quán)利要求28所述的命令描述符,其特征在于,至少的第一個(gè)位被安排為切實(shí)地使與閱讀器有關(guān)的固件將內(nèi)部標(biāo)志設(shè)置成指出固件所述的系統(tǒng)內(nèi)編程更新被支持。
全文摘要
揭示了用于有效率地使與快閃存儲(chǔ)卡有關(guān)的固件能夠被更新的方法和裝置。根據(jù)本發(fā)明的一個(gè)方面,用于更新與記憶存儲(chǔ)設(shè)備有關(guān)的固件的一種方法包括將新固件提供給主機(jī),并將該新固件從主機(jī)發(fā)送到與主機(jī)進(jìn)行通信的閱讀器。該閱讀器與包括所安裝的固件的記憶存儲(chǔ)設(shè)備連接。該方法也包括將新固件從閱讀器發(fā)送到記憶存儲(chǔ)設(shè)備,并將新固件并入記憶存儲(chǔ)設(shè)備,以便新固件至少局部取代所安裝的固件。在一個(gè)實(shí)施例中,該方法還包括將新固件嵌入第一個(gè)命令。在這種實(shí)施例中,將新固件從主機(jī)發(fā)送到閱讀器包括將第一個(gè)命令從主機(jī)發(fā)送到閱讀器。
文檔編號(hào)G06K17/00GK1547699SQ02803634
公開(kāi)日2004年11月17日 申請(qǐng)日期2002年10月3日 優(yōu)先權(quán)日2001年11月6日
發(fā)明者R·張, P·李, F·薩比特-沙爾吉, R 張, 忍 沙爾吉 申請(qǐng)人:三因迪斯克公司