CN117170704B - 基于硬件iic的远程升级方法和装置 - Google Patents

基于硬件iic的远程升级方法和装置 Download PDF

Info

Publication number
CN117170704B
CN117170704B CN202311050897.4A CN202311050897A CN117170704B CN 117170704 B CN117170704 B CN 117170704B CN 202311050897 A CN202311050897 A CN 202311050897A CN 117170704 B CN117170704 B CN 117170704B
Authority
CN
China
Prior art keywords
upgrade
program
data
starting address
package data
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
Application number
CN202311050897.4A
Other languages
English (en)
Other versions
CN117170704A (zh
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.)
Nanjing Zhipu Technology Co ltd
Original Assignee
Nanjing Zhipu Technology 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 Nanjing Zhipu Technology Co ltd filed Critical Nanjing Zhipu Technology Co ltd
Priority to CN202311050897.4A priority Critical patent/CN117170704B/zh
Publication of CN117170704A publication Critical patent/CN117170704A/zh
Application granted granted Critical
Publication of CN117170704B publication Critical patent/CN117170704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请实施例涉及物联网技术领域,且涉及一种基于硬件IIC的远程升级方法和装置。其中应用于MCU信号控制板的方法的方案为:MCU信号控制板与监测设备相连接;响应于MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据;其中,上位机基于IIC协议与MCU信号控制板进行数据通信;将升级包数据存储至预先指定的升级程序起始地址中;跳转到升级程序起始地址,执行升级包数据中的升级程序,对监测设备进行升级操作。本申请实施例基于硬件IIC实现远程升级,通信成本低廉,抗干扰能力更强。硬件IIC通信通过硬件电路来实现数据传输,不依赖CPU运算能力,可减轻CPU负担,释放CPU的运算能力,具有更好的稳定性和可靠性,提高系统的整体性能。

Description

基于硬件IIC的远程升级方法和装置
技术领域
本发明涉及物联网技术领域,尤其涉及基于硬件IIC的远程升级方法和装置。
背景技术
随着物联网设备的快速发展和普及,远程升级已经成为一种必要的技术手段。通过远程升级,用户可以轻松地将物联网设备升级到最新的软件版本,从而获得更好的性能、更多的功能和更高的安全性。同时,远程升级还可以方便地修复设备中的漏洞和缺陷,提高设备的稳定性和可靠性。目前,物联网设备大都使用USB(Universal Serial Bus,通用串行总线)或者通过串口进行远程升级。该升级方式存在抗干扰能力差、易受到外界干扰和噪声的影响、通信引脚占用多、需要投入更多的软件和硬件开发等问题。
发明内容
鉴于现有技术的以上问题,本申请实施例提供一种基于硬件IIC的远程升级方法和装置,基于硬件IIC实现远程升级,通信成本低廉,抗干扰能力更强。硬件IIC通信不依赖于 CPU的运算能力,而是通过硬件电路来实现数据传输。因此该方案可以减轻CPU的负担,释放CPU的运算能力,具有更好的稳定性和可靠性,从而提高系统的整体性能。
达到上述目的,本申请第一方面提供了一种基于硬件IIC的远程升级方法,所述方法应用于MCU信号控制板,所述MCU信号控制板与监测设备相连接,所述方法包括:
响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据;其中,所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
将所述升级包数据存储至预先指定的升级程序起始地址中;
跳转到所述升级程序起始地址,执行所述升级包数据中的升级程序,对所述监测设备进行升级操作。
作为第一方面的一种可能的实现方式,所述响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据,还包括:
在所述监测设备的地址与来自上位机的寻址信号中携带的目的地址一致的情况下,所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据。
作为第一方面的一种可能的实现方式,所述将所述升级包数据存储至预先指定的升级程序起始地址中,还包括:
接收来自所述上位机的升级校验码;
根据所述升级校验码对所述升级包数据进行校验;
在成功校验的情况下,将所述升级包数据存储至所述升级程序起始地址中。
作为第一方面的一种可能的实现方式,所述接收来自上位机的升级包数据,还包括:接收来自上位机分包发送的所述升级包数据;
根据所述升级校验码对所述升级包数据进行校验,包括:根据所述升级校验码对所述升级包数据中的每个包进行数据的和检验,以及根据所述升级包数据中携带的包号对所述升级包数据进行包号的和检验。
作为第一方面的一种可能的实现方式,所述执行所述升级包数据中的升级程序,对所述监测设备进行升级操作之后,还包括:
在所述升级程序执行成功的情况下,将所述升级程序起始地址映射为应用程序起始地址,将原来的应用程序起始地址映射为升级程序起始地址。
本申请第二方面提供了一种基于硬件IIC的远程升级方法,所述方法应用于上位机,包括:
从指定路径获取监测设备的升级包数据;
将所述升级包数据发送给MCU信号控制板;其中,所述MCU信号控制板与监测设备相连接;所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
在确认所述MCU信号控制板接收到所述升级包数据的情况下,向所述MCU信号控制板发送升级校验码;
在确认所述MCU信号控制板根据所述升级校验码成功校验的情况下,向所述MCU信号控制板发送升级指令,指示所述MCU信号控制板执行所述升级包数据中的升级程序对所述监测设备进行升级操作。
作为第二方面的一种可能的实现方式,所述将所述升级包数据发送给MCU信号控制板,还包括:
将所述升级包数据分包处理后发送给所述MCU信号控制板。
作为第二方面的一种可能的实现方式,所述上位机基于IIC协议与所述MCU信号控制板进行数据通信,包括:
将所述上位机作为主设备,将与所述监测设备作为从设备,所述上位机通过寻址信号中的从设备地址寻址不同的从设备;
基于所述从设备地址,所述上位机与所述监测设备连接的MCU信号控制板进行数据通信。
本申请第三方面提供了一种基于硬件IIC的远程升级装置,所述装置设置于MCU信号控制板,所述MCU信号控制板与监测设备相连接,所述装置包括:
接收单元,用于响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据;其中,所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
存储单元,用于将所述升级包数据存储至预先指定的升级程序起始地址中;
执行单元,用于跳转到所述升级程序起始地址,执行所述升级包数据中的升级程序,对所述监测设备进行升级操作。
作为第三方面的一种可能的实现方式,所述接收单元还用于:
在所述监测设备的地址与来自上位机的寻址信号中携带的目的地址一致的情况下,所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据。
作为第三方面的一种可能的实现方式,所述存储单元还包括:
接收子单元,用于接收来自所述上位机的升级校验码;
校验子单元,用于根据所述升级校验码对所述升级包数据进行校验;
存储子单元,用于在成功校验的情况下,将所述升级包数据存储至所述升级程序起始地址中。
作为第三方面的一种可能的实现方式,所述接收单元还用于:接收来自上位机分包发送的所述升级包数据;
所述校验子单元用于:根据所述升级校验码对所述升级包数据中的每个包进行数据的和检验,以及根据所述升级包数据中携带的包号对所述升级包数据进行包号的和检验。
作为第三方面的一种可能的实现方式,所述装置还包括映射单元,所述映射单元用于:
在所述升级程序执行成功的情况下,将所述升级程序起始地址映射为应用程序起始地址,将原来的应用程序起始地址映射为升级程序起始地址。
本申请第四方面提供了一种基于硬件IIC的远程升级装置,所述装置设置于上位机,包括:
获取单元,用于从指定路径获取监测设备的升级包数据;
第一发送单元,用于将所述升级包数据发送给MCU信号控制板;其中,所述MCU信号控制板与监测设备相连接;所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
第二发送单元,用于在确认所述MCU信号控制板接收到所述升级包数据的情况下,向所述MCU信号控制板发送升级校验码;
第三发送单元,用于在确认所述MCU信号控制板根据所述升级校验码成功校验的情况下,向所述MCU信号控制板发送升级指令,指示所述MCU信号控制板执行所述升级包数据中的升级程序对所述监测设备进行升级操作。
作为第四方面的一种可能的实现方式,所述第一发送单元还用于:将所述升级包数据分包处理后发送给所述MCU信号控制板。
作为第四方面的一种可能的实现方式,所述装置还包括通信单元,所述通信单元用于实现所述上位机基于IIC协议与所述MCU信号控制板进行数据通信,具体用于:
将所述上位机作为主设备,将与所述监测设备作为从设备,所述上位机通过寻址信号中的从设备地址寻址不同的从设备;
基于所述从设备地址,所述上位机与所述监测设备连接的MCU信号控制板进行数据通信。
本申请第五方面提供了一种计算设备,包括:
通信接口;
至少一个处理器,其与所述通信接口连接;以及
至少一个存储器,其与所述处理器连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行上述第一方面任一项所述的方法。
本申请第六方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行上述第一方面任一项所述的方法。
本发明的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
以下参照附图来进一步说明本发明的各个特征和各个特征之间的联系。附图均为示例性的,一些特征并不以实际比例示出,并且一些附图中可能省略了本申请所涉及领域的惯常的且对于本申请非必要的特征,或是额外示出了对于本申请非必要的特征,附图所示的各个特征的组合并不用以限制本申请。另外,在本说明书全文中,相同的附图标记所指代的内容也是相同的。具体的附图说明如下:
图1为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的示意图;
图2为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的监测系统架构示意图;
图3为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的监测系统的工作流程图;
图4为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的硬件IIC数据传输示意图;
图5为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的示意图;
图6为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的IIC 写数据格式示意图;
图7为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的IIC 读数据格式示意图;
图8为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的示意图;
图9为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的MCU信号控制板的升级流程示意图;
图10为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的示意图;
图11为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的上位机的升级流程示意图;
图12为本申请实施例提供的基于硬件IIC的远程升级装置的一实施例的示意图;
图13为本申请实施例提供的基于硬件IIC的远程升级装置的一实施例的示意图;
图14为本申请实施例提供的基于硬件IIC的远程升级装置的一实施例的示意图;
图15为本申请实施例提供的基于硬件IIC的远程升级装置的一实施例的示意图;
图16为本申请实施例提供的基于硬件IIC的远程升级装置的一实施例的示意图;
图17为本申请实施例提供的计算设备的示意图。
实施方式
说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本发明,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义:
1)IIC(Inter-Integrated Circuit,集成电路总线):IIC是IICBus的简称,它是一种串行通信总线,使用多主从架构。IIC是一种两线通信协议,它仅使用两根线进行通信。其中一根线用于数据(SDA),另一根线用于时钟(SCL),可以发送和接收数据,属于半双工同步通讯方式。
2)MCU(Microcontroller Unit,微控制单元):MCU又称单片微型计算机(SingleChip Microcomputer )或者单片机,是把中央处理器(CPU,Central Process Unit)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB(Universal Serial Bus,通用串行总线)、A/D(模拟数字转换器)转换、UART(Universal Asynchronous Receiver/Transmitter,异步收发传输器)、PLC( (Programmable Logic Controller,可编程逻辑控制器)、DMA(Direct Memory Access,直接内存访问)等周边接口,甚至LCD(Liquid CrystalDisplay,液晶显示器)驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC(Personal Computer,个人计算机)外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
3)MIPI(Mobile Industry Processor Interface,移动产业处理器接口):MIPI是MIPI联盟发起的为移动应用处理器制定的开放标准和规范。
下面先对现有的方法进行介绍,然后再对本申请的技术方案进行详细介绍。
随着物联网设备的快速发展和普及,远程升级已经成为一种必要的技术手段。通过远程升级,用户可以轻松地将物联网设备升级到最新的软件版本,从而获得更好的性能、更多的功能和更高的安全性。同时,远程升级还可以方便地修复设备中的漏洞和缺陷,提高设备的稳定性和可靠性。目前,物联网设备大都使用USB(Universal Serial Bus,通用串行总线)或者通过串口进行远程升级。该升级方式存在抗干扰能力差、易受到外界干扰和噪声的影响、数据可靠性差、通信引脚占用多、需要投入更多的软件和硬件开发等问题。
现有技术存在着以下的缺陷:抗干扰能力差、易受到外界干扰和噪声的影响、数据可靠性差、通信引脚占用多、需要投入更多的软件和硬件开发。
基于上述现有技术所存在的技术问题,本申请提供了一种基于硬件IIC的远程升级方法和装置,基于硬件IIC实现远程升级。IIC通信线路简单,只需要两根线就可以进行通信。这使得IIC通信成本低廉,从而解决了现有技术中提到的通信引脚占用多、需要投入更多的软件和硬件开发的技术问题。另外,IIC协议的抗干扰能力更强,因为它采用同步串行方式传输数据,所以在噪声较多的环境中仍能保证数据传输的可靠性,从而解决了现有技术中提到的抗干扰能力差、易受到外界干扰和噪声的影响、数据可靠性差的技术问题。再有,硬件IIC通信不依赖于 CPU的运算能力,而是通过硬件电路来实现数据传输。因此该方案可以减轻CPU的负担,释放CPU的运算能力,具有更好的稳定性和可靠性,从而提高系统的整体性能。
图1为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的示意图。如图1所示,所述方法应用于MCU信号控制板,所述MCU信号控制板与监测设备相连接,所述方法具体可以包括:
步骤S110,响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据;其中,所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
步骤S120,将所述升级包数据存储至预先指定的升级程序起始地址中;
步骤S130,跳转到所述升级程序起始地址,执行所述升级包数据中的升级程序,对所述监测设备进行升级操作。
本申请实施例可应用于基于硬件IIC实现远程升级的监测系统,能够实现远程升级,无需操作人员到场,缩减人力的支出,更方便的完成升级工作。
在一个示例中,该监测系统可包括监测设备、MCU信号控制板、上位机控制平台和服务器。其中,上位机控制平台可以简称为上位机。如图2所示,上位机控制平台可以与至少一个监测设备相连接。通过上位机控制平台和服务器可以对多个监测设备进行管控和维护。监测设备由传感器、镜头等设备组成。其中,镜头上面可以配置有探测器等设备。MCU信号控制板和监测设备通过硬件线路相连接。其中,MCU信号控制板由MCU芯片本身及其外围电路构成。MCU信号控制板与监测设备通过外围结构组装在一起。MCU信号控制板可以安装在监测设备内部。MCU可以作为控制板和监测设备的核心控制部件。本申请实施例中升级的对象是针对MCU的程序升级,进而实现对监测设备的升级操作。
监测系统中的监测设备实时对当前场景中的监测对象进行监测。例如红外镜头的功能是对气体泄漏进行监测,则当前监测对象为气体。又如红外镜头的功能是监测目标温度,则当前监测对象是目标的温度值。监测设备通过传感器将当前场景内监测对象的非电信号转化为电信号,再通过模数转换为数字信号。MCU信号控制板作信号处理,将数字信号转为MIPI格式的视频数据图像并以IIC协议进行传输。上位机控制平台对接收到的视频数据图像进行处理,处理后将视频流以图像的形式输出至显示界面,并将监测设备内部参数(例如镜头上的控制参数)保存至服务器。
在一个示例中,MCU信号控制板可采用STM32G474RET6单片机和TC358748作信号处理。MCU信号控制板主要负责:一方面将前端监测设备检测到的信号进行处理,发送给上位机;另一方面从上位机接收升级包数据并执行升级程序完成自身的升级操作,从而完成监测设备的升级操作。
参见图3所示的监测系统的工作流程,首先在服务器上存放升级使用的BIN(二进制)文件。然后上位机控制平台可以主动从服务器上下载升级BIN文件,以IIC协议将文件数据分包发送给MCU信号控制板。同时上位机控制平台可以发送其他控制指令给MCU信号控制板来控制监测设备动作。例如上位机控制平台发送指令设置镜头、调焦、调节参数等。上位机控制平台也可以发送读指令给MCU信号控制板,获取监测设备的参数信息并保存。MCU信号控制板将监测设备得到的信号数据进行格式转换后上传给上位机控制平台,同时接收上位机控制平台的指令进行相应的动作,可以控制监测设备的动作,也可以获取监测设备的参数。在整个监测过程中,监测设备监测当前环境内所需要的监测对象。
在程序需要进行远程升级时,相关操作人员可在上位机控制平台指示对监测设备进行远程升级。响应于接收到远程升级指示,上位机控制平台从服务器上下载升级包数据,即升级BIN文件,并以IIC协议将升级包数据发送给MCU信号控制板。在步骤S110中,MCU信号控制板响应于MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据。其中,上位机基于IIC协议与MCU信号控制板进行数据通信。硬件IIC的实现方式可以包括:在电路板上设置有一块外围电路,相当于实现IIC通讯协议的一块外围电路。通过检测这块电路上的电平变化来作为信号进行数据传输。在数据传输的信号到来的时候,在硬件电路上有一个高低电平的转换,通过硬件IIC的电平跳变实现数据传输。也就是说,在MCU信号控制板上有关于IIC的一个驱动电路。在该驱动电路中,通过检测电平变化来传输数据。
图4示出了基于硬件IIC进行数据传输的一个示例。参见图4,上位机控制平台给MCU信号控制板发送接收读数据的指令。MCU信号控制板中的硬件IIC电路接收到该指令后触发中断请求。MCU信号控制板首先判断通信方向。如果通信方向为读方向,则MCU信号控制板打开接收寄存器跳转到接收寄存器地址,打开发送寄存器填充发送数据,然后回复数据给上位机控制平台;如果通信方向为写方向,则MCU信号控制板打开接收寄存器跳转到接收寄存器地址,打开接收寄存器接收数据,然后接收上位机控制平台的数据并进行相关处理。
在步骤S120中,MCU信号控制板将升级包数据存储至预先指定的升级程序起始地址中。例如MCU信号控制板将升级包数据存储至起始地址为0x8040000的存储空间中。
在步骤S130中,MCU信号控制板跳转到上述升级程序起始地址,执行升级包数据中的升级程序,将自身运行程序替换为新版本以完成对监测设备的升级操作。
在远程升级设备固件的过程中,使用软件IIC协议也是可行的。在相关技术中,也可以使用软件IIC协议远程升级设备固件。与相关技术不同的是,本申请实施例中基于硬件IIC实现远程升级。一方面,硬件IIC相比于软件IIC通信速度更快,因此可以提高数据传输的效率。尤其在大数据量的情况下,硬件IIC能够更快地完成数据传输。另一方面,硬件IIC通信不依赖于CPU的运算能力,而是通过硬件电路来实现数据传输,因此硬件IIC通信具有更好的稳定性和可靠性。相比之下,软件IIC通信可能会受到操作系统、中断等因素的影响导致稳定性差。硬件IIC能减轻CPU的负担,释放CPU的运算能力,从而提高系统的整体性能。在一些对实时性要求较高的应用场景中,该优势尤其发挥重要的作用。
另外,IIC通信线路简单,只需要两根线就可以进行通信,这使得IIC通信成本低廉。IIC协议的抗干扰能力更强,因为它采用同步串行方式传输数据,所以在噪声较多的环境中仍能保证数据传输的可靠性。
综上,本申请实施例提供的基于硬件IIC的远程升级方法具有明显的优势,总结如下:
1)本申请实施例可以避免用户将设备或系统运送到维修中心安装新程序的繁琐过程,只需通过网络连接,就可以实现远程升级,大大减少了用户的等待和停机时间。
2)本申请实施例实 现的远程升级,可以大幅降低维护成本,相比传统的上门服务和现场升级方式,远程升级减少了差旅费用和人工成功,降低了人工维护的错误率和事故率,提高了服务效率和准确性。
3)本申请实施例实现的远程升级,可以及时更新软件和系统的版本,修复安全漏洞和缺陷,避免因软件问题而导致的设备故障和数据丢失,提高了系统的稳定性和可靠性。
4)本申请实施例实现的基于硬件IIC进行远程升级,可以将上位机作为主设备,将与监测设备作为从设备。从机软件升级时硬件IIC中断是由硬件电路电平变换直接触发的,可以在数据到来的第一时间接收并反馈。这是软件IIC作从机升级时无法做到的。
5)本申请实施例实现的基于硬件IIC进行远程升级,硬件IIC可以直接访问IIC总线,无需通过软件处理,因此速度更快,可实现更高的数据传输速率。
6)本申请实施例实现的基于硬件IIC进行远程升级,由于硬件IIC直接控制IIC总线的硬件信号,无需CPU参加,因此可以节省CPU资源,提高系统的整体性能。
7)本申请实施例实现的基于硬件IIC进行远程升级,硬件IIC使用专门的硬件电路实现,具有较高的稳定性和可靠性。升级过程不受软件算法的影响,能够更好地应对复杂的通信环境,且使用简单易于开发与维护。
图5为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的示意图。如图5所示,在一种实施方式中,图1中的步骤S110,所述响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据,还包括:
步骤S210,在所述监测设备的地址与来自上位机的寻址信号中携带的目的地址一致的情况下,所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据。
本申请实施例实现的基于硬件IIC进行远程升级,可以将上位机作为主设备(主机),将与监测设备作为从设备(从机)。在上位机给MCU信号控制板发送升级包数据的场景中,IIC协议的通信段中包括寻址信号和升级包数据。上位机寻址的时候是在寻址信号中携带着目的地址去寻找从设备。具体地,IIC协议的一个通信段可以包括Start信号、目的地址、升级包数据和Stop信号。上位机在发送升级包数据时可进行分包处理,每个包通过一个IIC协议的通信段进行数据传输。每个IIC协议的通信段中包括Start信号、从设备地址,后面再接升级包数据和Stop信号。在寻址信号中的目的地址与当前从机地址一致的情况下,MCU信号控制板的硬件IIC中断被触发,进入中断处理函数,从设备开始接收数据。其中,当前从机地址指MCU自身所在的设备从机地址。在一致的情况下,继续进行中断处理,接收升级包数据至MCU内部RAM(Random Access Memory,随机存取存储器)暂存。因为是硬件中断,所以当从机地址一致时MCU信号控制板会直接跳转至中断进行处理。
在一个示例中,IIC协议数据通信的格式可包括:Start信号、Device address、write or read bit(R/W)、Word Address(寄存器地址、Data(N个)、Stop信号。
图6为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的IIC 写数据格式示意图。参见图6所示,写(发送)数据格式中各个字段的解析如下:
Start:数据传输的开始信号,由主机产生;
Device address:标识从设备的地址,bit7~bit1;
R/W:W(write)为主机向从机写数据,R(read)为主机向从机读数据,bit0;
ACK:主机读数据时,从机做接收,由从机产生ACK信号;
Word Address:Slave设备内部的数据地址,即寄存器地址,主机要往从机的这个地址写数据,图6中Word Address可以有一个或多个字节;
Data:发送的数据,以字节为单位,每8bit数据,从设备回一个ACK信号;
Stop:数据传输的结束信号,由主机产生。
主机向从机写(发送)数据流程如下:
1.主机首先产生Start信号;
2. Start信号之后紧跟着发送一个从机地址,这个地址共有7位,紧接着的第8位是数据方向位(R/W);其中,0表示主机发送数据(写),1表示主机接收数据(读);
3.主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,若相同,从机则认为自己正在被主机寻址,根据R/W位将自己确定为发送器和接收器;
其中,当主设备向从设备写数据的时候,主设备做发送器,从设备做接收器;当主设备向从设备读数据的时候,主设备做接收器,从设备做发射器;
4.这时候主机等待从机的应答信号(ACK);
5.当主机收到应答信号时,发送要访问从机的哪个地址, 继续等待从机的应答信号;
6.当主机收到应答信号时,发送N个字节的数据,继续等待从机的N次应答信号;
7.主机产生停止信号,结束传送过程。
图7为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的IIC 读数据格式示意图。参见图7所示,读(接收)数据格式中各个字段的解析如下:
Start:数据传输的开始信号,由主机产生;
Device address:标识从设备的地址,bit7~bit1;
R/W:W(write)为主机向从机写数据,R(read)为主机向从机读数据,bit0;
ACK:正式接收数据后的ACK信号由主机产生;Data传输前的ACK信号由从机产生,因为Data传输前都是主机在给从机“写”数据;
Word Address:Slave设备(从设备)内部的数据地址,即寄存器地址,主机要往从机的这个地址读数据,图7中Word Address可以有一个或多个字节;
RS:restart信号,表现形式和Start信号完全一样;只是在读的过程中,再次触发了一次Start信号,所以称之为restart;
Data:接收的数据,以字节为单位,每8bit数据,主设备(接收器)回一个ACK信号;
NACK:当主机读完指定长度的数据时,会在最后一个byte(字节)接收完成后,产生一个NACK信号;
Stop:数据传输的结束信号,由主机产生。
主机向从机读数据实际上分了两个步骤,一是把需要希望从从机的哪个地址(Word Address)读数据,通过“写”(W)的方式告诉从机;然后再次发送读(R)信号,这时从机才开始给主机发送信号。主机向从机读(接收)数据流程如下:
1.主机首先产生Start信号;
2. Start信号之后紧跟着发送一个从机地址,此时该地址的R/W位为0,表明是向从机写命令,通知从机,主机要读的地址;
3.这时候主机等待从机的应答信号(ACK);
4.当主机收到应答信号时,发送要访问的地址,继续等待从机的应答信号;
5.当主机收到应答信号后,主机要改变通信模式(主机将由发送变为接收,从机将由接收变为发送)所以主机重新发送一个开始Start信号,然后紧跟着发送一个从机地址,此时该地址的R/W位为1,表明将主机设置成接收模式开始读取数据;
6.这时候主机等待从机的应答信号,当主机收到应答信号时,就可以接收n个字节的数据;当接收完成后,主机发送非应答信号(NACK),表示不再接收数据;
7.主机进而产生停止信号,结束传送过程。现有技术中使用USB或者串口进行远程升级时只能是设备一对一进行升级,存在局限性。而本申请实施例实现的基于硬件IIC进行远程升级,可以将上位机作为主设备,将与监测设备作为从设备。采用IIC协议进行远程升级可以实现一个终端设备对多个从设备进行远程升级的功能。
图8为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的示意图。如图8所示,在一种实施方式中,图1中的步骤S120,所述将所述升级包数据存储至预先指定的升级程序起始地址中,还包括:
步骤S310,接收来自所述上位机的升级校验码;
步骤S320,根据所述升级校验码对所述升级包数据进行校验;
步骤S330,在成功校验的情况下,将所述升级包数据存储至所述升级程序起始地址中。
MCU信号控制板接收升级校验码和进行升级等功能是通过程序设置不同的寄存器值进行处理的。程序设置接收升级包数据的寄存器值和接收检验码的寄存器值的不同,即可实现不同从机上的程序数据处理。
上位机和监测设备的主从结构中,基于IIC协议,从设备可以有多个寄存器,不同的寄存器实现不同的功能。在一个示例中,远程升级流程中使用以下寄存器,用来实现不同的功能:
第一,在发送和接收升级包数据的流程中使用了一个寄存器。具体地,上位机先发送升级包数据,操作的是写升级包数据的寄存器。MCU进行升级包数据的接收,每收一包数据都进行数据和校验的比对。以上数据和校验是在写数据的过程中进行校验,不使用寄存器,收包的时候需要先做数据和校验。
第二,当所有的升级包数据全部发完之后,上位机发送升级校验码,发送到MCU的校验寄存器。在一个示例中,基于IIC协议,通信段中包括的控制字节的前面几位数据可以表示不同的寄存器,后面的几位数据可以表示从机地址。上位机发送升级校验码,操作的是从设备的校验寄存器,进行包号的和检验。
第三,上位机发送完所有的升级包数据之后,读取MCU的状态。MCU接收完成会反馈一个返回信息,告诉上位机接收数据包没问题。另外,上位机发送升级校验码之后,也会一直读MCU的状态。MCU接收升级校验码之后进行包号的和检验,并返回一个状态。如果没有丢包,则上位机流程结束。MCU继续进行后续操作,如果确定没有丢包,则擦除FLASH,把RAM中的数据写入FLASH,然后跳转程序。其中,写入FLASH和跳转与上位机操作寄存器无关。
综上,与操作寄存器有关的功能包括:接收升级包数据写入RAM、包号的和检验,以及读取MCU的状态。通过分别操作不同的寄存器来实现以上各个功能。以读数据为例,上位机读数据时发送通信段给MCU,通过通信段中的寄存器的值表示上位机请求读取MCU的状态。上位机读取到MCU正确的状态之后进行下一步操作。上位机和MCU两者之间的通信通过写不同的寄存器值实现相对应的不同的功能。
在一种实施方式中,步骤S110中所述接收来自上位机的升级包数据,还包括:接收来自上位机分包发送的所述升级包数据;
根据所述升级校验码对所述升级包数据进行校验,包括:根据所述升级校验码对所述升级包数据中的每个包进行数据的和检验,以及根据所述升级包数据中携带的包号对所述升级包数据进行包号的和检验。
所谓和校验可以有很多种,最常见的一种是在每次通信数据包最后都加一个字节的校验数据。这个校验字节里的数据是通信数据包里所有数据的不进位累加和。接收方接收到数据后同样对一个数据包的数据进行不进位累加和计算,如果累加出的结果与校验位相同则认为传输的数据没有错误。
在一个示例中,对升级包数据进行校验的过程可包括以下步骤:
I、上位机发送升级包数据时进行分包发送;其中,升级包数据可以是二进制文件;
II、数据包包头可增加包号,包尾可增加发送数据的和校验值;在一个示例中,和校验值为一包数据里所有数据和值取低八位作为校验码;
III、MCU信号控制板每接收一包数据都会校验当前数据包的和校验码;
IV、MCU信号控制板接收数据包完毕后会进行包数校验;其中,包数校验即MCU分包接收的总包数等于上位机分包发送的总包数,即包号的和检验。
通过上述数据的和检验以及包号的和检验,既可以保证在数据传输过程中不漏包,又可以保证每个包中的数据没有问题。
在一种实施方式中,在步骤S130,所述执行所述升级包数据中的升级程序,对所述监测设备进行升级操作之后,还包括:
在所述升级程序执行成功的情况下,将所述升级程序起始地址映射为应用程序起始地址,将原来的应用程序起始地址映射为升级程序起始地址。
在一个示例中,可以将内存空间分成为两个BANK(内存库)。其中,“BANK数”可以表示内存的物理存储体的数量。程序运行过程中可以在两个BANK之间跳转。例如,应用程序起始地址在BANK1中,以0x8000000为应用程序起始地址。固定的第二个BANK的起始位置是0x8040000。每次接收到的升级包数据都存放在以0x8040000为起始地址的BANK2中。应用程序一直是从BANK1开始运行。做升级操作的时候,跳转到BANK2执行升级程序,不会把BANK1的内容擦除掉。升级程序只会留在BANK2中。当数据全部由RAM中写到FLASH(闪存)之后,芯片会跳转到BANK2。但此时BANK1的原有程序还在。跳转到BANK2之后,如果程序升级成功了,会将BANK2的起始地址映射成0x8000000,将BANK1的起始地址映射成0x8040000。这时BANK2就变成了BANK1,BANK1就变成了BANK2。
在上述升级过程中,程序首先在BANK1中运行,通过BANK1的现有程序获取到的数据先暂存至RAM。在接收到所有包之后,对数据进行数据校验,校验成功之后再将数据写到BANK2。校验通过后程序触发跳转到BANK2。跳转到BANK2之后开始运行升级程序。如果运行失败,程序回滚,回到BANK1继续运行。如果运行成功则说明跳转成功了,跳转成功之后将0x8040000映射为0x8000000,将0x8000000映射为0x8040000。上述升级过程中不擦除原有的运行程序,保证每次下载的程序不会影响原有程序的运行。
在现有技术中,下载的升级程序会覆盖掉原有的运行程序,如果下载的文件是不正确的,则跳转之后就无法恢复了。本申请实施例中,如果升级的程序有问题,可以恢复到原有的运行程序,不影响系统运行,可保证系统的运行稳定性。设置两个BANK可以实现当现有程序下载文件时,可以始终将升级程序放在同一个位置。芯片可以支持地址映射。程序启动时先访问BANK1的应用程序起始地址,升级包数据发下来后,数据接收是在BANK1中。升级包数据还没有校验时是存在RAM中,此时升级包数据不在FLASH中。其中,RAM是内部存储空间、运行存储空间;FLASH是静态存储、数据存储空间。软件在RAM中运行,用户数据是存在FLASH中的。程序运行时调用的空间是动态空间,程序在动态空间里运行,接收的数据包放在动态空间RAM中。检验通过之后把动态空间的数据存储到FLASH空间,即存储到BANK2。存储到BANK2之后,RAM中的数据会被清空掉,动态空间被释放。升级包数据存放到FLASH之后内部触发升级,程序运行从BANK1改为从BANK2开始运行。但是它们的起始地址在运行成功之后都会恢复到应用程序起始地址。因为程序的启动地址永远是从BANK1的0x8000000开始。
上述BANK1和BANK2的概念是虚拟的,升级操作时从BANK1跳转到BANK2,开始运行升级包里的程序。这时判断程序是否可以正常运行。如果正常运行说明升级成功,程序跳转过去后一直在BANK2中运行。但BANK2的起始地址映射成了0x8000000。也就是说,程序升级成功,则BANK2的0x8040000地址重定向为0x8000000,变成为BANK1,变为应用程序起始地址;原来的BANK1变为BANK2,原来的应用程序起始地址从0x8000000变成0x8040000。在下一次下载升级包数据时将数据放在以这个地址开始的存储空间中。即升级包数据永远放以0x8040000为起始地址存储空间中。
综上,FLASH写完毕后运行程序起始地址至0x8040000 实现程序升级的原理可包括以下步骤:
I、STM32G4支持双BANK模式下在线升级;
II、双BANK模式下应用程序起始地址为0x8000000,升级程序起始地址为0x8040000;
上述步骤 I 中双BANK模式在线升级即可以选择将应用程序放在任意一个BANK中运行,通过设置标志位BFB2来决定MCU从哪一个BANK启动。标志位是内部寄存器中的某一个值,是软件虚拟映射的一个地址重定向的标志位。数据校验完成之后,可通过修改标志位选择从BANK1启动还是从BANK2启动。BANK2启动运行是从0x8040000开始还是从0x8000000开始,可通过标志位进行设置。例如,标志位设置为1,则BANK1的起始地址为0x8000000,BANK2的起始地址为0x8040000;如果标志位设置为2,则BANK2的起始地址为0x8000000,BANK1的起始地址为0x8040000。在程序升级成功之后做地址重映射,虚拟映射之后,BANK2是实际意义上的BANK1,BANK1变成了实际意义上的BANK2。程序永远是从0x8000000开始启动。所以标志位可以控制程序从哪个BANK开始启动。
上诉步骤Ⅱ中MCU启动时始终是从0x8000000地址开始运行。通过地址重映射的方式,将不同的BANK起始地址指定到0x8000000。所以当从BANK2启动运行时,并不是从0x8040000开始运行的,只是把BANK2的地址映射从0x8040000重新映射到了0x8000000,以此实现的程序升级。
图9为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的MCU信号控制板的升级流程示意图。参见图9,首先操作人员将升级的BIN文件放到服务器。然后上位机到服务器上获取BIN文件,之后上位机分包发送升级包数据给MCU信号控制板。MCU信号控制板分包接收升级包数据存至RAM。接着上机发送升级校验码,MCU信号控制板接收升级校验码。若在MCU信号控制板检验未通过,则上位机提示校验出错;若在MCU信号控制板检验通过,则MCU信号控制板将升级包数据从RAM取出存至起始地址为0x8040000的FLASH中,且MCU信号控制板加载升级程序。若升级程序可以运行,则远程升级成功;若升级程序不能运行,则MCU信号控制板跳转回原程序运行。
图10为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的示意图。如图10所示,所述方法应用于上位机,所述方法具体可以包括:
步骤S410,从指定路径获取监测设备的升级包数据;
步骤S420,将所述升级包数据发送给MCU信号控制板;其中,所述MCU信号控制板与监测设备相连接;所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
步骤S430,在确认所述MCU信号控制板接收到所述升级包数据的情况下,向所述MCU信号控制板发送升级校验码;
步骤S440,在确认所述MCU信号控制板根据所述升级校验码成功校验的情况下,向所述MCU信号控制板发送升级指令,指示所述MCU信号控制板执行所述升级包数据中的升级程序对所述监测设备进行升级操作。
首先在服务器的指定路径上存放升级使用的监测设备的升级包数据。在步骤S410中,上位机从服务器的指定路径获取监测设备的升级包数据。在步骤S420中,上位机将升级包数据发送给MCU信号控制板;其中,上位机基于IIC协议与MCU信号控制板进行数据通信。MCU信号控制板响应于硬件IIC中断被触发,接收来自上位机的升级包数据。
在步骤S430中,在确认MCU信号控制板接收到升级包数据的情况下,上位机向MCU信号控制板发送升级校验码。MCU信号控制板接收来自上位机的升级校验码,并根据升级校验码对升级包数据进行校验。在步骤S440中,在确认MCU信号控制板根据升级校验码成功校验的情况下,上位机向MCU信号控制板发送升级指令,指示MCU信号控制板执行升级包数据中的升级程序,对监测设备进行升级操作。
本申请实施例基于硬件IIC实现远程升级,通信成本低廉,抗干扰能力更强。硬件IIC通信不依赖于 CPU的运算能力,而是通过硬件电路来实现数据传输。因此该方案可以减轻CPU的负担,释放CPU的运算能力,具有更好的稳定性和可靠性,从而提高系统的整体性能。
在一种实施方式中,所述将所述升级包数据发送给MCU信号控制板,还包括:
将所述升级包数据分包处理后发送给所述MCU信号控制板。
在一种实施方式中,所述上位机基于IIC协议与所述MCU信号控制板进行数据通信,包括:
将所述上位机作为主设备,将与所述监测设备作为从设备,所述上位机通过寻址信号中的从设备地址寻址不同的从设备;
基于所述从设备地址,所述上位机与所述监测设备连接的MCU信号控制板进行数据通信。
本申请实施例中,将上位机控制平台作为主设备,对挂载在IIC总线上的多个从设备进行远程升级。上位机控制平台在发送寻址信号寻址时寻找不同的从机设备,即可实现和不同的从机设备进行数据通信。采用该方式,通过一个上位机控制平台能够完成对多个监测设备的远程升级工作。
图11为本申请实施例提供的基于硬件IIC的远程升级方法的一实施例的上位机的升级流程示意图。参见图11,首先操作人员将升级的BIN文件放到服务器。然后上位机到服务器上获取BIN文件,之后上位机分包发送升级包数据。上位机循环获取MCU状态位以确认MCU信号控制板是否接收到升级包数据。若MCU信号控制板没有接收到升级包数据,则上位机报错,例如报错信息为WRITE PACKET ERROR(升级包数据写错误)。若MCU信号控制板接收到升级包数据,则上位机发送升级校验码,并循环获取MCU状态位以确认MCU信号控制板是否接收到升级校验码。若MCU信号控制板没有接收到升级校验码,则上位机报错,例如报错信息为WRITE CHECK CODE ERROR(升级校验码写错误)。若MCU信号控制板接收到升级校验码,则上位机发送升级指令。MCU信号控制板收到升级指令后跳转程序,跳到BANK2执行升级程序。
关于应用于上位机的基于硬件IIC的远程升级方法的有益效果或解决的技术问题,可以参见与应用于MCU信号控制板基于硬件IIC的远程升级方法中的对应描述,或者参见发明内容中的描述,此处不再一一赘述。
本申请实施例通过MCU信号控制板与上位机的数据交互实现远程升级,一个示例性的流程如下:
1)服务器上存放升级BIN文件开始;
2)上位机控制平台从服务器上拿到升级BIN文件以IIC协议的给MCU信号处理板;其中,上位机的操作人员需要给现场的设备升级时,可点击升级按钮。经过上位机的代码处理,从服务器上把BIN文件抓取下来;
3)MCU信号控制板硬件IIC中断被触发接收升级BIN文件数据;
4)上位机控制平台发送升级包校验码给MCU信号控制板;
5)MCU信号控制板接收升级包校验码后与本地数据校验码进行对比;
6)升级包数据校验正确后将升级包数据存在MCU内部FLASH以0x8040000为起始地址位置;
7)MCU信号控制板FLASH写完毕后运行程序起始地址至0x8040000,程序升级完成。
如图12所示,本申请还提供了相应的一种基于硬件IIC的远程升级装置的实施例。关于该装置的有益效果或解决的技术问题,可以参见与各装置分别对应的方法中的描述,或者参见发明内容中的描述,此处不再一一赘述。
上述装置设置于MCU信号控制板,所述MCU信号控制板与监测设备相连接,所述装置包括:
接收单元100,用于响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据;其中,所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
存储单元200,用于将所述升级包数据存储至预先指定的升级程序起始地址中;
执行单元300,用于跳转到所述升级程序起始地址,执行所述升级包数据中的升级程序,对所述监测设备进行升级操作。
在一种实施方式中,所述接收单元100还用于:
在所述监测设备的地址与来自上位机的寻址信号中携带的目的地址一致的情况下,所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据。
如图13所示,在一种实施方式中,所述存储单元200还包括:
接收子单元210,用于接收来自所述上位机的升级校验码;
校验子单元220,用于根据所述升级校验码对所述升级包数据进行校验;
存储子单元230,用于在成功校验的情况下,将所述升级包数据存储至所述升级程序起始地址中。
在一种实施方式中,所述接收单元100还用于:接收来自上位机分包发送的所述升级包数据;
所述校验子单元220用于:根据所述升级校验码对所述升级包数据中的每个包进行数据的和检验,以及根据所述升级包数据中携带的包号对所述升级包数据进行包号的和检验。
如图14所示,在一种实施方式中,所述装置还包括映射单元400,所述映射单元400用于:
在所述升级程序执行成功的情况下,将所述升级程序起始地址映射为应用程序起始地址,将原来的应用程序起始地址映射为升级程序起始地址。
如图15所示,本申请还提供了相应的一种基于硬件IIC的远程升级装置的实施例。关于该装置的有益效果或解决的技术问题,可以参见与各装置分别对应的方法中的描述,或者参见发明内容中的描述,此处不再一一赘述。
上述装置设置于上位机,包括:
获取单元500,用于从指定路径获取监测设备的升级包数据;
第一发送单元600,用于将所述升级包数据发送给MCU信号控制板;其中,所述MCU信号控制板与监测设备相连接;所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
第二发送单元700,用于在确认所述MCU信号控制板接收到所述升级包数据的情况下,向所述MCU信号控制板发送升级校验码;
第三发送单元800,用于在确认所述MCU信号控制板根据所述升级校验码成功校验的情况下,向所述MCU信号控制板发送升级指令,指示所述MCU信号控制板执行所述升级包数据中的升级程序对所述监测设备进行升级操作。
在一种实施方式中,所述第一发送单元600还用于:将所述升级包数据分包处理后发送给所述MCU信号控制板。
如图16所示,在一种实施方式中,所述装置还包括通信单元850,所述通信单元850用于实现所述上位机基于IIC协议与所述MCU信号控制板进行数据通信,具体用于:
将所述上位机作为主设备,将与所述监测设备作为从设备,所述上位机通过寻址信号中的从设备地址寻址不同的从设备;基于所述从设备地址,所述上位机与所述监测设备连接的MCU信号控制板进行数据通信。
图17是本申请实施例提供的一种计算设备900的结构性示意性图。该计算设备900包括:处理器910、存储器920、通信接口930。
应理解,图17中所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信。
其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器910独立的外部存储单元的部件。
可选的,计算设备900还可以包括总线。其中,存储器920、通信接口930可以通过总线与处理器910连接。总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
应理解,在本申请实施例中,该处理器910可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(Application specific integrated circuit,ASIC)、现成可编程门矩阵(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备900可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种基于硬件IIC的远程升级方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明的构思的情况下,还可以包括更多其他等效实施例,均属于本发明的保护范畴。

Claims (4)

1.一种基于硬件IIC的远程升级方法,其特征在于,所述方法应用于MCU信号控制板,所述MCU信号控制板与监测设备相连接,所述方法包括:
响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据;其中,所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
将所述升级包数据存储至预先指定的升级程序起始地址中;
跳转到所述升级程序起始地址,执行所述升级包数据中的升级程序,对所述监测设备进行升级操作;
所述将所述升级包数据存储至预先指定的升级程序起始地址中,还包括:
接收来自所述上位机的升级校验码;
根据所述升级校验码对所述升级包数据进行校验;
在成功校验的情况下,将所述升级包数据存储至所述升级程序起始地址中;
所述执行所述升级包数据中的升级程序,对所述监测设备进行升级操作之后,还包括:
在所述升级程序执行成功的情况下,将所述升级程序起始地址映射为应用程序起始地址,将原来的应用程序起始地址映射为升级程序起始地址;
其中,所述原来的应用程序存放在内存库BANK1中,BANK1的起始地址为程序运行起始地址,所述原来的应用程序从BANK1开始运行,通过BANK1中的所述原来的应用程序获取到的所述升级包数据暂存到RAM中,在对所述升级包数据校验成功后,将所述升级包数据从RAM写到内存库BANK2中,BANK2的起始地址为升级程序起始地址,跳转到BANK2开始运行所述升级包数据中的升级程序,若运行升级程序失败,则升级程序回滚,回到BANK1继续运行所述原来的应用程序,若运行升级程序成功,则将BANK2的起始地址映射为程序运行起始地址,将BANK1的起始地址映射为升级程序起始地址。
2.根据权利要求1所述的方法,其特征在于,所述响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据,还包括:
在所述监测设备的地址与来自上位机的寻址信号中携带的目的地址一致的情况下,所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据。
3.根据权利要求1所述的方法,其特征在于,
所述接收来自上位机的升级包数据,还包括:接收来自上位机分包发送的所述升级包数据;
根据所述升级校验码对所述升级包数据进行校验,包括:根据所述升级校验码对所述升级包数据中的每个包进行数据的和检验,以及根据所述升级包数据中携带的包号对所述升级包数据进行包号的和检验。
4.一种基于硬件IIC的远程升级装置,其特征在于,所述装置设置于MCU信号控制板,所述MCU信号控制板与监测设备相连接,所述装置包括:
接收单元,用于响应于所述MCU信号控制板的硬件IIC中断被触发,接收来自上位机的升级包数据;其中,所述上位机基于IIC协议与所述MCU信号控制板进行数据通信;
存储单元,用于将所述升级包数据存储至预先指定的升级程序起始地址中;
执行单元,用于跳转到所述升级程序起始地址,执行所述升级包数据中的升级程序,对所述监测设备进行升级操作;
所述存储单元还包括:
接收子单元,用于接收来自所述上位机的升级校验码;
校验子单元,用于根据所述升级校验码对所述升级包数据进行校验;
存储子单元,用于在成功校验的情况下,将所述升级包数据存储至所述升级程序起始地址中;
所述装置还包括映射单元,所述映射单元用于:
在所述升级程序执行成功的情况下,将所述升级程序起始地址映射为应用程序起始地址,将原来的应用程序起始地址映射为升级程序起始地址;
其中,所述原来的应用程序存放在内存库BANK1中,BANK1的起始地址为程序运行起始地址,所述原来的应用程序从BANK1开始运行,通过BANK1中的所述原来的应用程序获取到的所述升级包数据暂存到RAM中,在对所述升级包数据校验成功后,将所述升级包数据从RAM写到内存库BANK2中,BANK2的起始地址为升级程序起始地址,跳转到BANK2开始运行所述升级包数据中的升级程序,若运行升级程序失败,则升级程序回滚,回到BANK1继续运行所述原来的应用程序,若运行升级程序成功,则将BANK2的起始地址映射为程序运行起始地址,将BANK1的起始地址映射为升级程序起始地址。
CN202311050897.4A 2023-08-21 2023-08-21 基于硬件iic的远程升级方法和装置 Active CN117170704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311050897.4A CN117170704B (zh) 2023-08-21 2023-08-21 基于硬件iic的远程升级方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311050897.4A CN117170704B (zh) 2023-08-21 2023-08-21 基于硬件iic的远程升级方法和装置

Publications (2)

Publication Number Publication Date
CN117170704A CN117170704A (zh) 2023-12-05
CN117170704B true CN117170704B (zh) 2024-04-30

Family

ID=88932789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311050897.4A Active CN117170704B (zh) 2023-08-21 2023-08-21 基于硬件iic的远程升级方法和装置

Country Status (1)

Country Link
CN (1) CN117170704B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134415A (zh) * 2019-04-12 2019-08-16 深圳市致宸信息科技有限公司 一种控制器及其软件升级方法和装置
CN110784386A (zh) * 2019-09-27 2020-02-11 深圳市火乐科技发展有限公司 固件更新方法及相关设备
CN111459519A (zh) * 2020-03-30 2020-07-28 北京经纬恒润科技有限公司 一种mcu升级方法及装置
CN112579130A (zh) * 2020-12-28 2021-03-30 河南城拜检测技术有限公司 一种交互式的iap升级方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134415A (zh) * 2019-04-12 2019-08-16 深圳市致宸信息科技有限公司 一种控制器及其软件升级方法和装置
CN110784386A (zh) * 2019-09-27 2020-02-11 深圳市火乐科技发展有限公司 固件更新方法及相关设备
CN111459519A (zh) * 2020-03-30 2020-07-28 北京经纬恒润科技有限公司 一种mcu升级方法及装置
CN112579130A (zh) * 2020-12-28 2021-03-30 河南城拜检测技术有限公司 一种交互式的iap升级方法

Also Published As

Publication number Publication date
CN117170704A (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
CN106598632B (zh) 一种光模块的固件升级方法及装置
US20180151003A1 (en) System and method for transferring diagnostic commands to a vehicle
CN106874056A (zh) 基于Ymodem协议的TI C2000 DSP 串口在线升级方法
CN110618903A (zh) 电子设备测试方法与装置
US20070088874A1 (en) Offload engine as processor peripheral
CN107025203B (zh) 第一板卡、第二板卡及一种设备
CN103455397A (zh) 一种系统自检的方法、设备及系统
US20150052405A1 (en) Data bus network interface module and method therefor
US9473273B2 (en) Memory system capable of increasing data transfer efficiency
CN115499505B (zh) Usb网卡和通信方法
CN113608772A (zh) 一种应用程序升级方法及装置
JP2006190257A (ja) データ転送装置およびデータ転送方法
WO2021134418A1 (zh) 一种数据校验方法及装置
US20070168729A1 (en) System and method for testing and debugging electronic apparatus in single connection port
CN117170704B (zh) 基于硬件iic的远程升级方法和装置
CN113360161A (zh) 资源升级方法及相关产品
CN101197959B (zh) 一种终端的控制方法、系统和设备
CN116204214A (zh) Bmc升级方法、装置、系统、电子设备及存储介质
US20030154288A1 (en) Server-client system and data transfer method used in the same system
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
CN112346665B (zh) 基于pcie的通信方法、装置、设备、系统及存储介质
WO2014027223A1 (en) Data bus network interface module and method therefor
US6134623A (en) Method and system for taking advantage of a pre-stage of data between a host processor and a memory system
US7343431B1 (en) Method, apparatus, and computer-readable medium for disabling BIOS-provided console redirection capabilities in the presence of an incompatible communications device
CN114996172B (zh) 基于ssd访问主机内存的方法及系统

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