高仁璟, 劉國新, 唐禎安
(大連理工大學 電子信息與電氣工程學部,遼寧 大連 116023)
隨著半導體技術的發展和各種各樣的射頻集成芯片的大量涌現,射頻技術在現代生產和生活中的應用越來越廣泛。射頻技術在無線監測、遠程控制等領域有非常重要的應用[1]。與傳統的有線傳輸方式相比,射頻傳輸具有安裝與維護方便、價格低廉、適用于復雜地理條件等優點。
然而,實際的應用環境中,經常會有各種各樣的射頻網絡在運行。如何實現射頻網絡管理,避免網絡沖突,保證數據正確傳輸便成為射頻技術應用中非常重要的環節。現將Zigbee協議的網絡管理方式,應用于基于Si4432的無線射頻遙控系統中,并根據實際情況對協議進行簡化,保證了系統的可靠運行。
射頻遙控系統的整體框圖如圖1所示。系統由一個主節點、多個路由節點(從節點)及手持移動遙控設備(移動節點)組成。主節點主要實現網絡的建立和管理、數據的轉發功能以及向控制系統發送控制命令。路由節點實現入網及網絡維護、數據轉發功能。手持設備用于入網和發送控制命令。主節點和路由節點由主電源供電,一直處于工作狀態;手持設備由電池供電,大部分時間處于休眠或關閉狀態。

圖1 射頻遙控系統整體框
圖 2所示為系統的硬件結構圖,其中圖 2(a)為移動節點的結構圖,圖 2(b)為路由節點和主節點的結構圖。主節點和移動節點均采用高性能、低功耗的 8 位AVR 系列的單片機[2]。考慮移動節點是電池供電,為了延長供電時間,采用低功耗的ATmega168芯片。主節點采用ATmega32芯片。射頻收發采用的是Silicon Labs公司的Si4432芯片,該芯片集成度高、體積小、功耗低,具有-118dBm的超高靈敏度,可提供極佳的鏈路質量,在擴大傳輸范圍的同時將功耗降至最低。其工作頻段范圍為240~930 MHz,最高輸出功率可達+20 dBm,傳輸距離遠。Si4432內部集成了天線分集、休眠喚醒定時器、64字節收發 FIFO等功能,同時,Si4432芯片還具有跳頻和信道信號強度評估功能[3]。其外圍電路僅需要一個30 MHz晶振及幾個電阻、電容、電感等,電路設計簡單、成本低廉。AVR單片機與Si4432芯片通過標準的串行接口(SPI)相連。單片機通過SPI口配置Si4432內部寄存器和實現數據的讀寫。Si4432的TX引腳為射頻信號發送端,RXp、RXn引腳為差分信號接收端,射頻信號的發射和接收端通過RF開關芯片UPG2214與天線相連。
為了提高系統的實用性,路由節點增加了串口,為系統功能擴展奠定了基礎。移動節點增加了液晶顯示,顯示各節點的工作狀態以及信號強度;同時,移動節點還配有多個按鍵,或用于發送控制命令,或用于發送網絡測試命令。
本系統采用EZMac協議定義的幀格式進行通信,EZMac幀結構如表1所示。

表1 EZMac幀結構
每次發送數據必須以AA為前導碼,否則外部接收裝置無法接收數據。前導碼至少要有3個字節。D0到Dn是凈荷,不超過16個字節。2D、D4是同步模式的標志碼。CID(用戶ID)位用于避免鄰近的不同系統使用EZMac而產生的干擾。SID(發送方ID)位和DID(目的地ID)位用于唯一標識數據通信設備。PL(包長)位使用于傳輸的數據包長度需要動態變化時。CRC(循環冗余碼)位用于識別數據包中是否有錯誤的數據位[4]。當接收數據時,數據包過濾是實時的,這樣 EZMac可以盡早剔除無效的數據包。數據包的實時過濾節約了資源,在某些情況下可顯著減少浪費在處理無效數據包進程上的資源。
系統中各節點的軟件由硬件管理層、數據管理層、應用管理層、網絡管理層四部分組成。硬件管理層實現單片機的初始化、Si4432初始化、按鍵等外設管理。數據管理層主要對數據進行處理,它與硬件管理層、網絡管理層及應用管理層都存在數據接口。數據管理層與硬件管理層進行無線收發數據交換,與網絡管理層和應用層進行命令數據交換。為加快程序的響應速度,各層之間的消息傳遞主要通過置位標志位的方式實現。應用管理層主要實現用戶自定義的功能。網絡管理層主要用于實現網絡管理功能,節點類型不同,其實現的功能也不同。各節點網絡管理層的功能為:
(1)主節點
主節點實現組網及網絡管理功能。為避免因節點復位造成網絡故障,本系統充分利用了單片機的 EEPROM 數據存儲區。
主節點的組網過程:讀取EEPROM區的網絡參數數值,包括組網頻段、網絡ID值、子節點ID值(主節點的ID值設為0x00,廣播地址的值設為0xFF)。主節點對設定頻段進行一段時間的偵聽,如果未發現有同頻的其他網絡存在,則確定本頻段為網絡建立頻段;若發現存在其他網絡則進行跳頻管理,將網絡頻段調至相鄰頻段,同時將新的頻段值存入EEPROM區。
主節點網絡管理:主節點組網完成后,等待其他節點加入網絡。當主節點收到子節點入網請求后,向子節點發送入網確認消息,同時將子節點的地址存儲于EEPROM中的網絡拓撲管理區。若某一子節點長時間未響應,則主節點將其從網絡中剔除。在網絡運行過程中,若主節點發現其他網絡在同一頻段運行,則向全網發送跳頻命令,同時更改網絡頻段。
(2)路由節點
路由節點主要實現入網、網絡管理、數據轉發等功能。
路由節點入網過程:讀取EEPROM內網絡參數數值,包括網絡ID,本節點ID,父節點ID,子節點ID,網絡頻段值。在設定頻段內發送入網請求,收到入網確認消息后,將新的網絡拓撲參數存入EEPROM網絡拓撲管理區。若路由節點長時間未收到入網確認消息,則自動跳至下一頻段搜索網絡。
路由節點網絡管理:路由節點動態監測網絡狀態,當路由節點收到子節點入網請求時,發送確認消息,并將子節點的ID值存入EEPROM網絡拓撲管理區;當路由節點的父節點丟失時,則尋找新的父節點重新入網。同時,路由節點也具備網絡偵聽功能,當路由節點發現同頻段其他網絡運行時,向主節點發送網絡沖突消息。
本系統中,路由節點作為數據的中轉站,同時具有數據暫存功能,即當發往某節點的數據暫時無法收到確認消息時,路由節點將其暫存,等待節點重新入網后再傳遞數據,長時間無響應時則刪除數據。
(3)移動節點
手持設備作為移動節點,無路由和數據轉發功能,采用電池供電。移動節點的主要功能是入網和發送控制命令,為了省電通常處于休眠狀態。
系統各節點的程序流程:
①硬件初始化:包括單片機初始化,Si4432初始化,其他外設初始化。
②網絡初始化:主節點發起網絡,路由節點和移動節點進行信道掃描并加入網絡;
③用戶自定義功能初始化;
④程序進入循環工作狀態,檢測各層標志位狀態,當標志位狀態改變時,則調用相應的函數進行處理。
當多個節點間進行數據傳遞時,有可能發生通信沖突,造成信道阻塞,數據丟失。為避免這種狀況出現,這里借鑒了CSMA/CA協議方式,在一個廣播形式的網絡中,當一個節點發送消息時,網絡中覆蓋范圍內所有的節點都能接收到,容易形成數據阻塞,導致網絡速度變慢,甚至癱瘓。為了避免數據傳輸中的碰撞和重復發送,無線網絡中采用CSMA/CA協議,當一個節點要發送數據時,首先偵聽信道是否空閑,如果空閑則立即發送數據,否則暫時不發送,退避一段時間,繼續偵聽[5]。該協議能夠實現通信信道的合理利用。
CSMA/CA協議有三種檢測信道空閑的方式:能量檢測(ED)、載波檢測(CS)以及能量載波混合檢測。這里采用能量檢測的方式,當節點要發送數據時,首先檢測 Si4432的RSSI寄存器的值,以檢測信道能量值,當RSSI值大于某一閾值時不進行數據發送,退避一段時間,繼續檢測,直至將數據發出。
現利用跳頻管理機制,對射頻網絡頻段進行管理。Si4432頻段管理寄存器分為兩種,一種是載波發生器,另一種是跳頻(FHSS)管理寄存器。載波發生器用于設置Si4432的基礎頻率(Fnom);跳頻管理寄存器用于設置跳頻參數。跳頻管理寄存器由跳頻頻道(fhch)選擇和跳頻步長(fhs)設置兩個寄存器組成。Si4432載波頻率計算式為:

由式(1)可知,當設置好調頻步長(fhs)后,可以通過改變跳頻頻道選擇寄存器的數值(fhch)來實現跳頻功能。
首先,驗證主節點的組網功能。開啟一個干擾網絡,然后給主節點上電。當主節點信道掃描時間設置合理時,系統能夠檢測到網絡沖突,并進行跳頻。
然后,驗證各節點網絡管理功能。開啟路由節點,路由節點進行信道掃描,在主節點工作的頻段向主節點發送入網請求,主節點發送確認消息并在液晶模塊上顯示路由節點狀態。實驗證明,主節點能夠監測路由節點入網及離網狀態。網絡運行過程中引入干擾網絡時,主節點能夠實行跳頻 管理。
在數據沖突驗證中,當各節點組成鏈狀網時,數據發送正常。當組成Mesh狀網時,會出現數據沖突現象。將各節點的CSMA/CA退避時間設置為不同值時,能夠有效降低沖突發生率。
在無線技術應用中,為射頻網絡添加網絡管理功能,能夠有效的避免網間沖突,防止數據丟失,網絡癱瘓等故障,大大提高數據的傳輸效率。
相比于傳統的有線控制系統,本系統體積小,安裝方便,功耗低,無線傳輸性能優越;機械復雜度低,出現故障,易于查找故障點,更換、維修方便;工業現場往往存在各種供電線路、控制線路等,電路極其復雜,采用本射頻控制系統,能夠極大地降低電路復雜度,降低安全隱患。系統已成功應用于冶金、水泥等行業,實現了控制信號的無線傳輸。
[1] 羅春彬, 彭龑, 易彬. RFID技術發展與應用[J]. 通信技術, 2009,42(12): 112-114.
[2] 沈文, LEE Eagle, 詹衛前. AVR單片機C語言開發入門指導[M].北京: 清華大學出版社, 2003: 2-3.
[3] Silicon Laboratories. Si4432 ISM transceiver DataSheet rev 0.3[EB/OL]. (2010-01-12) [2010-03-08]. http://www.silabs.com.
[4] 劉希若, 羅志祥. EZMac協議原理與應用[J]. 計算機與數字工程,2007, 35(07): 98-99.
[5] Zigbee Alliance. Zigbee Document 053474r17: Zigbee specification[EB/OL]. (2010-01-12) [2010-03-08]. http://www.zigbee.org/.