在机顶盒中单独升级业务软件的实现方法和装置的制作方法

文档序号:7617229阅读:175来源:国知局
专利名称:在机顶盒中单独升级业务软件的实现方法和装置的制作方法
技术领域
本发明涉及数字电视领域,尤其涉及一种在机顶盒中单独升级业务软件升级实现方法和装置。
背景技术
为吸引用户、推进数字电视用户数量的增长、发掘利润增长点,广电运营商除了丰富数字电视节目外,还需要不断推出个性化的、可双向互动的、可持续发展的数字电视数据业务。
在数字电视领域,机顶盒终端提供厂商和数字电视业务提供厂商往往不是同一厂商,但双方的软件在机顶盒上则是紧密地链接在一起的,缺一不可。机顶盒终端厂商软件定位在提供稳定的操作系统平台、资源管理、硬件驱动、图像解码、屏幕显示等基础性的、硬件级的软件操作平台;而数字电视业务提供厂商的软件则定位于依托机顶盒终端厂商提供的平台进行二次开发,按照广电运营商的需求提供诸如多媒体彩信、短消息、股票业务、信息咨询等数字电视数据业务。由于双方软件定位的不同,进而引发不同程度的软件更新需求。
目前市场上使用的机顶盒软件,通常包含机顶盒终端软件、业务软件和接口适配软件三个部分。经过编译器和链接器处理,这三部分作为整体按照一定的规则保存在机顶盒内部的非易失性存储器件中。任何片面的、单方面的、局部数据的修改都能导致系统运行时崩溃。所以,当要升级其中某一部分时,都必须重新制作执行文件,然后一起升级。传统升级方案原理如图1所示。
在目前的升级方案中,如果业务提供厂商有升级其软件的需求,需经过以下步骤(A)获取与机顶盒终端CPU配套的编译器,制作执行文件(Makefile),编译业务软件,生成业务软件库;(B)机顶盒终端更改其Makefile,生成机顶盒软件库以及接口适配模块库;(C)机顶盒终端将业务软件库、机顶盒软件库以及接口适配模块库链接成一个目标文件,并生成可执行文件;(D)将可执行文件按照已定的协议通过升级服务器复用到某一传输流TS(Transport Stream);(E)机顶盒软件的升级模块接收并提取数据,组装升级文件;(F)将新收到的升级文件写入非易失性存储器件(如FLASH)。
很显然,目前业界的技术方案中机顶盒软件同业务软件必须同时升级。而数字电视业务提供商对软件升级的需求远大于机顶盒终端提供厂商的升级需求。考虑到升级过程中给用户带来的不方便性,机顶盒终端提供厂商往往不愿意或者不配合数字电视业务提供商的软件升级。毫无疑问,这给数字电视业务的开展带来了不必要的麻烦。业务软件升级的同时必须升级机顶盒终端软件,致使业务软件提供商受制于机顶盒终端提供商;在带宽较小的情况下,不仅升级时间长和用户体验效果比较差,而且浪费复用器带宽。

