应用于遥控装置的软件升级方法及遥控装置与流程

文档序号:22554859发布日期:2020-10-17 02:35阅读:216来源:国知局
应用于遥控装置的软件升级方法及遥控装置与流程

本申请涉及电子设备技术领域,尤其涉及一种应用于遥控装置的软件升级方法及遥控装置。



背景技术:

遥控装置是显示设备,例如电视机,必不可少的控制设备之一,在实际应用中,为了获得更好的使用性能,常常需要对遥控装置进行软件升级。

但是,随着蓝牙技术的不断发展以及人们需求的不断增加,基于蓝牙的遥控装置开始普遍应用于显示设备,基于蓝牙的遥控装置上集成越来越多的扩展功能模块,这些扩展功能模块具有独立的功能。然而,如何对这些扩展功能模块进行软件升级,当前未有可行方案。



技术实现要素:

本申请实施例提供一种应用于遥控装置的软件升级方法及遥控装置,以实现遥控装置的扩展功能模块的软件升级。

第一方面,本申请实施例提供一种遥控装置,包括:主控制器以及辅控制器;

所述主控制器用于确定是否对所述遥控装置进行软件升级,以及确定进行软件升级时,从与所述遥控装置连接的显示设备获取相应的升级数据包,所述升级数据包包括所述辅控制器对应的第一升级文件;

所述辅控制器用于从所述主控制器获取所述第一升级文件,并根据获取的所述第一升级文件对所述辅控制器进行软件升级。

第二方面,本申请实施例提供一种软件升级方法,该方法应用于遥控装置,所述遥控装置包括:主控制器以及辅控制器;所述方法包括:

所述主控制器确定对所述遥控装置进行软件升级时,从与所述遥控装置连接的显示设备获取相应的升级数据包,所述升级数据包包括所述辅控制器对应的第一升级文件;

所述辅控制器从所述主控制器获取所述第一升级文件;

所述辅控制器根据所述第一升级文件对所述辅控制器进行软件升级。

本申请实施例提供一种应用于遥控装置的软件升级方法及遥控装置,其中,该方法包括:主控制器确定进行软件升级时,从与遥控装置连接的显示设备获取相应的升级数据包,升级数据包包括辅控制器对应的第一升级文件;辅控制器从主控制器获取第一升级文件,并根据获取的第一升级文件对辅控制器进行软件升级。本申请中,扩展功能模块的辅控制器通过主功能模块的软件升级流程获取扩展功能模块对应的第一升级文件,进而扩展功能模块根据获取的第一升级文件进行软件升级,通过多设备嵌套升级的方式,实现了扩展功能模块的软件升级。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1a为本申请一实施例提供的显示设备与遥控装置之间操作场景的示意图;

图1b为本申请一实施例提供的遥控装置的配置框图;

图2为本申请一实施例提供的遥控装置的结构示意图;

图3a为本申请另一实施例提供的遥控装置的结构示意图;

图3b为本申请另一实施例提供的遥控装置的结构示意图;

图4为本申请一实施例提供应用于遥控装置的软件升级方法的流程图;

图5为本申请另一实施例提供应用于遥控装置的软件升级方法的流程图;

图6为本申请另一实施例提供应用于遥控装置的软件升级方法的流程图;

图7为本申请另一实施例提供的应用于遥控装置的软件升级方法的流程图;

图8为本申请另一实施例提供的应用于遥控装置的软件升级方法的流程图;

图9为本申请另一实施例提供的应用于遥控装置的软件升级方法的流程图;

图10为本申请一实施例提供的主控制器进行软件升级的状态逻辑流程图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1a为本申请一实施例提供的显示设备与遥控装置之间操作场景的示意图。如图1a所示,遥控装置100和显示设备200之间可以有线或无线方式进行通信。

其中,遥控装置100被配置为控制显示设备200,遥控装置100可接收用户输入的操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起着用户与显示设备200之间交互的中介作用。如:用户通过操作遥控装置100上频道加减键,显示设备200响应频道加减的操作。

遥控装置100可以是遥控器100a,包括红外协议通信和/或蓝牙协议通信,及其他短距离通信方式等,通过无线或其他有线方式来控制显示设备200。用户可以通过遥控装置100上按键、语音输入、控制面板输入等输入用户指令,来控制显示设备200。如:用户可以通过遥控装置100上音量加减键、频道控制键、上/下/左/右的移动按键、语音输入按键、菜单键、开关机按键等输入相应控制指令,来实现控制显示设备200的功能。

遥控装置100也可以是智能设备,如移动终端100b、平板电脑、计算机、笔记本电脑等。例如,使用在智能设备上运行的应用程序控制显示设备200。该应用程序通过配置可以在与智能设备关联的屏幕上,通过直观的用户界面(ui)为用户提供各种控制。

示例性的,移动终端100b可与显示设备200安装软件应用,通过网络通信协议实现连接通信,实现一对一控制操作的和数据通信的目的。如:可以使移动终端100b与显示设备200建立控制指令协议,通过操作移动终端100b上提供的用户界面的各种功能键或虚拟按钮,来实现如遥控器100a布置的实体按键的功能。也可以将移动终端100b上显示的音视频内容传输到显示设备200上,实现同步显示功能。

