
引言 循环冗余校验(CRC)技术用于检测数字数据中的错误,但在检测到错误时不进行校正。该技术旨在检查数据传输或数据存储的完整性。在确保数据可靠性方面,CRC技术功能强大且易于实施。该技术的诊断覆盖范围可满足基本安全标准要求。这就是认证符合IEC 60335-1和 IEC 607030-1 标准(称为“B 级”要求)的ST固件时,在Flash内容完整性自检检查中使用CRC功能的原因。更多信息,请参阅应用笔记AN3307和适用于不同系列产品的相关固件包。当CRC校验和信息必须由链接器直接放入用户代码中时(主要以CRC描述符数据表的格式),建议在编译器手册中检查所有必要的CRC设置。CRC以多项式算法为基础。计算GF(2)中一个多项式除以另一个多项式的余数。余数被称为校验和,而被除数是数据,除数是生成多项式。 注: GF(2)(两元素伽罗瓦域)中的多项式是单变量x的多项式,其系数为0或1。 本应用笔记描述了嵌入在所有STM32系列(F0、F1、F2、F3、F4、L1)中的循环冗余校验外设的功能,以及配置该外设所需的步骤。 本应用笔记的结构如下: • 第 1节介绍了STM32 CRC实现算法及其硬件实现优势。 • 第 2节描述了DMA作为CRC数据传输控制器的用法。 • 第 3节描述了通过STM32器件移植CRC。 此外还提供了两个示例: • CRC_usage示例:如何将CPU用作数据传输控制器来配置CRC。 • CRC_DMA示例:如何将DMA用作CRC数据传输控制器。 两个例子均支持执行时间测量。 ![]() 1 CRC外设概览 嵌入在所有STM32微控制器件中的CRC外设用于提供任意支持数据类型的CRC校验和代码。 1.1 CRC算法 如图 1中所示,CRC算法有一个数据输入,并根据输入参数生成固定的校验和代码长度。 ![]() 已知的CRC算法之一是使用按位消息XORing技术进行多项式除法。这是微控制器中使用的最适合硬件或底层实现的技术。 该算法的输入参数为: • 被除数:也称为输入数据, 缩写为 “Input_Data” • 除数:也称为生成多项式,缩写为“POLY” • 初始CRC值:缩写为Initial_Crc” 下文的图 2显示了CRC算法流程图。 ![]() 启动时,算法将CRC设置为带有Input_Data的Initial_Crc XOR。 一旦CRC MSB等于1,该算法将CRC向左移一位,并与POLY进行XOR。否则,只会将CRC向左移动一位。 图 3显示了以下条件的逐步算法执行: – Input_Data = 0xC1 – POLY = 0xCB – Initial_Crc = 0xFF ![]() 1.2 CRC外设配置 所有STM32器件均采用CRC外设,如第 1.1节中所述。CRC计算单元具有单个32位读/写数据寄存器 (CRC_DR)。它用于输入新数据(写访问)并保存以前的CRC计算结果(读访问)。 对数据寄存器的每个写操作都会对之前的CRC值(存储在CRC_DR中)和新值再做一次CRC计算。 ![]() 要计算任何支持数据的CRC,必须遵循以下步骤: 1. 通过RCC外设启用CRC外设时钟。 2. 通过配置初始CRC值寄存器(CRC_INIT),将CRC数据寄存器设置为初始CRC值 。(a) 3. 分别通过CRC控制寄存器(CRC_CR)中的REV_IN[1:0]和REV_OUT位设置I/O反转位顺序。(a) 4. 分别通过CRC控制寄存器(CRC_CR)和CRC多项式寄存器(CRC_POL)中的POLYSIZE[1:0]位设置多项式大小和系数。(b) 5. 通过CRC控制寄存器(CRC_CR)中的Reset位重置CRC外设。 6. 将数据设置到CRC数据寄存器。 7. 读取CRC数据寄存器的内容。 8. 禁用CRC外设时钟。 在固件包中,CRC_usage示例运行CRC校验和代码,计算256个支持数据类型的数组数据 (DataBuffer)。有关完整说明,请参阅CRC_usage文件夹中的文件Readme.txt 。 完整版请查看:附件 |
在STM32系列中使用CRC外设.pdf
下载377.72 KB, 下载次数: 29
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南