新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > ZigBee技術的樹簇網絡監控系統設計

        ZigBee技術的樹簇網絡監控系統設計

        作者: 時間:2009-07-08 來源:網絡 收藏

        2 節點硬件
        由于節點的數量較大,為了方便生產,將FFD和RFD設備的主要區別放在軟件方面;而硬件部分除了協調器具有UART接口外,其他都是相同的??傮w分為核心單元CC2430、傳感器模塊以及電源管理模塊3部分。硬件的總體框圖如圖2所示。

        2.1 核心單元CC2430
        CC2430是TI公司推出的支持協議的SoC解決方案,可用于各種無線節點,包括協調器、路由器和終端設備。它延用了 CC2420芯片的架構,在單個芯片上整合了射頻(RF)前端、存儲器和微控制器。CC2430F128內嵌增強型8051 MCU,8 KB RAM,128 KBFlash,包含8路ADC、3個定時器、AESl28加密電路,MAC協處理器、看門狗定時器,以及21個可編程I/O引腳,支持4種不同程度的休眠模式。
        2.2 傳感器模塊
        (1)溫濕度傳感器
        采用瑞士Sensirion傳感器公司推出的SHT1O溫濕度一體傳感器。該傳感器芯片由溫度和濕度探頭、校準存儲器、14位模數轉換器、雙向I/O兩線串行輸出接口組成。其工作電壓為2.4~5.5 V,支持閑時自動低功耗。測濕精度為±4.5%RH,25℃時測溫精度為±0.5℃。SHT10對溫度或濕度的測量由串行輸入的指令確定,測量值的輸出可選擇為8位、12位或14位。
        (2)煙霧報警傳感器和人體紅外傳感器考慮到監控人員對煙霧和闖入人員的信息需求只限為“有”或“沒有”,因此兩種傳感器只需在事件發生時傳遞一個脈沖信號即可。此脈沖經過濾波限流后輸入CC2430的I/O口,將相應的I/O口設置為上升沿中斷檢測模式即可檢測信號。
        煙霧報警傳感器采用SH-533模塊,搭載TP1.1氣體傳感器,附帶蜂鳴器、LED報警指示;工作電壓7~20 V,靜態電流10 mA,檢測面積為10 m2左右。煙霧觸發輸出為5 V高電平脈沖信號,由于CC2430工作電壓為3.3 V,所以用電阻對其做了簡單的分壓。
        人體紅外傳感器采用sH-912模塊,搭載PIR熱釋電傳感器并配合菲涅爾透鏡使用;工作電壓4.5~20 V,靜態電流50 μA,感應角度110°,最大感應距離7 m。紅外觸發輸出3.3 V脈沖信號。
        2.3 電源管理模塊
        為保證傳感器采集數據的及時傳遞,減小終端在競爭信道過程中產生的碰撞造成能量的損耗,本系統中FFD設備采用不間斷供電(UPS)。即使在庫房掉電的情況下,FFD設備也能靠充電電池維持工作。

        3 軟件
        3.1 Z-Stack簡介
        Z-Stack是由TI公司推出的基于ZigBee標準的協議棧軟件,可在www.focu.ti.com.cn免費下載。它包含了ZigBee標準描述的各層次的功能組件模塊,向開發人員提供了一系列的API。通過調用這些API,可以實現ZigBee標準中各層次的相應功能。基于這些功能模塊,可以更便捷地開發出各種基于ZigBee協議的應用產品。圖3為Z-Stack結構。(注:Z-Stack協議棧核心的部分,包括安全模塊、路由模塊、Mesh 支持等,都只以庫的方式提供。)

        在終端設備嵌入式軟件中,操作系統模塊主要實現的是簡單的任務輪詢和工作調度的功能,同時還需實現節點硬件的初始化和功能配置。這個操作系統模塊不是真正意義上的操作系統,而是一個具有操作系統任務調度功能的模塊。該操作系統模塊在Z-Stack中由OSAL組件構成。操作系統模塊的任務調度具體方式是:首先,為需要實現的功能建立任務,且每一個任務有不同的事件。當操作系統運行時,會不間斷地輪詢所有任務的標志位。若標志位有效,則表明該任務有事件發生,調用任務事件處理函數,并在任務處理函數中,根據標志位,判斷是什么事件發生。然后,系統做出對應的操作,最后將標志位清零。
        3.2 樹簇拓撲的形成及路徑發現與維護
        由于文章篇幅有限,不能依次介紹方案中比較關鍵的應用層、硬件描述層、NWK層以及OSAL,以下著重描述NWK層的樹簇拓撲的形成以及路徑的發現與維護。
        Z-Stack總共默認65 000個設備入網。為保證中每個節點的地址是唯一的,使用了分布式尋址方案,由父節點分配子節點地址。此種算法保證了控制端的數據包能夠精確地發送到指定設備,子節點也只能有一個父節點,有助于的可測量性。在網絡初始化之前,有幾個參數需要配置,分別是MAX_DEPTH、MAX_ROUTERS 和MAX_CHILDREN[6]。
        MAX_DEPTH決定了網絡的最大深度。協調器在最頂層,位于深度0;它的子節點位于深度1,依此類推。MAX_CHILDREN決定了一個路由器或者一個協調器可以處理的最大子節點個數。MAX_ROUTERS決定了一個路由器或者一個協調器可以連接的最大路由器的個數。這個參數是 MAX_CHILDREN的一個子集,終端設備使用(MAX_CHILDREN-MAX_ROUTERS)剩下的地址空間。圖4為使用自定義棧配置后的網絡拓撲和節點地址分配示意圖。LAYER1最多20個節點,其中包含6個路由節點。

        在網絡初始化過程中,協調器先將自身設置為一個簇標識符為0的簇頭,并向臨近的設備以廣播方式發送信標幀。接收到信標幀的設備(路由器或終端設備)向簇頭請求加入網絡,如果作為父節點的協調器允許該設備的加入,則將其作為子節點加入到它的鄰居表中,同時,請求加入的設備將協調器作為父節點加入到鄰居表中,成為從設備。已經加入網絡的路由器也廣播信標幀,以這種方式,直到所有設備都接入網絡。在接入網絡的同時,廣播信標幀的父節點會向接人的子節點分配唯一的 16位網絡短地址。圖5是網絡建立和節點入網流程。
        終端設備沒有路由功能。它需要將數據發送給它的父節點,父節點以它自己的名義執行路由。當路由器從應用層或子節點收到單點發送數據包時,NWK層會將其傳遞到下層。如果目標節點是相鄰路由器中的一個,則數據包被直接發送;否則,路由器會檢索它的路由表中與所要傳送的數據包的目標地址相符合的記錄。如果存在與目標地址相符合的路由記錄,則數據包將被發往記錄中的下一級地址;如果沒有發現任何相關的路由記錄,則路由器發起路徑尋找,數據包存儲在緩沖區中直到路徑尋找結束。如果數據包沿著某條路由路徑傳送失敗,這個路徑就被認定是壞鏈,父節點將啟動路徑修復。節點發起重新發現直到下一次數據包到達該節點,標志路徑修復完成。如果不能夠啟動發現或者由于某種原因失敗了,節點則向數據包的源節點發送一個錯誤包(RERR),它將重新啟動路徑發現。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绍兴市| 通道| 西华县| 临邑县| 盘山县| 渭源县| 桓仁| 五寨县| 昌邑市| 邵武市| 威海市| 承德县| 曲麻莱县| 麦盖提县| 金秀| 卓尼县| 武汉市| 萝北县| 西盟| 茌平县| 平罗县| 连城县| 革吉县| 乌恰县| 呼玛县| 桂东县| 马公市| 铜山县| 凌云县| 高阳县| 长泰县| 罗山县| 丁青县| 米脂县| 五峰| 新闻| 阳原县| 吴旗县| 丽江市| 资阳市| 麻栗坡县|