太阳城集团

  • / 9
  • 下载费用:30 金币  

一种支持多FLASH设备的机顶盒软件升级方法.pdf

摘要
申请专利号:

CN201210058096.8

申请日:

2012.03.07

公开号:

CN102622250B

公开日:

2015.01.21

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20120307|||公开
IPC分类号: G06F9/445; H04N21/458(2011.01)I 主分类号: G06F9/445
申请人: 四川长虹电器股份有限公司
发明人: 熊建勇; 周志武; 杨艳辉
地址: 621000 四川省绵阳市高新区绵兴东路35号
优先权:
专利代理机构: 成都虹桥专利事务所(普通合伙) 51124 代理人: 李顺德
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201210058096.8

授权太阳城集团号:

102622250B||||||

法律状态太阳城集团日:

2015.01.21|||2012.09.26|||2012.08.01

法律状态类型:

授权|||实质审查的生效|||公开

摘要

太阳城集团本发明涉及数字电视机顶盒,其公开了一种支持多flash设备的机顶盒软件升级方法,在现有的条件接收系统升级规范下支持多flash设备升级,突破升级容量限制,且能实现灵活升级。其技术方案的要点可概括为:a.机顶盒开发商根据机顶盒使用的flash设备个数和各flash设备的使用区域构建配置文件;b.按照配置文件中的定义将针对机顶盒的flash设备的各分区的升级数据合并保存在一个升级文件中,形成合并后的升级文件,并提供给前端系统;c.前端系统将合并后的升级文件进行打包,生成升级数据流并下发;d.机顶盒接收升级数据流,根据配置文件中的定义还原针对机顶盒的flash设备的各分区的升级数据;e.对各分区的升级数据进行写入相应flash分区的处理。本发明适用于机顶盒生产商。

权利要求书

1: 一种支持多 flash 设备的机顶盒软件升级方法, 其特征在于, 包括以下步骤 : a. 机顶盒开发商根据机顶盒使用的 flash 设备个数和各 flash 设备的使用区域构建 flash 配置文件 ; b. 机顶盒开发商按照 flash 配置文件中的定义将针对机顶盒的 flash 设备的各分区的 升级数据合并保存在一个升级文件中, 形成合并后的升级文件, 并提供给前端系统 ; c. 前端系统将合并后的升级文件进行打包, 生成升级数据流并下发 ; d. 机顶盒接收升级数据流, 根据 flash 配置文件中的定义还原针对机顶盒的 flash 设 备的各分区的升级数据 ; e. 机顶盒根据相关太阳城集团对各分区的升级数据进行写入相应 flash 分区的处理。
2: 如权利要求 1 所述的一种支持多 flash 设备的机顶盒软件升级方法, 其特征在于, 该 方法还包括步骤 : f. 机顶盒根据 flash 配置文件中的定义将 flash 设备的各分区的升级数据读取出来, 并计算 CRC 校验值, 写入到分区太阳城集团数据校验区内 ; g. 机顶盒重启, 再次根据 flash 配置文件中的定义将 flash 设备的各分区的升级数据 读取出来, 并计算 CRC 校验值, 与分区太阳城集团数据校验区内存储的 CRC 校验值进行比较, 如果 相同, 则升级成功, 机顶盒正常启动 ; 如果不相同, 则升级失败, 返回步骤 a。
3: 如权利要求 1 或 2 所述的一种支持多 flash 设备的机顶盒软件升级方法, 其特征在 于, 步骤 a 具体包括 : a1. 机顶盒开发商确定机顶盒使用的 flash 设备个数和各 flash 设备的使用区域 ; a2. 机顶盒开发商根据 flash 设备个数和各 flash 设备的使用区域构建 flash 配置文 件, 并定义每个数据块具体属于哪个 flash 设备上的哪个使用区域, 所述 flash 配置文件中 定义了数据块的偏移地址和长度。
4: 如权利要求 3 所述的一种支持多 flash 设备的机顶盒软件升级方法, 其特征在于, 步 骤 b 中, 将针对机顶盒的 flash 设备的各分区的升级数据合并保存在一个升级文件后, 该合 并后的升级文件包括 n 个升级文件描述头和 n 个文件数据 ; 各分区的升级数据的合并规则 为: 文件 1 描述头 + 文件 1 数据 + 文件 2 描述头 + 文件 2 数据…文件 n 描述头 + 文件 n 数 据, 所述 n 对应 flash 配置文件里规定的各个 flash 设备的分区。
5: 如权利要求 4 所述的一种支持多 flash 设备的机顶盒软件升级方法, 其特征在于, 所 述升级文件描述头包含以下字段 : 文件头描述字符串标志、 文件头长度、 文件属性值、 flash 设备号、 flash 设备属性值、 升级文件偏移地址、 数据段长度、 数据段 CRC 校验值。
6: 如权利要求 5 所述的一种支持多 flash 设备的机顶盒软件升级方法, 其特征在于, 所述文件属性值标明该文件是否需要写入 flash : 当需要升级某个 flash 设备的某个分区 时, 那么就将针对该分区的升级文件的文件属性值设置为 1, 将其他不需要升级的分区的升 级文件的文件属性值设置为 0 ; 当需要升级的分区对应的升级文件不在 flash 配置文件的 规定里且需要写入 flash, 则将针对该分区的升级文件的文件属性值设置为 2。
7: 如权利要求 6 所述的一种支持多 flash 设备的机顶盒软件升级方法, 其特征在于, 步 骤 e 中, 机顶盒根据相关太阳城集团对各分区的升级数据进行写入相应 flash 分区的处理的具体 方法是 : 机顶盒读取针对各分区的升级文件的文件属性值值, 若文件属性值值为 0, 则该分 区的升级文件不写入 flash ; 若文件属性值值为 1, 则根据 flash 配置文件里的规定, 将该分 2 区的升级文件写入到相应的 flash 设备的相应地址 ; 若文件属性值值为 2, 则根据该分区的 升级文件的头太阳城集团定义的 flash 设备号和升级文件偏移地址来写入到 flash 设备的相应地 址。

