楊 璐, 劉寶棟, 王銀濤
(河北工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院,天津 300401)
近年來(lái),由于IT產(chǎn)業(yè)的高速發(fā)展,網(wǎng)絡(luò)在人們工作生活中的大量普及以及單片機(jī)功能的拓展,使得無(wú)線通信、無(wú)線控制、無(wú)線定位、數(shù)字家庭等等先進(jìn)的技術(shù)和設(shè)備逐漸的進(jìn)入到人們的生活中。在城市,人口密度的迅速增加造成各種公共設(shè)施的擁堵,快捷的、方便的溝通、交流、傳遞方式成為人們的迫切需要。ZigBee技術(shù)的誕生,以其低速率無(wú)線傳輸、射頻成本低、節(jié)點(diǎn)能耗小、隨時(shí)接入等特點(diǎn),將人們的生活帶入到智能化的遠(yuǎn)程控制時(shí)代。進(jìn)入21世紀(jì),傳感器網(wǎng)絡(luò)成為是重要技術(shù)之一,智能家居系統(tǒng)是通過(guò)計(jì)算機(jī)技術(shù)、嵌入式系統(tǒng)和網(wǎng)絡(luò)通信技術(shù)等先進(jìn)技術(shù),將家庭中的各種電器設(shè)備(如照明設(shè)備、環(huán)境監(jiān)控、安防系統(tǒng)、智能家電)通過(guò)互聯(lián)網(wǎng)絡(luò)連接到一起的多功能無(wú)線控制系統(tǒng)。一方面,智能家居使用戶有更方便的手段管理家庭設(shè)備;另一方面,可以使家庭中的不同設(shè)備之間實(shí)現(xiàn)互通,不需要人工控制也能根據(jù)不同的狀態(tài)互相運(yùn)行,它對(duì)提高人們的生活質(zhì)量,創(chuàng)造舒適、安全、便捷的生活空間有著非常重要的意義[1]。
隨著人們生活居住條件的不斷改善,在現(xiàn)代智能化居室環(huán)境的改造和建設(shè)中,家庭安防系統(tǒng)是很重要的組成部分。但目前多數(shù)的安防系統(tǒng)主要側(cè)重于監(jiān)控和異狀報(bào)警功能,沒有起到切實(shí)的防范作用。本文利用ZigBee無(wú)線網(wǎng)絡(luò)技術(shù),通過(guò)家庭無(wú)線路由網(wǎng)絡(luò)將門鎖控制與窗戶的開關(guān)控制連接在一起,使得人們?cè)阪i門的同時(shí)自動(dòng)地鎖死家中的每一扇窗戶,大大節(jié)省了人們出行前的安全檢查時(shí)間,提高了家庭安防指數(shù)。同時(shí),整體的設(shè)計(jì)系統(tǒng)可以根據(jù)實(shí)際應(yīng)用情況加以簡(jiǎn)單修改后也可以應(yīng)用到其他家庭智能控制領(lǐng)域中。
系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示。按照各部分功能不同可以將系統(tǒng)劃分為門鎖狀態(tài)信息采集模塊、中心控制模塊和鎖窗執(zhí)行模塊。考慮ZigBee通信距離的限制,出于節(jié)約成本角度考慮,系統(tǒng)按照星形網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)。其中門鎖信息采集模塊通過(guò)傳感裝置采集上鎖和開鎖狀態(tài),然后將信息發(fā)送給中心控制模塊;鎖窗執(zhí)行模塊在收到中心控制模塊發(fā)送的控制信息后,驅(qū)動(dòng)執(zhí)行電機(jī)完成鎖窗動(dòng)作。設(shè)計(jì)實(shí)驗(yàn)實(shí)現(xiàn)系統(tǒng)為成都無(wú)線龍開發(fā)的C51RF-3-JX教學(xué)系統(tǒng)。該系統(tǒng)包括一塊實(shí)驗(yàn)板、一塊CPU板和兩塊移動(dòng)擴(kuò)展板,移動(dòng)擴(kuò)展板上外掛ZigBee無(wú)線模塊;采用PIC18F4620單片機(jī)和CC2420無(wú)線ZigBee芯片。
圖1 系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)
CC2420芯片是Chipcon As公司推出的第一款符合2.4GHZ IEEE 802.15.4標(biāo)準(zhǔn)的射頻收發(fā)器。它基于 Chipcon 公司的SmartRF 03 技術(shù),以0.18 μm CMOS工藝制成只需極少外部元器件,性能穩(wěn)定且功耗極低。CC2420的敏感性和選擇性指標(biāo)均超過(guò)IEEE802.15.4標(biāo)準(zhǔn)的要求,可保障短距離通信中信號(hào)的有效性和可靠性[2]。利用此芯片開發(fā)的無(wú)線通信設(shè)備的數(shù)據(jù)傳輸率可達(dá)到250 kb/s,同時(shí)可以支持多點(diǎn)之間的快速組網(wǎng)?;贑C2420芯片所開發(fā)的短距離射頻傳輸系統(tǒng)所具備的成本低、功耗小的特點(diǎn),滿足了電池長(zhǎng)期供電的要求。同時(shí)還具有組網(wǎng)靈活、抗毀性強(qiáng)、硬件加密、安全可靠等特點(diǎn),為工業(yè)流程監(jiān)控、傳感網(wǎng)絡(luò)檢測(cè)、家居智能控制、電子消費(fèi)、智能玩具等提供了理想的解決方案。
PIC18F4620系列芯片采用了那瓦技術(shù),通過(guò)其備用運(yùn)行模式、多空閑模式、動(dòng)態(tài)模式切換和較低的關(guān)鍵模塊功耗等功能在芯片工作時(shí)顯著降低功耗;10種不同的振蕩器選項(xiàng),使用戶在開發(fā)應(yīng)用硬件時(shí)有了更大的選擇范圍[3]。
中心控制模塊設(shè)計(jì)結(jié)構(gòu)如圖2所示。該模塊是整個(gè)系統(tǒng)的核心,用于監(jiān)控門鎖信息采集模塊的狀態(tài),并根據(jù)獲取的信息自動(dòng)采取某些操作,或者根據(jù)用戶對(duì)主控系統(tǒng)的操作,向各執(zhí)行模塊發(fā)出控制指令。因此,該節(jié)點(diǎn)在網(wǎng)絡(luò)中起到協(xié)調(diào)器的作用。
圖2 中心控制模塊結(jié)構(gòu)圖
門鎖狀態(tài)采集模塊實(shí)現(xiàn)功能:通過(guò)置于鎖芯內(nèi)傳感裝置采集鎖芯開、關(guān)門狀態(tài),經(jīng)PIC18F4620芯片做數(shù)據(jù)處理后發(fā)送給中心控制模塊;中心模塊收到信息后發(fā)送確認(rèn)信息給本模塊,確認(rèn)信息通過(guò)CC2420接收傳送至處理器,此時(shí)指示燈點(diǎn)閃爍,確認(rèn)數(shù)據(jù)發(fā)送成功(見圖3)。鎖窗執(zhí)行模塊結(jié)構(gòu)如圖4所示,射頻芯片接收到中心控制模塊發(fā)送的控制信號(hào)后傳送到PIC芯片,由芯片控制執(zhí)行電路電源導(dǎo)通,機(jī)械部件實(shí)現(xiàn)鎖窗動(dòng)作;當(dāng)安放在窗框上的傳感器感受到窗戶完全關(guān)閉后,將信號(hào)反饋給PIC芯片,再由芯片發(fā)出切斷執(zhí)行電路電源的控制信號(hào),鎖窗過(guò)程完成[4-5]。
圖3 門鎖狀態(tài)采集模塊結(jié)構(gòu)
圖4 鎖窗執(zhí)行模塊結(jié)構(gòu)圖
在通過(guò)C51RF-3-JX開發(fā)系統(tǒng)模擬實(shí)現(xiàn)過(guò)程中,執(zhí)行電路選擇電機(jī)控制電路,由PIC18F4620的RE0腳輸出高電平信號(hào),觸發(fā)三極管導(dǎo)通,繼電器吸合,電機(jī)得電轉(zhuǎn)動(dòng),RE0腳輸出低電平時(shí),三極管截止,繼電器斷開,電機(jī)停轉(zhuǎn)。傳感器部分通過(guò)點(diǎn)動(dòng)按鈕模擬實(shí)現(xiàn),按下按鈕,視為傳感器感受到壓力變化,電信號(hào)由RE1腳送入芯片。
ZigBee協(xié)議棧的設(shè)計(jì)主要從三部分進(jìn)行規(guī)劃:任務(wù)調(diào)度、協(xié)議棧模塊和公共模塊配置。協(xié)議棧模塊的結(jié)構(gòu)與ZigBee分層結(jié)構(gòu)相同,每個(gè)模塊中存放各自的驅(qū)動(dòng)程序,當(dāng)系統(tǒng)上電初始化以后,系統(tǒng)處于低功耗工作狀態(tài),等待任務(wù)調(diào)度根據(jù)當(dāng)前任務(wù)來(lái)激活相應(yīng)模塊,系統(tǒng)被喚醒,進(jìn)入中斷處理事件,處理結(jié)束后繼續(xù)進(jìn)入低功耗狀態(tài);如果有多個(gè)任務(wù)同時(shí)發(fā)生,則根據(jù)優(yōu)先級(jí)逐次處理事件。公共模塊中提供定時(shí)器、通用I/O口、通用異步收發(fā)器UART、數(shù)模轉(zhuǎn)換ADC的應(yīng)用程序接口API等的驅(qū)動(dòng)程序,可以被所有協(xié)議棧模塊根據(jù)需要調(diào)用[6]。
2.2.1 CC2420 初始化設(shè)置
芯片內(nèi)部共有33個(gè)16位結(jié)構(gòu)寄存器和15個(gè)命令脈沖寄存器及2個(gè)8 bit訪問(wèn)獨(dú)立的發(fā)射和接收緩沖器的RXFIFO、TXFIFO寄存器。這些寄存器在芯片復(fù)位時(shí)已經(jīng)設(shè)置了一些初始值,例如:BATTMON_E電池監(jiān)控啟用;MDMCTRL0.AUTOCRC自動(dòng)循環(huán)冗余校驗(yàn);IN0.XOSC16M_BYPASS啟用外部晶振;IOCFG0.FIFOP_THR設(shè)置RXFIFO緩沖器中字節(jié)門限值等。在實(shí)際應(yīng)用時(shí),還要根據(jù)具體情況進(jìn)行初始化設(shè)置[7-8]。
初始化設(shè)置是根據(jù)重置寄存器參數(shù)定義信息包傳輸?shù)幕靖袷?、定義PIC18F4620與CC2420接口、打開電壓調(diào)節(jié)器、啟動(dòng)晶振、復(fù)位芯片的過(guò)程。一般情況下將寄存器設(shè)置為如下狀態(tài):SXOSCON—打開晶振;MDMCTRL0=0x0AF2,打開自動(dòng)應(yīng)答;MDMCTRL1=0x0500,關(guān)聯(lián)門限值 CORR_THR=20;IOCFG0=0x007F設(shè)置FIFOP_THR=127,當(dāng)RXFIFO中的字節(jié)數(shù)超過(guò)此門限值時(shí),F(xiàn)IFOP變?yōu)楦唠娖?SECCTRL0=0x01C4,關(guān)閉安全使能。
寄存器初始化程序如下:
2.2.2 緩沖模式
首先使能信息包接收CC2420自動(dòng)應(yīng)答和FIFOP開中斷處理,并通過(guò)FIFOP終端服務(wù)程序接收信息,由于FIFOP接單片機(jī)的 RB3腳,可以用單片機(jī)的CCP2來(lái)捕捉FIFOP的上升沿,以判斷是否接受到完整的數(shù)據(jù)包;當(dāng)RXFIFO緩沖器有溢出或信息包格式不合法時(shí)關(guān)中斷,停止信息包的接收。寄存器配置如下:DMCTRL1.RX_MODE=0;SRXON-啟用接收;SFLUSHRXRX-FIFO緩沖器溢出,復(fù)位解調(diào)器;RXCTRL0=0x12E5,低噪音放大器增益中等[9-10]。
信息包的發(fā)送選擇IEEE 802.15.4MAC層數(shù)據(jù)幀格式和8位網(wǎng)絡(luò)地址格式傳送。首先發(fā)起傳送,信道評(píng)估為空閑后,啟動(dòng)幀校驗(yàn)并發(fā)送;當(dāng)無(wú)字節(jié)寫入,TXFIFO緩沖器跳低電平,發(fā)送自動(dòng)停止。寄存器設(shè)置如下:STXON啟用發(fā)送;CTRL1.TX_MODE=0;FSCTRL=0x4165,選擇 2405 MHz,第 11 信道。TXCTRL=0XA0FF,輸出功率為0 dBm。
寄存器初始化程序如下:
中心控制模塊在整個(gè)網(wǎng)絡(luò)中相當(dāng)于協(xié)調(diào)器的作用。因此,在系統(tǒng)初始化完畢后,需要通過(guò)它建立一個(gè)網(wǎng)絡(luò),并自動(dòng)地搜索周圍需要加入網(wǎng)絡(luò)的節(jié)點(diǎn)是否存在,如果存在,由協(xié)調(diào)器給這個(gè)節(jié)點(diǎn)配置一個(gè)網(wǎng)絡(luò)地址。系統(tǒng)中門鎖狀態(tài)采集模塊所發(fā)出的信號(hào)相當(dāng)于一個(gè)控制信號(hào),協(xié)調(diào)器需要檢測(cè)到這個(gè)信號(hào)后向其他若干個(gè)鎖窗模塊發(fā)出動(dòng)作信號(hào)。同樣是半功能節(jié)點(diǎn),但需要門鎖狀態(tài)采集模塊先加入網(wǎng)絡(luò),然后再逐一的將鎖窗模塊加入到網(wǎng)絡(luò)中[11-15]。圖中控制信號(hào)轉(zhuǎn)發(fā)部分流程細(xì)節(jié)參見圖5。
圖5 協(xié)調(diào)器數(shù)據(jù)收發(fā)程序流程圖
系統(tǒng)中存在兩類功能不同的終端設(shè)備:一是采集控制信號(hào)的終端設(shè)備;另一個(gè)是執(zhí)行控制信號(hào)的終端設(shè)備。前者主要是向協(xié)調(diào)器發(fā)送信號(hào),而后者則是實(shí)時(shí)地監(jiān)控有無(wú)通過(guò)協(xié)調(diào)器轉(zhuǎn)發(fā)的信號(hào),并予以接受。雖然具體的執(zhí)行功能不同,但由于是半功能節(jié)點(diǎn),所以都需要有加入網(wǎng)絡(luò)的流程,如圖6(a)所示。只有在終端節(jié)點(diǎn)成功加入已有網(wǎng)絡(luò)以后,才能執(zhí)行各自的功能。門鎖控制信號(hào)采集模塊數(shù)據(jù)發(fā)送流程如圖6(b)所示;鎖窗控制模塊數(shù)據(jù)接收流程如圖6(c)所示。
圖6 整體流程圖
系統(tǒng)的設(shè)計(jì)與開發(fā)基于C51RF-3-JX系統(tǒng),執(zhí)行電路與芯片外圍電路搭接完成后,將ZigBee協(xié)議棧軟件植入芯片,進(jìn)行網(wǎng)絡(luò)搭建和通信調(diào)試,具體的步驟如下:
(1)中心控制模塊作為協(xié)調(diào)器首先上電初始化,初始化結(jié)束后協(xié)調(diào)器會(huì)自動(dòng)生成網(wǎng)絡(luò),等待節(jié)點(diǎn)加入網(wǎng)絡(luò)。
(2)將門鎖采集模塊上電,申請(qǐng)加入網(wǎng)絡(luò),按下測(cè)試按鍵,如果指示燈閃爍,說(shuō)明終端設(shè)備已經(jīng)加入網(wǎng)絡(luò);然后對(duì)鎖窗模塊進(jìn)行相同操作。
(3)將中心模塊通過(guò)RS232接口與PC機(jī)相連,測(cè)試數(shù)據(jù)收發(fā)是否正常。通過(guò)門鎖采集模塊連續(xù)發(fā)送數(shù)據(jù)“0~9”,觀察協(xié)調(diào)器是否正確接收,然后將同樣的數(shù)據(jù)發(fā)送至接收模塊。
無(wú)線節(jié)點(diǎn)通信調(diào)試正常后,進(jìn)行終端模塊控制調(diào)試,上電后按下測(cè)試按鈕,測(cè)試最小系統(tǒng)是否能通過(guò)串口下載程序;將PIC芯片與ZigBee射頻模塊相連,測(cè)試兩者間是否實(shí)現(xiàn)正常通信。按下門鎖狀態(tài)采集模塊中S1按鈕,協(xié)調(diào)器顯示接收到控制信號(hào)“1”。
本研究利用ZigBee這一先進(jìn)的短距離、低速率無(wú)線網(wǎng)絡(luò)技術(shù),通過(guò)家庭無(wú)線路由網(wǎng)絡(luò)將門鎖控制與窗
戶的開關(guān)控制連接在一起,使得人們?cè)阪i門的同時(shí)自動(dòng)地鎖死家中的每一扇窗戶,大大節(jié)省了人們出行前的安全檢查時(shí)間,提高了家庭安防指數(shù)。同時(shí),整體的設(shè)計(jì)系統(tǒng)可以根據(jù)實(shí)際應(yīng)用情況加以簡(jiǎn)單修改后應(yīng)用到其他家庭智能控制領(lǐng)域中,例如,通過(guò)檢測(cè)暖氣溫度控制加濕器的蒸汽排量的智能系統(tǒng)。
(References):
[1] 賈 偉.無(wú)線傳感器網(wǎng)絡(luò)在智能家居中的應(yīng)用研究[D].杭州:浙江大學(xué)通信與信息系統(tǒng)專業(yè),2009..
[2] 趙 靜.嵌入式智能家居控制系統(tǒng)的研究與設(shè)計(jì)[D].武漢:武漢理工大學(xué),2008.
[3] 李文仲,段朝玉.ZigBee無(wú)線網(wǎng)絡(luò)技術(shù)入門與實(shí)戰(zhàn)[M].北京:航空航天大學(xué)出版社,2007:46-49.
[4] 黃 強(qiáng).基于ARM的家庭信息化系統(tǒng)的研究[D].武漢:武漢理工大學(xué),2007.
[5] Zheng JianLiang,Lee Myung.A comprehensive performance study of IEEE 802.15.4[M].IEEE Press Book,2004.
[6] Demirko Ilker,Erosy Cem,Alagoz Fatih.MAC protocols for wireless sensor networks:A survey[J].IEEE Communications Magazine,2006,44(4):115-121.
[7] 楊 誠(chéng),聶章龍.ZigBee網(wǎng)絡(luò)層協(xié)議的分析與設(shè)計(jì)[J].計(jì)算機(jī)英語(yǔ)與軟件2009(12):219-221.
[8] ZigBee聯(lián)盟.ZigBee技術(shù)引領(lǐng)無(wú)線數(shù)字新生活[J].電腦知識(shí)與技術(shù),2006(27):29-34.
[9] 朱向慶,王建明.ZigBee網(wǎng)絡(luò)協(xié)議層的研究與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2006(1):129-132.
[10] 李戰(zhàn)明,劉 寶,駱東松.Zigbee技術(shù)規(guī)范與協(xié)議淺分析[J].微型機(jī)與應(yīng)用,2009,4(13):46-49.
[11] 李 黎.Zigbee技術(shù)研究[J].技術(shù)與市場(chǎng),2009,52:58-67.
[12] 林元乖.ZigBee無(wú)線傳感器網(wǎng)絡(luò)及應(yīng)用[J].科技信息,2009(12):25-28.
[13] 陳 杰.基于ZigBee的家居安防系統(tǒng)的設(shè)計(jì)[D].武漢:華中科技大學(xué)軟件工程專業(yè),2010.
[14] 吳 線.DIY ZigBee無(wú)線傳感器網(wǎng)絡(luò)[J].無(wú)線電,2009(12):16-20.
[15] 劉市生,張賢華.ZigBee網(wǎng)絡(luò)層的設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線電工程2008,38(11):7-9.