邢培棟
(1.上海交通大學(xué)電子信息與電氣工程學(xué)院,上海 200030;2.北京經(jīng)緯恒潤(rùn)科技有限公司,上海 200235)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,半實(shí)物仿真作為一種簡(jiǎn)便而成熟的技術(shù)已經(jīng)被廣泛的應(yīng)用于航空、航天、航海、汽車電子等領(lǐng)域。在軌道交通領(lǐng)域,基于TCN標(biāo)準(zhǔn)的列車通信網(wǎng)絡(luò)技術(shù)已經(jīng)成為當(dāng)今軌道交通的發(fā)展方向。在實(shí)驗(yàn)條件下,如能組建列車網(wǎng)絡(luò)控制系統(tǒng)的仿真測(cè)試平臺(tái),并以此對(duì)列車運(yùn)行環(huán)境和狀態(tài)進(jìn)行模擬,則能直觀明了地得到仿真結(jié)果,在很大程度上減少科研經(jīng)費(fèi),縮短研制周期,同時(shí)也為提高系統(tǒng)可靠性和穩(wěn)定性提供了支持平臺(tái)[1-2]。
目前,市場(chǎng)上主流的仿真平臺(tái)都不支持列車通信網(wǎng)絡(luò)接口,鑒于此,基于HiGale仿真計(jì)算機(jī),成功的集成了符合TCN標(biāo)準(zhǔn)的多功能車輛總線(MVB)接口,并實(shí)現(xiàn)主設(shè)備、過程數(shù)據(jù)通信功能,使列控網(wǎng)絡(luò)控制系統(tǒng)的半實(shí)物仿真平臺(tái)的建設(shè)成為可能。
IEC61375-1標(biāo)準(zhǔn)是規(guī)定了TCN(Train Communication Network)列車通信網(wǎng)絡(luò)技術(shù)的國(guó)際標(biāo)準(zhǔn),我國(guó)鐵道部也將TCN納為我國(guó)鐵路行業(yè)軌道車輛網(wǎng)絡(luò)通信標(biāo)準(zhǔn)的一種類型,并且廣泛應(yīng)用于各種新型的機(jī)車、動(dòng)車、城市軌道車輛等車型中。
TCN標(biāo)準(zhǔn)定義了兩級(jí)總線:絞線式列車總線(WTB)和多功能車輛總線(MVB)。WTB總線能夠滿足列車車輛頻繁連掛和解連的需求;MVB總線用于構(gòu)建車輛級(jí)或編組級(jí)網(wǎng)絡(luò),連接車輛內(nèi)部各種設(shè)備。列車通信網(wǎng)絡(luò)采用主設(shè)備控制下的總線輪詢機(jī)制,根據(jù)不同需要,在鏈路層定義了過程數(shù)據(jù)、消息數(shù)據(jù)和監(jiān)視數(shù)據(jù)3種數(shù)據(jù)服務(wù)。其中如速度、牽引力等反映列車當(dāng)前狀態(tài)的為過程數(shù)據(jù),過程數(shù)據(jù)比較緊迫,需要周期性發(fā)送;消息數(shù)據(jù),如診斷信息,要求并不緊迫,不頻繁發(fā)送,按需發(fā)送;監(jiān)視數(shù)據(jù),用于網(wǎng)絡(luò)管理,可周期性發(fā)送或按需發(fā)送[3]。
HiGale系統(tǒng)是恒潤(rùn)科技有限公司自主研發(fā)的基于實(shí)時(shí)半實(shí)物仿真技術(shù)的控制系統(tǒng)開發(fā)及測(cè)試工作平臺(tái),由一系列軟件工具和硬件設(shè)備組成,其系統(tǒng)的體系結(jié)構(gòu)如圖1所示。
圖1 HiGale體系結(jié)構(gòu)
HiGale系統(tǒng)仿真模型的開發(fā)工具為MathWorks公司的 MATLAB/Simulink/Real-Time-Workshop等,可以實(shí)現(xiàn)從系統(tǒng)建模、分析、離線仿真直到實(shí)時(shí)仿真的全過程。模型實(shí)現(xiàn)并下載到實(shí)時(shí)硬件中以后,通過HiGale的實(shí)驗(yàn)工具軟件HiGaleView來對(duì)實(shí)驗(yàn)過程進(jìn)行綜合管理。
HiGale系統(tǒng)的硬件部分由一系列標(biāo)準(zhǔn)組件板構(gòu)成,其中至少配置一塊處理器板。所有的HiGale標(biāo)準(zhǔn)組件系統(tǒng)都是以X86處理器板卡為核心構(gòu)造的。處理器板通過高速32位總線(PXI總線)提供到I/O板的接口;通過主機(jī)以太網(wǎng)提供到主機(jī)的硬件接口[4]。
HiGale系統(tǒng)的開發(fā)一般包括以下幾個(gè)步驟:
(1)建立Simulink模型并離線仿真。
(2)加入HiGale I/O,將離線模型轉(zhuǎn)為實(shí)時(shí)模型。
(3)用RTW生成實(shí)時(shí)代碼并下載到實(shí)時(shí)硬件中。
(4)用HiGale試驗(yàn)工具進(jìn)行試驗(yàn)過程的交互操作[4]。
4.1.1 MVB 協(xié)議概述
MVB總線作為TCN協(xié)議推薦的車輛級(jí)總線,其網(wǎng)絡(luò)協(xié)議分層結(jié)構(gòu)的定義符合OSI模型,同時(shí)也針對(duì)具體情況對(duì)標(biāo)準(zhǔn)OSI七層結(jié)構(gòu)作出了一定程度的取舍及重新規(guī)劃。如圖2所示。
圖2 MVB的層次結(jié)構(gòu)
MVB協(xié)議定義了完整的物理層及數(shù)據(jù)鏈路層,上層協(xié)議在TCN標(biāo)準(zhǔn)中定義為實(shí)時(shí)協(xié)議RTP(Real Time Protocol)。
MVB物理層可采用沒有電氣隔離的電氣短距離介質(zhì)、有電氣隔離的電氣中距離介質(zhì)或者光纖介質(zhì)。采用的編碼形式為曼徹斯特編碼。在數(shù)據(jù)鏈路層,將基本發(fā)送周期劃分成周期相與偶發(fā)相,數(shù)據(jù)的發(fā)送在主節(jié)點(diǎn)的管理下進(jìn)行,且主節(jié)點(diǎn)的主權(quán)可以不斷轉(zhuǎn)移。數(shù)據(jù)的尋址方式采用源地址廣播以及點(diǎn)對(duì)點(diǎn)發(fā)送的形式。
RTP中定義的上層協(xié)議對(duì)于過程數(shù)據(jù)和消息數(shù)據(jù)分別作出了不同規(guī)定:對(duì)于過程數(shù)據(jù),RTP僅略去了中間層次,數(shù)據(jù)直接由鏈路層到達(dá)應(yīng)用層;對(duì)于消息數(shù)據(jù),RTP則詳細(xì)規(guī)定了OSI中從網(wǎng)絡(luò)層到應(yīng)用層的每一個(gè)層次。
由于MVB不同層次的應(yīng)用,按其功能完備及智能程度可以將MVB設(shè)備劃分成6類,協(xié)議中規(guī)定的0類~5類設(shè)備,功能及智能程度漸次提高。本文中采用的MVB通信卡可支持所有六類設(shè)備的功能,針對(duì)其總線管理開發(fā)了驅(qū)動(dòng)程序,并能實(shí)現(xiàn)過程數(shù)據(jù)通信過程的仿真功能[3]。
4.1.2 MVB 驅(qū)動(dòng)開發(fā)流程圖
(1)主設(shè)備驅(qū)動(dòng)程序開發(fā)
主設(shè)備驅(qū)動(dòng)開發(fā)流程圖如圖3所示,首先調(diào)用QNX關(guān)于PCI驅(qū)動(dòng)的系統(tǒng)接口函數(shù),完成硬件設(shè)備的探測(cè)、內(nèi)存分配、中斷掛載等功能;利用dpr寄存器在初始化時(shí)的特殊值,對(duì)MVBC的激活狀態(tài)進(jìn)行判斷;初始化板載內(nèi)存,經(jīng)數(shù)據(jù)存儲(chǔ)區(qū)域清零;對(duì)于主設(shè)備,設(shè)置一個(gè)基本周期的時(shí)間為1ms,使能定時(shí)器中斷,每1ms重新加載主幀數(shù)據(jù);初始化端口表,最多支持4096個(gè)端口,至此,該板卡的配置工作全部完成,接著為端口讀寫,實(shí)現(xiàn)數(shù)據(jù)通信。
(2)從設(shè)備驅(qū)動(dòng)開發(fā)
從設(shè)備的驅(qū)動(dòng)程序與主設(shè)備的驅(qū)動(dòng)程序大致相同,其主要區(qū)別在于不對(duì)主設(shè)備寄存器設(shè)置,同時(shí)因從設(shè)備在主設(shè)備控制下進(jìn)行響應(yīng),因此也不進(jìn)行使能定時(shí)器中斷及定時(shí)刷新主幀表的操作。
仿真機(jī)與MVB板卡通過IO接口函數(shù)進(jìn)行數(shù)據(jù)交換,本設(shè)計(jì)采用Matlab的工具S-函數(shù)進(jìn)行IO接口模塊的驅(qū)動(dòng)開發(fā)??梢陨擅嫦蛴布脚_(tái)的實(shí)時(shí)可執(zhí)行代碼的S函數(shù)有3種類型:非內(nèi)聯(lián)型S函數(shù),封裝S函數(shù)和全內(nèi)聯(lián)S函數(shù)。其中全內(nèi)聯(lián)S函數(shù)可直接調(diào)用TLC語言來實(shí)現(xiàn)IO接口程序,效率最高[5],因此本設(shè)計(jì)采用全內(nèi)聯(lián)的方式實(shí)現(xiàn) MVB接口模塊的驅(qū)動(dòng)。
仿真機(jī)與MVB板卡之間的接口函數(shù)包括三個(gè)部分:用于MVB板卡配置的Setup函數(shù),用于讀取MVB板卡端口數(shù)據(jù)的ReadPort函數(shù),用于對(duì)MVB板卡端口寫入數(shù)據(jù)的WritePort函數(shù),其建立的S函數(shù)模型如圖5所示。建立模型后,采用Matlab的RTW工具箱,根據(jù)硬件平臺(tái)需要,生成相應(yīng)的可執(zhí)行C代碼。
圖5 MVB驅(qū)動(dòng)函數(shù)開發(fā)
在模塊封裝過程中使用Matlab的GUI技術(shù),提供MVB的相關(guān)配置參數(shù)輸入的人機(jī)界面。根據(jù)MVB通信的特點(diǎn),提供了3個(gè)關(guān)于MVB的接口模塊,分別為配置模塊,讀端口模塊、寫端口模塊,如圖6所示。
其中配置模塊,實(shí)現(xiàn)硬件探測(cè)、內(nèi)存分配、初始化端口表,如果是主設(shè)備則實(shí)現(xiàn)定時(shí)器中斷、設(shè)置主幀表等功能;寫端口模塊,按照系統(tǒng)的步長(zhǎng)設(shè)置,定時(shí)的將一定字節(jié)的數(shù)據(jù)寫入到MVB板載內(nèi)存相應(yīng)的物理地址中去;讀端口模塊,按照設(shè)置的采樣步長(zhǎng),定時(shí)的將一定字節(jié)的數(shù)據(jù)從MVB板載內(nèi)存相應(yīng)的物理地址讀取出來。
圖6 MVB的接口模塊
通過以上開發(fā)建立了MVB網(wǎng)卡、HiGale平臺(tái)與Matlab/Simulink的連接,調(diào)用MVB接口模塊創(chuàng)建MVB網(wǎng)絡(luò)通信模型,通過RTW自動(dòng)代碼生成,將生成的可執(zhí)行文件下載到仿真計(jì)算機(jī)中運(yùn)行,來驗(yàn)證MVB驅(qū)動(dòng)接口模塊的邏輯正確性。利用試驗(yàn)管理軟件HiGaleView創(chuàng)建實(shí)驗(yàn)管理項(xiàng)目,通過在線調(diào)參功能,在線修改WritePort模塊輸入的數(shù)值,同時(shí)實(shí)時(shí)觀察 ReadPort模塊的輸出變化,結(jié)果表明,ReadPort的數(shù)值會(huì)隨WritePort的變化而變化,驗(yàn)證了其正確性。
通過以上開發(fā)建立了MVB網(wǎng)卡、HiGale平臺(tái)與Matlab/Simulink的連接,研發(fā)的成功為實(shí)現(xiàn)基于TCN標(biāo)準(zhǔn)的列車通信網(wǎng)絡(luò)應(yīng)用的測(cè)試與仿真提供了支持,具有很好的應(yīng)用價(jià)值和發(fā)展前景。
[1]李亮,陳寧寧.CBTC軟件仿真輔助開發(fā)系統(tǒng)的研究與實(shí)現(xiàn)[J].鐵道通信信號(hào),2010,46(增刊):50 -51.
[2]薛定宇,陳陽泉.基于Matlab/Simulink的系統(tǒng)仿真技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社,2002.
[3]International Electrotechnical Commission.IEC61375 -1,1999,Electric Railway Equipment - Train Bus Part-1:Train Communication Network[S].Geneva:IEC,1999.
[4]北京經(jīng)緯恒潤(rùn)科技有限公司.HiGale產(chǎn)品技術(shù)手冊(cè)[Z],2011.
[5]張大波,王建.MVB總線實(shí)時(shí)協(xié)議實(shí)現(xiàn)及其試驗(yàn)研究[J].機(jī)車電傳動(dòng),2005(2):33 -36.
[6]王子健,張軍,羅喜伶.面向VxWorks的半實(shí)物仿真平臺(tái)的研究和實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2007,33(14):257-259.