CN115080091A - 一种卫星通信设备在线升级mcu固件的方法及系统 - Google Patents

一种卫星通信设备在线升级mcu固件的方法及系统 Download PDF

Info

Publication number
CN115080091A
CN115080091A CN202210890353.8A CN202210890353A CN115080091A CN 115080091 A CN115080091 A CN 115080091A CN 202210890353 A CN202210890353 A CN 202210890353A CN 115080091 A CN115080091 A CN 115080091A
Authority
CN
China
Prior art keywords
firmware
mcu
upper computer
upgrading
software
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
CN202210890353.8A
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.)
CHENGDU GUOHENG SPACE TECHNOLOGY ENGINEERING CO LTD
Original Assignee
CHENGDU GUOHENG SPACE TECHNOLOGY ENGINEERING CO LTD
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 CHENGDU GUOHENG SPACE TECHNOLOGY ENGINEERING CO LTD filed Critical CHENGDU GUOHENG SPACE TECHNOLOGY ENGINEERING CO LTD
Priority to CN202210890353.8A priority Critical patent/CN115080091A/zh
Publication of CN115080091A publication Critical patent/CN115080091A/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

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

Abstract

本发明公开了一种卫星通信设备在线升级MCU固件的方法及系统,方法先在卫星通信设备上电后进行串口初始化,初始化完成后若在预设时间内接收到上位机握手指令,则boot软件进入轮询状态;boot软件通过轮询接收到上位机待更新固件长度指令后,计算出待更新固件长度所需要的flash块并擦除对应的flash空间;接收到更新固件指令后,首先解析固件包的固件数据长度,并启动DMA操作接收固件包;在接收完成后进行数据校验,根据校验结果发送对应的更新成功或更新失败指令;接收到更新成功指令后,直接软重启MCU固件,由boot软件引导MCU应用程序运行。本发明提高了设备的软件升级效率,减少了升级成本和升级时间。

Description