显示设备200可提供广播接收功能和计算机支持功能的网络电视功能。显示设备可以实施为,数字电视、网络电视、互联网协议电视(iptv)等。

显示设备200,可以是液晶显示器、有机发光显示器、投影设备。具体显示设备类型、尺寸大小和分辨率等不作限定。

显示设备200还与服务器300通过多种通信方式进行数据通信。这里可允许显示设备200通过局域网(lan)、无线局域网(wlan)和其他网络进行通信连接。服务器300可以向显示设备200提供各种内容和互动。示例的,显示设备200可以发送和接收信息,例如:接收电子节目指南(epg)数据、接收软件程序更新、或访问远程储存的数字媒体库。服务器300可以一组,也可以多组,可以一类或多类服务器。通过服务器300提供视频点播和广告服务等其他网络服务内容。例如,服务器300还可以向显示设备200提供用于显示设备200进行软件升级的相关升级文件,以及用于遥控装置100进行软件升级的相关升级文件。

图1b为本申请一实施例提供的遥控装置的配置框图。如图1b所示,遥控装置100包括控制器110、存储器120、通信器130、用户输入接口140、输出接口150、供电电源160以及扩展功能模块170。

其中,控制器110包括随机存取存储器(ram)111、只读存储器(rom)112、处理器113、通信接口以及通信总线。控制器110用于控制遥控装置100的运行和操作,以及内部各部件之间的通信协作、外部和内部的数据处理功能。

示例性的,当检测到用户按压在遥控器100a上布置的按键的交互或触摸在遥控器100a上布置的触摸面板的交互时,控制器110可控制产生与检测到的交互相应的信号,并将该信号发送到显示设备200。

存储器120,用于在控制器110的控制下存储驱动和控制遥控装置100的各种运行程序、数据和应用。存储器120,可以存储用户输入的各类控制信号指令。

通信器130在控制器110的控制下,实现与显示设备200之间控制信号和数据信号的通信。如:遥控装置100经由通信器130将控制信号(例如触摸信号或按钮信号)发送至显示设备200上,遥控装置100可经由通信器130接收由显示设备200发送的信号。通信器130可以包括红外信号接口131和射频信号接口132。例如:红外信号接口时,需要将用户输入指令按照红外控制协议转化为红外控制信号,经红外发送模块进行发送至显示设备200。再如:射频信号接口时,需将用户输入指令转化为数字信号,然后按照射频控制信号调制协议进行调制后,由射频发送端子发送至显示设备200。

用户输入接口140,可包括麦克风141、触摸板142、传感器143、按键144等中至少一者,从而用户可以通过语音、触摸、手势、按压等将关于控制显示设备200的用户指令输入到遥控装置100。

输出接口150,通过将用户输入接口140接收的用户指令输出至显示设备200,或者,输出由显示设备200接收的图像或语音信号。这里,输出接口150可以包括led接口151、产生振动的振动接口152、输出声音的声音输出接口153和输出图像的显示器154等。例如,遥控器100a可从输出接口150接收音频、视频或数据等输出信号,并且将输出信号在显示器154上显示为图像形式、在声音输出接口153输出为音频形式或在振动接口152输出为振动形式。

供电电源160,用于在控制器110的控制下为遥控装置100各元件提供运行电力支持。形式可以为电池及相关控制电路。

遥控装置100,还包括:扩展功能模块170,其中,扩展功能模块170为具备独立功能的模块,包括:相应的控制模块172以及传感器组件171。例如:扩展功能模块170为人体感应模块,该人体感应模块例如可以包括能够采集人体的心率、血压、温度等数据的传感器组件;扩展功能模块170能够通过上述传感器组件采集相关的传感器数据,并将采集的传感器数据通过遥控装置100与显示设备200之间的通信链路传输至显示设备200;显示设备200根据接收的传感器数据执行相应的操作,例如,显示设备200根据接收的心率数据确定手持遥控装置100的用户当前心率速度较高,则显示设备200可以通过相应的显示界面向用户发送提醒信息,或者,显示设备200还可以向用户发送语音提醒信息。

在使用过程中,遥控装置100常常需要进行软件更新,传统的方式是显示设备200将升级数据包发送至遥控装置100,遥控装置100通过运行接收的升级数据包进行软件升级。

随着人们需求的不断增加,遥控装置上集成越来越多的扩展功能模块,这些扩展功能模块具备独立的功能,针对这些具备独立的功能的扩展功能模块如何进行软件升级,当前未有可行方案。

因此,本申请提供一种应用于遥控装置的软件升级方法,以实现扩展功能模块的软件升级。本申请提供的应用于遥控装置的软件升级方法的核心思想在于:利用遥控装置中,主功能模块的软件升级技术实现扩展功能模块的软件升级,从而实现多设备嵌套软件升级。

具体地,遥控装置包括主功能模块和扩展功能模块,主功能模块为遥控装置的主要部分,因此,扩展功能模块可通过主功能模块的升级流程,获取扩展功能模块的升级文件,进而扩展功能模块根据相应的升级文件进行软件升级。通过本申请的提供的方法,能够实现多设备嵌套软件升级。

