C#上位机单片机调试上位机

文章目录

  • 项目简介
    • 1、主要功能
    • 2、软件功能设计
      • 0x00命令
      • 0x01命令
      • 0x02命令
      • 0x03命令
      • 0x04命令
      • 0x05命令
      • 0x06~0x08
      • 0x10
      • 0x11
      • 0x12
      • 0x13
      • 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个字节,格式为,Key:Value,Key为配置名称,Value为值

0x12

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

0x13

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


0x20

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

0x21

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

0x22

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

一、界面

C#上位机单片机调试上位机_第1张图片
配置和监控页面都使用表的形式来显示
C#上位机单片机调试上位机_第2张图片

二、程序设计

未完待续

你可能感兴趣的:(C#上位机,c#,单片机)