tinyos操作系统开发技术及实践(西电版)第1章tinyos概述

上传人:tian****1990 文档编号:81741163 上传时间:2019-02-22 格式:PPT 页数:55 大小:1.14MB
返回 下载 相关 举报
tinyos操作系统开发技术及实践(西电版)第1章tinyos概述_第1页
第1页 / 共55页
tinyos操作系统开发技术及实践(西电版)第1章tinyos概述_第2页
第2页 / 共55页
tinyos操作系统开发技术及实践(西电版)第1章tinyos概述_第3页
第3页 / 共55页
tinyos操作系统开发技术及实践(西电版)第1章tinyos概述_第4页
第4页 / 共55页
tinyos操作系统开发技术及实践(西电版)第1章tinyos概述_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《tinyos操作系统开发技术及实践(西电版)第1章tinyos概述》由会员分享,可在线阅读,更多相关《tinyos操作系统开发技术及实践(西电版)第1章tinyos概述(55页珍藏版)》请在金锄头文库上搜索。

1、第1章 TinyOS概述,1.1 无线传感器网络 1.2 WSN操作系统 1.3 TinyOS操作系统 1.4 开发环境简介 1.5 第一个TinyOS程序 小结,1.1 无线传感器网络 1.1.1 关键技术 当前无线传感网研究热点主要集中在以下几个方面,它们也被普遍认为是无线传感网的关键技术: 时间同步:是完成实时信息采集的基本要求,并且是提高定位精度的关键手段。 拓扑控制:在满足网络覆盖度和连通度的前提下,通过功率控制或层次拓扑控制,最小化网络的能量消耗。 定位技术:包括节点自定位和网络区域内的目标定位跟踪。 网络安全:密钥管理、身份认证和数据加密方法、攻击检测与抵御、安全路由协议和隐私问

2、题。,网络通信:核心问题是能量有效性或能力节省。主要热点集中在网络层和链路层,例如链路层MAC协议如何节省能力,网络层新路由协议提出或路由协议改进。 系统软件:WSN是深度嵌入的网络系统,因此要求操作系统既要能完成网络系统要求的各项功能,又不能过于复杂。目前看,TinyOS是最成功的WSN专用系统。 数据管理:包括分布式动态实时数据管理以及信息融合。 能量供给:包括能量的获取和存储。,1.1.2 特点 无线传感网与传统的无线网络(如Ad hoc网络、GSM、CDMA、3G、Beyond3G、4G、WLAN和WMAN等)有着不同的设计思想,它的特点主要表现在以下几方面: 节点规模:节点数目庞大,

3、可以达到成千上万。 节点部署:节点在部署完成之后大部分节点不会再移动,网络拓扑结构是静态的。 工作模式:多对一通信,路由协议以数据为中心。 无线传感网的详细特点介绍请参见本书所属系列教材无线传感器网络技术原理及应用的第一章。,1.2 WSN操作系统 无线传感器网络操作系统(简称为WSN操作系统或WSNOS)是无线传感器网络的关键支撑技术之一(即系统软件技术)。WSN操作系统可以有效地管理硬件资源和执行任务,降低传感器网络的应用开发难度,提高软件的重用性。 当前比较流行WSN操作系统有TinyOS、Contiki、MANTIS、SOS,它们的特点及对比如表1-1所示。,1.3 TinyOS操作系

4、统 1.3.1 起源与发展 1. 项目产生 TinyOS最初是由美国著名的加利福尼亚大学伯克利分校(UCB)专门为无线传感器网络定制研发的嵌入式操作系统。事实上它也是UCB的科学家David Culler领导的UCB研究小组与Intel Research合作实验室的杰作。,2. 项目发展 TinyOS是开源项目,目前已不再由UCB单独开发和维护,从0.4版到2.0版,TinyOS由SourceF(全球最大开源软件开发平台和仓库)的一个开放项目,逐渐演变成了一个国际合作项目。从2012年12月开始,TinyOS的开发和维护(包括开发邮件列表和BUG跟踪记录)逐渐过渡到GitHub(一个逐渐流行起

5、来的分布式版本控制系统)上,至2013年1月项目迁移完毕。TinyOS在GitHub上的虚拟主机地址是:https:/ tinyos。 TinyOS官方网站是:http:/,其产品标志如图1-1所示。,图1-1 TinyOS产品标志,3. 版本变化 从1999年TinyOS平台(官方取名为WEC)由UBC开发后,到2003年8月TinyOS的最新版本2.1.2,TinyOS不断改进。其中,在1.0版本以前TinyOS都是由C语言写成(混合少量Perl脚本)的,后来用nesC语言重新编写。其重要版本变化情况如表1-2所示。,1.3.2 体系结构 TinyOS操作系统采用组件式分层体系结构,这种体

