盘发器厂家
免费服务热线

Free service

hotline

010-00000000
盘发器厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

基于AVR单片机的U盘MP3设计与实现

发布时间:2020-02-03 02:32:33 阅读: 来源:盘发器厂家

随着电子技术的发展,MP3播放器向着大容量,小型化发展。但播放器与存储器一体化的设计使得MP3难以扩充容量以容纳更多的歌曲。将播放器与存储器分离是MP3目前发展的另一方向。本文介绍了一种利用AVR控制以HOST USB方式读取U盘的音乐文件并将其解码的播放的解决方案。本方案同时具备读取音乐标签,U盘电子书,贪吃蛇游戏等功能,具有商业价值。

本文引用地址:系统功能简介

本设计主要完成对存储在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相连接。

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

4系统软件设计

系统软件的设计主要分为VS1003的驱动程序,CH375的驱动程序,彩屏的驱动程序以及整体的整合。(分别为:h375.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。

pa相关文章:pa是什么

c语言相关文章:c语言教程

素人番号系列

石原莉奈

番号大全番号库