2009年7月28日 星期二

ZigBee之概要原理-6-實體層功能說明1

之前在概要原理-1有提到過ZigBee的架構圖,總共有實體層、媒體層、網路層和應用層,但只有對各層功能概述而已,並沒有作詳細的說明,此篇就先從最底層的實體層開始詳細介紹,實體層也稱為PHY(Physical)層,這層主要規定了無線電波信號的交換方式。

首先先從頻率頻寬和頻道作說明,在現在的IEEE 802.15.4規範中,有三個頻率頻寬可使用分別是868MHz、915MHz、2.4GHz,下表是三個頻率頻寬的規格︰



*調變方式之後會另作說明

台灣和日本一樣使用的是2.4GHz,共設置了16個頻道,各頻道對應的中心頻率如下表所示︰


2.4GHz頻段低功率通信資料系統中允許使用的頻率頻寬是2400MHz~2483.5MHz。
在這之中的無線區域網路中,可以設置13個頻道,但相鄰頻道的頻寬相互重疊,因而所有頻道不能同時使用,相鄰頻道沒有重疊的條件下只能使用3個頻道。

同樣使用2.4GHz頻寬的ZigBee,預先設置的頻道數是16,相鄰頻道的頻寬沒有重疊,所以可以同時使用所有的頻道。

2.4GHz頻寬的實體層中和通訊距離最有關的參數就是發信輸出功率(PTx:Transmission Power)和收信靈敏度(SRx:Receiver Sensitivity),按照公式它的差會等於最大路徑耗損(P:Path Loss)。
PL[dBm] = PTx[dBm] – SRx[dBm]
*dBm 是在一個電子電路內,求得一聲頻訊號電平( Audio Signal Level )的量測單位,在個電路內其阻抗為600Ω,參照換算相當於一個0.775 V 的訊號電壓,這訊號電壓是RMS 的電壓值,也就是0 dBm,因為0.775 V 跨接個600Ω的負載即等於1mW,即 1 Milliwatt = 0.775V = 0 dBm / 600Ω,瓦特和dBm的轉換為 dBm = 10 log ( P / 0.001 W ) 。

而路徑耗損和發送訊息距離之間關係的公式又如︰
PL[dBm] = 40 + 10n㏒(d)
n為傳輸路徑品質的指數,n越小表示所在地越空曠,越少障礙物,d為發送訊息之距離,在室外沒障礙物的空間裡n的值約為2,在室內n的值約為2.5~4,因此發信輸出功率與通信距離的2~4次方成正比,如果發信輸出功率為-3dBm,收信靈敏度為-85dBm的理想環境下,算出來的結果如下表所示︰



影響通信距離的有可能是牆壁或天花板等的反射波而導致的多路徑同步現象,意思是多條路徑收到相同電波時,因為每條路徑電波,的強度和位元不同,所以被合成的接收電波強度時強時弱,甚至有可能完全被抵消為0。而解決這種問題最好的方法就是用分集式天線,就是同時使用2根以上的天線,手機就是個例子,不只外觀上看得見的棒狀天線,很多主機在內部還有內建一根天線。

這就是在實體層中重要的相關參數所影響的結果,實體層還有其他的功能包括調變方式和頻譜延伸等等會在之後作說明。

2009年7月22日 星期三

ZigBee之概要原理-5-低功耗

無線的優勢就是不需要佈線,這也包括了不需要交流電源供電的佈線,且無線感測器網路具有更換一次電池可以工作幾年時間的耗電性能。

隨著半導體技術的進步,實現了低耗電且高頻率RF晶片,感測器網路能以很短的執行週期進行工作,對於這種工作週期極短的網路來說,最有效的省電方式就是讓RF電路在不進行交換通信的期間處於休眠狀態。

休眠期間的耗電量是動作期間耗電量的千分之一,假使一個無線節點在發送和接收信號時耗電量為30mA,那它在休眠期間的耗電量約為數μA。

休眠時間長的設備,消耗的電流量確實很低,但從休眠狀態中復原工作狀態的時間也會變長。

而在電池壽命方面有可能會被以下的條件影響︰

1.資料的發送週期︰假如週期為1秒時,消耗電量約為週期一分的60倍,所以電池壽命約為1/60。

