物联网中的常用嵌入式系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TinyOS设计之初的目的是制作一个专属嵌入式无线传感 器网络的操作系统。但事实上,由于良好的可扩展性和足 够小的代码尺寸,TinyOS在物联网的应源自文库领域中也占有 非常重要的地位。
由于无线传感器网络的特殊性,研究人员在设计TinyOS系 统时就提出以下几个原则:
① 能在有限的资源上运行:要求执行模式允许在单一的协 议栈上运行;
TinyOS的并行处理能力通过任务(task)和中断处理事件(interrupt hander event)来体现。任务会加入一个FIFO队列中,在执行过程中, 任务间没有竞争;但中断处理程序可以打断任务执行。TinyOS采用二 级调度机制来满足无线传感网络运行特点,整个程序调度过程如图9-2
所示。组件中完成任务提交,由操作系统完成调度。一个节点上应用程 序的框图如图9-3所示,操作系统只是在后台提供队列服务。
章物联网中的常用嵌 入式系统
本章主要内容
9.1 TinyOS简介 9.2 安装TinyOS 9.3 nesC简介 9.4 TinyOS内部机制简介 思考与习题
9.1 TinyOS简介
9.1.1 TinyOS概述 9.1.2 TinyOS的特点 9.1.3 TinyOS开发平台 9.1.4 TinyOS开发案例 9.1.5 TinyOS的基本概念
操作系统 运行模式 抢占式内核 时间可确定性 支持动态编程 (最小)内核
低功耗
TinyOS 事件 否 否 否
RAM:47B,ROM:473B 是
uCOS-II 线程 是 是 否
RAM:300B,ROM:2kB 否
表9-2 Tiny-OS与uCOS-II的比较
9.1.2 TinyOS的特点
TinyOS作为一个专业性非常强的操作系统,主要存在如下几个特点: ① 拥有专属的编程语言 TinyOS应用程序都是用nesC编写,其中nesC是标准C的扩展,在语法 上和标准C没有区别,它的应用背景是传感器网络这样的嵌入式系统, 这类系统的特点是内存有限,且存在任务和中断两类操作,它的编译器 一般都是放在TinyOS的源码工具路径下。 ② 开放源代码 所有源码都免费公开,可以访问官方网站去下载相应的源代码,由全 世界的TinyOS的爱好者共同维护,目前最新的版本是2.1.1。 ③ .组件化编程 TinyOS提供一系列可重用的组件,一个应用程序可以通过连接配置文 件将各种组件连接起来,以完成它所需要的功能。
事件:一般用在对于时间的要求很严格的应用中,而且它可以占 先优于任务和其他事件执行,它可以被一个操作的完成或是来自外 部环境的事件触发,在TinyOS中一般由硬件中断处理来驱动事件。
图9-2 TinyOS程序调度
图9-3 一个节点上应用程序的框图
与uCOS-II相比,Tiny-OS基于事件驱动的机制就决定了其实 时性不高,编程复杂,但其内核占用空间极小,而uCOS-II是 基于线程模式的,编程简单,实时性高,但相对带来的开销也 大。表9-2比较了Tiny-OS与uCOS-II。
② 综合硬件组件模拟高级的硬件行为,如感知组件、通信组
主组件件(等包括;调度器)
③ 高层次的软件组件实现控应制用、组件路由以及数据传输等应用层
的功能。
感知组件
执行组件
通信组件
硬件抽象组件
图9-1 TinyOS的组件结构
回本章目录
每个TinyOS程序应当具有至少一个应用组件,即用户组 件。该应用组件通过接口调用下层组件提供的服务,实现 针对特定应用的具体逻辑功能,如数据采集、数据处理、 数据收发等。一个完整的应用系统由一个内核调度器(简 称调度器)和许多功能独立且相互联系的组件构成,可以 把TinyOS系统和在其上运行的应用程序看成是一个大的 “执行程序”。现有的TinyOS系统提供了大多数传感网 硬件平台和应用领域里都可用到的组件,例如定时器组件 、传感器组件、消息收发组件、电源管理组件等,从而把 用户和底层硬件隔离开来。在此基础上,用户只需开发针 对特殊硬件和特殊应用需求的少量组件,大大提高了应用 的开发效率。
TinyOS操作系统采用的轻量级线程技术、两层调度 方式、事件驱动模式、主动消息通信技术及组件化编 程等有效地提高了传感器节点cpu的使用率,有助于省 电操作并简化了应用的开发。
TinyOS系统、库和基于TinyOS的应用基本上都是用 nesC语言开发的,在TinyOS中采用nesC语言进行应用 程序开发。在TinyOS中,应用程序开发人员可以通过 nesC语言表达组件以及组件之间的事件/命令接口。组 件分为配置文件和模块,程序的流程是通过配置文件 中接口的连接实现而构建起来的,而具体实现的逻辑 功能是通过模块完成的。每个模块由一组命令和事件 组成,这些命令和事件成为该模块的接口。一般来说 ,上层组件对下层组件发命令,下层组件发信号通知 事件的发生,最底层的组件直接和硬件交互,从而自 上到下形成一种树状结构。
回本章目录
④ 通过任务和事件来管理并发进程
TinyOS的应用程序都是基于事件驱动模式的,采用事件触发去唤 醒传感器工作。事件相当于不同组件之间传递状态信息的信号。当 事件对应的硬件中断发生时,系统能够快速地调用相关的事件处理 程序。
任务:一般用在对于时间要求不是很高的应用中,且任务之间是 平等的,即在执行时是按顺序先后来得,而不能互相占先执行,一 般为了减少任务的运行时间,要求每一个任务都很短小,能够使系 统的负担较轻;支持网络协议的替换。
回本章目录
9.1.1 TinyOS概述
TinyOS操作系统采用了组件的结构。系统本身提供了一系列
的组件供用户调用,其中包括主组件、应用组件、执行组件
、传感组件、通信组件和硬件抽象组件,如下图9-1所示。组
件由下到上可分为3类:硬件抽象组件、综合硬件组件和高层
软件组件。
① 硬件抽象组件将物理硬件映射到TinyOS的组件模型;
② 允许高度的并发性:要求执行模式能对事件作出快速的 直接响应;
③ 适应硬件升级:要求组件和执行模式能够应对硬件/软 件的替换;
④ 支持多样化的应用程序:要求能够根据实际需要,裁减 操作系统的服务;
⑤ 鲁棒性强:要求通过组件间有限的交互渠道,就能应对 各种复杂情况;
⑥ 支持一系列平台:要求操作系统的服务具有可移植性。
相关文档
最新文档