基于STM32MP3播放器设计说明.docx

上传人:b****7 文档编号:15861711 上传时间:2023-07-08 格式:DOCX 页数:18 大小:597.70KB
下载 相关 举报
基于STM32MP3播放器设计说明.docx_第1页
第1页 / 共18页
基于STM32MP3播放器设计说明.docx_第2页
第2页 / 共18页
基于STM32MP3播放器设计说明.docx_第3页
第3页 / 共18页
基于STM32MP3播放器设计说明.docx_第4页
第4页 / 共18页
基于STM32MP3播放器设计说明.docx_第5页
第5页 / 共18页
基于STM32MP3播放器设计说明.docx_第6页
第6页 / 共18页
基于STM32MP3播放器设计说明.docx_第7页
第7页 / 共18页
基于STM32MP3播放器设计说明.docx_第8页
第8页 / 共18页
基于STM32MP3播放器设计说明.docx_第9页
第9页 / 共18页
基于STM32MP3播放器设计说明.docx_第10页
第10页 / 共18页
基于STM32MP3播放器设计说明.docx_第11页
第11页 / 共18页
基于STM32MP3播放器设计说明.docx_第12页
第12页 / 共18页
基于STM32MP3播放器设计说明.docx_第13页
第13页 / 共18页
基于STM32MP3播放器设计说明.docx_第14页
第14页 / 共18页
基于STM32MP3播放器设计说明.docx_第15页
第15页 / 共18页
基于STM32MP3播放器设计说明.docx_第16页
第16页 / 共18页
基于STM32MP3播放器设计说明.docx_第17页
第17页 / 共18页
基于STM32MP3播放器设计说明.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于STM32MP3播放器设计说明.docx

《基于STM32MP3播放器设计说明.docx》由会员分享,可在线阅读,更多相关《基于STM32MP3播放器设计说明.docx(18页珍藏版)》请在冰点文库上搜索。

基于STM32MP3播放器设计说明.docx

基于STM32MP3播放器设计说明

 

基于STM32MP3播放器设计

 

学院:

XXXXXXXXXXX

专业班机:

XXXXXXXX

XXXXX

学号:

XXXXXXXX

1.1本课题的提出及意义

MP3音频播放器的最合理工作速度为30Mips,而一个典型的视频媒体播放器的理想速度则为175Mips,所以提高MP3的工作速度,以及改善MP3的音质是最关键的,也是亟待解决的问题。

 

MP3是一种典型的嵌入式设备,而现在市场上比较常见的是闪存式MP3。

由于闪存式MP3的容量限制,使它存储歌曲数目较少,在功能上也很难实现多样化[1]。

而硬盘式MP3的多功能及大容量,也必将受到不少消费者的喜爱。

  

MP3播放器一般分成3个部分:

CPU、MP3硬件解码器存储器。

其中可以将前两部分集成在一起,即带MP3硬件解码器的CPU;或将后两部分集成在一起,即集成硬件解码、D/A转换及音频输入。

存储器可以是Flash存储器或硬盘[2]。

通过用MP3编码技术,可以得到大约12:

1压缩的有损音乐信号。

1.2研究现状

MP3全称是MPEGLayer3,狭义的讲就是以MPEGLayer3标准压缩编码的一种音频文件格式。

自国世(Seahan)公司1998年推出世界上第一台MP3随身听以来,MP3播放器以其小巧的外形,不错的近乎于CD的音质,前卫的功能,越来越受到消费者的青睐,也就成为业界甚至大众媒体关注的一个热门话题[3]。

在市场消费刺激下,各大公司纷纷推出了自己的mp3播放器产品,IC供应商提供了众多的MP3解码芯片及其解决方案。

除了Micronas方案(MAS3507+DAC3550),还有创品方案(T33510,T33520)、美国SigmaTel方案(STMP3400)和TI的DA-250解决方案。

这使mp3播放器的研制与生产变得更加容易,成本也大大降低,市场更加广阔[4]。

2硬件设计

2.1整体方案

综述

本设计由STM32最小系统,SD卡的读取模块,TFT控制模块,外扩FLASH模块,触摸屏模块,串口通信模块组成。

将解决SD卡的读取以及使用FATFS文件系统来对SD卡操作,TFT液晶屏的控制及触摸屏原理、还有人机界面UI的实现等问题[5]。

系统架构如图2-1所示。

基本设计流程是使用STM32系列微控制器,采用FATFS文件系统方式读取SD卡中音乐文件数据,将所读取的数据流传输给CPU软件解码(helix解码库)解码编程PCM音频,通过I2S送到ADC芯片PCM1770音频输出驱动耳机实现音乐播放功能。

液晶屏显示歌曲的实时播放状态,功能按扭和控制歌曲的播放、停止、声音增大、减小等。