一种卫星通信设备在线升级MCU固件的方法及系统
技术领域
本发明涉及嵌入式设备升级领域,尤其涉及一种卫星通信设备在线升级MCU固件的方法及系统。
背景技术
在卫星通信终端或模块中, MCU一般用于存储系统的配置信息、上电后加载配置信息并根据该信息配置其他功能模块,以及在系统配套上位机进行通信,在系统运行中修改系统工作参数等功能。
MCU在出厂时会内置应用程序代码。代码在终端或模块生产过程中通常通过专用下载器直接下载到MCU内部flash中。但该方法在后续维护过程中存在很大的局限性。在设备出厂后如需进行软件升级则需要进行拆机或者拆盖后升级,且还需升级的工程师了解当前终端硬件结构、并具备一定的专业知识,固件升级流程较为复杂繁琐,且升级成本较高,所需时间较长,需要进一步改进。
发明内容
本发明的目的在于克服现有技术的不足,提供一种卫星通信设备在线升级MCU固件的方法及系统,方法由MCU的串口和上位机进行通信实现,MCU固件内部先利用boot软件与上位机通信,更新并加载MCU应用程序,然后利用MCU应用程序实现对应的系统功能,提高了设备的软件升级效率,减少了升级成本和升级时间。
本发明的目的是通过以下技术方案来实现的:
一种卫星通信设备在线升级MCU固件的方法,包括:
步骤一:卫星通信设备上电,MCU固件内部root软件进行串口初始化,初始化完成后若在预设时间内接收到上位机握手指令,则boot软件进入轮询状态;
步骤二:boot软件通过轮询接收到上位机待更新固件长度指令后,计算出待更新固件长度所需要的flash块并擦除对应的flash空间;
步骤三:boot软件接收到更新固件指令后,首先解析固件包的固件数据长度,并启动DMA操作接收固件包;在接收完成后进行数据校验,根据校验结果发送对应的更新成功或更新失败指令;
步骤四:boot软件接收到更新成功指令后,直接软重启MCU固件,由boot软件引导MCU应用程序运行。
具体的,所述步骤一之前还包括对MCU固件存储空间进行划分,具体为:MCU内部flash的前16KB存储空间用于存放boot软件;MCU内部flash 16KB地址后的存储空间用于存放MCU应用程序代码。
具体的,所述步骤一具体为:在卫星通信设备上电后,MCU固件内部root软件先进行串口初始化,串口初始化完成后,若在预设时间内boot软件接收到上位机的握手指令则不进行应用软件引导运行流程,并通过串口与上位机进行远程通信,boot软件发送确认握手指令并进入轮询状态;若在预设时间内未接收到上位机的握手指令,则boot软件跳转到MCU应用程序地址运行当前MCU应用程序。
具体的,所述步骤二具体包括:boot软件通过轮询状态接收到上位机发送的待更新固件长度指令后,向上位机发送确认指令并根据MCU芯片的flash结构计算待更新固件长度所需的flash块数量,并根据flash块数量在boot软件预留的16KB空间后擦除对应数量的flash空间。
具体的,所述步骤三具体包括:boot软件接收到上位机发送的更新固件指令后,先解析出固件包的固件数据长度并启动DMA操作接收固件包;待当前固件包接收完成后进行数据校验,MCU根据校验结果向上位机发送对应的更新成功或更新失败指令。
一种卫星通信设备在线升级MCU固件的系统,采用上述一种卫星通信设备在线升级MCU固件的方法实现,包括上位机和MCU;所述MCU包括处理器、存储器和通信串口;处理器分别与处理器和通信串口连接;上位机通过通信串口与处理器建立通信连接;所述存储器存储有boot软件程序和MCU应用程序。
具体的,所述存储器为flash存储器。
本发明的有益效果:
1.缩短了升级流程,在MCU固件内部的前16K空间集成了boot软件,利用boot软件实现设备与上位机之间的通信,在系统上电后等待约5MS时间,如在此时间内boot软件接收到上位机握手指令,则不进行应用软件引导运行流程,系统一直轮询,等待上位机下发相应数据,进行MCU应用文件更新,并将文件存储在MCU内部的后16K空间,减小了对技术人员水平依赖。最后利用MCU应用程序实现对应的系统功能,提高了设备的软件升级效率,减少了升级成本和升级时间。
附图说明
图1是本发明的方法步骤流程图;
图2是卫星通信设备在线升级MCU固件方案上位机软件流程图;
图3是卫星通信设备在线升级MCU固件方案MCU boot软件流程图;
图4是卫星通信设备在线升级MCU固件方案系统框架图。
具体实施方式
为了对本发明的技术特征、目的和有益效果有更加清楚的理解,现对本发明的技术方案精选以下详细说明。显然,所描述的实施案例是本发明一部分实施例,而不是全部实施例,不能理解为对本发明可实施范围的限定。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的其他所有实施例,都属于本发明的保护范围。
实施例一:
目前MCU在出厂时会内置应用程序代码。代码在终端或模块生产过程中通常通过专用下载器直接下载到MCU内部flash中。但该方法在后续维护过程中存在很大的局限性。在设备出厂后如需进行软件升级则需要进行拆机或者拆盖后升级,且还需升级的工程师了解当前终端硬件结构、并具备一定的专业知识,固件升级流程较为复杂繁琐,且升级成本较高,所需时间较长,需要进一步改进。因此,本发明针对上述缺陷提出了一种卫星通信设备在线升级MCU固件的方法,包含一个boot软件和一个PC端上位机软件,方法详细的实现方案如下:
本实施例中,如图1所示,一种卫星通信设备在线升级MCU固件的方法,包括:
步骤一:卫星通信设备上电,MCU固件内部root软件进行串口初始化,初始化完成后若在预设时间内接收到上位机握手指令,则boot软件进入轮询状态;
步骤二:boot软件通过轮询接收到上位机待更新固件长度指令后,计算出待更新固件长度所需要的flash块并擦除对应的flash空间;
步骤三:boot软件接收到更新固件指令后,首先解析固件包的固件数据长度,并启动DMA操作接收固件包;在接收完成后进行数据校验,根据校验结果发送对应的更新成功或更新失败指令;
步骤四:boot软件接收到更新成功指令后,直接软重启MCU固件,由boot软件引导MCU应用程序运行。
本实施例中,步骤一实施之前还包括对MCU固件存储空间进行划分,即对flash空间进行划分,具体划分操作为:将MCU内部flash的前16KB存储空间用于存放boot软件;MCU内部flash 16KB地址后的存储空间用于存放MCU应用程序代码。
本实施例中,步骤一具体为:在卫星通信设备上电后,MCU固件内部root软件先进行串口初始化,串口初始化完成后,若在预设时间内boot软件接收到上位机的握手指令则不进行应用软件引导运行流程,并通过串口与上位机进行远程通信,boot软件发送确认握手指令并进入轮询状态;若在预设时间内未接收到上位机的握手指令,则boot软件跳转到MCU应用程序地址运行当前MCU应用程序。其中,预设时间为5ms。
本实施例中,步骤二具体包括:boot软件通过轮询状态接收到上位机发送的待更新固件长度指令后,向上位机发送确认指令并根据MCU芯片的flash结构计算待更新固件长度所需的flash块数量,并根据flash块数量在boot软件预留的16KB空间后擦除对应数量的flash空间。
本实施例中,步骤三具体包括:boot软件接收到上位机发送的更新固件指令后,先解析出固件包的固件数据长度并启动DMA操作接收固件包;待当前固件包接收完成后进行数据校验,MCU根据校验结果向上位机发送对应的更新成功或更新失败指令。
其中,对于DMA操作,目前的操作流程为:1.从外围设备发送DMA请求。2.CPU接受响应后,把CPU工作改编成DMA操作方式,DMA控制器接管CPU对总线的控制。3.由DMA控制器对对内存寻址,即决定数据传送的内存单元的地址和数据传送个数的技术,并完成数据传送操作。4.向CPU报告DMA操作结束。
DMA有三种操作方式:数据块传送方式、周期挪用方式、交替访存方式。其中,数据块传送方式:在I/O接口电路中设置一个比较大的数据缓冲区,一般能存放一个数据块,I/O接口电路与内存之间的数据交换以数据块为单位。总线仲裁器判定究竟是DMA控制器还是CPU能获得总线的使用权。
周期挪用方式:当I/O接口没有DMA请求时,CPU按程序要求访问内存;一旦I/P接口有DMA请求,则I/O接口挪用一个或几个周期。缺点是:数据输入或庶出过程中实际占用了CPU时间。
交替访存方式:CPU与DMA控制器交替访问内存。不需要总线使用权的申请、建立和归还过程。效率高,但实现起来有困难,基本上不被使用。
综上,本实施例采用数据块传送方式进行固件包的数据交换,大大提高了升级效率。
本实施例中,如图2所示,PC端的上位机软件处理流程为:
1)上位机软件开始运行后先由用户打开和MCU连接的对应的串口,并选择MCU应用固件文件。在用户点击“开始更新”按钮后,上位机轮询快速发送握手指令,直到收到MCU确认指令后进行下一步。
2)收到MCU握手确认之后MCU发送当前MCU应用固件文件长度信息,待收到确认指令后进行下一步。
3)收到MCU固件长度确认指令后,上位机开始按照固定长度拆分当前固件文件,并发送一包固定长度的固件文件包后等待MCU回复确认信息。
4)如MCU回复失败信息,则重发当前数据包。
5)如MCU回复确认信息,则检查当前固件文件剩余长度是否大于固定的拆包长度。如大于则返回上述第3步再次执行。
6)如MCU回复确认信息,固件文件剩余长度下于固定的拆包长度。则发送剩余所有数据。并等待MCU回复确认信息。
7)如MCU回复失败信息,则重发当前数据包。
8)如MCU回复确认信息,则发送固件更新完成指令。
本实施例中,如图3所示,卫星通信设备在线升级MCU固件方案MCU boot软件流程具体如下:
1)boot软件上电完成相应串口初始化后等待约5MS时间,如在此时间内boot软件接收到上位机握手指令,则不进行应用软件引导运行流程,系统一直轮询,等待上位机下发相应数据。
2)boot软件接收到上位机待更新固件长度指令后,根据相应芯片flash结构计算当前固件长度所需要的flash块,并在紧挨boot软件预留的16KB空间后擦除相应块。
3)boot软件接收到待更新固件数据后,首先解析当前固件数据长度,并启动DMA操作。待当前包接收完成后进行数据校验,根据校验结果发送对应的成功或者失败指令。
4)boot软件接收到更新完成指令后,直接软重启MCU。由boot软件引导应用程序执行。
本实施例中,软重启是软件机制,其通过信号或者其它方式通知各个模块设备需要重启,模块需要自己实现模块的重启,从而实现设备的重启。
实施例二:
本实施例中,还提供了一种卫星通信设备在线升级MCU固件的系统,采用上述实施例一中的一种卫星通信设备在线升级MCU固件的方法实现。
如图4所示,系统包括上位机和MCU。其中,MCU包括处理器、存储器和通信串口;处理器分别与处理器和通信串口连接;上位机通过通信串口与处理器建立通信连接;所述存储器存储有boot软件程序和MCU应用程序。
本实施例中,存储器采用的是flash存储器。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。

