91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

累加和校驗算法的實現(xiàn)

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 作者:嵌入式ARM ? 2021-03-04 15:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

因為外界總會對電路存在或多或少的干擾,對于數(shù)字信號,很可能導(dǎo)致傳輸?shù)臄?shù)據(jù)出現(xiàn)千差萬別。

對于很多需要傳輸數(shù)據(jù)的場合,尤其是一些數(shù)據(jù)可能會影響一些硬件的動作(諸如嵌入式的一些設(shè)備、機器人等),錯誤的數(shù)據(jù)可能會帶來一些隱性風(fēng)險,想想都可怕。

由于本人是嵌入式相關(guān)領(lǐng)域的,平時玩的都是單片機,當(dāng)然單片機的性能千差萬別,不過很多的性能都只能說是勉強夠用,畢竟成本考慮。

所以今天的校驗算法,比較簡單,但是有效,尤其是一些性能一般的硬件。

說道今日主角:累加和校驗算法,又名CheckSum算法。至于出處,這里就不考究了。

累加和校驗算法的實現(xiàn)

發(fā)送方:

對要數(shù)據(jù)累加,得到一個數(shù)據(jù)和,對和求反,即得到我們的校驗值。然后把要發(fā)的數(shù)據(jù)和這個校驗值一起發(fā)送給接收方。

接收方:

對接收的數(shù)據(jù)(包括校驗和)進行累加,然后加1,如果得到0,那么說明數(shù)據(jù)沒有出現(xiàn)傳輸錯誤。

注意,此處發(fā)送方和接收方用于保存累加結(jié)果的類型一定要一致,否則加1就無法實現(xiàn)溢出從而無法得到0,校驗就會無效。

還是舉個例子:

發(fā)送方:要發(fā)送0xA8,0x50,我們使用unsigned char(8位)來保存累加和,即為0xF8(0b11111000),取反得到校驗和為0x07(0b00000111)。然后將這三個數(shù)據(jù)發(fā)送出去。

接收方:如果接收正確,這三個數(shù)據(jù)的累加和就是(0b11111111),此時加1,則得到的結(jié)果為0(實際得到的應(yīng)該是0b100000000,但是由于是使用unsigned char(8位)來保存累加和,所以高位被截取掉,只剩下了低八位的8個0).

由上面的例子,我們可以知道算法的目的是:使累加和和校驗值相加得到一個二進制下每一位都是1的結(jié)果,這個結(jié)果很明顯很好處理,這種算法實現(xiàn)起來也很簡單,下面給出C語言的代碼示例。

發(fā)送方:以下是如何得到校驗值的代碼,結(jié)果就是我們想要的校驗值。

接收方:輸入已包含發(fā)送發(fā)發(fā)來的校驗值,如果函數(shù)返回的值如果是0,說明數(shù)據(jù)正確。

責(zé)任編輯:lq

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

    關(guān)注

    5200

    文章

    20458

    瀏覽量

    334364
  • 累加
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6950
  • 校驗算法
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6738

