TinyOS 实验报告

合集下载

TinyOS任务调度的研究与改进

TinyOS任务调度的研究与改进

TinyOS任务调度的研究与改进李明,丁恩杰中国矿业大学信电学院,江苏徐州(221008)E-mail:lmsiee@摘要:本文介绍了TinyOS任务调度机制,指出TinyOS调度策略的特点及不足。

采用一种改进式NPEDF算法对TinyOS的调度器进行实时性改造,并详细描述了具体改进方案。

实验测试的结果证明了这种改进策略的有效性。

关键词:TinyOS,任务调度,实时性,NPEDF中图分类号:TP316.891.引言传感器技术、嵌入式计算技术、微电子技术、无线通信技术以及半导体与微机电系统制造技术的飞速发展和相互融合使得具有感知、计算和通信能力的低功耗多功能无线传感器网络得以实现。

近年来,无线传感器网络(WSN-Wireless Sensor Networks)被广泛应用于国防军事、国家安全、环境科学、交通管理、医疗卫生、反恐、灾害监测等领域[1]。

无线传感器网络操作系统(WSNOS)是无线传感器网络的支撑技术之一。

它是WSN 应用程序的基本软件环境,核心是任务调度。

目前面向无线传感器网络的操作系统主要有TinyOS、MANTIS OS[2]、SOS、SenOS[3]、PEEROS[4]等,其中最为流行的是加州大学伯克利分校开发的TinyOS[5]。

它采用基于组件的架构方式,在传感器网络天生就严格限制内存的条件下,可以用最小代码快速来创新和实现各种应用。

目前,它已经被成功的应用到多种硬件平台上,具有很高的应用价值和研究意义。

本文主要研究了TinyOS现有的任务调度策略,在分析出应用TinyOS可能存在的问题的基础上,结合嵌入式实时操作系统的相关理论,提出了一种改进式NPEDF算法,并用这种算法对TinyOS调度器进行实时性改造。

最后,通过实验对改进前后的TinyOS进行测试,以此来验证本文采用的调度算法对无线传感器网络通信性能的影响。

2.TinyOS 2.0任务调度策略TinyOS 2.0采用任务和事件驱动相结合的两级并发模型,任务调度策略采用简单的先进先出(FIFO)算法。

物联网TinyOS课程教学研究与探索

物联网TinyOS课程教学研究与探索

物联网TinyOS课程教学研究与探索一、背景随着物联网技术的不断发展和普及,物联网教育也得到了越来越多的重视。

物联网作为未来社会的一大趋势,已经成为不少院校的教学内容。

而TinyOS作为一个广泛应用于物联网领域的操作系统,也应运而生,在物联网教育中得到了广泛的应用。

如何深入浅出地帮助学生了解这一系统,并提高他们的动手实践能力,是一个亟待解决的问题。

二、TinyOS课程介绍1. 课程目的本课程主要旨在帮助学生了解物联网操作系统TinyOS的基础知识,掌握其应用技能,并能在实际项目中应用它。

具体来说,本课程主要分为以下几个部分:•TinyOS的基础知识介绍•硬件平台设计与搭建•TinyOS应用程序开发实践•基于TinyOS的物联网应用实践2. 课程内容2.1 TinyOS的基础知识介绍介绍TinyOS作为一种受限操作系统(RTOS)的特点及其应用的背景、优缺点等。

主要内容包括:•TinyOS的概述及其功能•TinyOS的架构设计•TinyOS应用场景2.2 硬件平台设计与搭建介绍物联网常用的硬件平台、系统架构及相应的软件开发环境配置等内容。

主要内容包括:•操作系统选型及其相关参数设置•TinyOS开发环境搭建•节点硬件设计及构建方法2.3 TinyOS应用程序开发实践教授如何基于TinyOS进行应用程序开发,包括事件驱动型应用程序开发、多任务并发控制程序开发、通信协议开发等。

主要内容包括:•TinyOS应用开发框架介绍•事件驱动型应用程序开发实践•多任务并发控制程序开发实践•通信协议开发实践2.4 基于TinyOS的物联网应用实践介绍如何应用TinyOS完成物联网应用项目的开发,包括物联网应用程序设计、数据处理方法、物联网协议实现等内容。

主要内容包括:•物联网应用程序设计•数据处理方法•物联网协议实现三、TinyOS课程教学探索1. 以实践为主导TinyOS课程要求以实践为主导。

