基于DE2开发板NIOSII处理器使用PWM波播放音乐的数码音乐相册.docVIP

基于DE2开发板NIOSII处理器使用PWM波播放音乐的数码音乐相册.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DE2开发板NIOSII处理器使用PWM波播放音乐的数码音乐相册.doc

::软件简介:: 这个实验可以充分学习FPGA 以及SOPC的利用,做成一个具有很复杂程度的作品。学习到很多平时不能接触的知识。 这个实验要用到的硬件有: SD卡一张 DE2开发板 320*240的TFT液晶:SSD1289 一个无源喇叭 本实验难度比较大,主要涉及了很多知识!而且都不是平时我们接触过的知识。 本实验主要包含了几个大的部分: 1. 音乐的播放驱动 2. SSD1289 TFT液晶驱动 3. SD卡读取驱动 4. FAT32文件系统的初步认识,实现根目录下的读取 5. 整个FPGA里面NIOS模块和外部模块的链接. 6. WAV文件的制作,以及处理成不同采样率,不同位数的音频数据 7. BMP图片的制作,以及在不同处理器架构下的处理,在SD卡存储方式和取模出来的数据的不同 现在分别介绍不同模块的实现问题: 一. 首先最开始要实现的是音频数据的播放 音频具有很多编码,WAV,MP3等等,本实验有两个方法 现音频的播放:基于WM8731音频芯片的播放,以及直接用FPGA写出PWM控制器来播放。 首先介绍的是音频知识 我们平时接触到的最多的音频既是MP3音频,它是一种高度压缩的音频数据,因此播放它需要一块专门的集成高速DSP处理器音频芯片解码。比如VS1003B芯片,是最常用的音频编解码芯片,由于价格昂贵,所以我没有使用这种芯片,转而使用WAV文件来播放。WAV是一种原始的音频数据文件,相当于电压值的AD数据。 转换WAV文件又要使用到音频编译的专门软件 COOLEDIT软件 这款软件能实现音频文件的各种转换,可以转换成WAV 各种采样率。 现在介绍的是WM831音频芯片的使用以及播放: WM8731是一款具有高音频带宽的芯片,可以播放速率从8KHZ到96KHZ的WAV文件,由于它内部没有集成高速DSP解码处理器核,所以只能播放的是WAV文件。WM8731是一款高速的AD转换器。支持16位音频到32位音频的播放,它的配置采用的是I2C配置方式。在我这个项目中我实现的配置是,从模式16位宽。32KHZ采样率。这里不得不说道的是WAV文件16位数据和8位数据有很大区别。16位文件包含了正负音频电压值,而8位音频数据只有正电压。在最开始一直没理解到,所以犯了很多错误。 WM8731也是一款比较难操作的音频芯片,在具体实现的时候我用了两个高速缓存来实现数据的传送,数据是由NIOS在SD卡中以FAT32格式化下,以根目录的存取方式取出来缓冲,在传送,以WM8731转换完一个音频数据时产生的高电平来实现外部中断送值。具体操作这里就不做详细介绍了。 第二种方法,就是直接用VERLIOG代码生成一个PWM控制器,从NIOS中接收数据来实现PWM播放音乐.这种方法比较新颖。 由于,耳机,以及无源喇叭是惯性器件,PWM波作用在其上就等同相等的电压值作用在上面,从而实现类似AD的播放。这种用VERLIOG写出的PWM播放机的缺点就是在FPGA的管脚上不能出现负电压,所以只能播放的是8位数据的音频电压值。,我的PWM播放思想是,严格按照采样率来送电压值,送值时间由NIOS内部定时器来实现。PWM控制模块只负责把数据转换成PWM波就可以了。 这也是一个比较难理解的过程,需要细细揣摩! 第三种方法,直接使用DA芯片转换出电压值,从而播放出音乐。最开始我选择了DAC0832电流型DA芯片来播放音乐,结果失败了,后来仔细研究才知道,原来DAC0832类型很多,,增强,快速,普通等等。我使用的是普通的0832芯片,电压转换时间是150多US,联最基本的8KHZ的采样率音频速度都不能达到,所以这个方案不能实施。但是可以换增强型快速的DAC0832芯片来做,转换时间快到只需要10多US就可以转换完。(这个理论上能成功,但是我没有芯片所以没实施。)DAC0832最大的缺点是电流型,所以还要通过运放转换成电压。最好的方法是选用TLC5615电压型DA芯片,转换速度也快,SPI接口很好操作。 二. SD卡的驱动 DE2上有SD卡接口,由于NIOS不带硬件驱动SD卡,所以 选取的是IO口模拟SPI来对SD卡操作。NIOS组件里面也带有硬件SPI发送器,由于现在这个IP技术不成熟,一次只能传送8位的数据,因此,不满足SD卡SPI驱动要求,所以我选用的是IO口模拟SPI操作SD卡,在模拟的时候,我用程序写的是高速的模拟SPI,不用循环,比一般采用循环模拟SPI快了一倍,因此为我后面大量BMP图片数据,以及WAV音频数据读取提供了有利的基础。 SD卡的驱动也很复杂,要严格按照SD卡的时序来给它送值,而且还有很多补偿时钟这些,但是必须把SD卡底层操作函数百分百写对,才能在后续的FAT32文件系

文档评论(0)

caijie1982 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档