无线传感器网络操作系统TinyOS综述

2011 年第 2 期 2475 ( 2011 ) 02010303 文章编号: 1006-

计 算 机 与 现 代 化 JISUANJI YU XIANDAIHUA

总第 186 期

无 线 传 感 器 网络 操 作 系 统 TinyOS 综 述
1 吴小娜 , 王



2

( 1. 东华大学计算机科学与技术学院, 上海 200051 ; 2. 上海市计算技术研究所, 上海 200040 ) — —组 件 化结构、 摘要: TinyOS 是无线传感器网络专用的操作系统。本文 首先 分析 TinyOS 操作 系统的 关键 技术— 调度机 II、 Kernel 在 内 核 大 小、 制、 通讯模型及能量管理方式, 然后将 TinyOS 与另外两个操作系统 μCOSμT时 间可确 定 性、 低功 耗等方面进行简要对比, 最后总结 TinyOS 操作系统的缺点和存在的问题, 为学习使用 TinyOS 提供指导。 关键词: 无线传感器网络; TinyOS; 综述 doi: 10. 3969 / j. issn. 10062475. 2011. 02. 028 中图分类号: TP316 文献标识码: A

Review of TinyOS for Wireless Sensor Networks Operating System
WU Xiaona1 ,WANG Man2
( 1. School of Computer Science and Technology,Donghua University,Shanghai 200051 ,China; 2. Shanghai Institute of Computing Technology,Shanghai 200040 ,China) Abstract: TinyOS is the specific operating system for wireless sensor networks. First,this paper introduces the key techniques of TinyOS,such as componentbased model,scheduling mechanism,communication model and energy management. Then it briefly compares with the other two operating system μCOSII,μTKernel about RAM / ROM,realtime performance,low power etc. Finally,TinyOS shortcomings and exist problems are summarized. Key words: wireless sensor networks; TinyOS; review

0





[14 ] 无线传感器网络( WSN ) 是 多 个具有 感 知、 通 信和计算能力的小 型 无 线 传 感 器 网络 节 点 自 组 织 而 成的新型网络, 能 够 协 作实 时 监 测、 感 知 和 采 集 网络 分布区域内的各种环境或监测对象信息, 并对这些 信 息进行传输处理 以 获得 所需 信息。 传 感 器 可 采 集 温 度、 湿 度、 光照 度、 噪声、 振 动、 速 度 等 众 多 物 理 数 据, 将客观现象虚拟成数字化, 进而展现在人眼前。 随着 WSN 网络应用复杂化, 实时要求的提高, 传 统的前后台系统越来越不能适应系统发展, 急需 引 入 操作系统来减少 软 件 开发 难 度, 节 约 开发 成 本, 提高 效率。无线 传 感 器 网络 操 作 系 统 ( WSNOS ) 是 WSN 系统的基本软件环境, 通过高效地利用无线传感 器 网 络节点的有限资源为应用服务。

