一种智能云锁的指纹头在线升级方法、系统及云锁与流程

文档序号:18008930发布日期:2019-06-25 23:44阅读:357来源:国知局
一种智能云锁的指纹头在线升级方法、系统及云锁与流程

本发明涉及智能门锁领域,尤其涉及一种智能云锁的指纹头在线升级方法、系统及云锁。



背景技术:

目前,许多家庭都给防盗门安装智能门锁,可通过指纹头进行指纹识别来替代钥匙开门,回家开门更为方便快捷和安全可靠。而且随着互联网技术的发展,智能门锁可接入互联网以便用户通过手机、电脑等移动终端操控,让智能门锁升级为智能云锁。但现有的智能云锁无法对指纹头进行在线升级,需将指纹头拆卸下来并用专门工件进行升级,不方便升级和维护,维护开销大,并且升级过程中用户无法操作智能云锁,给用户带来不便。



技术实现要素:

本发明的目的在于提出一种在线升级稳定性高,不影响用户使用云锁的智能云锁的指纹头在线升级方法。

本发明的目的在于提出一种在线升级稳定性高,不影响用户使用云锁的智能云锁的指纹头在线升级系统。

本发明的目的在于提出一种在线升级稳定性高,不影响用户使用云锁的指纹头可在线升级的智能云锁。

为达此目的,本发明采用以下技术方案:

一种智能云锁的指纹头在线升级方法,云锁主体设有主控模块和外部flash存储器,云锁主体、网关和云服务器通过无线通信网络连接,所述指纹头和云锁主体通过串口有线连接,包括以下步骤:

步骤a,云服务器通过网关将指纹头升级数据包发送至所述云锁主体,所述云锁主体的主控模块将接收的指纹头升级数据包写入外部flash存储器;

步骤b,所述云锁主体的主控模块对接收的指纹头升级数据包进行校验,若校验结果为正确则所述主控模块通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时执行步骤c;若校验结果为不正确则向云服务器请求重新发送指纹头升级数据包;

步骤c,所述云锁主体的主控模块获取外部flash存储器存储的指纹头升级数据包,并发送至指纹头;

步骤d,指纹头接收完指纹头升级数据包后,对指纹头升级数据包进行校验,若校验结果为正确则执行步骤e;若校验结果为不正确则向所述主控模块请求重新发送指纹头升级数据包;

步骤e,指纹头根据指纹头升级数据包进行在线升级,升级完后向所述主控模块发送升级结束指令,所述主控模块通过网关向所述云服务器发送升级结束指令。

优选地,在所述主控模块设置云锁引导加载程序和云锁应用程序,在外部flash存储器划分有指纹头固件存储区,和在所述指纹头设置指纹头引导加载程序和指纹头应用程序;

所述步骤a具体为:云服务器通过网关将指纹头升级数据包发送至所述云锁应用程序,所述云锁应用程序将接收的指纹头升级数据包写入外部flash存储器的指纹头固件存储区;

所述步骤b具体为:所述云锁应用程序对接收的指纹头升级数据包进行校验,若校验结果为正确则所述云锁应用程序通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时执行步骤c;若校验结果为不正确则向云服务器请求重新发送指纹头升级数据包;

所述步骤c具体为:所述云锁应用程序获取指纹头固件存储区的指纹头升级数据包,并发送至指纹头的指纹头应用程序;

所述步骤d具体为:所述指纹头应用程序接收完指纹头升级数据包后,对指纹头升级数据包进行校验,若校验结果为正确则执行步骤e,若校验结果为不正确则向所述云锁应用程序请求重新发送指纹头升级数据包;

所述步骤e具体为:所述指纹头引导加载程序拷贝指纹头升级数据包中的升级代码,进行在线升级,升级完后跳转回指纹头应用程序,所述指纹头应用程序向云锁应用程序发送升级结束指令,所述云锁应用程序通过网关向所述云服务器发送升级结束指令。

优选地,在步骤a之前还包括:

云服务器通过网关发送指纹头升级请求指令至所述云锁主体,所述指纹头升级请求指令包含待升级版本号、升级固件大小和校验码;

所述云锁应用程序接收到指纹头升级请求指令后,从外部flash存储器获取指纹头的当前版本号,并检测当前剩余电量和指纹头的存储空间;

所述云锁应用程序判断指纹头的当前版本号和待升级版本号是否不一致,判断当前剩余电量是否不小于升级所需电量,和判断升级固件大小是否比指纹头的存储空间小:

只有当指纹头的当前版本号和待升级版本号不一致,当前剩余电量不小于升级所需电量,和升级固件大小比指纹头的存储空间小,才执行步骤a,并将所述校验码存储于所述指纹头固件存储区;否则拒绝升级。

