亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

第十八章 淺談循環(huán)冗余校驗(yàn)(CRC)計(jì)算單元

W55MH32 ? 來源:W55MH32 ? 作者:W55MH32 ? 2025-05-29 11:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單芯片解決方案,開啟全新體驗(yàn)——W55MH32 高性能以太網(wǎng)單片機(jī)

W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機(jī),它為用戶帶來前所未有的集成化體驗(yàn)。這顆芯片將強(qiáng)大的組件集于一身,具體來說,一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨(dú)立的32KB以太網(wǎng)收發(fā)緩存,可供8個獨(dú)立硬件socket使用。如此配置,真正實(shí)現(xiàn)了All-in-One解決方案,為開發(fā)者提供極大便利。

在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN68和QFN100。

W55MH32Q采用QFN68封裝版本,尺寸為8x8mm,它擁有36個GPIO、3個ADC、12通道DMA、17個定時器、2個I2C、3個串口、2個SPI接口(其中1個帶I2S接口復(fù)用)、1個CAN以及1個USB2.0。在保持與同系列其他版本一致的核心性能基礎(chǔ)上,僅減少了部分GPIO以及SDIO接口,其他參數(shù)保持一致,性價比優(yōu)勢顯著,尤其適合網(wǎng)關(guān)模組等對空間布局要求較高的場景。緊湊的尺寸和精簡化外設(shè)配置,使其能夠在有限空間內(nèi)實(shí)現(xiàn)高效的網(wǎng)絡(luò)連接與數(shù)據(jù)交互,成為物聯(lián)網(wǎng)網(wǎng)關(guān)、邊緣計(jì)算節(jié)點(diǎn)等緊湊型設(shè)備的理想選擇。 同系列還有QFN100封裝的W55MH32L版本,該版本擁有更豐富的外設(shè)資源,適用于需要多接口擴(kuò)展的復(fù)雜工控場景,軟件使用方法一致。更多信息和資料請進(jìn)入http://www.w5500.com/網(wǎng)站或者私信獲取。

此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。

為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32Q這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實(shí)現(xiàn)調(diào)試、下載以及串口打印日志等功能。開發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開發(fā)者全面評估芯片性能。

