基于ARM和GPRS的遠程監(jiān)測終端設(shè)計
3.2.1 顯示界面模塊
界面顯示模塊:界面顯示由兩部分組成。一是實時顯示各模塊的采集數(shù)據(jù)及一定時間以內(nèi)的歷史數(shù)據(jù)數(shù)據(jù);二是顯示GPRS模塊設(shè)置界面,通過這個界面設(shè)置串口參數(shù)、設(shè)置數(shù)據(jù)采集時間間隔、設(shè)置主機IP地址及端口號、發(fā)送AT指令、回顯模塊返回信息等。編寫界面設(shè)計文件mainwindow.h和mainwindow.cpp,其中串口參數(shù)設(shè)置、網(wǎng)絡(luò)連接和GPRS數(shù)據(jù)傳輸封裝成相應(yīng)的子函數(shù),利用Qt的信號槽機制,當(dāng)捕捉到
相應(yīng)的信號便執(zhí)行對應(yīng)的函數(shù)。通過繼承Qt中的QThread線程類來完成GPRS數(shù)據(jù)讀取模塊和SPI模塊的功能。SPI模塊接收底層數(shù)據(jù)采集模塊的各種數(shù)據(jù),顯示到界面并編碼通過GPRS通道傳輸?shù)缴衔粰C,GPRS返回的一些重要信息業(yè)需顯示到LCD界面上。
3.2.2 GPRS網(wǎng)絡(luò)連接任務(wù)
GPRS網(wǎng)絡(luò)連接任務(wù)主要完成通過GPRS網(wǎng)絡(luò)建立與上位機的數(shù)據(jù)傳輸鏈路的過程。啟動GTM900C后,首先,需對PPP連接所使用的物理串口進行初始化,包括確定用于PPP連接的串行端口號以及通信波特率。然后,直接使用AT指令,撥號到中國移動的GPRS節(jié)點服務(wù)器(GGSN)。使用以下幾條燈指令使GTM900C進入數(shù)據(jù)通訊狀態(tài):
“AT+CGATY?”用于查詢GTM900C是否已附著在中國移動的GPRS網(wǎng)絡(luò),GTM900C將返回當(dāng)前狀態(tài);
“AT+CGATT=1”用于設(shè)置GTM900C附著于中國移動的GPRS網(wǎng)絡(luò),操作成功GTM900C將返回OK;
“A1,+CGDCONT=1,“IP”“CMNET””用于設(shè)置中國移動的GPRS節(jié)點服務(wù)器的名稱和屬性,操作成功則返回OK;
“AT%ETCPIP”用于實現(xiàn)PDP激活和TCP/IP的初始化,使模塊進入TCP/IP功能,操作成功返回OK;
“AT%IOMODE=0.2,0”設(shè)置數(shù)據(jù)傳輸模式,操作成功返回OK;
“AT%IPOPEN=1,“TCP”,“115.24.116.19”,5000..1026”打開一條TCP/IP鏈接,選擇TCP傳輸,115.24.116.19為上位機IP地址,5000為上位機接受程序端口號,成功與上位機連接返回CONNECT。另外模塊還具有數(shù)據(jù)透傳功能,數(shù)據(jù)透明傳輸功能將實現(xiàn)TCP/IP上直接數(shù)據(jù)傳輸,進入透傳模式的AT指令是:“AT%TPS=1,1,3000,1024”,進入透傳模式后模塊將不會相應(yīng)其它AT指令,直接通過串口寫入數(shù)據(jù)便可實現(xiàn)與上位機之間的數(shù)據(jù)傳輸。以上使模塊附著在GPRS網(wǎng)絡(luò)的過程封裝在gprsConnect()函數(shù)中。
PPP配置、認證通過以后,即應(yīng)用程序就已經(jīng)通過GTM900C成功進入了Internet網(wǎng)絡(luò)。最后,通過變量GPRSOK=1指示GPRS撥號成功并建立數(shù)傳狀態(tài)。在run()程序中隔一段時間判斷當(dāng)前網(wǎng)絡(luò)連接狀態(tài),若網(wǎng)絡(luò)斷開則變量GPRSOK=0,并調(diào)用gprsConnect()函數(shù)開始撥號任務(wù)重新建立數(shù)傳鏈路。
3.2.3 SPI數(shù)據(jù)通信模塊
SPI通信程序包括兩部分,一是用于數(shù)據(jù)采集的單片機這邊需要通過SPI發(fā)送現(xiàn)場數(shù)據(jù),接收控制指令,二是ARM主控制器需要讀取數(shù)據(jù),發(fā)送控制指令。數(shù)據(jù)采集模塊使用是帶有SPI接口的C8051f020單片機,SPI的數(shù)據(jù)寄存器是SHODAT。單片機和主控制器的SPI通信參數(shù)設(shè)置要一致。
在主設(shè)備ARM這邊,SPI驅(qū)動已經(jīng)配置好,直接使用read(),write()等函數(shù)便可進行數(shù)據(jù)的讀取與接收。在單片機這邊采用中斷的方式進行SPI數(shù)據(jù)的發(fā)送與接收。對于從設(shè)備C8051f021單片機來說,只有將片選線線接低電平才會啟動數(shù)據(jù)傳輸,可利用這一點進行多字節(jié)數(shù)據(jù)傳輸,拉低一次便傳輸一個字節(jié),這可用作與主設(shè)備之間的同步信號。主設(shè)備選一根I/O口線作為片選線,將其拉低,執(zhí)行一次SPI讀操作,再拉高,延時一定時間,這時從設(shè)備退出從模式,重新往SPIODAT里寫新數(shù)據(jù)及其他一些處理,主設(shè)備再將片選線拉低,執(zhí)行一次SPI讀操作。這樣便可進行多字節(jié)傳輸了。SPI主從設(shè)備通信流程圖如圖6所示。本文引用地址:http://www.ex-cimer.com/article/149578.htm
3.3 終端性能測試
將編譯好的界面應(yīng)用程序下載到終端處理器中并運行,主線程為顯示界面,隨時可與用戶進行信息,兩個子線程為讀SPI總線線程和串口讀寫線程,這3個線程同時并行運行。其中GPRS傳輸部分的界面如圖7所示,通過這個顯示界面設(shè)置串口、上位機IP地址、TCP端口和數(shù)據(jù)定時發(fā)送的時間間隔,發(fā)送文本框會顯示SPI總線讀取的數(shù)據(jù)值,接收文本框回顯GPRS模塊返回的信息。上位機用自己的PC機,通過軟件soeket tool監(jiān)聽終端發(fā)送給上位機數(shù)據(jù),實驗證明終端界面應(yīng)用程序工作良好,數(shù)據(jù)傳輸也很準(zhǔn)確。
4 結(jié)論
系統(tǒng)的上位機接受界面可用VB編寫,并建立數(shù)據(jù)庫,方便分析、處理監(jiān)測現(xiàn)場數(shù)據(jù),這部分程序正在完善中。監(jiān)測終端的數(shù)據(jù)采集部分采用模塊化設(shè)計,可以靈活增減,終端軟件可以根據(jù)不同現(xiàn)場用戶自行設(shè)計計算公式處理數(shù)據(jù),把終端設(shè)置好,在上位機通過GPRS網(wǎng)絡(luò)便可實時監(jiān)測現(xiàn)場。該檢測終端結(jié)構(gòu)靈活,實時性好,適用范圍廣,具有廣泛的應(yīng)用前景。
評論