同时,TFT触摸屏则用于功能按扭和人机交换界面的输入。

2.2系统架构图

图2-1系统架构图

2.3硬件模块

2.3.1处理器

一、芯片介绍。

CortexM3是ARM公司最新推出的基于ARMv7体系架构的处理器核,具有高性能、低成本、低功耗的特点,专门为嵌入式应用领域设计。

ARMv7架构采用了Thumb2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案完整的代码兼容性。

Thumb2技术比纯ARM代码少使用31%的存,减小了系统开销,同时能够提供比Thumb技术高出38%的性能[7]。

在中断处理方面,CortexM3集成了嵌套向量中断控制器NVIC(NestedVectoredInterruptController)。

NVIC是CortexM3处理器的一个紧耦合部分,可以配置1~240个带有256个优先级、8级抢占优先权的物理中断,为处理器提供出色的异常处理能力。

同时,抢占(Preemption)、尾链(Tailchaining)、迟到技术(Latearriving)的使用,大大缩短了异常事件的响应时间。

CortexM3异常处理过程中由硬件自动保存和恢复处理器状态,进一步缩短了中断响应时间,降低了软件设计的复杂性。

DP)或串行JTAG调试端口(SWJDP,允许JTAG或SW协议)使用。

二、引脚图。

图2-2STM32F103ZET6微控制器引脚分布图

2.3.3SD卡模块

一、SD卡介绍。

STM32微处理器CPU(STM32F103ZET6)具有一个SDIO接口。

SD/SDIO/MMC主机接口可以支持MMC卡系统规4.2版中的3个不同的数据总线模式:

1位(默认)、4位和8位。

在8位模式下,该接口可以使数据传输速率达到48MHz,该接口兼容SD存储卡规2.0版[12]。

二、SD卡原理图。

图2-3SD卡接口电路

.

 

图2-4SD卡上电识别流程图

2.3.3LCD显示模块

一、LCD控制器。

LCD,即液晶显示器,因为其功耗低、体积小,承载的信息量大,因而被广泛用于信息输出、与用户进行交互,目前仍是各种电子显示设备的主流。

因为STM32部没有集成专用的液晶屏和触摸屏的控制接口,所以在显示面板中应自带含有这些驱动芯片的驱动电路(液晶屏和触摸屏的驱动电路是独立的),STM32芯片通过驱动芯片来控制液晶屏和触摸屏。

2、FSMC框图结构。

FSMC(flexiblestaticmemorycontroller),译为静态存储控制器。

可用于STM32芯片控制NORFLASH、PSRAM、和NANDFLASH存储芯片。

我们是使用FSMC的NOR\PSRAM模式控制LCD。

其结构如图2-5所示。

..

图2-5FSMC框图结构框图

2.3.4触摸屏模块

一、触摸屏感应原理。

触摸屏常与液晶屏配套使用,组合成为一个可交互的输入输出系统。

除了熟悉的电阻、电容屏外,触摸屏的种类还有超声波屏、红外屏。

触摸屏的基本原理为分压,它由一层或两层阻性材料组成,在检测坐标时,在阻性材料的一端接参考电压Vref,另一端接地,形成一个沿坐标方向的均匀电场。

当触摸屏受到挤压时,阻性材料与下层电极接触,阻性材料被分为两部分,因而在触摸点的电压,反映了触摸点与阻性材料的Vref端的距离,而且为线性关系,而该触点的电压可由ADC测得。

更改电场方向,以同样的方法,可测得另一方向的坐标。

二、TSC2046触摸屏控制器。

TSC2046是专用在四线电阻屏的触摸屏控制器,MCU可通过SPI接口向它写入控制字,由它测得X、Y方向的触点电压返回给MCU。

如图2-6所示

 

图2-6TSC2046与电阻屏的连接图

 

2.3.5PCM音频模块

PCM1770器件是CMOS,单片,集成电路包括立体声数字-模拟转换器,耳机电路。

数据转换器采用TI的增强型多级架构,它采用噪声整形和多值振幅量化,实现出色的动力性能和改进的耐时钟抖动。

该PCM1770器件接受多个行业标准音频数据格式,16至24位数据,左对齐,I2S等,提供轻松连接到音频DSP和解码器。

采样率高达50kHz的支持。

全套用户可编程功能是通过一个3线串行控制端口,支持寄存器写入功能访问。

原理接线图如图2-7所示

图2-7PCM1770连接图

 

3软件设计

3.1软件开发架构

本设计由STM32最小系统,SD卡的读取模块,TFT控制模块,触摸屏模块,串口通信模块组成。

将要解决SD卡的读取及使用FATFS系统对SD卡的操作、TFT液晶的控制及触摸屏原理、还有图形用户界面GUI的实现等问题[10]。

