Tinyos操作系统简介
- 格式:doc
- 大小:30.00 KB
- 文档页数:2
关于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)芯片运行。
TinyOSTinyOS是一种专门为嵌入式无线传感器网络所涉及的开源操作系统,它为用户在无线传感器网络有限的资源中能够进行快速的创新和扩展提供了强大的基于组件的架构。
TinyOS 的组件库包括了网络协议,发送服务、传感器驱动和数据采集工具等组件,这些组件都可以在用户的应用程序中被调用。
在这里,TinyOS并不是一个传统意义上的操作系统,它还是一个专门为嵌入式系统所设计的编程框架和用于传感器网络编程的组件库,能够使得基于TinyOS的应用程序足够的小。
同时,TinyOS不支持文件系统,仅仅支持静态内存分配,扩展了一个简单的任务模型并提供了最小设备和网络的抽象。
TinyOS采用了基于组件的编程模型(nesC语言)。
与其他操作系统一样,TinyOS通过层的方式对它自身的软件组件进行组织和管理,处于较低层的组件就越接近与硬件,处于较高层的组件则较接近于应用程序。
一个完整的TinyOS系统应用程序就是由这些组件搭建而成,每一个组件都是一个独立的实体。
在TinyOS的编程中包含了三个概念:命令、事件和任务。
其中,命令和事件是组件之间交互通信的关键机制,任务则是用于传递组件外的消息。
下面将分别介绍这些概念:命令通常是向另一个组件请求服务时所发送的指令,举一个简单的例子就是要求传感器开始进行数据的采集。
与之相对比的是,事件通常是一个组件在完成自身的服务后向外发送的信号。
在传统的操作系统理论中,命令相当于是自上而下的调用而事件相当于回调。
TinyOS编程概览TinyOS操作系统,组件库和所有的应用程序都使用nesC语言进行编程,nesC是一个新型基于组件的结构化编程语言,主要用于进行传感器网络的嵌入式程序开发。
它采用类似于C语言的语法进行编程,因为TinyOS最初是使用汇编和C语言编写的,但是经过长期的使用,研究人员发现汇编和C语言并不能有效、方便地支持面向传感器网络的应用。
因此他们对C语言进行了一定扩展,提出了支持组件化编程的nesC语言,把组件化/模块化思想和基于事件驱动的模型结合在了一起。
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关键字声明。
计算机与现代化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]是多个具有感知、通信和计算能力的小型无线传感器网络节点自组织而成的新型网络,能够协作实时监测、感知和采集网络分布区域内的各种环境或监测对象信息,并对这些信息进行传输处理以获得所需信息。
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简介
最近看了篇关于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 Virtu al 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 tasks, 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.。