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:面向初学者的 ZNP 和 ZigBee 的更多详细信息

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

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/569371/cc2530-more-details-of-znp-and-zigbee-for-beginners

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

你(们)好

我已开始通过 UART 与 ZNP 合作,阅读了“使用 CC2530-ZNP 方法开发 ZigBeeRegistered系统”和“Z-Stack 监视器和测试 API”文档,但仍然不了解一些内容以及如何通过 ZNP 命令设置一些配置, 我想我需要有关 ZNP 命令的更多详细信息、 在" ZB_WRITE_CONFIGURATION -> ZCD_NV_LOGICAL_TYPE "中、有2个字节用于定义逻辑类型、但我不知道应设置什么编号来设置协调器以及路由器等的编号、以及有关 ZB_WRITE_CONFIGURATION 本身的更多详细信息、 我在哪里可以看到数字的含义、在回答中每个数字的含义是什么! 其中一些在 z 堆栈监视器和测试文档中、但细节却非常少!! 我的另一个问题是,我也不理解一些一般的 ZigBee 定义,例如,我不知道应该对应用程序 ID、设备 ID、NOIC、调试 cluser 执行什么操作... 以及如何设置它们。  

一般而言、我需要简化 ZigBee 网络、我发现通过 UART 使用主机 MCU 和 ZNP 是一种简单的方法、但我需要更多详细信息和了解才能尝试。 为了更全面地了解与 ZNP 合作时需要了解的主要 ZigBee 内容、我应该阅读什么? 我用 CC2530和 MCU 制作了自己的分线板、我已经将它们连接在一起、CC2530 ZNP 工作正常、但我需要比3个 ZNP 文档更深入的了解。

