前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的zigbee協(xié)議主題范文,僅供參考,歡迎閱讀并收藏。
關(guān)鍵詞:zigbee;PHY服務(wù);原語;MAC層
中圖分類號(hào):TN91 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)06-00-02
0 引 言
ZigBee無線網(wǎng)絡(luò)協(xié)議層基于國際標(biāo)準(zhǔn)化組織(ISO)和開放式系統(tǒng)互聯(lián)(OSI)基本參考模型。ISO/OSI模型有7層,但ZigBee僅保留了對(duì)于組建低功耗、低數(shù)據(jù)率的無線網(wǎng)絡(luò)所需的功能層。物理層和媒體接入控制協(xié)議是在IEEE 802.15.4中描述的低速率無線個(gè)人局域網(wǎng),在其定義的物理(PHY)層和媒體訪問控制(MAC)層基礎(chǔ)上制定的一種低速無線個(gè)域網(wǎng)(LR-WPAN)技術(shù)規(guī)范,所以ZigBee協(xié)議棧的物理(PHY)層和媒體訪問控制(MAC)層是按照IEEE 802.15.4標(biāo)準(zhǔn)規(guī)定來工作的,網(wǎng)絡(luò)(NWK)層和應(yīng)用(APL)層由ZigBee標(biāo)準(zhǔn)定義[1]。
1 PHY概述
IEEE802.15.4協(xié)議描述中分別有2.4 GHz物理層和868/9l5 MHz物理層兩個(gè)物理層標(biāo)準(zhǔn),數(shù)據(jù)傳輸速率高達(dá)250 kb/s。兩個(gè)物理層使用的傳輸方式都基于DSSS(Direct Sequence Spread Spectrum,直接序列擴(kuò)頻),簡稱直擴(kuò)方式(DS方式),在物理層使用相同的數(shù)據(jù)包格式,其低功耗、低成本的優(yōu)點(diǎn)使它在很多領(lǐng)域獲得了廣泛的應(yīng)用[2]。在于調(diào)制方式、工作頻率、擴(kuò)頻碼片長度和傳輸速率方面有所區(qū)別。2.4GHz頻段申請(qǐng)的ISM頻段在全球范圍內(nèi)無需統(tǒng)一申請(qǐng),有利于ZigBee設(shè)備降低生產(chǎn)成本和市場推廣;另外通過采用高階調(diào)制可以達(dá)到250 kb/s的傳輸速率,從而獲得極小的通信延時(shí)、極短的周期以及更大的吐吞量,從而ZigBee網(wǎng)絡(luò)中的終端節(jié)點(diǎn)更加節(jié)電。歐洲的ISM頻段是868 MHz,美國的ISM頻段是915 MHz,引入868 MHz及915 MHz這兩個(gè)頻段可以使2.4 GHz附近的無線通信設(shè)備在不互相影響的條件下發(fā)出各自的頻率。這兩個(gè)頻段在無線信號(hào)傳輸過程由于表現(xiàn)出小損耗特點(diǎn),因而擁有極廣的通信范圍,可以適當(dāng)降低接收機(jī)的靈敏度而不改變傳輸質(zhì)量,從而在給定區(qū)域用較少設(shè)備進(jìn)行有效覆蓋。
2 PHY服務(wù)機(jī)制
PHY層提供兩種類型的服務(wù):PHY數(shù)據(jù)服務(wù)和PHY管理服務(wù)。PHY數(shù)據(jù)服務(wù)負(fù)責(zé)在射頻信道中收發(fā)PHY協(xié)議數(shù)據(jù)單元(PPDU)。PHY還有一個(gè)稱為物理層管理實(shí)體(PLME)的管理實(shí)體,通過PLME可以喚醒PHY管理功能。
(1)PHY數(shù)據(jù)服務(wù)
數(shù)據(jù)總是以MAC協(xié)議數(shù)據(jù)單元(MPDU)的形式進(jìn)行傳輸。本地MAC需要傳輸數(shù)據(jù)時(shí),就向PHY提供一個(gè)MPDU. PHY嘗試進(jìn)行傳輸,然后向MAC報(bào)告?zhèn)鬏斀Y(jié)果(成功或失?。.?dāng)射頻收發(fā)器收到數(shù)據(jù)后,PHY層通知MAC層收到了一個(gè)MPDU。PHY層不僅向MAC層提供MPDU,還向MAC層提供鏈路質(zhì)量指標(biāo)(LQI)信息。如圖1所示。
圖1 兩臺(tái)設(shè)備間的數(shù)據(jù)傳輸服務(wù)
數(shù)據(jù)可以由MAC層產(chǎn)生,更高層完全不知道這個(gè)數(shù)據(jù)的存在。數(shù)據(jù)由ZigBee設(shè)備對(duì)象(ZDO)或應(yīng)用支持子層應(yīng)用對(duì)象產(chǎn)生。在傳輸過程中,每一層都對(duì)數(shù)據(jù)單元(DU)加入自己的頭部和尾部(如果允許),然后將該結(jié)果傳遞給下一個(gè)更低層。每一層的數(shù)據(jù)單元都以該層的名稱命名。在APS層和NWK層,數(shù)據(jù)單元分別被稱為APS協(xié)議數(shù)據(jù)單元(APDU)和NWK協(xié)議數(shù)據(jù)單元(NPDU)。PHY數(shù)據(jù)服務(wù)接收一個(gè)MAC協(xié)議數(shù)據(jù)單元(MPDU)并創(chuàng)建將通過射頻傳輸?shù)腜HY協(xié)議數(shù)據(jù)單元(PPDU)。在接收端,數(shù)據(jù)從某一層向上傳輸?shù)较乱粋€(gè)更高層,直到數(shù)據(jù)單元到達(dá)目的層頭部和尾部被刪除。
(2)PHY管理服務(wù)
管理實(shí)體提供的管理服務(wù)有:信道能量檢測(ED)、鏈路質(zhì)量指示(LQI)、空閑信道評(píng)估(CCA)等。信道中接收信號(hào)的功率強(qiáng)度是由信道能量檢測來完成的,是為上層提供信道選擇的依據(jù)[3]。噪聲信號(hào)功率和有效信號(hào)功率之和作為信道檢測結(jié)果的依據(jù),其檢測過程沒有進(jìn)行解碼操作。而鏈路質(zhì)量指示對(duì)檢測信號(hào)需要進(jìn)行解碼操作,生成一個(gè)信噪比的指標(biāo)值,為上層提供接收的無線信號(hào)的質(zhì)量和強(qiáng)度服務(wù)信息??臻e信道評(píng)估主要評(píng)估信道指標(biāo)值是否空閑。
3 PHY服務(wù)實(shí)現(xiàn)
IEEE 802.15.4和ZigBee標(biāo)準(zhǔn)使用原語的概念來描述服務(wù),這些服務(wù)由上一層使用。相鄰協(xié)議層之間的通信是通過在層與層之間調(diào)用函數(shù)或傳遞原語來管理的。服務(wù)原語的概念是比較抽象的,要實(shí)現(xiàn)特定層提供的服務(wù)需要由它來指定需要傳遞的信息來完成。服務(wù)原語與具體的服務(wù)實(shí)現(xiàn)無關(guān),服務(wù)原語有請(qǐng)求、通知、響應(yīng)、確認(rèn)4種情況[4],具體如下:
(1)請(qǐng)求(request)原語。請(qǐng)求原語由網(wǎng)絡(luò)服務(wù)請(qǐng)求方的用戶發(fā)送特定信息到它的服務(wù)提供層進(jìn)行響應(yīng),請(qǐng)求啟動(dòng)某一項(xiàng)服務(wù)。
(2)通知(indication)原語。指示原語由網(wǎng)絡(luò)用戶的服務(wù)提供層發(fā)送到對(duì)應(yīng)服務(wù)響應(yīng)方用戶的相應(yīng)層,跟遠(yuǎn)端服務(wù)請(qǐng)求邏輯相關(guān)。
(3)響應(yīng)(response)原語。響應(yīng)原語由服務(wù)響應(yīng)端的用戶發(fā)出信息到服務(wù)提供層,從而完成提示原語啟動(dòng)的程序。
(4)確認(rèn)(confirm)原語。驗(yàn)證服務(wù)原語是由服務(wù)提供層發(fā)出并傳輸?shù)椒?wù)請(qǐng)求端的用戶方,該原語是確認(rèn)服務(wù)請(qǐng)求原語的傳遞結(jié)果。
在多用戶存在的網(wǎng)絡(luò)中,服務(wù)原語交換過程是兩個(gè)對(duì)等的用戶通過服務(wù)提供層交換信息,它們通過原語的傳遞,建立相關(guān)服務(wù)[5]。在其下一層提供服務(wù)的基礎(chǔ)上建立服務(wù)用戶的功能。層間信息傳輸流事件是離散的,是通過發(fā)送服務(wù)原語來實(shí)現(xiàn)事件的。協(xié)議使用服務(wù)原語來描述每一層的功能。每個(gè)原語指定要執(zhí)行的操作或者提供之前請(qǐng)求的操作結(jié)果。一個(gè)原語也可能攜帶執(zhí)行其任務(wù)所需的參數(shù)。如圖2所示。
圖2 服務(wù)原語交換過程
如上圖,N+1層為服務(wù)用戶、N層為服務(wù)提供者,在PHY層數(shù)據(jù)服務(wù)中,PHY數(shù)據(jù)請(qǐng)求(PD-Data. Request)原語由MAC層產(chǎn)生,并傳遞給PHY層,以請(qǐng)求傳輸一個(gè)MPDU。通知原語由第N層產(chǎn)生給其上一層,表明產(chǎn)生了一個(gè)對(duì)第N+1層很重要的事件。當(dāng)PHY接收來自網(wǎng)絡(luò)上另一個(gè)設(shè)備的數(shù)據(jù),這些數(shù)據(jù)需要傳送到MAC層,PHY用戶使用PD-Data的通知原語來傳送數(shù)據(jù)信息給MAC層。
如果通知原語需要一個(gè)響應(yīng),則響應(yīng)原語從N+l層傳送到第N層。PHY層和NWK層沒有任何響應(yīng)原語。MAC層和APL層包含響應(yīng)原語。第N層使用確認(rèn)原語向第N+1層確認(rèn)其傳遞的請(qǐng)求原語已經(jīng)完成。PD-Data的確認(rèn)原語由PHY層實(shí)體產(chǎn)生并發(fā)給它的MAC子層實(shí)體,以響應(yīng)一個(gè)PD-Data的請(qǐng)求原語。在確認(rèn)時(shí),PHY層通知MAC層傳輸是否成功。
4 結(jié) 語
PHY層是最接近硬件的層,直接控制射頻收發(fā)器并與其通信。研究PHY服務(wù)機(jī)制及PHY服務(wù)的實(shí)現(xiàn)原理對(duì)ZigBee在物聯(lián)網(wǎng)中的應(yīng)用具有重要的基礎(chǔ)意義。
參考文獻(xiàn)
[l]郭園.基于ZigBee和GPRS的LED路燈智能照明控制系統(tǒng)的研究[D].青島:青島科技大學(xué),2012.
[2]朱洲.基于ZigBee技術(shù)的無線自動(dòng)抄表系統(tǒng)[D].重慶:重慶大學(xué),2005.
[3]薛秦剛. IEEE 802.15.4的ZigBee協(xié)議棧研究與仿真[D].西安:西安理工大學(xué),2010.
關(guān)鍵詞:ZigBee;無線網(wǎng)絡(luò);實(shí)時(shí)操作系統(tǒng);軟件設(shè)計(jì)
中圖分類號(hào): TN929 文獻(xiàn)標(biāo)志碼:A文章編號(hào):1009-3044(2009)36-10608-03
Design of Physical Layer and MAC Layer of ZigBee Protocol Based on Embedded Real-Time Operating System
SUN Yi
(Shandong Jiaotong University, Jinan 250357, China)
Abstract: This paper researches on wireless sensor network based on Embedded Real-Time Operating System. In analyzing RTOS and wireless sensor networks, a software design methods on physical and MAC layer of ZigBee is presented based on a micro-kernel embedded real-time operating system. This method reduced the difficulty of the wireless network development by programs expansion and codes migration. It provides a simple and easy to realize platform for the subsequent network layer and application layer development.
Key words: ZigBee; wireless sensor network; real time operating system; software design
隨著嵌入式系統(tǒng)、無線通信、微電子等技術(shù)的快速發(fā)展,具有感知、計(jì)算和無線網(wǎng)絡(luò)通信能力的傳感器,以及由其構(gòu)成的無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network, WSN)引起了人們的極大關(guān)注。實(shí)時(shí)操作系統(tǒng)(Real-Time Operating System,RTOS)是建立在單片機(jī)硬件系統(tǒng)之上的一個(gè)平臺(tái),用戶的一切開發(fā)工作都在該平臺(tái)上進(jìn)行,它定義了每個(gè)應(yīng)用任務(wù)和內(nèi)核的接口,也促進(jìn)了應(yīng)用程序的標(biāo)準(zhǔn)化。應(yīng)用程序標(biāo)準(zhǔn)化后便于軟件的存檔、交流、修改和擴(kuò)展,減少開發(fā)管理工作量。ZigBee是一種新興的短距離、低速率、低功耗無線網(wǎng)絡(luò)技術(shù),國際上IEEE802.15.4工作組及ZigBee聯(lián)盟共同致力于該無線連接技術(shù)的推廣工作,其中,IEEE802.15.4只規(guī)定了ZigBee的物理層和MAC層的功能,僅處理這兩層的通信協(xié)議。ZigBee網(wǎng)絡(luò)通信過程,大致包括協(xié)調(diào)器組織網(wǎng)絡(luò),節(jié)點(diǎn)器件加入、離開,發(fā)送、接收數(shù)據(jù),信標(biāo)幀的產(chǎn)生、重發(fā),安全機(jī)制以及PIB屬性管理等等過程,利用傳統(tǒng)的前后臺(tái)模式思路,開發(fā)過程和調(diào)試過程會(huì)非常復(fù)雜,甚至實(shí)時(shí)性、穩(wěn)定性較差。
本文正是鑒于ZigBee網(wǎng)絡(luò)協(xié)議的復(fù)雜性和嵌入式RTOS平臺(tái)開發(fā)的方便性,在分析二者特點(diǎn)的基礎(chǔ)上,將ZigBee協(xié)議的物理層和MAC層移植到RTOS上。利用RTOS來開發(fā),通過把復(fù)雜的過程劃分為幾個(gè)獨(dú)立的任務(wù),任務(wù)之間的相互聯(lián)系通過事件來驅(qū)動(dòng),這樣會(huì)使設(shè)計(jì)過程簡單,降低開發(fā)難度,大大增加程序的移植性和代碼的可重復(fù)利用性。經(jīng)多次測試、使用,開發(fā)的嵌入式系統(tǒng)運(yùn)行效果良好,系統(tǒng)比較可靠、穩(wěn)定。
1 設(shè)計(jì)目標(biāo)
軟件設(shè)計(jì)分為兩部分:系統(tǒng)級(jí)任務(wù)和應(yīng)用級(jí)任務(wù)。系統(tǒng)級(jí)任務(wù)能夠獨(dú)立完成基礎(chǔ)性工作,不需要高層協(xié)議來管理,并且給應(yīng)用級(jí)任務(wù)提供接口,能夠?qū)崿F(xiàn)任務(wù)的擴(kuò)展;應(yīng)用級(jí)任務(wù)通過系統(tǒng)級(jí)任務(wù)提供的交互與操作系統(tǒng)進(jìn)行交互,應(yīng)用級(jí)任務(wù)根據(jù)實(shí)際的需要來開發(fā),利用操作系統(tǒng)提供的接口,利用系統(tǒng)級(jí)任務(wù)來實(shí)現(xiàn)具體的應(yīng)用。
2 系統(tǒng)設(shè)計(jì)
在原有RTOS基礎(chǔ)上增加幾個(gè)系統(tǒng)任務(wù),完成ZigBee網(wǎng)絡(luò)通信的基本功能,使RTOS成為符合ZigBee開發(fā)的嵌入式操作系統(tǒng)。其中增加的系統(tǒng)功能為:協(xié)調(diào)器的網(wǎng)絡(luò)組建功能,節(jié)點(diǎn)器件的加入網(wǎng)絡(luò)和斷開網(wǎng)絡(luò)功能,信標(biāo)幀的產(chǎn)生功能,信標(biāo)幀的跟蹤功能,數(shù)據(jù)接收功能,數(shù)據(jù)發(fā)送功能,數(shù)據(jù)確認(rèn)重發(fā)功能以及網(wǎng)絡(luò)鄰居表的維護(hù)和PIB屬性的管理。整個(gè)通信主程序的流程圖如圖1所示。
2.1 系統(tǒng)級(jí)任務(wù)分析
系統(tǒng)初始化設(shè)計(jì):主要是對(duì)寄存器等基本硬件進(jìn)行設(shè)置,對(duì)變量賦初始值等。
1)消息泵任務(wù)emMsg_Pump()。該任務(wù)是整個(gè)系統(tǒng)消息機(jī)制核心部分,負(fù)責(zé)接收并處理每個(gè)任務(wù)發(fā)給系統(tǒng)的消息,并根據(jù)消息值觸發(fā)相應(yīng)的任務(wù)。是系統(tǒng)優(yōu)先級(jí)最低的任務(wù),永遠(yuǎn)處于就緒狀態(tài)。系統(tǒng)運(yùn)行之初,如果沒有其他優(yōu)先級(jí)高的任務(wù),系統(tǒng)便會(huì)運(yùn)行此任務(wù),處于就緒狀態(tài)。在整個(gè)嵌入式系統(tǒng)運(yùn)行期間,所有任務(wù)之間通信機(jī)制是消息驅(qū)動(dòng)機(jī)制,具體做法是某個(gè)進(jìn)程運(yùn)行結(jié)束時(shí),產(chǎn)生系統(tǒng)消息,并把它放入系統(tǒng)的消息隊(duì)列,等到消息分發(fā)任務(wù)運(yùn)行時(shí)候,它從消息隊(duì)列中提取消息,然后分發(fā)消息到需要觸發(fā)的任務(wù)當(dāng)中,修改觸發(fā)任務(wù)的運(yùn)行狀態(tài)為就緒狀態(tài),當(dāng)系統(tǒng)再次調(diào)度時(shí),運(yùn)行要觸發(fā)的任務(wù)。流程圖如圖2所示。
2)組建網(wǎng)絡(luò)或加入網(wǎng)絡(luò)任務(wù)emAssociation_Join()。要實(shí)現(xiàn)節(jié)點(diǎn)和協(xié)調(diào)器之間通信,必須構(gòu)成一個(gè)基本的ZigBee無線網(wǎng)絡(luò)。IEEE802.15.4標(biāo)準(zhǔn)中規(guī)定無線個(gè)人局域網(wǎng)的構(gòu)成至少有一個(gè)協(xié)調(diào)器,最大網(wǎng)絡(luò)容量為255個(gè)節(jié)點(diǎn)。該任務(wù)就是實(shí)現(xiàn)構(gòu)建網(wǎng)絡(luò)的過程。若器件是協(xié)調(diào)器,它首先完成創(chuàng)建一個(gè)網(wǎng)絡(luò)的過程,若是節(jié)點(diǎn)器件,則完成加入網(wǎng)絡(luò)的過程。具體組網(wǎng)的過程實(shí)現(xiàn):協(xié)調(diào)器首先進(jìn)行頻道掃描確定未使用的信道,并在自己電磁波輻射范圍內(nèi)通過接收的信標(biāo)幀來捕捉其它協(xié)調(diào)器的信息,從而確定此范圍內(nèi)正在使用的信道和網(wǎng)絡(luò)標(biāo)識(shí)符,然后根據(jù)某種算法選擇一個(gè)未使用網(wǎng)絡(luò)標(biāo)號(hào)更新系統(tǒng)的macPANId,通過自己的信道發(fā)送信標(biāo)幀,通知周圍的節(jié)點(diǎn)。網(wǎng)絡(luò)節(jié)點(diǎn)器件被動(dòng)的掃描,捕捉附近的網(wǎng)絡(luò)協(xié)調(diào)器,選擇合適的網(wǎng)絡(luò)協(xié)調(diào)器,發(fā)送加入網(wǎng)絡(luò)請(qǐng)求,收到ack應(yīng)答后開始在最大響應(yīng)時(shí)間內(nèi)等待協(xié)調(diào)器的響應(yīng)幀。如果協(xié)調(diào)器允許此節(jié)點(diǎn)加入網(wǎng)絡(luò),則會(huì)分配一個(gè)16位的短地址給節(jié)點(diǎn),并把此節(jié)點(diǎn)的信息存入網(wǎng)絡(luò)鄰居表,網(wǎng)絡(luò)節(jié)點(diǎn)收到允許加入的響應(yīng)幀后更新自己的地址信息。否則,繼續(xù)掃描其他的協(xié)調(diào)器,請(qǐng)求加入其他網(wǎng)絡(luò)。當(dāng)協(xié)調(diào)器和節(jié)點(diǎn)器件完成上述過程后,也就完成了組網(wǎng)的過程。當(dāng)組網(wǎng)過程結(jié)束后,會(huì)改變系統(tǒng)的狀態(tài)機(jī),產(chǎn)生消息MSG_JOIN_NET并觸發(fā)另一個(gè)任務(wù)的運(yùn)行。
3)斷開網(wǎng)絡(luò)連接的任務(wù)emAssociation_Leave()。該任務(wù)是節(jié)點(diǎn)器件任務(wù)。當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)想離開當(dāng)前加入的網(wǎng)絡(luò),就發(fā)送離開網(wǎng)絡(luò)的請(qǐng)求命令,協(xié)調(diào)器允許其離開,會(huì)在信標(biāo)幀中通知此節(jié)點(diǎn)同時(shí)將其信息從網(wǎng)絡(luò)鄰居表中刪除。網(wǎng)絡(luò)節(jié)點(diǎn)完成該任務(wù)后,產(chǎn)生系統(tǒng)消息MSG_LEAVE_NET,并修改系統(tǒng)的狀態(tài)機(jī)。
4)數(shù)據(jù)幀報(bào)文發(fā)送任務(wù)emPacket_Send()。當(dāng)協(xié)議上層要發(fā)送數(shù)據(jù),把數(shù)據(jù)寫入發(fā)送緩沖區(qū),并產(chǎn)生系統(tǒng)消息給RTOS,由RTOS來完成數(shù)據(jù)報(bào)文發(fā)送。RTOS便會(huì)調(diào)用該數(shù)據(jù)幀報(bào)文發(fā)送任務(wù),首先填寫幀控制、地址等報(bào)文頭信息,復(fù)制數(shù)據(jù)緩沖區(qū)內(nèi)的數(shù)據(jù),加上CRC校驗(yàn)碼,完成數(shù)據(jù)報(bào)文封包工作。其次打開射頻收發(fā)器的發(fā)送開關(guān),通過對(duì)CCA檢測,判斷通信信道的狀態(tài),從而實(shí)現(xiàn)沖突碰撞檢測機(jī)制。若信道空閑,則發(fā)送報(bào)文,若信道處于忙狀態(tài),則隨機(jī)等待一段時(shí)間,再次檢測信道狀態(tài),直到其空閑,完成數(shù)據(jù)報(bào)的發(fā)送過程,同時(shí)發(fā)送系統(tǒng)消息MSG_SEND_END觸發(fā)確認(rèn)重發(fā)任務(wù),在macAckWaitDuration時(shí)間內(nèi)等待收到報(bào)文的設(shè)備發(fā)送ack確認(rèn)報(bào)文。在上述時(shí)間段內(nèi)收到ack確認(rèn),便返回一個(gè)數(shù)據(jù)發(fā)送成功的狀態(tài),否則便啟動(dòng)重發(fā)機(jī)制,若重發(fā)次數(shù)超過aMaxFrameResponse,仍未收到確認(rèn),則丟棄報(bào)文,返回發(fā)送失敗的狀態(tài)。流程圖如圖3所示。
5)數(shù)據(jù)幀報(bào)接收任務(wù)emPacket_Receive()。該任務(wù)對(duì)報(bào)文進(jìn)行三級(jí)過濾,首先對(duì)報(bào)文進(jìn)行地址辨識(shí),檢測報(bào)文的發(fā)送目的地址是否是發(fā)給本網(wǎng)絡(luò)的協(xié)調(diào)器,不是則丟棄報(bào)文,完成數(shù)據(jù)報(bào)文第一級(jí)過濾;其次對(duì)報(bào)文進(jìn)行長度判斷,檢測報(bào)文長度是否符合協(xié)議規(guī)定,不符合則丟掉報(bào)文,完成第二級(jí)數(shù)據(jù)報(bào)文的過濾;接著對(duì)報(bào)文進(jìn)行CRC校驗(yàn)的判斷,不正確則丟掉報(bào)文,實(shí)現(xiàn)第三級(jí)報(bào)文過濾。最后根據(jù)報(bào)文種類的不同將其存入對(duì)應(yīng)的接收緩沖區(qū),修改信號(hào)量的值,表明數(shù)據(jù)接收緩沖區(qū)內(nèi)有數(shù)據(jù)。流程圖如圖4所示。
該任務(wù)有中斷實(shí)現(xiàn),執(zhí)行完畢并不觸發(fā)消息,只是修改接收緩沖區(qū)的信號(hào)量的值。原因在于網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)發(fā)送數(shù)據(jù)頻率較高,為了能夠及時(shí)響應(yīng),保證此任務(wù)不會(huì)使其它正在進(jìn)行的任務(wù)重復(fù)重啟。從而提高了系統(tǒng)實(shí)時(shí)性,減少了數(shù)據(jù)報(bào)文的丟失率。
6)各種命令處理任務(wù)emCmd_Process()。在ZigBee無線網(wǎng)絡(luò)中,規(guī)定在接收到的報(bào)文中對(duì)確認(rèn)幀是優(yōu)先處理的,其次是命令幀,最后才是數(shù)據(jù)幀。協(xié)調(diào)器處理的命令包括節(jié)點(diǎn)器件的請(qǐng)求加入網(wǎng)絡(luò)命令、離開網(wǎng)絡(luò)命令、網(wǎng)絡(luò)沖突命令、器件孤立命令。協(xié)調(diào)器收到這些命令,可能要發(fā)送響應(yīng)命令,又涉及到?jīng)_突檢測、確認(rèn)和重發(fā)的判定,為了減少對(duì)系統(tǒng)任務(wù)在實(shí)現(xiàn)一個(gè)簡單的功能反復(fù)切換,直接在命令處理任務(wù)中實(shí)現(xiàn)確認(rèn)重發(fā)機(jī)制。協(xié)調(diào)器對(duì)請(qǐng)求加入網(wǎng)絡(luò)的命令要給予響應(yīng),分配短地址,加入網(wǎng)絡(luò)鄰居表;對(duì)來開網(wǎng)絡(luò)請(qǐng)求,要在信標(biāo)幀中給予通知,并從網(wǎng)絡(luò)鄰居表中刪除節(jié)點(diǎn)信息。對(duì)網(wǎng)絡(luò)標(biāo)識(shí)符沖突命令,要重新掃描、組網(wǎng)等。處理完畢產(chǎn)生系統(tǒng)消息MSG_CMD_END,觸發(fā)數(shù)據(jù)處理任務(wù)。
7)數(shù)據(jù)幀報(bào)文的處理任務(wù)emData_Process()。把數(shù)據(jù)幀的報(bào)文處理,單獨(dú)作為一個(gè)任務(wù),主要原因在于數(shù)據(jù)幀是在協(xié)議上層來組織和處理,操作系統(tǒng)如果收到數(shù)據(jù)和數(shù)據(jù)請(qǐng)求命令,只給上層任務(wù)發(fā)送消息,觸發(fā)上層處理任務(wù)。具體的處理工作由上層處理任務(wù)完成,從而實(shí)現(xiàn)了操作系統(tǒng)完成基本的操作,給上層任務(wù)提供接口,供上層任務(wù)使用,為后續(xù)開發(fā)奠定了基礎(chǔ)。
8)定時(shí)發(fā)送信標(biāo)幀的任務(wù)emBeacon_Send(),在信標(biāo)使能的網(wǎng)絡(luò)中,所有的通信過程都是由協(xié)調(diào)器來主導(dǎo),協(xié)調(diào)器通過信標(biāo)幀來實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)的通信的同步,并且控制通信的節(jié)點(diǎn),控制通信的時(shí)間等。節(jié)點(diǎn)器件加入網(wǎng)絡(luò),也要首先對(duì)信標(biāo)幀進(jìn)行跟蹤捕捉,進(jìn)行綜合判斷。所以在ZigBee網(wǎng)絡(luò)內(nèi),協(xié)調(diào)器每隔一定的時(shí)間來發(fā)送信標(biāo)幀,網(wǎng)絡(luò)內(nèi)的各個(gè)節(jié)點(diǎn)器件通過信標(biāo)幀安排自己的工作,從而實(shí)現(xiàn)了信標(biāo)使能網(wǎng)絡(luò)的通信過程。發(fā)送信標(biāo)幀后發(fā)送系統(tǒng)消息MSG_BEACON_OVER。這個(gè)任務(wù)是由定時(shí)器的定時(shí)消息驅(qū)動(dòng)。當(dāng)定時(shí)時(shí)間到達(dá)以后,發(fā)送定時(shí)到達(dá)的系統(tǒng)消息MSG_TIME_OUT,通過系統(tǒng)調(diào)度實(shí)現(xiàn)此任務(wù)的運(yùn)行。
2.2 應(yīng)用級(jí)任務(wù)分析
1)對(duì)數(shù)據(jù)請(qǐng)求命令的處理任務(wù)emDataRequest_Task()。這個(gè)任務(wù)收到操作系統(tǒng)的消息后,就會(huì)組織數(shù)據(jù),發(fā)送給節(jié)點(diǎn)。它要做的只是發(fā)送一個(gè)消息給系統(tǒng),消息的內(nèi)容包括發(fā)送數(shù)據(jù)的指針和數(shù)據(jù)的長度。
2)網(wǎng)絡(luò)PIB數(shù)據(jù)庫管理emPIB_Manage(),此任務(wù)可以用來更新、維護(hù)物理層和MAC層的屬性,包括能量設(shè)定管理,以適應(yīng)不同情況下通信需要。
3 結(jié)束語
該文通過對(duì)嵌入式RTOS運(yùn)行機(jī)制和無線傳感器網(wǎng)絡(luò)ZigBee協(xié)議的深入研究,成功將ZigBee協(xié)議的物理層和MAC層移植到RTOS上,對(duì)無線通信過程各個(gè)環(huán)節(jié)進(jìn)行了較為詳細(xì)任務(wù)實(shí)現(xiàn)分析,該方法的實(shí)現(xiàn)降低了系統(tǒng)開發(fā)難度,提高了開發(fā)效率,對(duì)于開發(fā)相關(guān)的應(yīng)用軟件或進(jìn)行硬件平臺(tái)的移植有一定參考價(jià)值。
參考文獻(xiàn):
[1] 威爾姆舍斯特.PIC嵌入式系統(tǒng)開發(fā)[M].北京:人民郵電出版社,2008.
[2] Estrin D,Culler D,Pister K,et al.The Physical World with Pervasive Networks[J].IEEE Pervasive Computing,2002,1(1):59-69.
[3] 孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
關(guān)鍵詞:Z-stack;HA規(guī)范;ZCL;ZigBee
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2013)04-0054-03
0 引 言
目前,國內(nèi)市場上ZigBee產(chǎn)品雖然很多,但大多采用的都是私有協(xié)議棧,阻礙了不同廠家產(chǎn)品之間的互用和替代,這也是ZigBee市場規(guī)模無法迅速擴(kuò)大的一個(gè)重要原因,因此,開發(fā)具有符合標(biāo)準(zhǔn)規(guī)范的ZigBee產(chǎn)品成為當(dāng)務(wù)之急。目前國內(nèi)的ZigBee行業(yè)規(guī)范還正在處于形成階段,但國際上的ZigBee規(guī)范已經(jīng)建立并受到國際上眾多廠商的追隨,因此,本文就如何開發(fā)符合ZigBee聯(lián)盟規(guī)定的HA規(guī)范的ZigBee應(yīng)用進(jìn)行了探討。
Z-stack是TI公司推出的ZigBee協(xié)議棧系統(tǒng),這是一個(gè)通過ZigBee聯(lián)盟認(rèn)證的符合ZigBee2007規(guī)范的平臺(tái)。借由TI公司ZigBee芯片及SOC產(chǎn)品在國內(nèi)的廣泛接受,Z-stack也稱為眾多芯片廠商提供的協(xié)議棧中開發(fā)者接受度比較廣的一款ZigBee協(xié)議棧。本文探討的ZigBee產(chǎn)品應(yīng)用開發(fā)是基于Z-stack協(xié)議棧的。
1 ZCL庫(ZigBee cluster library)[1]
在ZigBee協(xié)議棧中,簇是一組命令和屬性的集合,這些命令和屬性組合起來,構(gòu)成了實(shí)現(xiàn)某一功能的實(shí)體。
ZCL是由ZigBee聯(lián)盟制定的包含了大量功能簇(cluster)的大集合。在應(yīng)用開發(fā)中,以ZCL中已有的簇作為功能單元來使用,可以增強(qiáng)通用性,避免重復(fù)開發(fā)。
ZCL對(duì)功能簇進(jìn)行了分類和描述。每個(gè)功能簇都包含有一個(gè)或多個(gè)屬性及命令,ZCL對(duì)每個(gè)屬性都進(jìn)行了定義和描述,包括屬性ID、名稱、數(shù)據(jù)類型、數(shù)值范圍、初始值、可讀寫性以及強(qiáng)制性;同時(shí),也對(duì)此簇所包含的命令進(jìn)行了定義,包括命令I(lǐng)D、命令名稱、命令數(shù)據(jù)幀內(nèi)容和觸發(fā)效果等。
ZCL中的通信是基于Client/Server模型的以簇為單位進(jìn)行的。兩個(gè)不同功能設(shè)備之間的相互通信,是基于某一個(gè)或多個(gè)功能簇的。用來儲(chǔ)存這些簇屬性的設(shè)備,稱為Server端;而用來操作這些簇屬性的設(shè)備,稱為Client端。針對(duì)Client/Server端口類型的不同,同一個(gè)簇也具有不同的屬性和命令。例如,操作屬性的命令,通常由Client端發(fā)送給Server端;而用針對(duì)這些操作命令的回復(fù),通常由Server端發(fā)送給Client端。另外,報(bào)告類型的命令(report attribute command)通常由Server端發(fā)送給Client端。以O(shè)n/Off簇為例,該簇的作用是實(shí)現(xiàn)開關(guān)設(shè)備的開/關(guān)狀態(tài)的控制,體現(xiàn)在設(shè)備上,分為Client端和Server端兩種角色的設(shè)備,比如開關(guān)是Client端,而某個(gè)具有ZigBee模塊的燈節(jié)點(diǎn)則代表了相應(yīng)的Server端。Server端作為命令的接收者,必須能夠識(shí)別開/關(guān)/切換這幾個(gè)來自Client端的命令(在ZCL中,已經(jīng)規(guī)定好這些命令對(duì)應(yīng)的ID,如0x00代表關(guān),0x01代表開,0x02代表切換),同時(shí),由于命令操作的是屬性,因此,該Server端必須保存有開關(guān)狀態(tài)這一屬性。
另外,ZCL制定了基于cluster的各類命令幀的格式(包括讀、寫、報(bào)告等);定義了用于尋址的各指示參數(shù)(包括規(guī)范ID、設(shè)備ID、簇ID、屬性ID和命令I(lǐng)D);規(guī)定了用于各屬性和命令中各類數(shù)據(jù)的數(shù)據(jù)類型;還規(guī)定了在通信中可能會(huì)出現(xiàn)的所有狀態(tài)的枚舉數(shù)組。
2 HA(home automation)規(guī)范[2]
HA規(guī)范是由ZigBee聯(lián)盟(ZigBee alliance)制定的對(duì)用于住宅環(huán)境的各類常見應(yīng)用的設(shè)備描述和操作規(guī)范。通過這一規(guī)范,為不同廠商的ZigBee HA設(shè)備提供了標(biāo)準(zhǔn)的接口和定義,確保其相互之間能夠相互通信并協(xié)同工作。
HA規(guī)范的范圍主要集中在對(duì)家用設(shè)備進(jìn)行的實(shí)時(shí)操作,該規(guī)范可以構(gòu)筑在ZigBee2007的兩個(gè)子規(guī)范(ZigBee、ZigBee pro)之上。
HA規(guī)范可以簡單分成圍繞網(wǎng)絡(luò)特性的參數(shù)設(shè)置和圍繞功能實(shí)現(xiàn)的設(shè)備描述分類(包括相應(yīng)設(shè)備的簇以及特性和功能)這兩大部分的內(nèi)容。
2.1 參數(shù)設(shè)置
HA規(guī)范對(duì)涉及到協(xié)議棧各功能方面的一些參數(shù)進(jìn)行了明確的規(guī)定,例如用于設(shè)備啟動(dòng)時(shí)的啟動(dòng)參數(shù)集(startup attribute sets),要求每個(gè)設(shè)備都必須內(nèi)置這些參數(shù),例如將PAN ID設(shè)置成0xffff等。還有比如用于網(wǎng)絡(luò)重連接的時(shí)間間隔、安全中心連接秘鑰等等參數(shù)。
在安全參數(shù)的設(shè)置方面,HA規(guī)范中規(guī)定,設(shè)備的初始網(wǎng)絡(luò)安全秘鑰(network key)是空的,即每個(gè)設(shè)備的網(wǎng)絡(luò)安全秘鑰必須由安全中心來統(tǒng)一分配;而安全中心連接秘鑰(trust center link key)是每個(gè)設(shè)備都預(yù)置好的。
2.2 設(shè)備描述
HA規(guī)范對(duì)可能會(huì)用到的設(shè)備進(jìn)行了劃分并設(shè)置了相應(yīng)的ID,在HA網(wǎng)絡(luò)中的每個(gè)終端都必須符合至少一項(xiàng)該分類圖中給出的設(shè)備描述分類(如果同時(shí)符合多個(gè)設(shè)備描述的話,需要在自己的設(shè)備描述中枚舉這些設(shè)備類型)。
ZigBee技術(shù)首先被運(yùn)用到軍事領(lǐng)域,之后這項(xiàng)技術(shù)逐步被應(yīng)用到民用領(lǐng)域。在民用中,符合802.15.4的主要有ZigBee和一些專用的協(xié)議棧(如圖2)。其中發(fā)展速度最快的當(dāng)屬ZigBee了,例如無線傳感網(wǎng)絡(luò)、自動(dòng)抄表、樓宇控制、醫(yī)療電子等應(yīng)用;接下來,Zigbee會(huì)向消費(fèi)類電子領(lǐng)域滲透。
ZigBee的應(yīng)用優(yōu)勢
全球不同的國家頻帶分布不同,其中2,4GHz在全球基本上都可以應(yīng)用。不同的國家也有一些不同的1GHz以下的一些頻帶,在美國是900多MHz,中國大陸用433MHz。ZigBee的優(yōu)勢是采用IEEE802.15.4的頻帶調(diào)制方法,可以用在全球不同的地方。但是802.15.4不一定采用ZigBee協(xié)議棧,反過來ZigBee協(xié)議棧一定是使用802.15.4。
與專用標(biāo)準(zhǔn)相比,ZigBee的優(yōu)勢是通用。例如今天家庭都有不同的表,包括電表、水表、氣表,ZigBee協(xié)議??梢詫?shí)現(xiàn)不同的表進(jìn)行統(tǒng)一的管理。
智能家居方面ZigBee也可以大展身手,因?yàn)樵谶@個(gè)領(lǐng)域有很多不同的生產(chǎn)廠家,有生產(chǎn)燈控的,還有生產(chǎn)探頭的……。如果燈控和探頭中間沒有一個(gè)標(biāo)準(zhǔn)的協(xié)議棧,溝通就很困難。標(biāo)準(zhǔn)的協(xié)議棧――ZigBee可以幫助燈控和探頭溝通。
ZigBee的應(yīng)用很多,例如醫(yī)院里面把一些貴重儀器定位。美國還有一個(gè)客戶把ZigBee定位應(yīng)用到停車場,因?yàn)槊绹钠嚦鲎夤居泻芏嗥?,所以把ZigBee的芯片放在每一輛汽車中,在停車場里建立一個(gè)ZigBee的網(wǎng)絡(luò),這就方便給他們的客戶或其工作人員去找到車的位置。
三種芯片方案
目前市場上的ZigBee有三種芯片方案(如表1)。
在選用哪種方案時(shí),需要考慮幾個(gè)方面:第一,有沒有空間?方案1的單芯片方案是空間占用最少的。第二,客戶需要的開發(fā)時(shí)間大概多少?如果時(shí)間很短,方案2理想,因?yàn)閆igBee的協(xié)議棧已經(jīng)做好,只要MCU或DSP具有SPI或UART接口,即可與ZigBee處理器連接。第三,方案3方案較有彈性。另外,方案1和3相對(duì)來說功耗都較低。
當(dāng)然采用哪種方案不能一概而論,還有一些特殊應(yīng)用情況。例如安防探頭,如果做好再拆開在國內(nèi)就要再次認(rèn)證,所以在這種情況以下,再外加一個(gè)ZigBee處理器會(huì)比較簡便。
ZigBee的技術(shù)挑戰(zhàn)
ZigBee要在市場上大量的使用,一個(gè)重要的挑戰(zhàn)就是在軟件上的定義,例如協(xié)議棧上怎么樣使ZigBee的網(wǎng)絡(luò)穩(wěn)定,還有可靠性。目前這些技術(shù)基本上已成熟,都是ZigBee Alliance來跟所有的廠家一起定義的。據(jù)TI低功耗射頻業(yè)務(wù)全球市場營銷總監(jiān)Emmanuel Sambuis介紹,今年4月TI在芯片廠商中率先為方案2推出了ZigBee處理器一CC2480,特點(diǎn)是把協(xié)議棧已經(jīng)做好,免去了客戶處理ZigBee協(xié)議棧的操作,以加速客戶zigBee在市場上的開發(fā)。
關(guān)鍵詞:ZigBee技術(shù) 3G技術(shù) 網(wǎng)關(guān)
1. 引言
各種網(wǎng)絡(luò)終端的出現(xiàn)和家庭智能化都迫切需要一種具備低成本、近距離、低功耗等優(yōu)點(diǎn)的無線互聯(lián)標(biāo)準(zhǔn),ZigBee就是在這樣的背景下應(yīng)運(yùn)而生的。ZigBee主要應(yīng)用于短距離、數(shù)據(jù)傳輸速率不高的各種電子設(shè)備之間的無線通信。而3G移動(dòng)通信系統(tǒng)的產(chǎn)生則是由于人們對(duì)信息處理和共享的需求不斷提高。本文就是為實(shí)現(xiàn)私有網(wǎng)絡(luò)的跨距離監(jiān)控,設(shè)計(jì)了一種基于ZigBee無線通信技術(shù)的3G網(wǎng)關(guān)通信節(jié)點(diǎn),其中3G技術(shù)采用的WCDMA技術(shù)。
2 . 3G網(wǎng)關(guān)的設(shè)計(jì)和總體架構(gòu)
ZigBee模塊選用的是JN5121芯片,它是高性能、低功耗的無線SoC芯片,JN5121內(nèi)置的ROM存儲(chǔ)器中集成了點(diǎn)對(duì)點(diǎn)通信與網(wǎng)狀通信的完整協(xié)議棧;其內(nèi)置的RAM存儲(chǔ)器,可以支持網(wǎng)絡(luò)路由和控制器功能而不需要外部擴(kuò)展任何的存儲(chǔ)空間。內(nèi)置的硬件MAC地址和高度安全的AES加密算法加速器,減少了系統(tǒng)的功耗和處理器的負(fù)載。
3G部分選用的是一款可以安裝3G模塊的3G開發(fā)板,此3G模塊選用的是基于WCDMA技術(shù)的華為公司生產(chǎn)的MU103模塊。
該網(wǎng)關(guān)以JN5121自帶的8位處理器作為網(wǎng)關(guān)的主系統(tǒng),JN5121以ZigBee協(xié)議棧為基礎(chǔ),在網(wǎng)關(guān)與ZigBee路由節(jié)點(diǎn)和終端節(jié)點(diǎn)之間接收數(shù)據(jù)通信,WCDMA模塊用于將ZigBee節(jié)點(diǎn)的數(shù)據(jù)發(fā)送到控制中心以及從控中心接收命令,系統(tǒng)硬件的總體結(jié)構(gòu)如下:
3. 硬件電路設(shè)計(jì)
硬件主要包括嵌入式處理器、ZigBee模塊、3G模塊三部分組成。但是考慮到選用的ZigBee模塊是JN5121模塊,本身自帶8位微處理器,所以此硬件主要包括ZigBee模塊和3G模塊兩部分組成。
3G網(wǎng)關(guān)的硬件框圖
4. 軟件設(shè)計(jì)
本設(shè)計(jì)使用的是CodeBlocks軟件,它是一款免費(fèi)、開源、跨平臺(tái)的C/C++ IDE,支持Windows、Linux、MacOSX。同時(shí)它還支持各種不同的編譯器。
4.1 WCDMA網(wǎng)絡(luò)和本設(shè)計(jì)中自組織網(wǎng)絡(luò)的通信協(xié)議
本設(shè)計(jì)中WCDMA網(wǎng)絡(luò)協(xié)議采用的是基于基站的協(xié)議模型,從下到上依是MTP1、MTP2、MTP3和SCCP。
MTP1定義了數(shù)字鏈路在物理上、電氣上及功能上的特性;對(duì)應(yīng)于OSI模型中的物理層;
MTP2確保消息在鏈路上實(shí)現(xiàn)精確的端到端傳送。對(duì)應(yīng)OSI模型中的數(shù)據(jù)鏈路層;
MTP3提供兩個(gè)信令點(diǎn)間消息的路由選擇功能,對(duì)應(yīng)OSI模型中的網(wǎng)絡(luò)層;
SCCP位于MTP之上,為MTP提供附加功能,對(duì)應(yīng)于OSI模型中的應(yīng)用層。
4.2 協(xié)議轉(zhuǎn)換軟件原理
JN5121自帶的8位處理器是實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)與WCDMA網(wǎng)絡(luò)的透明傳輸?shù)年P(guān)鍵系統(tǒng),將ZigBee協(xié)議轉(zhuǎn)換成WCDMA協(xié)議,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸,同時(shí)能夠?qū)CDMA協(xié)議轉(zhuǎn)換成ZigBee協(xié)議,向ZigBee節(jié)點(diǎn)發(fā)送控制命令。
從ZigBee往WCDMA的傳輸:3G網(wǎng)關(guān)從ZigBee節(jié)點(diǎn)中接收到數(shù)據(jù)時(shí),ZigBee模塊將接收到的數(shù)據(jù)傳輸?shù)阶詭У?位處理器,此處理器對(duì)接收到的數(shù)據(jù)進(jìn)行處理,去掉ZigBee協(xié)議棧頭,提取有用的數(shù)據(jù)載荷,然后加上WCDMA的協(xié)議棧頭。從WCDMA向ZigBee傳輸數(shù)據(jù)的處理過程相反。
5. 總結(jié)
各種無線網(wǎng)絡(luò)之間的互通已成為必然。為了實(shí)現(xiàn)信息資源的共享,并對(duì)各種不同網(wǎng)絡(luò)的優(yōu)點(diǎn)進(jìn)行互補(bǔ),網(wǎng)絡(luò)融合是未來網(wǎng)絡(luò)發(fā)展以及通信技術(shù)和通信標(biāo)準(zhǔn)發(fā)展的方向。本設(shè)計(jì)研究ZigBee網(wǎng)絡(luò)和3G網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計(jì)方案及實(shí)現(xiàn),提出了一種在嵌入式技術(shù)、3G技術(shù)和ZigBee技術(shù)的基礎(chǔ)上,設(shè)計(jì)了一款3G網(wǎng)關(guān)的設(shè)計(jì)方案,實(shí)現(xiàn)了ZigBee網(wǎng)絡(luò)與3G網(wǎng)絡(luò)的數(shù)據(jù)互通和個(gè)人局域網(wǎng)的遠(yuǎn)程實(shí)時(shí)監(jiān)控。
參考文獻(xiàn):
[1] 王權(quán)平,王莉.ZigBee技術(shù)簡析,通訊世界,2003,4
關(guān)鍵詞:ZigBee;一致性與互通性;ZigBee協(xié)議;測試節(jié)點(diǎn)
中圖分類號(hào):TP311.52
2007年,ZigBee聯(lián)盟宣布了認(rèn)證計(jì)劃。為了確保ZigBee[1]產(chǎn)品的可靠性以及在無線組網(wǎng)中工作的穩(wěn)定性,ZigBee聯(lián)盟負(fù)責(zé)實(shí)施、管理了認(rèn)證測試。每一個(gè)產(chǎn)品都基于公共應(yīng)用規(guī)范,以保證各個(gè)設(shè)備制造商的產(chǎn)品之間的互操作性。目前,全球只有三家實(shí)驗(yàn)室為ZigBee聯(lián)盟指定的完整測試服務(wù)授權(quán)廠商[2]。國內(nèi)還沒有一個(gè)廣受認(rèn)可的官方ZigBee測試規(guī)范。因此,就需要一個(gè)測試規(guī)范來檢測ZigBee設(shè)備是否達(dá)到ZigBee協(xié)議標(biāo)準(zhǔn)。
1 系統(tǒng)設(shè)計(jì)
該平臺(tái)是一個(gè)專門用于測試一個(gè)采用ZigBee協(xié)議標(biāo)準(zhǔn)開發(fā)的ZigBee設(shè)備是否符合ZigBee協(xié)議標(biāo)準(zhǔn),是為了保證ZigBee設(shè)備的一致性、互通性。平臺(tái)由ZigBee測試節(jié)點(diǎn)、以太網(wǎng)、ZigBee網(wǎng)絡(luò)和PC機(jī)控制端組成。
硬件方面,ZigBee節(jié)點(diǎn)的主要功能是采集和上傳數(shù)據(jù),完成數(shù)據(jù)從ZigBee協(xié)議環(huán)境下到TCP/IP協(xié)議環(huán)境下的轉(zhuǎn)換,并且能在無人看管的條件下長期運(yùn)行。軟件方面,應(yīng)具備如下功能:準(zhǔn)確地接收節(jié)點(diǎn)上傳的數(shù)據(jù),進(jìn)行實(shí)時(shí)的顯示、存儲(chǔ)并可隨時(shí)查看歷史數(shù)據(jù),通過對(duì)數(shù)據(jù)的修改和反饋,達(dá)到驗(yàn)證ZigBee節(jié)點(diǎn)是否符合ZigBee協(xié)議標(biāo)準(zhǔn)的目的。當(dāng)對(duì)ZigBee測試節(jié)點(diǎn)進(jìn)行測試時(shí),測試節(jié)點(diǎn)能自動(dòng)加入?yún)f(xié)調(diào)器節(jié)點(diǎn)發(fā)起的網(wǎng)絡(luò),將節(jié)點(diǎn)各層屬性數(shù)據(jù)上傳至協(xié)調(diào)器節(jié)點(diǎn),當(dāng)傳輸距離超過一跳傳輸距離時(shí),數(shù)據(jù)以多跳方式傳輸,觸發(fā)協(xié)調(diào)器節(jié)點(diǎn)執(zhí)行數(shù)據(jù)接收程序,該程序模塊通過調(diào)用函數(shù)將接收到的數(shù)據(jù)解析成TCP/IP協(xié)議下的數(shù)據(jù),對(duì)數(shù)據(jù)處理后,使用Socket網(wǎng)絡(luò)編程,將數(shù)據(jù)上傳至計(jì)算機(jī)軟件,軟件調(diào)用合適的函數(shù)對(duì)接收到的數(shù)據(jù)包進(jìn)行解析,將數(shù)據(jù)實(shí)時(shí)的顯示在軟件界面中,采用合適的方法,完成對(duì)該節(jié)點(diǎn)的測試與驗(yàn)證。該測試平臺(tái)的系統(tǒng)架構(gòu)圖如圖1所示。
1.1 ZigBee網(wǎng)絡(luò)硬件組成
一個(gè)ZigBee網(wǎng)絡(luò)的硬件組成包含ZigBee協(xié)調(diào)器節(jié)點(diǎn)、路由器節(jié)點(diǎn)以及終端節(jié)點(diǎn)三種,ZigBee網(wǎng)絡(luò)中的設(shè)備分為全功能設(shè)備(FFD)和半功能設(shè)備(RFD)。其中,F(xiàn)FD設(shè)備可提供全部的IEEE 802.15.4的MAC層服務(wù),可充當(dāng)ZigBee網(wǎng)絡(luò)中的任何設(shè)備,因?yàn)镕FD設(shè)備不僅可以發(fā)送和接收數(shù)據(jù),還具備路由轉(zhuǎn)發(fā)數(shù)據(jù)的功能;而RFD設(shè)備只提供部分的IEEE 802.15.4 MAC層服務(wù),因此只能充當(dāng)終端節(jié)點(diǎn),而不能充當(dāng)協(xié)調(diào)器節(jié)點(diǎn)和路由節(jié)點(diǎn),因此它只負(fù)責(zé)將自身的屬性數(shù)據(jù)發(fā)送給協(xié)調(diào)器節(jié)點(diǎn)和路由節(jié)點(diǎn),并不具備數(shù)據(jù)轉(zhuǎn)發(fā)、路由發(fā)現(xiàn)和路由維護(hù)等功能。
整個(gè)節(jié)點(diǎn)硬件電路主要包括射頻模塊、電源模塊、傳感器、嵌入式控制器和時(shí)鐘五個(gè)部分組成。ZigBee網(wǎng)絡(luò)測試節(jié)點(diǎn)采用了以ATmega128為核心控制模塊,以CC2530芯片為無線收發(fā)模塊的設(shè)計(jì)方法[3],ATmega128與CC2530芯片是通過SPI方式進(jìn)行相互之間的通訊的,ATmega128采用主模式,CC2530采用從模式。電源采用連接式電源。時(shí)鐘電路主要是采用ATmega128晶振來產(chǎn)生同步信號(hào),從而實(shí)現(xiàn)射頻模塊與處理器之間的同步。
在節(jié)點(diǎn)上由ATmega128為主控芯片及其芯片及電路組成的數(shù)據(jù)轉(zhuǎn)換設(shè)備,完成ZigBee協(xié)議數(shù)據(jù)到以太網(wǎng)TCP/IP協(xié)議數(shù)據(jù)的轉(zhuǎn)換。圖2為實(shí)際開發(fā)節(jié)點(diǎn)實(shí)物圖。
1.2 系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)方面包括硬件節(jié)點(diǎn)的軟件設(shè)計(jì)和PC機(jī)端的軟件設(shè)計(jì)。
1.2.1 協(xié)調(diào)器軟件設(shè)計(jì)
協(xié)調(diào)器軟件設(shè)計(jì)功能主要為:(1)創(chuàng)建并維護(hù)ZigBee網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)ZigBee網(wǎng)絡(luò)的創(chuàng)建,維護(hù)節(jié)點(diǎn)加入和退出時(shí)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。(2)接收PC機(jī)服務(wù)器端發(fā)送來的控制指令,并將其通過ZigBee網(wǎng)絡(luò)發(fā)送給各路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)。(3)將ZigBee網(wǎng)絡(luò)區(qū)域的節(jié)點(diǎn)的各層屬性數(shù)據(jù)經(jīng)過處理和融合,最后通過ZigBee模塊發(fā)送給PC機(jī)服務(wù)器端。
1.2.2 路由器節(jié)點(diǎn)和終端節(jié)點(diǎn)軟件設(shè)計(jì)
終端節(jié)點(diǎn)的作用是采集數(shù)據(jù),路由器除了采集數(shù)據(jù)以外還負(fù)責(zé)建立數(shù)據(jù)路由,其主要功能如下:(1)通過掃描可用信道尋找可用網(wǎng)絡(luò),如果存在可用網(wǎng)絡(luò),則終端節(jié)點(diǎn)/路由器節(jié)點(diǎn)就開始請(qǐng)求加入到網(wǎng)絡(luò)中,當(dāng)成功加入網(wǎng)絡(luò)后,終端節(jié)點(diǎn)/路由器節(jié)點(diǎn)便開始向目標(biāo)服務(wù)器發(fā)送自身的各層屬性數(shù)據(jù)。(2)采用中斷方式,接收由ZigBee網(wǎng)絡(luò)協(xié)調(diào)器發(fā)送過來的命令,并對(duì)命令進(jìn)行判斷,如果命令被判斷為控制命令,終端節(jié)點(diǎn)/路由器節(jié)點(diǎn)則根據(jù)命令幀收發(fā)數(shù)據(jù),如果命令是修改命令,則根據(jù)命令,終端節(jié)點(diǎn)/路由器節(jié)點(diǎn)完成對(duì)對(duì)應(yīng)屬性值的修改。
1.2.3 服務(wù)器軟件設(shè)計(jì)
該平臺(tái)軟件是以Windows XP為操作系統(tǒng),采用C++語言,選用Visual Studio 2010程序開發(fā)工具以及MFC對(duì)界面程序及其它應(yīng)用程序的設(shè)計(jì)[4]。軟件界面如圖3所示。
PC機(jī)軟件主要包含四個(gè)模塊:(1)網(wǎng)絡(luò)通信模塊,對(duì)整個(gè)ZigBee網(wǎng)絡(luò)進(jìn)行監(jiān)聽;(2)數(shù)據(jù)處理模塊,解析ZigBee網(wǎng)絡(luò)協(xié)議,接收網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)據(jù)包,分析數(shù)據(jù)包中的數(shù)據(jù),對(duì)解析好的數(shù)據(jù)進(jìn)行分類;(3)數(shù)據(jù)顯示模塊,在軟件中顯示接收的各節(jié)點(diǎn)IP地址及TCP/IP模型各層數(shù)據(jù);(4)驗(yàn)證模塊,ZigBee節(jié)點(diǎn)接收服務(wù)器的修改命令,對(duì)節(jié)點(diǎn)屬性進(jìn)行修改和反饋。
(1)網(wǎng)絡(luò)通信模塊。為完成PC機(jī)軟件端對(duì)整個(gè)ZigBee網(wǎng)絡(luò)進(jìn)行監(jiān)聽,ZigBee測試節(jié)點(diǎn)采用TCP/IP協(xié)議的Socket編程與服務(wù)器端建立連接,使用了IO完成端口(Completion Port)網(wǎng)絡(luò)通信模型。實(shí)現(xiàn)TCP/IP協(xié)議通信所采用的臨時(shí)端口號(hào)為10012。
摘 要:隨著計(jì)算機(jī)行業(yè)的迅猛發(fā)展,軟件系統(tǒng)也相應(yīng)增加了其復(fù)雜難度,系統(tǒng)架構(gòu)的設(shè)計(jì)在整個(gè)軟件中占據(jù)的比例越來越重,框架是軟件系統(tǒng)設(shè)計(jì)開發(fā)過程中滋生中的一個(gè)概念,在于重復(fù)使用已完成的設(shè)計(jì)和代碼且適用于實(shí)現(xiàn)某一特定類型的軟件系統(tǒng),保證其質(zhì)量。本文則主要詳細(xì)分析SSH組合框架中J2EE體系結(jié)構(gòu)的設(shè)計(jì),以及它在人力資源管理系統(tǒng)中的應(yīng)用實(shí)現(xiàn),以供參考。
關(guān)鍵詞:J2EE;SSH組合;框架;設(shè)計(jì);實(shí)現(xiàn)
中圖分類號(hào):TP311.52
近年來,Java技術(shù)的日趨完善和逐漸成熟,它作為企業(yè)計(jì)算機(jī)應(yīng)用中的標(biāo)準(zhǔn)平臺(tái),J2EE體系架構(gòu)也得到了全面的發(fā)展。它結(jié)合了面向?qū)ο蟮腗VC設(shè)計(jì)模式,構(gòu)成了一種快速高效的開發(fā)模式。這種開發(fā)模式有三種較為主流的框架:Hibernate、Struts、Sping。當(dāng)前特整合了一些優(yōu)秀的框架來適應(yīng)不同的應(yīng)用需求以此來快速提高開發(fā)效率,已經(jīng)成為系統(tǒng)軟件開發(fā)所流行的趨勢。
1 J2EE體系結(jié)構(gòu)相關(guān)概述
1.1 J2EE概念
1.2 J2EE體系上的結(jié)構(gòu)框架分析
框架存在的意義在于它們之間存在著不同的模板,且緊密關(guān)聯(lián),重要在于根據(jù)這些關(guān)聯(lián)性來有效的完成一些設(shè)計(jì)。它的關(guān)鍵是框架內(nèi)對(duì)象間的交互模式和控制流模式。在很多情況下框架都以組件庫的形式出現(xiàn),是一個(gè)可復(fù)用的設(shè)計(jì)組建,整個(gè)設(shè)計(jì)、協(xié)作組之間的責(zé)任分配、控制流程和依賴關(guān)系都可通過框架來作詳細(xì)闡明。當(dāng)前基J2EE架構(gòu)已經(jīng)開發(fā)出許多框架,使開發(fā)人員的負(fù)擔(dān)減輕了許多。當(dāng)前構(gòu)建Web應(yīng)用時(shí)要注重考慮業(yè)務(wù)邏輯處理、用戶請(qǐng)求處理及數(shù)據(jù)持久化等問題,從而出現(xiàn)了Hibernate、Struts、Sping三種基于Web層、數(shù)據(jù)層和業(yè)務(wù)層上比較常用的框架。
1.2.1 Hibernate框架
Hibernate框架支持使用各種Java思想,如實(shí)現(xiàn)對(duì)象利用Inheritance、Composition等,是一種比較徹底的Java對(duì)象映射工具。Hibernate框架具有很大靈活性,它可以在一張表的同一行當(dāng)中映射一個(gè)用戶定義的多個(gè)類的實(shí)例。因而傳統(tǒng)的從數(shù)據(jù)庫提取數(shù)據(jù)的代碼編寫量可以利用Hibernate QL來完成,縮短了提取時(shí)間,節(jié)省了開發(fā)成本。Hibernate框架之所以可以映射到數(shù)據(jù)庫的行,前提是因?yàn)樗ㄟ^Properties和類的映射文件,且某些功能構(gòu)件界于它最大模式和最小模式之間,是具有可選性的,從而實(shí)現(xiàn)簡化操作。
1.2.2 Sping框架
Struts是基于多層J2EE系統(tǒng)的框架,它提供了AOP的支持,JDBC的提取框架,Bean的配置基礎(chǔ)等,實(shí)現(xiàn)了MVC,為不同數(shù)據(jù)的技術(shù)訪問提供了統(tǒng)一的接口。Struts是一個(gè)服務(wù)于所有層面的應(yīng)用程序框架,由七個(gè)定義良好的模塊組成(具體組成構(gòu)圖如圖3所示),由于Struts模塊化的很好,以致并不強(qiáng)求在每一層中都要使用,根據(jù)自身所需選擇即可。
1.2.3 Struts框架
Struts框架基于MVC設(shè)計(jì)模式,一個(gè)應(yīng)用程序的商業(yè)邏輯、控制邏輯及表現(xiàn)邏輯的代碼可以利用Struts框架中MVC設(shè)計(jì)模式來分解,復(fù)雜的Web應(yīng)用也可以利用它來構(gòu)建。Struts是開源軟件,是Apache的Jakarta項(xiàng)目組成部分之一,受到全世界Java程序員的廣泛支持,開發(fā)者也可以免費(fèi)使用并通過源代碼來深入了解MVC的內(nèi)部實(shí)現(xiàn)機(jī)制。Struts因受到ActionServlet配合從而實(shí)現(xiàn)提供了靈活易用的系統(tǒng)導(dǎo)航機(jī)制,可以有機(jī)的聯(lián)系系統(tǒng)中的各部分,使其脈絡(luò)更加清晰,提高了系統(tǒng)的可擴(kuò)充性和可維護(hù)性。
2 SSH組合構(gòu)架設(shè)計(jì)和實(shí)現(xiàn)
Struts簡化了基于MVC的Web應(yīng)用程序的開發(fā),由于它的設(shè)計(jì)主要針對(duì)表示層,在后端邏輯層支持方面沒有表示層應(yīng)用效果佳,因而為了彌補(bǔ)它在邏輯層方面功能的不足,有必要研究改進(jìn)Struts框架。Spring因自身良好的模塊化可以有效的組織系統(tǒng)的中間層,在事物管理方面發(fā)揮著獨(dú)特的優(yōu)勢。Hibernate因自身優(yōu)勢在于持久化則可以大大減少操作數(shù)據(jù)庫的工作量。所以,可綜合上述內(nèi)容在J2EE架構(gòu)的基礎(chǔ)上整合Hibernate、Struts、Sping,使三者形式一個(gè)組合框架,充分發(fā)揮在表示層、業(yè)務(wù)層及持久層等方面的作用。
2.1 SSH組合構(gòu)架設(shè)計(jì)
SSH組合構(gòu)架在設(shè)計(jì)方面追求簡潔Web框架,功能方面也較為齊全,以此來降低層與層之間的耦合度和提高組件的可復(fù)用性。SSH組合構(gòu)架分表示層、持久層和業(yè)務(wù)層,功能和處理程序方面都有明確的規(guī)定,不能混合至其他層當(dāng)中,它們之間會(huì)有一個(gè)通信接口。
首先是表示層的設(shè)計(jì),它通用的控制組件ActionServle主要承擔(dān)MVC中的Controller角色,以Strutsconfig.xml為核心,通過運(yùn)用Action類來實(shí)現(xiàn)鏈接轉(zhuǎn)向、業(yè)務(wù)邏輯等方面處理,其主要功能有:為顯示提供一個(gè)模型、管理用戶的請(qǐng)求、做出相應(yīng)的相應(yīng)及進(jìn)行框架驗(yàn)證等。其次是業(yè)務(wù)層設(shè)計(jì);實(shí)現(xiàn)業(yè)務(wù)組件的關(guān)聯(lián)組裝基于Struts,主要功能處理應(yīng)用程度的業(yè)務(wù)邏輯和執(zhí)行管理事業(yè)和程序,提升系統(tǒng)的可擴(kuò)展性和兼容性。第三持久層設(shè)計(jì);實(shí)現(xiàn)數(shù)據(jù)庫交互的常用操作借助Hibernate,還可對(duì)數(shù)據(jù)庫訪問性能進(jìn)行優(yōu)化,提升編碼效率。之后將數(shù)據(jù)庫連接對(duì)象,提高編碼效率。其主要功能有:提供數(shù)據(jù)接口支持業(yè)務(wù)邏輯層,刪除,更新及存儲(chǔ)數(shù)據(jù)庫記錄。
SSH組合構(gòu)架設(shè)計(jì)的實(shí)現(xiàn)需要考慮Spring應(yīng)用環(huán)境的裝載,通過使用Spring的ContextLoaderPlugin來進(jìn)行Struts的ActionServlet裝載Spring應(yīng)用程序環(huán)境,它可以在struts應(yīng)用啟動(dòng)時(shí)被初始化且關(guān)閉時(shí)被銷毀,總之,三方合成的SSH組合構(gòu)架設(shè)計(jì)可以快速構(gòu)建高效穩(wěn)定的應(yīng)用系統(tǒng),實(shí)現(xiàn)層間的松散耦合。
3 結(jié)束語
總之,本文研究中通過在人力資源管理系統(tǒng)開發(fā)中結(jié)合Hibernate、Struts、Sping及J2EE的特點(diǎn),實(shí)現(xiàn)了系統(tǒng)結(jié)構(gòu)的較強(qiáng)的指導(dǎo)作用,以致在后續(xù)項(xiàng)目實(shí)施過程中表現(xiàn)出了良好的性能,因此,有效結(jié)合三種開源框架可充分提高系統(tǒng)的維護(hù)性和可擴(kuò)展性,便于企業(yè)級(jí)系統(tǒng)更好的應(yīng)用。
參考文獻(xiàn):
[1]龔濤.基于J2EE框架的會(huì)計(jì)信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].華中科技大學(xué),2010.
[2]王春超.基于J2EE架構(gòu)的SSH組合框架的研究[D].長春理工大學(xué),2010.
[3]伍飛.基于J2EE架構(gòu)的SSH框架研究及其在HRMS中的應(yīng)用[D].江南大學(xué),2010.
[4]孟凡迪.基于J2EE架構(gòu)的江蘇電信10000號(hào)外呼營銷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].東南大學(xué),2009.
關(guān)鍵詞:Zigbee;組網(wǎng)結(jié)構(gòu);物聯(lián)網(wǎng)
中圖分類號(hào):TN915.65 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2012)04-0213-02
通信技術(shù)、嵌入式技術(shù)、信息家電的飛速發(fā)展,使智能家居網(wǎng)絡(luò)的構(gòu)建成為可能。ZigBee是一種短距離、低速率的無線網(wǎng)絡(luò)技術(shù),而與物聯(lián)網(wǎng)的結(jié)合更加突出了ZigBee的技術(shù)。ZigBee一般采用IEEE802.15.4收發(fā)器與ZigBee協(xié)議棧的組合,在數(shù)千個(gè)微小的節(jié)點(diǎn)之間相互協(xié)調(diào)實(shí)現(xiàn)通信。這些節(jié)點(diǎn)只需要很少的能量,以接力的方式通過無線電波將數(shù)據(jù)從一個(gè)傳感器傳到另一個(gè)節(jié)點(diǎn),所以它們的通信效率非常高。因此,ZigBee在傳感器網(wǎng)絡(luò)、智能家居、工業(yè)自動(dòng)化等領(lǐng)域有廣泛的應(yīng)用。在這樣的背景之下,很多公司都開始了ZigBee產(chǎn)業(yè)化的道路。智能家居是未來家居的發(fā)展方向,它利用先進(jìn)的物聯(lián)網(wǎng)技術(shù)將家居生活有關(guān)的各種子系統(tǒng)有機(jī)地結(jié)合在一起,通過統(tǒng)籌管理,為人們提供智能、舒適的居住環(huán)境。ZigBee技術(shù)是一種家電智能控制無線系統(tǒng),是近幾年發(fā)展起來的一種短距離的無線通信技術(shù),具有短距離、低功耗、低數(shù)據(jù)率、低成本、安全可靠等優(yōu)點(diǎn),而物聯(lián)網(wǎng)使用的無線技術(shù),實(shí)現(xiàn)物物相連,給人們的生活帶來重大改變。家庭內(nèi)部地理范圍小,非常適合ZigBee技術(shù)對(duì)其進(jìn)行聯(lián)網(wǎng),而ZigBee的最初切入點(diǎn)也正是家庭自動(dòng)化。采用ZigBee技術(shù)組建智能家居內(nèi)部通信網(wǎng),其網(wǎng)絡(luò)采用網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),實(shí)現(xiàn)簡單,并且具備自組網(wǎng)功能,新傳感器節(jié)點(diǎn)入網(wǎng)無需人工配置,考慮了系統(tǒng)異常的情況。每一個(gè)Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)(FFD)還可在自己信號(hào)覆蓋的范圍內(nèi),和多個(gè)不承擔(dān)網(wǎng)絡(luò)信息中轉(zhuǎn)任務(wù)的孤立的子節(jié)點(diǎn)(RFD)無線連接。ZigBee技術(shù)會(huì)因室內(nèi)環(huán)境影響做出相應(yīng)的改善,采用了多工作模式(如休眠模式)降低了傳感器節(jié)點(diǎn)的功耗,延長了節(jié)點(diǎn)的使用壽命。智能家電控制系統(tǒng)實(shí)現(xiàn)了傳感器的通用接入,組建了基于ZigBee技術(shù)的自組織網(wǎng)絡(luò),系統(tǒng)安裝方便,擴(kuò)展性好,具有很好的實(shí)用價(jià)值??傊悄芗译娍刂葡到y(tǒng)已把人們從日?,嵤轮薪夥帕顺鰜恚瑢?shí)現(xiàn)了智能化家居。
一、Zigbee無線組網(wǎng)技術(shù)及其協(xié)議
家電智能控制無線自組網(wǎng)絡(luò)系統(tǒng)采用ZigBee技術(shù),對(duì)于一種近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的雙向無線通信技術(shù),它符合IEEE802.15.4協(xié)議。在網(wǎng)絡(luò)組建上,它選用的是“星狀組網(wǎng)”方案,因?yàn)樾切谓Y(jié)構(gòu)適合于實(shí)時(shí)性要求高,數(shù)據(jù)量比較大的場合。以下是家庭網(wǎng)絡(luò)的總體結(jié)構(gòu)。
IEEE 802.15.4標(biāo)準(zhǔn)是針對(duì)于低速無線個(gè)人區(qū)域網(wǎng),把低能量消耗、低速率傳輸、低成本作為重點(diǎn)目標(biāo),旨在為個(gè)人或者家庭范圍內(nèi)不同設(shè)備之間低速互連提供統(tǒng)一的標(biāo)準(zhǔn)?;赯igBee的無線傳感器網(wǎng)絡(luò)具有備成本低、傳輸速率低、設(shè)備體積小、省電、網(wǎng)絡(luò)自愈等特點(diǎn),ZigBee可以廣泛應(yīng)用在家庭自動(dòng)化。
二、Zigbee技術(shù)家電智能硬件設(shè)計(jì)
在硬件設(shè)計(jì)上,家電智能控制系統(tǒng)的硬件設(shè)計(jì),主要有射頻數(shù)據(jù)模塊、微控制器和設(shè)備組成。微處理器選用Freescale公司推出的超低功耗MC9S08GT60,無線收發(fā)器選用Freescale公司推出的一種短距離、低功耗,工作在2.4Ghz的MC13192。
三、Zigbee技術(shù)家電智能軟件設(shè)計(jì)
在軟件設(shè)計(jì)上,家電智能系統(tǒng)的軟件設(shè)計(jì)分為三層:系統(tǒng)平臺(tái)層、協(xié)議層和應(yīng)用層。系統(tǒng)平臺(tái)層通過API應(yīng)用程序接口來給協(xié)議層提供服務(wù);協(xié)議層則實(shí)現(xiàn)了基于802.15.4的物理層和鏈路層以及基于ZigBee的網(wǎng)絡(luò)層協(xié)議;應(yīng)用層通過API來調(diào)用協(xié)議層提供的服務(wù),實(shí)現(xiàn)網(wǎng)絡(luò)的管理和數(shù)據(jù)傳輸?shù)热蝿?wù)。
Zigbee技術(shù)的協(xié)議層結(jié)構(gòu)簡單,不同于藍(lán)牙和其他網(wǎng)絡(luò)結(jié)構(gòu),這些網(wǎng)絡(luò)結(jié)構(gòu)通常為7層,而Zigbee技術(shù)僅為3層。在Zigbee技術(shù)中,PHY層和MAC層采用lEEE802.15.4協(xié)議標(biāo)準(zhǔn),其中,PHY提供了兩種類型的服務(wù):通過物理層管理實(shí)體接口(PLME)對(duì)PHY層數(shù)據(jù)和PHY層管理提供服務(wù)。
四、結(jié)束語
通過項(xiàng)目組全體成員和指導(dǎo)老師的努力,經(jīng)過了一年左右的時(shí)間,我們終于完成了本次項(xiàng)目的論文。從開始申請(qǐng)這個(gè)項(xiàng)目時(shí)的茫然到這個(gè)項(xiàng)目論文文章的完成,每一個(gè)階段對(duì)于我們來說都是一次新的嘗試和挑戰(zhàn)。在這段時(shí)間里,我們學(xué)到了很多知識(shí)也感受了很多,因?yàn)檫@不是一個(gè)人獨(dú)立完成的而是以小組形式,分工合作來完成的。明確目標(biāo)很重要,小組成員之間的相互協(xié)調(diào)更是不可或缺,這些都體現(xiàn)出了團(tuán)隊(duì)合作的重要性。雖然本次項(xiàng)目不是很完善,還有很多不足之處,但是小組全體成員和指導(dǎo)老師的努力大家是有目共睹的,這些對(duì)于我們來說就是莫大的欣慰和成就感,我們相信其中的酸甜苦辣終究會(huì)化成美味的甘泉。這次論文的經(jīng)歷讓我們受益匪淺,從中我們知道論文是要用心去寫,是真正學(xué)習(xí)和研究的過程,沒有學(xué)習(xí)就不可能有研究能力,沒有研究就不會(huì)有所突破。希望這次的經(jīng)歷能讓我們大家在以后的學(xué)習(xí)和工作中更加努力,激勵(lì)著我們繼續(xù)進(jìn)步。
參考文獻(xiàn):
[1]李文仲.CC1110/CC2510無線單片機(jī)和無線自組織網(wǎng)絡(luò)入門與世界[M].北京:北京航空航天大學(xué)出版社,2008.
[2]
關(guān)鍵詞ZigBee協(xié)議;網(wǎng)絡(luò);IEEE802.15.4;路由算法;Tree路由;Z-AODV路由
1概述
ZigBee技術(shù)是由英國Invensys公司、日本三菱電氣公司、美國摩托羅拉公司以及荷蘭飛利浦等公司在2002年10月共同提出設(shè)計(jì)研究開發(fā)的具有低成本、體積小、能量消耗小和傳輸速率低的無線通信技術(shù)。
2000年12月,IEEE802無線個(gè)域網(wǎng)(WPAN,WirelessPersonalAreaNetwork)小組成立,致力于WPAN無線傳輸協(xié)議的建立。2003年12月,IEEE正式了該技術(shù)物理層和MAC層所采用的標(biāo)準(zhǔn)協(xié)議,即IEEE802.15.4協(xié)議標(biāo)準(zhǔn),作為ZigBee技術(shù)的網(wǎng)絡(luò)層和媒體接入層的標(biāo)準(zhǔn)協(xié)議。2004年12月,ZigBee聯(lián)盟在IEEE802.15.4定義的物理層(PHY)和媒體接入層(MAC)的基礎(chǔ)上定義了網(wǎng)絡(luò)層和應(yīng)用層,正式了基于IEEE802.15.4的ZigBee標(biāo)準(zhǔn)協(xié)議。
2網(wǎng)絡(luò)層的研究
ZigBee技術(shù)的體系結(jié)構(gòu)主要由物理層(PHY)、媒體接入層(MAC)、網(wǎng)絡(luò)/安全層以及應(yīng)用框架層組成,各層之間的分布如圖1所示。圖1ZigBee技術(shù)協(xié)議組成PHY層的特征是啟動(dòng)和關(guān)閉無線收發(fā)器、能量檢測、鏈路質(zhì)量、信道選擇、清除信道評(píng)估(CCA)以及通過物理媒體對(duì)數(shù)據(jù)包進(jìn)行發(fā)送和接收。MAC層可以實(shí)現(xiàn)信標(biāo)管理、信道接入、時(shí)隙管理、發(fā)送確認(rèn)幀、發(fā)送連接及斷開連接請(qǐng)求,還為應(yīng)用合適的安全機(jī)制提供一些方法。它包含具有時(shí)間同步信標(biāo)的可選超幀結(jié)構(gòu),采用免碰撞的載波偵聽多址訪問(CSMA-CA)。安全層主要實(shí)現(xiàn)密鑰管理、存取等功能。網(wǎng)絡(luò)層主要用于ZigBee的LR-WPAN網(wǎng)的組網(wǎng)連接、數(shù)據(jù)管理等。應(yīng)用框架層主要負(fù)責(zé)向用戶提供簡單的應(yīng)用軟件接口(API),包括應(yīng)用子層支持APS(ApplicationSub-layerSupport)、ZigBee設(shè)備對(duì)象ZDO(ZigBeeDeviceObject)等,實(shí)現(xiàn)應(yīng)用層對(duì)設(shè)備的管理,為ZigBee技術(shù)的實(shí)際應(yīng)用提供一些應(yīng)用框架模型等,以便對(duì)ZigBee技術(shù)的開發(fā)應(yīng)用。
網(wǎng)絡(luò)層的定義包括網(wǎng)絡(luò)拓?fù)洹⒕W(wǎng)絡(luò)建立、網(wǎng)絡(luò)維護(hù)、路由及路由的維護(hù)。
2.1ZigBee的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
ZigBee定義了三種拓?fù)浣Y(jié)構(gòu):星型拓?fù)浣Y(jié)構(gòu)(Star),主要為一個(gè)節(jié)點(diǎn)與多個(gè)節(jié)點(diǎn)的簡單通信設(shè)計(jì);樹型拓?fù)浣Y(jié)構(gòu)(Tree),使用分等級(jí)的樹型路由機(jī)制;網(wǎng)格型拓?fù)浣Y(jié)構(gòu)(Mesh),將Z-AODV和分等級(jí)的樹型(Tree)路由相結(jié)合的混合路由方法。三種拓?fù)浣Y(jié)構(gòu)如圖2所示。圖2網(wǎng)絡(luò)的三種拓?fù)浣Y(jié)構(gòu)ZigBee定義了三種設(shè)備類型:ZigBee協(xié)調(diào)器(ZigBeeCoordinator,ZC),用于初始化網(wǎng)絡(luò)信息,每個(gè)網(wǎng)絡(luò)只有一個(gè)ZC;ZigBee路由器(ZigBeeRouter,ZR),它起監(jiān)視或控制作用,但它也是用跳頻方式傳遞信息的路由器或中繼器;ZigBee終端設(shè)備(ZigBeeEndDevice,ZED),它只有監(jiān)視或控制功能,不能做路由或中繼之用。
在IEEE標(biāo)準(zhǔn)中,ZED被稱為精簡功能設(shè)備(Reduced-FunctionDevice,RFD),ZC和ZR被稱作全功能設(shè)備(Full-FunctionDevice,F(xiàn)FD)。
2.2網(wǎng)絡(luò)層路由算法的分析
網(wǎng)絡(luò)層支持Tree、Z-AODV、Tree+Z-AODV等多種路由算法。
2.2.1AODV路由協(xié)議
DSDV(destination-sequenceddistance-vector)協(xié)議是一個(gè)基于傳統(tǒng)的BellmanFord路由機(jī)制的表驅(qū)動(dòng)算法,被認(rèn)為是最早的無線自組網(wǎng)絡(luò)路由協(xié)議。DSDV在傳統(tǒng)的distance-vector算法的基礎(chǔ)上采用了序列號(hào)機(jī)制,用于區(qū)分路由的新舊程度,防止distance-vector算法可能產(chǎn)生的路由環(huán)路。DSDV采用時(shí)間驅(qū)動(dòng)和事件驅(qū)動(dòng)技術(shù)控制路由表的傳送,即每個(gè)移動(dòng)節(jié)點(diǎn)在本地都保留一張路由表,其中包括所有有效目的節(jié)點(diǎn)、路由跳數(shù)、目的節(jié)點(diǎn)路由序列號(hào)等信息,目的節(jié)點(diǎn)路由序列號(hào)用于區(qū)別有效和過期的路由信息以避免環(huán)路的產(chǎn)生。
DSR(dynamicsourcerouting)協(xié)議是最早采用按需路由思想的路由協(xié)議,包括路由發(fā)現(xiàn)和維護(hù)兩個(gè)過程。它的主要特點(diǎn)是使用
了源路由機(jī)制進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā)。
AODV(ad-hocon-demanddistancevector)協(xié)議在DSDV協(xié)議的逐跳路由、序列號(hào)、定期廣播機(jī)制基礎(chǔ)上,加入了DSR的按需路由發(fā)現(xiàn)和維護(hù)機(jī)制。
AODV在每個(gè)中間節(jié)點(diǎn)隱式保存了路由請(qǐng)求和應(yīng)答的結(jié)果,并利用擴(kuò)展環(huán)搜索(expandingringresearch)的辦法限制搜索發(fā)現(xiàn)目的節(jié)點(diǎn)的范圍。AODV支持組播功能,支持QoS,而且AODV使用IP地址,便于同Internet連接。但AODV基于雙向信道的假設(shè),路由應(yīng)答數(shù)據(jù)包直接沿著路由請(qǐng)求的反方向回溯到源節(jié)點(diǎn),因而不支持單向信道。與DSDV保存完整的路由表不同的是,AODV通過建立按需路由來減少路由廣播的次數(shù),這是AODV對(duì)DSDV的重要改進(jìn)。與DSR相比,AODV的好處在于源路由并不需要包括在每一個(gè)數(shù)據(jù)包中,這樣會(huì)降低路由協(xié)議的開銷。AODV是一個(gè)純粹的按需路由協(xié)議,那些不在路徑內(nèi)的節(jié)點(diǎn)不保存路由信息,也不參與路由表的交換。
2.2.2Z-AODV能量平衡路由
在ZigBee路由規(guī)范中沒有過多的考慮能量控制,但是對(duì)于adhoc無線網(wǎng)絡(luò)來說,能量控制非常重要。因此提出了能量控制策略來改進(jìn)ZigBee路由。它將使節(jié)點(diǎn)避免用盡所有能量以至于過早的失去作用。當(dāng)節(jié)點(diǎn)想要選擇路徑時(shí),它將考慮路徑上的節(jié)點(diǎn)的剩余能量。
Z-AODV算法是針對(duì)AODV(Adhoc按需距離矢量路由協(xié)議)算法的改進(jìn),AODV是基于序列號(hào)的路由,它總是選擇最新的路由。Z-AODV是基于路徑的能量消耗的路由,考慮到節(jié)能、應(yīng)用方便性等因素,簡化了AODV的一些特點(diǎn),但仍保持AODV的原始功能。
在路由選擇和路由維護(hù)時(shí),ZigBee的路由算法使用了路由成本的度量方法來比較路由的好壞。假定一個(gè)長度為L的路由P,則它的路由成本為:為:其中,表示從節(jié)點(diǎn)Di到節(jié)點(diǎn)Di+1的鏈路成本。對(duì)于鏈路l,鏈路成本可按照下面的表達(dá)式計(jì)算:其中,pl為鏈路l中發(fā)送數(shù)據(jù)包的概率。
在ZigBee規(guī)范中沒有涉及到pl的具體計(jì)算方法。pl可通過實(shí)際計(jì)算收到的信標(biāo)和數(shù)據(jù)幀來進(jìn)行估計(jì),即通過觀察幀的響應(yīng)序列號(hào)來檢測丟失的幀,這就通常被認(rèn)為最準(zhǔn)確地測量接收概率的方法。但是,對(duì)于所有的方法來說,最直接和有效的方法就是基于IEEE802.15.4的MAC層和PHY層所提供的每一幀的LQI通過平均所計(jì)算的值。即使使用其他方法,最初的成本估計(jì)值也是基于平均的LQI值。可以根據(jù)驅(qū)動(dòng)函數(shù)表來映射平均LQI值與C﹛l﹜值的關(guān)系(見表1)。表1LQI值與鏈路成本的關(guān)系能量平衡運(yùn)算要考慮許多因素來選擇路由。這些因素包括臨近節(jié)點(diǎn)的能量、節(jié)點(diǎn)自身的能量和鏈路質(zhì)量。剩余能量Elocal可以在每一個(gè)ZigBee幀中的保留域發(fā)送,這樣每個(gè)節(jié)點(diǎn)都能得到它的鄰居節(jié)點(diǎn)最新的能量分配﹛E1,E2…En﹜。
2.2.3樹型(Tree)路由
樹型路由機(jī)制包括配置樹型地址和樹型地址的路由。當(dāng)協(xié)調(diào)器建立一個(gè)新的網(wǎng)絡(luò),它將給自己分配網(wǎng)絡(luò)地址0,網(wǎng)絡(luò)深度Depth0=0。如果節(jié)點(diǎn)(i)想要加入網(wǎng)絡(luò),并且與節(jié)點(diǎn)(k)連接,那么節(jié)點(diǎn)(k)將稱為節(jié)點(diǎn)(i)的父節(jié)點(diǎn)。根據(jù)自身的地址Ak和網(wǎng)絡(luò)深度Depthk,節(jié)點(diǎn)(k)將為節(jié)點(diǎn)(i)分配網(wǎng)
絡(luò)地址Ai和網(wǎng)絡(luò)深度Depthi=Depthk+1。網(wǎng)絡(luò)深度表示僅僅采用父子關(guān)系的網(wǎng)絡(luò)中,一個(gè)傳送幀傳送到ZigBee協(xié)調(diào)器所傳遞的最小跳數(shù)。ZigBee協(xié)調(diào)器自身深度為0,而它的子設(shè)備深度為1。
圖3為ZigBee樹型結(jié)構(gòu)。參數(shù)nwkMaxChildren(Cm)表示路由器或協(xié)調(diào)器在網(wǎng)絡(luò)中允許擁有子設(shè)備數(shù)量的最大值。參數(shù)nwkMaxRouters(Rm)表示子節(jié)點(diǎn)中路由器的最大個(gè)數(shù),而剩下的設(shè)備數(shù)為終端設(shè)備數(shù)。圖3ZigBee樹型結(jié)構(gòu)一個(gè)新的RFD節(jié)點(diǎn)(i),它沒有路由能力,它與協(xié)調(diào)器連接作為協(xié)調(diào)器的第n個(gè)子節(jié)點(diǎn)。根據(jù)它的深度d,父節(jié)點(diǎn)(k)將為子節(jié)點(diǎn)(i)分配網(wǎng)絡(luò)地址:
Ai=Ak+Cskip(d)·Rm+n其中1≤n≤(Cm-Rm)
如果是新的子節(jié)點(diǎn)FFD,它有路由能力,父節(jié)點(diǎn)(k)將給它分配網(wǎng)絡(luò)地址:
Ai=Ak+1+Cskip(d)·(n-1)
其中,
否則,參數(shù)nwkMaxDepth(Lm)表示網(wǎng)絡(luò)的最大深度。
假設(shè)一個(gè)路由器向網(wǎng)絡(luò)地址為D的目的地址發(fā)送數(shù)據(jù)包,路由器的網(wǎng)絡(luò)地址為A,網(wǎng)絡(luò)深度為d。路由器將首先通過表達(dá)式:
A<D<A+Cskip(d-1)
判斷該目的節(jié)點(diǎn)是否為自己的子節(jié)點(diǎn)。如果目的節(jié)點(diǎn)是自己的子節(jié)點(diǎn),則下一跳節(jié)點(diǎn)的地址為:
否則,下一跳節(jié)點(diǎn)是該路由器的父節(jié)點(diǎn)。
2.2.4Tree+Z-AODV路由算法的分析
根據(jù)上文對(duì)Tree和Z-AODV兩種路由算法的分析,在我們的ZigBee網(wǎng)絡(luò)中將二者結(jié)合,使用Z-AODV和分等級(jí)的樹型(Tree)路由相結(jié)合的混合路由方法,構(gòu)成網(wǎng)格型拓?fù)浣Y(jié)構(gòu)(Mesh)的網(wǎng)絡(luò)。
具體實(shí)現(xiàn)方法是在數(shù)據(jù)幀幀頭的DiscoverRouter域指定路由。該域可以是如下三種值:
⑴抑制路由發(fā)現(xiàn):它使用已經(jīng)存在的路由表。當(dāng)路由表中沒有相應(yīng)的目的節(jié)點(diǎn)的地址時(shí),參數(shù)nwkUseTreeRouting的值為TRUE,網(wǎng)絡(luò)將使用樹型路由。
⑵使能路由發(fā)現(xiàn):如果在路由表中有路由地址,將按照該路由表進(jìn)行路由。否則,路由器將使用Z-AODV路由算法初始路由發(fā)現(xiàn)。如果該節(jié)點(diǎn)沒有初始路由發(fā)現(xiàn)的能力,它將使用樹型路由。
⑶強(qiáng)制路由發(fā)現(xiàn):不管是否有相應(yīng)的路由表,節(jié)點(diǎn)都強(qiáng)制使用Z-AODV路由算法初始化路由發(fā)現(xiàn)。
在ZigBee規(guī)范中提出了將AODV和Tree路由混合的路由機(jī)制。但在ZigBee規(guī)范中并沒有說明如何配置參數(shù)來選擇路由策略,沒有使兩者平衡的設(shè)計(jì)方法。根據(jù)上面Tree路由和Z-AODV的分析,我們提出了基于數(shù)據(jù)特性的路由方法,即在兩種路由算法構(gòu)成的網(wǎng)格型網(wǎng)絡(luò)中,根據(jù)節(jié)點(diǎn)間傳輸數(shù)據(jù)特性的不同,通過設(shè)置數(shù)據(jù)幀幀頭的DiscoverRouter域,選擇不同的路由方法。對(duì)于捆綁型的連續(xù)數(shù)據(jù),ZigBee應(yīng)用層應(yīng)選擇使用使能路由的方法。即采用Z-AODV路由首先建立路由發(fā)現(xiàn),然后選擇跳數(shù)少的路由,成為最佳路徑;對(duì)于爆發(fā)型的不連續(xù)數(shù)據(jù)則使用抑制路由發(fā)現(xiàn)的方法,即在路由表中沒有響應(yīng)的目的節(jié)點(diǎn)的地址時(shí),采用Tree路由方法。因?yàn)檫@種路由不需要建立路由表,因此對(duì)傳輸?shù)臄?shù)據(jù)響應(yīng)較快。
圖4為節(jié)點(diǎn)接收到上層或其他節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包時(shí),網(wǎng)絡(luò)層處理程序的流程圖。圖4路由算法流程圖2.3總結(jié)
Tree路由是一種由網(wǎng)絡(luò)協(xié)調(diào)器展開生成樹狀網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),適合于節(jié)點(diǎn)靜止或者移動(dòng)較少的場合,屬于靜態(tài)路由,不需要存儲(chǔ)路由表。樹型路由對(duì)傳輸數(shù)據(jù)包的響應(yīng)較快,因?yàn)闃湫吐酚刹恍枰⒙酚杀?。其缺點(diǎn)是所選擇的路由并非是最佳的路由,不能獲得最小路由。樹型路由適用于爆發(fā)型的數(shù)據(jù)傳輸。
Z-AODV需要首先建立路由發(fā)現(xiàn),然后選擇跳數(shù)少的路由,成為最佳路徑。Z-AODV適用于連續(xù)的數(shù)據(jù)傳輸。
在ZigBee規(guī)范中,設(shè)計(jì)了Z-AODV和Tree路由混合的路由策略,這里我們提出了基于數(shù)據(jù)服務(wù)的ZigBee路由選擇策略。根據(jù)上述分析可以看出,這種路由選擇機(jī)制在網(wǎng)絡(luò)性能和低功耗方面有明顯的優(yōu)勢;并且根據(jù)能量控制機(jī)制,可以有效地平衡節(jié)點(diǎn)能量,避免節(jié)點(diǎn)耗盡能量而過早地失去作用。
3ZigBee模塊硬件設(shè)計(jì)
模塊集無線收發(fā)器、微處理器、存儲(chǔ)器和用戶API等軟硬件于一體,可實(shí)現(xiàn)1.0版ZigBee協(xié)議棧的功能。圖5ZigBee模塊框圖圖5是模塊的硬件框圖,射頻芯片采用Chipcon公司生產(chǎn)的符合IEEE802.15.4標(biāo)準(zhǔn)的模塊CC2420;控制射頻芯片的微處理器可以根據(jù)需要選擇Atmel公司的AVR系列單片機(jī)或者SiliconLabs公司的8051內(nèi)核單片機(jī)。單片機(jī)與射頻芯片之間通過SPI通信。單片機(jī)與外部設(shè)備之間通過串口通信,單片機(jī)自帶若干ADC或者溫度傳感器,可以實(shí)現(xiàn)簡單的模數(shù)轉(zhuǎn)換或者溫度監(jiān)控。為了方便代碼移植到不同的硬件平臺(tái),模塊固件采用標(biāo)準(zhǔn)C語言編寫代碼實(shí)現(xiàn)。
參考文獻(xiàn)
[1]蔣挺,趙成林.紫蜂技術(shù)及其應(yīng)用[M].北京:北京郵電大學(xué)出版社,2006
[2]ZigBeeSpecification.ZigBeeAlliance[R],2006
[3]IEEE.IEEEstandards8021.15.4[R];2003
關(guān)鍵詞:智慧教室;燈光;ZigBee;CC2430
中圖分類號(hào):TP399 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2014)10-00-03
0 引 言
智慧教室的燈光控制是物聯(lián)網(wǎng)的一項(xiàng)重要應(yīng)用。因此,從系統(tǒng)硬件、軟件和協(xié)議數(shù)據(jù)格式上,對(duì)智慧教室的燈光控制系統(tǒng)進(jìn)行全面的設(shè)計(jì),對(duì)于物聯(lián)網(wǎng)的應(yīng)用推廣和節(jié)能減排,都具有重要的應(yīng)用示范價(jià)值與實(shí)用性意義。
1 總體架構(gòu)
智慧教室燈光控制系統(tǒng)的基本架構(gòu)如圖1所示。該系統(tǒng)由信息感測節(jié)點(diǎn)(ZigBee無線傳感器節(jié)點(diǎn))、智能處理平臺(tái)以及繼電器節(jié)點(diǎn)組成。系統(tǒng)中的三種功能節(jié)點(diǎn)采用ZigBee協(xié)議構(gòu)成無線傳感器網(wǎng)絡(luò)(WSN)。智能處理平臺(tái)在WSN中擔(dān)任ZigBee協(xié)調(diào)器節(jié)點(diǎn),信息感測節(jié)點(diǎn)及繼電器節(jié)點(diǎn)擔(dān)任ZigBee終端節(jié)點(diǎn)。
圖1 智慧教室燈光控制系統(tǒng)架構(gòu)
信息感測節(jié)點(diǎn)主要通過傳感器技術(shù)實(shí)現(xiàn)對(duì)環(huán)境信息的感知及采集,如光照強(qiáng)度、人體感應(yīng)數(shù)據(jù),并通過ZigBee協(xié)議將采集結(jié)果傳至信息處理平臺(tái)。
信息處理平臺(tái)中,ZigBee協(xié)調(diào)器負(fù)責(zé)接收感知數(shù)據(jù),并將接收到的數(shù)據(jù)通過RS232串口傳送到應(yīng)用開發(fā)平臺(tái),應(yīng)用開發(fā)平臺(tái)對(duì)收到的采集結(jié)果進(jìn)行分析、決策后,將控制命令從RS232發(fā)往ZigBee協(xié)調(diào)器,ZigBee協(xié)調(diào)器通過ZigBee無線通信協(xié)議將控制命令發(fā)送到繼電器。
繼電器節(jié)點(diǎn)通過ZigBee協(xié)議接收ZigBee協(xié)調(diào)器發(fā)來的控制命令,執(zhí)行開或關(guān)燈的指令。
ZigBee無線通信協(xié)議不需要獨(dú)立的硬件設(shè)備,而是以無線通信模塊的形式,在信息感測節(jié)點(diǎn)、信息處理平臺(tái)和繼電器節(jié)點(diǎn)中均需要實(shí)現(xiàn)。
2 硬件設(shè)計(jì)
2.1 信息感測節(jié)點(diǎn)
信息感測節(jié)點(diǎn)硬件上由傳感器、微處理器、無線通信模塊、電池組成。圖2所示是信息感測節(jié)點(diǎn)的組成圖。在設(shè)計(jì)上,為了降低成本,并提高硬件的可擴(kuò)展性和靈活性,信息感測節(jié)點(diǎn)的微處理器及無線通信模塊可采用選用相同的ZB2430底板實(shí)現(xiàn),其核心芯片是TI公司的CC2430,ZB2430電路原理圖如圖3所示。傳感器選用插件式的硬件設(shè)計(jì),通過ZB2430的I/O擴(kuò)展口與ZB2430相連,信息感測節(jié)點(diǎn)只在傳感器插件上不同。根據(jù)智慧教室燈光控制的實(shí)際需要,選用了光照、人體兩類傳感器,共兩類信息感測節(jié)點(diǎn)。
圖2 信息感測節(jié)點(diǎn)組成
2.2 信息處理平臺(tái)硬件
信息處理平臺(tái)硬件上采用DMATEK的DMA210XP整合平臺(tái),其集成了應(yīng)用開發(fā)平臺(tái)和ZigBee協(xié)調(diào)器端功能,ZigBee協(xié)調(diào)器端接收從感測節(jié)點(diǎn)采集到的數(shù)據(jù),并通過串口傳輸?shù)綉?yīng)用開放平臺(tái),由其對(duì)感測數(shù)據(jù)做進(jìn)一步的分析、處理和顯示,其組成圖如圖3所示。
ZigBee協(xié)調(diào)器端采用DAMTEK的ZB2430-03實(shí)現(xiàn), ZB2430-03的硬件組成與信息感測節(jié)點(diǎn)的ZB2430完全一致,只在軟件上不同,通過在軟件上定義ZB2430為從模塊(終端)、ZB2430-03為主模塊(協(xié)調(diào)器),實(shí)現(xiàn)信息在兩者間通信。
圖3 信息處理平臺(tái)組成
應(yīng)用開發(fā)平臺(tái)采用具有先進(jìn)ARM Cortex A8核心的Samsung S5PV210處理器,該處理器采用ARM Cortex A8核心,DMA210XP應(yīng)用平臺(tái)結(jié)合ZigBee 無線感測,實(shí)現(xiàn)智慧教室燈光控制的應(yīng)用 。
2.3 繼電器節(jié)點(diǎn)硬件
繼電器節(jié)點(diǎn)硬件設(shè)計(jì)與信息感測節(jié)點(diǎn)硬件類似,但沒有傳感器模塊。
3 軟件設(shè)計(jì)
3.1 信息感測節(jié)點(diǎn)軟件
信息感測節(jié)點(diǎn)的軟件可采用嵌入式系統(tǒng)的開發(fā)方式與流程,開發(fā)工具為IAR。本系統(tǒng)共涉及光照、人體兩類傳感器,這兩類傳感器獲取到的數(shù)據(jù)格式略有不同。具體如下:
相同部分:
#define MAX_SEND_BUF_LEN 128 //定義發(fā)送緩沖區(qū)長度上限
static uint8 pTxData[MAX_SEND_BUF_LEN]; //定義發(fā)送緩沖區(qū)的大小
/*填充發(fā)送緩沖區(qū),對(duì)5類傳感器均相同,開始*/
pTxData[0] = 0xFF;
pTxData[1] = 0xFD;
pTxData[3] = 4;
pTxData[8] = 0;
pTxData[9] = 0;
pTxData[10] = CheckSum(pTxData,10); //校驗(yàn)和
/*填充發(fā)送緩沖區(qū),對(duì)2類傳感器均相同,結(jié)束*/
不同部分有光電傳感器的數(shù)據(jù)獲取與處理:
unsigned intADC_GetValue(void)// 獲取傳感器采樣數(shù)據(jù)
{
unsigned intadcValue = 0;
adcValue = adcSampleSingle(ADC_REF_AVDD, ADC_12_BIT, HAL_BOARD_IO_ADC_CH);
return adcValue;
}
/*對(duì)采樣數(shù)據(jù)的轉(zhuǎn)換,開始*/
ADC_VALUE = ADC_GetValue()*3.3/16384/2;
pTxData[4] = (uint8)ADC_VALUE%10 + 48;
pTxData[5] = (uint8)(ADC_VALUE*10)%10 + 48;
/*對(duì)采樣數(shù)據(jù)的轉(zhuǎn)換,結(jié)束*/
pTxData[6] = 0x00; //填充發(fā)送緩沖區(qū)
pTxData[7] = 0x00; //填充發(fā)送緩沖區(qū)
人體傳感器的數(shù)據(jù)處理:
pTxData[4] = HAL_INT_VAL();
pTxData[5] = 0x00;
pTxData[6] = 0x00;
pTxData[7] = 0x00;
信息感測節(jié)點(diǎn)應(yīng)用程序?qū)鞲衅鳒y量值的獲取、轉(zhuǎn)換、緩存及無線發(fā)送功能可采用如圖4所示的程序流程來實(shí)現(xiàn)。
圖4 信息感測節(jié)點(diǎn)數(shù)據(jù)處理流程圖
3.2 信息處理平臺(tái)軟件
信息處理平臺(tái)的ZigBee協(xié)調(diào)器模塊通過ZigBee點(diǎn)對(duì)點(diǎn)無線通信協(xié)議,負(fù)責(zé)接收和匯聚各傳感器采集到的感測信息,并將接收到感測數(shù)據(jù)通過RS 232串口傳輸?shù)綉?yīng)用開發(fā)平臺(tái);同時(shí),負(fù)責(zé)從RS 232串口接收從應(yīng)用開發(fā)平臺(tái)下達(dá)的控制命令,并通過ZigBee無線通信協(xié)議將控制命令發(fā)送到ZigBee繼電器節(jié)點(diǎn)(電燈)。具體程序流程如圖5所示。
圖5 ZigBee協(xié)調(diào)器端程序流程圖
3.3 繼電器節(jié)點(diǎn)軟件設(shè)計(jì)
在本系統(tǒng)中,用ZigBee繼電器模擬教室電燈,ZigBee繼電器通過ZigBee點(diǎn)對(duì)點(diǎn)無線通信協(xié)議接收ZigBee協(xié)調(diào)器發(fā)來的控制命令,實(shí)現(xiàn)對(duì)各繼電器(電燈)的打開及關(guān)閉控制。其ZigBee繼電器程序流程如圖6所示。
圖6 繼電器節(jié)點(diǎn)程序流程圖
4 ZigBee點(diǎn)對(duì)點(diǎn)通信參數(shù)及數(shù)據(jù)格式設(shè)計(jì)
4.1 ZigBee點(diǎn)對(duì)點(diǎn)通信參數(shù)設(shè)計(jì)
對(duì)Zigbee點(diǎn)對(duì)點(diǎn)通信參數(shù)的設(shè)置,有RF_CHANNEL、PAN_ID、SENSOR_ADDR、COORD_ADDR四項(xiàng)。ZigBee無線傳感器節(jié)點(diǎn)模塊、ZigBee繼電器模塊、ZigBee協(xié)調(diào)器模塊的RF_CHANNEL、PAN_ID設(shè)置一致;無線傳感器節(jié)點(diǎn)模塊的SENSOR_ADDR為無線傳感器節(jié)點(diǎn)地址;無線傳感器節(jié)點(diǎn)模塊的COORD_ADDR為發(fā)送地址,要與協(xié)調(diào)器模塊的COORD_ADDR設(shè)置一致;繼電器模塊的RELAY_ADDR為繼電器地址,要與協(xié)調(diào)器模塊的RELAY_ADDR設(shè)置一致。本設(shè)計(jì)采用的設(shè)置如下:
#define RF_CHANNEL 22 // 頻道 11~26
#define PAN_ID 0x1122 //網(wǎng)絡(luò)id
#define COORD_ADDR 0x5566 //協(xié)調(diào)器地址
#define RELAY_ADDR 0x7788 //繼電器地址
4.2 ZigBee無線通信數(shù)據(jù)格式設(shè)計(jì)
4.2.1 協(xié)調(diào)器接收格式
本設(shè)計(jì)的發(fā)送端傳感器格式(byte1-byte10)如圖7所示。
Head Type Len Data Res Chk
0xFA 0xFB Type 0x04 D1 D 2 D 3 D 4 保留 校驗(yàn)和
圖7 發(fā)送端傳感器格式
圖7中,byte1,byte2:傳感器端數(shù)據(jù)發(fā)送的固定頭,固定為0xFA,0xFB;byte3:數(shù)據(jù)類型的標(biāo)識(shí),例0x01人體,0x02光照;byte4:為傳感數(shù)據(jù)長度(統(tǒng)一為0x04);byte5-byte8:傳感器采集到的具體數(shù)據(jù);byte9:保留;byte10:byte1-byte9校驗(yàn)值(相加取低8位)。
4.2.2 協(xié)調(diào)器發(fā)送數(shù)據(jù)格式
本設(shè)計(jì)的接收端為電燈(繼電器),格式(byte1-byte10)如圖8所示。
Head Number Len Res Chk
0xFB 0xFA Des 0x04 保留 保留 保留 保留 校驗(yàn)和
圖8 接收端格式(byte1-byte10)圖
圖8中,byte1,byte2:Coordinator端數(shù)據(jù)發(fā)送控制繼電器命令的固定頭0xFA,0xFB;byte3:Coordibator端數(shù)據(jù)發(fā)送對(duì)象,是繼電器序號(hào);0x01:發(fā)送命令給繼電器1端,表示電燈1;0x02:發(fā)送命令給繼電器2端,表示電燈2;0x03:發(fā)送命令給繼電器3端,表示電燈3;0x04:發(fā)送命令給繼電器4端,表示電燈4,以此類推;byte4:命令長度,固定為0x04;byte5:發(fā)送給繼電器的命令內(nèi)容(0x02為關(guān)閉,0x01為開啟);byte6-byte9:保留;byte10:byte1-byte9校驗(yàn)值(相加取低8位)。
4.2.3 電燈(繼電器)應(yīng)答數(shù)據(jù)格式
本設(shè)計(jì)的接收端,即協(xié)調(diào)器的格式(byte1-byte9)如圖9所示。
Head Number Len 應(yīng)答碼 Chk
0xFB 0xFA Des 0x04 R1 R2 R3 R4 校驗(yàn)和
圖9 協(xié)調(diào)器的格式圖
圖9中,byte1-byte4:表示收到的數(shù)據(jù)原值返回;byte5-byte8:應(yīng)答碼,固定為0xAA 0xBB 0xCC 0xDD;byte9:是byte1-byte8的校驗(yàn)值(相加取低8位)。
5 結(jié) 語
智慧教室的燈光控制是物聯(lián)網(wǎng)的一項(xiàng)重要應(yīng)用,本文從硬件、軟件和協(xié)議數(shù)據(jù)格式上對(duì)智慧教室的燈光控制系統(tǒng)進(jìn)行了較為全面的設(shè)計(jì),對(duì)物聯(lián)網(wǎng)的應(yīng)用推廣、節(jié)能減排等方面都具有重要的應(yīng)用價(jià)值與實(shí)用性,只需在軟件上和傳感器插件上做少量改動(dòng),本系統(tǒng)的應(yīng)用還可進(jìn)一步推廣,如應(yīng)用到倉儲(chǔ)監(jiān)控、智慧家居等方面,具有很強(qiáng)的可擴(kuò)展性。
參考文獻(xiàn)
[1]楊子威. 基于ZigBee技術(shù)的LED路燈節(jié)能控制系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2014,37(8): 40-45 .
[2]白成林,馬.基于物聯(lián)網(wǎng)技術(shù)的智能路燈監(jiān)控系統(tǒng)[J]. 電子技術(shù)應(yīng)用,2014,40(3): 82-85.
[3]孔令榮,王昊.基于無線傳感網(wǎng)絡(luò)的智能路燈照明系統(tǒng)分析[J].電子科技,2013,26(11): 108-110,113.