亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        CRC校驗算法的設(shè)計與實現(xiàn)

        2019-09-10 13:50:50崔彥坤馬萌
        計算機(jī)與網(wǎng)絡(luò) 2019年1期

        崔彥坤 馬萌

        摘要:介紹了循環(huán)冗余校驗(CRC)算法的原理和循環(huán)冗余校驗算法設(shè)計分析過程,給出了使用查表法詳細(xì)的算法設(shè)計。描述了VEE可視化語言中使用的重要模塊及使用VEE語言實現(xiàn)CRC校驗算法的具體設(shè)計過程,并且給出了詳細(xì)的設(shè)計流程,該方法校驗速度非??欤岣吡擞嬎銠C(jī)網(wǎng)絡(luò)通信的速度和報文傳輸?shù)臏?zhǔn)確性,使用手動算法舉例驗證了該算法的準(zhǔn)確性。

        關(guān)鍵詞:循環(huán)冗余;CRC校驗;VEE可視化語言

        中圖分類號:TP316文獻(xiàn)標(biāo)志碼:A文章編號:1008-1739(2019)01-62-3

        0引言

        計算機(jī)串口通信中,為防止數(shù)據(jù)通信錯誤,一般采用奇偶校驗法和糾錯校驗法等方法進(jìn)行校驗。但在一些通信安全要求嚴(yán)格的場合,上述2種方法均不能滿足要求,需要采用CRC校驗原理進(jìn)行校驗。CRC校驗法是一種在數(shù)據(jù)通信和數(shù)據(jù)壓縮中廣泛使用的循環(huán)校驗法,以低出錯率保證數(shù)據(jù)的可靠無差錯傳輸,因此,已被標(biāo)準(zhǔn)化納入TCP/IP和其他協(xié)議的校驗中,并且遵循ISO/OSI標(biāo)準(zhǔn)工業(yè)現(xiàn)場總線通信(IEC61158)。

        隨著通信領(lǐng)域的快速發(fā)展,數(shù)據(jù)傳輸?shù)目煽啃燥@得尤為重要,為了保證數(shù)據(jù)在傳送過程中的正確無誤,不僅需要高可靠的硬件電路,同時還需要查錯檢查機(jī)制。CRC校驗法是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯校驗法,其特征是信息字段和校驗字段的長度可以任意選定,CRC校驗法也具有數(shù)據(jù)傳輸檢錯功能,對數(shù)據(jù)進(jìn)行多形式計算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性[1]。

        1 CRC校驗的原理

        CRC校驗原理實際上就是在一個P位二進(jìn)制數(shù)據(jù)序列之后附加一個r位二進(jìn)制檢驗碼,從而構(gòu)成一個總長度為n=P+r位的二進(jìn)制序列,附加在數(shù)據(jù)序列之后的這個校驗碼與數(shù)據(jù)序列的內(nèi)容之間存在著某種特定的關(guān)系[2]。如果因干擾原因,數(shù)據(jù)序列中的某一位或某些位發(fā)生錯誤,這種特定的關(guān)系就會被破壞,因此,通過檢查這一關(guān)系,就可以實現(xiàn)對數(shù)據(jù)正確性的檢查。

        CRC校驗就是一種被廣泛采用的錯誤檢驗編碼,是計算機(jī)網(wǎng)絡(luò)通信中運用最多的一種可靠性很高的檢錯編碼方式,是由分組線性碼的分支而來,有較少的冗余位,漏檢率很低,從而可以有效地提高傳輸速度。其二元碼組編碼簡單且誤判概率很低,在通信系統(tǒng)中得到了廣泛應(yīng)用。循環(huán)冗余校驗的算法實現(xiàn)包括硬件實現(xiàn)和軟件實現(xiàn),硬件實現(xiàn)速度很慢,軟件實現(xiàn)方法就相對較快[3],以太網(wǎng)就采用32位的循環(huán)冗余校驗編碼方式。

        2循環(huán)冗余校驗算法

        2.1 VEE可視化語言

        不同的語言對算法的實現(xiàn)過程都是一樣的,現(xiàn)在的編程語言種類繁多,由于通信設(shè)備對設(shè)備的控制及儀器之間處理要求比較嚴(yán)格,因此在數(shù)據(jù)校驗方面要求更為嚴(yán)格。VEE是一種主要用于儀器控制和測量處理的可視化編程語言,它集成儀器設(shè)備控制、高級數(shù)據(jù)采集及處理、數(shù)據(jù)分析顯示等眾多先進(jìn)技術(shù),可運行于Windows,SUN,Unix等多種平臺的測試軟件開發(fā)環(huán)境,其強(qiáng)大的使用圖形顯示以及便捷的程序設(shè)計能力,為過程控制及測試、測量自動化提供了很好的解決方案。它還適用于產(chǎn)品的跟蹤測試,包括從產(chǎn)品設(shè)計、生產(chǎn)及品質(zhì)控制等一系列的產(chǎn)品指導(dǎo)過程,其基本單元是一系列的功能控件,所有功能控件是在VEE下選取和創(chuàng)建的,連線完成一次程序[4],使用VEE自動測試語言設(shè)計測試平臺在測試領(lǐng)域已經(jīng)很普遍,本文主要使用VEE可視化語言實現(xiàn)CRC校驗算法的設(shè)計過程。

        2.2具體算法過程

        使用VEE語言設(shè)計CRC校驗過程中,先將字符串轉(zhuǎn)為以字節(jié)為單位的數(shù)組,分別輸出每個字節(jié)進(jìn)行逐一循環(huán)校驗,最終CRC校驗碼為“源CRC校驗碼”(初始為0,可視為0000,0000,0000,0000)的高8位左移后與本字節(jié)異或(異或結(jié)果設(shè)為)。查表取第位的值(這個值是16位的)與“源CRC校驗碼”異或后得出的16位是“CRC校驗碼”,將剛得出的“CRC校驗碼”賦值給“源CRC校驗碼”,繼續(xù)進(jìn)行下一個字節(jié)的校驗,直到最后一個字節(jié)校驗完成后得出“CRC校驗碼”,即為這段字符串的“最終CRC校驗碼”,并在該數(shù)據(jù)段的末尾加上該校驗碼,這樣就構(gòu)成了一個完成的數(shù)據(jù)包,以12ab為例介紹CRC檢驗具體實現(xiàn)過程[5],主要設(shè)計流程如圖1所示。

        ①使用VEE語言實現(xiàn)字符串轉(zhuǎn)數(shù)組,先確定字符串長度,再算出字節(jié)數(shù)。分別將字符按順序2個一組取出,并將取出的字節(jié)轉(zhuǎn)換成一維數(shù)組,然后輸出。主要使用到的模塊有strLen(str),該模塊為取字符串長度,然后通過除2和循環(huán)單獨取字節(jié),strFromLen (str,from,len)中str代表要轉(zhuǎn)換的字符串,from代表要開始截取的字符,len代表截取字符的總長度,其次還是用到collector收集器,使用這3個模塊和基本的計算循環(huán)便可實現(xiàn)字符串轉(zhuǎn)數(shù)組。

        ②進(jìn)制轉(zhuǎn)換在CRC校驗中使用最多,主要包括十進(jìn)制轉(zhuǎn)二進(jìn)制、十進(jìn)制轉(zhuǎn)十六進(jìn)制、二進(jìn)制轉(zhuǎn)十進(jìn)制,十六進(jìn)制轉(zhuǎn)十進(jìn)制、十六進(jìn)制轉(zhuǎn)二進(jìn)制等,以十進(jìn)制轉(zhuǎn)十六進(jìn)制為例,主要思想就是除16,整個十進(jìn)制數(shù)循除以16的0次方、1次方、2次方和3次方,除后所得余數(shù)和除數(shù)(取整)分別記錄在相應(yīng)的位置,余數(shù)10~15分別對應(yīng)字母a~f,以1234為例,1234/162取整為4,余數(shù)為210,210/161取整13,余數(shù)為2,則十進(jìn)制1234對應(yīng)的十六進(jìn)制數(shù)為ox04d2。

        ③手動計算異或即轉(zhuǎn)換成二進(jìn)制后,0和1同則0,異則1,VEE可視化語言里的bitXor(x,y)實現(xiàn)了計算異或功能,直接輸入需要的異或值,便可直接輸出結(jié)果。

        ④計算循環(huán)冗余校驗碼表,外循環(huán)從0~255,每次循環(huán)把要計算字節(jié)送入余數(shù)單元(4 byte)最低位字節(jié)中,然后左移8位。內(nèi)循環(huán)次數(shù)為8,每次循環(huán)先將余數(shù)單元中數(shù)據(jù)左移一位,最低位補(bǔ)0。2次循環(huán)結(jié)束之后就可以算出整個循環(huán)冗余校驗碼表,即把0~255的CRC碼計算出來,存儲至表格里,然后再根據(jù)字節(jié)查詢對應(yīng)CRC碼。

        3試驗仿真

        CRC校驗是通信設(shè)備常用的一種校驗法,VEE可視化語言是安捷倫公司推出的一款專門控制儀器儀表及設(shè)備的語言,使用VEE語言控制設(shè)備進(jìn)行通信就需要使用到CRC校驗來驗證數(shù)據(jù)傳輸?shù)恼_性,因此使用VEE設(shè)計實現(xiàn)CRC校驗是控制通信設(shè)備進(jìn)行設(shè)備遠(yuǎn)程測試的重要環(huán)節(jié)。

        CRC校驗有計算和查表2種方法,計算法(以CRC16為例)為校驗數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)后左移16位,然后開始與17位二進(jìn)制(1000 1000 0001 0000 1)異或,直到把右邊最后一位異或完成為止,所得結(jié)果轉(zhuǎn)換為16進(jìn)制,即為該校驗數(shù)的校驗碼,以計算法來驗證12ab的校驗過程,具體過程為:

        根據(jù)手動校驗12ab來驗證該程序的準(zhǔn)確性,最終結(jié)果與程序一致。2個字節(jié)的計算相對比較簡單,可是在現(xiàn)實設(shè)備使用中字節(jié)相當(dāng)長,如果使用手動計算特別耗費人力和時間,經(jīng)過多方驗證,該程序與手動計算完全一致。

        4結(jié)束語

        本質(zhì)上循環(huán)冗余校驗計算的就是移位和異或,所以一次處理移動幾位都沒有關(guān)系,只要做相應(yīng)的處理就好了。循環(huán)冗余校驗實現(xiàn)簡單、檢錯能力強(qiáng),提高了通信速度,占用系統(tǒng)資源少,用軟硬件均能實現(xiàn),一定程度上解決了傳輸速率和校驗時間的矛盾,是計算機(jī)網(wǎng)絡(luò)通信中對數(shù)據(jù)包進(jìn)行檢錯很好的手段[6]。CRC是一種常用的檢錯校驗法,它不具備自動糾錯,只要經(jīng)過嚴(yán)格的校驗,并使用足夠多的排查,那么出現(xiàn)檢測不到的差錯概率就會很小,使用CRC差錯檢測技術(shù)只能做到無差錯傳輸,并不可保證完全可靠傳輸。

        參考文獻(xiàn)

        [1]許偉,王曉燕. CRC算法在計算機(jī)網(wǎng)絡(luò)通信中的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2014(2):119.

        [2]秦紅磊,路輝,朗榮玲.自動測試系統(tǒng)———硬件及軟件技術(shù)[M].北京:高等教育出版社,2007.

        [3]陶傳會.淺議CRC算法在計算機(jī)網(wǎng)絡(luò)通信中應(yīng)用[J].信息與電腦(理論版),2011(5):136.

        [4]聽雨軒工作室.AgilentVEE虛擬儀器工程設(shè)計與開發(fā)[M].北京:國防工業(yè)出版社,2004.

        [5]邱林海.多媒體通信中CRC碼及其快速算法設(shè)計[J].小型微型機(jī)算機(jī)系統(tǒng),1998(11):18-20.

        [6]劉星華.循環(huán)冗余校驗校驗在單片機(jī)系統(tǒng)中的軟件快速實現(xiàn)[J].福建工程學(xué)院學(xué)報,2007,5(1):76-78.

        中文字幕av人妻少妇一区二区| 人妻久久999精品1024| 亚洲精品乱码久久久久久按摩高清 | 蜜桃视频无码区在线观看| 精品国产午夜福利在线观看| 亚洲精品美女久久久久99| 日韩av在线不卡一区二区 | 婚外情长久的相处之道| 热久久国产欧美一区二区精品| 国产亚洲日韩欧美一区二区三区| 亚洲欧洲无码精品ⅤA| 国产一区二区三区在线男友| 好吊妞无缓冲视频观看| 99这里只有精品| 麻美由真中文字幕人妻| 91日韩东京热中文字幕| 久久久久成人片免费观看蜜芽| 一级午夜视频| 蜜桃在线观看视频在线观看| 尤物在线观看一区蜜桃| 少妇人妻偷人精品免费视频| 国产成人精品日本亚洲专区6| 亚洲国产天堂av成人在线播放 | 亚洲天堂av在线免费看| 日韩精品亚洲一区二区| 亚洲日韩欧洲无码av夜夜摸| 亚洲综合网站精品一区二区 | 国产粉嫩嫩00在线正在播放| 久久蜜桃资源一区二区| 97在线观看视频| 亚洲AⅤ永久无码精品AA| 国产在线视频一区二区三区 | 伊在人天堂亚洲香蕉精品区| 精品视频在线观看免费无码| 国产特黄a三级三级三中国| 亚洲av永久无码精品古装片| 国产亚洲av片在线观看18女人| 中国精品久久久久国产| 国产亚洲成人精品久久| 香港日本三级亚洲三级| 99国产精品无码专区|