張 毅,葉天翔,馬子超
(重慶郵電大學通信學院,重慶 400065)
在近距離無線通信技術中,ZigBee和藍牙的應用極為廣泛。ZigBee所具有的近距離、低復雜度、自組織、低功耗、低數據速率和低成本的特點,使其廣泛應用于工業監控、傳感器網絡、家庭監控和安全系統等無線領域[1-2]。然而,ZigBee傳感網絡的監控軟件大多依賴于PC機的存在,不能滿足人們所預期的實時監控要求。而現有的Zig-Bee手持設備價格昂貴、功能簡單、體積偏大,攜帶起來也不方便。
智能手機的出現重新定義了手機的概念。它不僅滿足了人們日常通信的需求,并且具有獨立的操作系統,像個人電腦一樣支持用戶自行安裝軟件、游戲等第三方服務商提供的程序,并通過此類程序不斷對手機的功能進行擴充,同時可通過移動通信網絡來實現無線網絡接入。在硬件方面,智能手機的核心處理器不斷升級,已經遠遠滿足了手持設備的硬件需求。因此,可以設想在某些近距離通信場合(家庭、車間、樓道等),設計一種支持藍牙與Zig-Bee相互通信的網關,實現手機對ZigBee設備的檢測和控制。
整個系統由智能手機、藍牙網關和ZigBee設備組成。ZigBee設備集成了傳感器、微處理器和數據傳輸接口,分別負責數據的采集、處理、接收和傳輸。藍牙網關負責對每個節點設備的管理,接收節點發來的數據信息,并對這些信息進行解析,然后將轉換后的信息發送至手機。智能手機將藍牙網關傳送來的數據進行解析和存儲,并在手機屏幕上顯示。同樣,手機也可以通過藍牙網關的連接向ZigBee設備發送控制指令,實現手機對ZigBee設備狀態的監控,其結構如圖1所示。

圖1 藍牙網關系統結構圖
藍牙與ZigBee同屬于2.4 GHz頻段,需要考慮如何處理同在有效傳輸范圍內的無線設備之間的相互干擾。
藍牙協議自帶調節性跳頻技術,它具有79個相互獨立且隨機選擇的有效通信頻率,藍牙設備可以使用其中的任意一個頻率,它可以隨時有規律地跳向另一個頻率。由于頻率之間的跳變每秒鐘會產生1600次,即使處于同一頻段,其持續的時間也不會超過千分之一秒。因此,調節性調頻技術可以將外界設備對藍牙設備的干擾降低到最低[3]。
ZigBee系統是非跳頻系統,所以藍牙在79次通信中才有1次機會和ZigBee的通信頻率產生重疊,且將會迅速跳至另一個頻率。因此,藍牙不會對ZigBee產生嚴重威脅,而ZigBee對藍牙系統的影響可以忽略不計。另一方面,IEEE 802.15.4標準中提供了很多機制來保證Zig-Bee在2.4 GHz頻段和其他無線技術標準的共存能力。
因此,兩種無線協議可以在2.4 GHz頻段共存。
藍牙網關由藍牙模塊與ZigBee模塊組成。其連接圖如圖2所示。

圖2 藍牙網關的設計圖
藍牙模塊采用CSR公司的BC417143B芯片,它采用藍牙2.0協議標準,支持微微網,帶有一路USB接口和兩路串口,采用BGA封裝,能夠與手機建立通信,有效傳輸距離為10 m,數據傳輸速率最大值為3 Mbit/s[4]。
ZigBee模塊采用德州儀器推出的CC2530芯片。它具有如下主要特性[5]:自帶8051處理器內核;支持IEEE 802.15.4協議規范;具有強大的抗干擾性能,天線接收靈敏度高;采用3種電源模式,功耗更低;具有8通道14位模/數轉換的ADC;支持AES加密;采用QFN封裝,便于焊接;自帶兩路RS-232串口、1個16位計數器和2個8位計數器。
藍牙網關的軟件結構主要包括ZigBee傳感器網絡的初始化、藍牙傳感器網絡的初始化、數據傳輸3個部分。
ZigBee傳感器網絡的初始化包括ZigBee系統時鐘、堆棧、LED、按鍵、Flash、硬件模塊、MAC層、應用框架層、操作系統等初始化。
藍牙傳感器網絡的初始化是通過串口向藍牙模塊發送AT指令實現的。其中包括設置藍牙模塊的工作角色、獲取模塊藍牙地址、設置配對密碼、設置串口參數、初始化SPP規范庫、進入節能模式等。
手機與藍牙網關綁定地址后,進行一對一的數據傳輸。在網關管理層中,藍牙網關將來自手機的數據進行解析,根據節點類型獲取ZigBee節點的短地址。然后通過單播的方式向對應的節點發送控制信息。節點收到指令后,對數據進行解析,獲取功能指令和操作類型,再產生相應的操作,實現手機對ZigBee節點的操控。同樣的,該信息的傳遞也是可逆的,ZigBee設備可以將節點的傳感器信息通過藍牙網關上傳到手機,實現手機對ZigBee設備的監測。藍牙/ZigBee協議的模型如圖3所示。網關管理層負責兩種協議的轉換。

