CN115617375A - 一种动物野外实验装置在不稳定网络下的可靠ota升级方法 - Google Patents

一种动物野外实验装置在不稳定网络下的可靠ota升级方法 Download PDF

Info

Publication number
CN115617375A
CN115617375A CN202211405232.6A CN202211405232A CN115617375A CN 115617375 A CN115617375 A CN 115617375A CN 202211405232 A CN202211405232 A CN 202211405232A CN 115617375 A CN115617375 A CN 115617375A
Authority
CN
China
Prior art keywords
differential
upgrade package
field experiment
experiment device
upgrading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211405232.6A
Other languages
English (en)
Inventor
王孝良
陈文彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian University of Technology
Original Assignee
Dalian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dalian University of Technology filed Critical Dalian University of Technology
Priority to CN202211405232.6A priority Critical patent/CN115617375A/zh
Publication of CN115617375A publication Critical patent/CN115617375A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种动物野外实验装置在不稳定网络下的可靠OTA升级方法,属于生物电子科研领域。本发明所述的OTA升级方法主要包括通过不稳定网络接收服务器发布的差分升级包和利用差分升级包对带有A/B系统分区的设备进行程序升级两个阶段。该方法能够解决目前动物野外实验装置都是搭载前程序一次有线写入导致无法灵活进行程序升级的问题,能够有效节省动物野外实验所需的人力、物力,提高科研人员的实验效率和实验精度。

Description

