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 5.7 实例(三)多功能按键02-指示灯
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中讲述了如何实现基于系统时钟的多功能按键,本节将讲述对这一多功能按键的升级优化——添加指示灯。 一、实验内容及目的 多功能按键的功能虽然很好用,但是如果没有任何提示的,光靠人自己数数的估算按键时间的话,着实不是很好便。
1414 0
|
传感器 物联网 网络架构
ZigBee TI ZStack CC2530 5.1 实例(一)大规模组网实验
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 本文中,我们将验证Z-Stack协议栈的中等规模组网实验,看看当ZigBee网络中的节点逐渐增加之后,网络是否依旧稳定。
2522 0
|
物联网
ZigBee TI ZStack CC2530 5.6 实例(三)多功能按键01-实现
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 本节将讲述如何实现基于系统时钟的多功能按键,主要是关于如何根据“按键时间持续的长短”来决定按键操作,实现单一按键的多功能化。
1524 0
|
移动开发 物联网
ZigBee TI ZStack CC2530 4.18 绑定通信02-实验验证
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中,我们简要介绍了ZigBee的第四种无线通信方式——绑定的基本概念;本节中,我们将对ZigBee的绑定通信(握手绑定)进行实验验证。
1430 0
|
物联网 移动开发
ZigBee TI ZStack CC2530 4.14 广播通信
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 前面两节中,我们详细介绍了ZigBee的第一种无线通信方式——单播;本节中,我们将介绍ZigBee的第二种无线通信方式——广播。
1161 0
|
物联网 移动开发
ZigBee TI ZStack CC2530 4.15 组播通信
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中,我们详细介绍了ZigBee的第二种无线通信方式——广播;本节中,我们将介绍ZigBee的第三种无线通信方式——组播。
1219 0
|
物联网 移动开发
ZigBee TI ZStack CC2530 4.12 单播通信01-16位地址模式
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中我们讲述了如何对ZigBee网络进行基本的网络参数设置,以及无线自组网。自组网完成后,ZigBee网络就算是形成了。
1460 0
|
物联网 网络架构 移动开发
ZigBee TI ZStack CC2530 4.13 单播通信02-64位地址模式
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中我们详细讲述了单播通信的第一种方式——16位地址模式。本节中,我们将讲述单播通信的第二种方式——64位地址模式。
1419 0
|
物联网 网络架构
ZigBee TI ZStack CC2530 4.2 基本网络参数设置
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 一、基本的网络参数配置(参考《Z-Stack Sample Applications.pdf》) 1、Device Types(设备类型) 在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器)、Router(路由器)和EndDevice(终端设备)。
2579 0
|
物联网
ZigBee TI ZStack CC2530 3.16 按键驱动03-移植及使用
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 上一节中,我们详细讲述了Z-Stack中按键检测的两种机制——“轮询模式”和“中断模式”。从实现原理来看,“中断模式”比“轮询模式”更加灵敏;更重要的是,在低功耗模式下,“中断模式”功耗更低!因此,在实际应用中,我们更多的是选用“中断模式”来进行按键检测。
1782 0