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

原创 2018年04月17日 08:18:13

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

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

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

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

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

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

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

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

亲历的几个糟糕的应用层通信协议设计

去年和今年分别参与了两个公司的项目,这两个项目都涉及到了通信方面的程序设计,或者是以太网络通信,或者是串口通信。凡是通信就必须要有通信协议,个人认为协议的设计是个非常严肃的工作,需要理解业务需求和掌握...
  • smstong
  • smstong
  • 2015-10-15 11:20:05
  • 6013

【C#串口编程计划】通信协议解析 -- byte[]与常用类型的转换

刚刚完成一个串口通讯的系统。目前在把串口通信的代码整合到团队的类库中(把串口通信与网口Soket通讯整合起来,后面只需要配置参数,就可实现网络与串口通讯的转换),故C#串口编程计划的最后一篇图文“C#...
  • LSGO_MYP
  • LSGO_MYP
  • 2017-03-18 12:50:20
  • 1900

串口通信协议实现

       最近在做导师项目的机载仪器通信,底层采集板(DataCenter)和人机界面(HMI)的全双工串口通信,目前设计的协议规则基于问答机制。帧只分为两类主叫帧和应答帧,数据均可在两类帧中传输...
  • fjiale
  • fjiale
  • 2009-10-15 19:56:00
  • 8722

STM32串口通信程序设计要点

设计要点:1、要是能串口时钟同时要是能复用总线时钟和对应的IO时钟,如: //使能串口1,PA,AFIO总线    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO...
  • haozi_1989
  • haozi_1989
  • 2010-12-31 14:00:00
  • 10155

我也聊聊串口通信协议:用户层通信协议的编制

1.闲话闲聊 最重要的写在前面:用户层通信协议就是数据包格式!!! 没有进行串口通讯实践的朋友可能会想:为什么要编制用户通信协议呢?通信过程中为什么要进行数据处理呢?在设计中编过串口通信程...
  • shenziheng1
  • shenziheng1
  • 2016-10-26 23:19:57
  • 3966

stm32串口通信协议简单教程

  • 2017年12月20日 10:15
  • 1.58MB
  • 下载

通信协议设计注意事项

设计自定义通信协议有几个需要注意的情况:   1回执问题    2防堵塞设计   3超时   1回执问题      为了准确获取下发的命令的后续执行情况,就必须设计一种机制...
  • xuexiaodong2009
  • xuexiaodong2009
  • 2013-12-18 10:18:47
  • 1796

协议设计:可变长帧的实现

/* *Author : DavidLin *Date : 2014-12-25pm *Email : linpeng1577@163.com...
  • linpeng12358
  • linpeng12358
  • 2014-12-25 22:29:31
  • 746

智能小车六《串口协议》

在智能小车四《串口通信》中讲解了串口的通信原理,它就是一个直接把信息转为电信号的工具,透明传输。接着这篇文章我们来解决一下没有协议而发生信息错乱的情况。比如在我们的小车里,收到字符u表示要前进。我们用...
  • koolfret
  • koolfret
  • 2017-08-12 09:25:30
  • 205

单片机C语言之串口通信协议

本文详细讲述串口通信的基本原理,分析了51单片机串口协议。适合于入门。...
  • a514371309
  • a514371309
  • 2017-06-20 10:53:07
  • 6943
收藏助手
不良信息举报
您举报文章:串口通信协议设计中一个注意的小问题
举报原因:
原因补充:

(最多只允许输入30个字)