优选地,所述校验码为crc32校验码;

所述步骤b和步骤d的校验均为:每接收到一个指纹头升级数据包,就对接收的指纹头升级数据包进行异或校验;并当所有指纹头升级数据包接收完时,对所有指纹头升级数据包进行crc32校验:

即按照数据包从大到小的顺序,依次读取所述指纹头固件存储区的指纹头升级数据包,并计算每个读取的指纹头升级数据包的crc32校验码;

然后,对每个指纹头升级数据包,将计算得的crc32校验码和所述指纹头固件存储区保存的所述校验码进行对比:若两者一致则crc32校验的校验结果为正确,若两者不一致则crc32校验的校验结果为不正确;

若异或校验的校验结果和crc32校验的校验结果均为正确,则最终的所述校验结果为正确;

若异或校验的校验结果或crc32校验的校验结果为不正确,则最终的所述校验结果为不正确。

优选地,所述步骤a中,所述网关转发指纹头升级数据包至所述云锁主体时,所述网关记录当前的偏移地址;

若网关向云锁主体发送指纹头升级数据包时云锁主体发生断电,则重新启动云锁主体,进入云锁主体的操作界面,并且网关记录断电时的偏移地址;当云锁主体再次上电时,网关从断电时的偏移地址起向云锁主体继续发送指纹头升级数据包;

所述步骤c中,若云锁主体向指纹头发送指纹头升级数据包时云锁主体发生断电,则云锁主体停止发送指纹头升级数据包;待云锁主体再次上电时,云锁主体将所有指纹头升级数据包重新发送至指纹头。

优选地,一种智能云锁的指纹头在线升级系统,云锁主体设有主控模块和外部flash存储器,云锁主体、网关和云服务器通过无线通信网络连接,所述指纹头和云锁主体通过串口有线连接;

所述云服务器用于通过网关将指纹头升级数据包发送至所述云锁主体;

所述云锁主体的主控模块用于将接收的指纹头升级数据包写入外部flash存储器;

和用于对接收的指纹头升级数据包进行校验:若校验结果为正确则通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时获取外部flash存储器存储的指纹头升级数据包,并发送至指纹头;若校验结果为不正确则向云服务器请求重新发送指纹头升级数据包;

所述指纹头用于接收完指纹头升级数据包后,对指纹头升级数据包进行校验:若校验结果为正确则根据指纹头升级数据包进行在线升级,升级完后向所述主控模块发送升级结束指令,所述主控模块通过网关向所述云服务器发送升级结束指令;

若校验结果为不正确则向所述主控模块请求重新发送指纹头升级数据包。

优选地,所述主控模块设有云锁引导加载程序和云锁应用程序,所述外部flash存储器划分有指纹头固件存储区,所述指纹头设有指纹头引导加载程序和指纹头应用程序;

所述云服务器用于通过网关将指纹头升级数据包发送至所述云锁应用程序;

所述云锁应用程序用于将接收的指纹头升级数据包写入外部flash存储器的指纹头固件存储区;

和用于对接收的指纹头升级数据包进行校验:若校验结果为正确则通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时获取指纹头固件存储区的指纹头升级数据包,并发送至指纹头的指纹头应用程序;若校验结果为不正确则向云服务器请求重新发送指纹头升级数据包;

所述指纹头应用程序用于接收完指纹头升级数据包后,对指纹头升级数据包进行校验,若校验结果为正确则请求所述指纹头引导加载程序拷贝指纹头升级数据包中的升级代码,进行在线升级,升级完后跳转回指纹头应用程序,所述指纹头应用程序向云锁应用程序发送升级结束指令,所述云锁应用程序通过网关向所述云服务器发送升级结束指令;

若校验结果为不正确则向云锁应用程序请求重新发送指纹头升级数据包。

优选地,所述云服务器还用于通过网关发送指纹头升级请求指令至所述云锁主体,所述指纹头升级请求指令包含待升级版本号、升级固件大小和校验码;

所述云锁应用程序还用于接收到指纹头升级请求指令后,从外部flash存储器获取指纹头的当前版本号,并检测当前剩余电量和指纹头的存储空间;

还用于判断指纹头的当前版本号和待升级版本号是否不一致,判断当前剩余电量是否不小于升级所需电量,和判断升级固件大小是否比指纹头的存储空间小:

只有当指纹头的当前版本号和待升级版本号不一致,当前剩余电量不小于升级所需电量,和升级固件大小比指纹头的存储空间小,才执行步骤a,并将所述校验码存储于所述指纹头固件存储区;否则拒绝升级;

