(计算机系统结构专业论文)基于ixp425的upnp流媒体播放器的设计和实现.pdf_第1页
(计算机系统结构专业论文)基于ixp425的upnp流媒体播放器的设计和实现.pdf_第2页
(计算机系统结构专业论文)基于ixp425的upnp流媒体播放器的设计和实现.pdf_第3页
(计算机系统结构专业论文)基于ixp425的upnp流媒体播放器的设计和实现.pdf_第4页
(计算机系统结构专业论文)基于ixp425的upnp流媒体播放器的设计和实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机系统结构专业论文)基于ixp425的upnp流媒体播放器的设计和实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 摘摘 要要 随着计算机技术、多媒体技术和网络技术飞速发展,在多种场合运用基于流媒 体的设备已成为可能。开发实时、可靠、多功能、操作简单的基于计算机技术、网 络通讯技术和多媒体技术的网络流媒体播放器己成为计算机、通信、消费电子产品 的主要发展方向之一。在此背景下,设计了一款流媒体播放器产品原型。 出于产品成本和性能平衡的考虑,所设计流媒体播放器的硬件核心选用了 intel 公司的 ixp425 处理器,选择内核稳定、功能强大、支持多种硬件平台、廉价等优点 的 clinux 作为流媒体播放器的操作系统。 根据流媒体播放器的硬件特点和功能需求, 设计并实现了能够加载 clinux 内核 的启动加载器, 移植 clinux 系统到基于 ixp425 的硬件平台上。 在分析了一般 linux 设备驱动的组成后,成功移植了 sigma 解码芯片的音频、视频驱动程序。在深入研 究了通用即插即用技术基础上,设计并实现了通用即插即用技术协议栈,结合基于 通用即插即用技术的流媒体播放器应用的特点,详细设计并实现了通用即插即用技 术的三个主要工作模块:设备发现模块、设备描述解析模块和设备控制模块,实现 了使用顺序流式传输技术和支持 mpeg-2 音视频解码的流媒体播放器,最终实现了 基于通用即插即用技术的流媒体播放器。 测试结果表明,系统软件平台搭建成功,基于通用即插即用技术的流媒体播放 器工作正常,满足用户的音视频播放需求。 关键词:关键词:流媒体播放器,通用即插即用技术,启动加载器,移植 ii abstract with the development of network and multimedia, steaming media devices have been used widely in many fields. streaming media player based on network communication and multimedia technology has become one of the main trends in communication and consumer electronic product, which has many advantages such as real time, reliability, multifunction, convenient operation. a prototype of steaming media player is designed. in view of cost and performance, ixp425 processor from intel has been used in streaming media player. the clinux has been used for software platform, which has many advantages such as stabilization, powerful function,supporting many different hardware platforms,low cost and so on. according to function requirement and hardware characteristics of streaming media player, we design and implement a bootloader that can load and boot clinux.the clinux has been ported on our hardware platform based on ixp425.on the basis of analyzing common device driver in linux, audio and video drivers for sigma chip are ported on clinux .on the basis of analyzing upnp, protocol stack for upnp has been implemened.according to characteristics of streaming media player based on upnp, three main modules for upnp has beed designed and implemented,which consists of device discovery,device description parse,device control. ultimately, a media player based on upnp and progressive streaming technology is implemented successfully, which supports mpeg-2 decoding of audio and video. the test results show that system software platform has been implemented successfully, streaming media player based on upnp works well.the streaming media player can satisfy users requirement for playing audio and video file. key words: streaming media player, universal plug and play, bootloader, porting 1 1 绪论绪论 进入 20 世纪 90 年代以来,计算机多媒体技术和网络技术飞速发展,基于流媒 体的多媒体应用也被运用在多种领域,特别是网络可视电话、远程监控、视频点播 域1-3。 伴随着计算机多媒体压缩技术的成熟和网络传输技术的发展, 开发实时可靠、 多功能、数字化、操作简单的基于计算机网络通讯技术和多媒体应用的网络化流媒 体播放器己成为计算机、通信、消费电子产品领域(computer. communication. consumer electronics)技术发展的主要方向之一4,5。 1.1 课题的提出和意义课题的提出和意义 传统的流媒体播放器主要是基于 pc 的流媒体播放器。 尽管这类流媒体播放器具 有强大的流媒体播放功能和非常友好的用户界面,但是它具有一个致命缺点就是使 用基于 pc 平台的流媒体播放器的用户必须熟练掌握 pc 技术,并且其应用无法离开 多媒体 pc。 相对的基于嵌入式技术的流媒体播放器有效地将嵌入式技术和流媒体技术结合 在一起,可以很好地解决基于 pc 的流媒体播放器在实际应用中存在的不便6,7。和 基于 pc 的流媒体播放器相比,基于嵌入式技术的流媒体播放器具有:体积小、携带 方便、功能专业化高、成本较低、稳定性高、实时性好等特点8,9。 upnp 模型设计可以支持大量的设备制造商的不同设备的“零配置” 、自主联网、 自动发现等。通过 upnp,设备可以动态的加入网络,自动获得 ip 地址,自动发现 网络上的其他设备以及其提供的服务10-12。 提出了设计并实现一种基于 upnp 技术的嵌入式流媒体播放器,它既能复合 upnp 技术要求,同时又是一款流媒体播放器。 由于本流媒体播放器软件设计上采用了顺序流式传输和标准的音频视频压缩标 准,提供了一种应用广泛的嵌入式流媒体播放终端的综合解决方案。 2 1.2 国内外发展现状国内外发展现状 1.2.1 流媒体播放器的发展动态流媒体播放器的发展动态 流媒体播放器的设计是一门集计算机技术、通信技术和数字多媒体技术于一体 的综合设计。流媒体在中国的宽带建设中被列为最主要的应用之一,越来越多的提 供网络在线服务的运营商开始采用网络视频媒体服务解决方案,以增强在网络服务 上的优势。流媒体将成为未来互联网应用的主流,并将推动互联网整体架构的革新。 近年来, 流媒体技术在世界范围内已有应用, 特别是 1995 年推出第一个 internet 流媒体播放器以来,internet 流媒体应用有了爆炸性增长。互联网的发展更是决定了 流媒体市场的广阔前景13。商业网站利用流媒体上新闻、音乐直播和点播,企业和 机构采用点播和流媒体进行员工培训、信息发布、公司介绍等,可提高效率,节约 开支。随着计算机技术、网络技术、数字多媒体技术等高科技技术的发展,流媒体 播放器技术也得到了迅速发展。流媒体播放器的发展大致可分为两个阶段:基于 pc 的流媒体播放器阶段和嵌入式流媒体播放器阶段。 目前基于 pc 的流媒体播放技术市场上主流的流媒体技术有三种,分别是 realnetworks 公司的 realmedia,microsoft 的 windows media 和 apple 公司的 quicktime。这三家的技术都有自己的专利算法、专利文件格式甚至专利传输控制协 议这三个关键要素在里面。 目前虽然基于 pc 的流媒体播放系统仍然占据多媒体应用的主要市场, 但是它具 有一个致命缺点就是,使用基于 pc 平台的流媒体播放器的用户必须熟练掌握 pc 技 术,并且其应用无法离开多媒体 pc。 近两年随着流媒体技术应用到各个领域,特别是计算机、通信、消费电子产品 领域(3c 产业一一 computer. comunication. consumer electronics), 对视频播放系统的 要求也越来越高:操作简单、实时可靠、多功能、数字化、经济实用的流媒体播放器 的开发和设计正越来越多地受到人们的瞩目。基于嵌入式技术的流媒体播放器应运 而生。 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,适用于对 3 功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,一般用于实现对其 他设备的控制、监视或管理功能14-16 。它主要由嵌入式微处理器、外围硬件设备、 嵌入式操作系统以及用户软件等部分组成17,18 。 嵌入式系统以其本身体积小、实时性高、稳定性好、支持以太网等优点,成为 多媒体应用领域的新热点19。基于嵌入式技术的流媒体播放器有效地将嵌入式技术 和流媒体技术结合在一起, 可以很好地解决基于 pc 的流媒体播放器在实际应用中存 在的不便和问题。 和基于 pc 的流媒体播放器相比, 基于嵌入式技术的流媒体播放器具有: 体积小、 携带方便、功能专业化高、成本较低、稳定性高、实时性好等特点。因此基于嵌入 式技术的流媒体播放器必将有良好的应用与发展前景,特别是在消费电子产品领域 (3c 产业)。 1.2.2 嵌入式系统及嵌入式嵌入式系统及嵌入式 linux 的现状的现状 嵌入式系统是指嵌入式计算机(embedded computer)及其应用系统,是指嵌入于 各种设备及应用产品内部的计算机系统,它主要完成信号控制的功能,体积小,结 构紧凑,可作为一个部件埋藏于所控制的装置中,它提供用户接日、管理有关信息 的输入输出、监控设备工作,使设备及应用系统有较高智能和性价比。嵌入式系统 由嵌入式硬件与嵌入式软件组成,硬件以芯片、模板、组件、控制器形式埋藏于设 备内部,软件是实时多任务操作系统和各种专用软件,一般固化在 rom 或闪存中。 软硬件可剪裁,适用于对功能、体积、成本、可靠性、功耗有严格要求的计算机系 统中。嵌入式计算机系统,最早出现在 60 年代武器控制中,后来用于军事指挥控制 和通信系统,现在广泛用于民用机电一体化产品中。 嵌入式系统主要用于各种信号处理与控制,目前己在国防国民经济及社会生活 各领域普及应用,用于企业、军队、办公室、实验室以及个人家庭等各种场所。目 前微处理器、微控制器产量几亿到 10 多亿片,远远大于个人计算机通用台式机。目 前世界嵌入式系统硬件和软件开发工具市场约 2000 亿美元,嵌入式系统带来的工业 年产值达一万亿美元。随着全球信息化的发展嵌入式系统市场将进一步增长。我国 4 信息化与全面小康社会建设对嵌入式系统市场提出巨大需求,信息家电产品年需求 量几亿台,每一类数字化家电产品都有千万台市场需求量,工业控制用嵌入式系统 有百十万台套需求量,商用嵌入式系统需求量几百万台。我国己有集成电路及 pcb 印刷电路板产品的大批量生产能力,出口的嵌入式应用产品亦将逐步增长,在全球 市场也可占有一席之地。到 2005 年我国嵌入式计算机将创造千亿元的效益,嵌入式 计算机是信息产业新的经济增长点。 随着嵌入式系统的发展,提出了对嵌入式实时操作系统的需求。于是出现了很 多商用的产品, 如 vxworks, psos, qnx, neculeus 和 windows ce 等。 这些商用的操 作系统虽然功能强大,但是价格昂贵。而且网络协议栈等等开发资源都是由相应的 公司提供的,使得开发者受制于提供操作系统的公司。 linux 的出现打破了这一局面。linux 是一种在网络上产生的操作系统,他的产 生来自于一名芬兰学生 linus torvalds 的业余爱好。在网络上 linux 的开发成为众多 人热衷的项目,使得 linux 在短期内就成为了一个稳定、成熟的操作系统20,21 。而 且,linux 的开发都是在 gpl (gnu public license)的版本控制之下,因此 linux 内 核的所有源代码都是采取开放源代码的方式。 将 linux 作为一个嵌入式操作系统具有许多的优点。 (1)系统稳定 linux 是源代码开放软件,不存在黑箱技术。遍布全球的众多 linux 爱好者又能 给予 linux 开发者强大的技术支持。因此 linux 是所有 pc 操作系统中最可靠且稳定 的一种,其内核也是如此22,23 。 (2)功能强大 由于拥有众多的开发者,使得 linux 具有非常强大的功能,它支持多种总线, 接口及设备,支持几乎所有的文件系统,它还能提供多种完善的图形界面解决方案。 (3)支持多种硬件平台 linux 可以非常稳定地运行在许多种体系结构的处理器上。最新的 linux 内核支 持intel x86, motorola/ibm powerpc, compaq(dec)alpha, ia 64, s/390,sh等微处理器 5 体系结构。 (4)简单易用并且开发资源丰富 linux 的系统界面和编程接口和传统的 unix 类似, 大量在 unix 下的程序员可 以很方便的从 unix 环境转移到 linux 环境下来。同时网络上还有大量的针对 linux 的开发资源,这些资源绝大多数都是开放源代码的。这使得基于 linux 的开发非常 方便。 (5)使用成本低 linux 是免费软件,只要遵守 gpl (gnu general public license)的规定,就可以 免费获得拷贝。 linux 下有同样遵循 gpl 规定的 c, c+, java 等等一系列的软件工具 开发包,从功能角度上看并不亚于商用开发包,同时可以极大的降低开发成本。 (6)文档完善 linux 有非常多的文档支持, 从为初学者准备的各种教程到非常详细的联机帮助 文档。 linux 是互联网技术充分发展的产物, 许多关于 linux 的文档都可以在 internet 上找到和下载。linux document project 是为 linux 提供系统化的文档支持的项目, 在世界上许多程序员和用户的帮助下,它已经收集了非常详细的系统文档和使用文 档。 (7)强大的网络功能 linux 操作系统最突出的是网络部分, 基本上所有的网络协议和网络接口都可以 在 linux 上找到,linux 内核比标准的 unix 更加高效地处理网络协议,系统的网络 吞吐性能非常好24,25。 (8)模块化的结构 linux 的内核模块可以根据需要加载和卸载。而内核本身的裁剪也是很容易的。 这使得开发者可以很方便的针对特定的应用来定制一个操作系统。目前,国外不少 大学、 研究机构和知名公司都加入了嵌入式linux的开发工作, 较成熟的嵌入式linux 产品不断涌现,较著名的系统有:rt-linux(real-timelinux), clinux, bluecat linux 和 montavista linux。 6 这里说一下 clinux。clinux 是 lineo 公司的主打产品,同时也是开放源码的 嵌入式 linux 的典范之作。clinux 主要是针对目标处理器没有存储管理单元 mmu (memory management unit)的嵌入式系统而设计的。 它已经被成功地移植到了很多平 台上。由于没有 mmu,其多任务的实现需要一定技巧。clinux 是一种优秀的嵌入 式 linux 版本,是 micro-control-linux 的缩写。它秉承了标准 linux 的优良特性,经 过各方面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式 linux。虽然它 的体积很小,却仍然保留了 linux 的大多数的优点:稳定、良好的移植性、优秀的网 络功能、对各种文件系统完备的支持和标准丰富的 api26,27 。它专为嵌入式系统做 了许多小型化的工作, 目前己支持多款 cpu。 其编译后的目标文件可控制在几百 kb 数量级,并已经被成功地移植到很多平台上。 1.2.3 流媒体传输技术的现状流媒体传输技术的现状 流媒体的主要技术特征就是采用流式传输, 即通过 internet 将影视节目传送到播 放端。实现流式传输有两种方法:顺序流式传输(progressive streaming)和实时流式传 输(real-time streaming)。 (1)顺序流式传输 顺序流式传输是顺序下载,用户可以观看在线媒体。但是在给定时刻,用户只 能观看已下载的那部分,而不能跳到还未下载的前序部分;它不能根据用户的连接 速度做调整。顺序流式传输不适合长片段和有随机访问要求的视频、讲座、演说与 演示。它也不支持现场广播,严格说来,它是一种点播技术。 (2)实时流式传输 实时流式传输指保证媒体信号带宽与网络连接相匹配,使媒体可被实时观看到。 实时流与 http 流式传输不同,需要专用的流媒体服务器与传输协议。实时流式传 输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看 前面或后面的内容。理论上,实时流一经播放就可不停地收看,但实际上,可能会 发生周期暂停。 (3)二者比较 7 从视频质量上讲,实时流式传输必须匹配连接带宽,由于出错丢失的信息被忽 略掉,网络拥挤或出现问题时,视频质量会变差;如欲保证视频质量,顺序流式传输 更好。实时流式传输还需要特殊网络协议,如:rtsp (real-time streaming protocol), 这些协议在有防火墙时有时会出现问题,导致用户不能看到一些地点的实时内容;而 顺序流与传输与防火墙无关。但是如果想观看长片段和有随机访问要求的多媒体或 者想观看现场广播只能使用实时流式传输。 目前随着互联网的迅猛发展和普及,流媒体业务发展提供了强大的市场动力, 流媒体业务正变得日益流行。当今流媒体技术,特别是实时流式传输技术广泛用于 在线直播、视频点播、远程教育、多媒体新闻发布、网络广告、电子商务、远程医 疗、网络电台、实时视频会议等互联网信息服务的方方面面,它的应用为网络信息 交流带来革命性的变化,对人们的工作和生活己经产生了深远的影响。 1.3 本文主要内容本文主要内容 本文主要目的是设计和实现一个upnp流媒体播放器,采用intel ixp425为核心的 硬件平台,软件平台选用 clinux。 首先分析了对基于 upnp 的嵌入式流媒体播放器所使用的理论和技术进行了深 入的探讨, 其中包括 upnp 技术、 流媒体技术。 其次介绍了多媒体播放器的整体构架, 给出了硬件平台的整体构架和软件交叉编译平台的搭建。接着介绍了软件平台的实 现,包括 bootloader 的设计和实现,clinux 内核的移植和音频视频驱动的移植。最 后在深入分析 upnp 技术的基础上, 实现了 upnp 协议栈, 并详细设计和实现了 upnp 的三个主要工作模块:设备发现模块、设备描述解析、设备控制,并实现了使用顺 序流式传输技术和支持 mpeg-2 音视频解码的流媒体播放器, 最终实现了基于 upnp 的流媒体播放器的应用。 8 2 相关理论和技术基础相关理论和技术基础 本章接下来介绍嵌入式系统的 upnp 流媒体播放器所涉及的理论和技术基础。 2.1 upnp 原理原理 upnp (universal plug and play)实际上是扩展了传统单机的设备和计算机系统的 概念,将 pnp 功能扩展到网络环境,使得设备和服务一旦接入网络,立即就可以使 用。upnp 模型设计可以支持大量的设备制造商的不同设备的“零配置” 、自主联 网、自动发现等。通过 upnp,设备可以动态的加入网络,获得 ip 地址,发现网络 上的其他设备以及其提供的服务,这一切均是自动完成。 运用 upnp,一个设备可以动态的加入网络,自动获得 ip 地址,自动宣布自己 的名称,根据需要提供功能,自动获知网上还存在哪些其他设备、它们各自的功能 以及它们当前所处的状态,设备间能直接进行通信和互操作,并且可以平滑地、不 留下任何不必要的信息地离开网络。 upnp 的 “通用性” 体现在它是建立在 tcp/ip 和 web 技术之上提供设备端到端 连接的开放的、分布式的网络体系结构,能无缝地接入现有网络。它独立于任何网 络传输介质、任何编程语言、任何操作系统,它没有定义 api,允许操作系统开发商 定义他们自己的 api。 它使用浏览器或设备用户接口来进行设备控制, 允许设备开发 商在遵循基本设备类控制协议的基础上,扩展自己的设备控制协议。它支持广泛的 设备类型:智能设备、无线设备、各种形式的 pc 等,同时也支持广泛的网络类型:低 速的控制网络、中速的数据网络、高速的多媒体网络。 一个 upnp 网络通常由设备(device) 、服务(service)、控制点(control point)这三 个基础部分组成。 在 upnp 网络中, 用户请求设备执行的控制是通过控制点实现的, 控制点首先是 一个有能力控制别的设备的控制者,还要具有在网络中“发现”控制目标的能力。 在发现(控制目标)之后,控制点应当进行以下动作:取得设备的描述信息并得到所关 9 联的服务列表、取得相关服务的描述、调用控制服务行为、确定服务的事件源。不 论何时,只要服务状态发生改变,事件服务器会立即向控制点发送一个事件信息。 控制点软件通常运行在具备用户界面的设备上,比如 pc、手机、pda 等,通常 至少包括发现客户程序(discovery client)、描述客户程序(description client)和命令转 换器,还可以包含可视化导航程序、事件订阅客户程序、浏览器以及应用程序执行 环境等。 一个控制点可以同时控制多个受控设备,控制点所在的设备也可以同时是受控 设备。受控设备软件至少包括发现服务器(discovery server)、描述服务器(description server)、控制服务器(control server)以及表征服务器、事件订阅服务器、事件源等。 非 upnp 兼容的设备亦可通过专用的 upnp 桥设备表现为 upnp 兼容设备,因此也称 为桥后设备(bridged devices)。 2.2 流媒体技术流媒体技术 2.2.1 音视频压缩标准音视频压缩标准 (1)音频压缩标准 数字化的声音有很多种存在形式:wav, mp3,aac 等等。但是无论怎样,声音的数 据量由两方面决定频度和样本精度。由于对于声音的数字化涉及较广的数学和感知 领域的知识,我们只是简要介绍。 mpeg-1 音频定义了 3 个分明的层次, 它们的基本模型是相同的。 第一层是最基 础的,第二层和第三层都在第一层的基础上有所提高。每个后继的层次都有更高的 压缩比,但也因此需要更加复杂的解码器。我们平时说的 mp3 解码就是说 mpeg-1 音频解码标准的第三层。 mpeg-1 声音标准所提供的三个独立的压缩层次具体如下: 第一层:编码器最为简单,编码的输出数据率为 384kb/s,主要用于小型数字盒 式磁带; 第二层:编码器的复杂程度较高,编码输出数据率为 256k-b/:到 192kb/s,广泛 10 应用于 cd, vcd 等; 第三层:编码器最为复杂,编码器的输出数据率为 64kb/s,即为现今非常流行的 mp3。 aac 的全名为 advanced audio coding,其意思为高级音频编码,是国际标准化 组织(iso)制定的音频标准格式28,也是 mpeg 规范的一部分。在 mpeg-2 里提出, 在 mpeg-4 里进一步扩展和完善。采样频率选择性更高,更接近 cd 音质:并且采用 了解析度更高的滤波器组,达到很高的压缩率,并且可大幅度降低传输时间及介绍 存储空间,适合新一代音乐产品使用。 (2)视频压缩标准 视频数据量巨大。例如,ntsc 图像以大约 640 x 480 的分辨率,24bits /象素, 每秒 30 帧的质量传输时,其数据率达 28m 字节/秒或 221m 位/秒。此外,ntsc 声 音信号还要使未压缩多媒体数据的比特率再增加一些。这是一般的网络传输能力所 无法承受的,它会很容易地将网络资源吞没,造成网络拥塞甚至崩溃。而且,以 28m 字节/秒的速率,一分钟的未压缩图像将占用 1. 6g 字节的存储空间,这对于一般的 计算机来说也是不可接受的。 所以,在多媒体应用中,多媒体数据传输或存储的第一步就是多媒体压缩。这 就提出了一个不同厂家产品的兼容性问题,因此需要一个全球性的统一的多媒体压 缩标准。运动图像专家组(mpeg)应运而生。 mpeg 是 moving pictures experts group, 动态图象专家组的英文缩写, 它是 iso (international standard organization)与 iec(international electronic committee)于 1988 年联合成立的一个工作组,致力于运动图像及其伴音编码的标准化工作29,30。自成 立以来,mpeg 专家组发布了一系列的多媒体压缩标准:1993 年公布了活动图像的 编码压缩标准 mpeg-1;1994 年发表了 mpeg-2 标准, 该标准向下兼容 mpeg-1, 向上兼容 hdtv 的图像质量31,32;1999 年公布了 mpeg-4 标准,后来 mpeg-4 标准 又进行多次修改33。这些多媒体标准为不同的应用领域制定,提供了不同的多媒体 质量,它们对多媒体通信的发展起到了革命性地推动作用。 11 mpeg-1是一种压缩比高但图像质量稍差的技术;而mpeg-2技术主要专注于图 像质量, 压缩比小, 因此需要的存储空间就大; mpeg-4 技术是时下比较流行的技术, 使用这种技术可以节省空间、图像质量高、对网络传输带宽要求不高。相比之下, mpeg-4 技术在国内比较普及,同时也得到了业界专家的认同。 2.2.2 流媒体技术原理流媒体技术原理 流式传输的实现需要合适的传输协议。由于 tcp 需要较多的开销,故不太适合 传输实时数据。在流式传输的实现方案中,一般采用 http/tcp 来传输控制信息, 而用 rtp/udp 来传输实时音视频数据。 流式传输的过程一般是:用户选择某一流媒体服务后,web 浏览器与 web 服务 器之间使用 http/icp 交换控制信息,以便把需要传输的实时数据从原始信息中检 索出来。 然后客户机上的 web 浏览器启动 a/v helper 程序, 使用 http 从 web 服务 器检索相关参数对 helper 程序初始化。这些参数可能包括目录信息、a/v 数据的编 码类型或与 a/v 检索相关的服务器地址。 a/v helper 程序及 a/v 服务器运行实时流控制协议(rtsp),以交换 a/v 传输所 需的控制信息。与 dvd 播放机或 vcrs 所提供的功能相似,rtsp 提供了操纵播放、 快进、快退、暂停等命令的方法。a/v 服务器使用 rtp/udp 协议将 a/v 数据传输 给 a/v 客户程序,一旦 a/v 数据抵达客户端,a/v 客户程序即可播放输出。实现流 式传输一般都需要专用服务器和播放器,其基本原理如图 2.1 所示。 web浏览器web服务器 a/v服务器 a/v播放器 http/tcp rtsp/tcp rtp/udp 元 数 据 文 件 定 位 图 2.1 流式传输基本原理图 12 2.3 本章小结本章小结 本章对嵌入式 upnp 流媒体播放器的理论和技术基础进行了详细的探讨, 主要介 绍了 upnp 的原理和流媒体技术。upnp 实际上是扩展了传统单机的设备和计算机系 统的概念,将 pnp 功能扩展到网络环境,使得设备和服务一旦接入网络,立即就可 以使用。 13 3 系统平台整体构架系统平台整体构架 本章主要介绍基于 ixp425 的嵌入式流媒体播放器的组成,包括以 ixp425 为核 心的硬件平台和基于 clinux 的系统软件架构。 3.1 硬件平台整体结构硬件平台整体结构 系统硬件平台是以 intel ixp425 为核心的硬件平台。其处理器的工作频率为 266m hz, 单芯片上提供了一个可编程高性能 intel xscale 核心, 使用三个网络处理器 引擎来实现高性能的,全线速(wire-speed)包处理,并且包含 wan/lan 接口并且 支持声音、视频、安全以及网络管理服务。硬件平台结构如图 3.1 所示。 ixp 425 处理器 uart 0 uart 1 pci sdrammii 0mii 1扩展 总线 jtag jtag 端口 rs232 tx-rx max 3225 智能读卡器 boot flash 16m 以太网 phy ks8995x mini pci conn usb 2.0 控制器 usb conn 解码器 em8620l ddr sdram flash 4 mb dvi transmitter s-video rca 音频 dac cs4351-cz dvi conn 编码器 vw2005 eeprom sdram 8m 视频 解码 音频 解码 rca cvbs s-video pre- amp stereo jack 128 m 图 3.1 硬件平台结构图 硬件结构中还包括如下的主要器件:128m sdram,16m flash, usb 2.0 控制器, 14 sigma 8620l 解码器,vw2005 编码器,mini-pci 接口等。 3.2 硬件内核结构硬件内核结构 3.2.1 系统性能系统性能 (1)主处理器:intel ixp425网络处理器,工作频率为266m hz,16 bit/66m hz expansion bus,32 bit/133 mhz sdram,两个mii接口,两个hss接口。 (2)外围存储器:128m sdram,16m boot flash。 (3)pci设备: 支持4个pci设备, 分别用于解码器, 编码器, usb控制器和mini-pci 接口。 (4)调试接口:1个控制台串口和一个jtag口 (5)以太网: 两个 mii 接口连接一个 ks8995xa phy 芯片,有一个 wan 接口和三 个 lan 接口。 3.2.2 主微处理器主微处理器 intel ixp 4xx 系列处理器是专为家庭、 中小企业和网络嵌入式应用而设计的网络 处理器, 其主频为 266mhz/400mhz/533mhz, 远远高于 arm7/9 架构的处理器。 intel ixp425 提供了一个可编程高性能 intel xscale 核心和三个网络处理器引擎。intel xscale core 技术兼容于 arm 5te 指令集架构,采用了 intel 0.18 微米半导体制程技 术,具有出色的 mw/mips 性能。 xscale core 整合了 7/8 级高速超管线架构执行核心、128-entry 分支目标缓存以 及 32kb 指令缓存、32kb 数据缓存和 2kbmini 数据缓存,这种结构可以确保极高的 命中率。三个网络处理器引擎是硬件级的多线程协处理器,可以帮助 xscale core 分 担高负载的运算,比如 mii(mac)、crc checking/generation、aal 2、aes、des、 sha-1 和 md5 等运算。每个 npe 的主频为 133mhz,都配置了专用的指令缓存和 数据缓存。 3.2.3 解码器解码器 视频/音频解码器采用 sigma 8620l 数字多媒体处理芯片。 sigma 8620l 是一款先 15 进的单片的视频/音频解码器芯片,它支持 mpeg-1, mpeg-2 mphl, mpeg-4 advanced simple profile level 5 (without global motion compensation), and windows media video 9(wmv9)等多媒体格式。 3.3 编译环境的搭建编译环境的搭建 3.3.1 gcc 编译器编译器 gcc 是一个用 c 语言实现的优化的可移植编译系统34。 高度的优化和可移植性 能是该编译系统最为突出的两大特点,也是技术上的最为成功和精采之处。由于优 化和可移植性是衡量现代编译系统的主要标准,加之 gcc 的高稳定和免费提供等优 点,使许多专门从事 c 编译器的公司难能与之对抗。 gcc 的实现步骤包括:预编译 preprocess(gcc -e)、编译 compile(gec)、汇编 assemble(as)和链接 link (1d)。 (1)预编译 preprocess:源代码中的预编译指示以“#”为前缀。可以通过在 gcc 后加上e 选项来调用预编译器。 预编译过程通过完成三个主要任务给了代码很大的 灵活性。将include的文件拷贝到编译的源文件中;用实际值替代“define”的文本; 在调用宏的地方进行宏替换。 (2)编译 compile:作为一个中间步骤,把源代码翻译成汇编语言。这是一项极其 复杂的工作,包括词法分析、语法分析、中间代码产生、编译优化和汇编代码生成。 人们有时会把这一步误解为整个过程,但是实际上还有许多工作要 gcc 去做。 (3)汇编 assemble:gcc 通过 as 把汇编语言代码转换为目标代码。事实上, 目标代码并不能在 cpu 上运行。 编译器选项-o 把.c 文件转换为.o 为扩展名的目标 文件。 (4)连接 link:链接器 ld 使用下面的命令,接收前面由 as 创建的目标文件并把 它转换为可执行文件。gnu 的 ld 可以用简单的命令参数,也可以使用复杂的连接脚 本,进行连接和重新定位。 linux 下有很多性能优异、使用灵活高效的开发工具,如 c 编译器 gcc (gnu c 16 compiler)、项目开发管理工具 gnu make、开发调试工具 gdb (gnu debugger)、汇 编编译器 as,链接器 ld 等。这些工具不但功能强大,而且它们都按 gpl 版权中明 发布,不需任何的使用费用。在嵌入式系统中,由一个源文件变为最终可执行的二 进制文件,一般要经过三个过程,即编译、链接和重定位。通过编译或者汇编工具, 将源代码变为目标文件。由于目标文件往往不只一个,所以需要用链接工具将它们 链接成另外一个目标文件,可以称其为“可重定位程序” 。经过定址 工具,将可重定位程序,变为最终的可执行文件。 3.3.2 建立交叉编译环境建立交叉编译环境 整个移植过程是在一个 redhat 7.3 操作系统下进行的,采用的是交叉编译方 式。我们使用的 snapgear 3.1.1 是 snapgear 组织发行的一个 clinux 的版本,包括一 系列的开发调试工具。 gcc 和 binutils 的源代码可以从网络上下载源代码进行编译,也可以下载别人已 经交叉编译好的工具。对于大多数开发者来说并不必自己编译 toolchain,而且编译 一个 toolchain 也是一项极其复杂的工作,不是本章讨论的范围。通常可以下载己经 编译好的 toolchain,除非真的是有特殊的要求和应用情景。下面是环境的具体搭建 步骤: (1)首先创建自己的工作目录。 pwd /home mkdir cd mkdir archive (2)把所有的软件包拷贝到 archive 下。包括 snapgear 3.1.1 发布包,相关的补丁 包,工具包。各个文件名:snapgear-3.1.1.tar.gz,arm-linux-tools-20031127.tar.gz, snapgear-3.1.x-ixp400-v1.4.2-support.tar.gz,ixp425accesslibrary-1_4.zip。 (3)解压 snapgear 3.1.1 包。 17 cd /home/ tar -xzvf archive/snapgear-3.1.1.tar.gz (4)打上相关补丁。 cd /home/snapgear tar -xzvf ./archive/snapgear-3.1.x-ixp400-v1.4.2-support.tar.gz cp ./archive/ixp425accesslibrary-1_4.zip vendors/intel/ixdp425/ ixp400-1.4- uclinux vendors/intel/ixdp425/ixp400-1_4-uclinux/install (5)修改 path 路径把我们的交叉编译工具所在的路径加进去。 export path=$path: /home/xscale_be/bin/ 3.4 本章小结本章小结 本章详细介绍本章主要介绍基于ixp425的嵌入式流媒体播放器的系统平台组成 和编译平台的搭建,为后面的软件平台的实现做好准备。嵌入式流媒体播放器采用 intel 公司的基于 ixp425 的硬件平台,使用嵌入式 clinux 作为操作系统平台。 18 4 系统软件平台的实现系统软件平台的实现 我们的操作系统采用嵌入式 clinux 操作系统。下面介绍在基于 intel ixp425 的 硬件平台上的系统软件平台的搭建,主要介绍了 bootloader 的设计和实现、clinux 内核移植、音频视频驱动开发三个部分,并对系统进行了测试。 4.1 bootloader 设计和实现设计和实现 bootloader 是与系统高度相关的初始化软件, 它担任着初始化硬件和引导操作系 统的双重责任。bootloader 广泛用于有操作系统的手持终端设备、智能家电、机顶盒 等嵌入式设备上。它负责完成硬件初始化、操作系统引导、系统调试和系统配置等。 bootloader 的实现是在特定硬件平台上操作系统移植至关重要的一步。 每种不同的 cpu 体系结构都有不同的 bootloader。有些 bootloader 也支持多 种体系结构的 cpu,比如 u-boot 就同时支持 arm 体系结构和 mips 体系结构。 除了依赖于 cpu 的体系结构外,bootloader 实际上也依赖于具体的嵌入式板级设 备的配置。 这也就是说, 对于两块不同的嵌入式板而言, 即使它们是基于同一种 cpu 而构建的,要想让运行在一块板子上的 bootloader 程序也能运行在另一块板子上, 通常也都需要修改 bootloader 的源程序。用户可以选择自己熟悉的 bootloader 来移 植,这样会更快。 4.1.1 bootloader 的主要任务的主要任务 bootloader 的总目标就是正确地调用内核来执行。但是随着嵌入式系统的发展, bootloader 已经逐渐在基本功能的基础上进行了扩展,bootloader 可以更多地增加 对具体系统的板级支持,以方便开发人员进行开发和调试。 另外, 由于 bootloader 的实现依赖于 cpu 的体系结构, 因此大多数 bootloader 都分为 stage1 和 stage2 两大部分。依赖于 cpu 体系结构的代码,比如设备初始 化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍 19 的目的。而 stage2 则通常用 c 语言来实现,这样可以实现给复杂的功能,而且代码 会具有更好的可读性和可移植性35。 bootloader 的 stage1 通常包括以下步骤(以执行的先后顺序): (1)硬件设备初始化。 (2)为加载 bootloader 的 stage2 准备 ram 空间。 (3)拷贝 bootloader 的 stage2 到 ram 空间中。 (4)设置好堆栈。 (5)跳转到 stage2 的 c 入口点。 bootloader 的 stage2 通常包括以下步骤(以执行的先后顺序): (1)初始化本阶段要使用到的硬件设备。 (2)检测系统内存映射(memory map)。 (3)将 kernel 映像和根文件系统映像从 flash 上读到 ram 空间中。 (4)为内核设置启动参数。 (5)调用内核。 4.1.2 bootloader 的实现的实现 系统加电后首先运行 flash 中的 bootloader。 bootloader 配置 cpu 进入 supervisor 模式,清空数据和指令 cache,清空 tlb。清空 write 和 fill buffer,gpio,配置并使 能内存控制器,清空中断寄存器并屏蔽中断,初始化任何需要的 pll,初始化 os timer,设置堆栈段,配置 mmu,然后把自己后半部重定位到 sdram 中去执行。 然后判断需要进入哪种模式,如果是“启动加载”模式,bootloader 从 flash 上将 clinux 操作系统加载到 sdram 中,然后把控制权交操

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论