嵌入式MP3播放器设计Word格式.docx

上传人:b****4 文档编号:7991144 上传时间:2023-05-09 格式:DOCX 页数:22 大小:27.24KB
下载 相关 举报
嵌入式MP3播放器设计Word格式.docx_第1页
第1页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第2页
第2页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第3页
第3页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第4页
第4页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第5页
第5页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第6页
第6页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第7页
第7页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第8页
第8页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第9页
第9页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第10页
第10页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第11页
第11页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第12页
第12页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第13页
第13页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第14页
第14页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第15页
第15页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第16页
第16页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第17页
第17页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第18页
第18页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第19页
第19页 / 共22页
嵌入式MP3播放器设计Word格式.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式MP3播放器设计Word格式.docx

《嵌入式MP3播放器设计Word格式.docx》由会员分享,可在线阅读,更多相关《嵌入式MP3播放器设计Word格式.docx(22页珍藏版)》请在冰点文库上搜索。

嵌入式MP3播放器设计Word格式.docx

从源到解码器的传输;

大容量移动存储器用来存储

MP3文件,播

放时MP3文件从存储器传送到解码器解码,这些控制都是由单片

机实现的。

解码后的数字音频信号通过内置

D/A转换器转换成模

拟音频信号,然后通过音频放大电路,最后输出。

LCD显示器同步

显示正在播放的MP3文件的状态,按键控制

MP3播放器的播放、

停止、快进和倒带以及其它功能的选择。

在具有U盘功能的MP3播放器中,U盘主要由CPU、USBDevice

接口芯片和存储器三部分构成。

其中

CPU和USBDevice接口往往

2

是集成在一起的芯片,存储器一般为Flash;

MP3主要组成部分

是:

CPU、MP3硬件解码器、D/A转换与音频放大器、Flash存储器。

集成解决方案可以是带MP3硬件解码器的CPU,或者是将硬件解码、D/A转换与音频输入集成在一起。

如果利用U盘的海量存储容量,为MP3提供大量存储器,同时MP3和U盘采用同一个CPU来进行MP3播放器的设计,可使其具有良好的性价比。

本文所设计的具有U盘

功能的MP3可分为以下几个组成部分:

CPU、USBDevice接口、MP3

硬件解码、D/A转换与音频放大芯片、Flash存储器。

几个可以参考的方案如表1所示。

表2.1

方案选择表

CPU

USBDevice

MP3解码芯片

D/A转换与音

Flash存

接口芯片

频放大芯片

储器

AT89C51SND1

CS4330A+双路

K9F5608

中集成

运放

PIC16C64

PDIUSBD12

MAX3507D

DAC3550

AVR8515

STA013

以数字电路为主的硬件电路设计,一般以芯片为核心来实现系统功能。

单个芯片实现某一部分的主要功能,而多个芯片之间则要有机的协调和配合。

因此,最终选定高集成度的带有CPU、解码器和USB控制器的芯片AT89C51SND1为核心来完成MP3播放器中的设计。

通过AT89C51SND1集成芯片进行解码和USB控制,辅以K9F5608进行存储,并通过CS4330A和双路运放芯片实现D/A转换与音频放大来实现MP3(U盘)的功能。

3、硬件系统设计

(1)嵌入式处理器选型设计

由于AT89C51SND1C芯片中集成有CPU、MP3解码器和USB控制器,可以大大简化硬件设计的复杂度,而且成本不算很高,所以

3

本次课程设计打算采用AT89C51SND1C芯片做为系统的嵌入式处理器。

AT89C51SND1C是美国ATMLE公司针对MP3解决方案新生产的一款芯片,具有C51内核,AT89C51SND1C在原有的89C51的基础上增加了MP3解码模块,支持48、44.1、32、24、22.05、16KHz采样频

率,左右声道独立的音量控制,重低音、中音、高音均衡控制,重低环绕声效果,辅助数据输出等功能。

还增加了I2C/PCM音频输出模块,串并行接口模块(USB,SPI,IDE),以及其他的外存储器接口模块。

AT89C51SND1C芯片包括8个功能块:

(1)MP3音频解码器:

AT89C51SNDlC可实时解码MP3数据为PCM

音频数据,同时也支持MP3其他频率。

解码器也支持其它特性如声音控制、低音放大、辅助数据提取等.

(2)音频输出接口:

