DVB-S机顶盒中自维护引导装载系统的设计与实现
2011-07-13张春丽
王 薇,张春丽
(四川财经职业学院 四川 成都 610101)
随着国家数字电视工程的推广与普及,数字电视机顶盒已成为其发展过程中必要的组成设备。为了提高机顶盒的性能,方便快捷地更新机顶盒的功能,在用户使用过程中需要对机顶盒的软件进行定期有计划的升级。现阶段在数字电视机顶盒的设计中,Bootloader作为引导加载程序一般用于引导和启动机顶盒,其功能比较单一,机顶盒在使用过程中的软件维护与升级工作必须由专业人员来完成,这种设计方法给产品的后期维护带来一定的不便。本文在基于卫星的数字视频广播的DVB-S电视机顶盒产品开发过程中,针对一般Bootloader功能上的不足,提出一种方案对Bootloader功能进行了改进。新的Bootloader能自动对DVB-S电视机顶盒中的软件进行维护和升级,从而提高系统的自维护性[1]。(4 M×8 bits);NOR Flash 采用台湾旺宏公司的 MX29LV160,其容量为2 MB,主要存储系统的软件部分(包括BootLoader、嵌入式Linux操作系统,根文件系统及应用软件);各种接口主要有IrDA控制接口 (接收红外键盘的遥控)、LED控制接口(输出系统的基本状态信息)、I2C控制接口(通过I2C读写24C01的E2PROM,并存放系统的某些配置参数,如音量,节目流的左右声道等)、RS232串行口,及各种音视频接口(SVideo,CVBS,VGA)等,其中 IrDA 控制接口、LED 控制接口及I2C控制接口的通信由6502微控制器进行输入输出处理[2]。整个系统的硬件组成框图如图1所示。
1 DVB-S机顶盒中自维护Bootloader的设计
1.1 DVB-S机顶盒的硬件结构
该DVB-S电视机顶盒中,采用的CPU是台湾凌阳公司生产的16/32位RISC微控制器SPHE1000,内含一个MIPS架构的RISC处理器核,最高主频可达108 MHz,该芯片还集成有DSP处理器,主要用于卫星电视的音视频解码等;此外,系统还集成有SAMSUNG公司的数字卫星高频头(DVB-S Tuner),其主要任务是从卫星信号中调制出TS流(Tranmit Stream,传输码流),其中包括有电视节目流和广播节目流;系统所用的SDRAM采用Samsung公司的4 MB的K4S561632D
图1 DVB-S电视机顶盒的硬件组成框图Fig.1 DVB-S TV set-top box hardware block diagram
1.2 自维护引导装载系统软件体系结构
自维护引导装载系统是在一般引导装载系统的基础上添加了系统升级功能,系统在运行之中能够根据实际情况,对Flash现有的软件进行维护和更新。其软件体系结构如图2所示。
图2 自维护Bootloader的软件体系结构Fig.2 Software architecture of the self-maintenance bootloader
在该Bootloader中,引导程序和装载程序与一般的Bootloader作用一样,其实现的功能是将系统硬件引导起来,并将内核及应用程序装载入RAM后,启动内核[3]。
1.3 DVB-S机顶盒自维护引导装载系统的实现
微控制器SPHE1000基于MIPS体系结构的CPU,其内存向量表是设置中很重要的一部分。在MIPS CPU中,有两部分的地址是系统所固定的。一部分是系统内存映射表,另一部分是系统异常发生后(包括中断)的地址入口点,其地址分配别如表1和表2所示。
表1 系统固定使用的地址表Tab.1 Fixed address table of the system
表2 系统异常地址入口点Tab.2 System exception entry point address
系统的程序入口点为ROM cached地址,CPU运行点为Boot UP地址。系统的一般异常或中断发生时的入口点为General Exception。
在DVB-S机顶盒系统中,CPU加电后,将会由0xBFC00000地址跳转到系统异常处理向量表的第一项 (reset)处执行CPU指令,该地址也是系统ROM/Flash的虚拟地址。其初始化过程中涉及几个主要文件,依次为:init0.s-->crt0.s-->main.c-->upgradeflash.c。 加 电 后 ,SEPH1000 首 先 执 行0xBFC00000处的中断向量表起始处的跳转命令b__romstart,跳到了init0.s和crt0.s中,完成了系统的大部分初始化工作,如设置寄存器、SDRAM、Flash等。在完成以上基本硬件初始化后,系统将会进入Bootloader升级程序[4]。
Bootloader升级程序主要完成的功能是通过Bootloader程序对存放在Flash中的软件 (Flash中的软件一般由bootloader、嵌入式linux内核、根文件系统、应用程序组成,本文中Flash软件是指除bootloader以外的其它几部分)进行升级。Bootloader在引导程序执行完成后,可以通过条件判断程序,如Flash中软件CRC校验是否有错、Bootloader是否能够成功启动系统、Flash中软件版本是否太低等,使程序进入升级过程[5]。其升级流程如图3所示。
图3 自维护Bootloader系统的升级流程图Fig.3 Flow chart self-maintenance bootloader upgrade the system
2 自维护引导装载系统的特点
该DVB-S机顶盒中使用自维护Bootloader相对一般的Bootloader系统具有以下一些特点:
1)采用自维护Bootloader的嵌入式系统,能够在使用过程中自动维护数据的完整性。
嵌入式系统在运行过程中,因其软件部分存放在ROM/Flash等不挥发介质,数据相对比较稳定,但当嵌入式系统使用时间过长或长期运行于恶劣环境时,其软件部分可能会出现一些错误,这时,系统的运行将会导致不可预料的失败。自维护Bootloader可以通过对Flash中软件的CRC校验来检查数据的完整性,或通过引入硬件watchdog机制来记录Bootloader的上次执行情况,并自动维护有错误的Flash软件。
2)采用自维护Bootloader的嵌入式系统,能够根据系统的版本号自动更新系统的软件,从而使嵌入式系统的升级维护变得更加容易和方便。自维护Bootloader会定期地检查系统的软件版本,比较软件的版本号来决定是否更新Flash中的软件[6]。
当然,以上两点都必须有外部数据的支撑,这需要根据实际硬件情况,从USB设备,网络或硬盘中获取到用于升级的外部数据。在数字电视机顶盒中,自维护Bootloader能够从Tuner接收到的TS流中获取到相应的软件内容,并对Flash的软件升级或更新,从而提高系统的自维护能力。下面将会具体分析这种自维护Bootloader在DVB-S电视机顶盒中的应用。
3 结束语
通过在DVB-S电视机顶盒中设计一种自维护的嵌入式Bootloader系统,保证了机顶盒flash中数据的完整性,从而使机顶盒在运行过程中具有较强的健壮性,同时这种方案也大大地提高了机顶盒软件的自动维护和恢复功能。当然,这种设计方案是延长了机顶盒的启动时间的,但经实验测试其启动时间大约延长1 s,对于DVB-S电视机顶盒来说,这种设计导致的延迟是可以容忍的。
[1]胡铁乔.DVB-C机顶盒在线升级原理及实现 [J].中国民航学院学报,2006,24(5):34-38.
HU Tie-qiao.Theory and reality of online update in set of box based on DVB-C[J].Journal of Civel Aviation University of China,2006,24(5):34-38.
[2]袁磊,朱怡安,兰婧.嵌入式系统BootLoader设计与实现[J].计算机测量与控制,2009,17(2):389-391.
YUAN Lei,ZHU Yi-an,LAN Jing.Design and implementation of BootLoader in embedded system[J].Computer Measurement&Control,2009,17(2):389-391.
[3]陶永,鄢萍,郭建兴,等.基于MIPS体系的嵌入式Linux引导装载系统的设计与实现 [J].计算机应用,2004,24(11):159-161.
TAO Yong, YAN Ping, GUO Jian-xing, et al.Design and implementation of bootloader based on MIPS in embedded Linux[J].Computer Applications,2004,24(11):159-161.
[4]马学文,朱名日,程小辉.嵌入式系统中Bootloader的设计与实现[J].计算机工程,2005,31(7):96-97.
MA Xue-wen,ZHU Ming-ri,CHENG Xiao-hui.Design and Realization of Bootloader in Embedded System[J].Computer Engineering,2005,31(7):96-97.
[5]高伟,张洪波.基于嵌入式系统的Bootloader分析与设计[J].唐山师范学院学报,2009,31(5):63-65.
GAO Wei,ZHANG Hong-bo.Analysis and design of bootloader based on embedded system[J].Journal of Tangshan Teachers College,2009,31(5):63-65.
[6]庄子明,程恩.基于DMB-TH的地面数字电视机顶盒的软件升级[J].中国有线电视,2008(8):809-813.
ZHUANG Zi-ming,CHENG En.Software upgrade of terrestrial mobile digital TV STB based on DMB-TH[J].China Digital Cable TV,2008(8):809-813.