專利名稱:Sdh設(shè)備單板無(wú)損復(fù)位的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及光同步數(shù)字傳輸技術(shù)(SDH),具體而言,涉及一種光同步數(shù)字傳輸(SDH)設(shè)備中的單板復(fù)位方法。
背景技術(shù):
在光傳輸過(guò)程中,業(yè)務(wù)是必須要得到保證的,但是當(dāng)SDH設(shè)備的某些承載業(yè)務(wù)的單板出現(xiàn)異?;蛘呤菍?duì)其進(jìn)行升級(jí)或復(fù)位時(shí),通常就要對(duì)這些單板進(jìn)行復(fù)位操作,而對(duì)單板的復(fù)位就會(huì)造成已經(jīng)在正常運(yùn)行的業(yè)務(wù)出現(xiàn)中斷或者瞬斷的情況。
首先介紹一下SDH設(shè)備單板出現(xiàn)復(fù)位的幾種情況。在單板的運(yùn)行過(guò)程中,在下面幾種情況下會(huì)出現(xiàn)復(fù)位一是設(shè)備升級(jí),設(shè)備升級(jí)又分為硬件邏輯的升級(jí)和軟件程序的升級(jí)兩種情況,在設(shè)備升級(jí)過(guò)程中要對(duì)設(shè)備進(jìn)行復(fù)位;二是程序跑飛,在程序跑飛后軟件系統(tǒng)會(huì)自動(dòng)復(fù)位;三是操作人員主動(dòng)去復(fù)位設(shè)備,有時(shí)現(xiàn)場(chǎng)的一些維護(hù)操作和故障解決需要操作人員對(duì)單板或者設(shè)備進(jìn)行復(fù)位,這時(shí)需要做的復(fù)位操作命令通常由網(wǎng)管來(lái)下發(fā)。還有就是設(shè)備開(kāi)關(guān)電或上電,因?yàn)閷?duì)于單板的軟件系統(tǒng)來(lái)說(shuō),并不知道設(shè)備是第一次上電運(yùn)行還是復(fù)位運(yùn)行,所以這里把設(shè)備上電也看作是復(fù)位的一種特殊情況。
在現(xiàn)有技術(shù)中,并沒(méi)有區(qū)分以上所提到的各種復(fù)位之間的區(qū)別。對(duì)單板進(jìn)行的復(fù)位操作,都是先復(fù)位CPU,初始化CPU資源,然后下載FPGA硬件邏輯,復(fù)位業(yè)務(wù)處理芯片并初始化業(yè)務(wù)芯片,而一旦做了下載硬件邏輯或者對(duì)業(yè)務(wù)處理芯片進(jìn)行了復(fù)位,那么正常的業(yè)務(wù)肯定會(huì)中斷,本發(fā)明中稱這種會(huì)影響到正常業(yè)務(wù)的復(fù)位為完全復(fù)位。
但是,在實(shí)際的業(yè)務(wù)中,并不是所有的復(fù)位情況都需要進(jìn)行完全復(fù)位操作的。對(duì)于單板復(fù)位的幾種情況設(shè)備開(kāi)關(guān)電或上電是業(yè)務(wù)從無(wú)到有的過(guò)程,對(duì)軟件來(lái)說(shuō)可以看作是一次完全復(fù)位;升級(jí)硬件邏輯后,軟件需要重新下載FPGA硬件邏輯,業(yè)務(wù)中斷,也屬于完全復(fù)位;但是由于軟件升級(jí)和程序跑飛的情況引起的復(fù)位,對(duì)單板來(lái)說(shuō)則只需復(fù)位CPU就可以了,而無(wú)須復(fù)位業(yè)務(wù)處理芯片和重新下載FPGA的硬件邏輯。本發(fā)明把這種僅僅對(duì)CPU進(jìn)行復(fù)位而不重新下載FPGA硬件邏輯和復(fù)位業(yè)務(wù)處理芯片的復(fù)位操作稱為無(wú)損復(fù)位,顯然,無(wú)損復(fù)位是能夠不影響正常業(yè)務(wù)的。
現(xiàn)有技術(shù)中,對(duì)可以進(jìn)行無(wú)損復(fù)位的操作也進(jìn)行不必要的完全復(fù)位操作,這樣勢(shì)必會(huì)對(duì)已經(jīng)正常運(yùn)行的業(yè)務(wù)造成很大的影響如果有配置了環(huán)保護(hù)或通道保護(hù),則這種復(fù)位會(huì)造成倒換的發(fā)生,業(yè)務(wù)由工作通路切換到保護(hù)通路,而這種切換都有瞬間的誤碼產(chǎn)生并造成業(yè)務(wù)瞬斷;如果沒(méi)有配置環(huán)保護(hù)或通道保護(hù),而配置的是一條鏈路的話,則此時(shí)的復(fù)位操作勢(shì)必會(huì)造成業(yè)務(wù)中斷,這種影響是更加嚴(yán)重的。
發(fā)明內(nèi)容
本發(fā)明的目的就是克服現(xiàn)有技術(shù)中對(duì)SDH設(shè)備中承載業(yè)務(wù)的單板進(jìn)行某些復(fù)位時(shí)會(huì)損傷業(yè)務(wù)的缺點(diǎn),提出一種SDH設(shè)備單板無(wú)損復(fù)位的方法,對(duì)單板中無(wú)需進(jìn)行完全復(fù)位的操作進(jìn)行無(wú)損復(fù)位,從而做到不損傷業(yè)務(wù)。
SDH設(shè)備單板無(wú)損復(fù)位的方法,包括下列步驟第一步、單板正常運(yùn)行時(shí),在FPGA中實(shí)時(shí)存儲(chǔ)當(dāng)前業(yè)務(wù)處理芯片的業(yè)務(wù)配置信息和系統(tǒng)運(yùn)行的狀態(tài)信息,并設(shè)置CPLD的復(fù)位等級(jí)寄存器的狀態(tài)為無(wú)損復(fù)位;第二步、如果系統(tǒng)收到復(fù)位請(qǐng)求,則首先根據(jù)網(wǎng)管下發(fā)的復(fù)位命令判斷復(fù)位等級(jí)為無(wú)損復(fù)位還是完全復(fù)位,并將復(fù)位等級(jí)寫入CPLD的復(fù)位等級(jí)寄存器;第三步、復(fù)位CPU并進(jìn)行初始化;第四步、判斷FPGA中的硬件邏輯是否已經(jīng)下載,如果沒(méi)有下載則單板進(jìn)行完全復(fù)位,流程結(jié)束;第五步、否則讀取CPLD的復(fù)位等級(jí)寄存器的狀態(tài),判斷是否為無(wú)損復(fù)位,如果是則繼續(xù),否則單板進(jìn)行完全復(fù)位,流程結(jié)束;第六步、根據(jù)FPGA中存儲(chǔ)的業(yè)務(wù)配置信息恢復(fù)業(yè)務(wù)處理芯片的業(yè)務(wù)數(shù)據(jù),根據(jù)FPGA中存儲(chǔ)的系統(tǒng)運(yùn)行狀態(tài)信息更新系統(tǒng)的狀態(tài)信息。
上述第四步中判斷FPGA中的硬件邏輯是否已經(jīng)下載的方法為在FPGA中預(yù)先設(shè)置一個(gè)寄存器的高四位為只讀狀態(tài)并寫入固定的二進(jìn)制碼,設(shè)置其低四位為可讀可寫狀態(tài);判斷時(shí)對(duì)該寄存器先寫入數(shù)據(jù)然后讀出,通過(guò)寫入數(shù)據(jù)和讀出數(shù)據(jù)的比較判斷得出該FPGA中的硬件邏輯是否已經(jīng)下載。
本發(fā)明提出了一種SDH設(shè)備單板在復(fù)位時(shí)不損傷業(yè)務(wù)的方法,用的資源是硬件提供的寄存器,不需要額外的硬件擴(kuò)充,可以解決目前普遍存在的SDH設(shè)備承載業(yè)務(wù)的單板在某些復(fù)位后會(huì)影響到業(yè)務(wù)正常運(yùn)行的問(wèn)題。本發(fā)明的技術(shù)方案設(shè)計(jì)簡(jiǎn)單,在進(jìn)行無(wú)損復(fù)位時(shí)能夠做到不損傷業(yè)務(wù),把復(fù)位時(shí)對(duì)正常業(yè)務(wù)的影響降到了最小。
圖1是本發(fā)明提出的方法的流程圖;圖2是本發(fā)明的一個(gè)實(shí)施例中判斷FPGA硬件邏輯是否已經(jīng)下載的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
要做到無(wú)損復(fù)位,對(duì)于硬件來(lái)說(shuō),只能對(duì)CPU進(jìn)行復(fù)位,不能重新下載邏輯和復(fù)位業(yè)務(wù)處理芯片,而且還要保持業(yè)務(wù)處理芯片現(xiàn)有的運(yùn)行狀態(tài);對(duì)于軟件來(lái)說(shuō),要保證復(fù)位時(shí)不損傷業(yè)務(wù),必須要恢復(fù)業(yè)務(wù)處理芯片復(fù)位之前的正常業(yè)務(wù)數(shù)據(jù),同時(shí)要恢復(fù)復(fù)位之前的系統(tǒng)狀態(tài)信息數(shù)據(jù),因?yàn)檐浖贑PU復(fù)位之后,程序運(yùn)行的堆和棧的數(shù)據(jù)全部清空,整個(gè)系統(tǒng)都要重新運(yùn)行,所以靠純粹的軟件手段是無(wú)法來(lái)恢復(fù)復(fù)位之前的業(yè)務(wù)數(shù)據(jù)和狀態(tài)信息數(shù)據(jù)的,這些數(shù)據(jù)要靠硬件來(lái)提供存儲(chǔ)手段,本發(fā)明是在FPGA中提供存儲(chǔ)空間來(lái)讓軟件存儲(chǔ)和讀取這些數(shù)據(jù)的。
由于并不是所有的復(fù)位操作都進(jìn)行無(wú)損復(fù)位,因此對(duì)于軟件來(lái)說(shuō),復(fù)位后要重新運(yùn)行,就必須要知道當(dāng)前的復(fù)位等級(jí),是屬于完全復(fù)位還是無(wú)損復(fù)位,由于復(fù)位后程序的堆棧被清空,軟件無(wú)法存儲(chǔ)這些復(fù)位等級(jí)信息,所以也要靠硬件來(lái)存儲(chǔ)這些復(fù)位等級(jí),本發(fā)明是通過(guò)硬件的CPLD提供一個(gè)寄存器來(lái)給軟件存放復(fù)位等級(jí)信息。
如圖1所示,本發(fā)明提出的SDH設(shè)備單板無(wú)損復(fù)位的方法,包括下列步驟第一步、單板正常運(yùn)行時(shí),在FPGA中實(shí)時(shí)存儲(chǔ)當(dāng)前業(yè)務(wù)處理芯片的業(yè)務(wù)配置信息和系統(tǒng)運(yùn)行的狀態(tài)信息,并設(shè)置CPLD的復(fù)位等級(jí)寄存器的狀態(tài)為無(wú)損復(fù)位。因?yàn)橐龅綗o(wú)損復(fù)位,所以在單板正常運(yùn)行過(guò)程中要在FPGA中實(shí)時(shí)存儲(chǔ)當(dāng)前業(yè)務(wù)處理芯片中業(yè)務(wù)配置信息和系統(tǒng)運(yùn)行的狀態(tài)信息,這些信息都是存儲(chǔ)在FPGA中,對(duì)于具體要存放哪些信息和不要存放哪些信息,與具體承載業(yè)務(wù)的單板相關(guān),但必須要保證通過(guò)這些數(shù)據(jù)可以恢復(fù)所需要的業(yè)務(wù)。在正常運(yùn)行時(shí)設(shè)置CPLD復(fù)位等級(jí)寄存器狀態(tài)為無(wú)損復(fù)位,這是因?yàn)槿绻l(fā)生程序跑飛,系統(tǒng)開(kāi)始運(yùn)行時(shí)就可以知道是無(wú)損復(fù)位。在本發(fā)明的一個(gè)實(shí)施例中,CPLD的復(fù)位等級(jí)寄存器中無(wú)損復(fù)位的狀態(tài)值對(duì)應(yīng)為0,完全復(fù)位的狀態(tài)值對(duì)應(yīng)為1。
第二步、如果系統(tǒng)收到復(fù)位請(qǐng)求,則首先根據(jù)網(wǎng)管下發(fā)的復(fù)位命令判斷復(fù)位等級(jí)為無(wú)損復(fù)位還是完全復(fù)位,并將復(fù)位等級(jí)寫入CPLD的復(fù)位等級(jí)寄存器。如前所述,如果是硬件邏輯升級(jí)則判定其復(fù)位等級(jí)為完全復(fù)位,如果是軟件升級(jí)則判定其復(fù)位等級(jí)為無(wú)損復(fù)位。至于操作人員對(duì)設(shè)備的復(fù)位要看當(dāng)時(shí)現(xiàn)場(chǎng)情況的需要以及復(fù)位所要達(dá)到的目的,是否屬于無(wú)損復(fù)位,軟件可以從網(wǎng)管下發(fā)的命令中得知。
第三步、復(fù)位CPU并進(jìn)行初始化;這是常規(guī)的操作。
第四步、判斷FPGA中的硬件邏輯是否已經(jīng)下載,如果沒(méi)有下載則單板進(jìn)行完全復(fù)位,流程結(jié)束;要做到無(wú)損復(fù)位,系統(tǒng)就不能下載FPGA硬件邏輯和復(fù)位業(yè)務(wù)處理芯片。對(duì)于是否要下載FPGA硬件邏輯,要分兩種情況處理如果不是設(shè)備上電或開(kāi)關(guān)電的復(fù)位操作,則此時(shí)是否要重新下載新的FPGA邏輯,可以從CPLD提供的復(fù)位等級(jí)寄存器中讀??;如果是設(shè)備上電或開(kāi)關(guān)電,則此時(shí)必須要下載FPGA邏輯,硬件必須提供必要的手段來(lái)讓軟件知道FPGA邏輯是否已經(jīng)下載,本發(fā)明中通過(guò)FPGA提供的一個(gè)寄存器來(lái)實(shí)現(xiàn)判斷FPGA邏輯是否已經(jīng)下載,具體過(guò)程將在圖2的說(shuō)明中詳述。
第五步、否則讀取CPLD的復(fù)位等級(jí)寄存器的狀態(tài),判斷是否為無(wú)損復(fù)位,如果是則繼續(xù),否則單板進(jìn)行完全復(fù)位,流程結(jié)束。
第六步、根據(jù)FPGA中存儲(chǔ)的業(yè)務(wù)配置信息恢復(fù)業(yè)務(wù)處理芯片的業(yè)務(wù)數(shù)據(jù),根據(jù)FPGA中存儲(chǔ)的系統(tǒng)運(yùn)行狀態(tài)信息更新系統(tǒng)的狀態(tài)信息。如果既不要下載FPGA硬件邏輯,又不要復(fù)位業(yè)務(wù)處理芯片,則進(jìn)入無(wú)損復(fù)位流程,此時(shí)則要恢復(fù)業(yè)務(wù)配置信息數(shù)據(jù)和系統(tǒng)信息數(shù)據(jù),由于這些數(shù)據(jù)都已經(jīng)存放在FPGA提供的寄存器中,從FPGA中把這些數(shù)據(jù)恢復(fù)即可,將FPGA中存放的業(yè)務(wù)配置信息數(shù)據(jù)恢復(fù)到業(yè)務(wù)處理芯片,根據(jù)FPGA中存放的系統(tǒng)信息數(shù)據(jù)更新系統(tǒng)的狀態(tài)信息,恢復(fù)所有存儲(chǔ)的數(shù)據(jù)之后,設(shè)備正常運(yùn)行,此時(shí)正常業(yè)務(wù)沒(méi)有任何中斷,以上就是無(wú)損復(fù)位的完整過(guò)程。
一個(gè)判斷FPGA中的硬件邏輯是否已經(jīng)下載的方法為在FPGA中預(yù)先設(shè)置一個(gè)寄存器的高四位為只讀狀態(tài)并寫入固定的二進(jìn)制碼,設(shè)置其低四位為可讀可寫狀態(tài);判斷時(shí)對(duì)該寄存器先寫入數(shù)據(jù)然后讀出,通過(guò)寫入數(shù)據(jù)和讀出數(shù)據(jù)的比較判斷得出該FPGA中的硬件邏輯是否已經(jīng)下載。圖2是本發(fā)明的一個(gè)實(shí)施例中判斷FPGA硬件邏輯是否已經(jīng)下載的流程圖,如圖2所示,在本發(fā)明的這個(gè)實(shí)施例中,F(xiàn)PGA中預(yù)先設(shè)置一個(gè)寄存器的高四位被設(shè)置為只讀,固定為二進(jìn)制碼的1010,此寄存器的低四位可讀可寫,在判斷FPGA硬件邏輯是否已經(jīng)下載時(shí),先對(duì)此寄存器寫入0xAA,然后讀取寄存器的值,如果讀出來(lái)不是0xAA,則FPGA硬件邏輯沒(méi)有下載;如果是0xAA,接下來(lái)再向該寄存器寫入0x55,然后再讀取寄存器的值,此時(shí)如果讀出來(lái)不是0xA5,則表示FPGA硬件邏輯沒(méi)有下載,如果是0xA5,則表示FPGA硬件邏輯已經(jīng)下載了。
權(quán)利要求
1.SDH設(shè)備單板無(wú)損復(fù)位的方法,其特征在于包括下列步驟第一步、單板正常運(yùn)行時(shí),在FPGA中實(shí)時(shí)存儲(chǔ)當(dāng)前業(yè)務(wù)處理芯片的業(yè)務(wù)配置信息和系統(tǒng)運(yùn)行的狀態(tài)信息,并設(shè)置CPLD的復(fù)位等級(jí)寄存器的狀態(tài)為無(wú)損復(fù)位;第二步、如果系統(tǒng)收到復(fù)位請(qǐng)求,則首先根據(jù)網(wǎng)管下發(fā)的復(fù)位命令判斷復(fù)位等級(jí)為無(wú)損復(fù)位還是完全復(fù)位,并將復(fù)位等級(jí)寫入CPLD的復(fù)位等級(jí)寄存器;第三步、復(fù)位CPU并進(jìn)行初始化;第四步、判斷FPGA中的硬件邏輯是否已經(jīng)下載,如果沒(méi)有下載則單板進(jìn)行完全復(fù)位,流程結(jié)束;第五步、否則讀取CPLD的復(fù)位等級(jí)寄存器的狀態(tài),判斷是否為無(wú)損復(fù)位,如果是則繼續(xù),否則單板進(jìn)行完全復(fù)位,流程結(jié)束;第六步、根據(jù)FPGA中存儲(chǔ)的業(yè)務(wù)配置信息恢復(fù)業(yè)務(wù)處理芯片的業(yè)務(wù)數(shù)據(jù),根據(jù)FPGA中存儲(chǔ)的系統(tǒng)運(yùn)行狀態(tài)信息更新系統(tǒng)的狀態(tài)信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述第四步中判斷FPGA中的硬件邏輯是否已經(jīng)下載的方法為在FPGA中預(yù)先設(shè)置一個(gè)寄存器的高四位為只讀狀態(tài)并寫入固定的二進(jìn)制碼,設(shè)置其低四位為可讀可寫狀態(tài);判斷時(shí)對(duì)該寄存器先寫入數(shù)據(jù)然后讀出,通過(guò)寫入數(shù)據(jù)和讀出數(shù)據(jù)的比較判斷得出該FPGA中的硬件邏輯是否已經(jīng)下載。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于所述CPLD的復(fù)位等級(jí)寄存器中無(wú)損復(fù)位的狀態(tài)值對(duì)應(yīng)為0,完全復(fù)位的狀態(tài)值對(duì)應(yīng)為1。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于所述第二步中,如果是硬件邏輯升級(jí)則判斷其復(fù)位等級(jí)為完全復(fù)位,如果是軟件升級(jí)則判斷其復(fù)位等級(jí)為無(wú)損復(fù)位。
全文摘要
本發(fā)明公開(kāi)了一種SDH設(shè)備單板無(wú)損復(fù)位的方法,包括1.單板正常運(yùn)行時(shí),在FPGA中實(shí)時(shí)存儲(chǔ)系統(tǒng)恢復(fù)信息,并設(shè)置CPLD的復(fù)位等級(jí)寄存器的狀態(tài)為無(wú)損復(fù)位;2.如果系統(tǒng)收到復(fù)位請(qǐng)求,首先根據(jù)網(wǎng)管下發(fā)的復(fù)位命令判斷復(fù)位等級(jí),并將復(fù)位等級(jí)寫入CPLD的寄存器;3.復(fù)位CPU并進(jìn)行初始化;4.判斷FPGA中的硬件邏輯是否已經(jīng)下載,如果沒(méi)有下載則單板進(jìn)行完全復(fù)位,流程結(jié)束;5.否則讀取CPLD的寄存器的狀態(tài),判斷是否為無(wú)損復(fù)位,如果是則繼續(xù),否則單板進(jìn)行完全復(fù)位,流程結(jié)束;6.根據(jù)FPGA中存儲(chǔ)的業(yè)務(wù)配置信息恢復(fù)業(yè)務(wù)處理芯片的業(yè)務(wù)數(shù)據(jù),根據(jù)FPGA中存儲(chǔ)的系統(tǒng)運(yùn)行狀態(tài)信息更新系統(tǒng)的狀態(tài)信息。本發(fā)明提出的方法,在進(jìn)行無(wú)損復(fù)位時(shí)能夠做到不損傷業(yè)務(wù),把復(fù)位時(shí)對(duì)正常業(yè)務(wù)的影響降到最小。
文檔編號(hào)H04L12/24GK1758575SQ20041008047
公開(kāi)日2006年4月12日 申請(qǐng)日期2004年10月10日 優(yōu)先權(quán)日2004年10月10日
發(fā)明者呂軍 申請(qǐng)人:中興通訊股份有限公司