2008年4月16日 星期三

MoteWorks_CH1~CH3

第一章、 介紹

MoteWorks是產生無線感測網路的end-to-end enbling platform

1-1. MoteWorks Network Landscape

1-1-1. The Mote Tier, XMesh software 提供必須的網路演算法

去形成可靠的通訊骨幹,如此可連接網路中的所有節

點連到伺服器. (Refer to XMesh User’s Manual)

1-1-2. The Server Tier, XServe and XOtap are server tier

applications that can run on a PC or Stargate.

(Refer to XServe User’s Manual)

1-1-3. The Client Tier 提供使用者形象化的軟體和圖形化的介

面來管理網路。Crossbow提供免費的客戶端軟體稱做

MoteView,但 XMesh 也可被介面化的客製化客戶端

軟體

(Refer to MoteView User’s Manual)

1-2. Low Power Operating System – TinyOS

MoteWorks已經有包含TinyOS在裡面,TinyOS是由美國加州

柏克萊大學發展出來的開放原始碼的操作系統,無線感測網

路操作系統很多都用TinyOS,他是以元件組合基礎、事件驅

動操作系統,TinyOS支援範圍從8-bit架構的微處理器(2 KB

RAM)32-bit處理器(32MBRAM或更多)

1-3. Software Development Tools

MoteWorks提供一套發展工具,用來客製化Mote應用,包含客

製化感測板驅動、感測訊號條件反應和程序和訊息處理等。

第一章、 安裝(安裝部分已寫在另一份文件,這裡跳過)

第二章、 操作環境客製化

這章告訴我們可以學到

Customizing Programmer’s Notepad

Cygwin interface

Compiling and Programming Tools

Environment variables

Interoperability between TinyOS 1.1.10 and MoteWorks

3-1.Programmer’s Notepad 2

MoteWorks包含一個可編譯nesC code的簡單整合開發環境的

Programmer’s Notepad版本。在”Tools”選單有”make mica2”

”make micaz””make mica2dot””make iris”的選項。如果安裝的

時候不是使用預設資料夾的話就必須手動修改工具的路徑才能讓

他正常使用。下面是Option的畫面。

“make micaz”make命令是做編譯的動作

(我認為是如此,如有錯誤之後會再回來修正)

“Tools”選單有一個shell的指令,在這個指令下輸入”make micaz”

此動作的結果是等同於直接在Tools下按”make micaz”,如此看來

shell是一個可以讓你就像在cygwin下輸入指令一樣。

Note:要做編譯或燒錄都必須在.nc檔的應用資料夾底下執行。

3-2.Cygwin

Cygwin是在Windows底下模擬Unix/Linux的環境。它包含兩部分

1).A DLL(cygwin1.dll),模擬Linux API

(DLL的全名為Dynamic Link Library,一般翻為「動態連結資料庫」)

2).集合提供的類似 linux tools

Cygwin的一些有用常用的指令稍後再補上

3-3.Setting Aliases

這是可以設定進入特定資料夾的捷徑,設定的檔案是在

C:Crossbowcygwinetc裡面的profile

打開它,然後輸入

alias cdMoteWorks=”cd Crossbow/cygwin/opt/MoteWorks”

alias cdtools=”cd Crossbow/cygwin/opt/MoteWorks/tools”

alias cdapps=”cd Crossbow/cygwin/opt/MoteWorks/apps”

然後存檔,打開cygwin發現出現下圖的訊息

喔喔出現問題了>”<

算了,暫時不管它,沒設捷徑不影響

profile裡面有做增加的部分刪除,改回原本的檔案內容

結果就沒再出現那個訊息了。

3-4.Compiling MoteWorks Applications

Cygwin裡面做compiling(building) application code的語法是

make <platform>

下表是對照表

3-5.Programming Boards

燒錄程式的時候需要定義所使用的燒錄板是什麼型號的,

下表示對照表

3-5-1.MIB510/Serial Port Programmers

MIB510這塊版子是使用RS-232來和電腦連接傳輸資料的,如果

PCRS-232的插孔,可以使用RS-232USB的線,我們所使用

的就是RS-232USB的線

這裡簡單的說明一下燒錄的語法

Ex: make micaz install mib510,com1

micaz : <platform>

mib510 : <programmer>

com1 : 是連接埠(PC’s serial port),這個設定要先進到裝置

管理員查看

install : 是燒錄

3-6.Installing MoteWorks Application into a Mote

燒錄工具包含一個設定node ID的燒錄方法,且不需要直接去修改

原始碼。語法如下所示

Make <platform> reinstall,<n> <programmer>,<port>

Platformprogrammerport已經在前面提過了就不再說一遍。

<n>n是設定節點的ID

install : 編譯程式到指定的platform

reinstall : 下載之前編譯好的程式到Mote,且不再重做編譯

3-7.Setting the Group ID and Node Address for the Mote Network

The Mote Message的標頭檔包含了一個Group ID(群組ID),這可以允許

區別各群組的Motes分享相同的通道。如果想要各群組的Motes在各自

群組的通道,需要設定Group ID 成一個獨特的8-bit的值來濾除那些訊

息。預設的Group ID0x7d。設定Group ID的資料夾在

C:CrossbowcygwinoptMoteWorksapps,裡面的MakeXbowlocal的檔

案裡面的DEFAULT_LOCAL_GROUP的地方可以做設定。此外,訊息

的標頭檔有帶一個16-bitdestination node number

3-8.The MakeXbowlocal file

MakeXbowlocal file提供一個方便的方法讓使用者改變Group ID

channel(RX/TX frequency)RF transmission power

使用它只要在特定的application的最上層的資料夾有一個叫做Makefile

