基于ARM和GPRS的遠程監(jiān)測終端設計
各個數(shù)據(jù)采集模塊與主處理器通過SPI總線進行通信。SPI總線是Motorola公司提出的一種高速全雙工串行通信總線,它容許CPU與各種外圍接口器件以串行方式進行通信。SPI接口只有MISO(主入從出)、MOSI(主出從人)、SCLK(時鐘)和CS(片選)4個信號組成,在芯片上只占用4條線,大大節(jié)省了芯片資源。主處理器與各采集模塊的SPI通信方式為一主多從的方式,即ARM主處理器的作為主設備,各數(shù)據(jù)采集模塊作為從設備,主設備驅動串行時鐘發(fā)起通信。主設備使用片選信號CS指明與哪個模塊采集模塊傳送數(shù)據(jù)。通信時,主設備的MISO為輸入,MOSI為輸出,從設備的MISO為輸出,MOSI為輸入,在主設備時鐘的控制下,主設備與從設備的雙向移位寄存器同時進行數(shù)據(jù)交換,完成一次數(shù)據(jù)的傳輸。主處理器與各模塊的通信結構圖如圖4所示。本文引用地址:http://m.butianyuan.cn/article/149578.htm
2.3 GPRS模塊
GPRS模塊選用華為GTM900C模塊,它是一款三頻段GSM/GPRS無線模塊。模塊接口簡單、使用方便且功能強大。它支持標準的AT命令及增強AT命令。GTM900C的GPRS數(shù)據(jù)業(yè)務的最高速率可達85.6 kbit/GTM900C提供40腳的ZIF接口,主要有電源接口、UART接口(最大串口速率可達115200bit/s)、標準SIM卡接口和模擬語音接口。
本系統(tǒng)中,GTM900C主要是實現(xiàn)GPRS上網(wǎng)功能。該模塊的主要特點如下:
1)單電源供電,供電范圍為3.3~4.8 V.典型供電電壓為4.2 V;
2)可工作于三頻EGSM900和/GSM1800/GT800單頻;最大發(fā)射功率EGSM900/GT800 Class(2W)和GSM1800 Classl(1W);
3)支持GSM標準AT命令、V.25 AT命令和華為擴展AT命令;
4)GPRS傳輸速率最高可達85.6 kbps,支持CS-1,CS-2,CS-3,CS-4 4種編碼方式。內嵌了TCP/IP協(xié)議;支持多連接,提供ACK應答,提供大容量緩存。
GPRS模塊與主處理器的連接很簡單,由于兩者是通過串口接口進行通信的,所以將兩者用串口線連接即可。GPRS的網(wǎng)絡功能都已集成在模塊中,只需要在主處理器這一端將串口參數(shù)設置好,然后發(fā)送相應的AT指令對模塊進行操作即可。
3 終端軟件設計
終端軟件設計包括兩個任務,一是搭建開發(fā)環(huán)境,如Linux操作系統(tǒng)內核移植,編寫設備驅動等,二是在開發(fā)環(huán)境準備好的基礎上進行應用程序的編寫,包括完成SPI總線數(shù)據(jù)輸入輸出功能,GPRS無線數(shù)據(jù)傳輸功能,和界面顯示功能。
3.1 軟件開發(fā)平臺搭建
軟件平臺采用嵌入式Linux操作系統(tǒng),嵌入式Linux操作系統(tǒng)是一個源代碼公開的實時多任務操作系統(tǒng),可應用于多種硬件平臺,可根據(jù)需要定制內核,有良好的網(wǎng)絡支持,Linux系統(tǒng)內核精簡、高效并且穩(wěn)定,能夠充分發(fā)揮硬件的功能,它非常適合在嵌入式領域中應用。嵌入式Linux操作系統(tǒng)搭建的步驟為:在宿主機上建立交叉編譯的環(huán)境;編譯生成Linux的內核,用的內核是Linux-2.6.29;編譯生成根文件
系統(tǒng),用的根文件系統(tǒng)為yaffs;向目標機下載Bootloader的映像,用的Bootloader為Supervivi;燒寫Linux內核和文件系統(tǒng)的映像;復位啟動。為了使終端可以使用觸摸屏,液晶屏和SPI總線,將編寫的對應的驅動編譯、添加到Linux內核中。系統(tǒng)使用的宿主機系統(tǒng)為在虛擬機下運行的RedHat9.0。
終端應用程序用Qt來編寫,Qt是一個跨平臺的C++圖形用戶界面應用程序框架。它具有優(yōu)良的跨平臺特性、面向對象、豐富的API支持等優(yōu)點。Qt-Embedded是Qt的嵌入式版本,因此終端應用程序的開發(fā)使用Qt/E作為開發(fā)工具。Qt運行環(huán)境的搭建步驟為:首先在宿主機上分別建立Ot-x86編譯環(huán)境和Qt-ARM編譯調試環(huán)境,采用Qt4.5.0版本;其次,將宿主機生成的Lib下的庫文件下載到目標板的某個目錄下,并在目標板上設置好環(huán)境變量,這樣在目標機上的Qt程序運行環(huán)境就建好了。在宿主機上交叉編譯好的Ot/E程序就可以下載到目標機上運行了。
3.2 終端應用程序設計
監(jiān)測終端需要采集監(jiān)測儀表的現(xiàn)場測量數(shù)據(jù),終端設計的數(shù)據(jù)采集模塊分別對不同的現(xiàn)場數(shù)據(jù)進行采集并做相應的處理,數(shù)據(jù)采集模塊與CPU之間通過SPI總線進行數(shù)據(jù)傳輸,對與采集數(shù)據(jù)需按上端通信協(xié)議、PPP、TCP/IP協(xié)議進行二次成幀;利用GPRS網(wǎng)絡接入Internet網(wǎng)絡,將處理后的數(shù)據(jù)信息通過GPRS無線網(wǎng)絡上傳至監(jiān)控中心。
GPRS模塊附著GPRS網(wǎng)絡并與上位機建立TCP數(shù)傳鏈路是通過向模塊發(fā)送一串AT指令實現(xiàn)。撥號動作完成,并成功建立數(shù)傳鏈路以后,GPRS模塊在終端串行口和上位機之間變得透明。另外,終端的重要狀態(tài)要能即時顯示在LCD上。
綜上分析,監(jiān)控終端應用程序要完成的任務有:串口參數(shù)設置,GPRS網(wǎng)絡連接,讀取串口返回信息,SPI數(shù)據(jù)傳輸,GPRS數(shù)據(jù)傳輸,界面顯示。由于任務不止一個,而且有的任務需要同時運行,所以采用多線程編程。
在Qt編程中主界面UI一般為主線程,子線程通過繼承Qt中的QThread線程類來完成。這些任務和功能可以通過3個線程來實現(xiàn)。3個線程的作用分別為:1)主線程:負責界面顯示,串口參數(shù)設置,GPRS網(wǎng)絡連接,GPRS數(shù)據(jù)傳輸;2)SPI數(shù)據(jù)傳輸子線程:負責與數(shù)據(jù)采集模塊通信,將采集數(shù)據(jù)存入緩沖區(qū);3)串口數(shù)據(jù)讀取子線程:CPU通過串口操作GPRS模塊,GPRS模塊的返回信息可以通過串口數(shù)據(jù)讀取子線程隨時讀取。程序模塊圖如圖5所示。
評論