基于嵌入式Linux的機車故障診斷系統(tǒng)研究設(shè)計
1 系統(tǒng)的組成和結(jié)構(gòu)
該面向鐵路的手持式智能化故障診斷儀,是一套基于電池供電的智能化儀器。測試系統(tǒng)主要由測試頭、主測試設(shè)備和遠程監(jiān)控站3級測試層組成。前端測試頭主要由AVR采集MCU、傳感器和智能RF芯片構(gòu)成;下位機是基于ATmega128單片機的數(shù)據(jù)采集系統(tǒng),承擔(dān)多路現(xiàn)場快變及緩變信號的采集,主要完成任務(wù)采集、接收來自主采集設(shè)備的指令并執(zhí)行主設(shè)備的任務(wù)調(diào)度。主測試設(shè)備主要由內(nèi)嵌Linux操作系統(tǒng)的ARM9處理器、智能RF芯片、網(wǎng)絡(luò)和串行通信接口、存儲設(shè)備和顯示設(shè)備構(gòu)成。主測試設(shè)備主要完成各無線采集點的任務(wù)分配、數(shù)據(jù)收集分析,可同時監(jiān)測和管理若干個連接的無線網(wǎng)絡(luò)范圍內(nèi)的傳感器測試頭,并可通過無線數(shù)據(jù)傳輸模塊或通過Internet傳向遠程監(jiān)控站并接受遠程控制站的任務(wù)調(diào)度。
遠程監(jiān)控站主要由服務(wù)器、監(jiān)測數(shù)據(jù)庫和外圍設(shè)備構(gòu)成,分為數(shù)據(jù)采集(上位機)和數(shù)據(jù)處理(下位機)兩大部分,承擔(dān)實時數(shù)據(jù)的處理,也可以通過USB口或者以太網(wǎng)下載到PC上,進行進一步深入的故障趨勢分析。本系統(tǒng)對整個現(xiàn)場監(jiān)測的任務(wù)進行合理地分解:將模擬信號的采集、A/D轉(zhuǎn)換以及簡單的數(shù)據(jù)處理部分放在下位機實現(xiàn),以控制系統(tǒng)的硬件規(guī)模及耗電量。將數(shù)據(jù)的進一步處理、實現(xiàn)現(xiàn)場實時分析的構(gòu)件、歷史數(shù)據(jù)重現(xiàn)及精簡的專家系統(tǒng)放在上位機上實現(xiàn),本文主要介紹無線數(shù)據(jù)傳輸?shù)难芯吭O(shè)計。系統(tǒng)框架如圖1所示。
2 硬件系統(tǒng)設(shè)計
2.1 智能nRF905無線收發(fā)芯片
增加安全可靠、穩(wěn)定的無線模塊功能,是傳統(tǒng)PDA設(shè)備的技術(shù)趨勢。該設(shè)備采用Nordic公司的單片無線收發(fā)芯片nRF905。該芯片工作在433/869/915 MHz的ISM頻段,由1個完全集成的頻率調(diào)制器,1個帶解調(diào)器的接收器、1個功率放大器、1個晶體振蕩器和1個調(diào)節(jié)器組成,可以很容易地通過SPI接口進行編程配置。電流消耗很低,可以很容易地進入Powerdown模式實現(xiàn)節(jié)電。nRF905采用VLSI ShockBurst技術(shù),使得nRF905能夠提供高速的數(shù)據(jù)傳輸,將與RF協(xié)議有關(guān)的高速信號處理放到芯片內(nèi)部。在ShockBurst TX模式中,nRF905自動產(chǎn)生前導(dǎo)碼和CRC校驗碼,數(shù)據(jù)準備就緒DR信號通知主控制其數(shù)據(jù)傳輸已經(jīng)完成。該芯片可與測試設(shè)備ARM和AVR的MCU通過簡單的串行接口連接,使用方便。
2.2 ARM處理器模塊
構(gòu)建可移植嵌入式Linux的ARM9系統(tǒng),嵌入式Linux是目前廣泛應(yīng)用的一種嵌入式操作系統(tǒng),ARM處理器模塊由Flash、SDRAM和S3C2410共同構(gòu)建。本系統(tǒng)選用Samsung公司的K9F1208U0A構(gòu)建8位Flash存儲器系統(tǒng)。
K9F1208U0A單片容量為64 MB:選用2片單片容量為32 MB、數(shù)據(jù)寬度為16位的HY57V561620CT并聯(lián)構(gòu)建32位SDRAM存儲器系統(tǒng),共64 MB的SDRAM空間可以滿足嵌入式操作系統(tǒng)和各種復(fù)雜算法的運行要求。ARM處理器對各模塊的控制則通過底層驅(qū)動控制協(xié)處理器產(chǎn)生各種控制信號實現(xiàn)。
2.3 傳感器模塊
傳感器模塊可以根據(jù)所需采集的數(shù)據(jù)來選擇。本系統(tǒng)是在CAN總線有線數(shù)據(jù)傳輸?shù)幕A(chǔ)上開發(fā)的,CAN總線通信電路由微處理器S3C2410、控制器MCP2515、驅(qū)動器TJA1050、光耦6N137和電源隔離模塊組成,CAN通信主要用于機車惡劣環(huán)境下的數(shù)據(jù)采集。該系統(tǒng)的無線傳輸功能主要運用于火車機車車體振動測量,也可運用于機車的運行監(jiān)測。所以采用3個使用ADXL105高精度單軸加速度傳感器芯片制作的加速度測量模塊。測量模塊分別安置于車體底部的垂直方向和水平方向,用于測量車體在X、Y、Z方向上的加速度。測量數(shù)據(jù)以差分信號的形式輸入到精密放大器中,經(jīng)比較放大后直接送到A/D模塊中。
2.4 外部通信模塊
設(shè)備外部通信模塊由2部分組成:485通信模塊和CDMA模塊。485通信接口采用MAX1490芯片。這是一款完全隔離的485數(shù)據(jù)接口芯片,單工工作方式,傳輸波特率最大可達2.5 Mb/s。其輸出引腳直接與ARM處理器的串口2(UART2)相連,ARM處理器通過串口2讀取時間和坐標等相關(guān)數(shù)據(jù)的廣播信息,串口0(UART0)與AnyData DTGS800 CDMA模塊相連,監(jiān)測數(shù)據(jù)經(jīng)預(yù)處理后通過CDMA模塊發(fā)送到地面服務(wù)器。
2.5 系統(tǒng)關(guān)鍵硬件接口設(shè)計
系統(tǒng)硬件主要接口包括AVR與nRF905的接口、AVR與ARM9的接口以及ARM9的外圍接口等。本文主要介紹AVR與nRF905和ARM9的接口。AVR MCU通過nRF905接口收發(fā)數(shù)據(jù),然后將收到的數(shù)據(jù)寫入雙口RAM等待讀取數(shù)據(jù),另外ARM9將要發(fā)送的數(shù)據(jù)寫入雙口RAM后給AVR MCU發(fā)送中斷信號,AVR MCU再從雙口RAM中讀取數(shù)據(jù),根據(jù)指令將其發(fā)送至相應(yīng)的采樣傳感器測試頭。但由于ARM與AVR之間的通信速率不匹配,2個CPU的數(shù)據(jù)交換通過一片雙口RAM完成。因此應(yīng)用了異步高速雙口RAM IDT7130,很好地解決了異步串口通信的瓶頸問題,雙口RAM對于存儲區(qū)的分配,分成命令區(qū)、狀態(tài)區(qū)、接收數(shù)據(jù)區(qū)、發(fā)送數(shù)據(jù)區(qū)和中斷區(qū)5大區(qū)。接收數(shù)據(jù)區(qū)和發(fā)送數(shù)據(jù)區(qū)的細分,可以根據(jù)串口數(shù)量、報文長度的實際需要進行再分配,主CPU和從CPU的握手協(xié)議可以通過命令區(qū)和狀態(tài)區(qū)的設(shè)計來完成。主要接口如圖2所示。[!--empirenews.page--]
3 軟件系統(tǒng)設(shè)計
3.1 軟件系統(tǒng)設(shè)計
系統(tǒng)以主測試設(shè)備為核心,采集、收集多個測試傳感器采集的信息,并將測試數(shù)據(jù)收集保存,可以通過網(wǎng)絡(luò)實時地傳遞到系統(tǒng)的監(jiān)測中心進行分析和處理。本設(shè)計采用的Linux內(nèi)核是在ARM-Linux的基礎(chǔ)上,編寫了OLED顯示模塊、USB設(shè)備的設(shè)備驅(qū)動程序。軟件設(shè)計主要包括ARM-Linux在微處理器S3C2410上的移植,相關(guān)驅(qū)動程序設(shè)計、系統(tǒng)任務(wù)級設(shè)計等。開發(fā)系統(tǒng)采用PC工作站和主測試設(shè)備的嵌入式主板構(gòu)成的交叉編譯環(huán)境,本系統(tǒng)使用Linux2.6的內(nèi)核,內(nèi)核的編譯通過Makefile文件的指示進行,通過修改Makefile來組織內(nèi)核各模塊,并記錄模塊間的相互聯(lián)系和依賴關(guān)系,修改config、setup等相關(guān)配置文件完成內(nèi)核的編譯,生成zlmage、vmLinux、System.map、config等文件。雙口通信的程序如圖3所示。
3.2 網(wǎng)絡(luò)通信程序設(shè)計
嵌入式無線局域網(wǎng)設(shè)備可以用于有線網(wǎng)絡(luò)無法延伸或難以安裝、又可靈活移動和臨時性使用等要求的場合。在本系統(tǒng)中主要采用Linux下的Socket通信方式,使用TCP/IP網(wǎng)絡(luò)協(xié)議棧,采用面向有連接Stream套接字。
主測試設(shè)備運行過程中,接收來自網(wǎng)絡(luò)的遠程指令,并且為了方便遠程測量和控制,每個主測試設(shè)備被分配固定的IP地址和端口,遠程測試站可進行有選擇性的查詢式測量,每個主測試設(shè)備在通信開始前使用socket( )建立一個通信端點,再使用bind( )函數(shù)把一個地址綁定到這個端點上,然后使用listen( )函數(shù)偵聽是否有來自遠程的連接請求,如果有,則使用accept( )處理,并按照指令執(zhí)行測量任務(wù)或傳送測量數(shù)據(jù)。如圖4所示。
雖然現(xiàn)場顯示和無線傳輸2種方式已經(jīng)提供了大量的數(shù)據(jù)和信息。但是都受到了地域和空間的限制。因此,為了滿足相對惡劣的地理環(huán)境和移動設(shè)備的采集需求,系統(tǒng)后期可通過加入GSM短消息傳送數(shù)據(jù)的無線方式。GSM網(wǎng)絡(luò)經(jīng)過多年的發(fā)展完善,現(xiàn)在已經(jīng)非常成熟,盲區(qū)少、信號穩(wěn)定、自動漫游,并且通信距離不受周圍環(huán)境影響。
本文的創(chuàng)新點在于開發(fā)了一種基于嵌入式系統(tǒng)的機車狀態(tài)實時檢測系統(tǒng),該系統(tǒng)實現(xiàn)了機車上信號量的采集和信號的存儲、大容量的數(shù)據(jù)存儲、穩(wěn)定可靠的CAN總線通訊和遠程無線通信,各個模塊在Linux實時操作系統(tǒng)的調(diào)度下協(xié)調(diào)工作,車載顯示和語音報警效果良好,并能夠在機車出現(xiàn)故障時提醒司機故障出現(xiàn)的位置和解決故障的方法。該系統(tǒng)通過在嵌入式Linux環(huán)境下的網(wǎng)絡(luò)通信測試實驗,證實具有較好的響應(yīng)能力和數(shù)據(jù)吞吐能力,本系統(tǒng)設(shè)計在非接觸式測量領(lǐng)域有一定的應(yīng)用價值和指導(dǎo)意義,經(jīng)在機車檢測方面的多次聯(lián)機調(diào)試,系統(tǒng)工作穩(wěn)定、可靠,在工業(yè)控制領(lǐng)域具有廣泛的應(yīng)用前景。