通过设计和完成小型实验和项目,学生才能够全面深入地了解其原理和实践方法。

TinyOS无线传感器网络操作系统分析

TinyOS无线传感器网络操作系统分析

TinyOS无线传感器网络操作系统分析0 引言无线传感器网络是由部署在监测区域内的大量廉价微型传感器节点,通过无线通信方式组成一个多跳的自组织的网络系统,其目的是协同感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观测者。

无线传感器网络技术研究涉及到多个热点学科的前沿领域,比如传感器技术、现代网络技术、嵌入式计算机技术、无线通信技术等。

由于无线传感器网络在工业监测、环境检测、医疗监护、军事侦察等众多的领域都有着广阔的应用前景,因而引起了世界各国工业界,学术界和军事部门的重视,并且迅速成为当今世界研究的热点之一。

1 无线传感器网络的主要特点传感器网络节点硬件一般都由数据采集、数据处理、数据收发和电源等四个单元组成。

数据采集单元通过传感器采集外界数据并将其转化为数字信号;数据处理单元是节点的核心模块,负责协调节点各部分的工作,如对数据采集单元采集的数据进行必要的处理和保存,以及数据收发单元工作模式的设置等;数据收发单元负责数据的无线传输以及与数据处理单元的数据交互。

上述四大基本模块与相应的操作系统、协议栈和应用程序共同构成一个基本的无线传感器网络节点,众多的网络节点分布在一起,就可以完成无线传感网络的基本功能。

在软件设计方面,本系统以专用嵌入式实时操作系统为依托,来管理、协调传感器节点各硬件部分的工作。

上层应用以及各层的通信协议都以节能为中心,必要时可以牺牲其他的一些网络性能指标来获得更高的电源效率。

图1所示是一个传感器网络节点的基本组成。

传统的无线网络设计基本上都是为了同时满足人们各种各样的需要,如语音、视频、图像等。

而无线传感器网络一般是为了某个特定的需要而设计的,它是一种基于应用的无线网络,与移动通信网、无线局域网、Bluetooth相比,无线传感器网络具有以下主要特点:(1)电源能量有限:无线网络中,每个节点的电源都是有限的,网络大多工作在无人区或者对人体有伤害的恶劣环境中,一般更换电源几乎都是很困难的事。

nesC实验报告一

nesC实验报告一

nesC实验报告一南昌航空大学实验报告二O 一六年 3 月28 日课程名称:TinyOS与nesC编程实验名称:CC2530平台上TinyOS编程基础班级:姓名:指导教师评定:签名:一、实验目的:1.加深和巩固对于TinyOS编程方法的理解和掌握2.初步的认识TinyOS编程的基础和简单的程序编写3.通过本实验能够初步的了解和掌握TinyOS编程的整个过程4.提高上机和编程过程中处理具体问题的能力二、实验要求:1.实验要求自己独立的完成;2.编写和调试过程中出现的问题要做好记录,并事后总结到报告中3.实验程序调试完成后,用给定的平台进行测试,由老师检查测试结果,并给予相应的成绩4.实验完成后,要上交实验报告。

三、实验内容:1.开发一个新的应用,节点每一分种工作5秒,以PM2模式休眠55秒。

在工作期间,控制LED以1秒为周期闪烁。

以下述顺序完成这个新应用的开发。

1.首先使得应用能够以1秒为周期控制LED闪烁;(1)顶层配置文件MyLEDAppC.nc顶层配置组件名为MyLEDAppC,实现部分使用到四个组件,分别是MainC组件、LedsC组件、毫秒级定时器TimerMilliC()组件以及应用程序配置组件。

其中应用程序配置组件进行重命名为App,TimerMilliC组件为通用组件,因此使用new关键字进行实例化并重命名为Timer1。

在声明了所需使用的组件之后,需要进行对应接口的连接,依次连接到MainC组件的Boot接口,LedsC组件的Leds接口和TimermilliC()组件的Timer接口,分别完成通知应用程序MyLEDAppM模块组件系统启动完毕、控制LED灯和启动定时器的功能。

