zigbee无线传感器网络拓朴结构获取实验

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

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?