还用于每接收到一个指纹头升级数据包,就对接收的指纹头升级数据包进行异或校验;并当所有指纹头升级数据包接收完时,对所有指纹头升级数据包进行crc32校验:即按照数据包从大到小的顺序,依次读取指纹头固件存储区的指纹头升级数据包,并计算每个读取的指纹头升级数据包的crc32校验码;

然后,对每个指纹头升级数据包,将计算得的crc32校验码和所述指纹头固件存储区保存的所述校验码进行对比:若两者一致则crc32校验的校验结果为正确,若两者不一致则crc32校验的校验结果为不正确;

若异或校验的校验结果和crc32校验的校验结果均为正确,则最终的所述校验结果为正确;若异或校验的校验结果或crc32校验的校验结果为不正确,则最终的所述校验结果为不正确;

所述指纹头应用程序用于每接收到一个指纹头升级数据包,就对接收的指纹头升级数据包进行异或校验;并当所有指纹头升级数据包接收完时,所述指纹头应用程序对所有指纹头升级数据包进行所述crc32校验;

若所述异或校验的校验结果和所述crc32校验的校验结果均为正确,则允许升级;

若所述异或校验的校验结果或所述crc32校验的校验结果为不正确,则请求重新发送所有指纹头升级数据包。

优选地,所述网关用于转发指纹头升级数据包至所述云锁主体时,记录当前的偏移地址;若向云锁主体发送指纹头升级数据包时云锁主体发生断电,则记录断电时的偏移地址;当云锁主体再次上电时,网关从断电时的偏移地址起向云锁主体继续发送指纹头升级数据包;

所述云锁主体的主控模块用于若接收指纹头升级数据包时发生断电,则重新启动并进入操作界面;

还用于若向指纹头发送指纹头升级数据包时发生断电,则停止发送指纹头升级数据包;待再次上电时,将所有指纹头升级数据包重新发送至指纹头。

优选地,一种指纹头可在线升级的智能云锁,云锁主体设有主控模块和外部flash存储器,云锁主体、网关和云服务器通过无线通信网络连接,所述指纹头和云锁主体通过串口有线连接;使用所述智能云锁的指纹头在线升级方法对所述指纹头进行在线升级。

所述智能云锁的指纹头在线升级方法,可实现指纹头的在线升级,无需将指纹头拆卸下来并用专门工件进行升级,从而可通过无线通信网络对指纹头进行升级和软件修复,方便快捷,节省大量的人力物力,实现指纹头升级的线上管理。所述云锁主体设有主控模块和外部flash存储器,主控模块将接收的指纹头升级数据包写入外部flash存储器,从而升级期间用户可以正常操作所述智能云锁,即指纹头升级期间,用户仍可以开锁、关锁等操作,避免将指纹头升级数据包直接拷贝到云锁主体的内部存储器中而使用户无法开锁。所述指纹头和云锁主体通过串口有线连接,即指纹头通过串口来接收指纹头升级数据包,升级速度快,200kbytes的数据2分钟就可以升级完毕,不占用用户指纹头的开锁时间,避免因指纹头升级时间久而无法使用指纹开锁。

附图说明

附图对本发明做进一步说明,但附图中的内容不构成对本发明的任何限制。

图1是本发明其中一个实施例的指纹头在线升级系统通信连接图;

图2是本发明其中一个实施例的指纹头在线升级流程图;

图3是本发明其中一个实施例的升级前判断流程。

具体实施方式

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

实施例1

本实施例的智能云锁的指纹头在线升级方法,如图1所示,云锁主体设有主控模块和外部flash存储器,云锁主体、网关和云服务器通过无线通信网络连接,所述指纹头和云锁主体通过串口有线连接,如图2所示,包括以下步骤:

步骤a,云服务器通过网关将指纹头升级数据包发送至所述云锁主体,所述云锁主体的主控模块将接收的指纹头升级数据包写入外部flash存储器;

步骤b,所述云锁主体的主控模块对接收的指纹头升级数据包进行校验,若校验结果为正确则所述主控模块通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时执行步骤c;若校验结果为不正确则向云服务器请求重新发送指纹头升级数据包;

步骤c,所述云锁主体的主控模块获取外部flash存储器存储的指纹头升级数据包,并发送至指纹头;

步骤d,指纹头接收完指纹头升级数据包后,对指纹头升级数据包进行校验,若校验结果为正确则执行步骤e;若校验结果为不正确则向所述主控模块请求重新发送指纹头升级数据包;

步骤e,指纹头根据指纹头升级数据包进行在线升级,升级完后向所述主控模块发送升级结束指令,所述主控模块通过网关向所述云服务器发送升级结束指令。

所述智能云锁的指纹头在线升级方法,可实现指纹头的在线升级,无需将指纹头拆卸下来并用专门工件进行升级,从而可通过无线通信网络对指纹头进行升级和软件修复,方便快捷,节省大量的人力物力,实现指纹头升级的线上管理。

由于指纹头升级数据包比较大,有几百k字节,网关将数据传输给所述云锁主体需要持续1个小时左右。因此所述云锁主体设有主控模块和外部flash存储器,主控模块将接收的指纹头升级数据包写入外部flash存储器,从而升级期间用户可以正常操作所述智能云锁,即指纹头升级期间,用户仍可以开锁、关锁等操作,避免将指纹头升级数据包直接拷贝到云锁主体的内部存储器中而使用户无法开锁。所述指纹头和云锁主体通过串口有线连接,即指纹头通过串口来接收指纹头升级数据包,升级速度快,200kbytes的数据2分钟就可以升级完毕,不占用用户指纹头的开锁时间,避免因指纹头升级时间久而无法使用指纹开锁。

采用两次校验,即云锁主体的主控模块对接收的指纹头升级数据包进行校验,先确保无线接收的指纹头升级数据包是正确的,和指纹头对指纹头升级数据包进行校验,还需确保传输给指纹头的指纹头升级数据包和外部flash存储器存储的是一致的,大大地提高升级可靠性,防止升级中途因数据错误而要重新升级。两次校验完成后,主控模块向云服务器发送升级结束指令,云服务器结束指纹头升级数据包的发送任务。

采用双备份代码,即指纹头升级数据包先存储于外部flash存储器,校验正确也发送至指纹头存储,指纹头升级过程中若一份代码出现异常,可以切换至外部flash存储器存储的该份代码,从而避免升级过程中出现死机的情况。所述云服务和网关之间通过互联网进行数据收发,所述网关和所述云锁主体通过短距离无线通信网络进行数据收发,例如zigbee网络、wifi网络。

优选地,在所述主控模块设置云锁引导加载程序和云锁应用程序,在外部flash存储器划分有指纹头固件存储区,和在所述指纹头设置指纹头引导加载程序和指纹头应用程序;

所述步骤a具体为:云服务器通过网关将指纹头升级数据包发送至所述云锁应用程序,所述云锁应用程序将接收的指纹头升级数据包写入外部flash存储器的指纹头固件存储区;

所述步骤b具体为:所述云锁应用程序对接收的指纹头升级数据包进行校验,若校验结果为正确则所述云锁应用程序通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时执行步骤c;若校验结果为不正确则向云服务器请求重新发送指纹头升级数据包;

所述步骤c具体为:所述云锁应用程序获取指纹头固件存储区的指纹头升级数据包,并发送至指纹头的指纹头应用程序;

所述步骤d具体为:所述指纹头应用程序接收完指纹头升级数据包后,对指纹头升级数据包进行校验,若校验结果为正确则执行步骤e,若校验结果为不正确则向所述云锁应用程序请求重新发送指纹头升级数据包;

所述步骤e具体为:所述指纹头引导加载程序拷贝指纹头升级数据包中的升级代码,进行在线升级,升级完后跳转回指纹头应用程序,所述指纹头应用程序向云锁应用程序发送升级结束指令,所述云锁应用程序通过网关向所述云服务器发送升级结束指令。

云服务器通过网关将指纹头升级数据包发送至所述主控模块时,通过云锁应用程序将接收的指纹头升级数据包写入外部flash存储器的指纹头固件存储区,而不是云锁引导加载程序拷贝指纹头升级数据包,从而升级期间用户可以正常操作所述智能云锁。采用两次校验,即云锁应用程序对接收的指纹头升级数据包进行校验,先确保无线接收的指纹头升级数据包是正确的,和指纹头应用程序对指纹头升级数据包进行校验,还需确保传输给指纹头的指纹头升级数据包和外部flash存储器存储的是一致的,大大地提高升级可靠性,防止升级中途因数据错误而要重新升级。

发送至指纹头的指纹头升级数据包由指纹头引导加载程序拷贝指纹头升级数据包中的升级代码,进行在线升级,升级过程中若一份代码出现异常,切换至指纹头固件存储区存储的该份代码,从而避免升级过程中出现死机的情况。升级完成后跳转回指纹头应用程序,由指纹头应用程序发送升级结束指令给云锁应用程序,云锁应用程序结束指纹头升级任务。

优选地,如图3所示,在步骤a之前还包括:

云服务器通过网关发送指纹头升级请求指令至所述云锁主体,所述指纹头升级请求指令包含待升级版本号、升级固件大小和校验码;

所述云锁应用程序接收到指纹头升级请求指令后,从外部flash存储器获取指纹头的当前版本号,并检测当前剩余电量和指纹头的存储空间;

所述云锁应用程序判断指纹头的当前版本号和待升级版本号是否不一致,判断当前剩余电量是否不小于升级所需电量,和判断升级固件大小是否比指纹头的存储空间小:

只有当指纹头的当前版本号和待升级版本号不一致,当前剩余电量不小于升级所需电量,和升级固件大小比指纹头的存储空间小,才执行步骤a,并将所述校验码存储于所述指纹头固件存储区;否则拒绝升级。

指纹头升级请求指令可由用户的app端发送给云服务器,也可以是云服务器定期对指纹头进行自动在线升级,实现指纹头升级的线上管理。

在升级之前,所述云锁主体判断当前指纹头上的版本号是否为最新的版本号,若是最新的版本号则不用升级,若不是最新则有必要升级;判断升级固件大小是否比指纹头的存储空间小,避免因升级固件大小比指纹头的存储空间大而导致死机;判断当前剩余电量是否不小于升级所需电量,以避免升级过程中因电量不足而发生关机,导致用户无法操作所述智能云锁,电量不足和版本为最新时均可向用户的app端、云锁主体的操作界面发出提醒信息;确保升级顺利通畅。

优选地,所述校验码为crc32校验码;

所述步骤b和步骤d的校验均为:每接收到一个指纹头升级数据包,就对接收的指纹头升级数据包进行异或校验;并当所有指纹头升级数据包接收完时,对所有指纹头升级数据包进行crc32校验:

即按照数据包从大到小的顺序,依次读取所述指纹头固件存储区的指纹头升级数据包,并计算每个读取的指纹头升级数据包的crc32校验码;

然后,对每个指纹头升级数据包,将计算得的crc32校验码和所述指纹头固件存储区保存的所述校验码进行对比:若两者一致则crc32校验的校验结果为正确,若两者不一致则crc32校验的校验结果为不正确;

若异或校验的校验结果和crc32校验的校验结果均为正确,则最终的所述校验结果为正确;

若异或校验的校验结果或crc32校验的校验结果为不正确,则最终的所述校验结果为不正确。

crc32校验即循环冗余校验,是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。异或校验将每一个字节的数据进行异或后即得到异或校验码,用于串口通信。

所述云锁应用程序和指纹头应用程序均可一边接收指纹头升级数据包,一边对指纹头升级数据包进行异或校验,这样可即时发现出错的指纹头升级数据包,即时重新发送对应的指纹头升级数据包,提高数据传输效率;然后,当所有指纹头升级数据包接收完时,再对所有指纹头升级数据包进行crc32校验,从整体上进行第二次校验,提高校验准确性。

由于指纹头升级时,云服务器通过网关将指纹头升级请求指令发送至所述主控模块,指纹头升级请求指令包含了校验码,云锁应用程序在将指纹头升级数据包发送给指纹头之前,需要先确定接收的指纹头升级数据包是否正确,因此对指纹头固件存储区的指纹头升级数据包进行crc32校验,计算指纹头升级数据包的实际crc32校验码,若计算的和原先的不一致,则说明接收到的指纹头升级数据包不正确。按照数据包从大到小的顺序校验,有利于云服务器重新发送对应的指纹头升级数据包,降低二次出错的发生率。

对于所述步骤b,每接收到一个指纹头升级数据包,云锁应用程序就对接收的指纹头升级数据包进行异或校验;并当所有指纹头升级数据包接收完时,云锁应用程序对所有指纹头升级数据包进行crc32校验;若异或校验的校验结果和crc32校验的校验结果均为正确,则最终的所述校验结果为正确,所述云锁应用程序通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时执行步骤c;若异或校验的校验结果或crc32校验的校验结果为不正确,则最终的所述校验结果为不正确,向云服务器请求重新发送指纹头升级数据包。

对于所述步骤d,每接收到一个指纹头升级数据包,指纹头应用程序就对接收的指纹头升级数据包进行异或校验;并当所有指纹头升级数据包接收完时,指纹头应用程序对所有指纹头升级数据包进行crc32校验;若异或校验的校验结果和crc32校验的校验结果均为正确,则最终的所述校验结果为正确,所述指纹头应用程序执行步骤e;若异或校验的校验结果或crc32校验的校验结果为不正确,则最终的所述校验结果为不正确,向所述云锁应用程序请求重新发送指纹头升级数据包。

优选地,还包括:

所述步骤a中,所述网关转发指纹头升级数据包至所述云锁主体时,所述网关记录当前的偏移地址;

若网关向云锁主体发送指纹头升级数据包时云锁主体发生断电,则重新启动云锁主体,进入云锁主体的操作界面,并且网关记录断电时的偏移地址;当云锁主体再次上电时,网关从断电时的偏移地址起向云锁主体继续发送指纹头升级数据包;

所述步骤c中,若云锁主体向指纹头发送指纹头升级数据包时云锁主体发生断电,则云锁主体停止发送指纹头升级数据包;待云锁主体再次上电时,云锁主体将所有指纹头升级数据包重新发送至指纹头。

网关下发的指纹头升级数据包里都有记录当前的偏移地址,比如当前偏移地址48,下一包有效升级数据是48个字节,则下一包的数据的偏移地址是96,通过记录这个偏移地址,这就是断点续传的原理。云锁主体再次上电时,网关从断电时的偏移地址起向云锁主体继续发送指纹头升级数据包,实现了断点续传的功能,无需重新开始发送,节省升级数据的传输时间。

而若云锁主体向指纹头发送指纹头升级数据包时云锁主体发生断电,由于外部flash存储器存储了所有指纹头升级数据包,通过串口传输数据也很快,因此云锁主体再次上电时,云锁主体可将所有指纹头升级数据包重新发送至指纹头,避免漏发、错发的情况。

实施例2

本实施例的智能云锁的指纹头在线升级系统,如图1所示,云锁主体设有主控模块和外部flash存储器,云锁主体、网关和云服务器通过无线通信网络连接,所述指纹头和云锁主体通过串口有线连接;

所述云服务器用于通过网关将指纹头升级数据包发送至所述云锁主体;

所述云锁主体的主控模块用于将接收的指纹头升级数据包写入外部flash存储器;

和用于对接收的指纹头升级数据包进行校验:若校验结果为正确则通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时获取外部flash存储器存储的指纹头升级数据包,并发送至指纹头;若校验结果为不正确则向云服务器请求重新发送指纹头升级数据包;

所述指纹头用于接收完指纹头升级数据包后,对指纹头升级数据包进行校验:若校验结果为正确则根据指纹头升级数据包进行在线升级,升级完后向所述主控模块发送升级结束指令,所述主控模块通过网关向所述云服务器发送升级结束指令;

若校验结果为不正确则向所述主控模块请求重新发送指纹头升级数据包。

所述智能云锁的指纹头在线升级系统,可实现指纹头的在线升级,无需将指纹头拆卸下来并用专门工件进行升级,从而可通过无线通信网络对指纹头进行升级和软件修复,方便快捷,节省大量的人力物力,实现指纹头升级的线上管理。

由于指纹头升级数据包比较大,有几百k字节,网关将数据传输给所述云锁主体需要持续1个小时左右。因此所述云锁主体设有主控模块和外部flash存储器,主控模块将接收的指纹头升级数据包写入外部flash存储器,从而升级期间用户可以正常操作所述智能云锁,即指纹头升级期间,用户仍可以开锁、关锁等操作,避免将指纹头升级数据包直接拷贝到云锁主体的内部存储器中而使用户无法开锁。所述指纹头和云锁主体通过串口有线连接,即指纹头通过串口来接收指纹头升级数据包,升级速度快,200kbytes的数据2分钟就可以升级完毕,不占用用户指纹头的开锁时间,避免因指纹头升级时间久而无法使用指纹开锁。

采用两次校验,即云锁主体的主控模块对接收的指纹头升级数据包进行校验,先确保无线接收的指纹头升级数据包是正确的,和指纹头对指纹头升级数据包进行校验,还需确保传输给指纹头的指纹头升级数据包和外部flash存储器存储的是一致的,大大地提高升级可靠性,防止升级中途因数据错误而要重新升级。两次校验完成后,主控模块向云服务器发送升级结束指令,云服务器结束指纹头升级数据包的发送任务。

采用双备份代码,即指纹头升级数据包先存储于外部flash存储器,校验正确也发送至指纹头存储,指纹头升级过程中若一份代码出现异常,可以切换至外部flash存储器存储的该份代码,从而避免升级过程中出现死机的情况。所述云服务和网关之间通过互联网进行数据收发,所述网关和所述云锁主体通过短距离无线通信网络进行数据收发,例如zigbee网络、wifi网络。

优选地,所述主控模块设有云锁引导加载程序和云锁应用程序,所述外部flash存储器划分有指纹头固件存储区,所述指纹头设有指纹头引导加载程序和指纹头应用程序;

所述云服务器用于通过网关将指纹头升级数据包发送至所述云锁应用程序;

