您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第6章 无线传感器网络操作系统
第6章无线传感器网络操作系统6.16.2无线传感器网络操作系统概述TinyOS操作系统MantisOS操作系统6.36.46.5SOS操作系统无线传感器网络操作系统的主要技术挑战216.1无线传感器网络操作系统概述3第六章无线传感器网络操作系统6.16.2无线传感器网络操作系统概述TinyOS操作系统MantisOS操作系统6.36.46.5SOS操作系统无线传感器网络操作系统的主要技术挑战416.2TinyOS操作系统526.2TinyOS操作系统66.2.1nesC语言基础6.2.2TinyOS的组件模型6.2.3TinyOS的通信模型6.2TinyOS操作系统6.2.4TinyOS1.0的安装与调试6.2.5TinyOS2.0的安装与调试6.2.6TinyOS的典型应用与分析76.2.1nesC语言基础1.简介2.接口(interface)3.组件(component)4.模块(module)5.配置(configuration)81.简介nesC是对C的扩展,它基于体现TinyOS的结构化概念和执行模型而设计。nesC在设计时强调组件化的编程思想,基本特性如下:①结构和内容的分离。②根据接口的设置说明组件功能。③组件通过接口彼此静态地相连。9一个nesC程序的基本组成是组件,一个组件是一个*.nc文件。一个应用程序(app)一般有一个称为Main的组件(类似于C的main函数),它调用其他的组件以实现程序的功能。1.简介10nesC的接口实际上是一系列声明的有名函数的集合,是连接不同组件的纽带。nesC的接口有双向性:它们描述多功能的两个组件(供给者和使用者)之间的交互渠道。接口声明了两组函数,命令(command)和事件(event)。接口的提供者实现命令,而接口的使用者实现事件。一个组件可以使用或提供多个接口。2.接口(interface)11任何一个nesC应用程序都是有一个或多个组件连接起来的。在nesC中有两种类型的组件,分别称为模块(module)和配置(configuration)。每个nesC应用程序都由一个顶级配置所描述,其内容就是将该应用程序所用到的所有组件连接起来,形成一个有机整体。3.组件(component)12模块(module)是使用C语言实现的组件。完成具体的功能,包括:(1)接口命令(command)、事件(event)(2)任务(Task)4.模块(module)13配置通过连接一系列其他组件来实现一个组件的规范。5.配置(configuration)14(1)配置中要包含组件列表用connection-list指出用来构建这一个配置的所有组件,用连接(wiring)来连接它们。(2)连接(wiring)连接用来把规范元素(接口、命令和事件)联系在一起。6.2.1nesC语言基础6.2.2TinyOS的组件模型6.2.3TinyOS的通信模型6.2TinyOS操作系统6.2.4TinyOS1.0的安装与调试6.2.5TinyOS2.0的安装与调试6.2.6TinyOS的典型应用与分析156.2.2TinyOS的组件模型TinyOS包含经过特殊设计的组件模型,其目标是高效的模块化和易于构造组件型应用软件。组件模型允许应用程序开发人员方便快捷地将独立组件组合到各层配置文件中,并在面向应用程序的顶层配置文件中完成应用的整体装配。166.2.2TinyOS的组件模型图6-1支持多跳无线通信的传感器应用程序的组件结构176.2.1nesC语言基础6.2.2TinyOS的组件模型6.2.3TinyOS的通信模型6.2TinyOS操作系统6.2.4TinyOS1.0的安装与调试6.2.5TinyOS2.0的安装与调试6.2.6TinyOS的典型应用与分析18TinyOS中的通信遵循主动消息(ActiveMessage,AM)通信模型,它是一个简单的、可扩展的、面向消息通信的高性能通信模式,一般广泛应用在并行分布式处理系统中。6.2.3TinyOS的通信模型19主动消息不但可以让应用程序开发者避免使用忙等待(Busy-Waiting)方式等待消息数据的到来;而且可以在通信和计算之间形成重叠,这可以极大地提高CPU的使用效率,并减少传感器节点的能耗。6.2.3TinyOS的通信模型20主动消息通信实现为一个TinyOS系统的组件,屏蔽了下层各种不同的通信硬件,为上层应用提供基本的、一致的通信原语,方便应用层序开发人员开发各种不同应用。6.2.3TinyOS的通信模型21TinyOS只能提供最基本的通信组件,最后由应用程序选择或定制所需要的特殊通信组件。6.2.1nesC语言基础6.2.2TinyOS的组件模型6.2.3TinyOS的通信模型6.2TinyOS操作系统6.2.4TinyOS1.0的安装与调试6.2.5TinyOS2.0的安装与调试6.2.6TinyOS的典型应用与分析221.手动安装2.wizard向导安装3.卸载4.TinyOS安装测试和试运行编译程序功能6.2.4TinyOS1.0的安装与调试236.2.1nesC语言基础6.2.2TinyOS的组件模型6.2.3TinyOS的通信模型6.2TinyOS操作系统6.2.4TinyOS1.0的安装与调试6.2.5TinyOS2.0的安装与调试6.2.6TinyOS的典型应用与分析241.安装JDK1.5从(若计算机上己安装过jdk1.6建议先将其卸解)。JDK的安装目录并不作要求,并且如果只是单纯安装TinyOS2.0可以不用去环境变量中配置JDK。6.2.5TinyOS2.0的安装与调试252.安装Cygwin从上下载Cygwin及其他安装所需package的压缩包cygwin-1.2a.tgz,在Windows环境下面直接用winRAR解压即可,双击解压后产生的文件夹中的setup.exe文件;6.2.5TinyOS2.0的安装与调试263.安装avr单片机工具和MSP430单片机工具从文件用如下命令安装即可:cd/tmprpm–ivhavr-binutils-2.15tinyos-3.cygwin.1386.rpmrpm–qarpm–ivhavr-gcc-3.4.3-1.cygwin.i386.rpmrpm–ivhavr-libc-1.2.3-1.cygwin.i386.rpmrpm–ivhavaricc-2.4-1.cygwin.i386.rpm6.2.5TinyOS2.0的安装与调试274.安装nesc和tinyos-tools使用rpm-ivh即可正常安装,不得以可以考虑采用-ignoreos参数。5.安装tinyos-2.0下载tinyos-2.0.2-2.cygwin.noarch.rpm,也是用rpm–ivhrpmname命令进行安装。6.2.5TinyOS2.0的安装与调试28在所有安装结束后,找到/etc/profile.d,进入该文件夹后,需要新建一个名为tinyos.sh的文件,建议复制其目录下的某个.sh文件,再修改名字,并将其中的内容用以下的内容替代#scriptforprofile.dforbashshells,adjustedforeachusers#installationbysubstituting/optfortheactualtinyostree#installationpointexportTOSROOT=/opt/tinyos-2.xexportTOSDIR=$TOSROOT/tosexportCLASSPATH=“cygpath-w。。。。。。6.2.5TinyOS2.0的安装与调试296.安装Graphviz下载graphviz-1.10.exe文件,双击下载的文件运行安装程序。桌面上的cygwin.bat应修改为后来所建目录里的cygwin.bat。双击即可运行,输入tos-check-env运行,出现如下信息:$tos-check-envPath:/opt/msp430/bin。。。。。。tos-check-envcompletedwithouterror.如上信息表明TinyOS基本安装成功,可以进行下一步的测试。6.2.5TinyOS2.0的安装与调试307.运行Blink测试程序(1)进入目录:\cygwin\opt\tinyos-2.x\apps\Blink。(2)编写文件:C:\ProgramFiles\cygwin\opt\tinyos-2.x\apps\Blink\Blink.py。(3)$makemicazsim。(4)$pythonBlink.py。(5)显示模拟结果。6.2.5TinyOS2.0的安装与调试317.运行Blink测试程序(1)进入目录:\cygwin\opt\tinyos-2.x\apps\Blink。(2)编写文件:C:\ProgramFiles\cygwin\opt\tinyos-2.x\apps\Blink\Blink.py。(3)$makemicazsim。(4)$pythonBlink.py。(5)显示模拟结果。6.2.5TinyOS2.0的安装与调试326.2.1nesC语言基础6.2.2TinyOS的组件模型6.2.3TinyOS的通信模型6.2TinyOS操作系统6.2.4TinyOS1.0的安装与调试6.2.5TinyOS2.0的安装与调试6.2.6TinyOS的典型应用与分析33应用程序Blink位于apps\Blink目录下,是一个简单的测试程序,作用是使传感器节点上红色的LED灯以1Hz的频率闪烁。下面通过实例来具体了解在TinyOS环境中使用nesC应用程序的结构和使用细节。Blink应用程序由两个组件组成:一个名为BlinkM.nc的模块和一个名为Blink.nc的配置。6.2.6TinyOS的典型应用与分析34BlinkM.nc是提供Blink应用程序实际实现的文件;Blink.nc是Blink应用程序的配置,也是nesC编译器用来生成可执行程序文件的源文件。6.2.6TinyOS的典型应用与分析35第六章无线传感器网络操作系统6.16.2无线传感器网络操作系统概述TinyOS操作系统MantisOS操作系统6.36.46.5SOS操作系统无线传感器网络操作系统的主要技术挑战366.3.1MantinsOS简介6.3.2MantinsOS的体系架构6.3.3MantinsOS应用程序开发与发布MantisOS操作系统6.33716.3.1MantinsOS简介386.3.1MantinsOS简介6.3.2MantinsOS的体系架构6.3.3MantinsOS应用程序开发与发布MantisOS操作系统6.3396.3.2MantinsOS的体系架构MantisOS的体系结构分为3个部分,即核心层、系统API层、网络栈和命令行服务器。其中核心层包括进程调度和管理、通信层及设备驱动层,系统API层与核心层进行交互,向上层提供应用程序接口,其体系结构如图6-2所示。406.3.2MantinsOS的体系架构图6-2MantisOS体系结构416.3.2MantinsOS的体系架构1.内核和进程调度MantisOS使用了类似于UNIX的进程调度模式,提供基于优先级的多线程调度和同一优先级中进行轮转调度服务。内核主要的全局数据结构是线程表,每个线程有一个条目。内核还为每一个优先级别的线程保存表头和表尾指针,可方便快速增加和删除。426.3.2MantinsOS的体系架构2.网络栈和通信层(COMM)MOS网络栈支持网络的第三层及第三层以上,如路由层、传输层和应用层。MOS的通信层为通信设备驱动程序提供统一的接口(如串口、USB或者无线通信设备),如图6-3所示。436.3.2MantinsO
本文标题:第6章 无线传感器网络操作系统
链接地址:https://www.777doc.com/doc-3217333 .html