在介绍本申请提供的遥控装置的软件升级方法之前,先对本申请提供的应用于遥控装置的芯片进行详细介绍。

图2为本申请一实施例提供的遥控装置的结构示意图。参照图2所示,本实施例提供的遥控装置300包括:主功能模块310和扩展功能模块320,主功能模块310与扩展功能模块320连接。

其中,主功能模块310包括主控制器311,扩展功能模块320包括辅控制器321。

具体地,主控制器311,例如为微控制单元(microcontrollerunit,mcu),mcu也可以称为单片微型计算机或者单片机等其他名称。主控制器311用于控制主功能模块的运行和操作,以及内部各部件之间的通信协作、外部和内部的数据处理功能,例如,显示设备为电视机时,则主功能模块310为电视机端功能模块,主功能模块310能够实现控制显示设备进行用户界面显示控制、频道切换、遥控装置的软件升级等功能。

其中,在实现遥控装置的软件升级时,主控制器311用于确定是否对遥控装置进行软件升级;以及确定对遥控装置进行软件升级时,从与遥控装置连接的显示设备获取相应的升级数据包。例如,与遥控装置连接的显示设备为电视机时,即主控制器311确定进行软件升级时,从与遥控装置连接的电视机获取相应的升级数据包。

一种可能的实现方式,当显示设备检测到有新的软件数据包时,可以向主控制器311发送软件升级请求命令,其中,软件升级请求命令可以包括最新的升级数据包的软件版本信息;主控制器311根据显示设备发送的软件升级请求命令确定是否对遥控装置进行软件升级。具体地,主控制器311可通过对比遥控装置当前的软件版本和最新的升级数据包的软件版本,从而确定是否对遥控装置进行升级。

扩展功能模块320为具备独立功能的模块,例如:人体感应模块,该人体感应模块例如可以包括能够采集人体的心率、血压、温度等数据的传感器组件;扩展功能模块320能够通过上述传感器组件采集相关的传感器数据,并将采集的传感器数据通过遥控装置与显示设备之间的通信链路传输至显示设备;显示设备根据接收的传感器数据执行相应的操作,例如,显示设备根据接收的心率数据确定手持遥控装置的用户当前心率速度较高,则显示设备可以通过相应的显示界面向用户发送提醒信息,或者,显示设备还可以向用户发送语音提醒信息。

需要说明的是,扩展功能模块320并不限于上述描述的几种,其只要为具备独立功能的模块,均属于本申请的保护范畴。

具体地,扩展功能模块320包括:辅控制器321,该辅控制器321为扩展功能模块320的控制模块,辅控制器321用于控制扩展功能模块320的的运行和操作,以及内部各部件之间的通信协作、外部和内部的数据处理功能,例如,传感数据采集功能、传感器数据的传输、扩展功能模块320的软件升级等功能。示例性地,辅控制器321也可以为mcu,其中,mcu的具体型号以及mcu的规格可根据相应的扩展功能模块320的需求设定,本申请实施例对此不作限制。

其中,在实现扩展功能模块320的软件升级时,辅控制器321用于从主控制器311获取该扩展功能模块320对应的第一升级文件,并根据该第一升级文件对扩展功能模块320进行软件升级。

可选地,本申请实施例提供的遥控装置300可以包括一个或多个扩展功能模块320,本申请实施例中对于扩展功能模块320的数量不作限制。若该遥控装置300包括多个扩展功能模块320时,每个扩展功能模块320包括相应的辅控制器,且每个扩展功能模块320的辅控制器与上述描述的辅控制器321类似,可参照上述辅控制器321的描述,本申请实施例中以遥控装置300包括一个扩展功能模块320为例进行说明。

本实施例中的遥控装置包括:主功能模块和扩展功能模块,主功能模块包括主控制器,扩展功能模块包括辅控制器,主控制器用于判断是否对遥控装置进行软件升级,以及确定对遥控装置进行软件升级时,从与遥控装置连接的显示设备获取相应的升级数据包,升级数据包包括扩展功能模块对应的第一升级文件;辅控制器用于从主控制器获取第一升级文件,并根据第一升级文件对扩展功能模块进行软件升级。本实施例提供的遥控装置,扩展功能模块通过主功能模块的软件升级流程获取扩展功能模块对应的第一升级文件,进而扩展功能模块根据获取的第一升级文件进行软件升级,通过多设备嵌套升级的方式,实现了扩展功能模块的软件升级。

图3a为本申请另一实施例提供的遥控装置的结构示意图。本实施例为图2所示实施例的中辅控制器的内存的结构示意图。

如图3a所示,辅控制器321的内存322包括:第一应用程序区323、第一应用程序备份区324以及第一升级文件暂存区325。

其中,第一应用程序区323用于存储该扩展功能模块当前使用的应用程序;第一应用程序备份区324用于存储该扩展功能模块对应的备份的软件数据包;第一升级文件暂存区325用于存储从主控制器获取的该扩展功能模块对应的第一升级文件。

相应地,在对扩展功能模块进行软件升级时,辅控制器321从主控制器获取第一升级文件,并将获取的第一升级文件存储在第一升级文件暂存区325;接着,辅控制器321根据第一升级文件暂存区325存储的第一升级文件对该扩展功能模块进行软件升级。

一种可能的实现方式,辅控制器321从主控制器获取第一升级文件,并将获取的第一升级文件存储在第一升级文件暂存区325;辅控制器321对第一升级文件暂存区325存储的第一升级文件进行校验,以确定第一升级文件的正确性;可选地,辅控制器321可以对第一升级文件暂存区325存储的第一升级文件进行循环冗余校验(cyclicredundancycheck,crc)。

需要说明的是,在后续实施例中均以循环冗余校验为例进行说明,当然,应理解,在实际应用中,也可以采用其他方式对第一升级文件暂存区中存储的第一升级文件进行校验,本申请实施例对此不作限制。

若辅控制器321确定循环冗余校验通过,则将第一升级文件暂存区325存储的第一升级文件复制到第一应用程序区323;辅控制器321通过运行第一应用程序区323存储的第一升级文件,以对扩展功能模块进行软件升级。

本实施例中,由于第一升级文件由主功能模块复制到第一升级文件暂存区的过程中可能会出现错误,因此,辅控制器321通过对第一升级文件暂存区325中存储的第一升级文件进行循环冗余校验,若循环冗余校验通过,则说明第一升级文件在复制过程中并未出现错误,通过运行正确的第一升级文件,从而提高了扩展功能模块的可靠性。

在一些情况下,若辅控制器321对第一升级文件暂存区中存储的第一升级文件进行校验未通过,且辅控制器321重复执行从主控制器重新获取第一升级文件,并重新进行校验;若重复执行n次,且校验仍未通过,则的辅控制器321可从第一应用程序备份区324获取备份的软件数据包,并通过运行该备份的软件数据包,以对扩展功能模块进行软件升级。

本实施例中,辅控制器重复执行从主控制器重新获取第一升级文件,并重新进行循环冗余校验的操作n次,且仍未得到正确的第一升级文件,因此,为保证扩展功能模块的正常运行,辅控制器从第一应用程序备份区获取并运行备份的软件数据包,从而保证扩展功能模块的可靠性。

一种可能的实现方式,辅控制器321将第一升级文件暂存区325存储的第一升级文件复制到第一应用程序区323之后,还可以对第一应用程序区323存储的第一升级文件进行校验;若校验通过,则辅控制器321运行该第一升级文件,以对扩展功能模块进行软件升级;若校验未通过,则可将第一应用程序区323清空,并从第一升级文件暂存区325重新获取第一升级文件,并重新进行校验。

本实施例中,由于第一升级文件由第一升级文件暂存区复制到第一应用程序区的过程中可能会出现错误,因此,辅控制器321通过对第一升级应用程序区中存储的第一升级文件进行校验,若校验通过,则说明第一升级文件在复制过程中并未出现错误,通过运行正确的第一升级文件,从而提高了扩展功能模块的可靠性。

在一些情况下,若辅控制器321对第一升级应用程序区中存储的第一升级文件进行校验未通过,且辅控制器321重复执行从第一升级文件暂存区325重新获取第一升级文件,并重新进行校验;若重复执行m次,且校验仍未通过,则的辅控制器321可从第一应用程序备份区324获取备份的软件数据包,并通过运行该备份的软件数据包,以对扩展功能模块进行软件升级。

本实施例中,辅控制器重复执行从第一升级文件暂存区重新获取第一升级文件,并重新进行校验的操作m次,且仍未得到正确的第一升级文件,因此,为保证扩展功能模块的正常运行,辅控制器从第一应用程序备份区获取并运行备份的软件数据包,从而保证扩展功能模块的可靠性。

图3b为本申请另一实施例提供的于遥控装置的结构示意图。如图3b所示,本实施例为图2所示实施例的中主控制器的内存的结构示意图。

主控制器311的内存312包括:系统启动引导bootload区313、第二应用程序区314、第二应用程序备份区315以及第二升级文件暂存区316。

其中,所述bootload区313用于存储遥控装置的硬件启动的引导程序,即bootloader程序,该bootloader程序为系统程序的入口;bootload区313的存储空间大小可根据实际需求设定,例如,可以为2kb。

且在bootloader程序中通常会预留第二应用程序备份区315存储的应用程序入口,在一些特殊情况下,遥控装置的系统无法正常运行时,遥控装置重启bootloader程序时可以通过bootloader程序调用第一应用程序备份区存储的应用程序,以保证遥控装置重新恢复到正常运行状态,从而提高遥控装置的可靠性。

第二应用程序区314用于存储所述遥控装置当前使用的应用程序。具体地,第二应用程序区域314用于存储主功能模块当前使用的应用程序。其中,第二应用程序区314的存储空间大小可根据遥控装置当前使用的应用程序的设定,即主功能模块当前使用的应用程序,例如,第二应用程序区314的存储空间大小可以为128kb。

