欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種對固件程序進(jìn)行在線升級的裝置及其方法

文檔序號:6554793閱讀:291來源:國知局
專利名稱:一種對固件程序進(jìn)行在線升級的裝置及其方法
技術(shù)領(lǐng)域
本發(fā)明涉及通訊等與中央處理器使用相關(guān)的領(lǐng)域,特別是涉及一種通過業(yè)務(wù)單板本身的處理器對業(yè)務(wù)單板的固件程序進(jìn)行動(dòng)態(tài)升級的裝置和方法。
背景技在通訊系統(tǒng)中,使用大量的固件程序,比如BOOT文件、CPLD(ComplexProgrammable Logic Device,復(fù)雜可編程邏輯器件)邏輯文件和FPGA(FieldProgrammable Gates Array,現(xiàn)場可編程邏輯門陣列)邏輯文件等。這些固件程序往往并非是一成不變的,而是時(shí)常因?yàn)樾略隽斯δ芑蛘叱霈F(xiàn)了一些故障而需要升級。目前普遍使用的BOOT文件都是通過編程器燒制,而CPLD邏輯文件則需要用專用電纜進(jìn)行燒結(jié),不同廠家的下載電纜不完全一樣,這些都給固件程序的現(xiàn)場升級帶來了很大的困難,大大提高了維護(hù)成本,升級過程還可能導(dǎo)致業(yè)務(wù)的長時(shí)間中斷,這些都無法滿足通訊系統(tǒng)所要求的高可靠性、高穩(wěn)定和可維護(hù)性的需求。
目前,各CPLD器件廠家都提供了對CPLD邏輯文件進(jìn)行在線升級的技術(shù),但是由于CPLD邏輯文件的升級必須非常慎重進(jìn)行,如果錯(cuò)誤寫入的話,可能會(huì)產(chǎn)生嚴(yán)重的后果,比如損壞業(yè)務(wù)單板或者導(dǎo)致業(yè)務(wù)單板無法正常上電。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種對固件程序進(jìn)行在線升級的裝置及其方法,用于對BOOT文件和CPLD邏輯文件進(jìn)行可靠的在線升級。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種對固件程序進(jìn)行在線升級的裝置,包括業(yè)務(wù)單板及其處理器、用于存儲(chǔ)固件程序的存儲(chǔ)器,其特征在于,該裝置還包括一接口控制器、一工作CPLD器件;所述接口控制器分別與所述業(yè)務(wù)單板處理器、存儲(chǔ)器、工作CPLD器件連接;所述業(yè)務(wù)單板處理器發(fā)起B(yǎng)OOT文件升級命令,獲取用于升級的BOOT文件,并通過所述接口控制器進(jìn)行升級操作,將所述BOOT文件存至所述存儲(chǔ)器;所述業(yè)務(wù)單板處理器發(fā)起CPLD邏輯文件升級命令,獲取用于升級的CPLD邏輯文件,并通過所述接口控制器進(jìn)行升級操作,轉(zhuǎn)換所述CPLD邏輯文件并寫入至所述工作CPLD器件。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述存儲(chǔ)器又分為工作BOOT空間、備份BOOT空間、備份的工作CPLD空間,分別用于存儲(chǔ)業(yè)務(wù)單板的工作BOOT、備份BOOT、備份的工作CPLD版本。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述工作BOOT空間、備份BOOT空間、備份的工作CPLD空間分別駐留在三塊獨(dú)立的存儲(chǔ)器上,或通過不同的地址區(qū)分的方式駐留在同一個(gè)存儲(chǔ)器上。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述工作BOOT空間、備份BOOT空間是只讀的,所述備份的工作CPLD空間是可讀寫的。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述存儲(chǔ)器為閃速存儲(chǔ)器。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述接口控制器通過JTAG接口與所述工作CPLD器件連接。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述接口控制器通過封裝普通總線、低引腳使用數(shù)總線及數(shù)據(jù)地址復(fù)用總線類型的業(yè)務(wù)單板處理器的啟動(dòng)接口與所述存儲(chǔ)器連接;其中所述數(shù)據(jù)地址復(fù)用總線的寬度為32、16或8位寬度。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述接口控制器還設(shè)有一非易失存儲(chǔ)空間,用于存儲(chǔ)工作BOOT、備份BOOT的狀態(tài)標(biāo)志。
所述的對固件程序進(jìn)行在線升級的裝置,其中,在所述業(yè)務(wù)單板上電時(shí),所述接口控制器讀取該狀態(tài)標(biāo)志并根據(jù)該狀態(tài)標(biāo)志確定工作BOOT、備份BOOT,將片選切換到所述工作BOOT空間,所述業(yè)務(wù)單板處理器從工作BOOT啟動(dòng)。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述接口控制器在以下三種情況下修改該狀態(tài)標(biāo)志情況一、對所述備份BOOT完成升級并期望下次從備份BOOT啟動(dòng)時(shí),情況二、當(dāng)前BOOT文件啟動(dòng)失敗,所述接口控制器自動(dòng)修改狀態(tài)標(biāo)志,使當(dāng)前BOOT文件嘗試從另一個(gè)BOOT空間啟動(dòng);情況三、若BOOT文件啟動(dòng)后,發(fā)現(xiàn)該BOOT文件的狀態(tài)標(biāo)志出現(xiàn)異常,所述接口控制器自動(dòng)根據(jù)該BOOT文件的版本號修復(fù)該狀態(tài)標(biāo)志將高版本號的BOOT文件設(shè)置為工作BOOT,低版本號的BOOT文件設(shè)置為備份BOOT。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述接口控制器還設(shè)有一個(gè)定時(shí)器,用于監(jiān)視業(yè)務(wù)單板上BOOT文件的啟動(dòng)狀態(tài)。
所述的對固件程序進(jìn)行在線升級的裝置,其中,若所述BOOT文件成功啟動(dòng),所述接口控制器在所述BOOT文件中關(guān)閉該定時(shí)器;若該定時(shí)器溢出,所述接口控制器修改狀態(tài)標(biāo)志,交換當(dāng)前備份BOOT和工作BOOT,然后重新啟動(dòng)所述業(yè)務(wù)單板,嘗試從另一個(gè)BOOT啟動(dòng)。
所述的對固件程序進(jìn)行在線升級的裝置,其中,所述業(yè)務(wù)單板處理器從一操作維護(hù)中心或本地存儲(chǔ)介質(zhì)中獲取所述用于升級的BOOT文件、CPLD邏輯文件。
為了實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種利用所述裝置實(shí)現(xiàn)對固件程序進(jìn)行在線升級的方法,其特征在于,所述業(yè)務(wù)單板處理器發(fā)起B(yǎng)OOT文件升級命令,獲取用于升級的BOOT文件,并通過所述接口控制器進(jìn)行升級操作,將所述BOOT文件存至所述存儲(chǔ)器。
為了實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種利用所述裝置實(shí)現(xiàn)對固件程序進(jìn)行在線升級的方法,其特征在于,所述業(yè)務(wù)單板處理器發(fā)起CPLD邏輯文件升級命令,獲取用于升級的CPLD邏輯文件,并通過所述接口控制器進(jìn)行升級操作,轉(zhuǎn)換所述CPLD邏輯文件并寫入至所述工作CPLD器件。
本發(fā)明將業(yè)務(wù)單板的器件分成接口控制器、工作CPLD兩個(gè)獨(dú)立單元,一個(gè)單元接口控制器單獨(dú)負(fù)責(zé)業(yè)務(wù)單板的啟動(dòng)控制;另一個(gè)單元工作CPLD則完成業(yè)務(wù)單板所需要的功能;并只對工作CPLD邏輯文件實(shí)行在線升級,同時(shí)還考慮了工作CPLD邏輯文件的備份機(jī)制,這樣大大提高了CPLD邏輯文件在線升級的可靠性。
接口控制器是本發(fā)明的核心裝置,業(yè)務(wù)單板的CPU通過接口控制器完成對CPLD邏輯文件和BOOT文件的在線升級,并對不同CPLD廠家提供統(tǒng)一的在線燒結(jié)方法。相對于現(xiàn)有技術(shù)而言,采用本發(fā)明降低了成本,同時(shí)適用于BOOT文件和CPLD邏輯文件的升級,大大提高了工作效率和設(shè)備的可維護(hù)性;可靠的在線升級機(jī)制,確保了固件程序升級過程不影響正常業(yè)務(wù)或能夠使影響降到最低。
本發(fā)明解決了兩類固件程序的動(dòng)態(tài)在線升級一類是存放在FLASH器件(為一種大容量、非易失性、可多次燒寫的硬件存儲(chǔ)器)里面的BOOT文件(業(yè)務(wù)單板啟動(dòng)的引導(dǎo)文件),另外一類是CPLD器件的邏輯文件,即CPLD邏輯文件。
以下結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述,但不作為對本發(fā)明的限定。


