基于ATmega64的U盘MP3设计方案

发布者:CelestialSoul最新更新时间:2020-02-13 来源: eefocus关键字:ATmega64  U盘  MP3 手机看文章 扫描二维码
随时随地手机看文章

随着电子技术的发展,MP3播放器向着大容量,小型化发展。但播放器与存储器一体化的设计使得MP3难以扩充容量以容纳更多的歌曲。将播放器与存储器分离是MP3目前发展的另一方向。


1系统功能简介


本设计主要完成对存储在U盘中的音乐及文本等信息的读取操作,能够完成U盘内MP3音乐数据的播放及标签信息的显示,实现播放器与存储器分离,并在此基础上完成电子书,贪吃蛇游戏等功能。


2系统芯片选择


本设计MCU选择ATMEL公司的ATmega64作为主控芯片。ATmega64是高性能、低功耗的8位AVR微处理器,具有先进的RISC结构。64K字节系统内可编程Flash,2K字节EEPROM,4K字节片内SRAM,64个引脚,53个可编程I/O口,具有可工作于主机/从机模式的SPI串行接口音频解码芯片选择芬兰VLSI公司生产的VS1003。VS1003是一款具有MP3/WMA/MIDI音频解码及ADPCM编码功能的芯片,它包含一个高性能,低功耗的DSP内核VS_DSP,工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。一个串行的控制和数据接口,4个通用I/O口,一个UART,一个高质量可变采样率的ADC和立体声DAC,一个耳机放大器和地线缓冲器。


USB通信芯片选择CH375,CH375是一个USB总线的通用接口芯片,支持USB-host主机方式和USB-DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及终端输出,可以方便地挂接到单片机等控制其的系统总线上。内置控制传输的协议处理器,简化常用的控制传输。支持低功耗模式。


3系统硬件电路设计


3.1MP3解码芯片与ATmega64的硬件连接


VS1003使用同步串行总线SPI通信,ATmega64内部集成有SPI总线控制器,故将SCLK,MOSO,MOSI直接与MCU的SPI控制引脚相连接即可。另外将XCS,XRES,DREQ,XDCS分别于PB4~PB7相连接,即可完成对解码芯片的控制。


3.2CH375与ATmega64的硬件连接


本设计中,CH375工作在HOST模式下,八位双向数据总线D0~D7分别于MCU的PD0~PD7相连接,实现数据与命令的并行传输。A0,RD,WR,INT,CS分别于PC3~PC7相连接。这种连接可以很方便的将CH375挂接到各种MCU系统总线上。


3.3彩屏与ATmega64的硬件连接


彩屏与MCU实现并口数据命令传输,将其16位数据命令口与MCU的PA0~PA7以及PE0~PE7相连接,另外将彩屏的片选CS,数据命令选通RS,写选通WR,读选通RD,及复位RST分别于MCU的PG0~PG4相连接。


3.4 系统连接框图如图1


MP3


系统启动后,在ATmega64的控制下,首先将数据从U盘中取出,如果是音频数据,则直接送入VS1003进行解码,VS1003将接收到的数据解码后转换为模拟音频后,通过功率放大器输出。若收到的是文本数据,则进行字符格式转换,并在液晶屏上显示出来。


4系统软件设计


系统软件的设计主要分为VS1003的驱动程序,CH375的驱动程序,彩屏的驱动程序以及整体的整合。(分别为:vs1003.cch375.c TFT_ili9320.c mp3_play.c )


4.1FAT文件系统管理


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


FAT区包含有两份文件分配表,这是出于系统冗余考虑,尽管它很少使用,即使是磁盘修复工具也很少使用它。它是分区信息的映射表,指示簇是如何存储的。根目录区是在根目录中存储文件和目录信息的目录表。在FAT32下它可以存在分区中的任何位置,但是在早期的版本中它永远紧随FAT区域之后。数据区是实际的文件和目录数据存储的区域,它占据了分区的绝大部分。


4.2U盘的读取


