
苏州大学 应用技术学院 电子信息科学与技术(学号12105013)胡坚
摘 要
ARM处理器是由英国剑桥的Acorn计算机公司设计。ARM公司成立于1990年,该公司是知识产权提供商(不生产芯片)。目前,ARM处理器已经在高性能、低功耗、低成本的嵌入式领域中占据了领先地位。全世界现在包括Inter、IBM、Samsung等几十家大型半导体公司都使用ARM公司的授权。所以,开发者采用ARM处理器进行嵌入式系统开发时,可以得到更多的第三方技术和工具支持,使研发周期缩短,让产品更具市场竞争力。
ARM处理器经过多年发展,应用日益广泛,在工业控制、交通管理、信息家电、家庭智能管理系统、机器人等多种领域都有大量建树[1],很大程度上改变了人们的生活、工作和娱乐方式,MP3就是其中之一。
本设计是基于ARM的MP3设计,采用ARM系列的STM32微控制器,结合VS1053音频解码芯片、SD卡、 LCD等外围设备设计并实现了MP3播放器。
关键词:MP3播放器、ARM、STM32、VS1053、SD卡、LCD
作 者:胡坚
指导教师:顾妍
Abstract
ARM processor was originally designed by the Acorn computer company in Cambridge, uk. ARM was founded in 1990, the company is the intellectual property provider (not production chip). At present, the ARM processor has occupied a leading position in the field of high performance, low power consumption and low cost. The world now includes IBM, Samsung, Inter, and other dozens of large semiconductor companies are using ARM authorization. Therefore, the development of the ARM processor embedded system development, you can get more third party technology and tools to support, so as to shorten the development cycle, make the product more market competitiveness.
After many years of development, the ARM processor is widely used in many fields such as industrial control, traffic management, information appliance, home intelligent management system, robot and so on. It has greatly changed people's life, work and entertainment, and MP3 is one of them.
This design is based on the MP3 ARM design, the use of ARM series of STM32 microcontroller, combined with the decoder chip VS1053, SD card, LCD and other peripheral devices to design and implement the MP3 player.
Key words: MP3 player, ARM, STM32, VS1053,SD, LCD
Written by Jian Hu
Supervised by Yan Gu
前 言
MP3是一种能播放音乐文件的播放器同时也是一种所占内存很小的音频文件,狭义的讲就是以MPEG Layer 3标准压缩编码的一种音频文件格式[2]。在互联网时代的今天,MP3音乐以其不仅能储存大量音乐且能保证音乐质量的优点,已经成为了各种音乐播放器内最流行的音乐格式了。它通过芯片或存储卡存储歌曲,无需使用磁带和光碟,使消费者能够便捷的欣赏音乐,受到了大量群众的欢迎,获得了广阔的市场,因此各大公司推出了各式各样的mp3播放器产品 [3]。由于生产技术的发展,mp3播放器的研制与生产变得更加容易,竞争力大大增加,成本大幅降低,获得大量市场。
嵌入式系统是以应用为中心,以计算机技术为基础,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[4]。随着现代社会信息化进程的加快,嵌入式系统被广泛的应用于社会各个领域。
本文采用STM32F103作为微控制器,充分结合VS1053音频解码芯片,SD卡存储器,LCD液晶显示屏等外围设备,使MP3拥有音乐播放或暂停、音量调节、歌曲名显示、上一首/下一首、录音等多种功能,加强了市场竞争力。
全文共分为六章。第一章绪论,第二章系统设计理论基础,第三章系统总体方案设计,第四章硬件电路设计,第五章软件程序设计,第六章总结与展望。
第一章 绪 论
1.1开发背景
随着时代的发展,大量的家电和电子产品已经走入各家各户,大量的半导体公司也随之产生,ARM就是其中的佼佼者。目前,ARM处理器已经在嵌入式领域占据了领先地位。利用ARM芯片制造的电子产品性能十分优越,产品更受欢迎,开发者采用ARM处理器进行嵌入式系统开发时,可以得到更多的第三方技术和工具支持,使研发周期缩短,让产品更具市场竞争力。
随着数字编解码及压缩技术的发展,语音文件也朝着高压缩比、高保真的方向发展。便携式MP3播放器作为一种集音频播放、数据存储为一身的数码产品,其功能结构为电子设计人员所熟知。MP3虽然体积娇小,但机身里包括显示屏,存储器,处理器等多个部分。其中处理器最为关键,向显示屏,信号处理器等部位发出操作指令,指挥各个模块工作,是播放器的大脑。MP3音频文件是利用MPEG Audio Layer的技术,将音乐进行压缩的文件, 换句话说,能够在音质丢失很小的情况下把文件压缩到更小的程度,而且还非常好的保持了原来的音质[5]。如果是一段没进行过压缩的声音,那么每存储一秒钟的立体声CD音质音乐必须用1.4Mbit,这对内存的要求很高,所以必需使用压缩技术。通过运用MPEG音频标准的压缩技术,我们可以把存储空间压缩到原来的1/12而不会降低声音的音质[6]。低数据量极大的缓解了内存压力,高播放品质吸引了大量顾客,这两大优点使其成为声音存储,网上音乐传输的主要方式。
1.2国内外同类产品的分析
MP3是一种能播放音乐文件的播放器同时也是一种所占内存很小的音频文件。在网络广泛普及的今天,MP3通过不断的发展与进步,已经获得了广阔的市场与大量消费群。MP3的研究自1987年开始, 1998年韩国世韩公司推出了世界上第一台MP3随身听, MP3播放器由于其便于携带,体积娇小,接近无损的音质和出色的功能,使其快速流通全球,不断更新换代。MP3通过存储器储存音乐,能够直接上网下载音乐,突破了计算机与电视的桎梏,能让人们随时听到音乐,是一场巨大的变革。现在,即使经过了数十年的变迁,MP3播放器的销量已经比不上巅峰时期,而且在手机的竞争之下,呈现逐年下滑之势,但各种手机的音乐播放软件上,依然大量使用MP3音频文件,可想而知,MP3是世界电子产品中极其重要的一部分。在市场消费刺激下,大量的MP3播放器诞生,基于ARM的MP3播放器就是其中之一。ARM利用其大量第三方工具和技术支持的特有优势,使得MP3播放器的研制与生产变得更加容易,竞争力大大增加,成本大幅降低,获得大量市场。
1.3本次毕业设计所作的工作
本文以在研发基于ARM的MP3中所做的工作为基础,围绕Arm嵌入式系统、STM32F103 Arm开发板,讨论基于ARM的MP3的研究、设计与实现,详尽阐述了该MP3的系统设计,以及它的四大模块——STM32F103开发板、SD卡、音频编解码器、液晶显示器的主要设计思想和实现方法.
本次毕业设计的主要工作为:
(1)了解MP3的发展背景,掌握MP3的基本配置和基本电路,掌握如何使MP3拥有最基本的播放功能。
(2)以 ARM Cortex-M3内核的STM32F103作为微控制器,充分结合VS1053音频解码芯片,SD卡存储器,LCD5110液晶显示屏等外围设备,使MP3拥有音乐播放,音量调节,歌曲名显示、上一首/下一首、录音等功能。
(3)学习嵌入式系统的定义与特点,介绍ARM的体系结构及微处理器系列,掌握ARM Cortex-M3的主要结构,了解STM32的背景与结构。
(4)重点学会STM32的程序设计,能够用嵌入式C语言准确的编写程序,使MP3实现想要的功能。
(5) 自己编写程序,焊接各种外围设备,成功设计开发该MP3,并实现之。
本论文对所作的工作进行了详细的阐述,同时也会对几大模块的具体设计思想和实现方法进行分析。
第二章 系统设计理论基础
2.1 Arm嵌入式系统
嵌入式系统属于一个交叉学科,它涵盖了微电子技术、电子信息技术、计算机软件和硬件等多项技术领域的应用,覆盖面广[7]。嵌入式系统包括嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用软件等几部分。
国际电气和电子工程协会对嵌入式的定义为:用于控制、监视或者辅助操作机器和设备的装置。嵌入式系统具有三个特点:嵌入性、专用性、计算机系统。嵌入性即对系统的环境要求适应性高。专用性即对系统的配置适应性高。计算机系统即必需满足使用对象的系统要求。嵌入式系统的分层结构包括功能层、软件层、中间层、硬件层,含有对其他设备的控制、监视和管理等能力。
嵌入式系统形式多样,其开发方式采用交叉开发方式,开发平台一般是通用计算机 [8]。学习嵌入式系统,需要对STM32的最小系统等硬件有着一定程度的理解,需要至少了解一种ARM的体系结构,还需要学会C语言等编程语言。
2.2 STM32F103 Arm
STM32是一个通用微控制器产品系列,为了适应众多的应用需求和低成本的要求,在产品的规划和设计上采取了灵活多样、合理提供多种选项和配置丰富的原则,如闪存容量配置十分齐全,提供16~1024kb的宽范围选择,每个外部设备都有多种配置选项,使用者能自己做出合适的选择。
STM32-F103-C8T6增强型系列微控制器基于突破性的CM3内核,引脚数量为48,内置高速存储器(KB字节的闪存存储器),封装信息为T=LQFP,工作温度为-40~85摄氏度,含有4个驱动单元和4个被动单元。所有型号的器件都包含2个12位的ADC、3个通用16位定时器一个PWM定时器,还包含标准和先进的通信接口:包括2个I2C和SPI、3个USART一个USB和一个CAN[10]。
2.3 SD卡
SD卡是安全数码卡,SD卡是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种基于半导体快闪记忆器的记忆设备。SD卡由于其特有的优势而被大量电子产品广泛应用,MP3就是其中之一。现在,SD卡已是使用最广泛的存储卡。SD卡内部结构及引脚如图2-1 所示
图2-1 SD卡内部结构及引脚
SD卡主要引脚和功能为:
CD/DAT3:卡监测/数据位3
CLK:时钟信号,时钟信号的频率一般在在0~25MHz之间变化。
CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡[11]。
DAT0~2:是数据位0、1、2。
SD共有三种模式,分别是传输模式,SPI模式,1位模式和4位SD模式,本实验是基于SD卡的SPI模式。
2.4音频解码器
音频解码器一般分为两类,一类是纯音频解码器,另一类是AV影音解码器。纯音频解码器也可被称做D/A转换器,即把数字音频转换成模拟音频信号,许多播放设备去掉驱动光盘的部分就是纯音频解码器[12]。AV影音解码器就是把音频信息解码后,再经D/A转换后供功率放大重放,例如CD机,DVD机等家用播放设备就是使用的AV影音解码器 [13]。
2.5液晶显示器
定义:通常,我们看到的平面超薄的各种显示设备,基本上运用的就是液晶显示器(简称LCD)。
优点:液晶显示器的功耗很低,体积可以非常小,重量与同类屏幕比很轻,屏幕薄,辐射低,有益健康,对电压的要求低,在显示器中的优点众多[14]。
种类:
按分子排列分类,可分为如下几种:
TN:扭曲向列型,是市面上运用最广的显示器模式,本次设计运用的就是此型号。
STN:超扭曲向列型,分子扭转角度为180度或270度。由于对比度大,显示效果更优越[15]。
DSTN:双层超扭曲向弄列型,画面比其他型号更加细腻。
第三章 系统总体方案设计
3.1设计目标
本文采用STM32F103作为微控制器,充分结合VS1053音频解码芯片,SD卡存储器,LCD液晶显示屏等外围设备,使MP3拥有录音/音乐播放和暂停、歌曲名显示、音量调节、上一首/下一首等多种功能。
3.2设计原理
3.2.1 微处理器工作原理
图3-1 STM32-F103-C8T6引脚图
ARM,是一类微处理器,也是一个公司的名字。ARM公司在1991年成立后高速发展,现在以占领75%以上的RISC市场份额。2004年,ARM公司推出了CortexM3内核,STM32系列微控制器是基于CortexM3内核,而专门为嵌入式应用而开发的。
STM32是一个通用微控制器系列产品,拥有齐全的闪存容量配置,提供16~1024KB的大小。采用2~3.6V电压,功耗十分低,在相同性能的情况下,比同类产品低一半以上。STM32的性能十分出色,比一般同级别的产品快很多。STM32的应用面广,有完整的开发支持产业环境,因此,在很多的电子电器产品中都会使用STM32,MP3就是其中之一。整个系列的引脚和外设都保持了不错的兼容性。STM32系列产品经过不断进步,不断提高性能与Thumb-2指令集,而且保持了业界最低功耗水平。在拥有高度的集成性能的同时,也保持了开发的简易性。
STM32系列处理器是基于ARM Cortex-M内核的32位RISC系列处理器,ARM cortex-M是基于ARM7v架构的ARM内核[16]。ARM Cortex M3是ARM公司最新推出的基于ARMv7体系架构的处理器核,具有更高的性能、更低的成本、低功耗、低价格的特点,专门为嵌入式应用领域设计的处理器内核。
STM32系列的优点从上文中可以显而易见的发现,因此,本设计也是以STM32C8T6作为微控制器。电源设计是一个系统设计中的关键部分,对于一个电子产品来说,必须要拥有一个能保持系统稳定,合适整个系统的电源。如图3-2所示,在本次设计中,STM32的电压由DC-5V从USB取电提供给整个系统,其中STM32微控制器的5V接口接5V电源,3.3V接口通过电源转换芯片NPC1117转换为3.3V电压为其供电。
图3-2电源电路
如图3-3所示,所有STM32内部都含有复位电路。当通电后,电容C12会在几毫秒内充满电,此时电阻R8电压为0,处于工作状态,当按下按钮后,会放电,电阻上拥有电压,单片机复位。
图3-3复位电路
如图3-4所示,STM32-F103-C8T6含有2个时钟源,一个是高速内部时钟,一个是低速外部时钟。高速内部时钟接OSC脚,频率为8MHZ。低速外部时钟接PC14,PC15脚,频率为32768HZ。
图3-4 晶振电路
如图3-5所示,STM32-F103-C8T6内部还含有BOOT电路,BOOT包含BOOT1和BOOT0,当BOOT1=x BOOT0=0 时用户闪存启动,这是正常的工作模式(上电运行程序或者 JTAG 方式下载程序时候使用)。当BOOT1=0 BOOT0=1时从系统存储器启动,这种模式启动的程序功能由厂家设置。(一般用于 ISP 下载时候使用)。当BOOT1=1 BOOT0=1 从内置 SRAM 动,这种模式可以用于调试。
图3-5 BOOT电路
3.2.2音频模块介绍
如图3-6所示,本系统使用ATK-VS1053 MP3模块作为本系统的音频模块,VS1053B是单片OGG音频解码器,及IMA编码器和用户加载的编码器。ATK-VS1053 MP3模块由几部分组成:一个高性能的解码芯片VS1053B,一个传声器,一个电源指示灯,一个3.3V稳压芯片,一个1.8V稳压芯片,一路IIS输出接口,一路电源及SPI通信接口,还有一路LINE IN接口和一路音频输出接口(可插耳机) [17]。
其具有如下特性,VS1053支持: MP3/WMA/OGG/WAV/FLAC/MIDI/AAC等音频格式的解码,并支持:OGG/WAV 音频格式的录音,且支持高低音调节,自带咪头,可直接录音,无需外接麦克风,仅需外部提供一路3.3V或5V电路就能正常工作,十分适合本设计 [18]。
图3-6 VS1053芯片
如图3-7所示,本设计使用AMS1117-3.3芯片稳定电压,因此ATK-VS1053 MP3模块仅需要5V电源就能够正常工作。
图3-7电源稳压电路
如图3-8所示,ATK-VS1053 MP3模块内部含有频率为12.288MHZ的晶振电路。
图3-8 晶振电路
如图3-9所示,ATK-VS1053 MP3模块内部含有音频输出接口电路(连接耳机)。
图3-9音频输出电路
如图3-10所示,ATK-VS1053 MP3模块不仅含有音乐播放功能,还含有一个传声器,能进行录音功能。
图3-10传声器电路
3.3模块设计方案对比
方案一:本次设计可以用 C51 单片机实现,单片机的使用范围广,操作与编程简单,算法更容易实现。但是 C51的本身性能不够出色。由于本次设计还需要拥有录音功能和外接SD模块,对外围电路来说,比较复杂,就算实现功能,以单片机的性能来说,音质也无法保证。如果要保证设计性能的出色,那么程序和外接电路会很复杂。
方案二:本次设计可以用 SPCE061A 单片机实现,此单片机含有8 路 ADC和2 路 DAC,且集成开发环境中,配有很多语音播放函数,用 SPCE061A 实现语音播放相对方便[19]。但是SPCE061A拥有的内存太低,对于一个MP3来说必需要有较多的内存,且功耗较高,对于一个小型电子设备来说也无法接受。
方案三:此方案采用STM32F103 ARM板实现,STM32是一个通用微控制器系列产品,拥有齐全的闪存容量配置,提供16~1024KB的大小[19]。采用2~3.6V电压,功耗十分低,在相同性能的情况下,比同类产品低一半以上。STM32的性能十分出色,比一般同级别的产品快很多。STM32的应用面广,有完整的开发支持产业环境,因此,在很多的电子电器产品中都会使用STM32,MP3就是其中之一。另外,比较方便的是该板支持硬件仿真,通过Jlink仿真器可以方便实现在线逐步调试,这大大方便了系统的开发与调试工作[20]。
第四章 硬件电路设计
本系统在硬件上分为5个模块:微控制器STM32F103、存储模块SD卡、音频解码模块VSl053、控制摇杆模块和液晶显示屏。
MP3播放功能模块的工作分为两个部分:
第一部分是播放MP3歌曲播放,该功能开始前需要进行mp3初始化,MP3的初始化就是要所有指令从一个初始化开始,为操作者的下一指令做准备。当SPI硬件层经历过初始化释放出SPI总线时,在SD卡准备完成后,会从SD卡读取一个数据包的内容,即从SD卡内读出里面的歌曲或录音。当音频解码器开始工作后,MCU会一直操作音频解码模块播放歌曲,除非操作者主动更改命令。
第二部分则是与按键结合起来,主要是操作者通过按键对MP3进行控制。按键操作对MP3播放过程的控制包括选择录音/音乐播放和暂停、音量调节、上一首/下一首等多种功能。
4.1系统硬件设计平台
本系统以STM32F103为平台,进行MP3播放器的设计。
4.2总体架构设计
图4-1 STM32-F103-C8T6引脚图
如图4-1所示,STM32F103C8T6的多个引脚与各个模块相连,是这个MP3的处理器,STM32传递信息给各个模块,使各个模块能够相互配合工作,使整个系统能够运行起来。STM32的1、23、39、42管脚接地。41,40管脚接5v电源。22管脚接3.3v电源。整个系统通过电源插口连接电源。
4.3模块化电路设计
4.3.1 音频解码模块
如图4-2所示音频解码模块VS1053共分为VS1(电源及SPI通信接口)与VS2(IIS输出接口)两部分。
VS1(电源及SPI通信接口)的引脚分别为RST、DREQ、MISO、MOSI、SCK、XDCS、XCS,其中RST与STM32的8脚(PB10)相连,DERQ与STM32的2脚(PA8)相连,MISO与STM32的12脚(PA6)相连,MOSI与STM32的11脚(PA7)相连,SCK与STM32的13脚(PA5)相连,XDC5与STM32的9脚(PB1)相连,XCS与STM32的10脚(PB0)相连。
VS2(IIS输出接口)因不需要接输出模块,所以部分不需要连接。
音频模块使音乐与录音能够顺利播放,还需负责音量大小等功能,音乐播放是整个系统最重要的功能,因此音频模块格外重要。音频模块需要正确读出从SD卡输出的指令,播放正确歌曲和录音,还要保证音质,确保不会出现噪音,如果音频解码模块出现错误,整个设计会无法实现。设计最终完成的MP3音量为220,低音上限为60HZ,低音提升为15db,高音下限10KHZ,高音提升为10.5db.
图4-2音频模块
4.3.2 LCD模块
如图4-3所示。LCD模块即液晶显示屏模块, LCD共包含1~7管脚,其中1脚(GND),2脚(BL)接地。3~7脚与STM32相连。
其中,LCD的3脚(L_LCK)与STM32的29脚(PB5)相连,4脚(L_DIN)与STM32的28脚(CH1)相连,5脚(L_DC)与STM32的27脚(CH2)相连,6脚(L_CE)与STM32的26脚(CH3)相连,7脚与STN32的25脚(L_RST)相连。
LCD需要经过三个步骤才能正常工作,分别是液晶初始化,设置当前坐标和显示字符。液晶初始化即把所有指令从一个初始化开始,为LCD的下一指令做准备,使LCD能够进行下一步操作。设置当前坐标即为字符与图标设置一个坐标,使字符与图标能在合适位置显示出来。显示字符不仅指把字符与图标显示出来,还指设置好字符与图标的格式和大小。LCD模块使歌名和图标、汉字、音量大小等能从液晶屏上显示出来,让顾客能够直观的看到,而这是产品投入市场竞争所必不可少的,可以说,MP3之所以能够在世界范围内流行,液晶显示屏的功劳毋庸置疑。
图4-3LCD5110显示屏
4.3.3 SD模块
如图4-4所示。存储模块分为SD存储卡与闪存W25Q两部分。
其中 SD卡的1脚(DAT2)不接任何东西,2脚(CD/DATB)接STM32的7脚(PB11),3脚(CMD)接STM32的3脚(PB15),4脚(VDD)接电源,5脚(CLK)接STM32的5脚(PB13),6脚(VSS)接电容 ,7脚(DAT0)脚STM32的4脚(PB14)。
W25Q模块1脚(CS)接STM32的6脚(PB12),2脚(S0)接STM32的4脚(PB14),3脚(WP)接电源,4脚(GND)接地,5脚(SI)接STM32的4脚(PB14),6脚(CLK)接stm32的5脚(PB15),7脚(HOCD)与8脚(VCC)共同接电源。
系统运行时SD卡需先初始化,此时SD卡为低速模式。SD卡运行正常时,此时SD卡为高速模式。当SPI硬件层经历过初始化释放出SPI总线时,会选择SD卡,并等待卡准备完成。当SD卡准备完成后,会从SD卡读取一个数据包的内容,即从SD卡内读出里面的歌曲或录音。存入歌曲或录音的流程与上述相似。内存模块是消费者能够随时听到大量歌曲,这是MP3播放器的出彩之处。
图4-4 SD卡存储模块
4.3.4 按键控制模块
按键模块共有4个按键K1,K2,K3,K4,它们分别与STM32的18脚(PA0)、17脚(PA1)、16脚(PA2)、15脚(PA3)相连。
按键模块使消费者能够根据自己的意愿自由的选择歌曲、读取录音、调节音量,使产品能够获得消费者的青睐,是整个系统的重要组成部分。
各个模块都有自己独一无二的作用,都是十分重要的,各个模块的互相配合,才使得本次实验能够顺利完成。
第五章 软件程序设计
5.1 系统软件开发平台
STM32是一个通用微控制器系列产品,拥有齐全的闪存容量配置与出色的性能。STM32系列产品经过不断进步,不断提高性能与Thumb-2指令集,而且保持了业界最低功耗水平。在拥有高度的集成性能的同时,也保持了开发的简易性。但是目前能够支持Cortex-M3架构的开发工具比较少,包括SDT、ADS1.2等开发工具都不支持。keil是目前性价比最高的支持Cortex-M3处理器的开发工具。故本次设计的软件平台是建立在软件keil µVision5之上的。
5.2整体软件系统流程图
如图5-1所示,整个软件系统共分为三个部分,分别是MP3初始化程序、MP3播放程序、SD卡存储程序。MP3经过初始化后,LCD显示屏开始工作。MP3播放程序开始执行后,文件解码程序与按键控制程序开始执行。SD卡存储程序开始工作后,音乐才能正常播放。
图5-1 系统流程图
5.3 MP3播放流程设计
如图5.3所示,当MP3连接电源后会开始ARM的初始化,当初始化结束后会等待使用者的操作命令,当音乐开始播放后会等待中断命令。这里使用了两个缓冲器,一个用于把歌曲存放到SD卡中,另一个从SD卡中读出所需要的数据,两个缓冲区相互配合使歌曲能够进行储存和播放。操作以按键模块进行,操作的过程也会从液晶显示模块显示出来。具体流程如图5-2所示
图5-2 Mp3播放流程图
5.4液晶显示设计
如图5-3所示,液晶显示开始后,需先经过液晶初始化,即把所有指令从一个初始化开始,为LCD的下一指令做准备,使LCD能够进行下一步操作。之后需要根据使用者的意愿显示出操作过程,具体流程如下图所示。
图5-3:液晶显示流程图
第六章 总结与展望
6.1课题总结
MP3 作为高质量音乐压缩标准, 给音频产业带来了具大的冲击[21]。MP3 技术由于其特有的优势,在产品研发出来后高速发展,成为了随处可见的电子产品,使消费者能够便捷的欣赏音乐。随着时代的进步和MP3播放器其技术的发展,人们对MP3播放器的要求也越来越高,生产商们在MP3播放器的各个领域做了很多努力,便携式多功能 MP3 播放器的应用也越来越具有实际应用价值和潜在的市场要求。然而,曾经红极一时的MP3播放器现在的销量却开始逐年下降。虽然目前市面上仍有很多面向高端用户且拥有顶级音质的MP3播放器产品,但是由于现在的智能手机里都含有音乐播放功能,大量消费者在拥有智能手机后不再购买MP3播放器,因此MP3播放器的销售量受到了严重影响。MP3播放器开始慢慢退出历史舞台,它的现状是严峻的,必需推陈出新才能绝地反击,重新恢复市场。
6.2系统测试
本系统通电后会进入一个LOGO界面,分别表示录音和音乐。当选择录音后,会进入新的界面让你选择录音或播放录音,选择录音会把所录得声音保存起来,选择播放录音会进入新页面让你选择播放哪个录音。
当选择音乐后,会进入新的界面让你选择播放何首音乐。当确定后能进入音乐播放界面,不仅能听音乐,还能显示出歌曲名。所有操作都由四个摇杆控制,这四个摇杆分别控制音乐的播放与暂停、返回商议界面、切换上一首和加音量、切换下一首和减音量并能保存录音。
本系统操作十分简便,预期的功能都已实现,系统的测试结果让人欣慰。
6.3 进一步开发的展望
本次设计虽然完成了MP3播放器设计,但是仍有不小的遗憾,为了设计出更加拥有竞争里的产品可以在接下几来个部分进行优化:
1.小巧的MP3播放器的外形更加受到消费者的欢迎,本次设计的MP3的外形不够小巧,需要想办法缩小本次设计的外形。
2.本次设计的MP3需要连接插座供电,这是很大的缺点,可以改进产品,使用电池进行供电。
3.本次设计的MP3外形不够美观,缺乏市场竞争力,可以想办法改进MP3的外形,使其更美观。
由于智能手机的竞争,单独的MP3的销量近几年持续降低, MP3渐渐无法满足市场需求,必需不断创新,设计出具有核心竞争力的产品才能改变现状。
参考文献
[1]百度百科.ARM[EB/OL].http://baike.baidu.com/subview/11200/51519.htm, 2015.11.27
[2]百度百科.MP3播放器[EB/OL].http://baike.baidu.com/view/61738.htm,2015.11.23
[3]何谐. FAT32文件系统在Cortex-M3音乐播放器中的应用[J]. 单片机与嵌入式系统应用,2013,(6).
[4]欧阳骏,李英芬,王小强.疯狂STM32实战讲学录[M].中国水利水电出版社,2013.12.1
[5]颜锐,谭周文. 基于STM32的多功能MP3设计[J]. 湖南人文科技学院学报,2013,(4)
[6] 肖广兵.ARM嵌入式开发实例:基于STM32的系统设计[M]. 电子工业出版社 2013.4
[7] 陈志旺:STM32嵌入式微控制器快速上手[M].电子工业出版社 2012.1
[8] 熊茂华,杨震伦.ARM9嵌入式系统设计与开发应用[M].清华大学出版社,2011.6
[9]赵鹏. 基于嵌入式Linux的MP3播放器的设计与实现[J]. 现代计算机(专业版),2011,(5).
[10]马忠梅,李善平,康慨,叶楠编.ARM&Linux嵌入式系统教程[M]。北京航天航空大学出版社,2004年
[11] 喻金钱,喻斌.STM32F系列ARM CORTEX-M3核微控制器开发与应用[M].清华大学出版社 2011.4
[12]丁文龙,李志军.ARM嵌入式系统基础与开发教程[M]。北京大学出版社 2010.6.1
[13]赖晓晨、原旭、孙宁编.嵌入式系统程序设计[M]。清华大学出版社,2010.5
[14]李宁.基于MDK的STM32处理器开发应用[M]。北京航空航天大学出版社,2008.7
[15] 郑伟. MP3/MP4播放器维修从入门到精通[M]. 人民邮电出版社 2009.6
[16] 百度百科.ARM[EB/OL].http://baike.baidu.com/subview/11200/51519.htm,
[17] 王永虹,徐炜, 赫立平.STM32系列ARM CORTEX-M3微控制器原理与实践[M].北京航空航天大学出版社 2008.7
[18] 王伟蓉,沈晔. 使用耳机学生听力损失的原因分析与干预评价[J]. 健康教育与健康促进,2007,(1).
[19]薛小铃,刘志群,贾俊荣.单片机接口模块应用与开发详例[M].北京航空航天大学出版社,2010.5
[20]肖敏,刘宇红. SD卡硬件加密在工业MP3中的实现[J]. 通信技术,2012,(11).
[21] 吕琛,王小雪,杨会成. MP3解码的优化及实现[J]. 合肥工业大学学报,2011,(8).
致谢
这次毕业设计让我学会了很多,是我整个大学所学的总结,让我回顾了所学的知识,加强了自己的设计能力,锻炼了自己,也对接下来就业有很大的帮助,能够完成这次设计我需要感谢一些人的帮助。
首先感谢我的指导老师顾妍老师对我的悉心指导,从选中这次毕业设计的题目开始到最终结稿,这期间经过了开题报告,文献综述,论文的完成和实物的设计,其中的每一步都离不开她的细心指导和不懈支持,她不仅解答我在设计过程中的疑惑,还给予了我很多方面的支持,并督促我毕业设计的完成。她严谨的态度和良好的工作作风让我佩服,为我今后的学习、工作道路上树立了榜样。
还要感谢我的几位室友,他们在整个毕业设计的过程中都给了我很大帮助,我在编程与设计过程中遇到了许多问题,都是他们为我解答的,在他们的帮助下整个系统才能得以顺序完成。
最后感谢所有关心和帮助过我的老师与同学们。
附录
附录1:实物图
附录2:部分源程序
#include "stm32f10x.h"
#include "delay.h"
#include "lcd.h"
#include "key.h"
#include "count.h"
#include "flash.h"
#include "sd.h"
#include "malloc.h"
#include "stdio.h"
#include "exfuns.h"
#include "ff.h"
#include "string.h"
#include "fontupd.h"
#include "text.h"
#include "tim.h"
#include "ebook.h"
#include "vs10xx.h"
#include "mp3player.h"
/*
//
//
//
//
*/
u8 all_flag=0x00;
extern u16 BL_TIM;
// u8 val[5];
int main(void)
{
// u8 cal=0;
u8 Key_value;
u8 i;
u8 page=1;
delay_init();
NVIC_Configuration();
TIM3_Init(699,7199);
Key_Init();
LCDInit();
mem_init(SRAMIN);
VS_Init();
VS_Sine_Test();
Write_CharStringAt(0,5,"RAM:",0,2); Write_IntValue(24,5,mem_perused(SRAMIN),0,2); Write_CharAt(40,5,'%',0,2);
SPI_Flash_Init();
delay_ms(500);
exfuns_init();
f_mount(0,fs[0]);
f_mount(1,fs[1]);
Write_CharStringAt(0,1,"FATFS......OK!",0,2);
delay_ms(500);
Write_CharStringAt(0,5,"RAM:",0,2); Write_IntValue(24,5,mem_perused(SRAMIN),0,2); Write_CharAt(40,5,'%',0,2);
while(SD_Initialize())
{
Write_CharStringAt(0,2,"SD......ERROR!",0,2);
delay_ms(500);
Write_CharStringAt(0,2," ",0,2);
delay_ms(500);
}
Write_CharStringAt(0,2,"SD.........OK!",0,2);
delay_ms(500);
while(font_init())
{
Write_CharStringAt(0,3,"FONT........",0,2);
while(SD_Initialize());
{
update_font(0);
}
}
Write_CharStringAt(0,3,"FONT.......OK!",0,2);
delay_ms(500);
Cls_LCD();
Display_icon(page);
while(1)
{
Key_value=Key_Scan(0);
switch (Key_value)
{
case 4:
BL_TIM=0;GPIO_ResetBits(GPIOC,GPIO_Pin_13);
if(page==1)
{
recoder_play_();
Cls_LCD();
Display_icon(page);
}
else if(page==2)
{
mp3_play();
Cls_LCD();
Display_icon(page);
}
break;
case 2:
BL_TIM=0;GPIO_ResetBits(GPIOC,GPIO_Pin_13);
page++;
if(page>2)page=1;
Display_icon(page);
break;
case 3:
BL_TIM=0;GPIO_ResetBits(GPIOC,GPIO_Pin_13);
page--;
if(page<1)page=2;
Display_icon(page);
break;
}
i++; if(i>100) {i=0; Write_CharStringAt(0,5,"RAM:",0,2); Write_IntValue(24,5,mem_perused(SRAMIN),0,2); Write_CharAt(40,5,'%',0,2);}
}
}
