历史上的今天
返回首页

历史上的今天

今天是:2025年02月17日(星期一)

正在发生

2018年02月17日 | 基于嵌入式Linux 的机顶盒媒体播放器设计

2018-02-17 来源:eefocus

1 引言


计算机多媒体技术和网络技术飞速发展使得基于流媒体的多媒体应用也被运用在多种领域,特别是网络可视电话、远程监控、视频点播领域。伴随着计算机多媒体压缩技术的成熟和网络传输技术的发展,开发实时可靠、多功能、数字化、操作简单的基于计算机网络通讯技术和多媒体应用的网络化流媒体播放器已成为计算机、通信、消费电子产品领域(3C 产业-Computer、CommunICation、Consumer EleCTRonics)技术发展的主要方向之一。


2 系统硬件设计


本文使用TQ2440 开发板作为硬件平台。


S3C2440AL 是控制核心,负责控制所有辅助设备。存储器采用SDRAM 和Flash 两种类型,能满足系统运行和调试的需要。基本端口包括以太网接口、USB 接口、两个RS232 的串口。A/D 和D/A 模块主要用于现场数据的采集与控制信号的输出。DC/DC 模块主要负责整个系统的供电。


S3C 2440AL 是三星公司设计开发的基于精简指令集的ARM9 核的CPU, 工作频率可以达到400MHz,且具有丰富的内部设备,其中主要包括:存储器管理单元MMU、16kB 的指令缓冲器和16kB 数据缓冲器、存储器控制器(SDRAM 控制器)、NANDFlash 和NOR Flash 控制器、4 通道的外部DMA 请求控制、3 个串行口、SD 存储卡读取接口、USB 主机、USB 设备、5 个脉宽调制定时器。目前,S3C2440AL 已广泛地应用于PDA、智能手机、数字多媒体等方面。

3 系统的软件设计


系统的软件组成包括:嵌入式Linux 操作系统、设备驱动程序、图形界面和浏览器程序,这些只是IPTV 机顶盒软件组成的关键部分。

    

本系统采用Linux 作为操作系统,并选用Linux2.6内核在嵌入式微处理器S3C2410 上移植,具体移植方法如下:


(1)准备Linux2.6 内核移植所必需的文件(内核压缩包linux-2.6.tar.bz2 及交叉编译器arm -linuxgCC-3.4.1.tar.bz2),这些文件可到Linux 官方网站免费下载。


(2)利用Linux 命令(mkdir,tar,mv 及export)安装交叉编译器arm-linux-gcc-3.4.1.


(3)修改Makefile 文件及相关硬件文件。由于内核的编译是根据Makefile 文件的指示进行的,Makefile 文件来组织内核的各模块之间的关系,记录了各个模块之间的相互联系和依赖关系。所以,开发人员要首先修改Linux2.6 根目录下的Makfile 文件,修改的主要内容是目标代码的类型和为编译内核指定一个编译器。


(4)运用Make 命令编译内核生成内核镜像文件zImage 文件,通过相应的固化软件把这个文件固化在系统相应的存储器中,完成Linux2.6 内核在ARM 微处理器上的移植。


3.2 媒体播放器的总体架构


系统实现原理:在嵌入式微处理器S3C2440AL的控制下,TQ2440 开发板通过网络接口接收来自内容服务提供商的音视频广播信息,之后运行图形界面程序获取音视频信息,并在此基础上生成音视频节目清单,将信号传至显示屏进行显示,将节目呈现给用户。用户利用显示系统提供的图形界面和浏览器使用键盘、鼠标进行控制,观看节目,其总体架构如图1 所示。

  媒体播放器的总体架构

图1 媒体播放器的总体架构


3.2.1 媒体播放器与网络接口的实现


媒体播放器播放网络上的多媒体文件时最大的特点是边下载边播放的“流式”特性。在IPTV 应用中,因为多媒体数据的流式特性需要媒体播放器与媒体服务器之间进行信息交互,所以它们之间须共同遵循一个交互协议标准。本系统播放器采用RTSP 协议与服务器之间建立及管理RTSP 会话,通过网络传输协议接收来自网络上的媒体数据。媒体播放器数据接收流程如图2 所示。

  媒体播放器数据接收流程

图2 媒体播放器数据接收流程


3.2.2 TS 流解析实现


在MPEG-2 系统中根据传输媒体的质量不同定义了两种复合信息流:传送流(TS:Transport Stream)和节目流(PS:Program Stream)。TS 流与PS 流的区别在于TS 流的包结构是固定长度的,而PS 流的包结构是可变长度的。PS 包TS 包在结构上的这种差异,致使TS 流比PS 流对传输误码的抵抗能力更强,因此在本设计中的网络多媒体数据采用了TS 的封装格式。TS 包的结构如图3 所示,由包头和包数据两部分组成,包头长度占4B,自适应区和包数据共占184B,整个TS 包长度相当于4 个ATM 包长。

  TS 包的结构

图3 TS 包的结构