若您想獲取芯片和開發(fā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價格等,歡迎訪問官方網(wǎng)頁:http://www.w5500.com/,我們期待與您共同探索W55MH32的無限可能。

wKgZO2gbOfaAVPzkACJSygzv-rI600.png

第十八章 CRC

1 CRC簡介

循環(huán)冗余校驗(yàn)(CRC)計(jì)算單元是根據(jù)固定的生成多項(xiàng)式得到任一 172 位全字的 CRC 計(jì)算結(jié)果。在其他的應(yīng)用中,CRC 技術(shù)主要應(yīng)用于核實(shí)數(shù)據(jù)傳輸或者數(shù)據(jù)存儲的正確性和完整性。標(biāo)準(zhǔn)EN/IEC60335-1 即提供了一種核實(shí)閃存存儲器完整性的方法。CRC 計(jì)算單元可以在程序運(yùn)行時計(jì)算出軟件的標(biāo)識,之后與在連接時生成的參考標(biāo)識比較,然后存放在指定的存儲器空間。

2 CRC主要特性

?使用 CRC-32(以太網(wǎng))多項(xiàng)式:0x4C11DB7

······X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X4+X2+X+1

?一個 32 位數(shù)據(jù)寄存器用于輸入/輸出

?CRC 計(jì)算時間:4 個 AHB 時鐘周期(HCLK)

?通用 8 位寄存器(可用于存放臨時數(shù)據(jù))

下圖為 CRC 計(jì)算單元框圖:

wKgZPGg3zIOAK543AAEVxofr4Qg894.png

CRC 計(jì)算單元框圖

3 CRC功能描述

CRC 計(jì)算單元含有 1 個 32 位數(shù)據(jù)寄存器:

?對該寄存器進(jìn)行寫操作時,作為輸入寄存器,可以輸入要進(jìn)行 CRC 計(jì)算的新數(shù)據(jù)。

?對該寄存器進(jìn)行讀操作時,返回上一次 CRC 計(jì)算的結(jié)果。

每一次寫入數(shù)據(jù)寄存器,其計(jì)算結(jié)果是前一次 CRC 計(jì)算結(jié)果和新計(jì)算結(jié)果的組合(對整個 32 位字進(jìn)行 CRC 計(jì)算,而不是逐字節(jié)地計(jì)算)。

在 CRC 計(jì)算期間會暫停 CPU 的寫操作,因此可以對寄存器 CRC_DR 進(jìn)行背靠背寫入或者連續(xù)地寫-讀操作??梢酝ㄟ^設(shè)置寄存器 CRC_CR 的 RESET 位來重置寄存器 CRC_DR 為0xFFFF FFFF。該操作不影響寄存器 CRC_IDR 內(nèi)的數(shù)據(jù)。

4 CRC寄存器CRC 計(jì)算單元包括 2 個數(shù)據(jù)寄存器和 1 個控制寄存器

4.1 數(shù)據(jù)寄存器(CRC_DR)

地址偏移:0x00

復(fù)位值:0xFFFF FFFF

wKgZPGg3zIKAdzRzAACmKhJ9G_g670.png

4.2 獨(dú)立數(shù)據(jù)寄存器(CRC_IDR)

地址偏移:0x04

復(fù)位值:0x0000 0000

wKgZO2g3zIKAf25hAACo9-0NB3w911.png

4.3 控制寄存器(CRC_CR)

地址偏移:0x08

復(fù)位值:0x0000 0000

wKgZO2g3zIKATUJKAACo9-0NB3w732.png

4.4 CRC 寄存器映像

下表列出了 CRC 的寄存器映像和復(fù)位值:

CRC 計(jì)算單元寄存器映像和復(fù)位值

5 例程設(shè)計(jì)

5.1 CRC_DifferentCrcMode例程

1.宏定義與結(jié)構(gòu)體:定義了不同 CRC 模式的預(yù)期結(jié)果,創(chuàng)建了CRC_ResultInfo結(jié)構(gòu)體用于存儲 CRC 模式名稱和預(yù)期結(jié)果,同時定義了待計(jì)算 CRC 的數(shù)據(jù)緩沖區(qū)Buff。

2.UART 模塊:UART_Configuration函數(shù):使能 USART1 和 GPIOA 時鐘,配置 GPIO 引腳,初始化 USART 參數(shù)(波特率、數(shù)據(jù)位、停止位等),最后使能 USART1。

?重定向printf函數(shù):通過SER_PutChar和fputc函數(shù)將printf輸出重定向到 USART1,方便輸出調(diào)試信息。

3.CRC 測試模塊:CRC_DifferentModeTest函數(shù):遍歷不同的 CRC 模式,對Buff緩沖區(qū)的數(shù)據(jù)進(jìn)行 CRC 計(jì)算。每次計(jì)算前重置 CRC 數(shù)據(jù)寄存器,將計(jì)算結(jié)果與預(yù)期結(jié)果比較,若一致則輸出 “Right”,不一致則輸出 “Error” 并顯示預(yù)期結(jié)果。

// CRC多模式測試函數(shù)
void CRC_DifferentModeTest(void)
{
    uint32_t crcresult = 0; // 存儲實(shí)際計(jì)算結(jié)果
    uint8_t  i;

    // 遍歷所有CRC測試用例
    for (i = 0; i < sizeof(CRCResult) / sizeof(CRC_ResultInfo); i++)
    {
        CRC_ResetDR(); // 重置CRC數(shù)據(jù)寄存器(清除之前的計(jì)算結(jié)果)

        // 計(jì)算CRC值(參數(shù):CRC模式、數(shù)據(jù)緩沖區(qū)、數(shù)據(jù)長度(字計(jì)數(shù)))
        crcresult = CRC_CalcBlockCRC(CRC_16_IBM + i, Buff, sizeof(Buff) / 4);

        // 比較實(shí)際結(jié)果與預(yù)期結(jié)果
        if (CRCResult[i].CRCResultData == crcresult)
        {
            printf("%s Right.n", CRCResult[i].Str); // 輸出測試通過信息
        }
        else
        {
            // 輸出測試失敗信息及預(yù)期結(jié)果
            printf("%s Error.n", CRCResult[i].Str);
            printf("%s Error Result is 0x%xn", CRCResult[i].Str, CRCResult[i].CRCResultData);
        }
    }
}

4.主函數(shù)模塊:使能 CRC 時鐘,初始化延時函數(shù)和 UART。

int main(void)
{
    RCC_ClocksTypeDef clocks; // 系統(tǒng)時鐘結(jié)構(gòu)體

    // 1. 使能CRC時鐘(AHB總線)
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);

    // 2. 基礎(chǔ)初始化:延時函數(shù)、串口
    delay_init();
    UART_Configuration(115200);

    // 3. 獲取并打印系統(tǒng)時鐘信息
    RCC_GetClocksFreq(&clocks);
    printf("nSYSCLK: %3.1fMhz, HCLK: %3.1fMhz, PCLK1: %3.1fMhz, PCLK2: %3.1fMhz, ADCCLK: %3.1fMhzn",
           (float)clocks.SYSCLK_Frequency / 1000000,
           (float)clocks.HCLK_Frequency / 1000000,
           (float)clocks.PCLK1_Frequency / 1000000,
           (float)clocks.PCLK2_Frequency / 1000000,
           (float)clocks.ADCCLK_Frequency / 1000000);

    // 4. 打印測試提示
    printf("CRC Different Mode Test.n");

    // 5. 執(zhí)行CRC測試
    CRC_DifferentModeTest();

    // 6. 主循環(huán)(保持程序運(yùn)行)
    while (1);
}

