0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

瑞薩RA MCU中CRC模塊的使用方法

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 作者:瑞薩MCU小百科 ? 2023-12-07 10:23 ? 次閱讀

CRC(Cyclic Redundancy Check),即循環(huán)冗余校驗碼CRC是數(shù)據(jù)通信領域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯功能,對數(shù)據(jù)進行多項式計算,并將得到的結果附在幀的后面,接收設備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。

常用CRC有以下多種:

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

點擊查看大圖

網(wǎng)絡上關于CRC基礎原理的內(nèi)容比較多,可以搜索關鍵詞“循環(huán)冗余校驗”進行查詢。

瑞薩RA MCU中有硬件CRC計算單元,采用固定的多項式發(fā)生器來計算8位或者32位數(shù)據(jù)的CRC校驗值,對數(shù)據(jù)傳輸或數(shù)據(jù)存儲的一致性、完整性進行驗證。這篇文章重點介紹RA MCU中的CRC模塊和使用方法。

RA MCU中的CRC 計算單元規(guī)格如下:

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

點擊查看大圖

注1. 該函數(shù)不能劃分CRC計算中使用的數(shù)據(jù)。以8位或32位為單位寫入數(shù)據(jù)。

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監(jiān)聽功能注

另外CRC單元還具有監(jiān)聽功能 ,可以監(jiān)視指定 I/O 寄存器地址的讀取和寫入,并自動對寄存器地址讀取和寫入的數(shù)據(jù)進行CRC計算。不是對數(shù)據(jù)塊調(diào)用 R_CRC_Calculate,而是調(diào)用 R_CRC_SnoopEnable 來開始監(jiān)視讀/寫,并使用 R_CRC_CalculatedValueGet 來獲取當前CRC。

請注意,監(jiān)聽模式僅適用于SCI上的發(fā)送/接收操作。

注:并非所有RA MCU的CRC單元都有監(jiān)聽功能,RA2A1、RA2L1、RA2E1、RA2E2、RA4M1

、RA4W1、RA6M1、RA6M2、RA6M3、RA6T1、RA6T2的CRC單元有監(jiān)聽功能,而RA4M2、RA4M3、RA4T1、RA4E1、RA4E2、RA6M4、RA6M5、RA6T3、RA6E1、RA6E2的CRC單元沒有監(jiān)聽功能,具體請參考各MCU的硬件手冊。

以下參考代碼展示了CRC監(jiān)聽操作:

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多項式函數(shù)時,CRC模塊會產(chǎn)生與流行的在線CRC32計算器相同的結果,但請務必記住一些要點:

● 在線CRC32計算器允許輸入任意數(shù)量的字節(jié)。而FSP CRC32 API函數(shù)使用32位。這意味著在線計算時必須“填充”為32位。

● 在線CRC32計算器通常會先對輸出取反,然后再將其呈現(xiàn)為結果。如果需要,由應用程序決定是否包含此步驟。

● 在線CRC32計算器和R_CRC模塊API(CRC32 多項式)都需要使用種子值 0xFFFFFFFF。

● 確保R_CRC CRC32的位方向設置為LSB,并且選擇了CRC32而不是CRC32C。

● 一些在線CRC工具將最終結果與0xFFFFFFFF進行異或。

瑞薩RA MCU全系列產(chǎn)品都具有CRC外設(注意,是全系列都有), 對CRC的計算提供硬件支持,為應用程序節(jié)省了代碼空間。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17691

    瀏覽量

    357805
  • 瑞薩
    +關注

    關注

    36

    文章

    22353

    瀏覽量

    87552
  • crc
    crc
    +關注

    關注

    0

    文章

    201

    瀏覽量

    29894
  • 數(shù)據(jù)通信

    關注

    2

    文章

    451

    瀏覽量

    34201
  • 循環(huán)冗余校驗

    關注

    0

    文章

    7

    瀏覽量

    6626