所述云锁应用程序用于将接收的指纹头升级数据包写入外部flash存储器的指纹头固件存储区;

和用于对接收的指纹头升级数据包进行校验:若校验结果为正确则通过网关向云服务器发送升级包接收完毕指令,此时云服务器不再发送指纹头升级数据包,同时获取指纹头固件存储区的指纹头升级数据包,并发送至指纹头的指纹头应用程序;若校验结果为不正确则向云服务器请求重新发送指纹头升级数据包;

所述指纹头应用程序用于接收完指纹头升级数据包后,对指纹头升级数据包进行校验,若校验结果为正确则请求所述指纹头引导加载程序拷贝指纹头升级数据包中的升级代码,进行在线升级,升级完后跳转回指纹头应用程序,所述指纹头应用程序向云锁应用程序发送升级结束指令,所述云锁应用程序通过网关向所述云服务器发送升级结束指令;

若校验结果为不正确则向所述云锁应用程序请求重新发送指纹头升级数据包。

云服务器通过网关将指纹头升级数据包发送至所述主控模块时,通过云锁应用程序将接收的指纹头升级数据包写入外部flash存储器的指纹头固件存储区,而不是云锁引导加载程序拷贝指纹头升级数据包,从而升级期间用户可以正常操作所述智能云锁。采用两次校验,即云锁应用程序对接收的指纹头升级数据包进行校验,先确保无线接收的指纹头升级数据包是正确的,和指纹头应用程序对指纹头升级数据包进行校验,还需确保传输给指纹头的指纹头升级数据包和外部flash存储器存储的是一致的,大大地提高升级可靠性,防止升级中途因数据错误而要重新升级。

发送至指纹头的指纹头升级数据包由指纹头引导加载程序拷贝指纹头升级数据包中的升级代码,进行在线升级,升级过程中若一份代码出现异常,切换至指纹头固件存储区存储的该份代码,从而避免升级过程中出现死机的情况。升级完成后跳转回指纹头应用程序,由指纹头应用程序发送升级结束指令给云锁应用程序,云锁应用程序结束指纹头升级任务。

优选地,所述云服务器还用于通过网关发送指纹头升级请求指令至所述云锁主体,所述指纹头升级请求指令包含待升级版本号、升级固件大小和校验码;

所述云锁应用程序还用于接收到指纹头升级请求指令后,从外部flash存储器获取指纹头的当前版本号,并检测当前剩余电量和指纹头的存储空间;

还用于判断指纹头的当前版本号和待升级版本号是否不一致,判断当前剩余电量是否不小于升级所需电量,和判断升级固件大小是否比指纹头的存储空间小:

只有当指纹头的当前版本号和待升级版本号不一致,当前剩余电量不小于升级所需电量,和升级固件大小比指纹头的存储空间小,才执行步骤a,并将所述校验码存储于所述指纹头固件存储区;否则拒绝升级;

还用于每接收到一个指纹头升级数据包,就对接收的指纹头升级数据包进行异或校验;并当所有指纹头升级数据包接收完时,对所有指纹头升级数据包进行crc32校验:即按照数据包从大到小的顺序,依次读取指纹头固件存储区的指纹头升级数据包,并计算每个读取的指纹头升级数据包的crc32校验码;

然后,对每个指纹头升级数据包,将计算得的crc32校验码和所述指纹头固件存储区保存的所述校验码进行对比:若两者一致则crc32校验的校验结果为正确,若两者不一致则crc32校验的校验结果为不正确;

若异或校验的校验结果和crc32校验的校验结果均为正确,则最终的所述校验结果为正确;若异或校验的校验结果或crc32校验的校验结果为不正确,则最终的所述校验结果为不正确;

所述指纹头应用程序用于每接收到一个指纹头升级数据包,就对接收的指纹头升级数据包进行异或校验;并当所有指纹头升级数据包接收完时,所述指纹头应用程序对所有指纹头升级数据包进行所述crc32校验;

若所述异或校验的校验结果和所述crc32校验的校验结果均为正确,则允许升级;

若所述异或校验的校验结果或所述crc32校验的校验结果为不正确,则请求重新发送所有指纹头升级数据包。

指纹头升级请求指令可由用户的app端发送给云服务器,也可以是云服务器定期对指纹头进行自动在线升级,实现指纹头升级的线上管理。

在升级之前,所述云锁主体判断当前指纹头上的版本号是否为最新的版本号,若是最新的版本号则不用升级,若不是最新则有必要升级;判断升级固件大小是否比指纹头的存储空间小,避免因升级固件大小比指纹头的存储空间大而导致死机;判断当前剩余电量是否不小于升级所需电量,以避免升级过程中因电量不足而发生关机,导致用户无法操作所述智能云锁,电量不足和版本为最新时均可向用户的app端、云锁主体的操作界面发出提醒信息;确保升级顺利通畅。

