本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種升級處理方法。
背景技術(shù):
復(fù)雜可編程邏輯器件(complex programmable logic device,簡稱:CPLD)是一種根據(jù)用戶需求構(gòu)造邏輯功能的數(shù)字集成電路,被廣泛地應(yīng)用于各種通信網(wǎng)絡(luò)設(shè)備中。隨著對設(shè)備的可靠性、安全性要求越來越高,如果CPLD在運(yùn)行時(shí)出現(xiàn)問題,或者用戶需求變化,則需要升級CPLD的程序。但是,通常升級完CPLD的程序之后會(huì)釋放CPLD的管腳,這樣可能使得升級前后CPLD的管腳信號發(fā)生跳變,導(dǎo)致CPLD所在設(shè)備的前后狀態(tài)不一,需要通過復(fù)位來保證升級前后狀態(tài)的一致性,從而導(dǎo)致設(shè)備當(dāng)前業(yè)務(wù)中斷。如果發(fā)生跳變的信號是關(guān)鍵信號,例如設(shè)備的控制信號,用于控制設(shè)備上一些業(yè)務(wù)處理模塊的功能,就有可能影響整個(gè)設(shè)備的業(yè)務(wù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種升級處理方法,不需要中斷系統(tǒng)的當(dāng)前業(yè)務(wù),可以保證CPLD升級前與升級后設(shè)備狀態(tài)的一致性。避免對業(yè)務(wù)產(chǎn)生沖擊,提高了系統(tǒng)的可靠性。
本發(fā)明實(shí)施例提供一種升級處理方法,包括:
通過后臺(tái)模式將升級程序加載到復(fù)雜可編程邏輯器件CPLD的閃存中;
當(dāng)運(yùn)行到備份命令字時(shí),備份所述CPLD的寄存器信息和管腳信號;
鎖定所述CPLD的管腳;
將所述CPLD的閃存中的所述升級程序加載到所述CPLD的靜態(tài)隨機(jī)存儲(chǔ)器SRAM中;
根據(jù)備份的所述CPLD的寄存器信息和管腳信號恢復(fù)所述CPLD的寄存器信息和管腳信號;
完成恢復(fù)所述CPLD的寄存器信息和管腳信號之后,釋放所述CPLD的管腳。
如上所述的方法,其中,在所述通過后臺(tái)模式將升級程序加載到CPLD的閃存中之前,所述方法還包括:
生成串行向量格式SVF文件,在所述SVF文件中加入備份命令字和恢復(fù)命令字;其中,所述SVF文件用于指示所述CPLD的升級處理過程,所述備份命令字,用于指示備份所述CPLD的寄存器信息和管腳信號,所述恢復(fù)命令字,用于指示恢復(fù)所述CPLD的寄存器信息和管腳信號。
如上所述的方法,其中,所述通過后臺(tái)模式將升級程序加載到CPLD的閃存中包括:
通過后臺(tái)模式將所述SVF文件加載到所述CPLD的閃存中,根據(jù)所述SVF文件生成嵌入式在線系統(tǒng)編程虛擬機(jī)ispVME數(shù)據(jù)文件,并執(zhí)行所述ispVME數(shù)據(jù)文件;其中,所述ispVME數(shù)據(jù)文件用于執(zhí)行所述CPLD的升級處理,所述ispVME數(shù)據(jù)文件中包括所述備份命令字和所述恢復(fù)命令字。
如上所述的方法,其中,所述根據(jù)備份的所述CPLD的寄存器信息和管腳信號恢復(fù)所述CPLD的寄存器信息和管腳信號包括:
當(dāng)運(yùn)行到所述恢復(fù)命令字時(shí),用備份的所述CPLD的寄存器信息和管腳信號恢復(fù)所述CPLD的寄存器信息和管腳信號。
本發(fā)明提供的CPLD的升級處理方法,通過后臺(tái)模式將升級程序加載到復(fù)雜可編程邏輯器件CPLD的閃存中;當(dāng)運(yùn)行到備份命令字時(shí),備份所述CPLD的寄存器信息和管腳信號;鎖定所述CPLD的管腳;將所述CPLD的閃存中的所述升級程序加載到所述CPLD的靜態(tài)隨機(jī)存儲(chǔ)器SRAM中;根據(jù)備份的所述CPLD的寄存器信息和管腳信號恢復(fù)所述CPLD的寄存器信息和管腳信號,完成恢復(fù)所述CPLD的寄存器信息和管腳信號之后,釋放所述CPLD的管腳,完成CPLD的升級處理,可以保證CPLD升級前與升級后設(shè)備狀態(tài)的一致性,不會(huì)中斷當(dāng)前系統(tǒng)的業(yè)務(wù),避免對業(yè)務(wù)產(chǎn)生沖擊,提高了系統(tǒng)的可靠性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí) 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的升級處理方法的流程圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明實(shí)施例提供的升級處理方法的流程圖,可用于所述CPLD所在設(shè)備運(yùn)行過程中,不打斷CPLD的正常工作,需要對所述CPLD的程序升級的場景下,可以實(shí)現(xiàn)設(shè)備在線狀態(tài)下升級CPLD的操作。如圖1所示,所述升級處理方法包括:
步驟101、通過后臺(tái)模式將升級程序加載到CPLD的閃存中。
具體地,升級處理裝置可通過后臺(tái)模式將CPLD的升級程序加載到CPLD的閃存Flash中。其中,通過后臺(tái)模式將CPLD的升級程序加載到CPLD的Flash中,可以保證CPLD的正常工作。本發(fā)明實(shí)施例中,所述升級處理裝置可以為專用設(shè)備,也可以與所述CPLD位于一個(gè)設(shè)備中,只要能實(shí)現(xiàn)本發(fā)明實(shí)施例的技術(shù)方案即可,對此本發(fā)明實(shí)施例不作限定。
步驟102、當(dāng)運(yùn)行到備份命令字時(shí),備份所述CPLD的寄存器信息和管腳信號。
升級處理裝置將CPLD的寄存器信息和管腳信號備份到所述升級處理裝置的存儲(chǔ)單元中。
步驟103、鎖定所述CPLD的管腳。
升級處理裝置鎖定當(dāng)前CPLD的管腳狀態(tài)。
步驟104、將所述CPLD的閃存中的所述升級程序加載到所述CPLD的SRAM中。
升級處理裝置將CPLD的升級程序從CPLD內(nèi)的Flash中加載到CPLD 內(nèi)的靜態(tài)隨機(jī)存儲(chǔ)器(Static Random-Access Memory,簡稱:SRAM)中運(yùn)行,完成CPLD的升級。
步驟105、根據(jù)備份的所述CPLD的寄存器信息和管腳信號恢復(fù)所述CPLD的寄存器信息和管腳信號。
在CPLD升級后,還需要恢復(fù)CPLD升級前的寄存器信息和管腳信號。升級處理裝置將步驟102中備份的CPLD的寄存器信息和管腳信號,即升級前的CPLD的寄存器信息和管腳信號恢復(fù)到當(dāng)前,即,升級后的CPLD中。這樣CPLD升級前的寄存器信息和管腳信號與CPLD升級后的寄存器信息和管腳信號保持一致,從而可以保證設(shè)備在CPLD升級前與升級后狀態(tài)的一致性。
步驟106、完成恢復(fù)所述CPLD的寄存器信息和管腳信號之后,釋放所述CPLD的管腳。
在完成恢復(fù)所述CPLD的寄存器信息和管腳信號之后,升級處理裝置釋放被鎖定的所述CPLD的管腳,使所述CPLD的管腳輸出的信號與升級所述CPLD之前所述CPLD的管腳輸出的信號一致。舉例來說,在升級CPLD的程序之前,CPLD的管腳信號為高電平,對管腳信號進(jìn)行備份,在升級CPLD的程序之后,由于根據(jù)備份的管腳信號恢復(fù)CPLD的管腳信號,這樣升級后的CPLD的管腳上的控制信號不會(huì)跳變,依然為高電平。
在上述步驟101前,所述方法還包括:生成串行向量格式(Serial Vector Format,簡稱:SVF)文件,在所述SVF文件中加入備份命令字和恢復(fù)命令字;其中,所述SVF文件用于指示所述CPLD的升級處理過程,所述備份命令字用于指示備份所述CPLD的寄存器信息和管腳信號,所述恢復(fù)命令字用于指示恢復(fù)所述CPLD的寄存器信息和管腳信號。
具體地,升級處理裝置以后臺(tái)加載的模式生成所述SVF文件,在所述SVF文件中的第一位置加入所述備份命令字,在第二位置加入所述恢復(fù)命令字。所述第一位置在鎖定所述CPLD的管腳狀態(tài)之前;所述第二位置在將所述CPLD的升級程序加載到所述CPLD的SRAM中運(yùn)行之后,且在釋放所述CPLD的管腳之前。
所述通過后臺(tái)模式將升級程序加載到CPLD的閃存中包括:通過后臺(tái)模式將所述SVF文件加載到所述CPLD的閃存中,根據(jù)所述SVF文件生成嵌 入式在線系統(tǒng)編程虛擬機(jī)(英文:In-System Programming Vitual Machine Embedded,簡稱:ispVME)數(shù)據(jù)文件,并執(zhí)行所述ispVME數(shù)據(jù)文件;其中,所述ispVME數(shù)據(jù)文件用于執(zhí)行所述CPLD的升級處理,所述ispVME數(shù)據(jù)文件中包括所述備份命令字和所述恢復(fù)命令字。
當(dāng)升級處理裝置解析到ispVME數(shù)據(jù)文件中的備份命令字時(shí),進(jìn)入備份流程,執(zhí)行備份當(dāng)前,即升級前的所述CPLD的寄存器信息和管腳信號,即步驟102。當(dāng)升級處理裝置解析到ispVME數(shù)據(jù)文件中的恢復(fù)命令字時(shí),進(jìn)入恢復(fù)流程,執(zhí)行將上述備份的所述CPLD的寄存器信息和管腳信號恢復(fù)到當(dāng)前,即升級后的所述CPLD的寄存器信息和管腳信號中,即步驟105。這樣所述SVF文件就可以指示所述CPLD的升級過程按照上述步驟101~105執(zhí)行。
本實(shí)施例中,通過后臺(tái)模式將CPLD的升級程序加載到CPLD的Flash中之后,備份CPLD的寄存器信息和管腳信號,然后再將CPLD的Flash中的升級程序加載到CPLD的SRAM中,這時(shí)并不立即釋放CPLD的管腳,而是先將上述備份的CPLD的寄存器信息和管腳信號恢復(fù)到所述CPLD中,使升級前與升級后的CPLD的寄存器信息和管腳信號保持一致,最后再釋放所述CPLD的管腳,完成CPLD的升級處理,可以保證CPLD升級前與升級后設(shè)備狀態(tài)的一致性,不會(huì)中斷當(dāng)前系統(tǒng)的業(yè)務(wù),避免對業(yè)務(wù)產(chǎn)生沖擊,提高了系統(tǒng)的可靠性。
因?yàn)樯壧幚硌b置通過后臺(tái)模式將CPLD的升級程序加載到CPLD的Flash中耗時(shí)較長,在這段時(shí)間內(nèi)升級處理裝置是無法對當(dāng)前的CPLD進(jìn)行操作的,如果在CPLD的升級程序加載到CPLD的Flash中之前備份CPLD的寄存器信息和管腳信號,這樣就有可能在CPLD的升級程序加載到CPLD的Flash中這段時(shí)間內(nèi)CPLD的輸出信號會(huì)發(fā)生改變,從而導(dǎo)致CPLD升級前與升級后的輸出信號不一致,所以將升級程序加載到CPLD的Flash中之后,再進(jìn)行備份CPLD的寄存器信息和管腳信號。因?yàn)閺膫浞軨PLD的寄存器信息和管腳信號到恢復(fù)CPLD的寄存器信息和管腳信號這個(gè)過程耗時(shí)很短,所以這樣就可以更進(jìn)一步的保證CPLD在升級前與升級后的狀態(tài)一致性,使系統(tǒng)更加穩(wěn)定。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可 讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。