本发明涉及云台技术领域,尤其涉及一种云台固件升级方法及系统。
背景技术
随着手持云台的普遍使用,基于手持云台的功能也将越来越多,当出现新的功能时,有时需要对云台主板和驱动板进行相应的升级才可与相应的app进行配套使用,对于已经出售的手持云台就需要提供相应的升级功能。而在升级的过程中很有可能会出现各种意外情况的发生,比如手机或者云台突然没电了,升级的手机突然有急用但又想继续进行升级等等,但现有技术的云台在升级过程中无法处理意外情况的发生,升级中断后只能重新进行升级,升级效率低下。
由此可见,使云台在固件升级过程中能应对各种突发情况以继续升级,成为本领域技术人员亟待解决的技术问题。
技术实现要素:
本发明针对现有技术中存在的问题,提供了一种云台固件升级方法及系统,能够使云台在固件升级中断后继续未完成的升级,有效提高升级效率和稳定性。
本发明就上述技术问题而提出的技术方案如下:
一方面,本发明提供一种云台固件升级方法,包括:
在云台固件升级中断后,云台向用户终端发送固件数据请求;所述固件数据请求包括丢失的帧号;
所述用户终端向所述云台发送设备信息请求,使所述云台反馈云台设备信息;
所述用户终端获取所述云台设备信息所对应的最新固件数据,并将所述最新固件数据中所述丢失的帧号所对应的帧数据发送给所述云台,使所述云台固件继续升级。
进一步地,所述用户终端获取所述云台设备信息所对应的最新固件数据,具体包括:
所述用户终端检测本终端中是否具有所述云台设备信息所对应的最新固件数据;
若是,则获取所述最新固件数据;
若否,则从所述服务器中下载所述云台设备信息所对应的最新固件数据。
进一步地,所述云台固件升级方法还包括:
在云台固件升级中断前,用户终端向所述云台发送设备信息请求,使所述云台反馈云台设备信息;所述云台设备信息包括云台类型和固件版本号;
所述用户终端从服务器中获取所述云台类型所对应的最新固件版本号,在检测到所述固件版本号与所述最新固件版本号不同时,从所述服务器中下载所述最新固件版本号所对应的最新固件数据,并向所述云台发送升级指令;所述升级指令包括所述最新固件数据的大小;
所述云台根据所述最新固件数据的大小获取所述最新固件数据的帧数,并依次向所述用户终端发送每帧的固件数据请求;所述每帧的固件数据请求包括本帧的帧号;
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中所述帧号所对应的帧数据发送给所述云台,使所述云台固件升级。
进一步地,所述云台包括与所述用户终端进行通信连接的主控板;所述固件版本号包括主控板版本号;
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中所述帧号所对应的帧数据发送给所述云台,使所述云台固件升级,具体包括:
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中所述帧号所对应的帧数据发送给所述主控板,使所述主控板升级。
进一步地,所述云台包括依次串联的主控板、第一驱动板、第二驱动板和第三驱动板;所述固件版本号包括驱动板版本号;
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中所述帧号所对应的帧数据发送给所述云台,使所述云台固件升级,具体包括:
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中所述帧号所对应的帧数据发送给所述主控板;
所述主控板将所述帧数据发送给所述第一驱动板,并通过所述第一驱动板发送给所述第二驱动板,以及通过所述第一驱动板和所述第二驱动板发送给所述第三驱动板,使所述第一驱动板、所述第二驱动板和所述第三驱动板升级。
另一方面,本发明提供一种云台固件升级系统,包括云台和用户终端;
所述云台用于在固件升级中断后,向所述用户终端发送固件数据请求;所述固件数据请求包括丢失的帧号;
所述用户终端用于向所述云台发送设备信息请求,使所述云台反馈云台设备信息;
所述用户终端还用于获取所述云台设备信息所对应的最新固件数据,并将所述最新固件数据中所述丢失的帧号所对应的帧数据发送给所述云台,使所述云台固件继续升级。
进一步地,所述用户终端具体用于检测本终端中是否具有所述云台设备信息所对应的最新固件数据;若是,则获取所述最新固件数据;若否,则从所述服务器中下载所述云台设备信息所对应的最新固件数据。
进一步地,所述用户终端还用于在云台固件升级中断前,向所述云台发送设备信息请求,使所述云台反馈云台设备信息;所述云台设备信息包括云台类型和固件版本号;
所述用户终端还用于从服务器中获取所述云台类型所对应的最新固件版本号,在检测到所述固件版本号与所述最新固件版本号不同时,从所述服务器中下载所述最新固件版本号所对应的最新固件数据,并向所述云台发送升级指令;所述升级指令包括所述最新固件数据的大小;
所述云台还用于根据所述最新固件数据的大小获取所述最新固件数据的帧数,并依次向所述用户终端发送每帧的固件数据请求;所述每帧的固件数据请求包括本帧的帧号;
所述用户终端还用于每接收到一帧的固件数据请求,则将所述最新固件数据中所述帧号所对应的帧数据发送给所述云台,使所述云台固件升级。
进一步地,所述云台包括与所述用户终端进行通信连接的主控板;所述固件版本号包括主控板版本号;
所述用户终端具体用于每接收到一帧的固件数据请求,则将所述最新固件数据中所述帧号所对应的帧数据发送给所述主控板,使所述主控板升级。
进一步地,所述云台包括依次串联的主控板、第一驱动板、第二驱动板和第三驱动板;所述固件版本号包括驱动板版本号;
所述用户终端具体用于每接收到一帧的固件数据请求,则将所述最新固件数据中所述帧号所对应的帧数据发送给所述主控板;
所述主控板用于将所述帧数据发送给所述第一驱动板,并通过所述第一驱动板发送给所述第二驱动板,以及通过所述第一驱动板和所述第二驱动板发送给所述第三驱动板,使所述第一驱动板、所述第二驱动板和所述第三驱动板升级。
本发明实施例提供的技术方案带来的有益效果是:
在云台固件升级中断后,云台向用户终端发送包含丢失帧号的固件数据请求,用户终端获取云台升级所需的最新固件数据,并将最新固件数据中丢失的帧号所对应的帧数据反馈给云台,使云台继续未完成的升级,无需重新升级,有效提高升级效率和稳定性;在驱动板升级时,将最新固件数据发送给三个驱动板,以便同时对三个驱动板升级,进一步提高升级效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的云台固件升级方法的流程示意图;
图2是本发明实施例一提供的云台固件升级方法中的帧数据的结构示意图;
图3是本发明实施例一提供的云台固件升级方法中云台的结构示意图;
图4是本发明实施例一提供的云台固件升级方法中云台与用户终端的结构示意图;
图5是本发明实施例一提供的云台固件升级方法的具体流程示意图;
图6是本发明实施例二提供的云台固件升级系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种云台固件升级方法,参见图1,该方法包括:
s1、在云台固件升级中断后,云台向用户终端发送固件数据请求;所述固件数据请求包括丢失的帧号;
s2、所述用户终端向所述云台发送设备信息请求,使所述云台反馈云台设备信息;
s3、所述用户终端获取所述云台设备信息所对应的最新固件数据,并将所述最新固件数据中所述丢失的帧号所对应的帧数据发送给所述云台,使所述云台固件继续升级。
需要说明的是,在云台固件升级过程中,若出现云台未收到数据等数据丢失情况,或者出现用户终端停止运行、更换用户终端、云台关机重启等中断升级的情况,云台重新请求丢失的帧数据,向当前与云台通信的用户终端发送丢失的帧数据所对应的帧号。用户终端对于云台请求的帧数据不会立即响应,而是向云台发送设备信息请求,获得云台相应的设备信息,以便根据云台的设备信息重新获取相应的最新固件数据,在获取到最新固件数据后再响应云台的请求,将最新固件数据中丢失的帧号所对应的帧数据发送给云台,使云台继续未完成的固件升级。例如,在云台固件升级到30%时,升级中断,在中断修复后,从30%开始接着升级。采用这种应答机制保障了升级数据的完整性和可靠性,且支持断点续传,能够区分云台的不同类型,并对升级过程中的突发情况进行处理,保证突发情况下升级功能的正常运行,而不依赖于用户终端的款型和平台,有效提高升级效率和稳定性。
进一步地,所述用户终端获取所述云台设备信息所对应的最新固件数据,具体包括:
所述用户终端检测本终端中是否具有所述云台设备信息所对应的最新固件数据;
若是,则获取所述最新固件数据;
若否,则从所述服务器中下载所述云台设备信息所对应的最新固件数据。
需要说明的是,在用户终端获取云台设备信息后,检查云台设备信息所对应的最新固件数据是否下载到本地,若本地具有该最新固件数据,则直接获取该最新固件数据;若本地不具有该最新固件数据,则从服务器上下载该最新固件数据,从而使升级操作得以继续进行。
进一步地,所述云台固件升级方法还包括:
在云台固件升级中断前,用户终端向所述云台发送设备信息请求,使所述云台反馈云台设备信息;所述云台设备信息包括云台类型和固件版本号;
所述用户终端从服务器中获取所述云台类型所对应的最新固件版本号,在检测到所述固件版本号与所述最新固件版本号不同时,从所述服务器中下载所述最新固件版本号所对应的最新固件数据,并向所述云台发送升级指令;所述升级指令包括所述最新固件数据的大小;
所述云台根据所述最新固件数据的大小获取所述最新固件数据的帧数,并依次向所述用户终端发送每帧的固件数据请求;所述每帧的固件数据请求包括本帧的帧号;
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中相应帧号所对应的帧数据发送给所述云台,使所述云台固件升级。
需要说明的是,在升级之前,云台连接用户终端,用户终端一般为手机,其连接方式一般为蓝牙连接,用户终端向云台发送设备信息请求,获得云台类型和相应的固件版本号,当固件版本号小于服务器中云台类型所对应的最新固件版本号时,用户终端下载最新固件版本号所对应的最新固件数据,并向云台发送包含最新固件数据大小的升级指令,云台根据最新固件数据的大小即可获知需要将最新固件数据分为多少帧进行请求。其中,云台和用户终端通过蓝牙通信,每帧数据最多发送20个字节。云台从第一帧开始,向用户终端发送固件数据请求,用户终端根据固件数据请求反馈相应的帧数据,云台接收到帧数据后,将帧数据保存在本地,并请求下一帧数据。若云台未接收到用户终端反馈的帧数据,则每隔500ms继续请求该帧数据,直到请求到该帧数据为止。
其中,帧数据的格式如图2所示,包括:
帧头:一帧数据的开始标志;
目标地址:消息接收者地址;
源地址:消息发送者地址;
数据长度n:有效数据的长度。
有效数据:有效载荷,有效数据的第一个字节一般是消息id,之后的若干个字节是与该消息id相对应的数据。
校验位:目的地址到校验位之前的所有字节求和的低8位。
进一步地,所述云台包括与所述用户终端进行通信连接的主控板;所述固件版本号包括主控板版本号;
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中相应帧号所对应的帧数据发送给所述云台,使所述云台固件升级,具体包括:
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中相应帧号所对应的帧数据发送给所述主控板,使所述主控板升级。
进一步地,所述云台包括依次串联的主控板、第一驱动板、第二驱动板和第三驱动板;所述固件版本号包括驱动板版本号;
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中相应帧号所对应的帧数据发送给所述云台,使所述云台固件升级,具体包括:
所述用户终端每接收到一帧的固件数据请求,则将所述最新固件数据中相应帧号所对应的帧数据发送给所述主控板;
所述主控板将所述帧数据发送给所述第一驱动板,并通过所述第一驱动板发送给所述第二驱动板,以及通过所述第一驱动板和所述第二驱动板发送给所述第三驱动板,使所述第一驱动板、所述第二驱动板和所述第三驱动板升级。
需要说明的是,云台主要由三个驱动模块、手柄、夹持装置、电池、若干个led灯、按键组成,每一个驱动模块分别有一个驱动板和一个马达组成。其中,主控板21、第一驱动板22、第二驱动板23、第三驱动板24和夹持装置25如图3所示,主控板21位于手柄位置处,夹持装置25用于夹持拍摄设备,拍摄设备中安装有与云台相配套的应用程序app,通过app和按键的使用,可以控制云台拍照、摄像,其中,拍照有多种模式,例如360度环拍,720度环拍等。在智能控制算法的控制下,使用该云台可以拍摄出高质量的画面,最大程度的减少抖动。
云台固件升级包括对主控板和三个驱动板进行升级,其中,用户终端、主控板和三个驱动板的连接方式如图4所示。用户终端与主控板通过蓝牙通讯,主控板和三个驱动板之间的通讯方式属于串型通讯,优选为uart(universalasynchronousreceiver/transmitter,通用异步收发传输器)通讯。
用户终端、主控板、第一驱动板、第二驱动板和第三驱动板所分配的地址分别为20、10、11、12、13,三个驱动板共有的地址为14。由于每一帧数据都包含了发送者和接收者的地址,使得帧数据能有效在用户终端、主控板和三个驱动板之间传递数据。在用户终端、主控板和三个驱动板通讯过程中,主控板接收用户终端发送的消息,若该消息的目的地址是10,则主控板解析并处理该消息;若该消息的目的地址是11、12、13、14,则主控板将该消息转发给第一驱动板,第一驱动板再根据相应的目的地址进行处理或转发。主控板接收到第一驱动板发送的消息,若该消息的目的地址是10,则主控板解析并处理该消息;若该消息的目的地址是20,则主控板将该消息转发给用户终端。若用户终端或者主控板需要发送消息到三个驱动板,则选择目的地址为14。
在实际应用中,主控板把flash分为三个存储空间,第一个存储空间存储引导程序,即bootloader,该bootloader程序在云台出厂后不会改变;第二个存储空间存储应用程序app,即可能需要更新升级的程序;第三个存储空间存储用户参数以及一些出厂配置信息,例如云台设备信息、appneedupgrade(记录固件是否需要升级的参数)等。程序上电后,首先运行bootloader程序,进行一些必要的初始化,然后读取appneedupgrade参数,如果该参数等于1,就表明需要升级,否则就调至app程序。bootloader接收到用户终端反馈的最新固件数据后,将最新固件数据写入flash的第二存储空间,当收到的所有最新固件数据写入到第二存储空间时,表明升级完成。在升级完成后,程序跳转到第二存储空间,以运行app程序,app程序检测到appneedupgrade参数为1时,将appneedupgrade参数修改为0,使得云台在下次上电时不再进行升级。
另外,用户终端还可以为计算机,计算机通过usb接口与云台连接,计算机通过应用程序给云台固件升级的流程与使用手机进行升级的流程相同。如果云台同时与手机和计算机连接,则云台选择计算机进行升级。
参见图5,是本发明实施例提供的云台固件升级方法的具体流程示意图,该方法包括:
s501、蓝牙连接。将云台与手机通过蓝牙进行连接。
s502、判断是否已连接。若云台与手机已连接,则执行步骤s503,若云台与手机还未连接,则返回步骤s501。
s503、手机发送设备信息请求。手机向云台发送设备信息请求。
s504、云台回复设备信息请求。云台根据设备信息请求向手机反馈包含云台版本号的云台设备信息。
s505、判断是否已是最新版本。手机判断云台反馈的云台版本号是否为最新版本号;若是,则升级结束,若否,则执行步骤s506。
s506、手机从服务器上下载最新固件数据。
s507、手机发送升级指令。
s508、主控板进入升级模式。
s509、主控板请求最新固件数据描述信息。
s510、手机发送文件描述信息,包括固件大小消息。
s511、主控板请求一帧固件数据。
s512、手机发送主控板请求的对应帧号的固件数据。
s513、判断是否是最后一帧数据;若是,则升级结束,若否,则返回步骤s511。
本发明实施例在云台固件升级中断后,云台向用户终端发送包含丢失帧号的固件数据请求,用户终端获取云台升级所需的最新固件数据,并将最新固件数据中丢失的帧号所对应的帧数据反馈给云台,使云台继续未完成的升级,无需重新升级,有效提高升级效率和稳定性;在驱动板升级时,将最新固件数据发送给三个驱动板,以便同时对三个驱动板升级,进一步提高升级效率。
实施例二
相应地,本发明实施例还提供了一种云台固件升级系统,能够执行实施例一种所有流程。参见图6,该系统包括云台61和用户终端62;
所述云台61用于在固件升级中断后,向所述用户终端42发送固件数据请求;所述固件数据请求包括丢失的帧号;
所述用户终端62用于向所述云台61发送设备信息请求,使所述云台61反馈云台设备信息;
所述用户终端62还用于获取所述云台设备信息所对应的最新固件数据,并将所述最新固件数据中所述丢失的帧号所对应的帧数据发送给所述云台,使所述云台固件继续升级。
进一步地,所述用户终端具体用于检测本终端中是否具有所述云台设备信息所对应的最新固件数据;若是,则获取所述最新固件数据;若否,则从所述服务器中下载所述云台设备信息所对应的最新固件数据。
进一步地,所述用户终端还用于在云台固件升级中断前,向所述云台发送设备信息请求,使所述云台反馈云台设备信息;所述云台设备信息包括云台类型和固件版本号;
所述用户终端还用于从服务器中获取所述云台类型所对应的最新固件版本号,在检测到所述固件版本号与所述最新固件版本号不同时,从所述服务器中下载所述最新固件版本号所对应的最新固件数据,并向所述云台发送升级指令;所述升级指令包括所述最新固件数据的大小;
所述云台还用于根据所述最新固件数据的大小获取所述最新固件数据的帧数,并依次向所述用户终端发送每帧的固件数据请求;所述每帧的固件数据请求包括本帧的帧号;
所述用户终端还用于每接收到一帧的固件数据请求,则将所述最新固件数据中相应帧号所对应的帧数据发送给所述云台,使所述云台固件升级。
进一步地,所述云台包括与所述用户终端进行通信连接的主控板;所述固件版本号包括主控板版本号;
所述用户终端具体用于每接收到一帧的固件数据请求,则将所述最新固件数据中相应帧号所对应的帧数据发送给所述主控板,使所述主控板升级。
进一步地,所述云台包括依次串联的主控板、第一驱动板、第二驱动板和第三驱动板;所述固件版本号包括驱动板版本号;
所述用户终端具体用于每接收到一帧的固件数据请求,则将所述最新固件数据中相应帧号所对应的帧数据发送给所述主控板;
所述主控板用于将所述帧数据发送给所述第一驱动板,并通过所述第一驱动板发送给所述第二驱动板,以及通过所述第一驱动板和所述第二驱动板发送给所述第三驱动板,使所述第一驱动板、所述第二驱动板和所述第三驱动板升级。
本发明实施例在云台固件升级中断后,云台向用户终端发送包含丢失帧号的固件数据请求,用户终端获取云台升级所需的最新固件数据,并将最新固件数据中丢失的帧号所对应的帧数据反馈给云台,使云台继续未完成的升级,无需重新升级,有效提高升级效率和稳定性;在驱动板升级时,将最新固件数据发送给三个驱动板,以便同时对三个驱动板升级,进一步提高升级效率。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。