您的当前位置:首页正文

串口通信校验方式(even,odd,space,mark)

2021-06-17 来源:九壹网
串⼝通信校验⽅式(even,odd,space,mark)

⽆校验 (no parity)

奇校验 (odd parity):如果字符数据位中\"1\"的数⽬是偶数,校验位为\"1\",如果\"1\"的数⽬是奇数,校验位应为\"0\"。(校验位调整个数)偶校验 (even parity):如果字符数据位中\"1\"的数⽬是偶数,则校验位应为\"0\",如果是奇数则为\"1\"。(校验位调整个数)mark parity:校验位始终为1space 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会下令重新传输数据。

奇/偶校验(C)是数据传送时采⽤的⼀种校正数据错误的⼀种⽅式,分为奇校验和偶校验两种。 如果是采⽤奇校验,在传送每⼀个字节的时候另外附加⼀位作为校验位,当实际数据中“1”的个数为偶数的时候,这个校验位就是“1”,否则这个校验位就是“0”,这样就可以保证传送数据满⾜奇校验的要求。在接收⽅收到数据时,将按照奇校验的要求检测数据中“1”的个数,如果是奇数,表⽰传送正确,否则表⽰传送错误。同理偶校验的过程和奇校验的过程⼀样,只是检测数据中“1”的个数为偶数。

因篇幅问题不能全部显示,请点此查看更多更全内容