用于在小存储器设备上安装软件的系统的制作方法

文档序号:12287763阅读:337来源:国知局
用于在小存储器设备上安装软件的系统的制作方法与工艺

本发明涉及在小存储器设备上无线下载和安装计算机程序。例如,小存储器设备可以是电子设备诸如遥控设备,其典型地具有与其他较复杂电子设备诸如智能电话相比的小存储器。



背景技术:

遥控设备可以使用不同的技术与消费者设备交互。众所周知的传统红外技术使遥控设备能够控制消费者设备。遥控设备具有用以发送包括命令代码的红外信号的红外发射机,而消费者设备具有用以接收红外信号并且提取命令代码的红外接收机。响应于命令代码,消费者设备可以执行动作。例如,消费者设备可以是TV并且遥控设备正被用户用来发送使TV切换到下一个频道或提高音量的命令代码。

当代遥控设备(还)可以具有用来与家中的其他设备交互并从主机设备无线地下载用于遥控设备的软件更新的基于无线电的能力。例如,基于无线电的能力可以基于ZigBee RF4CE技术(还参见:http://www.zigbee.org/Specifications/ZigBeeRF4CE/Overview.aspx(ZigBee联盟的网站),如在2014年5月22日被商议的)。软件更新典型地包括用于遥控设备的固件,包括用来与各种设备交互的命令代码的最新数据库。新软件的所述无线下载和安装常见地被称为通过无线下载(OAD)。OAD可以被用来在遥控设备的生产过程期间在遥控设备上接收和安装软件。主机设备可以建立与遥控设备的无线连接,然后向遥控设备无线地发送软件。

然而,在高容量生产过程中在遥控上安装新软件仍是在生产过程中的相对低效率的过程。在其中生产的低成本和高速度是重要的高容量生产过程(诸如遥控设备的生产过程)中情况特别是这样。在使用OAD的新软件的安装期间,需要例如通过使用屏蔽箱来保护主机设备和遥控设备不受附近的其他(遥控)设备的影响以便防止干扰。被与屏蔽箱内部的它自己的主机设备配对的其他遥控设备中的每个可以在它自己的屏蔽箱之内执行它自己的安装。以用于每个设备执行其自己的软件安装的屏蔽箱的使用是麻烦的并且限制生产过程的速度。由于本身下载可能是相对慢的过程的事实,生产过程的低效率被进一步加重。

此外,在存储器(并且因此成本)方面,安装过程是低效率的,因为其在安装过程期间要求附加存储器。新软件的安装要求遥控设备以首先下载并存储新软件在附加存储器中,然后验证下载的软件并且最后盖写(overwrite)在遥控设备的存储器中的现存软件。附加存储器因此被主要用于下载新软件并且在其他时间大部分未使用,这使存储器的使用低效率。存储器的高效使用在诸如遥控设备的小存储器设备的高容量生产过程中具有特别的重要性,其中存储器大小被保持到最小以减小成本和材料清单。



技术实现要素:

目标技术问题是提供与现有技术相比具有提高的效率的用于在小存储器设备上安装软件的系统、方法和设备。

本发明的方面是一种设备,其具有:程序存储器,其是用于包含计算机程序的存储器;启动存储器,其包括被布置用于启动所述设备的启动加载器;处理器,其用于运行计算机程序和启动加载器;接收单元,其用于无线地接收数据分组,计算机程序的部分由相应的数据分组中的至少一些组成,启动加载器被进一步布置用于安装计算机程序,包括:检测数据分组中的一个数据分组,检测是接收所述数据分组的部分;从所述数据分组提取如下中的至少一个(a)计算机程序的部分和与所述部分相关的部分元数据以及(b)与共同形成计算机程序的部分的集合相关的程序元数据;基于所述部分元数据确定程序存储器中的存储器位置;维持表示已被存储在程序存储器中的所提取部分的进度信息;基于进度信息和程序元数据来确定存储所述部分的集合的完成。

例如,设备可以是小存储器设备诸如遥控、电子玩具、可穿戴设备或音乐播放器。本身实际上作为小计算机,设备包括用于执行计算机程序和启动加载器的处理器。设备还包括用于存储计算机程序的程序存储器。设备进一步包括启动存储器,其包括用于启动设备的启动加载器。设备还具有用于接收数据分组的接收单元。

程序存储器可能不具有比存储计算机程序所需要的多得多的可用存储器。例如,程序存储器大到足以包含计算机程序并且同时可能(但不需要)太小而不能还包含计算机程序的附加副本。在后者的情况下,程序存储器因此不能包含计算机程序和计算机程序的附加副本,使得启动加载器不能在盖写程序存储器中的先前安装的计算机程序之前首先下载计算机程序。例如,需要被安装的计算机程序可以包括针对该设备的新固件并且还可以包括更新的设置数据库。

除了其启动设备的典型任务之外,启动加载器被进一步布置成在设备上安装计算机程序。当被处理器执行时,启动加载器可以如下那样起作用。启动加载器使用接收单元来觉察出(sniff for)包括数据分组的无线信号。当数据分组被检测到时,启动加载器可以进一步经由接收单元接收数据分组。启动加载器然后可以从数据分组提取计算机程序的部分和与部分相关的部分元数据。然后,启动加载器可以基于部分元数据来确定程序存储器中用于存储部分的存储器位置。例如,数据分组可以具有包括与部分相关的相对存储器位置的报头。启动加载器因此可以通过相对存储器位置加上程序存储器的预定开始存储器位置而确定程序存储器中的(绝对)存储器位置。部分然后可以被存储在所确定的存储器位置处。

启动加载器可以以与其他数据分组类似的方式继续直到其确定计算机程序的安装已被完成为止。计算机程序的安装在共同形成计算机程序的部分的集合已被存储在程序存储器上时已被完成。换言之,安装在共同形成计算机程序的所有部分已被存储在程序存储器中时已被完成。已完成计算机程序的安装之后,启动加载器然后可以进一步通过执行新安装的计算机程序来启动设备。

启动加载器可以从数据分组提取与共同形成计算机程序的部分的集合相关的程序元数据。例如,程序元数据可以包括表示共同形成计算机程序的部分的总量的数量。此外,启动加载器可以维持表示已被存储在程序存储器中的所提取部分的进度信息。例如,启动加载器可以保持其已安装在程序存储器中的部分的数量的计数,进度信息因此是所述计数。启动加载器可以基于进度信息和程序信息来确定存储部分的集合的完成。例如,当被存储部分的所述计数匹配部分的总量时,启动加载器确定共同形成计算机程序的所有部分已被存储在程序存储器中。

数据分组可以包括部分和与该部分相关的部分元数据以及程序元数据。替选地,数据分组可以包括(a)部分和部分元数据或者(b)程序元数据。在后者的情况下,不是每个数据分组都包括计算机程序的部分。

本发明的效果在于:计算机程序由启动加载器在小存储器设备上的安装在存储器方面具有提高的效率。程序存储器要求仅大到足以存储计算机程序。程序存储器中的还用以存储计算机程序的附加副本的附加空间对于计算机程序的安装而言不需要。安装因此在存储器方面具有提高的效率。

可选地,启动加载器被布置用于以轮询形式接收数据分组的集合,数据分组的集合共同包括部分的集合,数据分组的集合在单个轮询周期之内被发送。可以在单个轮询周期中接收共同形成计算机程序的所有部分,但如果某些部分的接收由于某些原因而失败,则可以在任何紧接的轮询周期期间接收那些部分。因此,部分的接收针对失败的接收部分而言变得稳健,从而防止设备由于安装期间的失败而变成“砖砌的(bricked )”。其还允许在失败的安装的情况下,重启设备使得启动加载器可以重启计算机程序的安装。

可选地,部分的集合是连续形成计算机程序的连续部分,并且部分元数据包括与连续部分中的部分的排序(rank)相关的信息。例如,集合包括100个连续部分,其是部分#1、部分#2……直到部分#100。则部分#60的部分元数据例如可以是号码60,表示部分#60在连续部分中的排序。因此可以根据部分的排序来连续的接收它们。

本发明的另一方面是一种用于在设备上安装计算机程序的系统,其包括被布置用于发送数据分组的主机设备,数据分组中的至少一些包括计算机程序的相应部分,主机设备具有用于无线地发送数据分组的发送单元;设备具有:程序存储器,其是用于包含计算机程序的存储器;启动存储器,其包括被布置用于启动所述设备的启动加载器;处理器,其用于运行计算机程序和启动加载器;接收单元,其用于无线地接收数据分组,启动加载器被进一步布置用于安装计算机程序,包括:检测数据分组中的一个数据分组,检测是接收所述数据分组的部分;从所述数据分组提取如下中的至少一个(a)计算机程序的部分和与所述部分相关的部分元数据以及(b)与共同形成计算机程序的部分的集合相关的程序元数据;基于所述部分元数据确定程序存储器中的存储器位置;维持表示已被存储在程序存储器中的所提取部分的进度信息;以及基于进度信息和程序元数据来确定存储所述部分的集合的完成。

系统因此包括所述设备,所述设备包括启动加载器(与上面的是本发明的方面的所述设备一致)和主机设备。主机设备可以发送可以由所述设备接收的数据分组。例如,系统可以是用于远程设备的生产线的部分,并且主机设备可以向是遥控设备的所述设备发送包括新固件的相应部分的分组。

可选地,系统包括根据设备的多个设备,多个设备中的每个在对应于部分的集合的相应不同初始部分的相应不同时刻处发起检测。效果在于:当计算机程序正在被安装在多个小存储器设备上时在速度方面,安装具有提高的效率。多个设备中的一个可以与在附近的多个设备中的另一个的安装同时地执行其安装。每个设备不要求与其相应的自己的主机设备的配对连接。替代地,多个设备可以独立地觉察出并接收来自相同的、单个主机设备的相同数据分组。因此,不存在对可以同时安装计算机程序的多个设备的量的限制,只要多个设备在单个主机设备的范围内使得它们可以接收数据分组。在多个设备上安装计算机程序的速度因此与现有技术相比极大地增加。

本发明的另一方面是一种供在系统中使用的主机设备,包括:处理器,其被布置用于以轮询形式发送数据分组的集合,数据分组中的每个数据分组包括计算机程序的部分,数据分组的集合共同包括共同形成计算机程序的部分的集合,所述数据分组的集合在单个轮询周期之内被发送;以及发送单元,其用于无线地发送数据分组。这不仅允许多个设备并行地安装计算机程序,而且允许多个设备中的每个在一轮周期期间或在下一轮询周期期间的任何时间处开始其安装。这在速度以及更实用两方面进一步增加用于计算机程序在多个设备上的安装的效率。

本发明的另一方面是一种计算机程序产品,其包括指令,所述指令用于当其正被处理器执行时使主机设备的处理器实行以下步骤:确定来自计算机程序的部分;确定与部分相关的部分元数据;以及编写包括部分和部分元数据的数据分组。

本发明的另一方面是一种用于在设备上安装计算机程序的方法,所述设备具有:是用于包含计算机程序的存储器的程序存储器;包括被布置用于启动所述设备的启动加载器的启动存储器;用于运行计算机程序和启动加载器的处理器;以及用于无线地接收数据分组的接收单元,计算机程序的部分由相应的数据分组中的至少一些组成,所述方法包括:检测数据分组中的一个数据分组,检测是接收所述数据分组的部分;从所述数据分组提取如下中的至少一个(a)计算机程序的部分和与所述部分相关的部分元数据,以及(b)与共同形成计算机程序的部分的集合相关的程序元数据;基于所述部分元数据确定程序存储器中的存储器位置;维持表示已被存储在程序存储器中的所提取部分的进度信息;以及基于进度信息和程序元数据来确定存储所述部分的集合的完成。

本发明的另一方面是一种包括启动加载器的计算机程序产品,所述启动加载器包括指令,所述指令在启动加载器被处理器执行时使处理器实行权利要求14的方法。

附图说明

本发明的这些和其他方面从下文描述的实施例而显而易见,并且将参考在下文描述的实施例而被阐明。

在绘图中,

图1a图示用于在小存储器设备上安装计算机程序的系统,

图1b图示包括多个小存储器设备的系统,

图2a图示在计算机程序的轮询安装期间的两个小存储器设备的存储器和主机设备的存储器,

图2b图示在安装计算机程序的完成时的小存储器设备的存储器,

图2c图示在计算机程序的替选轮询安装期间的小存储器设备和主机设备的存储器,

图2d图示在存储计算机程序的最后部分时、对部分重新排序之前的小存储器设备的存储器,以及

图3图示用于在小存储器设备上安装计算机程序的方法。

应注意到,在不同图中具有相同参考号码的项具有相同的结构特征和相同的功能。在这样的项的功能和/或结构已被解释的场合,在详细描述中不存在对其重复解释的必要。

具体实施方式

图1a图示用于在小存储器设备DEV 110上安装计算机程序的系统100。系统100包括主机设备HST 180(在下文:主机HST)和小存储器设备DEV(在下文:设备DEV)。主机HST具有发送单元SND 190。设备DEV具有接收单元RCV 170,启动存储器MBOOT 120、程序存储器MPROG 130、主动式存储器(active memory)MACT 140以及处理器PROC 150。处理器PROC可以分别通过连接152-153和171而与启动存储器MBOOT、程序存储器MPROG、主动式存储器MACT和接收单元RCV交换数据。

主机HST可以按部分经由发送单元SND 190发送计算机程序,每个部分由相应的数据分组组成。计算机程序作为整体因此由数据分组的集合共同组成。主机HST发送可以包含数据分组的无线信号191。主机HST可以包括在图1a中未示出的其他元件,诸如处理器、主机存储器、以及用以连接到另一网络和/或互联网的网络通信单元。

主机HST可以具有存储在其主机存储器中的计算机程序并且可以如下从计算机程序来确定数据分组。主机HST首先将计算机程序划分成连续部分。所述部分可以在大小方面不同或可以具有相等的大小。主机通过将报头预置(pre-pend)到部分而编写数据分组。报头可以包括与该部分相关的部分元数据。例如,报头可以包括分组标识符、用于存储该部分的相对存储器位置以及由数据分组组成的该部分的大小(按字节计)。报头可以替代地包括(或还包括)与共同形成计算机程序的部分的集合相关的程序元数据。例如,程序元数据可以包括共同形成计算机程序的部分的总数。或者,作为另一示例,程序元数据可以包括计算机程序的按字节计的总大小。

在实施例中,每个数据分组具有类似的格式和内容。例如,每个数据分组可以包括部分、相关的部分元数据并且还可以包括程序元数据。在另一实施例种,两种类型的数据分组可以存在。第一类型的数据分组可以包含部分和相关的部分元数据,而第二类型的数据分组可以包含程序元数据。主机HST可以仅偶尔发送第二类型的数据分组,因为处理器PROC不需要在每个连续的数据分组中接收相同的程序元数据。

考虑数据分组的以下示例。分组标识符可以是号码。包括计算机程序的第一部分的数据分组可以具有是号码1的分组标识符。包括第二部分的数据分组可以具有是号码2的分组标识符,等等。计算机程序例如可以包括500千字节,其被划分成500个每个1024字节(1 kb)的部分,使数据分组的总数是500。500个数据分组的集合然后共同包括所有部分(其共同包括计算机程序),并且集合中的每个数据分组因此包括计算机程序的相应部分。部分的相对存储器位置可以指示其在存储器中相对于程序存储器MPROG中的开始位置的位置。例如,包括计算机程序的第一部分的数据分组可以具有相对存储器位置0000(零),包括计算机程序的第二部分的数据分组可以具有相对存储器位置1024,第三部分然后与存储器位置2048相关,等等。此外,注意到,如果数据分组报头具有例如64字节的固定大小,则数据分组的大小变成1088。

部分可以具有相同大小但也可以在大小方面不同。如果所有部分具有相同大小,则可以基于所述大小和相应分组号码以简单的方式来计算部分的相对存储器位置:相对存储器位置然后被计算为(分组号码-1)x部分大小。相对存储器位置然后不需要被明确地包括在报头中。替选地,该部分具有相应的不同大小。在该情况下,相对存储器位置的计算不太简单并且将相对存储器位置包括在报头中可能因此是有益的。

替代地,数据分组可以包括用于将部分存储在程序存储器MPROG中的绝对存储器位置而不是相对存储器位置。该部分然后被直接存储在程序存储器MPROG中的绝对存储器位置处。

设备DEV具有启动存储器MBOOT,其可以是包括启动加载器的非易失性存储器。启动加载器包括用来启动设备DEV的软件。在处理器PROC将启动加载器加载到主动式存储器MACT中并且随后执行启动加载器时实行设备DEV的启动。除启动设备DEV之外,在本发明中的启动加载器还包括用来执行计算机程序的安装的软件功能。计算机程序的安装包括将计算机程序存储在是非易失性存储器的程序存储器MPROG中。

当由处理器PROC执行启动加载器时,设备DEV可以如下操作。

在处理器PROC执行启动加载器时,设备DEV开始“觉察” 出正在由主机HST发送的数据分组。觉察出数据分组暗示设备DEV经由接收单元RCV接收无线信号191并且针对数据分组的存在而检查无线信号。例如,处理器可以通过检测标记来自主机HST的任何数据分组的开始的预定数据序列来检测数据分组。设备DEV然后可以接收整个数据分组。例如,每个数据分组可以被限于预定数量的字节,使得处理器DEV被要求从所述数据分组的开始接收所述预定数量的字节,以便接收整个数据分组。

数据分组可以被写入在主动式存储器MACT中。数据分组可以具有固定的报头大小并且处理器PROC可以从数据分组提取报头。报头可以包括部分的大小(例如,部分包括1024字节),使得处理器PROC可以确定包含该部分的主动式存储器中的存储器位置。处理器PROC然后可以从主动式存储器MACT读取该部分。处理器PROC然后已从数据分组提取了报头和该部分两者。

上面的实施例包括是易失性存储器的主动式存储器MACT,尽管替代地使用非易失性存储器在技术上也可以是可能的。目前,由于与非易失性存储器相比较的从易失性存储器读取或者向易失性存储器写入的高得多的速度,易失性存储器典型地对于许多应用是优选的。然而,由于硬件创新,将来的非易失性存储器自然地被预期具有与目前非易失性存储器相比的更高的速度。针对某些实施例,将来的非易失性存储器的速度可能变得对于在主动式存储器MACT中使用而言可接受。使用将来的非易失性存储器的这样的实施例的示例可能可以是设备DEV,其为用于控制消费者设备的遥控设备。

为了验证数据分组的完整性,报头还可以包括分组校验和。处理器PROC可以验证分组校验和以及接收到的数据分组是否一致。如果情况不是这样,则处理器PROC可以断定接收到的数据分组被破坏,并且在响应中,可以终止对所述数据分组的进一步处理。处理器PROC然后可以通过觉察出另一数据分组而继续。处理器PROC还可以从报头提取相对存储器位置,如上面提及的那样。处理器PROC然后可以确定程序存储器MPROG中用于存储部分的绝对存储器位置。所述绝对存储器位置可以通过相对存储器位置加上程序存储器中的预定开始存储器位置而被确定。处理器PROC然后可以在程序存储器MPROG中的所述绝对存储器位置处存储(写入)提取的部分。

应注意到,在下文中,“将部分存储在程序存储器MPROG中”将也被称为“安装部分”。以类似的方式,当共同形成计算机程序的所有部分被存储在程序存储器MPROG中时已“安装”计算机程序,每个部分被存储在程序存储器MPROG中的其适当的存储器位置处。

在安装该部分之后或期间,处理器PROC可以通过觉察出下一数据分组并且针对所述下一分组重复上面的过程而继续。处理器PROC可以继续接收数据分组和安装相应部分的过程直到共同形成计算机程序的所有部分被安装为止。将计算机程序安装在设备DEV上然后被完成。

确定存储所有部分的完成可能如下那样工作。处理器PROC可以保持对已被安装的计算机程序的所有部分的跟踪。考虑以下示例。处理器PROC从数据分组的报头确定部分的总量是500。程序元数据因此包括是500的所述总量。处理器PROC然后可以通过维持500个标志的列表而保持跟踪:每个标志对应于分组号码并且表明对应部分是否已经被安装。例如,标志#25对应于分组号码#25并且表明部分#25是否已被安装。程序元数据因此包括分组号码#25,其因此表示连续部分#1-#500的排序#25的部分。在安装第一部分之前,通过将列表的所有标志设置成0(零)来初始化列表。然后,每次处理器PROC安装部分时,其将该部分的对应标志设置成1(一)。处理器PROC在确定所述列表的所有标志被设置成1时确定所有500个部分已被安装。

替代地,程序元数据包括由计算机程序组成的字节的总数。处理器PROC可以保持对已被存储在程序存储器MPROG中的部分的字节的累积数量的计数。在安装最后部分使得字节的累积数量匹配字节的所述总数时,处理器PROC可以确定共同形成计算机程序的所有部分已被存储在程序存储器MPROG中。

主机HST可以以所谓的轮询形式来发送部分。这暗示主机HST以周期的方式来发送所有部分。考虑以下示例,再次涉及是500的部分的总量。500个部分对应于总量500的相应数据分组。以轮询形式发送500个数据分组暗示主机HST在单个轮询周期中连续地发送所有500个数据分组,并且然后继续进行下一轮询周期,其中主机HST再次连续地发送所有数据分组。在轮询周期中,主机HST首先发送数据分组#1,然后发送数据分组#2,然后发送数据分组#3,等等。在发送数据分组#500之后,主机HST通过再次发送数据分组#1、然后#数据分组#2等等而开始下一周期。

因此,设备DEV也可以以轮询形式接收部分,并且因此也可以相应地以轮询形式来安装相应部分。设备DEV可以在轮询周期中的任何阶段处开始觉察和接收。例如,设备DEV接收包括部分#100的是数据分组#100的其第一数据分组。因此,如果设备DEV连续地接收和安装由主机HST发送的部分,则设备DEV首先在第一轮询周期期间安装部分#100到#500,然后在第二轮询周期期间安装部分#1到#99。

如果设备DEV出于某原因而未能在第一轮询周期期间接收和/或安装数据分组,则其可以在下一轮询周期期间仅接收和安装该数据分组。继续利用先前的示例,如果设备DEV未能在第一轮询周期期间接收数据分组#200,则下一轮询周期将如下那样继续:设备DEV安装部分#1到#99(如上面那样),然后跳过部分#100到#199,并且最后接收和安装部分#200。

图1b图示包括多个小存储器设备110-113的系统199。系统199有效地包括系统100和三个附加(小存储器)设备111-113。以轮询形式安装部分在具有多个设备110-113的系统199中特别有用。多个设备110-113中的每个可以在轮询周期(或针对该事件的下一轮询周期)的不同阶段处开始接收数据分组。然而多个设备110-113中的每个可以同时地从相同的单个主机HST接收相同数据分组并且随后安装相应的相同部分。不存在对可以被添加到系统100或系统199的(小存储器)设备的量的限制,因为设备中的每个并行地从主机HST接收和安装部分。唯一的要求是多个设备中的每个在主机HST的范围内以便接收由主机HST发送的数据分组。这在加速在多个设备(是大的设备组)上安装计算机程序的意义上呈现很多益处。

图2a图示在计算机程序的轮询安装期间的主机存储器MHST 200和两个程序存储器MPROG1 210及MPROG2 220。程序存储器MPROG1和MPROG2分别是两个小存储器设备DEV1和DEV2中的存储器。主机存储器MHST是主机HST的存储器。主机存储器MHST包含计算机程序,其形式为在相应存储器位置201-208处的(八个)部分A-H。部分A-H共同形成计算机程序。主机HST可以以轮询形式发送部分A-H。设备DEV1和DEV2然后可以在它们的相应程序存储器MPROG1和MPROG2中从主机HST接收部分并且对其进行安装。

主机HST具有在其主机存储器MHST的存储器位置203处的当前读取位置。当前读取位置由指针CURR0指示。主机HST读取部分C、编写包含部分C和相对存储器位置(具有相对存储器位置的报头)的数据分组,并且经由发送单元SND发送数据分组。

设备DEV1接收数据分组并且提取(a)部分和(b)相对存储器位置。设备DEV1通过相对存储器位置加上其开始存储器位置211来确定绝对存储器位置213。例如,开始存储器位置具有值128并且相对存储器位置具有值2048,使得绝对存储器位置的值变成2176。因此,设备DEV1将其当前写入位置设置成绝对存储器位置,其由指针CURR1来指示,然后将部分C存储(写入)在其程序存储器MPROG1的存储器位置213处。设备DEV2执行类似的过程:设备DEV2接收数据分组、确定(绝对)存储器位置223,以及将部分C存储在存储器位置223处。指针CURR2指示设备DEV2的当前写入位置。

主机HST以由箭头260指示的轮询形式发送部分。在本示例中,主机HST仅已发送了部分C。将由主机HST发送的下一部分将因此是部分D,并且在其之后是部分E,等等。在已发送了部分H之后,主机HST将然后通过再次发送部分A而继续。在DEV1首先开始觉察之后,主机HST发送了部分B,仅仅就在相同轮询周期内发送当前部分C之前。设备DEV1因此首先检测到包括部分B的数据分组,并且因此部分B是被DEV1安装的第一部分。在该示例中,设备DEV1现在已安装部分B和C。指针START1指示第一部分由设备DEV1存储在其存储器位置212处。程序存储器MPROG1中的图案填充区域指示部分B和C已被分别存储在存储器212和213处。箭头261指示DEV1以次序B、C安装部分。

就在主机HST发送部分G之前,DEV2首先已在先前轮询周期期间开始觉察。设备DEV2因此已首先检测到包括部分G的数据分组,并且因此部分G是由DEV2安装的第一部分。在该示例中,设备DEV2现在已安装了部分G、H、A、B和C。指针START2指示设备DEV2将其第一部分存储在存储器位置227处。程序存储器MPROG2中的图案填充区域指示部分G、H、A、B和C已被分别存储在存储器位置227、228、221、222和223处。箭头262指示DEV2以次序G、H、A、B、C安装部分。

DEV1仍具有六个部分“未完成”,因此DEV1仍需要安装部分D-H和A,以便完成所有部分A-H的安装。DEV2仅具有三个部分“未完成”,因此DEV2仍需要安装部分D-F,以便完成所有部分A-H的安装。如果设备DEV1和DEV2两者都以轮询形式接收和安装由主机HST发送的下一部分,则DEV2将在DEV1完成所有部分的安装之前完成所有部分的安装。图2b图示在完成安装计算机程序时的程序存储器MPROG1和MPROG2。两个存储器MPROG1和MPROG2分别在其相应的存储器位置211-218和221-228中包括所有部分A-H。

图2c图示在计算机程序的替选轮询安装期间的两个程序存储器MPROG1 210、MPROG2 220以及主机存储器MHST 200。在图2c中,主机HST和其主机存储器MHST与图2a的主机HST和其主机存储器MHST是同样的。与图2a的情形的差别在于设备DEV1和DEV2已分别在其开始存储器位置211和221处开始存储部分。设备DEV1和DEV2根据接收部分的次序在其相应的程序存储器MPROG1和MPROG2中的连续存储器位置处存储连续部分。设备DEV1因此在相应的连续存储器位置213-218处存储紧接的部分D-H和A。同样地,设备DEV2因此在相应的连续存储器位置225-228处存储连续部分D-F。在已存储所有部分A-H之后,设备DEV1和DEV2后来对在其相应的程序存储器MPROG1和MPROG2之内的部分重新排序,使得该部分的次序变得与图2b相应。

图2d图示在存储计算机程序的所有部分之后并且在对部分重新排序之前的两个程序存储器MPROG1和MPROG2。在确定所有部分A-H已被存储在其存储器中时,设备DEV1对部分重新排序使得部分A-H如在图2b中描绘的那样被存储在其程序存储器MPROG1中。同样地,在确定所有部分A-H已被存储在其存储器中时,设备DEV2对部分重新排序使得部分A-H如在图2b中描绘的那样被存储在其程序存储器MPROG2中。

在图2c中,设备DEV1和DEV2确定与在图2a中不同的用于存储部分的绝对存储器位置。例如,针对第一部分B,设备DEV1确定用于存储部分B的绝对位置是开始存储器位置211。在接收下一部分C之后,设备DEV1确定用于存储部分C的绝对存储器位置是下一存储器位置,为存储器位置212。类似地,紧接的部分D-H和A被分别存储于紧接的存储器位置213-218。设备DEV1可以维持分组号码和相应存储器位置的列表,其表示部分被存储在程序存储器MPROG1中所用的次序。在该情况下,所述列表指示以(如图2d中所示出的)次序B、C、D、E、F、G、H、A来存储部分。基于所述列表中的信息,设备DEV1然后可以:将部分A从存储器位置218移动到存储器位置211,将部分B从存储器位置211移动到存储器位置212、将部分C从存储器位置212移动到存储器位置213,等等。

主机HST以轮询形式发送部分所用的次序典型地如上面描述的那样。在轮询周期内发送部分的典型次序是A、B、C、D、E、F、G、H。替选地,发送部分的次序可以与所述典型次序不同。例如,次序可以被颠倒或随机化。例如,作为将次序随机化的结果,主机可以在一个轮询周期中以次序E、D、A、C、G、B、H、F来发送部分,而主机可以在另一轮询周期中以另一次序B、F、G、E、D、H、C、A来发送部分。

可以以各种方式来初始化计算机程序的安装。例如,当启动加载器被执行时,启动加载器可以使设备DEV开始觉察出数据分组。启动加载器可以具有预定超时(time-out)时段,使得当在开始觉察之后的所述超时时段之内没有检测到数据分组时,设备DEV终止觉察并且继续进行启动设备DEV。相比之下,如果在所述超时时段之内检测到数据分组,则设备DEV安装由数据分组组成的部分,并且开始觉察出下一数据分组。

作为另一示例,启动加载器可以使设备DEV验证是否有效计算机程序被存储在程序存储器MPROG中,并且可以在确定没有有效计算机程序被安装时开始觉察。作为另一示例,启动加载器可以使设备DEV验证是否用来操作设备的任何计算机程序被存储在程序存储器MPROG中。设备DEV可以在确定没有计算机程序被安装时、在确定计算机程序为“空”(例如,仅填充有零)时开始觉察。

作为另一示例,启动加载器使设备DEV在检测到安装标志被设置成安装状态时发起觉察。当安装标志被设置成安装状态时,其表示要求计算机程序的安装。当安装标志被设置成非安装状态时,其表示不要求计算机程序的安装。安装标志可以是设备DEV的部分。可以响应于外部输入而将安装标志设置成安装状态。例如,如果设备DEV是遥控设备,则外部输入可以由在遥控设备上输进(punch in)预定代码的用户提供,使遥控设备(a)将安装标志设置成安装状态以及(b)执行重新启动。如上面提及的那样,设备DEV然后在(重新)启动期间检测到安装标志被设置成安装状态,并且在响应中开始觉察出数据分组。在完成计算机程序的安装时,设备DEV可以将安装标志设置成非安装状态。替选地,外部输入可以经由设备DEV上的表示安装标志的手动开关来提供。用户可以将手动开关手动地设置到第一位置或第二位置中。第一位置可以对应于安装状态并且第二位置可以对应于非安装状态。

应注意到,在本发明的背景下,当设备DEV“开始觉察出数据分组”时,其暗示设备DEV已开始安装计算机程序,并且已安装计算机程序暗示计算机程序被存储在程序存储器MPROG中。出于安全目的,数据分组可以包括加密。例如,主机HST可以对计算机程序的部分加密并且使用报头和经加密部分来编写数据分组。设备DEV可以接收数据分组、从数据分组提取经加密部分,并且通过对经加密部分解密来获得部分。加密可以确保仅设备DEV或类似的设备可以接收和安装部分。

在实施例中,设备DEV是在生产遥控设备的生产设施中的遥控设备。生产设施可以包括具有各种生产状态中的遥控设备的生产线。在线的末端,每个遥控设备要求最新固件的安装。在与由图1b示意性地图示的类似的设置中,主机HST在生产线的附近使得多个遥控设备可以接收由主机HST发送的数据分组。例如,主机HST可以是用于发送数据分组的某种专用设备或个人计算机。为了最小化干扰生产设施中的其他装备的风险,主机HST和遥控设备可以使用不被其他装备使用的通信或频带。然而,在多个遥控设备之间的互相干扰不是问题,因为多个远程设备从相同主机HST并行地仅正在接收和接收数据分组。

在实施例中,设备DEV具有用于在安装计算机程序的完成时提供反馈的指示器。例如,设备DEV具有在所述完成时闪烁的LED。作为变体,所述LED在所述完成时将其颜色从红色改变成绿色。作为另一示例,设备DEV具有用以在所述完成时生成通知或警告的扬声器。作为另一示例,设备DEV可以具有用于在所述完成时振动的部件。

在实施例中,设备DEV是无线地可控的灯,诸如由飞利浦生产的“色调个人无线照明”产品。灯的照明属性可以由中央控制箱控制或者灯可以直接由智能电话控制。中央控制箱可以包括如上面描述的主机HST。用户可能希望单独地控制每个灯的亮度、色调和/或饱和度或者联合地控制所有灯的亮度、色调和/或饱和度。典型地,起居室将具有多个这样的无线可控灯。当中央控制箱可以检测到新固件可用于多个灯时,其可以如下那样发起固件升级。中央控制箱向每个灯发送新固件的版本号码,并且在响应中,每个灯检查新固件的版本号码是否匹配其已安装固件的版本号码。在多个灯中的灯检测到其固件不是最新的情况下,所述灯可以向后向中央控制箱通信其将发起新固件的安装:所述灯将其安装标志设置成“安装状态”并且执行重新启动。在重新启动时,所述灯然后开始从中央控制箱觉察出数据分组。类似地,也具有过时的固件的其他灯可以这样做,并且并行地还重新启动和发起新固件的安装。当中央控制箱已从至少一个灯接收到其发起新软件的安装时,中央控制箱例如从制造商的网站下载新固件。中央控制箱然后开始发送包括新固件的数据分组。所述灯然后检测和接收由中央控制箱发送的数据分组并且根据本发明开始安装该固件。

作为先前实施例的变体,新灯可以被添加到起居室中的所述多个灯并且可以检查其固件是否是最新的。新灯被安装在电枢中并且因此经由所述电枢被以电气方式供电。在被供电时,新灯可以无线地联系中央控制箱。以与先前实施例中的类似的方式,中央控制箱传送已被安装在多个灯中的其他灯上的最新固件,并且在新灯的固件不是最新的情况下,中央控制箱和新灯开始根据本发明安装新固件。

在实施例中,零售商店具有是媒体播放器的多个小存储器设备。零售商可能希望将最新固件安装在商店地板上的所有媒体播放器上。零售商具有被布置成起主机HST的作用的智能电话。最新固件可以被下载到智能电话上,并且智能电话可以以轮询形式开始发送计算机程序的部分。通过为媒体播放器供电,媒体播放器可以重新启动(因此执行启动加载器),然后作为启动加载器的部分发起觉察,并且随后接收和安装部分。当智能电话保持以轮询形式发送部分时,媒体播放器可以被一个接一个地上电,并且每个媒体播放器可以在轮询周期的不同阶段处和/或甚至在不同的轮询周期中发起安装固件。相应媒体播放器的安装因此不需要同步,其使整个过程实用。用于更新固件的这样的过程由于其无线和自动性质而是方便的。此外,因为更新媒体播放器上的固件被并行地完成,所以过程也是快速的。

设备DEV可以是根据本发明的任何小存储器设备。许多这样的设备现今具有用来例如在家庭环境、医疗环境中或汽车内部连接到其他设备的无线电能力。例如,设备因此可以变得互连并且可以与彼此和/或与设备的本地网络中的用户和/或与互联网交互。小存储器设备DEV的示例是遥控设备、无线可控灯(例如,如上面)、媒体播放器、便携式媒体播放器、电子玩具、数字表、厨房器具、厨房装置诸如冰箱或烤箱,以及可穿戴电子装置。设备DEV可以是用于医学目的的设备,诸如血饱和度仪表、可穿戴心搏监视器或监视病人的生理或身体参数的另一小存储器设备。作为又另一示例,设备DEV可以是无线可控数字标签,例如充当用于个人识别的姓名标签或充当用于在零售商店处示出价格的价格标签。

由主机HST和设备DEV使用的无线技术可以是任何适当的无线技术,诸如RF4CE、Zigbee、WiFi或蓝牙的不要求配对的变体。应注意到,本发明的益处在于启动加载器在如下意义上可以是非常简单的:通过启动加载器的计算机程序的安装可以工作在所谓的MAC级别上,因此在启动加载器中不要求RF4CE软件栈。

尽管上面已提及程序存储器MPROG在如下意义上可能是小的:其被定尺寸成不足以不但包含计算机程序而且同时还包含计算机程序的副本。然而,当程序存储器MPROG为大的使得其被定尺寸成足以包含计算机程序和所述副本两者时,本发明将明显地还工作。在实施例中,程序存储器MPROG实际上是大的,但然而仅程序存储器MPROG的小部分可以可用,因为其剩余部分被用于其他目的。

主机HST可以运行包括用于编写数据分组的指令的软件。软件可以被具体化在诸如CD-ROM或固态存储器之类的计算机程序产品上。计算机程序产品可以包括指令,所述指令用于在其正由处理器执行时使主机HST的处理器实行以下步骤:确定来自计算机程序的部分、确定与该部分相关的部分元数据,以及编写包括部分和部分元数据的数据分组。

图3图示用于在小存储器设备DEV上安装计算机程序的方法300。方法300包括步骤301-305。步骤301包括检测数据分组中的一个数据分组,检测是接收所述数据分组的部分。步骤302包括从所述数据分组提取如下中的至少一个(a)计算机程序的部分和与所述部分相关的部分元数据,以及(b)与共同形成计算机程序的部分的集合相关的程序元数据。步骤303包括基于所述部分元数据来确定程序存储器中的存储器位置。步骤304包括维持表示已被存储在程序存储器中的所提取部分的进度信息。步骤305包括基于进度信息和程序元数据来确定存储所述部分的集合的完成。方法300与可以在系统100中执行并且由设备100执行的步骤一致。

方法300可以被具体化在计算机程序产品上。所述计算机程序产品包括启动加载器,其包括指令,所述指令在启动加载器由处理器PROC执行时使处理器PROC实行方法300。例如,计算机程序产品可以是CD-ROM或固态存储器。应注意到,上面提及的实施例图示而不是限制本发明,并且本领域那些技术人员将能够设计许多替选实施例而不脱离所附权利要求的范围。将由本领域那些技术人员领会到,可以以认为有用的任何方式来组合本发明的上面提及的实施例、实现和/或方面中的两个或更多。

与监视子系统的描述的修改和变化对应的系统、设备、主机设备、方法或计算机程序产品的修改和变化可以由本领域技术人员在本描述的基础上来实现。

在权利要求中,放置在圆括号之间的任何参考符号将不被解释为限制权利要求。动词“包括”和动词变化的使用不排除不同于权利要求中陈述的那些的元件或步骤的存在。在元件之前的冠词“一”或“一个”不排除多个这样的元件的存在。本发明可以借助于包括若干不同元件的硬件并且借助于被适当地编程的计算机来实现。在列举若干部件的设备(或系统)权利要求中,这些部件中的若干可以由同一硬件项来具体化。在互相不同的从属权利要求中叙述了某些措施的纯粹事实不指示这些措施的组合不能被用来得益。

在独立权利要求中限定本发明。在从属权利要求中限定有利的又可选的实施例。

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