的檔案,點兩下打開它。會看到一行寫著

Include ../MakeXbowlocal

經由增加了這一行在Makefile會使的application在編譯的時候把

MakeXbowlocal包含進去。

Note : MoteConfig不讀也不使用MakeXbowlocal的參數設定

因此是在MoteConfig的介面上自行另外設定的。

下面我把MakeXbowlocal的檔案部分print下來放在下面,且大概說一下設定

參數的位置。

Note : 如要使設定work只要把那行前面的”#”消掉就可以了

第一張圖:設定Programming Board,我們是使用MIB510,所以把

MIB510前面的#號拿掉,Port的話我們的是COM4

所以這裡要改成MIB510=COM4

第二章圖:設定MICA2RF BandRF Channel

第三張圖:設定MICA2RF Power

第四張圖:設定MICAzIRISRF Channel,紅色框框上面有顯示各通

到號碼相對應的頻率是多少。

第五張圖:設定MICAzRF Power。一樣上面有對照表。

最後一張圖:是設定IRISRF Power

這些設定在要做編譯之前要先檢查一遍是否都有設好。

3-9.Radio Frequencies

MICA2MICA2DOTMICAz可以使用的頻帶是315MHz433MHz

915MHz2.4GHz ISM頻帶。在Compile之前一定要先確定頻帶沒設錯。

3-10.Automated Build Tools

MoteWorks提供好幾個自動編譯工具來簡化編譯程序

3-10-1.build

這個命令類似”make”。不過編譯之後的訊息只會顯示編譯之後

產生的錯誤和警告。語法是:

$build micaz

3-10-2.Buildall

這個命令跟build一樣,不過不同的是這個命令編譯資料夾內所

有的應用程式。下面是語法:

3-11.Mote Programming Tools

MoteWorks提供好幾個自動化工具來簡化燒錄到Mote的程序

3-11-1.flash

應該是燒錄進Mote的吧!預設node id=1port=COM1

且這命令只能用在MIB510MIB520上。下面是語法:

3-11-2.flashall

範圍同buildall的範圍。下面是語法:

3-11-3.fuses

這命令允許使用者在Programming Board讀和寫Motefuse(查字典是保

險絲@@不懂)設定。下面是語法:

3-11-4.motelist

This command list MIB520 and Telos devices attached to the USB port

(~看不是很懂)

3-12.TinyOS Interoperability and Tree Management

使用者可以在TinyOS(v.1.1.10)MoteWorks之間相互操作,很多的命令提供

方便的切換TinyOSMoteWorks樹狀結構。

3-12-1.gettos

這個命令允許使用者去觀看有多少的TinyOS的環境被編譯。

下圖是在cygwin下輸入gettos之後產生的畫面

3-12-2.settos

使用者可以經由改變一個符號連結來切換到一個新的MoteWorks

兩個樹狀結構都在同樣的/opt/MoteWorks 根目錄,但是使用者可以

保有兩個版本,一個是標準版(2.0)和企業版(2.1),第一次使用這個命

令時,回重新命名現在的MoteWorks樹狀結構成為指定的版本。

下圖是指令:

3-12-3.usetos

這個命令使用者切換MoteWorksTinyOS的環境

下面是指令:

usetos -switch to MoteWorks

usetos tinyos -switch to TinyOS 1.x

usetos tinyos-2.x -switch to TinyOS 2.x

下圖是切換功能顯示,告訴我們怎麼用此命令。

3-13.Compiling Utilities

MoteWorks提供了好幾個實用的編輯。

3-13-1.make

這命令允許使用者編譯nesC code,且提供幾個選項直接的輸入在

命令列,platformXMesh power modegroup ID和無線電頻率。

輸入方式如下圖所示:

3-13-2.mote-mem

看編譯韌體之後模組記憶體使用的情形。

下圖是手冊上的例子

3-13-3.treediff

顯示兩個不同的應用的來源差異。

(不是很懂)

3-14.XSniffer

XSniffer是一個Crossbow發展的工具,它可以讓使用者去透過XMesh觀看通訊傳

輸的情形。這個軟體使用在電腦上,且使用一個MICA2MICAzMote來觀看

RF packet traffic,要使用XSniffer需要下列兩個需求

1. XSniffer TinyOS code : 這個程式碼是被建立給使用在MIB510MIB520的基

地台上的一個MICAzMICA2的。這個原始碼放在

/MoteWorks/apps/general/XSniffer

2. XSniffer的圖形化見面是被安裝和執行在電腦上的。它被安裝在

C:/Crossbow/XSniffer

3-14-1.Building and Starting XSniffer

在資料夾(/MoteWorks/apps/general/XSniffer),編譯和燒錄程式到正

確的平台。對於MICAz MIB510的命令是

make install micaz mib510,/dev/ttyS0

WARNING: XSniffer不作用在XMesh,編譯時不使用route,hp2

route,lp2的變數,XSniffer使用

TOSH_DATA_LENGTH=64,它能提供最大的使用者

資料封包。

開啟XSniffer圖形化介面,選擇適合的COM port然後START,網路訊息

會顯示紀錄。

3-14-2.Using XSniffer

XSniffer可以被習慣用於監事mesh的行為,它會顯示無線電範圍的無線電

訊息的監聽。Use XSniffer to :

1. 如果一個mote加入mesh就會被監看,當發生資料封包將改變重廣播

位址到基地台位址或其它的基地台。

2. 監看個別的mote無線電封包序號。

3. 監看從基地台的無線電通訊。

4. 監看無線電訊息的重試

5. 監看最新的路由和時間同步訊息

關於更多XSniffer的細節,參照XMesh User’s manual


沒有留言: