版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE5基于AT89C51SND1C的MP3播放器设计概述MP3作为高质量音乐压缩标准,正进入越来越多人的生活,给数字音频工业带来强劲的冲击。MP3技术音乐数据压缩比较大,回放质量较高。如将CD格式的音乐数据压缩成MP3格式,音效相差无几,但大小至少可压缩12倍。由于MP3音乐的较小数据量和近乎完美的播放效果,使MP3格式的音乐文件在网络上传输得以实现。1995年,采用MP3格式的音乐开始在网上传播时,主要是用类似Winamp的播放软件进行播放,使MP3音乐无法脱离计算机进行播放,给欣赏音乐带来不便。1997-1998年间,韩国Saehan公司制造了世界上第一台便携式MP3播放器MP-F20(MPMan系列MP3播放器的第一款商业产品)。1998年8月,DiamondMultimedia公司在美国推出了Rio系列MP3随身听,正式启动了MP3播放器市场。随着技术的发展,人们对MP3播放器的要求也越来越高,因而制造商从各个方面提升其附加功能,扩大MP3播放器的适用领域。随着MP3播放器的出现和市场的快速发展为微控制器(MCU)甚至MCU/DSP混合器件应用带来了新的机遇。许多半导体公司提供各种供MP3播放器使用的器件,包括解码器、数模转换器、模数转换器、现场可编程门阵列(FPGA)、专用标准产品(ASSP)以及MCU/DSP混合器件等,这就为MP3播放器的选型、设计、开发提供了多种方案。随着MP3播放器的激烈竞争,产品开发的发展以及技术的不断发展,一些芯片厂商已经推出了集成MP3解码及其它附加功能的微控制器MP3播放芯片,使MP3播放器向集成化方向发展。另外MP3播放器的附加功能也越来月具有吸引力,如将MP3中的储存器开辟为移动存储设备,增加了MP3录音、调频收音机、以及多种现场环境感觉功能的播放模式,可播放多种数字音乐格式(如WMA、AAC等),集成时钟日历,同步显示中文歌词等等。系统原理市场上流行的MP3播放器通常是兼具播放器和U盘功能的嵌入式电子产品,除了具有方便的播放控制功能之外,还支持USB通讯协议,可以与计算机进行数据交换,有些LCD显示,或具有录音功能。基于以上的功能分析,本文要涉及的MP3设计方案是一个仅具备以上几种基本功能的嵌入式系统。一个典型的MP3播放器的主要结构如图1所示。其组成部分包括单片机控制系统、LCD显示器、按键、MP3解码器、D/A转换、音频放大、大容量移动存储器、USB接口和声音输出等等。LCD显示器LCD显示器按键单片机(MP3解码、D/A转换))大容量移动存储器USB音频放大声音输出图2.1MP3播放器主要结构示意图MCU(单片机)主要负责控制USB接口芯片与计算机通讯从计算机商下载MP3文件、通过总线控制解码芯片工作,以及完成数据从源到解码器的传输;大容量移动存储器用来存储MP3文件,播放时MP3文件从存储器传送到解码器解码,这些控制都是由单片机实现的。解码后的数字音频信号通过内置D/A转换器转换成模拟音频信号,然后通过音频放大电路,最后输出。LCD显示器同步显示正在播放的MP3文件的状态,按键控制MP3播放器的播放、停止、快进和倒带以及其它功能的选择。在具有U盘功能的MP3播放器中,U盘主要由CPU、USBDevice接口芯片和存储器三部分构成。其中CPU和USBDevice接口往往AT89C51SND1C芯片已经提供了完善的键盘接口,引脚为KIN0、KIN1、KIN2、KIN3。在这里我直接借用它的键盘接口,直接将开关按键接入到这四个引脚,分别作为STOP、FFW、REW、PLAY/PAUSE按键。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转换和音频处理电路图电源设计使用Max1677芯片进行电压转换,将两节七号干电池电压升至3.3V。连接USB口处:用AS117把5V电压降至3.3V,并保证3.3V电压的输出。电源设计图如下所示:图3.2电源设计图中断分配AT89C51SND1C芯片内部集成了很多功能部件,也提供了完善的中断机制,表3.2是中断系统信号表,表3.3是本系统用到的中断的中断优先级和中断向量表。表3.3中断系统信号信号名称描述选择引脚INT0外部中断0P3.2INT1外部中断1P3.3KIN3:0键盘中断输入P1.3:0表3.4中断优先级和中断向量表中断名优先级中断向量INT01(最高级)C:0003hTimer02C:000BhINT13C:0013hTimer14C:001Bh串口5C:0023hMP3解码器6C:002Bh音频接口7C:0033h双线控制器9C:0043hA/D转换11C:0053h键盘12C:005BhUSB14C:006BhRS232接口电路AT89C51SND1C芯片内部集成了UART,在这里我选用了MAX232CWE芯片。数据由PC机A的串口RS232发出,经MAX232电平转换后,送入芯片。在芯片中,先由扩展串口UART接收数据,经内嵌8051的控制处理。图3.3RS232电平转换电路设计软件系统设计主要使用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同步显示歌词和状态歌曲结束,准备播放下一首图4.2歌曲播放程序流程图开始开始USB控制器初始化端点初始化读取UEPINT状态端口0是否产生中断是端口1是否产生中断端口0是否产生中断否否是是处理标准USB请求否处理Bulk-In端点请求处理Bulk-Out端点请求UEPINT清零图4.3USB主程序结构框架主流程图(3)文件管理功能因为该系统还要具有U盘的功能,所以存储器中的文件还要能够让计算机读写和识别,也就是所有的文件还要严格满足计算机文件系统格式的要求。在所有计算机文件系统中,FAT是比较常用的一种。一个FAT文件系统卷由4个部分组成:保留区、FAT区、根目录区、文件和目录数据区。其中保留区中的第一个分区必须是BPB,也称作“引导扇区”,因为它含有对文件系统进行识别的关键信息,计算机将以此信息识别存储器文件格式,因此十分重要。FAT区存放的是文件分配表。操作系统的存储空间是按簇来分配的,簇是操作系统分配的最小存储单元,每个簇在FAT表中占据一个16位的位置,称为一个表项。同一个文件的数据并不一定存放在存储区的一个连续的区域内,往往会分成若干段,像一条链子一样的存放,这种存储方式称为文件的链式存储。为了实现文件的链式存储,必须准确地记录哪些簇已经被占用,还必须为每一个已经占用的簇指明后继内容的下一个簇的簇号,对于一个文件的最后一个簇,则要指明本簇没有后继簇,这些就是由FAT表来存储的。根目录区存放的是目录项,每个目录项为32个字节,记录一个文件或目录的信息。目录项所占的空间与目录项的个数有关。文件和目录数据区是真正存放文件数据的位置,所有数据都按照以上信息分配存储的。其中比较重要的数据结构设计如下所示:structBootSecFAT16Str//引导扇区FAT16扩展结构{ BYTE BS_DrvNum; BYTE BS_Reserved1; BYTE BS_BootSig; DWORD BS_VolID; char BS_VolLab[11]; char BS_FilSysType[8];};structBootSecFAT32Str//引导扇区FAT32扩展结构{ DWORD BPB_FATSz32;//FAT32扇区总数 WORD BPB_ExtFlags; WORD BPB_FSVer; DWORD BPB_RootClus;//根目录开始的簇 WORD BPB_FSInfo; WORD BPB_BkBootSec; char BPB_Reserved[12]; BYTE BS_DrvNum; BYTE BS_Reserved1; BYTE BS_BootSig; DWORD BS_VolID; char BS_VolLab[11]; char BS_FilSysType[8];};structBootSecStr//引导扇区结构{ BYTE BS_jmpBoot[3]; BYTE BS_OEMName[8]; WORD BPB_BytesPerSec;//每扇区字节数512 BYTE BPB_SecPerClus;//每簇扇区数 1248163264128 WORD BPB_RsvdSecCnt;//保留扇区数 0x20 BYTE BPB_NumFATs;//FAT表个数 2 WORD BPB_RootEntCnt; WORD BPB_TotSec16; BYTE BPB_Media; WORD BPB_FATSz16; WORD BPB_SecPerTrk; WORD BPB_NumHeads; DWORD BPB_HiddSec; DWORD BPB_TotSec32; union FATUni { structBootSecFAT32Str F32; structBootSecFAT16Str F16; }FAT;};structDPTStr//分区表结构{ BYTE BootFlag; BYTE CHSBegin[3]; BYTE TypeCode; BYTE CHSEnd[3]; DWORD LBABegin; DWORD CntSec;};structFAT32FSInfoStr//FAT32扩展信息结构{ DWORD LeadSig; BYTE Reserved1[480]; DWORD StrucSig; DWORD FreeCount; DWORD NxtFree; BYTE Reserved2[12]; DWORD TrailSig;};structFAT32SDirStr//FAT目录结构短文件名{ CHAR Name[11]; BYTE Attr; BYTE NTRes; BYTE CrtTimeTenth; WORD CrtTime; WORD CrtDate; WORD LstAccDate; WORD FstClusHI; WORD WrtTime; WORD WrtDate; WORD FstClusLO; DWORD FileSize;};structFAT32LDirStr//FAT目录结构长文件名{ BYTE Ord; BYTE Name1[10]; BYTE Attr; BYTE Type; BYTE Chksum; BYTE Name2[12]; WORD FstClusLO; BYTE Name3[4];};structFAT32Str//FAT32参数表{ BYTE ClusSecCnt;//当前簇扇区计数 DWORD CurrentDirectory;//当前目录入口(簇号) BYTE SecPerClus;//每簇扇区数 1248163264128 WORD RsvdSecCnt;//保留扇区数 0x20 BYTE NumFATs;//FAT表个数 2 DWORD RootClus;//根目录开始的簇 DWORD ClusSec;//簇开始的扇区 DWORD FATSz;//FAT表大小(扇区) DWORD FATSec;//FAT表开始扇区 DWORD FSISec;//FSI所在扇区 DWORD FSIFreeCount;//空闲簇数 DWORD FSINxtFree;//空闲簇搜索指针};structFCBStr{ CHAR FileName[12];//文件名 DWORD Size;//文件大小 DWORD FirstCluster;//第一个簇 DWORD LastCluster;//最近一次读到的簇号 DWORD ClusSecCnt;//当前簇扇区计数 DWORD ByteCnt;//当前字节计数};structFATStr{ DWORD Sector; DWORD FAT[128];};课程设计总结一个嵌入式系统的设计是一个很艰巨的工程,本次课程设计虽然进行了2个多月,但是我仍然感觉到时间很仓促,前期的硬件知识了解花了很多时间,走了很多弯路。由于条件的限制,我并没有亲手将这些硬件的设计实现,所有的一切都是在纸上谈兵,软件的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度服务合同(教育)2篇
- 2024水电站建设材料采购合同
- 家园共育构建和谐的教育生态圈
- 办公饮食文化与学校食堂菜谱设计的互动关系研究
- 2024年肉类食品电商平台会员服务合作合同3篇
- 营地手工活动课程设计
- 家校共育与心理健康教育的融合
- 小学教师的全方位身心健康调适
- 2024浦口区文化旅游产业发展战略合作合同3篇
- 《城市传统商业步行街景观地域性设计研究》
- Unit1WhatsthematterSectionB2a-2e教学设计人教版八年级英语下册
- 《铁道概论课件》课件
- 幼儿园大班音乐教案《爆米花》教学反思
- 双师课堂方案
- 行政单位固定资产盘点报告
- 巴基斯坦炼铜工艺流程
- 光学焦度计的原理与应用
- 四川省巴中市2023-2024学年高二上学期期末考试物理试题【含答案解析】
- 《两小儿辩日》教学案例:培养学生的思辨能力
- 2024年广东省普通高中学业水平考试化学试卷(修改+答案)版
- 2024年小学生中华经典诵读知识竞赛参考题库500题(含答案)
评论
0/150
提交评论