跳转到主要内容

CRC

RA MCU的循环冗余校验(CRC)

cathy /

CRC是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

【资料下载】STM32 CRC使用详解

cathy /

在STM32众多外设中,CRC是一个不起眼的小外设,以至于在使用的时候会忽略 掉。最近在学习Class B 的时候,CRC是Class B应用需要用到的外设,用来生成ROM校验码,在阅读Class B相关文档CRC 的部分的时候,我出现了理解上的一些错误,由此可见,CRC外设虽小,理解其细节,也是需要时间的,本文的目的是通过理解CRC 外设的使用,用文字的方式记录下来,给后来使用者提供参考。

【下载】PIC32系列参考手册——32 位可编程循环冗余校验 (CRC)

judy /

32 位可编程循环冗余校验 (Cyclic Redundancy Check, CRC)模块是可用软件配置的 CRC 发生器。该模块提供了一种由硬件实现的方法,为各种通信和安防应用快速生成校验和。CRC 引擎可以在无需 CPU 干预的情况下计算 CRC 校验和;此外,它的速度远高于软件实现的速度。

<font color="#0000C6" size="4"><a href="http://mcu.eetrend.com/files/2018-03/wen_zhang_/100010776-37804-a5.pdf"…《PIC32系列参考手册——32 位可编程循环冗余校验 (CRC)》</a></font>

如何在IAR中配置CRC参数

judy /

前言

STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间。CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时的完整性检查。在IEC60335中,也接受通过CRC校验对FLASH的完整性进行检查。在对FLASH完整性检查的应用中,需要事先计算出整个FLASH的CRC校验值(不包括最后保存CRC值的字节),放在FLASH的末尾。在程序启动或者运行的过程中重新用同样的方法计算整个FLASH的CRC校验值,然后与保存在FLASH末尾的CRC值进行比较。

EWARM从v5.5版本之后开始支持STM32芯片的CRC计算。前面所说的计算整个FLASH的CRC校验值并保存在FLASH末尾的过程,可以在IAR中完成。通过配置EWARM的CRC计算参数,自动对整个FLASH空间进行CRC计算,并将计算结果放到FLASH的末尾。本文中将介绍的就是如何配置IAR的CRC参数,使之与STM32的CRC硬件模块保持一致。本文中的例子都基于STM32F072进行。

STM32的CRC外设

CRC校验值的计算采用多项式除法,可以通过除数和被除数进行异或运算实现。这种方法非常适合通过硬件电路来实现。