ZHCACL4A april   2020  – may 2023 TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28075 , TMS320F28075-Q1 , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S , TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1

 

  1.   1
  2.   C2000 器件中的 CRC 引擎
  3.   商标
  4. 引言
    1. 1.1 首字母缩写词
  5. BGCRC
  6. GCRC
  7. VCU CRC
  8. ERAD CRC
  9. CLA CRC (PSA)
    1. 6.1 CLA PSA
      1. 6.1.1 适用于 PAB 的 PSA
      2. 6.1.2 适用于 DWDB 的 PSA
      3. 6.1.3 计算 PSA 时的注意事项
  10. CLA-PROMCRC – CLA 程序完整性检查
  11. 使用软件计算 CRC
  12. 针对具体用例的 CRC 建议
  13. 10CRC 模块比较
  14. 11CRC 引擎与器件映射表
  15. 12参考文献
  16. 13修订历史记录

VCU CRC

除了 Viterbi 和复杂数学运算之外,C2000 器件上的 VCU 模块还执行 CRC 计算。该模块提供特殊指令来加速 CRC 计算,如果不使用该模块,在 C28x CPU 上可能需要几个周期进行此计算。C2000 器件上存在 3 种不同类型的 VCU 模块。要确定特定器件上可用的特定 VCU 模块(如果有),请参阅 C2000 实时控制外设参考指南

  • VCU Type0 或 Type1(以不同形式表示为 VCU0、VCU-I),它们完全相同。
  • VCU Type2(以不同形式表示为 VCU2、VCU-II)。这是 VCU0 的较新版本。
  • VCRC - 这是模块的最新版本,仅包含 CRC 功能。删除了 Viterbi 和复杂数学功能。

该模块支持 8 位、16 位、24 位(VCU0 除外)或 32 位 CRC 的计算。VCRC 模块支持用户可配置的多项式,该多项式的值和大小(1 至 32 位)都很灵活。该模块还支持用户可配置的数据大小(1 至 8 位)。

表 4-1 不同 VCU 模块的特性
8 位 CRC
多项式
16 位 CRC 多项式 24 位 CRC 多项式 32 位 CRC 多项式 可配置数据和多项式
VCU0 0x07 0x8005
0x1021
不可用 0x4C11DB7 不可用
VCU2 0x07 0x8005
0x1021
0x5D6DCB 0x4C11DB7
0x1EDC6F41
不可用
VCRC 0x07 0x8005
0x1021
0x5D6DCB 0x4C11DB7
0x1EDC6F41
1-8 位数据
1-32 位多项式

VCU0/VCU2 支持固定多项式(如表 4-1 所示),这些多项式的错误检测功能如下:

  • 可以检测消息(任意长度)中的所有 single-bit 和 double-bit 错误
  • 可以检测任何具有奇数个错误的错误模式
  • 可以检测长度不超过 CRC 长度的所有突发错误,以及所有较长突发的一部分 (1 - 2-n)

更多信息,请参阅 TMS320C28x 扩展指令集技术参考手册

上述功能为用户提供了多种选择来满足各种应用要求。可以对来自 ROM、RAM 或闪存的数据执行 CRC 计算。VCU 还支持位顺序,可以对“按原样”从存储器获取的数据或翻转的数据计算 CRC,后者称为“反射 CRC”。

C2000Ware 包含用于 VCU 并经过汇编优化的软件库,以及一些通过 C 语言调用的汇编函数演示软件库用法的示例。此外,为了进行比较,可以使用查找表方法(用 C 语言编写)计算 CRC,并获取链接器生成的 CRC(在链接时;这是 C2000 代码生成工具提供的功能)。

这些库支持偶校验或奇校验(字节序)。对于偶校验,CRC 输入计算从存储器中的低字节开始,而对于奇校验,则是从存储器中的高字节开始。

如需获取软件支持,请参阅 C2000ware

  • VCU0 - 可在 C2000Ware_X_XX_XX_XX\libraries\dsp\VCU\c28\source\vcu0\crc 中找到 CRC C 语言调用的汇编实现。
  • VCU2 - 可在 C2000Ware_X_XX_XX_XX\libraries\dsp\VCU\c28\source\vcu2\crc 中找到 CRC C 语言调用的汇编实现。
  • 示例可在以下位置找到:C2000Ware_X_XX_XX_XX\libraries\dsp\VCU\c28\examples\crc