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.

[参考译文] CCS/TMS570LS0714:CAN 协议

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/934720/ccs-tms570ls0714-can-protocal

器件型号:TMS570LS0714
主题中讨论的其他器件:HALCOGEN

工具/软件:Code Composer Studio

我目前正在处理 CAN Protocal、在 Halcogen 中、我们将 CAN 配置为 TX 或 Rx 如何为 TX 和 RX 配置 CAN、以及在哪里可以为 Halcogen 创建的代码中的 CAN Protocal 分配地址请现在让我来处理

请分享我的示例代码、其中可以配置为 Tx 和 Rx

谢谢、

M. Poorna Chandu

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

    Poorna、您好!

    DCAN 数据通信通过 CAN TX 和 CAN RX 引脚进行。 单个 CAN 报文对象应配置为通过 CAN 网络进行通信。 报文对象存储在报文 RAM 中。 在将 CAN 投入运行之前、应配置整个消息 RAM。 单个报文对象可以配置为发送数据或接收数据、但不能同时发送和接收数据。 您可以更改任何消息对象的配置、但我建议您为 TX 和 RX 使用单独的消息对象或邮箱。

    例如、TX 使用报文对象1、RX 使用报文对象2。

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

    海王

    感谢您的回复、  

    当前我已将 DCAN 报文1和 DCAN 报文2配置为接收器、当我使用报文对象1接收时、我能够接收;当我使用报文对象2接收时、我无法接收(在 Tx 侧、我正在使用报文对象1进行发送 (我是否需要更改传输端的任何内容))

    示例代码中的数据帧格式是什么

    如何设置11位标识符

    最多可在数据帧中发送多少个字节(例如、我们将发送最多空字符(如何?))

    随附的代码请查看 ite2e.ti.com/.../3821.CANRXv3.0.zip 以供参考

    谢谢、

    波尔纳

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

    Poorna、您好!  

    您可以将消息从 DCAN1消息框传输到 DCAN2消息框中的任何一个、但不能将数据从 DCAN1消息框传输到其他 DCAN1消息框。 您需要配置 RX 对象的掩码、以使消息通过验收滤波器。

    2. CAN 传输没有特定的数据形式。 每次传输的最大 ddata 长度为8字节。

    3.在 HalCoGen Canx 常规窗口中、取消选中"Enable Identifier Extension"以使用11位 ID

    每次传输最多8个字节。 DLC 用于定义数据长度。 如果数据长度小于8、报文对象的剩余字节可能会被非指定值覆盖。

    5.稍后我将检查您的代码。

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

    您的示例中的消息对象1和2配置为接收消息。 报文对象的 ID 为2、掩码为0x3FF。 如果即将发送的消息的 ID 不是2、则不会接受该消息。

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

    海王

            再次感谢您的回复、TI 的支持确实让我们快速前进

            根据您的回复、我了解到对于 DCAN1、我们有64个消息对象、这意味着我们可以为单个 DCAN 使用64个不同的标准标识符

            正确吗?

            如何在 halcogen 中设置标识符和掩码?

            当我在 halcogen 中的接收函数的帮助下获取数据而不处理数据帧时、如何仅获取8字节数据(如何通过处理来分析帧起始、IDE、数据长度等?)

            如何获取完整的数据帧(包括 IDE、数据长度、帧结束等)、以便接收缓冲区自行处理(是否可能?)

            

    谢谢、

    Chandu

             

             

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

    您好 Chandu、

    你是对的。  一个 CAN 模块(CAN1、CAN2、...)可以有64个不同的标准标识符。

    HALCoGen 包含2个 CAN 示例(轮询模式和 INT 模式)。 它还逐步显示了 HALCOGen 中的 CAN 配置。 您可以在 HALCOGen CAN 配置 GUI 中提供 ID 并定义掩码。