开发者社区> 拿破仑940911> 正文

ZigBee TI ZStack CC2530 4.17 绑定通信01-概念介紹

简介: (配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中,我们详细介绍了ZigBee的第三种无线通信方式——组播;本节中,我们将介绍ZigBee的最后一种,也就是第四种无线通信方式——绑定。
+关注继续查看

(配套源码软件开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911


上一节中,我们详细介绍了ZigBee的第三种无线通信方式——组播;本节中,我们将介绍ZigBee的最后一种,也就是第四种无线通信方式——绑定。比起ZigBee的其他三种无线通信方式,绑定通信的原理和实现都要更复杂一些,所以关于绑定,我们分为两节来讲述——“概念介绍”和“实验验证”。


本节主要讲述ZigBee绑定通信的概念,学过ZigBee一段时间之后,不知道大家有没有同感:最好的参考资料,就是ZigBee协议栈安装目录下Document文件夹中的PDF文档!关于绑定通信的概念介绍,本节参考的文档如下:

《Z-Stack Developer's Guide.pdf》第4节(P7-P8)
《Z-Stack Sample Applications.pdf》第1.4节(P4-P5)
《Z-Stack Simple API.pdf》第3.3节(P5)

这几份文档中的这些章节,有关于绑定通信的基本概念讲解和实验例程说明,喜欢看英文原版文档的话,推荐!

一、绑定的应用场景

关于ZigBee的无线通信,我们都知道:目标设备的16位网络短地址尤为重要!我们必须要知道无线通信的对象到底是谁,才能够进行无线数据的交互。但是,在ZigBee多种多样的应用环境下,我们不可能任何情况下都明确知道目标设备的网络地址。

此外,又由于ZigBee机制的原因,每一个ZigBee设备在所处的ZigBee网络中的16位网络短地址是由其父节点为其随机分配的,并且每次上电或重启后,该地址可能都会不一样。

对于这样一些应用场景,一种称为“绑定”的通信方式使得这个问题得到了有效的解决!

二、总体概念介绍

绑定(Binding),从字面上看,我们大概就可以知道它的含义是什么。《Z-Stack Developer's Guide.pdf》中的解释为:绑定是对于从一个应用到一个或多个应用的信息流的控制机制,它允许应用不知道目标设备的地址就可实现数据的无线发送。

当应用调用Z-Stack协议栈中提供的绑定发送函数发送数据时,其实是由APS层根据一些指定参数去查询绑定表,继而得到目标设备的地址,从而实现数据的发送。如果查得绑定表中有多个匹配的目标设备的话,数据包将会拷贝发送给建立有绑定关系的所有目标设备。

具体到底有几种绑定的实现方式,一种?两种?三种?还是更多?看了很多家的ZigBee教程,也看了一些TI的官方文档,目前还没有找到一个明确的详细的说明。当然,在后面继续学习的过程中,如果得到确切的答案,我一定会及时将本节博客更新的。也欢迎大家多多指教~

三、握手绑定(Hand Binding)

接下来,我们将详细介绍最常用的一种绑定方式,我们称之为——握手绑定(Hand Binding)。当然,这个名字肯定不是我自己随便起的,在《Z-Stack Sample Applications.pdf》中第1.4节可以找到相应的描述,对应的是Texas Instruments\ZStack-CC2530-2.5.1a\Projects\zstack\Samples目录下的GenericApp官方例程。感兴趣的话,推荐去阅读一下~

1、基本描述

根据文档中描述,为了使得两个应用(设备)之间可以实现无线通信(即建立起绑定关系),必须保证协调器(Coordinator)存在于网络中,并且两个设备在一定的时间段内通过按键等方式均触发绑定请求。允许绑定的时间,默认值为16秒,在ZGlobals.h文件中有如下定义:

#if !defined ( APS_DEFAULT_MAXBINDING_TIME )
  #define APS_DEFAULT_MAXBINDING_TIME 16000
#endif

如果在f8wConfig.cfg文件中,或在预编译选项中定义了APS_DEFAULT_MAXBINDING_TIME,可以达到覆盖改变该值的效果。

此外,绑定信息保存在发起设备本地。

2、实现函数

握手绑定(Hand Binding),可以通过调用Z-Stack协议栈中的ZDP_EndDeviceBindReq()函数来实现,在ZDProfile.c文件中,我们可以找到如下一段代码:

/*********************************************************************
 * @fn          ZDP_EndDeviceBindReq
 *
 * @brief       This builds and sends a End_Device_Bind_req message.
 *              This function sends a unicast message.
 *
 * @param       dstAddr - destination address
 * @param       LocalCoordinator - short address of local coordinator
 * @param       epIntf - Endpoint/Interface of Simple Desc
 * @param       ProfileID - Profile ID
 *
 *   The Input cluster list is the opposite of what you would think.
 *   This is the output cluster list of this device
 * @param       NumInClusters - number of input clusters
 * @param       InClusterList - input cluster ID list
 *
 *   The Output cluster list is the opposite of what you would think.
 *   This is the input cluster list of this device
 * @param       NumOutClusters - number of output clusters
 * @param       OutClusterList - output cluster ID list
 *
 * @param       SecurityEnable - Security Options
 *
 * @return      afStatus_t
 */
afStatus_t ZDP_EndDeviceBindReq( zAddrType_t *dstAddr,
                                 uint16 LocalCoordinator,
                                 byte endPoint,
                                 uint16 ProfileID,
                                 byte NumInClusters, cId_t *InClusterList,
                                 byte NumOutClusters, cId_t *OutClusterList,
                                 byte SecurityEnable )


(配套源码软件开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ZigBee TI ZStack CC2530 4.16 绑定通信00-总
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) (配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911)
918 0
ZigBee TI ZStack CC2530 4.18 绑定通信02-实验验证
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中,我们简要介绍了ZigBee的第四种无线通信方式——绑定的基本概念;本节中,我们将对ZigBee的绑定通信(握手绑定)进行实验验证。
1306 0
ZigBee TI ZStack CC2530 4.14 广播通信
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 前面两节中,我们详细介绍了ZigBee的第一种无线通信方式——单播;本节中,我们将介绍ZigBee的第二种无线通信方式——广播。
1093 0
ZigBee TI ZStack CC2530 4.12 单播通信01-16位地址模式
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中我们讲述了如何对ZigBee网络进行基本的网络参数设置,以及无线自组网。自组网完成后,ZigBee网络就算是形成了。
1360 0
ZigBee TI ZStack CC2530 4.13 单播通信02-64位地址模式
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中我们详细讲述了单播通信的第一种方式——16位地址模式。本节中,我们将讲述单播通信的第二种方式——64位地址模式。
1337 0
ZigBee TI ZStack CC2530 4.1 三种网络设备类型
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) (配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911)
1065 0
ZigBee TI ZStack CC2530 4.15 组播通信
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中,我们详细介绍了ZigBee的第二种无线通信方式——广播;本节中,我们将介绍ZigBee的第三种无线通信方式——组播。
1118 0
ZigBee TI ZStack CC2530 4.11 单播通信00-总
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) (配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911)
1069 0
ZigBee TI ZStack CC2530 4.4 设备地址00-总
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) (配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911)
1068 0
ZigBee TI ZStack CC2530 2.3 协议栈版本
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 一、协议栈发展历史 TI的ZigBee 协议栈Z-Stack,从最开始的Z-Stack 0.1到大家熟悉的ZStack-CC2530-2.5.1a,再到几个月前刚刚发布的最新版本——Z-Stack 3.0.1,历经了非常多的版本。
3058 0
+关注
拿破仑940911
好好学习,Linux,GitHub,天天向上,ZigBee,STM32
文章
问答
文章排行榜
最热
最新
相关电子书
更多
云服务总线 CSB App Connect 简介 v1.0 直播
立即下载
基于英特尔®架构的阿里云服务网格ASM技术加速应用服务加密通
立即下载
又快又稳:阿里云下一代虚拟交换机解析
立即下载