CN118092289B - 一种运维指令执行方法和系统 - Google Patents
一种运维指令执行方法和系统 Download PDFInfo
- Publication number
- CN118092289B CN118092289B CN202410476977.4A CN202410476977A CN118092289B CN 118092289 B CN118092289 B CN 118092289B CN 202410476977 A CN202410476977 A CN 202410476977A CN 118092289 B CN118092289 B CN 118092289B
- Authority
- CN
- China
- Prior art keywords
- mcu controller
- layer
- broadcast message
- target
- controller
- 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
- 238000012423 maintenance Methods 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004891 communication Methods 0.000 claims abstract description 187
- 238000012545 processing Methods 0.000 claims abstract description 14
- 230000004044 response Effects 0.000 claims description 53
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 101150008604 CAN1 gene Proteins 0.000 description 7
- 101150063504 CAN2 gene Proteins 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Abstract
本发明公开了一种运维指令执行方法和系统,该方法包括:ARM控制器接收针对目标MCU控制器的运维指令;ARM控制器对各个第一层MCU控制器下发第一广播消息;第一层MCU控制器根据第一广播消息的消息类型确定处理第一广播消息的目标通信端口;位于第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N‑1广播消息后,依次将第N‑1广播消息转换为第N广播消息下发,直至目标MCU控制器接收到广播消息;目标MCU控制器根据广播消息确定自身是运维指令的执行者,并响应运维指令。本方案不需要提前对端口类型进行动态配置和定制,减少了程序开发工作量。并且容易扩展,方便了后期维护和远程升级。
Description
技术领域
本发明涉及新能源运维领域,尤其涉及一种运维指令执行方法和系统。
背景技术
随着新能源系统应用范围越来越广,新能源设备是否正常运行,有问题能否及时维修,新的功能及时能否及时更新,现场数据能否及时获取等问题,成为各大运营厂家关心的问题。
新能源系统一般以顶层嵌入式ARM设备为基点作为运维主控,ARM设备下控制多个MCU子设备。由于MCU子设备种类很多,各子设备端口遵循的通信协议不同,要实现子设备之间和子设备与ARM设备之间的通信,需要根据各个子设备的端口类型进行动态配置和定制,这导致程序开发工作量巨大。并且,定制开发后各设备间关系做的比较固定,不容易扩展,导致后期维度和远程升级的难度加大。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,为此,本发明第一方面提出一种运维指令执行方法,应用于运维指令执行系统,所述系统包括一个ARM控制器和多个MCU控制器,所述多个MCU控制器之间形成树状通信网络,位于所述树状通信网络最顶层的第一层MCU控制器与所述ARM控制器通信连接;所述方法包括:
所述ARM控制器接收针对目标MCU控制器的运维指令,所述目标MCU控制器为所述多个MCU控制器中的一个;
所述ARM控制器对各个所述第一层MCU控制器下发第一广播消息;所述第一广播消息中包括所述运维指令、第一通信链和第一层数,所述第一通信链为从所述ARM控制器到所述目标MCU控制器所需经过的各个MCU控制器的信息,所述第一层数为所述第一通信链中的MCU控制器的个数;
所述第一层MCU控制器的各个通信端口接收所述第一广播消息,并根据所述第一广播消息的消息类型确定处理所述第一广播消息的目标通信端口;所述目标通信端口对所述第一广播消息进行解析,并根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点;
若确定是所述目标MCU控制器,则所述第一层MCU控制器响应所述运维指令;
若确定是所述目标MCU控制器的上级节点,则所述第一层MCU控制器将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,以此类推,位于所述第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N-1广播消息后,依次将所述第N-1广播消息转换为第N广播消息下发,直至所述目标MCU控制器接收到所述广播消息;
所述目标MCU控制器根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令。
可选地,所述将所述第N-1广播消息转换为第N广播消息,包括:
将所述第N-1广播消息中的第N-1通信链中的上一层设备的信息去除,并将所述第N-1广播消息中的层数的数量减1,得到第N广播消息。
可选地,所述根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点,包括:
所述第一层MCU控制器确定所述第一层数是否为2;
若是2,则在检测到所述第一通信链中存在所述第一层MCU控制器自身的标识和地址后,确定自身是所述目标MCU控制器;
若不是2,则确定自身不是所述目标MCU控制器,并检测所述第一通信链中是否存在所述第一层MCU控制器自身的标识和地址;
若存在所述第一层MCU控制器自身的标识和地址,则确定自身是所述目标MCU控制器的上级节点;若不存在所述第一层MCU控制器自身的标识和地址,则确定自身不是所述目标MCU控制器的上级节点。
可选地,在根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点之后,还包括:
若确定不是所述目标MCU控制器的上级节点,则所述第一层MCU控制器进入不主动发送消息的静默状态。
可选地,所述MCU控制器包括多个通信端口,所述第一层MCU控制器将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,包括:
所述第一层MCU控制器将当前接收所述第一广播消息的通信端口锁定为唯一的对上端口,并将所述第一层MCU控制器上的其他通信端口设置为主动端口;
所述主动端口将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器。
可选地,在所述目标MCU控制器根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令之后,还包括:
所述目标MCU控制器生成针对所述运维指令的第一响应消息,所述第一响应消息中包括响应结果和第二通信链,所述第二通信链包括所述目标MCU控制器和上一级MCU控制器的信息;所述上一级MCU控制器为直接将广播消息发送给所述目标MCU控制器的设备;
所述目标MCU控制器将所述第一响应消息广播给与其连接的各个上一层MCU控制器;
各个所述上一层MCU控制器在接收到所述第一响应消息后,确定自身是否位于所述第二通信链上;
若确定位于所述第二通信链上,则所述上一层MCU控制器的所述对上端口将所述第一响应消息转换为第二响应消息发送给与其连接的上一层MCU控制器;以此类推,各层MCU控制器的对上端口依次向与其连接的上一层MCU控制器转发所述响应消息,直至所述第一层MCU控制器接收到所述响应消息;
所述第一层MCU控制器通过所述对上端口将所述响应消息发送给所述ARM控制器。
可选地,所述ARM控制器接收针对目标MCU控制器的运维指令,包括:
所述ARM控制器接收通过终端发送的软件包,或通过U盘传输的软件包;
所述ARM控制器对所述软件包进行解析,得到针对目标MCU控制器的运维指令;所述运维指令为升级APP指令、升级IAP指令、读取日志指令、读取配置指令、下载配置指令中的一种。
本发明第二方面提供一种运维指令执行系统,所述系统包括一个ARM控制器和多个MCU控制器,所述多个MCU控制器之间形成树状通信网络,位于所述树状通信网络最顶层的第一层MCU控制器与所述ARM控制器通信连接;其中,
所述ARM控制器用于:
接收针对目标MCU控制器的运维指令,所述目标MCU控制器为所述多个MCU控制器中的一个;
对各个所述第一层MCU控制器下发第一广播消息;所述第一广播消息中包括所述运维指令、第一通信链和第一层数,所述第一通信链为从所述ARM控制器到所述目标MCU控制器所需经过的各个MCU控制器的信息,所述第一层数为所述第一通信链中的MCU控制器的个数;
所述第一层MCU控制器用于:
利用各个通信端口接收所述第一广播消息,并根据所述第一广播消息的消息类型确定处理所述第一广播消息的目标通信端口;所述目标通信端口对所述第一广播消息进行解析,并根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点;
若确定是所述目标MCU控制器,则响应所述运维指令;
若确定是所述目标MCU控制器的上级节点,则将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,以此类推,位于所述第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N-1广播消息后,依次将所述第N-1广播消息转换为第N广播消息下发,直至所述目标MCU控制器接收到所述广播消息;
所述目标MCU控制器用于:
根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令。
可选地,所述第一层MCU控制器具体用于:
将所述第N-1广播消息中的第N-1通信链中的上一层设备的信息去除,并将所述第N-1广播消息中的层数的数量减1,得到第N广播消息。
可选地,所述第一层MCU控制器具体用于:
确定所述第一层数是否为2;
若是2,则在检测到所述第一通信链中存在所述第一层MCU控制器自身的标识和地址后,确定自身是所述目标MCU控制器;
若不是2,则确定自身不是所述目标MCU控制器,并检测所述第一通信链中是否存在所述第一层MCU控制器自身的标识和地址;
若存在所述第一层MCU控制器自身的标识和地址,则确定自身是所述目标MCU控制器的上级节点;若不存在所述第一层MCU控制器自身的标识和地址,则确定自身不是所述目标MCU控制器的上级节点。
本发明具有以下有益效果:
在本发明实施例中,所述ARM控制器接收针对目标MCU控制器的运维指令,所述目标MCU控制器为所述多个MCU控制器中的一个;所述ARM控制器对各个所述第一层MCU控制器下发第一广播消息;所述第一广播消息中包括所述运维指令、第一通信链和第一层数,所述第一通信链为从所述ARM控制器到所述目标MCU控制器所需经过的各个MCU控制器的信息,所述第一层数为所述第一通信链中的MCU控制器的个数;所述第一层MCU控制器的各个通信端口接收所述第一广播消息,并根据所述第一广播消息的消息类型确定处理所述第一广播消息的目标通信端口;所述目标通信端口对所述第一广播消息进行解析,并根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点;若确定是所述目标MCU控制器,则所述第一层MCU控制器响应所述运维指令;若确定是所述目标MCU控制器的上级节点,则所述第一层MCU控制器将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,以此类推,位于所述第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N-1广播消息后,依次将所述第N-1广播消息转换为第N广播消息下发,直至所述目标MCU控制器接收到所述广播消息;所述目标MCU控制器根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令。本方案不需要提前对各个MCU控制器的端口类型进行动态配置和定制,减少了程序开发工作量。并且,由于未进行定制开发,各个设备间的关系灵活,容易扩展,方便了后期维护和远程升级。
附图说明
图1是本发明实施例提供的一种运维指令执行系统的硬件结构图;
图2是本发明实施例提供的一种常见的新能源运维系统逻辑图;
图3是本发明实施例提供的一种运维指令执行方法的步骤流程图;
图4是本发明实施例提供的第一广播消息的通信协议图;
图5是本发明实施例提供的一种通信方式示意图;
图6是本发明实施例提供的一种运维指令执行系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,“基于”或“根据”的使用意味着开放和包容性,因为“基于”或“根据”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。
图1是本发明实施例提供的一种运维指令执行系统的硬件结构图。
如图1所示,A表示ARM(Advanced RISC Machine,RISC微处理器)控制器,B~M为嵌入式设备MCU(Microcontroller Unit,微控制单元)控制器。ARM控制器可以运行操作系统,具有网络、数据处理、存储等功能,比单片机功能强大。MCU控制器相比ARM控制器功能相对较少,可以运行操作系统,但无数据处理和存储功能,不能使用U盘。其中,MCU控制器B~M分别包括n个子设备。
ARM控制器为运维主控,ARM控制器下挂载的所有MCU控制器通过Json描述文件,形成对应的树状通信网络。位于树状通信网络最顶层的第一层MCU控制器B、C、D与ARM控制器通信连接。
图2是本发明实施例提供的一种常见的新能源运维系统逻辑图。
如图2所示,ARM控制器与充电机、多个充电协议转换板连接。充电机包括can1和can2共两个遵循can协议的端口,充电机为MCU控制器,其can1和can2端口与ARM控制器的can1和can2端口连接。充电机与充电模块1、充电模块n以及环境监控板连接,充电监控板与两个风扇控制板连接,充电机与充电模块通过can端口连接,充电机与环境监控板通过4851端口连接,环境监控板与风扇控制板通过4851端口连接。充电转换协议板可以支持日标、国标和欧标,充电转换协议板与汽车连接。
图3是本发明实施例提供的一种运维指令执行方法的步骤流程图。该方法应用于图1中的运维指令执行系统。如图1所示,该方法包括以下步骤:
步骤101、所述ARM控制器接收针对目标MCU控制器的运维指令,所述目标MCU控制器为所述多个MCU控制器中的一个。
具体地,ARM控制器通过接收第三方发送的软件包、信息,或插入的U盘,来接收针对目标MCU控制器的运维指令。软件包具体可以为针对目标MCU控制器中的应用软件的升级包或配置包,信息可以为针对目标MCU控制器中的存储区域的读写指令,U盘中也可以包括软件升级包或配置包等。
目标MCU控制器为以ARM控制器为根节点的树状通信网络中的任意一个MCU控制器。例如,目标MCU控制器为图1中的G。
步骤102、所述ARM控制器对各个所述第一层MCU控制器下发第一广播消息;所述第一广播消息中包括所述运维指令、第一通信链和第一层数,所述第一通信链为从所述ARM控制器到所述目标MCU控制器所需经过的各个MCU控制器的信息,所述第一层数为所述第一通信链中的MCU控制器的个数。
ARM控制器根据运维指令生成第一广播消息。第一广播消息用于将运维指令传递给目标MCU控制器。ARM控制器通过Json描述文件获知其下挂载的所有设备的树状通信结构,从而获取要到达目标MCU控制器所需经过的各个MCU控制器的信息,及需要经过的MCU控制器的层数。ARM控制器根据上述信息生成第一广播消息。
因此,第一广播消息中包括运维指令,以及第一通信链和第一层数,第一通信链为要到达目标MCU控制器所需经过的各个MCU控制器的信息,第一层数为需要经过的MCU控制器的层数。例如,目标MCU控制器为图1中的G,则第一广播消息中的第一通信链为A、B、E、G,第一层数为4。
图4是本发明实施例提供的第一广播消息的通信协议图。
如图4所示,每一帧数据依次包含帧头、层数、由各个设备的设备编码和地址组成的第一通信链,以及数据内容、校验码和帧尾。其中,数据内容是指运维指令。将多帧数据组成完整帧,得到第一广播消息。
ARM控制器对各个第一层MCU控制器下发第一广播消息。例如,图1中的A为ARM控制器,B、C、D为第一层MCU控制器,A将第一广播消息下发给B、C、D。
步骤103、所述第一层MCU控制器的各个通信端口接收所述第一广播消息,并根据所述第一广播消息的消息类型确定处理所述第一广播消息的目标通信端口;所述目标通信端口对所述第一广播消息进行解析,并根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点。
具体地,第一层MCU控制器中的任意一个MCU控制器的各个端口均接收第一广播消息,并根据第一广播消息的类型确定能够处理该类型信息的目标通信端口。
例如,若第一广播消息为CAN1消息类型,则确定该MCU控制器的CAN1消息端口为目标通信端口。
目标通信端口解析出第一广播消息中包括的第一通信链和第一层数后,首先根据第一层数确定自身是否处于目标MCU控制器所在的目标层,并在确定属于目标层之后,进一步根据第一通信链确定自身是否处于第一通信链上,以确定自身是否属于目标MCU控制器。
若确定不属于目标层,则进一步根据第一通信链确定自身是否是目标MCU控制器的上级节点。
步骤104、若确定是所述目标MCU控制器,则所述第一层MCU控制器响应所述运维指令。
若该MCU控制器确定自身是目标MCU控制器,则对第一广播消息中的运维指令进行响应和执行。
步骤105、若确定是所述目标MCU控制器的上级节点,则所述第一层MCU控制器将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,以此类推,位于所述第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N-1广播消息后,依次将所述第N-1广播消息转换为第N广播消息下发,直至所述目标MCU控制器接收到所述广播消息。
若该MCU控制器确定是目标MCU控制器的上级节点,则为了将运维指令传递给目标MCU控制器,该MCU控制器将第一广播消息转换为第二广播消息,并将第二广播消息下发给自己下一层的MCU控制器。
例如,图1中的B在确定自身是目标MCU控制器的上级节点后,将第一广播消息转换为第二广播消息,并下发给其下一层的E和F。图1中的C在确定自身是目标MCU控制器的上级节点后,将第一广播消息转换为第二广播消息,并下发给其下一层的I。
这样,以此类推,位于第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N-1广播消息后,依次将第N-1广播消息转换为第N广播消息下发,直至所述目标MCU控制器接收到所述广播消息。
例如,位于第一通信链上的E在接收到B发送的第二广播消息后,将第二广播消息转换为第三广播消息下发给下一层MCU控制器G和E,直至目标MCU控制器G接收到广播消息。
步骤106、所述目标MCU控制器根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令。
目标MCU控制器根据接收到的广播消息中的通信链和层数确定自身是目标MCU控制器,则响应和执行运维指令。
例如,G在接收到第三广播消息后,根据第三广播消息中包括的第三层数,确定自身属于目标MCU控制器所在的层,并根据第三通信链确定自身在第三通信链中,则确定自身是目标MCU控制器,则G执行第三广播消息中包括的运维指令。
具体地,一次完整的运维指令执行方法如下:首先,ARM设备接收到针对目标MCU控制器的运维指令,例如该指令为升级指令,ARM控制器通过本方案的通信方法向目标MCU控制器查询当前版本,目标MCU控制器通过本方案通信方法应答当前版本,ARM控制器收到版本应答消息后,向目标MCU控制器下发升级请求。目标MCU控制器应答升级请求,将系统跳转到IAP模式。ARM控制器向目标MCU控制器下发升级文件的数据量消息和总包校验消息,目标MCU控制器收到数据量消息后,擦除其相应大小的Flash空间,并应答所支持的数据包大小,ARM控制器根据目标MCU控制器所支持的数据包大小,发送数据帧序列,目标MCU控制器应答对应帧序列,当接收完数据帧后,目标MCU控制器判断总包校验,并向ARM控制器应答升级结果,目标MCU控制器判断升级结果无误后向目标MCU控制器发送退出流程帧,目标MCU控制器接收到退出流程帧后退出。
在现有技术中,每个MCU控制器包括多个通信端口,各个通信端口遵循的通信协议不同。要实现MCU控制器与ARM控制器之间的通信,需要根据各个端口类型进行动态配置和定制,这导致程序开发工作量巨大。并且,定制开发后各设备间关系做的比较固定,不容易扩展,导致后期维度和远程升级的难度加大。
本方案中由于各个MCU控制器可根据第一通信链和第一层数确定自身是否是目标MCU控制器,或是目标MCU控制器的上级节点,并在确认之后,对第一广播消息进行相应处理,使得ARM控制器可以无需关心第一层MCU控制器中的哪一个是目标MCU控制器的上级节点,直接对所有的第一层MCU控制器下发第一广播消息,类似地,第一层MCU控制器也无需关心第二层MCU控制器中的哪一个是目标MCU控制器的上级节点,直接对所有的第二层MCU控制器下发第二广播消息。这样,以此类推,本方案可以不需要针对第一通信链上的各个MCU控制器依次有针对性地下发运维指令,只需要向自己的下一层MCU控制器下发广播消息即可。
并且,现有技术中,A设备具有CAN1和CAN2端口,需要将B设备的CAN1端口与A设备的CAN1端口进行固定配置,将B设备的CAN2端口与A设备的CAN2端口进行固定配置,才能使A设备与B设备通过CAN1端口进行CAN1类型消息的通讯,通过CAN2端口进行CAN2类型消息的通信。而本方案由于A设备将消息广播给B设备的各个通信端口,B设备根据第一广播消息的消息类型确定处理第一广播消息的目标通信端口,然后由目标通信端口对第一广播消息进行处理。这样,目标通信端口总能接收到消息,从而在不对端口进行固定配置的情况下,就可以使对应的通信端口接收到消息。
因此,本方案可以不需要提前对各个MCU控制器的端口类型进行动态配置和定制,减少了程序开发工作量。并且,由于未进行定制开发,各个设备间的关系灵活,容易扩展,方便了后期维护和远程升级。
在一种可能的实施方式中,步骤105中所述将所述第N-1广播消息转换为第N广播消息,包括:
将所述第N-1广播消息中的第N-1通信链中的上一层设备的信息去除,并将所述第N-1广播消息中的层数的数量减1,得到第N广播消息。
在本发明实施例中,当下一层MCU控制器接收到第N-1广播消息时,把第N-1广播消息中通信链的上一层设备的信息去除,然后再将层数减1,得到第N广播消息。
例如,目标MCU控制器为图1中的G,第一广播消息中的第一通信链为A、B、E、G,第一层数为4。第一层MCU控制器B将第一广播消息转换为第二广播消息,具体是将上一层设备的信息去除,即将A的信息去除,得到的通信链为:B、E、G,再将层数减1,得到的层数为3。
参见图5,为本发明实施例提供的一种通信方式示意图。
如图5所示,下行表示信息从上向下传递,上行表示信息从下向上传递。
当广播消息下行到E设备时,E设备接收到的广播消息中的通信链仅包括D设备和E设备,D设备为上一层设备,E设备为目标MCU控制器,层数为2。E设备通过对广播消息进行解析,发现层数为2,则知道目标MCU控制器与自己为同一层,进一步解析通信链中的设备编码和地址,发现与自己相同,则E设备确定自身为目标MCU控制器。
通过上述转换操作,可以方便下一层的MCU控制器迅速判断自身是否是目标MCU控制器,提高了信息传输效率。
在一种可能的实施方式中,步骤103中根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点,包括:
步骤1031、所述第一层MCU控制器确定所述第一层数是否为2;
步骤1032、若是2,则在检测到所述第一通信链中存在所述第一层MCU控制器自身的标识和地址后,确定自身是所述目标MCU控制器;
步骤1033、若不是2,则确定自身不是所述目标MCU控制器,并检测所述第一通信链中是否存在所述第一层MCU控制器自身的标识和地址;
步骤1034、若存在所述第一层MCU控制器自身的标识和地址,则确定自身是所述目标MCU控制器的上级节点;若不存在所述第一层MCU控制器自身的标识和地址,则确定自身不是所述目标MCU控制器的上级节点。
具体地,当广播消息到达目标MCU控制器时,广播消息中的通信链为上一层MCU控制器和目标MCU控制器两层,则层数一定为2。因此,在接收到广播消息时,首先判断层数是否为2,若是2,则说明当前设备与目标MCU控制器属于同一层。此时,进一步判断通信链中是否存在当前设备的标识和地址,若是,则确定自身是目标MCU控制器。
若层数不是2,则确定自身是不是目标MCU控制器的上级节点,即确定自身是否与目标MCU控制器在同一个树状结构上。具体地,检测通信链中是否存在当前设备自身的标识和地址,若不存在,则说明当前设备不在通信链上,则当前设备不是目标MCU控制器的上级节点。若通信链中存在当前设备自身的标识和地址,则说明当前设备是目标MCU控制器的上级节点。
在一种可能的实施方式中,在步骤103根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点之后,还包括:
若确定不是所述目标MCU控制器的上级节点,则所述第一层MCU控制器进入不主动发送消息的静默状态。
在本发明实施例中,若当前设备确定自身不是目标MCU控制器的上级节点,则不需要向下级节点发送广播消息。为了尽量不占用通信链上的其他设备消息传递的带宽资源,当前设备进入静默状态。在静默状态下,当前设备仅接收消息,不主动向其他设备发送消息。
在一种可能的实施方式中,所述MCU控制器包括多个通信端口,步骤105中所述第一层MCU控制器将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,包括:
步骤1051、所述第一层MCU控制器将当前接收所述第一广播消息的通信端口锁定为唯一的对上端口,并将所述第一层MCU控制器上的其他通信端口设置为主动端口;
步骤1052、所述主动端口将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器。
在步骤1051-步骤1052中,若第一层MCU控制器确定自身为目标MCU控制器的上级节点,则将当前接收第一广播消息的通信端口锁定为唯一的对上端口。
例如,若当前接收第一广播消息的通信端口为第一端口,则将第一端口锁定为只对ARM控制器传输信息的对上端口,并将第一端口以外的其他端口设置为主动端口。然后,使用主动端口将第二广播消息下发给下一层MCU控制器。
将当前接收所述第一广播消息的通信端口锁定为唯一的对上端口,有利于快速将下层节点的响应信息传递给对上的ARM控制器,而将第一层MCU控制器上的其他通信端口设置为主动端口,则有利于快速将第二广播消息传递给下层MCU控制器。这样不同的端口具有不同的对上和对下职责,有利于提高信息的传输效率。
在一种可能的实施方式中,在步骤104或步骤106中所述目标MCU控制器根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令之后,还包括:
步骤201、所述目标MCU控制器生成针对所述运维指令的第一响应消息,所述第一响应消息中包括响应结果和第二通信链,所述第二通信链包括所述目标MCU控制器和上一级MCU控制器的信息;所述上一级MCU控制器为直接将广播消息发送给所述目标MCU控制器的设备;
步骤202、所述目标MCU控制器将所述第一响应消息广播给与其连接的各个上一层MCU控制器;
步骤203、各个所述上一层MCU控制器在接收到所述第一响应消息后,确定自身是否位于所述第二通信链上;
步骤204、若确定位于所述第二通信链上,则所述上一层MCU控制器的对上端口将所述第一响应消息转换为第二响应消息发送给与其连接的上一层MCU控制器;以此类推,各层MCU控制器的对上端口依次向与其连接的上一层MCU控制器转发所述响应消息,直至所述第一层MCU控制器接收到所述响应消息;
步骤205、所述第一层MCU控制器通过所述对上端口将所述响应消息发送给所述ARM控制器。
在步骤201-步骤205中,目标MCU控制器在接收到运维指令后,执行该运维指令,并生成针对运维指令的第一响应消息。
第一响应消息中具体包括响应结果和第二通信链,第二通信链包括目标MCU控制器和上一级MCU控制器的信息。
如图5所示,E设备的上行信息为第一响应消息,第一响应消息中的第二通信链包括D设备信息和E设备信息,层数为E-D设备的个数,为2。D设备的对上端口在接收到第一响应消息后,将第一响应消息转换为第二响应消息,第二响应消息即为图4中D设备的上行信息,第二响应消息中的通信链加上了对上端口所对应的C设备信息,具体包括E-C设备信息,层数为E-C设备的个数,为3。
以此类推,各层MCU控制器的对上端口依次向与其连接的上一层MCU控制器转发响应消息,直至所述第一层MCU控制器接收到响应消息。第一层MCU控制器通过对上端口将响应消息发送给ARM控制器。从而,ARM控制器得到运维指令的执行结果。
在本发明实施例中,各层MCU控制器通过对上端口依次将目标MCU控制器的响应消息传递给ARM控制器,通过对上端口传递响应消息,提高了消息的处理效率和传播效率,并且免去了对端口类型的固定配置,增加了程序灵活性。
在一种可能的实施方式中,步骤101中所述ARM控制器接收针对目标MCU控制器的运维指令,包括:
步骤1011、所述ARM控制器接收通过终端发送的软件包,或通过U盘传输的软件包;
步骤1012、所述ARM控制器对所述软件包进行解析,得到针对目标MCU控制器的运维指令;所述运维指令为升级APP指令、升级IAP指令、读取日志指令、读取配置指令、下载配置指令中的一种。
在步骤1011-步骤1012中,具体地,目标MCU控制器的存储区域中包含APP文件夹、IAP文件夹、LOG文件夹、CFG文件夹、RDCFG文件夹。
其中,APP文件夹包含应用程序文件,IAP文件夹包括底层程序文件,LOG文件夹包括日志文件,CFG文件夹包括配置文件,RDCFG文件夹包括只读配置文件。
针对目标MCU控制器的运维指令具体可以包括升级应用程序的指令、升级底层程序的指令、读取配置文件的指令、下载配置文件的指令、读取日志的指令等。
具体地,运维指令包含在软件包中,软件包可能从运维平台传到ARM控制器,也有可能通过U盘导入。ARM控制器会有驱动程序,当检测到U盘时,自动将U盘的东西拷入存储区域。
图6是本发明实施例提供的一种运维指令执行系统的结构框图。所述系统300包括一个ARM控制器301和多个MCU控制器,所述多个MCU控制器之间形成树状通信网络,位于所述树状通信网络最顶层的第一层MCU控制器302与所述ARM控制器通信连接;其中,
所述ARM控制器301用于:
接收针对目标MCU控制器的运维指令,所述目标MCU控制器为所述多个MCU控制器中的一个;
对各个所述第一层MCU控制器下发第一广播消息;所述第一广播消息中包括所述运维指令、第一通信链和第一层数,所述第一通信链为从所述ARM控制器到所述目标MCU控制器所需经过的各个MCU控制器的信息,所述第一层数为所述第一通信链中的MCU控制器的个数;
所述第一层MCU控制器302用于:
利用各个通信端口接收所述第一广播消息,并根据所述第一广播消息的消息类型确定处理所述第一广播消息的目标通信端口;所述目标通信端口对所述第一广播消息进行解析,并根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点;
若确定是所述目标MCU控制器,则响应所述运维指令;
若确定是所述目标MCU控制器的上级节点,则将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,以此类推,位于所述第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N-1广播消息后,依次将所述第N-1广播消息转换为第N广播消息下发,直至所述目标MCU控制器接收到所述广播消息;
所述目标MCU控制器303用于:
根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (8)
1.一种运维指令执行方法,其特征在于,应用于运维指令执行系统,所述系统包括一个ARM控制器和多个MCU控制器,所述多个MCU控制器之间形成树状通信网络,位于所述树状通信网络最顶层的第一层MCU控制器与所述ARM控制器通信连接;所述方法包括:
所述ARM控制器接收针对目标MCU控制器的运维指令,所述目标MCU控制器为所述多个MCU控制器中的一个;
所述ARM控制器对各个所述第一层MCU控制器下发第一广播消息;所述第一广播消息中包括所述运维指令、第一通信链和第一层数,所述第一通信链为从所述ARM控制器到所述目标MCU控制器所需经过的各个MCU控制器的信息,所述第一层数为所述第一通信链中的MCU控制器的个数;
所述第一层MCU控制器的各个通信端口接收所述第一广播消息,并根据所述第一广播消息的消息类型确定处理所述第一广播消息的目标通信端口;所述目标通信端口对所述第一广播消息进行解析,并根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点;
若确定是所述目标MCU控制器,则所述第一层MCU控制器响应所述运维指令;
若确定是所述目标MCU控制器的上级节点,则所述第一层MCU控制器将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,以此类推,位于所述第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N-1广播消息后,依次将所述第N-1广播消息转换为第N广播消息下发,直至所述目标MCU控制器接收到所述广播消息;
所述目标MCU控制器根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令;
所述根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点,包括:
所述第一层MCU控制器确定所述第一层数是否为2;
若是2,则在检测到所述第一通信链中存在所述第一层MCU控制器自身的标识和地址后,确定自身是所述目标MCU控制器;
若不是2,则确定自身不是所述目标MCU控制器,并检测所述第一通信链中是否存在所述第一层MCU控制器自身的标识和地址;
若存在所述第一层MCU控制器自身的标识和地址,则确定自身是所述目标MCU控制器的上级节点;若不存在所述第一层MCU控制器自身的标识和地址,则确定自身不是所述目标MCU控制器的上级节点。
2.根据权利要求1所述的方法,其特征在于,所述将所述第N-1广播消息转换为第N广播消息,包括:
将所述第N-1广播消息中的第N-1通信链中的所述上一层设备的信息去除,并将所述第N-1广播消息中的层数的数量减1,得到第N广播消息。
3.根据权利要求1所述的方法,其特征在于,在根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点之后,还包括:
若确定不是所述目标MCU控制器的上级节点,则所述第一层MCU控制器进入不主动发送消息的静默状态。
4.根据权利要求1所述的方法,其特征在于,所述MCU控制器包括多个通信端口,所述第一层MCU控制器将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,包括:
所述第一层MCU控制器将当前接收所述第一广播消息的通信端口锁定为唯一的对上端口,并将所述第一层MCU控制器上的其他通信端口设置为主动端口;
所述主动端口将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器。
5.根据权利要求4所述的方法,其特征在于,在所述目标MCU控制器根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令之后,还包括:
所述目标MCU控制器生成针对所述运维指令的第一响应消息,所述第一响应消息中包括响应结果和第二通信链,所述第二通信链包括所述目标MCU控制器和上一级MCU控制器的信息;所述上一级MCU控制器为直接将所述广播消息发送给所述目标MCU控制器的设备;
所述目标MCU控制器将所述第一响应消息广播给与其连接的各个上一层MCU控制器;
各个所述上一层MCU控制器在接收到所述第一响应消息后,确定自身是否位于所述第二通信链上;
若确定位于所述第二通信链上,则所述上一层MCU控制器的所述对上端口将所述第一响应消息转换为第二响应消息发送给与其连接的上一层MCU控制器;以此类推,各层MCU控制器的对上端口依次向与其连接的上一层MCU控制器转发所述响应消息,直至所述第一层MCU控制器接收到所述响应消息;
所述第一层MCU控制器通过所述对上端口将所述响应消息发送给所述ARM控制器。
6.根据权利要求1所述的方法,其特征在于,所述ARM控制器接收针对目标MCU控制器的运维指令,包括:
所述ARM控制器接收通过终端发送的软件包,或通过U盘传输的软件包;
所述ARM控制器对所述软件包进行解析,得到针对目标MCU控制器的运维指令;所述运维指令为升级APP指令、升级IAP指令、读取日志指令、读取配置指令、下载配置指令中的一种。
7.一种运维指令执行系统,其特征在于,所述系统包括一个ARM控制器和多个MCU控制器,所述多个MCU控制器之间形成树状通信网络,位于所述树状通信网络最顶层的第一层MCU控制器与所述ARM控制器通信连接;其中,
所述ARM控制器用于:
接收针对目标MCU控制器的运维指令,所述目标MCU控制器为所述多个MCU控制器中的一个;
对各个所述第一层MCU控制器下发第一广播消息;所述第一广播消息中包括所述运维指令、第一通信链和第一层数,所述第一通信链为从所述ARM控制器到所述目标MCU控制器所需经过的各个MCU控制器的信息,所述第一层数为所述第一通信链中的MCU控制器的个数;
所述第一层MCU控制器用于:
利用各个通信端口接收所述第一广播消息,并根据所述第一广播消息的消息类型确定处理所述第一广播消息的目标通信端口;所述目标通信端口对所述第一广播消息进行解析,并根据所述第一通信链和所述第一层数确定自身是否是所述目标MCU控制器或所述目标MCU控制器的上级节点;
若确定是所述目标MCU控制器,则响应所述运维指令;
若确定是所述目标MCU控制器的上级节点,则将所述第一广播消息转换为第二广播消息下发给下一层MCU控制器,以此类推,位于所述第一通信链上的各层MCU控制器在接收到上一层MCU控制器发送的第N-1广播消息后,依次将所述第N-1广播消息转换为第N广播消息下发,直至所述目标MCU控制器接收到所述广播消息;
所述目标MCU控制器用于:
根据所述广播消息确定自身是所述运维指令的执行者,并响应所述运维指令;
所述第一层MCU控制器具体用于:
确定所述第一层数是否为2;
若是2,则在检测到所述第一通信链中存在所述第一层MCU控制器自身的标识和地址后,确定自身是所述目标MCU控制器;
若不是2,则确定自身不是所述目标MCU控制器,并检测所述第一通信链中是否存在所述第一层MCU控制器自身的标识和地址;
若存在所述第一层MCU控制器自身的标识和地址,则确定自身是所述目标MCU控制器的上级节点;若不存在所述第一层MCU控制器自身的标识和地址,则确定自身不是所述目标MCU控制器的上级节点。
8.根据权利要求7所述的系统,其特征在于,所述第一层MCU控制器具体用于:
将所述第N-1广播消息中的第N-1通信链中的所述上一层设备的信息去除,并将所述第N-1广播消息中的层数的数量减1,得到第N广播消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410476977.4A CN118092289B (zh) | 2024-04-19 | 一种运维指令执行方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410476977.4A CN118092289B (zh) | 2024-04-19 | 一种运维指令执行方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118092289A CN118092289A (zh) | 2024-05-28 |
CN118092289B true CN118092289B (zh) | 2024-07-02 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102612166A (zh) * | 2011-01-21 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、基站系统以及相关设备 |
CN103812953A (zh) * | 2014-02-25 | 2014-05-21 | 中标软件有限公司 | 一种微控制单元与 arm 处理器的通信接口系统 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102612166A (zh) * | 2011-01-21 | 2012-07-25 | 华为技术有限公司 | 一种数据处理方法、基站系统以及相关设备 |
CN103812953A (zh) * | 2014-02-25 | 2014-05-21 | 中标软件有限公司 | 一种微控制单元与 arm 处理器的通信接口系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107976986B (zh) | 用于对车辆电子控制模块编程的方法 | |
CN109524049B (zh) | Ssd异常掉电测试方法、装置、计算机设备和存储介质 | |
CN108897293B (zh) | 织机控制方法、系统、计算机设备和存储介质 | |
CN105511929A (zh) | 一种设备远程无线升级方法 | |
CN105786985A (zh) | 一种文件系统自动扩容方法及装置 | |
CN115314470A (zh) | 一种rs-485组网通信地址自动分配方法、主机、从机及系统 | |
CN118092289B (zh) | 一种运维指令执行方法和系统 | |
WO2023000841A1 (zh) | 车载系统升级方法、车辆及可读存储介质 | |
CN110808847B (zh) | 管理das系统的方法和设备、电子设备、存储介质 | |
CN112416408A (zh) | 固件升级方法、装置、设备及计算机可读存储介质 | |
CN118092289A (zh) | 一种运维指令执行方法和系统 | |
CN109639507B (zh) | 一种宽带电力线载波通信网络升级方法 | |
CN116055920B (zh) | 通信模块的程序升级方法及系统、用电信息采集系统 | |
US20070038699A1 (en) | Method and device arrangement for managing a user application/device management server/client device environment | |
CN113396600B (zh) | 信息验证方法、装置、设备及存储介质 | |
CN116991142A (zh) | 基于模块化uds协议的汽车诊断服务方法及系统 | |
CN116781211A (zh) | 一种设备升级方法、装置、电子设备和存储介质 | |
CN115268965A (zh) | 一种低压智能断路器自适应软件远程升级方法及系统 | |
CN108984319A (zh) | 解决操作指令冲突的方法、装置、计算机设备和存储介质 | |
CN115277671A (zh) | 车辆的ota升级方法、装置、车辆及存储介质 | |
CN109669699B (zh) | 应用程序分发方法、无线控制器及无线接入点 | |
CN113535202A (zh) | 充电桩的升级方法、升级装置以及充电桩系统 | |
CN113515056A (zh) | 功能的执行方法及智能家电 | |
CN100420328C (zh) | 一种维护通道ip地址的获取方法以及修改方法 | |
CN112003936B (zh) | 集群系统中设备升级的方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |