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
现有的WSN操作系统
• 当前已有多个有代表性的开源的无线 传感器网络操作系统:
Tiny OS 2.1:美国加州大学伯克利分校开发 Mantis OS 0.9.5 (Multimodal Networks of Insitu Sensors) :美国克罗拉多大学开发 SOS 1.7:美国加州大学洛杉矶分校开发
– 命令(command):接口的提供者必须实现它们; – 事件(event):接口的使用者必须实现它们 。
19
组件,接口,命令和事件
• 接口的特点:
Provides未必一定有组件使用,但uses一定要有人提供,否则编 译会提示出错。在动态组件配置语言中uses也可以动态配置。 接口可以连接多个同样的接口,叫做多扇入/扇出。 一个module可以同时提供一组相同的接口,又称参数化接口,表 明该Module可提供多份同类资源,能够同时给多个组件分享。
13
TinyOS的技术特点-3
分阶段作业(Split-Phase Operations)
TinyOS没有提供任何阻塞操作,为了让一个耗时较长的操 作尽快完成,一般来说都是将对这个操作的请求和这个操 作的完成分开来实现,以便获得较高的执行效率。
主动消息通信(Active Message)
每一个消息都维护一个应用层的处理程序。当节点收到消 息后,就会把消息中的数据作为参数,传递给应用层的处 理程序,由其完成消息数据的解析、计算处理或发送响应 消息等工作。
9
TinyOS的设计理念
• 由于WSN的特殊性,研究人员在设计TinyOS系统 时就提出以下几个原则:
– 1)能在有限的资源上运行:要求执行模式允许在单一 的协议栈上运行; – 2)允许高度的并发性:要求执行模式能对事件作出快 速的直接响应; – 3)适应硬件升级:要求组件和执行模式能够应对硬件/ 软件的替换; – 4)支持多样化的应用程序:要求能够根据实际需要, 裁减操作系统的服务; – 5)鲁棒性强:要求通过组件间有限的交互渠道,就能 应对各种复杂情况; – 6)支持一系列平台:要求操作系统的服务具有可移植 性。 10
Tutorial实验手册
TinyOSTinyOS是一种专门为嵌入式无线传感器网络所涉及的开源操作系统,它为用户在无线传感器网络有限的资源中能够进行快速的创新和扩展提供了强大的基于组件的架构。
TinyOS 的组件库包括了网络协议,发送服务、传感器驱动和数据采集工具等组件,这些组件都可以在用户的应用程序中被调用。
在这里,TinyOS并不是一个传统意义上的操作系统,它还是一个专门为嵌入式系统所设计的编程框架和用于传感器网络编程的组件库,能够使得基于TinyOS的应用程序足够的小。
同时,TinyOS不支持文件系统,仅仅支持静态内存分配,扩展了一个简单的任务模型并提供了最小设备和网络的抽象。
TinyOS采用了基于组件的编程模型(nesC语言)。
与其他操作系统一样,TinyOS通过层的方式对它自身的软件组件进行组织和管理,处于较低层的组件就越接近与硬件,处于较高层的组件则较接近于应用程序。
一个完整的TinyOS系统应用程序就是由这些组件搭建而成,每一个组件都是一个独立的实体。
在TinyOS的编程中包含了三个概念:命令、事件和任务。
其中,命令和事件是组件之间交互通信的关键机制,任务则是用于传递组件外的消息。
下面将分别介绍这些概念:命令通常是向另一个组件请求服务时所发送的指令,举一个简单的例子就是要求传感器开始进行数据的采集。
与之相对比的是,事件通常是一个组件在完成自身的服务后向外发送的信号。
在传统的操作系统理论中,命令相当于是自上而下的调用而事件相当于回调。
TinyOS编程概览TinyOS操作系统,组件库和所有的应用程序都使用nesC语言进行编程,nesC是一个新型基于组件的结构化编程语言,主要用于进行传感器网络的嵌入式程序开发。
它采用类似于C语言的语法进行编程,因为TinyOS最初是使用汇编和C语言编写的,但是经过长期的使用,研究人员发现汇编和C语言并不能有效、方便地支持面向传感器网络的应用。
因此他们对C语言进行了一定扩展,提出了支持组件化编程的nesC语言,把组件化/模块化思想和基于事件驱动的模型结合在了一起。
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]是多个具有感知、通信和计算能力的小型无线传感器网络节点自组织而成的新型网络,能够协作实时监测、感知和采集网络分布区域内的各种环境或监测对象信息,并对这些信息进行传输处理以获得所需信息。
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综述
无线传感器网络(Wireless Sensor Networks,WSN)是现代传感技术和无 线通信技术的结合体。在WSN中,大量的低功耗、低成本、紧凑型传感器节点以 自组织和多跳的方式进行通信,收集和处理环境信息,以实现各种应用,如环境 监测、军事侦察、智能家居等。为了有效管理和协调这些节点,需要一个相应的 操作系统。TinyOS就是一种专为WSN设计的开源、分布式、事件驱动的操作系统。
通信机方面,TinyOS支持多种无线通信协议,如ZigBee、IEEE 802.15.4 等。它采用了轻量级的通信协议栈,实现了高效、可靠的无线通信,并降低了功 耗。
TinyOS应用程序开发
使用TinyOS开发应用程序需要对TinyOS的编程模型有一定的了解。TinyOS 应用程序的基本结构包括硬件配置、任务定义、事件处理和通信协议等几个部分。
TinyOS内核分析
TinyOS的内核主要包括任务管理、内存分配和通信机制等几个部分。
任务管理方面,TinyOS采用了基于任务的调度模式,每个任务都有自己的优 先级和调度参数。系统根据任务的优先级和调度参数动态地调度任务执行,同时 通过任务间的同步和通信机制来实现协同工作。
内存分配方面,TinyOS采用了静态内存分配方式,每个任务都有自己的内存 空间,避免了对全局内存的竞争访问,提高了系统的效率和可靠性。
3、AI集成:人工智能技术在无线传感器网络中的应用前景广阔。未来 TinyOS可以集成AI算法和模型,实现对传感器数据的智能分析和处理,提高无线 传感器网络的智能化水平。
4、低功耗优化:低功耗一直是无线传感器网络追求的重要指标之一。未来 TinyOS可以通过进一步优化事件驱动机制、节能策略等方面来降低节点功耗,延 长网络寿命。
TinyOS操作系统的实现机制
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的汇聚树协议概述
②源节点具有较大的重传次数以保证数据包传输可靠性
•收包率PRR:PRR=Packet_received/Packet_send
ETX 1 /(df dr )
一条路径的ETX为构成该条路径的所有链路的ETX之和,即在 这条路径上成功传输一个数据包所需要的传输次数。图显示 了从源节点A到目的节点B的三条路径:(假设每条链路ACK的 收包率dr=1) ①路径A-B,ETX=10 ②路径A-C-B,在链路A-C上,ETX= 1.25,在链路C-B上,ETX=1.25,则 ETX=2.5
• TinyOS是UC Berkeley(加州大学伯克利分校)开发的开放 源代码操作系统,专为嵌入式无线传感网络设计,操作系 统基于构件(component-based)的架构使得快速的更新成 为可能,而这又减小了受传感网络存储器限制的代码长度 。Tiny OS是一个具备较高专业性,专门为低功耗无线设 备设计的操作系统,主要应用于传感器网络、普适计算、 个人局域网、智能家居和智能测量等领域。
本地或远程控制方便用户管理家用设备2tinyos操作系统简介?tinyos是ucberkeley加州大学伯克利分校开发的开放源代码操作系统专为嵌入式无线传感网络设计操作系统基于构件componentbased的架构使得快速的更新成为可能而这又减小了受传感网络存储器限制的代码长度
TinyOS的汇聚树协议概述
基于TinyOS实现的CTP协议总体框架
(1)链路质量估计器模块 负责估计节点到邻居节点的单跳ETX.CTP协议的链路估 计器使用路由帧和数据包两种机制来评估链路质量。
ETX ETX (1 ) ETXold
(2)路由引擎模块
负责维护一个路由表,并在路由表中按照一定的原则 选择链路质量最好的节点作为下一跳传输数据。基于TinyOS 实现的CTP路由协议,利用链路估计器模块提供的信息,选 择路由表中路径ETX最小的邻居节点作为下一跳。
物联网八大操作系统
物联网八大操作系统在当今数字化的时代,物联网(Internet of Things,简称 IoT)正以前所未有的速度改变着我们的生活和工作方式。
而在物联网的世界中,操作系统扮演着至关重要的角色,它们就像是物联网设备的“大脑”,负责管理和协调各种硬件资源,运行应用程序,以及实现设备之间的通信和数据交换。
下面,让我们一起来了解一下物联网领域中的八大操作系统。
一、Android ThingsAndroid Things 是谷歌推出的一款专门为物联网设备打造的操作系统。
它基于 Android 操作系统,具有强大的生态系统和丰富的开发资源。
Android Things 支持多种硬件平台,包括树莓派、英特尔 Edison 等,使得开发者能够轻松地将现有的 Android 开发技能应用到物联网项目中。
此外,Android Things 还提供了一系列的 API 和工具,用于连接传感器、执行器和云服务,为开发者构建智能物联网设备提供了便利。
二、Windows 10 IoT Core微软的 Windows 10 IoT Core 是 Windows 10 操作系统的一个物联网版本。
它旨在为小型、低功耗的物联网设备提供一个熟悉的 Windows开发环境。
Windows 10 IoT Core 支持多种硬件架构,如 ARM 和 x86,并且可以运行 UWP(Universal Windows Platform)应用程序。
这使得开发者能够利用现有的 Windows 开发工具和技术,快速创建具有丰富用户界面和强大功能的物联网设备。
三、LinuxLinux 是一个开源的操作系统,在物联网领域也有着广泛的应用。
由于其高度的可定制性和灵活性,Linux 可以被裁剪和优化以适应各种不同的物联网设备需求。
无论是智能家居设备、工业自动化设备还是智能交通系统,都可以基于 Linux 进行开发。
此外,Linux 拥有庞大的开源社区和丰富的驱动程序资源,为开发者提供了强大的支持。
第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工作;单一任务栈;内核非常简单,甚至在严格意义上说,称不上内核;没有进程管理和虚拟存储。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.。