在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

利用CRC模塊加速校驗碼的計算

冬至配餃子 ? 來源:兆易創新GD32 MCU ? 作者:寒冰1988 ? 2022-09-22 17:25 ? 次閱讀

CRC的基礎概念

CRC(Cyclic Redundancy Check, 循環冗余校驗)是一種根據網絡數據包或計算機文件等數據產生簡短固定位數校驗碼的一種信道編碼技術,主要用來檢測或校驗數據傳輸或者保存后可能出現的錯誤。它是利用除法及余數的原理來作錯誤偵測的。

嵌入式領域,針對一些不嚴苛的情況下,可以用來校驗待升級固件或接收到數據的完整性,根據寬度的不同,常用的有CRC4/CRC8/CRC16/CRC32等。當打包固件或者發送數據時,可按照如下結構進行,接收方收到數據以后針對DATA區重新計算CRC,然后與數據包自帶的CRC對比,從而判斷數據是否正確。

poYBAGMsIYGAOXmzAABM1EVdJ6o675.png

GD32F310G硬件CRC介紹

GD32F310G自帶硬件CRC模塊,相對軟件CRC的計算,利用SOC自帶的CRC模塊可以減少代碼的體積,同時提高計算的效率。GD32F310G的CRC模塊的主要特性如下:

poYBAGMsIZqASpjHAACpmE1ExBI235.png

該模塊在使用方式上與友商的類似,本文基于官方DEMO的基礎上通過增添代碼實現CRC32的計算,展現一下GD32F310G自帶CRC硬件模塊的使用。

開發環境

硬件平臺

GD32F310G-START開發板

軟件平臺

Windows10

Keil-MDK 5.34

GD32F3x0_Firmware_Library_V2.2.0

參考資料

GD32F310xx-數據手冊-Rev1.1

GD32F3x0-用戶手冊-Rev2.5

GD32F3x0-固件庫使用指南-Rev1.2

軟件實現

int main(void)
{
    uint32_t crc32;
    uint32_t single_data = 0x12345678;
    uint32_t multiple_data[8] = {
        0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
    };

    systick_config();
    
    rcu_periph_clock_enable(RCU_CRC);
    crc_deinit();
    crc_data_register_reset();
    
    crc32 = crc_single_data_calculate(single_data, INPUT_FORMAT_WORD);
    crc_data_register_reset();
    
    crc32 = crc_block_data_calculate(multiple_data, 8, INPUT_FORMAT_WORD);
    crc_data_register_reset();

    while(1) {
        /* insert 500 ms delay */
        delay_1ms(500);
    }
}

結果展示

如下圖為GD32F310執行的截圖,實例代碼SingleWord的CRC32=0xDF8A8A2B。

pYYBAGMsIbSAVqb0AACoHs2GrS0977.png

CRC的工具有很多種,此處利用CRC_calc在線工具作為校驗GD32的結果是否正確。根據GD32F310G提供CRC相關信息,按照下圖配置計算:

poYBAGMsIcuAD4-lAADXYcwThDI514.png

通過對比可知兩者一致。

后記

CRC模塊是GD32F310G中的一個特色模塊,通過該模塊相關功能的實現,熟悉了GD32的開發流程和開發環境。因為疫情的原因,訂購的PCM5102模組剛到貨,目前遇到幾個問題還在調試中,等問題解決了再跟大家分享。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CRC算法
    +關注

    關注

    0

    文章

    15

    瀏覽量

    8887
  • 信道編碼
    +關注

    關注

    2

    文章

    34

    瀏覽量

    9600
  • GD32
    +關注

    關注

    7

    文章

    413

    瀏覽量

    24472