一种动物野外实验装置在不稳定网络下的可靠OTA升级方法
技术领域
本发明属于生物电子科研领域,具体涉及一种动物野外跟踪实验单元的OTA升级方法。
背景技术
近年来,基于野生动物开展的跟踪、监测、调控等科学研究发展迅速。特别是基于脑机接口的生物交叉科学研究已经成为这一领域的热点。目前针对这些研究的实验装置的程序都是在具体搭载之前进行一次有线写入,当研究人员需要对实验策略和算法进行更新优化的时候,需要使用新的模块写入更新好的程序之后搭载在新的动物上。这样十分耗费人力、物力,对科研人员的实验效率和实验精度也会产生不良的影响。使用OTA(Over-the-Air Technology)方式进行程序升级,可以在有网络的情况下对动物实验装置的程序进行随时随地的升级,能够提高实验装置的复用率,大大减少实验中人力物力的付出,也能提高实验的效率与精度。
采用OTA技术进行程序更新的时候,为了防止设备在程序升级的时候出现问题从而导致设备完全无法使用,谷歌公司使用了A/B系统升级方式。A/B系统是指设备上有A和B两套可以工作的系统,可以理解为一套为系统分区,另外一套为备份分区,其系统版本可能一样,也可能不一样。程序完成更新之后,只需要将设备重新启动由此便可以运行更新之后的程序软件。
具备A/B分区的系统终端通常使用全量包升级,但是由于动物野外实验装置在实际使用中往往处于网络通信情况不良好的地方,使用全量包升级的方式会导致程序包在传输过程中要花费大量的时间,需要消耗许多电量并且影响传输的成功率。而A/B分区系统的终端设备使用差分包升级时,由于差分升级包只能针对于某一个特定版本进行升级,从第二次升级开始,获得的差分升级包便不能直接对另一分区的程序进行升级。
发明内容
为了解决在网络不稳定的情况下具备A/B分区系统的嵌入式设备进行差分程序升级的问题,本发明提供一种动物野外实验装置的OTA升级方法。
本发明的技术方案为:
一种动物野外实验装置在不稳定网络下的可靠OTA升级方法,在程序升级的过程中主要分为两个阶段:第一个阶段为服务器在网络不稳定的情况下将差分升级包完整传输到动物野外实验装置;第二个阶段为动物野外试实验装置根据接收到的差分升级包对程序进行分区升级。
为了实现第一个阶段将差分升级包数据在网络不稳定情况下从服务器传送到动物野外实验装置,本发明使用一种能够长时间保持断续传输的通信方式。
步骤S1:在服务器端将制作好的差分升级包进行发布,并选择需要升级的硬件编号。服务器端将差分升级包进行分包,每一个小包中的信息包含硬件编号、差分升级包源版本(升级前)、差分升级包目标版本(升级后)、差分升级包分包总包数、当前包序号、差分升级包信息和校验码,分包具体信息如图2所示。然后服务器上位机软件会向选定编号的硬件发布一个程序升级命令。
步骤S2:动物野外实验装置根据接收到的程序升级命令,向服务器发送差分升级包分包的请求。
步骤S3:服务器在收到请求之后,将对应的小包进行下发,动物野外实验装置接收到之后根据校验码进行校验,校验成功之后将差分程序信息存放到公共备份区中,然后请求下一个差分升级包分包。
步骤S4:重复进行步骤S2、S3,直到全部的差分升级包分包发送完成。
在上述执行过程中如果发生动物野外实验装置电量不足自动关机或者出现网络长时间中断的情况,服务器端会保持180秒的连接状态,超过180秒服务器则会关闭连接,但是会建立一个表项记录未完成程序升级的装置编号。当动物野外实验装置重新恢复正常工作状态时(网络恢复正常或者通过太阳能充电电量恢复之后),会查询传输状态标志位。当传输状态标志位为1时,会读取当前待请求包序号并往服务器端发送请求信号,当服务器接收到请求信息之后会进行查询,如果发现该设备之前程序过程被中断,则重新建立连接,发送差分升级包。
为了实现第二个阶段,本发明提供一种嵌入式设备OTA升级方法,所述的嵌入式设备的存储器应包括A系统分区和B系统分区以及公共备份区,公共备份区中存放的信息为A系统分区的软件版本号、B系统分区的软件版本号、当前设备硬件版本号、待请求分包序号、传输状态标志位、升级状态标志位、上一次进行差分升级时使用的差分升级包以及本次升级需要用的差分升级包;存储器的存储信息示意图如图3所示。所述的OTA升级方法包括:
步骤S5:差分升级包接收完成后,根据得到的差分升级包数据,校验B系统分区是否符合升级条件(假设设备当前运行的系统所在分区为A系统分区),将B系统分区版本号与当前差分升级包源版本号对比。
步骤S6:如果B系统分区程序版本号与当前差分升级包源版本号相同,则符合升级条件。动物野外实验装置根据当前获得的差分升级包,对B系统分区中的系统进行升级,升级完成之后重启设备运行新版本程序。如果不符合升级条件则执行步骤S7。
步骤S7:如果B系统分区程序版本号与当前差分升级包源版本号不同,即不符合升级条件。动物野外实验装置则使用上一次获得的差分升级包先对B系统分区软件进行一次升级,使得其符合升级条件。再使用当前差分升级包对B系统分区进行升级,升级完成后重启设备运行新版本程序。
本发明的有益效果:本发明能够在网络不稳定情况下可靠地下发差分升级包,接收到差分升级包之后置于公共备份区,A、B系统中都可以使用差分升级包进行升级。并且在升级过程中当某一分区的程序版本不满足升级条件时,不需要向再次服务器请求以该版本程序作为源版本的差分升级包,只需要使用公共备份区中存储的上一次获得的差分升级包便可完成升级满足条件。这样有效保证了程序升级的可靠性和效率,能够让科研人员根据简单快捷的更新算法程序,大大提高了科研人员研究效率,减少人力、物力的开支。
附图说明
图1是本发明的整体流程图。
图2是本发明所述差分升级包分包信息示意图。
图3是本发明所述内存存储信息示意图。
图4是第一阶段实施案例说明流程图。
图5是第二阶段实施案例说明流程图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,以下参照附图并结合具体实施方式来进一步描述本发明,以令本领域技术人员参照说明书文字能够据以实施,本发明保护范围并不受限于该具体实施方式。
如图1所示,一种动物野外实验装置在不稳定网络下的可靠OTA升级方法,包括两个阶段:第一个阶段为服务器在网络不稳定的情况下将差分升级包传输到动物野外实验装置;第二个阶段为动物野外实验装置根据接收到的差分升级包对程序进行分区升级。
如图4所示,第一阶段的具体实施方式如下:
S1-1:软件发布人员将差分升级包上传到服务器,并选择需要升级的硬件编号。服务器将差分升级包进行分包,每一个分包的信息包括硬件编号、差分升级包源版本、差分升级包目标版本、差分升级包分包总包数、当前包序号、差分升级包信息和校验码。然后服务器向选定编号的动物野外实验装置发送OTA程序升级命令。
S1-2:动物野外实验装置在接收到程序升级命令之后,开启差分升级包传输任务,先在公共备份区中将传输状态标志位置1,然后向服务器发送差分升级包分包请求命令,最后开启一个30秒的定时器。
S1-3:服务器接收到差分升级包请求命令之后,开启差分升级包下发任务,将差分升级包分包依次下发。
S1-4:动物野外实验装置在接收完某一分包并根据校验码校验成功之后,动物野外实验装置会在公共备份区中进行记录。当接受完最后一分包之后,动物野外实验装置会对接收记录进行查询,如果发现某一分包没有接收成功则会向服务器端发送带硬件编号和分包序号的重发请求;全部接收成功则上发接收完成信息并结束接收任务。当动物野外实验装置接收到分包之后,会将步骤S1-2中开启的定时器进行重置,当定时器被触发之后(30秒内没有接收到新的差分升级包分包),动物野外实验装置将接收任务睡眠15分钟。
S1-5:当服务器端下发完差分升级包之后会开启一个180秒的定时器,如果在180秒内没接收到重发信息或者接收完成信息,则会把该差分升级包下发任务进行休眠,再次接受到来自该设备的分包请求信息则唤醒该任务。
S1-6:动物野外实验装置在重新唤醒接收任务之后,会对公共备份区中的接收记录进行查询,然后向服务器发送重发信息并开启定时器。
S1-7:如果接收完成则任务结束,否则重复执行步骤S1-6直到接收任务完成。传输任务完成后将公共备份区中传输状态标志位置0。
如图5所示,第二阶段的具体实施方式如下:
当进行程序差分升级的时候,差分升级包只能将一个特定版本的程序升级为另外一个特定的版本。例如当服务器下发的为将V2版本程序升级到V3版本的V2-V3差分升级包,则这个差分升级包只能对V2版本的程序起到升级作用,不能使用V2-V3差分升级包去升级V1版本的程序。
当设备处于初始状态时,A、B两个分区为相同的V1版本程序。假设初始的系统分区为A分区,当第一次接收到差分升级包(V1-V2)时,可以直接使用该差分升级包对B分区进行程序升级,升级后B分区为系统分区。但是第二次收到差分升级包(V2-V3)时,此时A分区仍然为V1版本的程序,此时是不能直接使用差分升级包(V2-V3)进行升级的。
针对这个问题,本申请提出的OTA升级方法中除了A、B系统分区之外还拥有一个公共备份区,该公共备份区既可以被A系统分区访问也能被B系统分区访问。公共备份区主要存放A、B系统分区版本信息、升级状态标志位、相邻的两次差分升级包。
S2-1:当第一次差分升级包接收完成后(V1-V2升级包)将升级状态标志位置1,此时A、B系统分区都为V1版本程序。假设目前系统分区为A分区,则将B系统分区的程序版本号与差分升级包源版本(升级前版本)进行对比。如果B系统分区程序版本号与差分升级包源版本相同,则可以直接使用当前获得的差分升级包(V1-V2升级包)对B系统分区进行升级。升级完成之后将升级状态标志位置0,重启动物野外实验装置。重启后系统分区为B分区,程序版本为V2,A系统分区程序版本仍为V1。
S2-2:当第二次差分升级包接收完成后(V2-V3升级包)将升级状态标志位置1,此时公共备份区中会有两次接收到的差分升级包(V1-V2升级包、V2-V3升级包)。此时对A分区进行升级条件检测会发现不能使用V2-V3升级包直接对A分区进行升级。动物野外实验装置会先使用公共备份区中V1-V2升级包对A分区程序升级到V2版本,然后再使用V2-V3升级包将A分区程序升级到V3版本。升级完成之后将升级状态标志位置0,重启动物野外实验装置。重启后A分区程序版本为V3,B分区程序版本为V2,系统分区为A分区。
S2-3:当第三次差分升级包接收完成后(V3-V4升级包)将升级状态标志位置1,此时公共备份区中会有V2-V3差分升级包和V3-V4差分升级包。此时对B分区进行升级条件检测会发现不能使用V3-V4对B分区程序进行升级。动物野外实验装置会先使用公共备份区中的V2-V3升级包对B分区程序进行升级,然后再使用V3-V4升级包对B分区程序进行升级。升级完之后将升级状态标志位置0,重启动物野外实验装置。重启后B分区程序版本为V4,A分区程序版本为V3,系统分区为B分区。
S2-4:后续每次升级参考步骤S2-2和S2-3进行。

