固件升级方法、装置及VR头戴式显示器与流程

文档序号:14714027发布日期:2018-06-16 00:58阅读:364来源:国知局
固件升级方法、装置及VR头戴式显示器与流程

本发明涉及电子设备技术领域,具体而言,涉及一种固件升级方法、装置及VR头戴式显示器。



背景技术:

随着VR技术的不断发展,人们对体验要求越来越高,需要对VR设备的固件进行及时升级以改善使用体验。现有的VR一体机分为主机及显示器,由于显示器一端其数据处理能力较弱,内部模块功能划分不明确,导致显示器一端在进行固件升级时效率较低,严重影响使用者体验。因此,如何解决上述问题是目前亟待解决的难题。



技术实现要素:

有鉴于此,本发明的目的在于,提供一种固件升级方法、装置及VR头戴式显示器以解决上述问题。

本发明的实施例提供一种固件升级方法,应用于VR头戴式显示器,所述方法包括:

将所述VR头戴式显示器包括的非易失性存储器划分为固件暂存区、固件参数区、BootLoader区以及固件应用区;

接收主机发送的多个分包数据,将各所述分包数据写入至所述固件暂存区,并更新所述固件参数区的升级标记;

启动所述BootLoader区的BootLoader程序,将所述固件应用区当前的应用固件擦除,并将所述固件暂存区中的分包数据烧写至所述固件应用区以得到更新应用固件;

执行所述更新应用固件以完成固件升级。

可选地,在上述方法中,所述接收主机发送的多个分包数据,将各所述分包数据写入至所述固件暂存区的步骤,包括:

接收主机发送的分包数据,将接收到的分包数据暂存在缓存池;

在所述缓存池已满时,将所述缓存池中暂存的分包数据写入至所述固件暂存区,再继续接收所述主机发送的分包数据并暂存在所述缓存池,直至所述更新应用固件所需的所有分包数据接收并保存完毕为止。

可选地,在上述方法中,所述将各所述分包数据写入至所述固件暂存区的步骤,包括:

将接收到的分包数据暂存在缓存池,在所述更新应用固件所需的所有分包数据接收并暂存完毕后,将所述缓存池中暂存的所有分包数据写入至所述固件暂存区。

可选地,在上述方法中,所述接收主机发送的多个分包数据的步骤之前,所述方法还包括:

在接收到主机发送的固件升级请求后,从当前工作模式切换为升级模式,并向所述主机反馈第一回应报文,以使所述主机返回升级固件信息;

接收所述主机发送的升级固件信息,将所述升级固件信息保存并向所述主机反馈第二回应报文,以使所述主机发送分包数据至所述VR头戴式显示器。

可选地,在上述方法中,所述将各所述分包数据写入至所述固件暂存区的步骤之后,所述方法还包括:

在接收到所述主机发送的数据传输完毕报文后,检测写入至所述固件暂存区中的分包数据的信息是否与接收到的升级固件信息一致,若一致则执行更新所述固件参数区的升级标记的步骤,若不一致,则退出升级模式。

可选地,在上述方法中,所述启动所述BootLoader区的BootLoader程序的步骤之后,所述方法还包括:

读取所述固件参数区的升级标记,在所述升级标记表征为真时,执行将所述固件应用区当前的应用固件擦除的步骤,否则直接跳转至所述固件应用区以执行所述固件应用区当前的应用固件。

可选地,在上述方法中,所述启动所述BootLoader区的BootLoader程序的步骤之后,所述方法还包括:

读取所述固件暂存区中的分包数据,并验证所述分包数据的正确性,若验证通过,则执行将所述固件应用区当前的应用固件擦除的步骤,若验证未通过,则直接跳转至所述固件应用区以执行所述固件应用区当前的应用固件。

本发明另一实施例提供一种固件升级装置,应用于VR头戴式显示器,所述固件升级装置包括:

划分模块,用于将所述VR头戴式显示器包括的非易失性存储器划分为固件暂存区、固件参数区、BootLoader区以及固件应用区;

接收模块,用于接收主机发送的多个分包数据,将各所述分包数据写入至所述固件暂存区,并更新所述固件参数区的升级标记;