2.通信的方向性︰只發送信號的單方向的通信場合,設置省電裝置比較容易,雙方向通信的場合由於不知道有多少資訊在進行傳輸,所以接收資訊需要等待時間,因而消耗電量。

3.資料框的長度︰發送信號所需的時間和資料框長度成正比,且長的框很可能會因為空中電波的衝突而導致發送失敗,從而導致資訊需再次發送而浪費用電。

*資料框也就是封包,它是網路中資料傳遞的基本單位,一個『封包』就是一組資料加上一個位址,以及告知網路資料傳送目的地的相關資訊。所有通過 Internet 的資料都會被分解為『封包』,包括:網頁、電子郵件、下載內容.....等

4.資料傳輸的延遲時間,有效控制耗電量的方法就是進入休眠模式,雖然休眠模式越長耗電量越小,但資料傳輸所需的時間也越長。

針對第一點發送週期來看ZigBee的電池壽命如下圖所示︰


通訊間隔就是發送週期,如果每13秒節點就傳送一次訊息,電池使用時間約為五年。

一般而言藍牙運作時平均耗電量為45mA,但真正的問題是當其待機時,仍會消耗15mA的電量,因此耗電量對藍牙而言是相當大的問題。

耗電率和傳輸距離還有傳送的資料大小都有相關性,拿藍牙和ZigBee來說,ZigBee比藍牙較省電,不過藍牙可以傳送影音或圖案等檔案較大的資料,也因為這樣傳輸的距離只有1~10公尺。

以我們如廁訓練的實驗來說,教室到廁所距離可能會很遠,且傳輸給老師的資料主要是能讓老師辨識學員是否成功如廁,所以數據不大,這也就是我們之所以使用ZigBee的原因了。

2009年7月16日 星期四

進度回報


目前進度

1.成功傳送sensor資訊 (50%)
目前成功傳送ZigBee的內建sensor資訊,並成功修改部分程式使其可發送字元,溼度感測器如何接上ZigBee乃是目前主要研究方向

2.接收端可讀取並顯示sensor資訊 (80%)
接收端已可以show出sensor所傳回的資料,但系統尚未完整化


嘗試方向

1.DIO pin 已測試過其中幾隻接腳可用來取代控制LED1、LED2 的 switch,小組的想法為將sensor接至DIO pin做switch的功能

2.在發送端嘗試撰寫LED亮滅的顯示狀態指令,接收端則顯示LED資訊值,當sensor有所反應則對LED做亮或滅,顯示端也可藉由LED亮或滅的狀態來判別sensor的讀取狀況


目前測試狀況

接收端目前僅能顯示出內建sensor的溫度以及濕度,想法為先嘗試寫出光感sensor傳送指令,使其也能於接收端顯示,藉此研究學習接收以及發送端的指令,此部分成功下一步則寫顯示LED狀態的指令,目前在撰寫指令的部分稍稍遇到瓶頸,仍在努力中。



2009年7月13日 星期一

ZigBee之概要原理-4

ZigBee有個低費用的好處,因為它的晶片價格不會很昂貴,晶片價格主要成本在MCU(微控制器)和Radio(無線電),一個晶片大概3~5美元,都是接2A或3A電池,有人預估約3~5年後價格大概會在1美元左右。

與其說ZigBee低費用不如說是Cost-effective(有成本效益的),為什麼會這樣說呢?原因如下︰

1.在802.15.4和ZigBee方面有認證機構和專業技術
一些公司提供簡單和相關的低花費的政府RF認證。


2.核心技術不會有專利侵權的問題


3.只需要低花費的開發環境
所有元件大概花$1500美元左右就可以得到,包含ZigBee的編譯、堆疊、板子和所有軟體與文件。


4.ZigBee專業技術可提供諮詢或客製化
可以省下很多研究時間,一個企劃中開發者的時間是最大的花費,省下這些時間也可省下很多的花費。


5.在應用profile方面有現成的供應商互通性
ZigBee聯盟定義了Application Profile,這些Profile 描述ZigBee設備的共通性。

參考資料︰Drew Gislason著的ZigBee Wireless Networking

這項優點好處在於我們只要修改應用層的範圍就可做各種應用,不需從頭開始研發。

