1、每款产品可以使用不同的波特率,CAN命令,所有的参数均可以通过配置文件定义
2、升级命令就类似于密码,不知道命令的人是无法更急程序的, 有一定的安全保密性质
3、只要所有的升级程序流程保持一致,就可以是通用版。
4、该升级程序不仅仅可以用于全部STM32系列, 也可以用于其他厂家的MCU。
5、使用的时候按照按钮上面的定义1、2、3、4即可完成产品的程序更新,非常方便
下面是配置文件的内容
配置ini文件所有的数字均用十进制表示,具体内容如下:
名称 |
注释 |
[FileDescription] |
主节点 |
Code |
= 335721文件标志,不可更改 |
Version |
默认1 |
Name |
名字,仅作为显示 |
[CmdConfig] |
主节点 |
ID_IAPCmd |
发送给App的升级CANID |
IAPData0 |
可以设置任意值,和程序匹配即可,类似于程序升级密码 |
IAPData1 |
|
IAPData2 |
|
IAPData3 |
|
IAPData4 |
|
IAPData5 |
|
IAPData6 |
|
IAPData7 |
|
ID_PingCmd |
上位机发送Ping命令 |
ID_AddrCmd |
上位机发送起始地址命令 |
ID_DataCmd |
上位机发送数据命令 |
ID_RunCmd |
上位机发送run命令 |
ID_PingAck |
下位机相应Ping命令 |
ID_AddrAck |
下位机相应起始地址命令 |
ID_DataAck |
下位机相应数据命令 |
ID_RunAck |
下位机相应run命令 |
CodeShiftAddr |
App代码的起始地址,和程序对应 |
CodeLength |
预留,可不填写 |
CheckEnable |
对ID_DataCmd 是否校验 ,0-不校验,1-校验 |
[CanConfig] |
主节点 |
BpsIndex |
0-100k;1-125k;2-250k;3-500k |
TypeIndex |
0-标准帧,1-扩展帧 |
Channel |
CAN通道:0-CAN0,1-CAN1 |
备注:ID_IAPCmd和ID_PingCmd允许相同;ID_PingAck、ID_AddrAck、ID_DataAck、ID_RunAck允许相同。也就是说升级至少需要5个CAN ID
准备在下一篇描述整个工作流程图,及MCU内的程序设计。