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.

[参考译文] TCAN4550:tcan4550 覆盖和分块模式

Guru**** 2905440 points

Other Parts Discussed in Thread: TCAN4550

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1647784/tcan4550-tcan4550-overwrite-and-blocking-mode

器件型号: TCAN4550

尊敬的团队:

客户使用 TCAN4550 并将 RX0 FIFO 设置为覆盖模式。 有时、它们会在通过 SPI 从 TCAN 传输到 MCU 的消息中遇到错误。 但是、一旦 RX0 FIFO 设置为阻塞模式、此问题就会消失。

那么我想问、当 TCAN RX0 FIFO 处于覆盖模式且 FIFO 缓冲器已满时、它是否会覆盖 MCU 当前正在读取的 FIFO 内容?  

此外,我们发现覆盖不会完全替换所有八个字节。

例如、我们接收到的正常 8 字节有效数据帧为 0xFF 0xFF 0xFF 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF。 在覆盖模式下运行时、接收到的帧变为 0x25 0x00 0x01 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF。 不清楚为什么完整的 FIFO 仅覆盖几个字节的原始数据、而不是在覆盖模式下完全更新所有八个字节? 您能解释一下原因吗?

 

谢谢、

此致、

Yang

 

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

    尊敬的 Yang:

    那么、我想问一下、当 TCAN RX0 FIFO 处于覆盖模式且 FIFO 缓冲区已满时、它是否会覆盖 MCU 当前正在读取的 FIFO 内容?  [/报价]

    有关 RX 处理的详细信息、请参阅 MCAN 用户手册(链接)的第 3.4 节。

    分块和覆盖模式是指当 RX FIFO 中的所有 RX 缓冲器元素都满了 MCU 尚未读取或确认的新消息并接收到新的 RX 消息时会发生的情况。  

    如果器件配置为阻塞模式、则不会存储新消息、因为 FIFO 中没有用于存储任何新消息的空缓冲器元素。

    如果器件配置为覆盖模式、则包含最早消息的 FIFO 中的 RX 缓冲器元素将被新的 RX 消息覆盖。

    无论哪种情况、两条 RX 消息中的一条都将丢失。

    此外、我们发现覆盖不会完全替换所有八个字节。

    写入 RX 缓冲区元素的字节数将取决于数据长度代码 (DLC) 设置的新消息中的数据量。  为 RX 缓冲区元素分配的数据字节数将取决于配置、但可能的最大数量为 64 个数据字节。  例如、如果每个 RX 缓冲区元素配置为保存一条包含 64 个数据字节的消息、并且接收到一条仅包含 8 个字节的消息、则器件将仅向 RX 缓冲区元素写入 8 个数据字节。  元素中其余的 56 个数据字节将保留其之前的任何值、如果不使用这些字节、器件不会将其替换为 0x00 值。

    每个 RX 缓冲器元素都包含消息标头信息、其中包含该消息的 DLC 代码。  从缓冲区读取消息时、MCU 只应读取与 DLC 代码值匹配的数据字节数、以确保仅返回与消息关联的数据字节。  无论 DLC 代码如何、读取完整的 RX 缓冲器元素都可能导致根据存储在 RX 缓冲器元素中的先前消息设置的值返回错误的数据字节。

    我还将注意到、该器件只有 2k 的 MRAM、并且没有对 TX/RX 缓冲器元素、SID/XID 过滤器元素、TX 事件 FIFO 元素等的 MRAM 分配进行错误检查 如果配置中分配的存储器总量超过 MRAM 大小、器件可能会绕回并覆盖存储器的其他部分。  这可能会导致某些特定数据字节似乎未设置为预期值时可能出现的错误。  请确保总 MRAM 分配数小于 2k。

    更多有关分配 MRAM 和避免存储器段重叠的信息、也可以参阅 TCAN45xx 软件用户指南(链接)的第 4.2 节。

    此致、

    Jonathan

    [/quote]