摘 要: 針對CDMA通訊系統(tǒng)基站側(cè)的重要單板——基帶信號處理" title="信號處理">信號處理單板的系統(tǒng)故障需要在極短時間內(nèi)進(jìn)行自恢復(fù)的要求,,設(shè)計了一種基于VxWorks操作系統(tǒng)的故障快速恢復(fù)方法,,包括操作系統(tǒng)的任務(wù),、消息隊列,、信號量等操作設(shè)計,同時對設(shè)計前后系統(tǒng)故障恢復(fù)情況進(jìn)行了對比測試,、驗證,。
關(guān)鍵詞: VxWorks操作系統(tǒng);CDMA基站,;故障,;快速恢復(fù)
?
在CDMA基站BTS側(cè),EVDO基帶信號處理板" title="信號處理板">信號處理板負(fù)責(zé)完成基帶信號的調(diào)制和解調(diào)工作,,在整個通訊系統(tǒng)中具有非常重要的作用,?;鶐幚戆宓挠布到y(tǒng)包括PPC,、高通" title="高通">高通CSM6800等芯片;軟件系統(tǒng)包括VxWorks操作系統(tǒng),、BSP驅(qū)動層,、信號處理應(yīng)用層" title="應(yīng)用層">應(yīng)用層等部分?;鶐盘柼幚戆逶谶\(yùn)行中對外界條件和組成單元要求苛刻,,當(dāng)運(yùn)行條件不滿足系統(tǒng)要求時,傳統(tǒng)的方法是采用整板硬復(fù)位的方法進(jìn)行故障恢復(fù)。
需要整板復(fù)位的情況包括:(1)時鐘信號出現(xiàn)故障,,導(dǎo)致調(diào)制和解調(diào)異常,;(2)CSM6800調(diào)制解調(diào)芯片出現(xiàn)異常;(3)部分應(yīng)用層任務(wù)出現(xiàn)異常,;(4)在線修改基于CSM6800的基帶參數(shù),,只有硬復(fù)位后才能生效;(5)更換新的單板軟件版本等,。
在基站系統(tǒng)的實際運(yùn)行中,,上述情況都比較常見?;鶐盘柼幚韱伟逡坏┱鍙?fù)位,,通常需要4~5分鐘才能恢復(fù)正常工作,期間終端用戶無法進(jìn)行正常業(yè)務(wù)應(yīng)用,。對于用戶來說,,這個業(yè)務(wù)中斷的時間長度難以容忍,因此增加了用戶投訴概率和對運(yùn)營商的壓力,。如何解決這個問題已成為當(dāng)務(wù)之急,。
1 單板快速恢復(fù)設(shè)計方案
1.1 單板架構(gòu)分析
如圖1,基帶信號處理單板硬件由兩個主要組成部分:一個是主控CPU,,采用高性能的PowerPC,;另外一個是高通公司的基帶信號調(diào)制、解調(diào)芯片CSM6800,。
?
主控CPU完成對整個單板的控制,,包括對CSM6800的控制、與BSC側(cè)進(jìn)行媒體流數(shù)據(jù)的交互,、單板自身各項功能的實現(xiàn)等,。主控CPU采用VxWorks作為實時操作系統(tǒng),對單板上任務(wù),、消息隊列,、內(nèi)存等進(jìn)行管理,采用百兆網(wǎng)口與BTS其他單板交換數(shù)據(jù),。
CSM6800是高通推出的支持CDMA3G EVDO第二代的調(diào)制解調(diào)芯片,,它具有支持前向速率3.1Mb/s和反向1.8Mb/s的調(diào)制解調(diào)能力。CSM6800的工作條件比較苛刻:(1)需要時鐘系統(tǒng)提供精確的PP2S信號和16CHIP信號,;(2)修改CSM6800配置參數(shù)后,,需要復(fù)位CSM6800后才能生效。
如圖2,,在基帶信號處理板上CPU中的軟件架構(gòu)是在VxWorks操作系統(tǒng)上完成應(yīng)用層任務(wù)的調(diào)度和運(yùn)行,。下面分析單板上軟件系統(tǒng):
(1)操作系統(tǒng)層,。基帶信號處理板對實時性要求很高,,因此采用VxWorks作為操作系統(tǒng),,完成任務(wù)管理等操作系統(tǒng)工作。
(2)BSP底層驅(qū)動程序,。該層封裝了一些上層軟件需要時使用的底層或者是硬件的接口,,保證上層軟件更好的移植性。
(3)應(yīng)用層,。該層完成處理底層數(shù)據(jù),,并與BSC側(cè)完成數(shù)據(jù)交互、基帶功能控制以及包括單板的一些應(yīng)用程序,,如告警模塊,、性能統(tǒng)計模塊、信令跟蹤模塊等,。
?
從以上分析,,基帶單板從軟件和硬件上基本可以分為相對獨(dú)立的主控CPU和CSM6800兩大部分。
1.2 快速啟動" title="快速啟動">快速啟動方案設(shè)計
首先分析基帶信號處理板的各種復(fù)位場景,,并且進(jìn)行梳理,。其場景分為兩大類:一類是不需要整板復(fù)位就能解決問題或者故障恢復(fù)的場景;另外一類是只有復(fù)位整板才能夠解決故障,。在實際的商用環(huán)境中,,第二類故障或場景非常少,主要包括:(1)基站軟件升級,;(2)底層操作系統(tǒng)跑死,。由于系統(tǒng)升級頻率極低,且選擇升級的時間都是事先進(jìn)行安排,,因此對于用戶業(yè)務(wù)影響很小,。至于底層操作系統(tǒng)跑死的可能性更加低微,無論是實驗室還是商用機(jī)都極少出現(xiàn)此類情況,。
相對而言,,第一類場景比第二類場景出現(xiàn)的概率更高一些,目前都是采用統(tǒng)一整板復(fù)位的方式來進(jìn)行功能恢復(fù)或者重新啟動,。
在分析各類場景之前,,首先分析整板啟動時間消耗在哪里。經(jīng)過測試和計算,,其結(jié)果如表1,。
?
分析表1,,整體啟動時間需要253s左右,,但是前四步就占用了245s,,尤其是第4步高通CSM6800芯片自檢,消耗了170s的時間,。
分析了所有的復(fù)位源,,將可以歸類到第一類場景的復(fù)位源進(jìn)行了細(xì)化,具體如下:
(1)更改CSM6800參數(shù),,需要重新啟動CSM6800生效,;
(2)時鐘系統(tǒng)出錯,應(yīng)用層診斷后,,為防止CSM6800出錯,,需要重新啟動CSM6800;
(3)CS6800運(yùn)行期間報錯,,需要重新啟動CSM6800,;
(4)啟動時的參數(shù)校驗錯誤,需要重新復(fù)位系統(tǒng),。
針對(1),、(2)、(3)這三種情況,,在PPC上即控制CPU上的程序本身并沒有任何問題,,因此不需要復(fù)位整個CPU。第4種情況是上層的配置參數(shù)有誤,,導(dǎo)致單板無法正常運(yùn)行,,但是實際上此時的單板并沒有出現(xiàn)異常,其他各個功能模塊也沒有出現(xiàn)故障,。
由此可見,,基帶信號處理板在CSM6800需要復(fù)位才能實現(xiàn)正常功能時,具有重新設(shè)計單板復(fù)位機(jī)制的基礎(chǔ),。這個基礎(chǔ)就是CSM6800復(fù)位,,或者是針對CSM6800操作出現(xiàn)故障后,并不影響CPU操作系統(tǒng)上底層任務(wù)的正常運(yùn)行,,只是對CPU應(yīng)用層任務(wù)產(chǎn)生了影響,。依據(jù)這個分析基礎(chǔ),進(jìn)行了基于VxWorks的快速恢復(fù)機(jī)制設(shè)計,。其具體實施方法為:
(1)流程如圖3,,首先判斷是要發(fā)起快速恢復(fù)啟動還是正常的整個單板復(fù)位。
?
??? (2)正常的單板復(fù)位流程,,按照單板原設(shè)計方案執(zhí)行,;如果是快速啟動方案,則按照快速啟動方案執(zhí)行:
?、偾宄鞣N定時器,,包括單板與基站其他單板的握手定時器,、任務(wù)自身的循環(huán)定時器,以及其他各種特殊用途的定時器,,防止定時器溢出產(chǎn)生任務(wù)切換或者導(dǎo)致硬件中斷,。
? ②清除數(shù)據(jù)堆棧。
?、壅{(diào)用msgQDelete()清除各個應(yīng)用層任務(wù)消息隊列[1],;清空后,任務(wù)不處理新來的消息,,這樣任務(wù)不會因為消息的激勵產(chǎn)生任務(wù)切換,。
??? ④釋放應(yīng)用層任務(wù)的指針變量,防止出現(xiàn)無主內(nèi)存,,最終導(dǎo)致內(nèi)存不斷變小,,單板無法執(zhí)行正常的功能。
??? ⑤清除各個應(yīng)用層任務(wù)的靜態(tài)變量,;每個任務(wù)都有自己靜態(tài)成員變量,,因此必須要將這些成員變量的數(shù)值歸于初始化值,否則將導(dǎo)致不可預(yù)見的錯誤,。
??? ⑥清除各個應(yīng)用層任務(wù)的局部變量,;盡管局部變量在釋放任務(wù)后會自動釋放,但是為了防止不可預(yù)知的錯誤,,仍然要將其釋放,,進(jìn)行初始化操作。
??? ⑦各個應(yīng)用層調(diào)用taskDelete()任務(wù)釋放自己[2],;這個應(yīng)用層多個任務(wù)需要完成的最后一個工作,,完成自身釋放后,任務(wù)構(gòu)建時所在單板上申請的堆棧,、任務(wù)ID,、內(nèi)存等全部從操作系統(tǒng)中抹掉,操作系統(tǒng)將把原先各個應(yīng)用層任務(wù)占用的資源進(jìn)行無主化管理,。
??? ⑧通過邏輯控制復(fù)位CSM6800,;這是關(guān)鍵的一步,如果不能實現(xiàn),,則整個方案意義也就不大,。在邏輯中增加可以單獨(dú)控制CSM6800復(fù)位控制的邏輯,當(dāng)單板完成應(yīng)用層的快速啟動準(zhǔn)備后,,要通過操作系統(tǒng)對CSM6800芯片進(jìn)行復(fù)位,。復(fù)位后,該芯片會重新啟動恢復(fù)正常狀態(tài),,并且,,重新按照應(yīng)用層給的新的配置參數(shù)進(jìn)行配置,。這樣即滿足了由于某些原因?qū)е缕溥M(jìn)入到異常狀態(tài)而無法正常調(diào)制和解調(diào)的問題,同時也解決了新的配置參數(shù)無法生效的問題,。
??? ⑨重新啟動調(diào)用taskSpawn()[3]啟動各個應(yīng)用層任務(wù)。按照單板正常情況下進(jìn)行各個應(yīng)用層任務(wù)的啟動,。對于應(yīng)用層而言,,此時并不知道在執(zhí)行快速啟動后是任務(wù)啟動還是在單板完全復(fù)位后的啟動。
??? ⑩啟動的各個應(yīng)用層任務(wù)只有在各自正常啟動后,,單板才進(jìn)入到正常的工作狀態(tài),,否則將重新執(zhí)行快速啟動。
1.3 快速恢復(fù)啟動效果測試
??? 采用中興CDMA EVDO真實環(huán)境進(jìn)行測試,,選擇高通支持第二代協(xié)議的手機(jī)進(jìn)行測試,。首先,將高通手機(jī)撥號進(jìn)行網(wǎng)絡(luò)連接,,撥號成功后,,再進(jìn)行ping包,并保持ping包狀態(tài),;然后,,采用不同的復(fù)位策略復(fù)位基帶信號處理單板,并進(jìn)行對比測試,。
??? 按照兩種方案進(jìn)行測試,,測試結(jié)果如果表2。
?
??? 如表2,,快速恢復(fù)啟動方案的啟動時間比原有正常啟動縮短了95.3%,,大大縮短了系統(tǒng)恢復(fù)正常功能所需要的時間,達(dá)到了系統(tǒng)設(shè)計目的,。為了保證設(shè)計方案的穩(wěn)定性,,連續(xù)多天進(jìn)行上千次快速恢復(fù)啟動集成測試,測試表明設(shè)計方案穩(wěn)定,,并且對于系統(tǒng)的各方面性能指標(biāo)無影響,。
????兩種啟動方式的區(qū)別:正常啟動就是目前的做法,將整個單板上所有的硬件和軟件同時做復(fù)位處理,,其所需要時間達(dá)到了253s,,十分漫長;快速恢復(fù)啟動方案則并沒有將整個單板復(fù)位,,而只是在操作的過程中將CSM6800進(jìn)行了硬復(fù)位操作,,其主控CPU沒有復(fù)位,不僅如此,,主控CPU上面駐留的操作系統(tǒng)和操作系統(tǒng)隔離層都沒有受到影響,,只有應(yīng)用層的各個任務(wù)被重新啟動了一遍,。
2 結(jié)論
??? 快速恢復(fù)啟動方案的可靠實施是建立在VxWorks操作系統(tǒng)對于任務(wù)、消息隊列,、信號量的高性能管理基礎(chǔ)上的,。連續(xù)多次啟動和殺掉多個應(yīng)用層任務(wù)過程中,VxWorks能夠穩(wěn)定地管理各項資源[2],,沒有產(chǎn)生內(nèi)存泄漏,、資源鎖死等狀況,充分保證了上層應(yīng)用任務(wù)的可靠,。同時,,在該快速恢復(fù)啟動方案的實施中,注意了應(yīng)用任務(wù)中采用的多種定時器,、靜態(tài)變量,、全局變量(包括臨時變量),以及任務(wù)之間的互鎖,、任務(wù)之間沖突隱患等各種情況的處理,,才保證了快速恢復(fù)啟動方案的可靠性。
在商用局的應(yīng)用中,,基帶信號處理單板采用快速恢復(fù)啟動方案能夠大大縮短啟動時間,,極大地降低對終端用戶的業(yè)務(wù)干擾。這項系統(tǒng)設(shè)計對于提高運(yùn)營商服務(wù)質(zhì)量和顧客滿意度起到了重要作用,。
參考文獻(xiàn)
[1] 孔祥營.嵌入式實時操作系統(tǒng)VxWorks及其開發(fā)環(huán)境Tornado.北京:中國電力出版社,,2002.
[2] WindRiver 公司.VxWorks Programmer′s guide,1999.
[3] 鄭宗漢.實時系統(tǒng)軟件基礎(chǔ).北京:清華大學(xué)出版社,,2003.