lesson 12 Zigbee绑定通信

这篇具有很好参考价值的文章主要介绍了lesson 12 Zigbee绑定通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Zigbee绑定通信

通信原理

实验过程

实现步骤

实验现象 

实验分析


Zigbee绑定通信

通信原理

1、Zigbee一共有五种通信方式:单播、广播、组播、MAC、广播

2、绑定是Zigbee的一种基本通信方式,具体绑定通信又分为三种模式,模式大同小异,在这里我只拿源绑定来说明

3、绑定通信:发送模块必须要知道接收模块(被绑定模块)的网络地址或者MAC地址、接收方的接收端点和接收簇。创建绑定的过程都由发送方来完成,是发送模块的一厢情愿,与接收方无关,

源绑定:

含义:在发送模块(源模块)里面创建了和它所绑定模块的绑定表。

注:单播、MAC、绑定最终发送的数据帧格式都是相同的。

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件

在发送模块里,会调用一个函数,这个函数会创建一个结构体(绑定表)。绑定表里含有 发送模块的发送端点、接受模块的接受端点、接收模块的MAC和接收模块的接受簇。还必须保证发送模块的地址管理器中存有接收模块的MAC和网络短地址。

最后调用发送函数,以绑定的方式发送(绑定的时候发送指定函数中的配置信息有:接收模块的接收端点、接收簇,发送模块的发送端点,发送模块的网络地址。不指定接收模块的地址相关信息)。在发送时,首先查看绑定表,如果绑定表中的内容与发送函数中指定的信息相匹配,再去查看地址管理器的MAC与绑定表中的MAC是否一致,如果一致,就将地址管理器中的网络短地址作为目标地址,最后将数据包发送过去。

实验过程

实现步骤

我们使用上一节的MAC地址通信作为基础程序。(其中绑定内容只需要在发送模块终端中创建,接收模块协调器不用动)

1、首先我们创建一个接收模块MAC的地址相关信息结构体变量:destination,然后传入地址模式MAC和接收模块MAC地址。

然后调用函数:ZStatus_t APSME_BindRequest( byte SrcEndpInt, uint16 ClusterId,zAddrType_t *DstAddr, byte DstEndpInt);

其中函数的第一个参数是发送方端点,第二个参数是接收方簇,第三个参数是接收模块MAC的地址相关信息结构体地址,第四个变量是接收方的端点。

调用这个函数,不会发出任何无线数据包,它只是发送模块用来本地创建一个绑定表的结构体。

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件

2、然后我们调用函数ZDP_NwkAddrReq(DestMac,ZDP_ADDR_REQTYPE_SINGLE,0,0);

这个函数在前面的MAC通信中提到过。作用是将携带目标模块的MAC地址的数据包广播出去到Zigbee网络中,网络中的其它模块接收到数据包后判断数据包里面携带的MAC地址是否与自己一致,如果一致,就将自己的网络短地址发送给发送模块。这样发送模块收到网络短地址后就会成功将接收模块的地址相关信息添加到本地的地址管理器。

接着调用定时器触发事件函数,30s后执行发送事件

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件

3、最后我们创建目标模块地址结构体变量,并只要配置绑定方式AddrNotPresent即可,不需要传入地址,然后调用数据发送函数发送。到此绑定通信配置完成。

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件

4、程序

创建绑定表

      uint8 DestMac[8]={0xFD,0xE7,0x59,0x2A,0x00,0x4B,0x12,0x00};//0x00124B002A59E7FD   
      
      //创建绑定表,与接收模块绑定
      zAddrType_t destination;
      destination.addrMode=Addr64Bit;
      memcpy(destination.addr.extAddr,DestMac,8);
      APSME_BindRequest( 10,0x0001,&destination,10);//创建绑定表,与我们的接收模块绑定
      
      ZDP_NwkAddrReq(DestMac,ZDP_ADDR_REQTYPE_SINGLE,0,0);
      //携带接收目标模块的MAC,广播出去;网络中其它节点收到判断是否与自己MAC一样
      osal_start_timerEx(StarryApp_TaskID,StarryApp_SEND_MSG_EVT,30);//等待30ms执行事件

发送数据

  if ( events & StarryApp_SEND_MSG_EVT )
  {
    
      char theMessageData[] = "Zigbee 绑定实验";
                    
      StarryApp_DstAddr.addrMode = (afAddrMode_t)AddrNotPresent;//以绑定的方式发送
      //StarryApp_DstAddr.addr.shortAddr = 0x0000;
      //memcpy(StarryApp_DstAddr.addr.extAddr,DestMac,8);
      // Take the first endpoint, Can be changed to search through endpoints
      StarryApp_DstAddr.endPoint = StarryApp_ENDPOINT;//接收模块的端点
      
      AF_DataRequest( &StarryApp_DstAddr, &StarryApp_epDesc,
                 StarryApp_CLUSTERID,
                 (byte)osal_strlen( theMessageData ) + 1,
                 (byte *)&theMessageData,
                 &StarryApp_TransID,
                 AF_DISCV_ROUTE, AF_DEFAULT_RADIUS );
  }

