基于STM32的GSM短信報警系統(tǒng)的設(shè)計與實現(xiàn)
引言
隨著我國經(jīng)濟建設(shè)的迅速發(fā)展和人民群眾生活水平的極大提高,人們越來越注重自身所處的環(huán)境是否安全。特別是當(dāng)家中無人或者僅有老人孩子時,家庭成員的生命和財產(chǎn)的安全性越來越受到重視。因此,家庭防盜已成為一個重要的社會問題。目前,許多住宅小區(qū)的安防主要依靠傳統(tǒng)的機械式(防盜網(wǎng)、防盜窗)防盜系統(tǒng)。這樣不僅有礙美觀,不符合火災(zāi)逃生的要求,而且不能有效地防止壞人的侵入。隨著電子技術(shù)的飛速發(fā)展,防盜報警系統(tǒng)已迫切從原來的簡單化、局部化向智能化、集成化發(fā)展。當(dāng)前,GSM短信息服務(wù)已作為GSM網(wǎng)絡(luò)的一種基本業(yè)務(wù),基于GSM短信模塊與單片機相連接應(yīng)用于家庭無線防盜報警系統(tǒng)中,讓家庭防盜更及時、更方便,以最直觀的中文短消息形式,直接把案發(fā)地點的情況反映到用戶的手機屏幕上。同時采用一種熱釋電紅外傳感器進行檢測,變有形的傳統(tǒng)防盜網(wǎng)防盜窗為無形的監(jiān)控,給家庭防盜提供最直觀、高效、可靠的保障。
1 系統(tǒng)的總體設(shè)計及工作原理
GSM短信報警系統(tǒng)設(shè)計框圖如圖1所示。整個系統(tǒng)[1]由STM32單片機模塊、熱釋電傳感器模塊、GSM模塊及傳統(tǒng)揚聲器模塊組成。GSM模塊采用芯訊通(SIMCom)公司生產(chǎn)的SIM900A芯片及外圍設(shè)計電路,而熱釋電傳感器模塊采用紅外專用芯片BISS0001的設(shè)計電路。首先當(dāng)熱釋電傳感器模塊檢測到人發(fā)射的紅外線時,通過其外圍放大電路轉(zhuǎn)換成電壓信號傳輸給STM32單片機。單片機判斷熱釋電傳感器模塊送來的數(shù)據(jù),通過串口發(fā)送一個高電平給GSM模塊,使GSM模塊發(fā)送短信到設(shè)定的手機號碼,及時通知主人家里出現(xiàn)了什么情況,
同時使揚聲器發(fā)聲報警,從而實現(xiàn)系統(tǒng)的預(yù)想功能。然而白天當(dāng)主人在家的時候,則不需要設(shè)定防盜功能,
可以關(guān)閉功能;假如主人要離開房屋或夜間睡眠時,則需要打開防護功能。這些 “設(shè)防”、“撤防”的功能,同樣可以通過手機發(fā)送特定短信至GSM模塊的方式進行開啟和關(guān)閉,熱釋電傳感器檢測會隨之起作用,以免引起不必要的麻煩和誤報。
圖1 系統(tǒng)總體框圖
2 系統(tǒng)硬件電路設(shè)計
2.1 STM32F103 最小系統(tǒng)
STM32系列單片機[2]由ST公司生產(chǎn)的專為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計的ARM Cortex-M3內(nèi)核。本系統(tǒng)采用的STM32屬于互聯(lián)型產(chǎn)品,具有以下標(biāo)準(zhǔn)功能:72MHZ主頻,56k字節(jié)Flash,64字節(jié)SRAM,2個看門狗,多個16 位定時器,80%的引腳可以作為通用I/O 口,以及USART、SPI等通信外設(shè),其外設(shè)完全滿足本系統(tǒng)的功能要求。因此,本系統(tǒng)采用STM32F103作為總控制器,其最小系統(tǒng)如圖2所示。
本系統(tǒng)采用4線JTAG接口,即TMS(測試模式選擇)、TCK(測試時鐘)、TDI(測試數(shù)據(jù)輸入)、TDO(測試數(shù)據(jù)輸出),又采用常規(guī)的20pin接口方式,通過仿真器與PC機連接,可以實現(xiàn)在線仿真調(diào)試,方便可靠。系統(tǒng)采用8MHZ晶體振蕩器,此時需要接負載電路。另外,復(fù)位電路的設(shè)計方式簡潔,可以實現(xiàn)系統(tǒng)可靠復(fù)位。
圖2 STM32F103RBT6 最小系統(tǒng)
2.2 GSM 模塊
GSM模塊[3]用芯訊通(SIMCom)公司生產(chǎn)的SIM900A,是一款尺寸緊湊的GSM/GPRS模塊,采用SMT封裝,基于STE的單芯片案,采用ARM926EJ-S架構(gòu),性能強大,支持AT指令。
利用STM32的串口來控制GSM MODEM,單片機與GSM模塊一般采用串行異步通信接口, 通信速度可設(shè)定,通常為19200bps。GSM MODEM與單片機之間采用串口通信的方式,MODEM的TXD、RXD分別為發(fā)送、接收端,與單片機的PA10、PA9連接,組成串口通信。GSM模塊通過把PWRKEY信號拉低一段時間然后釋放來開機。當(dāng)模塊開機后就可以發(fā)送AT命令來控制模塊,用戶可以通過“AT+IPR=x”設(shè)置波特率并把參數(shù)保存。一旦配置為固定波特率,當(dāng)模塊開機時將會從串口收到字符“RDY”。這些字符在自動波特率激活的情況下無法顯示。同樣,可以通過把PWRKEY 信號拉低一段時間然后釋放來關(guān)機。或者使用AT命令“AT+CPOWD=1”關(guān)閉模塊。該命令使模塊從網(wǎng)絡(luò)上注銷,讓軟件進入安全狀態(tài),保存有用數(shù)據(jù),讓然后完全斷開供電。在關(guān)機前,模塊串口將自動發(fā)送下列字符串“NORMAL POWER DOWN”,這之后將不能執(zhí)行AT命令。模塊進入掉電模式,僅僅RTC處于激活狀態(tài)。掉電模式可以通過STATUS引腳來檢測,在掉電模式下此引腳輸出為低電平。GSM主模塊(包括SIM部分)如圖3所示。
圖3 GSM 主模塊(包括SIM 部分)
2.3 熱釋電傳感器模塊
熱釋電傳感器模塊[4]括熱釋電傳感器及外圍放大電路,當(dāng)有人進入傳感器所能檢測到的范圍時,傳感器檢測到能量變化,轉(zhuǎn)換成微弱的電信號,然后通過外圍放大電路放大并轉(zhuǎn)換成電壓信號傳輸給單片機。其作用原理如下:人體都有恒定的體溫,一般在37度,所以會發(fā)出特定波長10um左右的紅外線,被動式紅外探頭就是靠探測人體發(fā)射的10um左右的紅外線而進行工作的。人體發(fā)射的10um左右的紅外線通過菲泥爾濾光片增強后聚集到紅外感應(yīng)源上。由實驗證明,傳感器不加菲涅爾透鏡,其檢測距離小于2m,而加上菲涅爾透鏡后,其檢測距離可增加到10m左右。紅外感應(yīng)源通常采用熱釋電元件,這種元件在接收到人體紅外輻射溫度發(fā)生變化時就會失去電荷平衡,向外釋放電荷,經(jīng)后續(xù)電路檢測處理后就能產(chǎn)生電信號發(fā)送給單片機處理。
熱釋電BISS0001模塊的原理圖如圖4所示。圖中,運算放大器OP1(芯片內(nèi)部)將熱釋電紅外傳感器的輸出信號作第一級放大,然后由C104耦合給運算放大器OP2(芯片內(nèi)部)進行第二級放大,再經(jīng)由電壓比較器COP1和COP2構(gòu)成的雙向鑒幅器處理后,檢出有效觸發(fā)信號Vs去啟動延遲時間定時器,輸出信號Vo經(jīng)晶體管T1放大驅(qū)動繼電器去接通負載。CDS1為光敏電阻,用來檢測環(huán)境照度。當(dāng)作為照明控制時,若環(huán)境較明亮,CDS1的電阻值會降低,使9腳的輸入保持為低電平,從而封鎖觸發(fā)信號Vs。JP1是工作方式選擇開關(guān),當(dāng)JP1跳線帽跳2、3口時,與1端連通,芯片處于不可重復(fù)觸發(fā)工作方式,這種工作方式下即使檢測區(qū)域有人活動模塊也會自動停止輸出一段時間(封鎖延時)然后再檢測,這種工作方式一般習(xí)慣稱為脈沖輸出;當(dāng)JP1跳線帽跳1、2口時,與2端連通,芯片則處于可重復(fù)觸發(fā)工作方式,只要檢測區(qū)域有人模塊就一直有輸出,這種模式一般稱為電平輸出。另外,輸出延遲時間T x由外部的R33和CY2的大小調(diào)整,觸發(fā)封鎖時間Ti由外部的R13和CY1的大小調(diào)整。模塊采用低功耗穩(wěn)壓器件7133A-1,可以保證在很寬的輸入電壓下穩(wěn)定提供3.3V的工作電壓,確保模塊能正常工作。
圖4 熱釋電模塊原理圖
2.4 電源
電源模塊分兩部分:單片機供電模塊和GSM供電模塊。單片機電源采用典型的電源設(shè)計方案,如圖5所示。其中C9和C10是旁路電容,起到抑制干擾的作用,而C11和C12 是電解電容,起到濾波的作用;一般大電容旁邊并聯(lián)一個小電容的目的是降低高頻內(nèi)阻,因為大的電解電容一般采用卷繞工藝制造,所以等效電感較大;小電容可以提供一個小內(nèi)阻的高頻通道,降低電源全頻帶內(nèi)阻。這個電路在實際中比較常見。
圖5 電源部分電路
而SIM900A模塊電源采用VBAT為3.4V到4.5V的單電源供電,由于和單片機工作電壓不同,由單獨電源模塊供電,如圖6所示。VBAT端輸出電壓4.2V給GSM模塊使用。
圖6 GSM 模塊的電源
2.5 揚聲器
揚聲器部分主要包括一個繼電器,當(dāng)單片機相應(yīng)端口置為高電平時,驅(qū)動繼電器,使得揚聲器電路接通,發(fā)出聲響以起到報警作用。
3 系統(tǒng)軟件設(shè)計
3.1 AT 指令
AT指令集是從TEC(Terminal Equipment)或DTE (DataTerminal Equipment)向TA (Terminal Adapter)或DCE (DataCircuit Terminating Equipment發(fā)送的通過TATE發(fā)送AT命令來控制MS (Mobile Station)的功能與GSM網(wǎng)絡(luò)業(yè)務(wù)進行交互,用戶可以通過AT命令進行呼叫短信電話本數(shù)據(jù)業(yè)務(wù)補充業(yè)務(wù)傳真等方面的控制。下面是一些短消息相關(guān)的常用AT指令:
目前,發(fā)送短消息常用Text和PDU(Protocol Data Unit,協(xié)議數(shù)據(jù)單元)模式。使用Text模式收發(fā)短信代碼簡單,實現(xiàn)起來十分容易,但最大的缺點是不能收發(fā)中文短信;而PDU模式不僅支持中文短信,也能發(fā)送英文短信。所以此處使用PDU模式來收發(fā)短信。PDU模式收發(fā)短信可以使用3種編碼:7-bit、8-bit和UCS2編碼。7-bit編碼用于發(fā)送普通的ASCII字符,8-bit 編碼通常用于發(fā)送數(shù)據(jù)消息, UCS2 編碼用于發(fā)送Unicode字符。該模塊集射頻電路和基帶于一體,提供標(biāo)準(zhǔn)的AT命令接口,為數(shù)據(jù)、語音、短消息和傳真提供快速、可靠、安全的傳輸。
首先使用命令“AT + CMGF = 0<CR><LF>”來選擇PDU模式,比如SMSC(短信中心)號碼是+8613800471500,對方號碼是13656639676,消息內(nèi)容是:“你好”。則手機發(fā)送的PDU串是
08 91 68 31 08 40 17 05 F0 11 000D 91 68 31 49 17 87 90 F6 00 08 00 06 4F60597D0021。
3.2 系統(tǒng)程序主流程圖
系統(tǒng)程序主流程圖如圖7所示,系統(tǒng)先初始化,然后檢測是否設(shè)防。因為單片機利用AT指令控制GSM模塊,將數(shù)據(jù)傳送出去。AT指令按照GSM模塊支持的AT指令格式書寫,通過單片機的串口發(fā)送出去。所以此模塊的“設(shè)防”,“撤防”則可以通過以下方式:如果模塊被命令“AT+CFUN=0”設(shè)置成最小功能模式, 則關(guān)閉射頻功能和SIM卡的功能,在這種情況下,串口仍然可以繼續(xù)使用,但是和射頻功能及SIM卡功能相關(guān)的AT命令不能使用。此時為撤防狀態(tài)。當(dāng)模塊通過“AT+CFUN=0”設(shè)置為最小功能,模塊可以通過“AT+CFUN=1”命令返回全功能模式。此時為設(shè)防狀態(tài)。一旦“設(shè)防”之后,系統(tǒng)正常工作。如果單片機通過熱釋電模塊檢測到有人進入,馬上通過串口發(fā)送一個高電平到GSM模塊,使模塊發(fā)送短信給主人,同時揚聲器發(fā)聲報警。
圖7 系統(tǒng)程序主流程圖
4 結(jié)束語
該系統(tǒng)有以下特色:由于該系統(tǒng)設(shè)置了具有“設(shè)防”和“撤防”功能,可以避免誤報;同時系統(tǒng)中揚聲器和軟件配合,能迅速而有效地起到報警作用;另外,借助先進穩(wěn)定、成熟高效的GSM 移動網(wǎng)絡(luò),使得該報警系統(tǒng)更具智能化和集成化,報警方式更顯直觀性和可靠性;最后可針對家庭的實際需要開發(fā)其他功能,如添加攝像頭等,使系統(tǒng)更加完善。
總之,由于系統(tǒng)結(jié)構(gòu)設(shè)計合理,STM32 單片機與GSM 模塊技術(shù)應(yīng)用到位,功能電路實現(xiàn)較好,系統(tǒng)性能良好、穩(wěn)定,較好地達到了家庭防盜要求的各項指標(biāo)。而且該系統(tǒng)成本低、實用性和可操作性強,有著一定的應(yīng)用價值,能得到廣泛的應(yīng)用和發(fā)展。