一种基于 linux 系统的数字电视系统 【技术领域】
本发明涉及数字家庭技术领域, 具体涉及一种基于 linux 系统的数字电视系统。背景技术 随着数字电视技术的发展, 数字电视产品已逐渐开始普及。目前, 在我国, 数字电 视产品主要依赖国外企业的芯片技术解决方案, 采用国外的芯片作为硬件平台, 硬件层与 应用层和中间件层为一体的, 当硬件平台改变时, 与其关联的应用层和中间层也要进行相 应的改变, 产品的开发效率很低。为了克服这个问题, 现有的解决方案采用了分层设计方 法, 将硬件平台与中间层和应用层隔离开, 对于不同的芯片, 采用不同的协议来完成各层次 间的通讯。
在实现本发明的过程中, 发明人发现现有的技术中存在如下问题 :
现有的数字电视软件架构比较混乱, 还没有形成统一成型的框架来提高数字电视 类产品的开发速度, 虽然现有技术中有分层设计, 但是各家芯片厂商都是遵循自己既定的 协议进行各层次间的通讯, 这样就造成了当采用多家芯片开发数字电视产品时, 改动量非 常大, 代码可复用性非常差, 进而导致产品开发效率低、 成本高、 产品质量不可控等一系列 问题, 不适应现代快速多变的市场需求。
发明内容
本发明要解决的技术问题是提供一种基于 linux 系统的数字电视系统, 该系统能 够提高数字电视产品的开发效率。
为解决上述技术问题, 本发明所采用的技术方案为 :
本发明提供一种基于 linux 系统的数字电视系统 :
该系统包括 : 硬件层模块、 适配层模块、 中间层模块和应用层模块 ;
所述硬件层模块, 位于系统的最底层, 为数字电视系统提供硬件平台, 依赖于数字 电视系统采用的芯片 ;
所述适配层模块, 与所述硬件层模块连接, 提供标准的接口, 对硬件平台进行二次 封装, 隔离上层应用与硬件层 ;
所述中间层模块, 与所述适配层模块连接, 作为通用化的标准化功能组件, 其包含 的功能模块是基于适配层提供的接口实现 ;
所述应用层模块, 与中间层模块连接, 用于实现各种应用, 提供基于中间层开发的 应用程序。
所述硬件层模块, 通过 linux 嵌入式操作系统和片内驱动及外围设备模块驱动, 与适配层模块连接。
所述适配层模块包括操作系统适配层模块和驱动适配层模块。
所述适配层模块还包括调制解调模块、 解复用模块、 闪存驱动模块、 视频驱动模块 和音视频驱动模块。所述中间层模块包括节目搜索模块、 节目播放模块、 业务信息模块和数据管理模块; 所述节目搜索模块为上层模块, 调用下层的业务信息模块和数据管理模块, 和/ 或调制解调模块 ;
所述节目播放模块为上层模块, 调用下层的调制解调模块、 视频驱动模块和音频 驱动模块, 和 / 或数据管理模块 ;
所述业务信息模块为上层模块, 调用下层的解复用模块 ;
所述数据管理模块为上层模块, 调用下层的闪存驱动模块。
所述各模块之间的数据传递包括单向传输和双向传输 ;
所述各模块获取数据的方式包括实时获取和非实时获取。
上述技术方案可以看出 :
本发明提供的数字电视系统, 采用良好的分层结构设计, 利用适配层将不同硬件 平台的差异性完全隔离, 在选用不同硬件平台时, 只需根据硬件的不同对适配层稍作改动 即可, 中间层及应用层模块完全不用修改即可整体移植到新的硬件平台中, 有效降低软件 的耦合度, 减少代码的修改, 提高软件的可复用度, 进而提高产品的开发效率。
附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其它的附图。
图 1 是本发明实施例数字电视系统整体结构示意图 ;
图 2 为本发明实施例数字电视系统中间层各模块间的通信方式及与适配层间的 通信方式结构示意图。
具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它 实施例, 都属于本发明保护的范围。
本发明提供一种基于 linux 系统的数字电视系统, 该系统能够提高数字电视产品 的开发效率。
以下结合附图对本发明技术方案进行详细介绍。
图 1 是本发明系统的结构示意图。
如图 1 所示, 所述数字电视系统在整体上包括四个层次模块, 由下到上一次为 : 硬 件层模块 101、 适配层模块 102、 中间层模块 103 和应用层模块 104。
硬件层模块 101, 位于系统的最底层, 为数字电视系统提供硬件平台, 依赖于数字 电视系统采用的芯片。
对于硬件层模块 101, 通过 linux 嵌入式操作系统和片内驱动及外围设备模块驱动, 与适配层 102 连接。
适配层模块 102, 与所述硬件层模块 101 连接, 提供一套标准的接口, 其目的是对 硬件平台进行二次封装, 从而隔离上层应用与硬件层, 以达到通用化的效果。
适配层模块 102 是支撑中间层模块 103 和应用层模块 104 的基础, 在整个结构中 占有非常重要的位置。适配层主要包含 OSAL( 操作系统适配层 ) 和 DAL( 驱动适配层 )。其 中 OSAL 主要包含的组件及其相应的描述如表 1 所示。
表1 另外, DAL( 驱动适配层 ) 部分包括的组件及其相应的描述如表 2 所示
表2
适配层模块 102 的各模块实现需要根据移植的硬件对象的不同进行一些修改, 以 达到配合硬件的目的。
适配层模块 102 的关键工作在于标准接口的制定及与中间层通讯协议的制定上, 这一步体现了整个系统架构的稳定性。对于 OSAL 的接口定义及与上层的通讯协议, 参考了 业界流行的 POSIX 移植标准, 以及各嵌入式平台中流行的如 linux 操作系统、 nuclears 操 作系统等操作系统的接口定义及通信协议, 提供其共性, 进而转化为一套通用的操作系统 标准接口及通信协议。
中间层及应用层各模块均采用该 OSAL 进行设计, 进而有效减少中间层及应用层 与底层的隔离。对于 DAL 部分, 其包含的各模块并不是简单的对各驱动的实现, 而是结合中 间层及用户的需求, 在驱动层之上增加对功能性的封装, 形成驱动适配层, 进而方便有效地 供中间层使用。
中间层模块 103, 通用化的标准化功能组件, 该层次包含的模块都是基于适配层提 供的接口实现的, 内部实现不能跨过适配层直接调用硬件平台提供的接口, 从而达到该层 各模块通用化、 可移植性的目的。 该层主要包含通用数据管理、 业务信息 SI、 条件接收 CA/ 公共接口 CI、 节目指南 EPG、 视频点播 NVOD、 节目搜索、 节目播放、 消息管理机制、 图形用户界面 GUI 开发工具、 网络 协议栈、 浏览器等通用模块。
中间层包括的组件及其相应的描述如表 3 所述。
表3
中间层模块 103 包含的模块较多, 但都是一些有明确规范的模块, 所作的重点工 作是对这些规范的充分理解, 并将其转化为具体的实现。
应用层模块 104, 与中间层模块 103 连接, 用于实现各种应用。
图 2 是本发明系统中的中间层各模块间的通信方式及与适配层间的通信方式示 意图。
图 2 主要描述了两种关系 :
一种为函数调用关系 : 函数调用一般由上层模块调用下层模块, 原则上不允许下 层模块调用上层模块, 设计各模块接口时要充分考虑对上层的接口, 要满足其他模块的需 求。
另一种为数据在模块间的传递关系 : 数据传递包括单向传输和双向传输, 数据的 获取也有实时和非实时两种情况。 当数据由上向下传输时, 一般的函数接口即可满足要求 ; 当数据由下向上传输, 并且不能实时获取时, 一般函数可能并不能满足需要, 此时一般可以 采取消息传递和回调函数两种机制。
消息传递机制的缺点是需要在各模块之外定义公共的消息传递协议, 模块内部使 用, 这样不利于移植 ; 回调函数机制的缺点是用户在回调中处理不当容易引起底层模块的 阻塞, 导致问题难以排查定位。 综合比较两种机制, 当模块之间涉及到非实时获取且由下向 上进行数据的传递时, 优先考虑使用回调函数机制。
如 图 2 所 示, 节 目 搜 索 模 块 201 作 为 上 层 模 块, 可以调用下层模块调制解调 (Tuner) 模块 205、 业务信息 (SI) 模块 203、 数据管理模块 204 三个模块。 节目搜索模块 201 首先设置 Tuner 模块 205, 然后调用 SI 模块 203 接口获取相关数据, SI 模块 203 将解析后 的结果反馈给节目搜索模块 201, 最后, 节目搜索模块 201 根据需要调用数据管理模块 204 来选择是否保存数据到数据管理模块 204。在此过程中涉及到非实时数据由下向上传递的 处理 : Tuner 模块 205 将其状态向上反馈, SI 模块 203 获取数据后将数据向上传递。 节目播放模块 202 最为上层模块, 可以调用下层模块数据管理 204、 Tuner 模块 205、 视频驱动模块 208、 音频驱动模块 209。 节目播放模块 202 首先调用数据管理模块 204, 从中获取播放相关的信息, 然后设置 Tuner 模块 205, 最后调用视频驱动模块 208 和音频驱 动模块 209, 从而实现播放功能。此过程主要数据流向为从数据管理模块 204 获取数据, 由 于上述节目搜索模块 201 已经将此部分数据保存到数据管理模块 204, 因此该数据为可实 时获取数据, 一般获取数据的函数接口即可满足需求。
SI 模块 203 作为上层模块, 可以调用下层模块解复用 (Demux) 模块 206。SI 模块 203 需要设置过滤条件给 Demux 模块 206, 然后启动 Demux 模块 206 过滤出所需要的数据, Demux 模块 206 将获取到的数据向上传递。
数据管理模块 204 作为上层模块, 可以调用下层模块闪存 (Flash) 驱动模块 207。 数据管理模块 204 通过 Flash 驱动模块 207 将数据保存到 Flash。数据管理模块 204 需要 考虑数据在内存及 Flash 中的管理、 内存及 Flash 中数据的同步、 内存分配策略、 数据查询 算法等问题。
其中, Tuner 模块、 Demux 模块、 Flash 驱动模块、 视频驱动模块和音频驱动模块等 适配层模块主要涉及到对不同硬件平台的封装, 相对比较独立, 模块之间的耦合性很小, 涉 及实现时主要考虑其性能的优化及纠错处理等。
例如 : Demux 模块需要考虑怎样设计才能使数据的获取更高效, 以满足涉及到大 数据量应用模块的需求 ; Flash 驱动模块需要考虑怎样才能使读写 Flash 的速度提高, 以及 怎样有效降低读写数据的出错概率等。
应用层 104, 基于中间层开发的上层应用程序。基于上述表 3 的各功能组件, 应用 层 104 提供相应的应用程序, 以完成所述的各种功能。
其中, 所述各层之间严格按照制定的标准协议及接口进行通讯, 减少因层级修改
引起的其他层次的代码变更。
本发明提供的数字电视系统, 具有良好的分层架构设计, 如此分层结构的好处是 可以利用适配层将不同硬件平台的差异性完全隔离, 使中间层及应用层不随硬件部分的变 更而变更, 有效降低软件的耦合度, 减少代码的修改, 提高软件的可复用度, 进而提高产品 开发效率, 降低产品开发成本。
本发明的技术方案制订了严格的通讯协议及接口定义, 在选用不同硬件平台时, 只需根据硬件的不同对适配层稍作改动即可。 中间层及应用层模块完全不用修改即可整体 移植到新的硬件平台中, 这样大大提高了产品的开发效率。 此外, 由于改动的部分限制在适 配层一级, 进而有效改善了产品的质量事故问题, 提高产品的质量。
需要说明的是, 上述装置和系统内的各单元之间的信息交互、 执行过程等内容, 由 于与本发明方法实施例基于同一构思, 具体内容可参见本发明方法实施例中的叙述, 此处 不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成, 该程序可以存储于一计算机可读存储介质中, 存 储介质可以包括 : 只读存储器 (ROM, Read Only Memory)、 随机存取存储器 (RAM, Random Access Memory)、 磁盘或光盘等。
以上对本发明实施例所提供的一种基于 linux 系统的数字电视系统, 进行了详细 介绍, 本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明 只是用于帮助理解本发明的方法及其核心思想 ; 同时, 对于本领域的一般技术人员, 依据本 发明的思想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明书内容不应 理解为对本发明的限制。