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.

[参考译文] TMS320F28069:使用 vcu0的 controlSUITE crc16的 CRC 协议

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/743650/tms320f28069-crc-protocol-of-the-controlsuite-crc16-using-vcu0

器件型号:TMS320F28069
Thread 中讨论的其他器件:controlSUITE

您好!

我想知道使用 VCU0的 getCRC16P2_VCU 的 controlSUITE 实现使用的 CRC16协议是什么。 我尝试计算校验值、但它与我在线找到的任何协议都不匹配。 更具体地说  ,我想使用此协议的 VCU 指令。 是否可以使用 VCU 指令执行此操作?

谢谢。

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

    getCRC16P2_VCU 使用的多项式为0x1021 (x^0 + x^5 + x^12 +(x^16)(隐式))、它是与 CRC-16-CCITT 中的多项式相同的多项式。 您是否在某些在线计算器上发现库生成的 CRC 与为 CRC-16-CCITT 计算的 CRC 不匹配? 如果是、请提供详细信息(使用的16位测试向量、CRC-16-CCITT CRC 的在线参考等)。

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

    这是我用于测试实现(在 TI 上)的代码:

    uint16_t 输入[]={0x0102、0x0304、0x0506、0x0708、0x0900};
    uint16_t const CRCvcuef = getCRC16P2_VCU (0、输入、CRC_奇 偶校验、10);//来自 controlSUITE
    

    我很确定我只是忘记了某个东西(可能是未定义的行为?)、尤其是现在我已经在使用它了。 我完全困惑。 我已将上述 automationwiki 链接中的代码修改为两个版本: 版本1 和 版本2。 版本1使用表提供与我的参考设计相同的输出、而第二个版本提供的输出与 controlSUITE 中的 VCU 版本相同。 我不能弄清楚他们在做什么不同。 我一直在寻找它们太长时间了。

    欢迎提供任何帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CRC 计算的字节顺序可能会使您感到困惑。 是先计算 LSB 还是 MSB。

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

    你绝对是对的。 谢谢! 通过将 uint16_t 的序列解释为(8位)字节的序列、由于 x86和 C2000器件是小端字节序、这将导致一系列 LSB0、MSB0、LSB1、MSB1、... 而我期望 MSB 在 LSB 之前。

    我猜我可以通过互换来使 controlSUITE ASM 实现与我的参考实现相匹配

    VCRC16P2L_1
    VCRC16P2H_1 

    说明。 感谢您的建议。

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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    版本1与 VCU 输出匹配、然后通过交换 LSB-MSB、匹配版本2。

    谢谢、
    Sira