可选地,第二应用程序区314还包括:状态区,该状态区用于存储第二应用程序区存储的应用程序的状态。其中,这里所指的应用程序的状态可以包括:应用程序状态(也可以称为app状态,或者,主app状态)以及软件状态(也可以称为ota状态,或者,主ota状态)。其中,app状态和ota状态分别包括:校验状态、成功状态以及空闲状态。另外,还包括过程状态参数(也可以称为ota状态标志,otaflag等),该ota状态标志包括:正常以及改变两种状态,其中,“正常”表示无需进行软件升级,“改变”表示需要进行软件升级。

第二应用程序备份区315用于存储遥控装置使用的应用程序的备份,其中,第二应用程序备份区315可以在遥控装置出厂时,将遥控装置在出厂时使用的应用程序在此区域进行备份;则相应地,第二应用程序备份区315的存储空间大小可根据遥控装置在出厂时使用的应用程序的设定,例如,可以为128kb。

可选地,第二应用程序备份区315还包括:状态区,该状态区用于存储第二应用程序备份区315存储的备份的应用程序的状态。

需要说明的是,第二应用程序区314具体用于存储主功能模块的应用程序;和第二应用程序备份区315具体用于存储主功能模块的应用程序的备份。

第二升级文件暂存区316用于缓存与遥控装置连接的显示设备发送的升级数据包,第二升级文件暂存区316存储升级数据包后,主控制器311可以对第二升级文件暂存区316中存储的升级数据包进行校验,以确定升级数据包的正确性,在主控制器311对升级数据包校验通过后,可将升级数据包移动至第二应用程序区314,并根据升级数据包进行软件升级。

可选地,第二升级文件暂存区316包括:第三升级文件暂存区和第四升级文件暂存区;其中,第三升级文件暂存区为主控制器311的内存中,主功能模块对应的升级文件暂存区;第四升级文件暂存区为主控制器311的内存中,扩展功能模块对应的升级文件暂存区。

主控制器从显示设备获取升级数据包之后,可将主功能模块对应的第二升级文件存储至第三升级文件暂存区,将扩展功能模块对应的第一升级文件存储至第四升级文件暂存区。

可选地,第二升级文件暂存区还包括:状态区,其中,该状态区用于存储至第二升级文件暂存区的升级数据包的状态。具体地,该状态区具体用于存储主功能模块对应的第二升级文件的状态,以及扩展功能模块对应的第一升级文件的状态。

本实施例中,通过在第二应用程序区、第二应用程序备份区以及第二升级文件暂存区分别设置状态区和数据区,在对主功能模块进行软件升级以及对扩展功能模块进行软件升级时,可根据相应状态区存储的状态信息对相应数据区存储的数据执行相应的操作,保证了软件升级流程正确、可靠的执行。

图4为本申请另一实施例提供的遥控装置的结构示意图。如图4所示,遥控装置包括多个扩展功能模块,图4所示实施例与图3所示实施例的区别在于:第四升级文件暂存区分别包括多个数据区,其中,数据区与扩展功能模块可以相互对应。

示例性地,应用于遥控装置的芯片包括a个不同的扩展功能模块时,第四应用程序区包括a个数据区,a为大于或等于1的整数。其中,数据区与扩展功能模块相互对应,每个数据区用于存储对应的扩展功能模块的第一升级文件。

本实施例中,通过在主控制器中为每个扩展功能模块设置相对应的升级文件暂存区域,之后扩展功能模块可从第四升级文件暂存区中相应的区域获取第一升级文件。

需要说明的是,本申请实施例中涉及的针对第一升级文件、第二升级文件以及升级数据包的校验均可采用循环冗余校验,也可以采用其他校验方式,本申请实施例对此不作限制。

在上述图2至图4所示实施例的基础上,接来下,对本申请实施例提供的应用于遥控装置的软件升级方法进行详细介绍,另外,在下文中涉及的针对第一升级文件、第二升级文件以及升级数据包的校验均以循环冗余校验为例进行说明。

图5为本申请一实施例提供的应用于遥控装置的软件升级方法的流程图。本实施例的方法的执行主体也可以为上述图2至图4任一实施例提供的遥控装置。如图5所示,本实施例的方法包括:

s501、主控制器确定对遥控装置进行软件升级时,从与遥控装置连接的显示设备获取相应的升级数据包,升级数据包包括:辅控制器对应的第一升级文件。

具体地,与遥控装置连接的显示设备可以从相应的服务器端获取遥控装置对应的最新的升级数据包的相关信息,例如,最新的升级数据包的版本信息,该版本信息例如为软件版本号;当显示设备检测到最新的升级数据包的软件版本与显示设备中存储的遥控装置当前的软件版本不一致时,显示设备可以向遥控装置发送软件升级请求命令,其中,软件升级请求命令包括遥控装置对应的最新的升级数据包的版本信息;遥控装置的主控制器根据软件升级请求命令以及当前自身的软件版本,确定是否需要对遥控装置进行软件升级;主控制器若确定需要进行软件升级时,可向显示设备发送反馈信息,以指示显示设备启动软件升级流程。

软件升级流程启动后,遥控装置可通过遥控装置与显示设备之间的通信链路获取升级数据包。例如,遥控装置通过与显示设备之间的蓝牙通信链路获取升级数据包。

