两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

固件更新方法和裝置的制作方法

文檔序號(hào):6606946閱讀:168來源:國知局
專利名稱:固件更新方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種固件更新方法,尤其涉及一種對存儲(chǔ)卡的固件進(jìn)行更新的方法和
直O(jiān)
背景技術(shù)
由于存儲(chǔ)卡相比傳統(tǒng)存儲(chǔ)介質(zhì)有其固有的優(yōu)勢,如體積小、結(jié)構(gòu)簡單、使用方便、 不需要自帶電源、讀寫速度快、使用安全性高等,因此存儲(chǔ)卡越來越廣泛的應(yīng)用在手機(jī)、 MP3、DV等各種數(shù)碼產(chǎn)品當(dāng)中。同時(shí)由于使用的廣泛性較以往大幅增加,與各種產(chǎn)品的兼容 性問題也隨之而產(chǎn)生。因此目前的存儲(chǔ)卡的固件大都采用存儲(chǔ)在內(nèi)置的閃存(以下簡稱 Flash)當(dāng)中,以便于當(dāng)產(chǎn)品上市之后也可以通過更新固件的方式及時(shí)修正問題或完善功 能。目前常見的存儲(chǔ)卡有數(shù)碼安全卡(SecureDigital Memory Card,下文簡稱SD卡)、多媒 體記憶卡(Multimedia Card,MMC 卡)、記憶棒(Memory Stick,MS 卡)以及 CompactFlash 卡(CF卡)等等,其中應(yīng)用最廣泛的當(dāng)屬SD卡了。一般而言,嵌入式系統(tǒng)的固件需要更新,通常有這么幾個(gè)原因修正Bug、功能完 善或升級(jí)、固件損壞導(dǎo)致系統(tǒng)無法工作。因此目前嵌入式系統(tǒng)的固件更新或修復(fù)存在如 下形式(1)原固件并未完全損壞,系統(tǒng)可以正常工作或至少固件升級(jí)功能可以正常工作; (2)設(shè)計(jì)有特殊的功能引腳,通知系統(tǒng)強(qiáng)行進(jìn)入固件升級(jí)模式;(3)固件的存儲(chǔ)裝置可拆 卸,并通過第三方設(shè)備或工具進(jìn)行固件改寫,實(shí)現(xiàn)固件的更新或升級(jí);(4)增加備用固件存 儲(chǔ)裝置,一旦主存儲(chǔ)裝置中的固件損壞,則用備用裝置進(jìn)行修復(fù)。由于SD卡產(chǎn)品只有用于與讀卡器通信和數(shù)據(jù)傳輸?shù)?根針腳裸露在整個(gè)封裝外 面,分別是VCC、GND、CLK、CMD以及DATA線,并沒有額外的功能引腳可用于通知SD卡強(qiáng)制 進(jìn)入固件更新模式,因此,目前SD卡通常采用的固件更新的方案如下(I)SD卡未燒寫固件,上電后SD卡主控制器加載固件失敗,自動(dòng)進(jìn)入固件更新模 式,并與主機(jī)(比如電腦加讀卡器)連接,然后將固件燒錄至SD卡內(nèi)的Flash當(dāng)中。(2) SD卡燒寫過固件,但是固件受損或其他原因,導(dǎo)致SD卡上電時(shí)加載固件失敗, 同樣會(huì)自動(dòng)進(jìn)入固件更新模式,此時(shí)可采用上述方案1進(jìn)行固件更新。(3) SD卡燒寫過固件,且上電自動(dòng)進(jìn)入正常工作模式,主機(jī)可通過發(fā)送命令使之進(jìn) 入固件更新模式,進(jìn)行固件更新。(4) SD卡燒寫過固件,但因某些原因工作不正,無法與主機(jī)連接,或雖然工作正常, 上電可自動(dòng)進(jìn)入正常工作模式,但無法進(jìn)入固件更新模式,則可采用兩種方式更新固件。一 是短接Flash數(shù)據(jù)線的方式,強(qiáng)制讓SD卡上電加載固件失敗,進(jìn)入固件更新模式后,再取消 數(shù)據(jù)線短接,以便正常進(jìn)行固件燒錄;二是將Flash解焊下來,在專門的Flash擦除器上將 固件擦除,然后重新焊回按照方案1進(jìn)行固件更新。隨著新技術(shù)的不斷發(fā)展,很多數(shù)碼產(chǎn)品都開始朝著體積更加小巧的方向發(fā)展,一 方面可以降低成本,另一方面則帶來更好的外觀和更佳的便攜性,隨之而來,對所使用的存 儲(chǔ)卡也要求更加小巧,因此就有了體積更小的 型數(shù)碼安全卡(下文簡稱Micro SD卡)。為了追求體積的縮小,Micro SD卡采用了特殊的封裝型式,其控制芯片與NAND Flash存儲(chǔ) 器二者與印刷電路板(PCB)采用了板上芯片封裝(ChipOn Board, COB)方式封裝在一起。 與以往標(biāo)準(zhǔn)的SD卡可以拆開外殼不同,Micro SD卡的這種封裝是無法拆卸的,無法采用上 述方案4進(jìn)行固件更新,也就是說如果一旦出現(xiàn)方案4中的情況,輕則無法更新固件,重則 整張卡無法使用只能報(bào)廢。綜上,Micro SD卡的固件因某些原因無法正常工作,甚至完全無法使用時(shí),無法通 過現(xiàn)有的固件更新手段實(shí)現(xiàn)修復(fù)。而對于SD卡碰到這種情況,則必須拆開外殼進(jìn)行修復(fù), 費(fèi)時(shí)費(fèi)力,且破壞外觀與卡的完整性。

