房 穎
(福州大學(xué)物理與信息工程學(xué)院,福建福州 350108)
近年來,隨著網(wǎng)絡(luò)通信技術(shù)、電子技術(shù)和計算機技術(shù)的迅猛發(fā)展,智能家居逐步走進(jìn)人們的生活,家庭安防成為智能家居的重要組成部分,備受人們的關(guān)注。目前市場上常見的居家智能安防產(chǎn)品從功能上講基本上是被動單向報警,家中報警器識別到異常情況后或發(fā)聲報警,或通過電話向主人報警,或向小區(qū)的接警值班中心報警,然后系統(tǒng)處于等待狀態(tài),不能進(jìn)行遠(yuǎn)程布控,不能進(jìn)行報警實時處理以減少生命和財產(chǎn)損失,功能上存在明顯的不足。為解決傳統(tǒng)安防系統(tǒng)的缺點和不足,滿足人們對智能家居的需要,筆者采用嵌入式系統(tǒng)與以太網(wǎng)網(wǎng)絡(luò)通信技術(shù)相結(jié)合,開發(fā)了一種基于PIC單片機的智能家居安防監(jiān)控報警系統(tǒng),該系統(tǒng)以PIC單片機為核心,用以太網(wǎng)控制芯片ENC28J60,同時可監(jiān)視多個重要點(如門、窗等),發(fā)現(xiàn)盜情及時就地報警,并通過電信寬帶網(wǎng)絡(luò)平臺進(jìn)行遠(yuǎn)程報警及全面的聯(lián)動處警,性能穩(wěn)定可靠,實用性與適用性強,這種方法采用的是單MCU的方式,硬件接口電路相對簡單,體積小,而且成本低。
智能家居安防報警系統(tǒng)主要由探測器報警輸入、控制單元、以太網(wǎng)通信、報警輸出等部分組成,其工作原理如圖1所示。該系統(tǒng)通過無線/有線模塊實現(xiàn)與安防探測器的信號交互,當(dāng)探測到有非法人員入侵、發(fā)生火災(zāi)等情況時,通過專門接口與聲光報警器相連,現(xiàn)場立即發(fā)出報警信號。單片機控制器會判斷何處發(fā)生報警,并且將報警信息通過以太網(wǎng)傳到接警中心平臺,接警中心平臺收到信息后可選擇以短信或電話報警形式通知業(yè)主或公安人員。該系統(tǒng)還能保證戶主在外時通過以太網(wǎng)網(wǎng)絡(luò)隨時了解家里的情況,并能對系統(tǒng)進(jìn)行實時設(shè)防、撤防等設(shè)置以實現(xiàn)遠(yuǎn)程控制功能。
圖1 智能家居安防報警系統(tǒng)工作原理
系統(tǒng)硬件結(jié)構(gòu)如圖2所示,主要包括探測器報警輸入接口、微控制器、以太網(wǎng)控制芯片、外部EEPROM存儲器、報警輸出、32字符液晶屏、4個發(fā)光二極管、電源電路、復(fù)位電路、鍵盤等部分。本文主要介紹微控制器、以太網(wǎng)控制芯片、EEPROM、報警輸入輸出單元的設(shè)計方法。
圖2 報警系統(tǒng)結(jié)構(gòu)示意圖
系統(tǒng)中微控制器的主要作用是對報警輸入輸出I/O口和其他部分進(jìn)行控制,同時實現(xiàn)接收和傳送相關(guān)數(shù)據(jù)、處理以太網(wǎng)通信等功能,因此要選用具有較多的通用I/O口和外圍資源豐富、便于構(gòu)建外圍電路的芯片。本系統(tǒng)微控制器選用的是高性能 PIC單片 PIC24FJ256GA106,PIC24FJ256GA106是Microchip公司開發(fā)的16位通用閃存單片機,具有成本低、設(shè)計靈活、可靠性高等特點。PIC24FJ256 MCU模塊采用16位(數(shù)據(jù))改良的哈佛架構(gòu),并帶有增強型指令集,工作速度達(dá)到16MIPS,滿足運行多種網(wǎng)絡(luò)協(xié)議的要求,而且具有豐富的外設(shè)接口,其SPI接口允許與外設(shè)進(jìn)行高速的同步數(shù)據(jù)傳輸,這些外設(shè)包括串行EEPROM、移位寄存器、顯示驅(qū)動器等[1]。
以太網(wǎng)控制芯片選用ENC28J60。目前在嵌入式系統(tǒng)的開發(fā)中,比較常用的獨立以太網(wǎng)控制器采用的封裝均超過80腳,如RTL8019AS、CS8900A均為100腳,這些器件不僅結(jié)構(gòu)復(fù)雜、體積大,而且價格相對昂貴,系統(tǒng)開銷也較大。而Microchip推出28引腳獨立以太網(wǎng)控制器ENC28J60,可為嵌入式系統(tǒng)提供低引腳數(shù)、低成本、精簡的遠(yuǎn)程通信解決方案。
ENC28J60只支持SPI模式O。其SPI端口要求SCK在空閑狀態(tài)時為低電平,并且不支持時鐘極性選擇。在SCK的每個上升沿移入數(shù)據(jù),命令和數(shù)據(jù)通過SI引腳送入器件;在SCK的下降沿從SO引腳輸出數(shù)據(jù)。當(dāng)執(zhí)行操作時,CS引腳必須保持低電平,當(dāng)操作完成時返回高電平。由于LEDA和LEDB引腳支持復(fù)位時的自動極性檢測,可以在這兩個引腳上以拉電流或灌電流點亮LED的兩種方式連接LED。系統(tǒng)復(fù)位時,ENC28J60將檢測LED的連接方式,并將LED驅(qū)動為PHLCON寄存器配置的默認(rèn)狀態(tài)。本設(shè)計采用拉電流的方式點亮LED,則復(fù)位時此位清零且PHY默認(rèn)為在半雙工模式下運行[2]。其與單片機PIC24FJ256GA106的接口電路原理如圖3所示。
圖3 基于ENC28J60的嵌入式網(wǎng)絡(luò)接口的硬件電路原理圖
由于EEPROM具有結(jié)構(gòu)簡單、高密度、可靠性好、功耗省、可重復(fù)擦寫10萬次以上,數(shù)據(jù)可靠保持超過100年等優(yōu)點,能快速多次重復(fù)寫入或擦除,而且具有可選擇的軟件數(shù)據(jù)保護機制用于預(yù)防誤寫入[3]。外部EEPROM存儲器選用25LC256,該芯片支持2線串行接口,可以存儲最大32K數(shù)據(jù),存儲量大。主要用于存放本地網(wǎng)頁代碼和重要數(shù)據(jù),如用戶名、密碼、接警平臺服務(wù)器名、收到的探測器編碼等,即使掉電,程序和數(shù)據(jù)也不會丟失。
本系統(tǒng)通過無線/有線模塊實現(xiàn)與安防探測器的信號交互,完成報警輸入輸出的功能。
信號輸入接口電路由接收模塊TDL208及外圍電路構(gòu)成,其電路原理如圖4所示。TDL208高頻接收模塊是采用進(jìn)口SMD器件,6.5G高頻三極管,高Q值電感生產(chǎn),用于防盜系統(tǒng),性能穩(wěn)定可靠,靈敏度高,功耗低,接收電路自身輻射極小,加上電路模塊背面網(wǎng)狀接地銅箔的屏蔽作用,可以減少自身振蕩的泄漏和外界干擾信號的侵入[4]。其接收帶寬約500KHz,中心頻率調(diào)整在315MHz,接收芯片上的微調(diào)電感約有5MHz頻率的可調(diào)范圍,但使用時盡量不要輕易變動,以免影響性能。
信號輸出接口電路由發(fā)送模塊TDL9912與周邊電路組成,其電路原理如圖5所示。TDL9912發(fā)射模塊采用進(jìn)口SMD器件,采用聲表諧振器穩(wěn)頻,頻率穩(wěn)定度很高,工作電壓范圍極寬(3V-12V)[5],發(fā)射功率大,功耗低,體積小,適合用于防盜報警場合。但這兩個芯片無自帶編碼,因此采用軟解碼方式。
圖4 輸入接口電路
圖5 輸出接口電路
智能家居安防監(jiān)控報警系統(tǒng)主要包括本地主機設(shè)置處理模塊、本地網(wǎng)頁設(shè)置模塊、網(wǎng)絡(luò)連接模塊、網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控處理模塊,具體結(jié)構(gòu)如圖6所示。限于篇幅,本文主要介紹該系統(tǒng)的主程序、以太網(wǎng)驅(qū)動及通信程序、網(wǎng)絡(luò)處理模塊中的DHCP處理程序、網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控處理程序、本地網(wǎng)頁設(shè)置程序。
圖6 智能家居安防監(jiān)控報警系統(tǒng)
本系統(tǒng)采用C語言編寫程序,軟件可讀性強,便于調(diào)試與維護升級,并且有利于較復(fù)雜控制算法的實現(xiàn)。根據(jù)系統(tǒng)的控制功能,程序主要包括初始化、網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控處理、主機設(shè)置、本地網(wǎng)頁設(shè)置等。其主程序流程如圖7所示。
本系統(tǒng)以太網(wǎng)主要是使處理器接收來自接警中心平臺的數(shù)據(jù)和將數(shù)據(jù)傳輸?shù)浇泳行钠脚_,同時處理來自以太網(wǎng)的信息。該部分的核心是以太網(wǎng)中數(shù)據(jù)的發(fā)送與接收。以太網(wǎng)的驅(qū)動程序主要是初始化芯片、單片機的控制程序和網(wǎng)絡(luò)數(shù)據(jù)傳輸程序。
圖7 系統(tǒng)主程序流程
初始化設(shè)置工作包括對接收緩沖器、接收過濾器、等待振蕩器起振定時器(OST)、MAC寄存器、PHY寄存器進(jìn)行初始化。進(jìn)行初始化設(shè)置之前首先關(guān)閉單片機的中斷輸入,對RESET引腳給定一個持續(xù)的低電平復(fù)位信號,設(shè)置完成所有需要的寄存器后,判斷以太網(wǎng)狀態(tài)中的時鐘啟動標(biāo)志位是否置位,最后開中斷。
網(wǎng)絡(luò)數(shù)據(jù)傳輸主要包括對要發(fā)送的數(shù)據(jù)按照以太網(wǎng)數(shù)據(jù)幀格式進(jìn)行封裝并發(fā)送以及對接收的數(shù)據(jù)幀進(jìn)行解包兩個方面,其流程如圖8所示。
系統(tǒng)網(wǎng)絡(luò)連接處理模塊可采用手動配置IP地址或是引用DHCP機制自動獲取IP地址,并引入DHCP Option 60參數(shù)機制。
圖8 網(wǎng)絡(luò)數(shù)據(jù)發(fā)送及接收流程圖
為解決前端設(shè)備私網(wǎng)穿透的問題,需要前端工程施工人員手動在用戶NAT網(wǎng)絡(luò)設(shè)備上進(jìn)行NAT端口靜態(tài)映射配置。但這種數(shù)據(jù)配置方式對業(yè)務(wù)開展與后期維護均帶來不便。因此,需要引入一種技術(shù)手段來簡化業(yè)務(wù)安裝,變手動配置為自動配置。由于智能安防系統(tǒng)針對家庭用戶,而客戶基礎(chǔ)絕大部分均為ADSL寬帶接入,因此,通過與智能家居中的家庭網(wǎng)關(guān)配合,引入DHCP Option 60參數(shù)機制可完成在家庭網(wǎng)關(guān)上自動配置NAT端口靜態(tài)映射。其與普通DHCP不同之處在于,告警主機第一次登錄尋找家庭網(wǎng)關(guān)時附上DHCP DISCOVER外還加上Option 60的信息,向網(wǎng)絡(luò)進(jìn)行廣播。而家庭網(wǎng)關(guān)收到DHCP REQUEST封包后,將依據(jù)Option 60的信息及DHCP Client的MAC地址等信息給予相應(yīng)的DHCP ACK響應(yīng)報文,其中包括完成自動配置的DHCP Option 43信息。
家庭網(wǎng)關(guān)使用下列映射原則自動添加NAT端口公私網(wǎng)靜態(tài)映射:
公網(wǎng)映射端口=(Last Internal IP Address Segment)&&31+(Internal IP Port);
智能家居安防監(jiān)控報警系統(tǒng)需要具備注冊和心跳功能。系統(tǒng)啟動和運行的過程中,需要發(fā)送注冊消息給接警中心的注冊服務(wù)器;運行過程中也需要周期性的發(fā)送心跳消息給接警中心的注冊服務(wù)器,以表明其正在運行。
智能家居安防監(jiān)控報警系統(tǒng)中,用戶可以在家里或通過遠(yuǎn)程登錄方式對告警主機的防區(qū)及整體進(jìn)行布防或撤防設(shè)置;告警主機會上報自身和探頭布防/撤防狀態(tài)變化的信息給告警服務(wù)器,同時還要上傳探頭的告警狀態(tài)及自身的告警,如電源掉電等。其流程如圖9所示。
圖9 網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控流程圖
在本系統(tǒng)中嵌入TCP/IP協(xié)議,就可以實現(xiàn)以太網(wǎng)的接入,再輔以相應(yīng)的應(yīng)用層協(xié)議就可以實現(xiàn)遠(yuǎn)程控制功能。本地網(wǎng)頁設(shè)置采用HTTP協(xié)議。本系統(tǒng)采用靜態(tài)網(wǎng)頁訪問的形式,使用HTML語言來編寫網(wǎng)頁,運用Microchip提供的MPFS.exe工具上傳網(wǎng)頁,網(wǎng)頁代碼存儲在EEPROM中。嵌入式系統(tǒng)把要傳輸?shù)臄?shù)據(jù)、參數(shù)等存入EEPROM中,當(dāng)有客戶端請求連接時,這些數(shù)據(jù)信息通過HTTP協(xié)議發(fā)送至瀏覽器,這樣就可以在遠(yuǎn)端PC機的瀏覽器中訪問存儲在系統(tǒng)中的網(wǎng)頁,從而實現(xiàn)遠(yuǎn)程訪問及控制,如圖10所示。
基于PIC單片機的智能家居安防監(jiān)控報警系統(tǒng)已在高校實驗中心及部分家庭、商戶中試用,實現(xiàn)了本地報警、通過電信寬帶網(wǎng)絡(luò)平臺進(jìn)行報警及全面的聯(lián)動處警,結(jié)果表明,該系統(tǒng)運行穩(wěn)定、可靠性高、誤報警率低、使用簡單、成本低廉,能夠滿足用戶的需求。該系統(tǒng)充分利用嵌入式網(wǎng)絡(luò)通信上的優(yōu)勢,實現(xiàn)了報警迅速、遠(yuǎn)程監(jiān)控等功能,還能對該系統(tǒng)進(jìn)行軟硬件的升級和整合新的功能模塊,滿足智能家居安防未來發(fā)展的需求。該系統(tǒng)還可應(yīng)用在銀行、圖書館和博物館等需要安防和遠(yuǎn)程監(jiān)控的地方,應(yīng)用廣泛,具有可開發(fā)性及可拓展性。
圖10 存儲于系統(tǒng)中的網(wǎng)頁
[1]PIC24FJ256GA110系列數(shù)據(jù)手冊·具有外設(shè)引腳選擇功能的64/80/100引腳16位通用閃存單片機[EB/OL].[2009-10-2].http://www.microchip.com/.
[2]ENC28J60數(shù)據(jù)手冊·帶SPI接口的獨立以太網(wǎng)控制器[EB/OL].[2009-10-2].http://www.microchip.com/.
[3]杜支華,陶宇峰,王曉玲,陳芳.64kB電可擦除只讀存儲器研究與設(shè)計[J].電子與封裝,2009(3).
[4]TDL-208使用說明[EB/OL].[2009-10-2].http://www.k6271.com/product/product4/TDL208.pdf.
[5]TDL-9912 使用說明 [EB/OL].[2009-10-2].http://www.k6271.com/product/product4/TDL9912.pdf.