所述云锁应用程序和指纹头应用程序均可一边接收指纹头升级数据包,一边对指纹头升级数据包进行异或校验,这样可即时发现出错的指纹头升级数据包,即时重新发送对应的指纹头升级数据包,提高数据传输效率;然后,当所有指纹头升级数据包接收完时,再对所有指纹头升级数据包进行crc32校验,从整体上进行第二次校验,提高校验准确性。

由于指纹头升级时,云服务器通过网关将指纹头升级请求指令发送至所述主控模块,指纹头升级请求指令包含了校验码,云锁应用程序在将指纹头升级数据包发送给指纹头之前,需要先确定接收的指纹头升级数据包是否正确,因此对指纹头固件存储区的指纹头升级数据包进行crc32校验,计算指纹头升级数据包的实际crc32校验码,若计算的和原先的不一致,则说明接收到的指纹头升级数据包不正确。按照数据包从大到小的顺序校验,有利于云服务器重新发送对应的指纹头升级数据包,降低二次出错的发生率。

优选地,所述网关用于转发指纹头升级数据包至所述云锁主体时,记录当前的偏移地址;若向云锁主体发送指纹头升级数据包时云锁主体发生断电,则记录断电时的偏移地址;当云锁主体再次上电时,网关从断电时的偏移地址起向云锁主体继续发送指纹头升级数据包;

所述云锁主体的主控模块用于若接收指纹头升级数据包时发生断电,则重新启动并进入操作界面;

还用于若向指纹头发送指纹头升级数据包时发生断电,则停止发送指纹头升级数据包;待再次上电时,将所有指纹头升级数据包重新发送至指纹头。

网关下发的指纹头升级数据包里都有记录当前的偏移地址,比如当前偏移地址48,下一包有效升级数据是48个字节,则下一包的数据的偏移地址是96,通过记录这个偏移地址,这就是断点续传的原理。云锁主体再次上电时,网关从断电时的偏移地址起向云锁主体继续发送指纹头升级数据包,实现了断点续传的功能,无需重新开始发送,节省升级数据的传输时间。

而若云锁主体向指纹头发送指纹头升级数据包时云锁主体发生断电,由于外部flash存储器存储了所有指纹头升级数据包,通过串口传输数据也很快,因此云锁主体再次上电时,云锁主体可将所有指纹头升级数据包重新发送至指纹头,避免漏发、错发的情况。

实施例3

本实施例的指纹头可在线升级的智能云锁,如图1所示,云锁主体设有主控模块和外部flash存储器,云锁主体、网关和云服务器通过无线通信网络连接,所述指纹头和云锁主体通过串口有线连接;使用实施例1所述的智能云锁的指纹头在线升级方法对所述指纹头进行在线升级。

所述指纹头可在线升级的智能云锁,可实现指纹头的在线升级,无需将指纹头拆卸下来并用专门工件进行升级,从而可通过无线通信网络对指纹头进行升级和软件修复,方便快捷,节省大量的人力物力,实现指纹头升级的线上管理。

所述云锁主体设有主控模块和外部flash存储器,主控模块将接收的指纹头升级数据包写入外部flash存储器,从而升级期间用户可以正常操作所述智能云锁,即指纹头升级期间,用户仍可以开锁、关锁等操作,避免将指纹头升级数据包直接拷贝到云锁主体的内部存储器中而使用户无法开锁。所述指纹头和云锁主体通过串口有线连接,即指纹头通过串口来接收指纹头升级数据包,升级速度快,200kbytes的数据2分钟就可以升级完毕,不占用用户指纹头的开锁时间,避免因指纹头升级时间久而无法使用指纹开锁。

采用两次校验,即云锁主体的主控模块对接收的指纹头升级数据包进行校验,先确保无线接收的指纹头升级数据包是正确的,和指纹头对指纹头升级数据包进行校验,还需确保传输给指纹头的指纹头升级数据包和外部flash存储器存储的是一致的,大大地提高升级可靠性,防止升级中途因数据错误而要重新升级。两次校验完成后,主控模块向云服务器发送升级结束指令,云服务器结束指纹头升级数据包的发送任务。

采用双备份代码,即指纹头升级数据包先存储于外部flash存储器,校验正确也发送至指纹头存储,指纹头升级过程中若一份代码出现异常,可以切换至外部flash存储器存储的该份代码,从而避免升级过程中出现死机的情况。

以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

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