Tinyos操作系统简介

合集下载

ZigBee 和 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无线传感器网络操作系统分析

TinyOS无线传感器网络操作系统分析0 引言无线传感器网络是由部署在监测区域内的大量廉价微型传感器节点,通过无线通信方式组成一个多跳的自组织的网络系统,其目的是协同感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观测者。

无线传感器网络技术研究涉及到多个热点学科的前沿领域,比如传感器技术、现代网络技术、嵌入式计算机技术、无线通信技术等。

由于无线传感器网络在工业监测、环境检测、医疗监护、军事侦察等众多的领域都有着广阔的应用前景,因而引起了世界各国工业界,学术界和军事部门的重视,并且迅速成为当今世界研究的热点之一。

1 无线传感器网络的主要特点传感器网络节点硬件一般都由数据采集、数据处理、数据收发和电源等四个单元组成。

数据采集单元通过传感器采集外界数据并将其转化为数字信号;数据处理单元是节点的核心模块,负责协调节点各部分的工作,如对数据采集单元采集的数据进行必要的处理和保存,以及数据收发单元工作模式的设置等;数据收发单元负责数据的无线传输以及与数据处理单元的数据交互。

上述四大基本模块与相应的操作系统、协议栈和应用程序共同构成一个基本的无线传感器网络节点,众多的网络节点分布在一起,就可以完成无线传感网络的基本功能。

在软件设计方面,本系统以专用嵌入式实时操作系统为依托,来管理、协调传感器节点各硬件部分的工作。

上层应用以及各层的通信协议都以节能为中心,必要时可以牺牲其他的一些网络性能指标来获得更高的电源效率。

图1所示是一个传感器网络节点的基本组成。

传统的无线网络设计基本上都是为了同时满足人们各种各样的需要,如语音、视频、图像等。

而无线传感器网络一般是为了某个特定的需要而设计的,它是一种基于应用的无线网络,与移动通信网、无线局域网、Bluetooth相比,无线传感器网络具有以下主要特点:(1)电源能量有限:无线网络中,每个节点的电源都是有限的,网络大多工作在无人区或者对人体有伤害的恶劣环境中,一般更换电源几乎都是很困难的事。

tinyOS

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综述

无线传感器网络操作系统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学习笔记讲解

第一篇基础知识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综述

无线传感器网络操作系统TinyOS综述
nl al y,T n OS s o to n s a d e itp o l ms ae s mma ie . iy h r mi g n x s r b e r u c rz d
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

Lesson1---TinyOS入门1
• 运行环境:TinyOS 2.1 + Cygwin (Windows XP) • Cygwin在Windows下提供一个类似Linux的环境
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小结

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工作;单一任务栈;内核非常简单,甚至在严格意义上说,称不上内核;没有进程管理和虚拟存储。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.。

相关文档
最新文档