I 一皇子蕴 …………………………一 基于 TJ 的嵌入式Mp弓播放器的研宄 山东科技大学张学慧朱爱珍 【摘要】本文采用STM32微控制器作为控制单元,满足高品质MP3文件播放和控制,并采用嵌入式实时操作系统的移植技术,实现多任务的执行。整个系统主要由电源 模块、音频解码模块、SD卡模块、人机交互等几个模块组成。电源采用USB供电;采用VSIO03作为硬件音频解码芯片;SD卡存储MP3/WMA文件;人机交互部分采用 LCD和触摸屏实现,健系统更具人性化。 【关键词】STM32;音频解码;SD卡;MP3播放器 7— 特点,使该系列产品成为小型项目和作为 源要求的功率都不大,可以采用Blll23。STM32的使用需 2.5和B1MP3是一种高质量音乐压缩标准,采 完整平台的理想选择[ l17—3.3稳压芯片来提供。3.3V 用MP3压缩的数据量可以缩小到1/12,音 要一个最小系统,包括晶振电路,复位电 的电源输入如图3所示,2.2V电源输入与 质却没有多少损失。由于MP3音乐的较小 路。 之类似。 1.引言 数据量和高质量的播放效果,使它很快 成为一种集音频播放、数据存储为一身 的数码产品,并深受人们的喜爱。本文 设计的MP3是基于ARM公司最新Cortex—M3 内核的STM32控制器,利用该处理器内置 的sPI接口对sD存储卡进行控制,并对 MP3音频文件进行解码实现MP3的播放。 系统实现的功能:播放VS1003支持的 MP3、WMA等音频文件,且具有歌词同步 功能;控制播放上一首/下一首,音量增 减;通过LCD显示音量图标和播放状态 等。 2.系统方案设计… 系统采用STM32为主控制器有不可或 缺的优势,STM32系列是意法半导体基于 专为要求高性能、低成本、低功耗的嵌 入式应用专门设计的ARM Cortex—M3内 核。时钟频率72MHz,功耗36mA,是32位 市场上性价比最高的产品。系统主要由 控制模块、电源模块、音频解码模块、 sD卡模块、人机交互模块组成。其结构 框图如图1所示。 系统的工作流程:STM32处理器读取 sD存储卡里的MP3音乐文件数据,通过 SPI传输至音频解码芯片经过解码转换, 再送至耳机听筒。SPI总线控制音频DAC 芯片的参数实现音量控制等功能。使用 人机交互设备实现播放/暂停、上一曲/ 下一曲等控制功能和显示播放状态。 3.系统的硬件设计 系统的硬件设计包含控制器及各模 块芯片的选型和相关电路的设计。 3.1 STM32控制器电路设计 STM32系 ̄t]32位微控制器基于Cortex— M3内核,旨在为 U用户提供新的开发自 由度。它具有高性能、低功耗、低电压等 特性,同时还具有高集成度和易于开发的 图1系统结构框图 ~22一屯子世界/2012 04/ 1)晶振电路的设计:晶振电路用 3.3音频解码电路的设计 于向处理器提供工作时钟。本系统使用 由于使用了ARM处理器,MP3的解码 无源晶振xl作为系统的主振荡器,一 方法有两种,一是通过ARM处理器软解 个32.768kHz的晶振作为内置实时时钟 码,通过对MP3数据格式的解析实现MP3 (RTC)振荡器 。晶体振荡器的连接如 播放。二是通过外部解码芯片解码。前 图2所示。 者对处理器运算要求高,在解码高码率 晶振的负载电容应当按照要求选 的MP3时,STM32的处理能力不足,得不 取,电容不正确可能导致晶振起振缓慢 到好的解码效果,而且STM32解码之后还 甚至不起振,这将影响整个系统的稳定 需要外部的DAC来做音频输出,所以采用 性。 后者。 2)复位电路的设计:采用简单的 MP3解码芯片选择的是由芬兰VLSI公 “RC+按键”复位形式,该复位电路可 司出品的一款单芯片MP3/WMA音频解码芯 以实现上电自动复位和手动按键复位 。 片VS1003,其拥有一个高性能低功耗的 上电自动复位是通过外部复位电路的电 DSP处理器核,5K的指令ROM,0.5K的数 容充电来实现的,按键复位是通过复位 据RAM,串行控制和数据输入接口,同时 端经电阻与电源VCC接通而实现的。 片内带有一个可变采样速率的ADC、一个 3.2电源电路的设计 立体声DAC以及音频耳机放大器接口,还 系统中硬件电路的输入电源需要5V、 可以调节音量高低。其电路设计及与主 3.3V和2.5V。对于5V电源输入,本着设 控制器的连接如图4所示。 计简单、有效的原则采用USB供电,而且 VS1003与处理器的数据通信是通过 还可以通过USB线直接对sD的文件进行操 SPI总线方式进行的。VS1003主要通过串 作,实现即插即用。 行命令接口(SCI)和串行数据接口(SDI) 对于3.3V和2.5V电源输入,这些电 来接收STM32控制器的控制命令和MP3的 图2晶振电路 +5V C200 C203 0uF,1 104 图3 3 3V电源输入 …………………………一皇 蕴 -((((.J 图5 SD卡连接 图4音频解码电路 开始 ; , LCD转接板接口 J51 主 ; i 2 4 6 8 iS'I、Ma2 ̄)J始化{ r 1 :1 3 5 7 I各硬件模块初始化l 《 【9 10 11 12 13 14 : ÷ I r义件系统初始化l < 功 、 : ● 15 i6 17 18 19 20 21 22 23 24 25 26 27 2g 29 30 31 32 33 34 i ; : 『读sD的生引i 甘啊录 1 。 图6人机交互设备电路 、 图7程序设计流程图 数据。通过XCS、XDCS引脚的置高、置低 来确认是哪一个接口处于传送状态。对 VS1003芯片的功能控制,如初始化、暂停、音量控制的读取等,均是通过SCI写 入到特定寄存器来实现的。 3.4 sD卡模块 sD卡在日常生活与工作中使用非常 广泛,已经成为最为通用的数据存储 卡。在MP3、数码相机等设备上也都采用 sD卡作为存储设备。sD卡之所以得到如 此广泛的使用,是因为它价格低廉、存 储容量大、安全性强等优点。SD卡支持 两种总线方式:SD方式与SPI方式。其中 SD方式采用6线制,而SPI方式采用4线 制,使用单片机对sD卡进行读写时一般 都采用SPI模式。因此设计中使用STM32 内部接口SPI1与SD卡进行通信 ,图5是 其引脚连接情况。 3.5人机交互设备模块 人机交互设备包括输入设备和输出 设备,对于输出设备,采用彩色液晶 屏,这里选择一款2.8寸的TFT液晶屏 ILI9341,其分辨率为320*240,工作模 图6所示。 4.系统软件设计 4.1系统软件开发平台 Cortex—M3是ARM公司推出的最新的 针对控制器应用的内核,提供业内领先 的高性能和低成本的解决方案。但目前 能够支持Cortex-M3架构的开发工具很 少,而MDK是ARM公司推出目前性价比 最高的支持Cortex-M3处理器的开发工 具。故本次设计的软件平台是建立在MDK ision3之上的 J。 4.2软件设计基础 1)FAT文件系统:MP3播放器支持 FAT文件系统,以便识别出sD卡上的音乐 文件,需要文件系统存储数据的原理, 协议,格式等。根据对文件系统的掌 握,通过跑在RTX实时操作系统上的MP3 驱动程序和应用程序,将存储在SD卡上 MP3数据文件读取出来,并进行正常的播 放。 2)GUI图形用户界面:系统中的MP3 界面是基于GUI图形界面,采用图形方式 显示MP3操作用户界面在视觉上更易于接 式为8位数据模式,与MCU的通讯所需10 受。可以通过窗体、菜单、按键等方式 口较少,速度也较快。输入设备为了使 来方便的进行操作。 控制方便,人性化,采用触摸屏实现。 4.3软件模块化设计 触摸屏的控制芯片选择由TI公司生产的 从整个系统来说,按其与硬件是否 12位四线触摸屏控制芯片ADS7843,因为 直接相关,可以把软件分为两大部分: 该芯片的精度是i2Bit,有很高的分辨 (1)与硬件相关的底层驱动软件予 率,有利于屏幕控制精度的提高。LCD与 系统,包括LCD驱动模块、触摸屏驱动模 主控制器是SPI接口方式。其电路设计如 块、SD卡驱动模块、VSIO03驱动模块。 (2)与硬件无关的应用软件子系 统,包括FAT文件系统管理模块和音乐播 放模块。主程序的设计流程如图7所示。 系统启动后,先初始化STM32处理 器,再初始化各硬件模块,完成底层驱 动。由MCU通过FAT文件系统接口读取SD 卡的一些基本信息,如容量、FAT表及根 目录所在的启始扇区等。通过获得这些 信息,就可以找出SD卡是否有我们可以 播放的音乐文件。若有音乐文件,处理 器将通过SPI总线方式读出该文件的音频 信息,并将歌曲的数据流信息送入到解 码芯片中,通过VS1003芯片解码以及其 内含的高质量的立体DAC和耳机驱动电 路,实现MP3歌曲的播放。在触摸屏的控 制下,通过LED中菜单选项实现歌曲选择 和音量控制。 5.总结 本文提出了一种基于STM32的嵌入式 MP3播放器的设计方案,硬件上重点介 绍了各模块的电路设计,软件上介绍了 需要的嵌入式知识和主程序的流程。该 方案对于需要嵌入式媒体播放器的工业 控制、车载播放器等行业具有一定的研 究价值。方案设计中涉及到很多内容, 包括芯片的选型与设计,实时操作系统 移植,FAT文件管理系统,GUI图形用户 界面,对嵌入式的设计具有一定的参考 性。整个系统设计简洁,可靠性高,具 有很高的性价比。 /2012.04电子世再 一23— I_))》一皇子蕴 …………………………一 AVR萆 机的V—usB和串 遇铭方式比艘 93707王志海 【摘要】AVR单片机与计算机的数据传输方式通常使用串口通信,随着usB接口的快速普及,直接提供串口的pc机主板和应用串g:/进行数据传输的外围设备也越来越 少。选择一个简单、快速、适用的通信方式对于单片机系统的设计开发就尤为关键。本文对AvR单片机使用的串口通信方式和v—usB通信方式的开发实现过程进行比 较,分析了两种通讯方式的特点和应用场合,方便I-程人员参考选择数据通信实现方案。 【关键词】USB接口;V—USB;串口通信;AVR单片机 1.引言 串口通信是单片机与上位机最常用 的数据通信方式,随着USB接口的普及, 单片机与计算机之间越来越多的使用USB 接口进行数据传输,但是直接选用USB接 口控制芯片会增加开发成本与难度。为 单片机设备选择一个简单、快速、适用 的通信方式,不但可以降低开发成本和 技术难度,也可以最大程度的提高单片 机系统的运行效率。本文对AVR单片机使 用串口通信和V—USB方案的开发实现过程 进行比较,分析了两种通讯方式的特点 和应用场合。 1.1 V-USB简介 V~uSB的全称是Virtua1 USB for AVR microcontro]lers,是一个开源项 目。它利用纯软件的实现方式在ATMEGA 公司的AVR系列单片机上虚拟出USB口, 将其模拟为低速USB设备,实现方案不需 要添加其他的USB接口芯片。通常单片机 与上位机进行USB通信,需要用专用的 苎= 片进行USB协议的转换,例如CP2l01、 PL2303、SL8l 1、PDIUSBD12等。其中 表。 CP2l0l、PL2303芯片使用起来虽然简 3.上位机程序编制 单,倜是功能单一,只能做USB转串口的 3.1 V-USB上位机程序编写 通讯设备;而PDIUSBD12、SL811芯片功 V-USB项目存计算机端使 跨平台 能较强,但是设计使用复杂,这些USB芯 字节的程序空间。 的开源项日Li bUSB来访问usB设符。 片的价格都相对较高,增加了系统的硬 由于V—USB使用单片卡JLIO口模拟USB LibUSB—Win32是LibUSB在WindowS操作 件成本。而V~USB简 易用,成本较低, 通信,是用纯软件的方式实现了硬件芯 系统(Win2k,WinXP,Vi Sta,Win7) 绝人多数的AVR系列单片机加上很少的几 片的功能。而UsB通信的速率要求是比 上的通用USB设备驱动程序及开发包。 个外部元件,就可以组成…‘个USB系统。 表1两种通信接口特征对比 I.2串口通信简介 特征 串口通信 V—USB 串口通信基于RS一232一C串行总线接 计算机接口 RS232 USB 口标准,最初是为了连接计算机主机与 接口特点 兼容性好 即插即用、主机供电、应用广泛 CRT终端之间的通信,后来逐渐广泛地应 可靠传输距离 远(15米) 近(2米) 用于各种设备之间的数据交换。早期的 对单片机要求 具备USART单元 AVR系列,2kB Flash,128B RAM 计算机主机都带有RS一232接口,是最常 系统时钟要求(单位蛐z) 各种时钟频率均可 12、12.8、15、16、l6.5、18、2O 用的数据接口,具有传输距离远、连接 外围硬件实现 需TTL电平转换 仅需很少的简单元件 方式简单.、线路占用少、开发资料多等 L位机程序 支持多种开发语言 跨平台、支持多种开发语言 优点。绝大多数的单片机都内置USART单 编程难度 简单 简单 元用_丁串行通信。 开发工具 多 多 2.下位机实现方法 下位机程序 理解USART的原理 利用固有框架、占用1150 1400字节 2.1 V-USB下位机实现 理论传输速度 2400bps—l 15.2kbps 20kbps 一V-USB系统的硬件结构很简单,需要 个AVR单片机(片上具有2KB Flash, l28字节RAM的大部分型号都可以),再 加上少量的外部元件(晶振、电阻、 稳压二极管等),就组成了一个基本 的V-USB系统,实现方案需占用 片机 的两个数据引脚(其中D+必须连接至 INTO),并不占用其他的UART、计时器 等硬件资源。系统组成如图1。 图中的D1*ID2是3.6V稳压二极管, 目的是USB数据线上的电平。USB通 信规范中规定,数据线D+、D一上的电平 范围在3.OV至3.6V之间,而AVR单片机 的输出电平是VCC。如果单片机的VCC是 5V,如没有D1、D2的情况下将导致电平 不匹配,会出现在计算机中无法正确识 别出USB设备的情况。单片机所需的电源 VCC可由USB的5V输出电源直接提供,电 阻R1和R2起到了限流和保护的作用,避 免意外情况下损坏计算机的USB端口或单 片机的端口。 V-USB的软件源代码是由c代码和汇 编代码组成的,开发环境为AVR GCC,已 组织好几种不同USB设备的框架,开发者 只需直接利用即可。最小化的V—USB程序 框架编译后需要占用单片机ll5O至1400 较高的。因此在进行USB通信时单片机 的CPU占用率比较高的。为保证可靠的 USB数据传输,单片机CPU时钟必须是工 作在12MHz、l2.8MHz、l5MHz、l6MHz、 16.5M}{z、18MHz、20 ̄Ⅱ{z这几个频率。 2.2串口通信下位机实现 具备USART单元的AVR单片机都可以 使用串行通信方式,硬件实现仅使用单 片机的RXD和TXD引脚。为和计算机的Rs一 232接口连接,一般使用MAx232芯片进行 电平转换,这需要增加部分外围电路, MAX232应用电路如图2: 若要提高用串口通讯硬件的易用 性,还可以选择成品的USB转TTL接口芯 片,可以方便的将使用串口通信的单片 机设备变为USB设备,并且不影响} 位机 和下位机的程序编制。 为减小波特率偏差,USART对单片机 的使用的晶振频率和串口设置的通讯速 率有一些要求,不匹配的波特率和品振 频率会使传输出现通讯错误。具体叮查 各型单片机的数据手册中的波特率设置 参考文献 [1]程磊,基于STM32的MP3播放器的设计U】技术创 新,2011(1 2) 【2】王永虹,徐炜,郝立平等sTM32系列ARM Cortex—M3 微控制器原理与实践[M]北京航空航天大学出版 社.2008 [3b'2力,蔡骏等单片机原理与应用技术【MJ.清华大学出 版社,2006. [4】潘浩嵌入式MP3播放系统研究[Dl_北方工业大 学,2008. [51李宁基于MDK的STM32处理器开发应用【Ml北京航 空航天大学出版社,2008 作者简介: 张学慧,男,山东青岛人,山东科技大学在读硕士研 究生,研究方向:计算机控制及仿真。 朱爱珍,女,山东青岛人,山东科技大学在读硕士研 究生,研究方向:电力系统自动化。 24一屯子世界/2012.041