圖1是本發(fā)明在線升級裝置示意圖;圖2是本發(fā)明升級完成后的BOOT上電流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對本發(fā)明的技術(shù)方案進(jìn)行具體的描述。
請參閱圖1所示,為本發(fā)明在線升級裝置示意圖。該在線升級裝置10主要由業(yè)務(wù)單板的CPU 101、用于完成業(yè)務(wù)單板正常功能的工作CPLD器件102、用于存放固件程序的FLASH器件103以及分別與CPU 101、工作CPLD器件102、FLASH器件103連接的接口控制器100幾部分組成。
CPU 101是指業(yè)務(wù)單板上所用的CPU,它是文件動(dòng)態(tài)升級的發(fā)起者,發(fā)起B(yǎng)OOT文件或CPLD邏輯文件的升級命令,CPU 101從操作維護(hù)中心104或者本地別的存儲(chǔ)介質(zhì)中獲取要升級的文件,然后通過接口控制器100進(jìn)行升級操作。
工作CPLD器件102是業(yè)務(wù)單板上的邏輯器件,它主要用于實(shí)現(xiàn)與業(yè)務(wù)單板相關(guān)的功能和控制。工作CPLD,相對啟動(dòng)CPLD而言,和業(yè)務(wù)單板的功能關(guān)系密切,可能隨著業(yè)務(wù)單板的結(jié)構(gòu)、功能的改變而改變,也是最容易出差錯(cuò)的部分?;诖耍瑢ぷ鰿PLD動(dòng)態(tài)升級顯得非常必要。對工作CPLD動(dòng)態(tài)升級是本發(fā)明要解決的一個(gè)核心工作。
FLASH器件103由FLASH1 1031、FLASH2 1032、FLASH3 1033三個(gè)FLASH存儲(chǔ)器件組成,F(xiàn)LASH1 1031、FLASH2 1032、FLASH3 1033存儲(chǔ)器件分別稱為工作BOOT空間、備份BOOT空間、備份的工作CPLD空間,它們具有不同的功能FLASH1 1031和FLASH2 1032分別用于存放業(yè)務(wù)單板的工作BOOT、備份BOOT,F(xiàn)LASH3 1033用于存放備份的工作CPLD版本。這三塊空間既可以駐留在三塊獨(dú)立的FLASH器件上,也可駐留在同一片F(xiàn)LASH中而通過不同的地址加以區(qū)分。工作BOOT空間和備份的工作CPLD空間是只讀的,而備份BOOT空間是可讀寫的。BOOT文件的在線升級通過業(yè)務(wù)單板的CPU 101向備份BOOT空間寫入待升級的BOOT文件完成。備份的工作CPLD空間用于存儲(chǔ)可靠的CPLD版本,該版本是經(jīng)過測試驗(yàn)證確實(shí)可用的,它需要通過電纜或者燒結(jié)工具初始燒入,在對工作CPLD動(dòng)態(tài)升級失敗后,系統(tǒng)將自動(dòng)回退到這個(gè)CPLD版本。
接口控制器100為本發(fā)明的核心裝置,是在線下載操作的管理者,其內(nèi)部功能主要包括一個(gè)在線下載管理單元1002所實(shí)現(xiàn)的功能以及維持CPU 101正常啟動(dòng)所需的配置邏輯功能。在線下載管理單元1002完成CPU 101與工作CPLD器件102以及FLASH器件103之間的接口轉(zhuǎn)換,實(shí)現(xiàn)包括定時(shí)器管理,對FLASH器件103的寫保護(hù),工作BOOT與備份BOOT的選擇,更新工作BOOT、備份BOOT的狀態(tài)標(biāo)志等在線下載的功能。接口控制器100為業(yè)務(wù)單板的CPU 101、工作CPLD器件102、FLASH器件103之間的接口轉(zhuǎn)換和管理單元,有機(jī)地與CPU 101、工作CPLD器件102、FLASH器件103連為一體,組成動(dòng)態(tài)下載裝置。接口控制器100與工作CPLD器件102之間的接口為JTAG(Joint Test Action Group,聯(lián)合測試行動(dòng)小組,一種國際標(biāo)準(zhǔn)測試協(xié)議)接口。
接口控制器100還負(fù)責(zé)CPU 101的啟動(dòng)控制,接口控制器100對各種類型的CPU的啟動(dòng)接口進(jìn)行統(tǒng)一封裝,使得本裝置10可以應(yīng)用于多種CPU場合。目前使用的啟動(dòng)接口類型較多,本發(fā)明兼容了如下三種接口類型1、普通的總線,類似于ISA(Industry Standard Architecture,工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu))總線;2、LPC(Low Pin Count,低引腳使用數(shù))總線;3、數(shù)據(jù)地址復(fù)用總線(32,16,8位寬度)。
接口控制器100把上述三種類型的接口統(tǒng)一成類似ISA總線接口,再與FLASH器件103連接;CPU 101通過接口控制器100可以完成對FLASH器件103的讀寫操作。
接口控制器100通過復(fù)雜的可編程邏輯器件實(shí)現(xiàn),其內(nèi)部的邏輯文件是固化的。在進(jìn)行規(guī)?;a(chǎn)時(shí),可以用ASIC(Application-Specific IntegratedCircuit,專用集成電路)替代。
在本發(fā)明中,通過業(yè)務(wù)單板的CPU 101對業(yè)務(wù)單板上的BOOT文件、工作CPLD邏輯文件進(jìn)行升級。在這個(gè)操作過程中不需要任何外部的輔助手段。本發(fā)明可以保證業(yè)務(wù)單板下載的BOOT文件或是CPLD邏輯文件有誤或是下載操作過程有誤的情況都可以恢復(fù)工作。下面具體敘述升級原理。
BOOT文件升級在CPU 101正常運(yùn)行時(shí),接收到BOOT版本配置修改的消息后,從操作維護(hù)中心104或者本地存儲(chǔ)介質(zhì)中獲取升級使用的BOOT文件,將這個(gè)新的BOOT版本存入備份BOOT空間,同時(shí)更新備份BOOT的版本信息,然后修改接口控制器100中存儲(chǔ)的BOOT狀態(tài)標(biāo)志備份BOOT和工作BOOT的狀態(tài)標(biāo)志互換。業(yè)務(wù)單板下次啟動(dòng)的時(shí)候,將嘗試從更新的BOOT版本,即原備用BOOT啟動(dòng)。當(dāng)一個(gè)業(yè)務(wù)單板存在多個(gè)CPU(對應(yīng)多個(gè)BOOT)時(shí),這些CPU的啟動(dòng)可能存在依賴關(guān)系,所以何時(shí)復(fù)位業(yè)務(wù)單板啟用新BOOT,可由操作人員控制。
CPLD邏輯文件升級CPU 101正常運(yùn)行時(shí),在接收到工作CPLD版本配置修改的消息后,從操作維護(hù)中心104或者本地存儲(chǔ)介質(zhì)中獲取升級使用的CPLD文件,閉塞所有當(dāng)前業(yè)務(wù)單板除了CPU小系統(tǒng)外的設(shè)備,使CPU 101處于“安靜”狀態(tài)(即要求升級過程不被其他任務(wù)、進(jìn)程或者中斷所打斷)。然后,將這個(gè)新的工作CPLD版本,通過接口控制器100轉(zhuǎn)換寫入工作CPLD器件102中。一旦寫入完成,立即復(fù)位業(yè)務(wù)單板,使新的工作CPLD版本生效。
由于BOOT文件的在線升級過程只是對備份BOOT進(jìn)行寫操作,不會(huì)對CPU的正常運(yùn)行造成任何影響。而工作CPLD版本的升級,則需要相對“安靜”的環(huán)境,會(huì)對業(yè)務(wù)造成短暫影響。
為了在CPU 101上電時(shí)就能夠識(shí)別哪個(gè)BOOT為工作BOOT,在接口控制器100中使用了一小塊非易失存儲(chǔ)空間1001,用于存儲(chǔ)工作BOOT、備份BOOT的狀態(tài)標(biāo)志。在業(yè)務(wù)單板上電時(shí),接口控制器100首先讀出該狀態(tài)標(biāo)志,并根據(jù)該狀態(tài)標(biāo)志確定工作BOOT、備份BOOT,然后將片選切換到工作BOOT空間,使CPU 101從工作BOOT啟動(dòng)。這塊存儲(chǔ)空間能夠確保一旦寫入就不會(huì)丟失,即使斷電也能保存良好。同時(shí),這塊空間的寫入必須遵循一定的時(shí)序,從而確保不會(huì)被任意改寫。工作BOOT、備份BOOT的狀態(tài)標(biāo)志是互斥的,若其中一個(gè)空間被標(biāo)識(shí)為工作BOOT,則另一個(gè)空間就是備份BOOT。若出現(xiàn)兩個(gè)空間都被標(biāo)識(shí)為工作BOOT,或者都被標(biāo)識(shí)為備份BOOT這樣的異常情況,CPU默認(rèn)從物理上的低地址空間的BOOT啟動(dòng),正常運(yùn)行后,再進(jìn)行BOOT版本號互斥處理。該狀態(tài)標(biāo)志在以下三種情況下會(huì)被修改1)、對備份BOOT完成升級,并期望下次從備份BOOT啟動(dòng)時(shí);2)、當(dāng)前BOOT啟動(dòng)失敗時(shí),接口控制器100自動(dòng)修改狀態(tài)標(biāo)志,使之嘗試從另一個(gè)BOOT空間啟動(dòng);3)、若BOOT啟動(dòng)后,發(fā)現(xiàn)該BOOT狀態(tài)標(biāo)志出現(xiàn)異常(皆為工作BOOT或皆為備用BOOT),接口控制器100自動(dòng)根據(jù)BOOT的版本號修復(fù)該狀態(tài)標(biāo)志將高版本號的BOOT設(shè)置為工作BOOT,低版本號的BOOT設(shè)置為備份BOOT。這個(gè)修復(fù)不一定是使用者所想要的,但經(jīng)過這樣的修復(fù)后,能夠確保切換邏輯正常。
為了監(jiān)視業(yè)務(wù)單板BOOT是否正常啟動(dòng),在接口控制器100中還設(shè)定了一個(gè)定時(shí)器。業(yè)務(wù)單板上電后,這個(gè)定時(shí)器會(huì)開始計(jì)數(shù),BOOT啟動(dòng)成功后,接口控制器100在BOOT程序中關(guān)閉該定時(shí)器。如果設(shè)置的定時(shí)器溢出,則接口控制器100將修改BOOT狀態(tài)標(biāo)志,交換當(dāng)前的備份BOOT和工作BOOT,然后重新啟動(dòng)業(yè)務(wù)單板,嘗試從另一個(gè)BOOT啟動(dòng)。該機(jī)制可以確保在升級的BOOT運(yùn)行失敗后,能夠自動(dòng)回退到原工作BOOT,從而保證業(yè)務(wù)單板仍然能夠正常工作。對于不同的CPU類型,由于其BOOT啟動(dòng)時(shí)間不同,定時(shí)器的數(shù)值設(shè)置略有區(qū)別。
本發(fā)明除了解決BOOT文件的在線升級外,還解決了業(yè)務(wù)單板CPLD邏輯文件的在線升級。為了保證升級的可靠性,本發(fā)明對業(yè)務(wù)單板的邏輯進(jìn)行了劃分接口控制器100和工作CPLD器件102。接口控制器100完成CPU 101、工作CPLD器件102、FLASH器件103之間的接口轉(zhuǎn)換,以及CPU 101的啟動(dòng)控制;工作CPLD器件102則只用于維護(hù)業(yè)務(wù)單板。接口控制器100和工作CPLD器件102二者界限清晰,完全獨(dú)立。接口控制器100功能統(tǒng)一,能夠保證不同CPU的通用一致,因其功能上比較單一,能夠達(dá)到高度可靠和穩(wěn)定性,一經(jīng)定稿就不會(huì)再作變更;工作CPLD器件102完成業(yè)務(wù)單板正常功能,可能會(huì)隨著業(yè)務(wù)單板的功能修改或故障而變更,本發(fā)明中所述CPLD邏輯文件的在線升級指工作CPLD部分。該劃分方法保證在線升級工作CPLD失敗時(shí),不會(huì)影響業(yè)務(wù)單板的正常啟動(dòng),保證了可靠性。
CPU 101和工作CPLD器件102的接口是通過訪問接口控制器100的寄存器來完成的。CPU 101通過讀寫這些寄存器,在接口控制器100管腳上完成對JTAG(Joint Test Action Group,聯(lián)合測試行動(dòng)小組)時(shí)序的模擬,從而完成對CPLD邏輯文件的動(dòng)態(tài)升級。
除了對CPLD進(jìn)行功能劃分,只對工作CPLD進(jìn)行升級外,還考慮了工作CPLD的備份機(jī)制。在FLASH器件103中,還存在一個(gè)單元備份的CPLD空間,其用于存儲(chǔ)可靠的CPLD版本,該CPLD版本能夠保證業(yè)務(wù)單板的基本功能正常。在對CPLD完成升級后,在下次啟動(dòng)的BOOT程序中,會(huì)判斷工作CPLD器件102是否工作正常,若不正常,則自動(dòng)將FLASH器件103中存儲(chǔ)的備份工作CPLD通過接口控制器100寫入工作CPLD器件102,從而實(shí)現(xiàn)邏輯的自動(dòng)回退功能,確保業(yè)務(wù)單板仍然能夠正常上電。備份CPLD空間中的CPLD版本一般在初始燒入后,不會(huì)進(jìn)行更新,因這塊空間設(shè)置為只讀。若需更換,需要經(jīng)過嚴(yán)格驗(yàn)證后,打開寫保護(hù)才能寫入。
鑒于固件程序版本的重要性,升級過程須慎重進(jìn)行,故一般通過人為干預(yù)的方式在線完成。
請參閱圖2所示,為本發(fā)明升級完成后的BOOT上電流程圖。結(jié)合圖1,該上電流程包括如下步驟步驟201,完成固件程序升級后,開始進(jìn)行業(yè)務(wù)單板啟動(dòng),在業(yè)務(wù)單板上電階段,接口控制器100讀取BOOT狀態(tài)標(biāo)志、CPU信息,并選擇工作BOOT啟動(dòng),在該步驟中,硬件定時(shí)器啟動(dòng);步驟202,工作BOOT正常啟動(dòng);步驟203,關(guān)閉硬件定時(shí)器,在硬件定時(shí)器超時(shí)時(shí),更新BOOT狀態(tài)標(biāo)志,并復(fù)位業(yè)務(wù)單板;步驟204,判斷工作CPLD是否加載,若已加載,則步驟繼續(xù);若未加載,則轉(zhuǎn)步驟206執(zhí)行;步驟205,判斷BOOT狀態(tài)標(biāo)志是否合法,若合法,則表示BOOT正常運(yùn)行,若不合法,則轉(zhuǎn)步驟207執(zhí)行;步驟206,加載FLASH器件103中的工作CPLD;步驟207,判斷當(dāng)前BOOT是否為高版本BOOT,若為高版本BOOT,則步驟繼續(xù),若不是高版本BOOT,則轉(zhuǎn)步驟209執(zhí)行;步驟208,修復(fù)BOOT狀態(tài)標(biāo)志,該BOOT為工作BOOT,直至BOOT正常運(yùn)行;步驟209,修復(fù)BOOT狀態(tài)標(biāo)志,該BOOT為備份BOOT;步驟210,復(fù)位業(yè)務(wù)單板。
在圖2中,完成固件程序升級后,開始進(jìn)行業(yè)務(wù)單板啟動(dòng),業(yè)務(wù)單板上電階段,接口控制器100根據(jù)CPU 101的類型識(shí)別標(biāo)記(該標(biāo)記是業(yè)務(wù)單板給接口控制器100的,用于表示業(yè)務(wù)單板所用的CPU為本發(fā)明中定義的哪個(gè)類型的CPU)確定CPU 101本地總線的接口類型。然后,接口控制器100根據(jù)BOOT狀態(tài)標(biāo)志從工作BOOT啟動(dòng),同時(shí)打開定時(shí)器。如果BOOT啟動(dòng)成功,則在BOOT程序中關(guān)閉定時(shí)器;表示升級的BOOT文件可以正常啟動(dòng)。如果定時(shí)器超時(shí),表示BOOT啟動(dòng)失敗,接口控制器100切換FLASH片選,更新BOOT狀態(tài)標(biāo)志,然后復(fù)位整個(gè)業(yè)務(wù)單板。業(yè)務(wù)單板將使用升級前的BOOT文件來啟動(dòng),從而實(shí)現(xiàn)升級失敗后的BOOT回退。
工作BOOT在關(guān)閉定時(shí)器后,還將校驗(yàn)工作CPLD器件102的正確性。如果發(fā)現(xiàn)工作CPLD器件102沒有正確加載,則將存儲(chǔ)于FLASH器件103中的備份工作CPLD器件102的邏輯文件寫入工作CPLD器件102,然后復(fù)位業(yè)務(wù)單板,從而實(shí)現(xiàn)工作CPLD器件102的回退。
為了保證存儲(chǔ)在存儲(chǔ)控制器內(nèi)的BOOT狀態(tài)標(biāo)志的正確性,在BOOT中設(shè)有狀態(tài)標(biāo)志的校驗(yàn)和修復(fù)流程。如果發(fā)現(xiàn)狀態(tài)標(biāo)志非法,即兩個(gè)BOOT皆為工作BOOT或者皆為備份BOOT,將按如下設(shè)置修復(fù)狀態(tài)標(biāo)志將版本號更新的BOOT設(shè)置為工作BOOT,老版本的BOOT則設(shè)置為備份BOOT。通過上述設(shè)置保證下次啟動(dòng)時(shí)從最新的BOOT啟動(dòng),并保證狀態(tài)標(biāo)志的互斥。
在CPU版本正常上電后,還將比較當(dāng)前運(yùn)行的BOOT與CPLD版本和配置的版本進(jìn)行比較,如果發(fā)現(xiàn)不一致,則發(fā)出升級失敗的告警。
本發(fā)明提供了一種對BOOT文件和CPLD邏輯文件進(jìn)行在線升級的裝置。本發(fā)明改變了固件程序版本獨(dú)立維護(hù)的現(xiàn)狀,使得固件程序版本可以和CPU版本采取統(tǒng)一的管理和維護(hù)方法,固件程序版本也和CPU版本一樣,成為可配置的對象,靈活性大大增強(qiáng)。
固件程序的在線升級完全由業(yè)務(wù)單板的CPU完成,不需要額外再添加設(shè)備。這樣,在提高產(chǎn)品的可維護(hù)性的同時(shí),業(yè)務(wù)單板的成本基本保持不變。與現(xiàn)有技術(shù)相比較,本發(fā)明對CPLD和FLASH的在線升級進(jìn)行了統(tǒng)一封裝,適用于各類CPU,簡化了BOOT和CPLD升級的復(fù)雜程度,提供了多種機(jī)制保證升級的可靠性。能夠通過操作維護(hù)中心進(jìn)行遠(yuǎn)程的在線升級,極大地提高了效率,增強(qiáng)了產(chǎn)品的可維護(hù)性。
當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種對固件程序進(jìn)行在線升級的裝置,包括業(yè)務(wù)單板及其處理器、用于存儲(chǔ)固件程序的存儲(chǔ)器,其特征在于,該裝置還包括一接口控制器、一工作CPLD器件;所述接口控制器分別與所述業(yè)務(wù)單板處理器、存儲(chǔ)器、工作CPLD器件連接;所述業(yè)務(wù)單板處理器發(fā)起B(yǎng)OOT文件升級命令,獲取用于升級的BOOT文件,并通過所述接口控制器進(jìn)行升級操作,將所述BOOT文件存至所述存儲(chǔ)器;所述業(yè)務(wù)單板處理器發(fā)起CPLD邏輯文件升級命令,獲取用于升級的CPLD邏輯文件,并通過所述接口控制器進(jìn)行升級操作,轉(zhuǎn)換所述CPLD邏輯文件并寫入至所述工作CPLD器件。
2.根據(jù)權(quán)利要求1所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述存儲(chǔ)器又分為工作BOOT空間、備份BOOT空間、備份的工作CPLD空間,分別用于存儲(chǔ)業(yè)務(wù)單板的工作BOOT、備份BOOT、備份的工作CPLD版本。
3.根據(jù)權(quán)利要求2所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述工作BOOT空間、備份BOOT空間、備份的工作CPLD空間分別駐留在三塊獨(dú)立的存儲(chǔ)器上,或通過不同的地址區(qū)分的方式駐留在同一個(gè)存儲(chǔ)器上。
4.根據(jù)權(quán)利要求2或3所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述工作BOOT空間、備份BOOT空間是只讀的,所述備份的工作CPLD空間是可讀寫的。
5.根據(jù)權(quán)利要求1、2或3所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述存儲(chǔ)器為閃速存儲(chǔ)器。
6.根據(jù)權(quán)利要求1、2或3所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述接口控制器通過JTAG接口與所述工作CPLD器件連接。
7.根據(jù)權(quán)利要求1、2或3所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述接口控制器通過封裝普通總線、低引腳使用數(shù)總線及數(shù)據(jù)地址復(fù)用總線類型的業(yè)務(wù)單板處理器的啟動(dòng)接口與所述存儲(chǔ)器連接;其中所述數(shù)據(jù)地址復(fù)用總線的寬度為32、16或8位寬度。
8.根據(jù)權(quán)利要求2或3所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述接口控制器還設(shè)有一非易失存儲(chǔ)空間,用于存儲(chǔ)工作BOOT、備份BOOT的狀態(tài)標(biāo)志。
9.根據(jù)權(quán)利要求8所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,在所述業(yè)務(wù)單板上電時(shí),所述接口控制器讀取該狀態(tài)標(biāo)志并根據(jù)該狀態(tài)標(biāo)志確定工作BOOT、備份BOOT,將片選切換到所述工作BOOT空間,所述業(yè)務(wù)單板處理器從工作BOOT啟動(dòng)。
10.根據(jù)權(quán)利要求8所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述接口控制器在以下三種情況下修改該狀態(tài)標(biāo)志情況一、對所述備份BOOT完成升級并期望下次從備份BOOT啟動(dòng)時(shí),情況二、當(dāng)前BOOT文件啟動(dòng)失敗,所述接口控制器自動(dòng)修改狀態(tài)標(biāo)志,使當(dāng)前BOOT文件嘗試從另一個(gè)BOOT空間啟動(dòng);情況三、若BOOT文件啟動(dòng)后,發(fā)現(xiàn)該BOOT文件的狀態(tài)標(biāo)志出現(xiàn)異常,所述接口控制器自動(dòng)根據(jù)該BOOT文件的版本號修復(fù)該狀態(tài)標(biāo)志將高版本號的BOOT文件設(shè)置為工作BOOT,低版本號的BOOT文件設(shè)置為備份BOOT。
11.根據(jù)權(quán)利要求8所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述接口控制器還設(shè)有一個(gè)定時(shí)器,用于監(jiān)視業(yè)務(wù)單板上BOOT文件的啟動(dòng)狀態(tài)。
12.根據(jù)權(quán)利要求11所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,若所述BOOT文件成功啟動(dòng),所述接口控制器在所述BOOT文件中關(guān)閉該定時(shí)器;若該定時(shí)器溢出,所述接口控制器修改狀態(tài)標(biāo)志,交換當(dāng)前備份BOOT和工作BOOT,然后重新啟動(dòng)所述業(yè)務(wù)單板,嘗試從另一個(gè)BOOT啟動(dòng)。
13.根據(jù)權(quán)利要求1所述的對固件程序進(jìn)行在線升級的裝置,其特征在于,所述業(yè)務(wù)單板處理器從一操作維護(hù)中心或本地存儲(chǔ)介質(zhì)中獲取所述用于升級的BOOT文件、CPLD邏輯文件。
14.一種利用權(quán)利要求1所述裝置實(shí)現(xiàn)對固件程序進(jìn)行在線升級的方法,其特征在于,所述業(yè)務(wù)單板處理器發(fā)起B(yǎng)OOT文件升級命令,獲取用于升級的BOOT文件,并通過所述接口控制器進(jìn)行升級操作,將所述BOOT文件存至所述存儲(chǔ)器。
15.一種利用權(quán)利要求1所述裝置實(shí)現(xiàn)對固件程序進(jìn)行在線升級的方法,其特征在于,所述業(yè)務(wù)單板處理器發(fā)起CPLD邏輯文件升級命令,獲取用于升級的CPLD邏輯文件,并通過所述接口控制器進(jìn)行升級操作,轉(zhuǎn)換所述CPLD邏輯文件并寫入至所述工作CPLD器件。
全文摘要
本發(fā)明公開了一種對固件程序進(jìn)行在線升級的裝置及其方法,該裝置包括業(yè)務(wù)單板及其處理器、用于存儲(chǔ)固件程序的存儲(chǔ)器,其特征在于,該裝置還包括一接口控制器、一工作CPLD器件;接口控制器分別與所述業(yè)務(wù)單板處理器、存儲(chǔ)器、工作CPLD器件連接;所述業(yè)務(wù)單板處理器發(fā)起B(yǎng)OOT文件升級命令,獲取用于升級的BOOT文件,并通過所述接口控制器進(jìn)行升級操作,將所述BOOT文件存至所述存儲(chǔ)器;所述業(yè)務(wù)單板處理器發(fā)起CPLD邏輯文件升級命令,獲取用于升級的CPLD邏輯文件,并通過所述接口控制器進(jìn)行升級操作,轉(zhuǎn)換所述CPLD邏輯文件并寫入至所述工作CPLD器件。采用本發(fā)明降低了成本,提高了工作效率和設(shè)備的可維護(hù)性。
文檔編號G06F9/445GK101030140SQ200610011409
公開日2007年9月5日 申請日期2006年3月2日 優(yōu)先權(quán)日2006年3月2日
發(fā)明者馬立軍, 林盛榮, 李洪濤, 曹興國 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
堆龙德庆县| 吉安市| 桃园县| 富川| 胶州市| 益阳市| 东宁县| 博乐市| 涟源市| 南涧| 榆中县| 永清县| 象州县| 亚东县| 邵武市| 宜丰县| 新津县| 永安市| 舟曲县| 鞍山市| 武强县| 会泽县| 黄梅县| 昆明市| 邢台市| 奉节县| 大港区| 娄底市| 拉孜县| 万山特区| 徐州市| 郯城县| 龙里县| 察隅县| 宜章县| 改则县| 安福县| 惠州市| 烟台市| 静海县| 宜兰市|