基于STM32的嵌入式MP3设计
- 格式:doc
- 大小:245.50 KB
- 文档页数:19
STM32单片机课程设计题目:基于STM32的大容量音乐播放器设计指导教师:所在学院:机械电子工程专业班级:14自动化2班姓名:学号:联系电话:实践时间:目录一引言 (1)二系统整体概述设计 (1)三硬件设计3.1控制器 (2)3.2电源 (3)3.3 PCM1770音频播放模块 (4)3.4 SD卡数据存储模块 (4)3.5 W25Q32数据存储模块和OLED显示模块 (4)3.6按键控制 (5)四软件设计4.1 软件 (6)4.2软件设计流程图 (7)五程序设计 (8)六课程小结 (12)摘要:采用具有ARMCortex-M3内核的STM32F103R8T6等芯片进行相关的硬件设计,使用KEIL4.0进行固件程序和驱动程序的开发,设计了一种基于STM32的CCID协议的USB读卡器.该读卡器支持符合ISO7816-3规范的接触式IC卡。
实验表明,该设计可以提高智能卡系统的通信速度和中断响应速度。
关键词:USB;CCID协议;STM32;ISO7816-3一.引言随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。
位次我设计了一个基于STM32的大容量音乐播放器。
二系统总体设计概述基于PCM1770芯片播放器三硬件设计3.1控制器STM32F105互联型系列微处理器使用高性能的ARM Cortex-M3 32位的RISC内核。
工作最高频率为72MHZ,内置256K字节的闪存和64K字节的SRAM。
丰富的I/O端口和联接到两条APB总线的外设。
包含标准的通讯接口(2个IIC接口,3个SPI接口,2个IIS接口,1个USB OTG 全速接口,5个USART接口和2个CAN接口),2个12位的ADC和4个通用的16位定时器。
它具有高性能、低功耗、低电压等特性,同时还具有高集成度和易于开发的特点,使该系列产品成为小型项目和作为完整平台的理想选择。
衡水学院
毕业论文(设计)
学生姓名: 陈进进
系别: 物理与电子信息系
专业: 电子信息工程
年级: 2012级
指导教师: 郭海丽
归档日期: 2016年6月10日
衡水学院教务处印制
1
毕业论文(设计)任务书
(指导教师填写)
毕业论文(设计)开题报告
3
5
说明:开题报告应在教师指导下由学生独立撰写,开题报告一般不少于1000字,并交指导教师审阅。
毕业论文(设计)开题报告论证记录
毕业论文(设计)文献综述
说明:查阅文献资料篇数,按《衡水学院毕业论文(设计)撰写规范》执行。
文献综述一般不少于1000字。
可增加页数,遵循整页布满
第I 页共18 页。
基于STM32MP3播放器设计STM32MP3播放器是一种基于STM32单片机搭建的MP3音频播放设备,具有播放音频文件、调节音量、选择曲目等功能。
其基本原理是通过STM32单片机的内部ADC/DAC模块与外部音频解码器进行数据传输和处理,实现音频播放的功能。
首先,STM32MP3播放器的硬件设计主要包括以下几个部分:STM32单片机、音频解码芯片、外部存储器、显示屏、按键和音频输出设备。
STM32单片机作为控制中心,负责控制整个播放器的各个元件以及与用户的交互。
音频解码芯片负责解码音频文件,将数字信号转换为模拟声音输出。
外部存储器用于存储音频文件,通常是SD卡或者闪存。
显示屏用于显示播放器的状态和当前播放的曲目信息。
按键用于控制播放器的各项功能,如暂停/播放、切换上一首/下一首等。
音频输出设备可以是耳机、扬声器等。
其次,STM32MP3播放器的软件设计主要包括存储设备读写控制、音频解码控制、用户交互控制等功能。
首先,存储设备读写控制部分负责从外部存储器读取音频文件,并将音频数据传输给音频解码芯片进行解码。
其次,音频解码控制部分负责控制音频解码芯片的工作,包括选择解码算法、设置音频参数、调节音量等。
最后,用户交互控制部分负责响应用户的操作,如按键事件处理、显示屏信息更新等。
对于STM32MP3播放器的设计流程,可以分为硬件设计和软件设计两个阶段。
首先,根据实际需求确定硬件设计方案,包括选择STM32单片机型号、音频解码芯片、外部存储器、显示屏、按键和音频输出设备等,并进行硬件电路的设计与布局。
随后,进行软件设计,包括编写驱动程序、实现音频解码算法、处理用户交互操作等。
在实际的设计过程中,需要根据硬件平台和技术条件进行优化,以保证播放器的音质和性能。
例如,可以通过选择合适的音频解码算法,优化解码性能,提高音频质量。
同时,还可以通过采用高性能的存储设备和使用缓存技术来提高音频文件的读取速度,减少卡顿现象。
• 123•基于STM32的多功能音乐播放器设计绵阳职业技术学院 罗金生 王荣海 李 岷 刘 成以音乐播放器为研究对象,提出一种基于STM32的音乐播放器的硬件和软件的设计方法,系统以STM32F103ZET6为控制核心,音频解码芯片VS1053B实现音频数据解码,挂载FATFS文件系统实现对SD卡中的音频文件进行读取,利用FFT快速傅里叶变换将音频信号转为频谱,加入了一个小型GUI显示界面配合OLED显示屏,实时的将界面、播放状态以及频谱生动的展示出来,此外还加入了蓝牙音频功能,通过手机蓝牙即可连接播放器播放音乐。
实验表明,该音乐播放器连接耳机能流畅播放多种格式的音乐文件,具有多功能、高性能、低功耗、操作方便、稳定可靠等特点。
引言:音乐可能是人类史上最古老、最具普遍性以及感染力的艺术形式之一。
音乐能提高人的审美能力,净化人们的心灵,树立崇高的理想。
不论时代怎么发展,人们的生活娱乐都离不开音乐。
因此,设计一款简单实用,多功能化的音乐播放器完全可以符合人们的爱好及需求。
本文介绍一种基于STM32F103处理器的SDIO接口模块及外围音频解码芯片实现一个SD卡的音乐播放器,它读取存储在SD卡里的音频格式文件,并通过立体声音解码芯片输出,能进行频谱显示,还可以通过手机蓝牙与其连接播放音乐等功能。
1.系统硬件电路设计基于STM32F103VET6微控制器所设计的MP3播放器,主要包括:存储模块、蓝牙音频模块、音频解码模块、显示模块。
系统方案设计的系统框图如图1所示。
主控制器芯片,利用其SDIO接口不断读取SD卡音频文件送入缓存区;使用了三组SPI接口,第一组SPI接口将读取的音频数据流送至音频解码芯片VS1053进行解码,第二组SPI接口连接了字库存储芯片,用于显示歌曲名等,第三组SPI接口连接OLED显示屏幕实现人机交互以及显示歌曲信息和频谱等;使用了一个定时器、一个DMA以及一个ADC通道实时快速采集音频输出,并利用FFT将其从时域转换为频域;使用通用IO控制蓝牙以及音频切换芯片和键盘。
《嵌入式系统原理》课程设计说明书题目:利用STM32实现MP3播放器院(系):信息与电气工程学院STM32芯片应用实验设计任务书第一种方案是简易声波播放器,仅使用STM103V100评估板,令计时器TIM4工作在PWM模式下,将wav格式的声波文件从SD卡中读出,由TIM4产生不同频率的方波通过低通滤波器和放大器送喇叭,如图1所示;第二种方案则是简易MP3播放器,还需要使用额外的解码芯片,将MP3格式的文件从SD卡读出,然后送解码芯片解码播放,如图2所示。
本节将先介绍SD卡、FAT16文件格式、VS1003编解码器等关键部分,然后再分别给出两种设计方案的软件设计。
图1 简易声波播放器方案图2 简易MP3 Player方案1 SD卡的结构及读写方法STM103V100评估板有SD连接器,其使用SPI总线与STM32处理器连接,如图3所示。
图3 SD连接器与STM32处理器SPI连接图SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。
本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD 卡,可以参考相关资料。
SD卡内部结构及引脚如图4所示。
图4 SD卡内部结构及引脚SD卡主要引脚和功能为:CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz 之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz的频率;CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。
SD卡以命令形式来控制SD卡的读写等操作。
可根据命令对多块或单块进行读写操作。
STM32单片机课程设计题目:基于STM32的大容量音乐播放器设计指导教师:所在学院:机械电子工程专业班级:14自动化2班姓名:学号:联系电话:实践时间:目录一引言 (1)二系统整体概述设计 (1)三硬件设计3.1控制器 (2)3.2电源 (3)3.3 PCM1770音频播放模块 (4)3.4 SD卡数据存储模块 (4)3.5 W25Q32数据存储模块和OLED显示模块 (4)3.6按键控制 (5)四软件设计4.1 软件 (6)4.2软件设计流程图 (7)五程序设计 (8)六课程小结 (12)摘要:采用具有ARMCortex-M3内核的STM32F103R8T6等芯片进行相关的硬件设计,使用KEIL4.0进行固件程序和驱动程序的开发,设计了一种基于STM32的CCID协议的USB读卡器.该读卡器支持符合ISO7816-3规范的接触式IC卡。
实验表明,该设计可以提高智能卡系统的通信速度和中断响应速度。
关键词:USB;CCID协议;STM32;ISO7816-3一.引言随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。
位次我设计了一个基于STM32的大容量音乐播放器。
二系统总体设计概述基于PCM1770芯片播放器三硬件设计3.1控制器STM32F105互联型系列微处理器使用高性能的ARM Cortex-M3 32位的RISC内核。
工作最高频率为72MHZ,内置256K字节的闪存和64K字节的SRAM。
丰富的I/O端口和联接到两条APB总线的外设。
包含标准的通讯接口(2个IIC接口,3个SPI接口,2个IIS接口,1个USB OTG 全速接口,5个USART接口和2个CAN接口),2个12位的ADC和4个通用的16位定时器。
它具有高性能、低功耗、低电压等特性,同时还具有高集成度和易于开发的特点,使该系列产品成为小型项目和作为完整平台的理想选择。
基于STM32音乐播放器的设计与实现第一章引言1.1 课题背景及意义随着生活水平的提高,人们现在追求更多的个性化的享受和需求,而音响就是在这种条件下的时代产物。
20世纪50年代,我国声学工业的主要产品是电子管式中短波收音机。
改革开放后,随着国家的开放,中国与外国之间的交流日益频繁。
许多中国人回国和探亲访友的礼物通常是一套大型音响或立体声录音机。
80年代的立体声收录机普遍繁琐,技术含量不高。
进入新世纪以来,随着城市现有土地资源的紧张,房地产开发商在开发新的楼盘时更注重的是空间的搭配合理性以及尽可能的满足现代人追求的精品生活方式,家居风格也随之发生转变。
这时候迷你音乐播放器横空出世,应时而生。
在最近几年里娱乐已成为个人电脑消费中的最大应用,它主要分布在音乐,多媒体,游戏,电影,这一切都与视听分不开的,用电脑组成家庭影院已成为一种潮流趋势,很多人认为音乐播放器只要能发声就行,但实际上不管是家庭影院还是个人电脑,购买时都会配上音乐播放器,假如没有了音乐播放器,多媒体只能是一句空话。
微型音乐播放器外观新颖、体积小、灵活性好,深受年轻人的喜爱。
虽然国内的大型音响设备状况不是很好,但是迷你音乐播放器确是个例外,市场发展前景不容小觑。
出于市场需求,造型美观,性能优异的音乐播放器更受消费者青睐。
因此要求音乐播放器具备基本的性能:抗干扰、音质好、体积小、功率大。
新的迷你音乐播放器有其他额外的工作能量,例如,它可以在音乐播放器中。
这些都是笔筒、花瓶、便携皮带和一些漂亮的小饰品,它们不仅容易实现,而且成本低。
因此,便携式的以其较小的体积和较好的音质受到广大消费者的青睐,但现有的播放器往往是将解码器和存储器一体化的。
虽然这样的设计使得音乐播放器便于携带,但也寻在着一些问题:一是存储空间固定,不能扩展更大内存,二是不利于音乐播放器在其他领域的应用。
因此,将播放器和存储器进行分离,是未来音乐播放器发展的方向。
1.2 音乐播放器的进化史自古以来,音乐就离不开人们的生活。
基于STM32的MP3播放器设计与实现设计和实现基于STM32的MP3播放器需要完成以下几个主要步骤:硬件设计、软件编程以及调试。
以下将详细描述每个步骤,并提供基于Keil MDK的完整源代码。
硬件设计:1.硬件平台选择:选择适合于MP3播放器的STM32系列单片机,如STM32F4系列。
2.音频芯片选择:选择具有I2S或SPI接口的音频解码芯片,如VS1053芯片。
3.外设选择:选择适当的外设来控制用户输入(如按键)、显示屏幕和存储介质(如SD卡)。
4.硬件连接:按照芯片和外设的接口要求,连接单片机、音频解码芯片、按键、显示屏幕和SD卡等。
软件编程:1.硬件初始化:初始化单片机和外设的引脚配置、时钟和中断等。
2.外设驱动编写:编写外设的驱动程序,包括音频解码芯片驱动、SD 卡驱动、按键驱动、显示屏幕驱动等。
3.MP3解码器:基于音频解码芯片的通信协议,编写MP3解码器的相关程序,实现文件的解码和音频数据的播放。
4.用户接口:编写用户界面程序,实现按键控制、显示屏幕显示、菜单操作等功能,以便用户操作音乐播放器。
5.文件系统:编写文件系统程序,实现对SD卡中音乐文件的读取和管理。
调试:1. 编译:使用Keil MDK进行编译,检查程序是否能够正确编译通过。
3.调试:通过串口或调试器连接STM32单片机,查看程序运行过程中的输出信息,检查是否存在问题并进行调试。
以下是一个基于STM32F4系列的MP3播放器的部分源代码,完成了初始化、外设驱动、MP3解码器和用户接口的编写。
```c#include "stm32f4xx.h"#include "vs1053.h"#include "sdcard.h"#include "lcd.h"#include "key.h"void Delay(uint32_t nCount)for(; nCount != 0; nCount--);int main(void)LCD_Init(;Key_Init(;VS1053_Init(;SD_Init(;while(1)if (Key_Scan( == KEY_PLAY)SD_Play(;}}void EXTI0_IRQHandler(void)if (EXTI_GetITStatus(EXTI_Line0) != RESET)VS1053_TriggerInterrupt(;EXTI_ClearITPendingBit(EXTI_Line0);}```以上代码只是一个简单的示例,具体实现需要根据所选择的硬件平台和外设来编写相应代码,例如音频解码芯片的驱动程序、SD卡的读写程序等。
惠州学院HUIZHOU UNIVERSITY毕业论文(设计)中文题目:基于STM32单片机的MP3播放器设计英文题目:Design of MP3 player based on STM32 micro-controller姓名__ 陈腾奎 ___学号_ 110701203 ___专业班级_ 11电气2班 ___指导教师__ 陈治明 ___提交日期 2015年5月25日__教务处制惠州学院本科毕业论文(设计)开题报告年月日惠州学院毕业论文(设计)任务书备注:1、本任务书一式三份,系、指导教师、学生各执一份。
2、学生须将此任务书作为毕业论文(设计)说明书的附件,装订在说明书中。
惠州学院毕业论文(设计)文献综述摘要随着数字编解码技术及压缩技术的发展,语音文件也向着高压缩比、高保真的方向发展,从MP1、MP2到目前的MP3格式。
因此高压缩比、高保真MP3播放器设计及研究有很好的发展前景。
本论文介绍了基于STM32微处理器的MP3播放器的设计方法,实现了从SD卡中读取音乐文件数据,再将读取的数据流进行软件解码,最后通过音频信号输出驱动耳机实现音乐播放功能。
并在液晶屏上显示音乐的实时播放状态,通过TFT触摸屏上的人机交换界面,实现了音乐的播放,停止,声音增大,减小等功能模式。
基本上实现了一个带有触摸功能的MP3播放器。
关键词MP3播放器 STM32F103ZET SD卡触摸屏 FATFS文件系统ABSTRACTWith the development of digital codec technology and compression technology ,Voice files are also in the direction of high compression ratio, high-fidelity development, from MP1, MP2 to MP3 format now. Therefore, high compression ratio, high-fidelity MP3 player design and research have good prospects for development.This paper describes the design of microprocessor-based STM32 MP3 player, Realize from reading music files from SD card and then read the data stream decoding software,Finally, the audio signal output to drive headphones realize music playback ,and displays real-time playback status of the song on the LCD screen, through a graphical user interaction diagram circles TFT touch screen, to achieve the songs play, stop, sound increase, decrease function mode. Basically realize MP3 player with a touch-enabled.Key Words MP3 player STM32F103ZET SD Card Touch screenFATFS file system目录1 绪论 (1)本课题的提出及意义 (1)研究现状 (1)2 硬件设计 (2) (2) (2) (3) (3)SD卡模块 (4)LCD显示模块 (5) (6)3 软件设计 (8)软件开发架构 (8)软程序设计流程图 (9)软件代码结构 (10)驱动程序 (14)液晶屏驱动程序 (14)文件系统驱动程序 (15)触摸屏卡驱动程序 (16)MP3驱动程序 (17)4 系统调试 (20)开发环境 (20)软件开发环境 (20)硬件开发环境 (21)设计调试 (22)UI界面设计 (22)SD卡模块测试 (22)触摸屏校验 (23)显示屏测试 (23)成品展示 (25)致谢 (26)参考文献 (27)附录 (28)1 绪论本课题的提出及意义MP3音频播放器的最合理工作速度为30Mips,而一个典型的视频媒体播放器的理想速度则为175Mips,所以提高MP3的工作速度,以及改善MP3的音质是最关键的,也是亟待解决的问题。
基于STM32的PWM音乐播放器应用设计摘要:PWM(脉冲宽度调制)音乐播放器是一种利用STM32系列微控制器的PWM输出来生成音频信号实现音乐播放的应用。
本文将介绍一个基于STM32的PWM音乐播放器的应用设计,包括硬件设计和软件设计。
1.引言PWM音乐播放器是一种简单且成本低廉的方式来实现音乐播放。
由于STM32系列微控制器具有PWM输出功能,并且具备足够的计算能力,因此非常适合用来设计PWM音乐播放器。
本文将介绍如何设计一个基于STM32的PWM音乐播放器的应用。
2.硬件设计硬件设计包括STM32微控制器的选择和PWM输出电路的设计。
2.1STM32微控制器的选择选择合适的STM32微控制器是设计PWM音乐播放器的关键。
首先要考虑到音频数据的存储和处理能力,可以选择具有足够存储空间和计算能力的STM32微控制器。
另外,PWM输出的质量也非常重要,因此要选择具有高分辨率PWM输出的STM32微控制器。
推荐选择STM32F4系列微控制器,例如STM32F4072.2PWM输出电路的设计PWM输出电路的设计是为了保证音频信号的质量和输出功率。
可以使用一个低通滤波器来过滤PWM输出信号,以消除高频成分,然后将滤波后的信号放大,以增加输出功率。
在PWM输出电路中,还可以添加一些保护电路,以预防意外的电压过冲或过电流等情况。
3.软件设计软件设计包括音频数据的处理和PWM输出的控制。
3.1音频数据的处理音频数据可以从存储器或外部设备中读取,然后进行解码和处理。
可以使用一些常见的音频格式,如MP3或WAV,来存储音频数据。
可以使用适当的库或算法来解码音频数据,并将其转换为适合PWM输出的格式。
在将音频数据转换为PWM输出格式之前,可以应用一些音效或滤波器,以改变音频的音效或调整音频的频率等。
3.2PWM输出的控制PWM输出可以通过设置定时器和占空比来控制。
可以根据音频数据的采样率和音频输出的所需频率来设置定时器的频率。
基于STM32的PWM音乐播放器应用设计_马志强一、引言随着科技的不断进步和人们对音乐的追求,音乐播放器已经成为人们日常生活中不可或缺的一部分。
本文将介绍一种基于STM32单片机的PWM 音乐播放器应用设计方案。
二、设计方案1.系统结构本系统主要由三个模块组成:音乐数据存储模块、音乐数据解码模块和PWM输出控制模块。
2.音乐数据存储模块音乐数据存储模块主要负责存储音乐文件,可以选择外部存储介质,如SD卡、U盘等。
STM32单片机通过相应的驱动和接口与外部存储介质进行通信。
3.音乐数据解码模块音乐数据解码模块主要负责将存储在外部存储介质上的音乐数据进行解码,转换为数字信号,用于PWM输出控制模块的控制。
可以选择合适的音乐解码芯片,如VS1053等。
4.PWM输出控制模块PWM输出控制模块主要负责控制音乐数据解码后的数字信号输出。
STM32单片机通过相应的PWM输出模块和控制寄存器进行设置和控制。
5.系统功能设计该音乐播放器应用设计方案具备以下功能:-支持常见的音乐文件格式,如MP3、WAV等。
-支持音乐的播放、暂停、停止、上一曲、下一曲等操作。
-支持音量调节功能,并具备音量记忆功能。
-支持音乐列表显示和选择功能。
-支持定时开关机功能,并具备关机记忆功能。
6.软件设计-操作界面:设计简洁、直观的音乐播放器操作界面,可通过按键、旋钮等控制音乐的播放、暂停、切换等操作。
-音乐解码:通过音乐解码芯片将音乐文件解码为数字信号,并通过I2S或SPI等接口传输给STM32单片机进行PWM输出控制。
-控制逻辑:通过编程实现音乐列表的显示和选择功能,控制音乐的播放、暂停、停止、切换等操作。
通过定时器实现定时开关机功能。
-存储管理:通过相应的文件系统和存储管理算法管理音乐文件的存储和读取。
7.硬件设计-选用STM32系列的合适型号单片机,具备足够的存储空间和计算能力。
-选用合适的音乐解码芯片,具备支持常见音乐文件格式的解码能力。
基于STM32单片机的MP3播放器毕业设计摘要:随着人们生活水平的提高,人们对音乐的需求越来越高,尤其是便携式的音乐播放器,如MP3播放器。
本设计基于STM32单片机,设计了一款功能强大的MP3播放器,并实现了音乐播放、暂停、停止、上一曲、下一曲等基本功能。
1.引言MP3播放器是目前市场上非常流行的音乐播放设备,能够存储和播放数千首歌曲。
本设计采用了STM32单片机作为主控芯片,通过设计合适的电路和编写相应的程序,实现了一款功能强大的MP3播放器。
2.系统架构系统由主控单片机、存储模块、音频解码模块、音频放大模块和用户界面模块组成。
主控单片机采用STM32F系列,具有强大的计算和控制能力。
存储模块使用闪存芯片进行音乐文件的存储。
音频解码模块使用MP3解码芯片,能够将音乐文件解码为音频信号。
音频放大模块使用功放芯片,对音频信号进行放大。
用户界面模块使用LCD显示屏和按钮,用户可以通过按钮进行音乐播放器的控制。
3.硬件设计电路设计主要包括主控单片机的外设接口设计、存储模块的选型和接口设计、音频解码模块的选型和接口设计以及音频放大模块的选型和接口设计。
主控单片机的外设接口设计需要考虑与存储模块、音频解码模块和用户界面模块的接口适配。
存储模块的选型需要考虑存储容量和读写速度。
音频解码模块的选型需要考虑解码效果和功耗。
音频放大模块的选型需要考虑功放芯片的输出功率和音质。
4.软件设计软件设计主要包括主控单片机的程序设计、音频解码模块的驱动程序设计、用户界面模块的控制程序设计等。
主控单片机的程序设计需要实现音乐文件的读取、解码和播放控制等功能。
音频解码模块的驱动程序设计需要实现音频解码芯片与主控单片机的通信和数据传输。
用户界面模块的控制程序设计需要实现LCD显示屏的刷新和按钮的响应。
5.实验结果与分析经过实际测试,本设计的MP3播放器能够正常播放音乐文件,并且具有良好的音质和稳定的性能。
用户通过LCD显示屏可以实现对音乐的控制和操作。
一.设计名称 (2)二.设计要求 (2)三.设计目的 (2)四.设计环境 (2)五.设计思路 (3)1. 总体设计方案 (3)5.1.1控制模块 (3)5.1.2电源模块 (3)5.1.3音频解码模块 (3)5.1.4显示模块 (4)5.1.5总结 (4)2.硬件电路设计 (5)5.2.1SD卡模块 (5)5.2.2音频解码模块 (6)5.2.3液晶显示模块 (7)3. 软件程序设计 (7)5.3.1MP3播放流程设计 (8)六.调试过程 (9)6.1设计调试部分 (9)6.1.1USB转串口 (9)6.1.2使用Flash loader进行串口连接 (9)6.1.3 SD卡设置 (10)6.2问题分析 (10)6.2.1软件部分问题分析 (10)6.2.2硬件部分问题分析 (10)七.心得体会 (11)八.参考文献 (12)一.设计名称基于STM32的嵌入式MP3设计二.设计要求实现简单的MP3音乐播放功能,单曲循环播放,下一首,音量调节,添加歌曲等简单功能。
三.设计目的1.了解所选择的ARM芯片各个引脚的功能,工作方式,计时/定数,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。
2.了解STM32、SPI接口、SD卡、TIMER、中断、FAT文件系统、USB等的应用。
3.通过MP3播放器设计掌握嵌入式开发的基本方法和步骤。
4.注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。
四.设计环境硬件:PC机、ARM Cortex系列为控制器开发套件USB串口线软件:windows 98/XP/2000系统、Flash loader五.设计思路1.总体设计方案本次设计采用STM32系列微控制器,结合解码芯片VSl003、SD卡、LCD 等外围设备设计并实现了MP3播放器。
其主要功能有:播放VSl003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。
5.1.1控制模块此方案采用STM32 ARM板实现,它使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K 字节的SRAM),丰富的增强型I/O端口以及包含2个12位的ADC、3个通用16位定时器和一个PWM定时器。
使得处理速度大大提高,机器功耗大大降低,整体性能得到很大提高。
32位的处理器使得控制更加稳定、迅速,窗口型看门狗,使得程序运行更加高效。
另外,比较方便的是该板支持硬件仿真,通过Ulink仿真器可以方便实现在线逐步调试,这大大方便了系统的开发与调试工作。
5.1.2电源模块电源设计是一个系统设计中的关键部分,对于整个系统,一个稳定的、具有一定功率的电源和合理的电源管理是必不可少的。
本系统有以下几种电源:CPU 的内核数字和模拟电源电压+1.8 V,CPU的I/O口数字和模拟电源电压+3.3 V、总线的隔离电源、LCD的驱动电源、其他外围设备电源电压+5 V等电源。
出于调试的方便和即插即用性,以及本系统的侧重点在MP3播放器上,所以我采用USB为系统供电,如此一来使系统的实现变得更加简便、迅速。
5.1.3音频解码模块VS1003可以作为一个微控制器的从机,通过串行SPI接口来接收输入的比特流,输入的比特流被解码后,可以通过一个数字音量控制器到达一个18 位过采样多位DAC。
通过串行总线控制解码器。
这样利用一个VS1003芯片与STM32F103x处理器配合,STM32处理器读取SD卡中的MP3文件,将其通过SPI接口送往VS1003芯片播放,然后再利用STM32F10X处理器的一些GPIO口来控制VS1003即可以实现一个MP3 Player的原形设计。
5.1.4显示模块1)常见的基于单片机设计的音乐播放器基本不能显示歌曲。
该音乐播放系统设计上增加液晶显示器,LCD显示模块主要完成数据显示、输出数据与显示数据的同步等功能,可为使用者提供曲目信息。
由于LED数码管只能显示数字而无法显示其他中英文字符,并对成本及功能考虑,因此从设计的成本及功能的角度考虑,采用LCD1602显示模块,它可以显示每目的英文名字。
LCD1602驱动电路简单,可以由CPU输出命令驱动。
2)又由于STM32V100开发板中没有液晶控制器的功能模块,如果所选择的液晶屏内部也没有液晶控制器,那么,要使CPU可以对液晶进行控制,就必须加设计一个液晶驱动控制电路。
另外,由于液晶用来显示调节播放音量的ADC 转换值和歌曲的顺序,所以字符型的LCD1602基本上能够满足显示要求。
又由于系统设计时间的限制,因此本系统中选择自带控制器的液晶屏LCD1602液晶显示。
其连接电路图如图5.1所示。
图5.1 LCD液晶管脚连接图5.1.5总结通过上述论证,本系统采用STM32作为微控制器,VS1003作为解码芯片,采用SD卡存储MP3/WMA文件,LCD作为显示器件,最终完成MP3的播放设计。
同时PC机可以通过USB接口操作开发板上SD卡中的文件,也可以通过串口通信控制音乐播放。
具体方案图如图4.2所示图4.2 总体设计方案框图2.硬件电路设计本系统在硬件上分为4个模块:微控制器STM32F103、存储模块SD卡、解码模块VSl003、和显示屏LCD。
MP3播放功能模块的工作分为两个部分:第一部分是循环播放MP3歌曲,该功能需要首先做一些初始化工作,MP3解码器一旦开始工作,就会一直向CPU请求数据,直至歌曲结束,只有通过键盘操作才会使该功能提前结束。
因为MP3文件的数据量较大,在flash存储器内是以页为单位进行存储的,所以MP3的播放程序初始化就是要把该文件的首地址和页数先读出到CPU中,然后CPU可以根据如上数据进行取数据工作。
第二部分则一直在等待中断发生,该程序是与键盘结合起来的,主要用于使用者对播放过程的控制。
键盘操作对MP3播放过程的控制还包括后退、跃进、跳到下一首、音量控制等。
因为整个播放过程的键盘控制功能比较单一,没有键的复合操作,所以程序都很容易实现。
当MP3播放器插入到USB接口时,系统执行USB通讯功能模块,该模块主要用于对flash存储器内的文件数据进行管理。
STM32F103x使用SPI2端口与VS1003芯片的SI、SO、SCLK连接;VS1003芯片的控制引脚xCS、xRESET、xDCS分别与STM32F103的PA1、PA0和PA2连接,低电平有效;VS1003的状态引脚DREQ与STM32F103处理器的PA3连接,低电平表示需要送数据,高电平表示正在处理数据。
模块化电路设计5.2.1 SD卡模块该系统使用STM32内部接口SPIl与SD卡进行通信,下面介绍其引脚连接情况。
PE3:低电平有效,连接到SD卡的片选引脚CD/DAT3。
SPI在和SD卡进行通信时,需要将PE3拉低才能对SD卡进行操作。
PA7:映射为STM32内部接口SPIl的主输出从输入(MOSI)信号线。
这里STM32是主设备,SD卡是从设备。
数据流的传输方向是从STM32传输给SD卡。
该信号线用于传输一些控制命令来完成SD卡的操作,如读、写等。
PA5:已连接到STM32内部接口SPIl的时钟(SCLK)信号线。
可设置SPI的时钟频率来调整读取SD卡数据的快慢。
PA6:已连接到STM32内部接口SPIl的主输入从输出(MISO)信号线。
数据的传输方向是从SD卡传输给STM32,主要返回SD卡的一些状态、内部寄存器值等。
PCI2:用于检测SD卡是否完全插入。
当SD卡完全插入时,PCl2为低电平,否则为高电平。
由于本系统采用STM103V100-II开发板,所以就以其自带的SD卡的结构及读写方法进行介绍,STM103V100-II评估板有SD连接器,其使用SPI总线与STM32处理器连接,如图5.3所示图5.3 SD连接器与STM32处理器SPI连接图5.2.2音频解码模块该系统使用STM32内部接口SPl2与VSl003进行通信,下面具体介绍其引脚连接以及使用情况。
PA3:VSl003的中断请求引脚。
当VSl003内部数据已处理完毕,需要新的数据时,将DREQ拉高。
STM32根据这个信号来给VSl003发送新的数据流。
PBl3:已连接到STM32内部接口SPI2的时钟(SCLK)信号线。
PBl4:已连接到STM32内部接口SPI2的主输入从输出(MISO)信号线。
这里STM32是主设备,VSl003是从设备。
数据流的传输方向是从VSl003传输给STM32。
主要用于读取VSl003的一些状态和内部寄存器值,比如寄存器测试返回的内部寄存器的值。
PBl5:已连接到STM32内部接口SPl2的主输出从输入(MOSI)信号线。
这里STM32是主设备,VSl003是从设备。
数据流方向是从STM32传输给VSl003,主要传输给VSl003一些控制命令、MP3/WMA数据流等。
PAl:低电平有效,如果拉低该引脚,那么通过SPI传输的是控制信号。
控制信号包括读写VSl003的内部寄存器、对VSl003进行初始化、设置左右声道音量等。
PA2:低电平有效,如果拉低该引脚,那么通过SPI传输的是数据信号。
比如在向VSl003传输MP3/WMA的数据流时需要拉低该引脚。
PA0:低电平有效,拉低该引脚则硬件复位VSl003。
5.2.3液晶显示模块LCD液晶显示模块主要完成数据显示、输出数据与显示数据的同步等功能,可为使用者提供曲目信息。
由3.3.4 显示模块方案可知,前期为了简化电路的设计,以及充分利用开发板资源,此次系统显示模块设计采用STM32V100开发板有自带的LCD液晶屏,如果时间允许,我将对支持汉字液晶屏进行研究以用于显示歌词,音量等。
LCD液晶屏硬件电路如图5.4所示图5.4 LCD硬件电路图3.软件程序设计本系统的工作过程大致为:STM32通过SPIl从SD卡中读取MP3/WMA文件,将所读取的数据流通过SPl2发送到VSl003解码中播放;PC机可通过USB 总线读写SD卡的内容,传送MP3/WMA等文件;LCD显示屏用于显示MP3的文件名、播放状态。
有硬件系统可得软件的系统流程图:软件系统流程图5.3.1MP3播放流程设计通过SPI1从SD卡中读取声波文件,将所读取的部分存放在一个缓冲器中,利用TIMER2通道1定期产生的中断,从缓冲器中读取声音数据,然后根据声音数据通过TIMER4的通道3产生不同频率方波输出。
这里使用了两个缓冲器,一个用于存放从SD卡读到的声音数据,另一个用于将声音数据输出到PWM,两个缓冲区的功能不断交替,形成一个由2个缓冲区构成的环形缓冲。