通过无线通信为传感器进行固件升级的方法及其设备与流程

文档序号:17441271发布日期:2019-04-17 04:47阅读:406来源:国知局
通过无线通信为传感器进行固件升级的方法及其设备与流程

本发明涉及固件升级领域,特别涉及通过无线通信为传感器进行固件升级的方法及其设备。



背景技术:

物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段,物联网是物物相连的互联网。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。

智能传感器是具有信息处理功能的传感器。智能传感器带有微处理机,具有采集、处理、交换信息的能力,是传感器集成化与微处理机相结合的产物。与一般传感器相比,智能传感器具有以下三个优点:通过软件技术可实现高精度的信息采集,而且成本低;具有一定的编程自动化能力;功能多样化。智能传感器能将检测到的各种物理量储存起来,并按照指令处理这些数据,从而创造出新数据。智能传感器之间能进行信息交流,并能自我决定应该传送的数据,舍弃异常数据,完成分析和统计计算等。

目前智能传感器已经普遍应用于物联网技术中,能够通过无线通信连接网关,进行数据的传输,但是智能传感器的固件升级目前是通过手工完成的。固件(firmware)是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。通常来说,固件是写入erom(可擦写只读存储器)或eeprom(电可擦可编程只读存储器)中的程序。因此,固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。

固件一般存储于设备中的电可擦除只读存储器eeprom或flash芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个数码产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统bios,在以前其实更多的专业人士叫它固件。通常这些硬件内所保存的程序是无法被用户直接读出或修改的。在以前,一般情况下是没有必要对固件进行升级操作的,即使在固件内发现了严重的bug也必须由专业人员带着写好程序的芯片把原来机器上的更换下来。早期固件芯片一般采用了rom设计,它的firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以,可重复写入的可编程可擦除只读存储器eprom、eeprom和flash出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。

物联网技术领域中,一般采用低功耗无线通信技术(例如lora通信或者2.4ghz低功耗无线通信,其中lora是semtech公司创建的低功耗局域网无线标准,lora表示远距离无线电(longrangeradio),其最大特点就是在同样的功耗条件下比其他无线方式传播的距离更远,实现了低功耗和远距离的统一,它在同样的功耗下比传统的无线射频通信距离扩大3-5倍)来完成智能传感数据的通信、以及智能传感器的配置等,但是,由于固件的文件体积一般相对来说更大,直接采用例如lora通信或者2.4ghz低功耗无线通信等通信方式向智能传感器无线传输固件,通信效率会非常低,而且会影响正常的传感数据通信,因此,目前在物联网技术领域中并没有采用无线通信进行固件升级。

相反,目前在物联网技术领域中一般采用人工的有线方式来实现固件升级,也即逐一地通过设备(如pc)来有线地连接智能传感器,向智能传感器传送固件,以便完成升级过程。显然,在数据中心(例如大型数据中心机房,包括大量的服务器)、智慧城市等大型应用场景中,智能传感器数量众多,分布也非常广泛,如果单纯依靠人工进行固件升级,会是一件非常麻烦的事情,效率较低。



技术实现要素:

本发明的主要目的是提供一种通过无线通信为传感器进行固件升级的方法及其设备,以解决现有技术中的以上技术问题以及其他潜在技术问题中的至少一个问题。

为了达到上述目的,本公开的实施例提供了一种通过无线通信为传感器进行固件升级的方法,包括:

将传感器当前使用版本的先前固件文件与待升级版本的目标固件文件进行比较,以获得差异固件文件;以及

通过无线通信的方式向所述传感器发送所述差异固件文件,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

根据本公开的实施例,所述将传感器当前使用版本的先前固件文件与待升级版本的目标固件文件进行比较,以获得差异固件文件,包括:将第一传感器当前使用版本的第一先前固件文件与待升级版本的第一目标固件文件进行比较,以获得第一差异固件文件;以及将第二传感器当前使用版本的第二先前固件文件与待升级版本的第二目标固件文件进行比较,以获得第二差异固件文件;

