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.

[参考译文] CC1352P7:同时具有 NWP 和 CoAP 功能的 Wi-SUN 器件

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1407280/cc1352p7-wi-sun-device-with-both-nwp-and-coap-functionalities

器件型号:CC1352P7
Thread 中讨论的其他器件:Wi-SUN

大家好!

我已经测试了可用于 Wi-SUN 实现的示例、我已经注意到、完整的嵌入式应用具有 CoAP 功能、而 NWP 示例不具备。 我需要同时具有 NWP 和 CoAP 功能的器件、需要进行哪些更改?

谢谢你。

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

    Eduardo、您好!

    ns_br 示例具有 CoAP 和 NWP 功能。 该网络的结构为 TI 的边界路由器设备和运行 ti-wisunfan-pyspinel 客户端(NWP)的主机。

    "完整的嵌入式应用程序具有 CoAP 功能、NWP 示例没有"这句话是什么意思?

    您能否更详细地解释一下您希望实施的内容?

    谢谢你。
    此致、
    等等

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

    尊敬的 Theo:

    我需要一个能够同时支持 NWP 和 CoAP 功能的路由器节点。 阅读 ns_br 自述文件(https://dev.ti.com/tirex4-desktop/nodeContent?a=BSEc4rl__7.40.00.77&node=A__AH7jFiIch3.eUi7WC4z2HQ__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK_WISUNFAN_MODULE__BSEc4rl__7.40.00.77&r=BSEc4rl__7.41.00.17)我了解到 ns_node 示例不支持 CoAP、对吗?

    此致、
    Eduardo。

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

    Eduardo、您好!

    是的。 ns_node 示例支持 NCP 但不支持 CoAP;ns_CoAP_node 示例不支持 NCP、但支持 CoAP。

    这是因为 NCP 通过 UART 连接至在主机上运行的 PySpinel 客户端。 然后、节点将忙于侦听其中的命令。 而是 CoAP 节点侦听无线电。 要在同一节点上实现、您需要安排何时侦听无线电以及何时访问 UART、这也需要处理错过的消息和命令。

    我建议从示例项目开始使用两种方法中的任何一种。  

    您希望具体实现什么? 对于 CoAP 之外的节点上的 NCP、您还需要它做些什么?

    此致、
    等等

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

    尊敬的 Theo:

    我的应用使用 MCU 作为主机、该主机必须收集数据并发送给我们的平台。 我们需要使用 LTE 模块或 CC1352P7 (Wi-SUN)来实现该目的、因此我需要某种适用于这两种情况的通用解决方案。 在这两种情况下、MCU 都必须控制连接、数据流、功能等

    我需要能够配置连接并使用 NWP 提供的所有功能。

    您能指导我在哪些方面需要进行这些更改吗?

    此致、
    Eduardo。

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

    Eduardo、您好!

    您正在使用哪种 MCU (基于 Linux 或基于 Windows)?

    因此、您的设置是 host<->border router and host<->router node、您想从路由器节点端的主机到边界路由器的主机进行通信吗?

    如果您使用的是 Linux 主机、可以在此处查看: https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1352075/faq-lp-cc1352p7-use-wfantund-on-a-linux-host-connected-to-a-ti-wi-sun-fan-router-node

    此致、
    等等

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

    尊敬的 Theo:

    我在路由器节点一侧使用 ESP32作为主机、在边界路由器一侧使用基于 Linux 的(如 Raspberry Pi)。

    是的、我希望使用路由器节点和边界路由器来通信每一侧的两台主机。

    您发送给我的此链接对 ESP32也很有帮助? 我将使用 C 语言实现。

    此致、
    Eduardo。

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

    Eduardo、您好!

    wfantund 在 Linux 主机上运行。 您只能将其用于边界路由器的主机。

    很遗憾、ESP32上没有用于主机的示例代码。

    好棒的酒店
    等等  

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

    尊敬的 Theo:

    我知道它能在 Linux 上运行、必须实施它才能在 ESP 上使用。

    但是 https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1352075/faq-lp-cc1352p7-use-wfantund-on-a-linux-host-connected-to-a-ti-wi-sun-fan-router-node thread 能否帮助我解决有关使用 NWP 的路由器节点的问题?

    此致、
    Eduardo。

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

    Eduardo、您好!

    如果您通读了链接的线程、那么您将在最后发现从连接到路由器节点的主机向边界路由器及其主机发送 ping 的示例。 这将帮助您进行想要进行的通信。

    此致、
    等等

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

    Eduardo、您好!

    您是否有机会查看一下显示从路由器节点到边界路由器的 Linux 主机到 Linux 主机通信的链接示例?
    您可以选择在两端都使用 Linux 主机吗?  

    此致、
    等等

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

    尊敬的 Theo:

    我确认他展示了一个使用节点和 Linux 主机的 ping 示例、但我仍然无法查看代码来检查其实现方式。

    在路由器节点一侧使用 Linux 主机不是一种选择、我实际上需要使用 ESP32来实现这一点。

    此致、
    Eduardo。

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

    Eduardo、您好!

    感谢您的更新。
    如果您有任何其他问题、请再次联系我们。

    此致、
    等等

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

    尊敬的 Theo:

    从您发送给我的链接中、如果我能正确理解、只需切换 is_net_stack_up ()函数就足够了、我能够同时使用 CoAP 和 NWP 资源、而无需担心在 NWP 和天线之间切换 UART? 可以解决这个问题吗?

    谢谢你。

    此致、
    Eduardo。

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

    Eduardo、您好!

    在我发送给您的链接的情况下: https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1352075/faq-lp-cc1352p7-use-wfantund-on-a-linux-host-connected-to-a-ti-wi-sun-fan-router-node

    ping 使用边界路由器和路由器节点作为网络接口(NWP)从主机发送到主机。 不涉及 CoAP 服务。 它不发送 ping、而是 实现发送数据包的相同方式。

    在这种情况下、您需要编写一个应用程序、使用 ESP32替换侧面的 wfantund。 然后、您可以将 NWP 模式下的边界路由器和路由器节点用作网络接口、并且无需使用 CoAP 将数据从主机发送到主机。

    此致、
    等等

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

    尊敬的 Theo:

    感谢您的解释。 我打算以 spinel-cli.py 代码为基础、在路由器节点中开发 ESP32与 CC1352P7之间的接口。 然后、使用发送给我的链接中的示例更改 ns_node 示例、我能够在 NWP 模式下使用路由器节点、对吗?

    如果是、那么我需要在修改后的此 ns_node 代码中实施 CoAP? 是否需要设置某个标志或类似标志来激活 CoAP 功能?

    此致、
    Eduardo。

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

    Eduardo、您好!

    是的、您可以使用 spinel-cli.py 将路由器节点用作 NWP。 在这种情况下、您需要记住、在该节点通过 UART 与主机 ESP32进行通信时、不能将路由器节点用作网络接口。 这意味着您需要在路由器节点上实施对传入消息和发送消息的处理、以便将它们转发到主机。 您可以首先查看用于 OAD 的 wpan_callback 函数、该函数负责对传入的 OAD 包进行处理。  

    当将路由器节点用作 NWP 时、由于两种模式相互冲突、您将无法添加 CoAP 服务。 相反、您可以将边界路由器用作运行 wfantund 的 Linux 主机的网络接口、如我发送给您的链路示例所示。 在路由器节点端、您需要通过 UART 将网络流量转发到主机上的 SPINEL-CLI。 借助此类实现、您将能够按照定义的方式在主机之间的任何方向向主机发送消息、从而无需使用 CoAP。

    此致、
    等等

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

    尊敬的 Theo:

    很抱歉、我不知道我是否能完全理解您的答案。 只是为了保证我的必要条件对您来说是明确的:
    我需要使用具有 NWP 的边界路由器来构建与 Linux 主机通信的网络、我认为此时没有问题、因为这是边界路由器示例中已经构建的内容。 连接到此网络的设备由连接到主机(ESP32)的 CC1352P7组成、该主机将负责配置一些连接参数、例如网络名称、PAN ID 等 主机(ESP32)还需要使用 CC1352P7向边界路由器发送一些重要数据、这就是我需要能够在节点和边界路由器之间进行某种通信的原因。 CoAP 的使用是因为我对它很熟悉、而且它是一个应用协议、包含我需要的所有内容、例如保证数据传输、获取、发布方法等。

    考虑到这一点、我想保证我可以理解您对实现这些目标的可能方法的解释:

    1.到目前为止、我可以理解的是、同时使用 CoAP 和 NWP 功能的问题是在一种情况下 CPU 始终侦听无线电、而在另一种情况下 CPU 始终侦听 UART 接口、对吗?

    2.如果陈述1正确、如果我能找到一种方法来保证我可以处理 CoAP 消息和 NWP (例如使用某种中断)、我就能够获得我需要的东西?

    3.如果 NWP 总是忙于侦听 UART、而无法侦听天线、那么 ns_node 示例的用途是什么? 我的意思是、它连接到网络、然后无法与其通信、或者我是否有误解?

    4. https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1352075/faq-lp-cc1352p7-use-wfantund-on-a-linux-host-connected-to-a-ti-wi-sun-fan-router-node 中的示例 将让我使用 Linux 主机与 ns_node 示例进行通信。 如果我用 C 语言编写 spinel-cli.py 等代码并将其与 ESP32配合使用、那么我就能够使用 ESP32与边界路由器进行通信? 如果是、它将使用简单 UDP 协议而不是 CoAP、对吗?

    5.如果陈述4正确、如果我可以与边界路由器通信、那么我将实施 CoAP、正确吗?

    我想这些都是我目前提出的问题、如果你能向我说明一切、我将不胜感激。

    此致、
    Eduardo。

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

    Eduardo、您好!

    我从头开始讲。

    根据我的理解、您希望使用 Wi-SUN 实现主机到主机的通信。 我们实施了一个示例、使用两端的 Linux 主机(github.com/.../ti-wisunfantund)以及编译为 NWP 的边界路由器节点发送 ping。 链接的线程介绍了如何将 ping 从路由器节点的主机发送到边界路由器的主机(https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1352075/faq-lp-cc1352p7-use-wfantund-on-a-linux-host-connected-to-a-ti-wi-sun-fan-router-node)。 它不使用 CoAP 消息、而是边界路由器、路由器节点用作网络接口、该消息从主机发送到主机(通过 IP 寻址)。

    在我们的示例代码中、您无法同时使用 CoAP 和 NWP。 我将这种解释进行了简化、因为"侦听 UART "与 CoAP 实施相冲突。 当然、您可以研究如何更改实现(这是一个选项)、但您需要针对边界路由器和路由器节点执行此操作、并为在路由器节点端运行的主机实施消息发送、因为它不是为主机到主机通信而设计的。  原因在于、CoAP 节点设计为作为完全嵌入式应用程序运行。

    相反、我建议您 使用运行 wfantund 的 Linux 主机和边界路由器 NWP 来实现主机到主机的通信、从而打开网络。 然后、您可以将边界路由器用作网络接口 、这意味着您可以 使用其 IP 地址对 Linux 主机进行寻址。 为此、您可以使用路由器节点作为 NWP 连接到 ESP32上运行的 SPINEL-CLI。 路由器节点一侧的不同之处在于、路由器节点和主机之间的连接是 UART 连接、因此您需要通过 UART 转发收到的 UDP 消息、以及主机通过 UART 发送给路由器节点的 UDP 消息。 但是、从了解 OAD WPAN_CALLBACK 函数就可以很好地开始。  

    在此通信设置中、您不需要 CoAP、因为您通过 UDP 建立主机到主机的通信、从而使您可以完全控制消息流。

    此致、
    等等


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

    尊敬的 Theo:

    非常感谢您的详细解释。

    似乎实施这些修改,我将能够达到我的项目的规范。

    在这种情况下,我将使用 UDP 在主机之间进行通信,我只需要实现有保证的消息传递和类似 CoAP 提供的命令( GET、POST ..),对吗?

    此致、
    Eduardo。

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

    Eduardo、您好!

    您需要根据自己的需要注册 UDP 服务、并实现路由器节点端 UDP 消息的正确处理/转发到 SPINEL-CLI。 主机对消息的处理完全由您决定。 您可以首先查看 CoAP 和 OAD 服务的实施情况。

    此致、
    等等

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

    尊敬的 Theo:

    非常感谢您的讲解。

    只是为了清楚地说明一点、ping 命令由节点端的 CC1352P7处理、并由于不需要将消息转发到主机而自动响应、对吗?

    此致、
    Eduardo。

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

    Eduardo、您好!

    完全正确。 ping 由嵌入式应用中的节点处理。 仅当连接运行 wfantund 的 Linux 主机时、才能直接 ping 通该主机。

    此致、
    等等

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

    谢谢您、Theo!

    我将根据您提供的这些信息继续发展。

    此主题已经非常大之后、我可以关闭它、如果我需要任何进一步的支持、我将打开一个包含更具体详细信息的新问题。

    再次感谢您的支持!

    此致、
    Eduardo。