Claims (7)

1.一种卫星通信设备在线升级MCU固件的方法,其特征在于,包括:
步骤一:卫星通信设备上电,MCU固件内部root软件进行串口初始化,初始化完成后若在预设时间内接收到上位机握手指令,则boot软件进入轮询状态;
步骤二:boot软件通过轮询接收到上位机待更新固件长度指令后,计算出待更新固件长度所需要的flash块并擦除对应的flash空间;
步骤三:boot软件接收到更新固件指令后,首先解析固件包的固件数据长度,并启动DMA操作接收固件包;在接收完成后进行数据校验,根据校验结果发送对应的更新成功或更新失败指令;
步骤四:boot软件接收到更新成功指令后,直接软重启MCU固件,由boot软件引导MCU应用程序运行。
2. 根据权利要求1所述的一种卫星通信设备在线升级MCU固件的方法,其特征在于,所述步骤一之前还包括对MCU固件存储空间进行划分,具体为:MCU内部flash的前16KB存储空间用于存放boot软件;MCU内部flash 16KB地址后的存储空间用于存放MCU应用程序代码。
3.根据权利要求1所述的一种卫星通信设备在线升级MCU固件的方法,其特征在于,所述步骤一具体为:在卫星通信设备上电后,MCU固件内部root软件先进行串口初始化,串口初始化完成后,若在预设时间内boot软件接收到上位机的握手指令则不进行应用软件引导运行流程,并通过串口与上位机进行远程通信,boot软件发送确认握手指令并进入轮询状态;若在预设时间内未接收到上位机的握手指令,则boot软件跳转到MCU应用程序地址运行当前MCU应用程序。
4.根据权利要求1所述的一种卫星通信设备在线升级MCU固件的方法,其特征在于,所述步骤二具体包括:boot软件通过轮询状态接收到上位机发送的待更新固件长度指令后,向上位机发送确认指令并根据MCU芯片的flash结构计算待更新固件长度所需的flash块数量,并根据flash块数量在boot软件预留的16KB空间后擦除对应数量的flash空间。
5.根据权利要求1所述的一种卫星通信设备在线升级MCU固件的方法,其特征在于,所述步骤三具体包括:boot软件接收到上位机发送的更新固件指令后,先解析出固件包的固件数据长度并启动DMA操作接收固件包;待当前固件包接收完成后进行数据校验,MCU根据校验结果向上位机发送对应的更新成功或更新失败指令。
6.一种卫星通信设备在线升级MCU固件的系统,采用上述权利要求1~5任意一项所述的一种卫星通信设备在线升级MCU固件的方法实现,其特征在于,包括上位机和MCU;所述MCU包括处理器、存储器和通信串口;处理器分别与处理器和通信串口连接;上位机通过通信串口与处理器建立通信连接;所述存储器存储有boot软件程序和MCU应用程序。
7.根据权利要求6所述的一种卫星通信设备在线升级MCU固件的系统,其特征在于,所述存储器为flash存储器。
CN202210890353.8A 2022-07-27 2022-07-27 一种卫星通信设备在线升级mcu固件的方法及系统 Pending CN115080091A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210890353.8A CN115080091A (zh) 2022-07-27 2022-07-27 一种卫星通信设备在线升级mcu固件的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210890353.8A CN115080091A (zh) 2022-07-27 2022-07-27 一种卫星通信设备在线升级mcu固件的方法及系统

Publications (1)

Publication Number Publication Date
CN115080091A true CN115080091A (zh) 2022-09-20

Family

ID=83243474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210890353.8A Pending CN115080091A (zh) 2022-07-27 2022-07-27 一种卫星通信设备在线升级mcu固件的方法及系统

Country Status (1)

Country Link
CN (1) CN115080091A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700061A (zh) * 2023-04-12 2023-09-05 广东为辰信息科技有限公司 一种基于安全启动技术的快速启动方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700061A (zh) * 2023-04-12 2023-09-05 广东为辰信息科技有限公司 一种基于安全启动技术的快速启动方法
CN116700061B (zh) * 2023-04-12 2024-05-03 广东为辰信息科技有限公司 一种基于安全启动技术的快速启动方法

Similar Documents

Publication Publication Date Title
CN103559066B (zh) 基于canopen协议的嵌入式软件升级方法
US7562360B2 (en) Method and system for firmware downloads
CN109669729B (zh) 一种处理器的启动引导方法
US10037170B2 (en) Motherboard and a method for boot-up
CN105786573A (zh) 快速升级智能家居中ZigBee控制器的方法及系统
CN111240753A (zh) 引导程序的加载方法、存储介质及嵌入式终端
CN115080091A (zh) 一种卫星通信设备在线升级mcu固件的方法及系统
CN110175056A (zh) 一种异构平台远程动态加载多目标fpga的控制装置及控制方法
CN113010470A (zh) 边缘节点远程控制系统、方法、设备及存储介质
CN111897560A (zh) 基于NB-IoT模块的程序升级系统、方法、设备以及存储介质
WO2021018208A1 (zh) 固件升级方法及装置、电子设备、存储介质
CN111414182B (zh) 一种基于spi的fpga远程升级方法
CN110908706B (zh) 一种多版本软件的管理方法
US7945919B2 (en) Information processing apparatus and device controller driving/controlling method
CN109189705B (zh) 一种usb扩展方法、装置、设备、存储介质及系统
CN116700765A (zh) 伺服驱动器的固件升级方法及装置、伺服驱动器
CN116560678A (zh) 固件更新方法、装置、存储介质及电子装置
CN109697077B (zh) 硬盘固件启动方法、装置及设备
CN115658582A (zh) 一种pcie设备扫描方法及服务器
CN115729633A (zh) 主从式多处理器系统的控制方法、装置和计算机设备
US20020078339A1 (en) Booting system and booting method for an assistant operation system
CN111447514B (zh) 无源光网络sfp ont的eeprom系统以及其数据更新控制方法
CN113961497A (zh) 通信电路系统、方法、芯片以及存储介质
CN106445571B (zh) 主机板及开机的方法
EP3891594B1 (en) Memory control system with a sequence processing unit

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