日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

我也聊聊串口通信协议:数据包校验与常用校验算法

發(fā)布時(shí)間:2025/3/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我也聊聊串口通信协议:数据包校验与常用校验算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本篇博客主要記載了我對(duì)數(shù)據(jù)校驗(yàn)過程以及奇偶校驗(yàn)的理解。

1.數(shù)據(jù)校驗(yàn)過程

由于數(shù)據(jù)傳輸距離的因素影響,計(jì)算機(jī)和受控設(shè)備間的通信數(shù)據(jù)就常常出現(xiàn)不可預(yù)知的錯(cuò)誤。為了防止這些錯(cuò)誤所帶來的影響,一般在通信時(shí)采取數(shù)據(jù)校驗(yàn)方法,而奇偶校驗(yàn)和循環(huán)冗余碼校驗(yàn)就是其中最常用的校驗(yàn)算法。串行數(shù)據(jù)在傳輸過程中,由于干擾可能引起信息的錯(cuò)誤,出現(xiàn)“誤碼”。我們把如何發(fā)現(xiàn)傳輸中的錯(cuò)誤,叫“檢碼”;發(fā)現(xiàn)錯(cuò)誤后,如何進(jìn)行修訂,叫“檢錯(cuò)”。 之前,就有過提示,為了保證數(shù)據(jù)在傳輸過程中不會(huì)出錯(cuò),每個(gè)數(shù)據(jù)包后面一般都會(huì)加上校驗(yàn)字節(jié)。

校驗(yàn)過程是發(fā)送端(TX端)和接收端(RX端)共同完成的過程。如上圖所示,首先,TX端按照用戶層協(xié)議(數(shù)據(jù)包格式)將數(shù)據(jù)根據(jù)校驗(yàn)算法計(jì)算出TX校驗(yàn)字節(jié),并將TX校驗(yàn)字節(jié)按照協(xié)議放在數(shù)據(jù)包的指定位置。RX端接收到數(shù)據(jù)包后,在指定位置取出TX校驗(yàn)字節(jié),同時(shí),再將接收到的數(shù)據(jù)按規(guī)定方式計(jì)算出RX校驗(yàn)字節(jié),如果RX校驗(yàn)字節(jié)與接收到的TX校驗(yàn)字節(jié)相等,則說明數(shù)據(jù)包是有效的,否則就應(yīng)該放棄該數(shù)據(jù)包。

2.簡單粗暴地奇偶校驗(yàn)

最簡單粗暴的方法就是“奇偶校驗(yàn)”了,即在傳輸字符的各位之外,再傳送一位奇/偶校驗(yàn)位。可采用的策略分為奇校驗(yàn)和偶校驗(yàn)。

2.1 奇校驗(yàn)

所有傳送的位數(shù)(含字符的個(gè)數(shù)位和校驗(yàn)位)中,“1”的個(gè)數(shù)為奇數(shù),如1 0110,0101;0 0110,0001

2.2 偶校驗(yàn)

所有傳送的位數(shù)(含字符的各位數(shù)和檢驗(yàn)位)中,“1”的個(gè)數(shù)為偶數(shù),如1 0100,0101;0 0100,0001 奇偶校驗(yàn)?zāi)軌驒z測(cè)出信息傳輸過程中的部分錯(cuò)誤的數(shù)據(jù)(一位錯(cuò)誤的代碼能夠檢出,兩位及以上的錯(cuò)誤代碼不能檢出)。奇偶檢驗(yàn)有一個(gè)劣勢(shì),就是他只能發(fā)現(xiàn)錯(cuò)誤,而不能糾正錯(cuò)誤;一旦發(fā)現(xiàn)錯(cuò)誤,那么沒辦法,只能重發(fā)。但是由于奇偶校驗(yàn)使用起來非常簡單,仍然被廣泛使用。但是仍存在一些良好的矯正錯(cuò)誤數(shù)據(jù)的方法,并具有自動(dòng)訆錯(cuò)能力,如循環(huán)冗余碼(CRC)檢錯(cuò)等。

