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.

[参考译文] TMS570LC4357:处理器之间的 CAN 通信

Guru**** 2393725 points
Other Parts Discussed in Thread: TMS570LC4357, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1365821/tms570lc4357-can-communications-between-processors

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

我对这件事很陌生、如果这是一个愚蠢的问题、请原谅我。 我们在单个板上安装了2个 TMS570LC4357处理器。 我们现在需要在它们之间建立通信、并尝试将两个 CAN3总线与处理器1上连接至处理器上 RX 的 TX 直接连接在一起、反之亦然(我们有很多与处理器相关的东西、这意味着我们没有可用于此任务的 DMA、SCI 等资源)。 我可以在两个处理器上运行 Halcogen 中给出的环回示例、它可以正常工作。 如果然后我删除 CAN 1、2和4 (我们使用的是 CAN3)并删除回送、则消息不会传输到另一个处理器。  我 在手册中收到关于 E5的错误通知、说明为"

Bit0错误:在发送报文(或确认位、有效错误标志或 OVERLOAD 标志)期间、器件想要发送显性电平(逻辑值0)、但监控到的总线电平为隐性。 在脱离总线恢复期间、每次监控到包含11个隐性位的序列后该状态就会置位。 这使得 CPU 能够对脱离总线恢复序列的进程进行监控(表明总线没有卡在显性状态或连续受到干扰)。

这对我来说意义不大、因为我没有硬件背景、但看起来好像是说信号不够大。 我在其他地方看到 TX/RX 引脚连接到收发器、而收发器随后又连接到总线。 我们过于乐观地认为连接处理器的 TX 和 RX 引脚可行。 两个处理器在主板上的间距大约为3或4英寸。

感谢您提供的任何帮助。

此致

安迪  

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

    Andy、您好!

    CAN 网络要求每个节点都有一个 CAN 收发器。 它不能通过直接连接 CAN 信号来使用。

    这是因为 CAN 中将有一种冲突检测机制、这意味着 如果 Tx 数据之间不匹配、则它们也将由 Rx 引脚监控、然后数据将不会从 Tx 发出。 这就是我们收到 bit0错误的原因。 这意味着它从 Tx 发送位0、但它在同一 CAN 节点的 Rx 线路上没有看到相同的位0。

    请参阅以下主题、了解连接:

    (16) TMS570LC4357:TI CAN 通信连接示例-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    如果我们使用 CAN 收发器、它们不仅将数据从 Tx 传输到 CAN 总线、而且还 验证总线上的数据、如果没有冲突、它们将在 Rx 线上发送相同的数据。

    所以、必须使用 CAN 收发器。

    --
    谢谢。此致、
    Jagadish。