嵌入式系統(tǒng)固件在線管理方法
【專利摘要】本發(fā)明提供了一種嵌入式系統(tǒng)固件在線管理方法,包括固件服務(wù)器,所述固件服務(wù)器用于存儲(chǔ)固件,其特征在于,包括如下步驟:步驟1:通過(guò)現(xiàn)場(chǎng)總線將待升級(jí)設(shè)備的硬件信息通過(guò)網(wǎng)關(guān)發(fā)送至固件服務(wù)器;步驟2:根據(jù)所述硬件信息在設(shè)備數(shù)據(jù)庫(kù)中查詢所述待升級(jí)設(shè)備的加密密匙;步驟3:使用所述加密密匙對(duì)固件進(jìn)行加密并傳送至網(wǎng)關(guān),進(jìn)而通過(guò)現(xiàn)場(chǎng)總線發(fā)送至待升級(jí)設(shè)備;步驟4:待升級(jí)設(shè)備將接收到的固件進(jìn)行校驗(yàn)后寫入存儲(chǔ)設(shè)備。步驟5:對(duì)待升級(jí)設(shè)備進(jìn)行熱重啟。本發(fā)明能夠在不改變待升級(jí)設(shè)備的安裝以及接線的情況下完成待升級(jí)設(shè)備的固件管理;本發(fā)明能夠在系統(tǒng)運(yùn)行時(shí),系統(tǒng)能夠無(wú)縫的完成固件升級(jí),無(wú)需手動(dòng)對(duì)系統(tǒng)進(jìn)行重啟。
【專利說(shuō)明】嵌入式系統(tǒng)固件在線管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及固件升級(jí),具體地,涉及一種嵌入式系統(tǒng)固件在線管理方法。
【背景技術(shù)】
[0002]隨著工廠自動(dòng)化的不斷發(fā)展,智能化測(cè)量以及執(zhí)行設(shè)備在工業(yè)現(xiàn)場(chǎng)的應(yīng)用越來(lái)越廣泛。固件程序是這些設(shè)備的“大腦”,當(dāng)功能出現(xiàn)變動(dòng)時(shí),需要對(duì)固件進(jìn)行升級(jí)。
[0003]傳統(tǒng)的固件升級(jí)需要由專業(yè)的技術(shù)人員通過(guò)調(diào)試串口或仿真器才能完成。這種種方式需要增加正常運(yùn)行時(shí)不必要的連線,甚至需要從整機(jī)中將設(shè)備拆解出來(lái),這對(duì)于現(xiàn)場(chǎng)運(yùn)用是十分困難的。
[0004]另外,傳統(tǒng)的固件升級(jí)通常是一對(duì)一單個(gè)升級(jí),耗時(shí)大,且需技術(shù)人員依次判斷每個(gè)設(shè)備的型號(hào),版本號(hào)等。同時(shí),在升級(jí)過(guò)程中需要系統(tǒng)停機(jī)。
【發(fā)明內(nèi)容】
[0005]針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種嵌入式系統(tǒng)固件在線管理方法。由于現(xiàn)代的智能化設(shè)備通常包含嵌入式計(jì)算平臺(tái)以及相應(yīng)的外圍器件構(gòu)成,其通過(guò)現(xiàn)場(chǎng)總線向控制器提供接口,由于該現(xiàn)場(chǎng)總線對(duì)于工業(yè)現(xiàn)場(chǎng)是天然存在的,且該現(xiàn)場(chǎng)總線連接了工業(yè)現(xiàn)場(chǎng)中的所有設(shè)備,因此通過(guò)該現(xiàn)場(chǎng)總線能夠有效地對(duì)固件進(jìn)行管理,包括設(shè)備型號(hào)、固件版本、固件升級(jí)、固件調(diào)試等。
[0006]根據(jù)本發(fā)明提供的嵌入式系統(tǒng)固件在線管理方法,包括固件服務(wù)器,所述固件服務(wù)器用于存儲(chǔ)固件,包括如下步驟:
[0007]步驟1:通過(guò)現(xiàn)場(chǎng)總線將待升級(jí)設(shè)備的硬件信息通過(guò)網(wǎng)關(guān)發(fā)送至固件服務(wù)器;
[0008]步驟2:根據(jù)所述硬件信息在設(shè)備數(shù)據(jù)庫(kù)中查詢所述待升級(jí)設(shè)備的加密密匙;
[0009]步驟3:使用所述加密密匙對(duì)固件進(jìn)行加密并傳送至網(wǎng)關(guān),進(jìn)而通過(guò)現(xiàn)場(chǎng)總線發(fā)送至待升級(jí)設(shè)備;
[0010]步驟4:待升級(jí)設(shè)備將接收到的固件進(jìn)行校驗(yàn)后寫入存儲(chǔ)設(shè)備;
[0011]步驟5:對(duì)待升級(jí)設(shè)備進(jìn)行熱重啟。
[0012]優(yōu)選地,還包括如下步驟:
[0013]-當(dāng)固件升級(jí)失敗時(shí),Bootloader程序?qū)⒅苯右龑?dǎo)待升級(jí)設(shè)備至緊急固件,緊急固件通過(guò)狀態(tài)燈或蜂鳴器告知用戶,同時(shí)待升級(jí)設(shè)備將持續(xù)接收固件以恢復(fù)待升級(jí)設(shè)備的運(yùn)行。
[0014]優(yōu)選地,所述步驟4中,將所述存儲(chǔ)設(shè)備包括A部分,在編譯固件時(shí)將固件的關(guān)鍵變量存放于A部分中,待升級(jí)設(shè)備在熱重啟時(shí)不對(duì)A部分進(jìn)行初始化,從而實(shí)現(xiàn)待升級(jí)設(shè)備不同固件的無(wú)縫銜接。
[0015]優(yōu)選地,在步驟1之前還包括如下步驟:
[0016]-擴(kuò)展現(xiàn)場(chǎng)總線上傳輸?shù)闹噶睢?br>
[0017]優(yōu)選地,所述現(xiàn)場(chǎng)總線采用EtherCAT現(xiàn)場(chǎng)總線、ControlNet現(xiàn)場(chǎng)總線、Profibus現(xiàn)場(chǎng)總線、SwiftNet現(xiàn)場(chǎng)總線以及Interbus現(xiàn)場(chǎng)總線中的任一種。
[0018]優(yōu)選地,所述存儲(chǔ)設(shè)備采用只讀存儲(chǔ)器、可編程只讀存儲(chǔ)器、電可改寫只讀存儲(chǔ)器、可擦可編程只讀存儲(chǔ)器、電可擦可編程只讀存儲(chǔ)器以及閃存中的任一種。
[0019]優(yōu)選地,多個(gè)待升級(jí)設(shè)備的固件能夠同時(shí)進(jìn)行升級(jí)。
[0020]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
[0021]1、本發(fā)明能夠在不改變待升級(jí)設(shè)備的安裝以及接線的情況下完成待升級(jí)設(shè)備的固件管理;
[0022]2、本發(fā)明能夠在系統(tǒng)運(yùn)行時(shí),系統(tǒng)能夠無(wú)縫的完成固件升級(jí),無(wú)需手動(dòng)對(duì)系統(tǒng)進(jìn)行重啟;
[0023]3、本發(fā)明能夠同時(shí)在線更新多個(gè)固件,可控制每個(gè)待升級(jí)設(shè)備固件版本。
【專利附圖】
【附圖說(shuō)明】
[0024]通過(guò)閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0025]圖1為本發(fā)明的結(jié)構(gòu)示意圖;
[0026]圖2為本發(fā)明中固件緊急升級(jí)控制策略圖;
[0027]圖3為本發(fā)明的步驟流程圖。
【具體實(shí)施方式】
[0028]下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。
[0029]在本實(shí)施例中,現(xiàn)場(chǎng)總線(Fieldbus)為工廠內(nèi)的測(cè)量、執(zhí)行等設(shè)備和控制機(jī)器間的數(shù)字通訊為主的網(wǎng)絡(luò),也稱現(xiàn)場(chǎng)網(wǎng)絡(luò)。
[0030]固件(Firmware)為一種嵌入在硬件設(shè)備中的軟件。通常它是位于特殊應(yīng)用集成電路(ASIC)或可編程邏輯器件(PLD)之中的閃存或EEPR0M里,有的可以讓使用者更新。
[0031]在本實(shí)施例中,如圖1、圖2所示,本發(fā)明提供的嵌入式系統(tǒng)固件在線管理方法,包括固件服務(wù)器,所述固件服務(wù)器由設(shè)備廠商提供,在固件服務(wù)器中存儲(chǔ)該廠商的所有固件,當(dāng)固件需要更新時(shí),進(jìn)行如下步驟:
[0032]步驟1:待升級(jí)設(shè)備通過(guò)現(xiàn)場(chǎng)總線將待升級(jí)設(shè)備的硬件信息通過(guò)網(wǎng)關(guān)發(fā)送至固件服務(wù)器;
[0033]步驟2:固件服務(wù)器收到設(shè)備信息后,在設(shè)備數(shù)據(jù)庫(kù)查詢對(duì)應(yīng)于該待升級(jí)設(shè)備的加密密鑰;
[0034]步驟3:固件服務(wù)器用加密密鑰對(duì)未加密的原始固件進(jìn)行加密并傳送至網(wǎng)關(guān);
[0035]步驟4:網(wǎng)關(guān)通過(guò)現(xiàn)場(chǎng)總線將特定設(shè)備的固件發(fā)送至帶升級(jí)的設(shè)備;
[0036]步驟5:待升級(jí)設(shè)備收到固件并進(jìn)行必要的校驗(yàn)后將固件寫入非易失性的存儲(chǔ)設(shè)備;
[0037]步驟6:對(duì)待升級(jí)設(shè)備進(jìn)行熱重啟,在熱重啟的過(guò)程中不初始化內(nèi)存,以實(shí)現(xiàn)設(shè)備的不停機(jī)連續(xù)運(yùn)行。
[0038]為保證設(shè)備在系統(tǒng)固件升級(jí)失敗后能夠穩(wěn)定運(yùn)行,設(shè)備固件緊急升級(jí)情況采用如下控制策略:在系統(tǒng)正常運(yùn)行時(shí),緊急固件不發(fā)揮任何作用。但當(dāng)固件升級(jí)失敗時(shí),如Flash寫入失效等,Bootloader程序?qū)⒅苯右龑?dǎo)待升級(jí)設(shè)備至緊急固件,緊急固件通過(guò)狀態(tài)燈或蜂鳴器告知用戶,同時(shí)待升級(jí)設(shè)備通過(guò)網(wǎng)關(guān)持續(xù)接收新的固件以恢復(fù)待升級(jí)設(shè)備的運(yùn)行。
[0039]待升級(jí)設(shè)備可以熱重啟時(shí),將所述存儲(chǔ)設(shè)備包括A部分,在編譯固件時(shí)將所有關(guān)鍵變量存放于A部分,在待升級(jí)設(shè)備熱重啟時(shí)不對(duì)A部分進(jìn)行初始化,從而實(shí)現(xiàn)設(shè)備在不同固件的無(wú)縫銜接。所述關(guān)鍵變量包括gcc中的LDS文件、TI Code Composer Stud1中的CMD文件。
[0040]所述存儲(chǔ)設(shè)備采用只讀存儲(chǔ)器、可編程只讀存儲(chǔ)器、電可改寫只讀存儲(chǔ)器、可擦可編程只讀存儲(chǔ)器、電可擦可編程只讀存儲(chǔ)器以及閃存中的任一種。所述現(xiàn)場(chǎng)總線采用EtherCAT現(xiàn)場(chǎng)總線、ControlNet現(xiàn)場(chǎng)總線、Profibus現(xiàn)場(chǎng)總線、SwiftNet現(xiàn)場(chǎng)總線以及Interbus現(xiàn)場(chǎng)總線中的任一種。
[0041]固件可以通過(guò)現(xiàn)場(chǎng)總線來(lái)傳輸,在傳輸固件時(shí)為不影響設(shè)備的運(yùn)行,需擴(kuò)展總線上傳輸?shù)闹噶?,使得總線能夠在傳輸固件文件的同時(shí)不干擾到正??刂苹騻鞲衅鲾?shù)據(jù)指令的傳輸。
[0042]以上對(duì)本發(fā)明的具體實(shí)施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實(shí)施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變形或修改,這并不影響本發(fā)明的實(shí)質(zhì)內(nèi)容。
【權(quán)利要求】
1.一種嵌入式系統(tǒng)固件在線管理方法,包括固件服務(wù)器,所述固件服務(wù)器用于存儲(chǔ)固件,其特征在于,包括如下步驟: 步驟1:通過(guò)現(xiàn)場(chǎng)總線將待升級(jí)設(shè)備的硬件信息通過(guò)網(wǎng)關(guān)發(fā)送至固件服務(wù)器; 步驟2:根據(jù)所述硬件信息在設(shè)備數(shù)據(jù)庫(kù)中查詢所述待升級(jí)設(shè)備的加密密匙; 步驟3:使用所述加密密匙對(duì)固件進(jìn)行加密并傳送至網(wǎng)關(guān),進(jìn)而通過(guò)現(xiàn)場(chǎng)總線發(fā)送至待升級(jí)設(shè)備; 步驟4:待升級(jí)設(shè)備將接收到的固件進(jìn)行校驗(yàn)后寫入存儲(chǔ)設(shè)備; 步驟5:對(duì)待升級(jí)設(shè)備進(jìn)行熱重啟。
2.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)固件在線管理方法,其特征在于,還包括如下步驟: -當(dāng)固件升級(jí)失敗時(shí),Bootloader程序?qū)⒅苯右龑?dǎo)待升級(jí)設(shè)備至緊急固件,緊急固件通過(guò)狀態(tài)燈或蜂鳴器告知用戶,同時(shí)待升級(jí)設(shè)備將持續(xù)接收固件以恢復(fù)待升級(jí)設(shè)備的運(yùn)行。
3.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)固件在線管理方法,其特征在于,所述步驟4中,將所述存儲(chǔ)設(shè)備包括A部分,在編譯固件時(shí)將固件的關(guān)鍵變量存放于A部分中,待升級(jí)設(shè)備在熱重啟時(shí)不對(duì)A部分進(jìn)行初始化,從而實(shí)現(xiàn)待升級(jí)設(shè)備不同固件的無(wú)縫銜接。
4.根據(jù)權(quán)利要求1或2所述的嵌入式系統(tǒng)固件在線管理方法,其特征在于,在步驟I之前還包括如下步驟: -擴(kuò)展現(xiàn)場(chǎng)總線上傳輸?shù)闹噶睢?br>
5.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)固件在線管理方法,其特征在于,所述現(xiàn)場(chǎng)總線采用EtherCAT現(xiàn)場(chǎng)總線、ControlNet現(xiàn)場(chǎng)總線、Profibus現(xiàn)場(chǎng)總線、SwiftNet現(xiàn)場(chǎng)總線以及Interbus現(xiàn)場(chǎng)總線中的任一種。
6.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)固件在線管理方法,其特征在于,所述存儲(chǔ)設(shè)備采用只讀存儲(chǔ)器、可編程只讀存儲(chǔ)器、電可改寫只讀存儲(chǔ)器、可擦可編程只讀存儲(chǔ)器、電可擦可編程只讀存儲(chǔ)器以及閃存中的任一種。
7.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)固件在線管理方法,其特征在于,多個(gè)待升級(jí)設(shè)備的固件能夠同時(shí)進(jìn)行升級(jí)。
【文檔編號(hào)】G06F9/445GK104239109SQ201410522030
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2014年9月30日 優(yōu)先權(quán)日:2014年9月30日
【發(fā)明者】廖文龍, 何弢, 魏之暄 申請(qǐng)人:上海瑞貓自動(dòng)化控制技術(shù)有限公司