專利名稱:一種單板應(yīng)用版本的實現(xiàn)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機與嵌入式設(shè)備技術(shù)領(lǐng)域:
,尤其涉及一種單板應(yīng)用版本的實現(xiàn)方法及系統(tǒng)。
背景技術(shù):
目前各種嵌入式設(shè)備、通信i殳備的應(yīng)用版本,如啟動軟件或升級軟件版
本等,通常保存在非易失性存儲器(Non-Volatile Memory)如flash (閃存)中, 一旦flash中的軟件版本被破壞或者出現(xiàn)軟件故障,將導(dǎo)致無法繼續(xù)訪問flash,從而造成整個設(shè)備將無法正常運行或者無法升級。
為了解決這個問題,現(xiàn)有技術(shù)中通常對設(shè)備單板的應(yīng)用版本采用雙版本相互備f分的方法;或者采用大小版本的方法,小版本用于緊急恢復(fù),大版本用于正常運行。兩種方法的工作原理基本相同單板首先從BootRom (啟動芯片)啟動,然后檢查flash存儲器中的第一個軟件版本,如果該第一個軟件版本可用,則正常啟動;如果第一個軟件版本不可用,則檢查第二個版本是否可用,如果第二個版本可用則正常啟動,不可用則只能停止運行,等待人工千預(yù)對設(shè)備進行修復(fù)。
如圖l所示,采用雙版本方法的運行流程可分為如下步驟
步驟IOI, 單板從BootRom啟動;
步驟102, 檢查flash存儲器中的第一個軟件版本是否可用,如果可用,則執(zhí)行步驟105,否則ii^步驟103;
步驟103, 檢查flash存儲器中的第二個軟件版本是否可用,如果可用則執(zhí)行步驟105,否則進入步驟104;
步驟104,如果所有的版本都不可用,則停止在BootRom狀態(tài),等待人工修復(fù);步驟105, 從該可用版本正常啟動。
從以上流程可以看出,采用雙版本方法的軟件版本在兩個軟件版本都^皮破壞時,只能依賴于人工打開設(shè)備,經(jīng)過復(fù)雜的操作重新下載軟件版本到flash中,維護效率低;此外,保存雙版本需要占用較大的存儲空間,對flash的存儲容量要求較高,導(dǎo)致成本增加;同時,還使得flash存儲器的讀寫訪問速度都比較慢。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種單板應(yīng)用版本的實現(xiàn)方法及系統(tǒng),當(dāng)單板應(yīng)用軟件出現(xiàn)異常時對軟件版本進行恢復(fù),能夠降低產(chǎn)品成本和維護費用,提高維護效率。
為了解決上述問題,本發(fā)明提供了一種單板應(yīng)用版本的實現(xiàn)方法,包括
單板啟動后,檢查程序存儲器中有無可用的應(yīng)用版本,若有,則加載運行所述程序存儲器中的該可用應(yīng)用版本;否則通過啟動網(wǎng)絡(luò)協(xié)議請求下載新的應(yīng)用版本,將所述新的應(yīng)用版本文件下栽到單板內(nèi)存中,并對所述新的應(yīng)用版本進行解析,解析成功后加載運行。
進一步地,所述檢查程序存儲器中有無可用的應(yīng)用版本包括從所述程序存儲器中定位應(yīng)用版本的位置,以及沖交驗所述應(yīng)用版本的合法性和完整性。
進一步地,所述方法還包括將所述新的應(yīng)用版本文件下載到所述單4反內(nèi)存中后,核j瞼所述新的應(yīng)用版本的合法性和完整性。
進一步地,所述校驗應(yīng)用版本的合法性和完整性包括使用循環(huán)冗余算法檢查所述應(yīng)用版本的完整性,以及使用RSA算法檢查所述應(yīng)用版本的合法性。
進一步地,所述通過啟動網(wǎng)絡(luò)協(xié)議下載新的應(yīng)用版本包括通過動態(tài)主機分配協(xié)議DHCP協(xié)議請求IP地址和應(yīng)用版本文件名稱,并根據(jù)獲取的所述IP地址和應(yīng)用版本文件名稱通過文件傳輸協(xié)議請件。進一步地,若對所述新的應(yīng)用版本解^f不成功,則重新請求下載,其中,
對所述新的應(yīng)用版本進行解析包括在所述新的應(yīng)用版本中找到啟動內(nèi)核和文件系統(tǒng)的位置。
進一步地,所述方法還包括加載運行所述新的應(yīng)用版本完畢后,通過網(wǎng)絡(luò)協(xié)議下載新的應(yīng)用版本,并將新的應(yīng)用版本寫入所述程序存儲器中,以對所述程序存儲器中的應(yīng)用版本進行更新。
本發(fā)明還^^供了一種單板應(yīng)用版本的實現(xiàn)系統(tǒng),包括具有程序存儲器的單板,還包括存儲有應(yīng)用版本的服務(wù)器,所述單板內(nèi)存與所述服務(wù)器相連,
所述單板在啟動后,檢查所述程序存儲器中有無可用的應(yīng)用版本,若有,則加載運行所述程序存儲器中的該可用應(yīng)用版本;否則通過啟動網(wǎng)絡(luò)協(xié)議請求下載新的應(yīng)用版本,將所述新的應(yīng)用版本文件下載到單板內(nèi)存中,并對所述新的應(yīng)用版本進行解析,解析成功后加載運行。
進一步地,所述單板還用于
將所述新的應(yīng)用版本文件下載到所述單板內(nèi)存中后,校驗所述新的應(yīng)用版本的合法性和完整性;以及,
在加載運行所述新的應(yīng)用版本完畢后,通過網(wǎng)絡(luò)協(xié)議下載新的應(yīng)用版本,并將新的應(yīng)用版本寫入所述程序存儲器中,以對所述程序存儲器中的應(yīng)用版本進行更新。
進一步地,所述服務(wù)器包括應(yīng)用版本服務(wù)器和DHCP服務(wù)器,所述單板內(nèi)存分別與所述應(yīng)用版本服務(wù)器及所述DHCP服務(wù)器相連,其中,
所述應(yīng)用版本服務(wù)器,用于存儲所述應(yīng)用版本;
所迷DHCP服務(wù)器,用于IP地址的分發(fā)及應(yīng)用版本文件名稱的下發(fā);
所述單板內(nèi)存,用于通過DHCP協(xié)議向所述DHCP服務(wù)器請求IP地址和應(yīng)用版本文件名稱,并根據(jù)獲取的所述IP地址和應(yīng)用版本文件名稱通過文件傳輸協(xié)議從所述應(yīng)用版本服務(wù)器上下載新的應(yīng)用版本文件。
采用本發(fā)明方法及系統(tǒng),使得嵌入式設(shè)備、通信設(shè)備在存儲器上的軟件版本出現(xiàn)異?;蚬收系那闆r下,無須打開設(shè)備,可直接下載軟件版本到內(nèi)存中,通過運行內(nèi)存中的軟件版本,并更新故障設(shè)備存儲器中的軟件版本,使設(shè)備恢復(fù)正常運行。
本發(fā)明可以用于軟件版本的緊急恢復(fù),與傳統(tǒng)的雙版本或大小版本相比,
降低了產(chǎn)品成本,提高了維護效率;并且,當(dāng)傳統(tǒng)的方法中兩個版本同時失效時,也可以利用本發(fā)明的方法進行恢復(fù);同時,本發(fā)明也可以用于實現(xiàn)單板無盤啟動,無須在flash存儲器上讀寫軟件版本,提高了效率。
圖1為現(xiàn)有技術(shù)中采用雙版本備份的軟件版本的運行流程圖;圖2為本發(fā)明實施例的基于內(nèi)存的安全軟件版本系統(tǒng)的示意圖;圖3為本發(fā)明實施例的基于內(nèi)存的安全軟件版本的方法流程圖。
具體實施方式
針對目前基于flash存儲軟件的設(shè)備, 一旦設(shè)備軟件出現(xiàn)異常則設(shè)備將無法啟動或升鈒的問題,本發(fā)明提出了一種基于內(nèi)存的單板應(yīng)用版本,其核心是將設(shè)備單板通過網(wǎng)絡(luò)連接到軟件版本服務(wù)器,這樣,當(dāng)單板軟件版本出現(xiàn)異?;蚬收系那闆r時,通過啟動網(wǎng)絡(luò)協(xié)議從軟件版本服務(wù)器下載軟件版本到內(nèi)存中,通過運行內(nèi)存中的軟件版本,并更新故障設(shè)備存儲器中的軟件版本,使設(shè)備恢復(fù)正常運行。
具體地,本發(fā)明的單板應(yīng)用版本的實現(xiàn)方法主要采用以下技術(shù)方案
步驟一,單板上電,從BootRom啟動;
步驟二, BootRom內(nèi)程序檢測程序存儲器,如flash存儲器中有無可用的應(yīng)用版本(軟件版本),若有,則加載flash中的可用版本,正常啟動,本方法結(jié)束;否則BootRom啟動網(wǎng)絡(luò)協(xié)議向軟件版本服務(wù)器請求下載軟件版本,并執(zhí)行下一步;
步驟三,下載新的軟件版本到內(nèi)存中,并檢查所下載的軟件版本文件的完整性和合法性;
步驟四,解析內(nèi)存中的該軟件版本,從該版本直接啟動。
在完成上述步驟之后,可以通過定義的軟件接口更新flash中的軟件版本,從而完成設(shè)備修復(fù)。更新flash中的軟件版本包括內(nèi)存軟件版本啟動完成后,通過網(wǎng)絡(luò)協(xié)議下載新的軟件版本,并將版本寫入到flash存儲器中。
其中,上述步驟二中,檢查flash存儲器有無軟件版本可用包括從flash中定位軟件版本的位置,使用循環(huán)冗余算法校驗軟件版本以確認(rèn)其完整性,使用RSA (—種非對稱加密算法)算法校驗軟件版本簽名以確認(rèn)其合法性;
上述步驟二中,啟動網(wǎng)絡(luò)協(xié)議向軟件版本服務(wù)器請求版本軟件包括首先通過DHCP (Dynamic Host Configuration Protocol ,動態(tài)主才幾分配協(xié)i義)協(xié)議向DHCP服務(wù)器請求IP地址和軟件版本文件名稱,再根據(jù)獲取的IP地
版本文件。
上述步驟三中,檢查軟件版本文件的完整性和合法性包括使用循環(huán)冗余算法完成軟件版本校驗和確認(rèn)其完整性,以及使用RSA算法校驗軟件版本簽名確認(rèn)其合法性。
上述步驟四中,解析內(nèi)存中的軟件版本包括在內(nèi)存軟件版本中找到啟動內(nèi)核和文件系統(tǒng)的位置。
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步詳細描述。
如圖2所示,本發(fā)明實施例的單板應(yīng)用版本的實現(xiàn)系統(tǒng)主要包括設(shè)備單板、軟件版本服務(wù)器和DHCP服務(wù)器。設(shè)備單板通過網(wǎng)絡(luò)連接與軟件版本服務(wù)器及DHCP服務(wù)器相連,軟件版本服務(wù)器負(fù)責(zé)存儲設(shè)備軟件版本,DHCP服務(wù)器負(fù)責(zé)IP地址的分發(fā)和軟件版本文件名稱的下發(fā)。在本發(fā)明的其它實施例中,軟件版本爿良務(wù)器和DHCP服務(wù)器也可以合并為一個物理設(shè)備。如圖3所示,本發(fā)明實施例的單板應(yīng)用版本的實現(xiàn)方法的具體實施步驟 如下
步驟201,單板上電,完成設(shè)備初始化設(shè)備硬件初始化,包括flash存 儲器、內(nèi)存、網(wǎng)絡(luò)設(shè)備等;軟件初始化,包括網(wǎng)絡(luò)協(xié)議棧初始化;
步驟202,設(shè)備初始化完成后,BootRom內(nèi)程序開始從flash中搜索已有 的軟件版本,找到軟件版本后使用循環(huán)冗余算法檢查版本的完整性,使用 RSA算法檢查版本的合法性,如果軟件版本可用,則進入步驟207,否則執(zhí) 行步驟203;
步驟203, BootRom內(nèi)程序啟動網(wǎng)絡(luò)協(xié)議棧,通過DHCP協(xié)議向DHCP 服務(wù)器請求IP地址和軟件版本文件名稱,DHCP服務(wù)器從地址池中取一個IP 地址并下發(fā)給設(shè)備單板,同時利用BootFile字段將軟件版本名稱發(fā)給設(shè)備單 板;
步驟204,設(shè)備單板根據(jù)收到的上述IP地址和軟件版本文件名稱,通過 文件傳輸協(xié)議將軟件版本下載到設(shè)備單板內(nèi)存中;
步驟205, BootRom內(nèi)程序檢查內(nèi)存中的軟件版本文件的完整性和合法 性,包括使用循環(huán)冗余算法檢查版本的完整性,使用RSA算法檢查版本的 合法性,并進行下一步;
步驟206,判斷內(nèi)存軟件版本是否可用,如果可用,則進入步驟207;否 則進入步驟204,嘗試重新下載軟件版本到內(nèi)存中;
步驟207,在軟件版本中通過一定的方法找到內(nèi)核和文件系統(tǒng)的位置, 加載內(nèi)核,啟動i殳備軟件。
可選地,步驟207中,設(shè)備啟動完成后,可以使用預(yù)先定義的軟件接口, 更新flash中的軟件版本;如果設(shè)備軟件啟動失敗,可以更新服務(wù)器中的軟件 版本,并從步驟201重新開始。
通過上述流程可以看出,采用本發(fā)明的技術(shù)方案不需要在flash中保存多 個軟件版本,減少了設(shè)備成本;更新設(shè)備軟件版本過程全部自動化完成,不 需要人工干預(yù)。與傳統(tǒng)的雙版本或大小版本相比,提高了維護效率,減小了 維護成本。
權(quán)利要求
1、一種單板應(yīng)用版本的實現(xiàn)方法,其特征在于,包括單板啟動后,檢查程序存儲器中有無可用的應(yīng)用版本,若有,則加載運行所述程序存儲器中的該可用應(yīng)用版本;否則通過啟動網(wǎng)絡(luò)協(xié)議請求下載新的應(yīng)用版本,將所述新的應(yīng)用版本文件下載到單板內(nèi)存中,并對所述新的應(yīng)用版本進行解析,解析成功后加載運行。
2、 如權(quán)利要求
1所述的方法,其特征在于,所述檢查程序存儲器中有 無可用的應(yīng)用版本包括從所述程序存儲器中定位應(yīng)用版本的位置,以及校 驗所述應(yīng)用版本的合法性和完整性。
3、 如權(quán)利要求
1所述的方法,其特征在于,所述方法還包括將所述 新的應(yīng)用版本文件下載到所述單板內(nèi)存中后,校驗所述新的應(yīng)用版本的合法 性和完整性。
4、 如權(quán)利要求
2或3所述的方法,其特征在于,所述校驗應(yīng)用版本的 合法性和完整性包括使用循環(huán)冗余算法檢查所述應(yīng)用版本的完整性,以及 使用RSA算法檢查所述應(yīng)用版本的合法性。
5、 如權(quán)利要求
1所述的方法,其特征在于,所述通過啟動網(wǎng)絡(luò)協(xié)議下 載新的應(yīng)用版本包括通過動態(tài)主機分配協(xié)議DHCP協(xié)議請求IP地址和應(yīng) 用版本文件名稱,并根據(jù)獲取的所述IP地址和應(yīng)用版本文件名稱通過文件傳 輸協(xié)議請求下載新的應(yīng)用版本文件。
6、 如權(quán)利要求
1所述的方法,其特征在于,若對所述新的應(yīng)用版本解 析不成功,則重新請求下載,其中,對所迷新的應(yīng)用版本進行解析包括在 所述新的應(yīng)用版本中找到啟動內(nèi)核和文件系統(tǒng)的位置。
7、 如權(quán)利要求
1所述的方法,其特征在于,所述方法還包括加載運 行所述新的應(yīng)用版本完畢后,通過網(wǎng)絡(luò)協(xié)議下載新的應(yīng)用版本,并將新的應(yīng) 用版本寫入所述程序存儲器中,以對所述程序存儲器中的應(yīng)用版本進行更新。
8、 一種單板應(yīng)用版本的實現(xiàn)系統(tǒng),包括具有程序存儲器的單板,其特 征在于,還包括存儲有應(yīng)用版本的服務(wù)器,所述單板內(nèi)存與所述服務(wù)器相連,所述單板在啟動后,檢查所述程序存儲器中有無可用的應(yīng)用版本,若有, 則加載運行所述程序存儲器中的該可用應(yīng)用版本;否則通過啟動網(wǎng)絡(luò)協(xié)議請 求下載新的應(yīng)用版本,將所述新的應(yīng)用版本文件下載到單板內(nèi)存中,并對所 述新的應(yīng)用版本進行解析,解析成功后加載運行。
9、 如權(quán)利要求
8所述的系統(tǒng),其特征在于,所述單4反還用于將所述新的應(yīng)用版本文件下載到所述單板內(nèi)存中后,校驗所述新的應(yīng)用 版本的合法性和完整性;以及,在加載運行所述新的應(yīng)用版本完畢后,通過網(wǎng)絡(luò)協(xié)議下栽新的應(yīng)用版本, 并將新的應(yīng)用版本寫入所述程序存儲器中,以對所述程序存儲器中的應(yīng)用版 本進行更新。
10、 如權(quán)利要求
8或9所述的系統(tǒng),其特征在于,所述服務(wù)器包括應(yīng)用 版本服務(wù)器和DHCP服務(wù)器,所述單板內(nèi)存分別與所述應(yīng)用版本服務(wù)器及所 述DHCP服務(wù)器相連,其中,所述應(yīng)用版本服務(wù)器,用于存儲所述應(yīng)用版本;所述DHCP服務(wù)器,用于IP地址的分發(fā)及應(yīng)用版本文件名稱的下發(fā);所述單板內(nèi)存,用于通過DHCP協(xié)議向所述DHCP服務(wù)器請求IP地址 和應(yīng)用版本文件名稱,并根據(jù)獲取的所述IP地址和應(yīng)用版本文件名稱通過文 件傳輸協(xié)議從所述應(yīng)用版本服務(wù)器上下載新的應(yīng)用版本文件。
專利摘要
本發(fā)明公開了一種單板應(yīng)用版本的實現(xiàn)方法及系統(tǒng),所述方法包括單板啟動后,檢查程序存儲器中有無可用的應(yīng)用版本,若有,則加載運行所述程序存儲器中的該可用應(yīng)用版本;否則通過啟動網(wǎng)絡(luò)協(xié)議請求下載新的應(yīng)用版本,將所述新的應(yīng)用版本文件下載到單板內(nèi)存中,并對所述新的應(yīng)用版本進行解析,解析成功后加載運行。采用本發(fā)明方法及系統(tǒng),使得嵌入式設(shè)備、通信設(shè)備在存儲器上的軟件版本出現(xiàn)異?;蚬收系那闆r下,無須打開設(shè)備,可直接下載軟件版本到內(nèi)存中,通過運行內(nèi)存中的軟件版本,并更新故障設(shè)備存儲器中的軟件版本,使設(shè)備恢復(fù)正常運行。
文檔編號GKCN101482823SQ200910003096
公開日2009年7月15日 申請日期2009年1月19日
發(fā)明者孫旺強 申請人:中興通訊股份有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan