错误检测的奇偶校验方法
許多系統(tǒng)都使用一個(gè)奇偶校驗(yàn)位作為錯(cuò)誤檢測(cè)的手段,比如我們最常用的串口傳輸就使用了這種校驗(yàn)方法。
一個(gè)奇偶校驗(yàn)位附加到多位數(shù)據(jù)中,使得這組數(shù)中的1的個(gè)數(shù)總是偶數(shù)或總是奇數(shù)。其中,一個(gè)偶校驗(yàn)位使得數(shù)據(jù)中1的總數(shù)為偶數(shù),而一個(gè)奇校驗(yàn)位使得1的總數(shù)為奇數(shù)。
對(duì)于一個(gè)給定的系統(tǒng),要么運(yùn)行偶校驗(yàn),要么運(yùn)行奇校驗(yàn),而不能同時(shí)使用這兩者。
比如在進(jìn)行串口傳輸時(shí),我們要么定義數(shù)據(jù)為偶校驗(yàn),要么定義成奇校驗(yàn)。對(duì)于所接受的每一個(gè)多位數(shù)據(jù)做檢查時(shí),如果是偶校驗(yàn),檢查發(fā)現(xiàn)收到的數(shù)據(jù)不是偶數(shù)個(gè)1,則說(shuō)明數(shù)據(jù)發(fā)生了錯(cuò)誤。反之,如果是奇校驗(yàn),如果檢查發(fā)現(xiàn)收到的數(shù)據(jù)不是奇數(shù)個(gè)1,則也說(shuō)明數(shù)據(jù)發(fā)生了錯(cuò)誤。
作為對(duì)奇偶校驗(yàn)位怎么附加到數(shù)據(jù)編碼中的一個(gè)說(shuō)明,下表列出了每個(gè)BCD數(shù)的奇偶校驗(yàn)位。
奇偶校驗(yàn)位可以附加到數(shù)碼的開(kāi)頭或結(jié)尾,這取決于系統(tǒng)的設(shè)計(jì)。注意:1的總數(shù),包含奇偶校驗(yàn)位上的1,對(duì)于偶校驗(yàn)總是偶數(shù),對(duì)于奇校驗(yàn)總是奇數(shù)。?
奇偶校驗(yàn)位提供了單個(gè)位錯(cuò)誤的檢測(cè)機(jī)制(或者說(shuō)是任意奇數(shù)個(gè)錯(cuò)誤,但這種概率很低),但是不能檢測(cè)一個(gè)數(shù)據(jù)中的兩個(gè)錯(cuò)誤。
比如,我們希望傳輸BCD編碼0101(奇偶校驗(yàn)可以應(yīng)用于任何位數(shù),這里使用4位作為說(shuō)明)。
如果我們想用偶校驗(yàn)方式來(lái)傳輸,則所傳輸?shù)目倲?shù)碼為00101,如果接受系統(tǒng)只檢測(cè)到奇數(shù)個(gè)1,那么說(shuō)明數(shù)據(jù)接收錯(cuò)誤:
如果我們想用奇校驗(yàn)方式來(lái)傳輸,則所傳輸?shù)目倲?shù)碼為10101,如果接受系統(tǒng)只檢測(cè)到偶數(shù)個(gè)1,那么說(shuō)明數(shù)據(jù)接收錯(cuò)誤:
那么問(wèn)題來(lái)了,接收系統(tǒng)是通過(guò)什么電路來(lái)檢測(cè)數(shù)據(jù)含有偶數(shù)個(gè)或者奇數(shù)個(gè)1呢?實(shí)際上實(shí)現(xiàn)方式很簡(jiǎn)單:就是博主在verilog專(zhuān)欄內(nèi)中介紹的單目運(yùn)算符(位異或^)。
位異或的結(jié)果為1,則表明一個(gè)多位數(shù)據(jù)中含有奇數(shù)個(gè)1.
位異或的結(jié)果為0,則表明一個(gè)多位數(shù)據(jù)中含有偶數(shù)個(gè)1.
確定發(fā)送端的奇偶校驗(yàn)位是發(fā)送0還是1也是如此原理~
總結(jié)
以上是生活随笔為你收集整理的错误检测的奇偶校验方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: loj121-动态图连通性
- 下一篇: 魔力宝贝服务器没响应连接超时,腾讯内容开