ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:669KB ,
资源ID:2491302      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2491302.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于STM32-MP3播放器设计-(2).doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于STM32-MP3播放器设计-(2).doc

1、 基于STM32 MP3播放器设计 学院:XXXXXXXXXXX 专业班机:XXXXXXXX 姓名XXXXX 学号:XXXXXXXX 1.1 本课题的提出及意义 MP3音频播放器的最合理工作速度为30Mips,而一个典型的视频媒体播放器的理想速度则为175Mips,所以提高MP3的工作速度,以及改善MP3的音质是最关键的,也是亟待解决的问题。  MP3是一种典型的嵌入式设备,而现在市场上比较常见的是闪存式MP3。由于闪存式MP3的容量限制,使它存储歌曲数目较少,在功能上也很难实现多样

2、化[1]。而硬盘式MP3的多功能及大容量,也必将受到不少消费者的喜爱。   MP3播放器一般分成3个部分:CPU、MP3硬件解码器存储器。其中可以将前两部分集成在一起,即带MP3硬件解码器的CPU;或将后两部分集成在一起,即集成硬件解码、D/A转换及音频输入。存储器可以是Flash存储器或硬盘[2]。通过用MP3编码技术,可以得到大约12:1压缩的有损音乐信号。 1.2 研究现状 MP3全称是MPEG Layer 3,狭义的讲就是以MPEG Layer 3标准压缩编码的一种音频文件格式。自韩国世韩(Seahan)公司1998年推出世界上第一台MP3随身听以来, MP3播放器以其小巧的外形

3、不错的近乎于CD的音质,前卫的功能,越来越受到消费者的青睐,也就成为业界甚至大众媒体关注的一个热门话题[3]。在市场消费刺激下,各大公司纷纷推出了自己的mp3播放器产品,IC供应商提供了众多的MP3解码芯片及其解决方案。除了Micronas方案(MAS3507+DAC3550),还有台湾创品方案(T33510,T33520)、美国SigmaTel方案(STMP3400)和TI的DA-250解决方案。这使mp3播放器的研制与生产变得更加容易,成本也大大降低,市场更加广阔 [4]。 2 硬件设计 2.1整体方案 综述 本设计由STM32最小系统,SD卡的读取模块,TFT控制模块,外扩FL

4、ASH模块,触摸屏模块,串口通信模块组成。将解决SD卡的读取以及使用FATFS文件系统来对SD卡操作,TFT液晶屏的控制及触摸屏原理、还有人机界面UI的实现等问题[5]。系统架构如图2-1所示。 基本设计流程是使用STM32系列微控制器,采用FATFS文件系统方式读取SD卡中音乐文件数据,将所读取的数据流传输给CPU软件解码(helix解码库)解码编程PCM音频,通过I2S送到ADC芯片 PCM1770音频输出驱动耳机实现音乐播放功能。液晶屏显示歌曲的实时播放状态,功能按扭 和控制歌曲的播放、停止、声音增大、减小等。同时,TFT触摸屏则用于功能按扭 和人机交换界面的输入。 2.2系统架构图

5、 图 2-1 系统架构图 2.3硬件模块 2.3.1处理器 一、芯片介绍。 CortexM3是ARM公司最新推出的基于ARMv7体系架构的处理器核,具有高性能、低成本、低功耗的特点,专门为嵌入式应用领域设计。 ARMv7 架构采用了Thumb2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案完整的代码兼容性。 Thumb2技术比纯ARM代码少使用31%的内存,减小了系统开销,同时能够提供比Thumb技术高出38%的性能[7]。 在中断处理方面,CortexM3集成了嵌套向量中断控

6、制器NVIC(Nested Vectored Interrupt Controller)。NVIC是CortexM3处理器的一个紧耦合部分,可以配置1~240个带有256个优先级、8级抢占优先权的物理中断,为处理器提供出色的异常处理能力。同时,抢占(Pre emption)、尾链(Tail chaining)、迟到技术(Late arriving)的使用,大大缩短了异常事件的响应时间。CortexM3异常处理过程中由硬件自动保存和恢复处理器状态,进一步缩短了中断响应时间,降低了软件设计的复杂性。DP)或串行JTAG调试端口(SWJDP,允许JTAG或SW协议)使用。 二、引脚图。

7、 图2-2 STM32F103ZET6 微控制器引脚分布图 2.3.3 SD卡模块 一、SD卡介绍。 STM32微处理器 CPU ( STM32F103ZET6 )具有一个 SDIO 接口。SD/SDIO/MMC 主机接口可以支持 MMC 卡系统规范 4.2 版中的 3 个不同的数据总线模式:1 位(默认)、4 位和 8 位。在 8 位模式下,该接口可以使数据传输速率达到 48MHz,该接口兼容 SD 存储卡规范 2.0 版[12]。 二、SD卡原理图。 图2-3 SD卡接口电路 .

