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

一种机电管理MCU固件烧录方法和系统与流程

2022-11-14 02:36:13 来源:中国专利 TAG:

一种机电管理mcu固件烧录方法和系统
【技术领域】
1.本发明涉及通信设备机电管理技术领域,特别是涉及一种机电管理mcu固件烧录方法和系统。


背景技术:

2.在现有的通信设备机电管理mcu固件烧录领域。如图1所示,通信设备机框上的各类单盘上均布局有机电管理mcu。单盘类型大致分为4大类,分别是主控盘、风扇盘、业务盘、电源盘。主控mcu和主控cpu之间通过spi总线互联,机电管理mcu之间通过can总线互联。
3.例如,针对stm32的mcu,mcu可以通过配置boot0和boot1两个管脚,控制mcu启动的方式。有3种启动方式可选:
4.方式一、从main flash memory启动,这个区域保存的是用户的固件(程序)。
5.方式二、从system memory启动,这个区域保存的是mcu自带的bootloader,是mcu厂家提供的,运行在该区域时,可以通过iic、can、uart、spi等通信接口,接收一些命令和数据。
6.方式三、从sram启动。
7.现有技术中,通信设备板卡的生产时,需要人工给每块单盘的机电mcu烧录固件;存在多种型号mcu时,需要分别烧录相应的固件,容易错烧、漏烧;通信设备业务板卡和风扇控制板数量大,人工烧录固件增加了大量人力成本;每套mcu程序都需要实现自定义的升级功能,以支持在线升级,研发成本高,且存在风险。
8.鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。


技术实现要素:

