嵌入式报告1文档格式.docx
《嵌入式报告1文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式报告1文档格式.docx(38页珍藏版)》请在冰点文库上搜索。
2006年青岛Sinoces展会上,MP4再度大行其道,基本上所有的数码厂商的展柜上都摆满了外形相似、功能相近但品牌不同的MP4产品。
根据CBIResearch调查数据显示,国内消费者对MP4播放机产品了解及听说过的人群已经占到了86.7%以上,有购买倾向的消费者占到13.3%以上。
进入2007年,MP4/PMP产业似乎正面临一个新的爆发期,根据iSuppli最新的测算报告显示,2006年全球PMP的销售量达到5,800万台,而其预测2007年这一数据会增长一倍多,达到I.17亿台,此后的年增长率会逐步放缓。
不超过20%。
到2009年为止,全球的PMP销售量将会达到1.62亿台。
鉴于现在已有众多厂商推出的各种MP4产品,市场竞争激烈,这就要求我们设计的产品不仅需要漂亮的外观,优秀的性能和合适的价格,还必须具备独特的功能,只有这样才能在竞争中赢得优势.综合以上要求,我们采用了美国SigmaTel公司最新的STMP36XX系列多媒体解决方案来完成设计。
添加多国语言显示界面,电子图书和外语学习功能。
1.2、未来展望
MPEG-4标准以其高清晰的视频质量,高压缩比的文件容量成为多媒体领域的理想编码标准,在硬件产品上得到了广泛应用。
随着闪存芯片价格的一路下跌,配备大容量存储器的MP4播放器制造成本大幅下降,MP4播放器已经成为便携式音视频解决方案的理想选择,成为继MP3、数码相机、数码摄像机之后消费类电子市场的第4大消费热点,市场前景光明。
本报告提出了一套完整的多功能MP4播放器解决方案,在继承了SigmaTelSTMP36XX芯片强大多媒体性能的同时,嵌入最新的TTS语音播放技术,增加了别具特色的电子图书和外语学习功能,提高了产品的技术含量和市场竞争力.这种在音视频解码基础上增加丰富功能设计方案,代表了便携式多媒体播放器向高性能,多用途发展的方向。
本文设计的MP4播放器具有优秀的性能,丰富的功能和不错的性价比。
1.3、背景知识
MPEG全称是MovingPicturesExpertsGroup,它是“动态图象专家组”的英文缩写,该专家组成立于1988年,致力于运动图像及其伴音的压缩编码标准化工作,目前已
经开发了MPEG-1,MPE6-2,MPE6-3,MPEG-4和肝EG-7五个版本,以适用于不同带宽和数字影像质量的要求。
目前,MPEG—l标准被广泛的应用于VCD,而我们目前常说的MP3,则是MPFXr-1
的Layer3,属于~tPE6-1中的音频部分。
MPEG-2标准通常用于DVD和广播电视。
于1999年初正式成为国际标准的MPEG-4是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。
MPEG-4标准主要应用于视像电话(VideoPhone),视像电子邮件(VideoEmail)和电子新闻(ElectronicNews)等,其传输速率要求较低,在4800-64000bits/sec之间,分辨率为176X144。
MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图像质量。
MPEG-4的特点是其更适于交互AV服务以及远程监控。
MPEG-4是第一个使你由被动变为主动(不再只是观看,允许你加入其中,即有交互性)的动态图像标准,它的另一个特点是其综合性。
从根源上说,MPEG-4试图将自然物体与人造物体相溶合(视觉效果意义上的)。
MPEG-4的设计目标还有更广的适应性和更灵活的可扩展性。
表1给出了MPEG列标准的基本参数:
表1
标准
幅面
帧率
带宽
应用
MPEG-1
352*288或320*240
20-30fps
1.5Mbps
VCD
MPEG-2
720*576或640*480
4-10Mbps
DVD
MPEG-4
34*48--4096*4096
1-30fps
20kbps-20Mbps
互联网及无线应用,交互式电视
MPEG_4标准是对运动图像中的内容进行编码,其具体的编码对象就是图像中的音频和视频,术语称为“AV对象”,而连续的Av对象组合在一起又可以形成AV场景。
因此,高效地编码、组织、存储、传输AV对象是MPEG-4标准的基本内容。
MPE6-4标准只处理图像帧与帧之间有差异的元素,而舍弃相同的元素,因此大大减少了合成多媒体文件的体积。
应用MPEG-4标准的影音文件最显著特点就是压缩率高且成像清晰,一般来说,一小时的影像可以被压缩为350M左右的数据,而一部高清晰度的DVD电影,可以压缩成两张甚至一张650M的CD光盘来存储。
第2章STMP36XX与相关技术
MP4播放器设计采用了SigmaTel的STMP36XX多媒体解决方案,引入了ThreadX实时操作系统。
在功能设计上,我们加入了瑞士SVOX公司的TTS语音播放技术,本章将针对这些技术进行简要介绍。
2.1SigmaTelSTMP36XX多媒体解决方案
STMP36XX是矽玛特(SigmaTel)公司的第四代单芯片数字多媒体系统解决方案,适用于数字音频播放器、PDA、手机、便携式视频播放器和数字相框等。
STMP36XX系统级芯片(SoC)有助于客户以更低的整体系统成本设计和开发出电池使用寿命更长、体积更小和具备更高处理能力的数字多媒体播放器。
同时,针对STMP36XX的SDK(SotftwareDevelopmentKit软件开发包)建立在ExpressLogics的ThreadXRTOS基础之上,采用GreenHill的MultiIDE集成开发环境,为软件开发提供了良好的支持。
随着STMP36xx系列的推出,矽玛特不仅能够为播放器制造商同时提供音频和视频编解码功能,而且,与之前的系列或其他同类解决方案相比,在处理速度、存储能力、增值功能、用户界面等各个方面都有了极大的提高。
在众多消费者要求产品要有更新功能而价格又更低的今日,STMP36xx解决方案为产品设计提供了新的可能。
与之前的STMP35xx系列比较,STMP36xx系列的最大变化在于改用了配置有双缓存、嵌入式SRAM和一个集成存储管理单元的ARM926EJ-SCPU作为中央处理器。
依靠ARM9提供的处理功率和强大功能,STMP36xx能够把功耗降至更低,并可以支持音频交叉衰减和后处理、MP3和WindowsMediaAudio(WMA)编码、静止和活动视频解码等许多新的先进功能。
由于矽玛特STMP3600高度的片上集成包括了一整套便携音频播放器所需的模拟元件,仅需很少的外部元件即可基于其上构建一个完整的系统,可节省多达20%的印刷电路板(PCB)占板空间。
这个特点无疑将帮助制造商满足消费电子市场对体积更小、功能更丰富、成本更低的产品的需求,有助于客户以更低的整体系统成本,设计和开发出电池使用寿命更长、体积更小和具备更高处理能力的数字多媒体播放器,从而使STMP36xx系列成为闪存及硬盘数字多媒体播放器、PDA、录音机、手机、便携式视频播放器和数字像框应用的理想解决方案。
2.1.1STMP36XX芯片特性
STMP36XX是一个真正的SOC(SystemOnChip片上系统),如图1示,STMP36XX将整个音频处理、模拟部分、电容管理、充电器、USB控制器整合在同一个芯片里,简化了外围电路设计,节省了印刷电路扳的面积,降低了MP4播放器的生产成本和系统功耗。
为了提供最大的应用灵活性,STMP36XX集成了大量的I/O端口,它可以支持各种规格的FLASH闪存,微硬盘,串行总线或者LCD。
通过集成的高速应用UART和SDIO控制器,STMP36XX还能与蓝牙和WiFi等高级应用连接。
STMP36XX包括与耳机和扬声器相关的高分辨率音频编解码器、8通道12位的模数转换器、大电流电池充电器、5V线性调节器、高速USB2.0OTG接口和各种监控系统。
STMP36XX的低功耗特性可为便携式应用延长电池使用时间。
集成的功率管理单元包含一个高效率的片上DC—DC转换器,支持lxAA、lxAAA、锂离子电池等多种电池配置。
其集成的智能锂电池充电器支持自适应电压控制(AVC),与同类产品相比节约了50%的系统功耗。
图1STMP36XX芯片架构图
2.1.2STMP36XX软件开发包
SigmaTel的STMP36XX软件开发包(SDK)提供了包括稳定版源代码和硬件开发平台在内的完整的系统解决方案,能够帮助设计者实现进一步的应用开发。
SigmaTel的SDK支持Microsoft@PlaysForSure标识版权技术和Windows@MediaDigitalRightsganagement(DRM)10数字版权管理。
SDK的4.3版本能够完美支持常用的MP3,WindowsMediaAudio,ARC和OGG等音频格式,以及不同解析率和位率的MPEG一4,H.264和喇WMVP等视频格式。
SigmaTel的SDK运行于ExpressLogics的ThreadX实时操作系统之上,开发包本身已经集成大部分的底层驱动,包括字体、LCD驱动、按键输入识别、FLASH、SDRAM、ThreadX操作系统、文件系统、实时时钟、硎收音芯片、USB2.0接口、电池充电和监控电路、能耗管理系统、JPEG解码、音频和视频格式解码等.设计者可以将精力投入到人机界面,外观和应用上,不需要从头做起,从而缩短了产品从设计到上市的时间。
SigmaTel的SDK包括以下软件和开发工具:
·
SDK系统源代码
虽然部分重要的源代码以库文件的形式封存,但是设计者仍然可以接触到一些核心功能的源代码,从而了解SDK的工作原理,有助于设计者通过这个开发平台实现个性化应用。
GreenHill软件开发工具
软件的设计开发除了必须参考SDK系统源代码,还需要利用GreenHill的MultiIDE集成开发环境。
用户界面开发工具
支持在Win32环境下对GDK系统源代码进行仿真。
播放器参考设计
参考设计Bebop、Drama结合SDK系统源代码或用户界面开发工具一起使用,为设计者提供一个应用实例。
2.2ThreadX实时操作系统
SigmaTel的SDK运行在嵌入式的ThreadX实时操作系统之上,对SDK进行开发,实际上是在嵌入式操作系统上开发应用程序。
因此,我们必须熟悉ThreadX操作系统的性能特点,运行原理和使用方法。
2.2.1ThreadX概述
ThreadX是优秀的硬实时操作系统(RTOS),适用于深嵌入式应用中,具有规模小、实时性强、可靠性高、无产品版权费、易于使用等特点,并且支持大量的处理器和SoC,包括ARM、PowerPC、SH4、MIPS、ADIDSP、TIDPS、NiosII等,因此广泛应用于消费电子、汽车电子、工业自动化、网络解决方案、军事与航空航天等领域中。
ThreadX是专为嵌入式应用而设计的高性能实时内核。
同其它实时内核不同,ThreadX具有通用性,使基于RISC(reducedinstructionsetcomputer简化指令集计算机)和DSP(DigitalSignalProcessing数字信号处理)的小型微控制器的应用程序易于升级。
ThreadX易于升级的原因基于其隐藏式结构。
因为ThreadX的服务以C库来执行,只有在应用程序中用到的服务才被纳入运行映像。
因此,实际的ThreadX的大小完全取决于应用程序。
对大多数的应用程序而言,ThreadX的指令映像从2Kbyte到15Kbyte.
Picokernel结构
不像其它传统微内核结构的压条法功能(1ayeringkernelfunctions),ThreadX服务直接进入其核心,使得转换和命令的执行尽可能最快,这样的非压条法设计被称为Picokernel结构。
ANSIC源代码
ThreadX最初是用ANTIC写的。
隐藏对象处理器内核的生成需要用到少量的汇编语言。
这种设计使得把ThreadX用到一个新的处理器系列中去的时候在接口问题上非常容易,通常只要几个礼拜的时间。
非黑盒结构
ThreadX的大部分包括完全的C源代码,这排除了许多商业性的内核结构所存在的。
黑盒”问题。
在使用ThreadX时,程序开发者可以清楚的看到内核运行细节,不存在什么秘密。
源代码还允许开发程序过程中特殊的修改。
虽然没有介绍,但在十分必要时有能力去修改内核是很有用的。
这一特色对那些习惯于用自己内部内核的开发者来说应该是特别另人振奋的,他们期望得到源代码并且能够修改内核。
一个可能的标准
由于ThreadX的通用性,高性能的picokernel结构及强大的可移植性,ThreadX有可能成为嵌入式程序的工业标准。
ThreadX的应用实例:
2005年7月4日,美国国家航空航天局(NASA)成功实施了“深度撞击”飞船对坦普尔1号彗星的准确撞击,其中,ThreadX在其中发挥了关键作用,控制其中全部三套彗星成像仪的运行;
惠普公司的多款数码相机中应用了ThreadXRTOS和配套的FileX文件系统组件,同时,惠普公司也在全系列打印机产品中使用了ThreadXRTOS;
ThreadX成功应用于Panasonic公司的11Mbs无线网卡;
在Konica-Minolta、Toshiba、Ricoh、Samsung等公司的数码产品中,ThreadX得到了广泛的应用。
TreadX支持的CPU
PowerPC,680x0/683xx,ColdFile,ARM7,ARM/Thumb,MCORE,ARC,TriCore,X86,StrongARM,MIPS,SH,I960,V8xx,SPARC,Xscale,H8/300H,TMS320C.
2.2.2嵌入式应用程序
嵌入式应用程序是指在类似于手机、通讯设备、汽车引擎、激光打印机、医疗设备等产品的微处理器中执行的程序。
嵌入式应用程序的另一个显著特点是其软件和硬件有其特定的用途。
实时软件
当应用程序软件中涉及到时间因素时,就赋予了实时的概念。
一般地,必须在一个时间段内执行的软件称为实时软件。
嵌入式应用程序几乎都是实时的,因为它们和外部世界存在内在的联系。
多任务
如上所述,嵌入式应用程序有其既定的目的。
为达到这个目的,软件必须执行多种任务或作业。
应用程序中的半独立任务部分完成特定的目的,有时有些任务或作业比其它的更重要。
嵌入式应用程序面临的一个主要难题就是在不同的任务中分配处理器。
在竞争的任务中分配处理器是ThreadX的首要目的。
任务及线程
有关任务的另一个重要特性必须指出。
任务这个名词可以用在不同的方面,有时指一个可独立装载的程序;
在另外的场合,它可能指一个内部程序段。
在实时操作系统中,有时用进程和线程来代替任务的使用。
进程是一个完全独立的程序,有自己的地址空间;
但线程是一个半独立的程序段,在进程内执行。
所有的线程共用相同的进程地址空间。
线程管理的开支是很小的。
大多数嵌入式应用程序不能负担面向进程操作系统的内存开支。
另外,小的微处理器不具备支持真正意义上的面向进程操作系统的硬件结构。
基于以上这些原因,ThreadX采用了线程模式,这对绝大多数的实时嵌入式操作系统来说既有效又实用。
2.2.3Threadx的使用
ThreadX的使用非常简单。
一般地,在使用ThreadX运行库tx.1ib编译,链接时必须包含tx_api.h文件。
建立一个ThreadX程序主要有四个步骤,具体如下:
第一步:
将tx_api.h文件包含于所有使用ThreadX服务应用程序。
第二步:
建立Cmain函数。
此main函数必须调用txkernel_enter以达到开始ThreadX的目的。
如果没有经过ThreadX特定的初始化,可以通过增加其优先权而进入到内核中。
第三步:
建立tx_application_define函数。
这是初始系统资源创建的地方。
这些资源包括线程、队列、内存缓冲池、事件标志组以及信号。
第四步:
应用程序源的编译及与ThreadX运行库tx.1ib的链接。
这一步将产生可以下载到目标体中去并能得到执行的映像。
2.2.4线程执行
应用程序线程的调度、执行是ThreadX中最重要的行为.线程一般定义为具有特定目的的半独立程序段,所有的线程合并起来形成一个应用程序.线程在初始化的时候建立或在其他的线程执行的过程中建立,程序中建立线程的个数没有限制。
线程执行状态
理解不同的线程执行状态是理解完整的多线程环境的重要因素。
在ThreadX中线程有五个状态,即就绪、挂起、执行、停止和完成。
图2-1给出了ThreadX中线程状态的转换图。
图2ThreadX线程状态转换
线程的就绪状态是指其处于等待执行的状态,就绪的线程直到其优先权最高的时候才能得到执行。
当这种情况发生时,ThreadX执行状态已转为执行的线程。
①当一个优先权更高的线程处于就绪状态的时候,正在执行的线程退回到就绪状态,优先权更高的线程变为执行状态。
这种在就绪状态和执行状态之间的互相转换在每一次线程抢占发生的时候都会出现。
在任意一个特定的时刻只有一个线程处于执行状态。
③处于挂起状态的线程不能用来执行,线程挂起的原因包括等待时间、队列消息以及基本的线程挂起等。
一旦等待的原因被移除,线程重新进入就绪状态。
④线程处于停止状态是由于另一个线程或它自己调用了线程停止服务,如果需要重新开始一个以执行的或停止了的线程,程序首先需要删除该线程,然后才能重新建立并重新开始。
线程的优先权
线程是被定义为具有特定目的的半独立程序段。
但是,所有的线程并不是以同等的条件建立的,某些专用的线程可能比其它线程更重要。
线程的重要性不等同正是嵌入式实时应用程序的特征。
当线程建立的时候,将被分配一个代表其重要性或优先权的数值,范围从0到31,0代表线程的最高优先权,31代表线程的最低优先权。
程序中线程可以拥有相同的优先权,在运行中线程的优先权也可以改变。
线程调度
ThreadX对线程的调度基于其优先权,就绪状态的优先权最高的线程首先得到执行。
如果相同优先权的多线程同时处于就绪状态,则将以先进先出(FIFO)的方式执行。
①循环调度
多线程的循环调度具有ThreadX所支持的相同的优先权,这通过调用tx_thread_relinquish命令来完成。
在tx_thread_relinquish命令再次执行之前,调用此服务给其它所有拥有相同优先权的就绪线程一个执行的机会。
②时间片调度
时间片是指线程完全占有处理器的最大的定时器计数的个数。
当时间片终止时,所有其它具有相同或更高优先权的线程在时间片已用完的线程再次执行之前得到执行的机会。
在ThreadX中,时间片建立在分线程的基础上。
线程的时间片在建立的时候分配并且可以在运行期间修改,在一个线程挂起、释放后将给它一个新的线程时间片.
2.3TTS语音播放技术
TTS(Text-To-Speech)语音播放技术,又称文语(文字一语音)转换技术,它将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的自然语言语音输出,其核心是语音合成技术。
它涉及声学、语言学、数字信号处理技术、多媒体技术等多个学科技术,是信息处理领域的一项前沿技术.其应用范围非常广泛,如文本的有声校对,报纸和网页的机器阅读,机器翻译等。
MP4播放器系统对TTS的使用,主要是用来将电子图书和外语学习功能窗口的文本信息转换成语音信号,并用指定语言朗读出来。
2.3.1TTS系统组
图3TTS系统基本框图
文语转换系统实际上可以看作是一个人工智能系统,主要分为三个部分:
文本分析、韵律控制以及语音合成。
图2—3显示了一个完整的TTS系统示意图,可见,为了合成出高质量的语音,还要考虑词典/规则以及语音库建立方面的问题。
下面分别对这些问题进行讨论。
文本分析
文本分析在TTS系统中起着重要的作用,它主要是模拟人对自然语言的理解过程,使计算机对输入的文本能完全理解并给出后两部分所需要的各种发音提示。
完成此项处理一般包括文本归整、词的切分、语法分析和语意分析几个步骤。
韵律控制
韵律控制为合成语音规划出音段特征,如音高、音长和音强等,使合成语音能够以类似人类的语言方式来正确地表达语意,使其听起来显得更加自然。
语音合成
语音合成过程通常也称为声学处理过程。
语音合成过程主要是利用语言学处理和韵律理所得到的结果,并调用语音库的语音素材,生成出符合要求的输出语音的一个过程。
词典/规则
词典/规则是TTs系统进行语音合成所依据的规则。
计算机为了对文本进行准确的分析处理,要用语言学知识和语音学知识。
因为在汉语中,词或词组在句子中占有很重要的地位,它们是句子中的主要语义单位,而且具有较为固定的形式和读音。
自动分词、多音字判定、声调判定、轻音判定等在文本分析中较难处理的问题可以利用多知识源分层次进行解决。
在文本处理中,需要用到了多种知识库的内容和结构,这就是词典的作用。
一般包括有系统词库、特征词库、多音字库、标准词库以及变调规则库等。
语音库
语音库也叫做语料库,它是采用波形合成法的TTS技术所需要的音素库。
TTS合成的语音的自然程度就取决于语音库建设得完善与否。
一般需要在语音库中包含尽可能多的语音现象,并建立一个有效的数据库管理系统来对它进行管理。
2.3.2TTS性能指标
TTS系统的基本性能指标包括:
可懂度、清晰度、自然度。
考虑到实际应用,还有系统的数字、姓氏、特殊符号等方面的处理能力、跨平台处理能力以及语音合成的速度(指单位时间内,通过语音合成系统生成语音的音节数,或语音合成同时支持的并发请求个数)等。
MP4播放器是一个资源有限的嵌入式系统,为了实现文本文件语音播放的功能,我们需要对TTS系统制定一些特殊要求。
①可以集成在STMP36XX系统上并正常运行。
②需要同时支持英语、德语、荷兰语、西班牙语和葡萄牙语等拉丁语言以及中日韩三国语言,这样有助于产品进入国际市场。
③能够同时加载两个语音库,用户在使用TTS功能时不必经常转换语音库。
④语音库加载和语音合成的时间应该