启动模块,用于启动所述BootLoader区的BootLoader程序,将所述固件应用区当前的应用固件擦除,并将所述固件暂存区中的分包数据烧写至所述固件应用区以得到更新应用固件;

执行模块,用于执行所述更新应用固件以完成固件升级。

本发明另一实施例提供一种VR头戴式显示器,包括:

存储器;

处理器;及

固件升级装置,包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块,所述固件升级装置包括:

划分模块,用于将VR头戴式显示器包括的非易失性存储器划分为固件暂存区、固件参数区、BootLoader区以及固件应用区;

接收模块,用于接收主机发送的多个分包数据,将各所述分包数据写入至所述固件暂存区,并更新所述固件参数区的升级标记;

启动模块,用于启动所述BootLoader区的BootLoader程序,将所述固件应用区当前的应用固件擦除,并将所述固件暂存区中的分包数据烧写至所述固件应用区以得到更新应用固件;

执行模块,用于执行所述更新应用固件以完成固件升级。

本发明另一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,实现上述的固件升级方法。

本发明实施例提供的固件升级方法、装置及VR头戴式显示器,通过预先将存储介质划分为固件暂存区、固件参数区、BootLoader区以及固件应用区,在接收到主机发送的分包数据时,将分包数据写入至固件暂存区,并更新固件参数区的升级标记。启动BootLoader区的BootLoader程序,将固件应用区当前的应用固件擦除,并将固件暂存区中的分包数据烧写至固件应用区以得到更新应用固件。最终执行更新应用固件以完成固件升级。该固件升级方案,通过对存储介质进行区域划分,各区域分别执行固件升级相关功能,对内部功能化进行了优化,提高了固件升级效率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的固件升级方法的应用场景示意图。

图2为本发明实施例提供的VR头戴式显示器的结构框图。

图3为本发明实施例提供的固件升级方法的流程图。

图4为本发明实施例提供的非易失性存储器区域划分示意图。

图5为本发明实施例提供的固件升级方法的另一流程图。

图6为本发明实施例提供的VR头戴式显示器与主机之间的交互流程示意图。

图7为本发明实施例提供的固件升级装置的功能模块框图。

图标:100-VR头戴式显示器;110-微控制器;120-USB传输控制器;130-通信接口;140-非易失性存储器;150-固件升级装置;151-划分模块;152-接收模块;153-启动模块;154-执行模块;200-主机。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

请参阅图1,为本发明实施例提供的一种固件升级方法的应用场景示意图。该场景包括VR头戴式显示器100和主机200,所述VR头戴式显示器100与所述主机200可以通过无线连接,也可以通过有线连接,其连接需保持稳定可靠。在本实施例中,所述VR头戴式显示器100与所述主机200之间可以通过USB(Universal Serial Bus,通用串行总线)连接,当然也可以通过其他物理连接介质进行连接。在本实施例中,所述主机200可以是与所述VR头戴式显示器100配套的主机200,也可以是其他带有USB接口的桌面计算机。

请参阅图2,所述VR头戴式显示器100包括微控制器110、USB传输控制器120、通信接口130以及非易失性存储器140。所述USB传输控制器120、通信接口130及所述非易失性存储器140与所述微控制器110耦合。所述USB传输控制器120可在所述微控制器110的控制器下通过所述通信接口130实现与所述主机200之间的数据传输及交互。在本实施例中,所述非易失性存储器140与所述微控制器110之间相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。非易失性存储器140中存储有以软件或固件(Firmware)的形式存储于所述非易失性存储器140中的软件功能模块,所述微控制器110通过运行存储在非易失性存储器140内的软件程序以及模块,如本发明实施例中的固件升级装置150,从而执行各种功能应用以及数据处理,即实现本发明实施例中的固件升级方法。

可以理解,图2所示的结构仅为示意,所述VR头戴式显示器100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。

请参阅图3,是本发明实施例提供的一种应用于上述VR头戴式显示器100的固件升级方法的流程图。所应说明的是,本发明提供的方法不以图3及以下所述的具体顺序为限制。下面将对图3中示出的各步骤进行详细说明。