2009年7月10日 星期五

Source Code 分析筆記-6 修改程式

我們接下來試的是Zigbee-Wireless-Sensor-Network 的應用範例來更改程式,這個程式的目的是修改Voltage讀取的訊息,利用終端機連接Router來輸入字元,並透過無線的方式將字元轉換成ASCII code傳給Coordinator並顯示再另外一台電腦的終端機上。


先修改終端機的設定,在終端機能夠輸入字元



接著在終端機上打入字元
EX:順序是1、a、2、b
*此程式會在周期時間內會自動讀取最後一個字元




可以看見終端機上的Voltage 由0開始變化
當輸入的值會轉換成ASCII code 顯示
圖上的Voltage變化的順序是依照前一張圖輸入值的順序做改變
當無輸入值的時候,之後的Voltage會顯示Router最後一次輸入的值



此圖為字元與ASCII的轉換的關係
我們可以看圖來證明此結果為真


完成此程式的修改代碼後,對於我們是一大幫助,接下來我們將嘗試更多的修改

期望順利的讀取外接的感測器。  加油~!

2009年7月8日 星期三

ZigBee之概要原理-3

既然要了解ZigBee當然要知道它的優點好處是什麼,ZigBee的優點有很多,低耗電、低費用、高安全性、可靠性高、相互相容性等等,這篇針對ZigBee的Reliable(可靠性)作介紹。
關於ZigBee的"Reliable(可靠性)"︰

1.採用CSMA/CA方式
CSMA = Carries Sense Multiple Access,CA = Collision Avoidance,中文意思是載波偵測多重存取,在發送信號時先確認傳輸路徑的狀態,如果傳輸路徑空閒則開始發送信號,不空閒的話則必須隨機等待一定時間,這樣是為了避免一起發送多個位元組時發生資料的衝突。舉例來說就像是conversation一樣,等別人把話說完後自己在說話。

2.每個封包都會重複傳送三次,如果傳送4次後還是失敗的話,ZigBee會通知傳送節點讓部份可以傳送到。

3.在網狀網路中會自動搜尋路徑,這項則用圖示來說明。



在這張圖中,傳送訊號要從1傳到2,在由2傳到3,但如果有障礙物遮蔽在1和2之間時,雖然訊號無法從1傳到2,但會自動搜尋鄰近的節點如下圖︰


節點1繞過障礙物搜尋到節點4後,在由節點4傳送到節點5,最後在傳送到節點3。
ZigBeee的這項功能的好處在於架構的網路系統當中,其中一節點的損壞(電力不足or元件損壞)不會導致整個系統癱瘓,讓訊息的傳送能夠維持不至於中斷。

2009年7月6日 星期一

Source Code 分析筆記-5

繼測試 ZigBee Home Sensor Demonstration 範例之後,我們接下來試的是Zigbee-Wireless-Sensor-Network 的應用範例,這個範例主要是在利用無線網路的應用部份

(關於此範例請參閱JN-AP-1015-Zigbee-Wireless-Sensor-Network 1v7.zip)


這個範例程式 Coordinator 並沒有寫 LCD螢幕的部份,所以將燒入Coodinator的晶片插到主版中,LCD螢幕並不會有任何的顯示情況產生,另外將燒入Coodinator 的晶片插在子版當中在ZigBee網路中它一樣能建立起 Coordinator 的位置,說明文件裡頭有提到可利用HyperTerminal來讀取Coordinator接收的值,於是我們開啟了Windows內建的超級終端機來使用,將Comport接在Coordinator 的版子上並將參數如圖設置



實際連線時,如圖可以看到收到的data格式呈現成這樣
Address(Router ID) = 0x143e
Humidity(濕度) = 51
Temperature (溫度)= 28
Voltage(電壓) = 2635(mV)

測試時有兩塊Router(0x143e、0x1)




為了測試是否資料是否是立即傳輸的狀態,我們簡單的對溼度感測器呼了一口氣,使其溼度能短時提昇 ,其溼度的data立即產生變化



專題的目標是要將感測的數據傳回至電腦端顯示,這個測試的範例離我們想要的很接近,往後方向可能將參考其寫法並做修改以及測試