一种IPTV机顶盒的软件在线升级方案设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文章编号:167121742(2006)0620816204

一种IPTV 机顶盒的软件在线升级方案设计与实现

杨崇江, 孙世新

(电子科技大学计算机科学与工程学院,四川成都610054)

摘要:介绍了一种基于嵌入式Linux 系统的IPTV 机顶盒的软件在线升级实现方案。该方案的机顶盒Flash

中,除存储了运行正常业务的内核和文件系统外,额外存储了一套内核和文件系统,从而构成双操作系统,以支持

网络在线升级。利用嵌入式Linux 系统的引导加载系统功能和M TD 技术,在一款使用MIPS 处理器的机顶盒上,

实现了安全可靠且灵活的在线升级功能。

关 键 词:嵌入式Linux ;引导转载系统;内核;文件系统;机顶盒

中图分类号:TP311152 文献标识码:A

收稿日期:2005212215

1 概述

IPTV 即交互式网络电视,是一种利用宽带有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。用户在家中通过网络机顶盒+普通电视机享受IPTV 业务。IPTV 机顶盒是扩展电视机功能的一种新型家用电器,它把互联网的数字信号转换成模拟电视机可以接收的信号,使观众可以在现存模拟电视机上观看数字电视节目,进行交互式数字化娱乐、教育和商业化活动的消费类电子产品。

机顶盒作为一个嵌入式计算机系统,软件在其中起了重要作用。商业应用中的机顶盒,如需解决软件中存在的Bug ,提高运行性能,修改某项业务或应用等,都要对软件进行升级。目前,机顶盒的软件升级有两种方式:一种是在本地利用PC 机通过串口将软件下载到机顶盒,完成软件的升级,另一种是利用网络进行在线升级。前者只能在本地进行软件升级操作,不适合用户操作,而后者通过升级服务器与机顶盒的配合,用户很少参与就能完成升级,故使用较为广泛。通过在线升级,能尽量延长机顶盒的使用寿命和支持新业务的能力。软件在线升级已成为机顶盒的一项基本功能,因此设计一种安全可靠的软件在线升级方案,是IPTV 机顶盒软件设计中一个非常重要环节。

2 基于嵌入式Linux 的IPTV 机顶盒设计

机顶盒使用了双处理器的硬件设计方案,一个多媒体DSP 加上一个M IPS 架构网络处理器。DSP 负责音、视频解码、播放与显示功能,而网络处理器负责与用户交互,接入网络、通过网络与相关服务器进行数据交互并将视频流媒体数据交给DSP 处理。机顶盒需要一个固态存储设备,使用Flash 作为固态存储设备,作为网络处理器系统的一部分。机顶盒的网络处理器系统的选择使用嵌入式Linux 操作系统,在线升级功能在网络处理器上实现。

IPTV 机顶盒,首先需要在电视机上播放数字电视节目;其次具有交互性,用户能够通过外设进行节目浏览,切换电视节目,互动游戏等;第三是基于网络的,需要支持TCP/UDP/IP 协议族,完成互操作信息的网络传输,接收及处理IP 数据和视频流媒体数据。因此其软件主要由以下4个部分组成:

(1)播放器模块;

(2)浏览器模块;

(3)红外遥控的接收处理模块;

(4)网络接入与网络数据交互模块。

一个完整的嵌入式Linux 系统通常由引导装载系统、内核、文件系统3部分组成。引导装载系统的选用与设第21卷第6期

2006年12月成 都 信 息 工 程 学 院 学 报JOURNAL OF CHEN G DU UNIV ERSITY OF INFORMATION TECHNOLO GY Vol.21No.6Dec.2006

置,与硬件有很大的关系。网络处理器系统使用的引导装载分为硬件初始化(BOO T )、内核装载(LOAD )两部分。硬件初始化部分完成系统复位后的CPU 初始化、各个功能寄存器的初始化、Flash 、SDRAM 、串口以及以太网口等基本硬件初始化,并为执行内核装载部分准备运行环境。接着,将内核装载部分程序拷贝到内存中,并转去执行。该部分程序在网络处理器的Flash 中就地执行(eXecute In Place ),采用绝对地址的静态链接方式生成,运行代码使用绝对地址跳转。大部分代码使用M IPS 的汇编语言。内核装载部分解压缩嵌入式Linux 内核、设置内核启动参数并将内核加载到内存,接着启动内核。

