圖書評價
本書語言簡練、淺顯易懂、圖文並茂、脈絡清晰。以實際操作為主導,圍繞TinyOS作業系統的實際套用進行取材謀篇,著重於技術精華的剖析和操作技巧的指點。
本書適用於高等院校信息類專業的本科生、研究生和教師,也可供國內相關研究機構和公司的研發人員參考使用。
目錄
第1章 緒論 1
1.1 無線感測器網路概述 1
1.1.1 無線感測器網路的研究進展 2
1.1.2 無線感測器網路的體系特徵 3
1.2 無線感測器網路作業系統 8
1.2.1 無線感測器網路對作業系統的需求 8
1.2.2 現有的無線感測器網路作業系統 10
1.3 TinyOS作業系統概述 13
1.3.1 設計理念 14
1.3.2 技術特點 15
1.3.3 體系結構 16
1.3.4 版本說明 17
1.4 與其他WSN作業系統的比較 20
1.5 本書章節安排 24
第2章 開發環境 26
2.1 TinyOS 2.1在Windows中的安裝 26
2.1.1 搭建Java環境 27
2.1.2 安裝Cygwin平台 30
2.1.3 安裝平台交叉編譯器 34
2.1.4 安裝TinyOS源碼與工具包 36
2.1.5 安裝Graphviz圖形工具 38
2.2 其他安裝方法 39
2.2.1 在Ubuntu 9.10中的安裝 39
2.2.2 使用RPM包的手動安裝 41
2.2.3 TinyOS 1.x升級到TinyOS 2.x 42
2.2.4 使用CVS更新TinyOS 2.x檔案 46
2.3 TinyOS安裝後的測試 47
2.3.1 TinyOS檔案概覽 47
2.3.2 檢查運行環境 48
2.3.3 仿真測試 49
2.4 程式的編譯和下載 50
2.4.1 代碼編輯工具 50
2.4.2 編譯程式 52
2.4.3 USB串口驅動 53
2.4.4 下載程式 54
2.5 本章小結 57
第3章 nesC程式語言 58
3.1 nesC語言簡介 58
3.2 nesC語言規範 59
3.2.1 接口 61
3.2.2 組件 62
3.2.3 模組及其組成 65
3.2.4 配件及其組成 68
3.3 基於nesC語言的應用程式 73
3.3.1 nesC應用程式簡介 73
3.3.2 Blink實例 77
3.3.3 BlinkSingle實例 82
3.3.4 移植TinyOS 1.x代碼到2.x 86
3.4 nesC程式運行模型 88
3.4.1 任務 88
3.4.2 內部函式 91
3.4.3 分階段作業 92
3.4.4 同步與異步 94
3.4.5 原子性代碼 95
3.4.6 無線模組的開啟過程 96
3.5 編程約定 98
3.5.1 通用約定 98
3.5.2 軟體包 98
3.5.3 語法約定 99
3.5.4 TinyOS約定 101
3.6 可視化組件關係圖 103
3.7 本章小結 104
第4章 基本操作 106
4.1 點對點的無線通信 106
4.1.1 主動訊息概述 106
4.1.2 通信接口和組件 107
4.1.3 訊息快取抽象 109
4.1.4 通過無線電傳送訊息 110
4.1.5 通過無線電接收訊息 117
4.2 節點與PC的串口通信 119
4.2.1 信息源和連線埠測試 119
4.2.2 基站和監聽工具 121
4.2.3 MIG訊息接口生成工具 123
4.2.4 SerialForwarder和其他信息源 126
4.2.5 傳送信息包到串口 129
4.2.6 基於printf庫的列印調試 130
4.2.7 常見的串口通信故障 133
4.3 感測 134
4.3.1 感測簡介 134
4.3.2 Sense實例 135
4.3.3 Oscilloscope實例 138
4.4 存儲 140
4.4.1 存儲簡介 140
4.4.2 配置數據的存儲 141
4.4.3 日誌數據的存儲 146
4.4.4 大數據塊的存儲 148
4.5 本章小結 149
第5章 系統核心 151
5.1 硬體抽象架構 151
5.1.1 架構簡介 151
5.1.2 不同層次抽象的結合 154
5.1.3 橫向分解 155
5.1.4 微處理器抽象 156
5.1.5 HIL抽象級別 156
5.2 任務和調度 157
5.2.1 任務簡介 157
5.2.2 TinyOS 1.x的任務和調度器 157
5.2.3 TinyOS 2.x的任務 159
5.2.4 TinyOS 2.x的調度器 160
5.2.5 調度器的替換 162
5.2.6 調度器的具體實現 165
5.3 系統啟動順序 168
5.3.1 啟動順序簡介 168
5.3.2 TinyOS 1.x的啟動順序 168
5.3.3 TinyOS 2.x的啟動接口 169
5.3.4 TinyOS 2.x的啟動順序 170
5.3.5 系統啟動和軟體初始化 174
5.4 資源仲裁 175
5.4.1 資源簡介 175
5.4.2 資源類型 176
5.4.3 資源仲裁 178
5.4.4 共享資源的套用實例 183
5.5 微控制器的電源管理 187
5.5.1 微控制器電源管理簡介 187
5.5.2 TinyOS 1.x的電源管理 188
5.5.3 TinyOS 2.x的電源管理 189
5.5.4 外圍設備和子系統 191
5.6 外圍設備的電源管理 191
5.6.1 外圍設備電源管理簡介 191
5.6.2 電源管理模型 192
5.6.3 顯式電源管理 193
5.6.4 隱式電源管理 196
5.7 串口通信 199
5.7.1 串口通信協定簡介 199
5.7.2 串口協定棧的實現 200
5.7.3 串口協定棧的抽象 207
5.8 本章小結 207
第6章 平台與仿真 210
6.1 平台 210
6.1.1 平台簡介 210
6.1.2 底層I/O口 211
6.1.3 新平台的建立 215
6.1.4 CC2430平台的移植 223
6.2 編譯系統 226
6.2.1 編譯系統簡介 226
6.2.2 自定義編譯系統 227
6.2.3 makefile入門 228
6.2.4 編寫Makefile檔案 230
6.2.5 編譯工具 232
6.3 TOSSIM仿真 233
6.3.1 TOSSIM簡介 233
6.3.2 仿真編譯 234
6.3.3 基於Python的仿真 237
6.3.4 調試語句 239
6.3.5 網路配置 242
6.3.6 變數的觀察 250
6.3.7 注入訊息包 253
6.3.8 C++接口 256
6.3.9 gdb調試 258
6.4 本章小結 261
第7章 網路協定 262
7.1 分發協定 262
7.1.1 分發協定簡介 262
7.1.2 相關接口和組件 263
7.1.3 EasyDissemination實例 265
7.1.4 Drip庫和DIP庫 269
7.2 匯聚協定 276
7.2.1 匯聚協定簡介 276
7.2.2 相關接口和組件 277
7.2.3 CTP協定 279
7.2.4 CTP實現 281
7.2.5 EasyCollection實例 287
7.3 本章小結 291
第8章 高級套用技術 293
8.1 低功耗應用程式 293
8.1.1 能耗管理簡介 293
8.1.2 外圍設備的電源管理 294
8.1.3 無線模組的電源管理 297
8.1.4 微處理器的電源管理 300
8.1.5 低功耗感測的套用實例 300
8.2 低功耗監聽 300
8.2.1 低功耗監聽簡介 300
8.2.2 相關接口 302
8.2.3 message_t元數據 304
8.2.4 HAL層的改進建議 305
8.3 TOSThreads執行緒 305
8.3.1 TOSThreads執行緒簡介 305
8.3.2 nesC語言的API接口 306
8.3.3 C語言的API接口 309
8.3.4 支持新的系統服務 310
8.4 CC2420聯網安全功能 312
8.4.1 CC2420安全模式簡介 313
8.4.2 傳送端的配置 313
8.4.3 接收端的配置 314
8.4.4 RadioCountToLeds實例 315
8.5 本章小結 319
第9章 基於TinyOS的套用開發實例 320
9.1 基於TSL2550感測器的光照檢測 320
9.1.1 TSL2550簡介 320
9.1.2 驅動實現 323
9.1.3 感測測試 330
9.2 基於GSM簡訊的遠程數據傳輸 334
9.2.1 系統簡介 334
9.2.2 功能實現 338
9.2.3 簡訊測試 348
9.3 基於簡單蟻群算法的路由協定 350
9.3.1 算法簡介 350
9.3.2 協定實現 353
9.3.3 仿真測試 366
9.4 本章小結 370
附錄A nesC語言基本語法 371
附錄B TinyOS編程技巧 374
附錄C 英漢對照術語表 375
參考文獻與網址 378