Parity and general error checking

The ASCII character set contains 128 defined characters.  It takes 7 bits to represent all 128 characters.  Since there are 8 bits per byte, the eighth bit can be used to detect errors.  One sort of checking adds up all the on (1) bits in each character transmitted.  If the number of bits is even, the eighth bit is turned on when the character is transmitted; that forces the total number of on bits to be odd and is called odd parity.  When the receiver gets the character, it performs the same procedure in reverse.  If it gets the same answer as was encoded in the eighth bit, the character is accepted.  If it does not, the character is in error.  A related method (even parity), sums the bits and turns the parity bit on if the number of bits is odd, forcing the total number of on bits to be even.

Either method of checking the correctness of received characters is called a parity check.  Unfortunately, the method can easily be thwarted if the errors are bad enough.  If the transmission is relatively clean and there are few errors, a simple parity check of this sort can be reasonably effective.  If any even number of data bits are reversed (on to off or vice versa), or if any odd number of bits are wrong and the parity bit is also incorrect, the parity check will fail to detect an error.

Most communications programs do not rely on parity checks, however.  That is especially true if you must send a full 8 bits of data, as is the case when sending executable programs, spread sheets, some kinds of word processing files, and any kind of binary data.  You should set parity to none or off whenever you need to send a full 8 bits of data.


See Also

Serial Communications

Start and Stop bits

Opening a communications port

Reading and writing data