关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > TinyOS无线传感器网络操作系统分析

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

作者: 时间:2010-10-12 来源:网络 收藏


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



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的调度机制也可能引起一些重要的任务得不到实时响应的问题。对于这些问题的解决,将在以后的文章中进行讨论。

本文引用地址:https://www.eepw.com.cn/article/162785.htm
风速传感器相关文章:风速传感器原理

上一页 1 2 3 下一页

关键词: 音频

评论


相关推荐

技术专区

关闭