所述通过无线通信的方式向所述传感器发送所述差异固件文件,以使得所述传感器从所述先前固件文件升级到所述目标固件文件,包括:通过无线通信的方式向所述第一传感器发送所述第一差异固件文件,以使得所述第一传感器从所述第一先前固件文件升级到所述第一目标固件文件;以及通过无线通信的方式向所述第二传感器发送所述第二差异固件文件,以使得所述第二传感器从所述第二先前固件文件升级到所述第二目标固件文件。

根据本公开的实施例,所述先前固件文件的版本通过以下方式中的至少一种方式来获得:查询所述传感器的固件升级记录来获得所述先前固件文件的版本;或者向所述传感器发送查询指令,以获得所述传感器反馈回来的所述先前固件文件的版本。

根据本公开的实施例,本公开的以上方法还包括:在所述传感器从所述先前固件文件升级到所述目标固件文件之后,将所述目标固件文件的版本记录到所述固件升级记录中。

根据本公开的实施例,本公开的以上方法还包括:所述传感器在接收到所述差异固件文件之后,根据所述差异固件文件修改所述先前固件文件并重启,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

根据本公开的实施例,其中所述无线通信包括低功耗无线通信,所述低功耗无线通信包括lora通信或2.4ghz低功耗无线通信。

本公开实施例还提供了一种通过无线通信为传感器进行固件升级的设备,其特征在于,包括:

固件生成模块,被设置为将传感器当前使用版本的先前固件文件与待升级版本的目标固件文件进行比较,以获得差异固件文件;以及

通信模块,被设置为通过无线通信的方式向所述传感器发送所述差异固件文件,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

根据本公开的实施例,所述固件生成模块具体用于:将第一传感器当前使用版本的第一先前固件文件与待升级版本的第一目标固件文件进行比较,以获得第一差异固件文件;以及将第二传感器当前使用版本的第二先前固件文件与待升级版本的第二目标固件文件进行比较,以获得第二差异固件文件;

所述通信模块具体用于:通过无线通信的方式向所述第一传感器发送所述第一差异固件文件,以使得所述第一传感器从所述第一先前固件文件升级到所述第一目标固件文件;以及通过无线通信的方式向所述第二传感器发送所述第二差异固件文件,以使得所述第二传感器从所述第二先前固件文件升级到所述第二目标固件文件。

根据本公开的实施例,所述设备还包括:版本查询模块,用于查询所述传感器的固件升级记录来获得所述先前固件文件的版本;或者向所述传感器发送查询指令,以获得所述传感器反馈回来的所述先前固件文件的版本。

根据本公开的实施例,所述设备还包括:版本记录模块,被设置为在所述传感器从所述先前固件文件升级到所述目标固件文件之后,将所述目标固件文件的版本记录到所述固件升级记录中。

与现有技术相比,本发明具有以下优点:本公开的实施例能够提供一种通过无线通信为传感器进行固件升级的方法及其设备,以实现传感器通过无线通信的方式进行固件升级,也能提高固件升级的效率。

附图说明

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

图1为本发明实施例的通过无线通信为传感器进行固件升级的方法的流程示意图;

图2为本发明实施例的通过无线通信为传感器进行固件升级的设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然所描述的实施例仅是本发明的一部分实施例,不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本公开的实施例提供了一种通过无线通信为传感器进行固件升级的方法,如图1所示,下面详细介绍该方法的步骤。

图1中的方法包括步骤102,将传感器当前使用版本的先前固件文件与待升级版本的目标固件文件进行比较,以获得差异固件文件。

作为示例,本公开实施例中可以将传感器(例如物联网中的多个传感器中的任一个传感器,即物联网中的传感器节点,传感器例如为智能传感器)当前版本的固件文件与待升级版本的固件文件进行比较或对照,从而得到两个版本之间的差异固件文件(例如差异性内容或差异性代码)。

作为示例,在所有的传感器当前正在使用的固件版本相同的情况下,例如传感器当前正在使用的固件版本统一为4.0,待升级的固件版本为5.0,则可直接比对两个版本的固件文件,得到差异固件文件(例如为5.0-4.0)。后续步骤中所有传感器均可以使用同一份差异固件文件进行升级。