6、系结构可以快速地实现各种应用,详细内容请参见本书第3章。,1.3.3 硬件支持 TinyOS可运行于不同的硬件平台和微处理器上,并支持多款射频芯片,且支持NOR Flash设备。以2.1.1版为例的TinyOS支持以下硬件: 硬件平台:TinyOS支持多达十几种不同的硬件平台(每种平台代表着一类处理器、射频、存储和IO引脚的组合)。TinyOS支持的硬件平台有:telos家族(包括telosa和telosb)、micaZ、IRIS、shimmer、epic、mulle、tinynode、span以及iMote2等。 微处理器:TI公司的MSP430、Atmel公司的ATMega128、Inte

7、l公司的px27ax微处理器。,射频芯片:TI的CC1000和CC2420(经过移植后还可支持CC2430和CC2530)、Atmel公司的RF212和RF230、Infineon公司的TDA5250、Semtech公司的XE1205。 Flash芯片:TinyOS支持两款NOR Flash芯片,即Atmel公司的AT45DB芯片和STMicroelectronics公司的STM25P芯片。,1.3.4 网络功能 TinyOS有较为丰富的网络支持,主要包括多跳路由协议和最新的IPv6协议: 多跳路由协议,主要包括数据分发协议和汇聚协议。 分发协议:用于网络中数据共享,网络中每个节点都保存一份数

8、据的副本。TinyOS主要支持两种分发协议库,即Drip和DIP。 汇聚协议:用于将网络中的数据收集到某个点(称为root或根节点),典型的用法如将通过root传输给PC。TinyOS支持的标准汇聚协议叫“汇聚树协议”(英语简称CTP)。 IPv6,即用于无线通信网络的6LoWPAN(2.1.1版本以后)。,1.3.5 特点 1. 优点 TinyOS的优点体现在以下几方面: TinyOS有成千上万的用户,现有的体系结构已有5年以上的历史,代码可靠、有效,错误极少,这对工程项目来说至关重要。 支持低功耗和并发执行模型,因此特别适合于无线传感器节点。 支持技术上优异的网络协议,如汇聚协议CTP和6

9、LoWPAN协议(用于无线网络的IPv6协议)等。,2. 缺点 TinyOS有两大弱点: 它的组件式编程模型对于新手来说需要一段时间来适应。 对于计算密集型程序需要程序员将计算分成若干小部分,逐个执行,即需要使用TinyOS的“分阶段作业”机制(Split Phase),此类程序比较难写。,1.4 开发环境简介 1.4.1 开发环境 TinyOS本质上是一个编程框架,它的完整开发环境包括以下内容: 操作系统:TinyOS需要在Linux环境下进行开发,如果要在Windows上进行开发,需要安装模拟Linux操作系统的Cygwin程序包。 JAVA JDK:TinyOS部分工具命令需要JAVA支

10、持,另外JAVA还可用于某个硬件平台(如mote)与PC机进行数据交互的模拟程序编写,以方便用户观看运行结果。 TinyOS操作系统:TinyOS编程框架本身。,编译工具链:当前官方发布的是三个工具,包括nesC语言编译器、Deputy工具和tinyos-tools。 GraphViz可视化工具:TinyOS编译工具包括一个nesdoc工具,可以将用户nesC源码中的组件调用关系生成HTML文档,期间用到的GraphViz工具可绘制“调用关系图”。 本地编译器:nesC编译器生成的C程序最终还需要特定硬件平台的编译器编译成硬件可运行的二进制代码,例如若使用CC2530,可安装IAR For 5

