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