此致  

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

    我发现此链接有助于理解一些重要的 ZigBee 定义、您是否了解其他一些好消息来源以提供一些有关 ZigBee 的一般视图?

    http://www.informit.com/articles/article.aspx?p=1409785&seqNum=8

    + ZNP 是否使用 ZigBee pro?

    谢谢

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

    随着 ZigBee 3.0的发布、ZNP 接口规范文档已更新、以包含有关软件命令接口的更多信息。 请参阅本文档中的第3节。 此外、《Z-Stack 3.0开发人员指南》还提供了有关设置 ZigBee 网络基础知识的大量有用信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以参考 www.ti.com/.../TIDC-ZNP-HOST-SW3www.ti.com/.../CC2531EM-IOT-HOME-GATEWAY-RD 作为 ZAP-ZNP 示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在编译器定义中使用 NV_RESTORE 与不使用 NV_RESTORE 有何区别? 我知道这会导致在芯片重新供电后从 NV 存储器加载某些网络设置、但这些是什么? 如 PAN ID、TC link key 和...? 有人能不能告诉我所有这些问题吗?
    我在 nwkglobals.h 上看到这些代码:
    ----
    // ZigBee 联盟预配置的 TC 链接密钥-'ZigBeeAllianc09 (用于集中式网络)
    #define DEFAULT_TC_LINK_KEY {0x5a、0x69、0x67、0x42、0x65、 0x65、0x41、0x6c、\
    0x6c、0x69、0x61、0x6e、0x63、 0x65、0x30、0x39}
    ----
    但我从未在器件上看到此代码、我应该使用什么 ZNP 命令来检查它?
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    NV_RESTORE 使能将所有网络信息保留在 NV 中、例如 PAN ID、通道、网络密钥、短地址... 在设备首次加入网络并交换网络密钥时、TC link key 将应用于加密网络密钥。 这由 Z-Stack 处理、应用开发人员不必处理。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    再次感谢 YiKai
    ZNP 开发文档中的"ZB_WRITE_CONFIGURATION -> ZCD_NV_TC_LINK_KEY"是什么?

    如果 NV_RESTORE 自动恢复这些数据、"ZB_WRITE_CONFIGURATION -> ZCD_NV_STARTUP_OPTION "会怎么做?

    您能告诉我应该在协调器上设置哪一个、应该在路由器和 ED 上设置哪一个? 我知道 ZC 的短地址为零、路由器的短地址为随机数、每次都会更改、IEEE 对于每个设备都是恒定的、但网络密钥和 PAN ID 又如何? 通常、我看到 PAN ID 默认为零、但如果我们要更改它、我们应该仅在协调器或路由器上进行更改?
    我不清楚设置网络密钥!!

    很抱歉,YiKai 有很多问题!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用"ZB_WRITE_CONFIGURATION -> ZCD_NV_TC_LINK_KEY "覆盖 ZNP 上的默认 TC Link 密钥。
    2.当 ZC 扫描通道并形成 Zigbee 网络时、PAN ID 由 ZC 分配。 ZNP 上也有一个默认网络密钥。 如果要更改 PAN ID 或网络密钥、应在协调器上更改它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果 NV_RESTORE 自动恢复这些数据、"ZB_WRITE_CONFIGURATION -> ZCD_NV_STARTUP_OPTION "会怎么做?
    所以我不需要更改路由器上的 PAN ID 和网络密钥? 在协调器上更改它们也是可选的吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.如果您在 ZB_WRITE_CONFIGURATION -> ZCD_NV_STARTUP_OPTION 中使用0x3、则下次循环通电时会清除 NV 数据。 当您启用 NV_RESTORE 时、NV 数据将自动恢复到您的应用程序中。
    2.是的,您不需要更改路由器右侧的 PAN ID 和网络密钥。 而且、在协调器上更改它们是可选的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢 YiKai,你是一个很棒的人:)
    有人能告诉我在哪里可以找到有关"app_CNF_BDB_commioning_notification"的更多详细信息吗? 也许上面有一个头文件扩展名!! (我想有人是凯伊亚根!) ;)

    另一个问题是、我应该在哪里设置 PRECFGKEY? 它也是可选的吗? 如何在网络运行时检查它?

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以在 bdb_event_loop()中检查 MT_AppCnfCommissioningNotification 以了解有关"app_CNF_BDB_commioning_notification"的更多详细信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,YiKai
    如果我想在没有任何外部 MCU 和 ZNP 的情况下开发 ZigBee、该怎么办? 我将应用程序写入 IAR ZStack 3.0是否更加困难? 我的意思是、如果我想使用 CC2530本身!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不认为这会很困难。 我通常以这种方式执行它、而不使用 ZNP。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我应该如何像使用 ZNP (使 ZC 和 ZED 或 ZR 网络成为一个简单的任务,并发送一些字节)一样,从这种方式开始执行一项简单的任务?
    从哪里开始、我还应该阅读什么内容?
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我建议您从 SampleLight 和 SampleSwitch 示例开始。 使用 IAR 将 SampleLight 构建为协调器、将 SampleSwitch 构建为终端器件、以使它们相互通信。 Z-Stack 3.0文档文件夹中提供了示例用户指南和开发人员指南。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CC2530的 z-stack 3.0的"SYS_SET_TX_POWER"默认值是什么? 我发现该值可以获得1字节数据、但正如 CC2530数据表中所示、最大 TX 功率为4.5dBm、那么我应该如何将浮点数设置为字节? 如何将其设置为最大值(4.5)。 或者、当需要时、z 堆栈可能会将其更改为最大功率?!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    默认 TX 功率为0dBm。 如果您希望默认将其更改为4.5dBm、则可以将 macRadioDefsTxPwrBare []的 macRadioDefsTxPwrBare []的第一个元素(在以下示例中标记为第一个条目*的/* tramsmit 功率级别)从3设置为0。

    const uint8代码 macRadioDefsTxPwrBare []=

     3、 /*第一项的 trmsit 功率级别*/
     (uint8)(int8)-22、//最后一个条目的发送功率级别*/
     /*  3dBm */  0xf5,  /* 在数据表中被表征为4.5dBm */
     /*  2dBm */  0xE5,  /* 在数据表中被表征为2.5dBm */
     /*  1dBm */  0xD5,  /*   在数据表中被表征为1dBm */

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

    谢谢 YiKai

    我应该将其从3更改为0以获得4.5dBm?!!! 你确定吗? 您是否意味着将其设置为3会导致0dBm、而设置为3会导致4.5dBm?! 比如 enum?!

    如果我不想更改默认值该怎么办? 我可以在加电后更改它吗? 我是否应该发送0以使用"sys_set_tx_power"设置4.5dBm?  

    在使用板载天线的情况下、0dBm 和4.5dBm 之间有多大差异?! 一个一般性的问题!!

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、它就像枚举。 应将其设置为3将导致0dBm、而设置为0将导致4.5dBm。 是的、您可以在加电后使用 sys_set_tx_power 参数=4将其设置为4.5dBm。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为了获得新的协调器器器件列表、应该将什么命令与 z-stack 3.0 ZNP 一起使用? 当我有2个终端设备时、我通过 uild_get_device_info 看到它们、但当我关闭其中一个 ED 并获取 util_get_device_info 时、它仍然显示2个设备、但实际上它只是一个设备、现在是否有任何命令可用于查找真正的设备? 协调人应如何检查目前连接了哪一个 ZED 和 ZR?
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    uup_get_device_info 仅返回关联列表中的项目。 如果您想知道 ZED 和 ZR 目前已连接、则可以定期向所有 ZED 和 ZR 已加入 ZC 的情况发送活动端点请求。 如果 ZC 从 ZED 或 ZR 获得响应、则此时将连接它。 否则、不是。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有新的问题:)
    1-当我们获取设备信息时,发现协调器未在关联的设备数量上显示路由器,我们应该如何计算连接到协调器的路由器数量? 我需要一个具有一个协调器和10多台路由器的网络、其中一些路由器直接连接到 ZC、另一些路由器直接连接到其他 ZR、但我现在不应该在 ZNP 的协调器上查找它们、也不应该如何管理它们!
    2 -我了解 Zed 在父节点丢失后、ZNP 的一条消息何时发出给我的 MCU、我使用它来查找新的父节点或其他设备、但当路由器丢失父节点时、它不会给我任何消息!! 如何检查路由器是否已连接到其父路由器(通常是 ZC)? 我应该经常检查一下吗? 我们应该如何在 ZNP 中做到这一点?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 Z-Stack 3.0中,ZR 不会列在关联列表中,因此您无法使用 util 设备信息获取 ZR 计数。
    2. ZR 节点上没有父-子关系。 在 Zigbee 规范中、ZR 在加入 Zigbee 网络后无需 ZC 即可工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,YK,

    在 Z3.0中,路由器被放置在其加入的父设备的关联表中。 1.2.2a 中有一个错误、如果路由器不再连接到关联表、则阻止路由器从关联表中删除、因此 Z3.0中的变化是路由器现在可以"过时"关联表(和邻居表)、 基于父设备从其关联表中的任何路由器缺失的链路状态周期数。 默认路由时间(即允许错过的链路状态的最大数量)为3、由 NWK_LOAD_AGE_LIMIT 定义、并且根据15秒内您何时会收到链路状态消息的不确定性、器件将以最大15*(NWK_LOAD_AGE_LIMIT + 1)秒的时间被移除。

    另一个需要注意的问题是 ZC/ZR 器件上的关联表和邻居表之间的差异。 关联表适用于直接通过此父设备加入的设备、即未过期的子终端设备或路由器。 邻居表用于此设备的无线电范围内但不是直接子设备的设备,即,如果从不在其关联表中的另一个设备接收到链路状态消息,则设备将添加到路由设备的此表中。

    例如,如果路由器 A 通过协调器 C 加入,则 A 最初将位于 C 的关联表中。 然后、如果 A 被关闭、C 将在~60s 后从其关联表中删除 A。 然后、如果 A 启用了 NV 恢复并重新打开、则一旦 A 开始再次发送链路状态消息、C 将在其邻居表中放置 A。 然后、如果 A 再次关闭、C 将在~60s 后从其相邻表中删除 A。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    @JasonB 感谢您的详细解释。 但是,当我在 Z-Stack 中测试 ZNP 并使用 sunmaysky.blogspot.tw/.../use-ztool-z-stack-30-znp-to-set-up.html 中的步骤时,我确实看到路由器被列在关联列表 中。 当 ZR 加入 ZC 时、我将 UTIL_GET_DEVICE_INFO 发送到 ZC、并参阅 NumAssocDevices is Still 0。 您能验证这一点吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我执行测试以再次将 ZR 连接到 ZC、以下是 ZC 的 ZTOOL 控制台。 如您所见、当我向 ZC 发出 UTIL_GET_DEVICE_INFO 或 ZDO_IEEE_ADDR_REQ 时、ZR 0x7472加入 ZC、但我看不到它在关联表中列出。 如果您对 ZC 的关联列表中显示的 ZR 正确,那么 NumAssocDevices 不应为0。 您能验证这一点吗?

    01:46:53.55 COM1 ZDO_END_DEVICE_ANNCE_IND (0x45C1)
    SrcAddr:0x7472
    NWKADDR:0x7472
    IEEEAddr:0x00124B0000E5003E
    功能:0x8E

    01:47:03.07 COM1 UTIL_GET_DEVICE_INFO (0x2700)

    01:47:03.08 COM1 UTIL_GET_DEVICE_INFO_RESPONSE (0x6700)
    状态:成功(0x0)
    IEEEAddr:0x00124B0001025822
    短地址:0x0000
    DeviceType:协调器、路由器、END_DEVICE (0x7)
    DeviceState:DEV_ZB_COord (0x9)
    NumAssocDevices:0x00
    AssocDevicesList

    01:47:30.26 COM1 ZDO_IEEE_ADDR_REQ (0x2501)
    ShortAddr:0x7472
    ReqType:single_device_Response (0x0)
    起始索引:0x00

    01:47:30.27 COM1 ZDO_IEEE_ADDR_REQ_SRSP (0x6501)
    状态:afStatus_Success (0x0)

    01:47:30.3 COM1 ZDO_IEEE_ADDR_RSP (0x4581)
    状态:ZDP_SUCCESS (0x0)
    IEEEAddr:0x00124B0000E5003E
    NWKADDR:0x7472
    起始索引:0x83
    NumAssocDev:0x00
    AssocDevList

    01:47:42.54 COM1 ZDO_IEEE_ADDR_REQ (0x2501)
    ShortAddr:0x0000
    ReqType:single_device_Response (0x0)
    起始索引:0x00

    01:47:42.55 COM1 ZDO_IEEE_ADDR_REQ_SRSP (0x6501)
    状态:afStatus_Success (0x0)

    01:47:42.56 COM1 ZDO_IEEE_ADDR_RSP (0x4581)
    状态:ZDP_SUCCESS (0x0)
    IEEEAddr:0x00124B0001025822
    NwkAddr:0x0000
    起始索引:0x00
    NumAssocDev:0x00
    AssocDevList

    01:47:55.17 COM1 ZDO_IEEE_ADDR_REQ (0x2501)
    ShortAddr:0x7472
    ReqType:single_device_Response (0x0)
    起始索引:0x00

    01:47:55.19 COM1 ZDO_IEEE_ADDR_REQ_SRSP (0x6501)
    状态:afStatus_Success (0x0)

    01:47:55.21 COM1 ZDO_IEEE_ADDR_RSP (0x4581)
    状态:ZDP_SUCCESS (0x0)
    IEEEAddr:0x00124B0000E5003E
    NWKADDR:0x7472
    起始索引:0x00
    NumAssocDev:0x00
    AssocDevList

    01:48:13.68 COM1 UTIL_GET_DEVICE_INFO (0x2700)

    01:48:13.69 COM1 UTIL_GET_DEVICE_INFO_RESPONSE (0x6700)
    状态:成功(0x0)
    IEEEAddr:0x00124B0001025822
    短地址:0x0000
    DeviceType:协调器、路由器、END_DEVICE (0x7)
    DeviceState:DEV_ZB_COord (0x9)
    NumAssocDevices:0x00
    AssocDevicesList
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢朋友为您提供完整答案、当我在 ZC 上发送 util_get_device 信息时、我让 NumAssocDevices = 0、但是 ZR 已连接、他们可以相互传输数据!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    让我们等待 Jason 验证这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jason、您好吗?对于 ZR 是否应在 Z-Stack 3.0的关联列表中显示有任何更新?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,YK,

    事实上、即使路由器位于关联表中、UTIL_GET_DEVICE_INFO 也会故意忽略路由器设备、并且仅返回关联表中的任何终端设备。 在某些情况下、ZDP_NWKADDRREQ 也使用此命令中用于返回关联表的函数、ZigBee 规范在此处要求此列表仅包含终端设备、因此排除了路由器。

    我现在看到这是误导,我们将在下一个版本中考虑这一点。 我们需要添加 MT 命令、以提供关联表和邻居表中的设备列表。 目前、通过机器翻译提供的唯一解决方法如下所述、主要是从 NV 读取关联表并对其进行解析:
    e2e.ti.com/.../1992352
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我明白了。 我尝试使用 ZCD_NV_DEVICE_LIST 读取器件列表、可以看到其中列出了 ZR。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢朋友,但我最终不明白我应该使用什么 MT 命令来查看是否所有路由器都在网络中!! 我需要 ZC 和大约20 ZR、有些 ZRS 不在 ZC 范围内、并将通过其他路由器连接到 ZC、 我应该注意网络中的所有路由器、因为 ZC 应该向所有路由器发送服务器命令、ZC 应该检查网络以查看其中一个或多个路由器是否不可用!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用带有 NV ID 0x22的 SYS_OSAL_NV_READ 来获取设备列表、并看到其中列出了路由器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 YiKai 关于您的回答的两个新问题:
    1-我可以在 ZC 和 ZR 上使用它吗? 还是仅 ZC?
    2 -它是否提供实时数据? IE 我有20台路由器、我通过 SYS_OSAL_NV_READ 看到它们、而不是基于任何原因从网络中移除、10秒后我再次使用 SYS_NV_READ、这次是否看到19台设备?
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.是的,您可以在 ZC 和 ZR 上使用它。
    2.是的,它是实时数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 YiKai
    昨天、我将一台路由器连接到协调器、并且使用了"SYS_OSAL_NV_READ"、NV ID 为0x22、我从 NV 获得了路由器的地址。 之后、我断开了路由器和协调器的连接、现在在1天后、我连接协调器并再次读取 NV id0x22、它仍然显示该路由器昨天的地址。 我从 Jason 的帖子中了解到、协调员需要1分钟才能删除与网络断开连接的路由器的地址、因此我现在应该怎么办? 一分钟后、它是否仍会将其删除? 或者我应该移除整个 NV? 在 ZNP 协调器中、是否确定在1分钟后从网络断开连接时移除路由器 ID?!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在我已经等了一分钟以上、重启并关闭电源后、NV 上仍然有该地址、我认为我应该手动删除最后一个地址、 但是、当某些设备未删除时、我如何才能找到它是否与网络断开连接、而 util_get_device_info 也不显示路由器!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应在稍后关闭路由器并检查协调器 A 的设备列表。 如果您再次打开路由器、它将再次添加到设备列表中。 您应该关闭路由器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢 YiKai、我这么做了、一分钟后就删除了这个地址。 这个过程不是我所需要的、但可以正常工作!
    我不清楚的另一点是、当路由器和终端设备想要加入网络时、它们会获得新的随机短地址、所有设备都使用这些短地址在 ZigBee 上发送数据等。 但是、它们也具有固定的长地址。 我的问题是、当所有器件都断电并希望再次加入新网络时、每个器件都会再次获得新地址、因此、如果我有一个像阀门控制网络这样的系统、我不知道哪个新的短地址现在是哪个新的短地址!! 我想我应该使用固定地址的长地址来查找哪个器件具有什么短地址!! 短地址是随机的、但我的阀门有特殊的任务和固定位置、我应该如何理解哪个新的短地址用于哪个器件! 我想我应该在随机短地址和器件长地址之间找到一个关系、但我不知道怎么做?!!
    我希望你明白我的意思!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您不执行以下步骤清除 NV,则在电源回收或重置后,短地址不应更改。

    10:36:58.53 COM1 SYS_OSAL_NV_WRITE (0x2109)->写入启动选项以在复位时清除 NV
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为通常可能需要清除 NV 和短地址、但仍需要知道特殊器件!! 也许还有其他方法可以找到器件短地址和长地址之间的关系、或者通过了解特殊器件的长地址来自动定义特殊器件的短地址?! 例如、我知道厨房灯器件的长地址、加入网络后是否有办法为其提供特殊的短地址?! 是否要在启动过程中定义相对于长地址的短地址?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    短地址由 Z-Stack 分配、您的应用无法分配。 如果您知道长地址、则可以使用 API ZDP_NwkAddrReq 来请求器件短地址。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我可以使用 ZNP MT 命令执行此操作吗?!

    是否为“ZDO_NODE_DESC_REQ”?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、哪个命令用于此任务?!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 ZDO_NWK_ADDR_REQ 来执行此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我忙碌了一天之后、我的 ZigBee 工作为我提供了支持、我的协调器已启动、路由器以已知的短地址连接到它、在路由器通电并再次加入后、如果少于1分钟、则短地址不会改变、 但是,如果协调器正在运行超过一分钟,路由器将获得新的短地址,正如我在 ID 为0x22的协调器 NV_Read 检查的那样,路由器的短地址在从 ZC 断开1分钟后将被删除(正如 Jason 所说的) 现在、它再次以不同的地址加入。 但我不想改变这个地址!! 正如您所说、我应该避免在路由器上使用 NV_STARTUP_OPTION、但如果我不在路由器上使用它、它将不会加入协调器!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您的路由器上未使用 NV_STARTUP_OPTION、如何知道它在电源回收后未连接到协调器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将数据发送到它的最后一个短地址、但它不接收任何数据、而在其他情况下、当 ZC 尝试通过使用该路由器的长地址获取该路由器的 zdo 网络短地址时、它不接收任何数据!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Navid、

    您可以将 NWK 地址请求作为广播发送、这样所有器件都将中继此帧、直到它到达目标器件或可以代表目标器件应答的任何人。

    希望这对您有所帮助!