基于ZigBee多跳组播实验..doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ZigBee多跳组播实验.

6.6 ZigBee多跳组播 在实际生活应用中,读者可能会遇到这样的问题:需要对特定的工程对象实现分组管理。如在医院中的医疗病房中,病人患病情况类型是不同的,年龄组分布也不尽相同。如果需要对特定分组的患者利用ZigBee网络通知相关消息,组播技术可以很方便地完成上述任务。 ZigBee网络中的节点分组,只有相同组号的组员才能收到每一个组员发出的消息。即工作组内设备可以接收组播数据包,而组外设备将无法接收,可实现对特定设备的分组管理。本节我们在TI官方例程SampleApp的基础上,定义了两个不同的分组对象。设备可以通过按键选择加入特定分组,并且可以同时存在两个分组中。当组内设备接收到按键组播消息后,连接在设备上的蜂鸣器发出“滴滴滴滴”的声音,并且LED灯闪烁,表示接收到组播消息。 实验目的与器材 1)实验目的 学习ZigBee协议的组播技术。 加深对Z-Stack2007/Pro协议栈的应用层流程认识。 学会使用蜂鸣器,并利用LED灯控制函数控制蜂鸣器。 2)实验器材 4个CC2530开发套件(1个协调器模块,3个路由器模块)。 4个蜂鸣器。 实验原理与步骤 1.硬件介绍 1)蜂鸣器 蜂鸣器是一种电子讯响器,采用直流电压供电, 图 蜂鸣器实物图及电路连接图 如图 所示,蜂鸣器的工作原理非常简单,主要由发声器、三极管单片机驱动。三极管导通,集电极电流蜂鸣器发声当输出低电平,三极管截止,蜂鸣器电流。方波通过控制方波的频率,蜂鸣器产生简单的音乐 16 位多播组 I D完成。 多播组是所有已登记在同一个多播组 ID 下节点的集合。一个多播信息发送给一个特定的目标组,即多播表中该组ID 所列的所有设备。 组播数据帧既可以由目标多播组的成员在网络中传播,也可以由非目标多播组成员在网络中传播。数据包发送由数据包的一个地址模式标志指明,确定转发到下一跳的方式。如果原始信息由组的成员创建,就被视为处于 “成员模式” ,按广播方式转发。如果原始信息不是组成员设备创建,就被视为处于 “非成员模式”,按单播方式转发一个组成员。如果一个非成员信息到达目标组的任何成员,不管下一个数据包由哪个设备进行转发,就会立即转换为成员模式类型。 实现组播通信,首先,要对组对象进行定义和初始化,将设备加入到特定组中,然后,向特定设备组发送组播消息,最后组内成员接收到消息后,进行相应消息处理。 1)组对象初始化 组播网络中,设备发出的消息经过组寻址才会发到具有相同组号的组员设备中。组号用来标记设备所属的组,而组寻址需要定义组播地址。 (1).在SampleApp.h中定义两者的组ID,以标记设备所属的组。 #define SAMPLEAPP_FLASH_GROUP1 0x0001 #define SAMPLEAPP_FLASH_GROUP2 0x0002 (2) 在程序SampleApp.c文件的SampleApp_Init函数中定义两个组对象aps_Group_t SampleApp_Group1;//定义组1和组2对象 aps_Group_t SampleApp_Group2; //组1初始化 SampleApp_Group1.ID = 0x0001; osal_memcpy( SampleApp_Group1.name, Group 1, 7 ); //组2初始化 SampleApp_Group2.ID = 0x0002;// osal_memcpy( SampleApp_Group2.name, Group 2, 7 ); (3)组播地址定义。组播通信过程中,网络中节点是通过使用组地址进行网络寻址,并能够向特定分组节点传递消息。组播数据包应该具有设备寻址的地址模式、所属任务的端点号和组号。组1地址定义以及初始化为: //定义组1地址 afAddrType_t SampleApp_Flash_DstAddr_Group1; //设置地址模式为组播 SampleApp_Flash_DstAddr_Group1.addrMode = (afAddrMode_t)afAddrGroup; SampleApp_Flash_DstAddr_Group1.endPoint = SAMPLEAPP_ENDPOINT; //设置组地址为组1 ID号 SampleApp_Flash_DstAddr_Group1.addr.shortAddr = SAMPLEAPP_FLASH_GROUP1; 2)设备入组/离开组 (1).在ZigBee 网络实现组播通信时,设备加入组是通过设备端点加入到工作组中。 aps_AddGroup( SAMPLEAPP_ENDPOINT, SampleApp_Group ); 初始情况下,编

文档评论(0)

jiulama + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档