允许音频解码位流以不同的格式输出。

(3)通用串行总线(USB)接口:

支持USB存储类的MP3音频解码文件下载;

支持USB固件类升级的在系统编程。

(4)外插闪存卡接口:

该接口适应多媒体卡模式的2.2规范.允许移动闪存卡上音频解码文件的存储,这样在应用时可轻易地插

入和拔除,此接口亦可用于在系统编程。

(5)IDE/ATAH接口:

该接口允许C2LROM读卡机、压缩闪卡、硬盘等驱动设备的连结。

由一个具有低电平ANSI规范的16位双向总线部分组成,具有多存储接口,但只能用于连接C2LROM时的在系统编程。

(6)串行外设接口:

支持主模式和从模式,具有以下功能:

MP3音频解码文件存储到数据闪存的接口;

主机远程控制芯片。

(7)双线控制器:

支持4个标准的主模式和从模式,多主性能。

具有以下功能:

从设备如LCD控制器、音频DAC的连接;

主机远程控制AT89C51SNDlC芯片及在系统编程。

(8)A/D控制器:

2道10位模数转换.具有电源管理、录音等功能。

(2)存储系统设计

AT89C51SNDl芯片具有64K字节的闪存程序空间和4K字节引导闪存以及2304字节的RAM存储器,利用微处理器核对数据流和MP3解码器进行控制,其中地址从F000~FFFF的区域为4K字节的BootFlash,这部分程序是出厂时已经固化的BootLoader代码,它使用DFU(DeviceFirmwareUpdate设备固件升级)协议来更新芯片FLASH存储器中的用户程序。

芯片上电后即执行BootLoader,

4

支持USB接口在线下载固件,这样,不需要硬件烧写器便可下载目标代码到芯片,降低了芯片开发的投资。

AT89C51SNDl芯片用两种不同的空间提供数据内存访问。

内部空间被映射成3个独立的段:

低128BRAM段、高128BRAM段、扩展的2048BRAM段;

外部空间。

在这里外部RAM扩展我选择了32KB的SRAM芯片HY62WT08081E,

存储空间的分配如表3.1所示:

表3.1SRAM存储空间地址分配

地址范围说明

0000h-07FFh内部扩展SRAM

0800h-7FFFh外部扩展SRAM

表3.2ROM存储空间地址分配

0000h-EFFFh用户程序空间

F000-FFFFhBootFlash

外存储采用闪存K9F5608,它共有8个I/O引脚,另外有指令锁存允许线、地址锁存允许线、芯片启用线、读激活线、写激活

线、就绪/忙碌输出线、输出缓冲区电源线、设备电源线。

K9F5608闪存拥有32MB存贮量。

它在数据写入和数据读出的时候使数据

在I/O缓冲区与存储区之间传递。

K9F5608闪存采用8位I/O线复用方式。

当CE信号线为低电平时,激活WE信号线(即WE为下降沿),则指令,数据,地址都是由8条I/O线写入。

数据锁存是在WE的上升沿。

通过复用8条I/O线,数据,地址,指令分别由CLE,

ALE控制传输。

由于K9F5608闪存拥有32MB的存贮量,所以需要24条地址线。

所以需要3个总线周期寻址。

这三个周期分别为行周期,低列周期,高列周期。

对层(page)的读操作和程序操作由于需要指令的输入所以也需要3个周期。

在块的擦写中,需要2个周期。

(3)键盘设计

5

AT89C51SND1C芯片已经提供了完善的键盘接口,引脚为KIN0、KIN1、KIN2、KIN3。

在这里我直接借用它的键盘接口,直接将开

关按键接入到这四个引脚,分别作为STOP、FFW、REW、PLAY/PAUSE按键。

(4)D/A转换和音频处理设计

由于AT89C51SND1C中只带有MP3解码模块,所以需要对MP3

解码出来的数字信号进行D/A转换得到模拟信号,然后经过伴音

处理芯片TDA7050,输出到耳机。

D/A转换芯片我选用的是CS4330。

这个芯片工作电压为3V或者5V,所以电源提供的3.3V电压并不

能完全满足它的要求,这里我加上两个电容C37(0.1uF)和

C38(10uF)进行处理,给CS4330提供稳定的电压。

AT89C51SND1C

的DOUT引脚直接接到CS4330芯片的SDATA引脚。

