Cortex-M3的音频播放器设计
2012-09-21赵勇郑培臣张欢欢
赵勇,郑培臣,张欢欢
(渭南师范学院 物理与电气工程学院,渭南 714000)
引 言
随着物质生活的极大丰富,人们对于消费电子的需求越来越多,要求也越来越高。市场上流行的MP3由于播放文件格式单一、人机界面单调,已经不能满足用户的需求,本设计的多功能音频播放器,除可完成*.mp3、*.wma、*.wav等格式文件的播放外,还具有播放 MP4、阅读电子小说、浏览图片、听收音机等功能,甚者还可扩展上网、下载应用程序或游戏等功能。
1 系统总体设计
系统以NXP公司的微处理器LPC1768为控制核心,读取SD卡*.mp3、*.wma、*.wav等格式的音频文件,然后通过音频解码芯片VS1003实现解码,最后通过外部音频功放完成信号放大,输出至扬声器。该系统的整个系统框架分5部分:LPC1768微处理器、音频解码芯片VS1003、SD卡存储器、LCD触摸屏,以及FM收音机模块TEA5756等。系统硬件结构框图如图1所示。
图1 系统硬件结构框图
2 硬件系统设计
2.1 LPC1768微处理器
LPC1768是NXP公司推出的基于ARMv7体系架构的微处理器,具有高性能、低成本、低功耗的特点,专门为嵌入式应用领域设计。LPC1768系列芯片使用高性能的基于ARM Cortex-M3的32位RISC内核,工作频率为100MHz,完全满足音频文件的读取、解码、播放等要求。它内置高速存储器(高达512KB的闪存和64KB的SRAM),还具有丰富的增强I/O端口和连接到两条APB总线的外设。采用LPC1768主要实现对SD卡音频格式文件的读取,然后将音频文件发送到外部音频解码芯片VS1003。人机交互功能中的触摸屏控制所包括的操作系统及应用软件的执行均是通过该微处理器来完成。
2.2 音频编解码芯片VS1003
VS1003主要提供对固定格式音频文件的解码,为应用层播放音频数据、控制音量声道等提供基本接口。其内部包含1个高性能、低功耗的DSP处理核(VLSI Solution's DSP),1个工作数据存储器,可为用户应用提供5KB的指令RAM和0.5KB的数据RAM,一个高品质可变采样率的ADC和立体声DAC,还有串行SPI控制和数据接口。音频文件的播放过程如下:首先,通过LPC1768的SPI接口从SD卡读出*.mp3、*.wma等格式文件;然后,经SPI接口将所要播放的文件发送到VS1003音频解码芯片;最后,由外围的功放电路实现音频放大、输出。在此,为减小干扰和噪声,提高音质,解码芯片独占一个SPI接口。该解码芯片与微处理器LPC1768的硬件连接电路如图2所示。
2.3 SD卡存储器
SD卡存储器(Secure Digitaly Card)作为一种基于半导体的快闪记忆器被广泛地应于便携式装置,例如数码相机、PDA和多媒体播放器等。SD卡存储器采用znFAT文件系统,以SPI模式进行读写操作。本设计中,SD卡存储器主要功能是保存所要播放的音频文件、电子阅读器中的文本文件和图像文件。SD卡存储器的“删除”、“拷贝”操作由读卡器来完成,“读”过程由LPC1768控制。LPC1768与SD卡存储器的连接电路如图2所示。
图2 LPC1768与VS1003的硬件连接电路
2.4 触摸屏
触摸屏是一种可接收触摸等输入信号的感应式配液晶显示装置。当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编写的程序驱动各种连接装置,触摸屏可取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。本设计中触摸屏作为人机交互的图形界面显示,具有直观、易操作等优点。
2.5 FM收音机模块
TEA5756是飞利浦公司生产的新一代数字调频收音机模块,主要应用于MP3/MP4媒体播放机,采用I2C总线协议,具有比传统模拟制式收音机模块更突出的性能,音质更清晰,噪音极少,功耗更低,集成度高。
本设计主要通过触摸屏来调节收听频率、音量等一些基本设置。FM收音机模块通过I2C总线设置TEA5756的寄存器,TEA5767控制子程序由几个功能模块组成:FC通信模块、TEA5767向上搜索模块、TEA5767向下搜索模块频率值转换为PLL值模块、PLL值转换为频率值模块等。
3 系统软件设计
3.1 μC/OS-II操作系统移植
μC/OS-II是一种源代码公开、结构小巧、具有可剥夺实时内核的操作系统。对一个多任务的操作系统来说,任务间的通信和同步是必不可少的,μC/OS-II提供了4种同步对象,分别是信号量、邮箱、消息队列和事件。所有这些同步对象都有创建、等待、发送、查询的接口,用于实现任务间的通信和同步。要使μC/OS-II能正常运行,处理器必须满足以下要求:
① 处理器的C编译器能产生可重入代码。
② 处理器支持中断,并且能产生定时中断(通常在10~100Hz)。
③ 处理器支持能够容纳一定量数据(可能是几千字节)的硬件堆栈。
④处理器有将堆栈指针和其他CPU寄存器读出和存储到堆栈或内存中的指令。
中断可以用以下函数配置:
与所有的实时内核一样,μC/OS-II需要先禁止中断再访问代码的临界段,并且在访问完毕后重新允许中断。这就需要μC/OS-II能够保护临界段代码免受多任务或中断服务例程(ISRs)的破坏。μC/OS-II要求用户提供一个时钟资源来实现时间的延时和期满功能,时钟节拍应该每秒钟发生10~100次。为了完成该任务,可以使用硬件时钟,也可以从交流电中获得50Hz/60Hz的时钟频率。
本系统主要是对μC/OS-II移植处理器上需要修改的3个ARM 体系结构相关的文件——OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C进行了操作。
3.2 znFAT文件系统移植
znFAT文件操作系统方便文件的读取,并能很好地显示文件的各种属性。例如文件的大小、创建时间、扩展名等。同时,支持FAT32、FAT16、FAT文件格式。该文件系统依靠纯C语言实现,具有可裁剪和移植简单等优点,支持SD卡、CF卡、U盘等常见的可移动存储设备,广泛应用于嵌入式系统的文件操作。移植过程只需要提供相应设备的扇区读写函数即可。本系统中所用到的SD卡即使用了znFAT文件系统。
3.3 μC/GUI和μC/GUI Builder界面设计
μC/GUI是一种用于嵌入式应用的图形支持软件。它被设计用于为任何使用一个图形LCD的应用者提供一个有效的不依赖于处理器和LCD控制器的图形用户接口。它能工作于单任务或多任务的系统环境下。μC/GUI软件适用于任何LCD,支持任何尺寸的图形LCD的物理和虚拟显示。本文对LCD界面的设计用到了μC/GUI和μC/GUI Builder。μC/GUI目录如表1所列。
表1 μC/GUI目录
结 语
本文结合现代消费电子的发展趋势,提出嵌入式系统下的音频播放器设计新方案。该方案不仅降低了MP3播放器的开发成本,而且程序升级和移植都很方便。另外,该方案对便携式多媒体播放器的研发也具有一定的意义。
[1] Jean J Labrosse.嵌入式实时操作系统μC/OS-II[M].2版.邵贝贝,等译.北京:北京航空航天大学出版社,2003.
[2] 赵宁,陈明,何鹏举.嵌入式操作系统μC/OS-II在ARM上的移植与应用[J].计算机技术与应用,2004(4):29-31.
[3] 张天益.MP3播放器的设计[J].今日电子,2006(12):1-2.
[4] 李军.便携式MP3播放器的方案分析及其技术研究[J].电声技术,2004(7):1.
[5] 广州周立功单片机发展有限公司.Cortex-M3开发指南——基于LM3S8000,2007.
[6] ELM-FAT File System Module[EB/OL].(2010-05)[2012-04].http://elm-chan.org/fsw/ff/00index_e.html.