文章詳情
CRC從原理到實(shí)現(xiàn)
日期:2025-06-01 14:46
瀏覽次數(shù):1431
摘要:
數(shù)據(jù)通信中,接收端需要檢測(cè)在傳輸過(guò)程中是否發(fā)生差錯(cuò),常用的技術(shù)有奇偶校驗(yàn)(Parity Check),校驗(yàn)和(Checksum)和CRC(Cyclic Redundancy Check)。它們都是發(fā)送端對(duì)消息按照某種算法計(jì)算出校驗(yàn)碼,然后將校驗(yàn)碼和消息一起發(fā)送到接收端。接收端對(duì)接收到的消息按照相同算法得出校驗(yàn)碼,再與接收到的校驗(yàn)碼比較,以判斷接收到消息是否正確。
奇偶校驗(yàn)只需要1位校驗(yàn)碼,其計(jì)算方法也很簡(jiǎn)單。以奇檢驗(yàn)為例,發(fā)送端只需要對(duì)所有消息位進(jìn)行異或運(yùn)算,得出的值如果是0,則校驗(yàn)碼為1,否則為0。接收端可以對(duì)消息進(jìn)行相同計(jì)算,然后比較校驗(yàn)碼。也可以對(duì)消息連同校驗(yàn)碼一起計(jì)算,若值是0則有差錯(cuò),否則校驗(yàn)通過(guò)。通常說(shuō)奇偶校驗(yàn)可以檢測(cè)出1位差錯(cuò),實(shí)際上它可以檢測(cè)出任何奇數(shù)位差錯(cuò)。
校驗(yàn)和的思想也很簡(jiǎn)單,將傳輸?shù)南?dāng)成8位(或16/32位)整數(shù)的序列,將這些整數(shù)加起來(lái)而得出校驗(yàn)碼,該校驗(yàn)碼也叫校驗(yàn)和。校驗(yàn)和被用在IP協(xié)議中,按照16位整數(shù)運(yùn)算,而且其MSB(Most Significant Bit)的進(jìn)位被加到結(jié)果中。
顯然,奇偶校驗(yàn)和校驗(yàn)和都有明顯的不足。奇偶校驗(yàn)不能檢測(cè)出偶數(shù)位差錯(cuò)。對(duì)于校驗(yàn)和,如果整數(shù)序列中有兩個(gè)整數(shù)出錯(cuò),一個(gè)增加了一定的值,另一個(gè)減小了相同的值,這種差錯(cuò)就檢測(cè)不出來(lái)。
尊敬的客戶(hù):
本公司有crc清潔劑、crc潤(rùn)滑劑、三防漆等產(chǎn)品,您可以通過(guò)網(wǎng)頁(yè)撥打本公司的服務(wù)專(zhuān)線(xiàn)了解更多產(chǎn)品的詳細(xì)信息,至善至美的服務(wù)是我們永無(wú)止境的追求,歡迎新老客戶(hù)放心選購(gòu)自己心儀產(chǎn)品,我們將竭誠(chéng)為您服務(wù)!