s502、辅控制器从主控制器获取所述第一升级文件。

具体地,主控制器根据升级数据包包括的第一升级文件的版本信息以及扩展功能模块当前的软件版本,确定需要对扩展功能模块进行软件升级时,主控制器向辅控制器发送第一升级文件。相应地,辅控制器接收主控制器发送的第一升级文件。

s503、辅控制器根据第一升级文件对辅控制器进行软件升级。

具体地,辅控制器通过运行第一升级文件,从而实现对扩展功能模块进行软件升级。

本实施例中,扩展功能模块通过主功能模块的软件升级流程获取扩展功能模块对应的第一升级文件,进而扩展功能模块根据获取的第一升级文件进行软件升级,通过多设备嵌套升级的方式,实现了扩展功能模块的软件升级。

图6为本申请另一实施例提供的应用于遥控装置的软件升级方法的流程图。如图6所示,本实施例的方法包括:

s601、主控制器确定对遥控装置进行软件升级时,从与遥控装置连接的显示设备获取相应的升级数据包,升级数据包包括:扩展功能模块对应的第一升级文件。

本实施例的步骤s601与图5所示实施例中s501类似,可参照图5所示实施例的详细描述,此处不再赘述。

图5所示实施例中的s502可以包括本实施例的s602至s605。

s602、主控制器获取扩展功能模块当前的软件版本信息。

具体地,主控制器可通过专用的通信接口,例如,i2c、uart、spi等,根据相应的通信协议从扩展功能模块读取扩展功能模块当前的软件版本信息。

s603、主控制器判断辅控制器当前的软件版本与第一升级文件的软件版本是否一致。

若主控制器确定辅控制器当前的软件版本高于第一升级文件的软件版本,则执行s604。

s604、主控制器向辅控制器发送第一升级文件。

相应地,辅控制器接收主控制器发送第一升级文件。

s605、辅控制器将第一升级文件存储至第二升级文件暂存区。

结合图3所示的结构,第一升级文件暂存区为辅控制器的内存中用于缓存辅控制器对应的第一升级文件的存储区域。辅控制器接收主控制器发送的第一升级文件,并将接收的第一升级文件存储至第一升级文件暂存区。

图5所示实施例的s503可以包括本实施例的s606至s609。

s606、辅控制器对第一升级文件暂存区存储的第一升级文件进行循环冗余校验。

若循环冗余校验通过,则执行s607。

若循环冗余校验未通过,则返回执行s604,以使辅控制器重新获取第一升级文件。一种可能的实现方式,若重复执行n次,且循环冗余校验未通过,则结束对扩展功能模块的软件升级。

本步骤的目的在于:确定辅控制器接收的第一升级文件的正确性。具体地,辅控制器可通过对第一升级文件暂存区存储的第一升级文件进行循环冗余校验,以确定辅控制器接收的第一升级文件的正确性。若循环冗余校验通过,则说明第一升级文件由主控制器移动至辅控制器的第一升级文件暂存区的过程中并未出现错误,则执行s607。

s607、辅控制器将第一升级文件暂存区存储的第一升级文件复制到第一应用程序区。

结合图3所示,第一应用程序区为辅控制器的内存中用于辅控制器当前正在使用的应用程序的存储区域。

具体地,若循环冗余校验通过,则确定辅控制器接收的第一升级文件是正确的,可用于辅控制器的软件升级,之后,辅控制器将第一升级文件暂存区存储的第一升级文件复制到第一应用程序区。

s608、辅控制器根据第一应用程序区存储的第一升级文件对辅控制器进行软件升级。

具体地,辅控制器通过运行第一应用程序区域存储的第一升级文件,从而实现对辅控制器进行软件升级。

本实施例中,辅控制器通过主控制器获取第一升级文件,进而辅控制器根据第一升级文件进行软件升级,实现了辅控制器的软件升级。本实施例,通过对第一升级文件暂存区存储的第一升级文件进行校验,以确定第一升级文件暂存区获取的第一升级文件的正确性,保证了扩展功能模块软件升级的可靠性。

可选地,在图6所示实施例的基础上,s608之后,还可以包括:

s609、辅控制器向主控制器发送第一软件升级成功信息。

s610、主控制器根据第一软件升级成功信息,更新辅控制器的软件版本信息。

具体地,辅控制器通过向主控制器发送第一软件升级成功信息,主控制器更新辅控制器的软件版本信息,可以保证对辅控制器进行下一次软件更新时,主控制器能够得到正确的辅控制器的软件版本信息。

图7为本申请另一实施例提供的应用于遥控装置的软件升级方法的流程图。如图7所示,本实施例的方法在图6所示实施例的基础上,第一升级文件由第一升级文件暂存区复制到第一应用程序区后,辅控制器执行以下操作:

s608′、辅控制器对第一应用程序区存储的第一升级文件进行循环冗余校验。

若循环冗余校验通过,则执行s608。

若循环冗余校验未通过,则返回执行s607,以从第一升级文件暂存区重新获取第一升级文件。一种可能的实现方式,若重复执行m次,且循环冗余校验未通过,则执行s609′。