8、 图2-4 SD卡上电识别流程图 2.3.3 LCD显示模块 一、LCD控制器。 LCD,即液晶显示器,因为其功耗低、体积小,承载的信息量大,因而被广泛用于信息输出、与用户进行交互,目前仍是各种电子显示设备的主流。因为 STM32 内部没有集成专用的液晶屏和触摸屏的控制接口,所以在显示面板中应自带含有这些驱动芯片的驱动电路(液晶屏和触摸屏的驱动电路是独立的),STM32 芯片通过驱动芯片来控制液晶屏和触摸屏。 二、 FSMC框图结构。 FSMC(flexible static memory controller),译为静态存储控制器。可用于ST

9、M32 芯片控制 NOR FLASH、PSRAM、和 NAND FLASH 存储芯片。我们是使用FSMC的NOR\PSRAM 模式控制 LCD。其结构如图2-5所示。 .. 图2-5 FSMC框图结构框图 2.3.4触摸屏模块 一、触摸屏感应原理。 触摸屏常与液晶屏配套使用,组合成为一个可交互的输入输出系统。除了熟悉的电阻、电容屏外,触摸屏的种类还有超声波屏、红外屏。触摸屏的基本原理为分压,它由一层或两层阻性材料组成,在检测坐标时,在阻性材料的一端接参考电压 Vref,另一端接地,形成一个沿坐标方向

10、的均匀电场。当触摸屏受到挤压时,阻性材料与下层电极接触,阻性材料被分为两部分,因而在触摸点的电压,反映了触摸点与阻性材料的 Vref 端的距离,而且为线性关系,而该触点的电压可由 ADC 测得。更改电场方向,以同样的方法,可测得另一方向的坐标。 二、TSC2046触摸屏控制器。 TSC2046 是专用在四线电阻屏的触摸屏控制器,MCU 可通过 SPI 接口向它写入控制字,由它测得 X、Y 方向的触点电压返回给 MCU。如图2-6所示 图2-6 TSC2046 与电阻屏的连接图 2.3.5 PCM音频模块 PCM1770

11、器件是CMOS,单片,集成电路包括立体声数字 - 模拟转换器,耳机电路。数据转换器采用TI的增强型多级架构,它采用噪声整形和多值振幅量化,实现出色的动力性能和改进的耐时钟抖动。该PCM1770器件接受多个行业标准音频数据格式,16至24位数据,左对齐,I2S等,提供轻松连接到音频DSP和解码器。采样率高达50 kHz的支持。全套用户可编程功能是通过一个3线串行控制端口,支持寄存器写入功能访问。原理接线图如图2-7所示 图2-7 PCM1770连接图 3 软件设计 3.1 软件开发架构 本设计由STM32最小系统,SD卡的读取模块,TFT控制模块,触摸

12、屏模块,串口通信模块组成。将要解决SD卡的读取及使用FATFS系统对SD卡的操作、TFT液晶的控制及触摸屏原理、还有图形用户界面GUI的实现等问题[10]。架构如图3-1软件开发架构图 图3-1软件开发架构图 3.2 软件程序设计流程图 开始 系统初始化 显示屏初始化 触摸屏初始化 SD卡初始化 PCM1770初始化 MP3播放程序 触摸屏按下? 播放模式设置 读取触摸屏数据, 执行相应功能操作

13、 图3-2 程序设计流程图 本系统的程序设计流程图如图3-2所示,工作流程是:STM32从SD卡中读取音乐文件数据,将所读取的数据流传输给CPU软件解码(helix解码库)解码编程PCM音频,通过I2S送到ADC芯片 PCM1770音频输出驱动耳机实现音乐播放功能。液晶屏显示歌曲的实时播放状态,功能按扭和控制歌曲的播放、停止、声音增大、减小等。同时,TFT触摸屏则用于功能按扭和人机交换界面的输入。 音乐播放链路: 图3-3 音乐播放链路 3.3 软件代码结构 为了使代码结构清晰,方便以后的维护,代码结构设计如下: 在根目录I2S-MP3下,划分

14、为七个文件夹,分别为STARTUP、CMSIS、FWLB、USER、DOC、ff9和mp3。下面分别就七个文件夹的作用和结构进行说明,其代码目录树状结构如图3-4 所示。 图3-4 整体工程代码结构 对其进行分析: 目录名称 目录说明 STARTUP 启动文件 CMSIS M3系列通用的文件 FWLB ST 片上资源外设的驱动文件 USER

