《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > VxWorks下TRDP協(xié)議棧移植
VxWorks下TRDP協(xié)議棧移植
2018年電子技術(shù)應(yīng)用第10期
周浩尚1,2,高照玲3
1.中車大連電力牽引研發(fā)中心有限公司,遼寧 大連116052; 2.動車組和機車牽引與控制國家重點實驗室,遼寧 大連116052;3.大連東軟信息學(xué)院 電子工程系,遼寧 大連116023
摘要: 在VxWorks操作系統(tǒng)下對TRDP協(xié)議棧移植遇到的問題進行分析與解決,介紹了在TRDP(Train Real-time Data Protocol)應(yīng)用過程中遇到數(shù)據(jù)發(fā)送失敗時的應(yīng)對方法,最后指出了目前VxWorks 6.5版本FTP組件中普遍存在的后門問題。經(jīng)過兩年的驗證,超20萬公里運用考核,在機車車輛網(wǎng)絡(luò)控制系統(tǒng)中應(yīng)用該協(xié)議棧所遇到的問題及其解決方法,可以證明移植成功,方法可靠,值得推廣。
中圖分類號: TP393.1
文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.181196
中文引用格式: 周浩尚,高照玲. VxWorks下TRDP協(xié)議棧移植[J].電子技術(shù)應(yīng)用,2018,44(10):56-59.
英文引用格式: Zhou Haoshang,Gao Zhaoling. TRDP protocol stack transplantation on VxWorks[J]. Application of Electronic Technique,2018,44(10):56-59.
TRDP protocol stack transplantation on VxWorks
Zhou Haoshang1,2,Gao Zhaoling3
1.CRRC Dalian R&D CO.,LTD.,Dalian 116052,China; 2.State Key Laboratory for Traction and Control System of EMU and Locomotive,Dalian 116052,China; 3.Department of Electronic Engineering,Dalian Neusoft University of Information,Dalian 116023,China
Abstract: Firstly,in the VxWorks operating system, the problems encountered in the train real-time data protocol(TRDP) stack transplant are analyzed and solved, and the solutions to the failure of data transmission in the process of TRDP application are encountered. Finally, the common backdoor problem in the current VxWorks 6.5 version FTP component are pointed out. After two years' verification, and assessment of the application of over 200 thousand kilometers,the problems encountered in the application of the protocol stack in the locomotive and vehicle network control system and the solution in the application of the protocol stack in the locomotive and vehicle network control system can prove that the transplant successes, the method is reliable, and it is worth popularizing.
Key words : VxWorks 6.5;TRDP protocol stack;CCU

0 引言

    本文簡要介紹TRDP協(xié)議棧移植目標(biāo)系統(tǒng)及其所處位置、工作硬件環(huán)境,分析并解決移植之后遇到的問題,指出目前系統(tǒng)后門問題。

1 TRDP協(xié)議棧所在軟硬件環(huán)境

    VxWorks操作系統(tǒng)是美國風(fēng)河(Wind River)公司在1983年開發(fā)的一款強實時嵌入式操作系統(tǒng),因具有良好的可靠性、高性能的內(nèi)核、卓越的實時性以及友好的用戶開發(fā)環(huán)境等使其在嵌入式實時操作系統(tǒng)中獨領(lǐng)風(fēng)騷。目前VxWorks廣泛應(yīng)用于高精尖技術(shù)及對實時性要求極高的領(lǐng)域中。

    以太網(wǎng)技術(shù)已經(jīng)被廣泛應(yīng)用在列車通信網(wǎng)絡(luò)和車載終端設(shè)備,主要是滿足大數(shù)據(jù)量傳輸?shù)南到y(tǒng),如車載廣播系統(tǒng)、視頻系統(tǒng)、下載固件程序等,可以減少系統(tǒng)更新時間,提高工作效率。但由于以太網(wǎng)本身的鏈路層、協(xié)議棧的復(fù)雜性,其可靠性、網(wǎng)絡(luò)失效影響及Robust等都還在驗證中。國外一些大的軌道設(shè)備供貨商都已經(jīng)研制出了相關(guān)以太網(wǎng)產(chǎn)品,如龐巴迪研制的完全基于以太網(wǎng)控制的列車已經(jīng)交付到德國與荷蘭開始正式運行;EKE也已經(jīng)形成了基于EKE-Trainnet IP/Ethernet的完整解決方案;MOXA、UniControls等公司已經(jīng)研發(fā)出符合IEC新標(biāo)準(zhǔn)的ETBN交換機,正在進行調(diào)試及一致性測試;株洲機車研究所也已經(jīng)推出基于ECN與ETB的相關(guān)實驗室產(chǎn)品,2014年其新一代列車網(wǎng)絡(luò)控制系統(tǒng)(DTECS-2)產(chǎn)品代表中國在業(yè)界首次亮相,并成功通過國際專家組測試考核。

    國際標(biāo)準(zhǔn)化組織(IEC)推出了基于以太網(wǎng)的列車通信網(wǎng)絡(luò)標(biāo)準(zhǔn),包括列車骨干以太網(wǎng)(Ethernet Train Backbone,ETB,由IEC61375-2-5定義)和編組以太網(wǎng)(Ethernet Consist Network,ECN,由IEC61375-3-4定義)。ETB界定了不同列車編組之間的互連接和互操作規(guī)范,而ECN界定了在每個編組內(nèi)各個終端設(shè)備構(gòu)成的以太網(wǎng)的通信規(guī)范。在2015年7月出臺了機車車輛使用的工業(yè)以太網(wǎng)標(biāo)準(zhǔn)IEC61375-2-3,Edition1.0,其為ECN與ETB的4~7層都將使用專為鐵路用途開發(fā)的自主協(xié)議列車實時數(shù)據(jù)協(xié)議(Train Real-time Data Protocol,TRDP),并通過行業(yè)團體TCNOpen以開源的形式公開,可在對應(yīng)網(wǎng)站https://sourceforge.net/projects/tcnopen/下載其源碼,截止到目前,其最新版本為1717。

    TRDP協(xié)議棧在以太網(wǎng)中所處位置[1]如圖1所示。

