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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 组件由下到上可分为3类:硬件抽象组件、综合硬件组件 和高层软件组件。
– 硬件抽象组件将物理硬件映射到TinyOS的组件模型; – 综合硬件组件模拟高级的硬件行为,如感知组件、通信组件等; – 高层次的软件组件实现控制、路由以及数据传输等应用层的功能。
23
TinyOS的应用程序
• 每个TinyOS程序应当具有至少一个应用组件,即 用户组件。该应用组件通过接口调用下层组件提 供的服务,实现针对特定应用的具体逻辑功能, 如数据采集、数据处理、数据收发等。 • 一个完整的应用系统由一个内核调度器(简称调 度器)和许多功能独立且相互联系的组件构成, 可以把TinyOS系统和在其上运行的应用程序看成 是一个大的“执行程序”。 • 现有的TinyOS系统提供了大多数传感网硬件平台 和应用领域里都可用到的组件,例如定时器组件、 传感器组件、消息收发组件、电源管理组件等, 从而把用户和底层硬件隔离开来。在此基础上, 用户只需开发针对特殊硬件和特殊应用需求的少 量组件,大大提高了应用的开发效率。
21
内容提要
1. 2. 3. 4. 5. WSN操作系统 TinyOS简介 主要技术 编程规范 体系结构
22
TinyOS的体系结构
• TinyOS操作系统采用了组件的结构。系统本身提供了一 系列的组件供用户调用,其中包括主组件、应用组件、 执行组件、传感组件、通信组件和硬件抽象组件,如下 图所示:
Fra Baidu bibliotek
事件驱动模式(Event-Driven)
TinyOS的应用程序都是基于事件驱动模式的,采用事件触 发去唤醒传感器工作。事件相当于不同组件之间传递状态 信息的信号。当事件对应的硬件中断发生时,系统能够快 速地调用相关的事件处理程序。
12
TinyOS的技术特点-2
轻量级线程(lightweight thread)
4
WSN操作系统的设计目标
• WSN是应用相关的网络 是应用相关的网络,其硬件节点功能、结构、 是应用相关的网络 组织方式会随应用而不同。由此要求WSN操作系 统能够良好的模块化设计,使应用/协议/服务与硬 件资源之间可以随意搭配。 • WSN节点资源非常有限 节点资源非常有限(通信带宽资源/能量资源 节点资源非常有限 /计算资源),操作系统必须能够高效地使用各种 资源。 • WSN是一个网络系统 是一个网络系统,其操作系统也必然是面向 是一个网络系统 网络化开发的。网络化系统要求操作系统必须为 应用提供高效的组网和通信机制。
17
组件
• 一个nesc编写的程序由一个或多个组件构成或连 接而成。 • 一个组件由两部分组成:一个是规范说明,包含 要用接口的名字;另一部分是它们的具体实现。 • 组件分两种: Module组件(模块):实现某种逻辑功能; Configuration组件(配件):将各个组件连接 起来成为一个整体。 • 组件特征:组件内变量、函数可以自由访问,但组件之
interface:接口关键字 command : 命 令关键字
command error_t send(message_t* msg, uint8_t len); command error_t cancel(message_t* msg); event void sendDone(message_t* msg, error_t error); command uint8_t maxPayloadLength(); command void* getPayload(message_t* msg); }
3
无线传感器网络的特点
• 传感器网络具有◇应用多样性、◇硬件功能有限、 ◇资源受限、◇节点微型化、◇分布式任务协作 的特点。 • 单个传感器节点有两个很突出的特点: – 并发性密集,即可能存在多个需要同时执行的 逻辑控制; – 传感器节点模块化程度很高,要求系统能够让 应用程序方便的对硬件进行控制。 • 因此,必须针对这些特点来设计WSN操作系统。
– 命令(command):接口的提供者必须实现它们; – 事件(event):接口的使用者必须实现它们 。
19
组件,接口,命令和事件
• 接口的特点:
Provides未必一定有组件使用,但uses一定要有人提供,否则编 译会提示出错。在动态组件配置语言中uses也可以动态配置。 接口可以连接多个同样的接口,叫做多扇入/扇出。 一个module可以同时提供一组相同的接口,又称参数化接口,表 明该Module可提供多份同类资源,能够同时给多个组件分享。 interface Send {
U1:接口标识符,模 块 M1 必 须 实 现 它 所 使用的接口中事件 (event)。
组件(模块或配件) 的规范(specification) 作用域。组件根据功 能需要可以声明所使 用和提供的接口,也 可以不提供(或)使 用任何接口。
组件的实现(implementation)作用域,对于模 块来说该部分是程序功能的代码实现部分,它 实现了所提供的接口中的命令和使用的接口中 的事件;对于配件来说该部分用于将接口的使 用组件和提供组件之间连接起来组成一个程序。
13
TinyOS的技术特点-3 分阶段作业(Split-Phase Operations)
TinyOS没有提供任何阻塞操作,为了让一个耗时较长的操 作尽快完成,一般来说都是将对这个操作的请求和这个操 作的完成分开来实现,以便获得较高的执行效率。
主动消息通信(Active Message)
每一个消息都维护一个应用层的处理程序。当节点收到消 息后,就会把消息中的数据作为参数,传递给应用层的处 理程序,由其完成消息数据的解析、计算处理或发送响应 消息等工作。
8
TinyOS简介
TinyOS的程序采用的是模块化设计,其程 序核心往往都很小(一般来说核心代码和 数据大概在400 Bytes左右),能够突破传 感器存储资源少的限制,让TinyOS很有效 地运行在无线传感器网络节点上并去执行 相应的管理工作等。
9
TinyOS的设计理念
• 由于WSN的特殊性,研究人员在设计TinyOS系统 时就提出以下几个原则:
14
与其他WSN操作系统的比较
• 下面从设计操作系统必须考虑的几个方面列举了 TinyOS、MOS和SOS这三个系统的区别:
系统特征 事件驱动 线程驱动 处理器能量管理 外设能量管理 优先级调度 实时服务 动态重编程服务 外设管理 模拟服务 内存管理 系统执行模型 √ √ √ 静态 组件 √ √ 静态 线程 √ 动态 模块
《无线传感器网络操作系统TinyOS》讲义
TinyOS操作系统概述
2010年4月10日
浙江工业大学浙江省嵌入式系统联合 重点实验室
1
内容提要
1. 2. 3. 4. 5. WSN操作系统 TinyOS简介 主要技术 编程规范 体系结构
2
无线传感器网络及其操作系统
• 无线传感器网络(Wireless Sensor Network,WSN)是由部署 在监测区域内大量的廉价微型传感器节点组成,通过无线 通信方式形成的一个多跳的自组织网络系统,其目的是协 作地感知、采集和处理网络覆盖区域中感知对象的信息, 并发送给观察者。 • 有人认为没有必要设计一个专门的操作系统,可以直接在 硬件上设计应用程序,但在实际过程中会碰到许多问题: – 面向传感器网络的应用开发难度会加大,应用开发人员 不得不直接面对硬件进行编程,无法得到像操作系统那 样提供的丰富的服务。 – 软件的重用性差,程序员无法继承已有的软件成果,降 低了开发效率。
event : 事 件关键字
20
组件模型
component代表 module 或configuration 组件标识符(identifier) Component M1{ provides { interface P1; interface P2; …… } uses { interface U1; interface U2; …… } } implementation { ……//实现部分 } P1:接口标识符(名 字 ) , 模 块 M1 必 须 实现它所提供接口的 命令(command)。
5
现有的WSN操作系统
• 当前已有多个有代表性的开源的无线 传感器网络操作系统:
Tiny OS 2.1:美国加州大学伯克利分校开发 Mantis OS 0.9.5 (Multimodal Networks of Insitu Sensors) :美国克罗拉多大学开发 SOS 1.7:美国加州大学洛杉矶分校开发
6
内容提要
1. 2. 3. 4. 5. WSN操作系统 TinyOS简介 主要技术 编程规范 体系结构
7
TinyOS简介
TinyOS是一个开源的嵌入式操作系统,它是由加州大学的 伯利克分校开发出来的,主要应用于无线传感器网络方面。 它是基于一种组件(Component-Based)的架构方式,使 得能够快速实现各种应用。 因为与同样是他们设计的硬件平台珠联璧合而声名鹊起, 目前已经成为无线传感器网络领域事实上的标准平台。 支持的平台:eyesIFXv2、intelmote2、mica2、 mica2dot、 micaZ、telosb、tinynode。
内容提要
1. 2. 3. 4. 5. WSN操作系统 TinyOS简介 主要技术 编程规范 体系结构
11
TinyOS的技术特点-1
组件化编程(Componented-Based)
TinyOS提供一系列可重用的组件,一个应用程序可以通过 连接配置文件(A Wiring Specification)将各种组件连接 起来,以完成它所需要的功能。
轻量级线程,即任务。任务之间是平等的,不能相互抢占, 按先入先出队列(First Input First Output,FIFO)进行调度。 轻线程是针对节点并发操作可能比较频繁,且线程比较短 的问题提出的。
两级调度方式(Tasks And Events Concurrency Model)
任务一般用在对于时间要求不是很高的应用中,通常要求 每一个任务都很短小,能够使系统的负担较轻;事件一般 用在对于时间的要求很严格的应用中,且它可以占先优于 任务和其他事件执行,在TinyOS中一般由硬件中断处理来 驱动事件。
间不能访问和调用。
18
组件,接口,命令和事件
• 一个组件可以提供接口(provides),也可以使用 接口(uses)。提供的接口描述了该组件提供给 上一层调用者的功能,而使用的接口则表示该组 件本身工作时需要的功能。 • 接口是一组相关函数的集合,它是双向的并且是 组件间的唯一访问点。接口声明了两种函数:
– 1)能在有限的资源上运行:要求执行模式允许在单一 的协议栈上运行; – 2)允许高度的并发性:要求执行模式能对事件作出快 速的直接响应; – 3)适应硬件升级:要求组件和执行模式能够应对硬件/ 软件的替换; – 4)支持多样化的应用程序:要求能够根据实际需要, 裁减操作系统的服务; – 5)鲁棒性强:要求通过组件间有限的交互渠道,就能 应对各种复杂情况; – 6)支持一系列平台:要求操作系统的服务具有可移植 性。 10
15
TinyOS √
MOS √
SOS √
√ √
√ √ √ √
√ √ √
内容提要
1. 2. 3. 4. 5. WSN操作系统 TinyOS简介 主要技术 编程规范 体系结构
16
TinyOS的编程语言
• TinyOS最初是用汇编和C语言编写的,后来改用 支持组件化编程的nesC语言。该语言把组件化/模 块化思想和基于事件驱动的执行模型结合起来。 • nesC:使用C作为其基础语言,支持所有的C语言 词法和语法,其独有的特色如下: 增加了组件 组件(component)和接口 接口(interface) 组件 接口 的关键字定义; 定义了接口及如何使用接口表达组件之间关系 的方法; 目前只支持组件的静态连接,不能实现动态连 接和配置。
24
zjutwsn@126.com/123456zj 浙江工业大学浙江省嵌入式系统联合 重点实验室
25
相关文档
最新文档