作为示例,在所有的传感器当前正在使用的固件版本不同(例如部分传感器使用的固件版本与另一部分传感器使用的固件版本不同)的情况下,可以分别获取相应的差异固件文件,后续步骤中对应的传感器可以使用不同的差异固件文件进行升级。

如图1所示,方法继续进行到步骤104,即通过无线通信的方式向所述传感器发送所述差异固件文件,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

作为示例,先前固件文件、目标固件文件、差异固件文件可以是安装包或安装程序。现有技术中通过无线通信的方式对传感器进行固件升级的方式,由于先前固件文件和目标固件文件体积都较大,通过例如低功耗无线通信传输给传感器进行固件升级时效率较低(例如传输速度较慢,升级时间较长)。目前通过本公开实施例中仅传输差异固件文件的方式,可以不再直接给传感器发送完整的目标固件文件。由于只传输差异固件文件,而差异固件文件仅仅是目标固件文件中占比例很小的一部分,因此体量较小(例如安装包或程序包的体积较小,占用空间较小,可以减少通信量),完全可以利用物联网技术通常所使用的无线通信方式(例如低功耗无线通信传输)进行传输,从而方便地完成传感器(例如物联网中的传感器节点)的固件升级,效率更高(例如避免人工进行有线方式的升级)。

根据本公开的实施例,步骤102中所述将传感器当前使用版本的先前固件文件与待升级版本的目标固件文件进行比较,以获得差异固件文件,包括步骤106和步骤108。其中,在步骤106中,将第一传感器当前使用版本的第一先前固件文件与待升级版本的第一目标固件文件进行比较,以获得第一差异固件文件。在步骤108中,将第二传感器当前使用版本的第二先前固件文件与待升级版本的第二目标固件文件进行比较,以获得第二差异固件文件;

作为示例,步骤106和步骤108可以适用于所有的传感器当前正在使用的固件版本不同(例如部分传感器使用的固件版本与另一部分传感器使用的固件版本不同)的情况。例如,各传感器使用的当前固件版本并不完全统一,有些传感器为4.0(对应第一先前固件文件),有些传感器则是更早的3.0(对应第一先前固件文件)。如果将这些不完全统一的当前固件版本都升级到5.0(对应第一目标固件文件和第二目标固件文件,此时第一目标固件文件和第二目标固件文件相同,应当理解的是第一目标固件文件和第二目标固件文件也可以不同),此时可以分别制作第一差异固件文件(5.0-4.0)和第二差异固件文件(5.0-3.0),以便于后续分别对相应的传感器进行升级。

作为示例,当前固件版本还可以有三种版本,例如3.0、3.5和4.0,三种版本的固件文件分别有传感器正在使用。此时,可以分别制作5.0-3.0/5.0-3.5/5.0-4.0三个差异固件文件,以便分别为相应的传感器进行升级。应当理解的是本公开的实施例并不限于以上特定方式,传感器当前使用的固件版本还可以存在各种可能的情况,例如四种、五种以上的版本,这些都可以根据实际情况来获知。目标固件文件也可以根据实际需要进行灵活设置以满足实际应用场景。

根据本公开的实施例,步骤104中所述通过无线通信的方式向所述传感器发送所述差异固件文件,以使得所述传感器从所述先前固件文件升级到所述目标固件文件,包括步骤110和步骤112。

其中,在步骤110中,通过无线通信的方式向所述第一传感器发送所述第一差异固件文件,以使得所述第一传感器从所述第一先前固件文件升级到所述第一目标固件文件。在步骤112中,通过无线通信的方式向所述第二传感器发送所述第二差异固件文件,以使得所述第二传感器从所述第二先前固件文件升级到所述第二目标固件文件。

根据本公开的实施例,所述先前固件文件的版本通过以下方式中的至少一种方式来获得:查询所述传感器的固件升级记录来获得所述先前固件文件的版本;或者向所述传感器发送查询指令,以获得所述传感器反馈回来的所述先前固件文件的版本。

作为示例,获悉传感器当前的固件版本,可以通过查询传感器的固件升级记录,或者通过向传感器发送查询指令,以使传感器反馈当前的固件版本号。例如,获悉传感器当前的固件版本为3.5,则向其传输5.0-3.5差异固件文件,以完成相应的升级过程,以此类推。

