你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 CRC 使用详解

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


2. 问题描述
在阅读 RM0440 Reference Manual 文档中 CRC 章节的时候,文中提到了对输入数据和输出数据进行 bit-reversal 的操作,如下图所示,开始以为是按位取反的操作,但是按照文中给的例子,按位取反的结果与实例不一致,才觉得有必要深入理解一下。带着问题,
本文对 CRC 校验用到的概念以及校验方法进行较为详细的介绍。

SE)KNAOF2_WB~O5S1MJQ[AD.png


按照我最初的理解,输入数据 0x1A2B3C4D 按位取反的值都应该是 0xE5D4C3B2,很显然,这个理解是不对的。Bit-reversal 的正确理解是按位高低位反过来,所以按照字节,半字,字为单元进行操作得到的数据是不一样的,这个功能实际作用是解决不同硬件字节序的问题。

3. CRC 校验算法原理
在 CRC 校验会用到多项式和模 2 运算的概念,这里先介绍一下什么是多项式和模 2 运算。 多项式是由多个单项式组成的代数式。任何一个二进制数,都可以与一个系数仅为 0或者 1 的多项式对应。
比如二进制数 1010111 对应的多项式为 X6 + X4 + X2 + X1 + 1.
下面要谈的模 2 除法其实就是异或操作,简单来说就是同为 0,异为 1,不用进位也不用借位。不妨一起看看模 2 除法的一个具体实例。
假设被除数 X=11110000B,除数 P=1101B,那么进行模 2 除法的步骤和结果如下。


H3HFVB)2%XS`[]IV5(2JFW5.png


完整版请查看:附件



LAT1098STM32CRC使用详解_v1.0.pdf

下载

372.43 KB, 下载次数: 17

收藏 评论0 发布时间:2022-8-9 00:02

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版