内核一开始的启动程序代码会因构架不同而有很大的差异,而且在为C 程序代码设置适合的执行环境之前,它会先为自己进行初始化工作。完成以上工作后,内核会跳到与架构无关的start -kernel ()函数执行,此函数会初始化高层内核功能、安装根文件系统,以及启动init 进程。

选择适合嵌入式系统中使用的BusyBox 的init ,该init 设置信号处理进程,初始化控制台,解析inittab 文件(/etc/inittab ),接着根据解析结果执行inittab 指定的系统初始化命令(/etc/rc )以及inittab 中的其他命令。3 机顶盒的开机图片显示

IPTV 机顶盒是一种家用电器,设计时需充分考虑用户的体验。双处理器的机顶盒中,网络处理器与DSP 运行在不同的系统中,软件开发也相对独立。DSP 软件提供了一套对其控制的API ,网络处理器通过调用这些接口控制DSP ,处理器将媒体数据与控制命令发送给DSP ,并从DSP 获取其工作状态信息。

从处理器上电到启动应用程序,完成接入和认证,并最终显示EP G 首页需要20秒左右的时间,在这个过程中如果电视机上没有任何信号输出的话,用户是无法接受的。于是需修改系统的启动流程,在内核装载之前,通过调用控制DSP 的API ,在电视上显示一幅图片,称其为开机画面(由IPTV 的运营商定制)。初始化DSP 是双处理器机顶盒的关键技术之一,其实现的核心思想是通过SPI 和SPOR TS 建立通道。首先通过SPI 将一段微码发送给DSP ,初始化DSP 为SPOR TS 的从设备,准备接收处理器发送的数据;然后处理器利用SPOR TS 将DSP 的驱动代码发送给DSP ,DSP 执行该代码完成DSP 系统的初始化并等待处理器的进一步命令。

引导转载系统的硬件初始化部分执行时间很短,这样实现了上电3秒内显示开机画面,此后系统后台加载内核、启动主程序,进行网络接入与接入业务认证,最后EP G 界面覆盖开机画面。开机画面程序的执行在操作系统内核启动前,其执行和内核加载部分有相似之处,存储在确定的Flash 地址,并通过绝对跳转执行。

4 机顶盒的双系统升级方案设计

嵌入式Linux 中固态存储设备对系统组件的典型安排方式为引导装载系统、引导参数、内核和文件系统。对启动时开机画面显示的支持,要求存储开机画面相关的显示程序、DSP 驱动代码以及开机图片,它们作为一个整体独立于通用组件存储。为了实现安全可靠的在线升级功能,升级方案在Flash 中存储了独立于运行业务的内核和文件系统的新内核和文件系统,称展示IPTV 机顶盒的应用功能的系统为正常工作系统,而将新增加的用于升级的系统称为小系统。考虑到小系统损坏而需要升级以及小系统软件的其他更新需要,正常系统中也增加升级模块,支持对小系统的升级。运行基本业务的系统中,内核较小,而文件系统体积很大,特别是文件系统中的业务应用程序。小系统实现的功能就是升级,利用Linux 系统的可裁剪性,对小系统内核进一步裁减,去掉小系统中不需要的驱动模块与支持库;小系统的文件系统只提供少量shell 命令和升级相关程序。

在Flash 的配置参数区保存了用户信息和服务器配置信息,其中有一个特别重要的配置项———升级标志。依据对升级标志的约定,引导装载系统根据升级标志值判断是否需要升级正常系统,确定引导进入小系统升级还是进入正常系统;如果进入正常系统,则根据升级标志值判断是否有升级小系统的需求,决定进入正常业务流程还是启动升级小系统流程。

为了增加升级的灵活性,考虑正常系统和小系统大小的调整,允许其存储位置和大小可变,在引导程序和内核程序中没有确定正常系统和小系统在Flash 中存储的固定信息,而是在Flash 的配置参数区中存储了整个Flash 分配情况的系统分区表。在该机顶盒的Flash 中,Flash 对系统组件的安排方式如图1所示:

718第6期 杨崇江等:一种IPTV 机顶盒的软件在线升级方案设计与实现

相关文档
最新文档