ZigBee 是一種新興的短距離、低功率、低速率無線接入技術,工作于無須注冊的2.4GHz ISM 頻段,傳輸速率為10~250kb/s,傳輸距離為10~75m。 它看起來更接近于藍牙,但比藍牙更為簡單,具有更低的傳輸速率和功率消耗,大多數時間處于睡眠模式,尤其適用于那些不需要實時傳輸或連續更新的場合,如工業控制領域和傳感器網絡。ZigBee聯盟在制定ZigBee標準時,采用了IEEE802. 15. 4協議作為其物理層和媒體接入層規范。在其基礎之上,ZigBee聯盟制定了數據鏈路層(DLL)、網絡層(NWK)和應用編程接口(API)規范,并負責高層應用、測試和市場推廣等方面的工作。 ZigBee技術的主要特點 ● 低功耗。 在低耗電待機模式下,2節5號干電池可支持1個節點工作6~24個月,甚至更長,這是ZigBee的突出優勢。相比較,藍牙能工作數周、WiFi可工作數小時。 ● 低成本。 通過大幅簡化協議(不到藍牙的1/10) ,降低了對通信控制器的要求。按預測分析,以8051的8位微控制器測算,全功能的主節點需要32KB代碼,子功能節點少至4KB代碼,而且ZigBee免協議專利費。每塊芯片的價格大約為2美元。 ● 低速率。 ZigBee工作在20~250kb/s的較低速率,分別提供250kb/s(2.4GHz)、40kb/s(915MHz)和20kb/s(868MHz) 的原始數據吞吐率,滿足低速率傳輸數據的應用需求。 ● 近距離。 傳輸范圍一般介于10~100m之間,在增加RF發射功率后,亦可增加到1~3km。這指的是相鄰節點間的距離。如果通過路由和節點間通信的接力,傳輸距離將可以更遠。 ● 短時延。 ZigBee的響應速度較快,一般從睡眠轉入工作狀態只需15ms,節點連接進入網絡只需30ms,進一步節省了電能。相比較,藍牙需要3~10s、WiFi需要3s。 ● 高容量。 ZigBee可采用星狀、片狀和網狀網絡結構,由一個主節點管理若干子節點,最多一個主節點可管理254個子節點;同時主節點還可由上一層網絡節點管理,最多可組成65000個節點的大網。 ● 高安全。 ZigBee提供了三級安全模式,包括無安全設定、使用接入控制清單(ACL)防止非法獲取數據以及采用高級加密標準(AES128)的對稱密碼,以靈活確定其安全屬性。 ● 免執照頻段。 采用直接序列擴頻在工業科學醫療(ISM)頻段,2.4GHz(全球)、915MHz(美國)和868MHz(歐洲) 。 PIC18F4620和CC2420簡介 PIC18F4620和CC2420是本文設計中最為關鍵的兩個部件。PIC18F4620微控制器具有豐富的片上存儲功能,具有64 KB Flash和3968字節RAM的存儲空間;而且該微控制器具有多種省電模式供選擇。除了具有豐富的片上存儲功能和多種省電模式以外,18F4620微控制器還具有13個10位A/D轉換器、多個I/O數據線。可以很容易用軟件對其進行編程和仿真,這些接口同時還可以用作與傳感單元的接口。 CC2420射頻收發器工作在2.4GHz ISM公用頻道。它有33個16位配置寄存器、15個命令選通寄存器、1個128字節的RX RAM、1個128字節的TX RAM、1個112字節的安全信息存儲器。一些主要特點:具有16個信道;典型的發射功率為0dBm,最大發射功率達到3.6dBm;采用DSSS擴頻通信技術,最大速率為250 kbps;在分組錯誤率為1%的情況下,其接收靈敏度達到-95dBm(典型值)。 ZigBee無線平臺簡介 整個系統按照運行流程可分成三部分:傳感感器終端(多個)、路由節點(可選)、中心數據管理終端。 圖2 系統示意圖 我們可以在傳感器終端加裝不同的傳感器來實現對所需數據的監控,從而發揮ZigBee平臺的作用。中心數據管理終端由中心節點和PC機組成,二者之間可以通過RS232實現數據通信。 平臺采用了Microchip公司提供的開放協議棧,通過設計修改其應用層代碼來實現所需的功能。 通常,ZigBee節點的IEEE64位地址是由用戶自己定義的, 它們被寫在節點的EEPROM中。而每個終端節點入網后,中心節點會分配給它一個16位網絡短地址。對于初次使用的終端節點,可以經過與中心節點綁定過程從而讓終端節點的地址信息出現在中心節點的綁定表中,使數據的收發更加穩定。對于較小的網絡,由于直接發送給中心節點,也可以直接使用0x00作為目標地址。 ZigBee在工業控制中的應用方案研究 1 ZigBee工廠消防監控方案 目前,大型工業綜合廠房集生產車間、倉庫于一體,其消防具有空間大、線路要求高等特點;而老廠房有線消防系統改造的成本較高,尤其在一些化工生產廠房和庫房,工藝操作的要求給布線增加了困難。本方案為解決這類問題提供了一條途徑。 ①系統整體設計 整個系統分成兩部分:無線煙感器終端(多個)和中心數據管理終端。無線煙感器終端是檢測發送煙霧數據的集成設備,它在檢測到一定濃度的煙霧后在本地報警,同時通過無線網絡傳輸給管理終端;中心數據管理終端將無線煙感器終端中發送的數據接收后,通過軟件在PC機上給管理人員報警并顯示火警相應位置,還可以通過設置加入一些其他的處理功能。 圖3 煙感終端結構圖 ●無線煙感器終端 在用戶端無線煙感器加裝通訊模塊形成終端設備,實現數據的采集和無線傳輸。基于ZigBee的低功耗特點,該終端采用9V電池供電。 ● 中心數據管理終端 其主要功能包括接收無線煙感器終端數據并報警及存儲,對數據做出一定的處理以及根據客戶需求打印各種報表。 ②系統軟硬件結構 系統核心部分為無線收發模塊,煙霧傳感器直接與單片機I/O口相連,出現火情時由煙感中的繼電器電平變化引發單片機中斷,從而通過射頻芯片CC2420向中心報告。單片機與PC機通過MAX322實現串口通訊。 圖4 中心數據管理終端 ● 單片機程序設計 我們在程序中設定了每個不同的終端節點在遇到火情時發送各自特定的代碼給中心節點,中心節點收到后再交給上位機進行識別。ZigBee規范中通信部分的消息幀有KVP和Message兩種方式,由于發送的代碼比較簡單而且量很少,所以采用KVP格式進行發送。KVP幀格式定義如圖5所示。 中心節點的單片機程序調用APLGet( )函數,在接收到終端節點發來的數據后,將其通過串口發送給上位機,串口的主要函數如下: void ConsoleInit(void) { OpenUSART(USART_TX_INT_OFF&USART_RX_ INT_ON&USART_ASYNCH_MODE & USART_EIGHT_BIT & USART _CONT_RX & USART_BRGH _HIGH,SPBRG_VAL ); } void ConsolePut(BYTE c) { while( !ConsoleIsPutReady() ); TXREG = c; } void ConsolePutROMString(ROM char* str) { BYTE c; while( c = *str++ ) ConsolePut(c); while( !ConsoleIsPutReady() ); } 圖5 KVP幀格式 ● 上位機程序設計 上位機程序主要負責從串口接收中心節點模塊發來的數據,并做出相應動作,如報警并識別出火情位置,并可進行一定的處理(如開啟水閥等)。軟件由VB編寫。 它可以實現的功能有:1.設定通信端口。2.顯示房間狀態。3.顯示歷史記錄。通過設定通信端口可以選擇當前空閑的串口,顯示房間狀態可以顯示哪個房間或哪個位置發生了火情,顯示歷史記錄可以顯示曾經發生過報警的房間號和時間。 軟件安裝后,用戶可以根據實際情況選擇樓層數和房間數,并和終端節點相對應。還可以存儲起火原因,便于遇到突發事件時的相關人員做出處理。 2 ZigBee傾斜度測量應用方案 在現代工業生產,安裝和建筑等許多領域,經常需要測量傾斜度,這就需要傾斜測量裝置。我們可以利用ZigBee平臺來方便的實現測試點的遠程監控,同時也方便測試點的安裝。 這里采用了飛思卡爾新推出的MMA7260 加速度傳感器來測量傾斜。它是一種低功耗三軸電容式微機械傳感器,有1.5g、2g、4g、6g四種量程可以選擇。封裝為QFN16腳,采用2.2~3.6V寬電壓電源,而且支持休眠,符合ZigBee對低功耗的要求,很適合在ZigBee平臺上使用。由于數據量相對較大,我采用了格式更為靈活的MSG格式,其幀格式定義如圖6。 圖6 MSG幀格式 MMA7260自帶了溫度補償和濾波,只需簡單處理即可將其輸出的三路(XYZ軸)加速度模擬量接入到PIC18單片機自帶的10位A/D轉換模塊中。 數據由RS-232由節點傳入到PC機后,采用了NI公司的labview軟件進行處理,它的G語言操作非常友好,可以方便的對數據進行轉化和計算,然后顯示在虛擬的儀器界面上。 如果有必要,可以在某個軸上加入報警,超過門限值時對操作員進行提示,甚至直接給設備發出指令。 結語 消防監控和傾斜測量只是ZigBee 技術在工控領域的兩個簡單應用,它具有很強的實際應用價值。該模塊也可以很方便的移植到其他的無線應用中去。 |