CRC(Cyclic Redundancy Check),即循環(huán)冗余校驗碼。CRC是數(shù)據(jù)通信領域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯功能,對數(shù)據(jù)進行多項式計算,并將得到的結(jié)果附在幀的后面,接收設備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。
常用CRC有以下多種:
點擊查看大圖
網(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ī)格如下:
點擊查看大圖
注1. 該函數(shù)不能劃分CRC計算中使用的數(shù)據(jù)。以8位或32位為單位寫入數(shù)據(jù)。
CRC 計算單元框圖如下:
那么接下來就是如何使用了,打開工程中的configuration.xlm文件,在Stacks窗口中,可以通過“New Stack → Monitoring → CRC (r_crc)”添加該模塊。該模塊的屬性窗口如下:
點擊查看大圖
在應用程序中使用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計算器相同的結(jié)果,但請務必記住一些要點:
● 在線CRC32計算器允許輸入任意數(shù)量的字節(jié)。而FSP CRC32 API函數(shù)使用32位。這意味著在線計算時必須“填充”為32位。
● 在線CRC32計算器通常會先對輸出取反,然后再將其呈現(xiàn)為結(jié)果。如果需要,由應用程序決定是否包含此步驟。
● 在線CRC32計算器和R_CRC模塊API(CRC32 多項式)都需要使用種子值 0xFFFFFFFF。
● 確保R_CRC CRC32的位方向設置為LSB,并且選擇了CRC32而不是CRC32C。
● 一些在線CRC工具將最終結(jié)果與0xFFFFFFFF進行異或。
瑞薩RA MCU全系列產(chǎn)品都具有CRC外設(注意,是全系列都有), 對CRC的計算提供硬件支持,為應用程序節(jié)省了代碼空間。
-
mcu
+關注
關注
146文章
17347瀏覽量
352725 -
瑞薩
+關注
關注
35文章
22311瀏覽量
86795 -
crc
+關注
關注
0文章
199瀏覽量
29586 -
數(shù)據(jù)通信
+關注
關注
2文章
434瀏覽量
33888 -
循環(huán)冗余校驗
+關注
關注
0文章
7瀏覽量
6580
原文標題:RA MCU的循環(huán)冗余校驗(CRC)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
瑞薩e2studio(1)----瑞薩芯片之搭建FSP環(huán)境
瑞薩RA系列MCU測量芯片的工作原理和溫度值計算方法
![<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>](https://file1.elecfans.com/web2/M00/FE/1E/wKgZomagnU-AEsXbAAAgGCxM88Q171.png)
基于瑞薩RA0E1 MCU的解決方案介紹
![基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>0E1 <b class='flag-5'>MCU</b>的解決方案介紹](https://file1.elecfans.com/web2/M00/FA/2B/wKgZomaMq6SAQAegAABJpLdKfd4710.png)
分享瑞薩RA MCU創(chuàng)意氛圍賽的作品—高壓電網(wǎng)電流監(jiān)測
![分享<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>創(chuàng)意氛圍賽的作品—高壓電網(wǎng)電流監(jiān)測](https://file1.elecfans.com/web2/M00/CF/A6/wKgZomYiDbeACvd2AAAWX1T8bmQ802.jpg)
瑞薩電子RA產(chǎn)品家族新增RA0E1 MCU產(chǎn)品組
![<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA</b>產(chǎn)品家族新增<b class='flag-5'>RA</b>0E1 <b class='flag-5'>MCU</b>產(chǎn)品組](https://file1.elecfans.com/web2/M00/C8/DA/wKgaomYXjsyAREn4AAAt1Xuj98E121.png)
RA MCU中的CRC模塊和使用方法
![<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>中</b>的<b class='flag-5'>CRC</b><b class='flag-5'>模塊</b>和<b class='flag-5'>使用方法</b>](https://file1.elecfans.com/web2/M00/C0/FE/wKgZomXcCdaAXyV1AAAgl-5WVko528.jpg)
瑞薩RA家族 RA AWS MQTT/TLS云連接解決方案-蜂窩應用說明
![<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA</b>家族 <b class='flag-5'>RA</b> AWS MQTT/TLS云連接解決方案-蜂窩應用說明](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論