齊連眾,喻武龍,黃相杰
(北京理工大學珠海學院信息學院,廣東 珠海 519085)
目前,隨著通信網(wǎng)絡的普及以及日趨完善的城市覆蓋面積,使遠程監(jiān)控民用化成為可能。研發(fā)性能優(yōu)良的遠程監(jiān)控系統(tǒng)是非常具有市場價值的。遠程監(jiān)控系統(tǒng)的構建是計算機控制技術、通信技術和傳感器技術的綜合應用,通過采用基于GPRS網(wǎng)絡的遠程監(jiān)控系統(tǒng),用戶只需使用支持GPRS業(yè)務的手機或互聯(lián)網(wǎng),即可實現(xiàn)遠程實時監(jiān)控。GPRS具有資源利用率高、傳輸速率高、接入時間短等特點。在遠程突發(fā)性數(shù)據(jù)實時傳輸中更是具有不可比擬的優(yōu)勢,特別適合于間斷的、突發(fā)性的或頻繁的小量數(shù)據(jù)的實時終端傳輸,或偶發(fā)性大數(shù)據(jù)量的傳輸。
GPRS有效地解決了在遠程圖像傳輸及GPS遠程監(jiān)控系統(tǒng)中可能遇到的一系列問題,由于GPRS數(shù)據(jù)通信是按收發(fā)數(shù)據(jù)量計費,而不是按收發(fā)時間長短計費,所以客戶可以“永遠在線”并可節(jié)省費用。實現(xiàn)了對下位機終端的全程、實時監(jiān)控[3]。
遠程監(jiān)控終端(下位機)主要由MCU、圖像采集模塊、GPRS模塊、GPS模塊、紅外監(jiān)測模塊、外部儲存器等部件組成。外部EEPROM通過SPI串口連接MCU,用于系統(tǒng)引導程序裝載,參數(shù)和圖像數(shù)據(jù)等的保存。系統(tǒng)的工作過程為:上電或復位后,系統(tǒng)自動將EEPROM中的程序下載到MCU中,然后開始執(zhí)行程序。通過AVR單片機控制GPRS模塊、GPS模塊,利用移動SIM卡撥號通過GPRS網(wǎng)絡實現(xiàn)數(shù)據(jù)的無線遠程傳輸,監(jiān)控中心(上位機)對收到的信息進行處理,同時監(jiān)控中心也可通過GPRS網(wǎng)絡對監(jiān)控終端(下位機)進行遠程控制。系統(tǒng)結構如圖1所示。
圖1 系統(tǒng)結構圖
圖像捕獲單元采用GXT-M201串口JPEG彩色攝像模組,由圖像傳感器、OV528 IC及EEPROM三部分組成,支持不同分辨率可變JPEG編碼質量設置。當捕獲圖像后,通過JPEG算法壓縮圖像并將數(shù)據(jù)通過I2C總線存入EEPROM中,等待MCU對其調用。
圖像傳輸時序如圖2所示,RS-232單字節(jié)傳送有1個起始位,8個數(shù)據(jù)位和1個停止位組成。起始位固定為0,停止位固定為1。低位隨起始位后面先傳送。
圖2 RS-232單字節(jié)時序圖
指令字時序如圖3所示,以同步指令(AA0D00000000h)為例,1個指令由6個連續(xù)的單字節(jié)組成。
圖3 RS-232同步指令時序圖
GPRS模塊選用BenQ M22,支持GPRS CLASS4,即下行速 42.8kbps,上行速度 21.4kbps。連接為半串口形式與MCU通信。該模塊內置TCP/IP協(xié)議,省去了外部繁瑣的編程;集成了標準的RS232接口以及SIM卡,采用AT指令集通過串口對它進行設置[4]。
在應用設計中,當MCU需要通過串口與模塊進行通訊時,可以只用3個引腳:TXD,RXD和GND。但當需要通過模塊上網(wǎng)時,應該盡量使用全部的串口信號引腳,包括:DTR,RTS,DCD,CTS,DCD,TXD,RXD,RI,GND。其中RI變化是表示有來電呼入,可以連到MCU的中斷引腳,或者連到MCU的其他輸入引腳供MCU查詢其狀態(tài)。另外,MCU可以利用DTR信號,使模塊工作在Slow Clocking模式。在此模式下,模塊的13MHz晶振會周期性的停振以省電,而32.768kHz的晶振正常工作,從而保證了正確日歷時鐘。要使模塊進入 Slow Clocking模式,MCU拉高DTR,即由“ON”變?yōu)椤癘FF”就可以了,此時模塊的工作電流為4mA。要退出Slow Clocking模式,MCU拉低DTR,即由“OFF”變?yōu)椤癘N”,等待4ms后,模塊就會進入正常工作模式。
應用HOLUX GR-87 GPS模塊對下位機的位置狀態(tài)信息進行采集。AVR單片機通過串口接收GPS信息,可以提取經(jīng)度、緯度、速度、時間等數(shù)據(jù)。一方面,下位機終端通過數(shù)據(jù)接口為導航系統(tǒng)提供GPS數(shù)據(jù);另一方面,將數(shù)據(jù)儲存在外部存儲器中或通過GPRS模塊發(fā)送到遠程監(jiān)控中心服務器,使得監(jiān)控中心能實時得到所有下位機的位置狀態(tài)信息。
GPS數(shù)據(jù)采用中斷方式接收,首先是通過串行口發(fā)送控制命令完成GPS采樣周期的設置、GPS輸出數(shù)據(jù)選擇、通訊波特率設置等。然后通過串行口接收GPS定位信息。這里GPS輸出數(shù)據(jù)采用NMEA-0183(Ver2.0)格式,輸出數(shù)據(jù)為多組,在本系統(tǒng)中,選取其中一組GPRMC數(shù)據(jù)即可滿足設計要求。MCU對所接收的GPS信息進行解析,獲得經(jīng)度、緯度、速度、方向、時間等數(shù)據(jù),存入緩沖區(qū),等待對其調用。
初始化格式:$PGRMI$GPALM、<1>、<2>、<3>、<4>、<5>、<6>、*hh<CR> <LF>
<1>緯度ddmm.mmm格式(初始化必須被寫入)
<3>經(jīng)度ddmm.mmm格式(初始化必須被寫入)
<5>當前UTC日期,kkmm yy格式
<6>當前UTC時間hhmm ss格式
位置信息格式:$GPGGA、<1>、<2>、<3>、<4>、<5>、<6>、<7>、<8>、<9>、M,<11>、<12>*hh<CR><LF>
<2>經(jīng)度dd mm mmmm格式(非0)
<4>緯度ddd mm mmmm格式(非0)
<6>GPS狀態(tài)批示0—未定位1—無差分定位信息 2—帶差分定位信息
<8>精度百分比
<9>海平面高度
<10>*大地隨球面相對海平面的高度
<11>差分GPS信息
系統(tǒng)啟動時自動執(zhí)行存放在EEPROM中的預設AT指令程序(可通過超級終端進行預設)以初始化車載終端與監(jiān)控中心的TCP/IP通信。
AT+IPR=<rate>;//改變通信速率后會自動寫到模塊的NVRAM中,支持掉電保存功能。本文設置為115200。
AT#APNSERV=“CMNET”;//設置 GPRS接入點
AT# ConnectionStart;//連接 GPRS網(wǎng)登錄Internet,成功返回動態(tài)分配的IP地址
AT# TCPSERV=“10.0.123.245”//設置服務器 IP 地址,即監(jiān)控中心的IP地址
AT# TCPPORT=“6000”//設置服務器與單片機通信的Socket端口
AT# otcp://打開與遠程服務器的TCP連接
需要說明的是,首先由終端設備發(fā)出主動連接申請信息,而后遠程監(jiān)控中心接收并識別設備ID號,返回響應信息,成功連接后,由終端設備定時向監(jiān)控中心服務器發(fā)送連接請求,保持設備始終在線。這樣,就可以隨時地向終端發(fā)送控制命令,如拍照、獲取GPS信息或控制繼電器工作等。
TCP連接成功后,進入數(shù)據(jù)傳輸狀態(tài),這時監(jiān)聽MCU(下位機)與監(jiān)控中心(上位機)發(fā)送的指令,通過串口向GPRS模塊發(fā)送圖像數(shù)據(jù)和 GPS數(shù)據(jù),GPRS模塊通過Socket將數(shù)據(jù)發(fā)送到監(jiān)控中心,與此同時監(jiān)控中心返回應答。數(shù)據(jù)傳完后圖像處理模塊向GPRS模塊發(fā)送終止字符<ETX>,GPRS Modem又回到AT指令接收狀態(tài)??紤]到GPRS模塊內嵌的TCP/IP協(xié)議棧的緩存區(qū)是有限的,若串口寫入速率高于GPRS傳輸速率,部分數(shù)據(jù)將會被新寫入的數(shù)據(jù)覆蓋掉,造成傳輸數(shù)據(jù)丟失。為避免此種情況的發(fā)生,設計中采用數(shù)據(jù)分包法控制數(shù)據(jù)流,數(shù)據(jù)包的大小設置為960字節(jié)。監(jiān)控中心服務器接收完一個數(shù)據(jù)包后返回應答幀,GPRS模塊再發(fā)送下一個數(shù)據(jù)包。若超時未返回應答幀,則重新發(fā)送此數(shù)據(jù)包。這樣有效地避免了丟包,保證了圖像等大量信息傳輸?shù)姆€(wěn)定性。其封包形式與程序流程圖如圖4和圖5所示。
圖4 封包形式
圖5 流程圖
監(jiān)控中心通過網(wǎng)絡接收或發(fā)送TCP協(xié)議的IP包,實現(xiàn)與MCU終端的通訊。采用Visual C++實現(xiàn)Socket編程,創(chuàng)建監(jiān)控中心服務器。接收MCU終端的實時圖像信息及GPS定位信息,并將GPS數(shù)據(jù)導入第三方電子地圖導航軟件。對MCU終端的狀態(tài),運行狀況進行實時監(jiān)視、控制等,為用戶提供位置查詢、電子地圖服務、圖像信息獲取及遠程控制。
臨控中心界面如圖6所示。
圖6 監(jiān)控中心界面
測試數(shù)據(jù)結果如表1所示。
表1 測試數(shù)據(jù)結果
測試結果與當?shù)匾苿有盘栙|量有關,該測試數(shù)據(jù)是在本市測試多個點的平均值。
本文的遠程監(jiān)控系統(tǒng)采用了GPRS通信技術,拋棄了傳統(tǒng)的獨占電路交換模式,采用分組交換技術,每個用戶可同時占用多個無線信道,同一無線信道又可以由多個用戶共享,有效地利用了信道資源,而且覆蓋率極廣,因此非常適合對多終端監(jiān)控的需要。監(jiān)控信息可發(fā)至互聯(lián)網(wǎng)監(jiān)控中心,亦可發(fā)至用戶的手機等移動終端。采用AVR單片機實現(xiàn)對監(jiān)控終端的控制,利用較低的成本整合了通信與控制功能。集監(jiān)控、定位、信息存儲及遠程傳輸于一體,有效地解決了遠程監(jiān)控系統(tǒng)中可能遇到的一系列問題。具有成本低、硬件結構簡單、運行穩(wěn)定可靠、傳輸速度快、開發(fā)周期短等優(yōu)點。
[1]胡志坤.Visual C++通信編程工程實例精解[M].北京:機械工業(yè)出版社,2007.
[2]王正軍.Visual C++6.0程序設計從入門到精通[M].北京:人民郵電出版社,2006.
[3]Sergio Scaglia.嵌入式 Internet TCP/IP基礎、實現(xiàn)及應用[M].潘琢金,徐蕾,拱長青,等譯.北京:北京航空航天大學出版社,2008.
[4]包東智.通用分組無線交換業(yè)務[J].現(xiàn)代通信,2001(6):20-23.
[5]吳志華,申功勛,唐李征,等.嵌入式GPS由GPRS接入Internet的實現(xiàn)[J].微計算機信息,2007,23(3):256-258.
[6]王磊,馮占軍.基于GPRS網(wǎng)絡的嵌入式無線數(shù)據(jù)采集系統(tǒng)設計[J].測控技術,2007,26(9):17-19.
[7]廖嘉,周興斌.基于ARM9的嵌入式GPRS的設計與實現(xiàn)[J].計算機與現(xiàn)代化,2009(2):129-131.
[8]黃承安,張躍,云懷中.基于GPRS的遠程儀表監(jiān)控系統(tǒng)[J].電測與儀表,2003,40(8):42-45.
[9]李項根,陳軍,吳朝暉.基于ARM-Linux的車載信息平臺的研制[J].浙江大學學報:工學版,2006,40(9):1531-1535.
[10]靳晶,胡盛祥,胡平.基于GPS/GPRS車載終端的研究與開發(fā)[J].微計算機信息,2006,22(9):284-286.
[11]張正桓,張其善.基于GPRS的車載信息平臺的研制與關鍵技術[J].北京航空航天大學學報,2005,31(1):98-101.
[12]Fredriksson L B,Kvaser A B Kinnahult.CAN for critical embedded automotive networks[J].IEEE Microsystem,2002,22(4):28-35.
[13]王松宏,李德華.基于GPRS的車輛監(jiān)控系統(tǒng)車載移動終端的設計[J].計算機應用研究,2005,22(6):184-186.
[14]Yang Bo,Xu Cheng,Li Renfa.The design of CAN device driver in embedded Linux operating system[J].Science Technology and Engineering,2004,12(4):1019-1023.