为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于LPC2214和uC_OS—Ⅱ的音频处理方案

2011-11-20 4页 pdf 172KB 17阅读

用户头像

is_672950

暂无简介

举报
基于LPC2214和uC_OS—Ⅱ的音频处理方案 基于 LPC221 4和 uC/OS—I I 的音频处理方案※ ■ 华中科技大学 彭 华 成 许 晓 晖 关键词 VSLOO3 LPC2214 uC/OS—II 音频编码 音频解码 基于 ARM平台和实时操作系统的嵌入式技术应用 得越来越广泛,因此,在开发一款工控手持设备中,也基于 这样的平台来实现。针对该工控手持设备对音频编解码 功能的特殊要求,并综合考虑了成本及可靠性的要求,最 终采用了基于 LPC2214和 uC/OS—II的嵌入式平台,结 合一款性能优越的音频编解码芯片——VS1OO3来实现。...
基于LPC2214和uC_OS—Ⅱ的音频处理方案
基于 LPC221 4和 uC/OS—I I 的音频处理※ ■ 华中科技大学 彭 华 成 许 晓 晖 关键词 VSLOO3 LPC2214 uC/OS—II 音频编码 音频解码 基于 ARM平台和实时操作系统的嵌入式技术应用 得越来越广泛,因此,在开发一款工控手持设备中,也基于 这样的平台来实现。针对该工控手持设备对音频编解码 功能的特殊要求,并综合考虑了成本及可靠性的要求,最 终采用了基于 LPC2214和 uC/OS—II的嵌入式平台,结 合一款性能优越的音频编解码芯片——VS1OO3来实现。 1 基于 LPC2214和 uC/OS—Il的嵌入式平台 目前流行的 ARM芯片内核有 ARM7TDMI、ARM720T、 ARM9TDMⅡ、ARM922T、ARM94OT、ARM946T、ARM966T和 ARM1OTDMI等。Philips LPC2214是基于 ARM7TDMI—S 的高性能 32位 融SC微控制器。它集成了Thumb扩展指令 集,256 KB可在系统中编程的片内 Flash和可在应用中编 程的 16 KB RAM,向量中断控制器,外部总线控制器 ,2 个 UART,I2C串行接 口,2个 SPI串行接口,2个定时器 (7个捕获/比较通道),可提供多达 6个 PWM 输 出的 PwM单元,8通道 1O位 ADC,实时时钟 ,看门狗定时器 以及 112个通用 I/O引脚。通过可编程 的片内锁相环 (PLL)可实现 LPC2214最高为 6O MHz的 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/0S—II相结合的平台具有比较强大 的处理能力,但在许多应用场合中仍显不足。在本文所介 绍的应用中,系统需要具有音频编解码功能。音频的编解 码方式包括软件编解码和硬件编解码。如果采用软件编 解码的方式,则对处理器的处理速度要求一般在 5O MIPS 以上,而 LPC2214的处理速度仅有 7O MIPS左右。显然 倘若采用这种方式,LPC2214处理能力将受到很大限制。 所以,采用专门的音频处理芯片来处理音频数据对该平台 来说是个正确的选择。这里选用一款性能优越的音频解 码芯 片——VS1003。 VS1003音频解码芯片为 VS10XX系列的第三代产 品,是 芬 兰 VLSI Solution Oy公 司 生产 的单 片 MP3/ WMA/MIDI解码和 ADPCM 编码芯片。它内部包含一 个高性能、低功耗的 DSP处理核(VSDSP),一个工作内 存,一片可供用户程序使用 的 5.5 KB RAM,一个串行 SPI总线接 口,一个高质量的采样频率可调的过采样 DAC 以及一个 16位的过采样 ADC。VS1003的内部构造如图 1 所示 。 4-4- -j;喜 冬0刍厢 一J.. ⋯ 一一 ⋯ 一,rL 口j、 维普资讯 http://www.cqvip.com MIC allclio line MICAMP M 胱onolI H audio GPIO 2 SO SI SCLK xCS xDCS RX TX _.J GP10 串行 数据 控制 接口 UA盯 VSDSP 圆 圈 匿 图 1 VS1003系统框 图 音频 L 卜R 输出 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至少可 以接收 32 KB的 SDI数据或者 SCI控制 命令。 在这里,以 VS1002新模式且 SMS— xCg DISHARED设置为 0为例介绍 VS1003 通信协议的实现。图 2描述 了 SDI工作 ⋯ 时序,它以 xDCS为 同步信号,随着时钟 sI 信号 DCI K 的 变 化,数 据 根 据 SCL— MODE的设置依次从高位或低位送出。 n SCI协议包括 1个控制指令字节、1 . 个地址字节和 1个 16位数据字。每次读 DREQ /写控制可以操作一个寄存器。读命令和 写命令分别为 0x03和0x02。这两种控制 命令的工作时序分别如图 3和图 4所示。 xDCS SD DcL I r-1几n r_1 f-]几几n几n几 图 2 SDI工作时序 _臣 4 电路 本设计最终要实现的目标是一款具有人机界面及数 据存储功能的工控手持设备,通过人机对话界面发送控制 命令来操纵 VS1003,以实现录放音功能。 4.1 硬件电路设计 VS1003的所有数据和控制命令均通过 SPI总线接口 实现,因此与 I PC2214的接 口实现比较简单 ,包括 3条 SPI数据线和 4条控制线,如图5所示。 4.2 软件设计 VS1003的控制软件设计,是在系统成功地移植 了 uC/OS—II操作系统以及 ZLGFS文件系统的条件下进行 的。具体软件设计中,首先对 LPC2214与 VS1003控制接 口的几个功能引脚进行相应的配置,然后使能 SPI并设置 其工作模式。此后,利用 uC/0S—II多任务的特点,建立 一 个专门的任务用于实现系统的录放音功能。在该任务 图3 SCI读命令工作时序 图 4 SCI写命令工作时序 nan r国mP nPt nm rn r|廿越击田、 ^:⋯ ⋯⋯l1⋯ R. —L JJ J c...~ 一 4 耐 一一~一一一一~ 5; 5i s 维普资讯 http://www.cqvip.com + 一 5V +3 _ 牛 , = =1l 图 5 VS1003与 LPC2214接 口电路 创建完毕后,首先完成对 VS1003的初始化工作 ;然后任 务进入等待循环中,等待系统发出相应的控制指令。当该 任务接收到录音指令时,调用相应的录音功能函数启动录 音功能,并将录音数据写入指定的文件中;当接收到播放 功能指令时,调用播放功能函数,播放指定的音频文件;当 接收到中断指令时,将退出录放音功能 ,任务回到循环等 待中。该任务的具体实现函数如下: /*RecordTask任务需要用到的一些全局变 量 */ char*FileName; //声 明指 向录音文件的指针 char Record — Enable=0,Play — Enable=0; //声明开始录音和播放录音的标识 char Play — Pause=0,Play _ Stop= 0,Record — Stop= 0; //声 明录放音的一些控制标识 /*用于实现录音和播放功能的任务 */ void RecordTask(void *pdata)f OSTimeDly(OS _ TICKs_PER—SEC*5); //延时一段 时间才启用该任务 1 OSAddFileDriver(SDCammand,NULL); , RecorderReset() while(1){ //~JIl载文件 系统驱 动函数 7 始化 VS1003 if(Record _ Enable){ record(FileName); //启动录音功能,调用录音函数 Record_Enable一 0; } else if(Play — Enable){ playrecord(FileName); //启动播放功能,调用播放函数 Play _ Enable一 0; ) OSTimeD1y(OS _ TICKs_PER—SEC); //任务处于循环等待运行状态 pdata— pdata; //避免编译错误 D 4 6 羊专机.j;蛊入式条惋应国|圈__瞳圈硼 adv@mesnet . COn%cn(广告专用) ● ]二_上∞ 维普资讯 http://www.cqvip.com 雎 图 8 串口通信程序 换成 AT89S51,就可以提供至少24路的PWM输出 (P0、 P1、P2)。 ④ 控制参数由 SCI串口输入,适应面广,上位机可以 图 9 其 中一路 PWM波形 ① PWM波形由外部振荡电路提供定时基准,与单片 机内部振荡器的频率无关,不影响串VI通信、定时器等参 数的配置。 ② PWM波形的调整精度可任意确定。 ③ 本设计思路可应用于任意多路 的 PWM 输出,只 要单片机能提供足够多的输出端 口,例如将 AT89C2051 是 PC机、单片机或是 PLC。 ⑤ 本方法具有一般性 ,任何单片机只要能提供 SCI 中断、外部中断就可以应用本方法。 编者注:本文为期刊缩略版 ,全文见本刊网站 WWW. mesnet.corn.cn。奠 参考文献 [1]求是科技.单片机典型模块设计实例导航.北京:人民邮电出 版社 ,2004. E2]利用单片机 PWM 信号进行舵机控制.WWW.vip998.corn/ Article/mcu/mcuyj/200603/237.htm1. (收稿 日期 :2006—04—19) I 编者注:VSIO03的驱动程序以及相关录音和播放功 能程序见本刊网站 www.mesnet.corn.cn。 5 总 结 采用 VSIO03实现基于 LPC2214和 uC/OS—II的嵌入 式平台的音频编解码功能,接口电路简单,控制程序易于编 写,且最终音频播放清晰、自然。当然在具体设计中也曾遇 到一些需要注意的问题 ,例如要成功对 VSIO03进行初始 化,必须详细了解 VS1003的配置时序要求。特别要注意 的是,对不同寄存器配置完后,其等待处理周期有所不同, 若等待周期不够,则将使得配置无法正常完成。-E 参考文献 [1]周立功.ARM嵌入式系统基础教程.北京:北京航空航天大 学出版社 ,2005. [2]Labrosse J.ec/()s—II一 源码公开的实时嵌入式操作系 统.邵贝贝,译.北京:中国电力出版社,2002. [3]VLSI Solution Oy.VS1003一MP3/WMA AUDIO CODEC. VLSI Solution Oy,2005. (收稿 日期 :2006—04—18) R j lJ._j;喜 奋0刍厢 J.. ⋯ 一⋯ ~ t1-.土I:l:l、 维普资讯 http://www.cqvip.com
/
本文档为【基于LPC2214和uC_OS—Ⅱ的音频处理方案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索