TinyOS是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。TinyOS的构件包括网络协议、分布式服务器、传感器驱动及数据识别工具。其良好的电源管理源于事件驱动执行模型,该模型也允许时序安排具有灵活性。TinyOS已被应用于多个平台和感应板中。
TinyOS目前的最新版本为TinyOS 2.0 beta2(计划在今年年底前发布TinyOS 2.0的非测试版本),该版本新增加的特点为:
支持mica2、micaZ、Telos revB/TMote Sky、IntelMote2、eyes和tinynode平台;
两个多次反射协议,Collection和Dissemination;
一个更加完善的源仲裁构架(resource arbitration framework),集成外围电源管理;
mica和telos平台族的非易失性存储;
三个总体存储器管理元件:Pool、Queue和Cache;
显著增强的传感支持;
mica族和IntelMote2的有效I2C栈。
目前有多个采用TinyOS的研究项目,如UCLA(加州大学洛杉矶分校)的Shahin Farshchi在进行一项以TinyOS为基础的无线神经界面研究。这样的系统在100Hz/频道的采样频率下可传感、放大、传输神经信号,系统小巧、成本低、重量轻、功率小。系统要求一个接收器接收、解调、显示传输的神经信号。在每秒8bit的采样率下,系统的速度可达5600。该速度可保证8个EEG频道、或1个速度为每秒5.6K采样频道的可靠传输。研究者目前的奋斗目标是提高该基于TinyOS的传感网络的数据传输速度,设计与被测对象连接的前端神经放大电路。
路易斯安娜州立大学和位于Baton Rouge的南方大学的Nian-Feng Tzeng博士正在研究应用于石油/气体开发和管理的UcoMS(Ubiquitous Computing and Monitoring System,泛计算和监控系统)。该系统适用于传感网络、无线通信和网格计算,主要功能包括帮助钻孔、操作数据记录和处理、在线平台信息发布和显示、设备监控/入侵检测、地震处理、复杂表面设备和管道的管理。也可使用UCoMS监控、维护淘汰的平台。
另外,Freescale正在其Zigbee开发板上测试TinyOS和TinyDB。
波士顿大学的Wei Li将其用于传感网络的控制和优化:
Brilliant Technology将其用于无线传感网络进行结构健康监测:
其他更多应用情况参见:
TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。它是基于一种组件(Component-Based)的架构方式,使得能够快速实现各种应用。
TinyOS的程序采用的是模块化设计,所以它的程序核心往往都很小(一般来说核心代码和数据大概在400 Bytes左右),能够突破传感器存储资源少的限制,这能够让TinyOS很有效的运行在无线传感器网络上并去执行相应的管理工作等。
TinyOS本身提供了一系列的组件,可以很简单方便的编制程序,用来获取和处理传感器的数据并通过无线电来传输信息。
可以把TinyOS看成是一个可以与传感器进行交互的API接口,它们之间可以进行各种通讯。
TinyOS在构建无线传感器网络时,它会有一个基地控制台,主要是用来控制各个传感器子节点,并聚集和处理它们所采集到的信息。TinyOS只要在控制台发出管理信息,然后由各个节点通过无线网络互相传递,最后达到协同一致的目的,比较方便。
TinyOS的特点
Componented-Based Architecture
TinyOS提供一系列可重用的组件,一个应用程序可以通过连接配置文件(A Wiring Specification)将各种组件连接起来,以完成它所需要的功能。
Event-Driven Architecture
TinyOS的应用程序都是基于事件驱动模式的,采用事件触发去唤醒传感器工作。
Tasks And Events Concurrency Model
tasks一般用在对于时间要求不是很高的应用中,且tasks之间是平等的,即在执行时是按顺序先后来得,而不能互相占先执行,一般为了减少tasks的运行时间,要求每一个task都很短小,能够使系统的负担较轻;
events一般用在对于时间的要求很严格的应用中,而且它可以占先优于tasks和其他events执行,它可以被一个操作的完成或是来自外部环境的事件触发,在TinyOS中一般由硬件中断处理来驱动事件。
Split-Phase Operations
在TinyOS中由于tasks 之间不能互相占先执行,所以TinyOS没有提供任何阻塞操作,为了让一个耗时较长的操作尽快完成,一般来说都是将对这个操作的需求和这个操作的完成分开来实现,以便获得较高的执行效率。
免责声明:本站文字信息和图片素材来源于互联网,仅用于学习参考,如内容侵权与违规,请联系我们进行删除,我们将在三个工作日内处理。联系邮箱:chuangshanghai#qq.com(把#换成@)