(2)模块组件MyLEDAppM.nc模块组件名为MyLEDAppM,声明部分使用在配置组件中连接的三个接口,实现部分实现两个事件,分别是Boot.booted()事件和Timer1.fired()事件,在booted()事件中实现了定时器的启动和LED灯的初始化(关闭),通过startPeriodic(1024)命令设定定时时间为1秒,在fired()事件中实现了LED灯状态的改变,当定时时间一到触发fired()事件,LED灯状态改变,实现间隔一秒闪烁。

TinyOS操作系统开发技术及实践(西电版)实践4 TinyOS应用开发

TinyOS操作系统开发技术及实践(西电版)实践4  TinyOS应用开发
12
实践4 TinyOS应用开发 (2) 创建并编写ADSensorSendC.nc文件。 使用EditPlus程序在ADRadioSend目录下新建
ADSensorSendC.nc文件,并输入如下代码:
#include “Adc.h” #include “BlinkToRadio.h” #include <Timer.h>
实践4 TinyOS应用开发
TinyOS操作系统开发技术及实践(西 电版)实践4 TinyOS应用开发
1
实践4 TinyOS应用开发
实践指导
➢ 实践4.G.1 实现CC2530光敏信息的采集传输及向PC机传送数据,需
要完成以下工作: (1) 通过AD进行光敏信息的采集。 (2) 通过射频将数据发送至接收者。 (3) 接收者接收到数据之后,将接收的数据通过串口发送
interface Leds; interface Packet; interface AMPacket; interface AMSend; interface SplitControl as AMControl; interface PacketAcknowledgements;
14
实践4 TinyOS应用开发
11
实践4 TinyOS应用开发
ADSensorSendC.UartStream -> PlatformSerialC.UartStream; //LED组件 ADSensorSendC.Leds->LedsC.Leds; /*射频发送组件*/ ADSensorSendC.Packet->ActiveMessageC; ADSensorSendC.AMPacket->ActiveMessageC; ADSensorSendC.AMSend>ActiveMessageC.AMSend[uniqueCount("ADRadioSend")]; ADSensorSendC.AMControl->ActiveMessageC; ADSensorSendC.PacketAcknowledgements->ActiveMessageC; }

TinyOS 实验报告

TinyOS 实验报告

实验一.Downloading and installing TinyOS一、安装JDK(在平台ubuntu12.10搭建)1.编译一个源文件终端收入命令:sudo gedit/etc/apt/sources.list.d/partner.list2.在partner.list文件中添加:终端输入命令:deb /ubuntu/hardy multiverse3.保存该文件并退出,执行下列程序:终端输入命令:sudo apt-get update4.下载JDK终端输入命令:sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk5.配置JDK环境变量在主文件下的.bashrc或者.profile中添加下面语句,或者在终端输入。

(关于路径参照自己解压路径)export JAVA_HOME=/usr/lib/jvm/java-6-sunexport PATH=$JAVA_HOME/bin:$PATHexport classPath=/usr/lib/jvm/java-6-sun6.在终端中输入java,javac看是否配置正确终端输入命令:java或者javac二、安装tinyOS-2.1.11.安装python-dev g++终端输入命令:sudo apt-get install python-dev g++2.查看python的版本终端输入命令:python–version(本机是Python2.7.3)3.安装tinyos①.在主文件夹/etc/apt/sources.list中添加一下两行:deb /tinyos/dists/ubuntu natty maindeb /tinyos oneiric main终端输入命令:sudo gedit/etc/apt/sources.list(sources.list是只读文件,所以必须有root 权限)②.下载安装tinyos-2.1.1终端输入命令:sudo apt-get install tinyos-2.1.1安装完成后,打开/opt/tinyos-2.1.1/support/make/sim.extra,找到PYTHON_VERSION=2.5(本机),将2.5换成2.7③.终端输入命令:sudo gedit/opt/tinyos-2.1.1/tinyos.env,在tinyos.env中添加④.在主文件夹/.bashrc中添加:source/opt/tinyos-2.1.1/tinyos.envexport CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.⑤.在/etc/profile.d/tinyos.env同样添加:终端输入命令:sudo gedit/etc/profile.d/tinyos.env⑥.安装JNI终端输入命令:tos-install-jni终端输入命令:tos-check-env会出现java和graphviz版本报错,可以忽略。

微机系统实验报告

微机系统实验报告

微机系统实验报告一、实验目的本次微机系统实验的主要目的是通过实际操作和研究,深入了解微机系统的组成、工作原理以及相关的硬件和软件技术,提高我们对计算机系统的理解和应用能力。