Claims (3)

1.一种动物野外实验装置在不稳定网络下的可靠OTA升级方法,其特征在于,所述动物野外实验装置的存储器包括A系统分区、B系统分区以及公共备份区,该OTA升级方法包括以下步骤:
(一)服务器将差分升级包完整传输到动物野外实验装置
步骤S1:在服务器端将制作好的差分升级包进行发布,并选择需要升级的硬件编号;服务器端将差分升级包进行分包,每一个小包的信息包含硬件编号、差分升级包源版本、差分升级包目标版本、差分升级包分包总包数、当前包序号、差分升级包信息和校验码;然后服务器向选定编号的动物野外实验装置发布OTA程序升级命令;
步骤S2:动物野外实验装置根据接收到的程序升级命令,向服务器发送差分升级包分包的请求;
步骤S3:服务器在收到请求之后,将对应的小包进行下发,动物野外实验装置接收到之后根据校验码进行校验,校验成功之后将差分程序信息存放到公共备份区中,然后请求下一个差分升级包分包;
步骤S4:重复进行步骤S2、S3,直到全部的差分升级包分包发送完成;
(二)动物野外实验装置根据接收到的差分升级包对程序进行分区升级
步骤S5:设当前运行的系统所在分区为A系统分区,差分升级包接收完成后,根据得到的差分升级包数据,将B系统分区版本号与当前差分升级包源版本号对比,以校验B系统分区是否符合升级条件;
步骤S6:若B系统分区程序版本号与当前差分升级包源版本号相同,则符合升级条件:动物野外实验装置根据当前获得的差分升级包,对B系统分区中的系统进行升级,升级完成之后重启动物野外实验装置运行新版本程序;若不符合升级条件则执行步骤S7;
步骤S7:若B系统分区程序版本号与当前差分升级包源版本号不同,即不符合升级条件:动物野外实验装置则使用上一次获得的差分升级包先对B系统分区软件进行一次升级,使得其符合升级条件;再使用当前差分升级包对B系统分区进行升级,升级完成后重启动物野外实验装置运行新版本程序。
2.根据权利要求1所述的一种动物野外实验装置在不稳定网络下的可靠OTA升级方法,其特征在于,第(一)阶段中,服务器将差分升级包完整传输到动物野外实验装置的具体过程如下:
1)软件发布人员将差分升级包上传到服务器,并选择需要升级的硬件编号;服务器将差分升级包进行分包,然后向选定编号的动物野外实验装置发送OTA程序升级命令;
2)动物野外实验装置在接收到程序升级命令之后,开启差分升级包传输任务,先在公共备份区中将传输状态标志位置1,然后向服务器发送差分升级包分包请求命令,最后开启一个30秒的定时器;
3)服务器接收到差分升级包请求命令之后,开启差分升级包下发任务,将差分升级包分包依次下发;
4)动物野外实验装置在接收完某一分包并根据校验码校验成功之后,在公共备份区中进行记录;当接受完最后一分包之后,动物野外实验装置对接收记录进行查询,若发现某一分包没有接收成功则向服务器端发送带硬件编号和分包序号的重发请求;全部接收成功则上发接收完成信息并结束接收任务;当动物野外实验装置接收到分包之后,将过程2中开启的定时器进行重置,当定时器被触发之后,动物野外实验装置将接收任务睡眠15分钟;
5)当服务器端下发完差分升级包之后开启一个180秒的定时器,若在180秒内没接收到重发信息或者接收完成信息,则会把该差分升级包下发任务进行休眠,再次接受到来自该动物野外实验装置的分包请求信息则唤醒该任务;
6)动物野外实验装置在重新唤醒接收任务之后,对公共备份区中的接收记录进行查询,然后向服务器发送重发信息并开启定时器;
7)若接收完成则任务结束,否则重复执行过程6直到接收任务完成;传输任务完成后将公共备份区中传输状态标志位置0。
3.根据权利要求1或2所述的一种动物野外实验装置在不稳定网络下的可靠OTA升级方法,其特征在于,公共备份区中存放的信息为A系统分区的软件版本号、B系统分区的软件版本号、当前设备硬件版本号、待请求分包序号、传输状态标志位、升级状态标志位、上一次进行差分升级时使用的差分升级包以及本次升级需要用的差分升级包。
CN202211405232.6A 2022-11-10 2022-11-10 一种动物野外实验装置在不稳定网络下的可靠ota升级方法 Pending CN115617375A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211405232.6A CN115617375A (zh) 2022-11-10 2022-11-10 一种动物野外实验装置在不稳定网络下的可靠ota升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211405232.6A CN115617375A (zh) 2022-11-10 2022-11-10 一种动物野外实验装置在不稳定网络下的可靠ota升级方法

Publications (1)

Publication Number Publication Date
CN115617375A true CN115617375A (zh) 2023-01-17

Family

ID=84877809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211405232.6A Pending CN115617375A (zh) 2022-11-10 2022-11-10 一种动物野外实验装置在不稳定网络下的可靠ota升级方法

Country Status (1)

Country Link
CN (1) CN115617375A (zh)

Similar Documents

Publication Publication Date Title
CN109857737B (zh) 一种冷热数据存储方法及装置、电子设备
CN105183515A (zh) 云台固件升级的方法及装置
CN104199706A (zh) 一种eMMC的固件升级方法及其设备
CN103593207A (zh) 使用虚拟磁盘的高速自动化丛集系统部署方法
CN102098182B (zh) 分布式设备的配置恢复方法及分布式设备
CN104579719A (zh) 一种固件的升级方法和系统、上位机和光模块
US20200156422A1 (en) Upgrading method and apparatus for tire pressure monitoring module and tire pressure sensor
CN102123170A (zh) 固件版本的升级方法及装置
CN104423981A (zh) Bmc固件自动更新系统及方法
CN103763351A (zh) 基于上位机与下位机的软件在线升级方法
CN110633091A (zh) 一种电子模块及其软件无线升级方法
CN103024065A (zh) 用于云存储系统的系统配置管理方法
CN114489711A (zh) 终端升级方法、装置及存储介质
CN111176665B (zh) 大容量emmc镜像制作方法和装置
CN112698857A (zh) 一种数据刷写的方法及设备
CN109992280A (zh) 一种嵌入式软件升级的方法、终端装置及存储装置
CN114489732A (zh) 一种更新设备的fpga固件的方法、装置及电子设备
CN115617375A (zh) 一种动物野外实验装置在不稳定网络下的可靠ota升级方法
CN103714059A (zh) 一种更新数据的方法及装置
CN102637174A (zh) 镜像文件管理系统及镜像文件管理方法
CN116257270A (zh) 一种车辆、车辆的升级方法和装置
CN113467721A (zh) 一种数据删除系统、方法及装置
CN101924958B (zh) 以太无源光网络的光网络单元的更新方法及其装置
CN102169439A (zh) 数据传输系统
KR100516551B1 (ko) 원격 소프트웨어 업그레이드 시스템 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination