CN103167348B - 机顶盒软件空中升级数据下载的方法 - Google Patents

机顶盒软件空中升级数据下载的方法 Download PDF

Info

Publication number
CN103167348B
CN103167348B CN201110414055.3A CN201110414055A CN103167348B CN 103167348 B CN103167348 B CN 103167348B CN 201110414055 A CN201110414055 A CN 201110414055A CN 103167348 B CN103167348 B CN 103167348B
Authority
CN
China
Prior art keywords
data
block
data block
segment
data segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110414055.3A
Other languages
English (en)
Other versions
CN103167348A (zh
Inventor
刘光勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Kaifa Technology Co Ltd
Original Assignee
Shenzhen Kaifa Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Kaifa Technology Co Ltd filed Critical Shenzhen Kaifa Technology Co Ltd
Priority to CN201110414055.3A priority Critical patent/CN103167348B/zh
Publication of CN103167348A publication Critical patent/CN103167348A/zh
Application granted granted Critical
Publication of CN103167348B publication Critical patent/CN103167348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种机顶盒软件空中升级数据下载的方法,包括:将升级数据组合成一文件,将该文件在逻辑上切分为若干个数据块,将这些数据块连续编号,并将有关该文件的描述信息封装到起始块中;将各数据块分别对应于一个数据段,并使数据段的扩展表ID号及段号与数据块的编号相对应;将该升级数据以数据段的形式传输;从数据流中捕获到对应于起始块的数据段,通过解析起始块中的块描述信息,获取数据总长度和块的总数;以数据段的形式解析各数据块,直至所有的数据块接收完成。本发明可以有效地优化升级数据下载速度。

Description

机顶盒软件空中升级数据下载的方法
技术领域
本发明涉及机顶盒的维护方法,尤其涉及机顶盒的软件升级的方法。
背景技术
数字机顶盒是典型嵌入式产品中的一种,几乎所有的嵌入式产品都会涉及到产品软件升级的问题。不同的产品有可能不同的升级方式,参见图1,机顶盒可以使用的升级方式有空中升级、串口升级、USB存储设备升级以及机顶盒对机顶盒的升级等。其中的空中升级,是指前端通过相应的信道,如:DVB-S(Digital Video Broadcast-Satellite,卫星数字视频广播)使用卫星发射无线电波、DVB-C (Digital Video Broadcast-Cable,有线数字视频广播)采用线缆传输信号等,将升级数据发送到终端设备,也就是机顶盒。终端设备接收并解析数据,校验确认数据被完整接收到后,更新软件到新的版本。对于机顶盒来说,空中升级功能是在产品投放市场之前必须具备的基本功能之一,在机顶盒的软件升级的过程中,主要的时间开销在于下载数据和擦写Flash存储器。
下载数据主要涉及到传输流解复用过程。在数字机顶盒技术中,是将视频信息、音频信息、控制状态信息等在模拟世界时连续的信息转换成数字信息之后被拆分成一小块一小块然后再将这些小块的数据打包成TS(Transport Stream,传输流)包。每一个TS包的大小固定为188个字节,每一个包都会有一个13位的身份编号,称为PID (PacketIdentifier,包识别码)。另外还有表识别码TableID、扩展表识别码TableID_Ext和数据段编号Section Number等,这几个参数通常用来做为筛选数据的条件。在机顶盒软件空中升级中,通常是将升级文件拆分成若干个TS包,每个TS包都使用同一个PID和同一个TableID。在机顶盒的DEMUX(Demultiplex 解复用)模块只要设置了这两个值就可以正确获取到所有的升级数据。
根据传输流的传输特点:数据循环轮播,也就是说,错过了这一次还可以在下次同样的数据到来的时候接收,轮播的数据的最小单位是TS包。比TS包更上一级的传输单位是Section(数据段),一个Section最多为4096个字节。一个Section可以被分成若干个TS包。升级数据可以拆分成很多个Section,可以给每个Section进行编号[0,1,2,3…255]。如此,在升级传输流文件中,每一个Section都有一个统一的PID和TableID。根据DEMUX的特点,如果设置的筛选条件只有PID和TableID的话,那么每个Section将被随机的接收,而如果将Section的编号也做为数据筛选条件的话,那么DEMUX就会接收到这个完整的Section数据。但是由于数据包是采用循环轮播的方式,如果指定接收某个Section的话,那就会需要一定的随机等待时间。假设:升级文件被拆分成2000个数据块Section,任意接收一个Section的时间为0.01秒,即每秒可以接收到100个Section,那么每个Section的平均等待时间为20秒。实际应用中,通过DEMUX中所采用的一些技术,实际每个Section的等待时间大约为2-3秒,那么升级文件的全部接收完成需要2000*2=4000秒,超过1小时。由于在升级的过程中机顶盒不能播放电视节目,因此该过程要求以尽可能短的时间完成,现在通常要求控制在数分钟以内。可见,实有必要对现有的空中升级的数据下载速度进行优化。
发明内容
本发明要解决的技术问题在于克服上述现有技术存在的不足,而提出一种机顶盒软件空中升级数据下载的方法,可以有效地优化升级数据下载速度。
本发明针对上述技术问题而提出的技术方案包括,提出一种机顶盒软件空中升级数据下载的方法,包括:将升级数据组合成一文件,将该文件在逻辑上切分为若干个数据块,将这些数据块连续编号,并将有关该文件的描述信息封装到起始块中;将各数据块分别对应于一个数据段,并使数据段的扩展表ID号及段号与数据块的编号相对应;将该升级数据以数据段的形式传输;从数据流中捕获到对应于起始块的数据段,通过解析起始块中的块描述信息,获取数据总长度和块的总数;以数据段的形式解析各数据块,直至所有的数据块接收完成。
所述的以数据段的形式解析各数据块,直至所有的数据块接收完成的过程,具体包括:依数据块的编号次序,一块一块地解析各数据块,直至所有的数据块接收完成的过程,以实现数据块的顺序接收。
所述的以数据段的形式解析各数据块,直至所有的数据块接收完成的过程,具体包括:创建一个数组来记录每个数据块的接收情况,该数组的长度与升级数据的块的总数相等,数组的每个元素对应一个数据块,每个元素的值可用以标记该元素所对应的数据块是否已经接收完成,以实现数据块的随机接收。
每个元素均是以1表示数据块已经接收完成并以0表示数据块未接收完成的。
如果在接收到一些数据块之后重复出现已经接收完成的数据块的情形,则重置数据块的编号,使其从头开始,依数据块的编号次序,一块一块地解析各数据块,直至所有的、先前未接收完成的数据块全部接收完成,以实现数据块的顺序接收。
所述的将这些数据块连续编号的过程,具体包括:按[0,1,2,3,…N]的顺序进行数据块的编号,所述的起始块对应编号为0,起始块之外的各数据块为[1,2,3,…N]。
所述的使数据段的扩展表ID号及段号与数据块的编号相对应,具体包括:数据段的扩展表ID号=数据块的编号/256,数据段的段号=数据块的编号%256。
所述的从数据流中捕获到对应于起始块的数据段的过程,具体包括:将针对数据段的筛选器的扩展表ID号项设置为0。
起始块之外的各数据块的接收完成,具体包括:将针对数据段的筛选器的扩展表ID号项设置为数据块所对应的数据段的扩展表ID号,将针对数据段的筛选器的数据段的段号项设置为数据块所对应的数据段的段号。
每个数据块的大小是可设置的,每个数据块的最大值不超过一个数据段的最大值。
与现有技术相比,本发明的机顶盒软件空中升级数据下载的方法,通过将升级数据进行逻辑分块并对分块赋予连续编号,可以有效地优化升级数据下载速度。
附图说明
图1是机顶盒软件空中升级的流程示意。
图2是本发明的机顶盒软件空中升级数据下载的方法第一实施例的流程示意。
图3a和图3b是本发明的机顶盒软件空中升级数据下载的方法第二实施例的流程示意,其中,图3a是主流程,图3b是分支流程。
具体实施方式
以下结合附图,以机顶盒为例,对本发明予以进一步地详尽阐述。
本发明的构思是:将升级数据组合成一文件,将该文件在逻辑上切分为若干个数据块,将这些数据块连续编号,并将有关该文件的描述信息封装到起始块中;将各数据块分别对应于一个数据段,并使数据段的扩展表ID号及段号与数据块的编号相对应;将该升级数据以数据段的形式传输;从数据流中捕获到对应于起始块的数据段,通过解析起始块中的块描述信息,获取数据总长度和块的总数;以数据段的形式解析各数据块,直至所有的数据块接收完成。
本发明,引入了一个数据块Block的概念:把需要升级的程序文件使用一个PC工具打包成一个文件,然后将这一个文件在逻辑上切分成若干个数据块,每个数据块的大小可以设置。并且将这些数据块进行连续的编号[0,1,2,3,…N],并且定义块号为0的块为该文件的一些描述信息,比如:文件的长度、每一个块的大小、总的块数、文件校验和等。
先接收到编号为0的数据块。然后根据该数据块的解析结果继续接收后面的数据。要筛选出来编号为0的数据块可以设置扩展表ID即TableID_Ext为0。剩余的数据TableID_Ext为1到65535,而Section Number为0到255循环。也即:块号为1的时候,TableID_Ext值为1、Section Number为0;块号为2的时候,TableID_Ext为1、Section Number为1;块号为3的时候,TableID_Ext为1、Section Number为2;块号为256的时候,TableID_Ext为1、SectionNumber为255;块号为257的时候,TableID_Ext为2、Section Number为0;块号为258的时候,TableID_Ext为2、Section Number为1;因此总共可以编号的数据块数目为65535*256=16776960,而一个块的最大值为一个Section的最大值:4096个字节。这样可以被拆分的文件的最大容量为16776960*4096=68718428160个字节,显然目前根本不可能有这么大的文件做为升级文件。解包是数据打包的逆过程,只要解析出这个随机接收到的Section的TableID_Ext和Section Number的值,就可以计算出该Section是文件中的第几块数据。根据这个索引再结合对数据块0的解析中数据块的大小,就可以将该数据块拷贝到目标内存数据的相应位置。同时在此之前,根据对数据块0的解析可以知道总的块数,可以创建一个总块数大小的数组,用该数组的每个元素的值表示该数据块是否已经接收完成,如果为0表示没有接收,如果为1表示已经接收,所以每接收到一个完整的数据块,只需要简单地将一个数组元素赋值为1即可,同时将记录已经接收到数据块的总数加1。这样就可以通过比较已经接收到数据块的总数和对数据块0的解析得到总的块数的数目进行一个大小比较以判断是否接收完成。与此同时,可以通过遍历前面的接收状态数组就获悉有哪些数据块没有接收到。
综上,本发明的机顶盒软件空中升级数据下载的方法具有以下几个特点。
1、使用一个数组来记录每一个数据块的接收情况,在接收前将所有的数组值设置为0,当某个数据块成功接收之后,将其对应的数组元素的值设置为1,因此在后续的任意时段可以通过查询该数组元素的值就可以知道某个数据块是否已经接收,也可以通过遍历该数组对未接收到的数据块重新接收。
2、进一步地,可以由顺序接收Section变为随机接收,随机接收的实现原理是升级文件从头至尾被拆分为编号连续的数据块。因为每个数据块的大小为一个确定的值,这样根据接收到的数据块的编号就可以知道该数据块在文件中的位置,这样就可以实现即使是随机接收数据块也可以还原文件的全部数据。
3、如果由于码流的播放速度或者DEMUX的驱动的原因不能够一次性全部接收完所有的数据块,也就是在所有的数据块接收完成之前有已经接收过的数据块再次被接收到。那么就通过遍历上述的数组,对没有接收到的Section进行针对于特定数据块的接收处理。
参见图2,本发明的机顶盒软件空中升级数据下载的方法第一实施例,具体流程大致包括以下步骤:
S101:设置Channel(通道)的PID;
S102:设置Filter(筛选器)的TableID;
S103:设置Filter的TableID_Ext=0,该Section为块描述信息;
S104:解析块描述信息,获取数据总长度和块的总数Total;
S105:依数据块的编号次序,一块一块地解析各数据块,直至所有的数据块接收完成的过程,以实现数据块的顺序接收。
其中,步骤S105可进一步细分为以下子步骤:
S1051:判断当前接收的数据块的块号BlockNo是否<Total?,是的话,转S1052,否则,转S1054;
S1052:设置Filter的TableId_Ext=BlockNo/256,
Filter的SectionNum=BlockNo%256;
S1053:解析Section数据,然后BlockNo加1,返回S1051;
S1054:所有数据接收完成,结束。
参见图3a和图3b,本发明的机顶盒软件空中升级数据下载的方法第二实施例,具体流程大致包括以下步骤:
S201:设置Channel的PID;
S202:设置Filter的TableID;
S203:设置Filter的TableID_Ext=0,该Section为块描述信息;
S204:解析块描述信息,获取数据总长度和块的总数Total;
S205:只设置Channel的PID和Filter中的TableId;
S206:通过一个数组来记录每个数据块的接收情况,该数组的长度与升级数据的块的总数相等,数组的每个元素对应一个数据块,每个元素的值可用以标记该元素所对应的数据块是否已经接收完成,以实现数据块的随机接收;
S207:当出现接收重复时,即出现Rece[BlockNo]=1的情形时,数据块的编号,使其从头开始,也就是:BlockNo从1开始直到等于Total,依数据块的编号次序,一块一块地解析各数据块,直至所有的、先前未接收完成的数据块全部接收完成,以实现数据块的顺序接收,需要说明的是,期间遇到先前已经接收完成的数据块时,是可以直接跳过、无须再次接收的。
需要说明的是,如果实际应用中每次随机接收到的Section都不会重复,直到全部接收完成,那么就只需要进行上述的图3a所示的主流程。但是实际测试可以发现:当接收到一定数据的Section之后,就会出现重复接收到前面已经接收过的Section的现象,出现重复接收的时间和码流的播放速度和DEMUX模块的驱动有关,由于这部分内容与本发明的相关性不大,在此不予进一步展开论述。针对于这种现象,本发明相应地提出了一种均衡的解决办法,也就是,图3b所示的分支流程,对应于上述的步骤S207。
其中,步骤S206可进一步细分为以下子步骤:
S2061:判断当前已接收的数据块数量ReceivedBlockNum是否<Total?,是的话,,转S2062,否则,转S2065;
S2062:解析数据BlockNo = (TableID_Ext-1)*256 +SectionNo;
S2063:判断当前接收的数据块是否已经存在Rece[BlockNo]==1?,是的话,转分支B,也就是步骤S207,否则,转S2064;
S2064:该数据块是新接收的,Rece[BlockNo]=1,ReceivedBlockNum加1,返回S2061;
S2065:所有数据接收完成,结束。
其中,步骤S207可进一步细分为以下子步骤:
S2071:重置BlockNo,使其从头开始;
S2072:判断是否同时满足Rece[BlockNo]==0并且BlockNo<Total? ,是的话,转S20732,否则,转S2075;
S2073:设置Filter的TableId_Ext=BlockNo/256,
Filter的SectionNum=BlockNo%256;
S2074:解析Section数据,然后BlockNo加1,返回S2072;
S2075:所有数据接收完成,结束。
与现有技术相比,本发明的机顶盒软件空中升级数据下载的方法,通过引入数据块及相应的管理办法,可以使各个数据段的接收过程独立,进一步地,通过设置数组来对数据块的接收状态进行管理,可以使数据段的接收由顺序转换为随机,从而能够有效地实现升级数据下载速度的优化。
上述内容,仅为本发明的较佳实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。

Claims (10)

1.一种机顶盒软件空中升级数据下载的方法,其特征在于,包括:
将升级数据组合成一文件,将该文件在逻辑上切分为若干个数据块,将这些数据块连续编号,并将有关该文件的描述信息封装到起始块中;将各数据块分别对应于一个数据段,并使数据段的扩展表ID号及段号与数据块的编号相对应;将该升级数据以数据段的形式传输;
从数据流中捕获到对应于起始块的数据段,通过解析起始块中的块描述信息,获取数据总长度和块的总数;以数据段的形式解析各数据块,直至所有的数据块接收完成。
2.依据权利要求1所述的方法,其特征在于,所述的以数据段的形式解析各数据块,直至所有的数据块接收完成的过程,具体包括:
依数据块的编号次序,一块一块地解析各数据块,直至所有的数据块接收完成的过程,以实现数据块的顺序接收。
3.依据权利要求1所述的方法,其特征在于,所述的以数据段的形式解析各数据块,直至所有的数据块接收完成的过程,具体包括:
创建一个数组来记录每个数据块的接收情况,该数组的长度与升级数据的块的总数相等,数组的每个元素对应一个数据块,每个元素的值可用以标记该元素所对应的数据块是否已经接收完成,以实现数据块的随机接收。
4.依据权利要求3所述的方法,其特征在于,每个元素均是以1表示数据块已经接收完成并以0表示数据块未接收完成的。
5.依据权利要求3所述的方法,其特征在于,如果在接收到一些数据块之后重复出现已经接收完成的数据块的情形,则重置数据块的编号,使其从头开始,依数据块的编号次序,一块一块地解析各数据块,直至所有的、先前未接收完成的数据块全部接收完成,以实现数据块的顺序接收。
6.依据权利要求1所述的方法,其特征在于,所述的将这些数据块连续编号的过程,具体包括:
按[0,1,2,3,…N]的顺序进行数据块的编号,所述的起始块对应编号为0,起始块之外的各数据块为[1,2,3,…N]。
7.依据权利要求6所述的方法,其特征在于,所述的使数据段的扩展表ID号及段号与数据块的编号相对应,具体包括:
数据段的扩展表ID号=数据块的编号/256,数据段的段号=数据块的编号%256。
8.依据权利要求7所述的方法,其特征在于,所述的从数据流中捕获到对应于起始块的数据段的过程,具体包括:将针对数据段的筛选器的扩展表ID号项设置为0。
9.依据权利要求7所述的方法,其特征在于,起始块之外的各数据块的接收完成,具体包括:将针对数据段的筛选器的扩展表ID号项设置为数据块所对应的数据段的扩展表ID号,将针对数据段的筛选器的数据段的段号项设置为数据块所对应的数据段的段号。
10.依据权利要求1至9任一所述的方法,其特征在于,每个数据块的大小是可设置的,每个数据块的最大值不超过一个数据段的最大值。
CN201110414055.3A 2011-12-13 2011-12-13 机顶盒软件空中升级数据下载的方法 Active CN103167348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110414055.3A CN103167348B (zh) 2011-12-13 2011-12-13 机顶盒软件空中升级数据下载的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110414055.3A CN103167348B (zh) 2011-12-13 2011-12-13 机顶盒软件空中升级数据下载的方法

Publications (2)

Publication Number Publication Date
CN103167348A CN103167348A (zh) 2013-06-19
CN103167348B true CN103167348B (zh) 2017-03-08

Family

ID=48590037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110414055.3A Active CN103167348B (zh) 2011-12-13 2011-12-13 机顶盒软件空中升级数据下载的方法

Country Status (1)

Country Link
CN (1) CN103167348B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103517141B (zh) * 2013-10-11 2017-04-05 成都三零凯天通信实业有限公司 基于ip机顶盒分段式数据升级方法
US10866796B2 (en) 2014-04-18 2020-12-15 Huawei Device Co., Ltd. Software upgrade method and apparatus, and device
CN105677234A (zh) * 2014-11-22 2016-06-15 重庆市上卓信息技术有限公司 数据切分与合并系统及其方法
CN106155734B (zh) * 2015-04-27 2020-09-18 南京中兴软件有限责任公司 一种软件版本的下载方法及装置
CN106293622B (zh) * 2016-08-10 2020-12-22 高新兴物联科技有限公司 一种断电自恢复的空中升级方法及装置
CN107908417B (zh) * 2017-10-24 2021-06-29 北京臻迪科技股份有限公司 固件升级方法及电子设备
CN110020359B (zh) * 2017-11-08 2024-04-05 亿阳信通股份有限公司 应用在网页前端的数据处理方法、装置及存储介质
CN108882026A (zh) * 2018-06-15 2018-11-23 深圳市茁壮网络股份有限公司 一种基于ts流的大文件传输方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101356752A (zh) * 2006-01-05 2009-01-28 Kddi株式会社 广播内容传送装置及方法、广播内容接收装置及方法、和程序

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100438858B1 (ko) * 2002-02-07 2004-07-05 엘지전자 주식회사 데이터 방송의 수신속도를 향상시키는 방법
CN101515967B (zh) * 2009-03-18 2012-10-10 中兴通讯股份有限公司 一种终端固件空中下载装置及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101356752A (zh) * 2006-01-05 2009-01-28 Kddi株式会社 广播内容传送装置及方法、广播内容接收装置及方法、和程序

Also Published As

Publication number Publication date
CN103167348A (zh) 2013-06-19

Similar Documents

Publication Publication Date Title
CN103167348B (zh) 机顶盒软件空中升级数据下载的方法
CN107645669A (zh) 多屏显示控制方法、装置及系统
CN101800842B (zh) 机顶盒软件升级方法
CN103596036B (zh) 一种流媒体播放器智能缓冲方法
CN106559706B (zh) 一种音频数据的处理方法、装置和系统
CN101980522A (zh) 一种基于数字机顶盒开机视频广告的实现方法
CN101212689A (zh) 数字电视信号接收设备的软件升级方法
CN103905890A (zh) 一种epg信息自动校验修正方法、装置及系统
CN105981397A (zh) 将编码音频嵌入到传输流中以供用于完美拼接
CN105264898A (zh) 软件升级方法、装置及设备
CN201383841Y (zh) 数字电视机顶盒应用更新升级系统及机顶盒
US20040123332A1 (en) Transmission systems
CN103648011A (zh) 一种基于hls协议的音视频同步装置和方法
CN102215354A (zh) 电视机及其频道信息更新的方法
CN104079993A (zh) 一种机顶盒升级方法、机顶盒、服务器和系统
CN101990128A (zh) 对象轮播的方法及装置及对象轮播下载的方法及装置
CN103813122A (zh) 影像装置控制系统、影像装置串接设备及影像装置控制方法
US20170048584A1 (en) Network set-top box and its operating method
CN102629998B (zh) 一种可批量升级的电视机的批量升级、开机引导方法
US20140223489A1 (en) Television channel mapping techniques
CN104954832A (zh) 基于机顶盒的用户交互方法及系统
CN102244752A (zh) 一种自动更新升级电视频道数据库的方法及电视机
CN105847990B (zh) 播放媒体文件的方法和设备
CN202334794U (zh) 码流播发系统
US20080092197A1 (en) Method of upgrading software by using common module shared by multiple models, and digital broadcast receiver therefor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant