0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TinyOS操作系统的工作原理、应用技术及应用分析

电子设计 来源:电子元器件应用 作者:邱璐璐 2021-06-29 15:05 次阅读

无线传感器网络(WSN)是由部署在监测区域内的大量廉价微型传感器节点,通过无线通信方式组成一个多跳的自组织的网络系统,其目的是协同感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观测者。无线无线传感器网络技术研究涉及到多个热点学科的前沿领域,比如传感器技术、现代网络技术、嵌入式计算机技术、无线通信技术等。由于无线传感器网络在工业监测、环境检测、医疗监护、军事侦察等众多的领域都有着广阔的应用前景,因而引起了世界各国工业界,学术界和军事部门的重视,并且迅速成为当今世界研究的热点之一。

1 无线传感器网络的主要特点

传感器网络节点硬件一般都由数据采集、数据处理、数据收发和电源等四个单元组成。数据采集单元通过传感器采集外界数据并将其转化为数字信号;数据处理单元是节点的核心模块,负责协调节点各部分的工作,如对数据采集单元采集的数据进行必要的处理和保存,以及数据收发单元工作模式的设置等;数据收发单元负责数据的无线传输以及与数据处理单元的数据交互。上述四大基本模块与相应的操作系统、协议栈和应用程序共同构成一个基本的无线传感器网络节点,众多的网络节点分布在一起,就可以完成无线传感器网络的基本功能。

在软件设计方面,本系统以专用嵌入式实时操作系统为依托,来管理、协调传感器节点各硬件部分的工作。上层应用以及各层的通信协议都以节能为中心,必要时可以牺牲其他的一些网络性能指标来获得更高的电源效率。图1所示是一个传感器网络节点的基本组成。

pYYBAGDaxsyAT2m_AABPl84ZJPc798.png

传统的无线网络设计基本上都是为了同时满足人们各种各样的需要,如语音、视频、图像等。而无线传感器网络一般是为了某个特定的需要而设计的,它是一种基于应用的无线网络,与移动通信网、无线局域网、Bluetooth相比,无线传感器网络具有以下主要特点:

(1)电源能量有限:无线网络中,每个节点的电源都是有限的,网络大多工作在无人区或者对人体有伤害的恶劣环境中,一般更换电源几乎都是很困难的事。

(2)计算能力有限:传感器网络节点都采用具有嵌入式特性的处理器,但嵌入式处理器的处理能力,使传感器节点的计算能力比较有限。

(3)无线传感器网络节点数量大,分布范围广,网络中的传感器节点十分密集,数量巨大,有时可能达到几百,几千,甚至更多。

(4)动态性拓扑:传感器网络的拓扑结构可能因为环境或节点电能耗尽等因素而改变,这就要求传感器网络系统能够适应这种变化。

2 TinyOS操作系统

由于无线传感器网络节点的资源十分有限,传统的嵌入式操作系统难以正常有效地运行和工作,特别对能量和内存的需求矛盾比较突出。因此,需要一种全新的嵌入式操作系统来满足无线传感器节点的基本需求。TinyOS操作系统就是美国加州大学伯克利分校的研究人员针对无线传感器网络设计的开源嵌入式操作系统。TinyOS操作系统主要使用了轻量级线程、主动消息通信、事件驱动模式、组件化编程等技术。

TinyOS操作系统最初使用汇编C语言。但经研究人员进一步的研究及使用后发现,C语言并不能有效和方便地支持无线传感器网络应用程序的开发。因而在经过仔细研究和设计,并在对C语言进行了一定扩展的基础上,提出了支持组件化编程的nesC语言,该语言可以把组件化、模块化思想和基于事件驱动的执行模型结合起来。由于TinyOS操作系统和基于TinyOS操作系统的应用程序全部使用nesC语言编写,因此,在介绍TinyOS操作系统之前,首先介绍一下nesC语言。

3 nesC语言

TinyOS和在其上运行的应用程序可以看成是一个大的“执行程序”,它由许多功能独立且相互有联系的软件组件构成,图2所示是nesC语言的一般程序框架。该系统中的一个组件一般会提供一些接口(假定组件名为ComA),接口可以被认为是这个软件组件实现的一组函数的声明,是单独定义的一组命令和事件,其他组件通过引用相同接口声明来使用这个组件(ComA)的函数,从而实现组件间功能的相互调用,即组件的接口是实现组件间互连的通道。但若组件中实现的函数并未被它在接口中说明,就不能被其他组件所使用。nesC语言的定义中存在两种不同功能的组件:其中组件接口中的函数功能专门在模块的组件文件中实现,而不同组件之间的关系则是专门通过称为配件的组件文件来描述的。

poYBAGDaxsSAK0slAACRrM7KaG8835.png

本系统中的接口一般指一系列声明的有名函数的集合,同时,接口也是连接不同组件的纽带。组件的接口通常是双向的,这种接口实际上是提供者组件和使用者组件之间的一个多功能交互通道。接口的提供者所实现的接口的一组功能函数称为命令;接口的使用者需要实现的一组功能函数称为事件。

组件是nesC程序的基本单元,组件可分为模块与配件两种。

其中模块是组件的逻辑功能实体,主要包括命令、事件、任务的具体实现。在TinyOS中,命令都是非阻塞的,它们完成后会通知相关的事件调用。一般情况下,命令调用都是向下的,即应用组件调用那些与硬件紧密结合的组件,事件调用则正好相反。一些特殊的基本事件的调用必须绑定在硬件中断上。nesC语言中还有一类特殊的函数称为任务。在TinyOS系统中,任务是一个可以被调度的实体,类似于传统操作系统中的进程或线程概念。

配件通常可通过一系列其他组件来实现一个组件规范,它主要实现组件间的相互访问方式。配件包括组件列表和连接说明,组件列表定义了实现配件的组件,连接通常可将定义的元素(接口、命令、事件等)联系在一起,以完成组件之间功能的调用。

4 TinyOS系统的工作原理

为了适应无线传感器网络的特点,TinyOS操作系统使用了四个主要技术,组件化编程、轻量级线程、主动消息通信和事件驱动模型。

4.1 组件模型

TinyOS操作系统中的组件有四个相互关联的部分:一组命令处理程序句柄、一组事件处理程序句柄、一个经过封装的私有数据帧和一组简单的任务。任务、命令和事件处理程序在私有数据帧的上下文中执行并切换帧的状态。

TinyOS操作系统中的组件通常分为硬件抽象组件、合成组件、高层次的软件组件三类。其中硬件抽象组件用于将物理硬件映射成为TinyOS操作系统中的组件,无线发送模块是这种组件的代表,它可提供命令以操纵与射频收发器相连的各个单独的I/O引脚,并且发信号给事件以将数据位的发送和接收通知其他组件,图3所示是天线传感器应用程序的组件结构:合成组件可以模拟高级硬件的行为,这种组件的一个例子是图3中的Radio Byte组件,它以字节为单位与上层组件交互,并以位为单位与下层无线发送模块组件交互,最后将无线接口映射到UART设备接口上;高层次的软件组件可完成控制、路由以及数据传输等功能,图3中的主动消息处理模块是这种组件的代表,它可履行在传输前填充包缓存区以及将收到的消息分发给相应的任务的功能。

pYYBAGDaxrqAeRQDAABkoQ3ZhGI564.png

4.2 轻量级线程

在TinyOS操作系统中,一般的轻量级线程task(即TinyOS操作系统中的任务)可按照FIFO方式进行调度,轻量级线程之间不允许抢占。任务一旦执行,就必须执行完毕,不能被其他任务中断。而硬件处理线程(即中断处理线程)则可以打断用户的轻量级线程和低优先级的中断处理线程,故可对硬件中断快速响应。

4.3 主动消息通信

主动消息通信是一个面向消息通信的高性能通信模型。在无线传感器网络中采用主动消息机制的主要目的是使无线传感器节点的计算能力和通信重叠。为使主动消息更适用于无线传感器网络的需求,主动消息提供了三个最基本的通信机制,其一是带确认的消息传递,其二是有明确的消息地址,其三是消息分发。在TinyOS操作系统中,主动消息通信被视为一个系统组件,它屏蔽了下层各种不同的通信硬件,从而为上层提供了一致的通信原语,可方便开发人员实现各种功能的高层通信组件。

在TinyOS的主动通信中,当数据到达传感器节点时,首先进行缓存,然后由主动消息把缓存中的数据分发到上层应用。TinyOS操作系统不支持动态内存分配,所以要求每个应用程序在其所需的消息被释放后,要能够返回一块未使用的消息缓存,以用于接收下一个将要来到的消息。因为在TinyOS操作系统中,各个应用程序之间的执行是不能抢占的,所以不会出现多个未使用的消息缓存发生冲突,因此,TinyOS操作系统的主动消息通信组件只需要维持一个额外的消息缓存以用于接收下一个消息。如果一个应用程序需要同时存储多个消息,则需要在其私有数据帧上静态分配额外的空间以保存消息。

一般情况下,由于TinyOS操作系统中只提供best-effort消息传递机制.所以需要接收方提供确认反馈信息给发送方,以确定发送是否成功。确认消息可由主动消息通信组件生成,这样比在应用层生成确认消息包更能节省开销,而且反馈时间短。

4.4 事件驱动模型

TinyOS操作系统是事件驱动的操作系统,故当一个任务完成后,就可以使其触发一个事件,然后由TinyOS操作系统自动调用相应的处理函数。事件驱动分为硬件事件驱动和软件事件驱动。硬件事件驱动也就是一个硬件发出中断,然后进入中断处理函数;而软件驱动则是通过signal关键字来触发一个事件。

5 总结