TDA7050芯片进行伴音处理,它的最大电压为6V,正常输入电压为3V,这里分别将CS4330的AOL,AOR两个引脚输入接到芯片的IN1-和IN2-两个引脚,芯片处理后,输出OUT1和OUT2为左右声道的声音。

电路原理图如下所示:

图3.1D/A转换和音频处理电路图

(5)电源设计

使用Max1677芯片进行电压转换,将两节七号干电池电压升至

6

3.3V。

连接USB口处:

用AS117把5V电压降至3.3V,并保证3.3V电压的输出。

电源设计图如下所示:

图3.2电源设计图

(6)中断分配

AT89C51SND1C芯片内部集成了很多功能部件,也提供了完善的中断机制,表3.2是中断系统信号表,表3.3是本系统用到的中断的中断优先级和中断向量表。

表3.3中断系统信号

信号名称

描述

选择引脚

INT0

外部中断0

P3.2

INT1

外部中断1

P3.3

KIN3:

键盘中断输入

P1.3:

7

表3.4中断优先级和中断向量表

中断名

优先级

中断向量

1(最高级)

C:

0003h

Timer0

000Bh

0013h

Timer1

001Bh

串口

0023h

MP3解码器

002Bh

音频接口

0033h

双线控制器

9

0043h

A/D转换

11

0053h

键盘

12

005Bh

14

006Bh

(7)RS232接口电路

AT89C51SND1C芯片内部集成了UART,在这里我选用了MAX232CWE芯片。

数据由PC机A的串口RS232发出,经MAX232电平转换后,送入芯片。

在芯片中,先由扩展串口UART接收数据,经内嵌8051的控制处理。

8

图3.3RS232电平转换电路设计

4、软件系统设计

主要使用51系统单片机中所使用的C语言来实现MP3源程序设计。

没有实时操作系统的支持。

可以利用单片机开发软件Keil软件方便开发mp3播放器,无需特殊软件平台。

具有U盘功能的MP3程序由两大部分组成:

MP3播放功能和USB通讯功能。

(1)MP3播放功能

MP3播放功能模块的工作分为两个部分:

第一部分是循环播放MP3歌曲,该功能需要首先做一些初始化工作,MP3解码器一旦开始工作,就会一直向CPU请求数据,直至歌曲结束,只有通过键盘操作才会使该功能提前结束。

因为MP3文件的数据量较大,在flash存储器内是以页为单位进行存储的,所以MP3的播放程序初始化就是要把该文件的首地址和页数先读出到CPU中,然后CPU可以根据如上数据进行取数据工作。

第二部分则一直在等待中断发生,该程序是与键盘结合起来

的,主要用于使用者对播放过程的控制。

键盘操作对MP3播放过程的控制还包括后退、跃进、跳到下一首、音量控制等。

因为整个

播放过程的键盘控制功能比较单一,没有键的复合操作,所以程序都很容易实现。

歌曲播放器程序要与键盘和LCD配合起来设计。

程序流程大概可分为:

硬件初始化→获取U盘中mp3歌曲列表→歌曲播放和LCD显示。

MP3播放器部分主流程图如图4.1所示。

歌曲播放和LCD显示是程序的核心部分。

主处理器和LCD从处理器之间通过串口进行通信,以达到歌曲播放与歌词显示的同步

以及键盘操作状态的及时刷新。

其程序流程图如图4.2所示。

(2)USB通讯功能

主处理器让USB海量存储设备在批量传输方式下工作,这样共需要3个端点。

0端点:

控制端点。

用于控制传输,PC机通过与端点0相对应的管道来读取设备描述符,完成对设备地址的设

置,并完成配置。

此端点为双向数据传输端点。

两个非0端点:

批量传输端点。

这种端点为单向数据传输端点,分别为批量输入

端点和批量输出端点。

主处理器通过一个端点中断寄存器

(UEPINT)和PC机通信。

如果某个端点完成了相应的操作,就会引发中断。

USB主程序结构框架流程图如图4.3所示。

开始

Flash复位

MP3初始化

播放当前歌曲

键盘和LCD初始化

EA=1开中断

是否处于

播放状态

获取歌曲信息

播放器停

图4.1MP3播放器部分主流程图

从U盘中查找当前歌曲歌词文件,传给LCD从处理器

从处理器接收文件,查找字库将

歌词转换成LCD显示格式,作

歌词与显示时间映射表

