邢培棟
(1.上海交通大學電子信息與電氣工程學院,上海 200030;2.北京經緯恒潤科技有限公司,上海 200235)
隨著計算機技術的發展,半實物仿真作為一種簡便而成熟的技術已經被廣泛的應用于航空、航天、航海、汽車電子等領域。在軌道交通領域,基于TCN標準的列車通信網絡技術已經成為當今軌道交通的發展方向。在實驗條件下,如能組建列車網絡控制系統的仿真測試平臺,并以此對列車運行環境和狀態進行模擬,則能直觀明了地得到仿真結果,在很大程度上減少科研經費,縮短研制周期,同時也為提高系統可靠性和穩定性提供了支持平臺[1-2]。
目前,市場上主流的仿真平臺都不支持列車通信網絡接口,鑒于此,基于HiGale仿真計算機,成功的集成了符合TCN標準的多功能車輛總線(MVB)接口,并實現主設備、過程數據通信功能,使列控網絡控制系統的半實物仿真平臺的建設成為可能。
IEC61375-1標準是規定了TCN(Train Communication Network)列車通信網絡技術的國際標準,我國鐵道部也將TCN納為我國鐵路行業軌道車輛網絡通信標準的一種類型,并且廣泛應用于各種新型的機車、動車、城市軌道車輛等車型中。
TCN標準定義了兩級總線:絞線式列車總線(WTB)和多功能車輛總線(MVB)。WTB總線能夠滿足列車車輛頻繁連掛和解連的需求;MVB總線用于構建車輛級或編組級網絡,連接車輛內部各種設備。列車通信網絡采用主設備控制下的總線輪詢機制,根據不同需要,在鏈路層定義了過程數據、消息數據和監視數據3種數據服務。其中如速度、牽引力等反映列車當前狀態的為過程數據,過程數據比較緊迫,需要周期性發送;消息數據,如診斷信息,要求并不緊迫,不頻繁發送,按需發送;監視數據,用于網絡管理,可周期性發送或按需發送[3]。
HiGale系統是恒潤科技有限公司自主研發的基于實時半實物仿真技術的控制系統開發及測試工作平臺,由一系列軟件工具和硬件設備組成,其系統的體系結構如圖1所示。

圖1 HiGale體系結構
HiGale系統仿真模型的開發工具為MathWorks公司的 MATLAB/Simulink/Real-Time-Workshop等,可以實現從系統建模、分析、離線仿真直到實時仿真的全過程。模型實現并下載到實時硬件中以后,通過HiGale的實驗工具軟件HiGaleView來對實驗過程進行綜合管理。
HiGale系統的硬件部分由一系列標準組件板構成,其中至少配置一塊處理器板。所有的HiGale標準組件系統都是以X86處理器板卡為核心構造的。處理器板通過高速32位總線(PXI總線)提供到I/O板的接口;通過主機以太網提供到主機的硬件接口[4]。
HiGale系統的開發一般包括以下幾個步驟:
(1)建立Simulink模型并離線仿真。
(2)加入HiGale I/O,將離線模型轉為實時模型。
(3)用RTW生成實時代碼并下載到實時硬件中。
(4)用HiGale試驗工具進行試驗過程的交互操作[4]。
4.1.1 MVB 協議概述
MVB總線作為TCN協議推薦的車輛級總線,其網絡協議分層結構的定義符合OSI模型,同時也針對具體情況對標準OSI七層結構作出了一定程度的取舍及重新規劃。如圖2所示。

圖2 MVB的層次結構
MVB協議定義了完整的物理層及數據鏈路層,上層協議在TCN標準中定義為實時協議RTP(Real Time Protocol)。
MVB物理層可采用沒有電氣隔離的電氣短距離介質、有電氣隔離的電氣中距離介質或者光纖介質。采用的編碼形式為曼徹斯特編碼。在數據鏈路層,將基本發送周期劃分成周期相與偶發相,數據的發送在主節點的管理下進行,且主節點的主權可以不斷轉移。數據的尋址方式采用源地址廣播以及點對點發送的形式。
RTP中定義的上層協議對于過程數據和消息數據分別作出了不同規定:對于過程數據,RTP僅略去了中間層次,數據直接由鏈路層到達應用層;對于消息數據,RTP則詳細規定了OSI中從網絡層到應用層的每一個層次。
由于MVB不同層次的應用,按其功能完備及智能程度可以將MVB設備劃分成6類,協議中規定的0類~5類設備,功能及智能程度漸次提高。本文中采用的MVB通信卡可支持所有六類設備的功能,針對其總線管理開發了驅動程序,并能實現過程數據通信過程的仿真功能[3]。
4.1.2 MVB 驅動開發流程圖
(1)主設備驅動程序開發
主設備驅動開發流程圖如圖3所示,首先調用QNX關于PCI驅動的系統接口函數,完成硬件設備的探測、內存分配、中斷掛載等功能;利用dpr寄存器在初始化時的特殊值,對MVBC的激活狀態進行判斷;初始化板載內存,經數據存儲區域清零;對于主設備,設置一個基本周期的時間為1ms,使能定時器中斷,每1ms重新加載主幀數據;初始化端口表,最多支持4096個端口,至此,該板卡的配置工作全部完成,接著為端口讀寫,實現數據通信。


