《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 基于VxWorks的系統(tǒng)故障快速恢復設計

基于VxWorks的系統(tǒng)故障快速恢復設計

2008-11-27
作者:王 洋

  摘 要: 針對CDMA通訊系統(tǒng)基站側的重要單板——基帶信號處理" title="信號處理">信號處理單板的系統(tǒng)故障需要在極短時間內進行自恢復的要求,設計了一種基于VxWorks操作系統(tǒng)的故障快速恢復方法,包括操作系統(tǒng)的任務、消息隊列、信號量等操作設計,同時對設計前后系統(tǒng)故障恢復情況進行了對比測試、驗證。
  關鍵詞: VxWorks操作系統(tǒng);CDMA基站;故障;快速恢復

?

  在CDMA基站BTS側,EVDO基帶信號處理板" title="信號處理板">信號處理板負責完成基帶信號的調制和解調工作,在整個通訊系統(tǒng)中具有非常重要的作用?;鶐幚戆宓挠布到y(tǒng)包括PPC、高通" title="高通">高通CSM6800等芯片;軟件系統(tǒng)包括VxWorks操作系統(tǒng)、BSP驅動層、信號處理應用層" title="應用層">應用層等部分。基帶信號處理板在運行中對外界條件和組成單元要求苛刻,當運行條件不滿足系統(tǒng)要求時,傳統(tǒng)的方法是采用整板硬復位的方法進行故障恢復。
  需要整板復位的情況包括:(1)時鐘信號出現(xiàn)故障,導致調制和解調異常;(2)CSM6800調制解調芯片出現(xiàn)異常;(3)部分應用層任務出現(xiàn)異常;(4)在線修改基于CSM6800的基帶參數(shù),只有硬復位后才能生效;(5)更換新的單板軟件版本等。
  在基站系統(tǒng)的實際運行中,上述情況都比較常見?;鶐盘柼幚韱伟逡坏┱鍙臀?,通常需要4~5分鐘才能恢復正常工作,期間終端用戶無法進行正常業(yè)務應用。對于用戶來說,這個業(yè)務中斷的時間長度難以容忍,因此增加了用戶投訴概率和對運營商的壓力。如何解決這個問題已成為當務之急。
1 單板快速恢復設計方案
1.1 單板架構分析

  如圖1,基帶信號處理單板硬件由兩個主要組成部分:一個是主控CPU,采用高性能的PowerPC;另外一個是高通公司的基帶信號調制、解調芯片CSM6800。

?


  主控CPU完成對整個單板的控制,包括對CSM6800的控制、與BSC側進行媒體流數(shù)據(jù)的交互、單板自身各項功能的實現(xiàn)等。主控CPU采用VxWorks作為實時操作系統(tǒng),對單板上任務、消息隊列、內存等進行管理,采用百兆網(wǎng)口與BTS其他單板交換數(shù)據(jù)。
  CSM6800是高通推出的支持CDMA3G EVDO第二代的調制解調芯片,它具有支持前向速率3.1Mb/s和反向1.8Mb/s的調制解調能力。CSM6800的工作條件比較苛刻:(1)需要時鐘系統(tǒng)提供精確的PP2S信號和16CHIP信號;(2)修改CSM6800配置參數(shù)后,需要復位CSM6800后才能生效。
  如圖2,在基帶信號處理板上CPU中的軟件架構是在VxWorks操作系統(tǒng)上完成應用層任務的調度和運行。下面分析單板上軟件系統(tǒng):
  (1)操作系統(tǒng)層。基帶信號處理板對實時性要求很高,因此采用VxWorks作為操作系統(tǒng),完成任務管理等操作系統(tǒng)工作。
  (2)BSP底層驅動程序。該層封裝了一些上層軟件需要時使用的底層或者是硬件的接口,保證上層軟件更好的移植性。
  (3)應用層。該層完成處理底層數(shù)據(jù),并與BSC側完成數(shù)據(jù)交互、基帶功能控制以及包括單板的一些應用程序,如告警模塊、性能統(tǒng)計模塊、信令跟蹤模塊等。

?


  從以上分析,基帶單板從軟件和硬件上基本可以分為相對獨立的主控CPU和CSM6800兩大部分。
1.2 快速啟動" title="快速啟動">快速啟動方案設計
  首先分析基帶信號處理板的各種復位場景,并且進行梳理。其場景分為兩大類:一類是不需要整板復位就能解決問題或者故障恢復的場景;另外一類是只有復位整板才能夠解決故障。在實際的商用環(huán)境中,第二類故障或場景非常少,主要包括:(1)基站軟件升級;(2)底層操作系統(tǒng)跑死。由于系統(tǒng)升級頻率極低,且選擇升級的時間都是事先進行安排,因此對于用戶業(yè)務影響很小。至于底層操作系統(tǒng)跑死的可能性更加低微,無論是實驗室還是商用機都極少出現(xiàn)此類情況。
  相對而言,第一類場景比第二類場景出現(xiàn)的概率更高一些,目前都是采用統(tǒng)一整板復位的方式來進行功能恢復或者重新啟動。
  在分析各類場景之前,首先分析整板啟動時間消耗在哪里。經(jīng)過測試和計算,其結果如表1。

?


  分析表1,整體啟動時間需要253s左右,但是前四步就占用了245s,尤其是第4步高通CSM6800芯片自檢,消耗了170s的時間。
  分析了所有的復位源,將可以歸類到第一類場景的復位源進行了細化,具體如下:
  (1)更改CSM6800參數(shù),需要重新啟動CSM6800生效;
  (2)時鐘系統(tǒng)出錯,應用層診斷后,為防止CSM6800出錯,需要重新啟動CSM6800;
  (3)CS6800運行期間報錯,需要重新啟動CSM6800;
  (4)啟動時的參數(shù)校驗錯誤,需要重新復位系統(tǒng)。
  針對(1)、(2)、(3)這三種情況,在PPC上即控制CPU上的程序本身并沒有任何問題,因此不需要復位整個CPU。第4種情況是上層的配置參數(shù)有誤,導致單板無法正常運行,但是實際上此時的單板并沒有出現(xiàn)異常,其他各個功能模塊也沒有出現(xiàn)故障。
  由此可見,基帶信號處理板在CSM6800需要復位才能實現(xiàn)正常功能時,具有重新設計單板復位機制的基礎。這個基礎就是CSM6800復位,或者是針對CSM6800操作出現(xiàn)故障后,并不影響CPU操作系統(tǒng)上底層任務的正常運行,只是對CPU應用層任務產(chǎn)生了影響。依據(jù)這個分析基礎,進行了基于VxWorks的快速恢復機制設計。其具體實施方法為:
  (1)流程如圖3,首先判斷是要發(fā)起快速恢復啟動還是正常的整個單板復位。

?

??? (2)正常的單板復位流程,按照單板原設計方案執(zhí)行;如果是快速啟動方案,則按照快速啟動方案執(zhí)行:
 ?、偾宄鞣N定時器,包括單板與基站其他單板的握手定時器、任務自身的循環(huán)定時器,以及其他各種特殊用途的定時器,防止定時器溢出產(chǎn)生任務切換或者導致硬件中斷。
?  ②清除數(shù)據(jù)堆棧。
 ?、壅{用msgQDelete()清除各個應用層任務消息隊列[1];清空后,任務不處理新來的消息,這樣任務不會因為消息的激勵產(chǎn)生任務切換。
??? ④釋放應用層任務的指針變量,防止出現(xiàn)無主內存,最終導致內存不斷變小,單板無法執(zhí)行正常的功能。
??? ⑤清除各個應用層任務的靜態(tài)變量;每個任務都有自己靜態(tài)成員變量,因此必須要將這些成員變量的數(shù)值歸于初始化值,否則將導致不可預見的錯誤。
??? ⑥清除各個應用層任務的局部變量;盡管局部變量在釋放任務后會自動釋放,但是為了防止不可預知的錯誤,仍然要將其釋放,進行初始化操作。
??? ⑦各個應用層調用taskDelete()任務釋放自己[2];這個應用層多個任務需要完成的最后一個工作,完成自身釋放后,任務構建時所在單板上申請的堆棧、任務ID、內存等全部從操作系統(tǒng)中抹掉,操作系統(tǒng)將把原先各個應用層任務占用的資源進行無主化管理。
??? ⑧通過邏輯控制復位CSM6800;這是關鍵的一步,如果不能實現(xiàn),則整個方案意義也就不大。在邏輯中增加可以單獨控制CSM6800復位控制的邏輯,當單板完成應用層的快速啟動準備后,要通過操作系統(tǒng)對CSM6800芯片進行復位。復位后,該芯片會重新啟動恢復正常狀態(tài),并且,重新按照應用層給的新的配置參數(shù)進行配置。這樣即滿足了由于某些原因導致其進入到異常狀態(tài)而無法正常調制和解調的問題,同時也解決了新的配置參數(shù)無法生效的問題。
??? ⑨重新啟動調用taskSpawn()[3]啟動各個應用層任務。按照單板正常情況下進行各個應用層任務的啟動。對于應用層而言,此時并不知道在執(zhí)行快速啟動后是任務啟動還是在單板完全復位后的啟動。
??? ⑩啟動的各個應用層任務只有在各自正常啟動后,單板才進入到正常的工作狀態(tài),否則將重新執(zhí)行快速啟動。
1.3 快速恢復啟動效果測試
??? 采用中興CDMA EVDO真實環(huán)境進行測試,選擇高通支持第二代協(xié)議的手機進行測試。首先,將高通手機撥號進行網(wǎng)絡連接,撥號成功后,再進行ping包,并保持ping包狀態(tài);然后,采用不同的復位策略復位基帶信號處理單板,并進行對比測試。
??? 按照兩種方案進行測試,測試結果如果表2。

?


??? 如表2,快速恢復啟動方案的啟動時間比原有正常啟動縮短了95.3%,大大縮短了系統(tǒng)恢復正常功能所需要的時間,達到了系統(tǒng)設計目的。為了保證設計方案的穩(wěn)定性,連續(xù)多天進行上千次快速恢復啟動集成測試,測試表明設計方案穩(wěn)定,并且對于系統(tǒng)的各方面性能指標無影響。
????兩種啟動方式的區(qū)別:正常啟動就是目前的做法,將整個單板上所有的硬件和軟件同時做復位處理,其所需要時間達到了253s,十分漫長;快速恢復啟動方案則并沒有將整個單板復位,而只是在操作的過程中將CSM6800進行了硬復位操作,其主控CPU沒有復位,不僅如此,主控CPU上面駐留的操作系統(tǒng)和操作系統(tǒng)隔離層都沒有受到影響,只有應用層的各個任務被重新啟動了一遍。
2 結論
??? 快速恢復啟動方案的可靠實施是建立在VxWorks操作系統(tǒng)對于任務、消息隊列、信號量的高性能管理基礎上的。連續(xù)多次啟動和殺掉多個應用層任務過程中,VxWorks能夠穩(wěn)定地管理各項資源[2],沒有產(chǎn)生內存泄漏、資源鎖死等狀況,充分保證了上層應用任務的可靠。同時,在該快速恢復啟動方案的實施中,注意了應用任務中采用的多種定時器、靜態(tài)變量、全局變量(包括臨時變量),以及任務之間的互鎖、任務之間沖突隱患等各種情況的處理,才保證了快速恢復啟動方案的可靠性。
  在商用局的應用中,基帶信號處理單板采用快速恢復啟動方案能夠大大縮短啟動時間,極大地降低對終端用戶的業(yè)務干擾。這項系統(tǒng)設計對于提高運營商服務質量和顧客滿意度起到了重要作用。


參考文獻
[1] 孔祥營.嵌入式實時操作系統(tǒng)VxWorks及其開發(fā)環(huán)境Tornado.北京:中國電力出版社,2002.
[2] WindRiver 公司.VxWorks Programmer′s guide,1999.
[3] 鄭宗漢.實時系統(tǒng)軟件基礎.北京:清華大學出版社,2003.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。