步骤S101,将所述VR头戴式显示器100包括的非易失性存储器140划分为固件暂存区、固件参数区、BootLoader区以及固件应用区。

在本实施例中,为了后续方便对主机200发送的固件分包数据进行存储及处理,提高固件升级效率,可预先将所述VR头戴式显示器100包括的非易失性存储器140划分为四个区:固件暂存区、固件参数区、BootLoader区以及固件应用区,如图4所示。

进一步地,可对各个区域进行功能划分,例如固件暂存区可用于保存新版本固件数据,Bootloader区可引导应用固件启动、完成应用固件更新等任务,固件参数区可用于保存升级所需要的标记值和其他相关数据,固件应用区程序可以响应主机200的获取固件版本、升级开始、升级结束、数据校验等请求。如此,在后续与主机200进行交互以完成固件升级的过程中,各模块可各司其职并相互配合以提高升级效率。

步骤S102,接收主机200发送的多个分包数据,将各所述分包数据写入至所述固件暂存区,并更新所述固件参数区的升级标记。

请参阅图5,在本实施例中,在接收主机200发送的多个分包数据的步骤之前,所述固件升级方法还包括以下步骤:

步骤S201,在接收到主机200发送的固件升级请求后,从当前工作模式切换为升级模式,并向所述主机200反馈第一回应报文,以使所述主机200返回升级固件信息。

步骤S202,接收所述主机200发送的升级固件信息,将所述升级固件信息保存并向所述主机200反馈第二回应报文,以使所述主机200发送分包数据至所述VR头戴式显示器100。

在进行固件升级之前,VR头戴式显示器100的应用固件区中原有的应用固件处于运行中,当VR头戴式显示器100接收到主机200发送的固件升级请求后,将当前工作模式切换为升级模式,同时向所述主机200反馈第一回应报文,以通知所述主机200当前VR头戴式显示器100已升级准备就绪。并且,停止其他的作业流程,以等待接收主机200发送的升级所需的分包数据。

所述主机200在接收到VR头戴式显示器100反馈的表征升级准备就绪的第一回应报文后,向所述VR头戴式显示器100发送升级固件信息。其中,所述升级固件信息包括升级固件数据格式,例如帧头、设备型号、命令字、重发号、包号、总包数、数据长度、数据和校验码。

在本实施例中,可选地,所述帧头为2字节,所述设备型号为1字节,所述命令字为1字节,所述重发号和所述包号均为1字节,所述总包号和所述数据长度均为2字节,所述数据为N字节,即多字节。所述校验码为1字节。其中,所述命令字可用于表示不同命令,所述校验码可用于校验该条报文。

所述VR头戴式显示在接收到主机200发送的升级固件信息后,可利用预设校验方式对所述升级固件信息进行校验,例如和校准或者CRC(Cyclic Redundancy Check)校准,对此本实施例不作具体限制。在校验通过后,VR头戴式显示器100向主机200反馈第二回应报文以表明该条信息已验证成功,以通知所述主机200发送升级所需的分包数据。并且,将接收到的升级固件信息进行存储。在本实施例中,若所述升级固件信息校验失败,则所述VR头戴式显示器100不作任何处理。

所述主机200在接收到VR头戴式显示器100反馈的表征升级固件信息校验通过的第二回应报文后,向所述VR头戴式显示器100发送其请求的分包数据。在本实施例中,固件升级所需的分包数据为多个,VR头戴式显示器100可请求主机200依次发送多个分包数据,例如主机200向VR头戴式显示器100发送第一包分包数据,VR头戴式显示器100获取到主机200发送的第一包分包数据后,将其暂存在VR头戴式显示器100开辟的缓冲池中,再向主机200反馈以请求发送第二包分包数据,直到接收到最后一包分包数据为止。

VR头戴式显示器100接收到分包数据后,将分包数据暂存在缓存池,并实时检测缓存池是否已满。

