(电路与系统专业论文)嵌入式多媒体开发平台的设计和实现[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)嵌入式多媒体开发平台的设计和实现[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)嵌入式多媒体开发平台的设计和实现[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)嵌入式多媒体开发平台的设计和实现[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)嵌入式多媒体开发平台的设计和实现[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩89页未读 继续免费阅读

(电路与系统专业论文)嵌入式多媒体开发平台的设计和实现[电路与系统专业优秀论文].pdf.pdf 免费下载

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

文档简介

摘要 随着嵌入式相关技术的高速发展,嵌入式系统的功能和处理能力不断地增 强,很多传统的桌面多媒体应用都逐渐地转移到嵌入式系统中,嵌入式多媒体己 成为嵌入式系统应用的主要方向。而在相关产品的开发过程中,功能强大的开发 平台起着至关重要的作用,因此设计一款高性能、外扩丰富接口的嵌入式多媒体 开发平台具有非常重要的意义。 本论文设计了一款基于p x a 2 7 0 处理器的嵌入式多媒体开发平台,硬件平台 的接口包括以太网、a c 9 7 、触摸屏、c f p c m c i a 、u s bh o s t c l i e n t 和硬盘等, 在此硬件平台上移植了w i n d o w sc e 系统,并实现了支持a v s 视频解码的t c p m p 播放器。针对平台开发的关键技术问题,本文主要讨论包括核心系统和外围电路 的硬件平台、引导程序和u s b 调试系统等板极支持包以及作为具体应用的播放 器的开发过程。 本论文的特色与创新点主要体现在以下几个方面: ( 1 ) 利用c f 控制接口和c p l d 实现了i d ea t a 硬盘接口与c f p c m c i a 接口电路,丰富了开发平台的外围接口。 ( 2 ) 对引导程序进行了多重引导和u s b 下载的功能扩展,对w i n d o w sc e 的k i t l 添加了r n d i sk i t l 功能,增强了板级支持包的功能。 ( 3 ) 在所设计的软硬件平台上实现了支持a v s 解码功能的t c p m p 播放器。 关键词:嵌入式多媒体;w i n d o w sc e :先进音视频编码 a b s t r a c t w i t ht h ed e v e l o p m e n to fr e l a t e dt e c h n o l o g i e s ,e m b e d d e ds y s t e mb e c o m e sm o r e a n dm o r ep o w e r f u l m a n yc o n v e n t i o n a ld e s k t o pm u l t i m e d i aa p p l i c a t i o n sa r eg r a d u a l l y m i g r a t e dt oe m b e d d e ds y s t e m e m b e d d e dm u l t i m e d i ah a sb e c o m eo n eo ft h em a i n a p p l i c a t i o nf i e l d so fe m b e d d e ds y s t e m w h i l ed e v e l o p i n gp r o d u c t so ft h i sf i e l d , p o w e r f u ld e v e l o p m e n tp l a t f o r mp l a y sak e yr o l e s oi ti sv e r yn e c e s s a r yt od e s i g na l l e m b e d d e dm u l t i m e d i a d e v e l o p m e n tp l a t f o r mw i t hh i 曲p e r f o r m a n c ea n dr i c h p e r i p h e r a li n t e r f a c e s t h et h e s i sd e s i g n sa ne m b e d d e dm u l t i m e d i ad e v e l o p m e n tp l a t f o r mb a s e do n p x a 2 7 0p r o c e s s o r t h ei n t e r f a c e so ft h i sp l a t f o r mi n c l u d ee t h e m e t ,a c 9 7 ,t o u c h p a n e l ,c f p c m c i a ,u s bh o s t c l i e n ta n di d e t h e ni tm i g r a t e sw i n d o w sc e o p e r a t i n gs y s t e mt ot h eh a r d w a r ep l a t f o r ma n di m p l e m e n t sat c p m pp l a y e rw h i c h s u p p o r t sa v sv i d e of o r m a t i nv i e wo ft h ek e yt e c h n o l o g yp r o b l e m sm e t e di n p l a t f o r md e s i g n ,t h et h e s i sd i s c u s s e st h ed e v e l o p m e n to ft h r e ep a r t s :t h eh a r d w a r e p l a t f o r mw h i c hi n c l u d e s c o r es y s t e ma n dp e r i p h e r a lc i r c u i t s ,t h eb o a r ds u p p o r t p a c k a g ew h i c hi n c l u d e sb o o t l o a d e ra n du s bd e b u g g i n gs y s t e m ,a n dt h et c p m p p l a y e r t h ec h a r a c t e r i s t i c sa n di n n o v a t i o n si nt h i st h e s i sa r ea sf o l l o w s : ( 1 ) i m p l e m e n tt h ei d ea t aa n dc f p c m c i ai n t e r f a c e su s i n gc fc o n t r o l l e ra n d c p l d ,e n r i c ht h ep e r i p h e r a li n t e r f a c e so ft h ed e v e l o p m e n tp l a t f o r m ( 2 ) a d dm u l t i b o o ta n du s bd o w n l o a d i n gf u n c t i o n st ob o o t l o a d e r , a d dr n d i s k i t lf u n c t i o nt ow i n d o w sc ek j t l ( 3 ) i m p l e m e n tat c p m pp l a y e rw h i c hs u p p o r t sa v sv i d e of o r m a tb a s e do nt h e h a r d w a r ea n ds o f t w a r ep l a t f o r m k e yw o r d s :e m b e d d e dm u l t i m e d i a ;w i n d o w sc e ;a v s 厦门大学学位论文原创性声明 本人呈交的学位论文是本人在导师指导下,独立完成的研究成 果。本人在论文写作中参考其他个人或集体己经发表的研究成果,均 在文中以适当方式明确标明,并符合法律规范和厦门大学研究生学 术活动规范( 试行) 。 另外,该学位论文为( 舷入处f 0 ) 课题( 组) 的研究成果,获得( 瓤心彳1 0) 课题( 组) 经费或实验室的 资助,在洲魂倪豸嘿i 协) 实验室完成。( 请在以上括号内填写课 题或课题组负责人或实验室名称,未有此项声明内容的,可以不作特 另i 声明。) 声明人( 签名) :翔建立 符9 月矿 厦门大学学位论文著作权使用声明 本人同意厦门大学根据中华人民共和国学位条例暂行实施办 法等规定保留和使用此学位论文,并向主管部门或其指定机构送交 学位论文( 包括纸质版和电子版) ,允许学位论文进入厦门大学图书 馆及其数据库被查阅、借阅。本人同意厦门大学将学位论文加入全国 博士、硕士学位论文共建单位数据库进行检索,将学位论文的标题和 摘要汇编出版,采用影印、缩印或者其它方式合理复制学位论文。 本学位论文属于: () 1 经厦门大学保密委员会审查核定的保密学位论文, 于年月日解密,解密后适用上述授权。 () 2 不保密,适用上述授权。 ( 请在以上相应括号内打“ 或填上相应内容。保密学位论文 应是已经厦门大学保密委员会审定过的学位论文,未经厦门大学保密 委员会审定的学位论文均为公开学位论文。此声明栏不填写的,默认 为公开学位论文,均适用上述授权。) 声明人( 签名) :御量土 砚年矿月刁日 第1 章绪论 第1 章绪论 1 1嵌入式多媒体的特点 从1 9 8 5 年美国c o m m o d o r e 公司推出了世界上第一台多媒体计算机a m i g a 到 现在,多媒体系统已经经历了二十多年的发展历史,其各种应用深入到人们的生 活中,给人们带来了极大的便利。嵌入式系统定义为“计算机软、硬件的综合体, 是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用 中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统” 1 ,它 与多媒体结合产生了嵌入式多媒体,使得多媒体设备变得轻巧便携又降低了成 本,因此发展非常迅速。根据美国消费电子协会( c e a ) 对其国内消费类电子产 品所做的统计,销售量最大的三种商品p d a 、m p 3 和数码相机都是嵌入式多媒体 技术的实际应用,2 0 0 6 年的总销量超过了两亿台 2 ,并且这些产品的年平均增 长速度保持在2 0 以上 3 ,由此可见嵌入式多媒体系统具有非常广阔的市场前 景。 嵌入式多媒体同时具备嵌入式和多媒体的特点,具体如下: ( 1 ) 低功耗。嵌入式产品没有持续的供电电源,低功耗是衡量产品优劣 的一个重要指标。降低产品功耗可以通过选择支持各种节电技术的 嵌入式c p u 、低功耗的外围芯片并采用专门的电源管理芯片等手段来 达到。 ( 2 ) 大容量。多媒体数据文件普遍比较庞大,一部9 0 分钟左右的电影经 常需要几百m 甚至上g 的存储空间,因此在嵌入式多媒体系统中需 要有大容量的存储器。在嵌入式系统中,大容量的存储器目前主要 有硬盘、u 盘、s d 卡和t f 卡等,系统要能够支持此类设备。 ( 3 ) 支持多种接口。嵌入式多媒体需要使用多种接口,例如用于存储的 硬盘、s d 卡、t f 卡接口、音频输入输出接口、l c d 液晶显示接口和 通用的u s b 、c f p c m c i a 接口等随着技术进步,这些接口的版本也 不断更新,硬盘接口由最初的a t a - 1 发展到a t a p i - 7 ,现在还出现了 s a t a 接口,u s b 接口目前为2 0 标准,即将推出3 o 版本 4 ,这些 标准的更新般都会很快地体现到嵌入式多媒体产品中。 ( 4 ) 支持多种多媒体标准。产品所支持的多媒体格式决定了可选音视频 嵌入式多媒体开发平台的设计和实现 ( 5 ) ( 6 ) 资源的多少,目前市场上的产品支持的音频格式主要有m p 3 、a a c 、 w m a 和r a 等,视频格式则有m p e g 2 、m p e g 4 、h 2 6 4 和r m ,a v s 作为 中国新推出的音视频编解码标准,具有很大的发展潜力,可以预见 未来的嵌入式多媒体产品也将提供对a v s 格式的支持。 处理能力和扩展能力强。随着嵌入式多媒体产品功能的日益增强, 需要操作系统的支持以提供强大的管理能力和友好的用户界面,且 在播放多媒体时要能提供流畅的听觉和视觉感受,这就要求系统必 须采用更强劲的c p u ,另外操作系统方面还要求其能提供良好的开发 环境,以方便应用软件的开发和调试。 面向具体应用。嵌入式多媒体与传统多媒体计算机的一个重要区别 就在于它是针对特定的应用场合而开发的,因此可以根据实际的应 用选择需要的功能,去除冗余的部分以精简设计,降低产品的体积 与成本,目前市场上比较常见的应用有v o i p 、便携式播放器、可视 电话、i p t v 和其它各种不同应用的手持终端等 5 - 9 。 近年来,作为支撑的硬件、操作系统和顶层应用三方面技术的发展共同推 动嵌入式多媒体的发展,而开发平台对于硬件接口的开发、操作系统和应用软件 的功能添加都起着非常重要的作用。目前市场上的开发平台非常多,例如i n t e l 基于x s c a l e 的m a i n s t o n e 开发板、三星的s m d k 2 4 1 0 开发板、a m d 公司基于m i p s 的d b a u l x 0 0 系列开发板以及t i 的采用a r m + d s p 的达芬奇和o m a p 开发板等,国 内的一些公司如闻亭、微元、华恒和合众达等公司也都有各自的嵌入式开发平台。 功能齐全、性能稳定的开发平台可以给应用软件开发者带来很大的帮助,对硬件 和底层软件开发者也有很好的借鉴意义。随着嵌入式多媒体技术的发展,开发平 台的软件和硬件功能都会根据需要进行扩展,旧的开发板将逐渐被淘汰,因此根 据当前的发展趋势研究开发平台的设计是非常有必要的。 1 2 开发平台实现方案 嵌入式多媒体开发平台的核心是处理器,平台的外围接口虽然可以通过添加 外部的控制器来实现,但大部分的接口都直接利用处理器上提供的接口控制器, 因此现有的丌发平台基本可以按照所使用的处理器来进行分类,基于同一处理器 第1 章绪论 的不同开发平台所能提供的功能和操作系统支持都是差不多的。目前市场上用于 嵌入式多媒体开发的处理器主要有i n t e l m a r v e l l 的x s c a l e 系列 1 0 、a d i 的 b l a c k f i n 系列 1 1 、t i 的o m a p 和d a v i n c i 系列等产品 1 2 ,1 3 ,另外还有一些 基于a r m 或其它架构的c p u + c o d e c 的s o c 芯片 1 4 一1 6 等。下面根据使用的处理 器芯片进行分类,对市场上的几种主流嵌入式多媒体开发平台实现方案做下介 绍。 ( 1 ) 双核实现方案。双核一般都是a r m + d s p ,其中a r m 核用于系统控制, 而d s p 则用于音视频的解码,这是嵌入式多媒体开发平台比较常见的设计模式。 目前的双核平台主要有两种:一种是在开发板上使用分立的a r m 和d s p 芯片,例 如t m s 3 2 0 d m 6 4 2 加a t 9 1 r m 9 2 0 0 1 7 ,这种方法需要处理a r m 与d s p 之间的连接 问题,这个问题在连接多个d s p 时更为突出,需要考虑驱动、通信和功耗等问题; 使用集成双核的s o c 芯片则可以避免上述的问题,如a d i 的a d s p - b f 5 6 1 ,集成 了两个b l a c k f i n 核,t i 公司的基于d a v i n c i 技术的t m s 3 2 0 d m 6 4 4 6 ,集成了 a r m 9 2 6 e j - s 和t m s 3 2 0 c 6 4 x 。使用d s p 增强了平台的多媒体处理能力,通过对d s p 进行软件开发可以使其支持各种音视频格式,因此具有较好的扩展性。但在这种 方案中开发者需要掌握两种不同的开发环境,控制a r m 与d s p 之间的通信等,增 加了开发的难度,且双核还会导致产品的功耗和成本显著上升。 ( 2 ) c p u + c o d e c 实现方案。这种方案也是由c p u 来负责系统控制的任务, 利用专用的a s i c 解码芯片来进行多媒体解码,近年来许多i c 设计公司都推出了 集成c p u 和c o d e c 的s o c 芯片,如f r e e s c a l e 公司的i 姒系列 1 4 、f a r a d a y 公司的f i c 8 1 2 0 1 5 等。这种方案的成本比较低,实现也比较简单,但受硬件 c o d e c 的限制,解码支持格式有限且不易更新,产品的应用场合比较窄,因此不 适合作为嵌入式多媒体的开发平台。 ( 3 ) 高端c p u 实现方案。这种实现方案利用处理器的强大处理能力来完成 多媒体开发平台的所有工作,比较典型的就是基于i n t e lx s c a l e 的实现方案 1 8 ,p x a 2 7 0 的频率可以达到6 2 4 洲z ,且支持w i r e l e s sm m x 技术,通过针对 x s c a l e 的硬件算法优化可以获得不错的解码能力,且相比硬件解码,软件的配 置灵活度要高出不少,通过软件升级可以很方便地添加新的解码功能。当不进行 多媒体处理时所有的处理器资源都可以用于其它方面,而在a r m + d s p 的情况中 嵌入式多媒体开发平台的设计和实现 d s p 则无法用于系统控制,因此使用x s c a l e 的解决方案相比上面的两种方案可 以适用于较广的应用场合,且x s c a l e 相比双核、多核方案可以节省功耗,但相 对的,在多媒体处理方面则会弱一些。 通过上述的介绍可以发现,在三种实现方案中第二种方案应用范围较窄,更 适用于具体的产品,而其他两种则比较适合作为嵌入式多媒体的开发平台,目前 市场上已经有不少类似的开发平台 1 8 2 0 。一个好的开发平台除了硬件核心外, 还要能够提供丰富的硬件接口与编解码算法支持,并且要能体现嵌入式多媒体软 硬件发展的需求,因此平台的开发涉及多方面的关键技术。 1 3平台研发的关键技术和研究现状 根据嵌入式多媒体的特点,我们要实现的开发平台在硬件上要支持尽可能多 的接口,而在软件上则必须支持最新的编解码算法,我们还针对u s b 接口广泛 应用的情况设计了支持u s b 的调试系统,并开发支持不同操作系统的多重启动 以满足目前基于同一开发平台的多操作系统开发需求,因此平台研发的关键技术 如下: 1 3 i 接口设计技术 为了满足产品的需要,面向多媒体应用的原型板开发需要支持多种接口,如 输入输出需要的触摸屏和音频接口a c 9 7 ,传输用的u s b ,无线上网的p c m c i a 及作为存储设备的硬盘接口等。目前的接口设计主要有三种情况:( 1 ) 直接利用 g p l 0 口来模拟一些简单的接口,文献 2 1 就利用i o 口实现了s p i 接口,这种 方法实现简单,且不需要复杂的外围电路,但只能模拟简单的接口,且模拟过程 中会占用大量c p u 资源,降低整体性能:( 2 ) 处理器本身集成了对应的接口控制 器或者采用专用的接口控制芯片,文献 2 2 ,2 3 利用专用芯片a d s 7 8 4 3 和 v p u l 6 5 5 1 分别实现了触摸屏和p c m c i a 的接口,这种方法可以实现各种功能的接 口,且实现过程也不复杂,但前提是处理器必须已经集成了对应的控制器,否则 添加专用控制芯片会提高硬件成本;( 3 ) 利用现有的接口加c p l d 来进行逻辑转 换,这种情况是开发处理器不支持的接口,要求转换前和转换后的协议存在一定 的相似度,例如x s c a l e 系列处理器没有集成硬盘控制器,但硬盘接口与c f 接口 协议比较相似,开发者需要分析a t a 协议、了解x s c a l e 的地址分配及控制时序 第1 章绪论 等,从而决定如何用c p l d 和c f 接口来实现处理器信号到硬盘接1 3 信号的逻辑转 换,另外还要考虑地址分配、中断分配、电平转换、时间延迟和接口驱动能力等 问题,目前也有文献使用x s c a l e 的v l i o 接口来实现i d e 功能 2 4 。 1 3 2 多重引导技术 目前可用的嵌入式引导程序有很多,如b l o b 、u b o o t 、v i v i 和e b o o t 等,这 些程序都只支持一种操作系统,u b o o t 理论上可以支持任意操作系统 2 5 】,但实 际也只用于l i n u x ,无论是源代码还是帮助文档都没有对多重启动的进一步说明, 这样当需要在一种硬件平台上开发两套操作系统的时候则要编写两种引导程序, 开发与调试的难度增大,在引导不同操作系统时还要频繁地进行引导程序的烧 写,程序界面不同也使得操作不方便。多重引导技术使得程序可以引导多个操作 系统,有利于未来嵌入式多媒体开发平台的功能扩展,同时也极大地减少了人力 资源的浪费。 目前在桌面系统上已经有一些成熟的应用能够实现多重引导功能,如g r u b ( t h eg r a n du n i f i e db o o t l o a d e r ) 【2 6 】、l i l o ( t h el l n u xl o a d e r ) 【2 7 等,但这些 程序都不是真正意义上的多重启动,而是以c h a i n 1 0 a d e r 2 8 的方式实现,它们在 引导w i n d o w s 系统时其实是跳转执行w i n d o w s 的引导程序,因此只是方便用户 进行控制,并不能减小开发的工作量,因为对于每个操作系统仍要移植对应的引 导程序。另外这些程序都是运行于x 8 6 系统上的,与嵌入式系统有很大不同,例 如面向的c p u 不一样,前者是从硬盘启动,而后者从f l a s h 或网络上下载启动等, 要移植到嵌入式系统存在着很多困难,因此这种方法并不适用于嵌入式引导程 序。嵌入式系统中这方面的研究比较少,t io m a p 开发板提供了一个程序 x l o a d e r 2 9 ,它的实现方式类似c h a i n 1 0 a d e r ,可以从n a n df l a s h 中加载并运行 引导程序,但缺点也很明显,对于需要加载的引导程序都要进行移植工作。比较 合适的嵌入式多重引导方案应该采用模块化的设计方法,针对引导程序的共同功 能开发通用模块,然后考虑并解决不同操作系统的软硬件环境设置、镜像文件格 式的处理、存放和所用地址空间的冲突等问题,从而简化新操作系统引导功能的 添加工作。 嵌入式多媒体开发甲台的设计和实现 1 3 3u s b 调试技术 调试系统是后续开发工作得以继续的前提,不同的操作系统提供的调试方法 是不一样的,在最初引导程序调试时一般都会使用j t a g 硬件调试器。当系统开 始运行后则需要使用其它调试方法,这是因系统而异的,对于l i n u x 可以使用 g d b 3 0 进行远程调试,而w i n d o w sc e 则使用k i t l 3 1 。底层的传输接口一般 采用串口、e t h e r n e t 接口,随着u s b 口在嵌入式系统中的应用越来越广,增加 u s b 调试技术就显得特别重要。而且u s b 接口比另外两种接口有不少优点:和串 口比,串口最高支持1 1 5k b s 的传输速度,而u s b 2 0 可以支持到4 8 0m b s , 速度快很多,而且u s b 口可以同时连接多个不同的设备,更加方便;和e t h e r n e t 接口比,由于嵌入式处理器经常不集成e t h e r n e t 接口,因此要搭配专有的外部 芯片,实现比较麻烦,而u s b 作为一种通用的接口,已成为现在嵌入式处理器的 标准配备,易于实现。 实现u s b 调试系统实际上就是利用u s b 来模拟、代替现有的底层通信硬件, 文献 3 2 就研究g d b 中的u s bn e t w o r k 调试实现。u s b 调试系统的开发过程涉及 调试系统的架构、u s b 驱动程序和u s b 如何模拟现有的通信硬件,另外还要考虑 调试系统本身的调试问题,这些都是开发过程中的难点。 1 3 4 媒体解码技术 音视频解码是嵌入式多媒体的基本功能,作为这方面应用的开发平台应该支 持尽可能多的解码功能。目前各种常见的音视频压缩格式,如m p 3 、m p e g 、o g g 等,都已经有很成熟的解码库( 1 i b m a d 3 3 ,f f m p e g 3 4 ,l i b v o r b i s 3 5 ) 可以直接 使用,对于新出现的标准则应该重点研究。2 0 0 6 年中国推出了先进音视频编码 ( a v s ) 第二部分视频标准,这一标准目前还在不断地完善中,嵌入式多媒体开 发平台支持a v s 解码功能可以扩展平台的功能,也有利于加速a v s 的产业化进程。 目前关于a v s 的研究主要是对编解码关键算法的优化、针对不同硬件平台的 算法移植等 3 6 3 8 ,对a v s 进行实际应用方面的尝试还比较少,但这对于推广 a v s 的应用具有重要的意义。现在市场上主流的播放器如桌面系统的w i n d o w s m e d i ap l a y e r 、r e a l p l a y e r 、嵌入式系统上的t c p m p 、m p l a y e r 等都是采用组件 架构,通过插件的方式来更新、添加新的解码功能,因此a v s 软件解码器实现的 6 第1 章绪论 主要形式也应该是插件。嵌入式多媒体系统上实现a v s 解码插件需要考虑解码软 件的移植、插件接口的定义以及与具体播放程序的结合等方面的问题。 1 4本论文主要工作内容 在嵌入式消费产品中,a r m 处理器使用最为广泛,占据着领先地位,市场上 超过9 0 的移动手持设备都是采用a r m 核处理器 3 9 ,到2 0 0 8 年由其合作伙伴 生产的a r m 核处理器已经超过了1 0 0 亿颗 4 0 。 在嵌入式操作系统领域,微软公司的w i n d o w sc e 系列操作系统在市场上的 表现非常突出,仅在2 0 0 7 2 0 0 8 年就售出了2 0 0 0 万份的w i n d o w sm o b il e 软件 许可,微软在这方面的投资也不断加大,2 0 0 7 年投入的资金达7 5 0 0 万美元 4 1 , 预测在未来两年内销售量仍将保持至少5 0 的年增长率 4 2 ,可以预见w i n d o w s c e 在市场上的应用范围必将越来越广。并且高端的处理器方案也比较适合作为 嵌入式多媒体的开发平台,因此本文将研究以i n t e l 基于a r m 核的p x a 2 7 0 处理 器为硬件核心,w i n d o w sc e 为操作系统的开发平台的设计过程。 本论文的工作目标是搭建一个基于p x a 2 7 0 的功能完善的嵌入式多媒体开发 平台,以嵌入式系统的硬件设计以及板级支持包的开发为重点,积极扩展平台的 硬件和操作系统的各种功能,为了实现这个目标,我们将进行以下几方面的研究 工作: ( 1 ) 硬件电路的设计。设计了电源管理、f l a s h 和s d r a m 电路。采用硬盘、 s d 卡来存取多媒体文件,由于p x a 2 7 0 并没有集成i d e 接口,因此我们将研究 如何利用c f 接口控制器和c p l d 来实现硬盘接口,硬件接口方面还设计了 c f p c m c i a 接口,并讨论实现过程中存在的各种问题及其解决方案。 ( 2 ) 板级支持包的开发。我们的平台最终要支持l i n u x 和w i n d o w sc e 两 种系统,为了方便不同操作系统的引导并减少在引导程序方面的重复开发工作, 我们对引导程序添加了多重启动的功能,针对目前u s b 口在嵌入式系统中普遍应 用的情况,对引导程序还添加了u s b 下载的功能,并建立了支持u s b 底层通信硬 件的调试系统。 ( 3 ) 嵌入式多媒体开发平台的具体应用。a v s 作为国家新推出的音视频编 码标准,具有很好的市场应用前景,播放器就是其中一个重要的应用,目前主流 7 嵌入式多媒体开发甲台的设计和实现 的播放器都是采用组件架构,因此我们将开发a v s 的解码插件,在所设计的软硬 件平台上实现支持a v s 解码的t c p m p 播放器。 为了阐述上述的研究工作,本论文的具体章节和主要内容安排如下:第二章 介绍嵌入式多媒体开发的相关知识,先是嵌入式系统的结构、启动流程和开发流 程介绍,然后是w i n d o w sc e 系统和r n d i s ,对播放器实现过程中用到的a v s 标 准也做了相关的介绍;第三章为硬件电路设计,先介绍了包括c p u 、电源、s d r a m 和f l a s h 在内的核心系统设计,接着是各种外围电路的设计,主要是硬盘接口、 p c m c i a 接口和c f 卡接口电路;第四章是板级支持包的开发,文中对引导程序进 行了u s b 下载和多重引导的功能扩展,o a l 层的k i t l 增加了u s br n d i s 的功能; 第五章主要讲述播放器的开发流程,介绍了t c p m p 播放器的总体框架与工作流 程,在分析a v s 解码程序的基础上,按照t c p m p 插件的格式修改代码,最终实现 a v s 视频播放功能在t c p m p 播放器中的添加;第六章是总结与展望,总结本论文 所做的主要工作,并指出今后的进一步工作方向。 第2 章嵌入式多媒体开发的相关知识 第2 章嵌入式多媒体开发的相关知识 本章介绍嵌入式多媒体相关的基础知识和技术,首先是嵌入式系统的结构、 开发流程和启动流程,然后介绍了w i n d o w sc e 操作系统和r n d i s ,另外还介绍 了a v s 的码流结构与解码原理等,为后续章节的多媒体平台开发提供理论支持。 2 1 系统结构与开发流程 嵌入式系统的基本结构如图2 1 所示,包括硬件平台和软件平台两大部分。 嵌入式系统的硬件平台是由处理器和外围设备组成,处理器是嵌入式硬件平台的 核心,一般有三类:微处理器、微控制器和s o c 芯片。外围设备根据嵌入式系 统的功能进行扩展,包括实现具体功能的外围芯片及其连接电路。 图2 1 嵌入式系统结构图 嵌入式的软件平台主要由操作系统、设备驱动和应用软件三大块组成。操作 系统用于对系统的软硬件平台资源进行管理,并对底层进行抽象,提供良好的应 用程序接口。设备驱动一般是位于操作系统下,根据操作系统提供的接口函数进 行开发,使得操作系统可以控制各种不同的硬件设备,但如上图所示,上层也可 以直接调用驱动的接口函数来控制硬件。操作系统中与硬件相关的部分和设备驱 动共同组成硬件平台的板极支持包,这是嵌入式系统开发者关注的重点。虽然操 作系统可以对软硬件资源进行控制,但它本身并不实现任何具体的应用,真正体 现嵌入式产品功能的是位于软件平台最上层的应用软件,在软硬件资源允许的情 况下,开发者通过编写应用程序可以使嵌入式系统具备多种功能。 9 嵌入式多媒体开发平台的设计和实现 上述的各个部分在不同的嵌入式系统中比例可能不一样,简单的嵌入式系统 不需要操作系统的支持,整个系统的软件部分也没有明确的功能划分,通过一个 控制程序就可以完成控制和应用的功能。 与上述的嵌入式系统结构对应,嵌入式系统开发流程一般是按照硬件、操作 系统、应用软件的顺序来进行开发,为了缩短开发周期,则可能采用软硬件并行 设计的方法,具体的开发流程如图2 2 所示。 首先要进行项目的需求分析,由于嵌入式系统是面向市场和具体应用的,需 要综合考虑性能、价格和体积等多方面的因素,并不是功能越多越好,因此要根 一据最终产品的要求决定所设计系统的处理能力、存储容量和具备什么样的外设 等,从而对后面的设计起指导作用。 在需求分析后要进行系统的软硬件平台方案设计,首先要根据前面的需求分 析决定硬件平台的芯片选型,目前市场上很多处理器芯片都有集成多种功能的控 制器,选择这类芯片可以减少外围芯片的使用数量,有利于降低产品的成本和体 积,当然还要综合考虑芯片的性能和价格等因素才能作出最好的选择,其次就是 外围芯片,一般来说一款处理器都会有一系列与其相关的外围芯片,因此在处理 器已经定好的情况下就比较好做出选择,根据需求分析选择最合适的使用即可。 操作系统的选择也与硬件平台有关,各个操作系统都只支持特定的几种处理器, 在选择时主要考虑是否支持已确定的硬件平台、产品的应用场合、系统的功能和 开发工具等问题。上述的方案设计只是一个最基本的过程,实际上硬件平台在选 择时也需要考虑后面的操作系统,另外所使用的软硬件平台的技术支持、帮助文 档、示例代码、现有的资源和开发人员的技能等都会对整体方案的确定产生影响, 软硬件平台设计方案是综合考虑各种因素后的结果。 接下来就是具体的系统开发,最简单的设计方法就是串行设计,先完成硬件 平台的设计,然后进行操作系统的移植工作,最后进行应用程序的开发,这种方 法在小型的系统开发中比较常用,但对于复杂的嵌入式系统来说,使用这种方法 会导致产品的开发周期过长,因此更常使用的是并行设计的方法,一般是将整个 平台分为硬件、操作系统和软件三个部分同时进行开发,利用电路仿真软件、开 发板、模拟器等工具来保证各部分功能的正确性,最后进行系统的调试、整合和 测试工作,完成整个嵌入式系统的设计。 l o 第2 章嵌入式多媒体开发的相关知识 嵌入式系统的开发一般采用交叉编译调试,交叉编译是在主机上使用嵌入式 处理器的编译器对源代码进行编译、链接生成文件,然后再下载到嵌入式平台上 运行,这主要是嵌入式系统上的资源受限造成的。嵌入式系统的调试采用远程调 试的办法,即在主机上运行调试工具,通过各种硬件与开发板建立联系,然后下 载并调试程序,在最初操作系统移植的过程中,一般需要借助硬件调试器,通过 它来查看处理器、内存和其它设备的状态来排除错误,目前比较流行的硬件调试 器有l a u t e r b a c h 公司的t r a c e 3 2 系列、a b a t r o n 公司的b d i 系列以及m a c r a i g o r 公司的m p d e m o n 等。在操作系统移植完后,不同的系统一般都会有自己的软件 调试方法,例如l i n u x 的g d b ,w i n d o w sc ep l a t f o r i l lb u i l d e r 的k i t l 等,底层 通过串口、网络或u s b 等硬件进行通信,在主机上运行调试软件,通过其进行 调试工作。功能完善的调试工具对嵌入式系统的开发起着极为重要的作用。 图2 2 嵌入式系统开发流程 2 2a t a 硬盘接口介绍 a t a 全称为a d v a n c e dt e c h n o l o g ya t t a c h m e n t ,是一种用于硬盘、光驱等存 储设备的标准接口,a t a 标准经过多年的完善从a t a 1 发展到了a t a a t a p i 一6 , 其接1 2 1 基本上没有变化,如下表所示为a t a 接e l 的管脚功能介绍。 表2 1a t a 管脚功能表 名称作用 名称作用 1n r e s e t 设备重启信号 2 1d m a r qd m a 请求信号 嵌入式多媒体开发平台的设计和实现 2g r o u n d 接地 2 2g r o u n d接地 3d a t a 7 数据线 2 3n d l o w设备写信号 4d a t a 8 数据线 2 4g r o u n d 接地 5d a t a 6 数据线 2 5n d i o r设备读信号 6d a t a 9 数据线 2 6g r o u n d接地 7d a t a 5 数据线 2 7i o r d y 设备用此信号指示数据是否准备就续 8 d a t a l o 数据线 2 8 c s e l 设备用此信号确定设备编号 9d a t a 4 数据线 2 9n d m a c kd 姒确认信号 1 0d a t a l l 数据线 3 0g r o u n d 接地 1 1d a t a 3 数据线 3 1i n t r q 中断请求信号 1 2 d a t a l 2数据线3 2 n c 不连接 1 3d a t a 2 数据线 3 3a d d r l地址线,用于选择内部寄存器 1 4d a t a l 3 数据线 3 4n p d i a g设备诊断通过或判断线缆类型 1 5d a t a l 数据线 3 sa d d r o 地址线。用于选择内部寄存器 1 6 d a t a l 4数据线 3 6a d d r 2 地址线,用于选择内部寄存器 1 7d a t a 0数据线3 7n c s 0片选,用于选择命令或控制类寄存器 1 8d a t a l 5数据线3 8n c s l片选,用于选择命令或控制类寄存器 1 9g r o u n d 接地 3 9n d a s p 指示设备在工作或从设备存在 2 0 k e y 此管脚无用 4 0g r o u n d 接地 对a 1 r a 接口硬盘的控制主要是通过读写内部的寄存器来实现的,主机端通 过n c s 0 1 和a d d r 可以对硬盘的所有寄存器进行读写,从而实现各种操 作。在a 1 r a 标准中规定了两组寄存器,如下表所示,通过n c s 0 1 选择寄存器所 属的组,a d d r 选择具体的寄存器,信号的1 代表a s s e r t e d ,0 代表 r e l e a s e d ,一般情况下n c s 0 1 不会同时处于r e l e a s e d 状态,但在当d m a c k 和 d m a r q 同时有效,即进行d m a 传输时,n c s 0 1 要为o ,即高电平,此时 a d d r 无效,数据传输为1 6 位。下面是各个寄存器的介绍: 数据寄存器用于主机与设备之间进行数据交换,只在p i o 模式时使用,d m a 模式下地址线无效,可以直接从数据线上读写数据。 错误寄存器记录当前命令的错误信息,只读,用于写时则为特性寄存器,作 为将要执行命令的参数。 设备寄存器用于选择主或者从驱动器及起始逻辑扇区号的最高几位信息,三 个l b a 寄存器用于指定起始逻辑扇区号,扇区数寄存器说明将要读写的扇区数, 这些寄存器共同确定将要操作的硬盘扇区范围。 命令寄存器用于向硬盘发送其所支持的各种命令代码,在写命令前,与该命 第2 章嵌入式多媒体开发的相关知识 令相关的参数必须先写入。状态寄存器记录命令执行的结果,读取该寄存器的内 容会使硬盘清除己产生的i n t r q 中断。 设备控制寄存器主要有两个作用,对硬盘进行软件重启和允许硬盘产生 i n t r q 中断信号,这个寄存器只能写,在读状态中则作为备用状态寄存器,所 存储的信息与状态寄存器相同,但读这个寄存器不会清除i n t r q 中断。 表2 2a t a 寄存器组 a t a ,肓号 寄存器名和功能 n c s ln c s 0a 2a 1a 0 读写 命令寄存器组 o1ooo数据寄存器数据寄存器 01oo1 错误寄存器特性寄存器 01o1o 扇区数寄存器扇区数寄存器 o1o11 l b a 低位寄存器l b a 低位寄存器 o11o ol b a 中位寄存器l b a 中位寄存器 011o1l b a 高位寄存器 l 队高位寄存器 o1110设备寄存器 设备寄存器 o1111 状态寄存器命令寄存器 控制寄存器组 1o11o 备用状态寄存器设备控制寄存器 硬盘的传输方式主要有寄存器、p i o 和d m a 三种,其中寄存器传输方式只 要确定地址就可以读取数据,而p i o 和d m a 传输则需要先向硬盘的寄存器组发 送一系列命令和参数,传输过程中还涉及硬盘状态的检查、中断和d m a 的处理 等,比较复杂,因此下面将以p i o 读和d m a 读为例说明传输的步骤。 p i o 读过程: ( 1 ) 主机端发送p i o 读命令,先向设备、l b a 、扇区数等寄存器写命令参 数,然后向命令寄存器写p i o 读命令,等待i n t r q 中断。 ( 2 ) 硬盘设置状态寄存器的b s y 位,表示忙状态,发送一个扇区的数据到 硬盘缓冲区,设置状态寄存器的d r q 数据请求位,清除b s y 位并发送i n t r q 中断请求。 ( 3 ) 中断产生后,主机读状态寄存器确定硬盘的状态,如是否处于忙状态 及有无数据传输等,并进行相应操作:忙状态就继续检查硬盘状态;无数据则返 回;有数据则读数据寄存器直到该扇区数据读取完毕。读状态寄存器的操作同时 也清除了硬盘的1 n t r q 中断请求。 1 3 嵌入式多媒体开发平台的设计和实现 ( 4 ) 主机检查扇区数寄存器确定p i o 读命令所要求传输的数据是否传完, 是则返回,否则等待下一个1 n t r q 中断产生,继续执行步骤3 。 d m a 读过程: ( 1 ) 主机端发送d m a 读命令,先向设备、l b a 、扇区数等寄存器写命令 参数,然后向命令寄存器写d m a 读命令,等待d m a 传输。 ( 2 ) 硬盘设置b s y 为1 ,d r q 为0 ,并置d m a r q 管脚为0 ,然后开始发 送数据到硬盘缓冲区,发送完后设置b s y 为0 ,d r q 为l ,置d m a r q 管脚为 1 向主机请求d m a 传输。 ( 3 ) 主机在收到d m a r q 信号后,返回d m a c k 信号,令n c s 0 1 为0 直 接通过d m a 从硬盘缓冲区获取数据。 ( 4 ) d m a 传输结束后硬盘置d m a r q 信号为0 ,并发送i n t r q 中断通知 主机数据传输结束。 2 3 系统启动流程 嵌入式系统上电后首先会进行引导程序的启动,这是上电后运行的第一个程 序,它通过对开发板进行最基本的初始化并根据需要下载镜像,以完成操作系统 启动的准备工作,然后再跳转到操作系统的入口处,启动操作系统,因此在上电 的时候必须要保证c p u 能够正确执行引导程序的第一条指令。为了达到这个目 的,开发者一般会将引导程序下载到具备x i p ( e x e

温馨提示

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

评论

0/150

提交评论