基于ARM平台和实时操作系统的嵌入式技术应用得越来越广泛,因此,在开发一款工控手持设备中,也基于这样的平台来实现。针对该工控手持设备对音频编解码功能的特殊要求,并综合考虑了成本及可靠性的要求,最终采用了基于LPC2214和uC/0S-II的嵌入式平台,结合一款性能优越的音频编解码芯片——VSl003来实现。 1 基于LPC2214和uC/OS-II的嵌入式平台 目前流行的ARM芯片内核有ARM7TDMI、ARM720T、ARM9TDMI、ARM922T、ARM940T、ARM946T、ARM966T和ARMl0TDMI等。Philips LPC2214是基于ARM7TDMI-S的高性能32位RISC微控制器。它集成了Thumb 扩展指令集,256KB可在系统中编程的片内Flash和可在应用中编程的16KB RAM,向量中断控制器,外部总线控制器,2个UART,I2C串行接口,2个SPI串行接口,2个定时器(7个捕获/比较通道),可提供多达6个PWM输出的PWM单元,8通道10位ADC,实时时钟,看门狗定时器以及112个通用I/O引脚。通过可编程的片内锁相环(PLL)可实现LPC2214最高为60MHz的CPU时钟频率。相对众多ARM系列产品来说,Philips公司生产的LPC2214是一款性价比较高的ARM7芯片。 嵌入式实时操作系统有助于提高系统可靠性和开发效率,且能够充分发挥32位CPU的多任务处理能力。常见的嵌入式操作系统有Linux、Windows CE、VxWorks、Nuckus、uC/0S-II等。其中uC/OS-II是一个可移植、可固化、可裁剪的占先式实时操作系统,其周边的配套产品也比较完善,如uC/FS、uC/GUI等产品都为其应用增强了实用性。相对其他操作系统而言,uC/OS-II正常运行只需十几或几十KB的Flash空间和SRAM空间,并且其所需的授权费用也相对较低。结合以LPC2214为核心的硬件平台,在这里采用了uC/OS-II作为该设备的嵌入式操作系统。 由上述分析可知,选择LPC2214和uC/OS-II相结合的嵌入式平台是一种较为经济而实用的方法。 2 音频解码芯片的选择 LPC2214与uC/OS-II相结合的平台具有比较强大的处理能力,但在许多应用场合中仍显不足。在本文所介绍的应用中,系统需要具有音频编解码功能,音频的编解码方式包括软件编解码和硬件编解码。如果采用软件编解码的方式,则对处理器的处理速度要求一般在50MIPS以上,而LPC2214的处理速度仅有70MIPS左右。显然倘若采用这种方式,LPC2214处理能力将受到很大限制。所以,采用专门的音频处理芯片来处理音频数据对该平台来说是个正确的选择。这里选用一款性能优越的音频解码芯片——VSl003。 VSl003音频解码芯片为VSl0XX系列的第三代产品,是芬兰VLSI Solution Oy公司生产的单片MP3/WMA/MIDI解码和ADPCM编码芯片。它内部包含一个高性能、低功耗的DSP处理核(VSDSP),一个工作内存,一片可供用户程序使用的5.5KB RAM,一个串行SPI总线接口,一个高质量的采样频率可调的过采样DAC以及一个16位的过采样ADC。VSl003的内部构造如图1所示。
3 VSl003控制协议的实现 VSl003通过一个工作于从模式的SPI串行总线与主机进行数据和控制信息的交流。音频数据通过串行数据接口(SDI)传送;控制数据则通过串行控制接口(SCI)来传送。控制数据总是为16位,通过读/写不同的寄存器来实现对VS1003的控制。 VSl003的SPI接口具有两种工作模式:VSl002新模式和VSl001兼容模式。设置SM_SDINEW为1,使VSl003处于VSl002新模式。当SMSDISHARED为O时,控制信号和数据信号的传送分别采用xCS和xDCS作为同步信号;而当SMSDISHARED为1时,共用xCS作为同步信号。没置SM_SDINEW为O.使VSl003处于VSl001兼容模式,该模式仅以xCS作为同步信号。 作为从机工作模式,VSl003通过一个信号线DREQ指示是否允许主机传送数据。当DREQ为高时,VSl003至少可以接收32KB的SDI数据或者SCI控制命令。 在这里,以VSl002新模式且SMSDISHARED设置为O为例介绍VSl003通信协议的实现。图2描述了SDI工作时序,它以xDCS为同步信号,随着时钟信号DCLK的变化,数据根据SCL_MODE的设置依次从高位或低位送出。
SCI协议包括1个控制指令字节、1个地址字节和1个16位数据字。每次读/写控制可以操作一个寄存器。读命令和写命令分别为0x03和0x02。这两种控制命令的工作时序分别如图3和图4所示。
|
文章评论(0条评论)
登录后参与讨论