久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2808|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

CRC校通用型驗算法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:505284 發(fā)表于 2020-9-26 23:41 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
CRC校通用型驗算法
1、CRC校驗簡單原理
CRC校驗方法是在通訊領(lǐng)域應(yīng)用極廣的一類數(shù)據(jù)校驗方法,常用的包括CRC8、CRC16、CRC32(數(shù)字為生成多項式Gx-1),在嵌入式領(lǐng)域應(yīng)用較多(DS18B20溫度傳感器正負(fù)溫度精度校驗(CRC查表法)),其校驗手段極為有效,但是其本生并不具有糾錯能力。假設(shè)有目前有效數(shù)據(jù)Kx(信息碼)有K位,生成多項式為Gx,經(jīng)過有限次取模運(yùn)算(等同于XOR,不借位的模2運(yùn)算),求得冗余碼(FCS序列)有N位,則最終傳輸數(shù)據(jù)為Tx=Kx+N,而接收方在收到數(shù)據(jù)后用Tx%Gx(有限次XOR)是否為0判斷數(shù)據(jù)傳輸?shù)恼_性。
具體CRC校驗原理,還可以參看其他博客或者百度了解學(xué)習(xí)。
2、算法
經(jīng)過上述的簡單說明,應(yīng)該知道可以引入Kx、Gx、Tx、Rx,采用最高位對其(Gx補(bǔ)償)直接計算法,對數(shù)據(jù)比特串較短、時間要求不高的可以采用,使用必須要滿足以下要求:
Gx補(bǔ)償位數(shù)滿足:Gx*2^(sizeof(Kx)-sizeof(Gx))。
運(yùn)算次數(shù)滿足:sizeof(Kx)-sizeof(Gx)。
CRC進(jìn)行XOR運(yùn)算滿足:CRC & (2^(sizeof(Kx)-1)。
Rx還原滿足:CRC/(2^(sizeof(Kx)-sizeof(Gx)+1)。
其中sizeof表示取得元素在二進(jìn)制下位長。
3、應(yīng)用效果
(1) 測試數(shù)據(jù):
Kx=110011,Gx=11001,Rx=1001
Kx=101001,Gx=1101,Rx=001
(2) 運(yùn)行效果   
                        
                                         圖3.1        測試1
4、說明
首先,為什么我要大費(fèi)周章的開發(fā)這樣一個程序呢?原因其實(shí)很簡單,網(wǎng)絡(luò)上關(guān)于CRC校驗的原代碼的確是很多,原理更是不計其數(shù),但是有三點(diǎn)需要注意,其一,CRC校驗是有很多標(biāo)準(zhǔn)(CRC—16/IBM、CRC-8等)的,而這些標(biāo)準(zhǔn)的區(qū)別就在于采用的生成多項式不同,比如說CRC-8的Gx為:X^8+X^2+X+1(100000101,注意最高位和最低位為1),這就會造成你的直接引用卻無法得到預(yù)期的結(jié)果,在者CRC校驗本身并不難,而難的是如何用計算機(jī)實(shí)現(xiàn),因為你要考慮很多因素,最多的就是數(shù)據(jù)邊界問題(char類型數(shù)據(jù)在Keil 5中容納數(shù)據(jù)為255),這個自己體會了;其二,當(dāng)你去不斷參考別人的經(jīng)驗代碼的時候,你會發(fā)現(xiàn)這樣一句話“CRC為嵌入式開發(fā)人員的法寶之一,但僅有少數(shù)人能掌握其核心算法!”,真的有這么難嗎,前輩的答案顯然是正確的,當(dāng)你瀏覽很多個碼齡超過4年以上的前輩的代碼后你會發(fā)現(xiàn),難于理解,因為數(shù)學(xué)思維極強(qiáng),最后結(jié)果就會是直接不想看甚至放棄了,但是我編寫的則不同,簡單,易于理解,起源于謝希仁計網(wǎng),通用型極高;其三,純屬個人愛好,還有就是特別討厭直接引用別人代碼,而不知所云(可能是個人強(qiáng)迫癥),以及編寫過后對收獲成果的一種成就感促使我這么做。
還有一點(diǎn)需要說明的是,從圖3.2可以看出,最后的Tx是錯誤的,原因是C98編譯器只統(tǒng)計數(shù)據(jù)的有效位,原Rx=001,有效數(shù)據(jù)為1,所以00被丟棄了,造成Kx%Gx出錯,這個是我故意留于檢測用,改正僅需加入2個0即可。
最后,我的成功是站在巨人的肩膀上的,我姑且這么說吧,模型參考了一位前輩的,但是前輩的核心思想有問題,其核心是自己總結(jié)的,這篇博客將會是我在CSDN的“LHC_黎明之光”博客號首次原創(chuàng)文章,前路漫漫,望我們一同成長學(xué)習(xí)吧!如果發(fā)現(xiàn)錯誤的話,歡迎給我留言哦。

以上文檔: 通用CRC校驗算法.docx (110.84 KB, 下載次數(shù): 8)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区二区视频 | 日韩欧美视频网站 | 一区二区精品 | 午夜免费视频观看 | 国产精品美女www爽爽爽 | 精品一二区 | 国产日韩精品久久 | 国产精品免费在线 | 久热国产精品视频 | 国产在线精品一区二区三区 | 日韩中文字幕 | www.黄色片视频 | 麻豆久久久久久 | 亚洲成人第一页 | 亚洲乱码一区二区三区在线观看 | 九九热在线视频 | 9999精品视频 | 亚洲五码在线 | 欧美一级毛片久久99精品蜜桃 | 9久久婷婷国产综合精品性色 | 国产欧美日韩一区二区三区在线观看 | 国产在线视频一区二区 | 久久国产精品一区二区三区 | 69性欧美高清影院 | 国产一区二区三区在线 | 有码一区| 在线成人一区 | 9久久婷婷国产综合精品性色 | 亚洲视频精品在线 | 中文字幕精品视频 | 亚洲午夜视频 | 久久久久99| 亚洲国产高清高潮精品美女 | 日韩二| 欧美中文字幕 | 久久久久久久久久久国产 | 久草网址 | 一级特黄在线 | 亚洲精品一区二区网址 | 国产亚洲第一页 | 久久出精品 |