首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

串口通信之协议格式

串口通信之协议格式

缓存收到的所有数据,找到一条完整数据,分析数据,界面通知。

信令格式:
同步头 + 数据正文 + 同步尾
同步头 + 命令字 + 数据长度 + 数据正文 + 同步尾
同步头 + 地址码 + 命令字 + 数据长度 + 数据正文 + 同步尾

同步头 + 数据正文 + 校验码
同步头 + 命令字 + 数据长度 + 数据正文 + 校验码
同步头 + 地址码 + 命令字 + 数据长度 + 数据正文 + 校验码

  文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾。即:协议头 + 数据 + 校验 + 数据尾


  一般情况下,同步头2B,地址码1B,命令字1B,数据长度1B,数据正文nB,同步尾2B,校验码2B

  信令的格式为了3个目的:a>符合业务需求;b>方便识别一条完整的数据;c>进一步验证数据,如有需要进行数据还原。

地址码、命令字为了目的a

同步头、数据长度、同步尾、校验码为了目的b

校验码为了目的c

建议:
1>    尽量采用数据内容不会出现的字符作为同步头尾。比如数据用BCD码,则同步头可以用A-E,如5E
2>    如果同步头尾字符可能会在数据正文出现,则可能要用转义符,当然同步头+数据长度+同步尾3个条件同时成立的正文数据出现概率应该非             常非常低;
3>    如果数据较短,请使用校验码进一步验证数据的正确性;
4>    如果正确性要求特别高,请采用校验码还原可能的错误数据,如果校验码不能完成数据还原,请重发信令请求以保证正确。
继承事业,薪火相传
返回列表