若m次循环冗余校验未通过,则执行s609′至s613′。

s609′、辅控制器从第一应用程序备份区获取备份的软件数据包,并将获取的备份的软件数据包存储至第一应用程序区。

具体地,辅控制器清空第一应用程序区,并从第一应用程序备份区获取备份的软件数据包,并将获取的备份的软件数据包存储至第一应用程序区。

s610′、辅控制器对获取的备份的软件数据包进行循环冗余校验。

若循环冗余校验通过,则执行s611′。

若循环冗余校验未通过,则返回执行s609′。

s611′、辅控制器运行第一应用程序区存储的备份的软件数据包。

具体地,辅控制器运行第一应用程序区中存储的备份的软件数据包,以对辅控制器进行软件升级,即对扩展功能模块进行软件升级。

其中,辅控制器的第一应用程序备份区存储的备份的软件数据包的版本可能是辅控制器在出厂时写入的,也可能是之前某次更新对应的软件版本,本实施例对此不作限制。本步骤中,辅控制器获取第一升级文件失败,则辅控制器通过获取第一应用程序备份区存储的备份的软件数据包,并运行该备份的软件数据包,以保证扩展功能模块的可靠性。

可选地,s611′之后还可以包括:

s612′、辅控制器向主控制器发送第一软件升级失败信息。

s613′、主控制器根据第一软件升级失败信息,更新辅控制器的软件升级状态。

具体地,辅控制器通过向主控制器发送第一软件更新失败信息,其中,第一软件更新失败信息用于指示辅控制器根据第一升级文件进行软件更新失败,主控制器根据第一软件更新失败信息,更新第二应用程序区的状态区中的软件升级状态,以便后续主控制器根据第二应用程序区中存储的辅控制器的软件升级状态进行其他后续操作。之后,主控制器可将第四升级文件暂存区域清空,以便进行下一次软件更新。

在一些情况下,可能还需要对主控制器进行软件更新。下面对主控制器的软件升级流程进行详细介绍。

图8为本申请另一实施例提供的应用于遥控装置的软件升级方法的流程图。如图8所示,本实施例的方法包括:

s701、主控制器确定对遥控装置进行软件升级时,从与遥控装置连接的显示设备获取相应的升级数据包,升级数据包包括:主控制器对应的第二升级文件。

本实施例的步骤s701与图6所示实施例中s601类似,可参照图6所示实施例的详细描述,此处不再赘述。区别在于,升级数据包还包括主控制器对应的第二升级文件。也就是说,升级数据包可以包括第一升级文件和第二升级文件。

s702、主控制器将升级数据包存储至第二升级文件暂存区。

具体地,主控制器将升级数据包中第二升级文件存储至第三升级文件暂存区,并将第一升级文件存储至第四升级文件暂存区。

s703、主控制器对第二升级文件暂存区存储的升级数据包进行循环冗余校验。

若循环冗余校验通过,则执行s704。

若循环冗余校验未通过,则返回执行s701,以从显示设备重新获取升级数据包。一种可能的设计中,若重复执行l次,且循环冗余校验未通过,则结束对遥控装置的软件升级,即结束对主控制器的升级。

其中,l为大于1的整数。

s704、主控制器控制遥控装置重启。

s705、通过bootloader程序,将第二升级文件暂存区存储的第二升级文件复制到第三应用程序区。

具体地,遥控器重启上电后,进入bootloader程序运行,并启动内存(例如,flash)擦写操作,将第二应用程序区清空,同时将第三升级文件暂存区存储的第二升级文件复制到第二应用程序区。

一种可能的实现方式,主控制器将第三升级文件暂存区存储的第二升级文件复制到第二应用程序区之后,执行s707;另一种可能的实现方式,主控制器将第三升级文件暂存区存储的第二升级文件复制到第二应用程序区之后,执行s706,以对第三应用程序区存储的第二升级文件进行循环冗余校验,以确定第三应用程序区存储的第二升级文件的正确性。

s706、主控制器对第二应用程序区存储的第二升级文件进行循环冗余校验。

若循环冗余校验通过,则执行s707。

若循环冗余校验未通过,则返回执行s705。

s707、主控制器运行第二应用程序区存储的第二升级文件,对主控制器进行软件升级。

本实施例中,主控制器确定需要进行软件升级时,从与遥控装置连接的显示设备获取升级数据包,该升级数据包包括主控制器对应的第二升级文件;主控制器根据第二升级文件对主控制器进行软件升级。且本实施例中,主控制器对获取的升级数据包进行循环冗余校验,保证了获取的软件数据包的正确性,从而提高了可靠性;且本实施例中,主控制器获取第二升级文件失败,则辅控制器通过获取第三应用程序备份区存储的备份的软件数据包,并运行该备份的软件数据包,以保证主功能模块的可靠性。

在图8所示实施例的基础上,s707之后,还可以包括:

s708、主控制器向显示设备发送第二软件升级成功信息。

