微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于ARM-Linux的高清数字机顶盒软件系统设计与实现

基于ARM-Linux的高清数字机顶盒软件系统设计与实现

时间:05-29 来源:电子技术应用 点击:

数字电视特别是数字高清晰度电视的诞生应该说是电视界的一场深刻变革[1]。电视系统已进入数字化的进程,数字机顶盒是该系统的关键部件,特别是其软件系统的设计和开发。但无论是模拟彩电还是数字处理电视,都不具备对全数字电视信号进行解码的功能,所以一种能够接收数字电视信号并能够解码输出用于显示的中间设备--机顶盒,就显得很有必要了[2]。

目前国内机顶盒以有线标清为主,欧洲以卫星和地面的机顶盒为主,美国以高清地面机顶盒产品为主[3]。随着技术的发展,机顶盒已不只单纯接收数字电视节目,还要接收大量的数据,而且用户和电视机之间还要实现互动[4]。目前国内还没有一种成熟的交互式应用,所谓的交互式应用基本上都还停留在本地交互的基础上[5]。本文研究的机顶盒可以支持诸如电子节目指南、按次付费观看、立即按次付费观看、准视频点播、数据广播、Internet接入、电子邮件、视频点播以及IP电话、可视电话等的应用[6]。因此要求电视接收机具有很好的信息处理能力和网络通信能力。


1 机顶盒软件系统

数字机顶盒由硬件平台和软件系统构成,音视频解码主要由硬件实现,而操作界面的功能、电视图像的重现、数据广播业务的平台以及Internet的接入等都需要软件系统实现[7]。

数字机顶盒的软件系统主要由嵌入式操作系统(EOS)、硬件抽象层(HAL)、软件抽象层(SAL)以及应用程序(ASL)组成。本文主要研究基于ARM(HHARMS3C6410)平台、Linux(v2.6.21)操作系统、THOMSON公司的数字高清解码芯片的HDTV机顶盒系统的软件设计,功能包括通过Demux模块接收流数据、解析PSI信息、对音视频流进行解码及播放、接收用户遥控器输入,并具有简单的用户界面。研究的目标是开发出适用于所选的硬件平台特点、具有基本的机顶盒产品功能的软件系统。

开发内容有以下几个方面:

(1)机顶盒底层驱动程序。包括前端、USB、Enthernet、Flash的驱动及遥控信号接收的软件等。
(2)机顶盒节目管理模块。包括整机状态信息和用户设置信息的存取和管理,业务数据的存取、更新和管理,节目数据的获取、分析。
(3)机顶盒应用程序。包括机顶盒用户界面、选单的设计与显示、图形用户界面/选单/用户交互操作的应用和管理等。
软件系统整体结构如图1所示。

2 节目管理模块的开发

节目操作管理模块是用户应用程序的重要组成部分,该软件模块主要实现确定节目操作管理模块与系统其他模块的关系(包括相互之间的通信协议)、建立节目数据库、本模块内部软件结构的设计。

有关节目的各种操作是数字电视机顶盒软件功能中非常重要的一部分,用户所有有关频道、节目的实质性操作功能都在这部份实现。在本文的总体设计方案中,节目的操作功能主要包括节目搜索(自动和手动)、节目选择、节目信息的提取和保存、节目数据库操作等。

在本机顶盒有关节目操作的各种功能中,绝大部分都与节目数据库有关。如自动节目搜索时,需要建立节目数据库,并为搜索到的节目建立相应的数据单元,用于存储节目的各种信息;在删除节目时,需要改变删除节目在节目数据库中的连接关系,并打上删除标志等。因此,节目数据库是节目操作软件的关键部分之一。

2.1 Builder模块

该模块主要功能是在USIF的控制下建立节目数据库,该模块通过MSG Mgr向USIF反馈搜索状态以及内容,根据用户的需要建立频点、频道信息数据库。Builder模块结构图如图2所示。

Builder主要支持3种搜索方式:

(1)盲扫。根据预置频点搜索节目信息,建立完整节目数据库。
(2)网络搜索。根据输入频点搜索NIT表,根据网络信息搜索该网络的所有节目信息,建立完整的网络节目信息数据库。
(3)手动搜索。根据输入频点搜索该频点,建立该频点完整的节目信息数据库。

2.2 PSI模块

PSI模块需要Demux模块提供Section数据的搜索功能,其建立在Demux驱动之上,为EPG、Builder等模块提供完整表及条件捕获接口。PSI模块结构图如图3所示。


PSI模块提供2种得到表方式:
GetTable:通过该功能接口,直接得到表数据返回,如果超时没有得到表数据,返回超时。
Capture:通过该功能接口,先提出表申请,通过异步通信方式获得表结构并通知应用模块。

在捕获方式中都有3种模式:

(1)Update Mode:在得到版本更新时通知应用模块。
(2)Complete Mode:当得到完整表结构时通知应用模块。
(3)Section Mode:当接收到Section数据时候就立即通知应用模块。

2.3 DBaseMgr模块

该模块是一个数据库管理系统,主要功能是实现对频道、频点、系统信息、EPG等信息的存储与管理,以及对节目频点的添加、删除、排序、查找、编辑等。该模块主要与Builder、EPG、USIF、Player 4个模块交互,并通过与Flash交互进行物理操作。为了保证数据元素操作的效率,避免产生大量的内存碎片,也为了元素操作方便,该设计以静动结合的思路采用静态双向链表的数据结构。在多个进程或线程同时对同一个数据库进行操作时,要考虑同步互斥机制了。在对数据库进行任何操作之前先对数据库加锁,当数据库操作完成之后,再解锁,这样就保证了数据库操作的一致性。数据库模块结构如图4所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top