二、实验设备与环境本次实验所使用的设备包括一台配备有英特尔酷睿 i5 处理器、8GB 内存、512GB 固态硬盘的微机,以及相关的实验仪器和软件,如逻辑分析仪、示波器、编译软件等。

实验环境为 Windows 10 操作系统。

三、实验内容与步骤(一)微机系统硬件组成的认识首先,我们对微机系统的硬件组成进行了详细的观察和学习。

打开计算机主机箱,我们可以看到主板、CPU、内存、硬盘、显卡、声卡等主要硬件组件。

通过观察它们的外观、接口和标识,了解了它们的功能和作用。

(二)CPU 性能测试使用专门的 CPU 性能测试软件,对微机的 CPU 进行了性能测试。

在测试过程中,我们记录了 CPU 的主频、核心数、线程数等参数,并观察了其在不同负载下的性能表现,如处理单线程任务和多线程任务时的速度和效率。

(三)内存性能测试通过内存测试软件,对微机的内存进行了读写速度、延迟等性能指标的测试。

同时,还研究了不同内存容量和频率对系统性能的影响。

(四)硬盘性能测试利用硬盘性能测试工具,对微机的固态硬盘进行了顺序读写、随机读写等性能测试。

分析了硬盘的读写速度、访问时间等参数,评估了其对系统整体性能的贡献。

(五)显卡性能测试使用显卡性能测试软件,对微机的显卡进行了图形处理能力的测试。

包括 3D 渲染、游戏性能等方面的测试,了解了显卡在不同应用场景下的表现。

(六)系统稳定性测试为了确保微机系统在长时间运行中的稳定性,我们进行了长时间的压力测试。

通过运行大型软件、多任务处理等方式,观察系统是否出现死机、蓝屏等故障。

四、实验结果与分析(一)CPU 性能测试结果经过测试,我们发现微机所配备的英特尔酷睿 i5 处理器在处理单线程任务时表现出色,其主频较高,能够快速完成单个任务。

《实验指导书_TinyOS系统与nesC程序设计》

《实验指导书_TinyOS系统与nesC程序设计》

TinyOS系统与nesC程序设计课内实验指导书一、课内实验项目一览表二、详细实验指导书实验一:编程环境建立一实验目的1、掌握Java基本开发环境(JDK)的安装和配置方法。

2、掌握cygwin程序的安装,在建立windows下类似Unix环境。

3、掌握Linux基本命令及cygwin下安装TinyOS的方法。

二实验原理无三实验环境1、运行Windows的PC机,能够连接Internet2、PC机配置要求:四实验内容和步骤1、java jdk安装首先,我们安装JA V A开发工具JA V A JDK 1.6官方下载地址:/javase/downloads/.安装过程只需下一步……下一步便可,默认安装路径是C:\Program Files\Java上图是TinyOS 2.0.2 安装时截取的JA V A JDK1.5的图,只供参考。

然后,我们需要设置电脑的环境变量,需要新建两个环境变量,以便使用JDK 具体过程如下:右击我的电脑——〉属性——〉高级——〉环境变量先新建或编辑系统变量:变量名(N):JA V A_HOME变量值(V):JDK安装的路径,其默认的路径为:C:\Program Files\Java\jdk1.6.0_10变量名(N):CLASSPATH变量值(V):.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;;%JAVA_HOME%\bin;%JAVA_HOME%\jr e\bin;在系统变量(S)栏选中变量为Path的选项,点编辑在变量值(V)的末尾添加:;%JAVA_HOME%\bin; ;%JAVA_HOME%\jre\bin;然后新建或编辑用户变量:同样再设置一个JAVA_HOME,变量值也一样。

在用户变量的PATH中添加:;%JAVA_HOME%\bin:$PATH;%JAVA_HOME%\jre\bin:$PATH;这样,我们的环境变量已经设置完毕了。

实验2 TinyOS执行模型

实验2 TinyOS执行模型

实验二 TinyOS执行模型实验目的典型的传感器节点程序可能同时包含同步处理与异步处理过程。

本实验通过介绍TinyOS的执行模型来实现程序的异步处理。

为后续的通信实验以及其他需要异步处理的场合打下基础。

实验要求运行给定的例子程序,观察结果。