架构如图3-1软件开发架构图

 

图3-1软件开发架构图

 

3.2软件程序设计流程图

图3-2程序设计流程图

本系统的程序设计流程图如图3-2所示,工作流程是:

STM32从SD卡中读取音乐文件数据,将所读取的数据流传输给CPU软件解码(helix解码库)解码编程PCM音频,通过I2S送到ADC芯片PCM1770音频输出驱动耳机实现音乐播放功能。

液晶屏显示歌曲的实时播放状态,功能按扭和控制歌曲的播放、停止、声音增大、减小等。

同时,TFT触摸屏则用于功能按扭和人机交换界面的输入。

音乐播放链路:

图3-3音乐播放链路

3.3软件代码结构

为了使代码结构清晰,方便以后的维护,代码结构设计如下:

在根目录I2S-MP3下,划分为七个文件夹,分别为STARTUP、CMSIS、FWLB、USER、DOC、ff9和mp3。

下面分别就七个文件夹的作用和结构进行说明,其代码目录树状结构如图3-4所示。

图3-4整体工程代码结构

对其进行分析:

目录名称目录说明

STARTUP启动文件

CMSISM3系列通用的文件

FWLBST片上资源外设的驱动文件

USER用户写的驱动文件

DOC工程说明文档

ff9FATFS文件系统文件

mp3音乐播放相关文件

详细代码结构

启动文件是任何处理器在上点复位之后最先运行的一段汇编程序。

在我们编写的c语言代码运行之前,需要由汇编为c语言的运行建立一个合适的环境,接下来才能运行我们的程序[9]。

液晶屏驱动程序

/**

*brieflcd初始化

*param无

*return无

*/

voidLCD_Init(void)

{

LCD_GPIO_Config();//配置IO端口

LCD_FSMC_Config();//LCDFSMC模式的配置

LCD_Rst();//LCD软件复位

LCD_REG_Config();//配置LCD初始化寄存器

}

文件系统驱动程序

/**

*brieffs文件系统初始化

*param无

*return无

*/

voidSd_fs_init(void)

{

/*SD卡中断初始化*/

SDIO_NVIC_Configuration();

/*SD卡硬件初始化,初始化盘符为0*/

f_mount(0,&myfs[0]);/./ff9文件库

}

/*

*briefSDIO优先级配置为最高优先级

*param无

*return无

*/

voidSDIO_NVIC_Configuration(void)

{

NVIC_InitTypeDefNVIC_InitStructure;

/*ConfiguretheNVICPreemptionPriorityBits*/

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(&NVIC_InitStructure);

}

触摸屏卡驱动程序

/*

*brief触摸模拟SPIIO和中断IO初始化

*param无

*return无

*/

voidTouch_Init(void)

{

GPIO_SPI_Config();

}

/*

*brief模拟SPI的GPIO配置,当SPI的4根信号线换为其他IO时,

*只需要修改该函数对应的宏定义即可。

*param无

*return无

*/

voidGPIO_SPI_Config(void)

{

GPIO_InitTypeDefGPIO_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_InitStructure.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_InitStructure.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);

/*拉低片选,选择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.4MP3驱动程序

/**

*briefplayer_run运行MP3播放器过程,部死循环

*param无

*return无

*/

voidplayer_run(void)

{

charmusic_name[FILE_NAME_LEN];

f_mount(0,&fs);

file_scan(path);//扫描文件

if(file_num==0)

{

printf("\r\nnomp3file!

");

return;//跳出本函数

}

player_state=S_READY;//初始化状态

touch_even=E_NULL;//初始化事件标志

all_page=(file_num+7)/8;//

current_page=1;

printf("\r\nfile_num=%d,all_page=%d",file_num,all_page);

//PCM1770_VolumeSet(0);//调节音量

PCM1770_VolumeSet(28);

lcd_list(current_page);//显示歌曲列表,第一页

while

(1)//进入死循环,根据状态切换

{

if(play_index>=file_num-1)//检查play_index

play_index=file_num-1;//index指向最后一个文件

elseif(play_index<=0)

play_index=0;

even_process();//事件处理

switch(player_state)

{

caseS_PLAY:

//播放状态

//开始play流程

//读取音频文件流程

//´打开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",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;

caseS_SWITCH:

//切歌状态

player_state=S_PLAY;//¸更新标志位

/*检测要切换的歌曲是否在播放的上一页*/

if((play_index+8)/8

{

current_page--;//¸刷新当前页码

lcd_list(current_page);//刷新LCD列表

}

/*检测要切换的歌曲是否在播放的下一页*/

if((play_index+8)/8>current_page)

{

current_page++;//¸刷新当前页码

lcd_list(current_page);//刷新LCD列表

}

break;

default:

break;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2