说明书


一种支持多 flash 设备的机顶盒软件升级方法

    【技术领域】
     本发明涉及数字电视机顶, 特别涉及一种支持多 flash 设备的机顶盒软件升级方法。 背景技术 随着全球数字电视行业的迅猛发展, 付费电视已经成为数字电视的主流, 各种条 件接收方案广泛的被世界各国的数字电视运营商们所采用。 因此基于条件接收系统的机顶 盒在市场上的使用也越来越多。然而目前在机顶盒上使用的各种应用软件通常都是基于 linux 系统的 ; linux 系统本身比较庞大, 需要占用的 flash 和内存资源较多, 因此机顶盒使 用的 flash 资源也越来越多 ; 单个的 flash 设备或者容量较小的 flash 设备已经开始面临 容量不足的情况。
     因此, 目前市面上出现支持多 flash 设备的机顶盒, 以解决单 flash 容量不足的 问题 ; 然而目前大部分的条件接收系统对于机顶盒软件升级的规范仍然是针对单 flash 升 级, 且由机顶盒厂家提供的 flash 使用配置规范也未升级。而对于两种 flash 设备 ( 即 norflash 和 nandflash) 来说, 在使用方法有很大差别, 因此传统的条件接收系统的升级规 范在 nandflash 的使用中不可避免的出现的了一些问题 : 比如, 传统的条件接收系统规定 的升级方法即 norflash 是按 flashblock 依次顺序写入的, 而 nandflash 的使用是按分区 使用的, nandflash 的坏块机制造成每个分区不可能被完全使用, 要预留一部分来防止坏块 产生, 因此 nandflash 的写 flash 操作是跳跃的, 因此在生成升级流时也需要考虑升级的内 容是分段式的。另外传统的 norflash 容量都较小, 市场上流行的较大的 norflash 容量通 常都是 64 兆, 而 nandflash 容量通常都是都达到了 128 兆, 256 兆, 甚至更大, 因此传统的 norflash 的升级数据容量是较小的, 而与传统条件接收系统升级规范配套的系列打包工具 支持的可升级容量也较小, 无法支持 nandflash 的大容量。
     由上可以看出传统条件接收系统升级规范主要针对的都是 norflash, 若使用 nandflash, 不管是在容量上, 还是在规范上都不是非常的契合 ; 如何在现有的条件接收系 统升级规范的前提下支持多 flash 设备升级, 突破升级容量限制, 且能灵活升级 ( 既支持 norflsh 升级又支持 nandflash 升级 ) 是一个亟待解决的问题。
     发明内容 本发明所要解决的技术问题是 : 提出一种支持多 flash 设备的机顶盒软件升级方 法, 在现有的条件接收系统升级规范的前提下支持多 flash 设备升级, 突破升级容量限制, 且能实现灵活升级。
     本发明解决上述技术问题所采用的技术方案是 : 一种支持多 flash 设备的机顶盒 软件升级方法, 包括以下步骤 :
     a. 机顶盒开发商根据机顶盒使用的 flash 设备个数和各 flash 设备的使用区域构 建 flash 配置文件 ;
     b. 机顶盒开发商按照 flash 配置文件中的定义将针对机顶盒的 flash 设备的各分 区的升级数据合并保存在一个升级文件中, 形成合并后的升级文件, 并提供给前端系统 ;
     c. 前端系统将合并后的升级文件进行打包, 生成升级数据流并下发 ;
     d. 机顶盒接收升级数据流, 根据 flash 配置文件中的定义还原针对机顶盒的 flash 设备的各分区的升级数据 ;
     e. 机顶盒根据相关太阳城集团对各分区的升级数据进行写入相应 flash 分区的处理。
     进一步, 该方法还包括步骤 :
     f. 机顶盒根据 flash 配置文件中的定义将 flash 设备的各分区的升级数据读取出 来, 并计算 CRC 校验值, 写入到分区太阳城集团数据校验区内 ;
     g. 机顶盒重启, 再次根据 flash 配置文件中的定义将 flash 设备的各分区的升级 数据读取出来, 并计算 CRC 校验值, 与分区太阳城集团数据校验区内存储的 CRC 校验值进行比较, 如果相同, 则升级成功, 机顶盒正常启动 ; 如果不相同, 则升级失败, 返回步骤 a。
     进一步, 步骤 a 具体包括 :
     a1. 机顶盒开发商确定机顶盒使用的 flash 设备个数和各 flash 设备的使用区 域; a2. 机顶盒开发商根据 flash 设备个数和各 flash 设备的使用区域构建 flash 配 置文件, 并定义每个数据块具体属于哪个 flash 设备上的哪个使用区域, 所述 flash 配置文 件中定义了数据块的偏移地址和长度。
     进一步, 步骤 b 中, 将针对机顶盒的 flash 设备的各分区的升级数据合并保存在一 个升级文件后, 该合并后的升级文件包括 n 个升级文件描述头和 n 个文件数据 ; 各分区的升 级数据的合并规则为 : 文件 1 描述头 + 文件 1 数据 + 文件 2 描述头 + 文件 2 数据…文件 n 描述头 + 文件 n 数据, 所述 n 对应 flash 配置文件里规定的各个 flash 设备的分区。
     进一步, 所述升级文件描述头包含以下字段 : 文件头描述字符串标志、 文件头长 度、 文件属性值、 flash 设备号、 flash 设备属性值、 升级文件偏移地址、 数据段长度、 数据段 CRC 校验值。
     进一步, 所述文件属性值标明该文件是否需要写入 flash : 当需要升级某个 flash 设备的某个分区时, 那么就将针对该分区的升级文件的文件属性值设置为 1, 将其他不需 要升级的分区的升级文件的文件属性值设置为 0 ; 当需要升级的分区对应的升级文件不在 flash 配置文件的规定里且需要写入 flash, 则将针对该分区的升级文件的文件属性值设 置为 2。
     进一步, 步骤 e 中, 机顶盒根据相关太阳城集团对各分区的升级数据进行写入相应 flash 分区的处理的具体方法是 : 机顶盒读取针对各分区的升级文件的文件属性值值, 若文件属 性值值为 0, 则该分区的升级文件不写入 flash ; 若文件属性值值为 1, 则根据 flash 配置文 件里的规定, 将该分区的升级文件写入到相应的 flash 设备的相应地址 ; 若文件属性值为 2, 则根据该分区的升级文件的头太阳城集团定义的 flash 设备号和升级文件偏移地址来写入到 flash 设备的相应地址。
     本发明的有益效果是 : 在现有的条件接收系统升级规范的前提下支持多 flash 设 备升级, 突破升级容量限制, 既能支持 norflsh 升级又能支持 nandflash 升级, 升级方式灵 活。
     具体实施方式
     传统技术中的机顶盒软件升级方式大多都只能支持 norflsh 单设备升级, 升级容 量受限, 且不能支持 nandflash 升级 ; 为了解决上述问题, 本发明提出了一种支持多 flash 设备的机顶盒软件升级方法, 包括以下步骤 :
     a. 机顶盒开发厂家根据机顶盒使用的 flash 设备个数和各 flash 设备的使用区域 构建 flash 配置文件 ;
     b. 机顶盒开发厂家按照 flash 配置文件中的定义将针对机顶盒的 flash 设备的各 分区的升级数据合并保存在一个升级文件中, 形成合并后的升级文件 ;
     c. 前端系统将合并后的升级文件进行打包, 生成升级数据流并下发 ;
     d. 机顶盒接收升级数据流, 根据 flash 配置文件中的定义还原针对机顶盒的 flash 设备的各分区的升级数据 ;
     e. 机顶盒根据相关太阳城集团对各分区的升级数据进行写入相应 flash 分区的处理。
     本发明的升级方法与传统技术的区别点在于 : (1) 在 FLASH 配置文件里关联了 flash 设备和分区及分区大小。(2) 本方法的最终升级文件是由各个 FLASH 设备上的各分 区文件合并而成的, 且是按既定的格式来合成的, 该格式包含了符合 nandflash 升级需要 的特性 ; 而传统的升级文件就一个升级文件 ; (3) 本方法的最终升级文件生成方式涵盖了 传统升级文件规范与工具无法支持到的升级区域。假如工具只支持升级 64 兆的数据, 那么 传统的升级方法只能前 64M 区域的数据, 经过本方法后, 可以把任何区域的数据组合到合 并文件中, 而只要最终的合并文件数据小于 64M 即可。这样就突破了 flash 设备和容量的 限制。
     下面结合具体实施方式对本发明的技术方案作详细阐述 :
     A. 机顶盒开发商根据机顶盒使用的 flash 设备个数和使用区域, 构建 flash 配置 文件 :
     a1. 确定一个项目的机顶盒固定使用的 flash 设备的个数 ;
     a2. 确定每个 flash 设备的使用区域划分。 如: flash0 的第一兆区域存放 loader,
     第二兆到 flash0 设备的最后存放主程序 ; flash1 的前 20 兆存放文件系统, 第 21 兆到 30 兆存放数据库等 ;
     a3. 前端系统根据 a1, a2 的划分, 构成 flash 配置文件, 且和机顶盒共同规定每个 块的归属。 由于条件接收系统的工具只针对一个 flash, 因此配置文件中的各个数据块的偏 移地址是虚拟的, 但它与实际的 flash 的物理地址有具体的对应关系, 这就由机顶盒厂家 来定义的。如第一个 blcok 的偏移地址为 0x8000, 长度 0x18000, 它对应的 flash 设备的 1 分区, 第二个 block 偏移为 0x2000, 长度 0x2000 可以对应 flash 设备 2 的 0 分区等等。
     B. 实现支持多 flash 设备的升级文件数据打包 :
     b1. 由于条件接收系统的升级流打包工具只支持打包一个升级文件, 那么要支持 多个 flash 设备的数据升级, 就只有将所有的需要升级的数据按一定的格式封装成一个升 级文件用于生成升级流。机顶盒在接收到升级数据后, 再按此格式, 进行逆向解析, 还原出 各个 flash 设备的升级数据, 进行升级。
     b2. 根据上述 b1 的思想, 将每个 flash 设备上的升级数据合并为一个升级文件, 合并后的升级文件包含 n 个升级文件描述头和 N 个文件数据, 其中升级文件的合并规则为 : 文 件 1 描述头 + 文件 1 数据 + 文件 2 描述头 + 文件 2 数据…文件 n 描述头 + 文件 N 数据, 所述 1、 2……N 对应 flash 配置文件里规定的各个 flash 设备的分区。 上述升级文件描述头太阳城集团 包含以下字段 : 文件头描述字符串标志、 文件头长度、 文件属性值、 FLASH 设备号、 FLASH 设 备属性值、 升级文件偏移地址、 数据段长度、 数据段 CRC 校验值 ;
     基于上述, 合并后的升级文件的具体结构如下 :
     其中文件头长度是指从文件头描述字符串标志开始, 到数据段 CRC 校验值字段长 度。文件属性值标明该文件是否需要写入 flash : 如: 当某次升级只需要升级某个 flash 设备的某个分区, 那么就将该分区的升级文件的文件属性值设置为 1, 其他不需要升级的分 区的升级文件的文件属性值设置为 0 ; 当需要升级的升级数据所在的分区未在 flash 配置 文件中定义, 则将该分区的升级文件的文件属性值设置为 2。( 由于条件接收系统的升级 规范及其工具有升级容量限制, 因此根据其规范定义的 flash 配置文件的容量只是机顶盒 FLASH 容量的一部分。 当需要升级的数据所在的分区未在 flash 配置文件中定义, 那么则将 该分区的升级文件的文件属性值设置为 2。)
     b3. 按照上述思想对针对各个 flash 设备的升级数据进行处理 :
     b3.1 根据 flash 配置文件的规定, 依次将 flash 配置文件里包含 flash 设备上的 分区的升级数据, 按先根据 b2 定义的结构, 逐个保存到一个升级文件里。直到最后一个需 要真正升级的数据被添加。如 : flash0 设备上有 5 个分区, 我们只想升级第三个分区, 那么 合并文件就只需要添加前三个分区。后面的两个分区及其他 flash 设备上的分区均不需要 添加。
     b3.2 当某次升级只需要升级某个 flash 设备的某个分区, 那么就将该分区的升级 文件的文件属性值设置为 1, 并且该文件数据使用真实的升级数据。 其他不需要升级的分区 的升级文件的文件属性值设置为 0, 且升级数据使用 0xff 填充。当我们需要升级的数据分
     区不在 flash 配置文件的规定里 ( 即超过条件接收系统定义的最大可升级范围 ), 那么我们 就在 flash 配置文件定义的分区里, 选择一个分区大小匹配, 且本次不需要升级的分区来 存放该超出支持范围分区的升级数据, 并将文件属性值设置为 2。如 b3.1 里的示例, 分区 1 和 2 需要将文件属性值设置为 0, 其数据直接添加 0xff. 若要升级超过 64M 后的分区数据, 那么假如 flash0 的第 1 分区大小适合该分区, 那么可以将该分区的数据存放在 flash0 设 备的第 1 分区。假如 flash0 设备的第 1, 2, 4 分区大小均不适合, 而第 5 分区适合, 那么则 将该分区数据添加到 flash0 设备的第 5 分区。同时 flash0 的第 5 分区为最后一个分区。
     b3.3 升级文件数据的长度需要处理。 由于我们在 flash 配置文件里规定了每个分 区的数据长度, 而合并后的升级文件里每个分区增加了文件描述头太阳城集团。因此每个分区真 正能够升级的数据长度为 : flash 配置文件里定义的分区长度减去文件头长度。如果每个 分区的文件数据长度小于 flash 配置文件里定义的分区长度减去文件头长度。那么剩余的 长度则用 0Xff 来填充。 如果 fash 设备属性值为 nandflash, 那么升级数据长度必须小于分 区长度减去文件头长度 . 通常 nandflsh 分区需要留十分之一 ( 或者更多 ) 的空白空间用 于坏块备用, 这是因为 nandflash 的特性决定的 . 如果 fash 设备属性值为 norflash, 那么 每个分区的文件数据长度可以等于 flash 配置文件里定义的分区长度减去文件头长度。
     b2.3. 将合并后的升级文件, 使用条件接收系统提供的打包工具, 生成升级数据流。 b2.4 条件接收系统打包工具只会在合并文件的最后添加测试数据 ( 前面的数据 设计应用程序启动, 不能更改 )。
     C. 机顶盒对升级数据的处理步骤 :
     c1. 机顶盒接收完所有升级数据后, 根据 flash 配置文件里的定义来将升级数据 还原为各个分区的数据。如升级数据的前 0x60000 的数据为 flash 设备 0 的第一个分区数 据。
     c2. 根据步骤 b2 定义的文件头太阳城集团定义, 分析出各个分区的数据是否需要写入 flash. 若文件属性值设置为 0, 则该分区数据不写入 flash, 若为 1, 则根据 flash 配置文件 里的规定, 写入到相应的 flash 设备的相对应的地址。 若为 2, 则根据头太阳城集团定义里的 flash 设备号和升级文件偏移地址来进行 flash 写入。
     c3. 判断条件接收系统打包工具是否增加了测试数据 : 将从升级数据流中获取到 升级数据的长度与合并文件的长度进行判断, 若发现其比合并文件的数据长度长, 那么将 多出的长度, 写到在 flash 配置文件规定的范围内真正升级的分区或者这个分区的下一个 分区。如 b3.1 示例, 最后一个可升级的分区为 flash0 设备的第三个分区, 那么将多余的数 据写到这个第三个分区的 : 分区长度减去第三分区文件头长度再减去第三分区数据段长度 的位置。若多余数据的长度大于第三分区长度减去文件头长度再减去数据段长度, 那么将 剩余的数据先写入第三个分区的剩余区域, 然后超过第三分区剩余区域的数据依次写入到 第四分区。
     c4. 各个分区数据写入后, 根据 flash 配置文件的规定, 将各 flash 设备上的各分 区的数据读出来并计算出 CRC 校验值, 写入到分区太阳城集团校验数据区内。
     D. 升级后机顶盒的启动校验。
     在机顶盒重启后, 启动 loader 根据 flash 配置文件里的规定, 将各个 flash 设备
太阳城集团     上的各分区的数据读出来并计算出 CRC 校验值, 并与 flash 设备上原有的分区太阳城集团校验数 据区的数据进行比较, 若相同则正常启动, 若不同则标识升级异常。9

关 键 词:
一种 支持 FLASH 设备 机顶盒 软件 升级 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:一种支持多FLASH设备的机顶盒软件升级方法.pdf
链接地址:http://zh228.com/p-6420567.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');