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


项目简介

1、主要功能

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

2、软件功能设计

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

帧头命令标识数据个数数据校验
2Byte1ByteN个ByteN个Byte1Byte
0xAAAA0~0xff使用varint编码异或校验

命令标识定义如下:

0x00命令

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

帧头命令标识数据个数数据校验
0~1字节2字节3字节4~6字节7字节
0xAA,0xAA0x000x030x01,0xF4,0x030x00

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

帧头命令标识数据个数数据校验
0~1字节2字节3字节4~8字节9字节
0xAA,0xAA0x000x050xF4,0x03,0xE0,0xD4,0x030x00

0x01命令

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

帧头命令标识数据个数数据校验
0~1字节2字节3字节4字节
0xAA,0xAA0x010x000x00

下位机回复:

帧头命令标识数据个数数据校验
第0~1字节第2字节第3字节第4字节第5字节
0xAA,0xAA0x010x010x00:当前运行在boot中,0x01:运行在app中0x00

0x02命令

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

帧头命令标识数据个数数据校验
0~1字节2字节3字节4字节5字节
0xAA,0xAA0x020x010x00:跳转到App,0x01:跳转到Boot0x00

下位机回复:

帧头命令标识数据个数数据校验
第0~1字节第2字节第3字节第4字节第5字节
0xAA,0xAA0x020x010x00:成功,其他失败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个字节为时间戳,其他为事件描述字符串

一、界面

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

二、程序设计

未完待续

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值