跳转到主要内容

CRC

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

cathy /

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

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

cathy /

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

资深工程师:图说CRC原理应用及STM32硬件CRC外设

cathy 提交于

在嵌入式产品应用中,常常需要应对系统数据在存储或者传输过程中的完整性问题。

所谓完整性是指数据在其生命周期中的准确性和一致性。这些数据可能存储在EEPROM/FLASH里,或者基于通信协议进行传输,它们有可能因为外界干扰或者程序错误,甚至系统入侵而导致被破坏。如果这些数据在使用前不做校验,产品功能可能失效。在一些特定领域,严重时可能会危及用户财产甚至生命安全。

本文就来聊聊使用较为广泛的循环冗余校验技术,以及在STM32中的一些具体使用体会。

所谓循环冗余校验(CRC:Cyclic Redundancy Check)是一种错误检测算法,通常在通信协议中或存储设备中用于检测原始数据的意外变动。可以简单理解成对有用数据按照一定的算法进行计算后,提取出一个特征值,并附加在有用数据后。在应用中将有用数据按照特定的算法提取特征值与预先存储的特征值进行比对,如相等则校验通过,反之校验失败,从而识别出数据是否异常。

为何要校验数据完整性(Data Integrity)?

数据在存储以及传输的过程中可能发生异动。以数据通信应用场景为例,常见的错误大致有两种失效模式:

单个位错误(Single Bit Error):仅仅某一个数据位出现错误,如图:

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

judy /

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