data loss / error correction

Go To Last Post
9 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This is a tricky one...

I have a PC communicating with a AVR using a unidirectional serial link (RS232). The PC can send data to the AVr, but the AVR cannot send data to the PC.

The problem is, the link is noisy, and every now and then one or more bytes are completely lost! (the AVR has no way of knwing that bytes were lost.)

Bit errors can be corrected by error correction code, but what about data loss?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

try to get rid of the noise, shielded cable, max232, all rules for serial data long distance, etc.

admin's test signature
 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Make a packet of data plus CRC.
If CRC error occurred, retransmit the data.
It is unlikely a whole data of packet loss.

admin's test signature
 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Bob: Probably I should have mentioned. The AVR rotates, so the data transmission to the AVR is done by modulating the power supply. Supply is by mecanical brushes.

Johan: As I stated, it is a unidirectional link, no request for retransmission is possible.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm not Johan, but why don't you send multiple packets with same data.

admin's test signature
 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'am thinking of a system like this:

1: add ECC
2: shift/interleave the data stream
3: packetize the data stream and give each packet a number.

Might work...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hang .1 caps across the commutator to suck up the sparks. Use redundant contacts on the slip rings in case on of em bounces

admin's test signature
 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You can use an error correction system such as cross-word check code. This allows you to locate the position of a fault within a data block.

Another option for larger data streams is Vitterbi error correction and Reed-Solomon. But these introduce significant overheads.

Another term to research is Hamming Distance, this term describes the level of error detection.

Bob

admin's test signature
 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Try using RS-422 instead, it's much more reliable.
Just a simple circuit in each end is req'ed, no change of software.

Tobias

admin's test signature