然后修改给定的例子程序,实现计算与亮灯的异步处理―亮灯不能被计算阻塞。

具体要求就是修改BlinkTask2例子程序,在满足计算for400001次的同时LED1和LED2可以响应亮灯。

提示:将400001次计算分割成为若干小的部分task进行计算。

实验内容1、同步及异步处理原理前面的程序都是同步运行处理的,也就是说只有单一的执行上下文,属于非抢占式的方式。

这样的会带来一个问题就是,同步代码从开始运行一直占用CPU直到运行完毕为止。

这样的策略虽然有利于TinyOS的调度在使得RAM使用最小化的同时让同步代码尽可能的简单。

但是,在此期间其他同步代码没有任何运行的机会,从而严重系统的响应性。

例如一段运算时间长的同步代码包含在数据包接收代码中就会使得接收数据包的响应非常慢。

前面的例子都是使用了直接函数调用,例如启动顺序或是Timer等,都是运行其操作然后返回。

在大多数时候,这样的编程方法是可以的。

但是非抢占式的同步代码在大计算量的情况下可能会遇到一些问题。

因此,就需要将大计算量的代码分割成为若干小的部分,每次只执行一小部分。

并且,当一个组件需要做某件事情时,其实可以稍后再做。

在TinyOS中,是可以对计算进行延迟的,直到计算所需要的条件都满足时再开始。

任务(Task)是TinyOS应用程序中通用的“后台”处理方式。

一个任务就是一个函数,它告诉TinyOS可以在稍晚时候进行运算,而不是立刻。

在传统操作系统(linux)中与之最接近的概念是中断阀门和延迟程序调用。

2、同步阻塞例子说明打开BlinkTask1例子,可以看到如下代码。

这段代码使得LED0转换400001次,因为计数,所以最后效果与1次的效果是一样的。

TinyOS学习报告

TinyOS学习报告

西安电子科技大学软件学院TinyOS学习报告第一周报告学院:软件学院姓名:日期:2009/12/24TinyOS的安装:在windows系统中安装TinyOS-2.0需要以下六个步骤:第一步是安装java jdk 1.5;第二步是安装cygwin;第三步是安装avr单片机工具或者MSP430工具;第四步是安装nesc和tinyos-tool;第五步是安装tinyos-2.0;第六步是配置环境变量;本周主要学习了:TinyOS Documentation Wiki—Starting with TinyOS—Tutorials中的几个Lesson:Lesson 1 Getting Started with TinyOSLesson 2 Modules and the TinyOS Execution ModelLesson 3 Mote-mote radio communicationLesson 4 Mote-PC serial communication and SerialForwarderLesson 5 SensingLesson 6 Boot SequenceLesson 7 StorageLesson 1一、TinyOS中一些主要概念:组件、模块、配置以及接口1. 任何一个nesC 应用程序都是有一个或多个组件链接起来。

组件提供(provide)并使用(use)接口。

接口声明了一组函数,称为命令(command),接口的提供者必须实现它们;还声明了另外一组函数,称为事件(event),接口的使用者必须实现它们。

2. 组件有两种类型:模块:提供一个或多个接口的实现配置:装配其他组件并使组件之间的接口相连3. 每个nesC 应用程序都由一个顶级配置所描述4. 为什么要区分模块和配置?为使设计者构建应用程序时能从实现细节中摆脱出来Q:一个配置可以使用和提供接口。

是不是使用或提供接口的配置就不能为顶级配置,而没有使用和提供接口的配置就一定是顶级配置?二、怎样编译一个TinyOS程序以及安装到平台上1.检查环境安装正确与否:tos-check-env2. 查看ncc版本:ncc --version3.使用“make”编译TinyOS应用程序,如:make micaz。

Ubuntu虚拟机下Tinyos的安装

Ubuntu虚拟机下Tinyos的安装

江南大学物联网工程学院实验报告课程名称无线传感网技术实验名称Tinyos安装实验日期2017-5-13班级计科姓名学号实验报告要求1.实验名称2.实验要求3.实验环境4.实验步骤5.实验体会一、实验目的:熟悉Tinyos的安装过程二、实验内容:在虚拟机下安装Tinyos三、实验环境Ubuntu16.04由于Tinyos是在Linux环境下安装的,电脑虚拟机之前也装过Ubuntu 系统,所以在这里就没有用Cygwin。