在一种情形下,所述VR头戴式显示器100依次接收主机200发送的分包数据,并暂存在缓存池中,若接收到的分包数据已占据所述缓存池的所有的存储空间,但固件升级所需的分包数据还未接收完毕,则可先将缓存池中暂存的分包数据写入至所述固件暂存区,再继续接收所述主机200发送的分包数据并暂存在所述缓存池,直至固件升级所需的所有分包数据接收并保存完毕为止。

在另一种情形下,VR头戴式显示器100依次接收主机200发送的分包数据,若当前接收到的分包数据已是最后一包数据,即固件升级所需的所有分包数据已接收完毕,则可直接将当前缓存池中暂存的分包数据全部写入至所述固件暂存区中。

在本实施例中,在将各分包数写入至所述固件暂存区之后,所述固件升级方法还包括以下步骤:

在接收到所述主机200发送的数据传输完毕报文后,检测写入至所述固件暂存区中的分包数据的信息是否与接收到的升级固件信息一致,若一致则执行更新所述固件参数区的升级标记的步骤,若不一致,则退出升级模式。

进一步地,主机200在将所有的分包数据发送至VR头戴式显示器100之后,可发送数据传输完毕报文至VR头戴式显示器100以告知分包数据已发送完毕。VR头戴式显示器100在接收到数据传输报文后,根据上述存储的升级固件信息对接收到的分包数据进行检测,以验证接收到的分包数据的信息是否与升级固件信息一致,例如总包数、数据长度及数据等信息是否一致。若一致,则可继续进行后续流程,若不一致,则退出升级模式,以结束升级过程。

在本实施例中,VR头戴式显示器100在接收完毕分包数据,并对其进行验证之后,可更新所述固件参数区的升级标记,例如将原有的升级标记0更新为升级标记1,以表明已接收到的新的固件数据,需要重启以烧写新的固件。并向主机200反馈回应信息以表明固件升级所需的所有分包数据已接收完毕。

步骤S103,启动所述BootLoader区的BootLoader程序,将所述固件应用区当前的应用固件擦除,并将所述固件暂存区中的分包数据烧写至所述固件应用区以得到更新应用固件。

步骤S104,执行所述更新应用固件以完成固件升级。

在本实施例中,VR头戴式显示器100在将固件升级所需的所有的分包数据写入至固件暂存区后,可启动所述BootLoader区的BootLoader程序,以强制自身微控制器110重新启动。所述VR头戴式显示器100的微控制器110重新启动时,可执行以下步骤:

读取所述固件参数区的升级标记,在所述升级标记表征为真时,执行将所述固件应用区当前的应用固件擦除的步骤,否则直接跳转至所述固件应用区以执行所述固件应用区当前的应用固件。

所述VR头戴式显示器100的微控制器110在重新启动时,可读取所述固件参数区的升级标记,通过固件参数区的升级标记来判定是否已接收到新的固件数据。例如,在所述升级标记为1时,表明当前已接收到新的固件数据,可进行新固件烧写。若升级标记为0,则表明当前没有新的固件数据可烧写。若当前没有新的固件数据,则可直接跳转至所述固件应用区以执行所述固件应用区当前的应用固件,以实现正常工作。

进一步地,若当前接收到了新的固件数据,则可执行以下步骤:

读取所述固件暂存区中的分包数据,并验证所述分包数据的正确性,若验证通过,则执行将所述固件应用区当前的应用固件擦除的步骤,若验证未通过,则直接跳转至所述固件应用区以执行所述固件应用区当前的应用固件。

在本实施例中,在进行新的固件数据的烧写之前还需对固件数据的正确性进行验证,例如,统计分包数据的总包数是否正确,或数据格式是否满足预设格式,或新的固件数据是否适应于VR头戴式显示器100本身的设备型号等。应当理解,还可通过其他方式检测分包数据的正确性,在此不再一一赘述。

若所述固件暂存区中的分包数据验证通过后,可将所述固件应用区当前的应当固件擦除,并且将所述固件暂存区中分包数据烧写至所述固件应用区以得到更新应用固件。

进一步地,VR头戴式显示器100在新的应用固件烧写成功后,跳转至所述固件应用区以执行所述更新应用固件,至此完成固件升级过程。并向所述主机200发送升级完成确认报文,以告知主机200新的应用固件已烧写成功并已完成升级。