qrs1-t1.gif

    TRDP協(xié)議棧在應(yīng)用系統(tǒng)中位置如圖2所示。

qrs1-t2.gif

    列車中央控制單元(Central Control Unit,CCU)是列車網(wǎng)絡(luò)控制系統(tǒng)的一個核心部件,負責(zé)整個車輛的網(wǎng)絡(luò)管理和車輛運行控制功能。其硬件部分采用低功耗嵌入式PC/104結(jié)構(gòu)的工業(yè)計算機104-1645CLDN-(24B)板卡,集成了AMD LX800CPU、256 MB DDR、一個PC/104擴展接口、一個10/100 Mb/s自適應(yīng)網(wǎng)口、一個IDE接口、兩個串口、USB2.0接口等[2]

    其軟件部分主要包括底層系統(tǒng)軟件和應(yīng)用層軟件,前者是后者的操作系統(tǒng)平臺,在本設(shè)計中采用基于x86硬件平臺VxWorks操作系統(tǒng),進行軟件IO映射管理、內(nèi)存管理、任務(wù)調(diào)度,通過運行相關(guān)任務(wù)的方式完成和上位機的通信、MVB數(shù)據(jù)的收發(fā)、PLC控制任務(wù)、在線監(jiān)視、運行數(shù)據(jù)記錄、故障記錄、列車級速度控制、牽引制動控制等。

    由于TRDP源代碼開發(fā)環(huán)境為Wind River Workbench 3.0,對應(yīng)VxWorks版本為6.6,代碼測試硬件為PPC603,因此,不只是開發(fā)環(huán)境版本高于項目所使用的開發(fā)環(huán)境,測試硬件架構(gòu)也不同,所以當(dāng)需要改變運行環(huán)境后就必須考慮TRDP協(xié)議棧移植及其帶來的新問題。

2 TRDP組播TTL問題

    把TRDP協(xié)議棧移植到VxWorks 6.5下,編譯無誤通過。下載到頭車CCU中運行,發(fā)現(xiàn)尾車CCU收不到對應(yīng)數(shù)據(jù)。經(jīng)研究代碼和反復(fù)測試及使用以太網(wǎng)工具Wireshark抓包分析發(fā)現(xiàn)組播數(shù)據(jù)報文中TTL(Time To Live)值為1,所以影響數(shù)據(jù)包通過ETBN(Ethernet Train Backbone Node)到尾車CCU中。

    選中setsockopt后按F1查看官方幫助文檔[3],其中關(guān)于TTL如圖3所示。

qrs1-t3.gif

    按照說明重新設(shè)置TTL=64:

qrs1-cx1.gif

    setsockopt返回錯誤代碼0x16,即非法參數(shù)。此時數(shù)據(jù)包雖然可以發(fā)出,但其TTL值仍為默認(rèn)值,即TTL=1,不符合期望以太網(wǎng)包跨2個以上交換機通信的要求。說明由于VxWorks內(nèi)核問題,設(shè)置TTL時不能安裝默認(rèn)設(shè)置方式進行設(shè)置。

    繼續(xù)測試發(fā)現(xiàn)setsockopt對單播設(shè)置時可以通過sizeof(int)傳入第4個參數(shù),而組播時只能用sizeof(char)或直接寫入1來傳入第4個參數(shù)。此時,抓包顯示TTL=64,為期望值,而setsockopt返回值亦正確。

    總之,當(dāng)需要跨多個交換機進行組播數(shù)據(jù),需要設(shè)置其TTL時,VxWorks 6.5系統(tǒng)底層函數(shù)實現(xiàn)有bug,和單播設(shè)置TTL時不一樣,值得開發(fā)者注意。

3 以太網(wǎng)組播數(shù)據(jù)停止發(fā)送問題

    為了保證系統(tǒng)長時間運行穩(wěn)定可靠,要其連續(xù)數(shù)百小時不間斷工作,從而滿足列車長遠距離運輸?shù)男枰?。但是在測試過程中出現(xiàn)了CCU運行一段時間(長短不固定)后以太網(wǎng)組播數(shù)據(jù)停止發(fā)送的問題,此時可正常接收數(shù)據(jù)。

    經(jīng)研究代碼和在代碼中增加調(diào)試輸出語句,發(fā)現(xiàn)TRDP協(xié)議棧在時間比較上采用宏定義方式,例如:

