技术领域
[0001] 涉及多
电子硬件设备,尤其涉及固件的升级。
背景技术
[0002] 固件(Firmware)就是写入EROM或EPROM(可编程只读
存储器)中的程序,通俗的理解就是“
固化的
软件”。更简单的说,固件就是BIOS的软件,但又与普通软件完全不同,它是固化在集成
电路内部的程序代码,负责控制和协调集成电路的功能。
[0003] 视频监控应用中,网络摄像机都分布在不同地理
位置,这对网络摄像机的维护带来巨大麻烦,特别是网络摄像机内固件的维护更加困难,传统升级方法必须把设备拆开,使用专
门烧录工具对某固件进行烧录。进一步地,网络球机因其监控无死
角,配备大倍率
机芯既可监控大范围场景又可清晰看清远处物体细节,因此广受欢迎。一般网络球机主要由编码组件、
云台、机芯三部分组成,目前市面上大部分球机仅支持在线对编码组件进行升级,但对云台、机芯固件都不支持在线升级,只能使用专门烧录工具或外接串口进行升级,这些操作复杂、耗时长、出错概率高。
发明内容
[0004] 针对
现有技术中固件升级操作复杂、耗时长、出错概率高的技术
缺陷,本发明提供一种在固件处远程地实现固件升级的方法,其特征在于,所述固件包括启动加载区和应用程序区,所述方法包括:a.从一网络模
块接收升级
请求信息,所述升级请求信息请求所述固件进行升级;b.由所述启动加载区删除所述应用程序区的数据,并向所述网络模块发送第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据;以及c.由所述应用程序区接收关于升级的固件数据。
[0005] 优选地,所述方法包括:所述应用程序区接收关于升级的固件数据后对所述关于升级的固件数据进行校验。
[0006] 优选地,所述方法包括:由所述应用程序区接收到关于升级的固件数据后,由所述应用程序区运行所述关于升级的固件数据。
[0007] 根据本发明的又一方面,还提供一种在网络模块处远程地实现固件升级的方法,其特征在于,所述网络模块包括闪存、网卡以及主处理器,所述网络模块的闪存中存储有关于升级的固件数据,所述方法包括:A.向所述固件发送升级请求信息,所述升级请求信息请求所述固件进行升级;B.从所述固件接收第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据;以及C.将关于升级的固件数据发送至所述固件。
[0008] 优选地,所述方法包括:所述网络模块向所述固件发送升级请求信息后屏蔽其他串口指令。
[0009] 优选地,所述方法包括:关于升级的固件数据发送完成后,所述网络模块解除屏蔽,接受其他串口指令。
[0010] 优选地,所述步骤B之后,步骤C之前还包括:将校验码添加至所述升级版本的固件数据中。
[0011] 根据本发明的又一方面,还提供一种远程地实现固件升级的固件,其特征在于,包括:启动加载区,包括:删除装置,其用于删除应用程序区的数据,并向一网络模块发送第一指示信息,所述第一指示信息指示所述固件准备就绪;应用程序区,包括;第一接收装置,其用于从所述网络模块接收升级请求信息,所述升级请求信息请求所述固件进行升级;以及第二接收装置,其用于接收关于升级的固件数据。
[0012] 根据本发明的又一方面,还提供一种远程地实现固件升级的网络模块,其特征在于,所述网络模块包括闪存、网卡以及主处理器,所述主处理器包括:第一发送装置,其用于向所述固件发送升级请求信息,所述升级请求信息请求所述固件进行升级;第四接收装置,从所述固件接收第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据;以及第二发送装置,将关于升级的固件数据发送至所述固件。
[0013] 根据本发明的又一方面,还提供一种远程地实现固件升级的方法,其特征在于,包括:1)所述网络模块向所述固件发送升级请求信息,所述升级请求信息请求所述固件进行升级;2)所述固件从一网络模块接收所述升级请求信息;3)由所述启动加载区删除所述应用程序区的数据,并向所述网络模块发送第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据;4)从所述固件接收所述第一指示信息;5)将关于升级的固件数据发送至所述固件;以及6)由所述应用程序区接收关于升级的固件数据。
[0014] 本发明通过前端设备的网络模块与固件的通讯以及升级管理,利用网络对网络设备固件进行远程升级维护,解决网络设备维护不方便问题,该技术只要网络设备与网络联系正常,即可通过网络在线远程对网络设备固件进行升级,减少维护成本,充分利用网络的便利性。
附图说明
[0015] 通过阅读参照以下附图对非限制性
实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0016] 图1示出根据本发明的第一实施例的,一种在固件处远程地实现固件升级方法的
流程图;
[0017] 图2示出根据本发明的第二实施例的,一种在网络模块处远程地实现固件升级方法的流程图;
[0018] 图3示出根据本发明的第三实施例的,一种远程地实现固件升级方法的流程图;
[0019] 图4示出根据本发明的第四实施例的,一种远程地实现固件升级方法的时序图;
[0020] 图5示出根据本发明的一个具体实施方式的,一种远程地实现固件升级方法的网络拓扑图;
[0021] 图6示出根据本发明又一个具体实施方式的,一种远程地实现固件升级的固件的结构示意图;以及
[0022] 图7示出根据本发明又一个具体实施方式的,一种远程地实现固件升级的网络模块的结构示意图。
具体实施方式
[0023] 固件没有系统,因此固件软件和其他普通软件有所不同,固化在集成电路内部程序代码,也即不可以
修改,因此要求该程序即不能有误也不能随便增减功能。
[0024] 根据网络设备特点,我们利用网络作为载体,对固件像其他普通软件一样随意方便升级。同时考虑到网络不
稳定性等其他不确认性,升级过程减少对网络等依赖性,提高可靠性。
[0025] 通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0026] 图1示出根据本发明的第一实施例的,一种在固件处远程地实现固件升级方法的流程图。具体地,本图示出了三个步骤,首先是步骤S101,从一网络模块接收升级请求信息,所述升级请求信息请求所述固件进行升级。所述请求信息接收完成后执行步骤S102,由所述启动加载区删除所述应用程序区的数据,并向所述网络模块发送第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据。本领域技术人员理解,被删除的所述应用程序区的数据为所述固件需要升级的部分数据。第一指示信息发送完成后执行步骤S103,由所述应用程序区接收关于升级的固件数据。具体地,本领域技术人员理解,为了实现固件升级,所述固件的存储空间以及固件软件一分为二,分别为启动加载区bootloader(启动加载程序)和应用程序区user app(应用程序),bootloader固化在固定地址区域,在日后
访问中不允许擦写,主要完成工作有程序引导、检测是否升级并控制升级、擦除user app区数据,user app区是应用程序区,实现固件所有应用功能,接收外接指令。
[0027] 相适应地,图2示出根据本发明的第二实施例的,一种在网络模块处远程地实现固件升级方法的流程图。具体地,本图也示出了三个步骤,首先是步骤S201,向所述固件发送升级请求信息,所述升级请求信息请求所述固件进行升级。本领域技术人员理解,所述网络模块通过网络与远程终端相通讯,所述远程终端向所述网络模块发送关于升级的固件数据,所述网络模块收到所述关于升级的固件数据后,储存于所述网络模块的闪存处,并向所述固件发送升级请求信息。请求信息发送完成后执行步骤S202,从所述固件接收第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据。所述网络模块接收到所述第一指示信息后,执行步骤S203将关于升级的固件数据发送至所述固件。
[0028] 结合上述固件以及网络模块的步骤,即结合上述图1以及图2,图3示出根据本发明的第三实施例的,一种远程地实现固件升级方法的流程图。具体地,本图示出了6个步骤。首先是步骤S301,所述网络模块向所述固件发送升级请求信息,所述升级请求信息请求所述固件进行升级。步骤S302,所述固件从一网络模块接收所述升级请求信息。步骤S303,由所述启动加载区删除所述应用程序区的数据,并向所述网络模块发送第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据。步骤S304,从所述固件接收所述第一指示信息;步骤S305,将关于升级的固件数据发送至所述固件;以及步骤S306,由所述应用程序区接收关于升级的固件数据。
[0029] 图4示出根据本发明的第四实施例的,一种远程地实现固件升级方法的时序图。具体地,本图示出了15个步骤,首先,所述远程终端3执行步骤1,向所述网络模块发送关于升级的固件数据。具体地,本领域技术人员理解,所述远程终端3与所述网络模块2相通讯,优选地,所述网络模块2储存有所述固件的版本信息,所述远程终端3获取所述固件的版本信息,判断所述固件1是否需要进行升级,若所述固件1需要升级,则向所述网络模块2发送关于升级的固件数据。在本实施例的一个变化例中,所述远程终端3储存有各个前端设备的固件版本信息,当所述远程终端发现有升级版本时,则向各个前端设备的网络模块2发送关于升级的固件数据,并更新其储存的固件版本信息,以备下次更新。之后所述网络模块2执行步骤2,将所述关于升级的固件数据,储存至所述网络模块2的闪存处。之后,所述网络模块2执行步骤3,向所述固件1发送升级请求信息,所述升级请求信息请求所述固件
1进行升级。请求信息发送完成后,所述网络模块2进一步执行步骤4,屏蔽其他一切串口指令以减少误码。所述固件1收到所述请求信息后执行步骤5,向所述网络模块2发送收到请求信息的应答信息。之后所述网络模块2执行步骤6,向所述固件1发送发送准备信息。
所述固件1收到所述发送准备信息后执行步骤7,跳至启动加载区执行相应操作,所述启动加载区删除应用程序区的相关升级数据。数据删除完成后执行步骤8,所述固件1向所述网络模块2发送第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据。之后所述网络模块2执行步骤9,对将要发送的关于升级的固件数据加校验码操作。
校验码操作执行完成后,所述网络模块2执行步骤10,将所述加校验码操作的关于升级的固件数据发送至所述固件1。所述固件1执行步骤11,接收添加校验码的关于升级的固件数据,并进一步执行步骤12,对所述固件数据进行校验。校验完成后,所述固件1执行步骤
13,跳至应用程序区运行固件数据,执行升级操作。之后所述固件1执行步骤14,向所述网络模块2发送一信息,所述信息指示所述固件1升级成功。最后所述网络模块2执行步骤
15,解除先前屏蔽的串口,接收其他串口指令。
[0030] 具体地,在本实施例的一个变化例中,所述步骤2,所述网络模块2在接收到自所述远程终端3发送的关于升级的固件数据后执行步骤9',对将要发送的关于升级的固件数据加校验码操作。在本实施例的又一变化例中,所述步骤9,对将要发送的关于升级的固件数据加校验码操作,可以在所述网络模块2接收到所述关于升级的固件数据之后直至所述网络模块向所述固件1发送所述关于升级的固件数据之前的任一时刻执行,即上述步骤2至步骤10之间的任一时刻。
[0031] 图5示出根据本发明的一个具体实施方式的,一种远程地实现固件升级方法的网络拓扑图。具体地,本图示出了三个设备,固件1,网络模块2以及远程终端3。具体地,本领域技术人员理解,优选地,所述固件1以及所述网络模块2同属于一个前端设备。如图5所示,所述固件1与所述网络模块2直接通讯,本领域技术人员理解,所述网络模块2通过串口与所述固件2相通讯。所述网络模块2与所述远程终端3通过互联网进行通讯,具体地,所述网络模块2包括一网卡,并通过所述网卡接入互联网,进一步地,所述固件1包括启动加载区11和应用程序区12,所述启动加载区11固化在固定地址区域,在日后访问中不允许擦写,主要完成工作有程序引导、检测是否升级并控制升级、擦除所述应用程序区数据。所述应用程序区12,实现固件所有应用功能,接收外接指令。所述网络模块2包括,闪存21,网卡22以及主处理器23。所述闪存21用于储存所述关于升级的固件数据。所网卡22用于将所述网络模块2接入互联网并与所述远程终端3相通讯。所述主处理器23负责所述网络模块控制和调度,其通过串口与固件进行通信控制。
[0032] 图6示出根据本发明又一个具体实施方式的,一种远程地实现固件升级的固件的结构示意图。具体地,所述固件1包括启动加载区11以及应用程序区12,所述启动加载区11包括删除装置111,所述删除装置111用于删除应用程序区的数据,并向一网络模块发送第一指示信息,所述第一指示信息指示所述固件准备就绪。所述应用程序区12包括第一接收装置121以及第二接收装置122。所述第一接收装置121用于从所述网络模块接收升级请求信息,所述升级请求信息请求所述固件进行升级。所述第二接收装置122用于接收关于升级的固件数据。更具体地,本领域技术人员理解,所述应用程序区12的第一接收装置
121自所述网络模块接收所述升级请求信息后,所述固件1跳至所述启动加载区11,所述启动加载区11的删除装置111删除所述应用程序区12中需要升级的数据,并由所述删除装置111向所述网络模块2发送所述第一指示信息。之后所述应用程序区12的第二接收装置
122接收自所述网络模块2发送的关于升级的固件数据。进一步地,本领域技术人员理解,所述第二接收装置122还包括一校验装置,所述校验装置用于校验所述关于升级的固件数据是否正确。若所述校验装置判断所述固件数据传输错误,则向所述网络模2块发送一信息,所述信息指示所述网络模块向所述固件重新发送所述关于升级的固件数据。
[0033] 图7示出根据本发明又一个具体实施方式的,一种远程地实现固件升级的网络模块的结构示意图。具体地,所述主处理器23包括第一发送装置231,第四接收装置232以及第二发送装置233。所述第一发送装置231用于向所述固件发送升级请求信息,所述升级请求信息请求所述固件进行升级。所述第四接收装置232用于从所述固件接收第一指示信息,所述第一指示信息指示所述固件已删除所述应用程序区的数据。所述第二发送装置233用于将关于升级的固件数据发送至所述固件。更具体地,本领域技术人员理解,当所述网络模块自所述远程终端接收到所述关于升级的固件数据后,所述第一发送装置231向所述固件发送升级请求信息。之后所述固件执行相应的数据删除操作。所述固件删除相应数据后向所述网络模块发送所述第一指示信息,所述第四接收装置用于接收该第一指示信息。接收到所述第一指示信息后由所述第二发送装置233向所述固件发送所述关于升级的固件数据。进一步地,本领域技术人员理解,所述第二发送装置233还包括一校验码添加装置,其用于向所述关于升级的固件数据添加校验码后由所述第二发送装置233向所述固件发送。在本实施例的一个变化例中,所述第一发送装置231还包括一屏蔽装置,所述屏蔽装置用于屏蔽其他串口指令,相适应地,所述主处理器还包括一屏蔽解除装置,所述屏蔽解除装置接收到所述固件发送的升级成功信息后,解除串口屏蔽。
[0034] 综合上述图1至图7,远程地实现固件升级的方法包括如下步骤:
[0035] 1)利用网络将需升级的固件版本通过ftp上传到设备flash中某处。
[0036] 2)主处理器通过串口与固件进行升级通信,通知固件要求升级,同时屏蔽其他一切串口指令,减少误码。
[0037] 3)固件收到升级请求后,回复收到请求应答,
[0038] 4)主处理器发送升级准备,固件收到消息跳到bootloader区,删除应用程序区数据,并回复准备准备就绪
[0039] 5)主处理开始通过串口将flash中固件软件上传到应用程序区,为了减少误码率,每次串口传输数据都进行crc校验,
[0040] 6)上传完毕后,固件跳转到应用程序区并执行应用程序。
[0041] 利用网络远程对固件升级技术与实现相对不能远程在线升级好处:
[0042] 可维护性极大提高,不具备升级的设备有故障必须返厂维修。
[0043] 可扩展性、可应用性极大提高,新功能添加、缺陷的修复等非常方便完成。
[0044] 以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在
权利要求的范围内做出各种
变形或修改,这并不影响本发明的实质内容。