3

我有一个基于 Cortex-M4 的 MCU,通过 16 位并行存储器总线接口连接到 FPGA。本质上,FPGA 的行为类似于映射到 MCU 存储空间的外部存储器:MCU 提供一个地址,后跟一个数据字(写)或读取 FPGA 提供的字(读)。

我想在寻址和数据写入/读取期间保护读取和写入免受传输错误的影响。但是,由于两个部分之间的距离很短,我预计不会有很多位错误。

我可以在 FPGA 内轻松实现奇偶校验、汉明码或 CRC 校验和生成。然而,在 uC 中做同样的事情(检查和生成)似乎比较困难,因为我不想削弱吞吐量。如果没有错误检测,读取和写入 16 位字大约需要 4-6 个处理器周期,因此相当快。因此,我不想在保护措施上花费数百个周期。

最后,我正在寻找一种在 uC 中以尽可能少的周期实现的 16 位数据的中等效率错误检测方法。

4

1 回答 1

1

(根据我的经验)保护这样的并行总线非常罕见。它当然是在带有 ECC RAM 等的 PC 和服务器类硬件中完成的,但很少在微控制器中完成。

如果您的特定 Cortex-M4 实现有一个硬件 CRC 块,您可能能够在那里流式传输数据,假设您可以简单地在每个总线传输的末尾添加一个 CRC 字。不过,这可能仍会使它至少减慢 2-3 倍,因为进出 FPGA 的每个字也必须以软件形式馈送到 CRC 单元。

于 2014-05-08T10:42:13.697 回答