CRC演算法
- CRC16-MODBUS
- 多項式碼:A001(8005的二進位制反轉後結果,所謂反轉即是二進位制碼倒轉一遍,例如8005:1000000000000101,反轉後A001:1010000000000001)
- unsigned int CRC16(unsigned char *buf,unsigned char length)//CRC16計算
- {
- unsigned char i;
- unsigned int crc=0xFFFF;
- while(length--)
- for(crc^=*(buf++),i=0;i<8;i++)
- crc=(crc&0x0001)?(crc>>1)^0xA001:crc>>1;
- return crc;
- }
演算法:
;1) 設定1個16 位的暫存器(高位元組和低位元組)稱此暫存器為 CRC暫存器。填充為: 0FFFFH
;2) 把(待處理的)第一位元組資料與 CRC暫存器的低位元組相異或, 結果放於 CRC暫存器。
;3) 把 CRC 暫存器的內容右移一位,最高位(Bit15)填0, 移出位(Bit0)在標誌暫存器的C內。
;4) 如果移出位為 0, 重複第 3 步 ( 再次右移一位); 如果移出位為 1, CRC 暫存器與多項式A001 ( 1010 0000 0000 0001) 進行異或。
;5) 重複步驟 3 和步驟 4, 直到右移 8 次,這樣一個位元組資料處理結束。
;6) 重複步驟 2 到步驟 5, 進行下一個位元組的處理。
;7) 將所有位元組資料按上述步驟計算完成後,得到的16位CRC暫存器的高、低位元組進行交換。
;8) 最後得到的 CRC暫存器內容即為 CRC碼。
相關文章
- CRC-32 校驗演算法演算法
- CRC演算法原理、推導及實現演算法
- C#實現的CRC32演算法C#演算法
- loveasm的crackme演算法分析-----CRC32演算法的妙用ASM演算法
- CRC簡介
- CRC校驗查表法原理及實現(CRC-16)
- CRC校驗原理
- 【CRC筆記】CRC-16 MAXIM-DOW C語言實現筆記C語言
- CRC原理及實現
- CRC的校驗原理
- CRC32碰撞的實現
- 常見的校驗演算法crc(32),md5(128),sha1(160)演算法
- 使用 Rust + WebAssembly 編寫 crc32RustWeb
- JS實現 CRC加密 ModbusCRC16JS加密
- USB中TOKEN的CRC5與CRC16校驗(神奇的工具生成Verilog實現)
- 計算 CRC32 的逆函式函式
- DL 451-1991 迴圈式遠動規約(CDT)CRC8校驗碼演算法演算法
- 求助:EXCEL,VB,實現 CRC16 校驗Excel
- 在ossphpsdk進行crc64校驗PHP
- 【CRC校驗方法】+【FPGA實現(傳送端)】FPGA
- 一場 Kafka CRC 異常引發的血案Kafka
- PHP 每日一函式 — 字串函式 crc32 ()PHP函式字串
- pandas 處理資料和crc16計算
- 【A GUIDE TO CRC ERROR DETECTION ALGORITHM】 (譯文3-Todo)GUIIDEErrorGo
- win10介面crc錯誤計數注意怎麼處理_win10介面crc錯誤計數的解決方法Win10
- 資料鏈路層迴圈冗餘(CRC)檢驗
- CRC冗餘校驗碼的介紹和實現
- 乙太網MAC層處理CRC的兩種方法Mac
- CRC(迴圈冗餘校驗)和CBC(密碼塊鏈)密碼
- CRC校驗原理簡介及C程式碼實現說明C程式
- 基於crc32實現的記憶體的程式碼校驗記憶體
- 解除CacheX for Internet Explorer V 4.00的crc校驗及破解 (19千字)
- CRC:2010-2015智慧手機全球銷量將達25億部
- Win10系統使用魯大師掃硬碟提示ultra dma crc錯誤計數如何解決Win10硬碟
- 【GC】Grid Control 11gR1安裝過程中遭遇ERROR: invalid entry CRCGCError
- 痞子衡嵌入式:在IAR開發環境下為工程開啟CRC完整性校驗功能的方法開發環境
- 【演算法】KMP演算法演算法KMP
- 演算法-回溯演算法演算法