智能門控安防系統(tǒng)是如何實(shí)現(xiàn)的
1 、引言
隨著人民生活水平的提高和安全防范意識(shí)的增強(qiáng),人們開始關(guān)心自己的生活和工作環(huán)境,不但要求周邊環(huán)境的舒適化和人性化,對(duì)居住工作環(huán)境的安全化和智能化也提出了更高的要求,安防系統(tǒng)已經(jīng)成為生活中必不可少組成部分。傳統(tǒng)的安防系統(tǒng)主要依靠電話網(wǎng)播報(bào)警訊信息,但電話網(wǎng)易被破壞,且不適用于偏遠(yuǎn)地區(qū)等架設(shè)通信線路困難或不經(jīng)濟(jì)的地方。
GSM網(wǎng)絡(luò)是基于時(shí)分多址技術(shù)和頻分多址技術(shù)的通信網(wǎng)絡(luò)體系,是我國覆蓋面最廣,功能最強(qiáng),用戶最多的數(shù)字蜂窩移動(dòng)通信網(wǎng)。通過中國移動(dòng)公司建成的無縫覆蓋全國的GSM網(wǎng),運(yùn)用GSM短信技術(shù)傳送警訊信息,具有安全可靠,安裝方便等優(yōu)點(diǎn)。
1、系統(tǒng)結(jié)構(gòu)與原理
本安防系統(tǒng)結(jié)構(gòu)如圖1所示。把各種報(bào)警傳感器分別安裝在不同位置,當(dāng)出現(xiàn)異常情況時(shí),相應(yīng)的傳感器會(huì)將無線信號(hào)發(fā)送至控制模塊的無線接收電路,控制模塊通過軟件判斷出異常情況的類型,通過串行口控制GSM模塊發(fā)送相應(yīng)的報(bào)警短信,幾秒鐘后,用戶的手機(jī)上就可以接收到報(bào)警短信,提醒用戶采取措施。當(dāng)用戶在現(xiàn)場時(shí),可通過發(fā)送短信撤除報(bào)警功能(簡稱撤防),防止報(bào)警器對(duì)用戶行動(dòng)的誤報(bào)警。用戶還可以利用計(jì)算機(jī)對(duì)存儲(chǔ)于EEPROM中的報(bào)警記錄進(jìn)行讀取,以及對(duì)報(bào)警系統(tǒng)進(jìn)行設(shè)置。
2、硬件設(shè)計(jì)
2.1無線報(bào)警傳感器
無線報(bào)警傳感器主要包括熱釋電被動(dòng)式紅外報(bào)警器、煙霧報(bào)警器、煤氣泄漏報(bào)警器、窗(門)磁報(bào)警器等。每一種無線報(bào)警傳感器都是由傳感器、信號(hào)處理電路、無線發(fā)射電路等構(gòu)成。傳感器在檢測(cè)到異常情況后,通過無線發(fā)射電路實(shí)現(xiàn)無線報(bào)警。為了區(qū)分報(bào)警器的類型(即警情類型),同時(shí)增強(qiáng)系統(tǒng)的抗干擾能力,提高報(bào)警的準(zhǔn)確性,每一個(gè)報(bào)警器都有不同的編碼。這個(gè)編碼由“地址碼”+“身份碼”構(gòu)成,“地址碼”用來標(biāo)示不同的安防系統(tǒng),同一安防系統(tǒng)內(nèi),所有無線報(bào)警器的地址碼和無線接收電路的地址碼是相同的;“身份碼”用來標(biāo)示不同的無線報(bào)警傳感器。地址碼和身份碼可以由硬件實(shí)現(xiàn),如利用SC2262編碼芯片和SC2272解碼芯片實(shí)現(xiàn);也可以由軟件實(shí)現(xiàn),在編程時(shí)直接寫入地址碼和身份碼。
2.2 控制模塊
控制模塊的核心是PIC16F74單片機(jī)。PIC16F74是一款低功耗、高速的Flash單片機(jī),內(nèi)部主要集成USART模塊、I2C總線、SPI接口、輸入捕捉/輸出比較/脈寬調(diào)制CCP模塊、A/D轉(zhuǎn)換器、看門狗定時(shí)器WDT等功能部件。PIC16F74具有35條簡潔的指令系統(tǒng),其中除了程序分支指令是單字節(jié)、雙周期指令外,其它都是單字節(jié)、單周期指令。單字節(jié)寬指令提高了軟件編碼效率,減少了所需要的程序存儲(chǔ)器單元,使系統(tǒng)具有很高的處理效率和卓越的性能。PIC16F74單片機(jī)優(yōu)異的性能加上良好的電磁兼容特性,使之非常適合于本系統(tǒng)的開發(fā)??刂颇K主要用于處理報(bào)警信息,并與PC機(jī)通信。單片機(jī)與實(shí)時(shí)時(shí)鐘芯片(SD2001)通過I2C接口進(jìn)行通信。單片機(jī)通過普通IO與EEPROM(AT24C16)通信,AT24C16為I2C接口,對(duì)它的讀寫,需單片機(jī)程序產(chǎn)生I2C時(shí)序。 EEPROM中除了存儲(chǔ)報(bào)警信息外,還存儲(chǔ)用戶的手機(jī)號(hào)碼和撤防的密碼。
2.3 單片機(jī)與GSM模塊、PC機(jī)的硬件接口電路
圖2顯示了單片機(jī)與TC35、PC機(jī)的連接圖。GSM模塊采用西門子公司推出的TC35。TC35是一款高性能的GSM模塊,在應(yīng)用系統(tǒng)中很容易集成,可以工作在GSM900kHz和1800kHz兩個(gè)頻段,RS-232數(shù)據(jù)接口,符合ETSI標(biāo)準(zhǔn)GSM07.07和GSM07.05,且易于升級(jí)為GPRS(通用分組無線電業(yè)務(wù))模塊。TC35集射頻電路和基帶于一體,向用戶提供標(biāo)準(zhǔn)的AT命令接口,為數(shù)據(jù)、語音、短消息、傳真提供快速、安全、可靠的傳輸,方便用戶的應(yīng)用開發(fā)和設(shè)計(jì)。
由于TC35數(shù)據(jù)接口工作在CMOS電平,而PIC16F74工作在TTL電平,工作電壓范圍一般比TC35寬,故應(yīng)在單片機(jī)和TC35之間加電平轉(zhuǎn)換電路。單片機(jī)通過異步串行接口RC6、RC7與TC35進(jìn)行數(shù)據(jù)通信,通信速率為9600kbit/s,采用8位異步通信方式,1位起始位,8位數(shù)據(jù)位,1位停止位。
單片機(jī)利用普通IO與PC機(jī)串口通信。單片機(jī)需要在通信程序中自己產(chǎn)生串行時(shí)序。
3、軟件設(shè)計(jì)
系統(tǒng)軟件包括單片機(jī)程序和PC機(jī)程序。PC機(jī)的程序主要是對(duì)計(jì)算機(jī)串口的讀寫,本文不加詳述。單片機(jī)的程序主要包括初始化、單片機(jī)對(duì)報(bào)警信號(hào)的處理、單片機(jī)與PC機(jī)的通信和單片機(jī)對(duì)設(shè)防撤防信號(hào)的處理。單片機(jī)程序的流程圖如圖3所示。當(dāng)單片機(jī)檢測(cè)到有GSM模塊接收到短信后,先判斷短信開頭部分的密碼正確與否,只有當(dāng)密碼正確才進(jìn)行相應(yīng)操作,否則不予處理。
3.1 單片機(jī)程序初始化
初始化程序主要包括對(duì)寄存器、IO的設(shè)置、從EEPROM中把用戶手機(jī)號(hào)碼和撤防密碼讀入單片機(jī)的寄存器中。初始化完成之后,單片機(jī)就循環(huán)檢測(cè)有無報(bào)警信號(hào)、是否連接到PC機(jī)、GSM模塊是否接收到短信。
EEPROM中存儲(chǔ)用戶手機(jī)號(hào)碼和撤防密碼,是為了防止系統(tǒng)斷電后導(dǎo)致的重要信息的丟失。在初始化時(shí)將信息讀入單片機(jī)的寄存器中,可以節(jié)省單片機(jī)處理的時(shí)間。
3.2 報(bào)警信息的處理
單片機(jī)通過無線接收電路接收探測(cè)電路發(fā)送的報(bào)警信號(hào),通過報(bào)警器的“身份碼”識(shí)別報(bào)警類型,并將“報(bào)警類型”通過GSM模塊,以短信發(fā)送到用戶手機(jī)。發(fā)送完成之后,單片機(jī)從實(shí)時(shí)時(shí)鐘芯片讀取報(bào)警時(shí)間,并將“報(bào)警類型+報(bào)警時(shí)間”寫EEPROM。
利用AT指令可完成控制GSM模塊進(jìn)行SMS通訊的所有流程,歐洲通信委員會(huì)ETST發(fā)布的GSM07.05標(biāo)準(zhǔn)AT指令集是目前全球所有GSM模塊均支持的收發(fā)SMS的命令集,常見的AT指令見表1。
每個(gè)AT指令以“AT+”開頭,以回車結(jié)尾。在AT指令中還包括以下控制符:結(jié)束符(用表示),十六進(jìn)制為0x0D;發(fā)送符(用《^Z》表示),十六進(jìn)制為0x1A。
發(fā)送短消息常用Text和PDU(Protocol Data Unit)模式。使用Text模式收發(fā)短信的優(yōu)點(diǎn)是代碼簡單,容易實(shí)現(xiàn);缺點(diǎn)是不能收發(fā)中文短信。而PDU模式不僅支持中文短信,也能發(fā)送英文短信。PDU模式收發(fā)短信可以使用三種模式:7-bit、8-bit和UCS2編碼。7-bit編碼用于發(fā)送ASCII字符,8-bit編碼用于發(fā)送數(shù)據(jù)消息,UCS2編碼用于發(fā)送Unicode字符(漢字),編碼類型在PDU數(shù)據(jù)包中指定。下面舉例說明PDU編碼的組成。例如要把“有人非法開門!”七個(gè)字符發(fā)送到用戶手機(jī)13909639342,則PDU數(shù)據(jù)為:00 01 03 0D 91 683109699343F2 32 08 0E 67094EBA975E6CD55F0095E8FF01。
PDU數(shù)據(jù)說明如下:
(1)00表示省略短信中心號(hào)碼,由SIM卡決定;(2)01表示文件頭字節(jié);
(3)03表示信息類型;
(4)0D表示被叫號(hào)碼長度;
(5)91表示被叫號(hào)碼類型;
(6)683109699343F2表示被叫號(hào)碼,被叫號(hào)碼經(jīng)過移位處理;(7)32表示協(xié)議標(biāo)識(shí)TP-PID;
(8)08表示數(shù)據(jù)編碼方案TP-DCS,因?yàn)橐l(fā)送Unicode內(nèi)碼,所以使用USC2(16bit)編碼;( 9)0E表示用戶數(shù)據(jù)長度;
(10)67094EBA975E6CD55F0095E8FF01表示用戶數(shù)據(jù)“人非法開門!”。
需要注意的幾個(gè)問題:
(1)所有AT指令的指令符號(hào)、常數(shù)、PDU數(shù)據(jù)包等都是以ASCII編碼形式發(fā)送的。
(2)單片機(jī)向GSM模塊發(fā)送每一條指令后,必須以回車符(0DH)作為該指令的結(jié)束,若沒有這個(gè)回車符,GSM模塊將不識(shí)別這條指令。
(3)GSM模塊向單片機(jī)傳送短信時(shí),其PDTU數(shù)據(jù)包的內(nèi)容是以十六進(jìn)制表示的,但并不是直接向單片機(jī)傳送十六進(jìn)制數(shù)據(jù),而仍然是把每一位十六進(jìn)制數(shù)據(jù)以ASCII編碼發(fā)送。這樣,兩個(gè)字節(jié)的十六進(jìn)制數(shù)就變成4字節(jié)的ASCII碼。但PDU數(shù)據(jù)包中的數(shù)據(jù)字節(jié)長度部分仍然是實(shí)際字節(jié)長度,而不是變成ASCII碼的字節(jié)長度。單片機(jī)接收到數(shù)據(jù)包后,必須將其恢復(fù)成十六進(jìn)制數(shù)據(jù)。
3.3 單片機(jī)與PC機(jī)的通信
PC機(jī)可以通過單片機(jī)讀出EEPROM中存儲(chǔ)的報(bào)警信息、用戶手機(jī)號(hào)碼和撤防的密碼,并可以對(duì)后兩項(xiàng)進(jìn)行修改。
單片機(jī)對(duì)是否進(jìn)行與PC機(jī)通信的判斷既可以通過硬件實(shí)現(xiàn),也可以通過軟件實(shí)現(xiàn),為了簡化硬件,提高系統(tǒng)可靠性,采用軟件實(shí)現(xiàn)狀態(tài)的判別。PC機(jī)與安防系統(tǒng)連通后,當(dāng)PC機(jī)要向單片機(jī)發(fā)送操作指令時(shí),PC機(jī)就改變串口默認(rèn)電平狀態(tài),并維持一段時(shí)間,單片機(jī)檢測(cè)到該電平后,就進(jìn)入與PC機(jī)通信的程序。PC機(jī)完成操作指令的發(fā)送后,串口就恢復(fù)為默認(rèn)電平。單片機(jī)接收到操作指令后,就判斷是“讀取”指令,還是“修改”指令,如果不是這兩條指令,就退出。
4、結(jié)束語
本設(shè)計(jì)方案借助于GSM網(wǎng)絡(luò)和無線通信技術(shù),實(shí)現(xiàn)了系統(tǒng)各個(gè)部分之間的通信無線化。無線報(bào)警器與主機(jī)之間的通信采用高頻無線調(diào)制的方式進(jìn)行;主機(jī)與用戶手機(jī)之間采用GSM網(wǎng)絡(luò)。整個(gè)系統(tǒng)之間的通信無需另外布線,這樣既節(jié)約了成本,又提高了整個(gè)系統(tǒng)通信的可靠程度。整個(gè)系統(tǒng)既適合于城鎮(zhèn)家庭使用,也適合于偏遠(yuǎn)地區(qū)等不便架設(shè)通信線路的地方使用,具有很好的應(yīng)用前景。