尽管TinyOS已被广泛使用,而且也得到了相当的认可,但这并不意味着TinyOS能够适用于WSN的所有应用场景。事实上,在某些场合下,TinyOS并不能很好的工作,它也存在不足的地方,比如可能出现过载、导致任务丢失、通信吞吐量下降等。无线传感器网络节点的三个典型任务一般是传感器采集、本地数据发送和作为中继节点转发数据包。当本地任务发生频率过高时,任务队列很快就满了,这时发送或接收任务就可能丢失,从而导致数据包丢失;另外,如果本地任务运行时间过长,则发送或接收数据包的任务也要等待较长时间才能得到处理,这样,会降低通信速率。因此TinyOS的调度策略可能导致问题的出现。而FIFO的调度机制也可能引起一些重要的任务得不到实时响应的问题。对于这些问题的解决,将在以后的文章中进行讨论。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2524

    文章

    48038

    浏览量

    739915
  • 无线
    +关注

    关注

    31

    文章

    5301

    浏览量

    171449
  • 操作系统
    +关注

    关注

    37

    文章

    6274

    浏览量

    121861
收藏 人收藏

    评论

    相关推荐

    zigbee无线传感器网络节点/Tinyos-CC2420无线开发平台/无线模块

    低功耗zigbee无线传感模块,内部集成Tinyos操作系统,功能更强大,该模块可以做为Tinyos操作系统开发平台模块使用,系统提供全套
    发表于 03-22 14:04

    非常明了的解释 “实时操作系统” 的原理

    一篇非常简短的文章,清晰明了的解释了“实时操作系统”的工作原理。对学习操作系统很有帮助。
    发表于 07-03 16:30

    基于TinyOS操作系统的I/O控制

    测试平台的选择  1.1 TinyOS操作系统  TinyOS是美国加州大学伯克利分校专门针对无线传感器网络设计的开源操作系统,它是一个事件驱动的.基于组件的无线传感器网络
    发表于 11-13 16:27

    基于TinyOS操作系统实现无线传感器节点Mica的设计

    发生的操作;另一个是无线传感器节点模块化程序高,要求操作系统为应用程序对硬件控制提供方便操作。2.2 TInyOS操作系统
    发表于 05-14 07:00

    物联网应用技术是学什么的?

    WSN、RFID系统、局域网、安防监控系统等工程设计、施工、安装、调试、维护等工作,这就是物联网应用技术。物联网应用技术学什么?物联网
    发表于 09-22 14:17

    Linux-QT4.7操作系统技术规格参数

    全封闭防尘_嵌入式工控主机_Linux-QT4.7操作系统技术规格参数:设备型号:eTOP-A7-MANNV10CPU:Cortex-A7内存:512MDDR存储:8G EMMC电源接口:12V
    发表于 12-16 06:12

    嵌入式系统与桌面操作系统的区别是什么

    嵌入式系统与桌面操作系统的区别嵌入式系统开发式一项综合的计算机应用技术系统结构:状态控制器,中断控制器汇编语言:操控外围设备,端口
    发表于 12-22 06:03

    硬件固件操作系统EIST有何作用

    目录文章目录目录EIST(智能降频技术)硬件固件操作系统EIST(智能降频技术)EIST 能够根据不同的 OS(操作系统工作量自动调节 C
    发表于 12-27 06:33

    TinyOs 2.x的电源管理策略及程序移植

    TinyOs 2.x的电源管理策略及程序移植 摘要:本文针对WSN的操作系统TinyOs,从结构、电源管理以及系统构成方面对2.x下的实现进行分析
    发表于 05-23 15:36 22次下载

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

    无线传感器网络节点操作系统TinyOS 综述摘要:无线传感器网络作为计算、通信和传感器三项技术结合的产物,是一种全新的信息获取和处理技术,而网络节点上
    发表于 05-28 14:04 19次下载

    操作系统工作原理

    操作系统工作原理 引言 如果您拥有一台计算机,那么您对操作系统一定不陌生。人们购买的任何台式或便携式PC通常都预先安装了Windows XP;Macintosh计算机预先安装的
    发表于 07-31 15:55 2323次阅读

    游戏设备的适用操作系统/应用技术

    游戏设备的适用操作系统/应用技术 适用操作系统              适用操作系统
    发表于 12-28 13:54 799次阅读

    嵌入式操作系统内存管理技术分析与比较

    嵌入式操作系统内存管理技术分析与比较  1 概 述   内存管理是操作系统的中心任务之一。内存管理模块通常是操作系统内核的一部分,
    发表于 01-14 11:30 683次阅读
    嵌入式<b class='flag-5'>操作系统</b>内存管理<b class='flag-5'>技术</b>的<b class='flag-5'>分析</b>与比较

    传感器网络操作系统平台之nesC语言及TinyOS操作系统详述

    网络节点是构成无线传感器网络的基本单位,无线传感器网络节点有两种常用体系结构:Atmel AVR处理器+TinyOS[1]和MSP430+TinyOS[2]。本文
    发表于 10-26 15:44 4次下载
    传感器网络<b class='flag-5'>操作系统</b>平台之nesC语言及<b class='flag-5'>TinyOS</b><b class='flag-5'>操作系统</b>详述

    基于QNX实时操作系统及应用分析

    基于QNX实时操作系统及应用分析
    发表于 10-30 14:53 12次下载
    基于QNX实时<b class='flag-5'>操作系统</b>及应用<b class='flag-5'>分析</b>