發(fā)明內(nèi)容
本發(fā)明的目的在于解決上述問題,提供了一種固件更新方法,不僅可以用于正常 情況下的固件更新,還可用于固件損壞導(dǎo)致系統(tǒng)無法工作時(shí)對固件進(jìn)行修復(fù)更新。本發(fā)明的另一目的在于提供了 一種固件更新裝置。本發(fā)明的技術(shù)方案為本發(fā)明揭示了一種固件更新方法,存儲(chǔ)卡在接收到主機(jī)命 令后,對主機(jī)命令進(jìn)行解析,如果是自定義的命令,則強(qiáng)制存儲(chǔ)卡進(jìn)入固件更新模式,配合 主機(jī)進(jìn)行存儲(chǔ)卡的固件更新過程,其中自定義的命令是讀卡器在標(biāo)準(zhǔn)存儲(chǔ)卡命令的基礎(chǔ)上 增設(shè)的。根據(jù)本發(fā)明的固件更新方法的一實(shí)施例,存儲(chǔ)卡接收主機(jī)命令是在存儲(chǔ)卡上電啟 動(dòng)之后。根據(jù)本發(fā)明的固件更新方法的一實(shí)施例,存儲(chǔ)卡接收主機(jī)命令是在存儲(chǔ)卡進(jìn)入正 常工作模式之后。根據(jù)本發(fā)明的固件更新方法的一實(shí)施例,存儲(chǔ)卡是SD卡或Micro SD卡。根據(jù)本發(fā)明的固件更新方法的一實(shí)施例,自定義的命令以SD卡標(biāo)準(zhǔn)規(guī)范中 ACMD41的自定義參數(shù)的命令來實(shí)現(xiàn),或者以SD卡標(biāo)準(zhǔn)規(guī)范中的保留命令來實(shí)現(xiàn)。本發(fā)明還揭示了一種固件更新裝置,包括讀卡器,內(nèi)設(shè)標(biāo)準(zhǔn)的存儲(chǔ)卡命令以及一組自定義命令;存儲(chǔ)卡,進(jìn)一步包括上電啟動(dòng)模塊,在存儲(chǔ)卡插入讀卡器后上電啟動(dòng)存儲(chǔ)卡;命令識(shí)別模塊,耦接上電啟動(dòng)模塊,在存儲(chǔ)卡上電啟動(dòng)后接收讀卡器發(fā)送的初始 化階段命令,識(shí)別出是標(biāo)準(zhǔn)的存儲(chǔ)卡命令還是自定義命令;固件加載模塊,耦接命令識(shí)別模塊,在識(shí)別出是標(biāo)準(zhǔn)的存儲(chǔ)卡命令后進(jìn)行存儲(chǔ)卡 的固件加載;固件更新模塊,耦接命令識(shí)別模塊,在識(shí)別出是自定義命令后進(jìn)行存儲(chǔ)卡的固件更新。根據(jù)本發(fā)明的固件更新裝置的一實(shí)施例,存儲(chǔ)卡是SD卡或Micro SD卡。根據(jù)本發(fā)明的固件更新裝置的一實(shí)施例,讀卡器內(nèi)的自定義的命令是以SD卡標(biāo) 準(zhǔn)規(guī)范中ACMD41的自定義參數(shù)的命令來實(shí)現(xiàn),或者以SD卡標(biāo)準(zhǔn)規(guī)范中的保留命令來實(shí)現(xiàn)。本發(fā)明對比現(xiàn)有技術(shù)有如下的有益效果本發(fā)明設(shè)計(jì)一個(gè)特殊的讀卡器,用于存 儲(chǔ)卡的固件燒寫和更新,讀卡器在標(biāo)準(zhǔn)存儲(chǔ)卡命令基礎(chǔ)上增加了一組自定義命令。其次是
4存儲(chǔ)卡的設(shè)計(jì)部分,在存儲(chǔ)卡上電接收讀卡器命令階段,增加對自定義命令的判斷,用于判 定是否需要強(qiáng)制進(jìn)入固件更新模式。對比現(xiàn)有技術(shù),無論存儲(chǔ)卡的固件是否損壞或損壞程 度如何,只要存儲(chǔ)卡硬件沒有損壞,都可以采用純軟件的方式進(jìn)行固件的更新和修復(fù),使之 回到正常工作狀態(tài),且不會(huì)造成任何外觀的破壞。而且本發(fā)明的技術(shù)方案對現(xiàn)有存儲(chǔ)卡的 設(shè)計(jì)改動(dòng)不大,設(shè)計(jì)復(fù)雜度和系統(tǒng)成本幾乎沒有影響。