原文標(biāo)題:累加和校驗算法在嵌入式中的應(yīng)用~

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    【量產(chǎn)燒錄】Verify通過還報錯?拆一次CRC校驗實現(xiàn)機制就明白問題在哪

    文件本身有誤、或者燒錄器在解析hex時發(fā)生位寬解析錯誤、或者地址映射理解偏差,那么燒錄和校驗會基于同一個錯誤的數(shù)據(jù)源進行。兩個錯誤互相對比,結(jié)果當(dāng)然“一致”,結(jié)論是“PASS”,但芯片里的東西根本就是錯
    發(fā)表于 02-13 10:10

    一文解讀CRC校驗

    校驗的過程是什么? 發(fā)送方根據(jù)發(fā)送報文,計算出CRC值。將原始信息和該CRC值一起發(fā)送給接收方。接收方根據(jù)原始信息,按照同樣的算法,計算CRC。如果計算的CRC值不正確的話,則表明在數(shù)據(jù)傳輸?shù)倪^程中
    發(fā)表于 01-26 07:20

    芯海1拖4金屬殼燒錄器按下燒錄按鍵時提示固件升級失敗

    有原廠的FAE嗎?我這芯海1拖4金屬殼燒錄器按下燒錄按鍵時提示固件升級失敗。升級后重啟,下載燒錄文件后燒錄數(shù)量和校驗和顯示正常,但按下燒錄鍵后提示固件升級失敗,斷電重啟,燒錄數(shù)量和校驗和就變成FFFF了,這是咋回事???
    發(fā)表于 01-23 10:33

    UART偶校驗和奇校驗介紹

    校驗校驗位使一幀數(shù)據(jù)中數(shù)據(jù)位和校驗位中“1”的總數(shù)為奇數(shù)。 偶校驗校驗位使一幀數(shù)據(jù)中數(shù)據(jù)位和校驗
    發(fā)表于 12-15 06:02

    CS校驗原理與應(yīng)用

    原理: CS校驗對數(shù)據(jù)塊中所有字節(jié)(或字)進行累加求和,最終結(jié)果取模(通常是模 256 或 65536)后取補碼(或直接截斷)作為校驗值。 例如:8位校驗和 = (所有字節(jié)之和) mo
    發(fā)表于 11-19 07:51

    CRC校驗的原理和應(yīng)用

    原理: CRC校驗將數(shù)據(jù)視為一個二進制多項式,用一個預(yù)先定義好的生成多項式(Generator Polynomial) 進行模2除法,得到的余數(shù)作為CRC校驗碼。 例如:數(shù)據(jù)多項式 ÷ 生成多項式
    發(fā)表于 11-14 06:48

    CRC校驗的本質(zhì)和物理意義

    校驗的數(shù)學(xué)本質(zhì) 1. 模2除法與多項式表示 Modbus RTU采用的CRC-16算法基于多項式除法運算,其核心特征包括: 生成多項式:0x8005(標(biāo)準(zhǔn)表示)或0xA001(查表法優(yōu)化) 初始值
    發(fā)表于 11-13 07:58

    電能質(zhì)量在線監(jiān)測裝置自診斷功能的軟件校驗具體是如何實現(xiàn)的?

    電能質(zhì)量在線監(jiān)測裝置自診斷的軟件校驗,核心是 基于電網(wǎng)物理規(guī)律、通信協(xié)議規(guī)范和算法執(zhí)行邏輯,設(shè)定 “預(yù)期規(guī)則”,通過對比實際運行數(shù)據(jù)與預(yù)期值的偏差 ,識別隱性故障(如參數(shù)漂移)、邏輯異常(如數(shù)據(jù)矛盾
    的頭像 發(fā)表于 11-06 10:44 ?761次閱讀

    SM4算法實現(xiàn)分享(一)算法原理

    ,Xi、Yi、rki為字,i=0,1,2,…,31。則本算法的加密實現(xiàn)為: 本算法的解密實現(xiàn)與加密實現(xiàn)結(jié)構(gòu)是相同的,不同的只是提供的輪
    發(fā)表于 10-30 08:10

    AES加解密算法邏輯實現(xiàn)及其在蜂鳥E203SoC上的應(yīng)用介紹

    這次分享我們會簡要介紹AES加解密算法的邏輯實現(xiàn),以及如何將AES算法做成硬件協(xié)處理器集成在蜂鳥E203 SoC上。 AES算法介紹 AES算法
    發(fā)表于 10-29 07:29

    針對AES算法的安全防護設(shè)計

    軟件中隨機延遲的使用通常被認(rèn)為是對抗側(cè)信道攻擊的一般對策,但隨機延遲不能阻止攻擊,只能讓攻擊變得復(fù)雜。因此基于蜂鳥E203平臺的軟硬件實現(xiàn)方式,我們的安全防護設(shè)計也會從軟件和硬件兩個方面進行聯(lián)合
    發(fā)表于 10-28 07:38

    基于E203 RISC-V的音頻信號處理系統(tǒng) -協(xié)處理器的乘累加過程

    。 硬件加速簡介 圖1 乘積累加運算單元 乘積累加運算單元電路,類似于DSP中的MAC指令,能夠快速的實現(xiàn) C=B+AB格式的運算功能 圖2 卷積運算單元 卷積運算電路,采用3個乘法器
    發(fā)表于 10-28 06:18

    用TXT編輯器打開十六進制文件,如何知道校驗和值?

    我從客戶那邊得到了一個 pmg1-s3 十六進制文件,我想把它和校驗和提供給集成電路編程工廠。 1.用 TXT 編輯器打開十六進制文件,如何知道校驗和值? 附帶的是十六進制文件。 2. 另一個問題是
    發(fā)表于 05-23 07:49

    相位累加器的實現(xiàn)原理

    標(biāo)題中所提到的DDS,我感覺這兩個放一起也可以,因為DDS的核心思想就是使用的相位累加器。那么這玩意兒的作用是啥?簡單來說就是在FPGA工作主頻之下,可以生成任意頻率的周期信號出來。
    的頭像 發(fā)表于 05-16 13:56 ?1125次閱讀
    相位<b class='flag-5'>累加</b>器的<b class='flag-5'>實現(xiàn)</b>原理

    基于Verilog語言實現(xiàn)CRC校驗

    CRC即循環(huán)冗余校驗碼:是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯功能,對數(shù)據(jù)進行多項式計算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類似的
    的頭像 發(fā)表于 03-24 10:36 ?2568次閱讀
    基于Verilog語言<b class='flag-5'>實現(xiàn)</b>CRC<b class='flag-5'>校驗</b>