拿到一份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自带计算器太难受了。
推荐:
科学计算器
校验和计算工具

STM32开发 -- UART应用层通信协议分析相关推荐

  1. stm32串口接收不定长数据_基于STM32之UART串口通信协议--接收

    一.前言 1.简介 回顾上一篇UART发送当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作. 2.UART简介 嵌入式开发中,UART串口通信协议是我们 ...

  2. 基于STM32开发板CAN总线通信协议浅析

    基于STM32开发板CAN总线通信协议浅析 一.前言 控制器局域网(Controller Area Network,CAN),是由德国BOSCH(博世)公司开发,是目前国际上应用最为广泛的现场总线之一 ...

  3. 基于STM32开发板I²C总线通信协议浅析

    基于STM32开发板I²C总线通信协议浅析 一.前言 I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980 ...

  4. STM32的完整启动流程分析

    最近又写了一篇补充描述,适合与本文一起查阅.深入理解MCU启动原理 关于STM32的启动流程,网上有的资料在讨论几种boot模式,有的在回答启动文件的内容,在查阅了很多资料后,本文给出一个比较全面的总 ...

  5. S5PV210开发 -- UART 详解

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/78532740 上一篇文章系统的讲了一下通信的分类,包括并行通信,串行通信.串 ...

  6. STM32开发 -- 串口详解

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/80708964 讲完GPIO,接下来看一下串口. 串口通信,已经讲了很多次了. ...

  7. 计算机PMA,PMA通信协议分析及仿真工具

    PMA通信协议分析及仿真软件是专为计算机通信开发人员打造的一款模拟分析工具,现在不少设备在进行开发的时候都需要对通信协议进行分析了,使用这款工具可以有效地对设备进行模拟.查看通信状况以及进行模拟仿真处 ...

  8. 开发实践丨用小熊派STM32开发板模拟自动售货机

    摘要:本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代码,通过云端开发和设备终端开发,实现终端数据在的华为云平台显示. 本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代 ...

  9. 转:Android应用开发性能优化完全分析

    转自:http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜 ...

最新文章

  1. WebLogic集群案例分析
  2. 机器学习--信息 信息熵 信息增益
  3. Java数据类型与各数据库类型对应一览表
  4. 【OpenCV 例程200篇】42. 图像的灰度变换(比特平面分层)
  5. jquery 乱码 传参_jquery ajax传递中文参数乱码问题及解决方法说明
  6. 在C# 中 如何限制在文本框(textBox)中输入的类型为正整数
  7. go学习笔记-包处理
  8. javascript Date定义和体验
  9. 2021年微信视频号生态趋势调查报告|友望数据发布
  10. envoy中的iptable流量劫持
  11. MIPS指令 MIPS架构
  12. RN如何使用原生的AndroidUI组件
  13. InfluxDB常用函数
  14. Unity3D 模型描边插件Outline Effect详细使用说明、C#功能扩展
  15. iOS 真机模拟内存警告
  16. 基于历史对比学习的时序知识图谱推理
  17. vue使用高德地图实现实时天气预报功能
  18. 新式茶饮“拿捏”年轻人,“八马茶业”们的出路在哪?
  19. Android与Unity的交互
  20. Android (嘤)英语语音识别 简单概况

热门文章

  1. AtCoder Grand Contest 030 自闭记
  2. LeetCode119.杨辉三角II
  3. (十)更快的排序算法(归并、快排、基数)
  4. 网站自动登录功能的设计
  5. 15---Net基础加强
  6. InvokeHelper,让跨线程访问/修改主界面控件不再麻烦(转)
  7. hdu 3948(后缀数组+RMQ)
  8. 头发一周洗几次才适宜? - 生活至上,美容至尚!
  9. Git学习笔记:分支管理(2)
  10. C++静态库与动态库