error detection/correction/recovery in serial protocols

Posted by Jason S on Stack Overflow See other posts from Stack Overflow or by Jason S
Published on 2009-12-09T19:44:45Z Indexed on 2010/05/31 22:43 UTC
Read the original article Hit count: 325

I have some designing to do for a serial protocol and am running into some questions that I figure must have been considered elsewhere.

So I'm wondering if there are some recommendations for best practices in designing serial protocols. (Please either state a fact that is easily verifiable, or cite a reputable source if you make a claim.) General recommendations for websites/books are also welcome.

In particular I have to deal with issues like

  • parsing a stream of bytes into packets
  • verifying a packet is correct (easy with a CRC, for instance)
  • identifying reasonable types of errors that can occur (e.g. in a point-to-point serial stream, sporadic single bit errors, and dropped series of bytes, are both likely, but extra phantom bytes are unlikely; whereas with a record stored in flash memory or on a disk drive the types of errors that predominate are different)
  • error correction or recovery (if I detect an error in a packet, can I correct it? If not, can I resync to the boundary of the next packet?)
  • how to make variable-length packets robust to error correction / recovery.

Any suggestions?

© Stack Overflow or respective owner

Related posts about protocols

Related posts about error-correction