相应地,显示设备接收主控制器发送的第二软件升级成功信息,其中,第二软件升级成功信息中可以包括主控制器当前的软件版本信息,例如,第二软件升级成功信息可以包括第二升级文件的软件版本信息;显示设备根据第二软件升级成功信息,更新主控制器的软件版本信息,以使显示设备能够得到正确的主控制器的软件版本信息。

s709、显示设备根据第二软件升级成功信息,更新主控制器的软件版本信息。

图9为本申请另一实施例提供的应用于遥控装置的软件升级方法的流程图。如图9所示,本实施例的方法在图8所示实施例的基础上,第二升级文件由第三升级文件暂存区复制到第二应用程序区,且对第二应用程序区存储的第二升级文件进行循环冗余校验后,还可以执行以下操作:

s707′、主控制器从第二应用程序备份区获取备份的软件数据包,并将获取的备份的软件数据包存储至第二应用程序区。

具体地,主控制器从第三升级文件暂存区获取第二升级文件,并进行循环冗余校验;若重复执行r次从第三升级文件暂存区获取第二升级文件,且循环冗余校验均未通过,则主控制器将第二应用程序区清空,并从第二应用程序备份区获取备份的软件数据包,并将获取的备份的软件数据包存储至第二应用程序区。

其中,r为大于1的整数。

s708′、主控制器对第二应用程序区存储的备份的软件数据包进行循环冗余校验。

若循环冗余校验通过,则执行s709′。

若循环冗余校验未通过,则返回执行s707′。

s709′、主控制器运行第二应用程序区存储的备份的软件数据包。

其中,第二应用程序备份区存储的备份的软件数据包的版本可能是主控制器在出厂时写入的,也可能是之前某次更新对应的软件版本,本实施例对此不作限制。本步骤中,主控制器获取第二升级文件失败,则主控制器通过获取第二应用程序备份区存储的备份的软件数据包,并运行该备份的软件数据包,以保证主控制器的可靠性。

s710′、主控制器向显示设备发送第二软件升级失败信息。

相应地,显示设备接收主控制器发送的第二软件升级失败信息,其中,第二软件升级失败信息用于指示主控制器根据第二升级文件进行软件升级失败,第二软件升级失败信息中可以包括主控制器当前的软件版本信息,即第三应用程序备份区重新获取备份的软件数据包的软件版本信息;显示设备根据第二软件升级失败信息,更新主控制器的软件版本信息,显示设备能够得到正确的主控制器的软件版本信息。

s711′、显示设备根据第二软件升级失败信息,更新主控制器的软件版本信息。

上述各个实施例所示的技术方案可以单独使用,也可以结合使用,例如,在一些情况下,同时需要对主功能模块和扩展功能模块进行升级时,则可将图5至图9所示实施例结合使用。例如,将图6与图8所示实施例结合使用,以实现更新主控制器和辅控制器的软件升级。

图10为本申请一实施例提供的主控制器进行软件升级的状态逻辑流程图。其中,主控制器在软件升级时,可以通过bootload区中的是三个参数的状态以及一个计数器来控制软件升级的状态以及逻辑。

其中,上述三个参数可以包括:程序状态参数和过程状态参数。

具体地,程序状态参数包括:应用程序状态(也可以称为app状态,或者,主app状态)以及软件状态(也可以称为ota状态,或者,主ota状态)。其中,app状态和ota状态分别包括:校验状态、成功状态以及空闲状态。

另外,过程状态参数(也可以称为ota状态标志,otaflag等),该ota状态标志包括:正常以及改变两种状态,其中,“正常”表示无需进行软件升级,“改变”表示需要进行软件升级。

另外,计数器(otachecknum)用于对软件更新的次数进行检测计数。

以上变量在程序运行的过程中,会在第二应用程序区以及第二应用程序备份区中各进行复制,确保各种意外情况下这些变量的不正常写操作不会造成程序异常。

参照图10所示,

步骤(1):在初始状态下,app状态=成功状态,ota状态=空闲状态,ota状态标志=正常;

步骤(2):主控制器对升级数据包进行下载并进行循环冗余校验,且校验通过后,将ota状态设定为校验状态,并将ota状态标志设定为改变。

步骤(3):遥控装置重启,并加载bootloader程序,如果此时判断ota状态标志为改变,且ota状态为校验状态,则将app状态设定为校验状态,ota状态设定为成功状态;

同时,对第二应用程序区的数据进行擦除操作,并将第三升级文件暂存区的第二升级文件复制到第二应用程序区;

步骤(4):重启系统,计数器加1,如果新的主功能模块的应用程序运行正常,即第二升级文件运行成功,则将app状态设定为成功状态,ota状态设定为空闲状态,ota状态标志设定为正常,计数器清零,主功能模块的软件升级成功;

步骤(5):否则等待程序运行超时重新加载bootloader程序,运行步骤(3),如果连续超时且计数器的值为r,例如r=3,则将ota状态设定为空闲状态,并将第二应用程序备份区存储的备份的软件数据包复制到第二应用程序区,计数器清零,此次对主功能模块的软件升级失败,则返回重复执行步骤(4)。

本申请实施例还提供一种可读存储介质,包括:程序;所述程序被处理器执行时,以执行如上任一实施例所示的应用于遥控装置的软件升级方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

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