我希望通过简单的通信在2台设备之间实现串行通信。
似乎HDLC和xBee中使用的协议使用 0x7E 作为起始分隔符。
是否有任何特殊原因或我可以使用任何角色作为替代。
答案 0 :(得分:6)
原因与数据框架有关。
扩展示例:
机器1已发送:01111110 01111110 01111110
接收错误的一些选项:
机器2 recv:011110011111001111110
- 注意你可以非常容易地识别3帧
机器2 recv:11111001111110011111
- 再次你可以很容易识别3帧。
机器2 recv:01111110111111001111110
- 再一次可以很容易地确定3帧。
现在让我们看看如果我们选择不同的序列作为标志会发生什么。
示例1:
机器1已发送:01011010 01011010 01011010
(此处标记为01011010
)
接收错误的一些选项:
机器2 recv:010010100101101001011010
- 你无法识别那些是否是偶数帧..
例2:
机器1已发送:00011000 00011000 00011000
(此处标记为00011000
)
接收错误的一些选项:
机器2 recv:00110000001100000011000
- 这个是好的...我们可以很容易地看到3帧...但是..
机器2 recv:0010000001100000011000
- 这更难..可能是3帧但不能确定..
您可以在Wikipedia information about HDLC中阅读更多内容(查看主题框架)
还有一件事...... SO Folks我知道这有火焰可能性:) 请记住,我没有选择这个仲裁序列。我只解释了这个特定序列作为选择的原因。