基于LPC2214和uC/OS-II的嵌入式平台的音频编解码方案

发布者:人妙果华最新更新时间:2014-11-20 来源: 21ic关键字:C2214  uCOS-II  音频编解码 手机看文章 扫描二维码
随时随地手机看文章

目前流行的ARM芯片内核有ARM7TDMI、ARM720T、ARM9TDMI、ARM992T、ARM940T、ARM946T、ARM966T和ARM10TDMI等,Philips LPC2214是基于ARM7TDMI-S的高性能32位RISC微控制器,它集成了Thumb扩展指令集,256KB可在系统中编程的片内Flash和可在应用中编程的16位KB 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、Nucleus、uC/OS-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处理能力将受到很大限制,所以,采用专门的音频处理芯片来处理音频数据对该平台的来说是个正确的选择,这里选用一款性能优越的音频解码芯片--VS1003。

VS1003音频解码芯片为VS10XX系列的第三代产品,是芬兰VLSI Solution Oy公司生产的单片MP3/WMA/MIDI解码和ADPCM编码芯片,它内部包含一个高性能、低功耗的DSP处理核(VSDSP),一个工作内存,一片可供用户程序使用的5.5KB RAM,一个串行SPI总线接口,一个高质量的采样频率可调的过采样DAC以及一个16位的采样ADC,VS1003的内部构造如图1所示。

 

 

 

 

3 VS1003控制协议的实现

VS1003通过一个工作于从模式的SPI串行总线与主机进行数据和控制信息的交流,音频数据通过串行数据接口(SDI)传送,控制数据则通过串行控制接口(SCI)来传送,控制数据总是为16位,通过读/写不同的寄存器来实现对VS1003的控制。

VS1003的SPI接口具有两种工作模式:VS1002新模式和VS1001兼容模式。设置SM_SDINEW为1,使VS1003处于VS1002新模式。当SMSDISHARED为0时,控制信号和数据信号的传送分别采用xCS和xDCS作为同步信号,而当SMSDISHARED为1时,共用xCS作为同步信号,设置SM_SDINEW为0,使VS1003处于VS1001兼容模式,该模式仅以xCS作用同步信号。

作为从机工作模式,VS1003通过一个信号线DREQ指示是否允许主机传送数据,当DREQ为高时,VS1003至少可以接受32KB的SDI数据或者SCI控制命令。

在这里,以VS1002新模式且SMSDISHARED设置为0为例介绍VS1003通信协议的实现。图2描述了SDI工作时序,它以xDCS为同步信号,随着时钟信号DCLK的变化,数据根据SCL_MODE的设置依次从高位或低位送出。

SCI协议包括1个控制指令字节、1个地址字节和1个16位数据字。每次读写控制可以操作一个寄存器。读命令和写命令分别为0x03和0x02,这两种控制命令的工作时序分别如图3和图4所示。

 

 

4 电路设计

本设计最终要实现的目标是一款具有人机界面及数据存储功能的工控手持设备,通过人机对话界面发送控制命令来操纵VS1003,以实现录放音功能。[page]

4.1 硬件电路设计

VS1003的所有数据和控制命令均通过SPI总线接口实现,因此与LPC2214的接口实现比较简单,包括3条SPI数据线和4条控制线,如图5所示。

4.2 软件设计

VS1003的控制软件设计,是在系统成功地移植了uC/OS-II操作系统以及ZLGFS文件系统的条件下进行的,具体软件设计中,首先对LPC2214与VS1003控制接口的几个功能引脚进行相应的配置,然后使能SPI并设置其工作模式,此后,利用uC/OS-II多任务的特点,建立一个专门的任务用于实现系统的录放音功能,在该任务创建完毕后,首先完成对VS1003的初始化工作,然后任务进入等待循环中,等待系统发出相应的控制指令,当该任务接收到录音指令时,调用相应的录音功能函数启动录音功能,并将录音数据写入指定的文件时,当接收到播放功能指令时,调用播放功能函数,播放指定的音频文件,当接收到中断指令时,将退出录放音功能,任务回到循环等待中,该任务的具体实现函数如下:

 

5 总结

采用VS1003实现基于LPC2214和uC/OS- II的嵌入式平台的音频编解码的功能,接口电路简单,控制程序易于编写,且最终音频播放清晰、自然,当然在具体设计中也曾遇到一些需要注意的问题,例如要成功对VS1003进行初始化,必须详细了解VS1003得配置时序要求,特别要注意的是,对不同寄存器配置完成,其等待处理周期有所不同,若等待周期不够,则将使得配置无法正常完成。

关键字:C2214  uCOS-II  音频编解码 引用地址:基于LPC2214和uC/OS-II的嵌入式平台的音频编解码方案

上一篇:基于SEP3203拉力试验机嵌入式测控系统设计
下一篇:基于EFM32+MPTC120NWL的数字气压计及高度计

推荐阅读最新更新时间:2024-03-16 13:46

IDT 为 PC 音频编解码器推出先进 Vista 软件
新型驱动器可改善笔记本和台式电脑的音频能力   领先的关键半导体解决方案供应商 IDT 公司( Integrated Device Technology, Inc.; NASDAQ: IDTI )宣布,推出高清晰音频( HD 音频)编解码软件驱动器,有助于 IDT PC 音频用户在兼容 Windows? Vista 的系统中实现先进的音频能力。通过收购拥有业界最高保真度的 PC 编解码器, IDT 为 PC 原始设备制造商( OEM )和原始设计制造商( ODM )带来了先进而灵活软件的无可比拟的音频保真度、最快的上市时间和低风险。 Windows Vi
[新品]
基于uC/OS-II的智能窗系统设计
  本文讨论了一种基于实时操作系统μC/OS-II的智能窗设计方法。   1系统功能   本系统功能如下:手动按钮开关窗户;红外遥控窗户的开关;雨天能够自动把窗户关闭;检测到可燃气体自动把窗户打开;遇有盗情,会发出刺耳的报警声,把窗户关闭,并发送一条短消息给住户。   2硬件设计   CPU的选择是嵌入式系统开发的关键所在。本系统的CPU采用了ATMEL公司生产的AT89S51单片机。主要基于以下几点考虑;相比其他CPU价格便宜;经过扩展后可以移植操作系统μC/OS-II;51单片机在国内研究的较早,技术成熟。系统还包括电源、存储、按键、煤气、湿度、盗情、电机等基本模块。系统架构如图1所示。      3软件设
[单片机]
基于uC/OS-II的智能窗系统设计
基于微控制器的嵌入式音频编解码器设计
  许多设计人员在其基于微控制器的嵌入式系统设计中加入了,以提供高保真音频。但在这样做之前,他们必须弄清楚如何对其应用进行音频编解码器调校。如果不进行调校,即使有好的编解码器和扬声器,也可能会让应用听起来很平淡或音质很差。问题是每个扬声器都有自己的频率响应,因此编解码器应该根据扬声器的特性进行调校,同时要考虑到将要播放的音频种类和所需的响应。   调校音频播放系统的解决方案不是使用硬件滤波,而是利用音频编解码器自身的数字滤波器块。每个编解码器都有这个块,允许开发人员使用高通、低通和带通滤波器进行输出滤波。这样就可以根据需要仔细调校扬声器的响应。   本文将以 AKM Semiconductor 的编解码器为例,讨论编解码器
[嵌入式]
基于微控制器的嵌入式<font color='red'>音频</font><font color='red'>编解码</font>器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved