文章目录

  • 项目简介
  • 1、主要功能
  • 2、软件功能设计
  • 0x00命令
  • 0x01命令
  • 0x02命令
  • 0x03命令
  • 0x04命令
  • 0x05命令
  • 0x06~0x08
  • 0x10
  • 0x11
  • 0x12
  • 0x13
  • 0x14
  • 0x20
  • 0x21
  • 0x22
  • 一、界面
  • 二、程序设计
  • 未完待续



项目简介

1、主要功能

1.可以升级下位机程序
2.可以配置下位机的某些参数
3.可以接收下位机数据并可视化显示出来
4.可以接收下位机输出的日志信息,并可以保存下来
5.下位机可能会记录存储某些数据,上位机可以读取并显示出来
6.上位机需要具备完整的操作提示和错误提示

2、软件功能设计

物理层需使用UART或232的全双工通讯,同时规定数据如果没有特殊标注都使用小端模式传输(低字节在前高字节在后)。
在上一章中使用了比较通用的Modbus协议和下位机进行通讯,这一章将通过自定义的协议实现一个这个调试上位机。
协议格式如下:

帧头

命令标识

数据个数

数据

校验

2Byte

1Byte

N个Byte

N个Byte

1Byte

0xAAAA

0~0xff

使用varint编码

异或校验

命令标识定义如下:

0x00命令

此命令标识只能由下位机向上位机发送,上位机无需回复,功能为监控数据,数据段包含两个4个字节的整型数据,同时为节省带宽使用varint编码
一个字节的0~6bit为数据,第7个bit为是否需要向下解析,如下示例:
第一个数据为1,第二个数据为500,那么发送数据为:

帧头

命令标识

数据个数

数据

校验

0~1字节

2字节

3字节

4~6字节

7字节

0xAA,0xAA

0x00

0x03

0x01,0xF4,0x03

0x00

第一个数据为500,第二个数据为60000,那么发送数据为:

帧头

命令标识

数据个数

数据

校验

0~1字节

2字节

3字节

4~8字节

9字节

0xAA,0xAA

0x00

0x05

0xF4,0x03,0xE0,0xD4,0x03

0x00


0x01命令

上位机向下位机发送此命令查询下位机当前运行的程序状态:

帧头

命令标识

数据个数

数据

校验

0~1字节

2字节

3字节


4字节

0xAA,0xAA

0x01

0x00


0x00

下位机回复:

帧头

命令标识

数据个数

数据

校验

第0~1字节

第2字节

第3字节

第4字节

第5字节

0xAA,0xAA

0x01

0x01

0x00:当前运行在boot中,0x01:运行在app中

0x00

0x02命令

上位机向下位机发送此命令控制下位机跳转boot或app

帧头

命令标识

数据个数

数据

校验

0~1字节

2字节

3字节

4字节

5字节

0xAA,0xAA

0x02

0x01

0x00:跳转到App,0x01:跳转到Boot

0x00

下位机回复:

帧头

命令标识

数据个数

数据

校验

第0~1字节

第2字节

第3字节

第4字节

第5字节

0xAA,0xAA

0x02

0x01

0x00:成功,其他失败

0x00

0x03命令

上位机向下位机发送此命令或取下位机app软件版本号
上位机数据:无
下位机数据:3个字节版本号

0x04命令

上位机向下位机发送此命令通知下位机app程序开始升级,下位机收到命令后进行升级前的初始化操作
上位机数据:4个字节的文件大小
下位机数据:0:成功,其他失败

0x05命令

上位机向下位机发送app程序升级文件数据
上位机数据:N个字节,前4个字节为文件的偏移
下位机数据:5个字节,第一个字节为错误码:0:成功,1:Flash写入失败,2:偏移错误(后面4个字节为正确的偏移),3:还未接收到文件信息

0x06~0x08

0x03到0x05为仅在boot中支持的升级app程序用到的指令,0x06~0x08为仅在app中支持的升级boot程序用到的指令


0x10

上位机获取下位机配置数量,同时下位机接收到命令将把读取索引设置到开头
上位机数据:无
下位机数据:2个字节,当前设备的配置数量

0x11

上位机获取下位机配置,同时下位机每反回一条索引向后加1
上位机数据:无
下位机数据:N个字节,第一个字节为故障码,0为正常,后续格式为,Key:Value,Key为配置名称,Value为值

0x12

上位机设置下位机配置
上位机数据:N个字节,格式为,Key\0Value,Key为配置名称,Value为值
下位机数据:0:成功,其他失败

0x13

上位机获取下位机配置
上位机数据:N个字节,格式为,Key\0,Key为配置名称
下位机数据:N个字节,第一个字节为故障码,0为正常,后续为Value

0x14

时间同步
上位机数据:4个字节,当前时间戳
下位机数据:0:成功,其他失败


0x20

上位机获取下位机事件记录条数
上位机数据:8个字节,前4字节开始时间戳,后4字节结束时间戳
下位机数据:4个字节,当前设备的记录条数

0x21

上位机获取下位机事件记录条数,同时启动传输,通过0x22命令
上位机数据:8个字节,前4字节开始时间戳,后4字节结束时间戳
下位机数据:4个字节

0x22

下位机上传事件记录数据通道
下位机数据:N个字节,前4个字节为时间戳,其他为事件描述字符串

一、界面

python做串口上位机_数据


配置和监控页面都使用表的形式来显示

python做串口上位机_python做串口上位机_02

二、程序设计