11、1编译器。 代码编辑器:在Linux下可以使用vim、emacs、gedit等,如果是在Windows下使用Cygwin进行TinyOS开发,推荐使用EditPlus。,本书使用的开发环境如下: 硬件平台:与本书配套的Zigbee开发套件。 操作系统:基于Windows的Cygwin。 TinyOS操作系统:tinyos-2.1.0-2.cygwin.noarch.rpm。 TinyOS工具链:nesc-1.3.0-1.cygwin.i386.rpm、tinyos-deputy-1.1-1.cygwin.i386.rpm、tinyos-tools-1.3.0-1.cygwin.i386.rpm

12、。 本地编译器:IAR For 51。 代码编辑器:EditPlus 3.30。 其他工具:jdk1.6、graphviz-1.10。 开发环境的详细安装过程,请参见本书实践篇。,1.4.2 编程特点 TinyOS操作系统由nesC语言写成,从程序员角度看,它的基本作用就是提供了一组API接口(包括可调用的组件库、部分C语言结构体和数据类型),以及一些编程规则。具体来说,基于nesC语言的TinyOS编程行为具有以下特点: 平台化编程:实际开发时,首先要根据用户选定的硬件平台移植TinyOS,后续开发都在这个“特定平台”上进行工作(本书所有示例是基于TI CC2530芯片的代号为mytinyo

13、s的开发平台)。,兼容C语法:使用nesC进行TinyOS编程时可以使用C语言中几乎所有的结构体、函数等语法。事实上,nesC仅仅是在较高的层次上增加了一些新的数据结构(即接口和组件)和并发执行模型。 组件式编程:组件类似于面向对象语言(如C+或JAVA)的类对象,可以提供或使用接口(interface),并且有自己的内部实现(implementation),程序员使用代码确定组件之间的连接关系。与C+或JAVA不同的是,组件对象的实例化是在编译时进行的。 任务式编程:TinyOS提供一个简单的延期任务机制,即用task关键字修饰的任务函数使用post关键字投递后,可以被TinyOS的任务调度

14、程序调度执行。任务可以使组件在“后台”运行,而不是立即执行。,分阶段作业编程:当编写一个需要长时间运行的作业代码时,将其分为两个阶段,即调用和完成调用。例如一个读传感器工作,可以写成两个函数,read和readDone函数,当read函数读完时,在函数内部通过任务给调用者激发一个readDone事件。 事件驱动编程:事件机制导致代码的执行路径是不可预知的,不同的事件执行不同的代码片段。TinyOS有两种事件:硬件中断事件和程序事件(由程序本身使用signal关键字来激发的事件)。 并发执行模型:nesC将代码区分为同步(sync)代码和异步(async)代码。其中同步代码仅由任务来执行;异步代

15、码可被任务和中断处理程序执行,nesC编译器检查并确保这个规则被执行。 关于TinyOS详细编程语法(即nesC编程语法)请参见本书第2章。,1.4.3 目录结构 1. Cygwin目录 Cygwin是一个在Windows操作系统上运行的UNIX/Linux模拟环境,它对于Windows用户学习UNIX/Linux操作或开发非常有用。由于Cygwin是模拟UNIX/Linux,因此它的目录结构与真实的UNIX/Linux非常相似。Cygwin在Windows下安装完毕后,在资源管理器中看到的目录结构如图1-2所示。 各子目录的说明如表1-3所示。,图1-2 Cygwin目录结构,2. Tiny

16、OS源码目录 TinyOS源码默认安装在Cygwin下的opt目录,如图1-3所示。,图1-3 TinyOS-2.x源码目录,其中TinyOS的各子目录说明如表1-4所示。,3. mytinyos源码目录 本书配套的硬件设备是基于CC2530的开发板,官方发布的TinyOS目前还不支持TI CC2530芯片,因此本书所用的mytinyos是移植后的平台,详细移植过程请参见本书第4章。 一般情况下,为了方便发布移植好的新平台,经常把新平台的相关源码和脚本文件独立成一个目录,放在Cygwin的“/opt”目录内,并且尽量按照TinyOS官方目录结构进行安排其子目录。mytinyos源码目录结构如图1-4所示。,图1-4 MyTinyOS源码目录结构,1.5 第一个TinyOS程序 1.5.1 程序开发过程 TinyOS应用程序一般开

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号