(2)從設備驅動開發
從設備的驅動程序與主設備的驅動程序大致相同,其主要區別在于不對主設備寄存器設置,同時因從設備在主設備控制下進行響應,因此也不進行使能定時器中斷及定時刷新主幀表的操作。
仿真機與MVB板卡通過IO接口函數進行數據交換,本設計采用Matlab的工具S-函數進行IO接口模塊的驅動開發。可以生成面向硬件平臺的實時可執行代碼的S函數有3種類型:非內聯型S函數,封裝S函數和全內聯S函數。其中全內聯S函數可直接調用TLC語言來實現IO接口程序,效率最高[5],因此本設計采用全內聯的方式實現 MVB接口模塊的驅動。
仿真機與MVB板卡之間的接口函數包括三個部分:用于MVB板卡配置的Setup函數,用于讀取MVB板卡端口數據的ReadPort函數,用于對MVB板卡端口寫入數據的WritePort函數,其建立的S函數模型如圖5所示。建立模型后,采用Matlab的RTW工具箱,根據硬件平臺需要,生成相應的可執行C代碼。

圖5 MVB驅動函數開發
在模塊封裝過程中使用Matlab的GUI技術,提供MVB的相關配置參數輸入的人機界面。根據MVB通信的特點,提供了3個關于MVB的接口模塊,分別為配置模塊,讀端口模塊、寫端口模塊,如圖6所示。
其中配置模塊,實現硬件探測、內存分配、初始化端口表,如果是主設備則實現定時器中斷、設置主幀表等功能;寫端口模塊,按照系統的步長設置,定時的將一定字節的數據寫入到MVB板載內存相應的物理地址中去;讀端口模塊,按照設置的采樣步長,定時的將一定字節的數據從MVB板載內存相應的物理地址讀取出來。

圖6 MVB的接口模塊
通過以上開發建立了MVB網卡、HiGale平臺與Matlab/Simulink的連接,調用MVB接口模塊創建MVB網絡通信模型,通過RTW自動代碼生成,將生成的可執行文件下載到仿真計算機中運行,來驗證MVB驅動接口模塊的邏輯正確性。利用試驗管理軟件HiGaleView創建實驗管理項目,通過在線調參功能,在線修改WritePort模塊輸入的數值,同時實時觀察 ReadPort模塊的輸出變化,結果表明,ReadPort的數值會隨WritePort的變化而變化,驗證了其正確性。
通過以上開發建立了MVB網卡、HiGale平臺與Matlab/Simulink的連接,研發的成功為實現基于TCN標準的列車通信網絡應用的測試與仿真提供了支持,具有很好的應用價值和發展前景。
[1]李亮,陳寧寧.CBTC軟件仿真輔助開發系統的研究與實現[J].鐵道通信信號,2010,46(增刊):50 -51.
[2]薛定宇,陳陽泉.基于Matlab/Simulink的系統仿真技術與應用[M].北京:清華大學出版社,2002.
[3]International Electrotechnical Commission.IEC61375 -1,1999,Electric Railway Equipment - Train Bus Part-1:Train Communication Network[S].Geneva:IEC,1999.
[4]北京經緯恒潤科技有限公司.HiGale產品技術手冊[Z],2011.
[5]張大波,王建.MVB總線實時協議實現及其試驗研究[J].機車電傳動,2005(2):33 -36.
[6]王子健,張軍,羅喜伶.面向VxWorks的半實物仿真平臺的研究和實現[J].計算機工程,2007,33(14):257-259.