介绍了利用数字信号处理芯片TMS320LF2407A实现触摸式MP3播放器设计的方案。采用芯片VS1003B进行MP3的解码,减轻了系统的负担。采用ILI9320为驱动器的真彩彩屏,并采用TM7843为控制器的4线电阻式触摸屏作为人机交互平台,实现了MP3等文件的播放、歌词的同步显示以及彩图显示等功能,相关文件存储在SD卡中。
TMS320LF2407A是美国TI公司推出的高性能16 bit定点数字信号处理器,它采用了高性能静态CMOS技术,使得供电电压降为3.3 V,减小了控制器的功耗;40 MIPS的执行速度使指令周期缩短到25 ns(40 MHz),从而提高了控制器的实时控制能力。它专门为数字控制设计,集DSP的高速信号处理能力及适用于控制的优化外围电路于一体,在数字控制系统中得以广泛应用;MP3是指MPEG国际标准音频第三层编/解码[1],本文采用硬件解码方式(软件解码代价高,速度慢),利用TMS320LF2407A实现 MP3播放器的设计。
1 系统硬件组成
1.1 微控制器TMS320LF2407A
系统硬件结构如图1 所示,TMS320LF2407A作为主控芯片,内部资源十分丰富,具有40个可编程/复用的GPIO脚,具有事件管理器EV模块、CAN总线模块、 SCI模块以SPI模块等。其中,同步串行SPI模块具有4个通信引脚:主出从入SPIMOSI、主入从出SPIMISO、同步时钟SPICLK、总线片选SPISTE。本系统中,SD卡、VS1003B以及TM7843都是SPI总线接口设备,DSP采用SPI总线扩展了SD卡与VS1003B音频解码芯片,而并未将触摸屏控制器TM7843也扩展到SPI总线上,采用了IO口模拟SPI的方案,原因是在对SD卡操作的同时(数据还未读入RAM),是不可能向VS1003B传送数据的,SPI处在间歇的切换状态中,不会导致争用、冲突,但是对屏幕的触碰是难免的,所以共用总线不可靠。
1.2 VS1003B解码芯片
VS1003B 是由荷兰VLSI公司出品的一款单芯片的MP3/WMA/MIDI音频解码和ADPCM编码芯片,其拥有一个高性能低功耗的DSP处理器核 VS_DSP,5 KB的指令RAM,0.5 KB的数据RAM,串行的控制和数据输入接口,4个通用IO口,一个UART口;同时片内带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器。
如图2所示,VS1003B各部分的供电电压不同,AVDD(模拟电路电压)与IOVDD(IO电压)须用3.3 V供电,CVDD(数字电路电压)必须用2.5 V供电;VS1003与DSP连接的引脚主要有7个,分别为DREQ、SO、SI、SCLK、XRESET、XCS、XDCS。只有保证它们与DSP正确可靠的连接,才能对VS1003进行有效的操作与控制;操作时,只有当DREQ为高(准备好)时才能读写VS1003B,它具有2个读写端口,即命令端口和数据端口,分别由XCS(命令片选)与XDCS(数据片选)决定,由DSP的IO口控制。SO、SI、SCLK是SPI接口,与DSP的SPI总线对接。图2的左侧与右侧原理图分别为MIC音频模拟信号输入电路与音频输出电路,由于内部具有耳机驱动器,VS1003B输出信号不需经过任何功放电路,简化了硬件电路。
1.3 SD卡电路
SD卡有9个引脚,支持2种可选的通信协议:SD模式和SPI模式。如前所述,本设计采用SPI模式。图3中,DI、DO、SCLK分别对应微控器SPI模块的3个引脚;CS脚是SD卡SPI模式的片选引脚,与DSP的IO口连接,DSP 的SPISTE脚并未使用(因为需要扩展多个SPI芯片,需要多个片选脚),对SD卡操作时,CS脚才拉低有效,避免了与VS1003B冲突。SENS与 WP分别为SD卡的插入检测与写保护脚。
1.4 彩屏与触摸屏驱动电路
ILI9320 是手机上常用的彩屏控制器,采用16 bit并行总线方式,端口被映射到DSP的IO空间,彩屏具有4个背光LED灯(控制端为LED1~LED4),采用三极管9012连接共阳极LEDA,使背光受控于DSP的PE3脚,若一段时间内未触摸屏幕,控制PE3脚为高,使背光熄灭,降低系统功耗。彩屏与4线电阻式触摸屏紧贴一起,2块屏是一个整体,输出软排线中的XR、YD、XL、YU(参见图4中的U3)即为4线电阻采样端,与TM7843(芯片U4)对应脚连接,TM7843的DCLK、 DIN、DOUT、/CS脚与TMS320LF2407A的IO脚连接,模拟SPI总线。PENIRQ是笔落下信号,程序中判断此脚为低电平时(或采用中断方式),则有触摸屏幕事件发生,再进一步做区域识别处理。
2 软件设计
软件主要分为3个任务:显示任务、触摸识别任务、MP3播放任务,由?滋C/OS操作系统负责调度。MP3播放任务完成了最主要的功能,即从SD卡FAT32文件系统中读取数据再送入VS1003B 解码。然而μC/OS系统只是完成了基本的任务调度及相关机制,并无其他内嵌实用模块,所以基于SD卡的FAT32文件系统的实现必须设计完成。
FAT32 文件系统如图5所示,物理扇区0可以引导程序定位到正确的文件系统逻辑扇区0的位置。引导区DBR的第一扇区包括一个引导程序和BPB参数块[3]。启动区BPB是文件系统最重要的部分,它记录了每扇区字节数、根目录簇号、FAT表号等重要信息,依据它可以找到每个文件的簇号,依据文件的链式存储结构,可以依次找到文件的所有存储簇号。
软件中设计了对应的结构体,描述了BPB块结构、目录结构、文件记录体结构等。其中,BPB结构如下:
struct FAT32_BPB
{
unsigned char BS_jmpBoot[3]; //跳转指令 offset:0
unsigned char BS_OEMName[8]; //系统字符串 offset:3
unsigned char BPB_BytesPerSec[2]; //每扇区字节数offset:11
unsigned char BPB_SecPerClus[1]; //每簇扇区数 offset:13……
unsigned char BS_FilSysType[11]; // offset:71
unsigned char BS_FilSysType1[8]; //串″FAT32″ offset:82
};
再利用SD卡硬件层API接口函数FAT32_ReadSector将BPB所在扇区读入RAM缓冲区,利用指针指向内部成员即可获得以上信息,从而可以定位到文件位置并读取数据。MP3通常只是读取文件,并不会进行删除、保存等操作,所以为了提高效率、精简代码,本FAT32系统只实现了文件定位及读取功能。图6为主流程图与播放任务流程图。
TMS320LF2407A 具有较高的性能,资源丰富,将其应用到MP3播放器中,提高了整体性能;采用触摸屏可以随意点选歌曲以及拖动播放进度等,使系统可控性提高;彩屏使系统展现能力提高,系统不仅可以播放音频,而且能够显示全彩BMP图片、文档文件等,类似于小型PDA。