摘 要: 基于循環(huán)上報(bào)和主動查詢相結(jié)合的機(jī)制,設(shè)計(jì)了數(shù)字光纖直放站中RU的告警信息同步機(jī)制及具體方案,并且搭載嵌入式VxWorks操作系統(tǒng),給出了具體的代碼實(shí)現(xiàn)。測試結(jié)果表明,該系統(tǒng)功能完善,達(dá)到了設(shè)計(jì)目標(biāo),大大提高了數(shù)字光纖直放站的可靠性和穩(wěn)定性,同時(shí)也非常利于對設(shè)備的維護(hù)。
關(guān)鍵詞: 數(shù)字光纖直放站;VxWorks操作系統(tǒng);循環(huán)上報(bào);告警信息同步
0 引言
鐵道通信網(wǎng)絡(luò)中,數(shù)字光纖直放站是一種分布于鐵道沿線為鐵路系統(tǒng)內(nèi)部的通信、調(diào)度等工作服務(wù)的無線信號中繼設(shè)備,由近端機(jī)和遠(yuǎn)端機(jī)(Remote Unit,RU)組成[1]。圖1為數(shù)字光纖直放站結(jié)構(gòu)框圖,近端機(jī)和遠(yuǎn)端機(jī)按照鏈形組網(wǎng)方式進(jìn)行連接。近端機(jī)由兩塊時(shí)間分布控制單元(Time Distributed Master Unit,TDMU)及射頻設(shè)備組成。遠(yuǎn)端機(jī)由兩塊數(shù)字處理板(Digital Processing Board,DPB)和射頻設(shè)備組成,兩塊DPB之間通過RS232總線通信。遠(yuǎn)端機(jī)的兩塊DPB按照主備用模式工作,主DPB處于工作狀態(tài),備DPB處于關(guān)閉備份狀態(tài)。在主DPB出現(xiàn)故障時(shí),主DPB根據(jù)故障類型通過RS232總線開啟備DPB的功能開關(guān)或執(zhí)行相應(yīng)配置,完成主備用的功能切換[2-4]。
RU告警信息的同步有兩層含義:其一,RU與網(wǎng)管中心告警信息的同步;其二,RU兩塊DPB之間告警信息的同步。
實(shí)際應(yīng)用中發(fā)現(xiàn),當(dāng)一個(gè)RU的兩塊DPB上報(bào)的告警信息不一致時(shí),導(dǎo)致網(wǎng)管中心對兩塊DPB的狀況做了錯(cuò)誤的判斷,誤將正常工作的DPB判斷為故障DPB,為維修人員的工作帶來了麻煩。
針對RU告警信息的同步問題,通過對數(shù)字光纖直放站告警管理功能的深入研究,本文提出在RU與網(wǎng)管中心之間以及在RU的兩塊DPB之間分別采用循環(huán)上報(bào)機(jī)制[5-7]和主動發(fā)送與查詢相結(jié)合機(jī)制的實(shí)現(xiàn)方案,同時(shí)搭載嵌入式VxWorks操作系統(tǒng),給出了具體的代碼實(shí)現(xiàn)。
1 RU告警信息同步的設(shè)計(jì)與實(shí)現(xiàn)
1.1 RU告警信息同步的實(shí)現(xiàn)過程
圖2為告警信息同步方案邏輯框圖,告警信息同步方案涉及3個(gè)部分:網(wǎng)管中心、告警同步單元和告警處理單元。告警信息同步的實(shí)現(xiàn)過程為:主DPB告警檢測模塊檢測各個(gè)告警的狀態(tài),檢測出告警狀態(tài)發(fā)生改變的告警項(xiàng)。告警屏蔽模塊首先根據(jù)告警項(xiàng)之間的優(yōu)先級關(guān)系對這些告警項(xiàng)進(jìn)行屏蔽處理,高優(yōu)先級的告警項(xiàng)優(yōu)先上報(bào),低優(yōu)先級的告警項(xiàng)待高優(yōu)先級的告警項(xiàng)恢復(fù)正常后再進(jìn)行上報(bào);然后將告警項(xiàng)的告警狀態(tài)上報(bào)給各個(gè)模塊或者單元。一方面,主DPB將告警狀態(tài)上報(bào)給網(wǎng)管中心;另一方面,主DPB將告警狀態(tài)通知主DPB告警處理單元,主DPB告警處理單元收到信息后進(jìn)行應(yīng)急處理。同時(shí),主DPB將告警狀態(tài)通過RS232總線告知備DPB,備DPB收到信息后,通過告警信息解析模塊解析信息。一方面,備DPB將告警狀態(tài)上報(bào)給網(wǎng)管中心;另一方面,備DPB將告警狀態(tài)告知備DPB告警處理單元,備DPB告警處理單元收到信息后進(jìn)行應(yīng)急處理。
1.2 備DPB通知模塊與主DPB告警解析模塊的信息交互
圖3為備DPB通知模塊與主DPB告警解析模塊的信息交互示意圖。初始上電時(shí),首先判斷DPB的工作狀態(tài)。若DPB為主DPB,判斷告警項(xiàng)的告警狀態(tài),如果告警狀態(tài)發(fā)生改變,將告警狀態(tài)發(fā)送給備DPB的主DPB告警信息解析模塊。若收不到備DPB的告警回復(fù)信息,則下次繼續(xù)發(fā)送;若收到備DPB的告警回復(fù),停止發(fā)送。初始上電時(shí),若DPB為備DPB,則向主DPB發(fā)同步信息包,主動查詢主DPB共享告警項(xiàng)的告警狀態(tài),實(shí)現(xiàn)初始上電時(shí)兩塊DPB告警信息的同步。此后備DPB通過主DPB告警信息解析模塊解析主DPB傳來的告警信息,實(shí)現(xiàn)兩塊DPB告警信息的同步。
1.3 DPB與網(wǎng)管中心的信息交互
圖4為DPB與網(wǎng)管中心的信息交互示意圖。若DPB告警狀態(tài)發(fā)生改變,則DPB將告警狀態(tài)上報(bào)給網(wǎng)管中心。若DPB規(guī)定時(shí)間內(nèi)收到網(wǎng)管中心的告警響應(yīng)信息,則改變告警項(xiàng)的同步狀態(tài),停止上報(bào)。若沒有收到網(wǎng)管中心的告警響應(yīng)消息,則按照告警重發(fā)處理機(jī)制繼續(xù)上報(bào)告警消息。
告警重發(fā)處理過程如圖5所示。DPB上報(bào)告警信息后,在規(guī)定的時(shí)間內(nèi)如果收到網(wǎng)管中心的告警確認(rèn),則表明本次告警信息上報(bào)成功,停止上報(bào);如果沒有收到網(wǎng)管中心的告警確認(rèn),則表明本次告警信息上報(bào)失敗,DPB繼續(xù)上報(bào)告警。如果連續(xù)3次告警信息上報(bào)失敗,DPB停止上報(bào),在間隔一個(gè)規(guī)定的時(shí)間后繼續(xù)上報(bào)告警;如果再連續(xù)3次失敗,則在間隔一個(gè)規(guī)定的時(shí)間后繼續(xù)。如此循環(huán)上報(bào),直至收到網(wǎng)管中心的告警響應(yīng)[8]。
告警重發(fā)特殊情況處理如下:在循環(huán)上報(bào)告警過程中產(chǎn)生了新的告警,則新的告警信息與原來沒有確認(rèn)的告警信息一起上報(bào),原來已確認(rèn)的告警信息不上報(bào),循環(huán)重新開始[9]。
2 RU告警信息同步的軟件實(shí)現(xiàn)
數(shù)字光纖直放站選擇性能穩(wěn)定、功耗低的ARM7微處理器作為主控制器,搭載VxWorks操作系統(tǒng)[10-12]來完成軟件架構(gòu)的搭建。
雖然告警同步實(shí)現(xiàn)過程的軟件平臺已經(jīng)確定,但如何實(shí)現(xiàn)告警項(xiàng)的管理仍然很棘手。對于每個(gè)告警項(xiàng)而言,告警項(xiàng)的要素很多,要素之間不是簡單地羅列而是有著某種邏輯關(guān)系。如何實(shí)現(xiàn)告警檢測時(shí)間的管理,如何實(shí)現(xiàn)循環(huán)上報(bào)中時(shí)間的管理,在上報(bào)過程中如何實(shí)現(xiàn)新舊告警的邏輯關(guān)系等,這些都是需要考慮的問題。
基于以上問題,本文采用單個(gè)結(jié)構(gòu)體及結(jié)構(gòu)體數(shù)組來實(shí)現(xiàn)對告警項(xiàng)各個(gè)要素的管理。告警信息管理結(jié)構(gòu)體和告警上報(bào)控制結(jié)構(gòu)體如下。其中,成員AlmTimersCnt為告警檢測總時(shí)間計(jì)數(shù)器,實(shí)現(xiàn)了告警項(xiàng)檢測時(shí)間的管理;告警上報(bào)控制結(jié)構(gòu)體中的成員NextSendTime為告警項(xiàng)下次上報(bào)的時(shí)間,用來實(shí)現(xiàn)循環(huán)上報(bào)中時(shí)間的管理;成員AlmRptTryCnt為告警項(xiàng)上報(bào)總次數(shù),與成員NextSendTime一起來實(shí)現(xiàn)新舊告警項(xiàng)上報(bào)的邏輯關(guān)系。
告警信息管理結(jié)構(gòu)體組成成員:
typedef struct alarm_info
{
UINT8 AlmIndex;/*告警項(xiàng)的索引號*/
UINT8 AlarmEna;/*告警項(xiàng)的使能開關(guān)*/
UINT8 CurAlmState;/*告警項(xiàng)的當(dāng)前狀態(tài)*/
UINT8 SyncAlmState;/*告警項(xiàng)網(wǎng)管中心的同步狀態(tài)*/
UINT8 Rs232SyncAlmState;/*告警項(xiàng)鄰板的同步狀態(tài)*/
UINT8 AlmProSyncState;/*告警處理單元的同步狀態(tài)*/
UINT8 AlmRptState;/*告警項(xiàng)的上報(bào)狀態(tài)*/
UINT8(*IsAlmRaise)(void);/*告警項(xiàng)檢測函數(shù)的地址*/
UINT32 AlmRaiseCnt;/*告警項(xiàng)異常次數(shù)計(jì)數(shù)器*/
UINT32 AlmIdleCnt;/*告警項(xiàng)正常次數(shù)計(jì)數(shù)器*/
UINT32 AlmTimersCnt;/*告警項(xiàng)檢測總時(shí)間計(jì)數(shù)器*/
}
告警上報(bào)控制結(jié)構(gòu)體組成成員:
typedef struct alarm_rpt_ctrl
{
UINT32 NextSendTime;/*告警項(xiàng)下次上報(bào)的時(shí)間*/
UINT32 AlmRptTryCnt;/*告警項(xiàng)上報(bào)的次數(shù)*/
}
告警信息同步過程的關(guān)鍵代碼如下。其中,AlmRaiseCheck函數(shù)為告警檢測模塊的代碼實(shí)現(xiàn),AlmMaskCheck函數(shù)為告警屏蔽模塊的代碼實(shí)現(xiàn),AlmRptCheck函數(shù)為網(wǎng)管中心上報(bào)模塊的代碼實(shí)現(xiàn),AlmProRptCheck函數(shù)為告警處理單元通知模塊的代碼實(shí)現(xiàn),AlarmSync函數(shù)為備DPB告警通知模塊與主DPB告警信息解析模塊信息交互的代碼實(shí)現(xiàn)。
LOCAL void AlarmManTask(void)
{
UINT8 AlmProTimer=0;
wdStart(SampleTimerId,(int)AlmSampleTime,
?。‵UNCPTR)AlmSampleTimer,0);
AlmResetRptTimer();
while(1){
semTake(semAlmSampleT,WAIT_FOREVER);
AlmRaiseCheck();
AlmMaskCheck();
AlmRptCheck();
if(((AlmProFlag==0)&&(AlmProTimer++>8))||
(AlmProFlag==1)){
AlmProRptCheck();
AlmProTimer=0;
AlmProFlag=1;
}
AlarmSync();
taskDelay(5);
}
printf("!!!Exit AlarmManTask...Error,errno=0x%08X\n",
errnoGet());
return;
}
3 告警信息同步實(shí)現(xiàn)過程的測試與結(jié)果
測試平臺分為硬件平臺與軟件平臺。硬件平臺為PC、調(diào)試串口和數(shù)字光纖直放站;軟件平臺為串口超級終端軟件和網(wǎng)管中心的網(wǎng)管軟件。圖6為串口的超級終端信息打印圖,主DPB檢測到告警狀態(tài)發(fā)生改變時(shí),將告警項(xiàng)的狀態(tài)信息按照圖中的組包格式發(fā)送給備DPB,主DPB收到告警響應(yīng)消息后停止發(fā)送。圖7為網(wǎng)管中心告警監(jiān)控界面,其中紅色按鈕表示告警項(xiàng)產(chǎn)生告警,綠色按鈕表示告警項(xiàng)告警恢復(fù)。
告警信息同步過程的測試分為三個(gè)層次:告警檢測的測試、備DPB通知模塊與主DPB告警解析模塊的信息交互的測試和DPB與網(wǎng)管中心的信息交互測試[5-7]。測試時(shí),數(shù)字光纖直放站按照圖1所示連接方式組網(wǎng)。告警檢測環(huán)節(jié)主要測試告警項(xiàng)是否產(chǎn)生誤告警及非法告警,采用參考文獻(xiàn)[6]中遍歷的方法進(jìn)行測試。經(jīng)測試發(fā)現(xiàn),沒有產(chǎn)生誤告警及非法告警。另外兩種測試采取手動制造告警的方式進(jìn)行驗(yàn)證,測試中以電源1故障告警和輸入電壓過壓告警為例進(jìn)行說明。
首先,手動制造電源1故障告警、輸入電壓過壓告警,主DPB按照圖6所示格式組包,串口打印出主備DPB間的信息交互過程;同時(shí)網(wǎng)管中心收到了兩塊DPB上報(bào)的告警數(shù)據(jù),電源1故障告警及輸入電壓過壓告警燈變?yōu)榧t色。然后,手動制造電源1故障告警恢復(fù)、輸入電壓過壓告警恢復(fù),主DPB按照圖6所示格式組包,串口打印出主備DPB間的信息交互過程,同時(shí)網(wǎng)管中心收到了兩塊DPB上報(bào)的告警恢復(fù)數(shù)據(jù),電源1故障告警及輸入電壓過壓告警燈變?yōu)榫G色。
4 結(jié)論
本文設(shè)計(jì)了RU告警信息的同步實(shí)現(xiàn)方案,在射頻設(shè)備或者DPB出現(xiàn)故障時(shí),該方案既可以及時(shí)將告警狀態(tài)上報(bào)給網(wǎng)管中心,利于設(shè)備的維護(hù);又可以在維修人員未到達(dá)前,對相關(guān)硬件進(jìn)行調(diào)整,保證信號的可靠傳輸。該方案提高了系統(tǒng)的穩(wěn)定性與健壯性。通過測試驗(yàn)證了該方案的可行性,可適用于安全性較高的領(lǐng)域。
參考文獻(xiàn)
[1] 劉立海.數(shù)字光纖直放站特性及其在GSM-R無線覆蓋中的應(yīng)用分析[J].鐵道通信信號,2012(9):30-35.
[2] 鐘楊斌.基站覆蓋延伸系統(tǒng)在無線網(wǎng)絡(luò)覆蓋優(yōu)化中的應(yīng)用研究[D].北京:北京郵電大學(xué),2008.
[3] 高婷婷.鐵路GPRS系統(tǒng)冗余備份的研究[J].鐵路通信信號工程技術(shù),2013(S1):250-254.
[4] 洪治.淺談高速鐵路GSM-R系統(tǒng)干擾現(xiàn)狀及對策[J].中國無線電,2013(3):28-29.
[5] 蘇潔,溫蕾.直放站監(jiān)控管理告警處理機(jī)制及測試方法分析[J].電信網(wǎng)技術(shù),2010(3):57-60.
[6] 敖姣.直放站調(diào)測系統(tǒng)軟件設(shè)計(jì)與研究[D].武漢:武漢郵電科學(xué)研究院,2009.
[7] WCDMA直放站嵌入式監(jiān)控終端研制[D].成都:電子科技大學(xué),2007.
[8] GB/T 1.1-2009.鐵路數(shù)字移動通信系統(tǒng)(GSM-R)光纖直放站網(wǎng)絡(luò)管理系統(tǒng)[S].2009.
[9] YD/T 2231-2011.2 GHz WCDMA數(shù)字蜂窩移動通信網(wǎng)模擬直放站設(shè)備網(wǎng)管接口技術(shù)要求[S].2011.
[10] 張培輝.基于VxWorks和MPC565無人機(jī)飛行控制軟件設(shè)計(jì)與開發(fā)[D].南京:南京航空航天大學(xué),2012.
[11] 張林,王芙蓉.VxWorks嵌入式實(shí)時(shí)系統(tǒng)任務(wù)機(jī)制的研究[J].微型機(jī)與應(yīng)用,2005,24(3):11-13.
[12] 廖崇琦,文臣,鄧文,等.一種基于VxWorks的可重構(gòu)軟件框架設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2013,32(12):22-24.