管 婷,王玉松,宋紅霞
(西南交通大學(xué) 智能控制與仿真工程研究中心,四川成都610031)
1999年國際電工委員會(IEC)發(fā)布了TCN列車通信網(wǎng)絡(luò)標(biāo)準(zhǔn)IEC 61375-1:1999。TCN標(biāo)準(zhǔn)包括兩級總線:車輛總線 (Multifunction Vehicle Bus,MVB)和列車總線(Wire Train Bus,WTB)。MVB用于連接可編程的站及簡單傳感器/執(zhí)行機(jī)構(gòu)的車輛總線;WTB則適用于機(jī)車車輛經(jīng)常連掛和解列的列車總線;實時協(xié)議(Real Time Protocol,RTP)為一個應(yīng)用與另一個應(yīng)用在車輛通信網(wǎng)絡(luò)上通信提供協(xié)議和服務(wù),這兩個應(yīng)用可以位于不同車輛上,在同一車輛上或在同一設(shè)備內(nèi)。RTP可用于WTB和MVB或有相同基本服務(wù)的其他總線的通信,只要至少有兩條總線同時遵守RTP時就存在路由器。
TCN網(wǎng)關(guān)實現(xiàn)WTB列車級網(wǎng)絡(luò)和MVB車輛級網(wǎng)絡(luò)間的相互通信,具有消息路由功能。消息路由功能的實現(xiàn)是通過站索引或功能索引來尋址消息的路由途徑,將消息從源設(shè)備傳送到目的設(shè)備,實現(xiàn)消息的點對點傳輸。如果路由沒有成功,消息將不能被傳送。
一個TCN節(jié)點的網(wǎng)絡(luò)層如圖1描述,消息包在網(wǎng)絡(luò)層的傳遞分為3種:(1)從該站的傳送層到鏈路層(出境包);(2)從鏈路層之一到傳送層(入境包);(3)在路由器節(jié)點中從一個鏈路層到另一個鏈路層(中轉(zhuǎn)包)。
網(wǎng)絡(luò)層將消息包從起始站傳送到終點站,使用以下索引提供的映射:站索引、功能索引、組索引、節(jié)點索引。消息的網(wǎng)絡(luò)地址分系統(tǒng)地址和用戶地址,系統(tǒng)地址用于標(biāo)志網(wǎng)絡(luò)中的一個站,用戶地址用于標(biāo)志網(wǎng)絡(luò)中的一個功能。
根據(jù)消息包的來源,TCN網(wǎng)關(guān)的路由分為3種:來自傳送層的消息包路由;來自MVB消息包的路由;來自WTB消息包的路由。路由工況如表1所示。
圖1 節(jié)點的網(wǎng)絡(luò)層
表1 路由工況
對于出境包,路由算法通過對功能索引表以及站索引表的查找,完成網(wǎng)絡(luò)地址到鏈路地址的映射,將數(shù)據(jù)包發(fā)送到MVB或者WTB的鏈路層直至物理層;對于入境包,路由算法將消息包發(fā)送至網(wǎng)絡(luò)層和傳送層之間的隊列;對于中轉(zhuǎn)包,路由算法通過查表將包繼續(xù)轉(zhuǎn)發(fā)出去。
TCN網(wǎng)關(guān)軟件系統(tǒng)架構(gòu)如圖2所示,包括WTB物理層與鏈路層協(xié)議軟件、MVB物理層與鏈路層協(xié)議軟件、RTP實時協(xié)議軟件(包括過程數(shù)據(jù)入網(wǎng)、消息數(shù)據(jù)通信)、用戶應(yīng)用軟件及網(wǎng)絡(luò)管理軟件。鏈路層接口包括:過程數(shù)據(jù)鏈路層接口(LPI)、消息數(shù)據(jù)鏈路層接口(LMI)、監(jiān)視數(shù)據(jù)鏈路層接口(LSI);應(yīng)用層接口包括:過程數(shù)據(jù)應(yīng)用接口(AVI)、消息數(shù)據(jù)應(yīng)用接口(AMI)、監(jiān)視數(shù)據(jù)應(yīng)用接口(ASI)。
過程數(shù)據(jù)入網(wǎng)僅包含應(yīng)用層;消息通信則包含了網(wǎng)絡(luò)層、傳送層、會話層、表示層、應(yīng)用層,其中網(wǎng)絡(luò)層實現(xiàn)消息路由功能;傳送層提供分包、流量控制和差錯控制等服務(wù);會話層實現(xiàn)遠(yuǎn)程過程的呼叫;表示層沒有協(xié)議;應(yīng)用層提供呼叫/應(yīng)答服務(wù)、初始化、緩沖區(qū)管理和多播服務(wù)。為更好的闡述消息路由算法,首先介紹消息通信機(jī)制的實現(xiàn)。
圖2 TCN網(wǎng)關(guān)軟件系統(tǒng)架構(gòu)
消息通信機(jī)制的實現(xiàn)如圖3所示,交互流程分析如下:
(1)用戶呼叫者調(diào)用應(yīng)用層接口函數(shù)am_call_request開始通信。應(yīng)用層接口函數(shù)am_call_request調(diào)用傳送層函數(shù)tm_send_req,請求傳送層任務(wù)發(fā)送消息;當(dāng)傳送層任務(wù)發(fā)送消息后,釋放一個隊列信號,通知網(wǎng)絡(luò)層有消息到達(dá)。
(2)網(wǎng)絡(luò)層接收傳送層的指示,調(diào)用來自傳送層的消息包的路由算法,完成消息包網(wǎng)絡(luò)地址到鏈路地址的映射;之后調(diào)用鏈路層接口函數(shù)lm_send_request,將消息拷貝至鏈路層發(fā)送隊列中,并聲明有消息要發(fā)送;鏈路消息進(jìn)程將發(fā)送隊列的數(shù)據(jù)通過實際物理網(wǎng)絡(luò)發(fā)送至目的鏈路層。
(3)目的鏈路消息進(jìn)程接收到消息后,將消息拷貝至消息接收隊列中,并調(diào)用nm_event_indicate,釋放一個隊列信號,通知網(wǎng)絡(luò)層有消息到達(dá)。
(4)網(wǎng)絡(luò)層任務(wù)接收到消息到來指示,解析接收到的入境包,處理后將其發(fā)送至網(wǎng)絡(luò)層和傳送層之間的隊列,并釋放一個指示信號,激活傳送層任務(wù)。
(5)傳送層任務(wù)處理接收的消息包,直至呼叫消息接收完畢,釋放一個郵箱信號,激活應(yīng)用層任務(wù),繼而調(diào)用receive_confirm進(jìn)行接收確認(rèn)。
應(yīng)答者的通信過程與呼叫者相似,不再贅述。
圖3 消息通信機(jī)制的實現(xiàn)
如前面提到的TCN網(wǎng)關(guān)路由分3種,消息路由算法對應(yīng)也分3種:來自傳送層消息包的路由算法,來自MVB消息包的路由算法,來自WTB消息包的路由算法。配置站索引表、功能索引表、節(jié)點索引表、組索引表等來實現(xiàn)路由索引服務(wù)。網(wǎng)絡(luò)層任務(wù)根據(jù)指示信號調(diào)用相應(yīng)的路由算法:傳送層的發(fā)送指示信號觸發(fā)來自傳送層消息包的路由算法;WTB鏈路層的接收指示信號觸發(fā)來自WTB消息包的路由算法;MVB鏈路層的接收指示信號觸發(fā)來自MVB消息包的路由算法。
以來自傳送層消息包的路由算法的設(shè)計為例,主要討論單播過程,其流程見圖4,分析如下:
(1)判斷是否單播,若非單播則進(jìn)行多播處理。
(2)判斷網(wǎng)絡(luò)地址類型,若采用系統(tǒng)地址,則標(biāo)志了終點站;否則需通過功能索引指明終點站。
(3)判斷最終節(jié)點和下一站的內(nèi)容,若通信伙伴為同一站時,將不存在路由,并返回錯誤。否則通過站索引尋址相應(yīng)的總線地址及總線上的設(shè)備地址,確定路由的去向。
(4)構(gòu)造轉(zhuǎn)發(fā)包的鏈路報頭和網(wǎng)絡(luò)報頭,調(diào)用相應(yīng)總線的鏈路層接口函數(shù),將消息數(shù)據(jù)最終路由至目的總線的鏈路層,返回正確。
圖4 來自傳送層消息包的路由算法
路由算法的測試采用由成都運達(dá)軌道交通設(shè)備有限公司自主研發(fā)的TCN網(wǎng)關(guān),其網(wǎng)關(guān)的硬件結(jié)構(gòu)如圖5所示。WTB模塊完成WTB總線相關(guān)功能,并對整個網(wǎng)關(guān)的資源進(jìn)行調(diào)配,是網(wǎng)關(guān)的“中樞神經(jīng)”。MVB模塊完成MVB總線相關(guān)功能,并具有MVB總線管理器的功能。WTB模塊和MVB模塊之間采用雙端口RAM的方式完成數(shù)據(jù)交換。外圍接口包括110 V電源輸入、MVB接口、WTB接口、程序下載接口、狀態(tài)指示燈、復(fù)位按鈕。
圖5 TCN網(wǎng)關(guān)硬件結(jié)構(gòu)
為測試消息路由算法,搭建了如圖6所示的硬件測試平臺,包括3個 TCN網(wǎng)關(guān),8個MVB 4類設(shè)備。其中1個TCN網(wǎng)關(guān)采用UniControls a.s.公司生產(chǎn)的標(biāo)準(zhǔn)網(wǎng)關(guān),MVB 4類設(shè)備采用北車研發(fā)中心的MVB設(shè)備,均符合TCN標(biāo)準(zhǔn)。網(wǎng)關(guān)之間、MVB設(shè)備之間分別由WTB電纜和MVB電纜連接。用4位數(shù)字表示車輛總線設(shè)備的設(shè)備地址,用“#”符號加3位數(shù)字表示站標(biāo)志符,用2位數(shù)字表示一個節(jié)點的地址。TCN網(wǎng)關(guān)和MVB設(shè)備都設(shè)有調(diào)試串口,可通過各自的調(diào)試串口查看測試過程中設(shè)備運行的數(shù)據(jù)。
圖6 硬件測試平臺
為了驗證路由算法,選用系統(tǒng)地址尋址方式,配置3組實例:
(1)位于不相鄰網(wǎng)關(guān)的兩個站:由掛在節(jié)點02上的站#004向掛在節(jié)點04上的站#022發(fā)送一個消息包。
(2)位于相鄰網(wǎng)關(guān)的兩個站:節(jié)點03即站#005向掛在節(jié)點04上的站#021發(fā)送一個消息包。
(3)位于同一網(wǎng)段下的兩個站:由節(jié)點04(節(jié)點本身也是站,即#018)向掛在節(jié)點04上的站#023發(fā)送一個消息包。
以上3組測試結(jié)果均與預(yù)期一致。以第一組實例的測試情況為例,詳細(xì)分析如下。
第1步,起始站#004發(fā)送一個消息數(shù)據(jù)幀給網(wǎng)關(guān)02,通過起始站的設(shè)備0033的調(diào)試串口截獲關(guān)心的消息數(shù)據(jù),如圖7所示。
圖7 起始站設(shè)備0033發(fā)送的消息數(shù)據(jù)
對應(yīng)MVB消息數(shù)據(jù)幀的格式,分析了圖7中消息數(shù)據(jù)內(nèi)容的含義,見表2。
表2 MVB消息數(shù)據(jù)幀的內(nèi)容
第2步,網(wǎng)關(guān)節(jié)點02對接收到的消息數(shù)據(jù)幀譯碼,得到目的節(jié)點是 04。網(wǎng)關(guān)產(chǎn)生一個尋址節(jié)點04的WTB幀,在幀的報頭中插入自己的節(jié)點地址02作為源地址,通過此網(wǎng)關(guān)設(shè)備的調(diào)試串口截獲關(guān)心的消息數(shù)據(jù),如圖8所示。
圖8 網(wǎng)關(guān)節(jié)點02發(fā)送的數(shù)據(jù)
對應(yīng)WTB消息數(shù)據(jù)幀的格式,分析了圖8中消息數(shù)據(jù)內(nèi)容的含義,見表3。
表3 WTB消息數(shù)據(jù)幀的內(nèi)容
第3步,網(wǎng)關(guān)節(jié)點04收到此WTB消息數(shù)據(jù)幀,得到目標(biāo)站是#022,從站索引表中查到目標(biāo)設(shè)備0077是掛在MVB2總線上的,網(wǎng)關(guān)04建立一個MVB幀,幀中將其設(shè)備地址0040作為源設(shè)備地址。通過此網(wǎng)關(guān)設(shè)備的調(diào)試串口截獲關(guān)心的消息數(shù)據(jù),如圖9所示。
圖9 網(wǎng)關(guān)節(jié)點04發(fā)送的消息數(shù)據(jù)
對應(yīng)MVB消息數(shù)據(jù)幀的格式,分析了圖9中數(shù)據(jù)內(nèi)容的含義,見表4。
表4 MVB2消息數(shù)據(jù)幀的內(nèi)容
第4步,目的設(shè)備0077收到消息數(shù)據(jù)幀,根據(jù)路由算法,通知傳送層處理。通過此目的設(shè)備的調(diào)試串口截獲關(guān)心的消息數(shù)據(jù),如圖10所示。
圖10 目的設(shè)備0077接收的消息數(shù)據(jù)
圖10中目的設(shè)備0077接收的消息數(shù)據(jù)內(nèi)容與圖9中網(wǎng)關(guān)節(jié)點04發(fā)送的消息數(shù)據(jù)內(nèi)容一致,則表明消息數(shù)據(jù)幀被成功傳送至目的設(shè)備0077。
設(shè)計的消息路由算法通過了試驗室的測試,驗證了該算法能夠依據(jù)所收到消息包的網(wǎng)絡(luò)地址將其傳送給目的設(shè)備,實現(xiàn)了TCN網(wǎng)關(guān)的消息路由功能,初步證明能夠?qū)崿F(xiàn)IEC 61375-1的消息通信協(xié)議。后期需要進(jìn)一步開展TCN網(wǎng)關(guān)的一致性測試和現(xiàn)場應(yīng)用測試工作。
[1] IEC61375-1,Electric Railway Equipment-Train Bus-Part l:Train Communication Network[S].
[2] 劉 軍,黃志武,劉群欣.基于Linux系統(tǒng)的MVB 3類設(shè)備研究[J].機(jī)車電傳動,2009,(6):10-12.
[3] 陳為雄,張 闖,黃根生.基于UML TCN網(wǎng)絡(luò)分析[J].鐵道機(jī)車車輛,2009,(3):15-18.
[4] 楊衛(wèi)峰,曾 嶸.DT ECS系統(tǒng)TCN協(xié)議的設(shè)計[J].機(jī)車電傳動,2009,(2):21-23.