TinyOS Conclusion综合技术报告.pdf

上传人:小** 文档编号:86700391 上传时间:2019-03-22 格式:PDF 页数:5 大小:558.89KB
返回 下载 相关 举报
TinyOS Conclusion综合技术报告.pdf_第1页
第1页 / 共5页
TinyOS Conclusion综合技术报告.pdf_第2页
第2页 / 共5页
TinyOS Conclusion综合技术报告.pdf_第3页
第3页 / 共5页
TinyOS Conclusion综合技术报告.pdf_第4页
第4页 / 共5页
TinyOS Conclusion综合技术报告.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《TinyOS Conclusion综合技术报告.pdf》由会员分享,可在线阅读,更多相关《TinyOS Conclusion综合技术报告.pdf(5页珍藏版)》请在金锄头文库上搜索。

1、TinyOS 综合技术报告综合技术报告 俞培杰 开发环境:开发环境: a) Ubuntu9.10 + TinyOS2.1.0 在 Ubuntu 9.10 中安装 TinyOS2.1.0 a) 修改源列表文件 ,在其中添加 TinyOS 的源 deb http:/tinyos.stanford.edu/tinyos/dists/ubuntu hardy main b) 更新源 sudo aptget update c) 从源安装 tinyOS2.1.0 sudo aptget install tinyos2.1.0 d) 修改位于 home 目录下的/.bashrc 文件,为开发 TinyOS

2、设定好环境 sudo gedit /.bashrc e) 在文件中添加以下两行 source /opt/tinyos2.1.0/tinyos.sh export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:. f) 编辑完后,执行以下命令完成环境建设 source /.bashrc sudo tosinstallini 至此,在 Ubuntu 9.10 中完成了 TinysOS2.1.0 的安装。 b) 在在 telosb mote 上编译烧录示例程序上编译烧录示例程序 Blink a) 进入 Blink 目录,默认的目录在 opt 下 cd

3、/opt/tinyos2.1.0/app/Blink b) 编译 telosb 平台的程序 make telosb c) 烧录程序到 telosb mote 上,其中后面的 1 表示指定这个 mote 的 TOS_NODE_ID=1 make telosb install,1 多多 Mote 批量烧录批量烧录 1. 任务目标任务目标 a) 对多个 Telosb 节点进行批量程序烧录 2. 背景知识背景知识 a) 无线传感器网络: 无线传感器网络就是由部署在监测区域内大量的微型传感器组成, 通过无线通信方式形成的一个多跳的自组织的网络系统, 其目的是协作地感知、 采 集和处理网络覆盖区域中被感知

4、对象的信息, 并发送给观察者。 其中的微型传感器 一般称作 sensor node(传感器节点) ,此种网络中一般也有一个或几个基站(称作 sink)用来集中从微型传感器收集的数据。 b) TelosB 节点:Crossbow 生产的传感器节点,是现在最广泛应用于研究与实验的无 线传感器节点。TelosB 节点的结构如下图: 在一个传感器网络中, 至少有一个节点作为基站, 其它若干节点作为普通节点。 在 TinyOS 下编写基站程序和节点程序。 然后将程序烧录到每个节点上。 每个普通节点的程序相同, 但在烧录过程中需指定 ID 号以区分。 c) 传统烧录过程 i. 安装 TinyOS ii.

5、将一个 telosb 节点通过 usb 口与电脑相连 iii. 进入程序所在文件夹,如 Blink 程序 iv. 输入命令将程序烧录到节点上,并指定 ID 号 3. 任务要求任务要求 a) 传统烧录过程每次只能烧录一个节点, 适合与小规模的节点烧录。 在大规模节点烧 录过程中,大量人力耗费在重复输入命令和烧录等待过程中。 b) 设计方案要求 i. 能够对多个传感器节点进行批量的程序烧录,以缩短烧录过程 ii. 每个节点程序相同,但仍要求各个 ID 号不同 iii. 开发控制界面,要求简单易用,方便用户操作 4. 实现过程实现过程 a) TinyOS2.1.0 提供 Deluge T2 数据传输

6、协议, 通过该协议, 可以实现无线广播方式达 到批量烧录,官方 Wiki:http:/ b) 具体实现 i. 工具安装 Deluge T2 需要一些 Python 脚本,按照以下命令安装相关工具: cd $TOSROOT/tools ./Bootstrap ./configure cd tinyos/mics make make install ii. 准备好具有 Deluge T2 协议的节点 1. 进入/apps/tests/deluge/GoldenImage,编译烧录该程序到节点中 Make telosb inatall, 1 bsl,/dev/ttyUSB0 2. 对 BaseSta

