1 引言
隨著GSM網(wǎng)絡(luò)的迅速普及和移動(dòng)通信技術(shù)的飛速發(fā)展,新技術(shù)和新業(yè)務(wù)的開(kāi)發(fā)和應(yīng)用已提到十分重要的位置,利用GSM網(wǎng)絡(luò)作為無(wú)線(xiàn)智能監(jiān)控系統(tǒng)的信息傳輸平臺(tái)是一種很有效的方法。
其原理簡(jiǎn)單,安全保密性高,又不需要組建專(zhuān)用網(wǎng)絡(luò)和維護(hù)網(wǎng)絡(luò), 加上GSM網(wǎng)絡(luò)覆蓋面廣,因此與傳統(tǒng)的監(jiān)控系統(tǒng)相比有著其獨(dú)特的優(yōu)勢(shì)。本文所涉及的智能監(jiān)控模塊即是采用GSM網(wǎng)絡(luò)的短消息功能和語(yǔ)音功能實(shí)現(xiàn)雙向數(shù)據(jù)通信,可用于智能家居監(jiān)控、無(wú)人值守的設(shè)備維護(hù)、遠(yuǎn)程信息采集、工業(yè)控制、遠(yuǎn)距離儀器設(shè)備的運(yùn)行狀態(tài)檢測(cè)和控制等領(lǐng)域。
2 智能監(jiān)控系統(tǒng)總體設(shè)計(jì)
整個(gè)監(jiān)控系統(tǒng)由GSM網(wǎng)絡(luò)、監(jiān)控模塊和監(jiān)控者或監(jiān)控中心組成,系統(tǒng)原理如圖2.1示。
智能模塊采用89C52微控制器并結(jié)合外圍電路實(shí)現(xiàn)對(duì)8路模擬量和8路數(shù)字量的數(shù)據(jù)采集和監(jiān)控,模擬信號(hào)經(jīng)ADC0809模數(shù)轉(zhuǎn)換并被微控制器處理,若監(jiān)控對(duì)象正常則繼續(xù)循環(huán)監(jiān)測(cè),若出現(xiàn)問(wèn)題,微控制器即通過(guò)AT命令采用RS-232異步串行接口與無(wú)線(xiàn)MODEM通信并控制無(wú)線(xiàn)MODEM發(fā)送短信息給監(jiān)控者或監(jiān)控中心。如果情況緊急,微控制器會(huì)通過(guò)AT命令控制無(wú)線(xiàn)MODEM拔打監(jiān)控者的電話(huà)并同時(shí)播放預(yù)存在語(yǔ)音芯片ISD25120的語(yǔ)音信息作為報(bào)警信號(hào)。監(jiān)控者也可用短信息的命令形式去設(shè)置以微控制器為核心的智能模塊,以及發(fā)送短消息查詢(xún)命令查詢(xún)其監(jiān)控情況,從而達(dá)到無(wú)線(xiàn)監(jiān)控的目的。
利用89C52的外部中斷功能對(duì)外界的8路數(shù)字輸入量的突發(fā)事件進(jìn)行監(jiān)測(cè),如果發(fā)生突發(fā)事件,中斷源立即產(chǎn)生中斷,89C52就會(huì)執(zhí)行相應(yīng)的報(bào)警程序。報(bào)警信息以AT命令的形式寫(xiě)入TC35I并通過(guò)短消息發(fā)送到監(jiān)控者手機(jī)上,對(duì)于特別緊急的事件可以直接撥打報(bào)警電話(huà),因?yàn)槎滔⒌陌l(fā)送有可能會(huì)延遲。為了確保監(jiān)控系統(tǒng)的可靠性,應(yīng)在發(fā)送完短消息報(bào)警后再通過(guò)無(wú)線(xiàn)模塊給監(jiān)控者撥打電話(huà),并由89C52控制ISD25120型語(yǔ)音電路播放預(yù)先存儲(chǔ)在語(yǔ)音電路的報(bào)警語(yǔ)音,同時(shí)在HD44780兼容的液晶顯示器上顯示出八路數(shù)字量和八路模擬量的監(jiān)控狀態(tài)。
圖2.1 智能監(jiān)控系統(tǒng)的工作原理
2.1硬件結(jié)構(gòu)
智能模塊的硬件結(jié)構(gòu)分為兩個(gè)部分,一個(gè)部分是以微控制器為中心的監(jiān)控主板,包括MCU外圍電路及液晶顯示、數(shù)字模擬信號(hào)處理及電平轉(zhuǎn)換電路和語(yǔ)音處理電路,另一個(gè)部分就是以TC35i及外圍電路構(gòu)成的無(wú)線(xiàn)MODEM,如圖2.2所示,它具有以下特點(diǎn):
(1)89C52內(nèi)有8KE2PROM、256BRAM、4個(gè)位并行口、3個(gè)16位定時(shí)計(jì)數(shù)器,1個(gè)串行全雙工異步接口、6個(gè)中斷源,還可通過(guò)74HC373鎖存器擴(kuò)展外部數(shù)據(jù)和程序存儲(chǔ)器。
(2)模擬量輸入由89C52外接ADC0809的8位 A/D轉(zhuǎn)換芯片來(lái)實(shí)現(xiàn)??刹杉寺纺M量輸入,通過(guò)地址管腳來(lái)選擇采集哪一路模擬量。另外,在ADC0809的信號(hào)輸入端接一個(gè)
圖2.2 智能監(jiān)控模塊的硬件結(jié)構(gòu)圖
AD7501型8選1的多路開(kāi)關(guān),將模擬信號(hào)的輸入擴(kuò)展為8路,從而實(shí)現(xiàn)64路信號(hào)的采集。
(3)監(jiān)控軟件固化在微控制器的E2PROM中,為保證智能模塊能夠?qū)ΡO(jiān)控對(duì)象突發(fā)情況進(jìn)行實(shí)時(shí)處理,微控制器的P1口8根口線(xiàn)通過(guò)4078型或非門(mén)接至中斷源INT0;這樣,這8個(gè)I/O口一旦電平信號(hào)有變化則會(huì)引起中斷,從而通過(guò)中斷服務(wù)程序?qū)崿F(xiàn)實(shí)時(shí)處理,同時(shí)還可通過(guò)P2口控制8路數(shù)字開(kāi)關(guān)量的輸出,以對(duì)監(jiān)控對(duì)象的突發(fā)情況進(jìn)行反控制,比如切斷電源等。外部監(jiān)控的數(shù)字開(kāi)關(guān)量較多時(shí),可以在原硬件電路上擴(kuò)展一個(gè)或多個(gè)8259,8259可對(duì)8級(jí)中斷請(qǐng)求實(shí)行優(yōu)先級(jí)管理,若外設(shè)中斷數(shù)目多于8個(gè),則可使用多個(gè)8259。
(4)與HD44780兼容的液晶顯示器則對(duì)實(shí)時(shí)監(jiān)控的八路數(shù)字量和八路模擬量進(jìn)行狀態(tài)顯示。假如模塊在工作中出現(xiàn)程序跑飛的情況,作為硬件看門(mén)狗MAX813L便會(huì)給微控制器的復(fù)位腳RST一個(gè)上升沿電平,使得跑飛的程序回到監(jiān)控程序開(kāi)始處重新執(zhí)行,以確??煽窟\(yùn)行。
(5)微控制器通過(guò)并口控制ISD25120語(yǔ)音電路,而語(yǔ)音芯片ISD25120的語(yǔ)音輸出結(jié)束信號(hào)/EOM則直接接入外部中斷0引腳INT0,使得語(yǔ)音播放一結(jié)束即刻進(jìn)行其它實(shí)時(shí)處理。
(6)模塊的監(jiān)控主板和無(wú)線(xiàn)MODEM間通過(guò)串行接口連接在一起,無(wú)線(xiàn)MODEM主要由GSM模塊TC35i、電源電路、SIM卡電路、手柄接口電路、電平轉(zhuǎn)換電路幾個(gè)部分組成,微控制器通過(guò)AT命令控制無(wú)線(xiàn)MODEM收發(fā)短信和語(yǔ)音通信。
2.2軟件流程
監(jiān)控模塊的軟件流程如圖2.3示,微控制器自動(dòng)地完成對(duì)設(shè)備狀態(tài)的循環(huán)檢測(cè),如果監(jiān)控的數(shù)字量或模擬量出現(xiàn)問(wèn)題,則微控制器通過(guò)AT命令控制無(wú)線(xiàn)MODEM向監(jiān)控者發(fā)送短消息報(bào)警,在緊急情況下也可以啟動(dòng)語(yǔ)音通話(huà),將存儲(chǔ)在語(yǔ)音芯片ISD25120中的語(yǔ)音信號(hào)播放出來(lái),作為緊急狀態(tài)下的一種監(jiān)控報(bào)警手段;而用戶(hù)可以通過(guò)手機(jī)或Internet等其他不同的短信實(shí)體發(fā)出發(fā)出相應(yīng)的控制命令,通過(guò)GSM網(wǎng)絡(luò)傳送給模塊,從而使得微控制器AT89C52接收并解釋相應(yīng)的命令,并作出相應(yīng)的動(dòng)作,比如修改設(shè)置、發(fā)送查詢(xún)監(jiān)控情況。
圖2.3 智能模塊的監(jiān)控軟件總流程圖
在監(jiān)控時(shí)可以根據(jù)現(xiàn)場(chǎng)情況的緊急程度分級(jí)處理:一般情況可以使用短信收發(fā),為了保證可靠,每條發(fā)送短信都需要用戶(hù)給予相應(yīng)的一條固定回應(yīng);當(dāng)緊急情況時(shí),可以直接啟動(dòng)撥打電話(huà)功能,通過(guò)將存儲(chǔ)在語(yǔ)音芯片的語(yǔ)音播放出來(lái)進(jìn)行語(yǔ)音通話(huà),以體現(xiàn)現(xiàn)場(chǎng)情況的緊急。
3.串行通信協(xié)議的改進(jìn)
本設(shè)計(jì)監(jiān)控主板與無(wú)線(xiàn)MODEM和PC機(jī)之間的數(shù)據(jù)通信都采用異步串行協(xié)議,由于異步串行通信協(xié)議傳輸數(shù)據(jù)的速度相對(duì)較慢,效率較低,故在數(shù)據(jù)通信量大的時(shí)候常采用同步通信,但是同步通信也存在著限制,通信雙方的時(shí)鐘必須嚴(yán)格一致,否則通信不能同步則會(huì)發(fā)生錯(cuò)誤。本節(jié)就是根據(jù)面向比特的同步通信協(xié)議,對(duì)異步串行協(xié)議作了一點(diǎn)改進(jìn),提出一種高效、面向字節(jié)傳送的類(lèi)似HDLC通信協(xié)議的異步串行通信協(xié)議AHDLC及其算法的實(shí)現(xiàn)。
3.1AHDLC異步串行通信協(xié)議的格式
表3.1 AHDLC協(xié)議格式
StartMark 01111110B |
Length (1Byte) |
Command (1Byte) |
Data (nBytes) |
CheckSum (1Byte) |
EndMark 01111110B |
StartMark和EndMark也是字節(jié)數(shù)據(jù), 范圍是0~0xFF。設(shè)StartMark = EndMark=0x7E,若Length,Command,data0,data1,…,datan-1,CheckSum中出現(xiàn)與開(kāi)始標(biāo)志StartMark相同的數(shù)據(jù),通信也會(huì)不可靠.為此設(shè)一個(gè)ReplaceMark字節(jié),取值ReplaceMark=0xFD,用ReplaceMark代替Length,Command,data0,data1,…,datan-1,Check-Sum中出現(xiàn)的,與StartMark數(shù)值相同的字節(jié),代替規(guī)則如下:發(fā)送時(shí),用ReplaceMark,0x01兩個(gè)字節(jié)代替出現(xiàn)的StartMark數(shù)值(StartMark→ReplaceMark,0x01);用ReplaceMark,0x00兩個(gè)字節(jié)代替出現(xiàn)的ReplaceMark數(shù)值(RepalceMark→ReplaceMark,0x00),之后進(jìn)行發(fā)送。接收時(shí),如果接收到ReplaceMark,由下一個(gè)字節(jié)判斷,若下一個(gè)字節(jié)是0x01,則接收的數(shù)值用StartMark的數(shù)值代替(ReplaceMark,0x01→StartMark);若下一個(gè)字節(jié)是0x00,則接收的數(shù)值用ReplaceMark的數(shù)值代替(ReplaceMark,0x00→ReplaceMark)。
用ReplaceMark和附加的字節(jié)(0x00或0x01)代替Length,Command,data0,data1,…,datan-1,CheckSum中可能出現(xiàn)的與StartMark相同的數(shù)值與真正的ReplaceMark數(shù)值.這樣避免了幀內(nèi)出現(xiàn)與標(biāo)志符相同的數(shù)值,同時(shí)又可以經(jīng)過(guò)變換傳送與標(biāo)志符相同的數(shù)值.
3.2AHDLC的效率分析
在通信中若采用ASCⅡ碼變換,n個(gè)字節(jié)的數(shù)據(jù)將變換為2n個(gè)ASCⅡ碼,若按StartMark,Length,Command,data0,data1,…,datan-1,CheckSum,EndMark格式傳送,則需要傳送2n+8個(gè)字節(jié)的數(shù)據(jù),效率=(n+5)(2n+8)=50%.用AHDLC協(xié)議,Length,Command,
data0,data1,…,datan-1,CheckSum中,若不出現(xiàn)與StartMark及ReplaceMark相同的數(shù)值,則需要傳送n+5個(gè)字節(jié)的數(shù)據(jù).若出現(xiàn)n個(gè)與StartMark或ReplaceMark相同的數(shù)值,則需要傳送2n+5個(gè)字節(jié)的數(shù)據(jù).效率隨著StartMark或ReplaceMark數(shù)值出現(xiàn)個(gè)數(shù)的增加而降低. StartMark和ReplaceMark數(shù)值出現(xiàn)的概率都是(n+3)/256,則用AHDLC協(xié)議傳送的統(tǒng)計(jì)平均字節(jié)數(shù)為:
對(duì)于n=10,用ASCⅡ碼方式傳送需要28個(gè)字節(jié),效率=15/28=53.6%;用AHDLC協(xié)議方式傳送平均需要15.1個(gè)字節(jié),效率=15/15.1=99.3%,比用ASCⅡ碼方式傳送效率提高45.7%.
對(duì)于n=100,用ASCⅡ碼方式傳送需要208個(gè)字節(jié),效率=105/208=50.5%;用AHDLC協(xié)議方式傳送平均需要105.8個(gè)字節(jié),效率=105/105.8=99.2%,比用ASCⅡ碼方式傳送效率提高48.7%.StartMark(或EndMark)和ReplaceMark的數(shù)值可以根據(jù)實(shí)際情況自己定義,使AHDLC幀格式中出現(xiàn)StartMark和ReplaceMark的概率越低,則通信的效率越高。
4.結(jié)束語(yǔ)
該智能模塊的軟硬件經(jīng)過(guò)調(diào)試已達(dá)到工業(yè)應(yīng)用水平,在一些對(duì)監(jiān)控的實(shí)時(shí)性要求不是特別苛刻的情況下具有很高的性?xún)r(jià)比,再加上應(yīng)用范圍廣,開(kāi)發(fā)周期短,因而應(yīng)用前景十分廣闊。本文作者創(chuàng)新點(diǎn):與傳統(tǒng)的監(jiān)控產(chǎn)品不同,通信的媒介是GSM網(wǎng)絡(luò),采用SMS進(jìn)行數(shù)據(jù)交換,控制主體是用戶(hù)手機(jī)或監(jiān)控中心的計(jì)算機(jī)。
參考文獻(xiàn)
[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] 李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1998
[3]林粵偉,魏權(quán)利.基于GSM短信息的無(wú)線(xiàn)網(wǎng)絡(luò)環(huán)保監(jiān)測(cè)系統(tǒng)的研制[J]微計(jì)算機(jī)信息 2005,1:71-72