STB 上Linux软件系统解决方案

近年来,国内巨大的STB潜在市场,吸引了包括芯片厂商、CA厂商、中间件供应商、机顶盒生产厂商等厂家的热情,围绕STB的竞争全面展开。

机顶盒是一种专用设备,包括软件模块和硬件模块。软件模块包括系统引导程序、嵌入式操作系统和应用软件。硬件模块根据CPU的不同,分为ASIC专用芯片 组、多媒体DSP、X86三种。低档机顶盒一般采用专用芯片组或多媒体DSP,只支持较少的几种媒体编解码标准,业务扩展能力较弱,价格比较低。高档机顶盒大多基于X86硬件,使用WinCE或Linux操作系统,甚至配有硬盘,与PC机非常相似,业务功能丰富,当然,价格也不菲。

事实上,随着IPTV的兴起,对机顶盒的性能要求也越来越高,采用X86硬件提升机顶盒的性能已是大势所趋。但是,在提供更丰富业务功能的同时,大幅降低 机顶盒成本,也是机顶盒技术发展的一个必然方向。本文将讲述基于兼容X86的STB上Linux软件系统解决方案,不涉及技术开发细节。主要将从以下方面 进行介绍:

一、硬件环境介绍

本机顶盒核心部件包括:STPC CPU,2M FLASH,64M DOM和32M RAM。

其中FLASH中存放Bootloader代码,DOM中存放嵌入式Linux操作系统。当然,机顶盒需要一些外围硬件电路,比如网络接口、遥控器接口等等。

二、Bootloader开发

Bootloader是跟底层硬件关联性非常强的一层软件,也称为BSP。开发人员需要相当熟悉硬件结构,一般来说,可以由硬件人员完成,也可以由软硬件 人员共同协助完成。Bootloader除了初始化CPU,RAM和基本的串口输出等功能外,还需要一些扩展功能,比如实现通过网络接口或者串口烧录操作 系统等。u-boot是一个开源的面向多个目标平台(ppc, mips, arm, x86)的bootloader,并且功能强大,目前广泛应用在嵌入式系统开发中,只要根据硬件平台做有限的修改,就可以顺利实现。本篇不讲述u- boot的具体移植过程,移植细节可参见《u-boot在PowerPC 860上的移植》一文。

三、嵌入式Linux裁减与移植

嵌入式Linux我们选用Peewee Linux进行裁减,Peewee Linux的介绍和基本配置可参考《Embedded Linux 嵌入式系统原理与实务》一书。Peewee Linux的裁减仅仅是通过配置界面选择某些组件,但需要注意的是要保留X窗口,浏览器需要X窗口支持才能启动图形化浏览器。但是,通过Peewee Linux裁减的Linux系统通常比较大,还需要做更进一步的裁减。一般来说一个不带X窗口的嵌入式Linux可以小到4M,带有X窗口的Linux也 可以在30M以下构建出来。总之,裁减后的Linux系统不能过于庞大,否则加上浏览器程序极有可能超出DOM的64M空间,需要另加存储空间,增加成 本。

另一方面,在移植Linux到STB上后,由于STB上很多硬件在Linux下缺少驱动程序支持,不能工作。为此,开发必要的驱动程序是必不可少的一步。 在Linux下开发一个驱动是相当容易的,一是因为Linux驱动程序的架构相对固定,二是有很多的源码可供参考。难点往往是调试过程,也更花时间,并且 经常需要改动某些代码,同时,驱动开发过程中也经常需要示波器、逻辑分析仪等设备的帮助。

四、浏览器程序选择 (Embedded Mozilla)

在Linux环境下有很多开源的浏览器,但综合比较来说,Mozilla功能强大,支持的协议也相对比较多,图形界面丰富。其次,Mozilla专门为嵌 入式系统开发了一个Embedded Mozilla项目,不加裁减的话,编译结果大概20M多,用户可以对其进行裁减,一般来说,裁减到14M左右是很轻而易举的事。并且该项目是提供源码 的,用户可以根据需要定制一些功能,比如用户界面等等。

具体可以参考主页:http://www.mozilla.org

五、JVM移植

针对目前很多网页是Java severlet的特点,使得浏览器能支持Java语言是一大趋势,Embedded Mozilla很容易实现对Java的支持,这也是为什么选择Embedded Mozilla的原因之一。只要以动态库的形式注册sun公司提供的JVM到该STB的系统库路径下,并在Embedded Mozilla中设置一下浏览器针对Java severlet的plug in功能,即可实现Embedded Mozilla对Java severlet的支持。

JVM下载参考:http://www.sun.com

六、其它应用开发扩展(EPG实现及EasySoap使用)

该部分功能主要是为解决STB向PVR/DVR的扩展,当然如此扩展后需要添加大容量存储设备,以存储数据。EPG是PVR/DVR上不可或缺的软件之 一,预先提供节目给用户,用户通过预定的方式下“订单”,PVR/DVR根据用户的预定情况实现节目的自动录制功能。目前EPG功能比较流行的做法是:在 PC机上用Web Service实现服务端,在PVR/DVR上实现客户端,由于Web Service利用SOAP协议交互。为此,EasySoap浮出水面,利用该开源项目,可以很方便开发出Linux上的EPG客户端,实现与Web Service的交互。

