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.

[参考译文] TCAN4551-Q1:器件的 FIFO 大小

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1127784/tcan4551-q1-fifo-size-of-the-device

器件型号:TCAN4551-Q1

你(们)好

该器件的 FIFO 大小是多少?

我的客户正在寻找 FIFO 大小大于32的 CAN 控制器器件、但无法在 DS 中微调 FIFO 大小规格。

此致

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

    尊敬的 David:

    我不确定您是指 TX FIFO 还是 RX FIFO。  该器件包含2KB 的存储器 RAM (MRAM)、可根据需要进行配置或分配。  所有 TX 和 RX FIFO/缓冲器元件以及消息滤波器元件都存储在这个存储器空间内。  分配通过器件的配置寄存器来完成、方法是提供有关元件数量和第一个元件起始地址位置的基本信息。  因此、您可以根据自己的喜好调整每种类型元素的数量和 MRAM 中的位置。

    对于 TX FIFO/队列、该器件最多可具有32个元件、并在寄存器0x10C0中进行配置。

    对于 RX FIFO/缓冲器、实际上有2个 RX FIFO (RX FIFO 0和 RX FIFO 1)以及专用的 RX 缓冲元件。  其中每条消息最多可配置64个元素、并且可以创建使用 Filter 元素来过滤传入消息并将其定向到不同的存储位置。  RX FIFO 0/1分别在寄存器0x10A0和0x10B0中配置。  专用 RX 缓冲器元件的 MRAM 起始地址在寄存器0x10AC 中设置。

    但是、请注意、虽然这些元件中的每个元件都有可分配的最大元件数量、但器件只有2KB 的 MRAM 空间需要适当分配。  缓冲区/FIFO 元素大小也可根据您希望在消息中接收的数据字节数量进行配置。  这些值在寄存器0x10C0 (TX)和0x10BC (RX)中设置。  因此、您需要确定每种类型需要多少个元素、每个元素的大小以及所需的滤波器元素数量。  然后、您将需要计算每种类型的元素所需的总内存量、并为每个段确定 MRAM 起始地址。a

    我建议您阅读并查看以下文档以了解更多信息。

    《TCAN45xx 软件用户指南》: https://www.ti.com/lit/pdf/sllu270

    Bosch M_CAN 用户指南: https://www.bosch-semiconductors.com/media/ip_modules/pdf_2/m_can/mcan_users_manual_v330.pdf

    请注意、TCAN4551-Q1包含由 Bosch 开发的 M_CAN FD 控制器 IP、有关其他信息、请参阅其文档。

    此致、

    Jonathan

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

    你好、Jonathan

    感谢您的回答!

    您提到器件有2个 RX FIFO、是否有2个 FIFO 而不是1个 FIFO? (是否有任何需要2个 RX FIFO 的特定用例?)

    此外、客户还在寻找一个器件、当数据包未发送到器件时、该器件可以屏蔽该数据包。

    该器件能否屏蔽数据包? 如果可能、它是什么掩码以及客户可以配置多少个滤波器? (您提到了2个最大为64个单元的 RX FIFO、因此它使该128个滤波器最大为多少?)

    此致

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

    尊敬的 David:

    不需要、没有具体的原因或用例要求使用两个 RX FIFO、但如果您愿意、它们可以使用。  可以创建消息过滤器元素以检查传入消息 ID 并将其定向到不同的存储位置。  也许一个示例是某些较高优先级的消息被定向到一个 RX FIFO、而其他较低优先级的消息被定向到另一个 RX FIFO。  然后、当两个 FIFO 中都接收到消息时、MCU 可以知道优先处理 FIFO 中具有更高优先级的消息。  这只是一个最终用户想要如何分配可用资源的问题。

    过滤器元素还可用于屏蔽未发送到此设备的消息。  如果消息 ID 与接受过滤器要求不匹配、则可以忽略不存储。  器件仍会在总线上确认它为正确的消息、但不会采取任何其他操作、也不会存储消息或生成中断。

    假设它适合2K MRAM 空间、则可以具有最多64个 XID (29位滤波器)和最多128个 SID (11位滤波器)。  可存储的滤波器元件的确切数量将取决于 MRAM 中分配给 RX/TX FIFO 和缓冲器元件的空间大小、因为这些空间也包含在该 MRAM 中。  

    我将向您转至 Bosch M_CAN 用户指南文档的第2.4 (MRAM)、3.4 (Rx 处理)、3.5 (Tx 处理)和3.6 (FIFO 确认处理)部分。我在上一个帖子中提供了相关链接。  它清楚地说明了如何使用 FIFO 和滤波器元件。  有不同类型的滤波器、但一般来说、这款 CAN FD 控制器功能齐全、能够满足客户的所有需求。

    此致、

    Jonathan