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.

[参考译文] TI-15.4堆栈接收数据时出现问题

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/876257/ti-15-4-stack-problem-with-receiving-data

主题中讨论的其他器件:CC1310

您好!

我正在开发基于设备的“SimpleLink 低于1GHz 传感器到云”,我遇到了问题。 我将描述我拥有的内容

-我以“simplelink_cc13x0_sdk_3_20_00_23”为基础进行开发。 我有一个“网关”板、一个“传感器”板和一个“协处理器”板。

-在 SDK 中,我举了一个示例“sensor_CC1310_LAUNCHXL_tirtos_ccs”,现在我正在为我的任务重新执行它。

-基于 cc1310开发的传感器板。

传感器板处于睡眠模式。 在主板向网关发送“我的消息”后,计时器唤醒主板。 网关在收到“另一条消息”后接收并处理“我的消息”。

我的问题

在传感器应用程序中、我不接受来自网关的响应。 在网关侧的日志中,我获得 代码“MAC_NO_ACK”

下面是网关侧的消息日志

从传感器传输到网关的消息


52.900:00000000:Fe 35 42 85 02 01 00 00 00 00 00 00 02 34 12 |.5B .......... 4.|

52.900:00000010:00 00 00 00 00 2D 47-28 00 06 00直流交流直流|… -G(... |

52.900:00000020:46 00 C4 60 33 33 33 33-33 33 33 33 05 03 CF | F.`3333333333333....

52.900:00000030:03 00 02 00 00 14-00 AC |......... |


从网关传输到传感器的消息


52.903:00000000:Fe 25 22 05 02 01 00 00 00 00 00 00 00 00 00 dc ac 02 |.%".......... |

52.903:00000010:8001 00 33 33 33-33 33 33 33 05 03 00 |…333333333333333333333333339339339339333....

52.904:00000020:00 00 02 00 00 15-01 E1 |......... |


来自协处理器的确认


52.910:00000000:Fe 01 62 05 00 66 -|..b.f |


从传感器传输到网关的消息


53.033:00000000:Fe 10 42 84 E9 80 73 5e-28 00 3f 00 03 00 00 00 00 |.. B... s^(..?.. |

53.033:00000010:32 00 00 b4 -|2.... |


为什么在最后一条消息中我得到代码“E9”? 我出了什么问题?

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

    您好!

    按照 http://www.ti.com/tool/TIDEP0084页面上的建议、我建议改用 http://www.ti.com/tool/TI-15.4-STACK-GATEWAY-LINUX-SDK 作为基于15.4 Stack 的网关。

    此致、
    Toby

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

    您好 Toby!

    感谢你的答复。
    我找到了一些答案、但仍然有问题。

    如果我的传感器板在"config.h"中 将 CONFIG_RX_ON_IDLE   设置为"true"、 日志将显示我:

     34.286:00000000:Fe 10 42 84 00 80 E2 12-1a 00 24 00 5c 00 cc || $.\.|
     34.286:00000010:9B 00 00 93        -                       |。           |

    但是、我无法在"true"的程序 CONFIG_RX_ON_IDLE 中使用   、因此我实现了最小的电流消耗。
    我的问题是 -“使用标志 CONFIG_RX_ON_IDLE 来判断是否可以正确接收传感器板上的消息?”例如,如果我不将控制传输到 IDLE?

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

    Savva、

    是的、当传感器设置为 RX_ON_IDLE 时、您可以接收消息。 但接收消息的方式将取决于网络的配置方式。

    我们的堆栈可配置为 3种主要运行模式:

    信号灯

    非信标

    3.频率跃点

    所有这些模式都有不同的方式将消息发送到传感器、并且详细讨论了所有这些模式的用户指南(http://dev.ti.com/tirex/explore/node?node=APeHcG.A0wniaym22zAYKw__pTTHBmu__LATEST)

    但总之,这就是它的工作方式。。

    信标-传感器将在每个信标间隔上唤醒、并从协调器接收信标。 如果有来自传感器的待处理消息、收集器将在发送信标后发送该消息。

    非信标-传感器将定期轮询收集器以获取消息。

    频率跃点-当有消息准备发送时、收集器将更改为传感器的 RX 通道并发送消息。

    此致、

    AB

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

    AB、

    感谢您的回答!
    我的故障、我忘记说我在 非信标模式下工作。

    我重写 了源代码。 传感器板现在正在发送轮询。  但是、由于我需要实现最小电流消耗、我更改了代码的一部分。
    我从示例中的消息池中删除了所有消息、而是添加了我的消息池中的一个消息。  但在“网关”日志中,情况没有改变,网关发送消息后,它将收到一条包含代码“MAC_NO_ACK”(E9)的命令。 传感器中不调用回调(dataIndCB)。

    我怀疑问题是由于睡眠模式造成的。 射频模块只是在发送消息后进入睡眠状态。 因此、传感器板中不会发生接收。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我解决了这个问题!

    当我的传感器板发送池请求时、我会显示"ApiMac_mlmeSetReqBool (ApiMac_attribute_RxOnWhenIdle、1);"


    当我接受应答或超时"ApiMac_mlmeSetReqBool (ApiMac_attribute_RxOnWhenIdle0);"时、我写回该标志

    与设置电源管理器"Power_setConstraint (PowerCC26XX_SD_Disallow)"结合使用时、它可提供数百微安的睡眠功耗