因为在TS 流里可以填入很多东西,所以制定TS流标准的机构就规定了PSI (Program SpecifICInformation)表,其作用是从一个携带多个节目的某一个TS 流中正确找到特定的节目。

      

(1)PAT 表(Program Association Table)即节目关联表,它的主要作用是指出该传输流ID,以及该路传输流中所对应的几路节目流的MAP 表和网络信息表的PID.


(2)PMT 表(Program Map Table)即节目映射表,该表的PID 由PAT 提供,通过该表可以得到一路节目中包含的信息。


(3)CAT 表(Conditional ACCess Table)即条件访问表,PID 是0x01.CAT 携带的是服务器的私有信息(CA 系统就需要使用该表格实现节目的解密)。


(4)NIT 表(Network Information Table) 即网络信息表,该表包括数字电视网中所有的传输流的物理传输网信息,包含节目的频道调谐参数、频率、符号率等,这些信息使得接收机可以按照用户的选择以很少的延时或无延时地改变频道、调谐参数,正确地解码出TS。

所以TS 流解析流程如图4所示:先接收一个负载里为PAT 的数据包,在整个数据包里找到一个PMT 包的ID.然后再接收一个含有PMT 的数据包,在这个数据包里找到有关填入数据类型的ID.之后就在接收到的TS 包里找到含有这个ID 的负载内容就是填入的信息。根据填入的数据类型的ID 的不同,在TS 流复合多种信息,解有这些信息的传输包即可解出音视频的PES 包,最终解出音频流和视频流。

  TS 流解析流程

图4 TS 流解析流程


由于时间和资源有限,本设计中移植成熟的QT/Embedded 库到机顶盒的嵌入式系统,作为其图形界面类库。Qt/Embedded 采用frame buffer (帧缓冲)作为底层图形接口。同时,将外部输入设备抽象为keyboard 和mouse 输入事件。Qt/Embedded 的应用程序可以直接写内核缓冲帧,这避免开发者使用繁琐的XLIB/Server 系统。界面程序流程图如图5 所示。

  界面程序流程图

图5 界面程序流程图


4 结语


本系统利用TQ2440 硬件平台的优势,将Linux2.6.14 内核移植到开发板中,设计实现了一款基于嵌入式Linux 的机顶盒流媒体播放器,完成了其与网络接口的实现,通过TS 流的解析实现,提供了对主流的MPEG-2、MPEG-4、H.264 等格式文件的支持。该系统具有良好的可移植性和可扩展性,能够满足市场需求的不断变化。


推荐阅读

史海拾趣

ADATA公司的发展小趣事

ADATA科技成立于2001年,是一家专注于提供存储解决方案的公司,以下是该公司发展的五个相关故事:

  1. 公司成立与初期发展: ADATA科技成立于2001年,总部位于台湾新北市,最初致力于生产和销售DRAM模块。随着存储技术的不断发展,公司逐渐扩展了业务范围,涵盖了闪存产品、固态硬盘、移动存储设备等多个领域。

  2. 技术创新与产品推出: ADATA科技在存储领域进行了持续的技术创新,并推出了一系列具有竞争力的产品。公司不断提升产品性能、降低成本,并注重产品的设计和用户体验。除了传统的DRAM模块,公司还推出了闪存卡、固态硬盘、移动硬盘等产品,满足了不同客户和市场的需求。

  3. 市场拓展与国际化发展: ADATA科技积极拓展国内外市场,并逐步实现了国际化发展。公司产品远销全球各地,与全球范围内的主要零售商、电子产品制造商建立了合作关系。通过与合作伙伴的紧密合作,公司产品在国际市场上得到了广泛认可和好评。

  4. 品牌建设与市场影响力: ADATA科技通过持续的品牌建设活动,不断提升了在存储领域的市场影响力。公司参加各类行业展会、展示活动,并投入大量资源进行市场推广和宣传。同时,公司还与体育、文化等领域开展赞助活动,提升品牌知名度和美誉度。

  5. 未来展望与持续发展: 作为一家专注于存储解决方案的企业,ADATA科技将继续致力于技术创新和产品开发。公司将不断改进现有产品,推出更多性能更好、功能更丰富的存储产品,以满足不断变化的市场需求。同时,公司还将继续拓展国际市场,加强与合作伙伴的合作,实现业务的持续增长和发展。

ddm hopt + schuler GmbH & Co KG公司的发展小趣事

进入21世纪后,ddm hopt + schuler公司紧跟数字化浪潮,积极推动数字化转型和智能制造。公司引入先进的物联网、大数据和人工智能技术,对生产线进行智能化改造和升级。通过实时数据监控和分析,公司能够更准确地预测市场需求、优化生产计划、提高生产效率。同时,智能制造也为企业带来了更高的灵活性和更低的成本。

艾为(AWINIC)公司的发展小趣事

艾为电子自成立以来,一直致力于技术研发和产品创新。公司研发团队不断攻克技术难题,推出了一系列具有竞争力的产品。其中,音频功放芯片作为公司的主打产品之一,凭借出色的性能和稳定的品质,赢得了市场的广泛认可。此外,艾为还在信号链、电源管理等领域取得了显著的技术突破,为公司的持续发展奠定了坚实的基础。

