專利名稱:一種固件程序在線升級的方法及硬件設備的制作方法
所屬技術(shù)領域:
本發(fā)明涉及一種固件程序在線升級的方法及硬件設備,特別是關(guān)于利用計算機操作系統(tǒng)自動執(zhí)行機制實現(xiàn)固件程序在線升級的方法及硬件設備。
背景技術(shù):
固件是硬件設備(可編程邏輯器件作為控制器)的能夠正常運行所需要的軟件,固件(Firmware)最早的涵義是具有軟件功能的硬件,早期的這種器件一般是指存有軟件的EPROM或EEPROM等等,隨著存儲技術(shù)的發(fā)展,閃存(FlashMemory)的出現(xiàn),使得可以簡單的通過可編程電路實現(xiàn)存儲介質(zhì)儲存信息的讀寫操作,如果選用閃存存儲硬件所需要的固件,則在不更換物理硬件的情況下,就可以通過刷新閃存信息實現(xiàn)固件升級,使得硬件設備的功能獲得增加或改善。目前普遍依托計算機操作系統(tǒng),采用專門的固件更新程序?qū)τ布墓碳绦蜻M行刷新。
固件文件為固件在計算機文件系統(tǒng)的存儲方式,通常由硬件設備提供商定期或不定期發(fā)布,使用者可以通過特定存儲介質(zhì)(磁盤、光盤等)或通過網(wǎng)絡將待升級的固件文件下載到本地計算機的存儲空間中,在通過在本地安裝的固件升級程序,將固件文件的內(nèi)容,燒寫到硬件設備用于存儲固件的非易失性存儲介質(zhì)(volatile memory)的特定位置,固件在該非易失性存儲介質(zhì)上表現(xiàn)為物理地址或邏輯地址連續(xù)的一段指令,硬件設備重新上電(Reset)后,控制器會從起始位置開始順序讀入指令,從而使得原有的硬件實現(xiàn)了新的功能。現(xiàn)有技術(shù)有多種升級固件的方式,現(xiàn)介紹如下現(xiàn)有技術(shù)一利用硬件設備自帶的網(wǎng)絡連接功能,實現(xiàn)Internet在線固件更新(類似計算機通過網(wǎng)絡自動升級操作系統(tǒng))??刂破靼l(fā)出指令,控制網(wǎng)絡控制模塊請求與遠端服務器建立連接,并將目前固件版本信息發(fā)送至服務器,服務器控制程序?qū)⑵溆嘧钚掳姹緦Ρ?,如果是最新版本,則結(jié)束升級過程,如果非最新版本,則提供最新固件下載位置,網(wǎng)絡設備下載后對原有固件進行升級。這種升級方式需要硬件設備自身配備網(wǎng)絡模塊,同時需要完成復雜的網(wǎng)絡會話過程,通常適用于比較昂貴,結(jié)構(gòu)和功能比較復雜的硬件設備,不適用于多數(shù)中低價位的消費類數(shù)碼產(chǎn)品。
現(xiàn)有技術(shù)二需要從網(wǎng)絡手動下載固件文件到本地計算機,再通過特定的I/O機制將固件文件下載到硬件設備的存儲空間內(nèi),硬件設備能夠自動識別新拷入的固件文件版本是否高于已有的固件,如果為新版本,則自動安裝新的固件文件。不足在于智能化只局限于在硬件設備內(nèi)部判斷版本是否需要更新,而不能自動通過網(wǎng)絡獲得新的固件程序,該方案沒有減少用戶通過網(wǎng)絡手動下載固件和將固件文件傳送到硬件內(nèi)部的繁瑣程度,同時由于內(nèi)置了版本判定模式和固件安裝程序,對硬件本身控制器的運算能力提出了很高的要求。
現(xiàn)有技術(shù)三為中國專利CN02121474.3所揭示的“嵌入式系統(tǒng)中固件程序在線升級的實現(xiàn)方法”,該方法將支持在線升級的固件程序與系統(tǒng)功能的固件程序分離,并將支持在線升級的固件程序存儲于設置在程序存儲器的永久駐留空間;然后系統(tǒng)上電啟動,直接轉(zhuǎn)至執(zhí)行支持在線升級的固件程序,支持在線升級的固件程序?qū)⒈匾挠布Y源進行初始化后,判斷是否進行在線升級,如果是,則將升級系統(tǒng)功能固件程序、向程序存儲器寫入升級的固件程序的指令代碼存儲于動態(tài)存儲器中;轉(zhuǎn)至動態(tài)存儲器中的上述指令代碼,將升級的固件程序?qū)懭氤绦虼鎯ζ髦杏谰民v留空間之外的地址空間,然后轉(zhuǎn)至運行升級后的系統(tǒng)功能固件程序。此方案提高了固件升級的安全性,但仍舊存在下列缺陷1、支持在線升級固件程序的啟動過程沒有實現(xiàn)完全自動化,需要在操作系統(tǒng)上安裝額外的驅(qū)動程序;2、在嵌入式系統(tǒng)的動態(tài)存儲器中運行向程序存儲器寫入升級的固件程序的指令代碼要求配備大容量的動態(tài)存儲器,且硬件本身控制器要有較高的性能。
上述現(xiàn)有技術(shù)由于有多個步驟需要手工操作,對于不熟悉計算機的操作者,很容易操作失誤,導致固件程序升級失敗。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中所存在的不足,本發(fā)明的目的在于實現(xiàn)一種固件程序在線升級的方法及硬件設備,在對硬件系統(tǒng)的需求和對操作者的計算機熟悉程度要求都不高的情況下,無需人工干預就可以實現(xiàn)硬件設備的固件程序的可靠自動在線升級。
本發(fā)明的第一方面提供了一種固件程序在線升級的方法,其方法在于包括1)硬件設備通過通訊接口與聯(lián)網(wǎng)的計算機連接的步驟;2)激活計算機操作系統(tǒng)的自動執(zhí)行機制的步驟;3)操作系統(tǒng)執(zhí)行自動執(zhí)行配置文件所指向的存儲在硬件設備所帶存儲器中的在線升級程序的步驟;4)在線升級程序通過網(wǎng)絡從預定的服務器下載固件程序的步驟;5)將下載的固件程序?qū)懭胗布O備所帶非易失可擦寫存儲器特定空間,取代原固件程序,從而完成固件程序升級的步驟。
本方法還需要具有通訊接口,該接口可為USB接口、IEEE1394接口、無線USB接口或者藍牙接口。
其中,在步驟1,2之間,本方法還設置了一個開啟或者關(guān)閉自動升級的步驟。該步驟用來控制是否執(zhí)行在線升級程序,以避免每次硬件設備接入本地計算機后,都要執(zhí)行自動升級命令。
步驟2、3的實質(zhì)是利用計算機操作系統(tǒng)的自動執(zhí)行機制使得存儲在硬件設備所帶存儲器中的在線升級程序可以自動運行。通常將硬件設備的存儲器初始化為本地計算機上的一個光驅(qū)或者其他支持自動執(zhí)行功能的存儲設備,然后利用Autorun應用模塊,啟動在線升級程序。其具體方法已經(jīng)由中國專利申請“利用半導體存儲裝置實現(xiàn)自動執(zhí)行的方法”(申請?zhí)?3146090.9)揭示和公開,該申請的內(nèi)容在此引用。
進一步地,為了更好定位升級服務器,在線升級程序中預存儲了以定位服務器的IP地址或者域名。當在線升級程序開始運行時,通過預存儲的服務器的IP地址或者域名,就可以迅速地定位升級服務器。
在步驟3與步驟4之間,當本地計算機和遠端服務器建立連接后,將用目前固件版本信息與服務器中的升級版本信息進行比照,如果是目前固件版本信息高于或者等同于服務器中的升級版本信息,則結(jié)束升級過程,如果低于服務器中的升級版本信息,則執(zhí)行步驟4。
步驟4)中下載的固件程序可預存于計算機硬盤的臨時文件夾中。
步驟4)與步驟5)之間還包括對已下載的固件程序進行校驗的步驟,如校驗無誤,則繼續(xù)步驟5)。
最后將校驗無誤的最新版本的固件寫入到硬件設備的非易失性存儲空間,覆蓋原固件版本,從而可實現(xiàn)存儲在電子設備中的硬件設備的固件程序自動在線升級的功能。
本發(fā)明的第二方面提供了一種可在線升級固件程序的硬件設備,該硬件設備包括用于與聯(lián)網(wǎng)的計算機相連并進行數(shù)據(jù)交換的通訊接口和存儲固件程序的非易失可擦寫存儲器,以及用于存儲可激活計算機操作系統(tǒng)的自動執(zhí)行機制的初始化信息的初始化信息存儲裝置、用于存儲自動執(zhí)行配置文件的配置文件存儲裝置和用于存儲所述自動執(zhí)行配置文件所指向的在線升級程序的在線升級程序存儲裝置。在線升級程序存儲裝置中預先存儲了用以定位服務器的IP地址或者域名。在線升級程序包含通過網(wǎng)絡從預定的服務器下載固件程序的下載模塊和將下載的固件程序通過所述通訊接口寫入所述存儲固件程序的非易失可擦寫存儲器以取代原固件程序的固件更新模塊。另外,本裝置還設有升級啟動開關(guān),所述升級啟動開關(guān)與初始化信息存儲裝置相連,可開啟或關(guān)閉計算機對初始化信息存儲裝置的訪問通道。
其中,非易失可擦寫存儲器可為閃存、硬盤、EEPROM等;通訊接口可為USB接口、IEEE1394接口、無線USB接口或者藍牙接口等。
本發(fā)明“一種固件程序在線升級的方法及硬件設備”的效果如下第一、降低了操作不當導致固件升級失敗的機會,且可以隨時方便地查詢服務器端的固件更新情況,如果發(fā)現(xiàn)需要更新,則自動完成升級;第二、完成固件升級的步驟都借助于計算機的軟件和硬件平臺完成,對于需升級的硬件設備沒有很高的軟硬件要求,從而可以廣泛的應用在工業(yè)或民用的各種電子設備當中。
第三、由于利用了具有強大處理功能PC的平臺,可增加許多保證升級成功的措施,因而具有更好的安全性。例如在固件升級程序下載過程中采用斷點續(xù)傳和校驗技術(shù),從而保證了程序下載的完整性;固件升級程序完成下載后存儲在本地計算機的臨時文件夾,從而使得固件程序升級的刷新進程中,即使發(fā)生升級的意外中斷,也可進行重新刷新直至升級成功。此外,還可將待升級的固件存儲位置與用以實現(xiàn)在線升級的程序存儲位置分離,從而避免了因為固件升級失敗,導致該硬件設備無法使用的情況。
綜上所述,本發(fā)明具有更方便、安全、同時對自身的軟硬件要求不高的特點。
圖1是本發(fā)明實施例一可在線固件升級的視頻播放器存儲空間示意圖。
圖2是本發(fā)明支持在線升級的視頻播放器接入系統(tǒng)后自動啟動在線升級程序的流程圖。
圖3是本發(fā)明在線升級程序自動下載新版本固件文件并對視頻播放器進行固件升級的流程圖。
圖4是本發(fā)明藍牙多功能鼠標固件在線升級流程圖。
具體實施方式
以下結(jié)合附圖和實施例對本方明進行進一步的詳細說明。
實施例一為一種視頻播放器。首先說明一下本發(fā)明中實施例一的視頻播放器的結(jié)構(gòu)。該設備的硬件設備含有三個存儲器(如圖1)所示存儲器01是在線升級功能的核心裝置,該存儲器分為第一存儲區(qū)011、第二存儲區(qū)012和第三存儲區(qū)013三部分。第一存儲區(qū)011存儲了可激活計算機操作系統(tǒng)的自動執(zhí)行機制的初始化信息,本實施例中,將初始化信息中設備類型設為光盤,計算機操作系統(tǒng)就會將存儲器01默認為光盤。由于大多數(shù)操作系統(tǒng)都對光盤默認了自動運行程序,將插入的半導體存儲設備初始化為光盤就能利用這種操作系統(tǒng)默認的自動運行機制。第二存儲區(qū)012存儲了自動執(zhí)行配置文件,在windows操作系統(tǒng)中,需要設置的配置文件為autorun.ini,在其中記錄了在線升級程序的文件名和它的啟動全路徑。第三存儲區(qū)013存儲了自動執(zhí)行配置文件所指向的在線升級程序,在線升級程序包含通過網(wǎng)絡從預定的服務器下載固件程序的下載模塊和將下載的固件程序通過通訊接口寫入所述存儲固件程序的非易失可擦寫存儲器以取代原固件程序的固件更新模塊。存儲器01采用ROM作為存儲介質(zhì),ROM是一種非易失不可擦寫存儲器,以保證在線升級功能的核心部分不會由于誤操作而丟失。第三存儲區(qū)013還存儲了服務器的IP地址或者域名,用以定位服務器。存儲器02存儲的是應用級固件,使得控制器能夠協(xié)調(diào)硬件模塊的資源,實現(xiàn)硬件設備所具備的各種功能,也是本發(fā)明中需要升級的固件部分,存儲器02可采用閃存、硬盤、EEPROM等非易失存儲器作為存儲介質(zhì),且將存儲固件的部分隱藏,以保證固件的安全性。存儲器03是文件存儲區(qū),存儲的是需要視頻播放器播放的文件,如電影文件、MTV文件等,此存儲器一般采用硬盤、閃存等大容量的存儲介質(zhì)。通訊接口04,是連接視頻播放器和聯(lián)網(wǎng)計算機的通訊接口,在本實施例中,為USB接口,當然也可采用IEEE1394接口、無線USB接口或者藍牙接口等其他通訊接口。
本實施例中的視頻播放器實現(xiàn)固件自動升級的方法如下首先是在本地計算機中啟動視頻播放器中的在線升級程序的過程。如圖2所示,包含以下步驟步驟101將視頻播放器通過USB接口04與本地計算機連接;步驟102計算機的操作系統(tǒng)訪問第一存儲區(qū)011中的初始化信息,將存儲器01默認為光盤。;步驟103初始化完成之后,操作系統(tǒng)的自動執(zhí)行機制被激活,操作系統(tǒng)將在存儲器01中尋找自動執(zhí)行配置文件。
步驟104計算機操作系統(tǒng)訪問自動執(zhí)行配置文件,定位在線升級程序;步驟105在計算機上開始運行在線升級程序;步驟106將在線升級程序在本地計算機上的臨時文件夾進行備份,然后進入固件文件下載步驟。
然后將服務器端的固件文件下載在本地計算機中。如(圖3)所示,為應用本發(fā)明的將服務器端的固件文件下載在本地計算機中的流程圖。
步驟201在線升級程序開始運行后,會對于網(wǎng)絡狀況進行自動探測,判斷本地計算機能否連接到服務器端。如果不能夠連接,重新執(zhí)行步驟201;如果能夠連接,則執(zhí)行步驟202;步驟202在線升級程序首先對設備的固件部分進行查詢,獲取設備當前的固件版本號Ver A;步驟203在線升級程序查詢服務器端,獲得最新的固件版本號Ver B;步驟204在線升級程序?qū)er A與Ver B進行比較,如果版本號相同,則說明目前設備的固件是最新版本,無需進行升級,在線升級程序會自動退出,同時切斷計算機與硬件設備的通信;如果Ver B高于Ver A,則說明有更高版本的固件可以升級;步驟205自動升級軟件連接到服務器端,利用斷點續(xù)傳等手段下載Ver B固件文件,固件文件存放位置為本地計算機的臨時文件目錄;步驟206在線升級程序校驗下載的固件文件,如果校驗失敗,則執(zhí)行步驟205;如果校驗成功,則執(zhí)行硬件設備中固件升級程序;最后在線升級程序?qū)⒋鎯υ诒镜赜嬎銠C臨時文件目錄中校驗無誤的最新版本的固件文件通過通訊接口寫入到設備的存儲器02部分,從而實現(xiàn)了自動的在線固件更新。如果升級失敗,則在線升級軟件將臨時文件目錄中的固件文件再次寫入到硬件設備中,直到更新成功。
實施例二為一種多功能藍牙鼠標。所述的多功能藍牙鼠標通過藍牙接口連接本地計算機,同時所述的多功能藍牙鼠標具有多功能鍵,可以發(fā)出預制的多種指令。
說明一下所述的多功能藍牙鼠標的結(jié)構(gòu)。該設備的硬件設備含有一個非易失性可擦寫存儲器,例如閃存,被劃分為3個區(qū)域區(qū)域1,存儲的是系統(tǒng)級固件,該固件擔負了與計算機進行I/O通信的功能,硬件上電之后連接計算機就能正常實現(xiàn)通信功能;區(qū)域2,該區(qū)域內(nèi)部劃分第一存儲裝置、第二存儲裝置和第三存儲裝置三部分,其中第一存儲裝置存儲可激活計算機操作系統(tǒng)的自動執(zhí)行機制的初始化信息,第二存儲裝置存儲了自動執(zhí)行配置文件autorun.ini,第三存儲裝置存儲了自動執(zhí)行配置文件所指向的在線升級程序;區(qū)域3,存儲的是應用級固件,使得控制器能夠協(xié)調(diào)硬件模塊的的資源,實現(xiàn)硬件設備所具備的各種功能,也是本發(fā)明中需要升級的固件部分。通訊接口為藍牙接口。
該鼠標還包括一升級啟動開關(guān),升級啟動開關(guān)與第一存儲裝置相連,可開啟或關(guān)閉計算機對初始化信息存儲裝置的訪問通道。
同時,可將此非易失可擦寫存儲器設置為用戶不可見,以防止用戶不當刪除其所存儲的初始化信息、自動執(zhí)行配置文件、在線升級程序、應用級固件等。
多功能藍牙鼠標的固件程序在線升級步驟流程如圖4所示步驟301將多功能藍牙鼠標通過藍牙接口與本地計算機連接;步驟302開啟多功能藍牙鼠標的“在線升級開關(guān)”,啟動在線升級功能;步驟303多功能藍牙鼠標的硬件設備中的配置文件將激活計算機系統(tǒng)的自動執(zhí)行機制。將鼠標初始化為光本地計算機上的一個存儲設備或者光驅(qū),然后啟動autorun應用模塊;步驟304多功能藍牙鼠標訪問聯(lián)機信息部分,定位在線升級程序;步驟305多功能藍牙鼠標的配置文件指示計算機自動運行在線升級程序;步驟306在線升級程序開始運行后,會通過指定IP地址連接到服務器端,獲得最新的固件版本號;步驟307在線升級程序?qū)Π姹具M行比較,如果發(fā)現(xiàn)最新版本高于本地版本,則執(zhí)行固件升級;步驟308自動升級軟件連接到服務器端,利用斷點續(xù)傳等手段下載最新版本固件文件,下載位置為本地計算機的臨時文件目錄;步驟309在線升級程序校驗下載的固件文件,直到校驗成功,則執(zhí)行硬件設備中固件升級程序;步驟310最后在線升級程序?qū)⒋鎯υ诒镜赜嬎銠C臨時文件目錄中校驗無誤的最新版本的固件寫入到設備的存儲器中,取代原固件程序,從而實現(xiàn)了自動的在線固件更新。
以上實施例僅用以說明而非限制本方面的技術(shù)方案,盡管參照上述實施例對本發(fā)明進行了詳細說明,本領域的普通技術(shù)人員應當理解依然可以對本發(fā)明進行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任務修改或局部替換,其均應涵蓋在本發(fā)明的權(quán)利要求
范圍當中。
權(quán)利要求
1.一種硬件設備中固件程序在線升級的方法,其特征在于包括1)硬件設備通過通訊接口與聯(lián)網(wǎng)的計算機連接的步驟;2)激活計算機操作系統(tǒng)的自動執(zhí)行機制的步驟;3)操作系統(tǒng)執(zhí)行自動執(zhí)行配置文件所指向的存儲在硬件設備所帶存儲器中的在線升級程序的步驟;4)在線升級程序通過網(wǎng)絡從預定的服務器下載固件程序的步驟;5)將下載的固件程序?qū)懭胗布O備所帶非易失可擦寫存儲器特定空間,取代原固件程序,從而完成固件程序升級的步驟。
2.如權(quán)利要求
1所述的一種硬件設備中固件程序在線升級的方法,其特征在于步驟3)與步驟4)之間還包括在線升級程序從預定的服務器獲取欲下載的固件程序的版本信息并將其與硬件設備當前固件程序版本進行比較的步驟,如欲下載的固件程序版本新于當前版本,則繼續(xù)步驟4)。
3.如權(quán)利要求
1所述的一種硬件設備中固件程序在線升級的方法,其特征在于步驟4)中下載的固件程序存于計算機硬盤的臨時文件夾中。
4.如權(quán)利要求
1所述的一種硬件設備中固件程序在線升級的方法,其特征在于所述通訊接口為USB接口、IEEE1394接口、無線USB接口或者藍牙接口。
5.如權(quán)利要求
1所述的一種硬件設備中固件程序在線升級的方法,其特征在于步驟4)與步驟5)之間還包括對已下載的固件程序進行校驗的步驟,如校驗無誤,則繼續(xù)步驟5)。
6.一種可在線升級固件程序的硬件設備,包括用于與聯(lián)網(wǎng)的計算機相連并進行數(shù)據(jù)交換的通訊接口和存儲固件程序的非易失可擦寫存儲器,其特征在于還包括用于存儲可激活計算機操作系統(tǒng)的自動執(zhí)行機制的初始化信息的初始化信息存儲裝置;和用于存儲自動執(zhí)行配置文件的配置文件存儲裝置;用于存儲所述自動執(zhí)行配置文件所指向的在線升級程序的在線升級程序存儲裝置;所述在線升級程序包含通過網(wǎng)絡從預定的服務器下載固件程序的下載模塊和將下載的固件程序通過所述通訊接口寫入所述存儲固件程序的非易失可擦寫存儲器以取代原固件程序的固件更新模塊。
7.如權(quán)利要求
6所述的一種可在線升級固件程序的硬件設備,其特征在于所述非易失可擦寫存儲器為閃存、硬盤、EEPROM。
8.如權(quán)利要求
6所述的一種可在線升級固件程序的硬件設備,其特征在于所述通訊接口為USB接口、IEEE1394接口、無線USB接口或者藍牙接口。
9.如權(quán)利要求
6所述的一種可在線升級固件程序的硬件設備,其特征在于所述初始化信息存儲裝置、配置文件存儲裝置和/或在線升級程序存儲裝置為非易失不可擦寫存儲器。
10.如權(quán)利要求
6所述的一種可在線升級固件程序的硬件設備,其特征在于所述初始化信息存儲裝置、配置文件存儲裝置和/或在線升級程序存儲裝置為非易失可擦寫存儲器的隱藏區(qū)。
11.如權(quán)利要求
6所述的一種可在線升級固件程序的硬件設備,其特征在于還包括升級啟動開關(guān),所述升級啟動開關(guān)與初始化信息存儲裝置相連,可開啟或關(guān)閉計算機對初始化信息存儲裝置的訪問通道。
12.如權(quán)利要求
6所述的一種可在線升級固件程序的硬件設備,其特征在于所述在線升級程序存儲裝置中預先存儲了用以定位服務器的IP地址或者域名。
13.如權(quán)利要求
6所述的一種可在線升級固件程序的硬件設備,其特征在于所述固件程序存儲在非易失可擦寫存儲器的隱藏區(qū)。
專利摘要
本發(fā)明涉及一種硬件設備中固件程序在線升級的方法,該方法包括下列步驟1)硬件設備通過通訊接口與聯(lián)網(wǎng)的計算機連接;2)激活計算機操作系統(tǒng)的自動執(zhí)行機制;3)操作系統(tǒng)執(zhí)行自動執(zhí)行配置文件所指向的存儲在硬件設備所帶存儲器中的在線升級程序;4)在線升級程序通過網(wǎng)絡從預定的服務器下載固件程序;5)將下載的固件程序?qū)懭胗布O備所帶非易失可擦寫存儲器特定空間,取代原固件程序,從而完成固件程序升級。本發(fā)明同時涉及一種可在線升級固件程序的硬件設備,包括通訊接口和存儲固件程序的非易失可擦寫存儲器,以及初始化信息存儲裝置、配置文件存儲裝置、在線升級程序存儲裝置。
文檔編號G06F9/445GK1991761SQ200510135570
公開日2007年7月4日 申請日期2005年12月30日
發(fā)明者李富強 申請人:北京華旗資訊數(shù)碼科技有限公司導出引文BiBTeX, EndNote, RefMan