你好!
我有一个简单的问题、想象一下这种情况。
我有加密狗、创建网络、配对我的设备、然后在一段时间后、我决定更改加密狗。
是否有任何方法可以将网络从一个加密狗移动到另一个加密狗? 因此我不必再次配对设备?
此致、
Ayman Hammou
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.
你好,YiKai。
感谢您的链接。
我有一个 SonOff 软件狗、克隆工具似乎无法识别它们。 这可能是由其内部的 UARTToUSB 芯片造成的。
有什么关于如何解决这个问题的想法吗?
确保在软件狗上运行 ZNP、并正确设置波特率
我有 ZNP 在其上运行。
它无法识别加密狗。
也许您应该先使用 TI LaunchPad 来测试这一点。
在对 python 代码进行一些修改后、我使其运行。 UARTToUSB 芯片导致其无法工作。
写入过程会一直进行、直到它必须写入 ZCD_NV_EX_TCLK_TABLE。 有什么理由?
尊敬的 Ayman:
您的 ZNP 必须 定义 MT_SYS_KEY_MANAGEMENT。
此致、
Ryan
它通常在 Project Properties -> CCS Build -> Arm Compiler -> Predefined Symbols 或 Stack/Config/ZNP_cnf.opts 中定义。 在大多数默认构建中未启用该功能。
此致、
Ryan
好的。 我已向未 定义 MT_SYS_KEY_MANAGEMENT 标志的客户端发送了200多个加密狗。
是否有必要或者我可以在没有加密狗的情况下克隆加密狗?
信任中心链接密钥表 ZCD_NV_EX_TCLK_TABLE 包含 TX/RX 帧计数器、扩展地址、密钥属性/类型以及添加到网络中的相应器件的种子移位索引。 与其他 NV 存储器所需内容一样、此信息对于保留现有网络中的器件是必需的。
此致、
Ryan
这是读数的 CLI 输出:
Success: Data Read for ZCD_NV_PANID Success: Data Read for ZCD_NV_EXTADDR Success: Data Read for ZCD_NV_EXTENDED_PAN_ID Success: Data Read for ZCD_NV_BDBNODEISONANETWORK Success: Data Read for ZCD_NV_NIB Failure: Could not read ZCD_NV_NWK_ACTIVE_KEY_INFO (610802) Failure: Could not read ZCD_NV_NWK_ALTERN_KEY_INFO (610802) Failure: Could not read from: ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE Failure: Could not read from: ZCD_NV_EX_TCLK_TABLE Failure: Could not read from: ZCD_NV_EX_TCLK_IC_TABLE Failure: Could not read ZCD_NV_GROUP_TABLE (610802)
问题似乎也适用于其他 NV 元素。
此定义将影响对大多数关键相关 NV 项目的访问。
此致、
Ryan
嗯、我已经在配置文件中添加了"-dm_SYS_key_management"、构建了十六进制并对其进行了刷写、但看起来不起作用。
确保在重建之前清理工程、使用 LaunchPad 进行测试、并在重新编程之前擦除所有闪存。
此致、
Ryan
您是否首先使用 LaunchPad 测试此项?
这些是启用的标志。
-DMAC_CFG_APP_PENDING_QUEUE=TRUE -DMAC_CFG_TX_DATA_MAX=5 -DMAC_CFG_TX_MAX=8 -DMAC_CFG_RX_MAX=5 -DOSAL_NV_EXTENDED -DADDRMGR_NV_SINGLES -DBINDINGTABLE_NV_SINGLES -DASSOCLIST_NV_SINGLES -DZSTACK_DEVICE_BUILD="(DEVICE_BUILD_COORDINATOR | DEVICE_BUILD_ROUTER | DEVICE_BUILD_ENDDEVICE)" -DNWK_AUTO_POLL -DZNP_UART_BAUD=HAL_UART_BR_115200 -DZIGBEEPRO -DZIGBEE_FRAGMENTATION -DINTER_PAN -DMT_UTIL_FUNC -DMT_SYS_FUNC -DMT_AF_FUNC -DMT_ZDO_CB_FUNC -DMT_ZDO_FUNC -DMT_ZDO_MGMT -DMT_ZDO_EXTENSIONS -DMT_GP_CB_FUNC -DMT_APP_CNF_FUNC -DMT_SYS_KEY_MANAGEMENT
请在重新构建之前添加-DFEATURE_NVEXID (并可能关闭 CCS 编译器的优化以获得更好的调试体验)。 请注意 、如果未使用安装代码、则不会读取 ZCD_NV_EX_TCLK_IC_TABLE、并且 ZCD_NV_GROUP_TABLE 应在 config_nv_regions.txt 中重命名为 ZCD_NV_EX_GROUP_TABLE、位于项目 ID 0x0008、系统 ID 0x01、子 ID 0x0000以及与 SysConfig -> Z-Stack -> Group Size -> Group Table 等效的条目。 附件是在进行必要的更改后获得的示例。
e2e.ti.com/.../read_5F00_content.txt
此致、
Ryan
Ryan。
感谢您的建议、现在阅读有效、但当涉及克隆时、我得到了以下结果:
Success: Data Read for ZCD_NV_PANID Success: Data Read for ZCD_NV_EXTADDR Success: Data Read for ZCD_NV_EXTENDED_PAN_ID Success: Data Read for ZCD_NV_BDBNODEISONANETWORK Success: Data Read for ZCD_NV_NIB Success: Data Read for ZCD_NV_NWK_ACTIVE_KEY_INFO Success: Data Read for ZCD_NV_NWK_ALTERN_KEY_INFO Success: Data Read for ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE Success: Data Read for ZCD_NV_EX_TCLK_TABLE Failure: Could not read from: ZCD_NV_EX_TCLK_IC_TABLE Success: Data Read for ZCD_NV_EX_GROUP_TABLE Read Complete. Refer to read_content.txt to view results. Success: Formed the Network Failure: Could not write to: ZCD_NV_PANID (Empty Return) Failure: Could not write to: ZCD_NV_EXTADDR (Empty Return) Failure: Could not write to: ZCD_NV_EXTENDED_PAN_ID (Empty Return) Failure: Could not write to: ZCD_NV_BDBNODEISONANETWORK (Empty Return) Failure: Could not write to: ZCD_NV_NIB (Empty Return) Failure: Could not write to: ZCD_NV_NWK_ACTIVE_KEY_INFO (Empty Return) Success: Wrote ZCD_NV_NWK_ALTERN_KEY_INFO to Memory Success: Wrote ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE to Memory Success: Wrote ZCD_NV_EX_TCLK_TABLE to Memory Success: Wrote ZCD_NV_EX_GROUP_TABLE to Memory
如果这些 sys_nv_write 失败、是否正常?
这不是预期结果。 确保您的第一个 ZNP/ZC 建立了有效的网络。 然后、第二个 ZNP/ZC 应该在闪存新映像之前擦除其所有存储器。 接下来、使用 TI Zigbee 网络克隆工具的"工具"->"表单网络"选项初始化第二个 ZNP 的 NV 信息、然后使用"克隆内容"成功复制所有相关的 NV 存储器、例如我的示例:
While in operation this window will be frozen until completion. 2022-12-19 12:41:55.781855 Success: Data Read for ZCD_NV_PANID Success: Data Read for ZCD_NV_EXTADDR Success: Data Read for ZCD_NV_EXTENDED_PAN_ID Success: Data Read for ZCD_NV_BDBNODEISONANETWORK Success: Data Read for ZCD_NV_NIB Success: Data Read for ZCD_NV_NWK_ACTIVE_KEY_INFO Success: Data Read for ZCD_NV_NWK_ALTERN_KEY_INFO Success: Data Read for ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE Success: Data Read for ZCD_NV_EX_TCLK_TABLE Failure: Could not read from: ZCD_NV_EX_TCLK_IC_TABLE Success: Data Read for ZCD_NV_EX_GROUP_TABLE Read Complete. Go to [view] to see content Success: Wrote ZCD_NV_PANID to Memory Success: Wrote ZCD_NV_EXTADDR to Memory Success: Wrote ZCD_NV_EXTENDED_PAN_ID to Memory Success: Wrote ZCD_NV_BDBNODEISONANETWORK to Memory Success: Wrote ZCD_NV_NIB to Memory Success: Wrote ZCD_NV_NWK_ACTIVE_KEY_INFO to Memory Success: Wrote ZCD_NV_NWK_ALTERN_KEY_INFO to Memory Success: Wrote ZCD_NV_EX_NWK_SEC_MATERIAL_TABLE to Memory Success: Wrote ZCD_NV_EX_TCLK_TABLE to Memory Success: Wrote ZCD_NV_EX_GROUP_TABLE to Memory Please Power Cycle/Restart the new ZC to complete the procedure. Ensure to do a physical reset if it is the first time restarting the device after programming with an XDS110. If using a LaunchPad the reset button may be pressed. 2022-12-19 12:41:56.701965 Window is now operational.
此致、
Ryan
嗯、我发现了导致写入失败的原因并修复了它。
建议列表:
def read_response(port): buf_hex = [] try: buf = port.read(2) # Read the SOF and LEN buf = buf.hex() # Convert read data to a hexadecimal string if buf[0:2] == 'fe': # Verify the SOF byte buf2 = port.read(int(buf[2:4], 16) + 3) # Read the rest of the frame + CMD0/CMD1/FCS buf_hex = buf + buf2.hex() # Append the rest of the frame buf_hex = buf_hex[2: len(buf_hex)] # Remove the SOF byte elif buf[0:2] == "00" and buf[2:4] == "fe": length = port.read(1) ll=int.from_bytes(length, byteorder = "big") buf2 = port.read(ll + 3) buf_hex = buf + buf2.hex() buf_hex = buf_hex[3:len(buf_hex)] except ValueError: buf_hex = [] return buf_hex