3.異或校驗(yàn)

異或校驗(yàn)方法也是非常簡單,而且非常通用,雖然使用該方法校驗(yàn)后仍存在出錯(cuò)的可能,但是因?yàn)楫惢蛩惴ǚ浅:唵?#xff0c;編程毫不費(fèi)力,一般新手都用這種方法。 之前介紹過的NMEA-0183無線通信協(xié)議是在異或算法基礎(chǔ)之上進(jìn)行了一定的改進(jìn)。能夠理解異或運(yùn)算,并使用好異或校驗(yàn)算法,會(huì)使得數(shù)據(jù)處理編程變得輕松容易。

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

循環(huán)冗余碼校驗(yàn)(Cyclical Redundancy Check, CRC)是利用除法和余數(shù)的原理來做錯(cuò)誤偵測(cè)(Error Detecting)的。實(shí)際應(yīng)用時(shí),發(fā)送裝置計(jì)算出CRC值并隨數(shù)據(jù)一同發(fā)送給接收裝置RX,RX對(duì)收到的數(shù)據(jù)重新計(jì)算CR并與收到的CRC值相比較,若兩個(gè)CRC值不同,則說明數(shù)據(jù)通信出現(xiàn)了錯(cuò)誤,該數(shù)據(jù)包應(yīng)該舍棄不用。 在遠(yuǎn)距離數(shù)據(jù)通訊中,為確保高效而無差錯(cuò)的傳送數(shù)據(jù),必須對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)控制,而CRC是對(duì)一個(gè)傳送數(shù)據(jù)塊進(jìn)行校驗(yàn),是一種非常高效的差錯(cuò)控制方法。目前,主流的CRC可以分為以下幾個(gè)標(biāo)準(zhǔn):CRC-12碼;CRC-16碼;CRC-CCITT碼;CRC-32碼。 CRC-12碼通常用來傳送6-bit字符串。CRC-16及CRC-CCITT碼則用來傳送8-bit字符,其中CRC-16為美國采用,而CRC-CCITT為歐洲國家所采用。CRC-32碼用途有限。 在數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通信領(lǐng)域,CRC無處不在:著名的通信協(xié)議X.25的FCS(幀檢錯(cuò)序列)采用的是CRC/CCITT,ARJ/LHA等壓縮工具軟件采用的是CRC32,磁盤驅(qū)動(dòng)器讀寫采用的日式CRC16,通常用到的圖像存儲(chǔ)格式GIF/TIFF等也是采用CRC作為檢錯(cuò)手段的。

4.1 CRC-16的生成過程

CRC-16碼由兩個(gè)字節(jié)構(gòu)成,在開始時(shí)CRC寄存器的每一位都預(yù)置為1,然后把CRC寄存器與8-bit的數(shù)據(jù)進(jìn)行異或,之后對(duì)CRC寄存器從高位向低位進(jìn)行移位,在最高位(MSB)的位置補(bǔ)零,而最低位(LSB,移位后已經(jīng)被移除CRC寄存器)如果是1,則把寄存器與預(yù)定義的多項(xiàng)式碼進(jìn)行異或,否則如果LSB為零,就無需進(jìn)行進(jìn)行異或。重復(fù)上述的由高至低的移位8次,第一個(gè)8-bit數(shù)據(jù)處理完畢,用此時(shí)CRC寄存器的值與下一個(gè)8-bit數(shù)據(jù)異或并進(jìn)行如前一個(gè)8-bit數(shù)據(jù)似的8次移位。所有的字符處理完成后CRC寄存器的值即為最終的CRC值。 下面為CRC的計(jì)算過程: (1)設(shè)置CRC寄存器,并給其賦值FFFF(hex); (2)將數(shù)據(jù)的第一個(gè)8-bit字符與16位CRC寄存器的低8位進(jìn)行異或,并把結(jié)果存入CRC寄存器; (3)CRC寄存器向右移一位,MSB補(bǔ)零,移出并檢查LSB; (4)如果LSB為0,重復(fù)第三步;若LSB為1,CRC寄存器與多項(xiàng)式碼相異或; (5)重復(fù)第3與第4步直到8次移位全部完成。此時(shí),一個(gè)8-bit數(shù)據(jù)處理完畢; (6)重復(fù)第2至第5步直到所有數(shù)據(jù)全部處理完成; (7)最終CRC寄存器的內(nèi)容即為CRC值。

