一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于OTA技术的多个控制器的升级方法

2022-09-01 08:50:49 来源:中国专利 TAG:

一种基于ota技术的多个控制器的升级方法
技术领域
1.本发明属于水下无人航行器控制系统领域,涉及一种基于ota技术的多个控制器的升级方法。


背景技术:

2.水下无人航行器的控制系统通常由主控制单元和安保控制单元所组成,且需要做完全密封防止进水。当控制系统程序需要升级时,如果采用有线方式升级程序航行器就需要将将航行器放置到陆地上或者需要人下水去接下载线然后进行升级。采用有线升级的方式较麻烦且费力,同时当航行器质量较大时就更加不适用,所有采用ota技术升级程序是理想选择。通常ota的应用场景是服务端
‑‑
终端模式,但水下无人航行器由两个控制单元且两个控制单元都需要进行程序的升级。如果采用服务端-终端模式就需要两个控制单元都具备无线通讯的功能,为了有效利用航行器空间及降低成本,本发明提出一种服务端
‑‑
终端1
‑‑
终端2的程序升级模式。


技术实现要素:

3.要解决的技术问题
4.为了避免现有技术的不足之处,本发明提出一种基于ota技术的多个控制器的升级方法,解决水下无人航行器控制系统只有一个无线通讯设备的情况下实现多个控制单元的ota程序升级。
5.技术方案
6.一种基于ota技术的多个控制器的升级方法,其特征在于包括程序升级上位机、无线通讯设备、水下无人航行器;上述水下无人航行器具备无线通讯功能的安保控制单元以及不具备无线通讯功能的主控制单元,且主控制单元和安保控制单元采用串口通讯:升级步骤如下:
7.步骤1:当控制单元需要进行程序升级时,先打开升级上位机选择需要升级的控制单元,通过无线通讯设备连接升级上位机和安保控制单元;上位机读取升级文件,获知这个文件有效数据大小并根据需升级控制单元的ram大小进行数据拆分和计算校验码;
8.步骤2:上位机通过无线设备下发升级指令给安保控制单元,告知升级的大小,总校验字,和升级帧数;安保控制单元根据升级指令判断是自身升级还是主控单元升级,如果是自身升级则应答上位机已做好升级准备指令;如果是主控升级则进入串口透明传输模式,将上位机和主控单元间所有数据进行转发;主控单元收到上位机程序升级指令后进行应答,上位机收到应答指令后分段下发升级程序和校验码;
9.步骤3:接收程序的控制单元将接收到的校验码放在flash中设定好的验证区,程序数据放到flash中的升级区,当完成所有程序接收后进行程序校验,若计算的每段校验码和上位机下发的校验码完全一致则表明程序下发成功,将升级区数据覆盖到程序区,完成程序升级并告知上位机。
10.具体步骤为:
11.步骤1)、建立无线通讯链路:当需要对控制器的某一控制单元进行程序升级时,在该计算机的任一可用的串行口上连接能和航行器的无线通讯设备进行通讯的无线通讯设备;
12.步骤2)、测试无线通讯是否成功:上位机调用已连接无线通讯设备的计算机串行口并发送16进制格式报文(0xaa,0x06,0x03,0x00,0xff,0xb4),末字节作为校验位,等于发送报文前5个字节数据之和的低8位,即0xb4=(0xaa 0x06 0x03 0x00 0xff)&0xff;若接收到控制单元返回的应答报文(0xaa,0x06,0x03,0x00,0xff,0xb4)表示上位机软件和控制单元成功建立无线通讯链路;
13.步骤3)、上位机操作:
14.1、当需要对主控制单元进行程序升级时,在升级上位机界面选择主控制单元选项;当需要对安保控制单元进行程序升级时,在升级上位机界面选择安保控制单元选项;
15.2、上位机读取本地计算机上的待升级二进制程序文件,并计算出这个文件的有效数据大小,然后按照每段最大40k字节进行程序分段并计算出每段的校验码;
16.步骤4)、程序下发:上位机通过无线设备下发16进制报文给安保控制单元,报文数据包括待升级程序的控制单元、即将下发程序段数以及每段的校验码;
17.安保控制单元接收到上位机下发的程序升级报文后,计算报文长度len,并计算出报文前len-1个字节的所有数据之和sum,sum=sum(1,len-1);然后安保单元对该条报文进行有效性校验,即判断首字节等于0xaa,第二个字节等于len,第三个字节等于0x10,最后字节等于sum;若四个条件同时成立则判定该条升级报文有效,否则判定无效,向上位机应答判定无效报文(0xaa,0x08,0x10,0x00,0xff,0xff,0xff,0xbf),上位机接收到报文后显示应答错误提示弹窗;
18.安保单元判定报文有效后则根据“mcu地址”判断是安保单元升级还是主控单元升级,其中mcu为地址:0x00表示安保单元;0x01表示主控单元,如果是安保单元升级则应答上位机已做好升级准备报文并将每段程序的校验码和段数存到内存,报文格式如下:
[0019][0020]
如果安保单元判断是主控单元升级则进入串口透明传输模式,后面接收到的所有上位机数据都转发给主控单元,接收到的所有主控单元数据都转发给上位机,直到接收到升级完成报文后才退出透明传输模式;主控单元收到上位机程序升级指令后将每段程序的校验码和段数存到内存并进行应答,报文格式如下:
[0021][0022]
上位机收到应答报文后进行报文有效性校验,校验有效后下发第一段程序文件并显示下发进度条;
[0023]
步骤5)、程序接收和校验:正在进行程序升级的控制单元将接收到的第一段程序数据放到flash中的升级区,并计算这段程序所有字节的累加和calc_crc1;控制单元在程序升级过程中对接收到的每段程序进行校验,如果校验码和接收到的校验码不一致,即
crc1不等于crc1,则重新发送以上报文通知上位机重新下发该段程序文件;
[0024]
calc_crc1等于crc1证明接收到的数据正确,控制单元根据接收到的程序段数判断是否还有数据需要接收,若大于一段则发送如下格式报文请求下发第二段程序:
[0025]
上位机接收到报文并校验通过后下发第二段程序;
[0026]
正在进行程序升级的控制单元将接收到的第二段程序数据放到flash中的升级区,并计算这段程序所有字节的累加和calc_crc2;calc_crc2等于crc2证明接收到的数据正确,同第一段接收完成判断一样,判断是否还有数据需要接收,若大于二段则发送如下格式报文请求下发第三段程序:
[0027][0028]
当控制单元完成所有程序接收后且每段程序的校验码和上位机下发的校验码完全一致则表明所有程序文件下发成功,控制单元将升级区数据覆盖到程序运行区,就完成了该次程序升级,然后发送报文告知上位机,上位机接收到该报文并校验通过后显示“升级成功”弹窗并将升级进度条显示100%;报文格式如下:
[0029][0030][0031]
所述上位机报文校验算法:上位机计算报文长度len,并计算出报文前len-1个字节的所有数据之和sum,sum=sum(1,len-1);然后对该条报文进行有效性校验,即判断首字节等于0xaa,第二个字节等于0x03,最后字节等于sum;若三个条件同时成立则判定该条升级报文有效。
[0032]
有益效果
[0033]
本发明提出的一种基于ota技术的多个控制器的升级方法,提出一种服务端
‑‑
终端1
‑‑
终端2的程序升级模式。当控制单元需要进行程序升级时,先打开升级上位机选择需要升级的控制单元,通过无线通讯设备连接升级上位机和安保控制单元。上位机读取升级文件,获知这个文件有效数据大小并根据需升级控制单元的ram大小进行数据拆分和计算校验码。上位机通过无线设备下发升级指令给安保控制单元,告知升级的大小,总校验字,和升级帧数。安保控制单元根据升级指令判断是自身升级还是主控单元升级,如果是自身升级则应答上位机已做好升级准备指令;如果是主控升级则进入串口透明传输模式,将上位机和主控单元间所有数据进行转发。主控单元收到上位机程序升级指令后进行应答,上位机收到应答指令后分段下发升级程序和校验码。接收程序的控制单元将接收到的校验码放在flash中设定好的验证区,程序数据放到flash中的升级区,当完成所有程序接收后进行程序校验,若计算的每段校验码和上位机下发的校验码完全一致则表明程序下发成功,将升级区数据覆盖到程序区,完成程序升级并告知上位机。
[0034]
本发明解决了当水下无人航行器由两个控制单元且两个控制单元都需要进行程序的升级,采用服务端-终端模式就需要两个控制单元都具备无线通讯的功能,有效利用航行器空间及降低成本,使多个控制器的程序升级更加简捷化,且可扩展到有2个以上控制单
元程序升级的系统。
附图说明
[0035]
图1:流程图
具体实施方式
[0036]
现结合实施例、附图对本发明作进一步描述:
[0037]
一种基于ota技术的多个控制器的升级系统包括程序升级上位机、无线通讯设备、水下无人航行器具备无线通讯功能的安保控制单元以及不具备无线通讯功能的主控制单元,主控制单元和安保控制单元采用串行口通讯。程序升级技术方案如下:
[0038]
1、建立无线通讯链路
[0039]
当需要对控制器的某一控制单元进行程序升级时,首先在安装了升级上位机软件的计算机上打开升级上位机;在该计算机的任一可用的串行口上连接能和航行器的无线通讯设备进行通讯的无线通讯设备;
[0040]
2、测试无线通讯是否成功
[0041]
点击升级上位机软件“连接”按键,上位机调用已连接无线通讯设备的计算机串行口并发送16进制格式报文(0xaa,0x06,0x03,0x00,0xff,0xb4),末字节作为校验位,等于发送报文前5个字节数据之和的低8位,即0xb4=(0xaa 0x06 0x03 0x00 0xff)&0xff;若接收到控制单元返回的应答报文(0xaa,0x06,0x03,0x00,0xff,0xb4)表示上位机软件和控制单元成功建立无线通讯链路。
[0042]
3、上位机操作
[0043]
a.当需要对主控制单元进行程序升级时,在升级上位机界面选择主控制单元选项;当需要对安保控制单元进行程序升级时,在升级上位机界面选择安保控制单元选项。
[0044]
b.上位机读取本地计算机上的待升级二进制程序文件,并计算出这个文件的有效数据大小,然后按照每段最大40k字节进行程序分段并计算出每段的校验码;
[0045]
举例说明:若文件总大小为76k,则分两段,第一段长度40k,第二段长度36k;若文件总大小为90k,则分三段,第一段长度40k,第二段长度40k,第三段长度10k;检验码等于该段所有数据之和的低8位,即checksum=sum(1,size)&0xff(size:每段数据大小);
[0046]
4、程序下发
[0047]
点击上位机“开始程序升级”按键,上位机通过无线设备下发16进制报文给安保控制单元,报文数据包括待升级程序的控制单元、即将下发程序段数以及每段的校验码。下发的报文格式以2段举例说明:
[0048][0049]
mcu地址:0x00表示安保单元;0x01表示主控单元;
[0050]
代码段数:0x02表示下发程序分2段;
[0051]
第一段crc:表示第一段程序的校验码;
[0052]
第二段crc:表示第二段程序的校验码;
[0053]
累加和:0x1b=(0xaa 0x08 0x10 0x00 0x02 0x12 0x45)&0xff;
[0054]
安保控制单元接收到上位机下发的程序升级报文后,计算报文长度len,并计算出报文前len-1个字节的所有数据之和sum,sum=sum(1,len-1);然后安保单元对该条报文进行有效性校验,即判断首字节等于0xaa,第二个字节等于len,第三个字节等于0x10,最后字节等于sum;若四个条件同时成立则判定该条升级报文有效,否则判定无效,向上位机应答判定无效报文(0xaa,0x08,0x10,0x00,0xff,0xff,0xff,0xbf),上位机接收到报文后显示应答错误提示弹窗;
[0055]
安保单元判定报文有效后则根据“mcu地址”判断是安保单元升级还是主控单元升级(mcu地址:0x00表示安保单元;0x01表示主控单元),如果是安保单元升级则应答上位机已做好升级准备报文并将每段程序的校验码和段数存到内存,报文格式如下:
[0056][0057]
如果安保单元判断是主控单元升级则进入串口透明传输模式,后面接收到的所有上位机数据都转发给主控单元,接收到的所有主控单元数据都转发给上位机,直到接收到升级完成报文后才退出透明传输模式。主控单元收到上位机程序升级指令后将每段程序的校验码和段数存到内存并进行应答,报文格式如下:
[0058][0059][0060]
上位机收到应答报文后进行报文有效性校验,校验有效后下发第一段程序文件并显示下发进度条。
[0061]
上位机报文校验算法如下:
[0062]
上位机计算报文长度len,并计算出报文前len-1个字节的所有数据之和sum,sum=sum(1,len-1);然后对该条报文进行有效性校验,即判断首字节等于0xaa,第二个字节等于0x03,最后字节等于sum;若三个条件同时成立则判定该条升级报文有效。
[0063]
5、程序接收和校验
[0064]
正在进行程序升级的控制单元将接收到的第一段程序数据放到flash中的升级区,并计算这段程序所有字节的累加和calc_crc1;控制单元在程序升级过程中对接收到的每段程序进行校验,如果校验码和接收到的校验码不一致,即crc1不等于crc1,则重新发送以上报文通知上位机重新下发该段程序文件;
[0065]
calc_crc1等于crc1证明接收到的数据正确,控制单元根据接收到的程序段数判断是否还有数据需要接收,若大于一段则发送如下格式报文请求下发第二段程序:
[0066][0067]
上位机接收到报文并校验通过后下发第二段程序;
[0068]
正在进行程序升级的控制单元将接收到的第二段程序数据放到flash中的升级区,并计算这段程序所有字节的累加和calc_crc2;calc_crc2等于crc2证明接收到的数据正确,同第一段接收完成判断一样,判断是否还有数据需要接收,若大于二段则发送如下格式报文请求下发第三段程序:
[0069][0070]
当控制单元完成所有程序接收后且每段程序的校验码和上位机下发的校验码完全一致则表明所有程序文件下发成功,控制单元将升级区数据覆盖到程序运行区,就完成了该次程序升级,然后发送报文告知上位机,上位机接收到该报文并校验通过后显示“升级成功”弹窗并将升级进度条显示100%。报文格式如下:
[0071][0072]
本发明使多个控制器的程序升级更加简捷化,且可扩展到有2个以上控制单元程序升级的系统。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献