线传感器网络的操 作 系 统。TinyOS 操 作 系 统、 库和应 [ 4 ] 用程序 都 是 用 NesC 编 写 的。NesC 是 C 语 言 的 扩 [ 58 ] : 事件 驱 展, 可用于开发组 件 化 结 构。其主要特 点 动模型、 组件化编程、 二级调度、 轻量级任务、 主动消息 ( AM) 通信机制、 phase Operations) 。 分段操作( Spilt1. 1 TinyOS 组件化结构 TinyOS 是 由 调 度 器 和 一 系 列 组 件 组 成。 Tinyos2. x[3]体系结构如图 1 所示。其组件由下到上是: 硬件抽象组 件 ( hardware abstractions ) 、 合成硬件 组件( synthetic hardware ) 和 高 层 软 件 组 件 ( high level software) 。硬件抽 象 组 件 负责 物 理 硬 件 映 射; 合 成 硬 件层实现不同数据格式进行交 互; 高 层 软 件 组 件 负责 数据处理、 路由和传输等。在 TinyOS2. x( 如图 1 所示) 中, 硬件抽象层 HAA 又 分为 三 层, 最 底 层为 硬 件 表示 层 HPL, 中间层为硬件适配层 HAL, 最顶层为硬件接口 HIL 。 TinyOS1. x 层 相对 这三层的引入, 不仅缓和了代 码重用和移植间的矛盾, 也提高了系统效率。 其中 组 件 有: 模 块 ( module ) 和 配 置 ( configuration) 。

1 TinyOS ( TinyMicro Threading Oper ating System)
TinyOS 是由 加 州 大学 伯 克 利分 校 开发 的 适 应 无

1019 收稿日期: 2010), 作者简介: 吴小娜( 1987女, 江西崇仁人, 东华大学计算机科学与技术学 院硕士研究生, 研究方向: 无 线 传 感 器 网络 操 作 系 ), 统; 王漫( 1967男, 上海市计算技术研究所高级工程师, 研究方向: 无线传感器网络, 普适计算, 协同计算。

104















2011 年第 2 期

1. 3 TinyOS 通信模型 TinyOS 的 通 信 模 型[9] 基 于 主 动 消 息 ( Active Message) , 是一种高性能并行 通信方 式。在 每次 发 送 消息 后 , 接收方需返回一个同步的确认消息。此 确 认 消息是在主动消息层的最底层生成, 其内容是一 个 特 [8 ] 殊立即序列, 发送方可迅速确定是否需重发消息 。 在 TinyOSl. x 中, 消 息 结 构 是 TOS _Msg, 包 含消 息地址、 消息类型、 消息所属 群 号 及 消 息 处理 函 数 ID 等信息。在 TinyOS2. x 中, 消 息 结 构 是 message_t, 相 mes对 TOS_ Msg 代 表 明确 的主 动 消 息数 据 包 不 同, sage_t 兼容性 更高, 能 使 data 域置 于 固 定 偏 移 位置, 方便不同链路层间的通信。 其结构定义如下:
typedef nx_struct message_t{ nx_uint8_t header[ sizeof( message_header_t) ] ; nx_uint8_t data[ TOSH_DATA_LENGTH] ; nx_uint8_t footer[ sizeof( message_footer_t) ] ; nx_uint8_t metadata[ sizeof( message_metadata_t) ] ; } message_t;

图1

TinyOS2. x 体系结构

每个组件由一系列命令和事件组成, 这些命 令 和 事件是组件相 互联 系 的 接口。 上 层 组 件 向 下 层 组 件 发出 指 令 , 下层组件向上层组件触发事件。组件 模 型 先将多个 不 同 组 件 组 合 到 各层 配 置 文 件 ( configuration) 中, 再 在 应用 程序的 顶 层 配 置 文 件 中 实 现应用 的整体装配。通过 ncc 编译器编译成 C 语言, 再通 过 gcc 编译器 编 译 成单 片 机 对 应 的 目 标 代 码。 若 组 件 稍有改动, 需重新编译。 1. 2 TinyOS 调度机制 TinyOS 调度是任务 和 事件 的 二 级 调 度。 任 务 是 单线 程 运 行 至 完 毕 , 不可 相 互 抢 占, 但 事件 可 抢 占 正 在运行的任务 或 低 优 先 级 事件。 任 务 用于 实 时 要 求 不高的应用中, 所 有 任 务 只 分 配 单 个 任 务 栈, 默认是 CPU 进入 休眠 简单的 FIFO 调度。若 任 务 队 列 为 空, 状态以降低功耗。其中任务数默认是 8 个, 最大 任 务 数是 255 。还采 用 了 分 段 操 作 来 减少 任 务 的 运 行 时 间, 即分为程序启动硬件操作后迅速返回和硬件 完 成 操作后通知程序两个阶段。 事件用于实时性有要求的应用中, 可分为硬 件事 件和软件事件。硬 件事件 就 是由 底 层 硬 件 发 出的 中 断, 随后进入中断处理函数; 软件事件 则 是 带 有 async 关键字的命令或事件函数, 以通知相应组件作出 适 当 SchedulerBasicP 是主要的 的处理。在 TinyOS2. x 中, TinyOS 调度器, 提供 带 参 数 的 TaskBasic 接口。 TinySchedulerC 是默认的调度器配件( configuration) , 可连 接到 SchedulerBasicP。
configuration TinySchedulerC { provides interface Scheduler; provides interface TaskBasic[ uint8_t id] ; } implementation { components SchedulerBasicP as Sched; components McuSleepC as Sleep; Scheduler = Sched; TaskBasic = Sched; Sched. McuSleep-> Sleep; }

每个链 路 层 定 义 了 其 header、footer、metadata。 这些结构必须是外部结构 体 ( nx_struct ) , 其所 有 域 必 须是外部类型 ( nx_* ) 。 因为 外 部 类型 可 保 证 平 台 间兼容, 可使结构 体 以 字 节 对 齐, 从 而 避免 数 据 包 缓 冲对齐和域偏移的问题。

图2

TinyOS 通信

当数据转发到无线传感器节点时, 先存储在 缓 存 , 中 然后由主动消息分发层交给上层应用组件对 应 的 消息处理函数完成消息的解包操作、 计算处理或 发 送 相应消息等工作。 TinyOS 要 求每个 应用 程序在 消 息 被释放后, 能返回 一 块 未 用 的 消 息 缓 存, 以接收下个 未到的消息。通讯 的实 现 也 是 通 过 各层 组 件 通 讯 实 现的。其结构如图 2 所示。 1. 4 能量管理 TinyOS2. x 使 用 了 三 种 机 制 来 管 理 和 控制 能 量 状态。 首先是 MCU 能 量 控制 方 式: dirty 标 识 位、 低功 McuSleepC 耗状态 计 算 函 数 和能量状态覆盖函数 PowerOverride。dirty 标 识 位 通 知 TinyOS 需 计算 一 个

2011 年第 2 期

吴小娜等: 无线传感器网络操作系统 TinyOS 综述

105

新的低功耗模式。 只 要 硬 件 表示 层 组 件 对 硬 件 配 置 MCU 的低功耗模式 也 会 改 变, 进行了改动, 就会 调 用 McuPowerState. update( ) 。 接 着 调 用 McuSleepC 计算 出最 佳 低 功 耗 模 式, 最 后 通 过 调 用 PowerOverride. lowestState( ) 以更新 MCU 功耗模式。 第二, 每个设 备都 有个能 量 管 理 接口 即 StdControl 或 SplitControl 或 AsyncStdControl。 调 用 stop 命 令停止该设备, 进入低功耗模式。 TinyOS 的定 时器服务 可 以 工 作在 大多数 第三, [10 ] 处理器的极低功耗的省电模式下 。

太大。用户可根据自 己 实 际 需要 选 择 合 适 的 操 作 系 统。三个操作系统的比较如表 1 所示。
表1
操作系统 运行模式 抢占式内核 时间可确定性 支持动态编程 ( 最小) 内核 低功耗

三个操作系统的比较
TinyOS 事件 否 否 否 II μCOS线程 是 是 否 RAM: 300B ROM: 2kB 否 Kernel μT线程 是 是 是 ROM: 10kB RAM: 2. 8kB 是

RAM: 47B ROM: 473B 是

2

与其它操作系统的比较

3

结束语

2. 1 μTKernel TKernel11] 由 日 本 的 坂 村 健 教 授 提 出, 是 以 TEngine 系统为核 心 的 开 源 实 时 操 作 系 统。 据 估 计 其 Kernel 使 用 已经安装到全球 30 亿 件电 子 产 品 中。 T免费, 但不能改动 其 源 代 码 后 自行 发 布, 其发布权只 TEngine 。 归 论坛所有 Kernel 是简 化 的 TKernel, 其中 μT裁剪 掉 很 多 小型应用 所 不 需 要 的 功 能, 主 要 面 向 8 到 16 位 的 CPU。但与 TKernel 兼 容, OS 某 些服务 如 虚 拟 存 储、 Kerne 适 用 于 那 些 能 耗 紧 保护 机 制 等 可 通 用。 μTCPU 利用率低、 张、 应用要求相对较高的系统。 2. 2 μCOSII
[12 ] μCOSⅡ 是一个源 码公 开、 代 码 量 小、 移植性 强、 可裁剪扩充的抢占式的实时多任务操作系 统。 从 II 和最 新 发 布 的 最老版本 的 μCOS、 μC / OS、 μC / OSC / OSIII , μ 十多年的发展已经 成 功 应用 到 许 多 领 域。 II 开源操 作 系 统 用于学 校 教学 和 个 人学 习免 μCOS费, 但若是商业行为需付一定的费用。今年九月 发 布 III, II 基础上性能有很 大 提 高, 的 μC / OS在 μCOS但 并没有公 布源 代 码, 只 是提 供了 lib 文 件。 μCOSⅡ 的源代码结构清晰, 大多 为 C 语 言编 写, 只夹带了少 量汇 编 , 学习掌握时 间 短。 μCOSⅡ 适 用于 能 量 供给 充足、 实时性要求高的应用系统。

