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.

[参考译文] AM623:am62x 是否可以使用 M4内核来控制 MCAN1或 MCAN2以更高效地持续传输数据包? 测试现在仅为888 FPS。

Guru**** 2553450 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1342253/am623-can-am62x-use-m4-cores-to-control-mcan1-or-mcan2-for-continuous-packet-delivery-more-efficiently-the-test-is-now-only-888-fps

器件型号:AM623

 am62x 是否可以 使用 M4 内核 来 控制 MCAN1 或 MCAN2 以    更 高效地持续传输数据包?   测试  现在 仅为 888 FPS。

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

    您好!

    当前使用哪个 MCAN 实例来传输数据包? 是 CAN FD 还是传统 CAN 帧?
    此外、您是如何计算888 FPS 数据的?

    此致、
    阿帕拉纳

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

    我使用的 SDK 版本是 mcu_plus_sdk_am62x_09_00_00_19、当前用于传输数据包的 MCAN 示例是 examples\drivers\mcan\mcan_loopback_interrupt\am62x-sk\m4fss0-0_freertos、我已经修改过。
    从回环检测的内部更改为不使用回路、发送 CAN 或 CANFD 帧在发送代码中添加了一个 while 环路、并屏蔽接收到的代码仅保留 SEND 功能、只要无法实现总线错误导致的中途错误帧。 am62x 的 MCAN1和 MCAN2的 TX 和 RX 首先连接到收发器、然后通过收发器连接到计算机的 CAN 卡。
    在计算机端、在主机的波特率设置与 am62x 的波特率设置一致后打开端口、然后继续接收帧。 在主机的后台监控中、可以发现 am62x 发送的数据帧速度尚未上升、从而保持为每秒888帧。 我的测试代码将为 attached.e2e.ti.com/.../5826.mcan_5F00_loopback_5F00_interrupt.c、

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

    您好!  

    感谢您分享设置详细信息。  
    示例中设置了什么 MCAN 位时序参数? 位速率是 MCAN 通信速度的决定因素。  
    在任何给定示例中、都可以使用 syscfg 轻松修改位时序参数。
    您需要的速度是多少?您能否分享一下用例是什么?

    此致、
    阿帕拉纳

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

    CANFD 数据包 时间 计算
    我 可以         根据   波特 率计算不同类型数据包的时间、   计算 公式   如下:
    数据包 时间 = 仲裁 字段 位 时间 *仲裁  字段 位 时间 + 数据字段  位 时间 * 数据字段位时间    
     以    具有  最低   位数的 CANFD 数据包   为例 、当      仲裁 域的波特率 为 1Mbps (位 时间为 1us) 、      数据 域的波特率 为 5Mbps (位 时间为 200ns)时、   数据包 时间 = 1us * 26 + 33 * 200ns = 32.6us 。
         成功发送数据包后、  下一 帧  只能   在  帧 间隔 (3 位)之后发送、    也就是说、  仲裁 部分 需要在       最初的 基础上增加3位、  然后就         可以 计算出每秒发送的帧数。  然后、          上述最小位数的传输时间  = 1us * (26 + 3) + 33 * 200ns = 35.6us、 这 意味着             最多可 在 一 秒内发送1000000us / 35.6us = 28089帧数据包。   换句话说 、 在 1M/5M 波特 率下、      可以  发送 CANFD 标准加速      帧、并且最多 可以  发送28089帧。  但 在  前面的 测试中、      控制 MCAN  发送 数据包的 M4内核的速度  显然 不   符合标准。 以下屏幕截图显示了我的 syscfg 配置。

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

    我在 while (1)循环中添加了 DebugP_log ("%d\r\n"、I ++);打印和检查发送过程状态的代码被注释掉。 结果表明、CANFD 模式可以实现每64字节循环数据1588帧、这比先前测试的速度更快。 然而、有时一个错误帧会引起一个 CAN 总线错误。

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

    您好!

    您能否共享注释掉的代码部分? 删除检查发送状态的代码可能是导致此 CAN 总线错误的原因。

    此致、
    阿帕拉纳