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.

[参考译文] TMS320F280049:CAN 问题

Guru**** 2527110 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/981111/tms320f280049-can-questions

器件型号:TMS320F280049

尊敬的香榭丽舍

我正在向我们的客户提出要求。

请帮助我们澄清以下有关使用 CAN 的问题吗?

1) 1) 32个对象消息 RAM 是 CAN_A 和 CAN_B 共享的、还是每个 CAN 都有自己的32个对象消息 RAM?

2) 2) IF1/IF2是独立的还是独立的? 如果其中一个 IF1/IF2忙、另一个需要等待还是可以同时处理?

3) 3)如果有一个接收数据被保存到对象 ID#1上、那么另一个数据进入来更新对象 ID#1。 然后、ID#1上的第一个数据是否会被较新的数据保留或覆盖?

4)关于远程帧。 在主机发送请求之前、用户是否应将数据放在邮箱中? 也就是说、相应的邮箱将在请求后自动回复。 如果用户收到请求、然后将数据放在邮箱中、它也可以回复请求吗?

黄维恩

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

    您好、Wayne、

    请参阅以下回答:

    1) 1) 32个对象消息 RAM 是 CAN_A 和 CAN_B 共享的、还是每个 CAN 都有自己的32个对象消息 RAM?

     每个  报文对象都有自己的32个报文对象,可以用作发送对象、接收对象或两者的组合。

    2) 2) IF1/IF2是独立的还是独立的? 如果其中一个 IF1/IF2忙、另一个需要等待还是可以同时处理?

     IF1/IF2相互独立。  不确定客户对同时处理这些问题的意图。  CPU 一次只能访问一个寄存  器(例如、向 CAN_IF1CMD 寄存器写入一个值、如果只有一个 CPU、随后 CPU 可以向 CAN_IF2ARB 写入该值)、但在 DMA 正在更新 CAN_IF2ARB 的内容时、CPU 肯定可以写入 CAN_IF1CMD。

    3) 3)如果有一个接收数据被保存到对象 ID#1上、那么另一个数据进入来更新对象 ID#1。 然后、ID#1上的第一个数据是否会被较新的数据保留或覆盖?

     -如果 CPU 尚未读取/确认来自对象 ID1的先前数据,并且还有另一个有效的接收帧将更新对象 ID1, 然后、对象 ID1中的数据将被覆盖(NewDat 将被置位)、并且 IFxMCTL 寄存器中的 MsgLst (消息丢失)标志将被置位以指示这种情况的发生。

    4)关于远程帧。 在主机发送请求之前、用户是否应将数据放在邮箱中? 也就是说、相应的邮箱将在请求后自动回复。

     -当接收到标识符匹配的远程帧 时、当接收到远程帧(前提是对象中的 RmtEn 位置位)时、将自动请求发送。  也就是说、数据必须在邮箱中有效/可用、否则请求将在收到远程帧后使用邮箱中包含的任何数据进行响应。

     此致、

    Joseph