圖1是本發(fā)明的固件更新裝置的實(shí)施例的結(jié)構(gòu)圖。圖2是圖1實(shí)施例的細(xì)化結(jié)構(gòu)圖。圖3是本發(fā)明的固件更新方法的實(shí)施例的流程圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的描述。本發(fā)明以SD卡為例來說明存儲(chǔ)卡的實(shí)施方式。由于Micro SD卡采用與SD完全 相同的協(xié)議標(biāo)準(zhǔn),因此后文的描述將Micro SD與SD卡統(tǒng)一說明,均以SD卡指代。其它類 型的存儲(chǔ)卡也適用于以下的實(shí)施例。固件更新裝置的實(shí)施例圖1示出了固件更新裝置的實(shí)施例的整體結(jié)構(gòu)。請參見圖1,本實(shí)施例的固件更新 裝置包括讀卡器2和SD卡3兩部分,讀卡器2和電腦主機(jī)1相連,建立命令和數(shù)據(jù)的傳輸 通道,讀卡器2和SD卡3之間也建立起命令和數(shù)據(jù)的傳輸通道。圖2示出了讀卡器2和SD卡3的細(xì)化結(jié)構(gòu)。請參見圖2,讀卡器2內(nèi)設(shè)標(biāo)準(zhǔn)的SD 卡命令以及一組自定義命令。SD卡3內(nèi)的上電啟動(dòng)模塊30負(fù)責(zé)在SD卡3插入讀卡器2后 上電啟動(dòng)SD卡3。讀卡器2發(fā)送初始化階段的命令至SD卡3。由耦接上電啟動(dòng)模塊30的 命令識(shí)別模塊31接收來自讀卡器2的初始化階段命令,識(shí)別出接收的命令是標(biāo)準(zhǔn)的SD卡 命令(通常是指標(biāo)準(zhǔn)的ACMD41命令,用于SD卡初始化Flash和加載固件等)還是自定義 命令。自定義命令是用來判定是否需要強(qiáng)制進(jìn)入固件更新模式。其中自定義命令可以用 ACMD41的自定義參數(shù)的命令來實(shí)現(xiàn),也可以用SD卡標(biāo)準(zhǔn)規(guī)范中的保留命令來實(shí)現(xiàn)。固件加載模塊32耦接命令識(shí)別模塊31,接收標(biāo)準(zhǔn)的ACMD41命令,進(jìn)行SD卡的固 件加載,如果固件損壞則進(jìn)入無響應(yīng)狀態(tài),如果固件正常則進(jìn)入正常工作狀態(tài),可配合主機(jī) 和讀卡器進(jìn)行標(biāo)準(zhǔn)的讀寫等操作。如果固件加載失敗則進(jìn)入固件更新模式。固件更新模塊33耦接命令識(shí)別模塊31,接收自定義命令,進(jìn)入固件更新模式,配 合主機(jī)和讀卡器進(jìn)行固件更新,并在固件更新成功后進(jìn)入正常工作狀態(tài)。固件更新方法的實(shí)施例圖3示出了本發(fā)明的固件更新方法的實(shí)施例的流程。請參見圖3,本實(shí)施例的固件 更新方法的各個(gè)步驟如下。步驟SlOO =SD卡上電啟動(dòng)。通常是在SD卡插入到讀卡器后,SD卡上電啟動(dòng)。步驟SlOl =SD卡等待接收主機(jī)命令。主機(jī)命令分為標(biāo)準(zhǔn)的SD卡命令,例如CMDO和CMD8命令、ACMD41命令、以及自定義命令,這些命令都設(shè)置在讀卡器中。其中CMDO和CMD8命令用于復(fù)位和協(xié)議版本識(shí)別, ACMD41命令用于SD卡初始化,自定義命令用于指定SD卡上電時(shí)進(jìn)入固件更新模式。其中 自定義命令可以用ACMD41的自定義參數(shù)的命令來實(shí)現(xiàn),也可以用SD卡標(biāo)準(zhǔn)規(guī)范中的保留 命令來實(shí)現(xiàn)。由于使用SD卡的各種設(shè)備眾多,為了避免應(yīng)用中可能產(chǎn)生的兼容性問題,可以在 設(shè)計(jì)時(shí)采用發(fā)送多次命令的方式來保證判斷的正確性。步驟S102 對接收到的主機(jī)命令進(jìn)行解析。如果是CMDO和CMD8命令,則進(jìn)入步 驟S103 ;如果是ACMD41命令,則進(jìn)入步驟S104 ;如果是其它命令,則進(jìn)入步驟S115。步驟S103 由于接收到的主機(jī)命令是CMDO和CMD8命令,進(jìn)行設(shè)備復(fù)位和協(xié)議版 本識(shí)別。步驟S104 由于接收到的主機(jī)命令是ACMD41命令,進(jìn)行SD卡初始化,然后進(jìn)入步 驟 S105。步驟S105 初始化閃存,并校驗(yàn)固件完整性。步驟S106 判斷閃存初始化和固件校驗(yàn)是否成功。如果成功則進(jìn)入步驟S107,如 果不成功則進(jìn)入步驟S114。步驟S107 在SD卡上加載固件并運(yùn)行。步驟S108 判斷SD卡系統(tǒng)是否正常運(yùn)行,如果正常運(yùn)行則進(jìn)入步驟Sl 10,如果無 法正常運(yùn)行則進(jìn)入步驟S109。步驟S109 =SD卡系統(tǒng)陷入異常狀態(tài)死循環(huán),與主機(jī)失去響應(yīng)。步驟SllO 回復(fù)主機(jī)SD卡已經(jīng)準(zhǔn)備好,完成后續(xù)與主機(jī)的認(rèn)證過程。步驟Slll =SD卡進(jìn)入正常工作模式,等待主機(jī)命令。步驟S112 對接收到的主機(jī)命令進(jìn)行命令解析,如果是自定義命令則進(jìn)入步驟 Sl 15,如果是SD卡標(biāo)準(zhǔn)命令則進(jìn)入步驟Sl 13。步驟S113 =SD卡進(jìn)行讀/寫等標(biāo)準(zhǔn)操作。然后回到步驟S111。步驟S114 判斷其它命令是否是自定義命令,如果是自定義命令則進(jìn)入步驟 S115,如果不是自定義命令則進(jìn)入步驟S116。步驟S115 =SD卡進(jìn)入固件更新模式,配合主機(jī)進(jìn)行固件更新。步驟Sl 16 不做任何處理,返回步驟SlOl。綜合上述的方法和裝置的實(shí)施例可以看出,本發(fā)明的發(fā)明點(diǎn)主要在于讀卡器在 標(biāo)準(zhǔn)SD命令的基礎(chǔ)上增加了一組自定義命令,用于指定SD卡上電時(shí)進(jìn)入固件更新模式;其 次是SD卡上電接收讀卡器命令階段增加對自定義命令的判斷,用于判定是否需要強(qiáng)制進(jìn) 入固件更新模式。這樣無論存儲(chǔ)卡的固件是否損壞或損壞程度如何,只要存儲(chǔ)卡硬件沒有 損壞,都可以采用純軟件方式進(jìn)行固件的更新和修復(fù),使之回到正常工作狀態(tài),且不會(huì)造成 任何外觀的破壞。而且由于大部分SD卡的上電初始化都是通過軟件實(shí)現(xiàn)的(其程序代碼 存儲(chǔ)在SD卡控制器內(nèi)的只讀存儲(chǔ)器當(dāng)中),實(shí)現(xiàn)該方案并不需要修改SD卡控制器的硬件設(shè) 計(jì),讀卡器的設(shè)計(jì)也是同樣的道理,增加命令也只需修改程序即可,因此整個(gè)方案實(shí)現(xiàn)的成 本較低,修改也很容易,對設(shè)計(jì)復(fù)雜度和系統(tǒng)成本來說幾乎沒有影響。上述實(shí)施例是提供給本領(lǐng)域普通技術(shù)人員來實(shí)現(xiàn)或使用本發(fā)明的,本領(lǐng)域普通技 術(shù)人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對上述實(shí)施例做出種種修改或變化,因而本發(fā)明的保護(hù)范圍并不被上述實(shí)施例所限,而應(yīng)該是符合權(quán)利要求書提到的創(chuàng)新性特征的 最大范圍。
權(quán)利要求
一種固件更新方法,其特征在于,存儲(chǔ)卡在接收到主機(jī)命令后,對主機(jī)命令進(jìn)行解析,如果是自定義的命令,則強(qiáng)制存儲(chǔ)卡進(jìn)入固件更新模式,配合主機(jī)進(jìn)行存儲(chǔ)卡的固件更新過程,其中自定義的命令是讀卡器在標(biāo)準(zhǔn)存儲(chǔ)卡命令的基礎(chǔ)上增設(shè)的。
2.根據(jù)權(quán)利要求1所述的固件更新方法,其特征在于,存儲(chǔ)卡接收主機(jī)命令是在存儲(chǔ) 卡上電啟動(dòng)之后。
3.根據(jù)權(quán)利要求1所述的固件更新方法,其特征在于,存儲(chǔ)卡接收主機(jī)命令是在存儲(chǔ) 卡進(jìn)入正常工作模式之后。
4.根據(jù)權(quán)利要求1所述的固件更新方法,其特征在于,存儲(chǔ)卡是SD卡或MicroSD卡。
5.根據(jù)權(quán)利要求4所述的固件更新方法,其特征在于,自定義的命令以SD卡標(biāo)準(zhǔn)規(guī)范 中ACMD41的自定義參數(shù)的命令來實(shí)現(xiàn),或者以SD卡標(biāo)準(zhǔn)規(guī)范中的保留命令來實(shí)現(xiàn)。
6.一種固件更新裝置,包括讀卡器,內(nèi)設(shè)標(biāo)準(zhǔn)的存儲(chǔ)卡命令以及一組自定義命令;存儲(chǔ)卡,進(jìn)一步包括上電啟動(dòng)模塊,在存儲(chǔ)卡插入讀卡器后上電啟動(dòng)存儲(chǔ)卡;命令識(shí)別模塊,耦接上電啟動(dòng)模塊,在存儲(chǔ)卡上電啟動(dòng)后接收讀卡器發(fā)送的初始化階 段命令,識(shí)別出是標(biāo)準(zhǔn)的存儲(chǔ)卡命令還是自定義命令;固件加載模塊,耦接命令識(shí)別模塊,在識(shí)別出是標(biāo)準(zhǔn)的存儲(chǔ)卡命令后進(jìn)行存儲(chǔ)卡的固 件加載;固件更新模塊,耦接命令識(shí)別模塊,在識(shí)別出是自定義命令后進(jìn)行存儲(chǔ)卡的固件更新。
7.根據(jù)權(quán)利要求6所述的固件更新裝置,其特征在于,存儲(chǔ)卡是SD卡或MicroSD卡。
8.根據(jù)權(quán)利要求7所述的固件更新裝置,其特征在于,讀卡器內(nèi)的自定義的命令是以 SD卡標(biāo)準(zhǔn)規(guī)范中ACMD41的自定義參數(shù)的命令來實(shí)現(xiàn),或者以SD卡標(biāo)準(zhǔn)規(guī)范中的保留命令 來實(shí)現(xiàn)。
全文摘要
本發(fā)明公開了固件更新方法和裝置,不僅可以用于正常情況下的固件更新,還可用于固件損壞導(dǎo)致系統(tǒng)無法工作時(shí)對固件進(jìn)行修復(fù)更新。其技術(shù)方案為存儲(chǔ)卡在接收到主機(jī)命令后,對主機(jī)命令進(jìn)行解析,如果是自定義的命令,則強(qiáng)制存儲(chǔ)卡進(jìn)入固件更新模式,配合主機(jī)進(jìn)行存儲(chǔ)卡的固件更新過程,其中自定義的命令是讀卡器在標(biāo)準(zhǔn)存儲(chǔ)卡命令的基礎(chǔ)上增設(shè)的。
文檔編號(hào)G06F9/445GK101901158SQ20101024273
公開日2010年12月1日 申請日期2010年8月2日 優(yōu)先權(quán)日2010年8月2日
發(fā)明者劉華偉, 張欽, 聶仙麗 申請人:中穎電子有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
龙州县| 湛江市| 小金县| 古交市| 岳池县| 吉木乃县| 麦盖提县| 海安县| 保亭| 和静县| 遂平县| 宜章县| 九寨沟县| 泽普县| 蒲江县| 墨竹工卡县| 顺昌县| 高州市| 丰原市| 衡阳县| 孟连| 新安县| 同心县| 浦东新区| 开远市| 和平县| 泰安市| 惠东县| 鞍山市| 肇东市| 玉龙| 汝阳县| 张掖市| 枞阳县| 大方县| 象山县| 华坪县| 三都| 盐亭县| 年辖:市辖区| 安陆市|