串口通信协议设计中一个注意的小问题

最近接触到一个文档,其中串口通信的通信协议中用0x040x06转义0x02,

我一直不理解这样的动机是什么。因为以前见过的都是类似0x100x02来转义0x02

刚才突然想通了。果然很妙。

后者不科学,因为切分数据帧要用状态机不但程序复杂而且占用计算力,

同时还增加了通信干扰扩散的概率,干扰的收敛更慢。所以前者的设计是十分高明。

使用前者可以有以下好处:如果在数据中看到0x02可以直接判断数据帧不必考虑转义的可能性。这样程序明显简化处理速度也能提升。

另外,干扰是随机发生的,如果对于0x100x02来说,就有2个字节准备接受干扰,如果是0x10被破坏,还可以造成误切数据帧的效果,造成损失扩大化。

所以综合看来,前者的设计非常科学的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值