ARM具備體積小、接口豐富、高度集成性和擴(kuò)展性強(qiáng)等優(yōu)點(diǎn),加之隨著Linux在服務(wù)器領(lǐng)域和桌面系統(tǒng)獲得的成功,Linux 以其良好的移植性能、優(yōu)秀的網(wǎng)絡(luò)功能、對(duì)各種文件系統(tǒng)完備的支持、具有軟件代碼小、高度自動(dòng)化、響應(yīng)速度快、特別適合于要求實(shí)時(shí)和多任務(wù)的體系等特點(diǎn) [1]在嵌入式系統(tǒng)中獲得了越來(lái)越廣泛的應(yīng)用。這使得基于ARM的嵌入式監(jiān)測(cè)系統(tǒng)具有成本低、功耗低、實(shí)時(shí)性能好及智能程度高等優(yōu)點(diǎn),在工業(yè)監(jiān)測(cè)與控制領(lǐng)域具有較為廣闊的應(yīng)用前景[2]。本文設(shè)計(jì)了基于ARM的嵌入式監(jiān)測(cè)系統(tǒng)。 1 系統(tǒng)總體設(shè)計(jì) 一個(gè)嵌入式監(jiān)測(cè)系統(tǒng),其基本目的控制硬件設(shè)備采集信號(hào),并對(duì)信號(hào)進(jìn)行一定的分析,其過(guò)程是獲取設(shè)備的運(yùn)行狀態(tài)的模擬量信號(hào),并且能夠?qū)⑦@些模擬量轉(zhuǎn)化為數(shù)字量輸出。在此基礎(chǔ)上,設(shè)計(jì)了基于 ARM嵌入式監(jiān)測(cè)系統(tǒng)。ARM微處理器的上選擇基于ARM920T內(nèi)核的S3C2410A芯片。 圖1系統(tǒng)結(jié)構(gòu)框圖 整個(gè)系統(tǒng)監(jiān)測(cè)方案如圖1所示,整個(gè)采集過(guò)程是由ARM微處理器控制的,ARM監(jiān)測(cè)系統(tǒng)主要由以下三部分組成: (1)信號(hào)采集:傳感器采集反映設(shè)備運(yùn)行狀態(tài)的現(xiàn)場(chǎng)信號(hào)。被采集的模擬信號(hào)通過(guò)傳感器拾取,再經(jīng)過(guò)濾波、放大信號(hào)調(diào)理,然后模擬信號(hào)則經(jīng)過(guò)A/D(模/數(shù))轉(zhuǎn)換器轉(zhuǎn)換成計(jì)算機(jī)可識(shí)別數(shù)字量,通過(guò)ARM微處理器控制放大器的增益和濾波器的截止頻率。 (2)人機(jī)界面:采用圖形界面控制數(shù)據(jù)采集,并在界面上進(jìn)行數(shù)據(jù)分析,將數(shù)據(jù)處理結(jié)果在顯示屏上以良好直觀的界面動(dòng)態(tài)顯示,便于現(xiàn)場(chǎng)工作人員判斷故障。 (3)數(shù)據(jù)傳輸:數(shù)據(jù)傳輸是將數(shù)據(jù)上傳至上位機(jī)(計(jì)算機(jī)),以進(jìn)行進(jìn)一步的分析處理。 2 系統(tǒng)硬件結(jié)構(gòu) 振動(dòng)傳感器傳來(lái)的振動(dòng)信號(hào)在進(jìn)入后端處理系統(tǒng)之前也需要對(duì)信號(hào)進(jìn)行一定的調(diào)理,以滿足后端信號(hào)處理的要求,為了簡(jiǎn)化設(shè)計(jì),節(jié)省設(shè)計(jì)時(shí)間,信號(hào)的前端信號(hào)調(diào)理模塊使用設(shè)計(jì)好的模塊,包括恒流源、傳感檢測(cè)、信號(hào)放大、低通濾波,程控放大器放大倍數(shù)的設(shè)定通過(guò)S3C2410A設(shè)定。圖2顯示了系統(tǒng)硬件框圖。 圖2 系統(tǒng)硬件框圖 2.1程控抗混疊低通濾波器設(shè)計(jì) 傳感器采集的的模擬信號(hào)中往往混有一些其它信號(hào)如噪聲信號(hào),因此在A/D轉(zhuǎn)換之前對(duì)信號(hào)進(jìn)行濾波是很有必要的,同時(shí)選擇合適的濾波器還可以起到抗混疊的功能。本系統(tǒng)設(shè)計(jì)采用MAX263低通濾波器,MAX263是有源開(kāi)關(guān)電容濾波器,其中心頻率,Q值和工作模式可通過(guò)引腳編程設(shè)置,其硬件連接電路如圖3. 圖3 低通濾波電路 選擇濾波器工作模式1,將M0,M1設(shè)置低電平,Q值設(shè)置為1,查表得NQ=64,則Q6~Q0引腳值為100000。MAX263的引腳與 S3C2410芯片直接相連以實(shí)現(xiàn)程控濾波器,F(xiàn)0~F4分別連接GPB5~GPB9。在ARM上即可控制對(duì)應(yīng)引腳實(shí)現(xiàn)對(duì)MAX263截止頻率的設(shè)定。 2.2 A/D轉(zhuǎn)換電路 A/D轉(zhuǎn)換器作用是把一個(gè)模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。風(fēng)電機(jī)組的狀態(tài)信號(hào)是一個(gè)連續(xù)的值。利用傳感器可以檢測(cè)到一個(gè)連續(xù)的電壓值,但在ARM和計(jì)算機(jī)上不能夠直接處理模擬信號(hào)數(shù)據(jù)。A/D轉(zhuǎn)換器就是把傳感器檢測(cè)到的電壓模擬信號(hào)轉(zhuǎn)換為系統(tǒng)可識(shí)別的數(shù)字信號(hào)的器件。根據(jù)系統(tǒng)的條件及精度的要求下,采用12位的 A/D轉(zhuǎn)換器已經(jīng)能夠滿足本系統(tǒng)的要求。在經(jīng)過(guò)A/D的轉(zhuǎn)換后。就把連續(xù)的模擬信號(hào)轉(zhuǎn)變成了不連續(xù)的離散的數(shù)值,以便于數(shù)據(jù)分析。A/D轉(zhuǎn)換芯片采用TI 公司的TLC2543。TLC2543是12位開(kāi)關(guān)電容逐次逼近模數(shù)轉(zhuǎn)換器,其電路連接如圖4。 圖4 TLC2543與S3C2410的連接圖 數(shù)據(jù)采集時(shí),首先向AD轉(zhuǎn)換器發(fā)送要采集的通道號(hào),AD轉(zhuǎn)換器讀取對(duì)應(yīng)通道的數(shù)據(jù),并將數(shù)據(jù)傳遞給S3C2410A,實(shí)現(xiàn)數(shù)據(jù)的采集,其流程如圖5。 圖5 A/D采集流程圖 嵌入式監(jiān)測(cè)系統(tǒng)的ARM端應(yīng)用程序軟件的核心是人機(jī)交互用戶圖形界面,它是用戶和系統(tǒng)交互的窗口。 本文將 Qt/Embedded應(yīng)用于以ARM+Linux為平臺(tái)的嵌入式監(jiān)測(cè)系統(tǒng)人機(jī)界面的開(kāi)發(fā)。構(gòu)建Qt /Embedded交叉編譯環(huán)境需要構(gòu)建3個(gè)QT開(kāi)發(fā)環(huán)境[3]。其中一個(gè)QT/X11是環(huán)境;一個(gè)是QT/Embedded(x86)環(huán)境;最后一個(gè)才是QT/Embedded(ARM)交叉編譯環(huán)境,在QT/Embedded(x86)環(huán)境下調(diào)試通過(guò)的程序需要在此環(huán)境下重新編譯后才能移植到目標(biāo)機(jī)上運(yùn)行。 QtDesigner是Qt/Embedded下的集成開(kāi)發(fā)工具,它支持信號(hào)和槽機(jī)制,使部件間能夠進(jìn)行有效的通信,省略了許多重復(fù)性的工作,可以大大縮減程序的開(kāi)發(fā)周期[4]。在命令行下,根據(jù)設(shè)計(jì)器保存的界面文件(.ui文件)使用uic命令生成.h頭文件和.cpp源文件。 uic -o mainfile.h mainfile.ui uic –o mainfile.cpp –impl mainfile.h mainfile.ui 根據(jù)實(shí)際需要修改頭文件和源文件,使其實(shí)現(xiàn)具體功能,各種初始數(shù)值和配置都在相應(yīng)類的構(gòu)造函數(shù)中初始化,如實(shí)現(xiàn)界面類之間的調(diào)用關(guān)系等。下圖6為使用QtDesigner設(shè)計(jì)的風(fēng)電機(jī)組監(jiān)測(cè)系統(tǒng)主界面圖。 圖6 監(jiān)測(cè)系統(tǒng)主界面 4 數(shù)據(jù)傳輸 ARM與上位機(jī)的數(shù)據(jù)的實(shí)時(shí)傳輸采用基于TCP/IP的socket網(wǎng)絡(luò)傳輸[5]。本文設(shè)計(jì)的通訊系統(tǒng)的軟件在結(jié)構(gòu)上采用客戶端/服務(wù)器模式,它具有編程簡(jiǎn)單、容易控制、使用方便靈活等特點(diǎn)。 服務(wù)器端與客戶端程序設(shè)計(jì)流程如圖7。 圖7 Socket網(wǎng)絡(luò)傳輸數(shù)據(jù)流程圖 1 打開(kāi)Socket 描述符、建立綁定 sockfd=socket(AF_INET,SOCK_STREAM, 0); //建立Socket bind(sockfd, (struct sockaddr *)&my_addr,sizeof(struct sockaddr); //綁定端口 2 建立連接 connect(sockfd,(struct sockaddr *)&remote_addr,sizeof(struct sockaddr) ; //發(fā)起連接 在服務(wù)器程序中, 當(dāng)Socket 與某一端口綁定以后, 就需要監(jiān)聽(tīng)該端口 listen(sockfd,8); //監(jiān)聽(tīng)連接 當(dāng)客戶請(qǐng)求與服務(wù)器監(jiān)聽(tīng)的端口連接時(shí), 該連接請(qǐng)求等待服務(wù)器接收它。隨后服務(wù)器程序調(diào)用accept( ) 函數(shù)為該請(qǐng)求建立一個(gè)連接。 3 數(shù)據(jù)的發(fā)送和接收 send(sockfd, buff ,1024,0); //向服務(wù)器發(fā)送數(shù)據(jù) recv(client_fd,buff,1024,0); //接收服務(wù)器發(fā)送的數(shù)據(jù) 4 關(guān)閉Socket 結(jié)束語(yǔ) 本文介紹了一種采用ARM的設(shè)計(jì)實(shí)現(xiàn)適用于振動(dòng)信號(hào)采集及分析的設(shè)備監(jiān)測(cè)系統(tǒng),使用S3C2410作為主控芯片,設(shè)計(jì)了低通濾波電路和A/D電路,并采用人機(jī)控制界面,采用Socket網(wǎng)絡(luò)編程實(shí)時(shí)將采集信號(hào)傳輸?shù)接?jì)算機(jī),傳輸數(shù)據(jù)不易丟失,不失真,起到了良好的設(shè)備狀態(tài)監(jiān)測(cè)作用。 參考文獻(xiàn): [1]趙玉章,郭文強(qiáng),韓莉英.小型嵌入式監(jiān)測(cè)系統(tǒng)的研制[J].計(jì)算機(jī)工程與應(yīng)用 2007,43(4):109-112 [2] 李 赟,賀富強(qiáng). 基于ARM微處理器的設(shè)備狀態(tài)監(jiān)測(cè)方案[J].機(jī)械與電子,2006(3):51-53 [3]倪繼利編著.Qt及Linux操作系統(tǒng)窗口設(shè)計(jì) [M].北京:電子工業(yè)出版社.2006:212-214 [4]孫天澤,袁文菊編著. 嵌入式設(shè)計(jì)及Linux驅(qū)動(dòng)開(kāi)發(fā)指南—基于ARM9處理器[M].第二版.北京:電子工業(yè)出版社.2005:368-373 [5]張思民編著.嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用[M].北京:清華大學(xué)出版社.2008:128-133 作者簡(jiǎn)介: 劉勝玉(1983-) 男 碩士研究生 研究方向?yàn)榍度胧较到y(tǒng),故障診斷。Email:liushy1984@qq.com 張志新(1967-) 男 講師 碩士生導(dǎo)師 主要研究方向?yàn)榍度胧较到y(tǒng)設(shè)計(jì),故障診斷,信號(hào)處理 作者聯(lián)系方式: 劉勝玉 Email: liushy1984@qq.com 電話15940904974 大連理工大學(xué)機(jī)械學(xué)院振動(dòng)工程研究所 |