侯波 郭瑾玉 黃眾 覃事東



摘 要:本文介紹了Vxworks操作系統下的機車數據記錄儀程序設計過程,詳細論述主程序、功能模塊的實現方式。
關鍵詞:VxWorks;數據記錄儀;嵌入式系統
中圖分類號:TP393.1
Program design of locomotive data recorder
Hou Bo Guo Jinyu Huang Zhong Qin Shidong
CRRC Zhuzhou Locomotive CO.,LTD HunanZhuzhou 412000
Abstract:This article introduces the procedure design process of locomotive data recorder under Vxworks operating system.Discuss in detail the implementation of the main program and functional modules.
Key words:VxWorks;data recorder;embedded system
CLC number:TP393.1
機車車輛數據記錄儀是具有數據采集、傳輸和存儲功能的嵌入式設備。這里的采集是指從總線讀取數據,例如列車的速度、位置、方向等信息是由其他系統采集后放到了MVB總線。本文講的記錄儀還將文件遠程上傳到地面系統,可以在第一時間將數據發回地面。記錄儀的數據可通過地面軟件打開,然后顯示,可用于分析故障發生原因。
該系統的功能主要功能可以分為:(1)各系統的數據的采集;(2)根據數據記錄為文件;(3)壓縮文件;(4)上傳文件。
1 設備主要特點
(1)數據記錄儀采集了大量的數據,具有比較強的數據處理能力,足夠大的硬盤資源。
(2)為了保證通數據記錄儀的通用性和可拓展性,該設備具備用于擴展的存儲器、串行數據接口、以太網接口、MVB接口和無線傳輸接口。
(3)設備采用的Vxwokrs操作系統具有微內核、實時性好,運用廣泛的特點。
2 數據記錄儀的程序設計
數據記錄儀的程序開發一般有以下步驟:設計模塊功能,設計主線程,根據需求裁剪內核,編寫代碼。
數據記錄儀程序具體需要實現如下功能塊,每個功能應該盡量相互獨立,方便使用。
(1)配置文件讀取模塊:讀取系統參數、MVB端口配置、以太網網卡配置、以太網UDP、TCP端口配置、數據協議配置。
(2)MVB總線數據接收模塊:根據MVB接口程序,按MVB端口及周期將數據循環讀取到共享的內存中。
(3)以太網實時數據接收模塊:按以太網具體的協議,UDP、TCP或者其他上層協議如TRDP、HTTP等將數據讀取到內存;同時根據數據協議對數據進行處理。
(4)以太網文件數據接收模塊:將子系統文件存儲到文件夾準備壓縮和上傳,具體的接收方法和文件校驗方法根據協議進行。
(5)數據記錄模塊:將需要記錄的數據按協議和記錄方法記錄到文件,記錄到文件的方法和示波記錄儀記錄文件的方法是一致的。注意用信號量或者其他機制保證共享的數據內存不被同時讀寫,如果同時讀寫可能會導致記錄的數據錯誤。
(6)文件壓縮模塊:壓縮線程不斷地檢測壓縮目錄下有沒有文件,若有則按照zlib壓縮算法進行壓縮,并另存到指定的文件上傳目錄。
(7)數據上傳模塊:壓縮后的文件成功上傳到地面后,然后另存到最終的文件存儲目錄。
(8)磁盤管理模塊:采用單獨的磁盤管理線程,定時檢查磁盤空間,如果磁盤空間不足,刪掉最終存儲目錄中的歷史文件。
(9)地面數據解析工具:對數據按時間進行表格、圖形展示,可用來分析故障發生原因。
內核裁剪是對Vxworks內核進行功能配置、增加或者刪除。比如開啟DNS域名解析解析支持;開啟FTP及用戶名密碼支持;開啟ping和路由配置支持;開啟pthread庫支持;配置最大文件描述符個數等。
3 主線程實現
Vxworks內核程序不區分線程和進程。主線程負責開啟各個模塊的線程。根據線程需要劃分任務等級、存儲空間、甚至運行的CPU內核。具體步驟如下。讀配置文件和配置MVB網路、以太網網卡信息必須正常,否則會影響其他設備運行。主程序的實現如下圖。
4 接收數據模塊和記錄數據模塊的實現
這些模塊中,最重要的就是數據接收模塊和記錄模塊的實現。
接收程序的功能是通過總線完成實時數據接收,MVB和以太網的實時數據接收處理原理是類似的,下圖是數據接收和存儲流程。其中的數據接收循環過程采用Vxworks的timer定時函數循環,保證周期間隔。記錄函數簡單while循環,獲取信號量后記錄數據,不獲取則無法記錄,同時保證了共享內存Port結構體的數據是寫完以后再讀。程序過程如圖2。
5 測試與結果
設備將記錄的文件數據使用FTP斷點續傳方式發到地面。Vxworks的ftp函數不支持斷點續傳,需要編寫續傳函數,其原理是TCP應答和文件讀寫。續傳需要地面FTP服務器支持SIZE和APPE指令,分別用來獲取文件大小、續傳指定的文件。完成續傳函數,需要看FTP相關的資料。
地面軟件對數據解析如下圖3,經過長期運行檢驗,記錄儀的程序可穩定運行、工作正常。
參考文獻:
[1]李峰,朱濤,傅軍,徐茂俊.基于VxWorks的綜合導航系統數據記錄儀軟件設計[A].測控技術,2013(02).
[2]馬祥.基于以太網的船載通信航行數據記錄儀的數據優化[A].艦船科學技術,2019(08).
[3]陳蜀,李鶴鳴,余瑞鋒.船舶數據記錄儀的主程序設計[A].船海工程,2006(06).
[4]唐武兵,關永,吳立鋒,王國輝,李曉娟,潘巍.超級電容UPS智能監測系統設計與實現[A].計算機工程與設計,2015(12).
作者簡介:侯波(1988—),男,本科,工程師,主要研究方向:軟件測試;郭瑾玉(1986—),女,碩士,工程師,主要研究方向:機械設計;黃眾(1986—),男,碩士,工程師,主要研究方向:軟件測試;覃事東(1990—),男,碩士,工程師,主要研究方向:軟件測試。