Tinyos操作系统简介
ZigBee 和 Tinyos
关于ZigBee和TinyOSZigBee的基础是IEEE 802.15.4。
但IEEE仅处理低级MAC层和物理层协议,因此Zigbee 联盟扩展了IEEE,对其网络层协议和API进行了标准化,这就是Z‐STACK,Z‐STACK协议栈是TI公司研发,通过ZigBee联盟认证的免费协议栈,协议内部包括了WSN(无线传感器网络)的OS的模型,协议栈具有国际化,标准化的特点,协议栈已提供十几种应用场景,可以非常轻松的让用户开发出满足国际标准的产品。
TinyOS是一个空白的嵌入式操作系统(从TinyOS的安装过程就可以感知),理论上支持任何WSN(无线传感器网络)的OS架构,但到目前为止还没有一个基于TinyOS操作系统的ZigBee协议栈通过ZigBee联盟的认证,因此TinyOS的应用受到很大限制,并且就IC芯片而言,TinyOS被最多应用的是基于TI公司04年出的CC2430芯片上,对于最新的ZigBee 芯片CC2530则偶见于某些高校的实验项目中。
而ZigBee联盟则完全支持CC2530,即ZStack‐CC2530‐2.3.0‐1.4.0协议栈(免费)ZigBee和Z‐STACK环境理论知识C51编程(C语言或者汇编语言)单片机接口单片机调试、下载和烧写过程所需应用程序ZStack‐CC2530‐2.3.0‐1.4.0:协议栈(免费)IAR System 8051 8302:IAR EW8051编译器(许可证)SmartRF Flash Programmer 1.9.0:FLASH烧写(免费)SmartRF04EB仿真器驱动(win_64bit_x64、win_32bit_x86):仿真器驱动程序(安装SmartRF Flash Programmer时需要)ZigBee Sensor Monitor 1.2.0:节点监视(可选)RemoTI‐CC2530DK‐1.1:TI的开发组件(可选)Packet Sniffer 2.13.2:抓包软件(可选)Eclipse:编程工具(可选)TinyOS环境(Windows OS)理论知识Linux环境及常用Linux命令Linux下CC2430编译和烧写C,nesC两种编程语言C++,JAVA有一定了解开发过程将Tinyos2.x 移植到CC2430(CC2530) 编译环境的构建流程:在 windows 下建立 cygwin 平台,并构建 TinyOS的编译环境,然后将基于 TinyOS 的应用程序编译成hex文件,通过仿真器下载到CC2430(CC2530)芯片运行。
TinyOS无线传感器网络操作系统分析
TinyOS无线传感器网络操作系统分析0 引言无线传感器网络是由部署在监测区域内的大量廉价微型传感器节点,通过无线通信方式组成一个多跳的自组织的网络系统,其目的是协同感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观测者。
无线传感器网络技术研究涉及到多个热点学科的前沿领域,比如传感器技术、现代网络技术、嵌入式计算机技术、无线通信技术等。
由于无线传感器网络在工业监测、环境检测、医疗监护、军事侦察等众多的领域都有着广阔的应用前景,因而引起了世界各国工业界,学术界和军事部门的重视,并且迅速成为当今世界研究的热点之一。
1 无线传感器网络的主要特点传感器网络节点硬件一般都由数据采集、数据处理、数据收发和电源等四个单元组成。
数据采集单元通过传感器采集外界数据并将其转化为数字信号;数据处理单元是节点的核心模块,负责协调节点各部分的工作,如对数据采集单元采集的数据进行必要的处理和保存,以及数据收发单元工作模式的设置等;数据收发单元负责数据的无线传输以及与数据处理单元的数据交互。
上述四大基本模块与相应的操作系统、协议栈和应用程序共同构成一个基本的无线传感器网络节点,众多的网络节点分布在一起,就可以完成无线传感网络的基本功能。
在软件设计方面,本系统以专用嵌入式实时操作系统为依托,来管理、协调传感器节点各硬件部分的工作。
上层应用以及各层的通信协议都以节能为中心,必要时可以牺牲其他的一些网络性能指标来获得更高的电源效率。
图1所示是一个传感器网络节点的基本组成。
传统的无线网络设计基本上都是为了同时满足人们各种各样的需要,如语音、视频、图像等。
而无线传感器网络一般是为了某个特定的需要而设计的,它是一种基于应用的无线网络,与移动通信网、无线局域网、Bluetooth相比,无线传感器网络具有以下主要特点:(1)电源能量有限:无线网络中,每个节点的电源都是有限的,网络大多工作在无人区或者对人体有伤害的恶劣环境中,一般更换电源几乎都是很困难的事。
tinyOS
tinyOS
/tinywiki/index.php/Getting_started /TinyOS是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度TinyOS的构件包括网络协议、分布式服务器、传感器驱动及数据识别工具。
其良好的电源管理源于事件驱动执行模型,该模型也允许时序安排具有灵活性。
TinyOS已被应用于多个平台和
感应板中。
TinyOS操作系统、库和程序服务程序是用nesC写的
nesC是一种开发组件式结构程序的语言
nesC是一种C语法风格的语言,但是支持TinyOS的并发模型,以及组织、命名和连接组件成为健壮的嵌入式网络系统的机制
◇nesC应用程序是由有良好定义的双向接口的组件构建的
◇nesC定义了一个基于任务和硬件事件处理的并发模型,并能在编译时检测数据流组件TinyOS只能运行单个由所需的系统模块和自定义模块构成的应用程序
两个线程
◇任务
●一次运行完成,非抢占式
◇硬件事件处理
●处理硬件中断
●一次运行完成,抢占式
●用于硬件中断处理的command和event必须用async关键字声明。
无线传感器网络操作系统TinyOS综述
计算机与现代化2011年第2期JISUANJI YU XIANDAIHUA总第186期文章编号:1006-2475(2011)02-0103-03收稿日期:2010-10-19作者简介:吴小娜(1987-),女,江西崇仁人,东华大学计算机科学与技术学院硕士研究生,研究方向:无线传感器网络操作系统;王漫(1967-),男,上海市计算技术研究所高级工程师,研究方向:无线传感器网络,普适计算,协同计算。
无线传感器网络操作系统TinyOS 综述吴小娜1,王漫2(1.东华大学计算机科学与技术学院,上海200051;2.上海市计算技术研究所,上海200040)摘要:TinyOS 是无线传感器网络专用的操作系统。
本文首先分析TinyOS 操作系统的关键技术———组件化结构、调度机制、通讯模型及能量管理方式,然后将TinyOS 与另外两个操作系统μCOS-II 、μT-Kernel 在内核大小、时间可确定性、低功耗等方面进行简要对比,最后总结TinyOS 操作系统的缺点和存在的问题,为学习使用TinyOS 提供指导。
关键词:无线传感器网络;TinyOS ;综述中图分类号:TP316文献标识码:Adoi :10.3969/j.issn.1006-2475.2011.02.028Review of TinyOS for Wireless Sensor Networks Operating SystemWU Xiao-na 1,WANG Man 2(1.School of Computer Science and Technology ,Donghua University ,Shanghai 200051,China ;2.Shanghai Institute of Computing Technology ,Shanghai 200040,China )Abstract :TinyOS is the specific operating system for wireless sensor networks.First ,this paper introduces the key techniques of TinyOS ,such as component-based model ,scheduling mechanism ,communication model and energy management.Then it brieflycompares with the other two operating system μCOS-II ,μT-Kernel about RAM /ROM ,realtime performance ,low power etc.Fi-nally ,TinyOS shortcomings and exist problems are summarized.Key words :wireless sensor networks ;TinyOS ;review0引言无线传感器网络(WSN )[1-4]是多个具有感知、通信和计算能力的小型无线传感器网络节点自组织而成的新型网络,能够协作实时监测、感知和采集网络分布区域内的各种环境或监测对象信息,并对这些信息进行传输处理以获得所需信息。
TinyOS学习笔记讲解
第一篇基础知识TinyOS体系结构(1) 组件模型module & configurationTinyOS 是基于构件的微操作系统,采用事件驱动模型,有效的提高了系统的运行效率以及能源合理利用。
TinyOS 采用nesC 语言编写,其应用程序由一个或多个组件连接而成,而组件可以提供和使用接口,组件必须实现其所提供的command 接口,并且必须实现其连接组件中申明的事件event 接口。
接口是程序的实体,实现程序的各功能模块,分为command 和event ,command 接口由组件本身实现,而event 接口则由调用者实现,值得注意的是,接口是双向的,调用command 接口时必须实现其event 接口。
组件又可以细分为模块module 和配件。
模块亦可分为2个部分,其一,首先申明提供以及使用的接口,如module BlinkC { } 其二,在implementation 中模块包含各接口所提供的行为(方法),也包含仅供本模块内部使用的函数,以及申明本模块所具有的事件signal ,以及实现其连接或使用的event 。
implementation{uint8_t counter = 0;void ledctl() {call Leds.set(counter);}event void Boot.booted() {} event void Timer0.fired(){ledctl();}}配件configuration 也可以分为两个部分,和module 一样,第一部分是申明可以提供以及使用的接口。
第二部分implementation 中首先列出与其相连接模块的名称,使用components 标注连接的模块,然后对本配件提供的以及与其相对应模块使用以及提供的接口进行配线,如下例:{}implementation{BlinkC -> MainC.Boot; /////或者写作BlinkC.Boot -> MainC.Boot;BlinkC.Timer<TMilli> ->TimerMilliC;BlinkC.Leds -> LedsC;}在TinyOS 中存在很多中间配件,这些配件的特点是没有与之相对应的模块,其作用就是根据不同的条件将上层的连接转接到不同的模块上,如下例所示generic configuration AMSenderC(am_id_t AMId) { provides {interface AMSend; interface Packet;interface AMPacket;interface PacketAcknowledgements as Acks;}}implementation {#if defined(LOW_POWER_LISTENING)#else #endifAMSend = SenderC;Packet = SenderC;AMPacket = SenderC;Acks = SenderC;}接口文件相当于C 程序中头文件对函数的声明,接口文件一般放置于提供该接口的模块的同一目录下的interface 文件夹中,也可以放在TinyOS 根目录下的interface 目录中,其命名必须与模块中所提供接口名字相同,注意不是接口的实例化名称或nickname 。
无线传感器网络操作系统TinyOS综述
Ke r y wo ds: rl s e s rnewo ks T n i w e e ss n o t r ; i yOS;r ve e iw
பைடு நூலகம்
T n OS,s c s c mp n n — a e d l c e u i g me h n s , o iy u h a o o e tb s d mo e ,s h d ln c a im c mmu i ain mo e n n ry ma a e n .T e t re y n c t d l d e e g n g me t h n i b i f o a l
Re i w fTi y o i ee s S n o t r s Ope a i y t m v e o n OS f r W r ls e s r Ne wo k r tng S se
w u a . a Xi o n 。 W ANG n Ma ,
( . c o l f o p t c n ea d T c n l y D n h aU i r t , h n h i 0 0 , hn ; 1 S h o o m ue S i c n e h oo , o g u nv s y S a g a 2 0 5 C i C r e g ei 1 a 2 S a g a Is tt o o p t gT c n lg , h nh i 0 0 0 C ia . h n h i n t u f m u n e h oo S a g a 2 0 4 , h ) i e C i y n
Lesson1---TinyOS入门1
11
一、编译和安装
• 作为一开始的学习,先来编译一个非常简 单的程序 Blink。若没有硬件节点,可以用 TinyOS的TOSSIM仿真平台进行编译运行。 • 编译TinyOS程序使用make命令,TinyOS系 统有一个强大的扩展性很强的make 系统, 位于 tinyos-2.x/support/make目录中。 • 先运行如下命令检查环境是否正确配置。 • $ tos-check-env
8
• 总的来说,TinyOS 调度模型有以下特点:
(1)任务单线程运行到结束,仅分配单个任务栈, 这对内存受限系统很有利。 (2)任务调度算法采用非抢占式的FIFO 算法,任 务之间相互平等,没有优先级之分。 (3)TinyOS 的调度策略具有能量意识,当任务队 列为空时,处理器进入休眠模式,直到外部事件 将它唤醒,能有效的降低系统能耗。 (4)这种基于事件的调度策略,允许独立的组件共 享单个执行的上下文, 只需少量运行空间就能获 得高度的并发性。
• 规范
– nesC应用程序由一个或多个组件连接而成。 – 一个组件可以提供或使用接口:
» 组件中command接口由组件本身实现; » 组件中event接口由调用者实现; » 接口是双向的,调用command接口必须实现其event接口。
26
2.1 配件和模块
• 组件有两种:配件和模块。 • 模块(module):提供一个或多个接口的实现。 • 配件(configuration):把其他的组件装配起来, 连接组件使用的接口到其提供者。 • 每个nesC应用程序都必须有且只有一个顶层配件 (top-level configuration)连接内部组件。 • 之所以区别设计模块与配件,是为了让系统设计 者在构建应用程序的时候可以脱离现有的实现。 例如:设计者可以提供配件,只是简单地把一个 或多个模块连接起来,而不涉及其中具体的工作。 同样地,另一个开发者负责提供一组模块库,这 些模块可以普遍使用到众多应用中。
TinyOS NesC小结
TinyOSTinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。
它是基于一种组件(Component-Based)的架构方式,使得能够快速实现各种应用。
TinyOS 的程序采用的是模块化设计,所以它的程序核心往往都很小(一般来说核心代码和数据大概在400 Bytes左右),能够突破传感器存储资源少的限制,这能够让TinyOS很有效的运行在无线传感器网络上并去执行相应的管理工作等。
TinyOS本身提供了一系列的组件,可以很简单方便的编制程序,用来获取和处理传感器的数据并通过无线电来传输信息。
TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。
它是基于一种组件(Component-Based)的架构方式,使得能够快速实现各种应用。
TinyOS的程序采用的是模块化设计,所以它的程序核心往往都很小(一般来说核心代码和数据大概在400 Bytes左右),能够突破传感器存储资源少的限制,这能够让TinyOS很有效的运行在无线传感器网络上并去执行相应的管理工作等。
TinyOS本身提供了一系列的组件,可以很简单方便的编制程序,用来获取和处理传感器的数据并通过无线电来传输信息。
TinyOS在构建无线传感器网络时,它会有一个基地控制台,主要是用来控制各个传感器子节点,并聚集和处理它们所采集到的信息。
TinyOS只要在控制台发出管理信息,然后由各个节点通过无线网络互相传递,最后达到协同一致的目的,比较方便。
1. tinyos和普通的os的不同点它们的应用场景不一样,tinyos是一个开源的构件化操作系统,它采用构件化描述语言nesC进行开发,主要针对资源非常有限的无线传感器网络节点而设计。
与一般的嵌入式操作系统相比,TinyOS有其自身的特点:采用模块化设计,所以核心尺寸小(一般来说核心代码和数据大概在400Bytes左右),可突破无线传感器网络存储资源少的限制;基于可重用组件的体系结构;使用事件驱动模型,通过事件触发来唤醒CPU工作;单一任务栈;内核非常简单,甚至在严格意义上说,称不上内核;没有进程管理和虚拟存储。
TinyOS
2010-8-4
mice
15
Network Management— Active Message
e) Each Active Message Contains
User-level handler to be invoked on arrival Data payload passed as argument
f) Event-centric nature
Enables network communication to overlap with sensor-interaction
2010-8-4
mice
16
Network Management— Active Message
g) Handler Functions
2010-8-4
mice
10
TinyOS的特点
Split-Phase Operations
在TinyOS中由于tasks 之间不能互相占先执 行,所以TinyOS没有提供任何阻塞操作,为 了让一个耗时较长的操作尽快完成,一般来说 都是将对这个操作的需求和这个操作的完成分 开来实现,以便获得较高的执行效率。
Event-Driven Architecture
TinyOS的应用程序都是基于事件驱动模式的,采用 事件触发去唤醒传感器工作。
2010-8-4
mice
9
TinyOS的特点
Tasks And Events Concurrency Model
tasks一般用在对于时间要求不是很高的应用中,且tasks之间是 平等的,即在执行时是按顺序先后来得,而不能互相占先执行, 一般为了减少tasks的运行时间,要求每一个task都很短小,能 够使系统的负担较轻;events一般用在对于时间的要求很严格的 应用中,而且它可以占先优于tasks和其他events执行,它可以 被一个操作的完成或是来自外部环境的事件触发,在TinyOS中 一般由硬件中断处理来驱动事件。
tinyos初步
d2
//sched.c void TOSH_sched_init(void){ int i; a2 TOSH_sched_free = 0; TOSH_sched_full = 0; b1 for (i = 0; i < TOSH_MAX_TASKS; i++) T OSH_queue[i].tp = NULL;} //StdControl.nc interface StdControl { command result_t init(); c1 command result_t start(); command result_t stop(); } 说明:a1—全局作用域中的c变量名字空间,a2--全局作用域中的c标签名字空间…..依次类推
组件 of tasks
Event Handlers
Frame
(containing state information)
Tinyos 组件结构
组件编程模式
Component interface
Commands accepted (implemented) Commands used Events accepted (implemented) Events used
Nesc的语法:
省略.
Nesc中的并发性和原子操作----竞争处理机制
tinyos采用静态分配方式---编译时就确定全部应用程序所需存 储器空间 tinyos不提供动态存储保护,共享变量的保护也是在编译时就完 成的. nesc假定程序的执行模型是由Rtc(运行至完成)任务+由硬件信 号异步通知的中断处理程序共同组成的. 基于nesc的调度器必须按照Rtc方式来执行任务(标准的tinos调 度器遵循fifo策略).由于任务是不被抢占并且rtc的,因此它们之 间相对来说是原子的,但相对中断处理来路说就不是的了.
TinyOs NesC
4
无线传感器网络的特点
传感器网络的特点:
应用多样性、硬件功能有限、资源受限、节点微型化 、分布式任务协作。
单个传感器节点有两个很突出的特点:
并发性密集
传感器节点模块化程度很高
必须针对这些特点来设计WSN操作系统。
5
WSN操作系统的设计目标
要求WSN操作系统能够良好的模块化设计,使应 用服务与硬件资源之间可以随意搭配
TinyOS与NesC
1
TinyOS操作系统概述
2
内容提要
1. 2. 3. 4.
WSN操作系统 TinyOS简介 主要技术
编程规范
3
无线传感器网络及其操作系统
有人认为没有必要设计一个专门的操作系统,可以直接在 硬件上设计应用程序,但在实际过程中会碰到许多问题:
应用开发难度会加大 软件的重用性差,降低了开发效率。
操作系统必须能够高效地使用各种资源
必须为应用提供高效的组网和通信机制
6
现有的WSN操作系统
代表性的开源 WSN操作系统:
Tiny OS 2.1:美国加州大学伯克利分校
Mantis OS 0.9.5 :美国克罗拉多大学 SOS 1.7:美国加州大学洛杉矶分校
7
内容提要
1. 2. 3. 4.
interface Y;
} ……
}
……
24
组件
25
组件和接口
一个nesC语言编写的程序由一个或多个组件连接 而成。 一个组件(component)由两部分组成:
1)规范说明 包含要用到的接口名字 2)组件的实现
第09章-TinyOS操作系统
TinyOS的内存管理采用完全静态分配内存的策略。虽然nesC语言 也支持指针操作,但TinyOS不采用动态分配内存策略。 首先,动态内存分配影响系统的稳定性,而完全的静态分配内存策 略增强了TinyOS系统的稳定性。 其次,静态分配内存简化了TinyOS管理内存的难度,提高了程序 运行的效率。
第三,静态分配内存提高了TinyOS对内存的使用率。动态内存分 配策略会因为内存碎片而使内存使用率降低。
1、协作式与抢占式OS
在操作系统的发展过程中,先后有2种形式的多 任务管理机制,即协作式与抢占式。 协作式:如果任务切换的时机完全取决于正在运 行的任务,那么这样的操作系统就是协作式多任务操 作系统。即任务执行时的权利比操作系统还大,只有 等正在运行的任务完成后,才会将控制权交给操作系 统,此时才能执行下一个任务。一旦某个任务运行出 错,则导致整个系统挂起(Pending)。 抢占式:如果任务优先运行的决定权取决于操作 系统,而且即使有一个任务死掉,而系统仍能正常工 作,那么这样的操作系统就是抢占式多任务操作系统 。
(4)任务和事件并发模式(Tasks And Events ConcurrencyModel)。任务之 间是平等的,即在执行时是按顺序先后来的,而不能相互抢占。事件用在对 于时间的要求很严格的应用中,而且它可以优先于任务执行。 (5)分段执行(Split-Phase Operations)。在TinyOS中由于任务之间不能互 相抢占执行,所以TinyOS没有提供任何阻塞操作,为了让一个耗时较长的操 作尽快完成,一般来说都是将对这个操作的需求和这个操作的完成分开来实 现,以便获得较高的执行效率。 (6)主动消息模式(active message)。每一个消息都维护一个应用层和处理 器,当目标节点收到这个消息后,就会把消息中的数据作为参数,传递给应 用层的处理器进行处理。应用层处理器一般完成消息数据的解包、计算处理 或发送响应消息等工作。 (7)基于可重用组件的体系结构,单一任务栈,内核非常简单,甚至在 严格意义上说,称不上内核,没有进程管理和虚拟存储。 这些特点使得TinyOS非常适合WSN的需求,所以它得到了广泛应用。
Tinyos操作系统简介
Tinyos操作系统简介Tinyos简介最近看了篇关于TinyOS简介的文章,摘录出来保存下,介绍tinyos编程入门的资料不少,但从操作系统的角度分析tinyos是有必要的,毕竟TinyOS做为无线传感网络操作系统中最重要的一种,也是最常用的一种,分析它的实现机制有助于以后改进针对无线传感网络的操作系统,也是嵌入式操作系统的一类。
An open-source operating system designed for wireless embedded sensor network. More specifically, it is designed to support the concurrency intensive operations required by networked sensors with minimal hardware requirements.TinyOS Features• No Kernel: Direct hardware manipulation.• No Process Management: Only one process on the fly.• No Virtual Memory: Single linear physical address space.• No S/w Signal or Exception: Function call instead.• No User Interface, power constrained.• Unusually application specific H/w and S/w.• Multiple flows, concurrency intensive bursts.• Extremely passive vigilance (power saving).• Tightly coupled with the application.• Simulator: TOSSIM, PowerTOSSIM• Written in “nesC” Language, a dialect of the …C? language.TinyOS uses multi-hop routing instead of point-to-point connections to savetransmission power. Route discovery is done by 2-hop broadcast and topologydiscovery is based on shortest path from each node to the base station.• The paradigm for network transmissions in TinyOS is active messaging. Messages contain a handler address and on arrival this handler is called.• TinyOS Architecture• Component Based Architecture: enables rapid innovation and implementation while minimizing code size as required by the severe memory constraints inherent in sensor networks.• Small footprint: fits in 178 Bytes of memory.• Event based instead of threaded architecture.start and stop are commands.fired is a event invoked by Timer.The interface specifies: Timer must implement startand stop, Application must implement fired.o Propagates events in time it takes to copy 1.25 Bytes.o Switches context in the time to copy 6 Bytes ofMemory.• Radio and Clock have interrupts.• Non-blocking/Non-preemptive Scheduling: Tasks will not preempts other tasks and run in FIFO order but only interrupts and associated events can preempt tasks.Toavoid blocking scenarios, events and commands are expected to do only state transmissions and leave complex computations to tasks thatcan be preempted if necessary. This simple concurrency model istypically sufficient for I/O centric applications, but its difficulty with CPU-heavy applications has led to severalproposals for incorporating threads into the OS.• TinyOS has a Single Stack: TinyOS uses a simple queue with length7 and a two level scheduling. Therefore, all I/O operations that last longer than a few hundredmicroseconds are asynchronous and have a callback. A TinyOS component can post a task, which the OS will schedule to run later.• To support larger computations, TinyOS provides t asks, which are similar to a Deferred Procedure Call and interrupt handler bottom halves. Latest version of TinyOS has numerous improvements such as: Safe TinyOS , a compile-time optionthat lets us incorporate run-time memory safety checks into oour application, TOSThreads , a threading library that runs on top of a standard TinyOS core etc.。
TinyOS
无线传感器网络是当前国际上备受关注的、多学科高度交叉、知识高度集成的前沿热点研究技术,其核心技术Tinyos被誉为是“无线嵌入式系统”。
Tinyos是一个开源的嵌入式操作系统,他由加州大学的伯利克分校开发出来,越来越多的无线传感器网络通信协议正不断被开发并加入Tinyos系统组件中,并应用于技术研究和系统开发中。
无线传感器网络通常利用无线技术在某个区域内实时部署一个专用的无线局域网络。
传输传感器上采集到的数据是无线传感器网络的主要目标。
在无线传感器网络的部署过程,Web服务器是确立网络部署和监控通信传输的关键。
由于嵌入式操作系统具有高可靠性,在恶劣环境或突然断电的情况下,系统仍然能够正常工作,系统中的软件代码一般都固化在只读存储器中。
因此,要求在恶劣环境中仍然能高稳定工作的无线传感器网络可以采用嵌入式操作系统作为其实现平台,这其中包括:嵌入式Linux,Windows CE,Windows XP Embedded,VxWorks,μCOSⅡ,QNX,FreeRTOS,还有定制版的NetBSD和FreeDOS等多种移植平台。
本文主要采用Windows XPEmbedded设计平台。
Tinyos应用操作系统,将GENE-8310作为无线传感器网络中的远程服务器,实现无线网络与有线网络的跨网段传输和远程网络监控。
GENE-8310是研扬科技研制的第三代无风扇解决方案,与以往的3.5 in单板电脑相比GENE-8310在低功耗和高性能方面都有很大的改进,对于客户在低功耗控制下的优秀处理能力等更高需求方面都是最好的选择。
1 嵌入式Tinyos移植嵌入式Tinyos移植方案方框图如图1所示:首先,在开发机PC上,利用Microsoft Windows Embedded Studio工具套件中的组件设计器开发出网关MIB520的驱动组件,并结合第三方工具Dependencywalker,InCtr15开发出应用程序cygwin.bat的组件,之后把构建完成的驱动组件和应用程序组件通过工具套件中的组件数据库管理器导入到组件数据库中,以便开发操作系统时添加。
tinyos资料
TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。
它是基于一种组件(Component-Based)的架构方式,使得能够快速实现各种应用。
TinyOS的程序采用的是模块化设计,所以它的程序核心往往都很小(一般来说核心代码和数据大概在400 Bytes左右),能够突破传感器存储资源少的限制,这能够让TinyOS很有效的运行在无线传感器网络上并去执行相应的管理工作等。
TinyOS 本身提供了一系列的组件,可以很简单方便的编制程序,用来获取和处理传感器的数据并通过无线电来传输信息。
TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。
它是基于一种组件(Component-Based)的架构方式,使得能够快速实现各种应用。
TinyOS的程序采用的是模块化设计,所以它的程序核心往往都很小(一般来说核心代码和数据大概在400 Bytes左右),能够突破传感器存储资源少的限制,这能够让TinyOS很有效的运行在无线传感器网络上并去执行相应的管理工作等。
TinyOS本身提供了一系列的组件,可以很简单方便的编制程序,用来获取和处理传感器的数据并通过无线电来传输信息。
TinyOS在构建无线传感器网络时,它会有一个基地控制台,主要是用来控制各个传感器子节点,并聚集和处理它们所采集到的信息。
TinyOS 只要在控制台发出管理信息,然后由各个节点通过无线网络互相传递,最后达到协同一致的目的,比较方便。
1. tinyos和普通的os的不同点它们的应用场景不一样,tinyos是一个开源的构件化操作系统,它采用构件化描述语言nesC 进行开发,主要针对资源非常有限的无线传感器网络节点而设计。
与一般的嵌入式操作系统相比,TinyOS有其自身的特点:采用模块化设计,所以核心尺寸小(一般来说核心代码和数据大概在400Bytes左右),可突破无线传感器网络存储资源少的限制;基于可重用组件的体系结构;使用事件驱动模型,通过事件触发来唤醒CPU工作;单一任务栈;内核非常简单,甚至在严格意义上说,称不上内核;没有进程管理和虚拟存储。
无线传感器网络节点操作系统TinyOS综述
通信机制方面,TinyOS支持多种无线通信协议,如ZigBee、IEEE 802.15.4 等。它采用了轻量级的通信协议栈,实现了高效、可靠的无线通信,并降低了功 耗。
TinyOS应用程序开发来自使用TinyOS开发应用程序需要对TinyOS的编程模型有一定的了解。TinyOS 应用程序的基本结构包括硬件配置、任务定义、事件处理和通信协议等几个部分。
3、AI集成:人工智能技术在无线传感器网络中的应用前景广阔。未来 TinyOS可以集成AI算法和模型,实现对传感器数据的智能分析和处理,提高无线 传感器网络的智能化水平。
4、低功耗优化:低功耗一直是无线传感器网络追求的重要指标之一。未来 TinyOS可以通过进一步优化事件驱动机制、节能策略等方面来降低节点功耗,延 长网络寿命。
2、组件化:TinyOS采用基于组件的架构,提供一系列可复用的组件(包括 传感器驱动、通信协议、数据处理等),方便开发者根据具体应用需求进行定制 和扩展。
3、事件驱动:TinyOS采用事件驱动的编程模型,通过中断和事件处理机制 实现异步和并发任务,有效降低能耗并提高系统响应速度。
4、灵活的通信协议:TinyOS支持多种无线通信协议,如Zigbee、IEEE 802.15.4等,方便构建多跳、自组织的无线传感器网络。
TinyOS操作系统的应用实例
TinyOS操作系统在无线传感器网络中具有广泛的应用实例。例如,在智能家 居领域,TinyOS可以通过无线通信技术将各种智能设备连接起来,实现家居环境 的实时监测和智能控制。在环境监测领域,TinyOS可以部署在无人值守的野外环 境,对大气、土壤、水质等进行长期、稳定的数据采集和传输。
4、调试和测试:通过仿真或实际测试来验证代码的正确性和性能。 5、部署:将编写的应用程序部署到WSN节点上,并监控其运行情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tinyos操作系统简介
Tinyos简介
最近看了篇关于TinyOS简介的文章,摘录出来保存下,介绍tinyos编程入门的资料不少,但从操作系统
的角度分析tinyos是有必要的,毕竟TinyOS做为无线传感网络操作系统中最重要的一种,也是最常用的
一种,分析它的实现机制有助于以后改进针对无线传感网络的操作系统,也是嵌入式操作系统的一类。
An open-source operating system designed for wireless embedded sensor network. More specifically, it is designed to support the concurrency intensive operations required by networked sensors with minimal hardware requirements.
TinyOS Features
• No Kernel: Direct hardware manipulation.
• No Process Management: Only one process on the fly.
• No Virtual Memory: Single linear physical address space.
• No S/w Signal or Exception: Function call instead.
• No User Interface, power constrained.
• Unusually application specific H/w and S/w.
• Multiple flows, concurrency intensive bursts.
• Extremely passive vigilance (power saving).
• Tightly coupled with the application.
• Simulator: TOSSIM, PowerTOSSIM
• Written in “nesC” Language, a dialect of the …C? language.
TinyOS uses multi-hop routing instead of point-to-point connections to save
transmission power. Route discovery is done by 2-hop broadcast and topology
discovery is based on shortest path from each node to the base station.
• The paradigm for network transmissions in TinyOS is active messaging. Messages contain a handler address and on arrival this handler is called.
• TinyOS Architecture
• Component Based Architecture: enables rapid innovation and implementation while minimizing code size as required by the severe memory constraints inherent in sensor networks.
• Small footprint: fits in 178 Bytes of memory.
• Event based instead of threaded architecture.
start and stop are commands.
fired is a event invoked by Timer.
The interface specifies: Timer must implement startand stop, Application must implement fired.
o Propagates events in time it takes to copy 1.25 Bytes.
o Switches context in the time to copy 6 Bytes ofMemory.
• Radio and Clock have interrupts.
• Non-blocking/Non-preemptive Scheduling: Tasks will not preempts other tasks and run in FIFO order but only interrupts and associated events can preempt tasks.
Toavoid blocking scenarios, events and commands are expected to do only state transmissions and leave complex computations to tasks that
can be preempted if necessary. This simple concurrency model is
typically sufficient for I/O centric applications, but its difficulty with CPU-heavy applications has led to several
proposals for incorporating threads into the OS.
• TinyOS has a Single Stack: TinyOS uses a simple queue with length
7 and a two level scheduling. Therefore, all I/O operations that last longer than a few hundred
microseconds are asynchronous and have a callback. A TinyOS component can post a task, which the OS will schedule to run later.
• To support larger computations, TinyOS provides t asks, which are similar to a Deferred Procedure Call and interrupt handler bottom halves. Latest version of TinyOS has numerous improvements such as: Safe TinyOS , a compile-time option
that lets us incorporate run-time memory safety checks into oour application, TOSThreads , a threading library that runs on top of a standard TinyOS core etc.。