四、实验步骤(对照截图具体说明,尽量详细)1.打开VMware,启动Ubuntu系统。

2.安装python开发环境和g++编译工具命令行$sudo apt-get install python-dev$sudo apt-get install g++3.安装java jdk安装jdk可以去官网下载最新版本的Linux x64后缀为tar.gz。

官网地址为:/technetwork/Java/javase/downloads/index.html命令行cd +切换到下载好的包目录, 使用tar -xzvf jdk-8u131-linux-x64.tar.gz命令解压,这里我是用的8.131版本,所以包的名字是jdk-8u131-linux-x64.tar.gz命令行sudo mv <filename> /opt/java 将解压后的文件移到/opt目录下并重命名为java,<filename>就是解压后的目录名。

4.jdk环境变量的配置,这里我采用的是修改/etc/profile文件,当然也可以用别的办法。

在命令行下输入sudo gedit /etc/profile 在文件末尾加入:export JA VA_HOME=/opt/javaexport PA TH=$JA V A_HOME/bin:$PA THexport CLASSPATH=.:$JA V A_HOME/lib/dt.jar:$JA V A_HOME/lib/tools.jar5.重启验证java版本在终端输入java -version 以验证jdk是否安装成功。

无线传感器网络节点嵌入式操作系统TinyOS的研究与移植的开题报告

无线传感器网络节点嵌入式操作系统TinyOS的研究与移植的开题报告

无线传感器网络节点嵌入式操作系统TinyOS的研究与移植的开题报告一、选题背景和意义无线传感器网络(Wireless Sensor Network, WSN)是由大量具有自我组织、自适应、低功耗、微型化、低成本等特点的无线传感器节点组成的分布式自组织网络。

无线传感器节点是嵌入式系统的重要应用领域,其通常由广义微处理器、无线模块、传感器及其他必要外设构成。

嵌入式操作系统作为无线传感器节点开发的基础,扮演着重要的角色。

搭建无线传感器网络需要可靠稳定的嵌入式操作系统作为开发基础,TinyOS是一个小型、高度可复用的开源嵌入式操作系统,用于构建分布式无线传感器网络中的节点和应用程序。

TinyOS内核是基于事件驱动和组件化设计,能提供高度优化的低功耗支持。

TinyOS在无线传感器网络、实时嵌入式系统等领域被广泛应用,因其精简、稳定、高效等特点而备受欢迎。

本课题基于TinyOS这一嵌入式操作系统,研究移植其核心功能到自主设计的硬件平台上,旨在了解TinyOS的设计理念、内核架构和应用开发,深入理解嵌入式操作系统的基本原理和实现方法,同时为无线传感器网络、实时嵌入式系统的应用研究提供支持。

二、预期研究内容1. TinyOS内核架构分析介绍TinyOS的系统结构、模块组成、事件驱动和组件化设计等关键特性,分析其理论基础和实现技术。

通过深入探究TinyOS内核代码,剖析其运行机制和模块架构,了解其整体框架。

2. TinyOS移植将TinyOS核心功能移植到自主设计的嵌入式硬件平台上,包括环境搭建、编译系统配置、外设驱动等关键技术点的探讨。

实现基本的系统功能,如系统启动、时钟管理、任务调度等。

3. TinyOS应用开发基于TinyOS的应用开发框架进行开发实践,如利用TinyOS提供的传感器、协议栈等组件进行无线传感器网络节点的应用开发。

主要涉及网络协议设计、安全机制、节能管理等方面,为无线传感器网络应用开发提供有益的探索和实践。

实验1 TINYOS嵌入式开发环境的搭建

实验1  TINYOS嵌入式开发环境的搭建

实验1TinyOS嵌入式开发环境的搭建与测试一.实验目的:1.搭建TinyOS嵌入式开发环境。

2.测试TinyOS开发环境。

3.通过测试例程熟悉TinyOS开发环境。

二.实验设备及软件环境:1.装载Ubuntu或Redhat系统的台式计算机或笔记本电脑;2.TelosB传感器节点;三、实验方法:1.搭建TinyOS嵌入式开发环境在Windows系统下安装虚拟操作系统软件VMware(版本8.0),并选择以下两种方式之一安装TinyOS:1)基于Redhat Linux操作系统和RPM软件包管理系统的手动安装方式在VMware软件新建虚拟机并安装RedHat Enterprise Linux4/RHEL4操作系统(或者其他版本的操作系统)。

