劉 歡,劉 排,丁 涵,王進利
(河北工業(yè)大學 信息工程學院,天津 300401)
在這個信息的時代,隨著科學技術(shù)的飛速發(fā)展,家居智能化已經(jīng)成為人們的迫切需求。因此,為了使人們的生活更綠色環(huán)保、更方便、更安全,溫濕度及光照實現(xiàn)實時采集和家實現(xiàn)自動控制、室內(nèi)火情和可燃性氣體實現(xiàn)事實檢測與監(jiān)控變得越來越重要。在智能家居系統(tǒng)中,擔任重要成分的控制系統(tǒng)和組網(wǎng)技術(shù),對其的選擇是十分重要。其中,在智能家居的控制系統(tǒng)中,無線數(shù)據(jù)傳輸方式的靈活等特點戰(zhàn)勝了傳統(tǒng)的有線數(shù)據(jù)傳輸?shù)木窒扌?,從而得到了廣泛應用;為了方便用戶的安裝和使用,避免繁瑣的有線的布線,采用無線方式進行組網(wǎng)。無線組網(wǎng)方式多種多樣,其中ZigBee技術(shù)以其組網(wǎng)靈活性、功耗低等優(yōu)異特性而得到廣泛使用。
智能家居系統(tǒng)采用ZigBee無線組網(wǎng)技術(shù)作為基層網(wǎng)絡來實現(xiàn)家居系統(tǒng)內(nèi)部網(wǎng)絡。在多種網(wǎng)絡拓撲結(jié)構(gòu)中,星型結(jié)構(gòu)的覆蓋范圍較小,但是結(jié)構(gòu)簡單、數(shù)據(jù)傳輸快,所以在家庭范圍內(nèi),采用星型結(jié)構(gòu)作為基礎的網(wǎng)絡結(jié)構(gòu)。通過ZigBee無線通訊模塊與傳感器模塊及家電構(gòu)成終端設備,實現(xiàn)數(shù)據(jù)的采集,傳輸?shù)?;使用全功能設備作為家居內(nèi)部ZigBee網(wǎng)絡的中心協(xié)調(diào)器,負責建立和維護網(wǎng)絡;通過RS232串口通信實現(xiàn)協(xié)調(diào)器與傳感器模塊之間的連接,系統(tǒng)結(jié)構(gòu)圖如圖1所示。作為智能家居系統(tǒng)的底層基礎網(wǎng)絡,家居內(nèi)部ZigBee無線網(wǎng)絡可以實現(xiàn)的功能有:1)采集家庭環(huán)境的數(shù)據(jù)和信息。2)簡單處理設備終端上傳來的數(shù)據(jù)。3)通過串口通信協(xié)議將數(shù)據(jù)上傳到中心協(xié)調(diào)器。4)協(xié)調(diào)器根據(jù)采集上的實時數(shù)據(jù)作出判斷,給出控制指令。5)通過串口通信協(xié)議將數(shù)據(jù)回傳給設備終端。6)設備終端作出相應的響應[1]。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 The system structure diagram
ZigBee技術(shù)一種短距離低速傳輸?shù)臒o線網(wǎng)絡協(xié)議,其功耗抵、快速、可靠、成本低、容量大、安全的特點,使其可廣泛應用于各種自動控制領(lǐng)域[2]。
ZigBee協(xié)議棧是在OSI七層模型的基礎上根據(jù)市場和應用的實際需要定義的簡化協(xié)議棧,ZigBee協(xié)議棧由物理層、MAC層、網(wǎng)絡層和應用層四層結(jié)構(gòu)組成,其中網(wǎng)絡層和應用層是ZigBee聯(lián)盟在IEEE 802.15.4標準基礎上重新定義的,而物理層和MAC層則是沿用了IEEE 802.15.4標準。ZigBee協(xié)議棧結(jié)構(gòu)如圖2所示。
圖2 ZigBee協(xié)議棧系統(tǒng)圖Fig.2 The protocol stack of ZigBee structure diagram
1)物理層(PHY):本層規(guī)定了物理無線信道以及 MAC子層之間的接口,提供了PHY層的數(shù)據(jù)服務和管理服務。主要功能是激活/休眠無線收發(fā)設備,對當前信道進行能量檢測,鏈接質(zhì)量指示,為載波檢測多址與碰撞避免(CMSA-CA)進行空閑頻道評估、頻道選擇、數(shù)據(jù)的發(fā)送及接收等。
2)媒體介質(zhì)訪問層(MAC層):提供數(shù)據(jù)服務和管理服務兩種服務,主要完成的功能有:網(wǎng)絡協(xié)調(diào)者產(chǎn)生并發(fā)送信標幀,設備與信標同步,支持RAN網(wǎng)絡的關(guān)聯(lián)和取消關(guān)聯(lián)操作,為設備的安全性提供支持,信道接入方式采用免沖突載波檢測多路訪問(CMSA-CA)機制,處理和維護保護時隙機制,在兩個對等的MAC實體之間提供一個可靠地通信連路。
3)網(wǎng)絡層(NWK):負責拓撲結(jié)構(gòu)的建立和維護網(wǎng)絡連接,主要功能有設備連接和斷開網(wǎng)絡時所采用的機制,以及在幀信息傳輸過程中所采用的安全性機制。
4)應用層(APL):是用戶根據(jù)需要自行來開發(fā)的,由應用支持子層、ZigBee設備配置層和應用架構(gòu)層組成,其中,應用支持子層為網(wǎng)絡層和應用層提供接口,把基于服務和需求相匹配的兩個設備作為一個整體來進行管理的綁定服務,并未綁定服務構(gòu)建和保留綁定表,在綁定設備之間傳輸信息;ZigBee設備配置層提供標定服務、為遠程設備提供請求的任何標準的描述符信息;應用架構(gòu)層是應用支持子層的應用程序的無線數(shù)據(jù)接口,應用程序使用該層提供的功能來發(fā)送和接收無線數(shù)據(jù)。
ZigBee系統(tǒng)采用的傳感器模塊芯片為CC253O芯片,CC253O是TI公司推出的無線片上系統(tǒng)(SOC)芯片,其需要極少的外接元件,片上集成了不同的構(gòu)造模塊,大致可分為CPU和相關(guān)的存儲器模塊,外設、時鐘和電源管理模塊,無線信收發(fā)模塊3類,并通過ZigBee協(xié)議棧實現(xiàn)了應用。
在本設計中,STH10作為溫濕度模塊的主芯片,供電電壓為3.3 V,負責采集室內(nèi)的溫度和濕度。光照傳感器模塊可以感應光照的強度。溫濕度探頭直接使用IIC接口進行控制,光敏探頭經(jīng)運放處理后輸出電壓信號到AD輸入[3]。其電路原理圖如圖3所示。
圖3 溫濕度及光照傳感器電路Fig.3 The temperature and humidity and light sensor circuit
酒精傳感器模塊是用等級來劃分的,不能顯示具體的數(shù)值。通過傳感器輸出端的電壓變化來體現(xiàn)酒精的含有量等級。外界給傳感器供5 V電壓,傳感器內(nèi)部工作。在清潔的空氣中,輸出端的電壓為一恒定值,若空氣中含有酒精,輸出端的電壓會降低,根據(jù)電壓降低程度來判斷酒精含量等級。其原理圖如圖4所示。
圖4 酒精傳感器電路Fig.4 The alcohol sensor circuit
每個繼電器模塊上有4個繼電器,每個繼電器都能單獨進行工作。繼電器模塊采用一片帶中斷輸出的IIC接口的GPIO擴展芯片實現(xiàn),IIC總線擴展芯片使用PCA9554,作為輸出是高電平有效[4]。其原理圖如圖5所示。
圖5 繼電器電路Fig.5 The relay circuit
本設計是在IAR7.51軟件的開發(fā)環(huán)境下,通過C語言編寫驅(qū)動程序來進行仿真調(diào)試的。
Z-Stack協(xié)議棧是基于一個輪轉(zhuǎn)查詢時操作系統(tǒng)的,ZStack從 main()函數(shù)進入,首先對系統(tǒng)進行初始化,然后開始執(zhí)行操作系統(tǒng)[5]。協(xié)議棧著有流程如圖6所示。
圖6 協(xié)議棧主要流程Fig.6 The main process of protocol stack
4.1.1 系統(tǒng)初始化
初始時,系統(tǒng)需要對硬件平臺和軟件架構(gòu)所需的要的各個模塊進行初始化,為操作系統(tǒng)的運行做好準備工作,其具體流程圖和對應的函數(shù)如圖7所示。
圖7 系統(tǒng)初始化流程圖Fig.7 The flow chart of system initialization
4.1.2 操作系統(tǒng)的執(zhí)行
操作系統(tǒng)實體只有一行代碼:
Osal_start_system(); //no return from here
此函數(shù)不會返回,是一個死循環(huán),這個函數(shù)就是輪轉(zhuǎn)查詢式操作系統(tǒng)的主體部分,這個函數(shù)會不斷地查詢每個任務是否有事件發(fā)生,如果發(fā)生,執(zhí)行函數(shù);如果沒有發(fā)生,查詢下一個任務。
任務是由優(yōu)先級的,系統(tǒng)優(yōu)先處理優(yōu)先級高的任務。
程序清單:
const pTaskEventHandlerFn tasksArr[]=
操作系統(tǒng)要處理MAC層,網(wǎng)絡層,物理層,應用層,zigbee設備應用層,應用層,這6層的任務,優(yōu)先級是從 MAC層具有最高優(yōu)先級,到用戶層具有最低優(yōu)先級。如果MAC層任務有事件處理不完,用戶層任務就不會得到執(zhí)行。
4.2.1 協(xié)調(diào)器建立網(wǎng)絡
ZigBee網(wǎng)絡節(jié)點設備調(diào)用ZDO_StartDevice()函數(shù)來啟動設備,然后調(diào)用它們形成網(wǎng)絡。協(xié)調(diào)器將掃描DEFAUL_CHANLIST,從中選擇一個合適的信道[6]。這個網(wǎng)絡會被配置一個PAN標示符和一個16位的網(wǎng)絡地址。然后調(diào)用NLME_JNetworkFormationRequest()函數(shù)來建立網(wǎng)絡:
4.2.2 節(jié)點加入網(wǎng)絡
數(shù)據(jù)采集節(jié)點首先會通過NLME_NETWORK_DISCOVERY.request原語,啟動加入網(wǎng)絡流程。數(shù)據(jù)節(jié)點啟動后,先掃描DEFAULT_CHANLIST指定的頻道[7]。數(shù)據(jù)采集節(jié)點首先要通過信道掃描來發(fā)現(xiàn)2.4GHz頻段的信道中存在的網(wǎng)絡。當收到協(xié)調(diào)器發(fā)送的信標應道后,就按照信標內(nèi)的協(xié)調(diào)器的網(wǎng)絡地址和PAN_ID等信息加入網(wǎng)絡。
調(diào)試結(jié)果如圖8所示。
圖8 調(diào)試結(jié)果Fig.8 The debugging results
在協(xié)調(diào)器上顯示溫濕度值、光照值及反應酒精濃度的電壓值,并且當溫度高于23攝氏度時,自動開啟繼電器進而驅(qū)動電扇的開啟與關(guān)閉;當光照大于250勒克斯時,步進電機上的直流電機自動運轉(zhuǎn)進而驅(qū)動窗簾的開合;當酒精傳感器采集的電壓值大于120 V時,驅(qū)動蜂鳴器報警。
[1]臧大進,劉增良.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)設計與實現(xiàn)[J].襄樊學院報,2010,31(11):37-39.ZANG Da-jin,LIU Zeng-liang.Design and implementation for smart home control system based on internet of things[J].Journal of Xiangfan University,2010,31(11):37-39.
[2]王權(quán)平,王莉.ZigBee技術(shù)及其應用[J].現(xiàn)代電信科技,2004(1):22-23.WANG Quan-ping,WANG Li.Zigbee technology and its application[J].Modern Science&Technology of Telecommunications,2004(1):22-23.
[3]劉萍.基于ZigBee的智能家居室內(nèi)通信系統(tǒng)[J].湖南農(nóng)機,2011,38(9):40-41.LIU Ping.ZigBee-based smart home indoor communication system[J].Hunan Agricultural Machinery,2011,38(9):40-41.
[4]詹良.基于ZigBee技術(shù)的智能家居無線網(wǎng)絡系統(tǒng)[D].北京:北京郵電大學,2008.
[5]盧杉.基于ZigBee的無線傳感器網(wǎng)絡協(xié)議棧的設計與實現(xiàn)[D].西安:西安電子科技大學,2012.
[6]倪敬飛.ZigBee_2006協(xié)議棧的實現(xiàn)及其應用[D].蘭州:蘭州大學,2009.
[7]ZHOU Xiao-yan,HUANG Ting-lei.Research on smart living technology based on WSN[C]//International Conference on Intelligent Computingand Integrated Systems,2010:938-941.