?獲取并輸出系統(tǒng)時鐘頻率信息。

?輸出測試提示信息。

?調(diào)用CRC_DifferentModeTest函數(shù)進(jìn)行 CRC 測試。

?進(jìn)入無限循環(huán),保持程序運(yùn)行。

6 下載驗(yàn)證

6.1 CRC_DifferentCrcMode例程

程序啟動階段

?串口輸出系統(tǒng)時鐘信息:程序啟動后,會通過串口輸出系統(tǒng)時鐘的相關(guān)頻率信息,包括 SYSCLK、HCLK、PCLK1、PCLK2 和 ADCCLK 的頻率,幫助確認(rèn)系統(tǒng)時鐘配置是否正確。

?顯示測試提示信息:緊接著輸出測試提示信息,表明開始進(jìn)行不同模式的 CRC 測試。

CRC 測試階段

?遍歷不同 CRC 模式進(jìn)行測試:程序會依次對多種 CRC 模式(如 CRC_16_IBM、CRC_16_MAXIM 等)進(jìn)行測試。

?輸出測試結(jié)果:對于每種 CRC 模式,會計(jì)算給定數(shù)據(jù)(Buff數(shù)組)的 CRC 值,并將其與預(yù)設(shè)的預(yù)期結(jié)果進(jìn)行比較。

······計(jì)算結(jié)果正確:若計(jì)算得到的 CRC 值與預(yù)期結(jié)果一致,串口會輸出相應(yīng)模式的測試結(jié)果為 “Right”。

······計(jì)算結(jié)果錯誤:若計(jì)算得到的 CRC 值與預(yù)期結(jié)果不一致,串口會輸出相應(yīng)模式的測試結(jié)果為 “Error”,并顯示該模式下的預(yù)期結(jié)果。

程序持續(xù)運(yùn)行

進(jìn)入無限循環(huán):完成所有 CRC 模式的測試后,程序會進(jìn)入無限循環(huán),保持運(yùn)行狀態(tài)。

wKgZO2g3zIOALurWAALJo7Y_cW8469.png

WIZnet 是一家無晶圓廠半導(dǎo)體公司,成立于 1998 年。產(chǎn)品包括互聯(lián)網(wǎng)處理器 iMCU?,它采用 TOE(TCP/IP 卸載引擎)技術(shù),基于獨(dú)特的專利全硬連線 TCP/IP。iMCU? 面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。

WIZnet 在全球擁有 70 多家分銷商,在香港、韓國、美國設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營銷。