七、媒体播放软件实现

该功能也可认为是STB的扩展,是PVR/DVR功能的一部分。媒体播放器我们选用功能强大的mplayer,这是Linux下又一个出色的开源软件,支 持格式众多,包括很多流媒体在内,移植mplayer也比较简单。参见网站:http://www.mplayerhq.hu/

八、VOD实现

VOD是STB交互功能的增强,因为我们已经移植了Embedded Mozilla以及mplayer,VOD功能可以利用这两个软件顺利实现,需要做的工作只是在Embedded Mozilla中如何判断当前的连接是一个媒体文件,以判断是否需要打开mplayer进行播放。

九、软件远程更新问题

虽然目前用户要在STB设备上实现软件远程更新的需求并不突出,但软件远程更新问题是降低维护费用一个强有力的手段。STB的远程软件更新可以采用主动或 被动的方式,主动的方式就是由用户手动去下载最新软件,实现升级;被动方式就是由STB开发商根据STB的信息主动提示用户更新,类似于window 2000/XP的升级程序。考虑到STB的特殊性,比如升级过程中可能发生意外,掉线等情况,建议采用由用户手动去下载软件进行升级的方式。

具体实现方法是:在STB上开发专门用于软件升级的程序,该程序通过HTTP/FTP下载最新应用程序到本地,然后实现STB上软件的升级。由于系统上空 间通常比较紧张,一旦升级失败,极有可能造成系统不能启动的情况,解决办法往往是增加内存空间,先备份先前的系统,如果升级成功,再删除,如果失败,则恢 复先前系统。

十、小结

Linux由于其开源特性、出色的网络功能和众多的开源项目支持,正越来越成为嵌入式系统开发者关注的目标之一。相信越来越多的嵌入式开发者将加入到Linux这个行列中来。

本文提出的仅仅是解决方案,实际开发中,从硬件设计到软件开发是一个相当漫长的过程,软硬件的协同设计、硬件的调试、软件的开发、软件的测试、系统的集成测试等过程都会遇到拦路虎,很多意想不到的问题会时不时地忽然冒出来。

为此,在STB项目开发中,硬件的设计过程需要具有丰富经验的硬件工程师,以尽量缩短硬件设计与调试的时间。软件系统中上层应用的开发过程建议开发者采用 OO的思想,同时在开发中运用设计模式,以防开发过程各种意想不到的变化。另外,值得一提的是,很多项目中,开发人员认为只有硬件开发完成后才能进行软件 的开发,这是一种误解。事实上,软硬件开发的过程可以同步进行,在硬件开发阶段可以同时进行上层软件的开发,这样可以尽可能加快产品走向市场的步伐。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

coreldraw带圈字符_coreldraw中如何使字体围绕一个圆形排列?

展开全部方法一2113:使用“使文5261本适合路径”命令步骤1:打4102好所需文1653字,并版选择工具箱中“权椭圆工具”按住Ctrl键,拖动鼠标绘制出一个正圆形。步骤2:选中文字,执行菜单栏“文本>使文本适合路…

Android 说说亮屏锁和键盘锁

Android中的两把锁 – WalkLock and KeyguardLock 详细分析WalkLock – 顾名思义 唤醒锁 点亮屏幕用的KeyguardLock – 顾名思义 键盘锁 解锁键盘用的详细介绍:1: WalkLock 唤醒锁WalkLock真的能点亮屏幕吗?答案是肯定的。 可是有时候为什么不…

频谱分析幅值单位_案例分享丨某水泥厂入窑斗提减速机不对中故障分析及处理...

斗式提升机是利用均匀固接于无端奉引构件上的一系列料斗,竖向提升物料的连续输送机械。分为环链、板链和皮带三种。今天因大师将给大家分享一个水泥厂的入窑斗提减速机不对中故障的诊断案例。1 设备概况设备基本信息:设备位置:1#产线入窑斗提&#xff08…

中国高校鄙视链指南

全世界只有3.14 % 的人关注了爆炸吧知识某一天,中国各大高校齐聚一堂,开了一场“拒绝高校鄙视链座谈会”,誓要消除高校之间的不平等,不让莘莘学子因为母校问题而被人低看一眼,遗憾终生。首先主持人介绍清华北大发言&am…

.NET 6 ThreadPool 实现概述

前言在即将发布的 .NET 6 runtime 中,默认的线程池实现从 C 代码改为了 C#,更方便我们学习线程池的设计了。https://github.com/dotnet/runtime/tree/release/6.0/src/libraries/System.Threading.ThreadPool新的线程池实现位于 PortableThreadPool 中&a…

嵌入式linux配置qt,基于qt的嵌入式Linux开发环境搭建