TinyOS 功 耗 低、 占 用 空 间 少, 满足 无 线 传 感 器 网 。 TinyOS 络资源极端有限的条件 但 并 不 能 满足 实 时 性要求相对高的 无 线 传 感 器 网络。 TinyOS 在 某 些 场 合因实时性比较差, 会出现任务过载、 任务阻塞、 任务 、 , 队列溢出 通信吞吐 量 下 降 等一 系 列 问题 从 而 导 致 系统 崩溃。 需 进 一 步改 进 TinyOS 实 时 性、 并 发 性及 移植性, 通过完善其整体架构, 来提高其综合性能。
参考文献: [ 1] 黄光燕. 无线传感器网络操作系统[ J] . 信息技术, 2005 , 3 ( 3 ) : 1929. [ 2] 马祖长, . 通讯 孙 怡 宁, 梅 涛. 无 线 传 感 器 网络 综 述[J] 2004 ( 4 ) : 114124. 学报, [ 3] Reddy A M V, Kumar A P, Janakiram D, et al. Operating systems for wireless sensor networks: A survey[ J] . Interna2009 , 5 ( 4 ) : 230256. tional Journal of Sensor Networks, [ 4] David Gay, Philip Levis, Robert Von Behren, et al. The NesC language: A holistic approach to networked embedded system[ C]/ / Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation. 2003 : 111. [ 5] Hill J L. System Architecture for Wireless Sensor Networks [ D] . PHD thesis, Berkeley University, 2003. [ 6] Von Eicken T, Culler D E, Goldstein S C, et al. Active messages: A mechanism for integrated communication and computation[ C]/ / Proceedings of the 19th Annual International Symposium on Computer Architecture, 1992 : 256266. [ 7] Vlado Handziski, Joseph Polastre, etc. Hardware Abstraction Architecture[EB / OL] . http: / / www. tingos. net / tingos2. x / doc / html / tep2. html, 20101019. [ 8] Levis P, Madden S, Polastre J, etc. TinyOS: An operating system for sensor networks [C]/ / Ambient Intelligence. 2004 : 115148. [ 9] 张 蚺, 等. 无 线 传 感 器 网络 操 作 系 统 TinyOS2. x 通信机 J] . 通信技术, 2008 ( 6 ) : 47. 制分析[ [ 10] Levis P, Madden S, Gay D, etc. The emergence of networking abstractions and techniques in ( 下转第 116 页)

2. 3 操作系统间的比较 首先, 三个操作系统都是开源的无线传感器 网络 的小型操作系 统。 源 代 码公 开 有 利 开发人员 了 解 系 统实 现 细 节, 可根 据实 际 需 求 作出 修 改。 其 中 TinyOS 是基于事件 驱 动机 制 就 决 定 了 其实 时 性 不高, 编 II、 程复杂, 但 其 内 核 占 用 空 间 极 小。 而 μCOSμTKernel 都是线程模式的, 编程简单, 实 时 性 高, 但 相对 [13 ] 。 带来的开销也大 TinyOS 内 核 小, 总之, 功 耗 低, 但 实 时 性 不 高; II 能 实 现 强 实 时, Kernel 可 靠 μCOS但 功 耗 大; μT[14 ] 、 、 , 性 强实时 低功耗都兼顾 但 内 核 占 用 空 间 相对

116















2011 年第 2 期

Centralized and decentralized process and sensor fault monitoring using data fusion based on adaptive extended Kalman filJ] . Measurement, 2008, 41( 10) : 10591076. ter algorithm[ [ 11] 王楠, 李文 成, 李 岩. 基于数 据 融 合 估 计 理 论的 Kalman J] . 光机电信息, 2010 , 27 ( 5 ) : 3235. 滤波[ [ 12] 王晋秀. 无损数据压缩算法在传感器网络中的应用研究 [ D] . 长沙: 中南大学, 2008. [ 13] 叶佥昱, 刘雨, 张琳. 基于无线传感器网络的分布式 信 源 J] . 计算机工程, 2009 , 35 ( 7 ) : 2325. 编码方法[ [ 14] Ganesan D, Greenstein B, Estrin D, et al. Multiresolution . ACM Transacstorage and search in sensor networks[J] 2005 , 1 ( 3 ) : 277315. tion on Storage, [ 15] Ciancio A, Pattem S, Ortega A, et al. Energyefficient data representation and routing for wireless sensor networks C]/ / based on a distributed wavelet compression algorithm[ Proceedings of the 5th International Conference on Information Processing in Sensor Networks. 2006 : 309316. [ 16] 周四望, 林亚 平, 张 建 明, 等. 传 感 器 网络中基于 环 模 型 . 软 件 学 报, 2007 , 18 ( 3 ) : 的小 波 数 据 压 缩 算 法[J] 669680. [ 17] 周四望, 林亚平, 等. 传感器网络中一种存储有效的小 波 . 计 算 机 研 究 与 发 展, 2009 , 46 渐进数 据 压 缩 算 法[J] ( 12 ) : 20852092. [ 18] 张建明, 林亚平, 等. 传感器网络中误差有界的小波 数 据 J] . 软件学报, 2010 , 21 ( 6 ) : 13641377. 压缩算法[ [ 19] 罗文华, 王继良. 基于 Haar 小波的自适应数 据 压缩 方 法 [ J] . 计算机工程, 2010 , 36 ( 12 ) : 138140. [ 20] Haupt J, Bajwa W U, Rabbat M, et al. Compressed sensing for networked data[J] . IEEE Signal Processing Magazine, 2008 , 25 ( 2 ) : 92101. [ 21] Wan Tao, Canagarajah N, Achim A. Compressive image fusion[C]/ /15 th IEEE International Conference on Image Processing. 2008 : 13081311. [ 22] Leung H, Chandana S, Wei Shuang. Distributed sensing based on intelligent sensor networks[ J] . IEEE Circuits and 2008 , 8 ( 2 ) : 3852. Systems Magazine, [ 23] 肖骁. 无线传感器网络中基于 BP 神 经 网络 的 数 据 收集 D] . 长沙: 中南大学, 2009. 协议研究[

[ 24] Harris Albert, Kravets Robin, Gupta Indranil. Building trees based on aggregation efficiency in sensor networks[J] . Ad 2007 , 5 ( 8 ) : 13171328. Hoc Networks, [ 25] Chen D, Varshney P K. QoS support in wireless sensor networks: A survey[ C]/ / Proc. of the 2004 International Con233. ference on Wireless Networks. 2004 : 227[ 26] 刘玲, 柴乔林, 耿晓义. 基于蚂蚁算法的无线传感器 网络 . 计 算 机 工 程 与 设 计, 2009 , 30 数据融 合 路 由 算 法[J] ( 3 ) : 576579. [ 27] 李志宇, 史浩山. 基于最小 Steiner 树 的 无 线 传 感 器 网络 . 西 北 工 业 大学学 报, 2009 , 27 ( 4 ) : 数据融 合 算 法[J] 558564. [ 28] 邓亚平, J] . 计算 袁凯. 减少时延 的 数 据 融 合改 进 算 法[ 2008 , 28 ( 9 ) : 21852187. 机应用, [ 29] 张磊, S 证据 理 论的 余阳, 王 霄, 等. 基于 最小 二 乘 与 DWSN 层次式数据融合算法[ J] . 测控技术, 2010 , 29 ( 5 ) : 2326 , 35. [ 30] Yang Y, Wang X, Zhu S, et al. SDAP: A secure hopbyhop . ACM data aggregation protocol for sensor networks [J] Transactions on Information and System Security, 2008 , 11 ( 4 ) : 143. [ 31] Stallings W. Cryptography and Network Security: Principles and Practice( 4th Edition) [ M] . Prentice Hall, 2006. [ 32] Wang Licheng, Wang hua, Pan Yun, et al. Discretelogbased additively homomorphic encryption and secure WSN data aggregation[ C]/ / Proceedings of the 1lth International Conference on Information and Communications Security. 2009 : 493502. [ 33] 黎为. 无线传感 器 网络数 据 融 合 安全方 案 的 研究[D] . 2009. 长沙: 湖南大学, [ 34] 付华, 赵刚. 无线 传 感 器 网络中 一种 能 量 均 衡 的分 簇 策 J] . 计算机应用研究, 2009 , 26 ( 4 ) : 14941496. 略[ [ 35] Liu AnFeng, Wu XianYou, Chen ZhiGang, et al. An energybalanced data gathering algorithm for linear wireless sensor J] . Int J Wireless Inf Networks, 2010, 17 ( 12) : networks[ 4253. [ 36] 周平, 张胜, 舒 坚. 基于 预 测 模 型 的 WSN 节 点 能 量 融 合 J] . 计算机工程, 2010 , 36 ( 1 ) : 110111 , 130. 机制[

檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴檴
( 上接第 105 页) TinyOS[ C]/ / Proceedings of the First USENIX / ACM Symposium on Networked Systems Design and Implementation. 2004 : 114. [ 11] TEngine Forum. TKernel License[ EB / OL] . http: / / www. tengine. org / TKernel / lisence_e. html, 20090324. [ 12] 邵 贝 贝, II ( 第 2 版 ) 等. 嵌 入 式 实 时 操 作 系 统 uCOS[ M] . 北京: 北京航天航空大学出版社, 2003. [ 13] Peng Li, Steve Zdancewic. A Languagebased Approach to . Technical Report, UniUnifying Events and Threads[R] versity of Pennsylvania, 2006. [ 14] Gu L, Stankovic J A. TKernel: Providing reliable os support to wireless sensor networks[ C]/ / Proc. of the 4th ACM Intl. Conf. on Embedded Networked Sensor Systems. Boulder, CO, Nov. 2006 : 113.


相关文档

TinyOS无线传感器网络操作系统分析
无线传感器网络操作系统-TinyOS
无线传感器网络操作系统TinyOS
无线传感器网络操作系统TinyOS综述
无线传感器网络节点操作系统-Tinyos综述
无线传感器网络操作系统TinyOS的研究
无线传感器网络操作系统TinyOS研究
无线通信-无线传感器网络节点操作系统—TinyOS综述
基于TinyOS的无线传感器网络操作系统的分析与研究
基于TinyOS的无线传感器网络安全体制研究
电脑版