香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國和日本除外)。

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    204

    瀏覽量

    30112
  • 循環(huán)冗余校驗(yàn)

    關(guān)注

    0

    文章

    8

    瀏覽量

    6671
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    從原理到代碼理解CRC循環(huán)冗余校驗(yàn)

    本文詳細(xì)介紹了CRC循環(huán)冗余計(jì)算的數(shù)學(xué)原理,算法中使用的參數(shù)說明,并以Modbus協(xié)議中的CRC-16算法為例,進(jìn)行手算驗(yàn)證,同時提供Lab
    的頭像 發(fā)表于 01-29 09:00 ?3111次閱讀
    從原理到代碼理解<b class='flag-5'>CRC</b><b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>

    PSoC 4 循環(huán)冗余校驗(yàn) (CRC)

    循環(huán)冗余校驗(yàn) (CRC) 組件的默認(rèn)用途是根據(jù)任意長度的串行比特流計(jì)算 CRC。在數(shù)據(jù)時鐘的上升
    發(fā)表于 07-04 11:30

    CRC循環(huán)冗余校驗(yàn)的算法

    想問下51單片機(jī)和所有嵌入式中一個很基本也很常見的問題,CRC循環(huán)冗余校驗(yàn)的算法中生成多項(xiàng)式為什么要那樣?。ㄓ袀€生成多項(xiàng)式的表格),如果信息段中一位或多位傳輸錯誤,
    發(fā)表于 01-21 21:02

    循環(huán)冗余校驗(yàn)CRC)算法入門引導(dǎo)

    循環(huán)冗余校驗(yàn)CRC)算法入門引導(dǎo)
    發(fā)表于 08-17 12:40

    如何利用循環(huán)冗余校驗(yàn)CRC計(jì)算單元進(jìn)行傳輸數(shù)據(jù)的校驗(yàn)

    循環(huán)冗余校驗(yàn)CRC計(jì)算單元是什么?如何利用循環(huán)
    發(fā)表于 12-15 06:04

    循環(huán)冗余校驗(yàn)碼---CRC

    循環(huán)冗余校驗(yàn)碼---CRC碼   二進(jìn)制信息位串沿一條信號線逐位在部件之間或計(jì)算機(jī)之間傳送稱為串行傳送。
    發(fā)表于 10-13 16:52 ?7307次閱讀
    <b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>碼---<b class='flag-5'>CRC</b>碼

    STM32L4循環(huán)冗余校驗(yàn)模塊(CRC)介紹

    STM32L4循環(huán)冗余校驗(yàn)模塊(CRC)介紹 有興趣的可以參考下
    發(fā)表于 12-25 10:38 ?27次下載

    循環(huán)冗余校驗(yàn)奇偶校驗(yàn)累加和校驗(yàn)等知識分享

    CRC校驗(yàn)循環(huán)冗余校驗(yàn))是數(shù)據(jù)通訊中最常采用的校驗(yàn)方式。在嵌入式軟件開發(fā)中,經(jīng)常要用到
    的頭像 發(fā)表于 11-08 09:31 ?9078次閱讀
    <b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>奇偶<b class='flag-5'>校驗(yàn)</b>累加和<b class='flag-5'>校驗(yàn)</b>等知識分享

    crc循環(huán)冗余校驗(yàn)碼算法

     循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check, CRC)是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包或電腦文件等數(shù)據(jù)產(chǎn)生簡短固定位數(shù)校驗(yàn)碼的一種散
    發(fā)表于 12-04 10:11 ?2.4w次閱讀
    <b class='flag-5'>crc</b><b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>碼算法

    PIC24F系列參考手冊之可編程循環(huán)冗余校驗(yàn)CRC

    本文主要介紹了PIC24F系列參考手冊之可編程循環(huán)冗余校驗(yàn)CRC)。
    發(fā)表于 06-25 03:20 ?0次下載
    PIC24F系列參考手冊之可編程<b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>(<b class='flag-5'>CRC</b>)

    CRC校驗(yàn) 、STM32中CRC計(jì)算單元、 CRC應(yīng)用

    CRC校驗(yàn)、STM32中CRC計(jì)算單元、CRC應(yīng)用
    的頭像 發(fā)表于 03-04 13:54 ?6746次閱讀

    Verilog數(shù)字系統(tǒng)基礎(chǔ)設(shè)計(jì)中的循環(huán)冗余校驗(yàn)

    CRC循環(huán)冗余校驗(yàn)CRC介紹 臨時“插播”,后面有實(shí)例。 CRC(Cyclic Redun
    的頭像 發(fā)表于 08-17 17:08 ?7090次閱讀

    CRC循環(huán)冗余校驗(yàn)簡介

    CRC 是Cyclic Redundancy Check的縮寫,循環(huán)冗余校驗(yàn),用于校驗(yàn)數(shù)據(jù)傳輸?shù)耐暾浴R话闱闆r下在數(shù)據(jù)發(fā)送前
    的頭像 發(fā)表于 04-24 13:04 ?8389次閱讀
    <b class='flag-5'>CRC</b><b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>簡介

    32位可編程循環(huán)冗余校驗(yàn)(CRC)

    電子發(fā)燒友網(wǎng)站提供《32位可編程循環(huán)冗余校驗(yàn)(CRC).pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:22 ?0次下載
    32位可編程<b class='flag-5'>循環(huán)</b><b class='flag-5'>冗余</b><b class='flag-5'>校驗(yàn)</b>(<b class='flag-5'>CRC</b>)

    CRC循環(huán)冗余校驗(yàn))應(yīng)用舉例

    CRC循環(huán)冗余校驗(yàn))應(yīng)用舉例
    的頭像 發(fā)表于 05-16 16:12 ?1928次閱讀