qrs1-cx2.gif

    該種方式運行的結(jié)果是某個時刻后比較結(jié)果與實際計算結(jié)果相反,導(dǎo)致發(fā)送條件不能滿足,而且比較失敗后會一直都保持這種錯誤的比較結(jié)果,即使被比較的參數(shù)已經(jīng)發(fā)生變化還是返回錯誤的比較結(jié)果,從而導(dǎo)致某時刻之后數(shù)據(jù)停止發(fā)送的問題。因此可以斷定該版本的VxWorks系統(tǒng)已經(jīng)將這個比較宏定義函數(shù)修改成錯誤的比較方式。

    注釋掉這些宏定義比較函數(shù),并新設(shè)計時間比較函數(shù):

    qrs1-cx3.gif

qrs1-cx4.gif

qrs1-cx5.gif

    在讀取本地時間時采取獲取系統(tǒng)啟動后tick個數(shù)來作為基準(zhǔn)并進行時間暫存,即:

    qrs1-cx6.gif

    即使出現(xiàn)當(dāng)前tick小于暫存tick時重置tick=0,從而可以保證在出問題時在兩個tick之后會自動恢復(fù),同時重新初始化TRDP協(xié)議棧。

    經(jīng)過修改并進行多臺設(shè)備長時間運行測試,該方式完全可以滿足實際系統(tǒng)需要。到目前為止,運行該系統(tǒng)的CCU設(shè)備裝車幾十臺(輛),沒有再發(fā)生一起不發(fā)送過程數(shù)據(jù)的問題。

4 FTP賬戶問題

    在交叉編譯環(huán)境下,設(shè)置目標(biāo)機為FTP服務(wù)器,使用電腦FTP工具登錄,并傳輸文件到目標(biāo)機進行軟件開發(fā)測試時會非常方便。VxWorks也提供該項功能,設(shè)置也比較簡單:在工程中雙擊Kernel Configuration即可打開組建配置界面,在Network Components--Network Applications--FTP Components中即可找到FTP組件,添加FTP Server后,對其進行相應(yīng)設(shè)置,保存重新編譯后即可使用了,見圖4。

qrs1-t4.gif

    若想限制FTP登錄人員,可以設(shè)置賬號密碼,設(shè)置方式為在Network Components下,Network Authentication Components組件下,IPCOM authentication configurations下有Auth configuration #1~#6,最多可以設(shè)置6個賬號密碼,見圖5。每當(dāng)需要登錄FTP時,可選擇任意一個賬號登錄。當(dāng)不設(shè)置任何賬號密碼時默認(rèn)為匿名登錄,只可查看及下載數(shù)據(jù),不可進行上傳、修改、刪除等操作。

qrs1-t5.gif

    但是在實際中,只要添加FTP組件后就會有一個管理員賬戶,其用戶名和密碼并不復(fù)雜,況且該賬號密碼并不會在組件配置界面顯示。只要知道目標(biāo)機IP(此并非難事),使用該賬號密碼均可通過FTP登錄目標(biāo)機,并可進行任何操作,危險系數(shù)較大。經(jīng)過多次測試,該賬號密碼廣泛存在于VxWorks 6.5版本中。

5 結(jié)論

    本文首先闡述了TRDP協(xié)議棧所處的軟硬件系統(tǒng)環(huán)境,解決了其從VxWorks高版本、Power PC平臺移植到VxWorks低版本、X86平臺下遇到的問題;其次針對以太網(wǎng)組播數(shù)據(jù)有時發(fā)送失敗原因進行了分析與解決;最后指出并測試出VxWorks 6.5系統(tǒng)下的FTP組件確實存在后門問題。該協(xié)議棧已經(jīng)在動力集中動車組中應(yīng)用,經(jīng)過歷時兩年的考驗,在北京東郊鐵科院環(huán)鐵試驗場的環(huán)線測試及重慶北-趕水東線路試驗,到蘭州局20萬公里運用考核,該方案穩(wěn)定可靠。以上均是基于作者在課題研究中遇到的問題并在解決問題后的經(jīng)驗總結(jié),并提供一些解決問題的思路,希望對讀者有所幫助。

參考文獻

[1] IEC61375-2-3 Electronic railway equipment-Train communication network(TCN)-Part 2-3:TCN communication profile(IEC 61375-2-3 Edition 1.0)[S].2015.

[2] 任寶兵.城軌車輛中央控制單元設(shè)計[D].大連:大連理工大學(xué),2014.

[3] VxWorks OS Libraries API Reference 5.5(Edition 2)[S].2003.



作者信息:

周浩尚1,2,高照玲3

(1.中車大連電力牽引研發(fā)中心有限公司,遼寧 大連116052;

2.動車組和機車牽引與控制國家重點實驗室,遼寧 大連116052;3.大連東軟信息學(xué)院 電子工程系,遼寧 大連116023)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。