第6章 TinyOS网络协议 6.1 概述 路由协议一直是无线传感器网络研究的一个重要方向,在TinyOS 2.x中有两种基本的多跳路由协议:分发路由协议(Dissemination Protocol)和汇聚型路由协议(Collection Protocol)。分发协议能够可靠地传送小数据项到网络中的每一个节点;汇聚型路由协议可以把网络中每个节点的小数据项传递到指定的根节点。本章主要介绍这两种协议以及实现过程。 6.2 分发路由协议 分发协议主要用于实现共享变量的网络一致性。网络中的每个节点都保存有该共享变量的一个副本。分发服务会通知节点该变量值更改的时间,同时交换数据包以达到整个网络的一致性。在任意给定时刻,可能会有两个节点的变量值不相同。但过一段时间后,不一致的节点数会越来越少,最终整个网络都将同一于一个相同的变量值。分发协议具有以下几个特点:分发协议能够达到网络的高度一致性,能有效避免临时性通信链路失效以及高丢包率等网络传输问题。 分发协议要求在有链路连接的情况下确保能够达到某个变量值一致。 对于不同大小的数据项,分发协议的设计会有很大的不同。 以下内容将讲解分发协议的一系列接口和组件,以及具体的实现过程。 6.2.1 相关接口和组件 在TinyOS 2.x中为分发协议提供了实现,下面讲解涉及到的重要接口和组件。 1. 分发协议的接口 在分发协议中分发服务提供了两个主要的接口:DisseminationValue接口和DisseminationUpdate接口。它们都位于“tinyos-2.x/tos/lib/net/”目录下。 (1) ?DisseminationValue接口。 DisseminationValue接口适用于接收从网络中分发过来的数据,在此接口中包含两个命令函数和一个事件函数,其具体代码如代码6-1所示。 【代码6-1】 DisseminationValue.nc interface DisseminationValuet { command const t* get(); command void set( const t* ); event void changed(); } 其中,各个函数的功能如下所述: DisseminationValue.get()命令获取const类型的指针指向数据区域。 DisseminationValue.set()命令允许节点改变其当前的变量值,并帮助节点给变量分配一个初始值。 DisseminationValue.changed()触发节点改变变量值的事件。 (2) ?DisseminationUpdate接口。 DisseminationUpdate接口用于产生分发的数据,此接口只包含一个命令函数,该命令有一个指针类型的参数,提供DisseminationUpdate接口的组件必须将数据赋值到自己分配的内存中,DisseminationValue接口必须触发change()事件,以此作为对change()调用的响应。其接口定义如代码6-2所示。 【代码6-2】 DisseminationUpdate.nc interface DisseminationUpdatet { command void change(t* ONE newVal); } 2. 分发协议的组件 在分发协议中有较多的组件,本文将讲解比较重要的组件为DisseminatorC组件,该组件提供了DisseminationValue接口和DisseminationUpdate接口。该组件位于“tinyos-2.x /tos/lib/net/drip”,其具体代码如代码6-3所示。 【代码6-3】 DisseminatorC.nc generic configuration DisseminatorC(typedef t, dip_key_t key) { provides interface DisseminationValuet; provides interface DisseminationUpdatet; } 在DisseminatorC组件中提供了两个参数:参数t和参数key。 参数t:数据包结构类型,其大小必须能够包含单个message_t包。 参数key:即键值key,允许创建不同的DisseminatorC实例组件,类似于AM标识号可以虚拟化AM服务。该键值一般由unique()函数产生。 6.2.2 分发协议的实现 以下内容将实现任务描述6.D.1,使用分发协议进
您可能关注的文档
- Photoshop CS 5基础与实例教程第4章应用图层编辑图像的基础.ppt
- Photoshop CS 5基础与实例教程第5章图像绘制工具.ppt
- Photoshop CS 5基础与实例教程第6章修饰与仿制工具运用.ppt
- Photoshop CS 5基础与实例教程第7章路径与形状运用.ppt
- Photoshop CS 5基础与实例教程第8章文字处理.ppt
- Photoshop CS 5基础与实例教程第9章图像的色彩和色调运用.ppt
- Photoshop CS 5基础与实例教程第10章蒙版.ppt
- Photoshop CS 5基础与实例教程第11章通道.ppt
- Photoshop CS 5基础与实例教程第12章滤镜的应用.ppt
- Photoshop CS 5基础与实例教程第13章Photoshop高级应用.ppt
- TinyOS操作系统开发技术及实践课件实践1TinyOS概述.ppt
- TinyOS操作系统开发技术及实践课件实践2nesC语言基础.ppt
- TinyOS操作系统开发技术及实践课件实践3平台移植.ppt
- TinyOS操作系统开发技术及实践课件实践4TinyOS应用开发.ppt
- TinyOS操作系统开发技术及实践课件实践5TinyOS网络协议.ppt
- 大学计算机应用基础(第二版)第1章计算机概述.ppt
- 大学计算机应用基础(第二版)第2章计算机系统组成.ppt
- 大学计算机应用基础(第二版)第3章WindowsXP的功能与使用.ppt
- 大学计算机应用基础(第二版)第4章字处理系统软件Word2007.ppt
- 大学计算机应用基础(第二版)第5章表处理系统软件Excel2007.ppt
最近下载
- 11.采购管理作业程序.doc VIP
- sirius双手控制单元3tk2834 din en版数据库50ds03.pdf VIP
- 2025年嘉义县xx中医医院“十五五”发展规划.docx VIP
- 商业物业应聘登记表.doc
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 提高厨卫间反坎一次性浇筑合格率(获上海QC二等奖).doc VIP
- 主数据管理平台产品介绍.pdf VIP
- 大型项目穿插施工详细专项方案.docx VIP
- (最新!)新版《检验检测机构资质认定评审准则》(2023版)内部审核检查表示例.docx VIP
- 2026年中国工程咨询行业分析与发展前景研究报告.docx VIP
原创力文档

文档评论(0)