This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/CC2530:两个终端设备的绑定

Guru**** 2530950 points
Other Parts Discussed in Thread: MSP430F2370, CC2530, Z-STACK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/610512/ccs-cc2530-binding-of-two-end-devices

器件型号:CC2530
主题中讨论的其他器件:MSP430F2370Z-stack

工具/软件:Code Composer Studio

您好!

我将使用 CC2530 Zigbee 芯片并结合应用处理器(MSP430F2370)。

我的最小系统如下所示:1个协调器+ 2个终端设备。

我的方法是在 我向 AF_register 注册我的应用程序后、将一个 ZDO_END_DEVICE_BIND_REQ 从每个终端设备发送到协调器、从而将这2个终端设备相互绑定。 但我始终会得到响应0x89。  由于未能匹配任何合适的群集,终端设备绑定请求失败。

终端设备1:交换机(向终端设备2发送消息)=客户端

终端设备2:开/关(接收消息并打开/关闭灯)=服务器

我使用 ZNP2530迷你套件中的以下应用配置:

struct applicationConfiguration getApplicationConfigurationForEndDevice()
{
printFtdi ("获取终端设备的应用程序配置\r\n);
结构应用程序配置 ac;
memset (&ac、0、sizeof (struct applicationConfiguration));
ac.endpoint = DEFAULT_EN终结 点; //0xD7
ac.profileId = DEFAULT_PROFILE_ID; //0xD7D7
ac.deviceId = DEVICE_ID; //没关系
ac.deviceVersion = DEVICE_VERSION; //没关系
ac.latencyRequesteded = 延迟_正常;
ac.numberOfBindingInputClusters = 1;
ac.bindingInputClusters[0]=0x0001;
AC.numberOfBindingOutputClusters = 0;//1.
返回 AC;
} 

我不知道如何配置 bindinginputcluster 和 bindingoutputclaster。 它们对于终端设备1和2是不同的? 以及哪个角色充当协调器。 实际上、协调器只能用于路由消息、这样我就不需要注册申请、对吧?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您安装 Z-Stack Home 1.2.2a、您可以参考 C:\Texas Instruments\Z-Stack Home 1.2.2a.44539\Projects\ZStack\ZAP 下的 HA-SampleLight 和 HA-SampleSwitch 来了解它是如何实现这一点的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的快速响应。

    我了解了这些来源、但有一点与约束相混淆。 SampleSwitch 希望与 SampleLight 结合、但有不同的端点(对于 Switch、SAMPLESW_端 点12;对于 Light、SAMPLELIGHT_端 点13)。 我想绑定、端点必须是等效的?!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不可以、源端点和目的端点可能不同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    然后、ZNP 会评估哪些参数以表示两个器件可以绑定?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    两台设备必须在其输入/输出群集上支持同一个群集。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    集群必须相互适应哪个方向?

    SampleSwitch 分配以下群集:

    ZDP_EndDeviceBindReq (&dstAddr、NLME_GetShortAddr ()、
    SAMPLESW_端 点、
    ZCL_HA_PROFILE_ID、
    0、NULL、//没有要绑定的传入群集
    ZCLSAMPLESW_BINDINGLIST、BindingOutClusters、
    true ); 

    当 SampleLight 注册该集群时:

    ZDP_EndDeviceBindReq (&dstAddr、NLME_GetShortAddr ()、
    SAMPLELIGHT_终结 点、
    ZCL_HA_PROFILE_ID、
    ZCLSAMPLELIGHT_BINDINGLIST、BindingInClusters、
    0、NULL、//没有要绑定的传出群集
    true ); 

    这意味着端点可能不同、进出群集可能不同、但配置文件 ID 必须相同? 传入和传出群集如何组合在一起?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    以 SampleLight 和 SampleSwitch 为例、我们希望进行终端设备绑定、使 SampleSwitch 能够向 SampleSwitch 发送开/关命令。 必须将 ZCL_CLUSTER_ID_GEN_ON_OFF 置于 SampleSwitch 上 ZDP_EndDeviceBindReq 的 OutClusterList 中、并将 ZCL_CL_CLUSTER_ID_GEN_ON_OFF 置于 SampleLight 上 ZDP_EndDeviceBindReq 的 InClusterList 中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现了错误、为什么绑定不起作用。 CC2530ZNP 接口规范中似乎存在一个小错误。  

    是缺少的8字节 IEEE 地址。