孫二敬,張國振,張振興
(1.北京全路通信信號研究設計院集團有限公司,北京 100070;2.北京市高速鐵路運行控制系統工程技術研究中心,北京 100070)
列車控制通信網絡(TCN)規定列車通信網絡分為多功能車輛總線(MVB)和鉸鏈式列車總線(WTB)。MVB 是總線拓撲結構,專用于車輛內部車載設備間通信。由于具有實時傳輸的特點,可以滿足高速鐵路行業穩定性等方面的要求,MVB 在列控車載列車自動防護(ATP)系統設備間通信應用較為普遍,例如車載主機與應答器信息接收單元(BTM)之間、車載主機與人機界面單元(DMI)之間通過MVB 進行數據交互,車載設備通過 MVB采集列車的接口信息及發送列車接口命令等。
在列控車載設備ATP 開發及維護過程中,要在實驗室搭建MVB,需要總線控制器、網關、轉發器、連接器和端接器等一系列硬件支持,成本高,實施難度大,而在PC 機調試階段,從技術和成本上更是很難使用真實的MVB。
為解決此問題,本文設計了一種基于Socket通信的車載設備MVB 仿真方法。此方法使用以太網替代真實的MVB 通信,可以大大降低調試試驗階段試驗環境搭建難度和成本,提高試驗調試效率。
如圖 1 所示,MVB 數據傳輸具有固定的數據端口,車載設備間通過MVB 通信需要先將數據按照通信協議打包,根據端口號1 到n的地址將數據存入相應MVB 端口,其他設備根據需求可以隨時從相應端口讀取到最新數據,實現數據的傳輸與周期性刷新。

圖1 MVB數據傳輸過程Fig.1 Process of MVB data transmission
Socket 數據傳輸過程如圖 2 所示。從圖2 中可以看出,Socket 是通過“打開—讀/寫—關閉”的模式,實現點對點的通信。Socket 傳輸數據為字節級,傳輸數據長度可自定義,這為仿真MVB 通信傳輸數據兼容MVB 數據提供了可行性。

圖2 Socket數據傳輸過程Fig.2 Process of Socket data transmission
但是與MVB 不同的是,MVB 進行數據傳輸時,發送數據的總線設備以一定時間間隔輸出數據,刷新端口。此數據可以在端口保持,直到該MVB數據端口被刷新,新的數據替代舊數據。當其他總線設備需要此數據時,讀取相應端口,即可得到最新的端口數據。而Socket 傳輸數據為一次性讀取,數據無法在端口保持,讀取方通過Socket 端口讀取一次數據后,無法通過以太網接口函數再次讀取該數據。為了在以太網通信環境下模擬設備應用軟件的MVB 交互式數據傳輸,在設備應用軟件底層增加一層虛擬MVB 軟件,可實現設備應用軟件MVB 相關接口函數的仿真,如圖3 所示。

圖3 虛擬MVB軟件示意Fig.3 Diagram of virtual MVB software
MVB 仿真系統數據交互傳輸過程如圖4 所示。

圖4 MVB仿真數據交互示意Fig.4 Diagram of interaction between MVB simulation data
1)設備A/B(軟件程序)調用MVB 相關接口函數以一定時間間隔xms 寫端口,該端口為虛擬MVB 軟件中的虛擬端口。
2)每隔yms,設備A/B 虛擬MVB 軟件將所有虛擬端口的數據按照一定協議格式組成Socket數據包,經以太網發送至設備B/A。
3)設備B/A 虛擬MVB 軟件通過監聽Socket端口,讀取步驟2)中發送的以太網數據,按照一定協議格式拆分Socket 數據包,分別存入MVB 虛擬端口。
4)設備B/A(軟件程序)調用MVB 相關接口函數以一定時間間隔yms 讀端口,該端口為虛擬MVB 軟件中的虛擬端口。
為保證數據傳輸的完整性和實時性,y應小于或等于x。
虛擬MVB 軟件架構及數據流程如圖 5 所示,虛擬MVB 軟件主要由以下模塊組成。

圖5 虛擬MVB 軟件架構及數據流程Fig.5 Virtual MVB software architecture and data process
1)數據發送管理模塊:此模塊采用虛擬端口模擬MVB 端口接收MVB 數據,主要實現設備A 或設備B 多個MVB 端口的寫入數據功能,并將數據進行緩存,根據任務調度,組織發送端口數據。
2)數據組包模塊:此模塊將數據發送管理模塊中組織發送的多個端口數據組成Socket 數據包,Socket 數據包組成如圖 6 所示。

圖6 Socket數據包Fig.6 Socket data packet
數據組包模塊將多個需同步傳輸的MVB 數據及端口號信息,組合為一個Socket 數據包,并在Socket 數據包包頭中寫入MVB 數據標識,發送到以太網,保證在數據傳遞過程中可以根據端口號實時更新數據。
3)數據傳輸模塊:此模塊將數據組包模塊組成的數據包通過Socket 通信發送到設備B 或設備A。
MVB 采用物理存儲,定期刷新數據方式,保證設備接收到最新數據;在模擬MVB 傳輸過程中,Socket 數據包存儲于固定內存空間, Socket 數據傳輸時間應小于或等于MVB 相關接口函數寫端口時間,保證最新數據實時傳輸,不丟數據和數據不被修改。
4)數據解包模塊:設備B 或設備A 接收到以太網的Socket 數據包,通過MVB 數據標識識別為MVB 信息包,按照規定的協議,解析為不同MVB端口的數據,分別存入相應虛擬MVB 端口數據緩存,供外部軟件以讀取MVB 端口的方式讀取。
5)數據讀取管理模塊:周期讀取虛擬MVB 端口緩存,實現設備B 或設備A 的MVB 端口讀取數據功能。
本文的設計方法以車載設備通信環境模擬為主,基于以太網Socket 通信模擬MVB 進行數據傳輸與更新,在MVB 硬件條件不足時,可滿足設備軟件程序的調試要求,并保證數據傳輸的完整性和實時性,大大提高開發和調試效率,減少開發調試環境搭建成本。