7、tion 需要特殊标识 iii. 对源程序的修改 1. 在源程序中添加 Deluge 组件 component DelugeC; 2. 在 Makefile 中添加 BOOTLOADE=tosboot; 3. 需要添加volumesxxx.xml文件来定义 GODENIMAGE,DELUGE1,DELUGE2,DELUGE3, 对Telosb节 点 , 文 件 为 volumesstm25p.xml: 4. 最后编译该程序 Make telosb iv. 在 BaseStation 上烧录编译好的程序 tosdeluge serial/dev/ttyUSB0:115200 i 1 /build

8、/telosb/tos_image.xml v. 将新烧录的程序广播到将要烧录的网络节点中 tosdeluge serial/dev/ttyUSB0:115200 d 1 vi. 对网络节点进行重编程 Tosdeluge serial!/dev/ttyUSB0:115200 r 1 c) 目前已经完成了该方案的基本实验, 通过一个 BaseStation 对两个次 Mote 进行程序 烧录 d) 需要注意的细节 i. 要烧录一个 BaseStation,即跟普通的次 Mote 一样,只需添加一个标志选项 CFLAGS=DDELUGE_BASESTATION make telosb instal

9、l,0 bsl,/dev/ttyUSB0 ii. 在使用 tosdeludge 进行广播烧录时,需要等候 5 分钟左右的时间,再执行 reprogram 命令才能有效 基于自组网的基于自组网的 Floddy 实现实现 1. 任务目标任务目标 实现自组网, 在存在一个起始主节点和多个次节点的情况下, 由主节点开始广播寻 找其顺序子节点并建立该节点的地址。 再由该顺序子节点重复其父节点的工作, 循环往复,直到所有次节点都链入主节点网路中。 2. 实现过程实现过程 a) 实现难点 当主节点广播搜寻顺序子节点时, 所有次节点都可以收到广播包并发送回馈包, 当主节点收到返回信息时, 又需要广播发送确认包

10、, 如何标志出其顺序子节点 是个难点 b) 实现思路 采用随机数对接的方法,让每个子节点都生成一个特异的随机数来标志自己, 在收到主节点的确认包后查看包中的对接数是否与自己相同, 相同则成为顺序 子节点。 c) 通信包内容设计 uint32_t NodeId; / Tell the NodeID of the current Parent Node uint32_t RandomNumber; / A key number uint8_t FindNext; / Tell other nodes that im looking for my son node uint8_t YouGotIt;

11、 / Tell the node with the same RandomNumber that you are my son node now d) 通信过程 a) 实验通信环境 一个主节点 ID=1,两个次节点无 ID b) 过程 i. 主节点广播发送搜寻包: NodeId = 1; RandomNumber = 0; FindNext = 1; YouGotIt = 0; ii. 所有次节点收到搜寻包之后,首先判断自己是否已经是链路中节点, 若不是,继而判断搜寻包内容中 FindNext 是否为 1,是则生成回馈包 发回: NodeId = 1; RandomNumber = XXX;

12、FindNext = 0; YouGotIt = 0; iii. 主节点收到回馈包后,广播(因为此时次节点还没有地址)发送确认包。 程序规定主节点只处理第一个收到的回馈包 NodeId = 1; RandomNumber = XXX; FindNext = 0; YouGotIt = 1; iv. 所有次节点收到确认包,判断包中的 RandomNumber 是否与自己的 相同,相同则说明该次节点成为主节点的顺序子节点。给自己设定 NodeID+1 的地址继而开始重复主节点的工作。 e) 对接数生成 目前对接数的生成用 TinyOS 自带的随机数生成函数,但该函数的种子为该节 点的 TOS_NODE_ID,故若 ID 相同,则生成完全相同的随机数序列,所以在目 前的实现中仍需要在烧录时指定 ID。 f) Printf 的使用 利用 Printf 函数可以大大加快调试过程,TinyOS2.1.0 中提供了 Printf 函数(在 TinyOS2.x 中编译不过) 。使用是只需在源文件中添加 printf.h 文件,并将要观 察的节点链接到 PC 上,然后在终端中输入以下命令: java net.tinyos.toos.PrintfCXX comm serial/dev/ttyUSBX:telosb

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

当前位置:首页 > 商业/管理/HR > 管理学资料

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