專利名稱:使用存儲(chǔ)卡更新固件的方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種固件更新的方法,尤其是涉及一種用存儲(chǔ)卡來(lái)代替光盤,更簡(jiǎn)便更可靠的固件更新的方法。
背景技術(shù):
所謂固件(firmware),簡(jiǎn)單來(lái)說(shuō),是一種程序,專門用來(lái)控制硬件。許多計(jì)算機(jī),或內(nèi)含處理器、單晶片的裝置,都會(huì)含有固件,儲(chǔ)存在只讀存儲(chǔ)器中。因此從整個(gè)只讀存儲(chǔ)器的觀點(diǎn)來(lái)看,也有人把固件定義為具有程序碼的硬件裝置。這樣的架構(gòu)設(shè)計(jì),比起把固件制成硬件線路,好處是具有彈性,因?yàn)檐浖母牧忌?jí)比硬件線路更容易,成本更低。
為了更新固件,出現(xiàn)了許多技術(shù)上的沿革,現(xiàn)今的固件更新已經(jīng)十分方便,不但自動(dòng)化,免拆裝,而且還可以在系統(tǒng)不中斷的情況下進(jìn)行。然而針對(duì)一些功能很單純,沒(méi)有完整的人機(jī)互動(dòng)界面的裝置,要完成固件更新的動(dòng)作,頗需要費(fèi)一番功夫。舉例來(lái)說(shuō),一臺(tái)DVD光盤機(jī),要更新固件,必須事先備好一片含有更新版固件的光盤,放入之后進(jìn)入開(kāi)機(jī)→初始化→判斷是否固件光盤→判斷內(nèi)容是否正確→顯示信息在面板上→使用者確定更新→寫入新固件數(shù)據(jù)。如
圖1所示,一光盤裝置103內(nèi)含一固件更新器104和一存儲(chǔ)器105,該固件更新器104代表處理固件更新程序的功能方塊,可以說(shuō)是現(xiàn)今已知固件更新技術(shù)的一象征圖,而存儲(chǔ)器105則代表裝置中專門儲(chǔ)存固件程序數(shù)據(jù)的地方。
要更新存儲(chǔ)器105中的固件的時(shí)候,先準(zhǔn)備一片光盤101,把新版的固件數(shù)據(jù)102燒錄進(jìn)去,然后放入光盤裝置103中,藉由一特定的方式比如說(shuō)按下更新固件鈕,或自動(dòng)檢測(cè),來(lái)使該裝置的固件更新器104初始化,并開(kāi)始讀取光盤101中的固件數(shù)據(jù)102,經(jīng)過(guò)固件更新器做正確性及版本檢查,確認(rèn)無(wú)誤后,寫入存儲(chǔ)器105中,完成更新的程序。
然而光盤本身是一種只讀的媒體,需要特定的材質(zhì)與裝置才能寫入數(shù)據(jù)。在更新的過(guò)程中,如果有任何不預(yù)期的狀況,系統(tǒng)無(wú)法將信息透過(guò)任何方式顯示給使用者知道,故難以辨別更新程序的成功或失敗。此外,固件數(shù)據(jù)本身的數(shù)據(jù)量,相對(duì)于光盤的容量,小了很多,為每次更新程序耗用一片光盤,執(zhí)行一次燒錄程序,顯然有些殺雞用牛刀的數(shù)據(jù)浪費(fèi)現(xiàn)象。并且,由于燒錄程度較為耗時(shí)與消耗電腦資源,以及分派光盤的程序耗時(shí),使用光盤作為更新的媒介,總是不能最佳化地及時(shí)更新。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種更簡(jiǎn)便快速的方法來(lái)更新光盤裝置中的固件。
本發(fā)明提供一存儲(chǔ)卡,以及一欲更新固件的裝置。其中,存儲(chǔ)卡是用來(lái)儲(chǔ)存固件數(shù)據(jù),以及儲(chǔ)存更新結(jié)果;而欲更新固件的裝置內(nèi)含一存儲(chǔ)器;其中更新的步驟就是,將固件數(shù)據(jù),寫入存儲(chǔ)器。
其中存儲(chǔ)器通常是快閃存儲(chǔ)器或其它在電源關(guān)閉時(shí)不會(huì)流失數(shù)據(jù)的存儲(chǔ)器,而存儲(chǔ)卡通常是一種具有可攜性的存儲(chǔ)器裝置,如Memory Stick(MS卡)、Safe Digital(SD卡)、Smart Media(SM卡),xD-Pictrue(xD卡)等。欲更新固件的裝置通常是為一種用以存取光盤的裝置,如光盤燒錄機(jī)、DVD播放機(jī)等。
為了確保固件的正確性,固件數(shù)據(jù)還可以更進(jìn)一步包含一版本信息,用以在更新時(shí)檢查版本的新舊;一檢查碼,用以檢查固件數(shù)據(jù)的完整性(特別是寫入固件數(shù)據(jù)的程序前后);以及一長(zhǎng)度碼,用以檢查固件數(shù)據(jù)的長(zhǎng)度。
在將固件數(shù)據(jù)寫入存儲(chǔ)器前,還可以先對(duì)固件數(shù)據(jù)進(jìn)行一正確性檢查,確認(rèn)無(wú)誤后才能進(jìn)行下一步動(dòng)作。此外,還可以先將存儲(chǔ)器中一舊固件數(shù)據(jù)備份到存儲(chǔ)卡中,藉以若發(fā)生任何錯(cuò)誤,至少能夠確保原來(lái)的數(shù)據(jù)還在。在將固件數(shù)據(jù)寫入存儲(chǔ)器后,也還可以對(duì)已寫入存儲(chǔ)器中的固件數(shù)據(jù)進(jìn)行一正確性檢查,并且將一狀態(tài)信息寫入存儲(chǔ)卡中,用以記錄結(jié)果。藉以在當(dāng)結(jié)果顯示更新固件的過(guò)程有發(fā)生錯(cuò)誤時(shí),將舊固件數(shù)據(jù)回復(fù)到存儲(chǔ)器中,以確保舊系統(tǒng)的正常。
本發(fā)明也提供一用簡(jiǎn)便快速方法來(lái)升級(jí)固件的裝置,此裝置內(nèi)包含有讀卡機(jī)、存儲(chǔ)器和固件更新器。其中,讀卡機(jī)是用來(lái)讀取一固件數(shù)據(jù);存儲(chǔ)器是用來(lái)儲(chǔ)存固件數(shù)據(jù);而固件更新器則是用來(lái)將固件數(shù)據(jù)寫入存儲(chǔ)器。固件更新器將會(huì)執(zhí)行上述的固件更新方法,來(lái)達(dá)到改良。
因此,在本發(fā)明,固件數(shù)據(jù)用存儲(chǔ)卡來(lái)儲(chǔ)存,免除光盤燒錄的材料與時(shí)間成本,同時(shí)具有可讀寫的特性,可將更新過(guò)程的信息回饋到存儲(chǔ)卡中,供后續(xù)處理,使得固件更新的程序更加簡(jiǎn)便,更加可靠。
為使本發(fā)明的上述內(nèi)容、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉數(shù)較佳實(shí)施例,并配合附圖,詳細(xì)說(shuō)明如下。
附圖簡(jiǎn)述圖1是為傳統(tǒng)使用光盤升級(jí)固件的方法;圖2是為本發(fā)明使用存儲(chǔ)卡升級(jí)固件的方法;以及圖3是為固件數(shù)據(jù)的結(jié)構(gòu)圖。
附圖符號(hào)說(shuō)明101~光盤102~固件數(shù)據(jù)103~光盤裝置104~固件更新器105~存儲(chǔ)器106~數(shù)據(jù)輸入路徑201~存儲(chǔ)卡202~固件數(shù)據(jù)203~光盤裝置204~固件更新器205~存儲(chǔ)器206~數(shù)據(jù)輸入路徑207~數(shù)據(jù)輸出路徑208~讀卡機(jī)301~固件數(shù)據(jù)302~版本信息、檢查碼、長(zhǎng)度碼303~二進(jìn)位數(shù)據(jù)
具體實(shí)施例方式
以下請(qǐng)配合參考圖2與圖3,說(shuō)明根據(jù)本發(fā)明的數(shù)較佳實(shí)施例。
如圖2所示,一光盤裝置203內(nèi)含一固件更新器204和一存儲(chǔ)器205,該固件更新器204代表處理固件更新程序的功能方塊,可以說(shuō)是本發(fā)明的固件更新技術(shù)的一象征圖;而存儲(chǔ)器205則代表裝置中專門儲(chǔ)存固件程序數(shù)據(jù)的地方(在此,固件更新器204與存儲(chǔ)器205可以是分別與習(xí)知技術(shù)的固件更新器104與存儲(chǔ)器105相同,特別是當(dāng)沒(méi)有要執(zhí)行某些本發(fā)明所提出的特殊功能時(shí))。此外還有一讀卡機(jī)208,用來(lái)讀取存儲(chǔ)卡201。該光盤機(jī)裝置203中執(zhí)行固件程序的裝置可以是處理器或者計(jì)算晶片。然必須強(qiáng)調(diào)地是,雖此實(shí)施例是為光盤裝置203,但本發(fā)明的應(yīng)用應(yīng)可不限于此,而應(yīng)以圖2與圖3所顯示的特征為限。
在一較佳實(shí)施例中,要更新存儲(chǔ)器205中的固件的時(shí)候,先把新版的固件數(shù)據(jù)202存放進(jìn)去一存儲(chǔ)卡201;然后將存儲(chǔ)卡201放入光盤裝置203中,藉由一特定的方式(比如說(shuō)按下更新固件鈕,或自動(dòng)檢測(cè))來(lái)使裝置的固件更新器204初始化,首先,將存儲(chǔ)器205中的舊版固件數(shù)據(jù),經(jīng)由數(shù)據(jù)輸出途徑207,備份到存儲(chǔ)卡201上,接著,開(kāi)始讀取存儲(chǔ)卡201中固件數(shù)據(jù)202,經(jīng)過(guò)固件更新器做正確性及版本檢查,確認(rèn)無(wú)誤后,寫入存儲(chǔ)器205中,完成更新程序。
在一較佳實(shí)施例中,在將固件數(shù)據(jù)202寫入存儲(chǔ)器205后,固件更新器204還會(huì)對(duì)該數(shù)據(jù)進(jìn)行一次正確性檢查,以確認(rèn)寫入無(wú)誤,并將一檢查結(jié)果透過(guò)數(shù)據(jù)輸出路徑207寫入存儲(chǔ)卡201中。若是檢查結(jié)果發(fā)現(xiàn)寫入存儲(chǔ)器205的固件數(shù)據(jù)202的正確性出了問(wèn)題,就提供兩種選擇,一是重新寫入一次新版的固件數(shù)據(jù)202,一種是回復(fù)舊版的固件數(shù)據(jù)。由于先前已將舊版的固件數(shù)據(jù)備份在存儲(chǔ)卡中,因此可以確保光盤裝置203一定能夠恢復(fù)到正常的狀態(tài)。
因此,本發(fā)明使用存儲(chǔ)卡更新固件,比起傳統(tǒng)使用光盤的好處之一是存儲(chǔ)卡具有可寫入(特別是重復(fù)寫入更新)的功能,不像傳統(tǒng)的光盤只能存入死的數(shù)據(jù),用完之后就不具有價(jià)值。存儲(chǔ)卡可以將更新的結(jié)果記錄起來(lái),供后續(xù)偵錯(cuò),也可以將舊版的固件數(shù)據(jù)備份起來(lái),將來(lái)出現(xiàn)更新版的數(shù)據(jù),存儲(chǔ)卡本身亦能重復(fù)利用??芍^好處多多。
在另一較佳實(shí)施例中,固件數(shù)據(jù)在傳送的過(guò)程中并非一直保持著原始數(shù)據(jù)的格式。真正要寫入存儲(chǔ)器中存放的數(shù)據(jù)只占一部分,此外為了讓固件更新器辨認(rèn)正確的固件數(shù)據(jù),還夾帶了文件頭數(shù)據(jù),依照一定格式排列封裝;為了讓固件數(shù)據(jù)能正確的在存儲(chǔ)卡與裝置之間傳輸,還可以封裝成可分片的文件格式,內(nèi)含文件文件頭與區(qū)塊文件頭。至于文件頭數(shù)據(jù)的格式,多是為了檢查數(shù)據(jù)內(nèi)容的完整性而設(shè)計(jì)。
如圖3所示,對(duì)固件數(shù)據(jù)301的內(nèi)部數(shù)據(jù)結(jié)構(gòu),必須有一預(yù)先制訂的格式,包含版本信息、檢查碼、長(zhǎng)度碼的文件頭302,與一個(gè)二進(jìn)位數(shù)據(jù)區(qū)段303。任何傳輸過(guò)程中造成的數(shù)據(jù)錯(cuò)誤,都可從正確性檢查中發(fā)現(xiàn)。
在另一較佳實(shí)施例中,如圖2所示,提供一光盤裝置203,具有一讀卡機(jī)208,將存儲(chǔ)卡201插入之后,不做固件數(shù)據(jù)202寫入存儲(chǔ)器205的動(dòng)作(亦即可以沒(méi)有存儲(chǔ)器205),而是切換成另一模式,直接執(zhí)存儲(chǔ)卡201中的固件數(shù)據(jù)202。如此的好處是固件的版本控制更加的彈性化了,脫離了傳統(tǒng)必須要儲(chǔ)存到存儲(chǔ)器205中才能使用的限制,隨時(shí)隨地都可以使用不同版本的固件來(lái)工作。而固件更新器204在這種模式下的任務(wù),自然包括了讀取固件數(shù)據(jù)202并檢查正確性、處理文件頭信息、解開(kāi)封包取得固件核心以供內(nèi)部的中央處理器執(zhí)行該程序等。
在一更進(jìn)一步的較佳實(shí)施例中,存儲(chǔ)卡201里提供了復(fù)數(shù)個(gè)版本的固件數(shù)據(jù),在光盤裝置203啟動(dòng)之后,進(jìn)入一選擇模式,供使用者決定要使用哪一個(gè)版本的固件,或者是決定要將哪一個(gè)版本的固件更新到光盤裝置203的存儲(chǔ)器205中,或者是單純的備份光盤裝置203中的存儲(chǔ)器205。因此本發(fā)明中的存儲(chǔ)卡201本身存在的意義可以說(shuō)是一種具有可攜帶性、可讀寫性的固件儲(chǔ)存裝置,突破了傳統(tǒng)固件只讀存儲(chǔ)器的限制,進(jìn)入了一種可發(fā)揮無(wú)限功能的境界。而固件更新器204,也更進(jìn)一步成為光盤裝置203中控制固件的重要角色。沒(méi)有固件,光碾裝置203便無(wú)法運(yùn)作。固件更新器204在初始化后,必須立即執(zhí)行判斷有無(wú)存儲(chǔ)卡201→若無(wú)則執(zhí)行存儲(chǔ)器205中的固件→若有存儲(chǔ)201則判斷其中是否有一個(gè)或一個(gè)以上的固件數(shù)據(jù)202,如果有則執(zhí)行使用者選擇界面,如果沒(méi)有則直接執(zhí)行存儲(chǔ)器205中的固件→選定之后將固件程序供應(yīng)給處理器或晶片去執(zhí)行。甚至在更進(jìn)一步的實(shí)施例中,該固件更新器當(dāng)中的固件管理系統(tǒng),也是來(lái)自于固件數(shù)據(jù)202中的一程序。因此初始化時(shí)該固件更新器204必定先執(zhí)行存儲(chǔ)器205中的一既定版本,才開(kāi)始后續(xù)的更新與控管工作。在不需重新啟動(dòng)裝置的情況下線上更新固件的技術(shù),需準(zhǔn)備一存儲(chǔ)器,將新版的固件數(shù)據(jù)載入后,告訴處理器或晶片組,把一指位器指向該程序的起點(diǎn),即可啟用新版固件。至于一些數(shù)據(jù)結(jié)構(gòu)或相關(guān)技術(shù)細(xì)節(jié),自當(dāng)由各家熟悉此技藝的人士發(fā)揮。
綜上所述,本發(fā)明使用存儲(chǔ)卡并搭配固件更新器,比起傳統(tǒng)的光盤,可以讓存儲(chǔ)卡同時(shí)兼具存儲(chǔ)器的功能,在不需燒錄只讀存儲(chǔ)器、改變舊有固件數(shù)據(jù)的狀況下,動(dòng)態(tài)的執(zhí)行新版的固件,甚或是讓使用者選擇要執(zhí)行的版本,加上存儲(chǔ)卡本身的可重復(fù)利用性與可攜性,本發(fā)明大大的增加了系統(tǒng)的升級(jí)彈性與可靠度,以及資源節(jié)省度、使用效率等。
本發(fā)明雖以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何熟習(xí)此項(xiàng)技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做各種的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求書(shū)所界定者為準(zhǔn)。
權(quán)利要求
1.一更新固件的方法,包含下列步驟儲(chǔ)存一固件數(shù)據(jù)于一存儲(chǔ)卡;以及將該固件數(shù)據(jù),寫入欲更新固件的一裝置的一存儲(chǔ)器。
2.如權(quán)利要求1所述的方法,該固件數(shù)據(jù)更進(jìn)一步包含一版本信息,用以在更新時(shí)檢查版本的新舊;一檢查碼,用以檢查該數(shù)據(jù)的完整性;以及一長(zhǎng)度碼,用以檢查該數(shù)據(jù)的長(zhǎng)度。
3.如權(quán)利要求1所述的方法,更進(jìn)一步包含下列步驟在將該固件數(shù)據(jù)寫入該存儲(chǔ)器前,將該存儲(chǔ)器中的一舊固件數(shù)據(jù)備份到該存儲(chǔ)卡中;在將該固件數(shù)據(jù)寫入該存儲(chǔ)器之前,先對(duì)該固件數(shù)據(jù)進(jìn)行一正確性檢查;在將該固件數(shù)據(jù)寫入該存儲(chǔ)器后,對(duì)已寫入該存儲(chǔ)器中的固件數(shù)據(jù)進(jìn)行一正確性檢查;將一狀態(tài)信息寫入該存儲(chǔ)卡中,用以記錄一結(jié)果;以及當(dāng)該結(jié)果顯示寫入該存儲(chǔ)器的該固件數(shù)據(jù)有錯(cuò)誤時(shí),將該舊固件數(shù)據(jù)回復(fù)到該存儲(chǔ)器中。
4.一可更新固件的裝置,包含下列元件一讀卡機(jī),用以讀取一存儲(chǔ)卡而得到一固件數(shù)據(jù);一存儲(chǔ)器,用以儲(chǔ)存一固件數(shù)據(jù);以及一固件更新器,用以將該固件數(shù)據(jù)寫入該存儲(chǔ)器。
5.如權(quán)利要求4所述的裝置,該固件數(shù)據(jù)更進(jìn)一步包含一版本信息,用以在更新時(shí)檢查版本的新舊;一檢查碼,用以檢查該數(shù)據(jù)的完整性;以及一長(zhǎng)度碼,用以檢查該數(shù)據(jù)的長(zhǎng)度。
6.如權(quán)利要求4所述的裝置,該固件更新器,更進(jìn)一步用以執(zhí)行下列步驟在將該固件數(shù)據(jù)寫入該存儲(chǔ)器前,將該存儲(chǔ)器中的一舊固件數(shù)據(jù)備份到該存儲(chǔ)卡中;在將該固件數(shù)據(jù)寫入該存儲(chǔ)器之前,先對(duì)該固件數(shù)據(jù)進(jìn)行一正確性檢查;在將該固件數(shù)據(jù)寫入該存儲(chǔ)器后,對(duì)已寫入該存儲(chǔ)器中的固件數(shù)據(jù)進(jìn)行一正確性檢查;將一狀態(tài)信息寫入該存儲(chǔ)卡中,用以記錄一結(jié)果;以及當(dāng)該結(jié)果顯示寫入該存儲(chǔ)器的該固件數(shù)據(jù)有錯(cuò)誤時(shí),將該舊固件數(shù)據(jù)回復(fù)到該存儲(chǔ)器中。
7.一更新固件的方法,包含下列步驟將一存儲(chǔ)器連接至欲更新固件的一裝置,該存儲(chǔ)卡至少儲(chǔ)存一固件數(shù)據(jù);以及直接執(zhí)行位于該存儲(chǔ)卡中的該固件數(shù)據(jù)。
8.如權(quán)利要求7所述的方法,更進(jìn)一步包含下列步驟當(dāng)該存儲(chǔ)卡儲(chǔ)存有復(fù)數(shù)個(gè)版本的固件數(shù)據(jù)時(shí),是選擇性執(zhí)行其中某一版本的固件數(shù)據(jù);以及尚可以在讀取該固件數(shù)據(jù)外,檢查該存儲(chǔ)卡中該固件數(shù)據(jù)的正確性。
9.一可更新固件的裝置,包含下列元件一讀卡機(jī),用以讀取至少儲(chǔ)存有一固件數(shù)據(jù)的一存儲(chǔ)卡;以及一固件更新器,用以執(zhí)行位于該存儲(chǔ)卡的該固件數(shù)據(jù)。
10.如權(quán)利要求9所述的裝置,該固件更新器尚可進(jìn)行至少下列動(dòng)作的某一者當(dāng)該存儲(chǔ)卡儲(chǔ)存有復(fù)數(shù)個(gè)版本的固件數(shù)據(jù)時(shí),選擇性執(zhí)行其中某一版本的固件數(shù)據(jù);以及檢查該存儲(chǔ)卡中該固件數(shù)據(jù)的正確性。
全文摘要
本發(fā)明涉及一種更新固件的方法與裝置,尤其是使用存儲(chǔ)卡代替光盤,來(lái)更新固件的方法與裝置。利用存儲(chǔ)卡可重復(fù)讀寫的特性,在更新裝置固件的時(shí)候,免除光盤燒錄的麻煩,此外還能即時(shí)儲(chǔ)存更新?tīng)顟B(tài)信息,在出現(xiàn)錯(cuò)誤的時(shí)候執(zhí)行回復(fù)補(bǔ)救的措施。
文檔編號(hào)G11B20/10GK1560739SQ20041000737
公開(kāi)日2005年1月5日 申請(qǐng)日期2004年3月2日 優(yōu)先權(quán)日2004年3月2日
發(fā)明者張正隆 申請(qǐng)人:威盛電子股份有限公司