Page 257 - Anatomy of a Robot
P. 257
09_200256_CH09/Bergren 4/17/03 11:24 AM Page 242
242 CHAPTER NINE
Multiple Error Detection
If the checksum has enough data in it (and the appropriate mathematical structure), then
it may be possible to detect more than one error in the data block. Note this means that
a weak checksum method (with little data in the checksum) may even fail to detect any
error if more than one error occurs in the data block.
Consider the nature of the communication channel used in the robot. If it is possible
for more than one error to occur at the same time, then try a checksum method capable
of at least detecting multiple errors. It is certainly possible for multiple errors to occur
at the same time in any communications channel. The key question a robot designer
should examine is the likelihood of such an occurrence. Examine the probability of
errors and the distribution of the errors. Assuming the error rates are small and that the
errors occur independently, it’s safe to assume the chance of two simultaneous errors in
a block is roughly the square of the chance of a single error in a block. The robot
designer should compute this dual error rate and determine if it will be an acceptable
error rate if such errors slip through.
Single Error Correction
If the checksum contains sufficient data to not only detect the existence of an error but
correct it as well, then the data can be corrected before the receiver moves on to the next
block of data. No retransmission from the transmitter will be required. It should be
noted that even error correction schemes will occasionally make mistakes. The strength
of the error-correcting code lies in the mathematics of the protocol. Some errors may
not even be detected, some errors may not be correctable, and some errors will be incor-
rectly corrected. When employing such methods, the robot designer must examine these
error rates and compare them to the allowable error rate.
Multiple Error Correction
Some checksums have sufficient information to correct simultaneous errors. All the
same precautions should be taken as outlined previously. Be aware that such strong
checksums often consume a good deal of bandwidth sending extra checksum data; the
checksums may contain many bytes.
Checksums are smaller blocks of data that summarize larger blocks of data. Often
checksums are called cyclic redundancy checks (CRC). The following web sites will
point out a small difference. Certainly, if a checksum contains more data than the block
it summarizes, then it is not of much use. The whole idea is to summarize the block of
transmitted data in a small number of bytes in an effort to be efficient. Often, a check-