??? 03/14/09 10:33 Read: times |
#163449 - Two-dimensional checksum with detect/repair Responding to: ???'s previous message |
Depending on how much RAM you have on either side, it isn't so hard to create packets with two-dimensional checksumming that will allow you to correct a lot of bit errors and detect and reject an even larger set of error combinations.
The simplest is to just store your data as a two-dimensional array and compute a checksum/row and a checksum/column and transfer the data and the checksums. If a row checksum fails, you may be able to check the column checksums to figure out which byte in the row that is wrong (and that byte may just as well be the checksum). A checksum is simple but not the best. Using an 8-bit CRC for rows and columsn of the data would be better. In the end, you will have to spend a bit of extra RAM and bandwidth and processing power but for a noisy channel you would reduce the probability of accepting a broken packet, and you would reduce the probability of a deadlock because a packet never gets accepted. |
Topic | Author | Date |
Using HT12D decoder with AT89S52 | 01/01/70 00:00 | |
wireless data transfer | 01/01/70 00:00 | |
transceiver? | 01/01/70 00:00 | |
Two-dimensional checksum with detect/repair![]() | 01/01/70 00:00 |