4.2 如何理解CRC碼?

CRC校驗(yàn)是一種多項(xiàng)式除法:將需要發(fā)送的數(shù)據(jù)包當(dāng)做一個(gè)很大的二進(jìn)制數(shù),用它來除以一個(gè)固定的二進(jìn)制數(shù),所得到的余數(shù)即是所求得的CRC校驗(yàn)碼。

總結(jié)

以上是生活随笔為你收集整理的我也聊聊串口通信协议:数据包校验与常用校验算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 女人天堂av | 在线国产精品一区 | 啪啪av导航 | 亚洲精品永久免费 | 综合狠狠开心 | 国产白袜脚足j棉袜在线观看 | 国产一区免费在线观看 | 国产精品88久久久久久妇女 | 国产成人h | 超碰免费成人 | 少妇免费视频 | 久久亚洲AV无码精品 | 亚洲爱视频| 国产老女人精品毛片久久 | 刘亦菲一区二区三区免费看 | 一区二区三区视频在线观看免费 | 中文字幕2区 | 激情小视频在线观看 | 午夜免费视频观看 | 亚洲自拍色 | 亚洲涩涩涩 | 牲欲强的熟妇农村老妇女视频 | 欧美a在线观看 | 亚洲欧美网 | 哪里可以免费看av | 午夜毛片视频 | 亚洲一区二区久久 | 与亲女洗澡时伦了毛片 | 成人在线综合 | 91蜜桃婷婷狠狠久久综合9色 | 黄页网址大全免费观看 | 女人18岁毛片 | 精品动漫一区二区 | 日本一区二区久久 | 丝袜熟女一区二区 | 色综合久久天天综合网 | 久久泄欲网 | 99嫩草| 国产精品黄色大片 | 欧美午夜精品久久久久久人妖 | 中文成人无字幕乱码精品区 | 少妇户外露出[11p] | 国产精品无码999 | 男男做性免费视频网 | 又黄又爽在线观看 | 在线美女av | 免费黄色小说视频 | 麻豆av在线免费观看 | 激情自拍视频 | 男女日批在线观看 | 亚欧美色图 | 欧美三级午夜理伦三级 | 欧美vieox另类极品 | 亚洲gay视频| 黄a网站| 亚洲色综合| 日韩人妻精品一区二区三区 | 美女黄站| 中日黄色片 | 中文字幕av一区二区三区 | 91小宝寻花一区二区三区 | 无码精品国产一区二区三区 | 欧美一级淫片bbb一84 | 麻豆视频免费 | 成熟的女同志hd | 久久99久久99精品蜜柚传媒 | 永久黄色网址 | 欧美壮男野外gaytube | 精品一区二区三区无码按摩 | 麻豆黄色网 | 激情久久免费视频 | 国产乱码精品一区二三区蜜臂 | 青青草在线免费观看 | jizz色 | 黄色av一区二区 | 性欧美视频在线观看 | 在线黄色观看 | 国产aⅴ一区二区三区 | 91网址在线观看 | 永久在线 | 亚洲精品中文无码AV在线播放 | 亚洲婷婷久久综合 | 老师的肉丝玉足夹茎 | 在线中文字幕亚洲 | 中文字幕超碰在线 | 欧美日韩二区三区 | 国产色图视频 | 91禁蘑菇在线看 | 精品无码一区二区三区爱欲 | 久久精品无码人妻 | 狠狠婷婷 | 欧美精品一区二区蜜臀亚洲 | 激情视频免费在线观看 | 欧美成人免费看 | 久草福利在线 | 国产精品乱 | 影音先锋二区 | av永久免费在线观看 | 香蕉一区二区 |