实验现象 

按终端模块S1,进行MAC地址通信;按终端模块S2,进行绑定通信

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件

实验分析

通过抓包,抓取绑定过程的数据包

我们只需要看第一个Data request前面的三个帧即可,后面两个帧是附带的

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件

第一帧是终端发给父节点,通过父节点进行广播转发,表明终端想要获得目标MAC的网络短地址

第二帧是协调器转发子节点终端的数据帧

第三帧是终端发送给协调器的数据包,是按下K2后30ms后发送的,通过前面的时间可算出。还可以注意到后面的帧内非常明确指明了源网络短地址和目的网络短地址。这也表明了终端成功从本地地址管理器中获取到了目标网络短地址。

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件

最后还要注意一点,单播、MAC和绑定它们最终发送的数据帧格式都是一模一样的,都包含了以下五个信息。

lesson 12 Zigbee绑定通信,网络,Zigbee,OSAL,Zstack,物联网,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-518033.html

到了这里,关于lesson 12 Zigbee绑定通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 了解无线通信技术WiFi,Sub 1G,Zigbee

    本文主要记录一些无线通信技术的常识,用处不大但是至少能让你在别人谈论通信的时候能够听得懂。 通信技术是移动互联网中至关重要的一环,从2G到今天的5G,都显示了移动互联网通信技术的进步。5G通信技术,即第五代移动通信技术,是最新一代的蜂窝移动通信技术,也

    2024年02月11日
    浏览(68)
  • ZIGBEE协议栈通信——阿里云上传数据(STM32)(一)

    Zigbee是一种低功耗、低成本的无线通信协议,特别适用于物联网设备之间的通信。Zigbee协议栈是一组硬件和软件层级结构,用于支持Zigbee设备之间的通信。 Zigbee协议栈通常由以下几个层级组成: 1. 物理层(Physical Layer):负责处理物理无线通信的细节,例如频率、功率控制和

    2024年02月02日
    浏览(40)
  • STM32+Zigbee模块实现串口通信获取传感器数据

    1.两个Zigbee透传模块 2.两块32板(我手上的是VET6和RCT6的两块板子),其它的板子也可以,不过注意一下启动文件对应 3.颗粒物传感器 DL-22无线串口模块 1.工作模式分为点对点和广播模式 点对点模式,要设置一个发送端,一个接收端,根据它说明书进行设置就好,还需要设置相

    2023年04月08日
    浏览(50)
  • Wi-Fi、蓝牙、ZigBee等多类型无线连接方式的安全物联网网关设计

    随着物联网和云计算技术的飞速发展.物联网终端的数量越来越多,终端的连接方式也更趋多样化,比如 Wi-Fi蓝牙和 ZigBee 等。现有的物联网网关大多仅支持一种或者几种终端的接人方式。无法满足终端异构性的需求。同时,现有的物联网网关与终端设备之间普遍采用明文传输

    2024年02月04日
    浏览(58)
  • 物联网协议NB-IoT,LORA,wifi,蓝牙,zigbee,MQTT,COAP之间的关系

    NB-IoT,LORA,WIFI,蓝牙,zigbee,4G都是物理层的,这几个都需要芯片模组支持(硬件支持) 而MQTT,COAP,HTTP都是应用层协议,这些需要开发服务器,或者对接云平台厂商(软件支持) 所以(MQTT,COAP,HTTP)是居于(NB-IoT,LORA,WIFI,蓝牙,zigbee,4G)的上层协议 不需要网关:

    2024年02月15日
    浏览(57)
  • 网络安全攻防:ZigBee安全

    1. ZigBee简介 ZigBee(又称紫蜂协议)是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。ZigBee来源于蜜蜂的八字舞,由于蜜蜂(Bee)是靠飞翔和“嗡嗡”(Zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息

    2024年02月05日
    浏览(65)
  • Zigbee—网络层地址分配机制

                                                          🎬 慕斯主页 :修仙—别有洞天                                                        ♈️ 今日夜电波 :孤雏                                                                 0:21━━━

    2024年02月03日
    浏览(39)
  • Lesson14---卷积神经网络

    14.1 深度学习基础 14.1.1 深度学习的基本思想 特征工程:尽可能选择和构建出好的特征,使得机器学习算法能够达到最佳性能。是机器学习的上限,而算法就是逼近这个上限 传统的机器学习特证工程 依靠人工方式提取和设计特征 需要大量的专业知识和经验 特征设计和具体任

    2024年02月08日
    浏览(45)
  • 网络编程 lesson6 服务器模型和网络超时检测

    目录 服务器模型介绍 网络编程服务器模型 循环服务器模型 并发服务器模型 1. 多线程服务器 2. 多进程服务器 3. 事件驱动服务器 网络超时检测 应用场景 设置超时检测的方式 1.利用函数参数设置 代码示例 2.利用socket属性设置 3.利用alarm定时器设置 代码示例 在网络模型中,服

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包