[CW32F030系列]

【CW32F030CxTx StartKit测评】4、牛x的CW32F030支持10种CRC算法

[复制链接]
255|5
手机看帖
扫描二维码
随时随地手机跟帖
freeelectron|  楼主 | 2022-7-27 09:26 | 显示全部楼层 |阅读模式
cw, ar, rc
本帖最后由 freeelectron 于 2022-7-27 09:28 编辑

1、关于CRC
循环冗余校验(CRC)主要应用于核实数据传输或数据存储的正确性和完整性。
通常都是采用软件来实现CRC,本文体验一下硬件CRC。

2、CW32F030的CRC
CW32F030内部集成CRC计算单元,支持采用多种 CRC 算法对输入数据进行 CRC 计算。
• 3 种输入数据位宽:8bit、16bit、32bit
• 3 种多项式
    CRC-16 多项式 1:x 16 + x 15 + x 2 + 1
    CRC-16 多项式 2:x 16 + x 12 + x 5 + 1
    CRC-32 多项式:x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1
• 10 种常用的算法
基于多项式,初始值,结果异或值,输入 / 输出反转的组合
cw32-crc.jpg

3、代码测试
uint8_t  Raw08[8] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };

void CrcTest(void)
{
        RCC_AHBPeriphClk_Enable(RCC_AHB_PERIPH_CRC, ENABLE);

        uint32_t res;
        
    res = CRC16_Calc_8bit(  CRC16_IBM, Raw08, 8 );
        printf("\r\nCRC16_IBM:0x%04X\r\n",res);       //E16C

    res = CRC16_Calc_8bit(  CRC16_MAXIM, Raw08, 8 );
        printf("\r\nCRC16_MAXIM:0x%04X\r\n",res);         //1E93

    res = CRC16_Calc_8bit(  CRC16_USB, Raw08, 8 );  
        printf("\r\nCRC16_USB:0x%04X\r\n",res);           //15D3

    res = CRC16_Calc_8bit(  CRC16_MODBUS, Raw08, 8 );
        printf("\r\nCRC16_MODBUS:0x%04X\r\n",res);        //EA2C

    res = CRC16_Calc_8bit(  CRC16_CCITT, Raw08, 8 );  
        printf("\r\nCRC16_CCITT:0x%04X\r\n",res);         //868F

    res = CRC16_Calc_8bit(  CRC16_CCITTFALSE, Raw08, 8 );   
        printf("\r\nCRC16_CCITTFALSE:0x%04X\r\n",res);    //5CFF

    res = CRC16_Calc_8bit(  CRC16_X25, Raw08, 8 );   
        printf("\r\nCRC16_X25:0x%04X\r\n",res);           //05FC

    res = CRC16_Calc_8bit(  CRC16_XMODEM, Raw08, 8 );  
        printf("\r\nCRC16_XMODEM:0x%04X\r\n",res);        //6DC1

    res = CRC32_Calc_8bit(  CRC32_DEFAULT, Raw08, 8 );  
        printf("\r\nCRC32_DEFAULT:0x%08X\r\n",res);       //8BA925F7

    res = CRC32_Calc_8bit(  CRC32_MPEG2, Raw08, 8 );  
        printf("\r\nCRC32_MPEG2:0x%08X\r\n",res);         //7FAE93CC
}
4、结果验证
crc_res.png

5、第三方验证工具
经常使用的一个工具,支持各种校验,通过这个计算出来的与单片机计算出来的一致。
crc_cal.png


使用特权

评论回复
七毛钱| | 2022-8-1 10:16 | 显示全部楼层
支持10种CRC方法,心源的这个板子确实牛

使用特权

评论回复
caigang13| | 2022-8-2 19:56 | 显示全部楼层
确实不错啊

使用特权

评论回复
chenjun89| | 2022-8-3 07:47 | 显示全部楼层
支持10种CRC算法,确实不错啊。

使用特权

评论回复
ynndmalh21| | 2022-8-5 13:03 | 显示全部楼层
确实很厉害的。

使用特权

评论回复
onlycook| | 2022-8-9 16:55 | 显示全部楼层
厉害厉害,国产芯片雄起

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则