【问题标题】:CRC/Parity/Hamming Protect 16-bit parallel busCRC/奇偶校验/汉明保护 16 位并行总线
【发布时间】:2014-05-08 09:48:24
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ c crc parity hamming-code


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 2015-06-29
      • 2013-06-28
      • 1970-01-01
      • 2017-04-24
      • 2016-01-31
      • 1970-01-01
      • 2017-06-22
      • 2011-12-08
      相关资源
      最近更新 更多