CN112261089B - 一种水下滑翔机远程程序升级的方法及设备 - Google Patents
一种水下滑翔机远程程序升级的方法及设备 Download PDFInfo
- Publication number
- CN112261089B CN112261089B CN202011038795.7A CN202011038795A CN112261089B CN 112261089 B CN112261089 B CN 112261089B CN 202011038795 A CN202011038795 A CN 202011038795A CN 112261089 B CN112261089 B CN 112261089B
- Authority
- CN
- China
- Prior art keywords
- program
- application program
- receiving
- flash
- reserved area
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于水下机器人电控***领域,具体说是一种水下滑翔机远程程序升级的方法及设备。本发明包括以下步骤:1)接收更新指令:水下滑翔机收到通过无线传输的更新程序指令;2)应用程序流程:设置接收应用程序位置,启动接收程序写入相应的Flash;接收完成后进行数据校验;检验数据无误后,修改当前应用程序位置标志位,写入Flash保留区后***进行重启;否则,返回启动接收程序写入相应的Flash的步骤;3)引导程序流程:设备重启后,引导程序通过查询Flash保留区,设置应用程序首地址并跳转相应的应用程序,实现程序升级。本发明的优点在于,主要升级程序在用户程序中,而跳转程序只负责跳转,大大减少了跳转程程序的负担,有效的提高了可靠性。
Description
技术领域
本发明属于水下机器人电控***领域,具体说是一种水下滑翔机远程程序升级的方法及设备。
背景技术
水下滑翔机是一种新型的无人水下机器人,是现代海洋环境观测和资源探测的重要工具,水下滑翔机具有续航能力长,功耗低,制造成本和维护成本低等特点,比较适合大量投放海洋进行观测的场景,因此水下滑翔机可以脱离母船实现长时间、大规模的海洋环境观测和资源探测。水下滑翔机一次布防可以连续在海洋工作几个月时间,甚至达到一年以上,在这过程中,水下滑翔机在海洋中对海洋数据进行持续的采集,并将数据存储到滑翔机中,通过卫星通信进行数据的传输以及指令的下发。
现有的水下滑翔机在一次长时间海洋的观测任务时,有时候需要对滑翔机***的应用软件进行升级,当远程程序传输过程中,容易发生意外导致原程序丢失或被无效数据替换,从而无法启动,且远程升级时由于单一存储替换的安全性不高,有漏洞时无法及时修复,可靠性不足。
发明内容
本发明目的是提供一种保证***有漏洞时的及时修复,提高***的可靠性统,增加***的新功能,提高***的实用性,以克服上述远程的升级的缺陷。
本发明为实现上述目的所采用的技术方案是:一种水下滑翔机远程程序升级的方法,包括以下步骤:
1)接收更新指令:水下滑翔机收到通过无线传输的更新程序指令;
2)应用程序流程:设置接收应用程序位置,启动接收程序写入相应的Flash;确认更新的应用程序接收完成,并进行数据校验;
检验数据无误后,修改当前应用程序位置标志位,写入Flash保留区后***进行重启;
否则,返回启动接收程序写入相应的Flash的步骤;
3)引导程序流程:设备重启后,引导程序通过查询Flash保留区,设置应用程序首地址,根据设置的应用程序首地址跳转相应的应用程序,实现程序升级。
所述设置接收应用程序位置,具体为:
查询当前应用程序位置是否为0;若应用程序位置是为0,则设置接收程序位置为1为下载缓冲区;否则,设置接收程序位置为0为下载缓冲区。
所述引导程序通过查询Flash保留区,设置应用程序首地址,具体为:
引导程序查询Flash保留区,判定当前应用程序标志位置是否为0;若当前应用程序标志位置为0,设置跳转地址为应用程序0首地址;否则,设置跳转地址为应用程序1首地址;
所述修改当前应用程序标志位,具体为:
若当前应用程序是0,则修改为应用程序1,反之,修改为应用程序0。
程序升级后,根据跳转状态,***判断应用程序运行或***重启,具体为:
引导程序跳转应用程序,若跳转成功,则***运行更新的应用程序程序;若跳转超时,则修改当前应用程序标志位,并写入Flash保留区后重启。
一种水下滑翔机远程程序升级设备,包括:
应用程序流程模块:收到通过无线传输的更新程序指令后,设置接收应用程序位置,启动接收程序写入相应的Flash;确认更新的应用程序接收完成,并进行数据校验;检验数据无误后,修改当前应用程序位置标志位,写入Flash保留区后***进行重启;否则,返回启动接收程序写入相应的Flash的步骤;
引导程序流程模块:当设备重启后,引导程序通过查询Flash保留区,设置应用程序首地址,根据设置的应用程序首地址跳转相应的应用程序,实现程序升级。
包括Flash,所述Flash设有:
Flash保留区,用于存储应用程序位置标志位;
两个缓冲存储区,交替作为缓冲区,分别用于存储当前应用程序和更新的应用程序,
引导程序存储区,用于存储引导程序。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法的步骤。
当程序被处理器执行时,实现所述的方法的步骤。
本发明具有以下有益效果及优点:
1.本发明由于通信卫星作为通信、程序升级的载体,使得***可以不受距离的限制,可以在全球任何一个位置进行***的通信与升级,而且通信卫星可以采用铱星、北斗短报文、天通一号等方式,传输过程中增加了相应的校验,提高由于传输误码导致的程序升级问题。
2.本发明主要升级程序在用户程序中,而跳转程序只负责跳转,这样大大减少了跳转程程序的负担,有效的提高了可靠性。
3.本发明由于设计两个程序存储区,使***在远程升级时的安全性有所提高,有效防止了当远程程序传输过程中,发生意外导致原程序丢失而无法启动的问题。
附图说明
图1本发明的***硬件框图;
图2本发明程序存储的具体方式;
图3本发明的用户程序流程图;
图4本发明的引导程序流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
如图1所示,为本发明的***硬件框图,其中岸基控制计算机5和卫星通信模块6组成了岸基监控***1,而在海上的水下滑翔机4中的主控制板9的单片机(MCU)7作为滑翔机的大脑通过卫星通信模块3依靠卫星***2实现了岸基监控***1与水上滑翔机4的通信,岸基监控***1可以实时控制海洋上的水下滑翔机4,实现任务指令的下发和科学数据的回传等。主控制板9上的单片机(MCU)7作为水下滑翔机的控制核心负责水下滑翔机的各种工作模式,而水下滑翔机的应用程序存储在单片机(MCU)7的内部闪存(Flash)8。当单片机(MCU)7启动时通过内部闪存(Flash)8的引导程序跳转应用程序实现单片机(MCU)7的运行。
基于水下滑翔机在海上工作时候的场景,岸基监控***通过卫星通信实现水下滑翔机的远程程序升级,卫星通信不限于一种,可以是多种,可以是铱星、北斗短报文、天通一号。
如图2所示,本发明中的水下滑翔机的主控板上的单片机(MCU)内部的闪存(Flash),此Flash具有1MB的存储空间,被划分为4个部分,Flash设有:
Flash保留区,用于存储应用程序位置标志位;
两个缓冲存储区,交替作为缓冲区,分别用于存储当前应用程序和更新的应用程序,
引导程序存储区,用于存储引导程序。
第一部分为引导程序5占用空间为64KB,这部分主要存储单片机(MCU)的引导程序,单片机(MCU)上电后首先执行引导程序,引导程序负责跳转应用程序。第二部分是应用程序0部分,占用476KB,这部分存储应用程序的初始版本,单片机(MCU)上电后首先启动引导程序5,引导程序首先跳转应用程序0(6),实现水下滑翔机的各种功能。第三部分应用程序1(3),占用476KB,此部分作为水下滑翔机更新应用程序的缓冲存储区,第四部分是保留部分,占用8KB,此部分可以存储当前用户程序位置标志位等信息。此部分内部的闪存(Flash)的地址空间为0x8000000至0x8100000(4)。
如图3~4所示,本发明远程升级的方法由两部分组成,用户程序流程与引导程序流程。用户程序流程,首次当程序运行时,如果在海上工作的水下滑翔机在通信状态下收到更新程序请求,控制***将查询当前的用户程序是否为0,如果为0说明应用程序1部分为下载缓冲区,如果不为0则说明应用程序0部分为下载缓冲区,然后启动接收程序并写入相应缓冲区的Flash,当接收完成时,***将校验传输数据是否无误,如果有误,则返回重新接收数据并写入相应缓冲区Flash,如果校验无误则修改当前用户程序的标志位,并写入Flash的保留区,然后重启。校验方式采用CRC8的校验方式,可根据情况选取不同的校验方式。
用户程序流程部分特征在于:采用两部分作为应用程序的存储空间,当一个为当前应用程序,另一个就作为程序缓冲接收区,两个应用程序区交替作为缓冲区,在传输的完成进行校验。
引导程序流程,当单片机(MCU)上电后启动引导程,引导程序启动后首先查询Flash保留区,如果当前用户程序标志位为0,则把跳转地址设置为程序0的首地址,如果当前用户程序标志位不为0,则把跳转地址设置为程序1的首地址,然后引导程序跳转相应的用户程序,如果跳转成功,则***顺利运行起来,如果跳转超时,则修改当前用户程序标志位(如果当前是0则修改为1,如果当前是1则修改为0)并写入Flash保留区,然后重启。
引导程序流程只负责调转用户程序,减轻引导程序负担,当调转刚升级的程序失败时,可以后滚到之前的程序,以有效防止当远程程序传输过程中,发生意外导致原程序丢失而无法启动的问题。
Claims (4)
1.一种水下滑翔机远程程序升级的方法,其特征在于,包括以下步骤:
1)接收更新指令:水下滑翔机收到通过无线传输的更新程序指令;
2) 应用程序流程:设置接收应用程序位置,启动接收程序写入相应的Flash;确认更新的应用程序接收完成,并进行数据校验;
所述设置接收应用程序位置,具体为:
查询当前应用程序位置是否为0;若应用程序位置是为0,则设置接收程序位置为1为下载缓冲区;否则,设置接收程序位置为0为下载缓冲区;
检验数据无误后,修改当前应用程序位置标志位,写入Flash保留区后***进行重启;
否则,返回启动接收程序写入相应的Flash的步骤;
所述修改当前应用程序标志位,具体为:
若当前应用程序是0,则修改为应用程序1,反之,修改为应用程序0;
3)引导程序流程:设备重启后,引导程序通过查询Flash保留区,设置应用程序首地址,根据设置的应用程序首地址跳转相应的应用程序,实现程序升级;
所述引导程序通过查询Flash保留区,设置应用程序首地址,具体为:
引导程序查询Flash保留区,判定当前应用程序标志位置是否为0;若当前应用程序标志位置为0,设置跳转地址为应用程序0首地址;否则,设置跳转地址为应用程序1首地址;
程序升级后,根据跳转状态,***判断应用程序运行或***重启,具体为:引导程序跳转应用程序,若跳转成功,则***运行更新的应用程序程序;若跳转超时,则修改当前应用程序标志位,并写入Flash保留区后重启。
2.一种水下滑翔机远程程序升级设备,其特征在于,包括:
应用程序流程模块:收到通过无线传输的更新程序指令后,设置接收应用程序位置,启动接收程序写入相应的Flash;确认更新的应用程序接收完成,并进行数据校验;检验数据无误后,修改当前应用程序位置标志位,写入Flash保留区后***进行重启;否则,返回启动接收程序写入相应的Flash的步骤;
设置接收应用程序位置,具体为:
查询当前应用程序位置是否为0;若应用程序位置是为0,则设置接收程序位置为1为下载缓冲区;否则,设置接收程序位置为0为下载缓冲区;
检验数据无误后,修改当前应用程序位置标志位,写入Flash保留区后***进行重启;否则,返回启动接收程序写入相应的Flash的步骤;
修改当前应用程序标志位,具体为:
若当前应用程序是0,则修改为应用程序1,反之,修改为应用程序0;
引导程序流程模块:当设备重启后,引导程序通过查询Flash保留区,设置应用程序首地址,根据设置的应用程序首地址跳转相应的应用程序,实现程序升级;
引导程序通过查询Flash保留区,设置应用程序首地址,具体为:
引导程序查询Flash保留区,判定当前应用程序标志位置是否为0;若当前应用程序标志位置为0,设置跳转地址为应用程序0首地址;否则,设置跳转地址为应用程序1首地址;
程序升级后,根据跳转状态,***判断应用程序运行或***重启,具体为:引导程序跳转应用程序,若跳转成功,则***运行更新的应用程序程序;若跳转超时,则修改当前应用程序标志位,并写入Flash保留区后重启;
所述Flash设有:
Flash保留区,用于存储应用程序位置标志位;
两个缓冲存储区,交替作为缓冲区,分别用于存储当前应用程序和更新的应用程序,
引导程序存储区,用于存储引导程序。
3.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1中所述的方法的步骤。
4.一种计算机设备,包括处理器和存储器,所述存储器存有程序,其特征在于,当程序被处理器执行时,实现权利要求1中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011038795.7A CN112261089B (zh) | 2020-09-28 | 2020-09-28 | 一种水下滑翔机远程程序升级的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011038795.7A CN112261089B (zh) | 2020-09-28 | 2020-09-28 | 一种水下滑翔机远程程序升级的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112261089A CN112261089A (zh) | 2021-01-22 |
CN112261089B true CN112261089B (zh) | 2022-07-05 |
Family
ID=74234250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011038795.7A Active CN112261089B (zh) | 2020-09-28 | 2020-09-28 | 一种水下滑翔机远程程序升级的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112261089B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092647A (zh) * | 2012-12-29 | 2013-05-08 | 聚光科技(杭州)股份有限公司 | 嵌入式***的在线升级方法 |
CN103533041A (zh) * | 2013-10-09 | 2014-01-22 | 哈尔滨工程大学 | 一种面向水下无人航行器的软件远程更新方法 |
CN108196859A (zh) * | 2017-12-26 | 2018-06-22 | 新诺北斗航科信息技术(厦门)股份有限公司 | 一种基于ais通信的船载终端远程升级方法 |
CN110231952A (zh) * | 2019-06-17 | 2019-09-13 | 合肥巨一动力***有限公司 | 一种ecu程序备份及循环升级控制方法及装置 |
CN111475194A (zh) * | 2020-03-20 | 2020-07-31 | 创驱(上海)新能源科技有限公司 | 一种用于新能源汽车控制器的软件升级方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530146B (zh) * | 2013-09-16 | 2016-09-07 | 成都交大光芒科技股份有限公司 | 低功耗嵌入式设备远程无线升级方法 |
CN104090796B (zh) * | 2014-07-08 | 2017-06-09 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和*** |
CN111459508B (zh) * | 2020-03-27 | 2023-12-01 | 北京经纬恒润科技股份有限公司 | 一种BootLoader自升级的方法及*** |
-
2020
- 2020-09-28 CN CN202011038795.7A patent/CN112261089B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092647A (zh) * | 2012-12-29 | 2013-05-08 | 聚光科技(杭州)股份有限公司 | 嵌入式***的在线升级方法 |
CN103533041A (zh) * | 2013-10-09 | 2014-01-22 | 哈尔滨工程大学 | 一种面向水下无人航行器的软件远程更新方法 |
CN108196859A (zh) * | 2017-12-26 | 2018-06-22 | 新诺北斗航科信息技术(厦门)股份有限公司 | 一种基于ais通信的船载终端远程升级方法 |
CN110231952A (zh) * | 2019-06-17 | 2019-09-13 | 合肥巨一动力***有限公司 | 一种ecu程序备份及循环升级控制方法及装置 |
CN111475194A (zh) * | 2020-03-20 | 2020-07-31 | 创驱(上海)新能源科技有限公司 | 一种用于新能源汽车控制器的软件升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112261089A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415718B (zh) | 一种应用于星载软件在线更新的BootLoader设计方法 | |
CN110750292B (zh) | 一种基于NB-IoT的终端远程自动更新*** | |
CN101557583B (zh) | 直放站设备嵌入式软件的远程升级与版本切换方法 | |
CN109189445A (zh) | 一种物联网设备程序升级的方法 | |
CN104102518B (zh) | 一种双cpu***及其程序升级方法 | |
CN106257417A (zh) | 引导程序升级方法、嵌入式设备、控制设备及嵌入式*** | |
CN109002310A (zh) | 固件升级方法 | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
CN105677398A (zh) | 一种通用的嵌入式计算机软件在线升级方法 | |
CN106874054B (zh) | 一种直放站内模块程序在线升级方法与*** | |
CN109189434A (zh) | 一种电能表的在线升级方法 | |
CN106909352A (zh) | 一种嵌入式设备的固件升级方法 | |
WO2014183557A1 (zh) | 一种星敏感器在轨维护方法 | |
JP2018504730A (ja) | プリセット組み込み式システムでスクリプトオペレーションを実現するシステム | |
CN107562493A (zh) | 芯片在线升级方法及计算机可读存储介质 | |
CN106506649A (zh) | 一种车载控制终端的远程在线升级方法及装置 | |
CN111309363A (zh) | 基于Contiki操作***的在线升级方法及装置 | |
CN112261089B (zh) | 一种水下滑翔机远程程序升级的方法及设备 | |
CN112540780A (zh) | 一种编队无人机批量固件升级实现***、方法 | |
CN113110860A (zh) | 一种嵌入式终端远程软件更新方法 | |
CN103533534B (zh) | 一种dect手机的固件无线升级方法 | |
CN102736929A (zh) | 液压支架电液控制***端头控制器软件远程在线升级方法 | |
CN106569864A (zh) | 一种电池管理单元的远程在线升级方法及*** | |
CN106775636B (zh) | 电池固件处理方法、装置和充电柜*** | |
CN107943500A (zh) | 一种组合仪表软件更新方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |