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

基于VxWorks的系統(tǒng)故障快速恢復(fù)設(shè)計(jì)

2008-11-27
作者:王 洋

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

?

  在CDMA基站BTS側(cè),EVDO基帶信號(hào)處理板" title="信號(hào)處理板">信號(hào)處理板負(fù)責(zé)完成基帶信號(hào)的調(diào)制和解調(diào)工作,在整個(gè)通訊系統(tǒng)中具有非常重要的作用?;鶐幚戆宓挠布到y(tǒng)包括PPC、高通" title="高通">高通CSM6800等芯片;軟件系統(tǒng)包括VxWorks操作系統(tǒng)、BSP驅(qū)動(dòng)層、信號(hào)處理應(yīng)用層" title="應(yīng)用層">應(yīng)用層等部分。基帶信號(hào)處理板在運(yùn)行中對(duì)外界條件和組成單元要求苛刻,當(dāng)運(yùn)行條件不滿足系統(tǒng)要求時(shí),傳統(tǒng)的方法是采用整板硬復(fù)位的方法進(jìn)行故障恢復(fù)。
  需要整板復(fù)位的情況包括:(1)時(shí)鐘信號(hào)出現(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)的實(shí)際運(yùn)行中,上述情況都比較常見(jiàn)。基帶信號(hào)處理單板一旦整板復(fù)位,通常需要4~5分鐘才能恢復(fù)正常工作,期間終端用戶無(wú)法進(jìn)行正常業(yè)務(wù)應(yīng)用。對(duì)于用戶來(lái)說(shuō),這個(gè)業(yè)務(wù)中斷的時(shí)間長(zhǎng)度難以容忍,因此增加了用戶投訴概率和對(duì)運(yùn)營(yíng)商的壓力。如何解決這個(gè)問(wèn)題已成為當(dāng)務(wù)之急。
1 單板快速恢復(fù)設(shè)計(jì)方案
1.1 單板架構(gòu)分析

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

?


  主控CPU完成對(duì)整個(gè)單板的控制,包括對(duì)CSM6800的控制、與BSC側(cè)進(jìn)行媒體流數(shù)據(jù)的交互、單板自身各項(xiàng)功能的實(shí)現(xiàn)等。主控CPU采用VxWorks作為實(shí)時(shí)操作系統(tǒng),對(duì)單板上任務(wù)、消息隊(duì)列、內(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)需要時(shí)鐘系統(tǒng)提供精確的PP2S信號(hào)和16CHIP信號(hào);(2)修改CSM6800配置參數(shù)后,需要復(fù)位CSM6800后才能生效。
  如圖2,在基帶信號(hào)處理板上CPU中的軟件架構(gòu)是在VxWorks操作系統(tǒng)上完成應(yīng)用層任務(wù)的調(diào)度和運(yùn)行。下面分析單板上軟件系統(tǒng):
  (1)操作系統(tǒng)層?;鶐盘?hào)處理板對(duì)實(shí)時(shí)性要求很高,因此采用VxWorks作為操作系統(tǒng),完成任務(wù)管理等操作系統(tǒng)工作。
  (2)BSP底層驅(qū)動(dòng)程序。該層封裝了一些上層軟件需要時(shí)使用的底層或者是硬件的接口,保證上層軟件更好的移植性。
  (3)應(yīng)用層。該層完成處理底層數(shù)據(jù),并與BSC側(cè)完成數(shù)據(jù)交互、基帶功能控制以及包括單板的一些應(yīng)用程序,如告警模塊、性能統(tǒng)計(jì)模塊、信令跟蹤模塊等。

?


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

?


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

?

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

?


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


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

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