收藏 人收藏

    評論

    相關推薦

    如何在IAR Embedded Workbench中配置生成對應代碼區域的CRC校驗碼

    在運行過程中使用MCU內嵌的CRC硬件模塊計算對應代碼區域的CRC校驗碼,并和之前存儲的CRC
    的頭像 發表于 10-27 11:49 ?1782次閱讀
    如何在IAR Embedded Workbench中配置生成對應代碼區域的<b class='flag-5'>CRC</b><b class='flag-5'>校驗碼</b>

    實用資料——CRC校驗碼生成算法

    按上述步驟計算完成后,最后得到的CRC寄存器的內容即為CRC校驗碼,將其附著在原通訊信息幀后進行傳輸即可。如果用于Modbus協議設備則還需交換高低8位,非Modbus協議設備可以不必
    發表于 01-11 21:10

    CRC校驗碼算法的研究與實現

    CRC校驗碼算法的研究與實現
    發表于 08-06 11:09

    CRC16的計算校驗碼的方式有哪幾種?

    CRC16的計算校驗碼的方式有哪幾種?如何使用Delphi編寫Modbus RTU CRC16的校驗碼
    發表于 11-03 07:20

    循環冗余校驗碼---CRC

    循環冗余校驗碼---CRC   二進制信息位串沿一條信號線逐位在部件之間或計算機之間傳送稱為串行傳送。CRC(Cyclic Redund
    發表于 10-13 16:52 ?7198次閱讀
    循環冗余<b class='flag-5'>校驗碼</b>---<b class='flag-5'>CRC</b><b class='flag-5'>碼</b>

    奇偶校驗碼,奇偶校驗碼原理是什么?

    奇偶校驗碼,奇偶校驗碼原理是什么? 奇偶校驗碼是奇校驗碼和偶校驗碼的統稱,是一種最基本的檢錯碼。它是由n-1位信息元和1位
    發表于 03-17 17:39 ?6.3w次閱讀

    CRC校驗碼算法的研究與實現

    為了提高實際通信中檢查信號傳輸錯誤的能力,提高和推廣CRC校驗技術,本論文用邏輯代數知識、按模運算、代數知識和C語言編程工具設計了幾種具體實用的CRC校驗碼
    發表于 05-28 15:41 ?0次下載

    CRC-16校驗碼生成

    C#編寫的CRC校驗碼生成小程序,簡潔明了,如果有需要的話,大家可以下載了。
    發表于 05-06 15:06 ?8次下載

    crc循環冗余校驗碼算法

     循環冗余校驗(Cyclic Redundancy Check, CRC)是一種根據網絡數據包或電腦文件等數據產生簡短固定位數校驗碼的一種散列函數,主要用來檢測或校驗數據傳輸或者保存后
    發表于 12-04 10:11 ?2.3w次閱讀
    <b class='flag-5'>crc</b>循環冗余<b class='flag-5'>校驗碼</b>算法

    薦讀:基于FPGA 的CRC校驗碼生成器

    大家好,又到了每日學習的時間了,今天我們來聊一聊基于FPGA 的CRC校驗碼生成器。下面咱們就來具體看看,歡迎大家一起交流學習。 1.概述 CRC即Cyclic Redundancy Check
    的頭像 發表于 06-13 11:18 ?6559次閱讀
    薦讀:基于FPGA 的<b class='flag-5'>CRC</b><b class='flag-5'>校驗碼</b>生成器

    CRC計算工具CRC校驗碼計算器應用程序免費下載

    本文檔的主要內容詳細介紹的是CRC計算工具CRC校驗碼計算器應用程序免費下載。
    發表于 07-01 08:00 ?135次下載
    <b class='flag-5'>CRC</b><b class='flag-5'>計算</b>工具<b class='flag-5'>CRC</b><b class='flag-5'>校驗碼</b><b class='flag-5'>計算</b>器應用程序免費下載

    CRC校驗碼的C語言程序免費下載

    本文檔的主要內容詳細介紹的是CRC校驗碼的C語言程序免費下載。
    發表于 04-22 08:00 ?28次下載
    <b class='flag-5'>CRC</b><b class='flag-5'>校驗碼</b>的C語言程序免費下載

    CRC校驗碼并行計算的FPGA實現

    用軟件實現 CRC 校驗碼計算很難滿足高速數據通信的要求 ,基于硬件的實現方法中 ,有串行經典算法 LFSR 電路 以及由軟件算法推導出來的其它各種并行計算方法。以經典的LFSR 電路
    發表于 03-28 09:34 ?30次下載
    <b class='flag-5'>CRC</b><b class='flag-5'>校驗碼</b>并行<b class='flag-5'>計算</b>的FPGA實現

    工控常用LRC XOR累加和CRC校驗工具校驗碼自動生成軟件多計算方式

    CRC校驗工具 校驗碼自動生成軟件支持十幾種CRC計算方式,包括MODBUS協議的CRC-16
    的頭像 發表于 11-25 14:27 ?3587次閱讀
    工控常用LRC XOR累加和<b class='flag-5'>CRC</b><b class='flag-5'>校驗</b>工具<b class='flag-5'>校驗碼</b>自動生成軟件多<b class='flag-5'>計算</b>方式

    CRC校驗碼的多種Verilog實現方式

    CRC循環冗余校驗碼(Cyclic Redundancy Check),檢錯碼。
    的頭像 發表于 06-21 15:03 ?3475次閱讀
    <b class='flag-5'>CRC</b><b class='flag-5'>校驗碼</b>的多種Verilog實現方式
    主站蜘蛛池模板: 狠狠干狠狠鲁 | 亚洲香蕉网久久综合影院3p | 日韩免费毛片 | 色费女人18女人毛片免费视频 | 午夜影院普通 | 午夜爱爱爱爱爽爽爽网站免费 | 二区中文字幕 | 91噜噜噜| 在线观看日本免费不卡 | 天堂最新在线资源 | 毛色毛片 | 天堂资源在线www中文 | 男女做视频网站免费观看 | 69日本xxxxxxxxx98| 热久久综合这里只有精品电影 | 久久手机免费视频 | 色欧美在线视频 | 久青草国产手机在线视频 | 国产女主播在线播放一区二区 | 亚洲精品久久久久午夜福 | 男男np主受高h啪啪肉 | 欧美色综合网站 | 色综合久久丁香婷婷 | 欧美18性欧美黑吊 | 天堂在线中文无弹窗全文阅读 | 天天插天天射 | 日本黄大乳片免费观看 | 欧美性一区二区三区五区 | 分分精品 | 亚洲天天在线 | 国模吧在线视频 | 日韩一卡 二卡 三卡 四卡 免费视频 | 精品久久香蕉国产线看观看亚洲 | 天堂在线国产 | 天天射日日射 | 手机看片国产免费永久 | 在线免费观看视频黄 | 欧美久久天天综合香蕉伊 | 欧美在线观看www | 免费在线观看视频 | 欧美另类高清xxxxx |