摘要: 多媒体应用处理器简称MAP,是一种适用于便携式数字音视频设备的新型嵌入式应用处理器。文中介绍了MAP的主要性能特点,给出了基于MAP芯片ATJ2135的嵌入式MP3播放器的硬件设计、MP3解码流程、实时操作系统设计、系统软硬件调试过程等嵌入式系统设计与实现。
关键字: 多媒体应用处理器 嵌入式MP3 全软件模式
1 引 言
采用 MPEG 标准Layer3算法进行压缩处理后的文件统称为MP3文件,能够对MP3文件进行解码并还原声音的系统都可以被称为MP3播放器。作为消费类电子产品的代表,MP3不断增长的消费要求也促使生产厂家采用更先进的技术来提高自己产品的竞争力。针对MP3 、MP4以及智能手机上的数字音视频应用,SOC芯片厂商如国外的SIGMATEL、国内的珠海炬力集成电路公司均推出了基于MAP的解决方案。
MAP,即Multimedia application processors,是多媒体应用处理器的简称。它是在低功耗CPU的基础上扩展音视频功能和专用接口的超大规模SOC集成电路,是一种新型的嵌入式应用处理器。MAP的主要应用领域是便携式消费类电子。MAP要求低功耗,体积微小,并具备尽可能高的性能。因此,许多微电子和IT领域的最新技术均用到了MAP中。例如用90和45纳米工艺提高速度和集成度,并采用前后台工作的双核和多核CPU和DSP提升性能。
MAP分为全软件模式与全硬件模式两种。全软件模式采用嵌入式中央处理器加数字信号处理器,即CPU+DSP。MAP中的嵌入式CPU作为一个通用的硬件平台,运行一个通用的操作系统。MAP中的嵌入式DSP是另一个核心器件,它的任务是完成复杂的高速信息处理。全硬件模式则采用的是CPU+ASIC,由专用集成电路完成音视频解码功能。
下面给出基于珠海炬力公司的全软件模式专用SOC多媒体应用处理器芯片ATJ2135的用于一款智能玩具的MP3播放器嵌入式系统设计与实现方案。
2 MP3系统硬件设计
播放器核心是炬力的ATJ2135芯片,主要组成包括电源单元、显示单元、键盘输入电路、FM收音机单元、外部存储器、功放及扬声器单元等。系统总体框图如图1。主控MAP中的嵌入式DSP对MP3文件进行音频解码,解码后的序列经MAP中DAC输出至功放及扬声器或耳机。
图1 嵌入式MP3系统总体结构
主控MAP中的嵌入式CPU运行实时操作系统管理包括键盘与LCD、文件系统、FM模块,并实现MP3的数据管理、娱乐游戏、通信等功能。
2.1 主控芯片
ATJ2135是真正理想的“一片解决”SOC数字多媒体处理芯片,为用户提供了一个非常灵活而且价格适宜的嵌入式音频解决方案。选用32位RISC 的MIPS核,并集成24位嵌入式DSP,构成双核结构。其中DSP用于音频解码算法,CPU用于播放器的操作系统。ATJ2135还集成了时钟、内部存储器BROM,以及SDRAM、键盘和YUV2RGB显示接口,ADC、DAC、电源管理PMU、红外接口等外围控制组件。
2.2电源设计
合适的低功耗电源是便携式系统关键设计之一。本硬件系统平常采用锂离子充电电池供电。而在系统与外部PC机交换数据时,系统电源将采用USB供电模式,同时锂电池将停止供电。所以电路应具有完成电源切换、稳压及充放电等功能。由于元件工作在降压模式,选用了XC62系列稳压芯片XC6206P152M、XC6219B182MR和RCR3402等器件来实现。
2.3输入输出组件
2.3.1 A/D式线控键盘接口设计
为了适应MP3应用的特殊性,ATJ2135提供另外一种我们在其他嵌入式应用中很少见的键盘结构——A/D式线控键盘。这种键盘可以进一步减少I/O口的使用数量.利用串联电阻网络在不同的按键按下时输出不同的电压值,然后进行A/D转换求出其对应的数字量,从而根据软件设定确定是哪一个按键按下。为了减小误差和提高软件识别率,分压电阻应采用误差范围为1%的高精度电阻,软件可以设定适当宽的范围来区分每一个按键值。ATJ2135内部提供一个4位低分辨率A/D转换器,可以很方便的配置成线控按键模式。
2.3.2 LCD显示输出
由于ATJ2135芯片没有自带 LCD Controller ,因此需要选用带 LCD Controller 的 LCD (液晶屏)。本系统选择KGM281E0作为液晶显示屏。KGM281E0是一个240xRGBx320点阵TFT-LCD显示模块,它可以配置为16位或18位并行数据输入方式,可支持视频播放,显示效果非常出色。显示屏的背光驱动需要较高的电压,并且要求根据需要调节背光的亮度,因此就需要一个高效的升压电路来实现这一功能,为此ATJ2135提供了一个背光控制,它可以按照软件的设定值输出8种不同频率的脉冲,通过改变输出频率值来改变背光亮度。
2.4系统存储器
本播放器采用一块512 M NAND FLASH作为片上存储单元,写入速度较快,具有良好的抗震能力,体积、重量较小,尤其适合便携式系统的要求。另外本系统还集成了SD卡插槽以方便用户升级存储空间。Flash芯片采用Hynix的HY27UT084G NAND Flash Memory,其工作电压为1.8或3.3伏。而为了提高系统运行速度,适应视频播放及游戏时的数据处理,还扩展有外部SDRAM存储芯片。存储器接口方式采三总线连接方式。
3 系统软件设计
3.1 MP3解码流程
图2 MP3解码流程图
MP3采用了较为复杂的比特流结构,所有MPEG的比特流都被分割成了单独的帧。对于MPEG图2音频,每秒都传送固定数目的帧,也就是说,当比特率和采样率固定时,每一帧具有相同的大小,并携带有相同数目的样本。解码算法由嵌入式DSP软件实现,流程如图2所示。
3.2嵌入式实时操作系统设计
ATJ2135采用μCOS-Ⅱ操作系统进行软件移植设计。μCOS-Ⅱ是一个源代码公开的嵌入式实时操作系统,具有小内核、多任务、丰富的系统服务、容易使用等特点并且非常稳定、可靠。而由于其极小的内核,就特别适用于对程序代码存储空间要求极其敏感的嵌入式MP3应用系统开发。本系统采用可剥夺型多任务内核,其任务层设计及任务流程如图3所示。
3.3 嵌入式系统软件编译与调试
系统所采用ATJ2135的嵌入式开发工具为cygwin。cygwin软件是cygnus solution公司开发的,是一个在Windows平台运行的Unix模拟环境。其中,USDK13O 提供最主要的调试手段。它需要在调试的代码段添加打印语句,而运行则是观察超级终端上的打印输出,以此来诊断程序是否符合设计逻辑。通过打印输出来调试程序是一种简单实用的调试手段。它可以在不打断系统运行的情况下获知其运行过程。超级终端提供日志功能,只要点击传送菜单下的捕获文字项,然后设置日志所在的目录,这样输出的所有信息都将记录在日志文件中,便于后续的分析和查找。当程序存在设计或编码的缺陷时,系统运行会崩溃,并在终端输出异常信息。此时可以将异常出现的地址比对 USDK130 提供的空间分配表来查找导致异常的