物联网终端及其升级方法
技术领域
本发明涉及通信技术领域,尤其是涉及一种物联网终端及其升级方法。
背景技术
随着通信技术的迅速发展,物联网技术也越来越成熟,物联网终端的应用领域越来越广泛。现有的物联网终端主要包括微控制单元(Microcontroller Unit,MCU)和通信模块,在对物联网终端进行升级时,直接由通信模块进行FOTA升级(Firmware Over-the-Air,空中下载软件升级),即通信模块直接从服务器上下载升级包(包括微控制单元和通信模块的升级包)进行升级。
然而,在通信模块升级过程中,如果微控制单元需要进行通信传输,如需要处理数据或者传输数据时,则会因为通信模块的升级而导致通信传输失败。因此,现有技术中,通信模块升级时会影响通信传输。
同时,对于物联网厂商而言,随着通信技术发展的日趋成熟化,基于3GPP协议并且提供当前运营商通信渠道的通信模块,已不再是什么核心机密和开发瓶颈,而进行数据采集和信息处理的微控制单元才是核心价值所在。因此,出于信息保密的意图,物联网厂商并不选择在通信模块上进行应用开发,而是仅将其作为一个通信渠道。然而,现有技术中通过通信模块进行升级,使得微控制单元的升级数据存储在通信模块中,从而导致微控制单元的升级数据有泄密的风险。
发明内容
本发明的主要目的在于提供一种物联网终端及其升级方法,旨在解决通信模块升级时影响通信传输的技术问题。
为达以上目的,本发明提出一种物联网终端,包括微控制单元和通信模块,其中:
所述通信模块,用于建立数据通道;
所述微控制单元,用于通过所述数据通道控制所述通信模块进行FOTA升级,当需要进行通信传输时,中断升级过程进行通信传输。
优选地,所述微控制单元包括:
下载单元,用于通过所述数据通道从服务器下载升级包;
传输单元,用于将所述升级包传输给所述通信模块;
升级单元,用于控制所述通信模块基于所述升级包进行升级。
优选地,所述下载单元用于:
检测所述服务器上是否有可供升级的新版本,当有可供升级的新版本时,通过所述数据通道从所述服务器下载升级包。
优选地,所述传输单元用于:
先向所述通信模块传输所述升级包的版本信息,再向所述通信模块传输所述升级包。
优选地,所述微控制单元还用于:当所述通信模块升级完成后,删除所述通信模块内的升级包。
本发明同时提出一种物联网终端的升级方法,包括以下步骤:
通信模块建立数据通道;
微控制单元通过所述数据通道控制所述通信模块进行FOTA升级,当需要进行通信传输时,中断升级过程进行通信传输。
优选地,所述微控制单元通过所述数据通道控制所述通信模块进行FOTA升级,包括:
所述微控制单元通过所述数据通道从服务器下载升级包;
所述微控制单元将所述升级包传输给所述通信模块;
所述微控制单元控制所述通信模块基于所述升级包进行升级。
优选地,所述微控制单元通过所述数据通道从服务器下载升级包,包括:
所述微控制单元检测所述服务器上是否有可供升级的新版本,当有可供升级的新版本时,通过所述数据通道从所述服务器下载升级包。
优选地,所述微控制单元将所述升级包传输给所述通信模块,包括:
所述微控制单元先向所述通信模块传输所述升级包的版本信息,再向所述通信模块传输所述升级包。
优选地,所述方法还包括:当所述通信模块升级完成后,所述微控制单元删除所述通信模块内的升级包。
本发明所提供的一种物联网终端的升级方法,通过将需要的升级包通过通信模块透传从服务器下载到微控制单元,并通过微控制单元控制通信模块进行FOTA升级,由微控制单元主导升级过程,实现了微控制单元对升级过程的有效控制,不会出现类似微控制单元正在处理数据或者需要传输数据的时候,通信模块正在升级而不能进行数据传输的情况,从而能够同时兼顾通信传输和终端升级。并且,当通信模块升级完成后,微控制单元还可以删除通信模块内的升级包,从而使得完整的升级包仅存储在微控制单元内,对物联网厂商来说,达到了对数据保密的目的,特别是对微控制单元的升级数据起到了保密作用。
附图说明
图1是本发明第一实施例的物联网终端的升级方法的流程图;
图2是本发明实施例中微控制单元控制通信模块升级的流程图;
图3是本发明第二实施例的物联网终端的升级方法的流程图;
图4是本发明第三实施例的物联网终端的升级方法的流程图;
图5是本发明第四实施例的物联网终端的模块示意图;
图6是本发明实施例中物联网终端的微控制单元的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
参见图1,提出本发明第一实施例的物联网终端的升级方法,所述方法包括以下步骤:
S11、通信模块建立数据通道。
本发明中,物联网终端包括通信模块和微控制单元(Microcontroller Unit,MCU),通信模块是基于3GPP协议的通信传输通道,负责建立微控制单元与后台服务器之间的数据通道。
S12、微控制单元通过数据通道控制通信模块进行FOTA升级。
本发明通过微控制单元控制通信模块进行FOTA升级,微控制单元可以通过AT命令来控制通信模块。当需要进行通信传输时,微控制单元可以随时中断或暂停升级过程进行通信传输。升级过程具体包括以下步骤:
S121、微控制单元通过数据通道从服务器下载升级包。
本步骤S121中,微控制单元通过数据通道与服务器进行信息交互,检测服务器上是否有可供升级的新版本,当检测到服务器上有新版本可以升级时,则从服务器上下载升级包并予以存储,优选地,所述升级包为差分升级包。
具体的,微控制单元向通信模块发送查询通信模块当前的版本信息的AT命令(如AT+RUPDATEINFO),通过该AT命令获取通信模块当前的版本信息,将通信模块当前的版本信息与服务器上的新版本信息进行对比,判断服务器上是否有可供升级的新版本。
可选地,还可以通过该AT命令获取通信模块内已经下载的升级包信息,如要求通信模块返回文件类型,当前是否有升级包下载,FOTA升级的起始版本,FOTA升级的目标版本,该升级文件的MD5校验码,升级包的总大小,文件一共分割的索引(Index)数和已经下载的索引数。当通信模块中已经下载了部分升级包,只是升级包没有传输完成时,则直接进入步骤S122向通信模块传输剩余的升级包。
S122、微控制单元将升级包传输给通信模块。
本步骤S122中,微控制单元下载完升级包后,则将升级包传输给通信模块。优选地,微控制单元先向通信模块传输升级包的版本信息,再向通信模块传输升级包。传输过程可以被其它命令(如信号查询,电话等)中断。
具体的,微控制单元向通信模块发送传输升级包的版本信息的AT命令(AT+WUPDATEINFO),通过该AT命令将升级包的版本信息发送给通信模块,升级包的版本信息包括起始版本号、目标版本号、文件大小、MD5码等信息。并要求通信模块返回传输结果(如传输成功或失败)。
微控制单元向通信模块发送传输升级包的AT命令(如AT+WRITEDELTA),通过该AT命令升级包发送给通信模块,发送的信息包括:文件类型,本条命令要发送的数据长度,写入包的序号,总共的索引数目,该包数据的CRC校验码,需要升级的差分数据包内容等。并要求通信模块接收完成后返回传输结果(如传输成功或失败)。发送过程中依次发送各个数据包。
本发明实施例中,微控制单元能够读取通信模块的升级包的状态,以确定通信模块当前的升级包为完整升级包、部分升级包、还是无升级包。当通信模块无升级包时微控制单元需要向通信模块发送IMAGE格式的升级包,发送过程可以被其它命令(如信号查询,电话等)中断。当通信模块只有部分升级包微控制单元需要按照续传的方式将剩余升级包发送给通信模块。当升级包已完成传输后,微控制单元则需要查询通信模块是否可升级,通信模块需要判断串口接收的升级包是否完整,版本号是否匹配。
微控制单元可以向通信模块发送查询通信模块的升级包的状态的AT命令(如AT+PREUPDATE),通过该AT命令来查询通信模块的升级包的状态,当通信模块的升级包为完整升级包时,要求通信模块返回是否可以升级的信息。
可选地,微控制单元下载的完整升级包包括微控制单元和通信模块的升级包,微控制单元可以从中挑选出通信模块的升级包,并仅将通信模块的升级包传输给通信模块。
S123、微控制单元控制通信模块基于该升级包进行升级。
具体的,当升级包传输完成后,微控制单元向通信模块发送控制通信模块升级的AT命令(如AT+UPDATEINSTLL),通过该AT命令控制通信模块基于该升级包进行升级。当通信模块升级完成后,向微控制单元返回状态通知。
本实施例的物联网终端的升级方法,通过将需要的升级包通过通信模块透传从服务器下载到微控制单元,并通过微控制单元控制通信模块进行FOTA升级,由微控制单元主导升级过程,实现了微控制单元对升级过程的有效控制,不会出现类似微控制单元正在处理数据或者需要传输数据的时候,通信模块正在升级而不能进行数据传输的情况,从而能够同时兼顾通信传输和终端升级。
实施例二
参见图3,提出本发明第二实施例的物联网终端的升级方法,所述方法包括以下步骤:
S21、通信模块建立数据通道。
S22、微控制单元通过数据通道控制通信模块进行FOTA升级。
本实施例中,步骤S21和S22分别与第一实施例中的步骤S11和S12相同,在此步骤赘述。
S23、当通信模块升级完成后,微控制单元删除通信模块内的升级包。
具体的,当通信模块返回升级完成的状态通知后,微控制单元向通信模块发送删除通信模块内的升级包的AT命令(如AT+DELDELTA),通过该AT命令删除通信模块内的升级包。
本实施例的物联网终端的升级方法,当通信模块升级完成后,微控制单元则删除通信模块内的升级包,从而使得完整的升级包仅存储在微控制单元内,对物联网厂商来说,达到了对数据保密的目的,特别是对微控制单元的升级数据起到了保密作用。
实施例三
参见图4,提出本发明第三实施例的物联网终端的升级方法,本实施例以微控制单元通过AT命令控制通信模块进行升级为例进行详细说明,所述方法包括以下步骤:
S31、微控制单元通过AT+RUPDATEINFO命令查询通信模块当前的版本信息。判断是否需要升级,当不需要升级时,结束流程;当需要升级时,进一步判断通信模块中是否已下载了部分升级包,如果下载了部分升级包,则执行步骤S33,如果还没有下载升级包,则执行步骤S32。
本步骤S31中,AT+RUPDATEINFO命令,用于查询通信模块当前的版本信息。其中,包括已经下载的升级包信息,要求通信模块返回文件类型,当前是否有升级包下载,FOTA升级的起始版本,FOTA升级的目标版本,该升级文件的MD5校验码,升级包的总大小,文件一共分割的索引数和已经下载的索引数等。
当微控制单元还没有下载升级包时,还需要从服务器下载升级包。
S32、微控制单元通过AT+WUPDATEINFO命令向通信模块传输升级包的版本信息。
本步骤S32中,AT+WUPDATEINFO命令,用于将升级包的起始版本号、目标版本号、文件大小、MD5码等信息发送到通信模块,要求通信模块返回传输成功或失败的信息。
S33、微控制单元通过AT+WRITEDELTA命令向通信模块传输升级包。
本步骤S33中,AT+WRITEDELTA命令,用于向通信模块传输升级包,传输信息包括文件类型,本条命令要发送的数据长度,写入包的序号,总的索引数目,该包数据的CRC校验码,需要升级的差分数据包内容等,要求通信模块接收完成后返回传输成功或失败的信息。
如果通信模块内已经下载了部分升级包,微控制单元则向通信模块续传剩余的升级包。
S34、微控制单元通过AT+PREUPDATE命令查询通信模块的升级包的状态。判断是否可以升级,如果可以升级则执行步骤S35;否则,重新传输升级包或结束流程。
本步骤S34中,AT+PREUPDATE命令,用于查询通信模块内的升级包是否完整,要求通信模块返回是否可以升级的信息。
S35、微控制单元通过AT+UPDATEINSTALL命令控制通信模块升级。
本步骤S35中,AT+UPDATEINSTALL命令,用于控制通信模块升级,要求通信模块主动上报升级完成状态,返回升级成功或失败的信息。
升级成功或者失败,通信模块都会主动向微控制单元返回信息,AT命令采用异步的方式。
S36、当通信模块升级完成后,微控制单元通过AT+DELDELTA命令删除通信模块内的升级包。
本发明的物联网终端的升级方法,利用现有的通信网络和FOTA升级技术,在不改变现有FOTA升级流程的前提下达到了升级物联网终端的目的。对于物联网厂商,利用现有的FOTA升级技术,不需要在通信模块上开发任何上层应用,并能对升级过程进行有效控制,达到能够操控通信传输和通信终端升级的目的,并能实现对数据进行保密,特别是对微控制单元的升级数据起到保密作用。对于通信模块而言,则扩大了应用市场,同时也避免了在其平台上过多开发而影响主要通信业务的问题。
实施例四
参见图5,提出本发明第四实施例的物联网终端一实施例,所述物联网终端可以应用于车载系统、医疗系统、政企办公系统等,所述物联网终端包括微控制单元和通信模块,其中:
通信模块:是基于3GPP协议的通信传输通道,用于建立数据通道,如微控制单元与后台服务器之间的数据通道。
微控制单元:用于通过数据通道控制通信模块进行FOTA升级,当通信模块升级完成后,删除通信模块内的升级包。微控制单元优选通过AT命令控制通信模块。当需要进行通信传输时,微控制单元可以随时中断或暂停升级过程进行通信传输。
如图6所示,微控制单元包括下载模块、传输模块、升级模块,其中:
下载模块:用于通过数据通道从服务器下载升级包。具体的,下载模块检测服务器上是否有可供升级的新版本,当有可供升级的新版本时,通过数据通道从服务器下载升级包。
例如,下载模块通过AT+RUPDATEINFO命令查询通信模块当前的版本信息,将通信模块当前的版本信息与服务器上的新版本信息进行对比,判断服务器上是否有可供升级的新版本。
传输模块:用于将升级包传输给通信模块。具体的,传输模块先向通信模块传输升级包的版本信息,再向通信模块传输升级包。
例如,传输模块通过AT+WUPDATEINFO命令向通信模块传输升级包的版本信息,通过AT+WRITEDELTA命令向通信模块传输升级包。
升级模块:用于控制通信模块基于升级包进行升级。
例如,升级模块通过AT+PREUPDATE命令查询通信模块的升级包的状态,判断是否可以升级,如果可以升级,则通过AT+UPDATEINSTALL命令控制通信模块升级。
进一步,微控制单元还用于:当通信模块升级完成后,删除通信模块内的升级包。例如,微控制单元通过AT+DELDELTA命令删除通信模块内的升级包。
本发明实施例的物联网终端,通过将需要的升级包通过通信模块透传从服务器下载到微控制单元,并通过微控制单元控制通信模块进行升级,由微控制单元主导升级过程,实现了微控制单元对升级过程的有效控制,不会出现类似微控制单元正在处理数据或者需要传输数据的时候,通信模块正在升级而不能进行数据传输的情况,从而能够同时兼顾通信传输和终端升级。并且,当通信模块升级完成后,微控制单元则删除通信模块内的升级包,从而使得完整的升级包仅存储在微控制单元内,对物联网厂商来说,达到了对数据保密的目的,特别是对微控制单元的升级数据起到了保密作用。
应当理解,上述实施例提供的物联网终端与物联网终端的升级方法实施例属于同一构思,其具体实现过程详见方法实施例,且方法实施例中的技术特征在终端实施例中均对应适用,这里不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
应当理解的是,以上仅为本发明的优选实施例,不能因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。