專利名稱:通訊中可隨時固件更新的存儲卡及其固件更新方法
技術(shù)領域:
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領域,具體來說,本發(fā)明涉及一種通訊中可隨時固件更新的存儲卡及其固件更新方法。
背景技術(shù):
目前存儲卡固件更新方法通常需要“拆卸外殼”或者“卡識別后燒寫”這兩種方式。(I) “拆卸外殼”方式存儲卡的固件通常存放在外部存儲器中,若固件發(fā)生損壞或者新版本固件出現(xiàn)時,通常需要進行固件更新。“拆卸外殼”方式需要先將存儲卡外殼打開,從電路板上拆卸下來外部存儲器,或?qū)⒋鎯ζ魈囟ㄒ_短接,然后接通電源,強行將存儲卡進入“量產(chǎn)模式”。
但現(xiàn)有的存儲卡尺寸很小,外殼拆卸難度極大,尤其隨著封測技術(shù)提高,存儲卡控制器和外部存儲器通常做成一體或COB形式(黑膠體),這使得存儲器根本無法拆卸,因此導致產(chǎn)品報廢。(2) “卡識別后燒寫”方式首先需要存儲卡和主機通信成功,卡被識別后,主機才能通過讀/寫命令進行存儲卡固件更新。此方法的弊端是若固件已損壞或部分損壞,無法被識別,則無法更新。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種通訊中可隨時固件更新的存儲卡及其固件更新方法,可以采用純軟件方式有效地解決通訊過程中任何時刻的固件更新問題。為解決上述技術(shù)問題,本發(fā)明提供一種通訊中可隨時固件更新的存儲卡,與讀卡器相連接,所述存儲卡包括存儲器,用于存儲數(shù)據(jù);存儲卡控制器,通過存儲器訪問總線與所述存儲器相連接,用于按照存儲卡規(guī)范控制所述存儲卡工作;非標準命令收集模塊,一端通過通信總線與所述存儲卡控制器相連接,另一端通過儲存卡接口與所述讀卡器相連接,用于偵測并收集由所述讀卡器向所述存儲卡發(fā)出的非標準命令,據(jù)此對所述存儲卡進行狀態(tài)轉(zhuǎn)換??蛇x地,所述非標準命令收集模塊與所述存儲卡控制器集成為一體,或者彼此分離。可選地,所述非標準命令為留給廠商自定義命令,包括CMD60、CMD61、CMD62、CMD63
及其任意組合??蛇x地,所述存儲卡包括SD卡、MMC卡;其中,所述SD卡包括標準尺寸SD卡、MiniSD卡、MicroSD卡;所述麗C卡包括標準尺寸麗C卡、e麗C卡??蛇x地,所述儲存卡接口為符合存儲卡協(xié)議的通訊接口,包括SD卡、MiniSD卡、MicroSD卡、MMC卡、eMMC卡通訊接口。可選地,所述通訊接口至少支持SD2. 0規(guī)范、SD3. 0規(guī)范、SD3. 01規(guī)范、SD4. 0規(guī)范或其以上版本規(guī)范??蛇x地,所述存儲器包括Nand閃存、Nor閃存、SPI閃存、EEProm或者其任意組合。為解決上述技術(shù)問題,本發(fā)明還提供一種采用上述任一項所述的存儲卡進行固件更新的方法,所述存儲卡與讀卡器相連接,包括步驟在標準模式下偵測所述讀卡器向所述存儲卡控制器發(fā)出的命令是否屬于非標準命令;若所述命令確屬非標準命令,則所述存儲卡轉(zhuǎn)為工廠模式,收集所述非標準命令,并依據(jù)一自定義規(guī)則判斷所述存儲卡應進入的特殊模式;所述存儲卡依據(jù)上述判斷結(jié)果執(zhí)行相應的固件更新動作; 待固件更新完畢,所述存儲卡重新回到標準模式??蛇x地,所述非標準命令包括讀命令、寫命令和非讀寫的其他非標準命令,相應的特殊模式包括讀模式、寫模式和非讀寫的其他工廠模式。可選地,所述標準模式包括SD 卡的 idle、ready、ident、stby、tran、data、rev、prg、dis、ina 共 10 種工作狀態(tài),和 / 或 MMC 卡的 idle、ready、ident、stby、tran、data、btst、rev、prg、dis、ina、sip、irq 共 13 種工作狀態(tài)。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明在保持存儲卡正常通訊模式的基礎上,加入非標準命令收集模塊,從而增加了一套更新固件的工廠模式,由此可有效解決通訊過程中任何時刻的固件更新問題。存儲卡無論固件損壞或者采用何種封裝,都可以在不用拆卸外殼或者破壞任何硬件外觀的條件下,采用純軟件方式進行固件更新或修復,恢復正常。隨著諸如iPhone、iPad等電子產(chǎn)品中對eMMC卡的廣泛使用,使得拆卸外殼和卡識別難以實現(xiàn),本發(fā)明可以徹底解決此類問題,尤其適合存儲卡在通訊過程中的各種ISP(系統(tǒng)編程)和IAP (應用編程)的應用。
本發(fā)明的上述的以及其他的特征、性質(zhì)和優(yōu)勢將通過下面結(jié)合附圖和實施例的描述而變得更加明顯,其中圖I為本發(fā)明一個實施例的通訊中可隨時固件更新的存儲卡的模塊結(jié)構(gòu)示意圖;圖2為本發(fā)明一個實施例的通訊中可隨時固件更新的存儲卡處于標準模式時的模塊結(jié)構(gòu)示意圖;圖3為本發(fā)明一個實施例的通訊中可隨時固件更新的存儲卡處于工廠模式時的模塊結(jié)構(gòu)示意圖;圖4為本發(fā)明一個實施例的通訊中可隨時固件更新的存儲卡進行固件更新的方法流程圖。
具體實施例方式下面結(jié)合具體實施例和附圖對本發(fā)明作進一步說明,在以下的描述中闡述了更多的細節(jié)以便于充分理解本發(fā)明,但是本發(fā)明顯然能夠以多種不同于此描述的其它方式來實施,本領域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下根據(jù)實際應用情況作類似推廣、演繹,因此不應以此具體實施例的內(nèi)容限制本發(fā)明的保護范圍。目前,嵌入式系統(tǒng)中大量應用存儲卡來存儲數(shù)據(jù)。一般地,常用存儲卡包括SD卡和MMC卡。在使用中需要進行固件升級來保證對最新版本協(xié)議的支持或進行錯誤固件的排除。圖I為本發(fā)明一個實施例的通訊中可隨時固件更新的存儲卡的模塊結(jié)構(gòu)示意圖。如圖I所示,該通訊中可隨時固件更新的存儲卡201可以為SD卡和MMC卡,其中SD卡包括標準尺寸SD卡、MiniSD卡、MicroSD卡等;MMC卡包括標準尺寸MMC卡、eMMC卡等,其與讀卡器208相連接。該存儲卡201可以包括存儲器202、存儲卡控制器203和非標準命令收集模塊206。其中,存儲器202可以為Nand閃存、Nor閃存、SPI閃存、EEProm或者其任意組合,用于存儲數(shù)據(jù)。存儲卡控制器203通過存儲器訪問總線204與存儲器202相連接,用于按照存儲卡規(guī)范控制存儲卡201工作。非標準命令收集模塊206 —端通過通信總線207與存 儲卡控制器203相連接,另一端通過儲存卡接口 205與讀卡器208相連接,用于偵測并收集由讀卡器208向存儲卡(201)中的存儲卡控制器203發(fā)出的非標準命令,據(jù)此對存儲卡201進行狀態(tài)轉(zhuǎn)換。在本實施例中,該非標準命令收集模塊206在存儲卡201內(nèi)部可以與存儲卡控制器203集成為一體,或者也可以彼此分離。該非標準命令又稱為留給廠商自定義命令(reserved for manufacturer 命令),包括 CMD60、CMD61、CMD62、CMD63 及其任意組合,它 /它們的行為可以由廠商(manufacturer)自定義。例如,在一個實施例中,可以將CMD60定義為狀態(tài)轉(zhuǎn)換命令(從“標準模式”轉(zhuǎn)換至IJ “工廠模式”),CMD61定義為“工廠寫”命令,CMD62定義為“工廠讀”命令,CMD63定義為
“退出工廠模式”命令。另外,用于使非標準命令收集模塊206與讀卡器208之間連接的儲存卡接口205可為符合存儲卡協(xié)議的通訊接口,可以包括SD卡、MiniSD卡、MicroSD卡、MMC卡、eMMC卡通訊接口。SD卡通訊接口至少支持SD2. 0規(guī)范、SD3. 0規(guī)范、SD3. 01規(guī)范、SD4. 0規(guī)范或其以上版本規(guī)范。本發(fā)明的通訊中可隨時固件更新的存儲卡201存在兩種工作模式標準模式,以及在標準模式的基礎上增加的一套工廠模式。圖2為本發(fā)明一個實施例的通訊中可隨時固件更新的存儲卡處于標準模式時的模塊結(jié)構(gòu)示意圖。當存儲卡201收到標準命令時,進入“標準模式”,標準模式分為若干狀態(tài),例如SD卡可以包括本領域技術(shù)人員所公知的“idle、ready> ident、stby、tran、data、rev、prg、dis、ina” 共 10 種工作狀態(tài);而 MMC 卡也可以包括本領域技術(shù)人員所公知的 “idle、ready、ident、stby、tran、data、btst、rev、prg、dis、ina、sip、irq”共13種工作狀態(tài)。在此標準模式下,存儲卡可以正常應答讀卡器208的各條命令,此時非標準命令收集模塊206不工作,處于“透明狀態(tài)”,讀卡器208 “越過”非標準命令收集模塊206直接和存儲卡控制器203進行通信。圖3為本發(fā)明一個實施例的通訊中可隨時固件更新的存儲卡處于工廠模式時的模塊結(jié)構(gòu)示意圖。當存儲卡201在通訊過程中,可以從上述任意狀態(tài)下,收到非標準命令后,進入“工廠模式”。在此工廠模式下,可通過非標準命令進行存儲卡固件的讀寫更新,從而實現(xiàn)了在通訊的任意階段均可以完成固件升級動作。更新完畢后,退出工廠模式,回到標準模式。非標準命令可包括CMD60 63共4條,切換方法為通過讀卡器208發(fā)出的CMD60 63共4條命令當中的一條或多條組合進入“工廠模式”。圖4為本發(fā)明一個實施例的通訊中可隨時固件更新的存儲卡進行固件更新的方法流程圖。本實施例沿用前述實施例的元件標號與部分內(nèi)容,其中采用相同的標號來表示相同或近似的元件,并且選擇性地省略了相同技術(shù)內(nèi)容的說明。關(guān)于省略部分的說明可參照前述實施例,本實施例不再重復贅述。如圖4所示,存儲卡201與讀卡器208相連接,該固件更新的方法流程包括步驟(I)存儲卡201上電開始工作,進入標準模式。在標準模式的若干任意狀態(tài)下(例如 SD 卡可以包括 idle、ready、ident、stby、tran、data、rev、prg、dis、ina 共 10 種工作狀 態(tài),MMC 卡可以包括 idle、ready> ident、stby、tran、data、btst、rev、prg、dis、ina、sip、irq共13種工作狀態(tài)),非標準命令收集模塊206在其中的任何一種狀態(tài)下都可以接受CMD60 63,以偵測讀卡器208向存儲卡控制器203發(fā)出的命令是否屬于非標準命令。如果該命令不屬于非標準命令(即仍然屬于標準命令),則存儲卡201不進行任何動作,保持在標準模式下。(2)若偵測該命令確屬非標準命令,則存儲卡201中的存儲卡控制器203通過對非標準命令的處理,對存儲卡201進行模式切換,將其從標準模式轉(zhuǎn)換為工廠模式。在工廠模式下,非標準命令收集模塊206收集該非標準命令,并依據(jù)一自定義規(guī)則(例如將CMD60定義為狀態(tài)轉(zhuǎn)換命令,CMD61定義為“工廠寫”命令,CMD62定義為“工廠讀”命令,CMD63定義為“退出工廠模式”命令),來判斷存儲卡201應進入的特殊模式。既然非標準命令可以包括讀命令、寫命令和非讀寫的其他非標準命令,那么相應的特殊模式也包括“工廠讀”模式(讀模式)、“工廠寫”模式(寫模式)和其他“工廠非讀寫”模式(非讀寫的其他模式)。(3)存儲卡201依據(jù)上述判斷結(jié)果,在工廠模式下利用非標準命令進行數(shù)據(jù)傳遞,對固件進行讀寫,執(zhí)行相應的固件更新動作或者其他廠商自定義動作,從而實現(xiàn)了在通訊的任意階段均可以完成固件升級動作。(4)待固件更新完畢后,再次通過CMD60 63的處理,存儲卡201退出工廠模式,又重新回到標準模式,固件更新過程結(jié)束。在此,本發(fā)明再以一最常見的Micro SD卡在通訊的任意階段進行固件升級為例進行說明,以期待能更好地理解本發(fā)明。首先,整個系統(tǒng)至少包括“存儲卡控制器”,"MicroSD接口”和“NAND Flash存儲
典”其次,根據(jù)SD卡聯(lián)盟(SD Card Association)的物理層說明書(Physical LayerSpecification)規(guī)定,CMD60 63為留給廠商自定義命令,它/它們的行為可由廠商自定義。故可以例如將CMD60定義為進入特殊模式的命令,CMD61為讀操作命令,CMD62為寫操作命令。然后,在Micro SD 卡的任何工作狀態(tài)中(idle,ready,ident, stby, tran, data,rev, prg, dis, ina)均認為 CMD60 合法命令。
那么,當存儲卡收到CMD60命令,便進入固件升級模式。通過CMD61命令讀出卡內(nèi)現(xiàn)存的固件信息,通過CMD62命令寫入卡新的固件,再次通過CMD61命令讀出新寫入的固件數(shù)據(jù),進行校驗。最后,完成存儲卡固件升級。本發(fā)明在保持存儲卡正常通訊模式的基礎上,加入非標準命令收集模塊,從而增加了一套更新固件的工廠模式,由此可有效解決通訊過程中任何時刻的固件更新問題。存儲卡無論固件損壞或者采用何種封裝,都可以在不用拆卸外殼或者破壞任何硬件外觀的條件下,采用純軟件方式進行固件更新或修復,恢復正常。隨著諸如iPhone、iPad等電子產(chǎn)品中對eMMC卡的廣泛使用,使得拆卸外殼和卡識別難以實現(xiàn),本發(fā)明可以徹底解決此類問題,尤其適合存儲卡在通訊過程中的各種ISP(系統(tǒng)編程)和IAP (應用編程)的應用。本發(fā)明雖然以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領域技 術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動和修改。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何修改、等同變化及修飾,均落入本發(fā)明權(quán)利要求所界定的保護范圍之內(nèi)。
權(quán)利要求
1.一種通訊中可隨時固件更新的存儲卡(201),與讀卡器(208)相連接,所述存儲卡(201)包括 存儲器(202),用于存儲數(shù)據(jù); 存儲卡控制器(203),通過存儲器訪問總線(204)與所述存儲器(202)相連接,用于按照存儲卡規(guī)范控制所述存儲卡(201)工作; 非標準命令收集模塊(206),一端通過通信總線(207)與所述存儲卡控制器(203)相連接,另一端通過儲存卡接口(205)與所述讀卡器(208)相連接,用于偵測并收集由所述讀卡器(208)向所述存儲卡(201)發(fā)出的非標準命令,據(jù)此對所述存儲卡(201)進行狀態(tài)轉(zhuǎn)換。
2.根據(jù)權(quán)利要求I所述的存儲卡(201),其特征在于,所述非標準命令收集模塊(206)與所述存儲卡控制器(203)集成為一體,或者彼此分離。
3.根據(jù)權(quán)利要求I所述的存儲卡(201),其特征在于,所述非標準命令為留給廠商自定義命令,包括CMD60、CMD61、CMD62、CMD63及其任意組合。
4.根據(jù)權(quán)利要求I所述的存儲卡(201),其特征在于,所述存儲卡(201)包括SD卡、MMC 卡; 其中,所述SD卡包括標準尺寸SD卡、MiniSD卡、MicroSD卡; 所述MMC卡包括標準尺寸MMC卡、eMMC卡。
5.根據(jù)權(quán)利要求4所述的存儲卡(201),其特征在于,所述儲存卡接口(205)為符合存儲卡協(xié)議的通訊接口,包括SD卡、MiniSD卡、MicroSD卡、MMC卡、e麗C卡通訊接口。
6.根據(jù)權(quán)利要求5所述的存儲卡(201),其特征在于,所述通訊接口至少支持SD2.O規(guī)范、SD3. O規(guī)范、SD3. 01規(guī)范、SD4. O規(guī)范或其以上版本規(guī)范。
7.根據(jù)權(quán)利要求I所述的存儲卡(201),其特征在于,所述存儲器(202)包括Nand閃存、Nor閃存、SPI閃存、EEProm或者其任意組合。
8.一種采用權(quán)利要求I至7中任一項所述的存儲卡(201)進行固件更新的方法,所述存儲卡(201)與讀卡器(208)相連接,包括步驟 在標準模式下偵測所述讀卡器(208)向所述存儲卡控制器(203)發(fā)出的命令是否屬于非標準命令; 若所述命令確屬非標準命令,則所述存儲卡(201)轉(zhuǎn)為工廠模式,收集所述非標準命令,并依據(jù)一自定義規(guī)則判斷所述存儲卡(201)應進入的特殊模式; 所述存儲卡(201)依據(jù)上述判斷結(jié)果執(zhí)行相應的固件更新動作; 待固件更新完畢,所述存儲卡(201)重新回到標準模式。
9.根據(jù)權(quán)利要求8所述的固件更新的方法,其特征在于,所述非標準命令包括讀命令、寫命令和非讀寫的其他非標準命令,相應的特殊模式包括讀模式、寫模式和非讀寫的其他工廠模式。
10.根據(jù)權(quán)利要求8或9所述的固件更新的方法,其特征在于,所述標準模式包括SD卡的 idle、ready、ident、stby、tran、data、rev、prg、dis、ina 共 10 種工作狀態(tài),和 / 或 MMC卡的 idle、ready> ident、stby、tran、data、btst、rev、prg、dis、ina、sip、irq 共 13 種工作狀態(tài)。
全文摘要
本發(fā)明提供一種通訊中可隨時固件更新的存儲卡及其固件更新方法,存儲卡包括存儲器,用于存儲數(shù)據(jù);存儲卡控制器,通過存儲器訪問總線與存儲器相連接,按照存儲卡規(guī)范控制存儲卡工作;非標準命令收集模塊,一端通過通信總線與存儲卡控制器相連接,另一端通過儲存卡接口與讀卡器相連接,偵測并收集由讀卡器向存儲卡發(fā)出的非標準命令,據(jù)此對存儲卡進行狀態(tài)轉(zhuǎn)換。本發(fā)明在保持存儲卡正常通訊模式的基礎上,加入非標準命令收集模塊,從而增加了一套更新固件的模式,由此可有效解決通訊過程中任何時刻的固件更新問題。存儲卡無論固件損壞或采用何種封裝,都可以在不拆卸外殼或破壞硬件外觀的條件下,采用純軟件方式進行固件更新或修復,恢復正常。
文檔編號G06F9/445GK102707969SQ20121012440
公開日2012年10月3日 申請日期2012年4月25日 優(yōu)先權(quán)日2012年4月25日
發(fā)明者吳勇剛 申請人:中穎電子股份有限公司