由于CH375内置控制传输的协议处理器,因此读取U盘可以通过控制CH375的寄存器来进行U盘的读取。CH375以C语言子程序库提供了USB存储设备的文件级接口,这些应用层接口API包含了常用的文件级操作,可以移植并嵌入到常用的单片机程序中。CH375的U盘文件级子程序库具有以下特性:支持常用文件系统,支持多级子目录,可以支持小写字母或者长文件名,支持文件打开、新建、删除、读写以及搜索等。CH375的文件级子程序库需要大约600Byte的随机存储器RAM作为缓冲区。文件级子程序库的所有API在调用后都有操作状态返回,但不一定有应答数据。主要子程序如下:


(1)初始化CH375芯片: CH375Init; ( 2 )打开文件:CH375Fileopen;(3)枚举或者搜索文件:CH375FileEnumer;(4)关闭文件: CH375FileClose; (5)以扇区为单位从文件读数据:CH375FileReadX; ( 6 )以扇区为单位向文件写数据:CH375FilewriteX。


4.3VS1003的读写控制


VS1003的寄存器用下列顺序读出,如图二。首先将XCS片选拉低以选择芯片,再通过SI线发送8位的读操作码(0x03)和8位的地址。在地址被VS1003芯片读入后,SI上的数据将被忽略。相应地址的16位数据将从SO线移出。当数据全被移出后XCS需拉高。


MP3


VS1003的寄存器须按以下的顺序写入,如图三。首先将XCS片选拉低,再通过SI线发送8位的读操作码(0x02)和8位的地址。随即发送16位的数据字。当最后一位被移入且最后的时钟已发送,必须将XCS拉高以完成写操作。


4.4MP3的播放


当执行音乐播放程序时,ATmega64芯片首先从U盘中预取标签信息,经过分析,由Unicode到GBK编码的转换,再取字模,最终在LCD上显示;之后开始取音乐文件的数据,送到VS1003芯片,VS1003开始解码并在音频接口发出音频信号。当按下暂停键时,暂停取数据,上一曲、下一曲时跳出取数据循环。


MP3


4.5其他软件设计


1.音乐标签的软件设计。本系统可以读取的音乐的标签有ID3V1、ID3V2,当要区分这两个标签时可以用程序读取音乐文件的开头和结尾,利用其标志符“ID3”、“TAG”来区分其具有哪一个标签。但是标签中的文字编码也包括UNICODE、GBK,具体的区分也要查找相关的标志符。


2.文档阅读的软件设计。GBK的编码中会带有ASC码,而GBK码占两个字节,ASC码占一个字节,如果在取文件过程中恰好取到GBK码的每二个字节,那么以后的内容在LCD上的显示将全部为乱码,特别是在向上翻页的时候(文档内容在LCD上的显示还要判断回车以及其它字符,这样就会造成每一页具体读了多少字节,显示了多少字节都不一样)。最终解决办法是用一个数组记录每一次翻页共显示了多少字节(不是读取了多少字节)。


3.在TFT上显示字符和汉字。对于TFT液晶,没有具体的字模存储在控制芯片中,只能是整体系统的存储。而且汉字的Unicode和GBK编码并不相同。笔者把具体的字库存储在了要读取的优盘根目录下(对应的字模文件是ST16.BIN KT16.BIN)。对于Unicode到GBK的转换,笔者把转换文件也存储在了优盘的根目录下面(对应文件是UNITOGBK.SYS)。


5结束语


经测试,本设计能够读取并播放U盘中MP3文件,音质清晰悦耳,无延时和跳帧现象。能够读取U盘中txt文档以实现电子书功能。内置的贪吃蛇游戏也可以顺利实现。由于本设计采用播放器与存储器分离的方式,因此存储空间不受限制,自由度较大,这比一般MP3播放器更具有优势。


关键字:ATmega64  U盘  MP3 引用地址:基于ATmega64的U盘MP3设计方案

上一篇:有关AVR32的介绍
下一篇:AVR单片机入门一:单片机嵌入式系统的结构

推荐阅读最新更新时间:2024-11-17 01:47