9.本发明要解决的技术问题是通信设备板卡的生产时,需要人工给每块单盘的机电mcu烧录固件;存在多种型号mcu时,需要分别烧录相应的固件,容易错烧、漏烧;通信设备业务板卡和风扇控制板数量大,人工烧录固件增加了大量人力成本。
10.本发明采用如下技术方案:
11.第一方面,本发明提供了一种机电管理mcu固件烧录方法,利用机电mcu之间互联的can总线,通过主控mcu烧录其他板卡从节点mcu固件,方法包括:
12.主控mcu的启动方式保持为从用户代码区启动,运行用户代码;从节点mcu则设置为从system memory启动,运行从节点mcu自带的bootloader;
13.主控mcu通过io连接从节点mcu的nrst复位控制管脚,对从节点mcu进行复位操作,使其进入自带的bootloader运行,以进行固件烧录或更新。
14.优选的,各类单盘的从节点mcu固件保存在主控盘的cpu的系统中,在进行固件烧录或更新之前,方法还包括:
15.主控设备上电时,主控cpu将各类单盘的固件传递给主控mcu,主控mcu将固件缓存在外扩spiflash中,以便进行所述固件烧录或更新。
16.优选的,所述进行固件烧录或更新,具体包括:
17.主控mcu通过can总线,下发命令和固件包到从节点mcu,进行固件烧录;
18.烧录完成后,通过can总线下发程序跳转指令,使从节点mcu跳转到用户固件代码区运行。
19.优选的,所述主控mcu通过can总线,下发命令和固件包到从节点mcu,进行固件烧录,具体包括:
20.主控mcu通过can总线多次发送跳转指令给一类单盘中的从节点mcu,尝试使该类单盘跳转到用户代码区执行;
21.预设延时后,主控通过查询从节点程序版本号的方式,检查该类单盘的从节点mcu程序是否已经烧录;
22.若查询有回应,表明已经烧录,进一步与当前固件版本比较,若相同,则表明程序当前单盘程序是最新的;若不同,则需要升级固件,进行固件更新;如果查询该类单盘没有回应,则表示该类单盘未烧录程序,需要固件烧录。
23.优选的,所述进行固件更新或者固件烧录,具体包括:
24.通过控制需要升级的该类单盘的从节点mcu的rst管脚,控制单盘机电mcu重新进入bootloader;
25.通过从节点mcu自带bootloader的通信协议,将烧录文件发送到对应的单盘进行固件烧录或者固件更新。
26.优选的,所述主控mcu的启动方式保持为从用户代码区启动,运行用户代码;从节点mcu则设置为从system memory启动,运行从节点mcu自带的bootloader之前方法包括:
27.主控盘mcu维持现状,出厂烧录用户固件到flash;
28.默认将业务板卡、风扇控制板上的从节点mcu的boot0拉高,boot1拉低,以便从system memory启动,运行从节点mcu自带官方的bootloader,用以接收主控mcu的命令和固件文件,进行固件烧录。
29.优选的,方法还包括:
30.通过多个单端n通道多路开关,将各个单盘的在位信号传递给主控mcu,用于检测各个单盘的在位状态;当有单盘从不在位状态变为在位时,触发一次固件烧录和升级的检测动作;实现新插入单盘的实时固件烧录或更新。
31.优选的,在位信号线使用“线与”的方式连接,在主控盘这端使用上拉电阻将其拉高,从节点单盘一端则使用下拉电阻将其拉低;
32.当从节点单盘没有插入框内时,主控盘将检测到对应在位信号引脚是高电平,如果单盘插入框内,由于“线与”的原因,在位信号线有一处被拉低将变成低电平,这时候主控盘将检测到该单盘的在位信号管脚是低电平,判断其在位。
33.优选的,在从节点mcu归属的单盘包括风扇盘、业务盘、电源盘三种类型时时,每隔预设时间,重复检查一次三类从节点单盘的mcu固件版本确认是否需要进行固件更新。
34.第二方面,本发明提供了一种机电管理mcu固件烧录系统,包括由一个主控mcu和多种单盘类型的从节点mcu构成的系统,其中,各类型单盘的从节点mcu之间,以及各从节点mcu与主控mcu之间通过can总线连接,具体的:
35.主控mcu的启动方式保持为从用户代码区启动,运行用户代码;从节点mcu则设置
为从system memory启动,运行从节点mcu自带的bootloader;
36.主控mcu通过io连接从节点mcu的nrst复位控制管脚,对从节点mcu进行复位操作,使其进入自带的bootloader运行,以进行固件烧录或更新。
37.第三方面,本发明还提供了一种机电管理mcu固件烧录装置,用于实现第一方面所述的机电管理mcu固件烧录方法,所述装置包括:
38.至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的机电管理mcu固件烧录方法。
39.第四方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的机电管理mcu固件烧录方法。
40.本发明相比于使用jtag和swd接口实现固件烧录,can总线的方式节约了io管脚和布线,没有增加额外的成本。本发明中默认从system memory启动进入mcu的bootloader,并通过控制从节点的rst管脚,可以随时对固件进行更新,避免了mcu“成砖”的可能。
【附图说明】
41.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是本发明实施例提供的一种现有的总线架构;
43.图2是本发明实施例提供的一种机电管理mcu固件烧录系统架构示意图;
44.图3是本发明实施例提供的一种机电管理mcu固件烧录方法流程示意图;
45.图4是本发明实施例提供的一种机电管理mcu固件烧录方法流程示意图;
46.图5是本发明实施例提供的一种机电管理mcu固件烧录方法流程示意图;
47.图6是本发明实施例提供的一种机电管理mcu固件烧录方法流程示意图;
48.图7是本发明实施例提供的一种硬件在位信号线连接示意图;
49.图8是本发明实施例提供的一种主控盘机电mcu业务流程图。
【具体实施方式】
50.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
51.在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
52.本发明中利用机电mcu之间互联的can总线,通过主控mcu烧录其他板卡从节点mcu固件;出厂时,通信设备主控板卡烧录机电管理mcu的固件,其他板卡作为从节点mcu,保持空白芯片,不烧录固件;通过修改硬件设计,主控mcu的启动方式保持为从用户代码区启动,
运行用户代码;从节点mcu则改为从system memory启动,运行从节点mcu自带的bootloader。
53.将各类单盘的从节点mcu固件保存在主控盘的cpu的系统中,设备上电时,主控cpu将各类单盘的固件传递给主控mcu,主控mcu将固件缓存在外扩spiflash中。主控mcu通过io连接从节点mcu的nrst复位控制管脚,可以随机对从节点mcu进行复位操作,使其进入自带的bootloader运行,以进行固件烧录。主控mcu通过can总线,下发命令和固件包到从节点mcu,进行固件烧录;
54.烧录完成后,通过can总线下发程序跳转指令,使从节点mcu跳转到用户固件代码区运行。在本发明优选实现方式中,还可以通过多个单端8通道多路开关(cd4051等),将各个单盘的在位信号传递给主控mcu,用于检测各个单盘的在位状态。当有单盘从不在位状态变为在位时,触发一次固件烧录和升级的检测动作。实现新插入单盘的实时固件烧录或更新。
55.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
56.实施例1:
57.本发明实施例1提供了一种机电管理mcu固件烧录方法,如图2和图3所示所示,利用机电mcu之间互联的can总线,通过主控mcu烧录其他板卡从节点mcu固件,方法包括:
58.在步骤201中,主控mcu的启动方式保持为从用户代码区启动,运行用户代码;从节点mcu则设置为从system memory启动,运行从节点mcu自带的bootloader。
59.此处补充说明一下,stm32的厂家bootloader保存区叫system memory,其他厂家的mcu不一定也如此称呼,但是,本发明以此作为典型进行表述,其他厂家的mcu即便出现不一致的称呼,只要技术核心思想与本发明一致,也应该认为归属于本发明保护范围内。
60.在步骤202中,主控mcu通过io连接从节点mcu的nrst复位控制管脚,对从节点mcu进行复位操作,使其进入自带的bootloader运行,以进行固件烧录或更新。
61.本发明实施例相比于使用jtag和swd接口实现固件烧录,can总线的方式节约了io管脚和布线,没有增加额外的成本。本发明中默认从system memory启动进入mcu的bootloader,并通过控制从节点的rst管脚,可以随时对固件进行更新,避免了mcu“成砖”的可能。
62.在本发明实施例中,在从节点mcu归属的单盘包括风扇盘、业务盘、电源盘三种类型时,每隔预设时间,重复检查一次三类从节点单盘的mcu固件版本确认是否需要进行固件更新。
63.与当前出厂时预烧录固件的方式对比,省略了一道工序,节约人力成本,且避免了这道工序可能的错误导致的良率下降问题,如漏烧、错烧固件。与之前为了实现在线升级专门实现一个升级任务或者自定义bootloader相比,省去了一个关键功能的开发,节约了研发成本,缩短了研发周期。减少了出错的可能。
64.在本发明实施例具体实现方式中,各类单盘的从节点mcu固件保存在主控盘的cpu的系统中,因此,在进行固件烧录或更新之前,方法还包括:
65.在步骤301中,主控设备上电时,主控cpu将各类单盘的固件传递给主控mcu,主控mcu将固件缓存在外扩spiflash中(在具体实现方式中,也可以是其他的容量满足要求的存
储器),以便进行所述固件烧录或更新。
66.在具体实现时,所述步骤301可以是与步骤201和/或步骤202并行执行,即可以是和步骤201同步执行,或者是和步骤202同步执行,只要保证在具体执行步骤202中的“进行固件烧录或更新”之前完成皆可。
67.作为主框架流程而言,所述步骤202中的进行固件烧录或更新,如图4所示,具体表现为:
68.在步骤401中,主控mcu通过can总线,下发命令和固件包到从节点mcu,进行固件烧录。
69.在步骤402中,烧录完成后,通过can总线下发程序跳转指令,使从节点mcu跳转到用户固件代码区运行。
70.对于上述步骤401在具体应用场景下的细化方法呈现,如图5所示,所述主控mcu通过can总线,下发命令和固件包到从节点mcu,进行固件烧录,具体包括:
71.在步骤501中,主控mcu通过can总线多次发送跳转指令给一类单盘中的从节点mcu,尝试使该类单盘跳转到用户代码区执行。
72.在步骤502中,预设延时后,主控通过查询从节点程序版本号的方式,检查该类单盘的从节点mcu程序是否已经烧录。
73.在步骤503中,若查询有回应,表明已经烧录,进一步与当前固件版本比较。若相同,则表明程序当前单盘程序是最新的;若不同,则需要升级固件,进行固件更新;如果查询该类单盘没有回应,则表示该类单盘未烧录程序,需要固件烧录。
74.若上面步骤401-步骤402是从主框架层面呈现的过程,则接下的内容则是从细节层面展现所述进行固件更新或者固件烧录细节,如图6所示,具体包括:
75.在步骤601中,通过控制需要升级的该类单盘的从节点mcu的rst管脚,控制单盘机电mcu重新进入bootloader。
76.在步骤602中,通过从节点mcu自带bootloader的通信协议,将烧录文件发送到对应的单盘进行固件烧录或者固件更新。
77.需要说明的是,该步骤只控制机电管理mcu复位,不控制整个单盘的掉电重启,机电mcu的复位不影响单盘的其他业务功能
78.结合本发明实施例,所述主控mcu的启动方式保持为从用户代码区启动,运行用户代码;从节点mcu则设置为从system memory启动,运行从节点mcu自带的bootloader之前方法包括:
79.主控盘mcu维持现状,出厂烧录用户固件到flash;
80.默认将业务板卡、风扇控制板上的从节点mcu的boot0拉高,boot1拉低,以便从system memory启动,运行从节点mcu自带官方的bootloader,用以接收主控mcu的命令和固件文件,进行固件烧录。
81.如图7所示,结合本发明实现方案,为了能够达到更高的自动化程度提出的改进方案,图7中只画出核心部分的简图,其他具体硬件原理图设计未画出。主要是使用多路复用器,将单盘在位信号线连接到主控盘,主控盘通过通道切换,分别读取各个单盘的在位信息。单盘插入框内时,连接器针脚相连接触,单盘在位信号在从节点侧和主控盘侧联通,由于从节点侧拉低,所以信号线被拉低,主控盘通过判断信号线电平是否为低,可以判断单盘
是否在位。因此,方法还包括:
82.通过多个单端n通道多路开关(例如cd4051,其为8通道多路开关),将各个单盘的在位信号传递给主控mcu,用于检测各个单盘的在位状态;当有单盘从不在位状态变为在位时,触发一次固件烧录和升级的检测动作;实现新插入单盘的实时固件烧录或更新。
83.其中,在位信号线使用“线与”的方式连接,在主控盘这端使用上拉电阻将其拉高,从节点单盘一端则使用下拉电阻将其拉低;
84.当从节点单盘没有插入框内时,主控盘将检测到对应在位信号引脚是高电平,如果单盘插入框内,由于“线与”的原因,在位信号线有一处被拉低将变成低电平,这时候主控盘将检测到该单盘的在位信号管脚是低电平,判断其在位。
85.实施例2:
86.本发明还提供了一种机电管理mcu固件烧录系统,如图2所示,是本发明示例性提供的一种系统架构图,其中各类单盘的can总线连接,spiflash连接和boot0/boot1配置示意图,与本方案无关的细节未画出;该图给出了系统硬件连接的概要,系统主要包含主控cpu、主控mcu、电源盘mcu、风扇盘mcu、业务盘mcu,其中电源盘、风扇盘、业务盘可能有多个。主控cpu和主控mcu之间通过spi总线互联,各个mcu之间通过can总线互联。此外,主控mcu外扩一个spiflash存储器或其他存储器,用于缓存从cpu发来的各类单盘的固件。主控mcu通过配置boot0/boot1,控制其从用户程序区启动;其他风扇、电源、业务盘的mcu则配置boot0/boot1,使其从system memory启动,运行从节点mcu自带的bootloader。主控盘mcu增加3根io线,分别连接业务盘、风扇盘、电源盘的机电mcu的nrst复位控制引脚,使得主控mcu可以独立控制某类单盘的从节点mcu复位;其中,这3根线默认也是上拉为高电平的,需要复位一类单盘时,将该类单盘的复位管脚拉低。
87.本发明实施例中的机电管理mcu固件烧录系统包括由一个主控mcu和多种单盘类型的从节点mcu构成的系统,其中,各类型单盘的从节点mcu之间,以及各从节点mcu与主控mcu之间通过can总线连接,具体的:
88.主控mcu的启动方式保持为从用户代码区启动,运行用户代码;从节点mcu则设置为从system memory启动,运行从节点mcu自带的bootloader;
89.主控mcu通过io连接从节点mcu的nrst复位控制管脚,对从节点mcu进行复位操作,使其进入自带的bootloader运行,以进行固件烧录或更新。
90.本发明对实施例在不改变现有架构和基本不增加硬件设计和物料成本的情况下,去掉了电源盘、业务盘、风扇盘的出厂烧录这一道工序,这几类单盘生产量是最大的,从长远看,节约大量人力成本。充分利用mcu官方提供的bootloader,使用同一套业务流程,实现了固件的出厂烧录和固件的在线升级。通过循环查询和更新mcu固件,使得mcu始终保持为最新固件;通过周期查询mcu版本,确认mcu是活跃状态,保证mcu永不死机。
91.实施例2:
92.利用机电mcu之间互联的can总线,通过主控mcu烧录其他板卡从节点mcu固件;
93.出厂时,通信设备主控板卡烧录机电管理mcu的固件,其他板卡作为从节点mcu,保持空白芯片,不烧录固件;
94.通过修改硬件设计,主控mcu的启动方式保持为从用户代码区启动,运行用户代码;从节点mcu则改为从system memory启动,运行从节点mcu自带的bootloader。
95.将各类单盘的从节点mcu固件保存在主控盘的cpu的系统中,设备上电时,主控cpu将各类单盘的固件传递给主控mcu,主控mcu将固件缓存在外扩spiflash中。
96.主控mcu通过io连接从节点mcu的nrst复位控制管脚,可以随时对从节点mcu进行复位操作,使其进入自带的bootloader运行,以进行固件烧录。
97.主控mcu通过can总线,下发命令和固件包到从节点mcu,进行固件烧录;
98.烧录完成后,通过can总线下发程序跳转指令,使从节点mcu跳转到用户固件代码区运行。
99.通过多个单端8通道多路开关(cd4051等),将各个单盘的在位信号传递给主控mcu,用于检测各个单盘的在位状态。当有单盘从不在位状态变为在位时,触发一次固件烧录和升级的检测动作。实现新插入单盘的实时固件烧录或更新。
100.本发明实施例相比于使用jtag和swd接口实现固件烧录,can总线的方式节约了io管脚和布线,没有增加额外的成本。本发明中默认从system memory启动进入mcu的bootloader,并通过控制从节点的rst管脚,可以随时对固件进行更新,避免了mcu“成砖”的可能。
101.结合本发明实施例,存在一种优选的实现方式,各类单盘的从节点mcu固件保存在主控盘的cpu的系统中,在进行固件烧录或更新之前,方法还包括:
102.主控设备上电时,主控cpu将各类单盘的固件传递给主控mcu,主控mcu将固件缓存在外扩spiflash中,以便进行所述固件烧录或更新。
103.结合本发明实施例,存在一种优选的实现方式,所述进行固件烧录或更新,具体包括:
104.主控mcu通过can总线,下发命令和固件包到从节点mcu,进行固件烧录;
105.烧录完成后,通过can总线下发程序跳转指令,使从节点mcu跳转到用户固件代码区运行。
106.结合本发明实施例,存在一种优选的实现方式,所述主控mcu通过can总线,下发命令和固件包到从节点mcu,进行固件烧录,具体包括:
107.主控mcu通过can总线多次发送跳转指令给一类单盘中的从节点mcu,尝试使该类单盘跳转到用户代码区执行;
108.预设延时后,主控通过查询从节点程序版本号的方式,检查该类单盘的从节点mcu程序是否已经烧录;
109.若查询有回应,表明已经烧录,进一步与当前固件版本比较,若相同,则表明当前单盘程序是最新的;若不同,则需要升级固件,进行固件更新;如果查询该类单盘没有回应,则表示该类单盘未烧录程序,需要固件烧录。
110.结合本发明实施例,存在一种优选的实现方式,所述进行固件更新或者固件烧录,具体包括:
111.通过控制需要升级的该类单盘的从节点mcu的rst管脚,控制单盘机电mcu重新进入bootloader;
112.通过从节点mcu自带bootloader的通信协议,将烧录文件发送到对应的单盘进行固件烧录或者固件更新。
113.结合本发明实施例,存在一种优选的实现方式,所述主控mcu的启动方式保持为从
用户代码区启动,运行用户代码;从节点mcu则设置为从system memory启动,运行从节点mcu自带的bootloader之前方法包括:
114.主控盘mcu维持现状,出厂烧录用户固件到flash;
115.默认将业务板卡、风扇控制板上的从节点mcu的boot0拉高,boot1拉低,以便从system memory启动,运行从节点mcu自带官方的bootloader,用以接收主控mcu的命令和固件文件,进行固件烧录。其中,此配置可以使用stm32,其他芯片型号可能不一样,作为本领域技术人员可以依据当前公开的方案内容,结合具体的芯片场景做适当的调整,由此产生的衍生专利都应该归属于本发明的保护范围内。
116.结合本发明实施例,存在一种优选的实现方式,方法还包括:
117.通过多个单端n通道多路开关,将各个单盘的在位信号传递给主控mcu,用于检测各个单盘的在位状态;当有单盘从不在位状态变为在位时,触发一次固件烧录和升级的检测动作;实现新插入单盘的实时固件烧录或更新。
118.结合本发明实施例,存在一种优选的实现方式,在位信号线使用“线与”的方式连接,在主控盘这端使用上拉电阻将其拉高,从节点单盘一端则使用下拉电阻将其拉低;
119.当从节点单盘没有插入框内时,主控盘将检测到对应在位信号引脚是高电平,如果单盘插入框内,由于“线与”的原因,在位信号线有一处被拉低将变成低电平,这时候主控盘将检测到该单盘的在位信号管脚是低电平,判断其在位。
120.结合本发明实施例,存在一种优选的实现方式,在从节点mcu归属的单盘包括风扇盘、业务盘、电源盘三种类型时,每隔预设时间,重复检查一次三类从节点单盘的mcu固件版本确认是否需要进行固件更新。
121.实施例3:
122.本发明实施例是基于实施例1和实施例2基础上,从较为完整的实例场景,对本发明技术方案进行相对完整的逻辑过程展示,参考图8所示的流程图,方法包括:
123.在步骤701中,硬件设计上,主控盘mcu维持现状,出厂烧录用户固件到flash。
124.在步骤702中,默认将业务板卡、风扇控制板上的机电mcu的boot0拉高,boot1拉低,即从system memory启动,运行mcu官方的bootloader,用以接收主控mcu的命令和固件文件,进行固件烧录。
125.在步骤703中,各类单盘的固件以文件的形式,保存在cpu的linux系统文件系统中。
126.在步骤704中,设备启动后,cpu通过spi将各类单盘的固件发送给主控的机电mcu,主控mcu将固件缓存在外扩的spiflash存储器中。
127.在步骤705中,主控mcu通过can总线多次发送跳转指令给一类单盘,尝试使该类单盘跳转到用户代码区执行。
128.在步骤706中,一定延时后,主控通过查询从节点程序版本号的方式,检查该类单盘的机电mcu程序是否已经烧录。
129.在步骤707中,若查询有回应,表明已经烧录,进一步与当前固件版本比较,若相同,则表明程序当前单盘程序是最新的;若不同,则需要升级固件,进入步骤709。
130.在步骤708中,如果查询该类单盘没有回应,则表示该类单盘未烧录程序,需要烧录固件,进入步骤709。
131.如果用户区代码未烧录,mcu的bootloader收到跳转指令后,跳转到一个异常指令区,mcu必然跑飞,主节点发送查询命令后,必然收不到该mcu的回复,由此可以判断该单盘未烧录固件,或固件异常,无法运行,这些情况都是需要重新烧录固件的。
132.在步骤709中,这时通过控制需要升级的该类单盘mcu的rst管脚,控制单盘机电mcu重新进入bootloader,然后通过mcu自带bootloader的通信协议,将烧录文件发送到对应的单盘进行固件烧录;需要说明的是,该步骤只控制机电管理mcu复位,不控制整个单盘的掉电重启,机电mcu的复位不影响单盘的其他业务功能。
133.在步骤710中,固件烧录完成后,发送跳转指令使该类单盘的mcu离开bootloader,进入用户代码区运行。
134.在步骤711中,针对风扇盘、业务盘、电源盘重复步骤704-710;每隔一定时间,重复检查一次三类从节点单盘。
135.在步骤712中,为了避免某个单盘无法烧录固件导致的不断重试,不断重新烧写该类单盘,需要主控mcu记录重试次数,如某类单盘重试了5次以上,仍然没能给所有单盘机电mcu烧录好固件,则停止重试,并给出告警信息,通知存在问题单盘,mcu固件无法烧录。
136.其中,在实际场景中,不一定是5,可以是大于5小于1000次的任意值。
137.在步骤713中,除了定时查询版本号进行升级以外,当检测到某个单盘从不在位变成在位时,也进行一次版本查询,以检查是否需要进行固件更新。
138.在图8中标注的虚线框步骤表明其在实际实现过程中可能mcu的bootloader不一定支持的含义,是否存在则根据具体情况而论。
139.检测单盘在位状态的方法如下:
140.使用多个单端8通道多路开关(cd4051等),将从节点的在位状态传递给主控盘,具体实现方式如附图2所示。
141.在位信号线使用“线与”的方式连接,在主控盘这端使用上拉电阻将其拉高,从节点单盘一端则使用下拉电阻将其拉低。
142.当从节点单盘没有插入框内时,主控盘将检测到对应在位信号引脚是高电平,如果单盘插入框内,由于“线与”的原因,在位信号线有一处被拉低将变成低电平,这时候主控盘将检测到该单盘的在位信号管脚是低电平,可以判断其在位。
143.由于主控盘mcu的引脚数量有限,而从节点最多可能有几十上百个。因此,不能为每一个从节点分配一个独立的io进行在位检测。为了解决这个问题,使用多个单端8通道多路开关,通过通道切换的方式,将从节点单盘的在位信号分别送给主控盘,主控盘需要查询某单盘的在位状态时,先将通道切换到对应单盘的在位信息线上。
144.值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
145.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
146.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精
神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献