專利名稱:嵌入式以太網設備升級軟件的方法及嵌入式以太網設備的制作方法
技術領域:
本發明涉及軟件升級技術領域,具體涉及嵌入式以太網設備升級軟件的方法及嵌入式以太網設備。
背景技術:
以太網交換機通常由中央處理單元(CPU,Central Processing Unit)、存儲器、媒體訪問控制(MAC, Media Access Control)器和物理(PHY)控制器組成。其中,隨機存取存儲器(RAM, Random Access Memory)、電可擦可編程只讀存儲器(EEPR0M, Electrically Erasable Programmable Read-Only Memory)禾口閃存(Flash)均可以作為以太網交換機的存儲器。通用EEPROM器件一般應用于無管理型以太網交換機,通用Flash器件一般應用于管理型以太網交換機,RAM適用于隨機動態存儲,通常做為管理型以太網交換機的內存使用。以太網交換機正常啟動過程通常是硬件上電后,首先需要通過固定的內存指針跳轉,讀取存儲在Flash固定區域的遠程引導(BootRom)程序進行硬件初始化,例如初始化中央處理單元(CPU,Central Processing Unit)和存儲器,然后通過BootRom程序加載 Flash固定區域的應用(APP)程序到RAM中,啟動網管系統,最后通過BootRom程序讀取 Flash中的配置(CFG)文件,根據CFG文件的參數來設置網管系統,完成整個啟動過程。以太網交換機的BootRom程序容量通常包含硬件檢測、硬件初始化、工程模式和 BootRom菜單等幾個功能模塊的代碼。其中硬件檢測指以太網交換機上電后,設備硬件器件進行自我檢測;硬件初始化指向設備總線控制器發出初始化指令,使設備硬件器件開始正常工作;工程模式用于生產廠商對設備進行出廠測試和燒錄設備基本信息,如MAC地址和電子標簽等;BootRom菜單主要向用戶提供設備在未加載APP程序的狀態下,進行軟件升級、密碼修改、恢復出廠默認配置文件等操作。圖1給出了以太網交換機的Flash空間分布,如圖1所示,其中BootRom程序空間用于保存BootRom程序運行代碼。BootRom程序升級通常不向普通用戶開放,所以以太網交換機軟件升級一般不允許更新Flash特定區域中的BootRom程序。BootRom配置文件空間用于保存設備出廠時燒錄的以太網交換機基本信息,如 MAC地址、電子標簽等等。APP程序空間用于保存設備運行時網管系統的APP文件。CFG文件空間用于保存設備網管系統各項參數配置的文件,設備恢復出廠默認設置的配置文件也保存在這個部分。軟件升級是指軟件開發者在編寫應用程序時,由于前期考慮不全面或者程序功能不完善,在應用程序發行后,通過對程序的修改或者加入新的功能后,以補丁形式發布,用戶通過一些方法將這些補丁更新后,即完成軟件升級。以太網交換機軟件升級實際上就是通過一些方法來更新保存在存儲器中固定區域中的APP程序文件。現有以太網交換機軟件升級的方法主要包括兩種第一種方法是將Flash中的APP程序空間劃分兩個或者多個獨立區域。以劃分兩個獨立區域為例,將兩個區域分別稱為APP A和APP B, APP A和APP B中的程序文件相互獨立。以太網交換機在啟動過程中,首先加載APP A中的程序文件啟動,進入網管系統后,用戶通過簡單文件傳輸協議(TFTP,Trivial File Transfer Protocol)、文件傳輸協議(FTP, File Transfer Protocol)、Xmodem協議或者超文本傳輸協議(HTTP,Hyper-Text Transfer Protocol)等方法,將APP B中的程序文件進行覆蓋式更新,然后在交換機下一次啟動時, 選擇加載APP B中的程序文件啟動,實現軟件升級。使用第一種方法進行軟件升級時,如果在升級過程中出現升級失敗,導致APP B中的程序文件損壞,那么在交換機下一次啟動時,設備仍然選擇加載APP A中的程序文件啟動,進入網管系統后,對APP B中的程序文件重新進行覆蓋式更新。第二種方法是Flash中的APP程序空間只存放1份APP程序文件。以太網交換機在啟動過程中,用戶通過預先設定的方法選擇進入BootRom菜單界面,根據BootRom菜單提供的應用程序,例如TFTP或者Xmodem等應用程序,對Flash中的APP程序文件進行覆蓋式更新。用戶也可以在交換機正常啟動完成后,登陸在RAM中運行的網管程序,通過TFTP、FTP 或者HTTP等方法將Flash中的APP程序文件進行覆蓋式更新,實現軟件升級。使用第二種方法進行軟件升級時,如果出現軟件升級失敗導致APP程序文件損壞。在交換機下一次啟動時,設備必須選擇進入Bootrom菜單界面,人為通過TFTP或者 Xmodem等應用程序將Flash中的APP程序文件重新進行覆蓋式更新。現有以太網交換機自動升級和配置同步的方法主要是在升級服務器和以太網交換機客戶端預先安裝并運行特定的網管協議,例如簡單網絡管理協議(SNMP,Simple Network Management Protocol)。客戶端啟動并進入網管系統后,首先需要向網管服務器進行注冊,網絡管理員在網管服務器通過專用網管程序下發配置策略,實現客戶端自動升級和配置同步。第一種軟件升級方法需要在Flash中劃分多塊獨立的區域來存放多份APP程序文件,這種互為備份的方法極大地浪費了 Flash的存儲空間。第二種軟件升級方法雖然采用獨立存儲的方法提高了 Flash存儲空間的利用率, 但是可靠性不高。當升級過程遭遇意外時,容易造成APP程序文件損壞,引起交換機無法正常啟動。此時,用戶必須選擇進入Bootrom菜單進行升級操作,增加了設備的維護成本。此外,現有的以太網交換機軟件自動升級和配置同步方法,均需要交換機客戶端進入網管系統后才能實現相關功能,實現較為繁瑣。
發明內容
本發明提供嵌入式以太網設備升級軟件的方法及嵌入式以太網設備,以在節省存儲空間的同時,提高升級可靠性。本發明的技術方案是這樣實現的一種嵌入式以太網設備升級軟件的方法,該方法包括預先在升級服務器上指定不同設備類型對應的遠程引導程序文件和應用程序文件;
嵌入式以太網設備硬件上電后,加載硬件驅動,通過該驅動向升級服務器申請IP 地址,并從升級服務器獲取升級信息,當根據升級信息,發現需要進行應用程序升級時,根據自身的設備類型從升級服務器下載遠程引導程序文件,并加載該遠程弓I導程序文件進行嵌入式以太網設備硬件自檢和硬件初始化,初始化完成后,根據自身的設備類型從升級服務器下載應用程序文件,通過遠程引導程序加載該應用程序文件,運行網管系統,并讀取配置文件進行參數配置,完成設備啟動過程。當所述嵌入式以太網設備采用的存儲器為閃存時,所述根據自身的設備類型從升級服務器下載應用程序文件之后進一步包括以該下載的應用程序文件對閃存中的應用程序空間進行覆蓋式更新;且所述通過遠程引導程序加載該應用程序文件為通過遠程引導程序加載閃存中的更新后的應用程序文件。所述根據自身的設備類型從升級服務器下載應用程序文件之后、以該下載的應用程序文件對閃存中的應用程序空間進行覆蓋式更新之前進一步包括對該應用程序文件進行完整性和合法性校驗,若校驗通過,則執行所述以該下載的應用程序文件對閃存中的應用程序空間進行覆蓋式更新的動作。預先在升級服務器上為特定設備類型指定配置文件;所述嵌入式以太網設備從升級服務器獲取升級信息之后進一步包括嵌入式以太網設備根據升級信息,發現需要進行配置同步;所述硬件初始化完成后進一步包括嵌入式以太網設備根據自身的設備類型,從升級服務器將配置文件下載到RAM中,對該配置文件進行完整性和合法性校驗,校驗通過, 以該下載的配置文件對自身存儲器中的配置文件空間進行覆蓋式更新,通過遠程引導程序從配置文件空間中讀取該更新的配置文件進行參數配置。所述嵌入式以太網設備采用的存儲器為閃存或電可擦可編程只讀存儲器EEPR0M。當所述嵌入式以太網設備采用的存儲器為閃存時,所述方法進一步包括當嵌入式以太網設備申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現不需要進行應用程序文件升級,或者,下載遠程引導程序文件失敗時,嵌入式以太網設備加載自身存儲器中的原有遠程引導程序文件進行嵌入式以太網設備硬件自檢和硬件初始化,初始化完成后,通過遠程引導程序加載自身存儲器中原有的應用程序文件和原有的配置文件,完成設備啟動過程。當所述嵌入式以太網設備采用的存儲器為EEPROM時,所述方法進一步包括當嵌入式以太網設備申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現升級信息中不包含遠程引導程序文件或應用程序文件,或者,下載遠程引導程序文件或應用程序文件失敗時,嵌入式以太網設備根據MAC控制器中的默認設置作為無管理型嵌入式以太網設備使用。一種嵌入式以太網設備,包括升級信息獲取模塊當硬件上電后,通過硬件驅動向升級服務器申請IP地址,并從升級服務器獲取升級信息;當根據升級信息,發現需要進行應用程序升級時,向升級處理模塊發送程序文件下載指令;升級處理模塊當接收到程序文件下載指令時,根據本設備的設備類型從升級服務器下載遠程引導程序文件,加載下載的遠程引導程序文件進行嵌入式以太網設備硬件自檢和硬件初始化,初始化完成后,根據本設備的設備類型從升級服務器下載應用程序文件, 通過遠程引導程序加載該應用程序文件,運行網管系統,并讀取配置文件進行參數配置,完成設備啟動過程。所述嵌入式以太網設備采用的存儲器為閃存,所述升級處理模塊進一步用于,當應用程序文件下載完畢后,以RAM中的應用程序文件對閃存中的應用程序空間進行覆蓋式更新,且通過遠程引導程序加載閃存中的更新后的應用程序文件。所述升級處理模塊進一步用于,當從升級服務器將應用程序文件下載到RAM中后,對該應用程序文件進行完整性和合法性校驗,若校驗通過,則執行所述以RAM中的應用程序文件對閃存中的應用程序空間進行覆蓋式更新的動作。所述升級信息獲取模塊進一步用于,根據升級信息,發現需要進行配置同步;所述升級處理模塊進一步用于,硬件初始化完成后,根據本設備的設備類型,從升級服務器將配置文件下載到RAM中,對該配置文件進行完整性和合法性校驗,校驗通過,以該下載的配置文件對本設備存儲器中的配置文件空間進行覆蓋式更新,通過遠程引導程序從配置文件空間中讀取該更新的配置文件進行參數配置。當所述嵌入式以太網設備采用的存儲器為閃存時,所述升級信息獲取模塊進一步用于,當申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現不需要進行應用程序文件升級,則向升級處理模塊發送不升級指令;所述升級處理模塊進一步用于,當接收到不升級指令,或者,下載遠程引導程序文件失敗時,加載本設備存儲器中的原有遠程引導程序文件進行嵌入式以太網設備硬件自檢和硬件初始化,初始化完成后,通過遠程引導程序加載本設備存儲器中原有的應用程序文件和原有的配置文件,完成設備啟動過程。當所述嵌入式以太網設備采用的存儲器為EEPROM時,所述升級信息獲取模塊進一步用于,當申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現升級信息中不包含遠程引導程序文件或應用程序文件,則向升級處理模塊發送不升級指令;所述升級處理模塊進一步用于,當接收到不升級指令,或者,下載遠程引導程序文件或應用程序文件失敗時,根據MAC控制器中的默認設置將本設備作為無管理型嵌入式以太網設備使用。 與現有技術相比,本發明中,只需存放一份APP程序文件,節省了存儲空間;且,本發明的軟件升級過程出現失敗后,重新自動啟動進入升級過程即可,不需要人為干涉,能夠自動恢復;且可實現局域網內不同類型的嵌入式以太網設備在啟動過程中自動、批量的軟件升級,提高設備維護效率;降低了軟件維護成本。
圖1為現有的以太網交換機的Flash空間分布示意圖;圖2為本發明實施例一提供的以太網交換機的Flash空間分布示意圖;圖3為本發明實施例一提供的以太網交換機升級軟件的方法流程圖4為本發明實施例二提供的以太網交換機的EEPROM空間分布示意圖;圖5為本發明實施例二提供的以太網交換機升級軟件的方法流程圖;圖6為本發明實施例提供的嵌入式以太網設備的組成示意圖。
具體實施例方式首先需要說明的是,本發明適用于所有嵌入式以太網設備,以下以以太網交換機為例,結合附圖及具體實施例對本發明作進一步詳細的說明。本發明針對以太網交換機使用的存儲器的不同,給出相應的軟件升級方法。第一種以太網交換機采用Flash,Flash空間分布如圖2所示,其中,硬件驅動需要為以太網交換機提供底層數據報協議(UDP,User Datagram Protocol)及以太網 (Ethernet)的通信能力、DHCP 客戶端(Client)和 TFTPClient 能力。圖3給出了本發明實施例一提供的以太網交換機升級軟件的方法流程圖,如圖3 所示,其具體步驟如下步驟301 網絡管理員預先在升級服務器上配置升級服務器名稱,指定不同設備型號對應的BootRom程序文件和APP程序文件。網絡管理員也可以選擇設備廠商提供的整合式軟件升級包,該包中已經預先指定了不同設備型號對應的BootRom程序文件和APP程序文件。網絡管理員可以根據實際需求,為部分或全部設備型號指定對應的CFG文件。本發明實施例中的升級服務器需要提供動態主機配置協議(DHCP,Dynamic Host Configuration Protocol)服務器(server)服務和 TFTP server 服務。步驟302 以太網交換機客戶端硬件上電后,通過固定的內存指針跳轉,加載保存在Flash固定區域的硬件驅動。本發明實施例中的硬件驅動需要為以太網交換機提供底層UDP及Khernet的通信能力、DHCP Client 和 TFTP Client 能力。步驟303 硬件驅動加載完畢,以太網交換機客戶端通過DHCP向升級服務器申請 IP地址,并采用該IP地址利用DHCP擴展協議從升級服務器獲取升級信息。本步驟中的升級信息包括=BootRom程序文件名稱和APP程序文件名稱,若網絡管理員在升級服務器上為該設備型號指定了 CFG文件,則還可以進一步包括CFG文件名稱。以太網交換機客戶端利用DHCP擴展協議從升級服務器獲取升級信息的具體過程可如下01 客戶端通過DHCP選項(Option) 12字段向升級服務器通告本以太網交換機的設備型號(Host Name)。02 升級服務器根據該設備型號,查找對應的BootRom程序文件和APP程序文件, 通過DHCP Option M字段向客戶端通告本升級服務器的TFTP服務器名稱(Server Name), 通過DHCP Option 67字段的Boot File Name向客戶端通告BootRom程序文件名稱和APP 程序文件名稱。若根據設備型號查找到了 CFG文件,則也將CFG文件名稱通過DHCP Option 67字段的Boot File Name通告給客戶端。本步驟中,為了提高報文傳輸的安全性,升級服務器通過DHCP字段向以太網交換機客戶端傳輸TFTP Server Name和Boot File Name時,可以預先對DHCP Option 54和 Option 67字段內容進行加密,客戶端收到DHCP報文后,對加密字段進行解密。加密算法可以是報文摘要5(MD5,Message-Digest)算法。步驟304 以太網交換機客戶端分析升級信息,根據分析結果發現需要進行APP程序升級,同時需要進行配置同步。以太網交換機客戶端可通過如下過程判斷是否需要進行APP程序升級01 以太網交換機客戶端將升級服務器通告的TFTP Server Name與本客戶端預置的升級服務器名稱對比,若兩者相同,則確定該升級服務器合法,執行步驟02;否則,認為該升級服務器非法,選擇其它升級服務器。本步驟主要是為了處理局域網內存在多個升級服務器或者存在非法升級服務器的情況。用戶可以根據實際需求,修改以太網交換機客戶端上預置的升級服務器名稱,或者修改升級服務器上配置的升級服務器名稱。以太網交換機客戶端可以選擇不預置升級服務器名稱,即不對服務器合法性進行判斷。02 以太網交換機客戶端將升級服務器通告的APP程序文件名稱與自身Flash內的APP程序文件名稱對比,判斷是否需要進行APP程序文件升級。客戶端判斷是否需要進行APP程序文件升級的具體過程如下以太網交換機客戶端從升級服務器通告的DHCP Option 67字段來獲取Boot File name,由于升級服務器提供的升級文件名稱和CFG文件名稱遵循一定的命名規則,命名規則可以是客戶端設備型號+升級文件類型+升級版本號,因此,客戶端首先判斷升級服務器提供的升級文件名稱中的客戶端設備型號是否與本交換機的設備型號相同,若相同,則進一步判斷升級服務器提供的升級文件名稱中的升級文件類型是否包含APP程序文件,若包含,則判斷升級服務器提供的升級文件名稱中的APP程序文件的升級版本號是否高于自身Flash中的APP程序文件的版本號,若高于,則認為需要進行APP程序文件升級;否則,認為不需要進行APP程序文件升級。以太網交換機客戶端根據本交換機是否存在CFG文件,判斷是否需要進行配置同步。具體地,客戶端判斷升級服務器通告的DHCP Option 67字段中是否包含CFG文件名稱, 若是,則認為需要進行配置同步;否則,認為不需要進行配置同步。步驟305 以太網交換機客戶端根據自身的設備型號,通過TFTP從升級服務器將對應的BootRom程序文件下載到RAM的第一區域中,并加載BootRom程序文件自動進行以太網交換機硬件自檢和硬件初始化,并讀取位于Flash上的BootRom配置文件,配置設備 MAC地址和電子標簽等。步驟306 硬件初始化完成后,以太網交換機客戶端根據自身的設備型號,通過 TFTP從升級服務器將對應的APP程序文件下載到RAM的第二區域中,然后對該APP程序文件進行完整性和合法性校驗。對APP程序文件進行完整性校驗的具體過程如下在編譯APP程序文件時,產品開發者使用編譯程序對整個APP程序文件內容進行循環冗余校驗碼(CRC,Cyclic Redundancy Check)校驗,將校驗值放置在APP程序文件結尾處;當TFTP傳輸完成后,BootRom程序對下載的APP程序文件內容進行CRC校驗,然后將校驗值與APP程序文件結尾處的CRC值進行比較,若二者相同,則認為下載的APP程序文件完整;否則,則認為下載的APP程序文件不完整,需要重傳。對APP程序文件進行合法性校驗的具體過程如下在編譯APP程序文件時,產品開發者在APP程序文件頭部加入設備型號;當TFTP 傳輸完成后,BootRom程序將下載的APP程序文件頭部的設備類型標識與本交換機的設備型號進行比較,若二者相同,則認為下載的APP程序文件合法;否則,認為下載的APP程序文件不合法,需要重傳。步驟307 以太網交換機客戶端根據自身設備型號,通過TFTP從升級服務器將對應的CFG文件下載到RAM的第三區域中,然后對該CFG文件進行完整性和合法性校驗。步驟308 以太網交換機客戶端對APP程序文件和CFG文件的完整性和合法性校驗通過,使用該下載的APP程序文件和CFG文件對Flash中的APP程序空間和CFG文件空間進行覆蓋式更新。步驟309 以太網交換機客戶端通過BootRom程序加載Flash中已經更新的APP程序文件,然后讀取Flash中已經更新的CFG文件,運行網管系統并進行參數配置,完成整個啟動過程。另外,在本發明實施例中,在以下幾種情況下,以太網交換機客戶端都選擇讀取本交換機Flash中的原有BootRom程序進行硬件初始化,然后通過BootRom程序加載Flash 中的原有APP程序文件,讀取Flash中的原有CFG文件,運行網管系統并進行配置同步,完成后續整個啟動過程情況一、在步驟303中,當以太網交換機客戶端通過DHCP向升級服務器申請IP地址失敗時;情況二、在步驟303中,當以太網交換機客戶端利用DHCP擴展協議從升級服務器獲取不到正確的升級信息時;情況三、在步驟304中,當以太網交換機客戶端根據對升級信息的分析結果,發現不需要進行APP程序升級時;情況四、在步驟305中,當以太網交換機客戶端從升級服務器下載BootRom程序文件失敗時。這里,可以預置BootRom程序文件的最大下載次數,當下載次數等于最大下載次數,仍下載失敗時,則放棄繼續下載。另外,本發明實施例中,以太網交換機客戶端可以預置APP程序文件的最大下載次數,步驟306中,當下載次數等于最大下載次數,仍下載失敗時,則放棄繼續下載,當然也無需進行對下載的APP程序文件進行完整性和合法性校驗的動作了,在步驟308中,也無需對Flash中的APP程序空間進行覆蓋式更新了,同時,在步驟309中,需要加載Flash中的原有APP程序文件。本發明實施例中,以太網交換機客戶端可以預置CFG文件的最大下載次數,步驟 307中,當下載次數等于最大下載次數,仍下載失敗時,則放棄繼續下載,當然也無需進行對下載的CRi文件進行完整性和合法性校驗的動作了,在步驟308中,也無需對Flash中的 CFG文件空間進行覆蓋式更新了,同時,在步驟309中,需要讀取Flash中的原有CFG文件。對于圖3所示實施例,當APP程序下載失敗或覆蓋式更新失敗時,則BootRom程序加載Flash中的原有APP程序文件即可;當不需要進行配置同步或對CFG文件的覆蓋式更新失敗時,BootRom程序只需讀取Flash中的原有CFG文件即可。本發明實施例中,可以預置APP程序文件和CFG文件的最大更新次數,步驟308中,當更新次數等于最大更新次數, 仍更新失敗時,則放棄繼續更新。 第二種以太網交換機采用EEPROM,EEPROM空間分布如圖4所示,其中,硬件驅動需要為以太網交換機提供底層UDP及Khernet的通信能力、DHCP Client和TFTP Client能力。圖5給出了本發明應用示例二提供的以太網交換機升級軟件的方法流程圖,如圖 5所示,其具體步驟如下步驟501 網絡管理員預先在升級服務器上配置升級服務器名稱,指定不同設備型號對應的BootRom程序文件和APP程序文件。網絡管理員也可以選擇設備廠商提供的整合式軟件升級包,該包中已經預先指定了不同設備型號對應的BootRom程序文件和APP程序文件。網絡管理員可以根據實際需求,為部分或全部設備型號指定對應的CFG文件。本發明實施例中的升級服務器需要提供DHCP server和TFTP server服務。步驟502 以太網交換機客戶端硬件上電后,通過固定的內存指針跳轉,加載保存在EEPROM固定區域的硬件驅動到RAM中運行。步驟503 以太網交換機客戶端通過DHCP向升級服務器申請IP地址,并利用DHCP 擴展協議從升級服務器獲取升級信息。步驟504 以太網交換機客戶端根據升級信息,發現需要進行APP程序升級,同時需要進行配置同步。步驟505 以太網交換機客戶端通過TFTP從升級服務器下載BootRom程序文件到 RAM第一區域中運行,并加載EEPROM中的BootRom配置文件,進行硬件初始化,初始化完成后通過TFTP從升級服務器下載APP程序文件到RAM第二區域,并對該APP程序文件進行完整性和合法性校驗。步驟506 以太網交換機客戶端通過TFTP從升級服務器下載CFG文件到RAM第三區域,并對該CFG文件進行完整性和合法性校驗。步驟507 以太網交換機客戶端對APP程序文件和CFG文件的完整性和合法性校驗通過,通過BootRom程序加載RAM第二區域中的APP程序文件,運行網管系統。步驟508 以太網交換機客戶端使用下載的ere文件對EEPROM中的ere文件區域進行覆蓋式更新,然后通過BootRom程序讀取EEPROM中已經更新的CFG文件,按照讀取的文件的參數來設置交換機MAC控制器和PHY控制器的值完成啟動過程。需要說明的是,該第二種以太網交換機在局域網中運行時,如果沒有升級服務器, 將無法正常加載BootRom程序文件和APP程序文件,此時只能根據MAC控制器中的默認設置,作為單純的網橋設備即無管理型以太網交換機使用。另外,在如下情況下,該第二種以太網交換機也只能根據MAC控制器中的默認設置,作為單純的網橋設備即無管理型以太網交換機使用情況一、在步驟503中,當以太網交換機客戶端通過DHCP向升級服務器申請IP地址失敗時;情況二、在步驟503中,當以太網交換機客戶端利用DHCP擴展協議從升級服務器獲取不到正確的升級信息時;情況三、在步驟504中,當以太網交換機客戶端根據對升級信息的分析結果,發現升級信息中不包含BootRom程序文件或APP程序文件時;情況四、在步驟505中,當以太網交換機客戶端從升級服務器下載BootRom程序文件或APP程序文件失敗時。這里,可以預置BootRom程序文件、APP程序文件的最大下載次數,當下載次數等于最大下載次數,仍下載失敗時,則放棄繼續下載。本發明實施例中,以太網交換機客戶端可以預置CFG文件的最大下載次數,當下載次數等于最大下載次數,仍下載失敗時,則放棄繼續下載,同時,在步驟508中,需要讀取 EEPROM中的原有CFG文件。本發明實施例中,以太網交換機客戶端可以預置CFG文件的最大更新次數,當更新次數等于最大更新次數,仍更新失敗時,則放棄繼續更新,同時,在步驟508中,需要讀取 EEPROM中的原有CFG文件。需要指出的是,圖5所示實施例針對的是APP程序文件需要進行升級,同時需要進行配置同步的情況。在實際應用中,當不需要進行配置同步時,在設備啟動過程中,BootRom 程序只需讀取EEPROM中的原有CFG文件即可。從以上所示實施例可以看出,以太網交換機是在啟動時進行軟件升級和配置同步的,這樣若軟件升級失敗,則重啟交換機就可自動重新進行軟件升級和配置同步過程,無需人工參與。在實際應用中,可能有的以太網交換機不需要進行軟件自動升級,考慮到這種情況,用戶可以選擇預先登陸該交換機的網管系統或者BootRom菜單中,將軟件自動升級功能關閉即可。關閉軟件自動升級功能的方法可以是在交換機上增加指針跳轉,使交換機啟動時直接讀取存儲在Flash中的BootRom程序。本發明實施例針對的應用場景是在設備啟動時進行軟件升級。當在設備運行過程中需要進行軟件升級時,此時,可采用現有的第二種方法。本發明中的升級服務器可以是計算機,也可以是嵌入式以太網設備。圖6為本發明實施例提供的嵌入式以太網設備的組成示意圖,該設備的硬件驅動為設備提供底層UDP及Khernet的通信能力、DHCP Client和TFTPClient能力,如圖6所示,其主要包括升級信息獲取模塊61和升級處理模塊62,其中升級信息獲取模塊61 當硬件上電后,通過固定的內存指針跳轉,加載保存在本設備的固定區域的硬件驅動,硬件驅動加載完畢,通過DHCP向升級服務器申請IP地址,并采用該IP地址利用DHCP擴展協議從升級服務器獲取升級信息;當根據升級信息,發現需要進行APP程序升級時,向升級處理模塊62發送程序文件下載指令。升級處理模塊62:當接收到程序文件下載指令時,根據本設備的設備類型,通過 TFTP從升級服務器下載BootRom程序文件到RAM的第一區域中,加載下載的BootRom程序文件進行設備硬件自檢和硬件初始化,并讀取位于Flash上的BootRom配置文件,配置設備 MAC地址和電子標簽等,初始化完成后,根據本設備的設備類型從升級服務器下載APP程序文件到RAM的第二區域中,對該APP程序文件進行完整性和合法性校驗,且,在校驗通過時, 通過下載的BootRom程序加載下載的APP程序文件,運行網管系統,并讀取CFG文件進行參數配置,完成設備啟動過程。當嵌入式以太網設備采用的存儲器為Flash時,升級處理模塊62進一步用于,當 APP程序文件下載完畢后,以RAM中的APP程序文件對Flash中的APP程序空間進行覆蓋式更新,且在對APP程序文件的完整性和合法性校驗通過時,通過BootRom程序加載Flash中的更新后的APP程序文件。升級信息獲取模塊61進一步用于,當根據升級信息,發現需要進行配置同步時, 向升級處理模塊62發送CFG文件下載指令;且,升級處理模塊62進一步用于,硬件初始化完成后,根據本設備的設備類型,通過TFTP從升級服務器將CFG文件下載到RAM的第三區域中,對該CFG文件進行完整性和合法性校驗,校驗通過,以該下載的CFG文件對本設備存儲器中的CFG文件空間進行覆蓋式更新,通過BootRom程序從CFG文件空間中讀取該更新的CFG文件進行參數配置。當以太網設備采用的存儲器為Flash時,升級信息獲取模塊61進一步用于,當申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現不需要進行APP程序文件升級時,向升級處理模塊62發送不升級指令;升級處理模塊62進一步用于,當接收到不升級指令,或者,下載BootRom程序文件失敗時,加載本設備存儲器中的原有BootRom程序文件進行以太網設備硬件自檢和硬件初始化,初始化完成后,通過BootRom程序加載本設備存儲器中原有的APP程序文件和原有的 CFG文件,完成設備啟動過程。當以太網設備采用的存儲器為EEPROM時,升級信息獲取模塊61進一步用于,當申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現升級信息中不包含BootRom程序文件或APP程序文件時,向升級處理模塊62發送不升級指令;升級處理模塊62進一步用于,當接收到不升級指令,或者,下載BootRom程序文件或APP程序文件失敗時,根據MAC控制器中的默認設置將本設備作為無管理型以太網設備使用。以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
權利要求
1.一種嵌入式以太網設備升級軟件的方法,其特征在于,該方法包括預先在升級服務器上指定不同設備類型對應的遠程引導程序文件和應用程序文件;嵌入式以太網設備硬件上電后,加載硬件驅動,通過該驅動向升級服務器申請IP地址,并從升級服務器獲取升級信息,當根據升級信息,發現需要進行應用程序升級時,根據自身的設備類型從升級服務器下載遠程引導程序文件,并加載該遠程弓I導程序文件進行嵌入式以太網設備硬件自檢和硬件初始化,初始化完成后,根據自身的設備類型從升級服務器下載應用程序文件,通過遠程引導程序加載該應用程序文件,運行網管系統,并讀取配置文件進行參數配置,完成設備啟動過程。
2.根據權利要求1所述的方法,其特征在于,當所述嵌入式以太網設備采用的存儲器為閃存時,所述根據自身的設備類型從升級服務器下載應用程序文件之后進一步包括以該下載的應用程序文件對閃存中的應用程序空間進行覆蓋式更新;且所述通過遠程引導程序加載該應用程序文件為通過遠程引導程序加載閃存中的更新后的應用程序文件。
3.根據權利要求2所述的方法,其特征在于,所述根據自身的設備類型從升級服務器下載應用程序文件之后、以該下載的應用程序文件對閃存中的應用程序空間進行覆蓋式更新之前進一步包括對該應用程序文件進行完整性和合法性校驗,若校驗通過,則執行所述以該下載的應用程序文件對閃存中的應用程序空間進行覆蓋式更新的動作。
4.根據權利要求1所述的方法,其特征在于,預先在升級服務器上為特定設備類型指定配置文件;所述嵌入式以太網設備從升級服務器獲取升級信息之后進一步包括嵌入式以太網設備根據升級信息,發現需要進行配置同步;所述硬件初始化完成后進一步包括嵌入式以太網設備根據自身的設備類型,從升級服務器將配置文件下載到RAM中,對該配置文件進行完整性和合法性校驗,校驗通過,以該下載的配置文件對自身存儲器中的配置文件空間進行覆蓋式更新,通過遠程引導程序從配置文件空間中讀取該更新的配置文件進行參數配置。
5.根據權利要求4所述的方法,其特征在于,所述嵌入式以太網設備采用的存儲器為閃存或電可擦可編程只讀存儲器EEPR0M。
6.根據權利要求1所述的方法,其特征在于,當所述嵌入式以太網設備采用的存儲器為閃存時,所述方法進一步包括當嵌入式以太網設備申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現不需要進行應用程序文件升級,或者,下載遠程引導程序文件失敗時,嵌入式以太網設備加載自身存儲器中的原有遠程引導程序文件進行嵌入式以太網設備硬件自檢和硬件初始化, 初始化完成后,通過遠程引導程序加載自身存儲器中原有的應用程序文件和原有的配置文件,完成設備啟動過程。
7.根據權利要求1所述的方法,其特征在于,當所述嵌入式以太網設備采用的存儲器為EEPROM時,所述方法進一步包括當嵌入式以太網設備申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現升級信息中不包含遠程引導程序文件或應用程序文件,或者,下載遠程引導程序文件或應用程序文件失敗時,嵌入式以太網設備根據MAC控制器中的默認設置作為無管理型嵌入式以太網設備使用。
8.一種嵌入式以太網設備,其特征在于,包括升級信息獲取模塊當硬件上電后,通過硬件驅動向升級服務器申請IP地址,并從升級服務器獲取升級信息;當根據升級信息,發現需要進行應用程序升級時,向升級處理模塊發送程序文件下載指令;升級處理模塊當接收到程序文件下載指令時,根據本設備的設備類型從升級服務器下載遠程引導程序文件,加載下載的遠程引導程序文件進行嵌入式以太網設備硬件自檢和硬件初始化,初始化完成后,根據本設備的設備類型從升級服務器下載應用程序文件,通過遠程引導程序加載該應用程序文件,運行網管系統,并讀取配置文件進行參數配置,完成設備啟動過程。
9.根據權利要求8所述的設備,其特征在于,所述嵌入式以太網設備采用的存儲器為閃存,所述升級處理模塊進一步用于,當應用程序文件下載完畢后,以RAM中的應用程序文件對閃存中的應用程序空間進行覆蓋式更新,且通過遠程引導程序加載閃存中的更新后的應用程序文件。
10.根據權利要求9所述的設備,其特征在于,所述升級處理模塊進一步用于,當從升級服務器將應用程序文件下載到RAM中后,對該應用程序文件進行完整性和合法性校驗, 若校驗通過,則執行所述以RAM中的應用程序文件對閃存中的應用程序空間進行覆蓋式更新的動作。
11.根據權利要求8所述的設備,其特征在于,所述升級信息獲取模塊進一步用于,根據升級信息,發現需要進行配置同步;所述升級處理模塊進一步用于,硬件初始化完成后,根據本設備的設備類型,從升級服務器將配置文件下載到RAM中,對該配置文件進行完整性和合法性校驗,校驗通過,以該下載的配置文件對本設備存儲器中的配置文件空間進行覆蓋式更新,通過遠程引導程序從配置文件空間中讀取該更新的配置文件進行參數配置。
12.根據權利要求8所述的設備,其特征在于,當所述嵌入式以太網設備采用的存儲器為閃存時,所述升級信息獲取模塊進一步用于,當申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現不需要進行應用程序文件升級,則向升級處理模塊發送不升級指令;所述升級處理模塊進一步用于,當接收到不升級指令,或者,下載遠程引導程序文件失敗時,加載本設備存儲器中的原有遠程引導程序文件進行嵌入式以太網設備硬件自檢和硬件初始化,初始化完成后,通過遠程引導程序加載本設備存儲器中原有的應用程序文件和原有的配置文件,完成設備啟動過程。
13.根據權利要求8所述的設備,其特征在于,當所述嵌入式以太網設備采用的存儲器為 EEI3ROM 時,所述升級信息獲取模塊進一步用于,當申請IP地址失敗,或者,獲取不到正確的升級信息,或者,發現升級信息中不包含遠程引導程序文件或應用程序文件,則向升級處理模塊發送不升級指令;所述升級處理模塊進一步用于,當接收到不升級指令,或者,下載遠程引導程序文件或應用程序文件失敗時,根據MAC控制器中的默認設置將本設備作為無管理型嵌入式以太網設備使用。
全文摘要
本發明公開了嵌入式以太網設備升級軟件的方法及嵌入式以太網設備。方法包括預先在升級服務器上指定不同設備類型對應的遠程引導和應用程序文件;嵌入式以太網設備硬件上電后,加載硬件驅動,通過該驅動向升級服務器申請IP地址,并從升級服務器獲取升級信息,當根據升級信息,發現需要進行應用程序升級時,根據自身的設備類型從升級服務器下載遠程引導程序文件,并加載該遠程引導程序文件進行設備硬件自檢和硬件初始化,初始化完成后,根據自身的設備類型從升級服務器下載應用程序文件,通過遠程引導程序加載該應用程序文件,運行網管系統,并讀取配置文件進行參數配置,完成設備啟動過程。本發明在節省存儲空間的同時,提高了升級可靠性。
文檔編號H04L29/08GK102364891SQ201110270058
公開日2012年2月29日 申請日期2011年9月13日 優先權日2011年9月13日
發明者唐小虎, 王祝勛 申請人:杭州華三通信技術有限公司