相关安装方法参考此处。

2)基于Ubuntu操作系统和APT软件管理系统的自动安装方式在VMware软件新建虚拟机并安装Ubuntu14.04系统(或者其他更高版本的Ubuntu操作系统),在网络中搜索TinyOS的软件仓库,并将其添加至APT软件管理系统中,相关的添加方法参考此处。

此外可以参考官方安装教程中“Two-step install on your host OS with Debian packages”章节的内容。

2.测试TinyOS是否安装成功1)运行TinyOS自带的tos-check-env命令检查安装环境是否完全配置好。

2)利用TinyOS编译基于TOSSIM平台的BLINK例程以测试TinyOS能否正常使用。

必须完成以下步骤:理解Blink的程序结构和含义,相关内容参见附件1。

编译基于TOSSIM平台的BLINK程序,相关内容参见此处。

编写基于Python的仿真脚本和运行TOSSIM仿真实验,相关内容参见此处。

4.TinyOS实验

4.TinyOS实验

2013-9-17
11/15
点对点通信实验
ActiveMessageC向上层提供的接口有AMSend、Receive、 AMPacket、Packet、Snoop等。
AMSend接口实现数据的发送 Receive接口实现数据的接收 Snoop是接收发往其它节点的数据 AMPacket接口用于设置和提取数据包的源节点地址、 目的地址等信息 Packet接口主要是得到数据包的有效数据长度 (payload length)、最大数据长度、有效数据的起始 地址等。
配置组件 实现组件
使用组件
接口3
接口1
接口1 接口4
接口2
接口2 接口5
TinyOS操作系 统的组件分为3 种类型 :硬件 抽象组件,合 成硬件组件和 高层软件组件。
图4_3 组件与接口
2013-9-17
6/15
接口(interface)
接口是访问组件的唯一途径。 接口是命令(command)和事件(event)函数的集合。 interface Timer {
2013-9-17 12/15
点对点通信实验
实验步骤
将硬件正确连接 打开Cygwin,切换到/opt/dtos/apps/MP/3_1_p2p/目录 下,分别对两个节点进行烧写,输入编译烧录命令: 节点A: make dw1 install NID=03 GRP=01 节点B: make dw1 install NID=05 GRP=01 不同的组写入的GRP应当不一样,以避免实验冲突
2013-9-17
10/15
点对点通信实验
CSMA/CA机制使节点在发送数据之前,首先去侦听信道 状况,只有在信道空闲的情况下才发送数据,从而避免了 数据碰撞,保证了节点间数据稳定传输;

基于TinyOS的温室环境检测系统研究

基于TinyOS的温室环境检测系统研究
体 考 虑 , 文 选用 了 由美 国 MoevC r o ain公 司所 生 产 的 t t S y作 为本 无 线 传 感 网络 的 节点 . 本 ti o p rt o mo e k
t t k moeS y是 工业 级 , 于 无线 传感 器 网络 、 用 监控 系统 等领 域 的低 功耗 无 线传 感 节 点模 块 , 使用 US 口 它 B 线 并按 I E 0 . 5 4 准 协议 构成 . 此模 块上 包含 有 微处 理 器 、 E E 82 1 . 标 在 无线 传 输/ 收 、 线 、 部 闪存 以及 接 天 外
关 键词 :温 室环 境检 测 ;无 线传 感 网络 ;T n O 嵌 入 式 系统 ;n s iy S; eC 中 图法分 类号 : 2 4 5 TP 7 . 文 献标识 码 : A
0 引 言
在 农业 生产 中 , 室环境 的 监控是 一 个非 常重 要 的 内容. 室是 农业 生产 中需要 进行 采 光 的 建筑 , 温 温 因 此 , 室 的采光 性是 一 项很 重要 的指 标. 与 此 同时 , 温 而 温室 内的 温度 、 度 的变 化 也 需 要加 强 监 控 . 般 的 湿 一
第 2期
吴 其 洲 等 : 于 T n OS的 温 室 环 境 检 测 系 统 研 究 基 iy
・19 ・ 0
பைடு நூலகம்
t t S y的天线 内置 , 在 室 内覆 盖 5 的 范 围 以及 在 室 外 覆 盖 1 5 m 的 范 围 ; 部 闪存 使 用 S moe k 可 0m 2 外 T
基 于 Tn OS的温 室环 境 检 测 系统 研 究 iy
吴 其 洲 , 舜 才 , 忠庆 姚 王
( 中北 大 学 信 息 与 通 信 工 程 学 院 ,山西 太 原 005 ) 3 0 1

TinyOS操作系统开发技术及实践(西电版)第6章 TinyOS网络协议

TinyOS操作系统开发技术及实践(西电版)第6章  TinyOS网络协议
7
第6章 TinyOS网络协议 DisseminationUpdate接口用于产生分发的数据,此接口只
包含一个命令函数,该命令有一个指针类型的参数,提供 DisseminationUpdate接口的组件必须将数据赋值到自己分配的 内存中,DisseminationValue接口必须触发change()事件,以此 作为对change()调用的响应。其接口定义如代码6-2所示。
的重要接口和组件。 1. 分发协议的接口 在分发协议中分发服务提供了两个主要的接口:
DisseminationValue接口和DisseminationUpdate接口。它们都位 于“tinyos-2.x/tos/lib/net/”目录下。
(1) DisseminationValue接口。 DisseminationValue接口适用于接收从网络中分发过来的 数据,在此接口中包含两个命令函数和一个事件函数,其具体 代码如代码6-1所示。
(1) 在“cygwin\opt\mytinyos\apps”目录下创建 myDissemination子目录。
(2) 在myDissemination目录下创建并编写 myDisseminationApp.nc文件(核心应用模块)、 myDisseminationC.nc文件(顶层配件)和BlinkToRadioMsg.h文件 (定义相关数据结构体)。
call RadioControl.start(); } else {
22
第6章 TinyOS网络协议
//开启分发服务 call DisseminationControl.start(); counter = 0; //开启定时器 call Timer.startPeriodic( 2000 ); } } event void RadioControl.stopDone( error_t result ) { ; } event void Timer.fired() { message_t pkt; BlinkToRadioMsg* 2b3trpkt;
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一.Downloading and installing TinyOS
一、安装JDK(在平台ubuntu12.10搭建)
1.编译一个源文件
终端收入命令:sudo gedit/etc/apt/sources.list.d/partner.list
2.在partner.list文件中添加:
终端输入命令:deb /ubuntu/hardy multiverse
3.保存该文件并退出,执行下列程序:
终端输入命令:sudo apt-get update
4.下载JDK
终端输入命令:sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk
5.配置JDK环境变量
在主文件下的.bashrc或者.profile中添加下面语句,或者在终端输入。

(关于路径参照自己解压路径)
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$JAVA_HOME/bin:$PATH
export classPath=/usr/lib/jvm/java-6-sun
6.在终端中输入java,javac看是否配置正确
终端输入命令:java或者javac
二、安装tinyOS-2.1.1
1.安装python-dev g++
终端输入命令:sudo apt-get install python-dev g++
2.查看python的版本
终端输入命令:python–version(本机是Python2.7.3)
3.安装tinyos
①.在主文件夹/etc/apt/sources.list中添加一下两行:
deb /tinyos/dists/ubuntu natty main
deb /tinyos oneiric main
终端输入命令:sudo gedit/etc/apt/sources.list(sources.list是只读文件,所以必须有root 权限)
②.下载安装tinyos-2.1.1
终端输入命令:sudo apt-get install tinyos-2.1.1
安装完成后,打开/opt/tinyos-2.1.1/support/make/sim.extra,找到PYTHON_VERSION=2.5(本机),将2.5换成2.7
③.终端输入命令:sudo gedit/opt/tinyos-2.1.1/tinyos.env,在tinyos.env中添加
④.在主文件夹/.bashrc中添加:
source/opt/tinyos-2.1.1/tinyos.env
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
⑤.在/etc/profile.d/tinyos.env同样添加:
终端输入命令:sudo gedit/etc/profile.d/tinyos.env
⑥.安装JNI
终端输入命令:tos-install-jni
终端输入命令:tos-check-env
会出现java和graphviz版本报错,可以忽略。

如下图:
⑦.进入目录/opt/tinyos-2.1.1/apps/Blink中,进行make micaz sim如果出现下面图片证明,安装成功。

相关文档
最新文档