1. 程式人生 > >串列埠通訊校驗方式(even,odd,space,mark)

串列埠通訊校驗方式(even,odd,space,mark)

奇校驗 (odd parity):如果字元資料位中"1"的數目是偶數,校驗位為"1",如果"1"的數目是奇數,校驗位應為"0"。(校驗位調整個數)

偶校驗 (even parity):如果字元資料位中"1"的數目是偶數,則校驗位應為"0",如果是奇數則為"1"。(校驗位調整個數)

mark parity:校驗位始終為1

space parity:校驗位始終為0

奇偶校驗這個概念在邏輯設計裡面經常會用到,但有的人對奇偶校驗的理解很混亂。奇偶校驗是對資料傳輸正確性的一種校驗方法。在資料傳輸前附加一位奇校驗位,

用來表示傳輸的資料中"1"的個數是奇數還是偶數,為奇數時,校驗位置為"0",否則置為"1",用以保持資料的奇偶性不變。

奇偶校驗位 (Parity)是指或者奇數或甚至對一個數字的性質。奇偶校驗通常用在資料通訊中來保證資料的有效性。每個裝置必須決定是否它將被用為偶校驗,奇校驗,

或非校驗。傳送裝置新增1s在每個它傳送的每條串上或決定這個數是偶數或奇數。然後,它新增一個額外的位,叫做校驗位,到這個串上。如果偶校驗在使用,

校驗位將這些位置為偶數;如果奇校驗在使用,校驗位將這些位置為奇數。

例如,需要傳輸"11001110",資料中含5個"1",所以其奇校驗位為"0",同時把"110011100"傳輸給接收方,接收方收到資料後再一次計算奇偶性,

"110011100"中仍然含有5個"1",所以接收方計算出的奇校驗位還是"0",與傳送方一致,表示在此次傳輸過程中未發生錯誤。

奇偶校驗就是接收方用來驗證傳送方在傳輸過程中所傳資料是否由於某些原因造成破壞。

具體方法如下:

奇校驗:就是讓原有資料序列中(包括你要加上的一位)1的個數為奇數

1000110(0)你必須添0這樣原來有3個1已經是奇數了所以你添上0之後1的個數還是奇數個。

偶校驗:就是讓原有資料序列中(包括你要加上的一位)1的個數為偶數

1000110(1)你就必須加1了這樣原來有3個1要想1的個數為偶數就只能添1了。

大家一定會問,如何計算奇偶性呢,在計算機內有一種特殊的運算它遵守下面的規則:

1+1=0; 1+0=1; 0+1=1; 0+0=0;

我們把傳送過來的1100111000逐位相加就會得到一個1,應該注意的的,如果在傳送中1100111000變成為0000111000,通過上面的運算也將得到1,

接收方就會認為傳送的資料是正確的,這個判斷正確與否的過程稱為校驗。而使用上面方法進行的校驗稱為奇校驗,

奇校驗只能判斷傳送資料中奇數個數據從0變為1或從1變為0的情況,對於傳送中偶數個數據發生錯誤,它就無能為力了。

Odd Parity(奇校驗),校核資料完整性的一種方法,一個位元組的8個數據位與校驗位(parity bit )加起來之和有奇數個1。

校驗線路在收到數後,通過發生器在校驗位填上0或1,以保證和是奇數個1。因此,校驗位是0時,資料位中應該有奇數個1;而校驗位是1時,資料位應該有偶數個1。

如果讀取資料時發現與此規則不符,CPU會下令重新傳輸資料。

奇/偶校驗(ECC)是資料傳送時採用的一種校正資料錯誤的一種方式,分為奇校驗和偶校驗兩種。 如果是採用奇校驗,在傳送每一個位元組的時候另外附加一位作為校驗位,當實際資料中“1”的個數為偶數的時候,這個校驗位就是“1”,否則這個校驗位就是“0”,這樣就可以保證傳送資料滿足奇校驗的要求。在接收方收到資料時,將按照奇校驗的要求檢測資料中“1”的個數,如果是奇數,表示傳送正確,否則表示傳送錯誤。 同理偶校驗的過程和奇校驗的過程一樣,只是檢測資料中“1”的個數為偶數。