原文標題:RA MCU的循環(huán)冗余校驗(CRC)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    RA8D1單片機IO中斷配置實現(xiàn)方法

    本文為結合e2 studio工具,以及CPKCOR_RA8D1B評估板,給大家講述RA8
    的頭像 發(fā)表于 04-09 15:05 ?635次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>8D1單片機IO中斷配置實現(xiàn)<b class='flag-5'>方法</b>

    RA系列MCU的命名方法與選型

    對初學者來說,要理解RA產(chǎn)品家族產(chǎn)品型號的不同數(shù)字和字母并不容易。我們首先以RA系列MCU的其中一個型號R7FA6M5BH2CBG為例,
    的頭像 發(fā)表于 03-27 14:32 ?531次閱讀
    <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'>方法</b>與選型

    RA2L1入門學習】00. 開箱 + 點燈

    常用到的。 【點燈】 開發(fā)MCU是要用到E2 Studio的(簡稱e2s)來開發(fā)以及編譯程序。通過Renesas Flash Programme下載程序。這些工具在官網(wǎng)都可以獲取最新的資源。
    發(fā)表于 03-07 11:07

    RA家族RA4L1低功耗MCU量產(chǎn)上市

    ? RA家族RA4L1低功耗MCU產(chǎn)品系列于2025年2月推出。RA4L1
    的頭像 發(fā)表于 02-20 13:39 ?548次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>家族<b class='flag-5'>RA</b>4L1低功耗<b class='flag-5'>MCU</b>量產(chǎn)上市

    RA家族精品RA2L1產(chǎn)品介紹

    RA2L1MCURA家族RA2系列廣受歡迎的一款產(chǎn)品。RA2L1MCU專為超低功耗應用而設
    的頭像 發(fā)表于 12-27 18:07 ?399次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>家族精品<b class='flag-5'>RA</b>2L1產(chǎn)品介紹

    RA6M5的QSPI可以用作普通SPI使用嗎?

    各位大佬,請教一個問題,RA6M5的QSPI可以用作普通SPI使用嗎?有沒有相關教程
    發(fā)表于 12-18 08:53

    電子RA2L1 MCU產(chǎn)品介紹

    RA2L1 MCURA家族RA2系列廣受歡迎的一款產(chǎn)品。
    的頭像 發(fā)表于 12-10 10:51 ?657次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA</b>2L1 <b class='flag-5'>MCU</b>產(chǎn)品介紹

    基于RA6T2 MCU實現(xiàn)過電流保護功能

    本篇介紹如何在使用RA-T系列芯片時,通過使用內(nèi)部比較器ACMPHS配合POE模塊,實現(xiàn)過電流保護,從而替代傳統(tǒng)的硬件保護電路,這樣可以降低項目的BOM成本。本篇文章以RA6T2為例,設置和使
    的頭像 發(fā)表于 11-11 13:41 ?755次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>6T2 <b class='flag-5'>MCU</b>實現(xiàn)過電流保護功能

    RA8D1 CPK開發(fā)板】RA8D1移植ThreadX操作系統(tǒng)

    。 CPKCOR-RA8D1B核心板 是電子為中國市場設計的模塊化開發(fā)板, 使用
    發(fā)表于 10-20 20:22

    e2studio(1)----芯片之搭建FSP環(huán)境

    視頻教學 樣品申請 請勿添加外鏈 e2studio軟件 e2studio是的集成開發(fā)環(huán)境,F(xiàn)SP 提供了眾多可提高效率的工具,用于開發(fā)針對電子
    發(fā)表于 09-30 15:28

    RA8系列高性能MCU開發(fā)上手體驗

    大家好,我是痞子衡,是正經(jīng)搞技術的痞子。今天痞子衡給大家介紹的是RA8系列高性能MCU開發(fā)上手體驗。
    的頭像 發(fā)表于 08-08 15:21 ?1648次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>8系列高性能<b class='flag-5'>MCU</b>開發(fā)上手體驗

    RA系列MCU測量芯片的工作原理和溫度值計算方法

    RA系列都有內(nèi)置的溫度傳感器,可以通過下面幾個簡單步驟就能測量并獲取工作溫度信息和工作電壓信息。由于無需外圍添加任何器件,此方法能夠快捷便利而且在節(jié)省成本的情況下獲取芯片的工作溫度
    的頭像 發(fā)表于 07-24 14:19 ?1131次閱讀
    <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'>方法</b>

    基于RA0E1 MCU的解決方案介紹

    RA0E1產(chǎn)品組是RA家族入門級簡易MCU,具有出色的成本效益和超低功耗特性。它集成Arm Cortex-M23內(nèi)核,內(nèi)置高達64KB的
    的頭像 發(fā)表于 07-09 11:13 ?780次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>0E1 <b class='flag-5'>MCU</b>的解決方案介紹

    RA2L1系列CAN通信應用

    RA2L1系列CAN通信應用
    的頭像 發(fā)表于 06-26 08:06 ?906次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>2L1系列CAN通信應用

    RA0E1開發(fā)分享之一

    介紹生態(tài)社區(qū)的RA0E1開發(fā)板。
    的頭像 發(fā)表于 05-10 13:57 ?1486次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>0E1開發(fā)分享之一

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品