发明内容
本发明提供一种在机顶盒中单独升级业务软件的实现方法和装置,以解决现有技术升级机顶盒内的业务软件时必须同是升级机顶盒终端软件的问题。
实现本发明的技术方案如下一种在机顶盒中单独升级业务软件的实现方法,包括如下步骤A、将业务软件按照预定的协议通过业务软件升级服务器复用到一指定的传输流;B、机顶盒终端软件从所述传输流提取和保存所述业务软件;C、重新启动机顶盒终端软件后,机顶盒终端软件和业务软件分别获取对方软件接口函数的地址;D、机顶盒终端软件和业务软件分别利用获取的地址更新所需的业务软件接口函数的缺省地址和所需的终端软件接口函数的缺省地址。
步骤B中,保存业务软件前对该业务软件进行完整性或合法性检查,并在通过检查后将该业务软件保存在非易失性存储器件中。
通过机顶盒终端软件调用业务软件初始化接口,由机顶盒终端软件将业务软件所需的机顶盒终端软件函数接口地址发送给业务软件,和由业务软件将机顶盒终端软件所需的业务软件接口函数地址发送机顶盒终端软件。
步骤C中,由机顶盒终端软件调用操作系统提供的重定位功能重新定位所述业务软件,并向机顶盒终端软件返回重新定位后的业务软件函数接口地址。
一种装载装置,其特征在于包括初始化接口模块、新版本业务软件处理模块、业务软件接口提取模块和业务软件接口更新模块,其中所述新版本业务处理模块用于检测和保存新版本的业务软件,并将业务软件的存储位置返回给初始化接口模块;所述初始化接口模块用于同机顶盒终端软件模块交互,接受调用指令,和依据调用指令调用业务软件接口模块来提取业务软件接口信息;所述业务软件接口模块用于同业务软件模块交互和提取业务软件接口信息,并将所述业务软件接口信息发送至业务软件接口更新模块;
业务软件接口更新模块用于根据业务软件模块提供的函数地址更新机顶盒终端软件所需的各业务软件接口函数的缺省地址。
所述装载装置还包括检查模块,用于接受新版本业务软件处理模块指令对所述业务软件进行合法性或完整性检查,并将检查结果反馈至新版本业务处理模块。
所述业务软件接口模块用于提取业务软件初始化接口,并向业务软件模块发送其所需的机顶盒终端函数接口的地址信息,接受业务软件模块返回的机顶盒终端软件所需的业务软件接口函数地址,并将所述业务软件接口函数地址返回到业务软件接口更新模块。
所述业务软件接口模块用于调用机顶盒终端操作系统提供的重定位功能模块对业务软件进行重新定位,并将所述重新定位后的业务软件函数接口的地址返回到业务软件接口更新模块。
所述装载装置集成于机顶盒终端、业务软件服务器或者其他独立装置上。
本发明具有以下有益效果1、通过本发明所述的技术方案,由于业务软件与机顶盒终端软件之间没有直接的函数接口,两者相互独立,从而可以实现业务软件与机顶盒终端软件的单独升级;2、本发明还避免了运营商重复建设升级服务器,从而节省了运营商建网成本;3、由于业务软件可独立于机顶盒终端软件,故在原分配的升级服务器带宽的情况下,可以实现业务软件的快速升级,减少用户的等待时间,从而提高用户体验;4、由于业务软件独立于机顶盒终端软件,业务软件可以脱离机顶盒软件单独存放在非易失性存储器的其他位置,因而,对其进行的加密和压缩都是可行的,从而避免业务软件被反汇编的可能,大大地提高了软件的安全性。


