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 配置中的自定义群集和属性开发。

Guru**** 2798215 points

Other Parts Discussed in Thread: Z-STACK, CC2530, CC2592

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/765190/cc2530-regarding-custom-cluster-and-attribute-development-in-znp-configuration

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

大家好、

根据用例要求,我们必须发送自己的数据包 ,其中包括来自[Linux GATE Way]-->[ZNP device]->[终端设备]->[通过 UART 连接的终端设备主机(如 IMX)]的字符串"hello world"。

我们了解到、这需要一些自定义集群和属性。 所需的步骤是什么 、您还能简要解释一下我只是 ZigBee 开发的初学者吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yah.I 是按照 aboyve 文章中提到的那样从 IMX 发出的。 我没有看到任何反应,是不是以普遍或其他方式出现的?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于从 UART 发送 ping 命令、因此应在 UART 上获得该响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这里会出现什么问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我只能建议您使用 IAR 跟踪和调试 ZNP 项目、以了解 ZNP 是否首先收到 MT SYS ping 命令。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们正在从控制台向 CC2530芯片发送数据。我们在 DSO 的帮助下对其进行了修改。 但仍然"没有任何器件正在进行 shwoing"。我们通过将 MT_UART_DEFAULT_OVERflow 设置为 false 来配置协调器、并在 ztool 的端口设置中进行无握手

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试在 MT_UaerProcessZToolData 中设置断点、并在发送 SYS_ping 命令时检查 ZNP 是否已命中断点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们能够使用 AF_DATA_REQUEST 函数运行 ztool 并发送"hello world"、我们在 ubiqua 中得到了 NWK 地址请求数据包(显示"hello world")和 NWK 地址响应数据包。 我们如何将 CC2530终端器件的"hello world"(来自协调器)发送到串行端口控制台?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果在预定义符号中启用 MT_AF_FUNC、则应从 MT COmmnad 中看到"Hello World"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何将此数据从终端设备传递到 UART 端口?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您不必这么做。 当有 AF 传入消息时、它将自动通过 AF_INVING_MSG 发送到 UART。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    耶。 我执行了您提到的操作、在终端设备中启用了标志 MT_AF_FUNC、并使用 Microcom (Microcom -s 38400 -X /dev/ttymxc0)在 imx6中打开了串行端口。 但 Microcom 中没有收到任何消息。 但我们在 ZDP_IncomingData 中获取数据"helloworld"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、我认为您需要启用 MT_AF_CB_FUNC 才能在 MT 命令上看到它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已启用相同的。但串行端口中没有数据。我认为在 ZDP_IncomingData 之后没有调用 haluartwrite。是否有任何其他标志要编译?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 afBuildMSGIncoming()中的"MT_AfIncomingMsg(((void *)MSGpkt);"行上设置一个断点,以便从 IAR 进行跟踪/调试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们从 IMX 向协调器芯片发送了 SYS_ping 命令。
    发送的十六进制值:[FE 0 21 1 20]
    接收到的十六进制值:[Fe 2 61 1 59 1 3a]
    根据 MT 文档,响应将为0xFE 0x02 0x61 0x01 0x11 0x00 0x73。 最后3个字节与我们根据 MT 文档的预期不同。
    >>是否有任何问题?
    >>如何查看通过 ztool 发送的完整 MT 命令? 例如、我们只知道 AF_DATA_REQUEST 中的目标地址、数据长度和数据。 什么是完整的 MT 命令?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SYS_ping 的响应会因器件支持的 MT 功能而异。 有关详细信息、请参阅 Z-Stack 监控和测试 API.pdf。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    假设我们要将字符串"uV"从 IMX 发送到 CHIP。我正在使用以下 AF_DATA_REQUEST 命令进行相同操作,但在这种情况下没有得到任何响应。

    SOF
    长度
    CMD0
    CMD1
    数据
    运营中心
    DstAddr DstEndpoint SrcEndpoint 群集 ID TransId 选项 半径 长度 数据
    0°C 24 1 2个 FC 0 0 0 0 0 0 2. 76 77 FB

    这是正确的吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的意思是“在这种情况下没有反应”?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有为 AF_DATA_REQUEST 获取 SRSP。 但它会针对 SYS_PING 获取
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    确保校验和字节正确。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FCS 应该是从 LEN 开始到最后数据的值的异或运算,我是否正确? 从上一个表中、我们从0°C 到77°C 进行了监测、得到了 FB
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FCS 应该是从 LEN 字段到最后一个数据字节的 XOR 值。我是否正确?。从上面提到的表格中、我们从0°C 到77°C、得到了 FB
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FCS (帧校验序列):这是一个单字节字段、用于确保数据包完整性。 该字段计算为以 LEN 字段开头并通过数据的最后一个字节的消息中所有字节的异或运算。 接收器按照上面所示对所有接收到的数据字节进行异或运算、然后对接收到的 FCS 域进行异或运算。 如果总和不等于零、则接收到的数据包出错。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    YAH。我们在监视和测试 API 文档中看到了相同的内容。 FE0C2412D FC000 000276 77 FB 是整个数据包、FB 是从0C (LEN)到最后数据77的计算 XOR。 这是什么问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以尝试在 ZNP 中设置一个断点、以跟踪和调试发生的情况。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们将获得从 MT_UartProcessZToolData 函数中的 IMX 发送的完整数据包
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您跟踪代码,您可以知道它为什么不响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    无论如何、SYS_ping 会提供正确的 SRSP。 我怀疑 AF_DATA_REQUEST 命令有什么问题。 请检查我上面给出的表格吗? 表单 ztool 我们仅发送 DesAddr,数据和数据的长度,并得到响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对我来说没有问题。 我建议您使用示波器来比较从 ZTOOL 发出的 UART 信号和 IMX。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    耶。 我们也执行了同样的操作并更正了 AF_DATA_REQUEST 命令。我们在 ZDO_END_DEVICE_ANNCE_IND (加电后自动执行)之后从 IMX 发送 AF_DATA_REQUEST。我们正确获得了 SRSP。但在监听器.NW 请求和 NW 响应中没有显示任何内容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你得到什么 SRSP?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    发送时间:[FE 0c 2401 A5 DE]
    SRSP:[FE 01 64 01 02 66]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的 AF_DATA_REQUEST 看起来不正确。 有关应使用的参数、请参阅 Z-Stack 监控和测试 API.pdf 中的3.2.1.2 AF_DATA_request。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    之前我们使用了表中提到的相同方法,但没有响应。 此数据包[Fe 0c 24 01 A5 DE]正在从 ztool 发送、NW 请求和响应在 ubiqa 中得到。 我们从 IMX 写入串行端口的情况也是如此。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否阅读了 Z-Stack Monitor and Test API.pdf 中的第3.2.1.2节 AF_DATA_request 以了解您应使用的参数?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的。在发送 AF_DATA_REQUEST 之前,我们应该从 IMX 发送到协调器芯片的任何其他命令吗? 我是否缺少任何命令?在为协调器加电时、我们将获得 SYS_RESET_RESPONSE、ZDO_STATE CHANGE_IND 和 ZDO_END_DEVICE_ANNNCE_IND 的 SRSP。是否缺少其他命令?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不相信 ZTool 只发送 Sent:[fe 0c 2401 A5 DE],其长度字节为0x0c (12字节),但后面没有12字节。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当我们从 ztool 发送时、我们打印了 MT_UartProcessZTollData 函数的"ch"、它的获取方式为[Fe 0c 24 01 A5 de]。

    目的地址为0x7af1、数据为"HI"(0x48、0x49)、完整的数据包形式为
    [FE 0c 24 01 F1 0 0 0 0 0 0 0 02 48 49 A1].but zending ztool 中,我们只能将其视为[Fe 0c 24 01 F1 A1]。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的目标地址、源端点、目标端点和群集 ID 是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    0x7af1为 desi Addr、除 ztool 中的数据和数据长度外、所有值都为0。 但是、不管怎样、终端设备通过从 ztool 发送此数据包来接收数据。如果我们是通过 UART 从 IMX 发送、则无法获取数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的 SRSP 显示状态不成功0x02。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    原因是什么? 我们从 ztool 发出的同样的命令、同样成功。 如果我们向芯片发送超过5个字节的 IMX、则有时数据无法完全进入芯片端(SYS_ping 正在连续获取、当我们从 IMX 发送数据时没有问题)。 但它会在我们从 ztool 发送时得到。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    0x02表示 INVALIDPARAMETER
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    YAH 现在能够发送[0xFE 0x0C 0x24 0x01 0xBC 0x74 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x48 0x49 0xE2]并获取 SRSP 作为[FE 01 64 01 00 64]、这意味着它是成功的、对吧? 但它在 ubiqua 而不是 NW 请求中作为路由请求获得。为什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当没有路由路径将消息发送到目的地时,Z-Stack 将发出路由请求而不是发送消息。 是否确定使用了正确的目标短地址?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    YAH。现在我的目的地址是0x0817、我发送了[0xFE 0x0C 0x24 0x01 0x08 0x17 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x48 0x49 0x35] 、得到响应 [FE 01 64 01 00 64和获取路由请求。 从图中可以看出、我给出的目标地址是正确的?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试在 MT 命令中反转0x0817的字节顺序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    耶····已经做了同样的工作
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、问题是否解决了? 如果是、您是否会将此主题的回复标记为已回答?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还有一个疑问。 大家都知道、我在协调器和终端设备中都使用通用应用。终端设备在协调器首次加电后以及之后自动连接。如果我们使用多个终端设备、某些终端设备有时无法连接到协调器。
    1.问题是什么?
    能否手动连接和断开终端设备。如果是、需要使用 ztool 发送哪个命令?
    在何处可以找到 ZStack of Coordinator 中连接到相同设备的终端设备列表?
    在 ZStack 终端设备代码中、我们可以在哪里找到终端设备地址?