您的位置 首页 编程

根据TinyOS操作系统完成无线传感器节点Mica的规划

基于TinyOS操作系统实现无线传感器节点Mica的设计-节点是无线传感器网络中部署到研究区域中用于收集和转发信息、协作完成指定任务的对象。每个节点上运行的程序可以是完全相同的,唯一不同的是其ID。

1、 节点组成

节点是无线传感器网络中布置到研讨区域中用于搜集和转发信息、协作完结指定使命的方针。每个节点上运转的程序可所以彻底相同的,仅有不同的是其ID。

1.1 节点构成

无线传感器节点由传感器模块、处理器模块、无线电通讯模块和能量供给模块4部分组成,整个结构如图1所示。

根据TinyOS操作体系完结无线传感器节点Mica的规划

图1 无线传感器节点构成框图

本质上,无线传感器节点便是一个网络化的散布式嵌入式体系,经过无线信道完结网络间的通讯。为了削减通讯量,在本地完结必要核算进行数据交融,然后协作完结布置空间数据的搜集。在运用上表现以网络为中心,节点的功用经过网络来表现。因此传统的嵌入式规划思维在无线传感器网络中遇到许多应战:节点中运转程序存在许多并行和节点协同核算。

1.2 节点特色

无线传感器网络是运用相关性网络,不同运用领域运用不同的网络技能完结。因为无线传感器节点是用于监测的,散布密度大且领域广,因此有必要低本钱、低功耗和小尺度。从现有技能条件来看,值得考虑的是节点本钱和动力补给。节点不或许选用太高的频率,因为频率与能量的耗费是正相关的,频率高则能量耗费大。别的无线电通讯模块能量耗费也大,传送间隔同能量耗费也是正相关的,因此须在发送间隔和节点数之间做出权衡。

1.3 Mica节点 

加州大学伯克利分校掌管开发的低功耗无线传感器节点Mica,处理器芯片选用Atmel公司的AVR系列(TI公司的 MSP430也是不错的挑选),无线电收发模块选用TR1000或CC10000,外加相应传感器接口,完结了无线传感器节点,如图2所示。节点间经过无线电方法进行通讯,协作完结指定使命;节点本身经过ADC通道来感知外界数据。

图2 Mica节点实物图

Mica节点上可感知多个不同物理量:光强度、温度、地磁强度等。https://www.TInyos.net/网站供给了其完结的硬件布线图,加州大学伯克利分校研制人员为这个渠道开宣布微型操作体系TInyOS和编程言语nesC,一起国内外许多大学和组织运用这一渠道进行相关问题的研讨。

无线传感器网络与现在传感器技能最大的不同在于,将现有的传感器技能进行网络化,使传感器技能运用更好,为现在传感器技能供给更新的处理方法。

2、 节点上微型操作体系

无线传感器网络节点存储容量有限。经过研讨发现,要满意其本身网络运转的需求,能够运用一种新的嵌入式体系和嵌入式软件来完结。

2.1 操作体系需求

从对节点结构剖析不难看出,无线传感器节点硬件简略,能够直接在硬件上进行编程。但这在工程实践中发生许多问题:运用程序开发的难度大大添加,程序员有必要对硬件非常了解;程序员无法承继现有的软件效果,延伸开发周期;无法构成规模化,运用新的芯片,上层模块都有必要改写。

从现有软件技能来看,无线传感器能够直接运用现有的嵌入式操作体系。现有嵌入式操作体系大多是实时操作体系,很少考虑动力供给,而无线传感器一个丧命点便是动力供给无法处理;现有嵌入式操作体系大多所占用空间很大,而无线传感器另一个丧命点又是存储容量有限。

无线传感器节点有两个杰出特色:一个是音讯抵达的并发性,很密布,即存在多个需求一起履行的逻辑操控,需求操作体系在较短时间内完结这些频频发生的操作;另一个是无线传感器节点模块化程序高,要求操作体系为运用程序对硬件操控供给方便操作。

2.2 TInyOS操作体系

操作体系便是为用户供给一个杰出的用户接口。根据以上剖析,研制人员在无线传感器节点处理才能和存储才能有限情况下规划一种新式的嵌入式体系TInyOS,具有更强的网络处理和资源搜集才能,满意无线传感器网络的要求。

为满意无线传感器网络的要求,研讨人员在TinyOS中引进4种技能:轻线程、自动音讯、事情驱动和组件化编程。

轻线程主要是针对节点并发操作或许比较频频,且线程比较短,传统的进程/线程调度无法满意(运用传统调度算法会发生许多能量用在无效的进程交换进程中)的问题提出的。

自动音讯是并行核算机中的概念。在发送音讯的一起传送处理这个音讯的相应处理函数ID和处理数据,接纳方得到音讯后可当即进行处理,然后削减通讯量。

整个体系的运转是因为事情驱动而运转的,没有事情发生时,微处理器进入睡觉状况,然后能够抵达节能的意图。

组件便是对软硬件进行功用笼统。整个体系是由组件构成的,经过组件进步软件重费用和兼容性,程序员只关怀组件的功用和自己的事务逻辑,而不用关怀组件的详细完结,然后进步编程功率。

2.3 TinyOS操作体系的完结

TinyOS操作体系开端是用C言语完结的,发生的方针代码比较长。后来研讨规划出根据组件化和并行模型的nesC言语,发生的方针代码相对较小。用nesC言语可开发TinyOS操作体系和其上运转的运用程序。

2.3.1 接口

接口(interface)是一个双向通道,标明接口具有的功用和事情告诉才能是双向的,向调用者供给指令和完结指令者进行事情布告。

interface name {

asy commandresult_t Cname(pram p);

asy eventresult_tEname(pram p);

}

