Thread 中讨论的其他器件:Wi-SUN、
大家好!
我已经测试了可用于 Wi-SUN 实现的示例、我已经注意到、完整的嵌入式应用具有 CoAP 功能、而 NWP 示例不具备。 我需要同时具有 NWP 和 CoAP 功能的器件、需要进行哪些更改?
谢谢你。
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.
尊敬的 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:
我知道它能在 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、您好!
在我发送给您的链接的情况下: 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 建立主机到主机的通信、从而使您可以完全控制消息流。
此致、
等等