15、 用户写的驱动文件 DOC 工程说明文档 ff9 FATFS文件系统文件 mp3 音乐播放相关文件 详细代码结构 启动文件是任何处理器在上点复位之后最先运行的一段汇编程序。在我们编写的 c 语言代码运行之前,需要由汇编为 c 语言的运行建立一个合适的环境,接下来才能运行我们的程序[9]。 液晶屏驱动程序 /** * @brief lcd 初始化 * @param 无 *

16、 @return 无 */ void LCD_Init(void) { LCD_GPIO_Config(); //配置IO端口 LCD_FSMC_Config(); //LCD FSMC模式的配置 LCD_Rst(); //LCD软件复位 LCD_REG_Config(); //配置LCD初始化寄存器 } 文件系统驱动程序 /** * @brief fs 文件系统初始化 * @param 无 * @return 无 */ void Sd_fs_init(void) { /* SD卡

17、中断初始化 */ SDIO_NVIC_Configuration(); /* SD 卡硬件初始化,初始化盘符为0*/ f_mount(0,&myfs[0]); /./ff9文件库 } /* * @brief SDIO优先级配置为最高优先级 * @param 无 * @return 无 */ void SDIO_NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preemption

18、 Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init

19、NVIC_InitStructure); } 触摸屏卡驱动程序 /* * @brief 触摸模拟SPI IO 和中断 IO初始化 * @param 无 * @return 无 */ void Touch_Init(void) { GPIO_SPI_Config(); } /* * @brief 模拟SPI的GPIO配置,当SPI的4根信号线换为其他IO时, * 只需要修改该函数对应的宏定义即可。 * @param 无 * @return 无 */ void GPIO_SPI_Conf

20、ig(void) { GPIO_InitTypeDef GPIO_InitStructure; /* 开启GPIO时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, ENABLE); /* 模拟SPI的GPIO初始化*/ GPIO_InitStructure.GPIO_Pin=SPI_CLK_PIN; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz ; GPIO_InitS

21、tructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_Init(SPI_CLK_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = SPI_MOSI_PIN; GPIO_Init(SPI_MOSI_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = SPI_MISO_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz ; GPIO_Ini

22、tStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(SPI_MISO_PORT, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = SPI_CS_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(SPI_CS_PORT, &GPIO_InitStructure)

23、 /* 拉低片选,选择XPT2046 */ GPIO_ResetBits(SPI_CS_PORT,SPI_CS_PIN); //GPIO_SetBits(SPI_CS_PORT,SPI_CS_PIN); /* XPT2046 中断IO配置 */ TP_INT_GPIO_Config(); } 3.3.4 MP3驱动程序 /** * @brief player_run 运行MP3 播放器过程,内部死循环 * @param 无 * @return 无 */ void player_run(void)

24、{ char music_name[FILE_NAME_LEN]; f_mount(0, &fs); file_scan(path); //扫描文件 if(file_num == 0) { printf("\r\n no mp3 file ! "); return; //跳出本函数 } player_state = S_READY; //初始化状态 touch_even = E_NULL; //初始化事件标志 a

25、ll_page = (file_num+7)/8 ; // current_page = 1; printf("\r\n file_num =%d,all_page=%d",file_num,all_page); // PCM1770_VolumeSet(0); //调节音量 PCM1770_VolumeSet(28); lcd_list(current_page); //显示歌曲列表,第一页 while(1) // 进入死循环,根据状态切换 {

26、 if(play_index >= file_num-1) //检查play_index play_index = file_num-1; //index指向最后一个文件 else if(play_index<=0) play_index =0; even_process(); //事件处理 switch(player_state) { case S_PLAY: //播放状态 //开始play 流程 //读

27、取音频文件流程 //´打开playlist,读取音频文件名 fres = f_open (&file, "0:mp3player/playlist.txt", FA_READ); fres = f_lseek (&file, play_index*FILE_NAME_LEN); fres = f_read(&file, music_name, FILE_NAME_LEN, &rw_num); fres = f_close (&file); //获取文件名,准备解码 printf("准备播放:%s

28、 ",music_name); if(strstr(music_name,".mp3")||strstr(music_name,".MP3")) //MP3格式 { //开始MP3解码 mp3_player(music_name); } else //WAV文件格式 { //开始WAV文件播放 wav_player(music_name); } break;

29、 case S_SWITCH: //切歌状态 player_state = S_PLAY; //¸更新标志位 /* 检测要切换的歌曲是否在播放的上一页*/ if((play_index+8)/8 < current_page) { current_page--; //¸刷新当前页码 lcd_list(current_page); //刷新LCD列表 } /*检测要切换的歌曲是否在播放的下一页*/ if((play_index+8)/8 >current_page) { current_page++; //¸刷新当前页码 lcd_list(current_page); //刷新LCD列表 } break; default:break; } } } 15

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服