無線一詞已成為我們日常生活的一部分,我們已被無數的無線設備所包圍,例如移動(流動)電話、警報系統、閘門控制器、無線上網、無線鍵盤等。在主要制造商的協助下,已經有數種無線數據傳輸標準陸續出現——比如Bluetooth和Wi-Fi,是目前準備要征服全世界。但是一切事情似乎頗為復雜,縱使你是一位富有經驗的技術人士,到底應如何解決這樣問題呢?數之不盡的半導體制造商生產的IC皆可根據一些常用的技術或其他便可用作無線通信,甚至有些微控制器也可達至此目的,雖然大部分都是很昂貴及往往在電子零件店里找不到,Chipcon CFC2440就是一個很好的例子,縱使你勉強克服了一般的設計問題,作為一位設計師要預先知道在某個時間會出現完全不同類別的問題:需要一個RF輸出級和適合的天線。這個輸出級是困難重重的,不管你如何小心謹慎于寄生電感上,它們仍使你非常頭痛,因為你的設計是好是壞都在此處反映出來。電子制造商也留意到這個問題,所以現在提供有現成的“RF方案”,尤其是支持ZigBee協議的。
圖. 采用兩個XBee模塊的數據傳輸系統
一、ZigBee概述
ZigBee是基于無線通信標準的一個名稱,基本上為工業應用而開發的。從歷史角度來看,ZigBee改良早前稱為“Home RF”的標準,該標準起初前景一片光明,可是因競爭對手Wireless Fidelity(Wi-Fi)標準的成功,它就被廢棄了。Home RF壽命如此短促,至少發人深醒,也教人憂慮,是否歷史會不斷重演?這次的狀況卻大不相同,因為ZigBee由主要的參與者如Digi、TI、Freescale、Honeywell、Philips、Microchip及Mitsubishi等支持,并且聯同大約一百家其他制造商組成“ZigBee Alliance”。
ZigBee原是依據于IEEE 802.15.4標準,并且采用與Wi-Fi同一頻帶(2.4GHz),它有16個分開的頻道,換言之在單一位置上可提供多達16個網絡而不會互相干擾。最大數據傳輸速率為250Kb/s(在100m范圍內),相比于Wi-Fi的54Mb/s或BlueTooth的1MB/s,此數據速率實在是很低了,可視之為ZigBee的弱點。可是,這協議原意是用作工業用途,在速度上不是主要考慮的。ZigBee是為滿足低電流損耗和尤其是低成本需求而開發的。表1比較上述提到三種無線通信技術。
表1 Zigbee/BlueTools/wifi比較
種類 | ZigBee | BlueTools | Wifi |
單點覆蓋距離 | 50-1600m | 10m | 50m |
網絡擴展性 | 自動擴展 | 無 | 依賴現有網絡 |
電池壽命 | 數年 | 數天 | 數小時 |
復雜性 | 簡單 | 復雜 | 復雜 |
傳輸速率 | 250Kbps | 1Mbps | 1 to 54Mbps |
頻段 | 868M、916MHz、2.4GHz | 2.4GHz | 2.4GHz |
網絡節點數 | 65535 | 8 | 50 |
聯網時間 | 30ms | 10s | 3s |
終端設備費用 | 低 | 低 | 高 |
使用費用 | 無 | 無 | 無 |
安全性 | 128 bit AES | 64bit,128 bit | SSID |
集成度和可靠性 | 高 | 高 | 一般 |
成本 | 低 | 低 | 一般 |
使用難度 | 簡單 | 一般 | 難 |
二、ZigBee模塊
MaxStream是一家非常有名的無線通信元件制造商,現在已經歸于DIGI公司旗下,在其ZigBee產品上加了一個很貼切的名稱XBee,XBee小型但卻是一個功能完善的ZigBee收發器(即接收器/發射器),它是雙向操作,在意義上來講它可交替地發射或接收數據(半雙工式)。
Digi提供有兩種版本,XBee和XBee PRO兩版本都是有相同的功能和引腳兼容如圖二所示,唯一的差異是發射功率,XBee為最大2mW,而XBeePRO則最大50mW。發射功率當然是一個重要因素,因為最終產品的距離就決定于它的身上,但這絕不是唯一你要考慮的事情。
進一步考慮的是要符合法定的需求,最大輻射功率是由使用者當地的法律制定,在歐洲的應用限制為10mW。為要令它可以符合這個要求,Digi已在XBee內實行一個配置參數,可用來設定發射功率。
XBee帶有多種不同類型的天線:
1. 整合于芯片內里,在這情況下輻射能量實際是非定向。
2. 備有天線插座,供連接外部天線。
3. 整合有垂直(鞭型)天線,給予比選擇1有更佳的方向特性。
4. U.FL型按扣天線
三、軟件
低成本的XBee模塊很容易經標準串行接口連接,譬如常見于微控制器的UART或PC上的COM接口(RS232),在115,200 baud的最高速率上傳輸。可是,XBee是由3.3V電源操作,而并非像大部分數字電路的5V電源,正如在圖3的方框圖上所見,兩類邏輯之間作直接相連是不可行的。
除此以外,你不需有使用該模塊的任何特殊知識,所以無須明白ZigBee協議才去開始,模塊為你做好每一樣事情,它是一個“智能”系統,即是說模塊含有可接受來自使用者命令的控制邏輯。這些命令乃由制造商規定。
在你可以發出一個命令之前,須將XBee置于“等待命令”狀態。要使它進入此狀態,便要給它一串三個+字符(hex 2B),即“+++”。之后,XBee期待收到一個以Hayes格式的命令,這命令總是以ASCII碼的“AT”(代表“attention”),緊跟著的才是實際命令及任何命令參數(如有),命令串由一個Carriage Return(CR)回車字符作終結。XBee模塊執行該命令,然后報告命令是否成功處理,如一切已按命令去做,XBee便回應“OK”;否則,會從模塊收到一個錯誤信息。
圖3:AT命令語法
另外,還有一個X-CTU軟件,令到一切事情甚至更加方便,可用它來配置XBee模塊的所有參數,不過先要將XBee模塊連接至PC的COM接口(因信號電平不同須經適配器),另外亦可用X-CTU來測試模塊和升級固件。
四、模塊內的數據緩存
無線鏈路上總是半雙工通信,用一條天線作發射或接收,但非兩者在同一時間。不過,Xbee模塊可以通過分時的方式達到UART端的同時發射和接收(全雙工模式)。圖4揭示了該原理。
圖4 XBee模塊內部框圖
XBee模塊內有發射(RF TX)緩存和接收(RF RX)緩存,每一緩存提供100bytes暫時存儲的地方,數據可以從兩個方面同時抵達。發射數據來自UART,以及接收數據來自RF鏈路經天線而來。當天線正在接收無線數據時,它不能在同一時間發射無線數據,因此,將要發射的數據可暫時存儲在發射緩存里,而收到數據就堆放在接收緩存內。只要RF端數據流停止,XBee模塊將天線從接收切換至發射,并且將發射緩存內的數據發送到大氣去,與此同時,UART清空接收緩存,把里面的數據傳輸給應用設備。
這雖是一個單純系統,但不是完全完美。應用上如有大量數據要發送時就很容易令發射緩存過載,關于這個問題Digi提供一個“滿載”警告。只要應用設備填入數據至已屆發射緩存最后的17bytes(換言之有83bytes正等待發送),第12腳即轉高位,告知系統須暫時停止注入數據。發射緩沖器內容已減少至66bytes之后,第12腳再轉低。
五、在實踐中的XBee
圖5 XBee模塊的管腳定義,整個模塊有20只引腳。
為求安全起見,再次提醒,最高電源電壓是3.3V,超過這電壓結果只會令你珍貴的XBee永久損壞。電源電壓須經由100nF電容器退耦合,并盡可能靠近第1和10兩腳之間。 第2及3兩腳提供通信。第5腳很重要∶邏輯1(3.3V)啟動XBee模塊,而邏輯0禁止它。從第5腳接10kΩ上拉電阻至第1腳可保證模塊在接通電源之時即被啟動。第9腳有多種功用選擇,由內部參數決定當中哪一個被使用,最重要的功能是休眠狀態,只要內部SM寄存器不是在邏輯0,模塊便在沉睡之中。
第7腳提供脈寬調制(PWM)信號,此是與最近收到的RF信號成比例的,它有8.32ms時期,相當于120Hz,LED發光二極管及其他光效應器件可將之轉換成模擬信號,并利用它作為一個信號強度指示燈(只需一個RC網路和一個LM3914)。這亦可以由軟件去做,因為最近收到的信號強度存放于內部DB參數上,正如其名稱所指,這是給予dBm RF單位的數量(相對于1mW的分貝數),可用以下的方程式作dBm RF與mW(P)之間的對換;dBm = 10logP [dB] 或P = 10(dBm/10)[mW]
試舉例∶0dBm = 1mW,10dbm = 10mW,20dBm = 100mW,30dBm = 1W。所有例子都是針對RF計算的。
審核編輯:湯梓紅
-
模塊
+關注
關注
7文章
2674瀏覽量
47350 -
無線
+關注
關注
31文章
5437瀏覽量
173103 -
無線通信
+關注
關注
58文章
4526瀏覽量
143426 -
ZigBee
+關注
關注
158文章
2269瀏覽量
242552 -
RF
+關注
關注
65文章
3042瀏覽量
166830
原文標題:淺談ZigBee無線標準與XBee ZigBee模塊
文章出處:【微信號:雨飛工作室,微信公眾號:雨飛工作室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論