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.

[参考译文] TINA/Spice/TMS570LS1227:CAN 通信

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/812130/tina-spice-tms570ls1227-can-communication

器件型号:TMS570LS1227
主题中讨论的其他器件:TINA-TIHALCOGEN

工具/软件:TINA-TI 或 Spice 模型

您好!

我们正在开发 tms570ls1227上的代码、用于从连接在 CAN 总线上且时间间隔固定的8个传感器逐一获取数据。 我将 CAN 代码导入到 CCS 中。

在 sys_main.c 中,在主函数中,我在初始化一次后调用 canGetdata()。 我仅初始化 CAN1以进行接收、消息框1。 对于8个传感器,应如何配置以接收 高于 要求的数据。

中断模式。 因为我必须逐个收集固定的时间间隔。 只有一个 CANreg1、CAN1就足够了。 请指导我满足此要求。

混乱是否是处理程序函数?

如何为每个 cangetData()调用函数设置时间间隔(延迟的函数是什么)。

谢谢、此致、

K Subrahmaniam

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

    您好!

    我认为您应该使用中断来接收数据。

    如果接收到消息并且启用了此消息框的中断,则中断将由 CAN 中断处理程序处理(它在 CAN.c 文件中)。 canMessageNotification 将由中断处理程序调用、您可以在其中调用 canGetData。

    借助 RTI 模块、您可以在固定时间间隔生成中断以启动 CAN 传输。

    要从另一个 CAN 节点请求数据、您可以传输远程帧(器件 TRM 的第27.8.10节)、也可以将消息发送到另一个节点、该节点可用作发送数据的信号。

    此致、

    米罗

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

    您好!

    感谢您的即时回复、什么是用于保持延迟的 API 以及用于通过 CAN 总线发送信号的 API。 您能给我举几个示例或提到 API 吗?

    谢谢、此致、

    K subrahmaniam

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

    您好!

    您可以使用 HALCoGen 配置 RTI 模块、以在固定时间间隔生成中断。 有关 RTI 模块的更多信息,请参见器件 TRM ( www.ti.com/.../spnu515c.pdf ) RTI 模块的 API 为 RTI.c.

    CAN 模块的 API 位于 CAN.c 中

    此致、

    米罗

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

    器件型号:TMS570LS1227

    工具/软件:TINA-TI 或 Spice 模型

    您好!

    我们使用的是 tms570ls1227 MCU。 我们生成 helcogen 项目。 我们的目标是将八个传感器 ECU 连接到我的 MC、并接收2ms 或躯体的传感器数据。 我为此设置 RTI。

    在代码 canREG1中、canREG2是节点。 然后,如何配置8个 ECU。

    我是否只能使用 CAN1。

    我需要发送 RTR 并获取数据。

    我可以在哪里找到 ID。      请以一个示例指导我。 我浏览了所有链接。 我找不到多种传感器类型。 节点和 ID 令人困惑。 请指导我。

    我写了以下内容、从不同 ECU (节点)获取数据。 它是否正确。

    canSendRemoteFrame (canREG1、canMESSAGE_BOX1);
       rtiStartCounter (rtiCOUNTER_BLOCK0);
       canSendRemoteFrame (canREG1、canMESSAGE_BOX2);
       rtiStartCounter (rtiCOUNTER_BLOCK0);
       canSendRemoteFrame (canREG1、canMESSAGE_box3);
       rtiStartCounter (rtiCOUNTER_BLOCK0);
       canSendRemoteFrame (canREG1、canMESSAGE_BOX4);
       rtiStartCounter (rtiCOUNTER_BLOCK0);

    谢谢、此致、

    K Subrahmaniam

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

    您好!

    RTI 模块可以在固定的时间间隔上生成中断。 在 HALCoGen 中、您可以找到如何使用 RTI 生成中断的示例。 示例名为 example_rtiBlinky.c。 说明如何为此示例配置 MCU,请参见帮助主题-->示例。

    然后在 rtiNotification (CAN 中断处理程序调用的函数)中、您可以发送远程帧。

    CAN 模块可配置为使用中断接收 CAN 消息(示例如何在中断模式下配置 CAN 可在文件"example_canIntCommunication.c"中的 HALCoGen 示例文件夹下找到 ,说明位于 help->help topics->examples 中。 )。

    您可以将一个消息框设置为发送远程帧、并将另一个消息框设置为接收消息。 您也可以设置多个消息框用于接收。 CAN 模块可以设置为通过一个消息框接收所有消息、也可以设置8个消息框来通过滤波接收8个不同传感器的消息。  

    以下是有关掩码过滤的一个很好的说明:

    但愿这对您有所帮助。

    此致、
    米罗

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

    谢谢您、Miro、

    我对 msgid 发送远程帧感到困惑。 在哪里可以提到 msgid。 在接收消息中、我如何识别 msgid 以逐一接收来自8个传感器的数据。 请指导我。

    谢谢、此致、

    K sibrahmanyam

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

    器件型号:TMS570LS1227

    工具/软件:TINA-TI 或 Spice 模型

    您好!

    我们使用的是 tms570ls1227。 在 helcogen 项目和 CAN 通信中、我希望从不同的8个传感器接收数据。   

    在发送远程帧时、我可以在其中提到消息 ID、 任何示例程序都可以通过固定的时间间隔从不同的传感器获取数据。  

    谢谢、此致、

    K Subrahmaniam

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

    您好!

    ID 从 CANN Msg 选项卡 HALCoGen 设置。 对于 CAN1:CAN1->CAN Msg1-8选项卡。 然后可以在消息框配置 ID 中设置。

    canGetID 返回消息框 ID。

    此致、
    米罗