MP3解码器开始工作,键盘响应

中断,LCD同步显示歌词和状态

歌曲结束,准备播放下一首

10

图4.2歌曲播放程序流程图

USB控制器初始化

端点初始化

读取UEPINT状态

端口0

是否产

处理标准

生中断

USB请求

端口1

处理Bulk-In

端点请求

处理Bulk-Out

UEPINT清零

图4.3USB主程序结构框架主流程图

(2)文件管理功能

因为该系统还要具有U盘的功能,所以存储器中的文件还要能够让计算机读写和识别,也就是所有的文件还要严格满足计算机文件系统格式的要求。

在所有计算机文件系统中,FAT是比较常用

的一种。

一个FAT文件系统卷由4个部分组成:

保留区、FAT区、根目录区、文件和目录数据区。

其中保留区中的第一个分区必须是BPB,也称作“引导扇区”,因为它含有对文件系统进行识别的关键信息,计算机将以此信息识别存储器文件格式,因此十分重要。

FAT区存放的是文件分配表。

操作系统的存储空间是按簇来分配的,簇是操作系统分配的最小存储单元,每个簇在FAT表中占据一个16位的位置,称为一个表项。

同一个文件的数据并不一定存放在存储区的一个连续的区域内,往往会分成若干段,像一条链子一样的存放,这种存储方式称为文件的链式存储。

为了实现文件的链式存储,必须准确地记录哪些簇已经被占用,还必须为每一个已经占用的簇指明后继内容的下一个簇的簇号,对于一个文件的最后一个簇,则要指明本簇没有后继簇,这些就是由FAT表来存储的。

根目录区存放的是目录项,每个目录项为32个字节,记录一个文件或目录的信息。

目录项所占的空间与目录项的个数有关。

文件和目录数据区是真正存放文件数据的位置,所有数据都按照以上信息分配存储的。

其中比较重要的数据结构设计如下所示:

structBootSecFAT16Str//引导扇区FAT16扩展结构

{

BYTEBS_DrvNum;

BYTEBS_Reserved1;

BYTEBS_BootSig;

DWORDBS_VolID;

charBS_VolLab[11];

charBS_FilSysType[8];

};

structBootSecFAT32Str//引导扇区FAT32扩展结构

DWORDBPB_FATSz32;

//FAT32扇区总数

WORDBPB_ExtFlags;

WORDBPB_FSVer;

DWORDBPB_RootClus;

//根目录开始的簇

WORDBPB_FSInfo;

WORDBPB_BkBootSec;

charBPB_Reserved[12];

structBootSecStr//引导扇区结构

BYTE

BS_jmpBoot[3];

BS_OEMName[8];

WORD

BPB_BytesPerSec;

//每扇区字节数512

BPB_SecPerClus;

//

每簇扇区数1248163264128

BPB_RsvdSecCnt;

//保留扇区数0x20

BPB_NumFATs;

//FAT表个数

BPB_RootEntCnt;

BPB_TotSec16;

BPB_Media;

BPB_FATSz16;

BPB_SecPerTrk;

BPB_NumHeads;

DWORDBPB_HiddSec;

DWORDBPB_TotSec32;

union

FATUni

structBootSecFAT32Str

F32;

structBootSecFAT16Str

F16;

}FAT;

structDPTStr//分区表结构

BYTEBootFlag;

BYTECHSBegin[3];

BYTETypeCode;

BYTECHSEnd[3];

DWORDLBABegin;

DWORDCntSec;

structFAT32FSInfoStr//FAT32扩展信息结构

13

DWORDLeadSig;

BYTEReserved1[480];

DWORDStrucSig;

DWORDFreeCount;

DWORDNxtFree;

BYTEReserved2[12];

DWORDTrailSig;

structFAT32SDirStr//FAT目录结构短文件名

CHARName[11];

BYTEAttr;

BYTENTRes;

BYTECrtTimeTenth;

WORDCrtTime;

WORDCrtDate;

WORDLstAccDate;

WORDFstClusHI;

WORDWrtTime;

WORDWrtDate;

WORDFstClusLO;

DWORDFileSize;

structFAT32LDirStr//FAT目录结构长文件名

BYTEOrd;

BYTEName1[10];

BYTEType;

BYTEChksum;

BYTEName2[12];

BYTENam

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

当前位置:首页 > 自然科学 > 物理

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

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