ARM具備體積小、接口豐富、高度集成性和擴展性強等優點,加之隨著Linux在服務器領域和桌面系統獲得的成功,Linux 以其良好的移植性能、優秀的網絡功能、對各種文件系統完備的支持、具有軟件代碼小、高度自動化、響應速度快、特別適合于要求實時和多任務的體系等特點[1]在嵌入式系統中獲得了越來越廣泛的應用。這使得基于ARM的嵌入式監測系統具有成本低、功耗低、實時性能好及智能程度高等優點,在工業監測與控制領域具有較為廣闊的應用前景[2]。本文設計了基于ARM的嵌入式監測系統。
1系統總體設計
一個嵌入式監測系統,其基本目的控制硬件設備采集信號,并對信號進行一定的分析,其過程是獲取設備的運行狀態的模擬量信號,并且能夠將這些模擬量轉化為數字量輸出。在此基礎上,設計了基于ARM嵌入式監測系統。ARM微處理器的上選擇基于ARM920T內核的S3C2410A芯片。
?
?
?
圖1系統結構框圖
整個系統監測方案如圖1所示,整個采集過程是由ARM微處理器控制的,ARM監測系統主要由以下三部分組成:
(1)信號采集:傳感器采集反映設備運行狀態的現場信號。被采集的模擬信號通過傳感器拾取,再經過濾波、放大信號調理,然后模擬信號則經過A/D(模/數)轉換器轉換成計算機可識別數字量,通過ARM微處理器控制放大器的增益和濾波器的截止頻率。
(2)人機界面:采用圖形界面控制數據采集,并在界面上進行數據分析,將數據處理結果在顯示屏上以良好直觀的界面動態顯示,便于現場工作人員判斷故障。
(3)數據傳輸:數據傳輸是將數據上傳至上位機(計算機),以進行進一步的分析處理。
2系統硬件結構
振動傳感器傳來的振動信號在進入后端處理系統之前也需要對信號進行一定的調理,以滿足后端信號處理的要求,為了簡化設計,節省設計時間,信號的前端信號調理模塊使用設計好的模塊,包括恒流源、傳感檢測、信號放大、低通濾波,程控放大器放大倍數的設定通過S3C2410A設定。圖2顯示了系統硬件框圖。
?
?
圖2? 系統硬件框圖
2.1程控抗混疊低通濾波器設計
傳感器采集的的模擬信號中往往混有一些其它信號如噪聲信號,因此在A/D轉換之前對信號進行濾波是很有必要的,同時選擇合適的濾波器還可以起到抗混疊的功能。本系統設計采用MAX263低通濾波器,MAX263是有源開關電容濾波器,其中心頻率,Q值和工作模式可通過引腳編程設置,其硬件連接電路如圖3.
?
?
?
圖3? 低通濾波電路
選擇濾波器工作模式1,將M0,M1設置低電平,Q值設置為1,查表得NQ=64,則Q6~Q0引腳值為100000。MAX263的引腳與S3C2410芯片直接相連以實現程控濾波器,F0~F4分別連接GPB5~GPB9。在ARM上即可控制對應引腳實現對MAX263截止頻率的設定。
2.2? A/D轉換電路
A/D轉換器作用是把一個模擬信號轉換為數字信號。風電機組的狀態信號是一個連續的值。利用傳感器可以檢測到一個連續的電壓值,但在ARM和計算機上不能夠直接處理模擬信號數據。A/D轉換器就是把傳感器檢測到的電壓模擬信號轉換為系統可識別的數字信號的器件。根據系統的條件及精度的要求下,采用12位的A/D轉換器已經能夠滿足本系統的要求。在經過A/D的轉換后。就把連續的模擬信號轉變成了不連續的離散的數值,以便于數據分析。A/D轉換芯片采用TI公司的TLC2543。TLC2543是12位開關電容逐次逼近模數轉換器,其電路連接如圖4。
?
?
?
圖4? TLC2543與S3C2410的連接圖
數據采集時,首先向AD轉換器發送要采集的通道號,AD轉換器讀取對應通道的數據,并將數據傳遞給S3C2410A,實現數據的采集,其流程如圖5。
?
?
?
圖5? A/D采集流程圖
嵌入式監測系統的ARM端應用程序軟件的核心是人機交互用戶圖形界面,它是用戶和系統交互的窗口。
本文將Qt/Embedded應用于以ARM+Linux為平臺的嵌入式監測系統人機界面的開發。構建Qt /Embedded交叉編譯環境需要構建3個QT開發環境[3]。其中一個QT/X11是環境;一個是QT/Embedded(x86)環境;最后一個才是QT/Embedded(ARM)交叉編譯環境,在QT/Embedded(x86)環境下調試通過的程序需要在此環境下重新編譯后才能移植到目標機上運行。
QtDesigner是Qt/Embedded下的集成開發工具,它支持信號和槽機制,使部件間能夠進行有效的通信,省略了許多重復性的工作,可以大大縮減程序的開發周期[4]。在命令行下,根據設計器保存的界面文件(.ui文件)使用uic命令生成.h頭文件和.cpp源文件。
uic -o mainfile.h mainfile.ui
uic –o mainfile.cpp –impl mainfile.h mainfile.ui
根據實際需要修改頭文件和源文件,使其實現具體功能,各種初始數值和配置都在相應類的構造函數中初始化,如實現界面類之間的調用關系等。下圖6為使用QtDesigner設計的風電機組監測系統主界面圖。
?
?
?
圖6 監測系統主界面
4數據傳輸
ARM與上位機的數據的實時傳輸采用基于TCP/IP的socket網絡傳輸[5]。本文設計的通訊系統的軟件在結構上采用客戶端/服務器模式,它具有編程簡單、容易控制、使用方便靈活等特點。
服務器端與客戶端程序設計流程如圖7
?
?
?
圖7 Socket網絡傳輸數據流程圖
1 打開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) ;
//發起連接
在服務器程序中, 當Socket 與某一端口綁定以后, 就需要*該端口
listen(sockfd,8);????????? //*連接
當客戶請求與服務器*的端口連接時, 該連接請求等待服務器接收它。隨后服務器程序調用accept( ) 函數為該請求建立一個連接。
3 數據的發送和接收
send(sockfd, buff ,1024,0);?? //向服務器發送數據
recv(client_fd,buff,1024,0);? //接收服務器發送的數據
4 關閉Socket
結束語
本文介紹了一種采用ARM的設計實現適用于振動信號采集及分析的設備監測系統,使用S3C2410作為主控芯片,設計了低通濾波電路和A/D電路,并采用人機控制界面,采用Socket網絡編程實時將采集信號傳輸到計算機,傳輸數據不易丟失,不失真,起到了良好的設備狀態監測作用。
評論
查看更多