My title page contents

SD卡音乐播放设计Verilog代码Quartus AX301开发板

名称:SD卡音乐播放设计Verilog代码Quartus  AX301开发板

软件:Quartus

语言:Verilog

代码功能:

本实验一个关键是在没有文件系统的情况下,搜索 SD 卡每个扇区的内容,匹配出 WAV 文件,

这里有一个假设:假设一个文件都是从一个扇第一个字节开始而且文是连续存储的,经过

大量实验,发现 FAT32 文件格式中的文件确实如此


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在AX301开发板验证,AX301开发板如下,其他开发板可以修改管脚适配:AX301开发板.png


设计文档:

SD卡音乐播放.docx

SD 卡音乐播放




1 实验简介

在其他实验中我们已经成了 SD 卡读写和音频模块的录音播放,本实验通过搜索 SD 卡中

WAV 音乐文件,然后送到音频模块播放,完成一个简单音乐播放器的功能。


2 实验原理

本实验一个关键是在没有文件系统的情况下,搜索 SD 卡每个扇区的内容,匹配出 WAV 文件,

这里有一个假设:假设一个文件都是从一个扇第一个字节开始而且文是连续存储的,经过

大量实验,发现 FAT32 文件格式中的文件确实如此。


2.1 WAV 文件格式


大部分的文件都有文件头,WAV 也丌例外,我们通过分析 SD 卡一个扇区的前几个字节,判

断这个文件是否为 WAV 文件。


WAV 文件作为多媒体中使用的声波文件格式之一,它是以 RIFF 格式为标准的。RIFF 是英文

Resource Interchange File Format 的缩写,每个 WAV 文件的头四个字节便是“RIFF”,所以本实验

就简单的以每个扇区的 4 字节是否为“RIFF”判断该文件是否为 WAV 文件,紧接着 个字节

表示文件的大小,这样我们就可以确定要读取的数据量。WAV 文件头大小是 88 字节,在播放时

要把前 88 个字节的文件头去掉。
































wav 文件头

3 程序设计

例程中通过 wav_read 搜寻 SD 卡中的 WAV 文件,并将 WAV 文件读取出来写入 FIFO,最后再

 FIFO 中将数据输出并写入音频模块。由于在前面的例程中已经讲过其他模块的原理及使用这里

丌再赘述,仅说明 wav_read 模块。

wav_read 模块完成了从 SD 卡中搜索 wav 文件,读取 wav 文件,状态机如下,如果有搜索请

求,则迚入搜索状态“S_FIND,如果搜索到 WAV 文件,迚入“S_PLAY_WAIT”状态,检查 FIFO

的剩余空间是否够 512 个,如果有 512 个空间,就迚入“S_PLAY”状态读取 wav 的一个扇区内容。














wav_read 模块状态机


在程序设计中,搜寻 SD 卡里图片的文件头是按每 个字节地址搜寻一次的形式操作,所 以在一次搜寻结束后,下一次搜寻时需要将地址左移 位对齐以保证下一次搜寻的地址和图片在 SD 卡中存储的地址一致。


部分代码展示:

//////////////////////////////////////////////////////////////////////////////////
//                                                                              //
//                                                                              //
//  Author: meisq                                                               //
//          msq@qq.com                                                          //
//          ALINX(shanghai) Technology Co.,Ltd                                  //
//          heijin                                                              //
//     WEB: http://www.alinx.cn/                                                //
//     BBS: http://www.heijin.org/                                              //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
//                                                                              //
// Copyright (c) 2017,ALINX(shanghai) Technology Co.,Ltd                        //
//                    All rights reserved                                       //
//                                                                              //
// This source file may be used and distributed without restriction provided    //
// that this copyright statement is not removed from the file and that any      //
// derivative work contains the original copyright notice and the associated    //
// disclaimer.                                                                  //
//                                                                              //
//////////////////////////////////////////////////////////////////////////////////
//================================================================================
//  Revision History:
//  Date          By            Revision    Change Description
//--------------------------------------------------------------------------------
//  2017/7/12     meisq          1.0         Original
//*******************************************************************************/
`timescale 1ns/1ps
module audio_rx

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » SD卡音乐播放设计Verilog代码Quartus AX301开发板

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员