丁玲玲
摘要:本課題基于ARM嵌入式硬件平臺,以嵌入式Linux為操作系統,實現了一個遠程控制系統。該系統主要包括遠程控制終端系統、控制服務器系統和受控終端系統三大模塊,實現了GSM短消息收發、GPRS數據傳輸、視頻圖像采集、藍牙無線通信、直流電機變速控制和遠程終端人機交互等功能。該系統可廣泛應用于智能家居、工礦采集和機械生產等遠程控制方面。
關鍵詞:ARM;GSM;GPRS;藍牙;遠程控制
本文將在ARM嵌入式實驗平臺上,利用GPRS模塊和藍牙模塊構建一個基于GPRS的嵌入式遠程控制系統。該系統主要包括遠程控制終端系統、控制服務器系統和受控終端系統三大模塊。擁有GSM短消息收發、GPRS數據傳輸、視頻圖像采集、藍牙無線通信、直流電機變速控制和遠程終端人機交互等功能。
本系統可以應用于環境惡劣,不適于人們長期現場工作的場合,也可以應用于智能家居、工礦采集和機械生產等遠程控制方面。例如,在智能家居控制系統中,本系統可以將許多相對獨立的智能家居構成一個統一的系統,通過遠程控制終端對控制服務器發送命令,由控制服務器實現對智能家居的綜合管理和控制。
1 系統工作過程
(1)移動手機終端通過GSM網絡得到控制服務器的IP地址。
(2)移動手機終端根據得到的服務器IP地址,通過GPRS網絡連接到控制服務器系統。
(3)如果移動手機終端進入直流電機控制界面,并向控制服務器系統發送的是直流電機控制命令,控制服務器就將收到的控制命令通過藍牙通信技術進行廣播。受控終端接收到廣播的控制命令后,判斷接收到的命令是否為自己的控制命令,如果是就做出相應的反映,否則就丟棄接收到的命令。
(4)如果移動手機終端進入視頻監視控制界面,并向控制服務器系統發送的是啟動視頻監視命令,控制服務器就會啟動攝像頭進行視頻圖像采集,并將采集的圖像幀發送到遠程控制手機終端上進行顯示。
2 系統實現
在整個系統的具體實現過程中,遠程控制終端的GPRS聯網通信主要是利用socket網絡連接來實現的;控制服務器系統的GPRS聯網通信主要是通過AT指令來完成的;而控制服務器系統和受控終端的藍牙聯網通信都是利用L2CAP協議之上的socket來完成的。
2.1 控制服務器系統
控制服務器的主程序主要完成系統初始化操作和主要線程的創建工作。其中系統初始化操作包括串口初始化、全局變量初始化和視頻采集初始化等過程。系統的主要線程包括串口監聽線程、GPRS服務器線程和藍牙服務器線程。
主程序流程圖如圖1.1所示:
整個控制服務器系統在主程序初始化完成后,GPRS服務器線程和藍牙服務器線程會同時進行啟動,而串口監聽線程需要等到GPRS服務器線程將GPRS服務器啟動結束后再進行啟動。這樣設計主要是因為GPRS服務器和藍牙服務器之間相對比較獨立,所以可以同時進行啟動。然而,串口監聽主要是要不斷的讀取串口中的信息,GPRS服務器啟動需要向串口發送AT指令來完成。一旦GPRS服務器啟動結束就可以不再繼續進行啟動,直到遠程控制終端發送GPRS服務器重啟的命令后再進行重新啟動。因此,為了防止串口監聽線程在讀取信息過程中對GPRS服務器啟動造成影響,在系統實現過程中通過一個GPRS的標志位來實現串口監聽和GPRS服務器啟動的異步性。
對于GPRS服務器線程主要是用來將GPRS模塊連接到移動服務器,得到移動服務器分配的動態IP地址實現GPRS模塊的上網功能。在啟動GPRS模塊時要將GPRS模塊設為服務器端,實現監聽遠程控制終端的接入要求。
藍牙服務器線程主要包括藍牙初始化和監聽已經連接到服務器的受控終端的行為。初始化主要實現了藍牙服務器的構建。構建結束后,藍牙服務器就可以接收藍牙客戶端的連接請求,并完成對接收的有效連接進行管理。
GPRS模塊和應用系統是通過開發平臺的2號串口進行連接的,控制系統通過向GPRS模塊發送AT指令來控制模塊的行為,因此,在進行短消息的收發和GPRS服務器的構建之前必須要對串口進行初始化。串口監聽線程主要實現監聽遠程控制終端通過GSM網絡發送的短消息和通過GPRS網絡發送的控制命令。當控制服務器接收到短消息或控制命令后,會根據相應的命令來實現對控制服務器和受控終端的控制。
2.2 受控終端
受控終端主要實現了直流電機通過藍牙無線通信技術來接收控制服務器的控制。在主程序中主要創建了電機線程和搜索藍牙服務器的兩個線程。電機線程主要完成直流電機的變速控制。搜索藍牙服務器的線程主要完成了搜索附近所有的藍牙設備,尋找目標藍牙服務器的地址,然后根據尋找到的目標服務器地址構建藍牙客戶端等功能。
2.3 遠程控制終端
遠程控制終端為用戶提供了一個友好的控制界面,該終端主要包括登入控制服務器界面、控制菜單界面、直流電機控制界面和視頻監視查看等四個界面。主要用到了J2ME編程中的MIDP高級界面編程、低級用戶界面編程和無線聯網技術編程。
登入控制服務器界面應用J2ME中TextField控件來接收用戶輸入的控制服務器的IP地址,點擊進入組件后,終端將進行與控制服務器的網絡連接。為了避免網絡連接阻塞用戶響應線程,在此類中實現了Runnable接口,通過在Run()方法中調用Connector.open(serverAdd)來實現與控制服務器的連接,并通過openInputStream()方法來打開連接的輸入數據流,通過openOutputStream()方法打開連接的輸出數據流。連接的輸出數據流和輸入數據流分別用于遠程控制終端向控制服務器發送控制命令和接受控制服務器采集的現場圖像等信息。
3 總結
本論文基于ARM9的S3C2410開發平臺,利用嵌入式Linux操作系統,運用GPRS無線通信技術和藍牙無線通信技術搭建了嵌入式控制服務器系統。利用手機終端,運用J2ME編程實現了遠程控制終端的設計,并利用另一個S3C2410開發平臺的直流電機模塊,通過藍牙無線通信構建了遠程控制系統的受控終端。整個系統包含了GSM短消息通信、GPRS遠程控制、視頻圖像采集、藍牙無線通信、直流電動機變速控制和遠程控制人機交互等各大功能。
參考文獻
[1]金純等.藍牙技術[M]. 西安:電子工業出版社,2001.3
[2]詹建飛.Java ME核心技術與最佳實踐[M]. 北京:電子工業出版社,2007.1
[3]SIMCOM有限公司. SIM100-E_UGD[Z]. SIMCOM有限公司,2004.7
[4]孫天澤,袁文菊,張海峰. 嵌入式設計及Linux驅動開發指南[M]. 北京:電子工業出版社,2006.5
[5]Albert S. Huang,and Larry Rudolph. Bluetooth Essentials for Programmers[M]. Cambridge University Press, 2007