摘要:本文主要介绍在PC机上搭建基于QT的嵌入式开发环境,其中很多源文件都是开发板自带,需要相应资料的可以评论留下邮箱地址。版本:交叉编译工具链:GCC 4.7.3 【gcc-linaro-arm-linux-gnueabihf-4.7-2012.12-20121214…

三种方式使得iOS应用能够在后台进行数据更新和下载

三种方式使得iOS程序即使在关闭或崩溃的情况下也能够在后台持续进行一些任务,比如更新程序界面快照,下载文件等。这三个方法分别是Background Fetch,Remote Notification和NSURLSession的backgroundSessionConfiguration Background Fetch 开…

漫水填充及Photoshop中魔术棒选择工具的实现

今天写程序中有一个地方用到了漫水填充(FloodFill)。所谓漫水填充,简单来说,如下图中左图,白布上有一块红色的斑点,在这个红色的斑点上点一下,就自动选中了和该点相连的红色的区域,接…

Hibernate注解之@Enumerated

Enumerated(valueEnumType.ORDINAL)采用枚举类型的序号值与数据库进行交互, 此时数据库的数据类型需要是数值类型,例如在实际操作中 CatTest ct new CatTest(); ct.setColor(Color.BLUE); 当我们将对象gt保存到数据库中的时候,数据库中存储的…

ios支付宝支付失败不回调_iOS 支付宝网页支付回调问题

今天遇到支付宝网页支付回调的问题当手机里面没有支付宝客户端的时候,会自动调起网页支付页面,但是我发现我原来写在AppDelegate.m里面的代码没走。造成的结果是,不管是支付成功,还是退出支付,都没有反应。解决办法4&g…

代理管家app_亲亲小保社保管家app2021下载_亲亲小保社保管家app最新版下载

亲亲小保社保管家是一款便捷社保服务软件,为用户提供全面便捷的社保公积金服务,可以解决生活中的各种居住,社会保障等,感兴趣的朋友快来下载亲亲小保社保管家吧。亲亲小保社保管家app特色1.、社保服务、社保代理、社保托管、工资代…

上大学后男生的两种变化

1 一只处女座的喵。。。2 螃蟹怎么都没想到自己有一天会变成糖葫芦3 还以为厨师被劫持了4 未来感十足的红绿灯概念设计……5 外国留学生的眼中中文6 上大学后男生的两种变化,可太真实了7 你这样欺负人我要报警哦8 一年级的题你点的每个赞,我都认真当成了…

linux怎么杀死线程c语言,教程-linux下c语言编程 第一弹-线程的使用

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*linux下最常用的应该就是pthread线程库了本教程就是关于pthread的关于线程是什么东西我就不赘述了 百科上都有*/#include#include//pthread库的头文件//声明并定义一个函数void*function(void*data){printf("start\n")…

ADO.NET笔记——基本概念

ADO.NET中的主要对象: Connection:连接对象。用于建立从应用程序到数据库服务器指定数据库的连接通道Command:命令对象。用于执行增删查改等数据库语句命令DataReader:数据阅读器对象。用于从数据库逐行返回数据DataAdapter&#…

关于 Azure SQL 数据库你不知道的 5 件事

点击上方蓝字关注“汪宇杰博客”原文:Azure Tips and Tricks翻译:汪宇杰Azure SQL Database如果您喜欢 SQL Server,那么您可能也喜欢 Azure SQL 数据库。Azure SQL 数据库是 Azure 中的 SQL Server 即服务。你负责处理数据,Azure …

如何在PowerPoint中插入带语法高亮的程序代码

最近在做Python的PPT时发现,向PowerPoint中插入带格式的源代码甚是不便,经搜索有篇文章说的还是很管用的,可以借鉴一下: Syntax highlighting source code in Word and PowerPoint 能导出格式的编辑器就比较多了,我用的…

win7共享xp打印机_解决共享打印机不能使用的问题

针式打印机如何设置共享打印找不到驱动就需要重新下载安装适合版本的驱动,以及.INF文件网络打印机连接模式步骤:a.预先得知网络打印机的IP地址,打开它的共享b.【开始】-【设备与打印机】-【添加打印机】-【添加本地打印机】c.选择TCP/IP接口-…

网页固定宽度布局

&#xff08;一个固定宽度div布局&#xff09; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <h…

rk3399性能_AIIA AI公布首轮评估结果:瑞芯微RK3399数据抢眼

人工智能产业发展联盟(AIIA)正式发布“AIIA DNN benchmark V0.5”首轮评估结果。该评估在AIIA权威测试平台完成&#xff0c;基于端侧推断任务的深度神经网络处理器基准测试。在四大典型应用场景下&#xff0c;能够客观反映具有深度学习处理能力的处理器或加速器的性能水平。评估…

世界上最欢乐的职业,可能就是蹦极的工作人员了!

1 他们叫的有多大声我笑的就有多大声▼2 这个手动转向灯可太可爱了▼3 真正的倒立洗头▼4 看看&#xff01;脚踏两只船多危险&#xff01;▼5 穿上这件衣服你和猪八戒就只差一个肚子了▼6 螳螂才是真正的拟态大神▼7 你是哪种&#xff1f;▼