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