更新不同设备中的驻留软件的方法和被适配为由此更新的设备的制作方法

文档序号:84352阅读:779来源:国知局
专利名称:更新不同设备中的驻留软件的方法和被适配为由此更新的设备的制作方法
技术领域
本发明涉及包含在设备中的驻留软件(resident software)的更新。更具体地说,该上下文是通过在设备的管理软件的流中的分发进行的更新。
背景技术
具体地,在通常被称为电视数字解码器的数字电视接收设备的领域中,已知在MPEG传输流类型(MPEG-2 SystemISO/IEC,1994.Generic Coding ofMoving Pictures and Associated AudioSystems,(MPEG-2 SystemsSpecification),November,ISO/IEC 13818-1)的流中,分发解码器中的驻留软件的更新版本。驻留软件被理解为是指用来使设备操作的所述设备中的所有自带软件(onboard software)。在该领域中,除了别的以外,通常根据解码器的硬件版本,将驻留软件的给定版本应用于此解码器,运营商管理该解码器或者甚至该解码器的计划用途。构造被称为下载流的、包括被设计用来更新明确定义的类型的解码器的驻留软件版本的MPEG流是常见的。
在数字解码器的配置开始时,每个更新流传输构成功能软件的所有片段(segment),并被发送到特定类型的平台。由于订户的数目已经增大,运营商经常与新的制造商洽谈以使其解码器供应商多样化。这些供应商自身通过供应基于新硬件版本的新解码器来设法降低设备成本。因此,硬件设备变得不同,并且对于分配给下载流的带宽需求变得更大。
同时,对于制造商提供给运营商的解码器的不同硬件版本,对应的软件版本经常共享公共的代码片段。更具体地,这些片段通常位于软件架构的上层(协议栈、应用程序、接口等)中。
对于在生产阶段使用软件下载的制造商发现了同样的问题。事实上,在给定时间,他们可能被要求在同一生产线上并且根据同一设备硬件版本为不同的运营商生产解码器,所述解码器被下载有不同的软件版本,所述软件版本共享公共的代码片段。更具体地,这些片段通常位于软件架构的下层(操作系统、驱动程序(driver)等)中。
因此,技术问题包括降低分配给下载流的带宽需求,并且这是对运营商和制造商二者而言的。可以以下面的方式表达该问题。
当专用于不同平台的不同软件版本共享公共的代码段(协议栈、应用程序、接口等)时,运营商如何降低分配给传输这些不同软件版本的流的比特率?当使用在制造商的生产设施中发送的下载流来在单个平台上下载专用于不同运营商的不同软件版本、所述不同软件版本具有公共的代码片段(操作系统、驱动程序等)时,制造商如何通过降低分配给这些流的比特率来改进他的制造过程?作为这些问题的必然结果,有可能增加如下问题,即如何缩短下载时间以改善用户的感受?
发明内容
本发明使得能够在同一流中混合为不同解码器设计的不同软件版本。该原理是定义唯一的数据格式,该数据格式使得能够从传输若干驻留软件版本的二进制片段的流来更新解码器,这些二进制片段由若干软件版本共用的片段和每个软件版本特有的片段组成。
作为必然结果,由引导程序(loader)执行的用来恢复专用于解码器硬件版本的代码片段的过程更为复杂。然而,可以以这样的方式来改进该过程,所述方式即引导程序仅设法恢复必须更新的代码片段。
本发明涉及一种用来构造包含意欲用于多个设备的多个驻留软件版本的分发媒介的方法,其包括在构成所述多个的不同驻留软件版本中识别至少两个驻留软件版本共用的部分的识别步骤,以及将构成所述多个的不同驻留软件版本划分为片段的步骤,以及将这些片段组装在分发媒介中,构成至少两个版本共用的部分的片段在分发媒介中被发现一次。
根据一个特定实施例,本发明还包括通过标识所述片段作为其一部分的一个或多个驻留软件版本所针对的设备的装置(means)进行的每个片段的标记步骤。
根据本发明的一个特定实施例,所述多个设备是多个数字电视接收设备。
根据本发明的一个特定实施例,所述分发媒介是MPEG传输流。
本发明还涉及一种由具有对通过分发网络分发的分发媒介的访问装置的设备获取驻留软件版本的全部或部分的方法,所述媒介包括构成多个驻留软件版本的多个片段,该方法包括在分发媒介中识别意欲用于所述设备的至少一个片段的识别步骤、和从所述分发媒介下载在设备中识别的所述片段的下载步骤、以及将所述片段存储在存储器中。
根据本发明的一个特定实施例,分发媒介中的识别步骤包括在每个片段中标识由所述片段所属的驻留软件版本所针对的设备的一组标识符与在该设备上并且对其类型和用途进行编码的一组驻留标识符的比较步骤。
根据本发明的一个特定实施例,所述一组标识符包含标识设备的硬件版本的特定类型的至少一个平台标识符、标识运营该设备的运营商的产品标识符、以及标识该设备的计划用途的用途标识符。
根据本发明的一个特定实施例,所述设备是数字电视接收器,并且所述分发媒介是MPEG传输流。
本发明还涉及被设计用于多个设备的多个驻留软件版本的分发媒介,所述软件版本被划分成片段,其中,所述分发媒介集合所述多个驻留软件版本的片段,至少两个软件版本共用的片段在所述媒介上仅存在一次。
根据本发明的一个特定实施例,每个片段具有一组标识符,这组标识符在每个片段中标识由所述片段所属的驻留软件版本所针对的设备。
根据本发明的一个特定实施例,所述一组标识符包含标识设备的硬件版本的特定类型的至少一个平台标识符、标识运营该设备的运营商的产品标识符、以及标识该设备的计划用途的用途标识符。
根据本发明的一个特定实施例,所述媒介具有MPEG传输流的形式。
本发明还涉及一种具有对包含被设计用于多个设备的多个驻留软件版本的分发媒介的访问装置的设备,这些版本在分发媒介中被划分为多个片段,所述设备具有用于下载出现在分发媒介中的片段的装置以及用于存储这些片段的装置,并且具有用于在出现在分发媒介中的所述多个片段中确定作为意欲用于该设备的驻留软件版本的一部分的片段的装置。
根据本发明的一个特定实施例,所述设备具有对其类型和用途进行编码的一组标识符、以及将这组标识符与出现在每个片段中并且标识由该片段所属的驻留软件版本所针对的设备的一组标识符进行比较的比较装置,其中所述每个片段存在于所述分发媒介中。
根据本发明的一个特定实施例,对分发媒介的访问装置是对MPEG传输流的访问装置。
通过阅读以下描述,将更好地理解本发明,并且将显现其它特定特征和优点,所述描述参考了附图,其中图1示出了用于将下载软件分发到一组解码器上的系统的已知架构。
图2示出了解码器的软件架构示例。
图3示出了本发明实施例中的驻留软件的不同划分层级。
图4示出了本发明实施例中的报头片段。
图5示出了本发明实施例中的MPEG节(section)的格式。
图6示出了本发明实施例中的由解码器使用以发现它必须下载的片段的方法的步骤。
图7示出了根据本发明实施例的解码器的架构。
具体实施方式现在将描述本发明的实施例。该实施例处于数字电视解码器的领域,但是本发明可以被应用于具有可通过一般的分发装置而被更新的驻留软件的任何设备。可以引用通过包括意欲用于不同平台的软件版本的单个DVD或其它元件更新的DVD播放器的例子。
图7示出了根据本发明一个实施例的参考标号为7.1的解码器的架构。该解码器由使得能够接收包括音频和视频业务的流的参考标号为7.7的调谐器组成。此模块可以是卫星、电缆、地面模块或者甚至IP类型的网络连接接口。然后,将由参考标号为7.6的MPEG解复用器/解码器处理来自该调谐器的流。该模块负责在必要时验证权利并将所述流解密(deciphering)。然后,在所述流中分离所需业务;事实上,单个流可以包含若干音频和视频业务的复用。一旦分离出所需业务,就可以从它提取出不同的基本流。现在,通常根据MPEG-2标准,这些流通常由压缩视频流和音频流构成,但是本发明与所述业务的格式(例如MPEG-4或其它格式)无关地操作。因此,这些流被解压缩并且随后被转换为模拟信号,以便提供视频输出和音频输出。通过在参考标号为7.4的只读存储器和参考标号为7.3的可重写非易失性存储器之间以分布式方式存储的驻留软件来控制所有这些操作。对于参考标号为7.2的随机存取存储器,它将被用作用于运行所述驻留软件的工作存储器。
图2示意性地示出了用于组成(comprise)存在于本发明的实施例上的驻留软件的不同块。此驻留软件在参考标号为2.8的硬件上操作,这在上面描述过了。它由两部分构成参考标号为2.5的第一部分,其由参考标号为2.6的引导程序以及使得该引导程序能够操作的参考标号为2.7的最小驱动程序集组成。典型地,该引导程序及其驱动程序被存储在非可重写非易失性存储器中,以便确保它们随时间的完整性。事实上,该引导程序的功能是使得能够更新解码器的软件,并且必须能够在任何情况下操作,而与存储在可重写存储器中的驻留软件的状态无关,它一定不能被损坏。
参考标号为2.1的驻留软件的另一部分由使得能够管理硬件的参考标号为2.4的完整驱动程序集构成。在这些驱动程序之上是提供依赖于所述驱动程序的一组普通(generic)功能的参考标号为2.3的操作系统。参考标号为2.2的应用程序包括向用户提供其解码器的功能的高级软件。它由人机接口构成,并且实现诸如业务改变、可能的交互引擎(interactivity engine)的管理、交互式应用程序和其它功能的功能。通常,这一部分还包括使得能够更新参考标号为2.1的这一软件组的参考标号为2.9的引导程序。此引导程序可被自行更新。实际上,当它下载新的软件系统版本时,该版本可以包含将被放置在存储器中以代替参考标号为2.9的引导程序的此引导程序的新版本。如果在此更新期间出现问题,则存储在非易失性存储器中的参考标号为2.6的引导程序将总是能够允许所述软件的新的更新,其中该新的更新解决所述问题,并且发现参考标号为2.1的软件部分的可操作版本,并因此发现作为其一部分的参考标号为2.9的引导程序的可操作版本。
请求下载软件到解码器中可以有若干原因。第一原因是所安装的软件损坏。事实上,参考标号为2.1的软件部分被存储在可重写存储器中,其可被损坏始终是有可能的。在这种情况下,在下一次启动设备时检测该损坏,所述设备将利用CRC系统(循环冗余校验)来检查组成所述软件的模块的完整性。如果在除了引导程序以外的模块中检测到损坏,则将使用此引导程序来下载所述软件的新的完整版本。可以更新系统软件的新的完整版本或者仅仅被检测为损坏的模块。当引导程序自己被检测为损坏时,将所述更新委托给参考标号为2.6的永久引导程序。
下载的另一原因是驻留软件的新版本的可获得性。此新版本能够修正当前版本中存在的错误并且/或者向此驻留软件添加新功能。在这种情况下,由新版本的解码器在其启动阶段进行的检测在某些条件下将有可能使得这一新版本由参考标号为2.9的引导程序下载并被安装在解码器中。
通常也有可能引起给定软件版本的下载和安装。在这种情况下,用户或经批准的工程师在解锁任何保护性系统之后,将能够指定他需要安装在设备上的驻留软件版本并下载它。这可以在维护操作期间或在交货之前在工厂中准备设备期间进行。以这种方式,总是有可能利用根据设备的计划用途而选定的系统软件版本来配置设备。
在图1中描述了典型的下载基础结构。意欲用于设备的软件版本的整体由除了其它的以外还形成驱动程序、操作系统和应用程序层的不同模块构成。将在参考标号为1.4的混合器中将参考标号为1.1、1.2和1.3的这些模块组装和混合在MPEG传输流中。这个流将由参考标号为1.5的发送站发送到参考标号为1.6的卫星,该卫星将把它分发给参考标号为1.7至1.10的解码器。这里描述的基础结构是卫星分发的基础结构,但是对于可以是电缆、地面或者甚至制造设施中的内部网络的另一分发类型,该图是相同的。在这种情况下,将由负责产生意欲用于解码器的信号的服务器发送由参考标号为1.4的混合器计算的流。在标准方式下,所构造的下载流将包含意欲用于给定类型的解码器的软件版本,但是在本发明的背景下,将有可能把属于若干软件版本的模块混合在这个流中。
一定数目的标识符被用来标记驻留软件版本,并确定相关的解码器。将主要发现下面的标识符,并且这些标识符在确定下载过程时起决定性作用-平台标识符,其实际上由两个标识符(指示对应于解码器型号的平台类型的PT、以及指定平台类型中的版本号的PV)的集合体组成。该标识符因此使得能够准确地识别解码器硬件型号。
-产品标识符PR,其通常将标识使用解码器的运营商。事实上,相同的硬件解码器根据将部署它的运营商而不会使用相同的软件。
-用途标识符US,其使得相同平台和相同产品能够在由平台形成的用途之间区分开。由此,人们可以将例如被设计用于订户的平台和被设计用于测试或另一目的的平台区分开。
将这些标识符的组存储在解码器中,从而提供准确平台型号、运营商和该解码器的设计用途的知识。下载流还包含使得能够获知所包含的软件为之创建的解码器的这些标识符的组。在本发明的背景中,每个片段将具有其自己的参数组。
以已知的方式,当由于上述原因必须利用新的软件版本更新解码器时,解码器将使用使得它能够识别包含为它设计的软件版本的流的内部参数。因此,它连接到这个流,并检查包含在所述流中的平台、产品和用途标识符对应于它所拥有的那些标识符。在这种情况下,它将下载包含在所述流中的软件并存储该软件。
在本发明实施例的背景下,更新机制基于参考标号为3.3的二进制片段的传送。这些片段对应于需要被混合到流中的不同驻留软件版本的参考标号为3.1的存储器转储(memory dump)的划分(division)。这些片段可以直接对应于构成驻留软件版本的不同模块或者是另一划分模式的结果。描述所分发的所有代码片段的参考标号为3.2的报头片段在这些代码片段之前。利用参考标号为3.4的MPEG节来传输所有片段。事实上,MPEG传输流是由一连串188字节的节构成的。
图4所示的“报头”片段自身由“报头”、然后是描述包括在流中的每个代码片段的循环(loop)、对此报头片段进行认证的签名字段及其内容构成。
“报头”片段的报头包括以下字段·由DVB(“数字视频广播”,负责制定数字广播标准的协会)规定的“OUI”(唯一组织标识符)唯一地标识每个制造商,并因此标识由报头描述的每个片段。
·“Key Index(密钥(key)索引)”,当使用基于公钥的算法时需要其来对流进行认证。它标识要用来对流进行认证的公钥。
·“FlowVersionId(流版本Id)”使得能够知道流的上下文中的改变。此信息可以在信令中分发,并因此使得每次它改变时解码器都能开始下载操作。
·将片段解密所需的“EncryptedSeed,InitialValue(加密种子,初始值)”信息。
对于每个片段,发现以下信息·“PlatformType,PlatformVersion(平台类型,平台版本)”标识必须将片段装载到其上的硬件平台。将通过“(PlatformType,PlatformVersion)=任意”对来唯一地标识所有平台共用的片段。
·“ProductId(产品Id)”标识产品或客户。将通过“ProductId=任意”来唯一地标识所有产品共用的片段。
·“UsageId(用途Id)”标识设备组中的解码器的用途(订户、测试等)。将通过“UsageId=任意”来唯一地标识所有用途共用的片段。
·“SegmentVersionId(片段版本Id)”标识片段的版本。它用于确定是否片段已经存在于解码器中并且不需要被下载。
·“SegmentType,SegmentId(片段类型,片段Id)”分别对应于片段的类型(操作系统、驱动程序、接口等)以及其在该类型中的标识符。
·“CrcMemoryType(Crc存储器类型)”在存储在存储器中的片段上计算的CRC类型(循环冗余校验)。
·“HashMemoryType(散列(hash)存储器类型)”在存储在存储器中的片段上计算的散列类型。需要其以检测流认证。
·“SegStorageAddress”片段在存储器中的存储地址。
·“SegSizeMemory”存储器中的片段大小(未被压缩的片段)。
·“CrcFlowType(Crc流类型)”在流中传输的片段上计算的CRC类型。需要其以在接收期间检查片段的完整性。
·“CompressionType(压缩类型)”在流中传输的片段上计算的压缩类型。确定片段是否被压缩以及使用了什么压缩算法。
·“EncryptionType(加密类型)”对在流中传输的片段的加密的类型。确定片段是否被加密以及使用了什么加密算法。
·“CrcFlow(Crc流)”在流中传输的片段的CRC。最后,有“Signature(签名)”使得能够对流进行认证的信息。
传输格式基于图5所示的MPEG节中的传输格式。它包括上述“OUI”、“SegmentNb”、“FlowVersionId”信息。该信息将用于恢复在流中传送的数据。
以这种方式,有可能在相同流中混合属于与不同驻留软件版本相对应的不同存储器转储的片段。每个片段具有其自己的一组参数PT、PV、PR和US,定义了每个片段的目的地。此外,给这些参数中的一些赋予值“任意”的事实没有复制要在不同软件版本之间共享的片段。事实上,意欲用于所有硬件平台的给定产品的不同软件版本之间的共享片段将使用等于该产品值的PR和等于“任意”的(PT,PV)来标记,对于其它参数也一样。通过识别要组装在所述流中的不同驻留软件版本中的至少两个所共用的部分,人们开始在这些版本中进行此操作。事实上,利用具有指定每个模块的目的地的一组参数PT、PV、PR和US的配置或其它方式(means)来标记每个模块。对这些参数的分析识别若干版本共用的模块。然后,当将这些模块划分成片段时,将利用与每个片段相对应的参数组PT、PV、PR和US来标记每个片段,在分发媒介(这里是MPEG流)的构造期间,不复制共用片段。
在图6中图示了主要的下载步骤。
参考标号为E1的第一步骤由通过对字段“TableId(表ID),SegmentNb=0,OUI,SectionSyntaxVersion(节语法版本),FlowVersionId”进行节过滤来获取报头片段构成。
参考标号为E2的第二步骤在于由于其签名而检查对该报头片段的认证。
参考标号为E3的第三步骤在于通过连续提取以下内容(参见下表)来构造与执行下载的解码器相对应的片段的列表1.专用于执行下载的解码器的平台(PT,PV)、产品PR和用途US的片段。
2.专用于所述平台、产品的片段,其中US=任意。
3.专用于所述平台的片段,其中(PT,PV)=任意。在这种情况下,忽略US的值。
4.专用于所述产品、用途的片段,其中(PT,PV)=任意。
5.专用于所述产品的片段,其中(PT,PV)=任意,US=任意。
6.普通片段,即其中(PT,PV)=任意、PR=任意并且与US的值无关。
参考标号为E4的第四步骤在于对于由于可以获得新软件版本导致的更新,只从所述列表中检索(retrieve)“SegVersionId(片段版本Id)”不同于存储在存储器中并且对应于先前更新的“SegVersionId”的片段。如果下载是由于解码器中一些片段的损坏,则所恢复的版本与已经存在的版本相同,并且将恢复被识别为损坏的片段。
第五步骤在于由于每个片段的CRC而检查所恢复的每个片段的完整性。
第六步骤在于将下载的片段存储在存储器中。
尽管本发明实施例处于数字电视解码器的框架中,但是本领域技术人员应该明白本发明可以应用于具有经由数据分发网络更新它们的驻留软件的能力的所有设备。
权利要求
1.一种用于构造包含意欲用于多个设备的多个驻留软件版本的分发媒介的方法,其特征在于,它至少包括以下步骤-在构成所述多个的不同驻留软件版本中识别至少两个驻留软件版本共用的部分,-将构成所述多个的不同驻留软件版本划分为片段,-将这些片段组装在分发媒介中,构成至少两个版本共用的部分的片段在所述分发媒介中被发现一次。
2.如权利要求
1所述的方法,还包括通过标识所述片段作为其一部分的一个或多个驻留软件版本所针对的设备的装置进行的每个片段的标记步骤。
3.如权利要求
2所述的方法,其中,所述多个设备是多个数字电视接收设备。
4.如权利要求
3所述的方法,其中,所述分发媒介是MPEG传输流。
5.一种用于由具有对通过分发网络分发的分发媒介的访问装置的设备获取驻留软件版本的全部或一部分的方法,其特征在于,所述媒介包括构成多个驻留软件版本的多个片段,所述方法至少包括以下步骤-在所述分发媒介中进行的意欲用于所述设备的至少一个片段的识别步骤,-从所述分发媒介下载在所述设备中识别的所述片段,-将所述片段存储在存储器中。
6.如权利要求
5所述的方法,其中,在所述分发媒介中的识别步骤包括比较步骤,将在每个片段中标识由所述片段所属的驻留软件版本所针对的设备的一组标识符和在所述设备上并且对其类型和用途进行编码的一组标识符进行比较。
7.如权利要求
6所述的方法,其中,所述一组标识符包括标识设备的硬件版本的特定类型的至少一个平台标识符、标识运营该设备的运营商的产品标识符、以及标识该设备的计划用途的用途标识符。
8.如权利要求
7所述的方法,其中,所述设备是数字电视接收器,并且所述分发媒介是MPEG传输流。
9.一种被设计用于多个设备的多个驻留软件版本的分发媒介,所述软件版本被划分成片段,其特征在于所述分发媒介集合所述多个驻留软件版本的片段,至少两个软件版本共用的片段在所述媒介上只存在一次。
10.如权利要求
9所述的媒介,其中,每个片段具有一组标识符,这组标识符在每个片段中标识由所述片段所属的驻留软件版本所针对的设备。
11.如权利要求
10所述的媒介,其中,所述一组标识符包含标识设备的硬件版本的特定类型的至少一个平台标识符、标识运营该设备的运营商的产品标识符、以及标识该设备的计划用途的用途标识符。
12.如权利要求
11所述的媒介,其具有MPEG传输流的形式。
13.一种具有对包含被设计用于多个设备的多个驻留软件版本的分发媒介的访问装置的设备,这些版本被划分成所述分发媒介中的多个片段,所述设备具有用于下载出现在所述分发媒介中的片段的装置以及用于存储这些片段的装置,其特征在于其具有用于在出现在所述分发媒介中的所述多个片段中确定作为意欲用于该设备的驻留软件版本的一部分的片段的装置。
14.如权利要求
13所述的设备,其中,所述设备具有对其类型和用途进行编码的一组标识符、以及将这组标识符与出现在每个片段中并且标识由该片段所属的驻留软件版本所针对的设备的一组标识符进行比较的比较装置,其中所述每个片段存在于所述分发媒介中。
15.如权利要求
14所述的设备,其中,对分发媒介的访问装置是对MPEG传输流的访问装置。
专利摘要
本发明涉及一种使得能够在公共流中混合用于不同解码器的不同软件版本的方法。原理在于定义唯一数据格式,所述数据格式使得能够从传输驻留软件的若干软件版本的二进制片段的流更新解码器,所述二进制片段由若干软件版本共用的片段和每个软件版本特有的片段构成。
文档编号H04N5/00GK1993985SQ20058002646
公开日2007年7月4日 申请日期2005年8月2日
发明者弗雷德里克·艾伯特, 哈米德·布萨德, 埃里克·高蒂尔, 让-卢克·江珀茨, 斯蒂芬尼·雷博伊森 申请人:汤姆森特许公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1