×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-06-05 发布时间:
|

拿到一份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自带计算器太难受了。 





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机中高阻态的实质及意义