吳妍 史夢陽 曹欣泉 楊嘯塵
摘 要:文章采用TI公司的CC2530為MCU,以Z-Stack協議棧作為軟件平臺,提出了一套基于ZigBee的火災報警檢測系統的設計方案,該系統具有火災信息的自動采集和實時信息查詢功能,并將協調器接收到的數據通過串口發送給電腦。實驗結果表明,系統可以達到預期設計目標,并具有結構簡單、功耗低、性能好和體積小等優點。
關鍵詞:ZigBee;Z-Stack協議棧;CC2530;火災檢測系統
現有的火災報警系統,大多采用有線的方式建立傳感網絡。這種組網方案有擴展性能差、布線繁瑣、不美觀等弊端。采用無線傳輸的方式構建傳感器網絡可以解決以上問題。近幾年來開始興起的ZigBee技術可以非常好地承擔上述無線傳輸的任務。再者,將人工智能的相關技術應用于ZigBee網絡中,可以進一步提高火災檢測報警系統的可靠性、穩定性。
1 關于ZigBee
1.1 ZigBee概念
ZigBee是一種完全符合IEEE802.15.4標準的無線通信網絡協議。短距離、低傳輸速率、低功耗和較高的傳輸可靠性是它最具代表性的特點。該協議所定義無線網絡主要工作在868 MHz,915 MHz和2.4 GHz等3個頻段。特別適用于較遠距離信息傳輸和自動控制方面。
1.2 ZigBee的特點
1.2.1 高可靠性
對無線通信而言,電磁波在傳輸過程會受到多種因素干擾,故無線通信系統在數據傳輸過程中有不可靠性。ZigBee聯盟的專家們在制定規則時早已考慮到在數據傳輸過程中存在不穩定性,他們采取了一系列的措施來提高數據傳輸的可靠性,其主要包括:運用CSMA-CA技術解決數據收發的沖突問題;使用CRC校驗法確保數據可以準確的傳到目的地址;在總體邏輯結構方面,采用星型拓撲結構保證數據可以通過不同傳輸路徑從源地址到達目的地址。
1.2.2 低價格、低功耗
目前TI公司推出的兼容ZigBee 2007協議的SOC芯片CC2530,每片價格在20~30元。我們只需要在芯片外圍搭一個濾波電路,再接一個PCB天線,一個簡易的ZigBee網絡節點就制作完成。因為其工作周期短、收發信息功率低,經常會轉入休眠模式,所以使用兩節5號電池就可以支持普通的ZigBee網絡節點工作1~2年,但不同的應用對應的功耗不同。
1.2.3 高安全性
在安全性方面,用戶可以采用AES-128加密技術對傳輸的數據進行加密。
1.2.4 低傳輸速率
一般的無線通信系統對數據的安全性、可靠性、功耗和成本方面都有特殊的要求。因此,目前的無線通信系統去了協議還不能夠很好地滿足以上要求。
2 系統總體方案設計
系統總體結構如圖1所示,傳感器節點將檢測到的所有有關火災的信息通過ZigBee無線通信網絡發送到數據集中節點;數據集中節點將接收到的信息進行數據融合處理,根據預先設定的有關規則進行決策;然后把數據集中節點將傳感器信息以及決策信息通過串口發送到計算機上位機并進行顯示。
從網絡節點邏輯功能上看,ZigBee設備可以分為終端節點(end point)、路由器(router)、協調器(PAN coordinator)。根據設備的工作特點劃分,有可分為全功能設備(Full Function Device,FFD)、半功能設備。全功能設備可以扮演無線通信網絡中的任何一種角色,而半功能設備只能用作終端節點。再從邏輯結構上分,數據集中節點在ZigBee網絡中應該充當協調器;傳感器節點是終端節點。一個ZigBee網絡最多可支持65535個節點,完全能夠滿足一般用戶的需求。
3 硬件設計
每個ZigBee節點的硬件部分都主要由3個模塊構成:傳感器模塊、無線通信模塊和輔助功能模塊。傳感器模塊主要負責采集數據;輔助功能模塊可以實現供電、串口收發等功能;無線通信模塊是本系統的核心,包括微控制單元和射頻收發單元,具有數據處理和數據收發的功能。其結構如圖2所示。
主要微控制單元使用由TI公司生產的CC2530的8051內核芯片,內部包含2.4 GHz的射頻系統,是世界上少有的適用于ZigBee協議的真正意義上的片上系統SOC的解決方案。以CC2530芯片為基礎建立無線通信網絡不僅只需非常低的硬件材料成本,而且該芯片還具有低功耗的特點。此外,CC2530芯片還配備有8 kb的RAM和系統內可編程閃存(Flash)等許多強大的功能。
4 軟件設計
本系統的軟件部分的開發主要依托于TI公司推出Z-Stack協議棧,它通過IAR開發環境來進行編程和下載。在IAR嵌入式系統開發軟件中,Z-Stack協議棧已經被全部封裝好。作為使用者,只需把主要精力用在應用層傳感器程序的編寫上。
4.1 協調器的軟件設計
協調器是ZigBee網絡的核心部分,它的任務是創建、管理和組織ZigBee網絡,并且與其余的節點進行數據交換,通過串口把信息發送到電腦上位機,軟件流程如圖3所示。
4.2 終端節點的軟件設計
終端節點的任務是采集溫度、煙霧和火焰信息,并將這些信息發送至父節點(協調器),然后通過串口把數據傳入電腦,對火災信息實施監控。軟件流程如圖4所示。
開發者只需要將3種傳感器對應的C語言代碼寫入Z-Stack協議棧的應用層文件(SampleApp.c)中,然后再對每一個傳感器的代碼加以匹配Z-Stack協議棧的數據發送函數,燒錄到終端節點的CC2530芯片中,就可以實現傳感器數據無線發送。與之相對應的,在協調器相關的程序中,則需要在應用層文件(SampleApp.c)中加入Z-Stack協議棧寫好的接收函數,并寫好傳感器數據處理的相關算法。這樣,在ZigBee網絡中,就實現了協調器與終端節點間的數據收發以及火災報警,實驗現象如圖5所示。
5 結語
通過實驗我們可以得出結論,運用以CC2530芯片為主要控制單元的基于ZigBee的火災情況檢測報警系統,可以較為準確而穩定地進行火災情況檢測,并實現火災報警的功能。