0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞萨RA MCU中CRC模块的使用方法

瑞萨嵌入式小百科 来源:瑞萨MCU小百科 作者:瑞萨MCU小百科 2023-12-07 10:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

常用CRC有以下多种:

7e68c2d2-949f-11ee-939d-92fbcf53809c.jpg

点击查看大图

网络上关于CRC基础原理的内容比较多,可以搜索关键词“循环冗余校验”进行查询。

瑞萨RA MCU中有硬件CRC计算单元,采用固定的多项式发生器来计算8位或者32位数据的CRC校验值,对数据传输或数据存储的一致性、完整性进行验证。这篇文章重点介绍RA MCU中的CRC模块和使用方法。

RA MCU中的CRC 计算单元规格如下:

7e84d8f0-949f-11ee-939d-92fbcf53809c.jpg

点击查看大图

注1. 该函数不能划分CRC计算中使用的数据。以8位或32位为单位写入数据。

CRC 计算单元框图如下:

7e979d50-949f-11ee-939d-92fbcf53809c.png

那么接下来就是如何使用了,打开工程中的configuration.xlm文件,在Stacks窗口中,可以通过“New Stack → Monitoring → CRC (r_crc)”添加该模块。该模块的属性窗口如下:

7ea4f504-949f-11ee-939d-92fbcf53809c.jpg

点击查看大图

在应用程序中使用CRC模块的基本例程如下:

void crc_example ()
{
uint32_t length;
uint32_t uint8_calculated_value;
length = sizeof(g_data_8bit) / sizeof(g_data_8bit[0]);
crc_input_t example_input =
{
.p_input_buffer = g_data_8bit,
.num_bytes = length,
.crc_seed = 0,
};
/* Open CRC module with 8 bit polynomial */
R_CRC_Open(&crc_ctrl, &g_crc_test_cfg);
/* 8-bit CRC calculation */
R_CRC_Calculate(&crc_ctrl, &example_input, &uint8_calculated_value);
}

● CRC监听功能注

另外CRC单元还具有监听功能 ,可以监视指定 I/O 寄存器地址的读取和写入,并自动对寄存器地址读取和写入的数据进行CRC计算。不是对数据块调用 R_CRC_Calculate,而是调用 R_CRC_SnoopEnable 来开始监视读/写,并使用 R_CRC_CalculatedValueGet 来获取当前CRC。

请注意,监听模式仅适用于SCI上的发送/接收操作。

注:并非所有RA MCU的CRC单元都有监听功能,RA2A1、RA2L1、RA2E1、RA2E2、RA4M1

、RA4W1、RA6M1、RA6M2、RA6M3、RA6T1、RA6T2的CRC单元有监听功能,而RA4M2、RA4M3、RA4T1、RA4E1、RA4E2、RA6M4、RA6M5、RA6T3、RA6E1、RA6E2的CRC单元没有监听功能,具体请参考各MCU的硬件手册。

以下参考代码展示了CRC监听操作:

void crc_snoop_example ()
{
/* Open CRC module with 8 bit polynomial */
R_CRC_Open(&crc_ctrl, &g_crc_test_cfg);
/* Open SCI Driver */
/* Configure Snoop address and enable snoop mode */
R_CRC_SnoopEnable(&crc_ctrl, 0);
/* Perfrom SCI read/Write operation depending on the SCI snoop address configure */
/* Read CRC value */
R_CRC_CalculatedValueGet(&crc_ctrl, &g_crc_buff);
}

在使用CRC32多项式函数时,CRC模块会产生与流行的在线CRC32计算器相同的结果,但请务必记住一些要点:

● 在线CRC32计算器允许输入任意数量的字节。而FSP CRC32 API函数使用32位。这意味着在线计算时必须“填充”为32位。

● 在线CRC32计算器通常会先对输出取反,然后再将其呈现为结果。如果需要,由应用程序决定是否包含此步骤。

● 在线CRC32计算器和R_CRC模块API(CRC32 多项式)都需要使用种子值 0xFFFFFFFF。

● 确保R_CRC CRC32的位方向设置为LSB,并且选择了CRC32而不是CRC32C。

● 一些在线CRC工具将最终结果与0xFFFFFFFF进行异或。