为了使本领域技术人员更为清楚地理解本发明所提供的固件升级方案,本实施例中对所述VR头戴式显示器100和所述主机200之间的交互过程进行了描述,请结合参见图6。

主机200在获得新的应用固件后,可检测所述VR头戴式显示器100当前的应用固件版本,在判定VR头戴式显示器100需要进行应用固件升级后,可向所述VR头戴式显示器100发送固件升级请求。VR头戴式显示器100接收到固件升级请求后,从当前工作模式转换为升级模式,并向所述主机200反馈表明升级准备就绪的第一回应报文。所述主机200响应VR头戴式显示器100发送的第一回应报文,并发送升级固件信息至所述VR头戴式显示器100。VR头戴式显示器100接收到升级固件信息后,对升级固件信息进行验证,并在验证通过后,保存所述升级固件信息,并向所述主机200发送第二回应报文。并且所述VR头戴式显示器100向主机200发送请求返回固件升级所需的分包数据的分包数据请求报文。

所述主机200在接收到分包数据请求报文后,依次将多个分包数据发送至VR头戴式显示器100。VR头戴式显示器100将接收到的分包数据暂存在开辟的缓存池中,在缓存池已满或者是已接收到最后一包分包数据后,将缓存池中的分包数据写入至固件暂存区。主机200在发送完固件升级的所有的分包数据后,向VR头戴式显示器100发送数据传输完毕报文,VR头戴式显示器100在接收到后检测固件暂存区中的分包数据是否与存储的固件升级信息一致。若不一致,则退出升级模式。若一致,则启动所述BootLoader区的BootLoader程序以使微控制器110重启。并检测所述固件参数区中的升级标记是否以真,若为真,则再次检测所述固件暂存区中的分包数据是否正确,若正确,则将所述固件应用区当前的应用固件擦除,并将固件暂存区中的分包数据烧写至所述固件应用区以得到更新应用固件。跳转至所述应用固件区执行更新应用固件以完成固件升级。并向所述主机200发送升级完成确认报文,以告知主机200升级完成。

请参阅图7,为本发明实施例提供的一种应用于上述VR头戴式显示器100的固件升级装置150的功能模块框图。所述固件升级装置150包括划分模块151、接收模块152、启动模块153以及执行模块154。

所述划分模块151用于将所述VR头戴式显示器100包括的非易失性存储器140划分为固件暂存区、固件参数区、BootLoader区以及固件应用区。所述划分模块151可用于执行图3中所示的步骤S101,具体的操作方法可参考步骤S101的详细描述。

所述接收模块152用于接收主机200发送的多个分包数据,将各所述分包数据写入至所述固件暂存区,并更新所述固件参数区的升级标记。所述接收模块152可用于执行图3中所示的步骤S102,具体的操作方法可参考步骤S102的详细描述。

所述启动模块153用于启动所述BootLoader区的BootLoader程序,将所述固件应用区当前的应用固件擦除,并将所述固件暂存区中的分包数据烧写至所述固件应用区以得到更新应用固件。所述启动模块153可用于执行图3中所示的步骤S103,具体的操作方法可参考步骤S103的详细描述。

所述执行模块154用于执行所述更新应用固件以完成固件升级。所述执行模块154可用于执行图3中所示的步骤S104,具体的操作方法可参考步骤S104的详细描述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本发明各个实施场景所述的方法。

综上所述,本发明实施例提供的固件升级方法、装置及VR头戴式显示器100,通过预先将存储介质划分为固件暂存区、固件参数区、BootLoader区以及固件应用区,在接收到主机200发送的分包数据时,将分包数据写入至固件暂存区,并更新固件参数区的升级标记。启动BootLoader区的BootLoader程序,将固件应用区当前的应用固件擦除,并将固件暂存区中的分包数据烧写至固件应用区以得到更新应用固件。最终执行更新应用固件以完成固件升级。该固件升级方案,通过对存储介质进行区域划分,各区域分别执行固件升级相关功能,对内部功能化进行了优化,提高了固件升级效率。

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

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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