本发明涉及空中升级技术领域,更具体地,本发明涉及一种空中升级方法、装置、中心设备及外围设备。
背景技术:
近年来穿戴类设备和智能家居设备层出不穷,穿戴类设备和智能家居设备的功能更是越来越丰富,相应升级包的大小也就越来越大,这些外围设备通过中心设备进行空中升级花费的时间越来越影响到消费者的用户体验,因此升级速度成为衡量一个产品的重要指标之一。现有市面上外围设备的空中升级采用的都是通过手机或者电脑等中心设备发送固定大小传输包的方式,但是某些手机或者电脑可以支持发送很大的数据包,这就在很大程度上限制了此类产品的升级时间,极大的降低了用户体验。
技术实现要素:
本发明的一个目的是提供一种动态的更改空中升级时中心设备传输升级数据的速率的新技术方案。
根据本发明的第一方面,提供了一种用于中心设备的空中升级方法,包括:
向所述中心设备扫描到蓝牙广播数据的外围设备发起连接;
接收所述外围设备发送的所述外围设备接受的MTU值作为第一MTU值;
检测所述中心设备支持的MTU值作为第二MTU值;
比较所述第一MTU值与所述第二MTU值的大小,将较小的MTU值作为当前MTU值;
根据所述当前MTU值确定当前传输速率;
按照所述当前传输速率向所述外围设备发送升级数据。
可选的是,所述空中升级方法还包括:
判断所述中心设备的型号是否为预先存储的设定型号,如是,则将对应所述设定型号的设定传输速率作为所述当前传输速率;如否,则根据所述当前MTU值确定所述当前传输速率。
根据本发明的第二方面,提供了一种用于外围设备的空中升级方法,包括:
向连接的中心设备发送所述外围设备接受的MTU值;
接收所述中心设备发送的升级数据;
根据所述升级数据进行升级。
根据本发明的第三方面,提供了一种用于中心设备的空中升级装置,包括:
连接模块,用于向所述中心设备扫描到蓝牙广播数据的外围设备发起连接;
第一接收模块,用于接收所述外围设备发送的所述外围设备接受的MTU值作为第一MTU值;
检测模块,用于检测所述中心设备支持的MTU值作为第二MTU值;
比较模块,用于比较所述第一MTU值与所述第二MTU值的大小,将较小的MTU值作为当前MTU值;
速率确定模块,用于根据所述当前MTU值确定当前传输速率;
第一发送模块,用于按照所述当前传输速率向所述外围设备发送升级数据。
可选的是,所述空中升级装置还包括:
判断模块,用于判断所述中心设备的型号是否为预先存储的设定型号;
所述速率确定模块用于在所述判断模块的判断结果为是的情况下,将对应所述设定型号的设定传输速率作为所述当前传输速率;在所述判断模块的判断结果为否的情况下,根据所述当前MTU值确定所述当前传输速率。
根据本发明的第四方面,提供了一种用于外围设备的空中升级装置,包括:
第二发送模块,用于向连接的中心设备发送所述外围设备接受的MTU值;
第二接收模块,用于接收所述中心设备发送的升级数据;
升级模块,用于根据所述升级数据进行升级。
根据本发明的第五方面,提供了一种中心设备,包括根据本发明第三方面所述的空中升级装置。
根据本发明的第六方面,提供了一种中心设备,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器执行根据本发明第一方面所述的用于中心设备的空中升级方法。
根据本发明的第七方面,提供了一种外围设备,包括根据本发明第四方面所述的用于外围设备的空中升级装置。
根据本发明的第八方面,提供了一种外围设备,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器执行根据本发明第二方面所述的用于外围设备的空中升级方法。
本发明的发明人发现,在现有技术中,存在外围设备的空中升级采用的都是通过中心设备以固定速率传输升级数据的方式,限制了升级时间、降低了用户体验的问题。因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。
本发明的一个有益效果在于,根据中心设备的不同性能,动态的更改中心设备空中升级时升级数据的传输速率,这就在最大程度上发挥了每个中心设备的性能,保证了用户手里的外围设备会根据中心设备以最短的时间完成空中升级,提升用户体验。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1为根据本发明一种空中升级方法的一种实施方式的流程图;
图2为根据本发明一种空中升级系统的一种实施系统的方框原理图;
图3为根据本发明一种中心设备的一种实施结构的方框原理图;
图4为根据本发明一种外围设备的一种实施结构的方框原理图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
外围设备的固件空中升级非常重要,通常是通过中心设备以每帧数据包大小均为固定值的速率向外围设备发送升级数据,外围设备根据接收到的升级数据进行升级。空中升级可以用于修复外围设备缺陷;丰富外围设备功能,增加用户粘性;迭代的产品升级,也有助于快速切入市场,降低整体开发成本。
为了解决现有技术中存在的以固定速率传输升级数据的方式限制了升级时间、降低了用户体验的问题,提供了一种空中升级方法。其中,中心设备例如可以是手机、平板电脑、电脑等能够通过蓝牙发送升级数据的电子产品;外围设备为具有蓝牙功能并且具有升级可能的智能产品,例如可以是智能手环、智能手表、虚拟现实眼镜等可穿戴蓝牙产品,也可以是智能门锁、家电管控系统等智能家居产品。
图1为根据本发明一种空中升级方法的一种实施方式的流程图,图中实线代表中心设备和外围设备各自的实施流程,虚线代表中心设备和外围设备间进行交互的实施流程。
根据图1所示,该空中升级方法包括以下步骤:
步骤S110,中心设备向其扫描到蓝牙广播数据的外围设备发起连接。
蓝牙中有两种角色,即中心设备和外围设备。外围设备工作的第一步就是向外广播数据,广播数据中带有该设备的相关信息。外围设备通过广播被中心设备扫描到,中心设备可以主动连接扫描到的外围设备,外围设备就可以被中心设备连接。
具体的,中心设备向外围设备发起连接时,不需要外围设备对此进行确认,即一般只要中心设备向外围设备发起连接,那么,中心设备和外围设备之间就建立了蓝牙连接,可以进行数据通信。
步骤S120,外围设备向中心设备发送外围设备接受的MTU值作为第一MTU值。
MTU即最大传输单元(Maximum Transmission Unit,MTU),是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。
因为协议数据单元的包头和包尾的长度是固定的,MTU越大,则一个协议数据单元的承载的有效数据就越长,通信效率也越高。MTU越大,传送相同的用户数据所需的数据包个数也越低。
MTU也不是越大越好,因为MTU越大,传送一个数据包的延迟也越大;并且MTU越大,数据包中bit位发生错误的概率也越大。
MTU越大,通信效率越高而传输延迟增大,所以要权衡通信效率和传输延迟选择合适的MTU。
外围设备会将自己接受的MTU值发送至中心设备,该第一MTU值例如可以但不局限于为142,外围设备接受的MTU值为142时足以满足升级时间的要求,且升级数据的传输较为稳定。
步骤S130,中心设备接收该第一MTU值。
步骤S140,中心设备检测其支持的MTU值作为第二MTU值。
中心设备通过升级应用从服务器端获取升级数据的,但是该升级应用通常不能直接获取该中心设备支持的MTU值,而中心设备可以将其支持的MTU值即第二MTU值发送至外围设备,外围设备再将第二MTU值发送至中心设备,这样,升级应用就获取到了该第二MTU值。
中心设备支持的MTU值例如可以是23或者是158。
步骤S150,中心设备比较第一MTU值和第二MTU值的大小,将较小的MTU值作为当前MTU值。
具体的,当第一MTU值小于或者等于第二MTU值时,将第一MTU值作为当前MTU值;当第一MTU值大于或者等于第二MTU值时,将第二MTU值作为当前MTU值。
步骤S160,中心设备根据当前MTU值确定当前传输速率。
传输速率具体可以为每秒传输的有效字节数。每帧数据包中均包括固定长度的包头和包尾,包头和包尾的长度例如可以是3字节,那么,每帧数据包传输的有效字节数就为当前MTU值减去包头和包尾的长度。这样,在当前MTU值为142时,每帧数据包传输的有效字节为142-3=139,在每秒能够传输10帧数据包的情况下,传输速率即每秒传输的有效字节数为1390字节。
步骤S170,中心设备按照当前传输速率向外围设备发送升级数据。
步骤S180,外围设备接收中心设备发送的升级数据。
步骤S190,外围设备根据升级数据进行升级。
这样,通过本发明的空中升级方法,就能够动态调整升级数据的下载速率,在保证所有中心设备都能成功完成对外围设备的升级的前提下,最大限度的发挥中心设备的性能,缩短空中升级的时间,有效提升外围设备的升级效率,提升用户体验,而且可以保证用户如果换了更高性能的中心设备,还能再提高外围产品的升级效率。
在本发明的一个具体实施例中,该空中升级方法还包括:
判断该中心设备的型号是否为预先存储的设定型号,如是,则将对应该设定型号的设定传输速率作为当前传输速率;如否,则执行步骤S160。
有些中心设备即便支持的MTU值例如为142,但是也不能够按照每帧数据包传输的有效字节为142-3发送数据包,因此可以预先将这些中心设备的型号作为设定型号存储在白名单中,并存储对应设定信号的设定传输速率,例如可以设置对应所有设定信号的设定传输速率均为当MTU值为23时对应的传输速率,即最低传输速率。这是因为任意蓝牙设备可以支持的MTU值虽然没有上限,但是必须支持默认的MTU值即23字节。
这样,就能够保证所有中心设备都能成功完成对外围设备的升级,避免出现中心设备无法传输升级数据的问题。
与上述方法相对应的,本发明还提供了一种空中升级系统,该空中升级系统包括用于中心设备的空中升级装置和用于外围设备的空中升级装置。图2为根据本发明一种空中升级系统的一种实施结构的方框原理图。
根据图2所示,该空中升级系统包括用于中心设备的空中升级装置210和用于外围设备的空中升级装置220,其中,空中升级装置210包括连接模块211、第一接收模块212、检测模块213、比较模块214速率确定模块215和第一发送模块216;对应的,空中升级装置220包括第二发送模块221、第二接收模块222和升级模块223。
上述连接模块211用于向中心设备扫描到蓝牙广播数据的外围设备发起连接。
上述第一接收模块212用于接收外围设备发送的外围设备支持的MTU值作为第一MTU值。
上述检测模块213用于检测中心设备支持的MTU值作为第二MTU值。
上述比较模块214用于比较第一MTU值与第二MTU值的大小,将较小的MTU值作为当前MTU值。
上述速率确定模块215用于根据当前MTU值确定当前传输速率。
上述第一发送模块216用于按照当前传输速率向外围设备发送升级数据。
第二发送模块221用于向连接的中心设备发送外围设备接受的MTU值。
第二接收模块222用于接收中心设备发送的升级数据。
升级模块223用于根据升级数据进行升级。
进一步地,该空中升级装置210还包括判断模块,该判断模块用于判断中心设备的型号是否为预先存储的设定型号。
在此基础上,上述速率确定模块215用于在判断模块的判断结果为是的情况下,将对应设定型号的设定传输速率作为当前传输速率;在判断模块的判断结果为否的情况下,根据当前MTU值确定当前传输速率。
本发明还提供了一种中心设备,在一方面,该中心设备包括上述用于中心设备的空中升级装置210。
在另一方面,如图3所示,该中心设备300还可以包括处理器302和存储器301,该存储器301用于存储指令,该指令用于控制处理器302进行操作以执行上述用于中心设备的空中升级方法。
该处理器例如可以是中央处理器CPU、微处理器MCU等。该存储器例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。
除此之外,根据图3所示,该中心设备300还包括接口装置303、输入装置304、显示装置305、通信装置306等等。尽管在图3中示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,处理器301、存储器302、通信装置306等。
上述通信装置306例如能够进行有有线或无线通信。
上述接口装置303例如包括耳机插孔、USB接口等。
上述输入装置304例如可以包括触摸屏、按键等。
上述显示装置305例如是液晶显示屏、触摸显示屏等。
该中心设备例如可以是手机、平板电脑或者是电脑等可以通过蓝牙发送升级数据的电子产品。
本发明还提供了一种外围设备,根据一方面,该外围设备包括本发明的用于外围设备的空中升级装置220。
图4为根据本发明另一方面的外围设备的实施结构的方框原理图。
根据图4所示,该外围设备400包括蓝牙芯片403、存储器401和处理器402,该存储器401用于存储指令,该指令用于控制处理器402进行操作以执行上述用于外围设备的空中升级方法,蓝牙芯片403用于进行蓝牙广播,以使外围设备与中心设备建立连接,通过蓝牙进行数据通信。
该外围设备为具有蓝牙功能并且具有升级可能的智能产品,例如可以是智能手环、智能手表、虚拟现实眼镜等可穿戴蓝牙产品,也可以是智能门锁、家电管控系统等智能家居产品。
上述各实施例主要重点描述与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分相互参见即可,每个实施例重点说明的都是与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。另外,对于装置实施例而言,由于其是与方法实施例相对应,所以描述得比较简单,相关之处参见方法实施例的对应部分的说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的。
本发明可以是装置、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。