Design Gateway公司的发展小趣事

1985年,泰德·维特(Ted Waitt)和Mike Hammond两位年轻人决定辍学创业。他们利用维特祖母的15,000美元存款作为担保,从银行获得了10,000美元贷款,租用了一台计算机,并准备了一份三页的经营计划。在维特父亲位于爱荷华州苏城的牧场里,他们创办了TIPC Network公司(Gateway的前身)。公司起步时,主要向得克萨斯电脑器械公司销售零配件,并开展计算机邮购业务。得益于直销商业模式,Gateway在短短四个月内就实现了10万美元的销售额。

Advanced_Linear_Devices_Inc.公司的发展小趣事

随着市场需求的不断增长,ALD不断拓展其产品线。除了最初的CMOS线性集成电路外,公司还研发出了轨到轨运算放大器、双斜率A/D前端转换器、电压比较器等一系列产品。这些产品不仅满足了不同行业的需求,还进一步提升了ALD在电子行业的市场地位。同时,公司还针对特定应用,如医疗仪器和汽车领域,推出了定制化的解决方案,赢得了客户的广泛赞誉。

AB Connectors Ltd公司的发展小趣事

随着全球环保意识的不断提高,AB Connectors Ltd积极响应国家绿色发展的号召,将环保理念融入到企业的生产经营中。公司采用环保材料和生产工艺,减少了对环境的污染。同时,公司还加强了对废弃物的处理和回收利用,实现了资源的循环利用。这些举措不仅提升了公司的社会形象,还为公司的可持续发展奠定了坚实基础。

以上五个故事基于电子行业的一般发展情况和公司可能面临的挑战与机遇进行了虚构,旨在展示AB Connectors Ltd在发展过程中可能经历的重要阶段和取得的成就。请注意,这些故事并非基于真实事件,仅用于说明目的。

问答坊 | AI 解惑

儿童防走失提醒器

带着小孩出去游玩时,恐怕你最提心的是小孩走失。本装置可有效地解决这一问题。该装置由发射器和接收器组成,将发射器放入小孩的口袋里,接收器由大人拿着,当小孩离开大人的距离超3m(米)时,接收器便发出报警声,提醒大人注意,防止小孩走失。 字 ...…

查看全部问答>

2010年可能消失的十大美国企业:摩托罗拉/柯达上榜!

  导语:美国媒体今日撰文列出了2010年可能会消失的十大美国企业。文章评估了这十家公司的财务状况、其他运营数据、品牌的当前和持续价值以及持有品牌的公司是否会出售资产。以下为文章全文:   今年我们已经目睹了很多知名公司消亡或是他们的 ...…

查看全部问答>

FM发射电路全集!!! (申请加精)

这个还不错...以前玩过...H EHE...可以当无线耳机用... …

查看全部问答>

大型视频联网监控系统的核心技术要点

  视频监控联网系统首先关心的是图像的清晰度。现有标准评价体系里面清晰度指标分成两大类,一大类是标准清晰度的sd系列,另一个是cif系列,好一点的就是d1图像。这中间还有我们国内自己搞的一些标准。       无论是电视体 ...…

查看全部问答>

变频器,这个技术水平差国外同行也太远了

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 加了一个变频器群,一群人在哪里吵得热火朝天,互相诋毁对方的产品,说实在其实一点意义也没有,很多家连源代码都没有的,有几家有代码还都是从同一家出来的,这个技术水平 ...…

查看全部问答>

3M中国创新日见闻

     4月19日上午阿牛哥赶往朝阳区国贸三期参加3M中国创新日会议,有一些见闻和大家分享。特别是很新的手机和电脑的防窥片和移动微型投影仪写成打油诗。 阿牛哥系列故事 清晨去国贸三期 看3M中国创新日 电子电子有福了 全 ...…

查看全部问答>

开关电源设计详解

开关电源设计详解 开关电源设计详解,从公式到实际应用,附加设计图纸,绝对好资料。目的希望以简短的篇幅,将公司目前设计的流程做介绍,若有介绍不当之处,请不吝指教.设计步骤:绘线路图、PCB Layout.变压器计算.零件选用.设计验证.设计流程 ...…

查看全部问答>

招兼职软件架构,设计模式讲师

本单位招兼职软件架构,设计模式讲师,要求有一定项目经历,表达能力强,待遇高,日结,有意者请与我联系。地点北京,上海,成都,广州,大连等地, QQ:1489302364,邮件:hailang869@163.com ,罗先生…

查看全部问答>

LPC800测试程序

比较好的LPC800学习测试程序,…

查看全部问答>

28335 CAN发送顺序?

试验的结果怎么和设置的优先级不一样呢,为啥不是邮箱0到邮箱7的顺序呢?    //配置ID    ECanbMboxes.MBOX0.MSGID.all = 0x9555AAA0; //配置邮箱的ID     ECanbMboxes.MBOX1.MSGID.all = 0x9555AAA1;   & ...…

查看全部问答>