您的位置:首页 > 其它

STM32开发 -- UART应用层通信协议分析

2018-03-06 12:07 465 查看
拿到一份UART的通信协议,上手来操作之前先做一下分析。

一、帧格式说明

先看一下它的帧格式说明:

1、 帧头标志Head

不论是命令帧还是响应帧,帧头标志都是0x92。

2、 协议版本

协议版本号(4bit),目前值为1

加密方式(4bit),0表示采取“数据不加密+校验和”方式。

所以,当前此字段完整值为0x10

3、 控制字段中的C/R比特

用于指示该帧是命令帧还是应答帧,1表示命令帧,0表示应答帧。

4、 控制字段中的T/F比特

用于指示传输数据类型,1表示透明的非结构化数据,0表示正常的数据帧。

5、 虚拟通道

虚拟地址(4bit):代表数据帧的源地址标识。目前为保留位,取值为0。

通道序号(4bit):0表示虚通道0,1表示虚通道1,其他值暂不使用。

6、 帧序号

帧的编号一般由发送节点填充,按递增加一的原则(溢出后归零重新开始)使用,不能重复,以保证“虚拟通道+帧序号”在某个相对时间段内是唯一的。但目的节点在应答主控节点的命令时仍使用源节点的帧序号,以实现命令与应答的一一对应。节点在主动上报时,帧序号由节点自己填充,但仍坚持递增加一的原则。

7、 用户数据长度指示

指“用户数据部分”的总长度。一帧的总长度不超过64K。

8、 用户数据帧

根据命令的不同而不同。

命令字由两个字节构成,分别称为CmdHi和CmdLo,高8比特在前,低8比特在后。

9、 校验和

指从帧头开始到校验和之前所有字节的累加和,发送方在发送时,通过计算填充帧的校验和部分;接收方在接收到一个帧时,应通过计算并与校验和部分进行比较,以确保接收到的帧是完整正确的。

10、用户状态字定义

应答状态字说明 :0 成功

1 没有此命令

2 帧长度错误

3 参数错误

4 设置失败

5 忙,请等待

二、数据分析

串口回环测试,就不做介绍了。

参看:日常生活小技巧 – UART 回环测试

上电后可以获取一段数据。



其中计算校验和,用win10自带计算器太难受了。

推荐:

科学计算器

校验和计算工具
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: