基於GSM的無線智能監控設計
| [日期:2008-8-6] |
來源:無憂電子開發網 作者:昌燕,閆麗麗,張仕斌 |
[字型:大 中 小] |
1 引言
隨著GSM網路的迅速普及和移動通訊技術的飛速發展,新技術和新業務的開發和應用已提到十分重要的位置,利用GSM網路作為無線智能監控系統的資訊傳輸平台是一種很有效方法,其原理簡單,安全保密性高,又不需要組建專用網路和維護網路, 加上GSM網路覆蓋面廣,因此與傳統的監控系統相比有著其獨特的優勢。本文所涉及的智能監控模組即是採用GSM網路的短訊息功能和語音功能實現雙向資料通訊,可用於智能家居監控、無人值守的裝置維護、遠程資訊採集、工業控制、遠距離儀器裝置的運行狀態檢測和控制等領域。
2 智能監控系統總體設計
整個監控系統由GSM網路、監控模組和監控者或監控中心組成,系統原理2.1示。
智能模組採用89C52微控制器並結合外圍電路實現對8路類比量和8路數字量的資料擷取和監控,類比訊號經ADC0809模數轉換並被微控制器處理,若監控對象正常則繼續迴圈監測,若出現問題,微控制器即通過AT命令採用RS-232非同步串列介面與無線MODEM通訊並控制無線MODEM傳送簡訊息給監控者或監控中心。如果情況緊急,微控制器會通過AT命令控制無線MODEM拔打監控者的電話並同時播放預存在語音晶片ISD25120的語音資訊作為警示訊號。監控者也可用簡訊息的命令形式去設定以微控制器為核心的智能模組,以及發送短訊息查詢命令查詢其監控情況,從而達到無線監控的目的。利用89C52的外部中斷功能對外界的8路數字輸入量的突發事件進行監測,如果發生突發事件,中斷源立即產生中斷,89C52就會執行相應的警示程式。警示資訊以AT命令的形式寫入TC35I並通過短訊息發送到監控者手機上,對於特別緊急的事件可以直接撥打警示電話,因為短訊息的發送有可能會延遲。為了確保監控系統的可靠性,應在發送完短訊息警示後再通過無線模組給監控者撥打到電話,並由89C52控制ISD25120型語音電路播放預先儲存在語音電路的警示語音,同時在HD44780相容的液晶顯示器上顯示出八路數字量和八路類比量的監控狀態。
圖2.1 智能監控系統的工作原理
2.1硬體結構
智能模組的硬體結構分為兩個部分,一個部分是以微控制器為中心的監控主板,包括MCU外圍電路及液晶顯示、數字類比訊號處理及電平轉換電路和語音處理電路,另一個部分就是以TC35i及外圍電路構成的無線MODEM,2.2所示,它具有以下特點:
(1)89C52內有8KE2PROM、256BRAM、4個位並行口、3個16位定時計數器,1個串列全雙工系統非同步介面、6個中斷源,還可通過74HC373鎖存器擴充外部資料和程式儲存空間。
(2)類比量輸入由89C52外接ADC0809的8位 A/D轉換晶片來實現。可採集八路類比量輸入,通過地址管腳來選擇採集哪一路類比量。另外,在ADC0809的訊號輸入端接一個
圖2.2 智能監控模組的硬體結構圖
AD7501型8選1的多路開關,將類比訊號的輸入擴充為8路,從而實現64路訊號的採集。
(3)監視軟體固化在微控制器的E2PROM中,為保證智能模組能夠對監控對象突發情況進行即時處理,微控制器的P1口8根口線通過4078型或非門接至中斷源INT0;這樣,這8個I/O口一旦電平訊號有變化則會引起中斷,從而通過中斷服務程式實現即時處理,同時還可通過P2口控制8路數字開關量的輸出,以對監控對象的突發情況進行反控制,比如切斷電源等。外部監控的數字開關量較多時,可以在原硬體電路上擴充一個或多個8259,8259可對8級插斷要求實行優先順序管理,若外設中斷數目多於8個,則可使用多個8259。
(4)與HD44780相容的液晶顯示器則對即時監控的八路數字量和八路類比量進行狀態顯示。假如模組在工作中出現程式跑飛的情況,作為硬體看門狗MAX813L便會給微控制器的複位腳RST一個上升沿電平,使得跑飛的程式回到監控程式開始處重新執行,以確保可靠運行。
(5)微控制器通過並口控制ISD25120語音電路,而語音晶片ISD25120的語音輸出結束訊號/EOM則直接接入外部中斷0引腳INT0,使得語音播放一結束即刻進行其它即時處理。
(6)模組的監控主板和無線MODEM間通過串列介面串連在一起,無線MODEM主要由GSM模組TC35i、電源電路、SIM卡電路、手柄介面電路、電平轉換電路幾個部分組成,微控制器通過AT命令控制無線MODEM收發簡訊和語音通訊。
2.2軟體流程
監控模組的軟體流程2.3示,微控制器自動地完成對裝置狀態的迴圈檢測,如果監控的數字量或類比量出現問題,則微控制器通過AT命令控制無線MODEM向監控者發送短訊息警示,在緊急情況下也可以啟動語音通話,將儲存在語音晶片ISD25120中的語音訊號播放出來,作為緊急狀態下的一種監控警示手段;而使用者可以通過手機或Internet等其他不同的簡訊實體發出發出相應的控制命令,通過GSM網路傳送給模組,從而使得微控制器AT89C52接收並解釋相應的命令,並作出相應的動作,比如修改設定、發送查詢監控情況。
圖2.3 智能模組的監視軟體總流程圖
在監控時可以根據現場情況的緊急程度分級處理:一般情況可以使用簡訊收發,為了保證可靠,每條傳送簡訊都需要使用者給予相應的一條固定回應;當緊急情況時,可以直接啟動撥打到電話功能,通過將儲存在語音晶片的語音播放出來進行語音通話,以體現現場情況的緊急。
3.串列通訊協定的改進
本設計監控主板與無線MODEM和PC機之間的資料通訊都採用非同步串列協議,由於非同步串列通訊協定傳輸資料的速度相對較慢,效率較低,故在資料通訊量大的時候常採用同步通訊,但是同步通訊也存在著限制,通訊雙方的時鐘必須嚴格一致,否則通訊不能同步則會發生錯誤。本節就是根據面向位元的同步通訊協定,對非同步串列協議作了一點改進,提出一種高效、面向位元組傳送的類似HDLC通訊協定的非同步串列通訊協定AHDLC及其演算法的實現。
3.1AHDLC非同步串列通訊協定的格式
表3.1 AHDLC協議格式
StartMark 01111110B |
Length (1Byte) |
Command (1Byte) |
Data (nBytes) |
CheckSum (1Byte) |
EndMark 01111110B |
如表3.1所示為AHDLC協議的格式,Data是要傳送的n個位元組資料,Command是命令位元組,用它對資料進行解釋, Length表示資料長度的位元組.若傳送資料的框架格式為:Length,Command,data0,data1,…,datan-1,CheckSum.它們都是位元組資料,範圍是0~0xFF,直接傳送以上的框架格式,如果接收方在接收中有一個錯誤,則以後的接收將識別不到下一個資料幀的開始,通訊將會混亂。所以必須有開始標誌StartMark和一個結束標誌EndMark。
StartMark和EndMark也是位元組資料, 範圍是0~0xFF。設StartMark = EndMark=0x7E,若Length,Command,data0,data1,…,datan-1,CheckSum中出現與開始標誌StartMark相同的資料,通訊也會不可靠.為此設一個ReplaceMark位元組,取值ReplaceMark=0xFD,用ReplaceMark代替Length,Command,data0,data1,…,datan-1,Check-Sum中出現的,與StartMark數值相同的位元組,代替規則如下:發送時,用ReplaceMark,0x01兩個位元組代替出現的StartMark數值(StartMark→ReplaceMark,0x01);用ReplaceMark,0x00兩個位元組代替出現的ReplaceMark數值(RepalceMark→ReplaceMark,0x00),之後進行發送。接收時,如果接收到ReplaceMark,由下一個位元組判斷,若下一個位元組是0x01,則接收的數值用StartMark的數值代替(ReplaceMark,0x01→StartMark);若下一個位元組是0x00,則接收的數值用ReplaceMark的數值代替(ReplaceMark,0x00→ReplaceMark)。
用ReplaceMark和附加的位元組(0x00或0x01)代替Length,Command,data0,data1,…,datan-1,CheckSum中可能出現的與StartMark相同的數值與真正的ReplaceMark數值.這樣避免了幀內出現與標誌符相同的數值,同時又可以經過變換傳送與標誌符相同的數值.
3.2AHDLC的效率分析
在通訊中若採用ASCⅡ碼變換,n個位元組的資料將變換為2n個ASCⅡ碼,若按StartMark,Length,Command,data0,data1,…,datan-1,CheckSum,EndMark格式傳送,則需要傳送2n+8個位元組的資料,效率=(n+5)(2n+8)=50%.用AHDLC協議,Length,Command,
data0,data1,…,datan-1,CheckSum中,若不出現與StartMark及ReplaceMark相同的數值,則需要傳送n+5個位元組的資料.若出現n個與StartMark或ReplaceMark相同的數值,則需要傳送2n+5個位元組的資料.效率隨著StartMark或ReplaceMark數值出現個數的增加而降低. StartMark和ReplaceMark數值出現的機率都是(n+3)/256,則用AHDLC協議傳送的統計平均位元組數為:
對於n=10,用ASCⅡ碼方式傳送需要28個位元組,效率=15/28=53.6%;用AHDLC協議方式傳送平均需要15.1個位元組,效率=15/15.1=99.3%,比用ASCⅡ碼方式傳送效率提高45.7%.
對於n=100,用ASCⅡ碼方式傳送需要208個位元組,效率=105/208=50.5%;用AHDLC協議方式傳送平均需要105.8個位元組,效率=105/105.8=99.2%,比用ASCⅡ碼方式傳送效率提高48.7%.StartMark(或EndMark)和ReplaceMark的數值可以根據實際情況自己定義,使AHDLC框架格式中出現StartMark和ReplaceMark的機率越低,則通訊的效率越高。
4.結束語
該智能模組的軟硬體經過調試已達到工業應用水平,在一些對監控的即時性要求不是特別苛刻的情況下具有很高的性價比,再加上應用範圍廣,開發週期短,因而應用前景十分廣闊。本文作者創新點:與傳統的監控產品不同,通訊的媒介是GSM網路,採用SMS進行資料交換,控制主體是使用者手機或監控中心的電腦。
參考文獻
[1] GSM07.05,Digital cellular telecommunications system(Phase2+), Use of data terminal equipment-data circuit terminating,Equipment(DTE DCE)interface for short messageservice(SMS)and cellb roadcast service(CBS)[S].80-88
[2] 李朝青.單片機原理及介面技術[M].北京:北京航空航天大學出版社,1998
[3]林粵偉,魏權利.基於GSM簡訊息的無線網路環保監測系統的研製[J]微電腦資訊 2005,1:71-72