其示意图如图3所示。

图3 接口示意图

在接口中声明指令和事情完结不同的功用,指令是接口具有的功用,事情是接口具有布告事情发生的才能。Asy能够指令或事情在间断处理程序中调用。

接口表现事情驱动功用和模块化。经过事情布告让运用接口者对事情进行呼应;任何满意接口功用的完结者都可被其他需求这个接口功用的组件调用。

2.3.2 组件

组件是配线文件或模块文件,是逻辑功用的笼统。程序员彻底可直接调用组件进行程序开发。

配线文件仅仅完结组件之间的接口衔接,模块文件则详细完结接口中的指令和事情。在这两个文件中都可运用provides、uses句子。provides标明这个组件能够供给哪些接口,完结这些接口的指令和事情告诉。uses标明这个组件运用哪些接口,组件能够接口中供给的指令和完结对接口中事情进行呼应。组件结构如图4所示。

图4 组件结构图

根据组件的思维,一个组件可经过多个组件完结必定的逻辑功用,对外声明需求哪些接口和供给哪些接口。图5所示为由组件A、B和C构成的新功用组件D。

图5 组件D结构图

2.3.3 并行模型

经过使命(task)和间断处理事情(interrupt hander event)来表现TinyOS并行处理才能。使命(task)会参加一个FIFO行列中,履行进程中,使命间没有竞赛;但间断处理程序能够打断使命履行。TinyOS选用二级调度机制来满意无线传感网络运转特色,整个程序调度进程如图6所示。组件中完结使命提交,由操作体系完结调度。

图6 TinyOS程序结构框图

根据以上剖析,一个节点上运用程序的框图如图7所示。操作体系仅仅在后台供给行列服务。

图7 运用程序结构框图

3、 详细完结阐明

现以节点收发计数器中的数值为例,更为详细地阐明网络协议是怎么经过自动音讯传递来完结的。

程序要求节点发动今后,开端让计数器计数,每秒向外播送自己的计数值,一起接纳其他节点上计数器的值。

3.1 main组件

TinyOS运用程序从main组件开端,完结main组件的StdControl接口的3个指令init()、start()和stop()的详细完结。这个接口中指令履行次第可用init*(start|stop)*,运用程序履行前履行init()完结必要初始化作业,start是这个程序要完结的作业,stop是体系封闭前所要履行的动作。这个接口是TinyOS运用程序标准接口,与硬件操作相关的其他组件有必要用到这个接口,完结接口中的指令。

3.2 运用的接口

StdControl接口完结运用程序发动及相关硬件初始化。

interface StdControl {

command result_t init();

command result_t start();

command result_t stop();

}

Timer接口完结计数功用。

interface Timer {

command result_t start(char type, uint32_t interval);

//设定触发类型和计数值

command result_t stop()

//间断计数器

event result_t fired();

//计数器守时触发事情

}

SendMsg接口发送音讯。

interface SendMsg {

command result_t send(uint16_t address, uint8_t length, TOS_MsgPtr msg);

//发送音讯

event result_t sendDone(TOS_MsgPtr msg, result_t success);

//音讯发送完结今后事情

}

ReceiveMsg接口接纳音讯。

interface ReceiveMsg {

event TOS_MsgPtr receive(TOS_MsgPtr m);

//接纳到音讯事情

}

3.3 运用的组件

组件Main, test5M,TimerC,GenericComm as Comm完结逻辑功用。Main是体系必需的。test5M供给接口的指令并完结对调用接口事情的呼应。GenericComm完结音讯的发送和对接纳音讯的布告。其配线文件如下:

Main.StdControl -》 test5M.StdControl;

Main.StdControl -》 TimerC.StdControl;

test5M.Timer -》 TimerC.Timer[unique(“Timer”)];

test5M.SubControl-》Comm;

test5M.Send -》 Comm.SendMsg;

test5M.Receive-》Comm.ReceiveMsg;

3.4 test5M模块文件

test5M模块接口如下:

module test5M {

provides {

interface StdControl;

}

uses {

interface Timer;

interface SendMsg as Send[uint8_t id];//发送音讯接口

interface ReceiveMsg as Receive[uint8_t id];//接纳音讯

interface StdControl as SubControl;//子组件:完结发送初始化

}

}

provides声明这个组件所完结接口中指令和布告相关事情的发生。需求完结StdControl接口中指令init()、start()和stop()。

Uses声明这个组件调用接口中指令并对接口中事情进行呼应。所需求呼应的事情为Timer接口的fired()事情、SendMsg接口的sendDone事情和ReceiveMsg接口的receive事情。

3.5 通讯完结

test5M发送和接纳音讯是经过组件GenericComm来完结的。GenericComm经过调用其他组件完结从音讯包到自动音讯、字节级数据传数、位级数据传送到无线电收发模块的功用。在此不再深入剖析其完结进程,选用随机撤退的CSMA/AD的MAC协议,只需理解组件GenericComm就能够完结音讯的收发。

GenericComm供给了256个音讯收发接口,也便是说体系能够运用256种音讯,或者说256种状况进行转化。因为体系对错堵塞形式,一旦音讯抵达组件test5M中,receive事情就会马上调用,因此在这个事情中完结不同音讯的转化,然后完结通讯两边的握手:

event TOS_MsgPtr Receive.receive[uint8_t id](TOS_MsgPtr m) {

switch(id) {

case 1: //状况转化1

case 2: //状况转化2

}

return m;

}

4、结语

剖析无线传感器节点Mica和其上运转的TinyOS操作体系动身,描绘无线传感器网络节点体系结构,经过运用程序开发阐明其通讯模型树立思路,侧重描绘无线传感器网络节点运用程序体系结构和音讯通讯机制。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/93713.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部