第一章、 介紹
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處理器(32MB的RAM或更多)
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來和電腦連接傳輸資料的,如果
PC沒RS-232的插孔,可以使用RS-232轉USB的線,我們所使用
的就是RS-232轉USB的線
這裡簡單的說明一下燒錄的語法
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>
Platform、programmer和port已經在前面提過了就不再說一遍。
<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 ID是0x7d。設定Group ID的資料夾在
C:CrossbowcygwinoptMoteWorksapps,裡面的MakeXbowlocal的檔
案裡面的DEFAULT_LOCAL_GROUP的地方可以做設定。此外,訊息
的標頭檔有帶一個16-bit的destination 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
第二章圖:設定MICA2的RF Band和RF Channel。

第三張圖:設定MICA2的RF Power。

第四張圖:設定MICAz和IRIS的RF Channel,紅色框框上面有顯示各通
到號碼相對應的頻率是多少。
第五張圖:設定MICAz的RF Power。一樣上面有對照表。
最後一張圖:是設定IRIS的RF Power。
這些設定在要做編譯之前要先檢查一遍是否都有設好。
3-9.Radio Frequencies
MICA2、MICA2DOT和MICAz可以使用的頻帶是315MHz、433MHz、
915MHz或2.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=1和port=COM1,
且這命令只能用在MIB510和MIB520上。下面是語法:
3-11-2.flashall
範圍同buildall的範圍。下面是語法:
3-11-3.fuses
這命令允許使用者在Programming Board讀和寫Mote的fuse(查字典是保
險絲@@不懂)設定。下面是語法:
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之間相互操作,很多的命令提供
方便的切換TinyOS和MoteWorks樹狀結構。
3-12-1.gettos
這個命令允許使用者去觀看有多少的TinyOS的環境被編譯。
下圖是在cygwin下輸入gettos之後產生的畫面
3-12-2.settos
使用者可以經由改變一個符號連結來切換到一個新的MoteWorks。
兩個樹狀結構都在同樣的/opt/MoteWorks 根目錄,但是使用者可以
保有兩個版本,一個是標準版(2.0)和企業版(2.1),第一次使用這個命
令時,回重新命名現在的MoteWorks樹狀結構成為指定的版本。
下圖是指令:
3-12-3.usetos
這個命令使用者切換MoteWorks和TinyOS的環境
下面是指令:
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,且提供幾個選項直接的輸入在
命令列,如platform、XMesh power mode、group ID和無線電頻率。
輸入方式如下圖所示:
3-13-2.mote-mem
看編譯韌體之後模組記憶體使用的情形。
下圖是手冊上的例子
3-13-3.treediff
顯示兩個不同的應用的來源差異。
(不是很懂)
3-14.XSniffer
XSniffer是一個Crossbow發展的工具,它可以讓使用者去透過XMesh觀看通訊傳
輸的情形。這個軟體使用在電腦上,且使用一個MICA2或MICAz的Mote來觀看
RF packet traffic,要使用XSniffer需要下列兩個需求
1. XSniffer TinyOS code : 這個程式碼是被建立給使用在MIB510或MIB520的基
地台上的一個MICAz或MICA2的。這個原始碼放在
/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