專利名稱:嵌入式設(shè)備的升級(jí)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及針對(duì)帶有網(wǎng)絡(luò)接口的嵌入式設(shè)備的升級(jí)方法。
背景技術(shù):
本文中所指的嵌入式設(shè)備硬件、固件、軟件包括FPGA硬件邏輯、啟動(dòng)裝載程序 (Bootloader)、操作系統(tǒng)內(nèi)核(Kernd)、應(yīng)用程序(Application)。嵌入式設(shè)備硬件邏輯、 固件、軟件升級(jí)方法與PC上的軟件升級(jí)不同, 一般嵌入式設(shè)備硬件邏輯、固件、軟件的升級(jí)方式有以下幾種一、 通過(guò)串口升級(jí)將嵌入式設(shè)備與PC通過(guò)串口相連。PC端的升級(jí)程序通過(guò)串口通訊 將升級(jí)文件傳送到設(shè)備完成升級(jí)。此方法的不足之處有O此種方法一般只能對(duì)應(yīng)用程序文件進(jìn)行升級(jí)。2) 升級(jí)速度較慢,取決與串口通信速度。3) 必須要有與設(shè)備實(shí)際連接的串口線,并且串口線長(zhǎng)度一般不超過(guò)10米。4) 設(shè)備端與PC端串口相連時(shí),產(chǎn)生的靜電可能會(huì)將設(shè)備或PC端的串口芯片燒毀。二、 通過(guò)JTAG升級(jí)將嵌入式設(shè)備通過(guò)并口或?qū)iT(mén)的JTAG燒錄器與PC相連。PC端的 升級(jí)程序通過(guò)JTAG口通訊將升級(jí)文件燒錄到設(shè)備芯片特定位置完成升級(jí)。此方法的不足之 處有O需要專門(mén)的設(shè)備進(jìn)行升級(jí)操作。2)升級(jí)操作比較專業(yè)且繁瑣,非一般用戶可以完成。三、 通過(guò)FLASH/ROM燒錄器升級(jí)將嵌入式板卡上存放軟件的FLASH或ROM通過(guò) FLASH/ROM專用燒錄器更新。此方法的不足之處有1) 需要專門(mén)的設(shè)備進(jìn)行升級(jí)操作。 一般此種設(shè)備的價(jià)格較高,不會(huì)常備。2) 升級(jí)操作比較專業(yè)且繁瑣,非一般用戶可以完成。3) 升級(jí)操作需要拔插FLASH或ROM,對(duì)FLASH和ROM的使用壽命會(huì)有影響。并且如 果是非拔插式的FLASH/ROM (如焊在了板卡上),就無(wú)法使用。以上三種升級(jí)方法都存在更新過(guò)程繁瑣,不方便的問(wèn)題。尤其對(duì)于研發(fā)、調(diào)試階段需 要頻繁更新時(shí)更是如此。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)上述現(xiàn)有技術(shù)存在的缺陷,提供一種克服上述不 足、便于用戶及開(kāi)發(fā)人員操作的嵌入式設(shè)備硬件邏輯、固件、軟件升級(jí)方法。 本發(fā)明的技術(shù)方案是嵌入式設(shè)備的升級(jí)方法,包括以下步驟-對(duì)于帶有網(wǎng)絡(luò)接口的嵌入式設(shè)備端 1-1)運(yùn)行后臺(tái)升級(jí)服務(wù)程序;1-2)監(jiān)聽(tīng)與PC端升級(jí)程序約定好的非周知端口;1-3)判斷是否有升級(jí)連入請(qǐng)求,有連入請(qǐng)求則檢査發(fā)起升級(jí)者的身份驗(yàn)證信息; 1-4)通過(guò)身份驗(yàn)證后接收升級(jí)文件,完成接收后做完整性、有效性的檢驗(yàn); 1-5)通過(guò)檢驗(yàn),則根據(jù)更新規(guī)則更新舊程序;1- 6)未通過(guò)身份驗(yàn)證、檢驗(yàn)的則返回到步驟l-2; PC端2- 1)啟動(dòng)升級(jí)程序;2-2)配置升級(jí)規(guī)則,發(fā)起升級(jí); 2-3)身份驗(yàn)證;2-4)通過(guò)身份驗(yàn)證后發(fā)送升級(jí)文件; 2-5)發(fā)送成功后退出。 在嵌入式設(shè)備端1-5步驟中對(duì)于FPGA硬件邏輯更新,進(jìn)行如下步驟1) 將存儲(chǔ)其硬件邏輯的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě)狀態(tài);2) 將接收到的硬件邏輯更新文件寫(xiě)入FLASH芯片指定地址;3) 寫(xiě)入完成后將存儲(chǔ)硬件邏輯的FLASH芯片由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);4) 向系統(tǒng)發(fā)送重啟命令重啟設(shè)備;5) 設(shè)備啟動(dòng)時(shí)通過(guò)CPU將更新后的硬件邏輯重新下載到FPGA;6) FPGA運(yùn)行更新后的硬件邏輯。 在嵌入式設(shè)備端l-5步驟中對(duì)于固件更新,進(jìn)行如下步驟1) 將存儲(chǔ)固件的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě)狀態(tài);2) 將接收到的固件更新文件寫(xiě)入FLASH芯片指定地址;3) 寫(xiě)入完成后將存儲(chǔ)固件的FLASH芯片由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);4) 向系統(tǒng)發(fā)送重啟命令重啟設(shè)備;5) 設(shè)備啟動(dòng)時(shí)將運(yùn)行更新后的固件。 在嵌入式設(shè)備端l-5步驟中對(duì)于軟件更新,進(jìn)行如下步驟-1) 向舊程序進(jìn)程發(fā)送終止消息結(jié)束舊程序運(yùn)行;2) 按照升級(jí)要求判斷是否有"試用"要求;3) 對(duì)于有試用要求的更新轉(zhuǎn)到步驟7);4) 對(duì)于沒(méi)有"試用"要求的更新,將存儲(chǔ)軟件的FLASH芯片由只讀狀態(tài)設(shè)置為 可寫(xiě)狀態(tài);5) 將接收到的軟件更新文件覆蓋文件系統(tǒng)中的舊程序;6) 寫(xiě)入完成后將存儲(chǔ)固件的FLASH芯片由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);7) 啟用接收到的新軟件;8) 返回繼續(xù)監(jiān)聽(tīng)連入請(qǐng)求。 本發(fā)明的有益效果本發(fā)明可以使用戶或開(kāi)發(fā)人員方便快速地通過(guò)網(wǎng)絡(luò)對(duì)嵌入式設(shè)備的硬件邏輯、固件、 軟件進(jìn)行更新,省去昂貴的專業(yè)設(shè)備及繁瑣復(fù)雜的操作過(guò)程。
現(xiàn)結(jié)合實(shí)施例及其附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。圖l為嵌入式設(shè)備端流程圖;圖2為PC端流程圖。
具體實(shí)施方式
由于網(wǎng)絡(luò)標(biāo)準(zhǔn)不是針對(duì)特定平臺(tái)制定的,因此可通過(guò)網(wǎng)絡(luò)對(duì)嵌入式設(shè)備上的硬件邏 輯、固件、軟件進(jìn)行更新。嵌入式設(shè)備端運(yùn)行一個(gè)后臺(tái)升級(jí)服務(wù)程序,通過(guò)監(jiān)聽(tīng)特走網(wǎng)絡(luò)端口判斷是否有遠(yuǎn)程更 新連入。平時(shí)此后臺(tái)服務(wù)服務(wù)處于睡眠狀態(tài),如果有更新連入,并且對(duì)遠(yuǎn)程更新者的身份 驗(yàn)證通過(guò),即進(jìn)行更新文件的傳送。需要更新的文件會(huì)被寫(xiě)入臨時(shí)文件,完成文件傳送后 對(duì)該文件進(jìn)行必要的檢測(cè)后(如完整性、有效性)即可根據(jù)升級(jí)要求更新硬件邏輯、固件、 軟件。 '對(duì)于FPGA硬件邏輯更新將存儲(chǔ)其硬件邏輯的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě)狀態(tài);將接收到的硬件邏輯更新文件寫(xiě)入指定地址;寫(xiě)入完成后將存儲(chǔ)硬件邏輯的FLASH芯 片由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);向系統(tǒng)發(fā)送重啟命令重啟設(shè)備;設(shè)備啟動(dòng)時(shí)通過(guò)CPU將更 新后的硬件邏輯重新下載到FPGA。至此FPGA將運(yùn)行更新后的硬件邏輯。對(duì)于固件(啟動(dòng)裝載程序、內(nèi)核)更新將存儲(chǔ)固件的FLASH芯片由只讀狀態(tài)設(shè)置為 可寫(xiě)狀態(tài);將接收到的固件更新文件寫(xiě)入指定地址;寫(xiě)入完成后將存儲(chǔ)固件的FLASH芯片 由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);向系統(tǒng)發(fā)送重啟命令重啟設(shè)備;設(shè)備啟動(dòng)時(shí)將運(yùn)行更新后的 固件。對(duì)于應(yīng)用軟件更新向舊程序進(jìn)程發(fā)送終止消息結(jié)束舊程序運(yùn)行;按照升級(jí)要求判斷 是否有"試用"要求;對(duì)于有試用要求的更新則啟用更新后的新軟件;對(duì)于沒(méi)有"試用" 要求的更新,將存儲(chǔ)軟件的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě)狀態(tài);將接收到的軟件更新 文件覆蓋文件系統(tǒng)中的舊程序;寫(xiě)入完成后將存儲(chǔ)固件的FLASH芯片由可寫(xiě)狀態(tài)設(shè)置為只 讀狀態(tài);.啟用接收到的新軟件;返回繼續(xù)監(jiān)聽(tīng)連入請(qǐng)求。"試用"功能主要是為了防止誤 升級(jí)造成的系統(tǒng)不可用情況發(fā)生。嵌入式設(shè)備端的硬件可為Intel公司推出的基于XScale PXA-255或PXA-270處理器的開(kāi) 發(fā)板,或Analog Device公司推出的基于BlackFin處理器的開(kāi)發(fā)板等。它們都帶有網(wǎng)絡(luò)處理 芯片,如SMSC91C111。設(shè)備上的操作系統(tǒng)可為GNU開(kāi)源操作系統(tǒng)Linux/uCLinux或 Microsoft Windows CE操作系統(tǒng)。它們對(duì)網(wǎng)絡(luò)協(xié)議都有良好的支持。PC端的硬件可為IBM兼容PC機(jī)或蘋(píng)果電腦等。PC上的操作系統(tǒng)可為Windows系列操作 系統(tǒng)、MacOS操作系統(tǒng)或各種類型的Linux操作系統(tǒng)發(fā)布版等。實(shí)施例嵌入式設(shè)備端硬件為Intd公司推出的基于XScale PXA-255處理器的開(kāi)發(fā)板。操作系統(tǒng)為GNU開(kāi)源操作系統(tǒng)Linux, 2.4版本內(nèi)核;Glibc-2.2.5運(yùn)行庫(kù);BusyBox控制臺(tái)°設(shè)備端升級(jí)服務(wù)程序運(yùn)行在后臺(tái),無(wú)需與用戶交互的圖形界面,因此可以選用移植性 較好的C語(yǔ)言來(lái)實(shí)現(xiàn)。網(wǎng)絡(luò)部分的實(shí)現(xiàn)使用標(biāo)準(zhǔn)的(跨平臺(tái)的)網(wǎng)絡(luò)API編程。平臺(tái)相關(guān)的 不同部分根據(jù)具體平臺(tái)要求編程即可。升級(jí)服務(wù)程序啟動(dòng)后監(jiān)聽(tīng)與PC端升級(jí)程序約定好的非周知端口,如3267,査看是否有升級(jí)請(qǐng)求連入。在有連入的情況下對(duì)連入者進(jìn)行身份驗(yàn)證。最簡(jiǎn)單的身份驗(yàn)證方法就是基于密碼的驗(yàn) 證。連入者傳入的密碼與設(shè)定密碼相同即認(rèn)為驗(yàn)證通過(guò)。驗(yàn)證通過(guò)后進(jìn)行升級(jí)文件的傳輸。選用基于TCP協(xié)議的傳輸,因?yàn)槠浔旧褪且环N可靠的傳輸協(xié)議,對(duì)傳輸?shù)臄?shù)據(jù)正確性完整性有所保障。文件傳完后對(duì)其進(jìn)行完整性、有效性的檢驗(yàn)。比較常用的方法可以是文件長(zhǎng)度、"檢 驗(yàn)和"檢査。通過(guò)檢驗(yàn)根據(jù)不同更新規(guī)則(FPGA硬件邏輯、固件、軟件)進(jìn)行更新操作。 對(duì)于FPGA硬件邏輯更新將存儲(chǔ)其硬件邏輯的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě)狀 態(tài);將接收到的硬件邏輯更新文件寫(xiě)入指定地址;寫(xiě)入完成后將存儲(chǔ)硬件邏輯的FLASH芯 片由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);向系統(tǒng)發(fā)送重啟命令重啟設(shè)備;設(shè)備啟動(dòng)時(shí)通過(guò)CPU將更 新后的硬件邏輯重新下載到FPGA。至此FPGA將運(yùn)行更新后的硬件邏輯。對(duì)于固件(啟動(dòng)裝載程序、內(nèi)核)更新將存儲(chǔ)固件的FLASH芯片由只讀狀態(tài)設(shè)置為 可寫(xiě)狀態(tài);將接收到的固件更新文件寫(xiě)入指定地址;寫(xiě)入完成后將存儲(chǔ)固件的FLASH芯片 由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);向系統(tǒng)發(fā)送重啟命令重啟設(shè)備;設(shè)備啟動(dòng)時(shí)將運(yùn)行更新后的 固件。對(duì)于應(yīng)用軟件更新向舊程序進(jìn)程發(fā)送終止消息結(jié)束舊程序運(yùn)行;按照升級(jí)要求判斷 是否有"試用"要求;對(duì)于有試用要求的更新則啟用更新后的新軟件;對(duì)于沒(méi)有"試用" 要求的更新,將存儲(chǔ)軟件的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě)狀態(tài);將接收到的軟件更新 文件覆蓋文件系統(tǒng)中的舊程序;寫(xiě)入完成后將存儲(chǔ)固件的FLASH芯片由可寫(xiě)狀態(tài)設(shè)置為只 讀狀態(tài);啟用接收到的新軟件;返回繼續(xù)監(jiān)聽(tīng)連入請(qǐng)求。PC端硬件為普通IBM兼容PC機(jī)。 操作系統(tǒng)為WindowsXP。PC端升級(jí)程序根據(jù)選用Windows上的可視化開(kāi)發(fā)工具Visual Studio 2005編制。圖形化 部分使用MFC控件實(shí)現(xiàn)。網(wǎng)絡(luò)部分的實(shí)現(xiàn)使用標(biāo)準(zhǔn)的網(wǎng)絡(luò)API編程。升級(jí)程序啟動(dòng)后設(shè)置所需升級(jí)設(shè)備的IP地址、升級(jí)參數(shù)、驗(yàn)證密碼、升級(jí)文件等。完 成后向目標(biāo)設(shè)備發(fā)起連接。通過(guò)驗(yàn)證后,升級(jí)文件傳輸完畢即可。
權(quán)利要求
1、嵌入式設(shè)備的升級(jí)方法,包括以下步驟對(duì)于帶有網(wǎng)絡(luò)接口的嵌入式設(shè)備端1-1)運(yùn)行后臺(tái)升級(jí)服務(wù)程序;1-2)監(jiān)聽(tīng)與PC端升級(jí)程序約定好的非周知端口;1-3)判斷是否有升級(jí)連入請(qǐng)求,有連入請(qǐng)求則檢查發(fā)起升級(jí)者的身份驗(yàn)證信息;1-4)通過(guò)身份驗(yàn)證后接收升級(jí)文件,完成接收后做完整性、有效性的檢驗(yàn);1-5)通過(guò)檢驗(yàn),則根據(jù)更新規(guī)則更新舊程序;1-6)未通過(guò)身份驗(yàn)證、檢驗(yàn)的則返回到步驟1-2;PC端2-1)啟動(dòng)升級(jí)程序;2-2)配置升級(jí)規(guī)則,發(fā)起升級(jí);2-3)身份驗(yàn)證;2-4)通過(guò)身份驗(yàn)證后發(fā)送升級(jí)文件;2-5)發(fā)送成功后退出。
2、 根據(jù)權(quán)利要求l所述嵌入式設(shè)備的升級(jí)方法,其特征在于在嵌入式設(shè)備端l-5步驟中對(duì)于FPGA硬件邏輯更新,進(jìn)行如下步驟1) 將存儲(chǔ)其硬件邏輯的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě)狀態(tài);2) 將接收到的硬件邏輯更新文件寫(xiě)入FLASH芯片指定地址;3) 寫(xiě)入完成后將存儲(chǔ)硬件邏輯的FLASH芯片由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);4) 向系統(tǒng)發(fā)送重啟命令重啟設(shè)備;5) 設(shè)備啟動(dòng)時(shí)通過(guò)CPU將更新后的硬件邏輯重新下載到FPGA;6) FPGA運(yùn)行更新后的硬件邏輯。
3、 根據(jù)權(quán)利要求l所述嵌入式設(shè)備的升級(jí)方法,其特征在于在嵌入式設(shè)備端l-5步驟中對(duì)于固件更新,進(jìn)行如下步驟1) 將存儲(chǔ)固件的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě)狀態(tài);2) 將接收到的固件更新文件寫(xiě)入FLASH芯片指定地址;3) 寫(xiě)入完成后將存儲(chǔ)固件的FLASH芯片由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);4) 向系統(tǒng)發(fā)送重啟命令重啟設(shè)備;5) 設(shè)備啟動(dòng)時(shí)將運(yùn)行更新后的固件。
4、根據(jù)權(quán)利要求l所述嵌入式設(shè)備的升級(jí)方法,其特征在于在嵌入式設(shè)備端l-5步驟中對(duì)于 軟件更新,進(jìn)行如下步驟-1) 向舊程序進(jìn)程發(fā)送終止消息結(jié)束舊程序運(yùn)行;2) 按照升級(jí)要求判斷是否有"試用"要求;3) 對(duì)于有試用要求的更新轉(zhuǎn)到步驟7);4) 對(duì)于沒(méi)有"試用"要求的更新,將存儲(chǔ)軟件的FLASH芯片由只讀狀態(tài)設(shè)置為可寫(xiě) 狀態(tài);5) 將接收到的軟件更新文件覆蓋文件系統(tǒng)中的舊程序;6) 寫(xiě)入完成后將存儲(chǔ)固件的FLASH芯片由可寫(xiě)狀態(tài)設(shè)置為只讀狀態(tài);7) 啟用接收到的新軟件;8) 返回繼續(xù)監(jiān)聽(tīng)連入請(qǐng)求。
全文摘要
本發(fā)明公開(kāi)了嵌入式設(shè)備的升級(jí)方法。該方法包括在嵌入式設(shè)備端運(yùn)行一個(gè)后臺(tái)升級(jí)服務(wù)程序,通過(guò)監(jiān)聽(tīng)特定網(wǎng)絡(luò)端口判斷是否有遠(yuǎn)程更新連入。平時(shí)此后臺(tái)服務(wù)服務(wù)處于睡眠狀態(tài),如果有更新連入,并且對(duì)遠(yuǎn)程更新者的身份驗(yàn)證通過(guò),即進(jìn)行更新文件的傳送。需要更新的文件會(huì)被寫(xiě)入臨時(shí)文件,完成文件傳送后對(duì)該文件進(jìn)行必要的檢測(cè)后(如完整性、有效性)即可根據(jù)升級(jí)要求更新硬件邏輯、固件、軟件。本發(fā)明可以使用戶或開(kāi)發(fā)人員方便快速地通過(guò)網(wǎng)絡(luò)對(duì)嵌入式設(shè)備的硬件邏輯、固件、軟件進(jìn)行更新,省去昂貴的專業(yè)設(shè)備及繁瑣復(fù)雜的操作過(guò)程。
文檔編號(hào)G06F9/445GK101330399SQ200710093870
公開(kāi)日2008年12月24日 申請(qǐng)日期2007年6月19日 優(yōu)先權(quán)日2007年6月19日
發(fā)明者呂家瑜, 惠新標(biāo), 毅 曹, 陳立德, 樑 顧 申請(qǐng)人:上海風(fēng)格信息技術(shù)有限公司