ATmega64 时钟系统及其分布
时钟系统及其分布 Figure 18为AVR的主要时钟系统及其分布。这些时钟并不需要同时工作。为了降低功耗, 可以通过使用不同的睡眠模式来禁止无需工作的模块的时钟,如 P42“ 电源管理及睡眠模 式” 所示。 CPU 时钟- clkCPU CPU时钟与操作AVR内核的子系统相连,如通用工作寄存器文件、状态寄存器以及保存堆 栈指针的数据存储器。终止CPU 时钟将使内核停止工作和计算。 I/O 时钟- clkI/O I/O时钟用于主要的I/O 模块,如定时器/ 计数器、SPI 和USART。I/O 时钟还用于外部中断 模块。但是有些外部中断由异步逻辑检测,因此即使I/O 时钟停止了这些中断仍然可以得 到监控。此外,TWI 模块
[单片机]
<font color='red'>ATmega64</font> 时钟系统及其分布
ATmega64 基准电压使能信号和启动时间
ATmega64 具有片内能隙基准源,用于掉电检测,或者是作为模拟比较器或ADC的输入。 ADC 的2.56V 基准电压由此片内能隙基准源产生。 电压基准的启动时间可能影响其工作方式。启动时间列于Table 20。为了降低功耗,可以控制基准源仅在如下情况打开: 1. BOD 使能 ( 熔丝位BODEN 被编程) 2. 能隙基准源连接到模拟比较器(ACSR 寄存器的ACBG 置位) 3. ADC 使能 因此,当BOD 被禁止时,置位ACBG 或使能ADC 后要启动基准源。为了降低掉电模式 的功耗,用户可以禁止上述三种条件,并在进入掉电模式之前关闭基准源。
[单片机]
<font color='red'>ATmega64</font> 基准电压使能信号和启动时间
真相了 拔U盘之前的“弹出”有什么用?
大家在拔出U盘、移动硬盘等外接存储设备之前,会不会先点击任务栏的设备“弹出”选项,再对它们进行操作呢?只是为了避免数据出错,或设备无法识别、读写等问题。下面就随手机便携小编一起来了解一下相关内容吧。    真相了 拔U盘之前的“弹出”有什么用? 其实呢,USB设备都是支持热插拔的,只要设置对了,就不需要上面说的那一步操作。此外,只要大家不是在数据拷贝的时候拔出它们,出现各种各样问题的黑锅都是微软的,为什么这么说? 来,在“此电脑”上点击右键选择“属性”,进入设备管理器后,在磁盘驱动器下找到U盘/移动硬盘的选项。这时候再看看它“属性”里面的“策略”项是如何设置的,就一目了然了吧?     真相了 拔U盘之前的“弹出”有什
[手机便携]
影响MP3音乐芯片音质的因素有哪些
MP3音乐芯片这一最开始的皇室商品,到如今早已被大家所接纳了,由于技术专业的MP3芯片生产厂家愈来愈多,促使MP3的生产制造变得越来越简易,成本费更低。但也正是因为这般,市面的MP3芯片变得更加多同时,而且其价钱展现出一种不平稳或者说是波动,令人疑虑的状况,且一些MP3芯片存有着极大的差价外,其音色也是不一样的实际效果。到底是什么因素影响着音质?九芯电子MP3芯片厂家将为您揭开谜底。 一、MP3芯片厂家提出音质的好坏,很大一部分还要取决于耳机的选择搭配,MP3芯片厂家发现对音质比较讲究的朋友在购买一款MP3之后最会单独去配一款比较好的耳机,而不去选择MP3本身原配的耳机。在音质的高要求下,理想中的耳机应该是高频延伸充分,量感合
[嵌入式]
影响<font color='red'>MP3</font>音乐芯片音质的因素有哪些
U盘指纹考勤机常见问题问答和技巧分享
问: 有些用户指纹考勤经常无法验证通过,该如何解决此问题? 答: 如下的一些情况可能会导致有的员工难于使用或根本不能够使用指纹进行考勤: ①一些手指上指纹被磨平; ②手指上褶皱太多,经常变化; ③手指上脱皮严重; 指纹无法识别的用户,可将该指纹删除再重新登记,或登记另一枚手指。 这种用户在登记指纹时,需要选择使用质量较好的指纹(褶皱少、不起皮、指纹清晰),尽量使手指接触指纹采集头面积大一些,登记完成后做一下比对测试;并建议多注册几枚备份手指。 考勤机为此提供了1:1比对方式和密码考勤功能,可以设置这些员工使用1:1方式考勤或密码进行考勤。 问: 考勤机不能通讯时,请问会有哪些方面的原因?
[家用电子]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved