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.

[参考译文] CC1121:射频总线连接

Guru**** 2536110 points
Other Parts Discussed in Thread: CC1121, MSP430F5419A, CC1120

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/707440/cc1121-rf-bus-connection

器件型号:CC1121
主题中讨论的其他器件: MSP430F5419ACC1120

您好,

我们在射频系统中将 MSP430F5419A 与 CC1121搭配使用、我们还将使用 Contiki2.7 OS。

Contiki-conf 文件配置为:

NETSTACK_CONF_MAC    nullmac 驱动程序

NETSTACK_CONF_RDC    nullrdc_driver

 

我们在代码中实现了 RF 重试。 但面临射频总线争用问题。

 

请帮助我解决此问题。

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

    您使用的是 Contiki 上的哪个平台? 我不熟悉此设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们已经定制了平台开发。 我们使用多个节点从射频总线传输数据、但我们只能从2-3个节点检索数据。

    请提供建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很难支持您自己开发的平台。 您需要提供有关如何连接 CC1121的更多详细信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Edvard:

    请查看以下详细信息。

    CC1121通过 SPI 与 MSP430连接。

    我们使用的驱动程序只是 CC1120驱动程序。

    测试场景:
    器件:基于4~5 CC1121的射频器件。
    网关:基于 CC1121的射频电路
    通信协议:UDP

    射频器件的工作:
    所有射频设备在开机时向网关发送消息,网关通过将同一帧重新发送到设备来确认这些请求。

    问题说明:
    由于所有这些设备都同时通电、因此它们会尝试同时向网关发送消息。
    但在网关结束时、它仅接收2个或3个器件的消息。
    消息重试在代码中实现。 (在200ms 的间隔内执行5次重试。)

    如果单个器件尝试与网关通信、则能够正常通信。
    问题在于同时处理多个请求。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    真正的问题是您没有处理网络中 TX 冲突的机制。 由于您已将 NETSTACK_CONF_MAC 配置为 nullmac 驱动程序、因此您必须自己实施。

    发生的情况是、启动时、一些数据包相互冲突、基本上导致它们丢失数据包。 您说您已经实现了重试、但是、具有固定的时间间隔没有任何帮助。 当数据包丢失的器件发送重新传输时、数据包将再次传输、从而产生另一个 TX 冲突。 这是配置 NETSTACK_CONF_MAC 时使用的 CSMA_DRIVER。

    因此、要么实施更智能的 MAC 方法、要么使用 CSMA_driver。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们已在 Contiki-conf 文件中启用了 CSMA 驱动程序。

    启用该驱动程序后、CC1121负责重新传输。

    它至少发送帧5次。

    现在,我已经通过设置“NULLRDC_CONF_802154_AUTOACK 1”启用了 AutoACK 功能。

    接收到来自射频器件的请求时、网关会发送 ACK、而 REST 数据包会被忽略(因为 REST 数据包是重复的数据包)。

    但射频器件不接收此应答、它会继续 向网关重新发送请求。

    请帮我解决此问题。

    此外,我还面临着 MSP430F5419A 的“区 ROM 溢出”问题。 请帮我解决这个问题。

    我的实际代码大小小于42K、 MSP430F5419A 支持高达128K 的内存。

    我正在使用 GCC 编译器4.6.3.

    等待您的回复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您说最少5次时、您是指最大值吗? 您说的 REST 包是什么意思? 您是指初始数据包之后的数据包吗?

    我无法为您提供 MSP430方面的帮助。 您需要咨询 MSP430论坛。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Edvard:

    是的、最多发送5次数据包。

    即使在接收到第一个数据包的 ACK 后,其余4个数据包也会被发送。

    理想情况下、在接收到数据包的 ACK 后、重新传输应停止。 但在当前代码中、这似乎不会发生。

    请提供进一步的建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    重新传输不会停止、这很可能是因为接收器没有发送 ACK。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请建议您解决此问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yash、

    我对如何解决这个问题没有任何好的想法。 也许  有什么想法吗?

    无论采用哪种方式、我建议您也联系 Contiki 社区并向他们咨询以获得帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,我没有在运行 Contiki 的 CC1121上使用 MSP430F5419A 的经验,因此无法解决此问题。