国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

累加和校驗算法的實現

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

掃碼添加小助手

加入工程師交流群

前言

因為外界總會對電路存在或多或少的干擾,對于數字信號,很可能導致傳輸的數據出現千差萬別。

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

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

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

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

累加和校驗算法的實現

發送方:

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

接收方:

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

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

還是舉個例子:

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

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

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

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

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

責任編輯:lq

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

    關注

    5198

    文章

    20445

    瀏覽量

    334008
  • 累加
    +關注

    關注

    0

    文章

    6

    瀏覽量

    6950
  • 校驗算法
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6737

原文標題:累加和校驗算法在嵌入式中的應用~

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    一文解讀CRC校驗

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

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

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

    UART偶校驗和奇校驗介紹

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

    CS校驗原理與應用

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

    CRC校驗的原理和應用

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

    CRC校驗的本質和物理意義

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

    電能質量在線監測裝置自診斷功能的軟件校驗具體是如何實現的?

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

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

    ,Xi、Yi、rki為字,i=0,1,2,…,31。則本算法的加密實現為: 本算法的解密實現與加密實現結構是相同的,不同的只是提供的輪
    發表于 10-30 08:10

    AES加解密算法邏輯實現及其在蜂鳥E203SoC上的應用介紹

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

    針對AES算法的安全防護設計

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

    基于E203 RISC-V的音頻信號處理系統 -協處理器的乘累加過程

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

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

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

    相位累加器的實現原理

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

    基于Verilog語言實現CRC校驗

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