现在市场上推出了各种型号的MP3随身听,它们采用先进的智能控制技术,利用先进的芯片,不仅实现了MP3格式语音的播放,而且集多种功能于一身。但这些精巧的随身听价格较昂贵,因此笔者根据要求设计了一种廉价的MP3播放器,利用硬件存储语音文件,并能够从PC机下载,从而可随时更新MP3音乐。该MP3播放器同时附加了文本阅读的功能,可做到语音和文本的同步输出。本文主要介绍MP3播放器DSP编码。
MP3播放器系统构成
MP3播放器系统结构由右图所示,根据MP3播放器特点要求信号处理部分选择了TI公司的TMS320VC5402芯片。该DSP芯片优越的性价比既可充分胜任本设计的信号处理,又能满足价廉的要求。主机智能控制部分选用功能较强的AT89C51芯片,并相应制作两块印刷电路板,以明确设计思路,实物的大小也减半。
如右图所示,MP3播放器系统选用大容量的FLASHMEMORY作为主存储器硬件存储语音文件,DSP程序也存储在FLASH中,运行时再引导到DSP的高速RAM,从而省去DSP芯片部分的程序存储空间。利用串口通信电路可以实现由PC机下载语音文件功能,利用液晶显示屏LCD,还可以从PC机下载小说并可通过LCD阅读。
DSP、MPU硬件设计
MP3播放器中,DSP芯片的Bootloader采用了HPI口方式。由于在硬件上HPI引脚与DSP的数据、地址总线引脚是相互独立的,同时HPI口内部又有控制机制,所以外部主机通过HPI口访问DSP内部RAM时不会影响DSP的正常运行。HPI利用DSP芯片上1000H地址开始的一块具有共享存储器功能的2K字RAM,来实现主机与从机间的数据交换。
DSP扩展了一片64K字高速静态RAM(CY7C1021V33-10),作为DSP芯片的片外RAM。用以适应各种音频处理算法对存储器容量的要求。
DSP芯片处理后的信号通过D/A转换输出到耳机。D/A转换由LM4545实现,它具有48K字转换速度,可直接和DSP芯片的输出相连。而MPU主要完成LCD显示、控制DSP芯片的运行、文件的串口下载等三项功能。
89C51与29F040B的连接电路如下图所示。
MPU用来访问FLASH的地址线由P0口和P2.0~P2.5组成。这14根地址线既提供14位页内地址又提供5位的页码地址,P0口同时与两片74LS373相连,分别以P3.5和ALE作为这两个芯片的片选信号;第一片74LS373(A)输出信号的低5位作为5位页码地址与29F040B的A14~A18连接,第6位作为片选信号连接29F040B的CS。后两位则留作以后扩展用;第二片74LS373(B)的8位输出连接29F040B的A0~A7;89C51的P2.0~P2.5直接连接29F040B的A8~A13,和74LS373B的8位输出共同构作14位的页内地址。
相应的寻址过程(假设访问地址1FFFFH)是:第一步,先将P3.5置1,打开74LS373(A),再向P0口写入所要寻址的页码地址,1FFFFH的页码为7H;第二步,再将P3.5置0,关闭74LS373A,向P0口和P2口写入14位页内地址,1FFFFH的页内地址为3FFFH。因为74LS373B由ALE片选,每次MPU访问外设时自动打开,所以这两步骤次序不能颠倒,否则访问的地址就出错。