ZigBee无线传感器网络拓朴结构获取实验.docxVIP

ZigBee无线传感器网络拓朴结构获取实验.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ZigBee无线传感器网络拓朴结构获取实验详解

实 验 报 告 ( 201 / 201 学年 第 学期) 实验名称 ZigBee无线传感器网络获取网络拓扑结构实验 实验时间 2015年 11月-2015年 12 月 指导单位 计算机学院 指导教师 李洋 学生姓名 张智超 班级学号 学院(系) 计算机学院 专 业 软件工程 实 验 报 告 实验名称 ZigBee无线传感器网络获取网络拓扑结构实验 指导教师 李洋 实验类型 自行设计(科研型) 实验学时 16 实验时间 2015.11-2015.12 一、 实验目的和要求 1.实验目的 了解网络地址的分配方法,掌握获取节点地址的方法,掌握无线传感器网络的拓扑结构。 2.实验内容 (一)设计指标: 1、 编写程序建立无线传感器网络; 2、 编写程序将自身的网络地址以及父节点网络地址发送给协调器; 3、 编写程序实现串口控制命令; 4、 编写程序将各个节点的网络地址以及父节点的网络地址显示在PC机上; (二)实验要求: 1、 设计不同拓扑结构的无线传感器网络; 2、 设计串口回调函数实现串口对网络控制; 3、 设计网络地址获取程序; 4、 设计各个节点的数据处理函数; 5、 设计协调节点与上位机的串口通信程序; 二、实验环境(实验设备) 硬件:PC机,CC2530传感器,IAR开发环境 三、实验架构和原理及实验步骤: 1.实验原理 (1)ZigBee按照网络节点功能划分可分为终端节点(ep)、路由器节点(rp)和协调器节点(cp)3种。其中,协调器(coordinator)是整个网络的核心,主要作用是启动网络,其方法是选择一个相对空闲的信道,形成一个PANID。协助建立网络中的安全层及处理应用层的绑定。当整个网络启动和配置完成之后,它的功能退化成一个协调器。路由器(router)主要功能是提供接力作用,能扩展信号的传输范围,因此一般情况下他应该一直处于活动状态,不应休眠。终端节点(end-device)加入已建立的网络即可,终端节点不具有网络维护功能。 (2)ZigBee无线传感器网络组网过程包括两个步骤:主节点举起网络和子节点申请加入网络。采用的是分布式分配机制:协调器在建立网络之后使用0x0000作为自己的网络地址。在路由器和终端加入网络以后,设备会自动给他分配16位的网络地址。 (3)获取拓扑结构的大致思路为: (4)可能用到的函数 uint16 NLME_GetShortAddr(void) 该函数返回该节点的网络地址 byte *NLME_GetExtAddr(void) 获取设备自身IEEE地址 uint16 NLME_GetCoordShortAddr( void ) 获取父设备网络地址  void NLME_GetCoordExtAddr( byte * buf) 获取父设备IEEE地址 3.实验步骤: (1) 修改PAN_id。 网络编号,用于区分不同的ZigBee网络。在文件f8wConfig.cfg中找到 -DZDAPP_CONFIG_PAN_ID=0xFFFF,将0xFFFF修改为本组编号0x2008。 (2)获取当前节点代码的网络地址以及其父节点的网络地址的代码 static void Broadcast_SendBackMessage( ) { unsigned char *theMessageData,s[200]; uint16 i=0,n=0; uint16 mod=0; uint16 FaAdd,a; if(Broadcast_NwkState==DEV_END_DEVICE) { unsigned char s1[10],s2[10];//存储当前节点以及父节点的地址 FaAdd=NLME_GetCoordShortAddr();//获取十进制的父节点地址 a=NLME_GetShortAddr();//十进制的当前节点地址 strcpy(s,END_DEVICE:); while(a)//将当前节点地址转化为字符串 { mod=a%16; if(mod=9) *(s1+i)=mod+0; else *(s1+i)=mod+55; i++; a/=16; } s1[i]=\0; n=strlen(s1); if(n=3) strcat(s1,0); for(i=0;in/2;i++) { char t; t=s1[i]; s1[i]=s1[n-1-i]; s1[n-1-i]=t; } strcat(s,s1); i=0; if(!FaAdd)//将父节

文档评论(0)

jiayou10 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档