根据本公开的实施例,本公开的以上方法还包括:在所述传感器从所述先前固件文件升级到所述目标固件文件之后,将所述目标固件文件的版本记录到所述固件升级记录中。

作为示例,传感器在固件升级后,可以将本次升级后的版本写入到固件升级记录中,以便于后续再进行升级的时候,能够更方便的查询传感器当前使用的固件版本。

根据本公开的实施例,本公开的以上方法还包括:所述传感器在接收到所述差异固件文件之后,根据所述差异固件文件修改所述先前固件文件并重启,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

根据本公开的实施例,其中所述无线通信包括低功耗无线通信,所述低功耗无线通信包括lora通信或2.4ghz低功耗无线通信。

作为示例,传感器使用的当前版本固件文件,可以保存在传感器节点的存储区域当中,例如当前保存的固件文件为4.0版本。在接收到差异固件文件之后,传感器可以根据差异固件文件对保存的4.0版本的固件文件进行修改,由于差异固件文件中包括了4.0版本固件与5.0版本固件所有的差异内容,所以根据差异固件文件可以将4.0版本固件文件修改为5.0版本固件文件,由此实现固件升级。修改完成后,可以重启传感器节点来实现固件升级。

如图2所示,本公开的实施例提供了一种通过无线通信为传感器进行固件升级的设备200。该设备200包括固件生成模块202、以及通信模块204。

固件生成模块202被设置为将传感器当前使用版本的先前固件文件与待升级版本的目标固件文件进行比较,以获得差异固件文件。

通信模块204被设置为通过无线通信的方式向所述传感器发送所述差异固件文件,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

本公开的实施例,所述固件生成模块具体用于:将第一传感器当前使用版本的第一先前固件文件与待升级版本的第一目标固件文件进行比较,以获得第一差异固件文件;以及将第二传感器当前使用版本的第二先前固件文件与待升级版本的第二目标固件文件进行比较,以获得第二差异固件文件。

本公开的实施例,所述通信模块具体用于:通过无线通信的方式向所述第一传感器发送所述第一差异固件文件,以使得所述第一传感器从所述第一先前固件文件升级到所述第一目标固件文件;以及通过无线通信的方式向所述第二传感器发送所述第二差异固件文件,以使得所述第二传感器从所述第二先前固件文件升级到所述第二目标固件文件。

本公开的实施例,所述设备还包括:版本查询模块,用于查询所述传感器的固件升级记录来获得所述先前固件文件的版本;或者向所述传感器发送查询指令,以获得所述传感器反馈回来的所述先前固件文件的版本。

本公开的实施例,所述设备还包括:版本记录模块,被设置为在所述传感器从所述先前固件文件升级到所述目标固件文件之后,将所述目标固件文件的版本记录到所述固件升级记录中。

本公开的实施例,其中所述传感器在接收到所述差异固件文件之后,根据所述差异固件文件修改所述先前固件文件并重启,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

其中所述无线通信包括低功耗无线通信,所述低功耗无线通信包括lora通信或者2.4ghz低功耗无线通信;所述传感器包括物联网中的一个或多个传感器节点。

本公开的实施例还可以提供一种用于智能传感器的固件升级方法,其包括:

通过无线通信的方式接收差异固件文件,所述差异固件文件通过将传感器当前使用版本的先前固件文件与待升级版本的目标固件文件进行比较来获得;以及

利用所述差异固件文件进行固件升级,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

本公开的实施例还可以提供一种智能传感器,其包括:

装置,其被配置为通过无线通信的方式接收差异固件文件,所述差异固件文件通过将传感器当前使用版本的先前固件文件与待升级版本的目标固件文件进行比较来获得;

装置,其被配置为利用所述差异固件文件进行固件升级,以使得所述传感器从所述先前固件文件升级到所述目标固件文件。

本公开的固件升级的技术(包括相应的方法、设备等)可以被具体实现为一种系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。

本公开中所描述的方法和功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的示意性类型包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、设备、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明还可以通过其他结构来实现,本发明的特征并不局限于上述较佳的实施例。任何熟悉该项技术的人员在本发明的技术领域内,可轻易想到的变化或修饰,都应涵盖在本发明的专利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1