Here is a ECC idea based on hamming code used for flash memory. It may be something you can apply to your situation. It has the advantage of being able to correct a single bit error, in addition to detecting multiple bit errors.
Hamming Codes for NAND Flash Memories.pdf
I have some ideas about how to implement this if you think it would be useful in your situation. The bigger the data packet, the more efficient the technique, but the more likely, in a noisy environment, that you will have more than one single bit error, and then be required to retransmit. Here is an example of one way you could use this: Send 6 * 10 bit ADC values + 12 bits of ECC for a total of 72 bits (9 bytes) of data. Since you are using only 60 of the first 64 bits, the top 4 ECC bits could be loaded into the 4 bits not used by the ADC values. When calculating the ECC, those 4 bits could always be 0, then filled with the ECC values before transmission. At the receiving end, the ECC values are replaced with 0s again before the ECC recalculation.
I have played with this a little bit on 256 Byte (2048 bit) data packets, so I might have some code you could use as a starting place.
HTH,
Steve
Bookmarks