趙世林
摘? ?要:文章較系統(tǒng)地介紹了機(jī)車信號(hào)主機(jī)記錄板應(yīng)用程序的開發(fā),主要內(nèi)容包括機(jī)車信號(hào)主機(jī)的功能概要、記錄板插件的軟件結(jié)構(gòu)和核心模塊以及Linux操作系統(tǒng)優(yōu)勢(shì)特點(diǎn),并對(duì)記錄板可擴(kuò)展的功能進(jìn)行了展望。
關(guān)鍵詞:JT-CR-2000;記錄板;Linux
1? ? JT-CR-2000型機(jī)車信號(hào)車載系統(tǒng)概述
機(jī)車信號(hào)是指在司機(jī)室內(nèi)指示列車前方運(yùn)行條件的信號(hào)。在地面信號(hào)機(jī)為主體信號(hào)的前提下,機(jī)車信號(hào)為輔助信號(hào),它能自動(dòng)地反映列車運(yùn)行前方地面信號(hào)機(jī)的顯示狀態(tài)和運(yùn)行條件,指示列車運(yùn)行,并與列車自動(dòng)停車裝置結(jié)合,確保列車的安全運(yùn)行。
JT-CR-2000型機(jī)車信號(hào)車載系統(tǒng)是山西潤(rùn)澤豐科技開發(fā)有限公司最新研制開發(fā)的新一代機(jī)車信號(hào)產(chǎn)品。該設(shè)備采用新工藝、新標(biāo)準(zhǔn)的一體化機(jī)箱設(shè)計(jì),技術(shù)指標(biāo)滿足原鐵道部《中華人民共和國(guó)鐵路行業(yè)標(biāo)準(zhǔn)TB/T3287-2013機(jī)車信號(hào)車載系統(tǒng)設(shè)備》要求。該系統(tǒng)通過了原鐵道部的技術(shù)審查并獲得了國(guó)家鐵路局運(yùn)輸安全設(shè)備生產(chǎn)的行政許可及中鐵檢驗(yàn)認(rèn)證中心的中國(guó)鐵道建筑總公司(China Railway Construction Corporation,CRCC)產(chǎn)品認(rèn)證證書。
JT-CR-2000型機(jī)車信號(hào)系統(tǒng)采用超大規(guī)模集成電路器件和數(shù)字信號(hào)處理技術(shù),利用先進(jìn)的頻譜分析技術(shù)和時(shí)域處理技術(shù),能夠適用的軌道電路制式:ZPW-2000系列(包括UM系列)、移頻(18信息、8信息、4信息)以及交流計(jì)數(shù)和微電子交流計(jì)數(shù)(25 Hz,50 Hz),并可以根據(jù)用戶需求適用其他軌道電路制式。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)上采用“(3取2)×2”的設(shè)計(jì)理念,信號(hào)的采集輸入采用了2×2雙路輸入信號(hào)安全組合連接法,大大提高了系統(tǒng)的安全性和可靠性。
2? ? 主機(jī)原理
JT-CR-2000型機(jī)車信號(hào)主機(jī)是通過安裝在機(jī)車第一輪對(duì)前面的接收線圈接收到軌面上表示機(jī)車前方運(yùn)行條件的信號(hào)信息,經(jīng)模數(shù)(Analog to Digital,A/D)轉(zhuǎn)換將接收到的模擬信號(hào)轉(zhuǎn)換成計(jì)算機(jī)可識(shí)別的“0”“1”數(shù)字信號(hào),數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)芯片通過一系列的軟件處理程序,將接收到的信號(hào)“翻譯”成點(diǎn)燈結(jié)果和超速防護(hù)信息,主機(jī)再將其輸出至機(jī)車信號(hào)機(jī)和列車運(yùn)行監(jiān)控裝置。不同點(diǎn)在于JT-CR-2000型機(jī)車信號(hào)主機(jī)由于要滿足更高的要求,要增加更多的安全和可靠性冗余措施,包括雙路接收線圈、多CPU和主機(jī)板、雙套熱備結(jié)構(gòu)、雙電源熱備結(jié)構(gòu)等,增加對(duì)機(jī)車信號(hào)運(yùn)行中有關(guān)動(dòng)態(tài)數(shù)據(jù)和信號(hào)波形的記錄。圖1給出了JT-CR-2000型機(jī)車信號(hào)主機(jī)結(jié)構(gòu)原理。
系統(tǒng)中設(shè)有A,B兩個(gè)主機(jī)板和一個(gè)記錄板,兩主機(jī)板完全相同,且都能夠采集兩路接收線圈信號(hào)進(jìn)行解碼。兩主機(jī)板同時(shí)工作,互為備份關(guān)系。板間采用RS-485和控制器局域網(wǎng)絡(luò)總線進(jìn)行通信,同時(shí),將解碼數(shù)據(jù)發(fā)送給記錄板記錄。兩主機(jī)板通過連接板進(jìn)行切換,工作板將結(jié)果送至信號(hào)機(jī)進(jìn)行顯示輸出。
記錄板接收并記錄當(dāng)前信號(hào)波形、解碼數(shù)據(jù)、TAX箱信息,同時(shí),還能通過通用分組無線服務(wù)(General Packet Radio Service,GPRS)無線網(wǎng)絡(luò)實(shí)時(shí)發(fā)送給地面。
3? ? 記錄板主要功能
(1)記錄板記錄數(shù)據(jù)由3部分組成:信號(hào)波形、解碼數(shù)據(jù)、TAX箱信息;數(shù)據(jù)存儲(chǔ)使用容量為8 GB的eMMC Flash芯片,數(shù)據(jù)可連續(xù)記錄200 h左右,波形可記錄72 h左右。
(2)記錄板采集當(dāng)前工作主機(jī)板使用接收線圈的信號(hào)波形,采樣頻率8 192 Hz,波形采樣精度為14位;具有“關(guān)鍵波形記錄”和“全程波形記錄”兩種方式。在“關(guān)鍵波形記錄”方式下,記錄關(guān)鍵處前后各6 s的波形數(shù)據(jù),可記錄最近250處的關(guān)鍵波形。
(3)記錄數(shù)據(jù)可使用通用U盤轉(zhuǎn)儲(chǔ),轉(zhuǎn)儲(chǔ)的數(shù)據(jù)由地面數(shù)據(jù)處理系統(tǒng)進(jìn)行顯示、分析和統(tǒng)計(jì)處理。
(4)記錄板具備工作溫度和電壓檢測(cè)記錄功能。
(5)記錄板具備故障記錄、報(bào)警和傳輸功能。
(6)記錄板具備GPRS信息傳輸功能的接口以及通過局部均值分解(Local Mean Decomposition,LMD)系統(tǒng)信息傳輸功能的接口。
3.1? 記錄板軟件架構(gòu)
圖2可以表示出每個(gè)模塊相互的聯(lián)系以及通信數(shù)據(jù)的流向,按照功能將記錄板軟件劃分為RS485總線程序、采樣程序、輸入/輸出(Input/Output,I/O)控制程序、串行口通信程序、實(shí)時(shí)時(shí)鐘程序、U盤讀寫程序。
STM32F407芯片采集線圈感應(yīng)信號(hào)和模擬量、開關(guān)量,接收RS485數(shù)據(jù),通過串行外設(shè)接口(Serial Peripheral Interface,SPI)總線發(fā)送感應(yīng)信號(hào)的波形數(shù)據(jù),通過通用異步收發(fā)傳輸器(Universal Asynchronous Receiver Transmitter,UART)發(fā)送模擬量和開關(guān)量、解碼板的485數(shù)據(jù)。Cortex-A8接收SPI總線數(shù)據(jù)和UART數(shù)據(jù),經(jīng)過數(shù)據(jù)處理和邏輯分析之后分別記錄成標(biāo)準(zhǔn)格式文件,插入U(xiǎn)盤后自動(dòng)執(zhí)行轉(zhuǎn)出操作。RS_422通信接口可以外接GPRS通信模塊,也可以外接Lais轉(zhuǎn)接盒,對(duì)外透?jìng)饔涗洶逵行?shù)據(jù)[1]。
3.2? 記錄板軟件關(guān)鍵技術(shù)實(shí)現(xiàn)
記錄板軟件主要由兩部分組成,一部分面向STM32F407芯片的嵌入式應(yīng)用,一部分是面向Cortex-A8芯片基于Linux操作系統(tǒng)的嵌入式應(yīng)用。
基于Linux系統(tǒng)開發(fā)應(yīng)用程序可以利用系統(tǒng)自帶應(yīng)用程序編程接口(Application Programming Interface,API)進(jìn)行編程,這種開發(fā)方式流程簡(jiǎn)單,代碼結(jié)構(gòu)清晰,可移植和繼承的特性明顯?;诓僮飨到y(tǒng)編制多線程的應(yīng)用程序可以把多任務(wù)的管理工作交于操作系統(tǒng)處理,充分發(fā)揮系統(tǒng)級(jí)時(shí)間片管理的優(yōu)勢(shì)。
Cortex-A8芯片上運(yùn)行的程序由多個(gè)進(jìn)程組成,分別為監(jiān)控程序、實(shí)時(shí)時(shí)鐘(Real-Time Clock,RTC)程序、記錄主程序、SPI程序,進(jìn)程間的通信選用共享內(nèi)存和消息隊(duì)列實(shí)現(xiàn)。監(jiān)控程序負(fù)責(zé)監(jiān)測(cè)其他進(jìn)程的運(yùn)行狀態(tài)和Flash的內(nèi)存空間,必要時(shí)重啟其他進(jìn)程;RTC程序上電后不會(huì)自動(dòng)運(yùn)行,其他進(jìn)程在需要取時(shí)間時(shí),會(huì)調(diào)用該程序,運(yùn)行一次后自動(dòng)銷毀進(jìn)程;SPI程序讀取和記錄串行口的波形數(shù)據(jù);記錄主程序負(fù)責(zé)執(zhí)行串口通信、數(shù)據(jù)記錄、U盤轉(zhuǎn)儲(chǔ)、網(wǎng)絡(luò)通信等主要功能[2]。
程序任務(wù)中有很多功能是需要等待的,如標(biāo)準(zhǔn)輸入輸出、I/O控制、U盤讀寫,如果選用多線程編程可以有效地分配計(jì)算資源,提高程序的運(yùn)行效率,所以記錄主程序和SPI程序都選用了多線程編程技術(shù)。
SPI總線波形接受程序的整套程序由3個(gè)線程組成:兩個(gè)SPI接收線程,一個(gè)記錄線程。依照系統(tǒng)需求,SPI總線每秒需要接收16 K的數(shù)據(jù),此種程序結(jié)構(gòu)可以并發(fā)SPI接收線程,提升程序的運(yùn)行速度,一定程度降低了CPU的負(fù)載。
程序中使用了信號(hào)量控制每個(gè)線程間的時(shí)序關(guān)系,rx_buf1_semr和rx_buf2_semr循環(huán)累加16次,完成16 K數(shù)據(jù)的接收,之后信號(hào)量semx原子加1,將波形數(shù)據(jù)寫入Flash中。
記錄板程序除了記錄每秒的感應(yīng)線圈的波形信息之外,還要有條件地記錄關(guān)鍵變燈處前后6 s共計(jì)12 s的波形信息,在記錄關(guān)鍵波形的1 s周期里,程序需要記錄208 K的波形信息。Cortex-A8芯片主頻600 M,如果要求在1 s的周期內(nèi)將208 K的波形信息寫入Flash中,CPU的任務(wù)負(fù)載會(huì)出現(xiàn)溢出,幾秒之內(nèi)便會(huì)出現(xiàn)系統(tǒng)異常。程序經(jīng)過優(yōu)化設(shè)計(jì),將208 K的波形數(shù)據(jù)分4個(gè)周期寫入Flash中,關(guān)鍵變燈的觸發(fā)周期至少6 s以上,避免出現(xiàn)數(shù)據(jù)堆疊進(jìn)而丟包的現(xiàn)象。
4? ? 結(jié)語
機(jī)車信號(hào)主機(jī)記錄板負(fù)責(zé)記錄機(jī)車信號(hào)系統(tǒng)正常運(yùn)行過程中全部相關(guān)數(shù)據(jù),并負(fù)責(zé)轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器,對(duì)于實(shí)時(shí)監(jiān)測(cè)機(jī)車信號(hào)系統(tǒng)的運(yùn)行狀態(tài),分析機(jī)車信號(hào)系統(tǒng)的運(yùn)行故障有很重要的參考意義。參考現(xiàn)有的功能和現(xiàn)場(chǎng)客戶的需求,未來考慮增加網(wǎng)絡(luò)通信功能傳輸記錄數(shù)據(jù),進(jìn)而減少上車讀取數(shù)據(jù)的次數(shù),同時(shí),考慮增加U盤更新程序的功能。
[參考文獻(xiàn)]
[1]佚名.數(shù)據(jù)手冊(cè):STM32F407 ARM Cortex-M4處理器[EB/OL].(2007-10-31)[2019-07-25].http://dl.21ic.com/download/ic-273116.html.
[2]喻金錢,喻斌.STM32F系列ARMCortex-M3核微控制器開發(fā)與應(yīng)用[M].北京:清華大學(xué)出版社,2011.