I am looking to send data through a uart communication link that is very noisy (BER can reach up to 1E-13). I was thinking of sending data that is 64 bytes long. However, these packets are of varying lengths and should be self decodable using reed solomon with X FEC bytes that are set according to another function in the program.
The packet should be divided according to the following scheme:
byte | 1 | 2..64 | 64..X |
meaning | Seq number | DATA | RS FEC bytes |
What I am now thinking about is how I can be able to delimit the packet to be recognizable by the receiver. I have thought about two major choices:
- COBS
- Using COBS sounds like a good option, however, since it's a noisy channel, I am afraid that an error that affects the delimiting characters will break the whole packet.
- Add a header
- Adding a header telling how big is the packet feels somewhat bad, since it would be only one byte long, there is no option for error correcting with reed solomon, and writing another error correcting algorithm is overkill.
What are other options I have at my disposal for this problem?