嵌入式系統/奇偶校驗

維基教科書,自由的教學讀本
維基百科中的相關條目:

在很多情況下,尤其是在傳輸中,一定量的錯誤檢查信息是非常重要的。這樣能保證錯誤信息能夠被辨別、忽略,重新發送新的信息。奇偶校驗(Parity)是最簡單的校驗方法之一,可分為奇校驗(Odd Parity)和偶校驗(Even Parity)。奇偶校驗能夠檢查每個字節信息的組成,判斷它是正確或錯誤的。

奇偶校驗廣泛應用於計算機的信息傳輸和存儲中。UART自帶奇偶校驗功能,但其他協議需要手動配置

原理[編輯]

在1個字節(Byte)中,有8個二進位位(bit)。其中7個位是需要傳輸/存儲的數據,剩下1個位是校驗信息。校驗信息位的值隨其餘7個位的值而變化,使各位之和總是奇數,或總是偶數。校驗位在傳輸/存儲之前被確定,添加到字節當中。如果接收或者讀取的字節的奇偶性與規定不同,則判斷信息是錯誤的,反之則說明信息正確。

分類[編輯]

奇校驗[編輯]

位和為奇數的校驗方法。

偶校驗[編輯]

位和為偶數的校驗方法。

局限[編輯]

由於奇偶校驗只是將位和的奇偶作為檢驗標準,這種方法能檢驗出錯誤,卻不能保證通過奇偶校驗的數據都是正確的。比如,1個字節中有2位或4位發生了錯誤,那麼奇偶性依然保持不變,被視為正確。

若每一位上發生錯誤的機率是P,則在一個字節中發生2位錯誤的機率是。在數字電子設備中,P小於百分之一,那麼產生2位錯誤的機率至多不到千分之三。產生4、6、8位錯誤的機率則指數遞減。

計算機率可以知道,在錯誤率很低的情況下,發生2位錯誤的機率小於1%,屬於小機率事件。因此在一定程度上,奇偶校驗能夠避免絕大多數錯誤。但對於高精密設備,依舊無法滿足苛刻的要求,需要更高級的校驗方法。