瑞萨RA MCU全系列产品都具有CRC外设(注意,是全系列都有), 对CRC的计算提供硬件支持,为应用程序节省了代码空间。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19314

    浏览量

    405721
  • 瑞萨
    +关注

    关注

    38

    文章

    22555

    浏览量

    91874
  • crc
    crc
    +关注

    关注

    0

    文章

    206

    浏览量

    31053
  • 数据通信
    +关注

    关注

    2

    文章

    560

    浏览量

    35257
  • 循环冗余校验

    关注

    0

    文章

    8

    浏览量

    6787
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Keil(1)----RA Smart Configurator安装与项目生成

    概述 RA Smart Configurator是的只能配置软件,在配置完成后,可以生成keil工程,方便使用keil的用户进行开发。 RA Smart Configurator软
    发表于 06-04 11:38

    有奖直播 | RA软件实践:1小时快速搞懂RA MCU图形化开发

    RA生态工作室关注我们RA系列MCU凭借高性能、低功耗、高安全性的核心优势,已成为工业控制、家用电器、新能源和边缘AI等众多场景的优选芯
    的头像 发表于 05-26 17:15 356次阅读
    有奖直播 | <b class='flag-5'>RA</b>软件实践:1小时快速搞懂<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>图形化开发

    RA MCU众测宝典 | 串口之【RA-Eco-RA2L1】RTC日历及串口设置时间

    “RAMCU众测宝典”串口专题添硬核实操!开启宝典前言RAMCU众测宝典|串口之【RA2L1】开发板开箱及串口输出实现RAMCU众测宝典|PWM之【RA2L1】呼吸灯ADC/DAC
    的头像 发表于 04-21 18:07 7329次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | 串口之【<b class='flag-5'>RA-Eco-RA</b>2L1】RTC日历及串口设置时间

    RA MCU众测宝典 | 环境搭建之【RA-Eco-RA4M2】QE工具使用

    “RAMCU众测宝典”环境搭建专题再添硬核实操!开启宝典01简介RA-Eco-RA4M2-100PIN-V1.0是一款基于100MHzArmCortex-M33内核架构的核心板,主控芯片为
    的头像 发表于 04-10 18:26 6370次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | 环境搭建之【<b class='flag-5'>RA-Eco-RA</b>4M2】QE工具使用

    RA MCU众测宝典 | 环境搭建之【RA-Eco-RA4M2】搭建Keil开发环境

    “RAMCU众测宝典”环境搭建专题再添硬核实操!开启宝典概览电子RA4M232位微控制器(MCU
    的头像 发表于 04-03 17:59 7375次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>众测宝典 | 环境搭建之【<b class='flag-5'>RA-Eco-RA</b>4M2】搭建Keil开发环境

    成都 上海 | RA8 MCU硬核巡演

    RA8系列是RA家族的超高性能MCU产品线,也是业界首个基于ArmCortex-M85内核
    的头像 发表于 03-20 16:23 1901次阅读
    成都 上海 | <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8 <b class='flag-5'>MCU</b>硬核巡演

    电子RA-Eco-RA4M2搭建Keil开发环境指南

    电子RA4M2 32位微控制器(MCU)系列使用支持TrustZone 的高性能Arm Cortex-M33内核。与片内的 Secure Crypto Engine (SCE)
    的头像 发表于 03-18 08:07 3422次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA-Eco-RA</b>4M2搭建Keil开发环境指南

    2026电子RA8 MCU硬核巡演正式开启

    RA8系列是RA家族的超高性能MCU产品线,也是业界首个基于Arm Cortex-M85内
    的头像 发表于 03-11 10:12 767次阅读
    2026<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b>8 <b class='flag-5'>MCU</b>硬核巡演正式开启

    基于RA2E1 MCU的LCR数字电桥项目介绍

    但这也是他第一次系统性地接触到MCU在模拟测量的应用,以此为起点,他在2025年基于RA2E1 M
    的头像 发表于 02-10 09:22 2059次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>2E1 <b class='flag-5'>MCU</b>的LCR数字电桥项目介绍

    七城共启 | 电子RA8 MCU硬核巡演开放报名

    RA生态工作室关注我们RA8系列是RA家族的超高性能M
    的头像 发表于 02-06 18:01 1008次阅读
    七城共启 | <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b>8 <b class='flag-5'>MCU</b>硬核巡演开放报名

    FPB-RA0E2开发板的批量加载例程

    RA MCU众测宝典”环境搭建专题再添实用干货!上一篇我们搞定了【FPB-RA0E2】开发板的基础环境配置,这次将解锁“批量加载官方例
    的头像 发表于 01-29 17:52 7352次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>FPB-<b class='flag-5'>RA</b>0E2开发板的批量加载例程

    电子RA系列MCU 2025年新品回顾

    2025年RA系列推出10个新产品,覆盖了从入门级低功耗(RA0E2)、端低功耗(RA4C
    的头像 发表于 01-27 09:57 1981次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RA</b>系列<b class='flag-5'>MCU</b> 2025年新品回顾

    如何搭建RA VS code开发环境

    在上一篇文章“当RA MCU遇见Zephyr,打通嵌入式开发任督二脉!”,我们介绍了Zephyr极具前景的发展趋势以及开发板对Zeph
    的头像 发表于 11-05 14:41 4934次阅读
    如何搭建<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> VS code开发环境

    【直播预告】RT-Thread带你首发体验:基于RA8P1 MCU的Titan Board | 问学直播

    AI加速MCU的神秘面纱,探索RT-Thread与RA8P1如何协同赋能嵌入式AI!实时观看直播还可以与专家互动,现场答疑,参与直播的抽奖,有机会获得
    的头像 发表于 10-30 11:54 1223次阅读
    【直播预告】RT-Thread带你首发体验:基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>8P1 <b class='flag-5'>MCU</b>的Titan Board | 问学直播

    RA家族RA4C1低功耗MCU发布

    RA家族在2025年8月推出RA4C1低功耗MCU,基于Arm Cortex-M33(CM33)内核,提供低功耗/低电压操作、LCD段码
    的头像 发表于 08-22 15:00 2869次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>家族<b class='flag-5'>RA</b>4C1低功耗<b class='flag-5'>MCU</b>发布