圖3 藍牙/ZigBee協議的模型
這里采用Windows Mobile操作系統的智能手機作為監控端,它界面類似于PC上的Windows,便于熟悉電腦的人操作。手機端的軟件開發工具為Microsoft Visual Studio,它具有豐富的插件,可以提高開發人員的工作效率。
軟件在架構上分為藍牙虛擬串口驅動、數據解析與存儲、界面功能實現。其軟件結構如圖4所示。

圖4 手機監控端應用軟件結構圖
串口的驅動是通過構造一個serialPort類來實現的。serialPort的構造函數中首先以讀寫的方式打開串口,用一個用于控制以及配置串口通信設備的數據結構來進行串口配置。其中,包括串口的串口號、波特率、數據位、校驗位、停止位的配置。串口讀和寫是通過serialPort.Read-Byte()和serialPort.Write()函數來實現的。
根據節點的類型、編號、功能指令的不同,將信息分類,然后將解析后的傳感器數據進行存儲。最后,在手機屏幕上顯示數據。
根據功能的需求,在應用層添加功能函數,實現手機對ZigBee節點的控制。
根據ZigBee節點的類型、編號、功能指令、操作類型等參數,定義相應的數據包格式。在智能終端和ZigBee節點通信時,按照統一的指令傳輸數據。通信協議指令包格式如表1所示。

表1 通信協議指令包格式 byte
運用上述方案完成藍牙網關的設計,并對該設計進行了測試。
首先,將移動終端與藍牙網關建立連接。然后,通過手機對相應的ZigBee節點發送控制指令。最后,對手機端接收的信息進行實時解析,并在手機上顯示ZigBee節點當前的狀態。測試結果如圖5所示。

圖5 手機端監控界面
測試表明,經過藍牙網關的轉換,可以實現手機對ZigBee設備的控制和檢測。經過后期功能的豐富和完善,可以實現智能手機對ZigBee手持設備的替換。
現代家庭中,各式各樣的遙控器琳瑯滿目,而且每家擁有的遙控器數量越來越多,造成了使用上的不便。用手機替代現有控制器是一種很好地解決辦法,不僅給人們帶來諸多的便捷,而且避免了閑置和丟棄的遙控器產生的大量電子垃圾。
本文設計的藍牙網關實現了藍牙與ZigBee信息的轉換,向移動終端添加了ZigBee手持設備的功能。不僅節省了ZigBee手持設備開發的成本,而且使人們對ZigBee節點的監控更加方便。同時,也證明了在近距離無線通信領域,ZigBee和藍牙不是相互競爭,而是互相補充,可以利用其在各自應用領域的優點,將二者更好地結合,擴展應用方案。
[1]高守瑋,吳燦陽.ZigBee技術實踐教程[M].北京:北京航空航天大學出版社,2009.
[2]王銳華,于全.淺析 ZigBee技術[J].電視技術,2004,28(6):33-35.
[3]金純,林金朝,萬寶紅.藍牙協議及其源代碼分析[M].北京:國防工業出版社,2006.
[4]BC417143B Data Sheet[EB/OL].[2011-02-22].http://www.datasheetarchive.com/pdf.
[5]CC2530 Data Sheet[EB/OL].[2011-02-22].http://www.ti.com/lit/ds/symlink/cc2530.pdf.