图1为现有技术中机顶盒软件与业务软件升级方案;图2为本发明机顶盒软件与业务软件升级方案;图3为本发明所述方法的流程图;图4为本发明所述下载模块的结构图。
具体实施例方式
本发明的升级方案如图2所示,将已经升级的业务文件单独发往业务升级服务器。获取与机顶盒终端CPU配套的编译器,制作Makefile,编译业务软件,生成业务软件库。本发明的升级过程如图3所示,其基本过程如下A、将业务软件按照已定的协议通过业务软件升级服务器复用到某一指定传输流(TS);B、机顶盒终端软件检测到新版本的业务软件并提取数据,将其保存在非易失性存储器件中;C、重新启动机顶盒终端软件后,机顶盒终端软件和业务软件分别获取对方软件接口函数的地址;D、机顶盒终端软件和业务软件分别利用获取的地址更新所需的业务软件接口函数的缺省地址和所需的终端软件接口函数的缺省地址。
机顶盒终端保存新版本的业务软件后,在指定的存储单元写入一个特定的标识,当机顶盒终端软件下次启动后从所述存储单元读取标识,若该标识为特定的标识则进行上述步骤C,即进入业务软件升级流程;否则进入正常的业务流程。
在步骤B中,机顶盒终端软件检测到新版本的业务软件并提取数据后,可以进行完整性、合法性检查、校验版本检查或升级信息有效性检查,检查通过后,再将其保存在非易失性存储器件中。
所述业务软件可以是可重定位目标文件也可以是绝对定位目标文件。
作为本发明的第一实施例,业务软件库生成后可以通过专门的定位工具将业务软件库绝对定位到协定的内存位置,此时本发明所述的升级实现方法具体包括如下步骤(A1)按照已定的协议(如数字存储媒体-命令与控制DSMCC(DigitalStorage Media-Command & Control)标准协议)通过业务软件升级服务器将绝对定位的业务软件复用到某一指定的传输流TS(Transport Stream)流;(B1)机顶盒终端软件检测到新版本的业务软件并开始提取数据,完成后检查业务软件的合法性和完整性,通过后保存业务软件;(C1)机顶盒终端软件下次启动后,调用业务软件初始化接口,向业务软件发送其所需的机顶盒终端软件函数的接口地址。业务软件初始化接口作为回报,也向机顶盒终端软件返回机顶盒终端软件所需的业务软件接口函数地址;(D1)业务软件正式启动,根据机顶盒终端软件提供的函数地址更新其内部定义的机顶盒终端软件缺省地址;(E1)机顶盒终端软件根据业务软件提供的函数地址更新机顶盒终端软件所需的各业务软件接口函数的缺省地址;(F1)机顶盒终端软件和业务软件均使用更新后的接口地址。
作为本发明的第二实施例,对于部分支持软件重定位的机顶盒终端而言,业务软件无需先生成绝对定位目标文件,而是在业务软件库生成,将业务软件制作成可重定位目标文件。此时本发明所述的升级实现方法具体包括如下步骤(A2)将业务软件按照已定的协议通过业务软件升级服务器复用到某一指定TS流;(B2)机顶盒终端软件检测到新版本的业务软件并开始提取数据,完成后检查业务软件的合法性和完整性,通过后保存业务软件;(C2)当机顶盒终端软件下次启动后,机顶盒终端软件调用操作系统提供的重定位功能将业务软件重新定位,并返回重新定位后的业务软件函数接口的地址;(D2)业务软件正式启动,根据机顶盒终端软件提供的函数地址更新其内部定义的机顶盒终端软件缺省地址;(E2)机顶盒终端软件根据业务软件提供的函数地址更新机顶盒终端软件所需的各业务软件接口函数的缺省地址;(F2)机顶盒终端软件和业务软件均使用更新后的接口地址。
本发明还提供一种装载装置。该模块用于按照已定的协议,如DSMCC标准协议,从传输流TS中提取业务软件升级文件数据,并将其写入非易失性存储器件,如FLASH。同时,该模块也可以完成业务软件启动时的版本检查,合法性检查,完整性检查,升级信息有效性检查等。
如图4所示,所述装载装置包括初始化接口模块、新版本业务软件处理模块、业务软件接口提取模块、业务软件接口更新模块。其中,当将业务软件按照已定的协议通过业务软件升级服务器复用到某一指定TS流后,所述新版本业务处理模块用于检测新版本的业务软件并提取数据,保存业务软件,并将业务软件的存储位置返回给初始化接口模块。
机顶盒终端软件下次启动后,机顶盒终端软件模块调用初始化接口模块,初始化接口模块再调用业务软件接口模块要求提取业务软件接口信息。业务软件接口模块同业务软件模块交互提取业务软件接口信息,并将所述业务软件接口信息发送至业务软件接口更新模块,业务软件接口更新模块根据业务软件模块提供的函数地址更新机顶盒终端软件所需的各业务软件接口函数的缺省地址。
作为本发明装载装置的第一种实现方式,当将业务软件按照已定的协议通过业务软件升级服务器复用到某一指定TS流后,所述新版本业务处理模块用于检测新版本的业务软件并提取数据,向检查模块发送开始检查指令,检查模块接收所述指令,对所述业务软件进行合法性检查及完整性检查,检查通过后,将通过结果反馈至新版本业务处理模块,所述新版本业务处理模块保存业务软件,并将业务软件的存储位置返回给初始化接口模块。
机顶盒终端软件下次启动后,机顶盒终端软件模块调用初始化接口模块,初始化接口模块再调用业务软件接口模块要求提取业务软件接口信息。业务软件接口模块提取业务软件初始化接口,并向业务软件模块发送其所需的机顶盒终端函数接口的地址信息,接受业务软件模块返回的机顶盒终端软件所需的业务软件接口函数地址,并将所述业务软件接口函数地址发送至业务软件接口更新模块,业务软件接口更新模块根据业务软件模块提供的函数地址更新机顶盒终端软件所需的各业务软件接口函数的缺省地址。
作为本发明所述装载装置的第二种实现方式,当已制作成可重定位目标文件的业务软件按照已定的协议通过业务软件升级服务器被复用到某一指定TS流后,所述新版本业务处理模块用于检测新版本的业务软件并提取数据,向检查模块发送开始检查指令,检查模块接收所述指令,对所述业务软件进行合法性检查及完整性检查,检查通过后,将通过结果反馈至新版本业务处理模块,所述新版本业务处理模块保存业务软件,并将业务软件的存储位置返回给初始化接口模块。
机顶盒终端软件下次启动后,机顶盒终端软件模块调用初始化接口模块,初始化接口模块再调用业务软件接口模块要求提取业务软件接口信息。业务软件接口模块调用机顶盒终端操作系统提供的重定位功能模块对业务软件进行重新定位,并将所述重新定位后的业务软件函数接口的地址发送至业务软件接口更新模块,业务软件接口更新模块根据业务软件提供的函数地址更新机顶盒终端软件所需的各业务软件接口函数的缺省地址。
通过本发明所述的技术方案,由于业务软件与机顶盒终端软件之间没有直接的函数接口,两者相互独立,从而可以实现业务软件与机顶盒终端软件的单独升级;避免了运营商重复建设升级服务器,从而节省了运营商建网成本;且可以实现业务软件的快速升级,减少用户的等待时间,从而提高用户体验;大大地提高了业务提供商知识产权的安全性。
权利要求
1.一种在机顶盒中单独升级业务软件的实现方法,其特征在于,包括如下步骤A、将业务软件按照预定的协议通过业务软件升级服务器复用到一指定的传输流;B、机顶盒终端软件从所述传输流提取和保存所述业务软件;C、重新启动机顶盒终端软件后,机顶盒终端软件和业务软件分别获取对方软件接口函数的地址;D、机顶盒终端软件和业务软件分别利用获取的地址更新所需的业务软件接口函数的缺省地址和所需的终端软件接口函数的缺省地址。
2.如权利要求1所述的方法,其特征在于步骤B中,保存业务软件前对该业务软件进行完整性或合法性检查,并在通过检查后将该业务软件保存在非易失性存储器件中。
3.如权利要求1所述的方法,其特征在于,步骤C中,通过机顶盒终端软件调用业务软件初始化接口,由机顶盒终端软件将业务软件所需的机顶盒终端软件函数接口地址发送给业务软件,和由业务软件将机顶盒终端软件所需的业务软件接口函数地址发送机顶盒终端软件。
4.如权利要求1所述的方法,其特征在于,步骤C中,由机顶盒终端软件调用操作系统提供的重定位功能重新定位所述业务软件,并向机顶盒终端软件返回重新定位后的业务软件函数接口地址。
5.一种装载装置,其特征在于包括初始化接口模块、新版本业务软件处理模块、业务软件接口提取模块和业务软件接口更新模块,其中所述新版本业务处理模块用于检测和保存新版本的业务软件,并将业务软件的存储位置返回给初始化接口模块;所述初始化接口模块用于同机顶盒终端软件模块交互,接受调用指令,和依据调用指令调用业务软件接口模块来提取业务软件接口信息;所述业务软件接口模块用于同业务软件模块交互和提取业务软件接口信息,并将所述业务软件接口信息发送至业务软件接口更新模块;业务软件接口更新模块用于根据业务软件模块提供的函数地址更新机顶盒终端软件所需的各业务软件接口函数的缺省地址。
6.如权利要求5所述的装载装置,其特征在于,该装载装置还包括检查模块,用于接受新版本业务软件处理模块指令对所述业务软件进行合法性或完整性检查,并将检查结果反馈至新版本业务处理模块。
7.如权利要求5或6所述的装载装置,其特征在于,所述业务软件接口模块用于提取业务软件初始化接口,并向业务软件模块发送其所需的机顶盒终端函数接口的地址信息,接受业务软件模块返回的机顶盒终端软件所需的业务软件接口函数地址,并将所述业务软件接口函数地址返回到业务软件接口更新模块。
8.如权利要求5或6所述的装载装置,其特征在于所述业务软件接口模块用于调用机顶盒终端操作系统提供的重定位功能模块对业务软件进行重新定位,并将所述重新定位后的业务软件函数接口的地址返回到业务软件接口更新模块。
9.如权利要求1所述的装载装置,其特征在于,该装载装置集成于机顶盒终端、业务软件服务器或者其他独立装置上。
全文摘要
本发明公开一种机顶盒软件与业务软件升级实现方法,该方法将业务软件按照预定的协议通过业务软件升级服务器复用到一指定的传输流;机顶盒终端软件从所述传输流提取和保存所述业务软件;重新启动机顶盒终端软件后,机顶盒终端软件和业务软件分别获取对方软件接口函数的地址;机顶盒终端软件和业务软件分别利用获取的地址更新所需的业务软件接口函数的缺省地址和所需的终端软件接口函数的缺省地址。通过本发明使机顶盒软件与业务软件相互分离,可单独升级。
文档编号H04N5/44GK1848837SQ200510064280
公开日2006年10月18日 申请日期2005年4月14日 优先权日2005年4月14日
发明者李耀辉, 戴玉勤 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1