掌桥专利:专业的专利平台
掌桥专利
首页

一种服务器中MCU程序烧录方法、装置、设备及介质

文献发布时间:2023-06-19 19:28:50


一种服务器中MCU程序烧录方法、装置、设备及介质

技术领域

本发明涉及服务器技术领域,尤其涉及一种服务器中MCU程序烧录方法、装置、设备及介质。

背景技术

微控制单元(Microcontroller Unit,简称MCU),也称单片微型计算机(SingleChip Microcomputer)或者单片机,是把中央处理器(Central Process Unit,简称CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。MCU上需要运行固件程序才能执行相应的工作,而在服务器更新固件版本的过程中,MCU固件程序的版本刷新至关重要。

目前,传统服务器通常采用被动更新方式对MCU的版本进行更新,比如通过烧录器烧录MCU。然而,传统的烧录方式往往需要将服务器进行关机断电和拆开机箱,操作复杂且影响到服务器的正常运行。因此,如何提供一种解决上述技术问题的方案是本领域技术人员需要解决的问题。

发明内容

有鉴于此,有必要针对以上技术问题,提供一种服务器中MCU程序烧录方法、装置、设备及介质。

根据本发明的第一方面,提供了一种服务器中MCU程序烧录方法,所述方法包括:

通过网络将目标版本MCU程序导入到BMC的预设存储路径下;

在服务器运行过程中利用BMC实时监测用户输入的指令;

在服务器运行过程中利用BMC实时监测MCU工作状态;

响应于用户输入的指令属于MCU程序更新指令,和/或MCU工作状态异常,则利用BMC将预设存储路径下的所述目标版本MCU程序烧录到MCU。

在一些实施例中,通过网络将目标版本MCU程序导入到BMC的预设存储路径下,包括:

获取最新版本MCU程序,并将最新版本MCU程序作为目标版本MCU程序;

通过BMC的管理网络下载所述目标版本MCU程序,并存储在BMC的预设存储路径下。

在一些实施例中,在服务器运行过程中利用BMC实时监测用户输入的指令,包括:

响应于服务器上电后执行以下操作:

由BMC监测web界面上MCU更新按钮的触发情况;

响应于web界面上MCU更新按钮被触发,则确认用户输入的指令属于MCU程序更新指令;

响应于web界面上MCU更新按钮未被触发,则确认用户输入的指令不属于MCU程序更新指令。

在一些实施例中,在服务器运行过程中利用BMC实时监测MCU工作状态,包括:

响应于服务器上电后执行以下操作:

由BMC通过I2C协议从MCU中实时获取MCU的心跳信息,并基于以下规则确定MCU工作状态:

从接收到任一条心跳信息开始计时;

响应于计时时间未超过预设时间前已经接收到下一条心跳信息,则将计时清零并重新开始计时,并确定MCU工作状态正常;

响应于计时时间超过预设时间仍未接收到下一条心跳信息,则确定MCU工作状态异常。

在一些实施例中,利用BMC将预设存储路径下的所述目标版本MCU程序烧录到MCU,包括:

由BMC通过GPIO引脚拉高MCU的BOOT0,并发送低脉冲至MCU的RESET引脚,使所述MCU进入bootloader模式;

由BMC通过串口发送更新指令、以及预设存储路径下的所述目标版本MCU程序至MCU;

由BMC通过GPIO引脚拉低MCU的BOOT0,并发送低脉冲至MCU的RESET引脚,使MCU回到正常模式并运行所述目标版本MCU程序;

由BMC根据所述目标版本MCU程序更新web界面上的MCU版本信息。

在一些实施例中,由BMC通过串口发送更新指令、以及预设存储路径下的所述目标版本MCU程序至MCU,包括:

由BMC运行串口初始化程序;

由BMC通过串口依次发送握手信号、擦除命令、写命令至MCU;

响应于BMC收到应答信号则确认命令执行成功;

由BMC通过串口将所述目标版本MCU程序发送至MCU内部存储器。

在一些实施例中,由BMC运行串口初始化程序,包括:

将串口的波特率设置为57600位/秒;

将串口的数据位设置为8位;

将串口的停止位设置1位;

将串口的校验位为偶校验。

根据本发明的第二方面,提供了一种服务器中MCU程序烧录装置,所述装置包括:

导入模块,配置用于通过网络将目标版本MCU程序导入到BMC的预设存储路径下;

指令监测模块,配置用于在服务器运行过程中利用BMC实时监测用户输入的指令;

状态监测模块,配置用于在服务器运行过程中利用BMC实时监测MCU工作状态;

烧录模块,配置用于响应于用户输入的指令属于MCU程序更新指令或MCU工作状态异常,则利用BMC将预设存储路径下的所述目标版本MCU程序烧录到MCU。

根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:

至少一个处理器;以及

存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的服务器中MCU程序烧录方法。

根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的服务器中MCU程序烧录方法。

上述一种服务器中MCU程序烧录方法,利用BMC通过网络获取目标版本MCU程序,并在收到MCU程序更新指令或者监测到MCU工作异常时,还利用BMC在线发送烧录指令及新版本的程序至MCU,从而实现对MCU的在线烧录,进而保证服务器的正常运行,可极大地节省烧录时间、简化操作复杂性,显著提升程序烧录的灵活性。

此外,本发明还提供了一种服务器中MCU程序烧录装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明一个实施例提供的一种服务器中MCU程序烧录方法的流程图;

图2为本发明另一个实施例提供的用于最新版本MUC程序的另一种服务器中MCU程序烧录方法的流程图;

图3为本发明一个实施例提供的BMC在线烧录MCU程序的硬件连接示意图;

图4为本发明另一个实施例提供的一种服务器中MCU程序烧录装置的结构示意图;

图5为本发明另一个实施例中计算机设备的内部结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

在一个实施例中,请参照图1所示,本发明提供了一种服务器中MCU程序烧录方法100,具体来说,所述方法包括以下步骤:

步骤101,通过网络将目标版本MCU程序导入到BMC的预设存储路径下;

在本实施例中,目标版本MCU程序可以是任意已有MCU程序,目标版本MCU程序也可以是新生成的最新版本MCU程序。

步骤102,在服务器运行过程中利用BMC实时监测用户输入的指令;

步骤103,在服务器运行过程中利用BMC实时监测MCU工作状态;

步骤104,响应于用户输入的指令属于MCU程序更新指令,和/或MCU工作状态异常,则利用BMC将预设存储路径下的所述目标版本MCU程序烧录到MCU。

上述一种服务器中MCU程序烧录方法,利用BMC通过网络获取目标版本MCU程序,并在收到MCU程序更新指令或者监测到MCU工作异常时,还利用BMC在线发送烧录指令及新版本的程序至MCU,从而实现对MCU的在线烧录,进而保证服务器的正常运行,可极大地节省烧录时间、简化操作复杂性,显著提升程序烧录的灵活性。

在一些实施例中,步骤101,通过网络将目标版本MCU程序导入到BMC的预设存储路径下,包括:

获取最新版本MCU程序,并将最新版本MCU程序作为目标版本MCU程序;

通过BMC的管理网络下载所述目标版本MCU程序,并存储在BMC的预设存储路径下。

在一些实施例中,步骤102,在服务器运行过程中利用BMC实时监测用户输入的指令,包括:

响应于服务器上电后执行以下操作:

由BMC监测web界面上MCU更新按钮的触发情况;

响应于web界面上MCU更新按钮被触发,则确认用户输入的指令属于MCU程序更新指令;

响应于web界面上MCU更新按钮未被触发,则确认用户输入的指令不属于MCU程序更新指令。

在一些实施例中,步骤103,在服务器运行过程中利用BMC实时监测MCU工作状态,包括:

响应于服务器上电后执行以下操作:

由BMC通过I2C协议从MCU中实时获取MCU的心跳信息,并基于以下规则确定MCU工作状态:

从接收到任一条心跳信息开始计时;

响应于计时时间未超过预设时间前已经接收到下一条心跳信息,则将计时清零并重新开始计时,并确定MCU工作状态正常;

响应于计时时间超过预设时间仍未接收到下一条心跳信息,则确定MCU工作状态异常。

在一些实施例中,步骤104中的利用BMC将预设存储路径下的所述目标版本MCU程序烧录到MCU,包括:

由BMC通过GPIO引脚拉高MCU的BOOT0,并发送低脉冲至MCU的RESET引脚,使所述MCU进入bootloader模式;

由BMC通过串口发送更新指令、以及预设存储路径下的所述目标版本MCU程序至MCU;

由BMC通过GPIO引脚拉低MCU的BOOT0,并发送低脉冲至MCU的RESET引脚,使MCU回到正常模式并运行所述目标版本MCU程序;

由BMC根据所述目标版本MCU程序更新web界面上的MCU版本信息。

在一些实施例中,由BMC通过串口发送更新指令、以及预设存储路径下的所述目标版本MCU程序至MCU,包括:

由BMC运行串口初始化程序;

由BMC通过串口依次发送握手信号、擦除命令、写命令至MCU;

响应于BMC收到应答信号则确认命令执行成功;

由BMC通过串口将所述目标版本MCU程序发送至MCU内部存储器。

在一些实施例中,由BMC运行串口初始化程序,包括:

将串口的波特率设置为57600位/秒;

将串口的数据位设置为8位;

将串口的停止位设置1位;

将串口的校验位为偶校验。

在又一个实施例中,通常MCU所烧录的程序都是最新版本程序,为了便于理解本发明的方案下面以持续将最新版本MCU程序烧录到MCU的场景为例进行详细说,请参照图2和图3所示,本实施例提供了另一种服务器中MCU程序烧录方法200,实施过程参考如下:

步骤201,预先通过BMC管理网络将最新版本的MCU程序导入到固定路径下;

步骤202,在服务器运行的过程中,实时监测用户更新指令和MCU的工作状态;具体实时监测用户更新指令和MCU的工作状态包括:

(1)BMC通过web界面上的MCU更新按钮判断用户是否下发了更新指令;

(2)BMC通过I2C协议从MCU中实时获取所述MCU的心跳信息,以此来检测所述MCU的工作状态;

(3)从接收到任一条心跳信息开始计时,当计时时间达到设定的阈值前已经接收到下一条心跳信息,则将计时清零并重新开始计时,且确定所述MCU的工作状态正常;若到达预设的时间阈值仍未接收到下一条心跳信息,则确定所述MCU的工作状态异常。

步骤203,当BMC接收到MCU程序更新指令或者监测到MCU工作异常时,通过GPIO引脚拉高MCU的BOOT0并发送低脉冲至MCU的RESET引脚,使所述MCU进入bootloader模式。

步骤204,通过串口在线发送烧录指令及新版本的程序至MCU。

步骤205,使MCU回到正常模式并运行程序,更新web界面上的MCU版本信息。

本实施例的一种服务器中MCU程序烧录方法至少具备以下有益技术效果:

(1)解决了传统MCU烧录方式需要断电拆机的问题,简化了操作流程;

(2)可在MCU运行异常的情况下实现对MCU的自主更新最新版本MCU程序,保证了服务器的正常运行;

(3)适用于市面上绝大多数的BMC芯片和MCU芯片,具有非常广泛的应用前景。

根据本发明的另一方面,请参照图4所示,本发明还提供了一种服务器中MCU程序烧录装置300,所述装置包括:

导入模块301,配置用于通过网络将目标版本MCU程序导入到BMC的预设存储路径下;

指令监测模块302,配置用于在服务器运行过程中利用BMC实时监测用户输入的指令;

状态监测模块303,配置用于在服务器运行过程中利用BMC实时监测MCU工作状态;

烧录模块304,配置用于响应于用户输入的指令属于MCU程序更新指令或MCU工作状态异常,则利用BMC将预设存储路径下的所述目标版本MCU程序烧录到MCU。

上述一种服务器中MCU程序烧录装置,利用BMC通过网络获取目标版本MCU程序,并在收到MCU程序更新指令或者监测到MCU工作异常时,还利用BMC在线发送烧录指令及新版本的程序至MCU,从而实现对MCU的在线烧录,进而保证服务器的正常运行,可极大地节省烧录时间、简化操作复杂性,显著提升程序烧录的灵活性。

在一些实施例中,导入模块301进一步配置用于:

获取最新版本MCU程序,并将最新版本MCU程序作为目标版本MCU程序;

通过BMC的管理网络下载所述目标版本MCU程序,并存储在BMC的预设存储路径下。

在一些实施例中,所述指令监测模块302进一步配置用于:

响应于服务器上电后执行以下操作:

由BMC监测web界面上MCU更新按钮的触发情况;

响应于web界面上MCU更新按钮被触发,则确认用户输入的指令属于MCU程序更新指令;

响应于web界面上MCU更新按钮未被触发,则确认用户输入的指令不属于MCU程序更新指令。

在一些实施例中,状态监测模块303进一步配置用于:

响应于服务器上电后执行以下操作:

由BMC通过I2C协议从MCU中实时获取MCU的心跳信息,并基于以下规则确定MCU工作状态:

从接收到任一条心跳信息开始计时;

响应于计时时间未超过预设时间前已经接收到下一条心跳信息,则将计时清零并重新开始计时,并确定MCU工作状态正常;

响应于计时时间超过预设时间仍未接收到下一条心跳信息,则确定MCU工作状态异常。

在一些实施例中,烧录模块304进一步配置用于:

由BMC通过GPIO引脚拉高MCU的BOOT0,并发送低脉冲至MCU的RESET引脚,使所述MCU进入bootloader模式;

由BMC通过串口发送更新指令、以及预设存储路径下的所述目标版本MCU程序至MCU;

由BMC通过GPIO引脚拉低MCU的BOOT0,并发送低脉冲至MCU的RESET引脚,使MCU回到正常模式并运行所述目标版本MCU程序;

由BMC根据所述目标版本MCU程序更新web界面上的MCU版本信息。

在一些实施例中,烧录模块304进一步配置用于:

由BMC运行串口初始化程序;

由BMC通过串口依次发送握手信号、擦除命令、写命令至MCU;

响应于BMC收到应答信号则确认命令执行成功;

由BMC通过串口将所述目标版本MCU程序发送至MCU内部存储器。

在一些实施例中,烧录模块304进一步配置用于:

将串口的波特率设置为57600位/秒;

将串口的数据位设置为8位;

将串口的停止位设置1位;

将串口的校验位为偶校验。

需要说明的是,关于服务器中MCU程序烧录装置的具体限定可以参见上文中对服务器中MCU程序烧录方法的限定,在此不再赘述。上述服务器中MCU程序烧录装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的服务器中MCU程序烧录方法,具体来说,所述方法包括以下步骤:

通过网络将目标版本MCU程序导入到BMC的预设存储路径下;

在服务器运行过程中利用BMC实时监测用户输入的指令;

在服务器运行过程中利用BMC实时监测MCU工作状态;

响应于用户输入的指令属于MCU程序更新指令,和/或MCU工作状态异常,则利用BMC将预设存储路径下的所述目标版本MCU程序烧录到MCU。

根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的服务器中MCU程序烧录方法,具体来说,包括执行以下步骤:

通过网络将目标版本MCU程序导入到BMC的预设存储路径下;

在服务器运行过程中利用BMC实时监测用户输入的指令;

在服务器运行过程中利用BMC实时监测MCU工作状态;

响应于用户输入的指令属于MCU程序更新指令,和/或MCU工作状态异常,则利用BMC将预设存储路径下的所述目标版本MCU程序烧录到MCU。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

技术分类

06120115919218