i am looking to implement a serial communication between 2 devices using just a simple communication.
It seem that protocol such as those used in HDLC and xBee uses 0x7E as the start delimiter.
Is there any particular reason or i can use any character as an alternative.
The reason is related to framing of data.
Extended Example:
machine 1 sent: 01111110 01111110 01111110
some options for error in receive:
machine 2 recv: 011110011111001111110
- notice that you can identify 3 frames very easy.
machine 2 recv: 11111001111110011111
- again you can identify 3 frames quite easy.
machine 2 recv: 01111110111111001111110
- once more 3 frames can be identified quite easy.
Now let's see what happens if we choose different sequences as flags.
Example 1:
machine 1 sent: 01011010 01011010 01011010
(here flag chosen is 01011010
)
some options for error in receive:
machine 2 recv: 010010100101101001011010
- you cannot identify if those are even frames..
Example2:
machine 1 sent: 00011000 00011000 00011000
(here flag chosen is 00011000
)
some options for error in receive:
machine 2 recv: 00110000001100000011000
- this one is ok... we can easy see 3 frames.. but..
machine 2 recv: 0010000001100000011000
- this is harder.. could be 3 frames but can't be sure..
You can read more in Wikipedia information about HDLC (check the frames subject)
One more thing.. SO Folks I know this has a flame potential :)
Please keep in mind I didn't choose this arbiter sequence.. I only explain the reason for this particular sequence as choice.