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.

[参考译文] CC2530:终端设备能否直接加入协调器? 还是需要中间路由器器件才能在 CC2530中工作

Guru**** 2380860 points
Other Parts Discussed in Thread: CC2530, Z-STACK, SMARTRF06EBK, CC2530EMK, CC2538EMK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/669805/cc2530-can-end-device-directly-join-the-coordinator-or-does-it-require-intermediate-router-device-to-work-in-cc2530

器件型号:CC2530
Thread 中讨论的其他器件: Z-stackSMARTRF06EBK

我正在尝试烧录终端设备 Samplelight 应用程序固件,并尝试将其与协调器一起加入。 但它只发送单个 Becon 请求、其他什么也不发送。

通过更改为路由器配置的相同代码将与协调器相关联。  

我在 ZclSampleligh_init 函数的末尾调用了 bdb_startcommissing。

有人可以指导我吗?

我没有使用任何 EVB、iam 将十六进制文件刻录到 CC2530中。  

对于开发文档中提到的 BDB 网络错误处理过程,除了调用 bdb_startcommissioning 函数之外,我没有看到任何其他需要执行的操作。

请帮助继续执行相同操作。

此致

Avinash  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我建议您使用 Ubiqua 协议分析器来检查终端设备会发生什么情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在使用 TI 数据包监听器、除了根据请求、无法看到任何其他内容。

    我现在没有 ubiqua 许可证。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    附近是否有协调器? 如果是、协调员应至少响应信标帧。 是否可以附加监听器日志?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该能够将终端设备直接连接到协调器。 您是否在未对项目文件进行任何修改的情况下尝试验证了操作? 您能否详细说明对 zclSampleLight_Init 所做的更改? 确保您已更改项目构建、以便将 Zstack_device_build 定义为 device_build_ENDDEVICE、并设置 BDB_network_steering _capability。 您是否确定路由器 SampleLight 实际上正在加入协调器网络而不是形成自己的分布式网络? 在第二个装置开始调试之前、协调器必须启用许可加入。
    最好提供路由器和终端设备项目的监听器日志。

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

    协调员在10米处 away.e2e.ti.com/.../end_5F00_device_5F00_coordinator.psd 、是因为这个原因吗? 当我将节点保持在 t IT (1米)附近时、它会发送响应、但不会加入网络。 已附加相同的监听器文件。

    我在预处理器中使用的编译标志是

    BDB_报告
    SECURE=1
    XTC_LINKKEY_JOIN
    NV_INIT
    NV_RESTORE
    xPOWER_Saving
    NWK_AUTO_POLL
    xZTOOL_P1
    XMT_TASK
    XMT_APP_FUNC
    XMT_SYS_FUNC
    XMT_ZDO_FUNC
    XMT_ZDO_MGMT
    XMT_APP_CNF_FUNC
    xLCD_supported=调试
    组播启用=假
    ZCL_READ
    ZCL_discover
    ZCL_WRITE
    ZCL_BASIC
    ZCL_Identify
    ZCL_ON_OFF
    ZCL_Scenes
    xZCL_GROUP
    ZCL_LEVEL_CTRL
    HAL_LCD=false
    INT_HEPASS_LEN=2560 --闪存优化
    BDB_TL_TARGET  
    Inter_PAN
    default_key  --这是有自己的密钥
    xBDB_network_steering 功能启用= 1.

    并添加了  

    BDB_StartCommissioning (BDB_commissioning_mode_NWK_Steering |BDB_commissioning_mode_finding_binding |BDB_commissioning_mode_initiator_TL);  

    zclSamplelight_Init()结束时

    在 ZGlobal. c 中将 zgPreConfigKeys 设置为 true  

    并在 f8wconfig.cfg 文件中添加了默认密钥

    当我使用路由器配置构建它时,它将加入网络,但在构建为终端设备时,相同的代码将不会加入。(将会发生配置)

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

    我对您尝试处理编译标记和网络设置时的情况有点困惑、因此我会做一些评论。

    由于 Zigbee 3.0器件调试中的更改、您无法再禁用 TC_LINKKEY_Join。 在监听器日志中、ZC 正在尝试向加入设备发送传输密钥包、但由于您的编译时选项、该数据包格式错误。
    协调器不能使用 Touchlink (BDB_TL_TARGET、Inter_PAN、BDB_T试 运转_MODE_INITIATER_TL)。 协调器形成集中式网络、而触摸链路调试不适用于集中式网络。
    3.加入设备不能使用 touchlink 加入集中式网络,加入设备只能使用 touchlink 加入分布式网络。

    您能否解释一下您的用例是什么? 高级、即您的网络设备是什么、您的拓扑是什么、最终目标是什么? 您是否需要 Touchlink 提供的基于接近的网络调试功能、或者是否可以使用经典的 Zigbee 网络调试功能?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据监听器日志、问题似乎出在您的安全设置上。 为什么要禁用 TC_LINKKEY_JOIN?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../0121.end_5F00_device_5F00_coordinator.psde2e.ti.com/.../Router_5F00_Coordinator.psde2e.ti.com/.../Router_5F00_Coordinator.psdHiRayan,

    以下是我所做的更改

    通过禁用 UI 相关内容和 LCD 相关内容来优化代码、如所述

    processors.wiki.ti.com/.../Optimizing_Flash_and_RAM_Usage_of_Z-Stack_for_CC2530

    2.添加了功能

    BDB_StartCommissioning (BDB_commissioning_mode_NWK_Steering |BDB_commissioning_mode_finding_binding |BDB_commissioning_mode_initiator_TL);  

    ZclSamplelight_init()函数末尾处

    3.在 ZGlobal. c 中将 zgPreConfigKeys 设置为 true

    4.在 f8wconfig.cfg 文件中添加了默认密钥

    对于路由器、以下是我使用的编译标志、

    BDB_报告

    SECURE=1

    XTC_LINKKEY_JOIN

    NV_INIT

    NV_RESTORE

    组播启用=假

    ZCL_READ

    ZCL_discover

    ZCL_WRITE

    ZCL_BASIC

    ZCL_Identify

    ZCL_ON_OFF

    ZCL_Scenes

    xZCL_GROUP

    ZCL_LEVEL_CTRL

    HAL_LCD=false

    INT_HEap_LEN=2560

    BDB_TL_TARGET

    Inter_PAN

    default_key

    对于终端设备、以下是我使用的编译标志、

    BDB_报告

    SECURE=1

    XTC_LINKKEY_JOIN

    NV_INIT

    NV_RESTORE

    xPOWER_Saving

    NWK_AUTO_POLL

    组播启用=假

    ZCL_READ

    ZCL_discover

    ZCL_WRITE

    ZCL_BASIC

    ZCL_Identify

    ZCL_ON_OFF

    ZCL_Scenes

    xZCL_GROUP

    ZCL_LEVEL_CTRL

    HAL_LCD=false

    INT_HEap_LEN=2560

    BDB_TL_TARGET

    Inter_PAN

    default_key

    在路由器的情况下,它已加入网络(Becon 请求--关联请求--短地址分配和新设备通知)

    在终端设备的情况下、它只会持续短地址分配、不会发送新设备通知。

    我已附上两个案例的监听器文件。

    默认情况下、在 bdb.h 文件中、堆栈 BDB_network_steering _capability _enabled 设置为1

    您是否确定路由器 SampleLight 实际上正在加入协调器网络而不是形成自己的分布式网络?  如何验证这一点? 监听 器显示路由器节点也正在广播网络。

    请指导我将终端设备加入协调器。 (我正在使用启用了允许加入的旧堆栈协调器--我有一个连接到协调器的 rasberry PI UART 接口,该接口将控制和维护协调器)

    等待您的回复

    此致、

    Avinash

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

    我们的现有系统:
    我们当前的 Zigbee 网络由一个 ZC 和多个路由器组成。 这些基于 ZStack 2.6.1 ZC 是使用 Z-Stack-Mesh 样本构建的、路由器是使用 ZStack 照明样本构建的。 在我们的网络中、我们通过设置 zgPreConfigKeys=true 并在 f8wconfig.cfg 中配置密钥来使用预配置的密钥。 对于每个部署,我们都使用 ZC 和 ZR (灯具)中配置的唯一配置。

    我们的目标是将 ZED (占位传感器)添加到我们的网络中、并迁移到 ZStack 3.0.1。 我们的网络将是采用 ZC 的集中式网络。 我们使用的是 GBAN GB2530 SoC。

    来回答您的问题
    1.我正在使用我们现有的 ZC (ZStack (2.6.1)-Mesh )和 ZED 使用 ZStack 3.0.1构建
    2.我们不想使用 Tochlink
    3.同上。


    那么、我的问题是
    ZStack3.0.1 ZED 能否与我的现有 ZC (ZStack 2.6)配合使用并使用预配置的链接密钥选项。 否则、我们可以将 ZC 和 ZR 迁移到3.0.1

    如何在 ZStack 3.0.1中配置 ZC 和 ZED 中的预配置链接密钥。 如果您可以提供相同的编译选项和设置、请不胜感激。 如果在 ZStack 3.0.1中不能实现这一点、那么使用预配置密钥的下一个最佳选项是什么。 ZStack 3.0开发人员指南第10.2节介绍了预配置的密钥方法。 这是否有效?

    ZED 是一款占位传感器。 我正在尝试使用 Samplelight 示例构建我的应用。 这是正确的方法,还是应该使用“样本开关”项目作为构建应用程序的基础。 或者建议是否有更好的方法


    此致、
    Avinash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正如 JasonB 在上一篇文章中所回答的、您必须在 Z-Stack 3.0中使用 TC link 密钥。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    启用 TC_LINKKEY_Join。 ZStack 3.0.1 ZED 与 ZStack 2.6 ZC 兼容、但必须根据3.0规范使用 TC 链接密钥。 在 NWK_globals.h 中设置 DEFAULT_TC_LINK_KEY。如果 BDB_INSTALL_CODE_USE 设置为 BDB_INSTALL_CODE_USE_IC_CRC、则 zcl_sampleAPPS_ui.c 给出了安装代码和地址的示例。 我建议您在尝试安装代码之前使用默认密钥。 光源或开关项目对加入网络没有影响、但会影响您的 ZCL 属性。

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

    您是否能够解决您的问题? 如果是、请告诉我们您的解决方案。 如果您没有其他意见、我将此帖子标记为已解决。

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

    它尚未固定、

    对于协调器,我正在使用 ZNP 协调器代码

    以下是对 ZNP 协调器代码所做的更改

    mT_uart.c --启用 UART 并更改波特率。
    znp_app.c --与 UART 波特率相关的变化。

    我对 CC2530进行了编程、并使 Ztool 能够进行通信。

    以下是我发送的命令、

    Util_SET_PAN_ID = 3
    Util_set_channel_ID = 12 (十进制)
    ZB_START_REQUEST

    之后、网络在通道12和 PAN ID 3上启动。

    之后、我又发送了两条命令

    1、ZB_permit_Join_request 分别具有0xFFFF 和0xFF 输入
    输入超时为0xFF 时的 ZB_ALLOW_BIND


    以下是我使用的编译标志

    BDB_Finding_Binding_Capability = 0
    TC_LINKKEY_JOIN
    NWK_MAX_DEVICE_LIST=10
    ZDSECMGR_TC_DEVICE_MAX=30
    disable_GREENPOWER_basic_proxy
    xPOWER_Saving
    Feature_system_stats
    MT_GP_CB_FUNC
    MT_SYS_FUNC
    MT_NWK_FUNC
    MT_AF_FUNC
    MT_ZDO_FUNC
    MT_SAPI_FUNC
    MT_UTIL_FUNC
    MT_APP_FUNC
    MT_ZNP_FUNC
    ZNP_ALT
    HAL_PA_LNA
    ZCL_READ
    HAL_UART=true
    ZTOOL_P1
    NV_RESTORE
    NV_INIT



    在此之后、我通过以下更改将 Samplelight 终端器件编程到其他某个节点来启动该器件、


    已禁用所有与 UI 相关的函数调用、

    从编译中排除了 zcl_sampleapps_ui.c 和 zcl_sampleapps_ui.h 文件

    被调用

    BDB_StartCommissioning (BDB_commissioning_mode_NWK_Steering | BDB_commissioning_mode_finding_binding | BDB_commissioning_mode_initiator_TL);

    在 samplelight_init 函数的末尾


    没有其他更改、正如建议的那样、我不会对安全相关事项进行任何更改、也不会尝试查看默认堆栈中两个器件的关联和加入。

    我正在使用数据包监听器,并看到终端设备节点发送了 becon 请求,协调器响应该请求,关联标志为1。 但之后什么也没有发生。

    需要您的帮助才能更好地了解流程。 请建议加入两个器件所涉及的步骤。 我们怎么能说这两个设备已连接??

    以下是终端设备的编译标志

    BDB_报告
    SECURE=1
    TC_LINKKEY_JOIN
    NV_INIT
    NV_RESTORE
    xPOWER_Saving
    NWK_AUTO_POLL
    xZTOOL_P1
    XMT_TASK
    XMT_APP_FUNC
    XMT_SYS_FUNC
    XMT_ZDO_FUNC
    XMT_ZDO_MGMT
    XMT_APP_CNF_FUNC
    LCD_supported=调试
    组播启用=假
    ZCL_READ
    ZCL_discover
    ZCL_WRITE
    ZCL_BASIC
    ZCL_Identify
    ZCL_ON_OFF
    ZCL_Scenes
    ZCL_GROUP
    ZCL_LEVEL_CTRL

    期待您的帮助


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

    e2e.ti.com/.../end_5F00_device_5F00_with_5F00_coordinator.psdattaching用于上述帖子的监听器文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在监听器日志中、您的协调器启用"允许加入"、但设备在从协调器接收信标帧后不执行关联请求。 该器件可能已加入其他 Zigbee 协调器并将网络信息保留在 NV 状态、因此无法加入该协调器。 我建议您擦除器件的闪存并下载固件以再次进行测试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在这个过程中做到了这一点、但结果是一样的。

    监听器文件包括相同的内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何擦除 CC2530?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    智能射频闪存编程器。 我正在使用模块 GB2530、我们可以通过该模块将引脚连接到调试器、并通过智能射频编程器擦除芯片和对芯片进行编程
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    听起来没问题。 无论如何、我建议您擦除协调器和器件以再次进行测试。 如果您在将设备加入到协调器时仍然遇到问题、请附加监听器日志以进行分析。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已尝试,但问题仍然存在。 无响应。 刷写了协调器和终端设备。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../15031018_5F00_enddevice.psd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    监听器日志中没有信标帧。 您应该首先检查协调器是否正确地形成 Zigbee 网络。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我为路由器设备通电时、它会加入网络、但当我尝试使用终端设备时、会发生这种情况。 无论如何、如何确保协调器正在形成网络
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 IAR 在 zcl_sampleapps_ui.c 中的 UI_DeviceStateUpdated ()的"CASE DEV_ZB_COord:"上设置断点、并确保在"CASE DEV_ZB_COord:"中停止、这意味着协调器设置成功。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于无法找到参数指定的网络,路由器设备可能会形成分布式网络而不是加入集中式网络。 您是否修改了正确信道和 PAN ID 的协调器代码?

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    路由器设备正在从协调器获取关联响应。 我正在使用 ZNP 协调器(ZStack 3.0.1)和示例光路由器件、两者均启用了 TC_LINK_KEY。


    我不确定天气、它是分布式网络的集中网络。

    当我将固件构建为“End-Device”时,我遇到了问题。 构建为路由器设备并通电时,相同的示例光项目将发送 becon 请求和 becon 响应,从协调器获取关联响应和短地址。 但是、构建为终端设备时的相同代码将仅发送一次 Becon 请求、之后不会发生任何情况。


    我不知道天气我在这里缺少一些基本的东西、但我无法与终端设备和协调器进行通信。

    期待您的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试引用 sunmaysky.blogspot、tw/.../use-ztool-z-stack-30-znp-to-set-up.html 并使用 UTIL_GET_DEVICE_INFO 检查协调器是否已成功设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已成功设置协调员先生。

    Util_get_device_info 此命令将显示,已成功设置协调器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否可以附加监听器记录当前测试结果?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Avinash:

    我使用 Z-Tool v2.0.6通过 YK 的博客为 Zigbee 网络设置 Z-Stack 3.0.1 ZNP 项目: sunmaysky.blogstoe.tw/.../use-ztool-z-stack-30-znp-to-set-up.html

    在调试网络转向后、我能够让 Z-Stack 3.0.1 SampleLight 项目设备加入网络、而不会出现任何问题。 这是通过在 SMARTRF06EBK 电路板上使用 CC2538EMK 来完成的、因此我将在下周拥有一些 CC2530EMK 器件后重试。

    编辑:也没有收到任何 CC2530EMK 问题。

    此致、
    Ryan