李玉蘭,李開(kāi)成,李驍宇,陳思捷,劉木齊
(1.北京交通大學(xué) 電子信息工程學(xué)院,北京 100044;2.北京交通大學(xué) 軌道交通運(yùn)行控制系統(tǒng)國(guó)家工程研究中心,北京 100044)
隨著城市軌道交通的發(fā)展,CBTC–基于通信的列車運(yùn)行控制系統(tǒng)得到廣泛應(yīng)用。由于用于CBTC系統(tǒng)設(shè)備研發(fā)和生產(chǎn)的統(tǒng)一規(guī)范還有待完善,使得各個(gè)廠商生產(chǎn)的設(shè)備之間存在較大差別,很多不同廠商的設(shè)備之間往往不能直接進(jìn)行通信。在實(shí)際應(yīng)用中,對(duì)于具體線路所使用的相關(guān)設(shè)備通常來(lái)自于不同的廠商,同時(shí)在實(shí)驗(yàn)室進(jìn)行仿真實(shí)驗(yàn)時(shí),也希望利用不同廠商的設(shè)備搭建一套CBTC最小系統(tǒng)。然而采用直接修改廠商設(shè)備接口以使各設(shè)備之間接口匹配的方式開(kāi)發(fā)難度大、工期長(zhǎng)。因此,設(shè)計(jì)可以用于CBTC系統(tǒng)各關(guān)鍵設(shè)備之間接口協(xié)議轉(zhuǎn)換的接口轉(zhuǎn)換應(yīng)用層系統(tǒng)非常有意義。
本設(shè)計(jì)采用C#做后臺(tái)代碼開(kāi)發(fā)工具,結(jié)合具體線路中參與運(yùn)行的設(shè)備數(shù)量多,設(shè)備之間交互信息量大的實(shí)際特點(diǎn),實(shí)現(xiàn)一種高效、實(shí)時(shí)的CBTC系統(tǒng)各個(gè)設(shè)備之間接口協(xié)議轉(zhuǎn)換的接口轉(zhuǎn)換應(yīng)用層系統(tǒng)。
CBTC系統(tǒng)是基于通信的列車運(yùn)行控制系統(tǒng)。一個(gè)典型的CBTC系統(tǒng)包括:列車自動(dòng)監(jiān)督系統(tǒng)(ATS,Automatic Train Supervision)、數(shù)據(jù)庫(kù)存儲(chǔ)單元(DSU,Database Storage Unit)、區(qū)域控制器(ZC,Zone Controller)、計(jì)算機(jī)聯(lián)鎖CI,Computer Interlocking)、車載控制器(VOBC,Vehicle 0n Board Controller)和數(shù)據(jù)通信系統(tǒng)(DCS,Data Communication System),包括骨干網(wǎng)、網(wǎng)絡(luò)交換機(jī)、無(wú)線接入點(diǎn)以及車載移動(dòng)無(wú)線設(shè)備。
北京地鐵運(yùn)營(yíng)仿真實(shí)驗(yàn)室是利用北京地鐵亦莊線數(shù)據(jù)搭建的一套CBTC最小系統(tǒng),系統(tǒng)關(guān)鍵設(shè)備信息交互圖如圖1所示。
圖1 CBTC系統(tǒng)關(guān)鍵設(shè)備信息交互圖
在搭建的最小系統(tǒng)中,既有真實(shí)設(shè)備,也有仿真設(shè)備。仿真設(shè)備和仿真設(shè)備、仿真設(shè)備和真實(shí)設(shè)備、真實(shí)設(shè)備和仿真設(shè)備之間均存在信息交互。根據(jù)搭建系統(tǒng)所選擇廠商的設(shè)備特點(diǎn),圖1中用虛線連接的部分在系統(tǒng)中不能直接通信,實(shí)線連接的部分可以直接通信。
在一套CBTC系統(tǒng)中CI、ZC、ATS、VOBC這4個(gè)子系統(tǒng)之間均存在信息交互,而接口轉(zhuǎn)換系統(tǒng)的作用即為保證各個(gè)子系統(tǒng)之間信息交互正常。
為了使系統(tǒng)正常運(yùn)行,必須使不能直接通信的設(shè)備接口相互匹配。采用增加中間層(接口轉(zhuǎn)換系統(tǒng)層)的方式,不僅開(kāi)發(fā)難度小、工期短,還可以提高系統(tǒng)的可擴(kuò)展性和可維護(hù)性。因此接口轉(zhuǎn)換系統(tǒng)的開(kāi)發(fā)將為CBTC最小系統(tǒng)的搭建,提供切實(shí)可行的方案。
為了使整個(gè)CBTC系統(tǒng)具有良好的可擴(kuò)展性和可維護(hù)性,系統(tǒng)內(nèi)部所有交互的信息均通過(guò)接口轉(zhuǎn)換系統(tǒng)進(jìn)行分發(fā)和處理。本文主要論述與CBTC系統(tǒng)中存在信息交互的CI、ATS、ZC和VOBC這4個(gè)核心子系統(tǒng)之間的信息交互。
接口轉(zhuǎn)換系統(tǒng)由消息收發(fā)模塊和消息處理模塊兩個(gè)部分組成,即應(yīng)用層和網(wǎng)絡(luò)層兩個(gè)部分。系統(tǒng)的整體結(jié)構(gòu)如圖2所示。
系統(tǒng)消息交互流程為:由消息發(fā)送方設(shè)備(如CI)對(duì)應(yīng)的數(shù)據(jù)網(wǎng)絡(luò)層設(shè)備(CI數(shù)據(jù)網(wǎng)絡(luò)層)接收原始消息,并將接收到的消息送入應(yīng)用層進(jìn)行處理,應(yīng)用層將處理后的消息發(fā)送給接收方對(duì)應(yīng)的數(shù)據(jù)網(wǎng)絡(luò)層(如ATS數(shù)據(jù)網(wǎng)絡(luò)層),再由數(shù)據(jù)網(wǎng)絡(luò)層設(shè)備發(fā)送給對(duì)應(yīng)的接收設(shè)備。
采用此分布式結(jié)構(gòu),可以將消息的收發(fā)環(huán)節(jié)和處理環(huán)節(jié)分開(kāi),使得在調(diào)試和維護(hù)的過(guò)程中便于故障定位,提高系統(tǒng)可維護(hù)性。同時(shí)使接口轉(zhuǎn)換系統(tǒng)不受外圍設(shè)備數(shù)量和類型的影響。外圍設(shè)備數(shù)量的增加,只是帶來(lái)接口轉(zhuǎn)換系統(tǒng)處理消息量的增加,而外圍設(shè)備類型的增加,只需要在原有接口轉(zhuǎn)換系統(tǒng)的基礎(chǔ)上增加該設(shè)備類型對(duì)應(yīng)的網(wǎng)絡(luò)層設(shè)備和應(yīng)用層處理子模塊即可,提高了系統(tǒng)的可擴(kuò)展性和實(shí)用性。
本文主要針對(duì)接口轉(zhuǎn)換系統(tǒng)的應(yīng)用層進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),以下簡(jiǎn)稱應(yīng)用層。
圖2 系統(tǒng)整體結(jié)構(gòu)圖
應(yīng)用層采用C#做后臺(tái)代碼開(kāi)發(fā)工具,和網(wǎng)絡(luò)層之間采用TCP/UDP協(xié)議進(jìn)行通信。應(yīng)用層由消息接收模塊、消息處理模塊和消息發(fā)送模塊組成。其系統(tǒng)工作流程如圖3所示。
消息接收模塊采用TCP/UDP協(xié)議實(shí)時(shí)接收來(lái)自網(wǎng)絡(luò)層的消息??尚械南⒔邮辗桨赣袃煞N。
(1)采用多線程技術(shù)
當(dāng)有消息到達(dá)時(shí)立即接收并存儲(chǔ);沒(méi)有消息到達(dá)時(shí),應(yīng)用層正常的對(duì)接收到的消息進(jìn)行后續(xù)處理。
(2)采用單條消息處理機(jī)制
接收到一條消息時(shí),立即對(duì)該條消息進(jìn)行處理,并在將接收到的消息發(fā)送給網(wǎng)絡(luò)層之后,再接收下一條消息。
采用多線程技術(shù),易使系統(tǒng)陷入死循環(huán),且在滿足系統(tǒng)要求的前提下,處理機(jī)制比采用單條消息處理的機(jī)制復(fù)雜。所以在本設(shè)計(jì)中采用方案2的消息處理機(jī)制。
圖3 系統(tǒng)工作流程圖
單條消息處理機(jī)制的工作流程如圖4所示。
圖4 單條消息處理機(jī)制工作流程圖
消息處理模塊根據(jù)要搭建的CBTC系統(tǒng)要求,將接收到的原始消息,按照一定的規(guī)則進(jìn)行處理,使其能被該條消息的接收設(shè)備所識(shí)別,從而保證CBTC系統(tǒng)各個(gè)設(shè)備之間通信正常。
在一套完整的CBTC系統(tǒng)中,參與工作的子系統(tǒng)多,交互的消息量大,使得消息處理模塊作為應(yīng)用層系統(tǒng)的核心模塊,必須具備合理的消息處理機(jī)制,以快速、準(zhǔn)確的對(duì)消息進(jìn)行處理,同時(shí)還應(yīng)具備一定的通用性和可擴(kuò)展性,便于系統(tǒng)升級(jí)和后期維護(hù)。
同種類型的仿真設(shè)備和真實(shí)設(shè)備在與其它設(shè)備進(jìn)行信息交互時(shí),消息的內(nèi)容和格式可能有所不同,從而需要應(yīng)用層設(shè)備對(duì)其采用不同的處理機(jī)制。如ATS設(shè)備和仿真CI之間可以直接通信,而和真實(shí)CI之間不可以直接通信。所以對(duì)于消息處理模塊,在對(duì)接收到的原始消息進(jìn)行處理時(shí),需要同時(shí)考慮消息方向,和與該條消息相關(guān)的發(fā)送設(shè)備和接收設(shè)備是仿真設(shè)備還是真實(shí)設(shè)備,從而選擇正確的消息處理機(jī)制。
為了使消息處理模塊滿足性能要求,同時(shí)能有效地根據(jù)消息特征選擇處理機(jī)制,將消息處理模塊分為消息分類子模塊、ATS_CI消息處理子模塊、ATS_VOBC消息處理子模塊 、ATS_ZC消息處理子模塊、CI_ZC消息處理子模塊、CI_VOBC消息處理子模塊、ZC_VOBC消息處理子模塊、CI_CI消息處理子模塊8個(gè)子模塊。
在消息分類子模塊中,首先根據(jù)消息的發(fā)送方設(shè)備和接收方設(shè)備類型,選擇正確的處理機(jī)制,確定消息被送往的子模塊。若消息由ATS發(fā)往CI,則該條消息將被送到ATS_CI消息處理子模塊中進(jìn)一步處理。
在消息處理子模塊中完成對(duì)消息的解包、處理、組包操作,完成協(xié)議轉(zhuǎn)換。
將消息處理模塊進(jìn)行子模塊劃分,應(yīng)用層系統(tǒng)在數(shù)據(jù)處理的過(guò)程中即可以根據(jù)消息的來(lái)源和消息的去向靈活選擇用于對(duì)消息進(jìn)行處理的模塊和處理方式。同時(shí),當(dāng)外部設(shè)備類型和數(shù)量增加時(shí),只需要增加相應(yīng)的消息處理子模塊即可。
消息發(fā)送模塊采用TCP/UDP協(xié)議將轉(zhuǎn)換完成后的消息發(fā)送給網(wǎng)絡(luò)層,即系統(tǒng)根據(jù)消息的方向,從配置文件中找到網(wǎng)絡(luò)層設(shè)備所在的IP和端口,并將轉(zhuǎn)換完成后的消息利用TCP/UDP協(xié)議發(fā)往該端口,完成消息的發(fā)送。
在北京地鐵運(yùn)營(yíng)仿真實(shí)驗(yàn)室平臺(tái)的基礎(chǔ)上,結(jié)合接口轉(zhuǎn)換器應(yīng)用層和網(wǎng)絡(luò)層,對(duì)應(yīng)用層系統(tǒng)的性能進(jìn)行測(cè)試。
應(yīng)用層系統(tǒng)測(cè)試指標(biāo)主要有丟包率、誤組包率和時(shí)延。根據(jù)搭建的最小系統(tǒng)的要求,應(yīng)用層系統(tǒng)應(yīng)滿足的性能指標(biāo)如表1所示。
表1 系統(tǒng)性能指標(biāo)
其中亦莊線CBTC仿真實(shí)驗(yàn)室系統(tǒng)各設(shè)備周期如表2所示。
表2 亦莊線CBTC仿真實(shí)驗(yàn)室系統(tǒng)設(shè)備周期
在測(cè)試過(guò)程中系統(tǒng)各設(shè)備之間信息交互正常,各個(gè)設(shè)備均處于正常工作狀態(tài)。統(tǒng)計(jì)各設(shè)備之間信息交互50 000次所得的丟包率、誤組包率和時(shí)延測(cè)試結(jié)果如表3所示,時(shí)延測(cè)試柱狀圖如圖5所示。
從系統(tǒng)測(cè)試的統(tǒng)計(jì)結(jié)果可以看出,接口轉(zhuǎn)換應(yīng)用層系統(tǒng)的最大丟包率為0.06‰(不包含由網(wǎng)絡(luò)本身引起的丟包),即50 000條消息中,有3條消息被丟包,滿足系統(tǒng)性能要求。誤組包率為0。延時(shí)時(shí)間和消息包的長(zhǎng)度,處理過(guò)程的復(fù)雜度以及處理CPU時(shí)間等均有關(guān),從測(cè)試結(jié)果可以看出,系統(tǒng)最大時(shí)延出現(xiàn)在CI->ATS的過(guò)程中,這是由于在一條由CI->ATS的消息中,所包含的數(shù)據(jù)量最多,處理過(guò)程也最復(fù)雜。而對(duì)于ZC->ATS、VOBC->ZC、ZC->VOBC等過(guò)程,數(shù)據(jù)量小,數(shù)據(jù)量變化不大,也基本不需要處理,所以時(shí)延最小,且時(shí)延最大值和平均值相等。應(yīng)用層時(shí)延滿足系統(tǒng)性能需求。從系統(tǒng)的測(cè)試結(jié)果可以說(shuō)明接口轉(zhuǎn)換應(yīng)用層系統(tǒng)滿足設(shè)計(jì)要求。
表3 丟包率、誤組包率和時(shí)延測(cè)試結(jié)果
圖5 時(shí)延測(cè)試結(jié)果柱狀圖
本文在北京地鐵運(yùn)營(yíng)仿真實(shí)驗(yàn)室平臺(tái)的基礎(chǔ)上,設(shè)計(jì)和實(shí)現(xiàn)了接口轉(zhuǎn)換器應(yīng)用層系統(tǒng)。系統(tǒng)具有消息收發(fā)和協(xié)議轉(zhuǎn)換功能,能對(duì)接收到的交互信息按照用戶需求進(jìn)行協(xié)議轉(zhuǎn)換,使CBTC系統(tǒng)各個(gè)設(shè)備之間正常通信,保證系統(tǒng)運(yùn)行正常。
通過(guò)對(duì)系統(tǒng)的測(cè)試可以看出,系統(tǒng)在丟包率、誤組包率和時(shí)延等方面均滿足設(shè)計(jì)要求。且所設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,能靈活應(yīng)對(duì)外圍設(shè)備數(shù)量和類型的變化,具有良好的通用性、可擴(kuò)展性和可維護(hù)性。
[1]郜春海.基于通信的軌道交通列車運(yùn)行控制系統(tǒng)[J].現(xiàn)代城市軌道交通,2007(2): 7-10.
[2]王 偉. CBTC 測(cè)試平臺(tái)關(guān)鍵問(wèn)題研究[D].北京:北京交通大學(xué),2008.
[3]郜春海,黃友能.CBTC 仿真測(cè)試系統(tǒng)研究報(bào)告[R].北京:北京交通大學(xué)CBTC 課題組,2007.
[4]郜春海,唐 濤.基于通信的城軌CBTC 系統(tǒng)研究報(bào)告[R].北京:北京交通大學(xué)運(yùn)輸自動(dòng)化所CBTC 課題組,2007.
[5]陳鋒華,劉 嶺,徐 松. 基于通信的列車控制(CBTC)系統(tǒng)[J]. 鐵路通信信號(hào)工程,2005(1):40-42.
[6]陳祥獻(xiàn),王 東,黃 濤. CBTC系統(tǒng)仿真測(cè)試平臺(tái)設(shè)計(jì)[J]. 鐵路計(jì)算機(jī)應(yīng)用,2010,20(8):50-56.
[7]王 偉,張建明. 基于最小系統(tǒng)的CBTC仿真測(cè)試平臺(tái)[J].都市快軌交通,2011,24(4):33-36.