1 / 12
文档名称:

音乐播放器设计实验报告.docx

格式:docx   大小:781KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

音乐播放器设计实验报告.docx

上传人:buzaiwuzhuang123 2020/3/18 文件大小:781 KB

下载得到文件列表

音乐播放器设计实验报告.docx

文档介绍

文档介绍:实验报告课程名称:数字系统设计实验指导老师:成绩:_____________实验名称:音乐播放器设计实验一、实验目的和要求(必填)三、主要仪器设备(必填)五、实验数据记录和处理七、讨论、心得一、实验目的和要求实验目的:实验类型:设计型二、实验内容和原理(必填)四、操作方法和实验步骤六、实验结果与分析(必填)掌握音符产生的方法,了解DDS技术的应用;了解AC97音频接口电路的应用;掌握系统“自顶而下”的设计方法。实验要求:可以播放四首乐曲,设置play、next、reset三个按键。按play键播放当前乐曲,按键next播放下一首乐曲。LED0指示播放情况(播放时点亮),LED2和LED3指示当前乐曲序号。2、个性化要求用键盘上的三个按键P、N、Esc控制乐曲的播放。用SVGA显示乐曲的播放波形。二、实验内容和原理本次实验共可分成mcu、song_reader、note_player、codec_conditioner和ac97_if五个子模块。如下图:mcu模块接受按键信息,通知song_reader模块是否要播放(play)及播放哪首乐曲(song)。song_reader模块根据mcu的要求,逐个取出音符{note,duration}送给note_player模块播放,当一首乐曲播放完毕,回复mcu模块乐曲播放结束信号(song_done)。3、note_player模块接收到需播放的音符,在音符的持续时间内,以48Hz速率送出该音符的正弦波样品给AC97音频接口模块。当一个音符播放结束,向song_reader模块发送一个note_done脉冲索取新的音符。4、codec_conditioner、ac97_if模块负责与AC97音频系统接口工作。另外,按键处理模块完成输入同步化、防颤动和脉宽变换等功能。设计原理:1、主控制模块mcu的设计根据设计要求,模块mcu的工作流程图如下图所示。系统复位后经RESET状态初始化后进入WAIT状态等待按键输入或乐曲播放结束应答,若有按键输入则转入相应的按键处理状态(NEXT或PLAY),若一曲播放结束则进入结束播放END状态。2、乐曲读取模块song_reader的设计结构框图如下图所示,地址计数器为5位二进制计数器,其中note_done为计数允许输入,状态q为song_rom的低5位地址,song[1:0]为song_rom高两位地址。当地址计数器出现进位或duration为0时,表示乐曲结束,应输出一个时钟周期宽度的高电平脉冲信号song_done。song_reader控制器的算法流程图暂略。由于从song_rom中读取数据需要一个数据周期,所以在流程图中插入NEXT_NOTE转态,目的是延迟一个时钟周期输出new_note信号,以配合song_rom的读取要求。3、音符播放模块note_player的设计note_player的结构框图如下图所示:note_player控制器负责与song_reader模块接口,读取音符信息,并根据音符信息从FrequencyROM中读取相位增量step_size送给DDS子模块sine_reader。另外,note_player控制器还需要控制音符播放时间。音符定时器为6位二进制计数器,beat、time_clear分别为使能、清0信号,均为高电平有效。定时时间为音符的长短(duration_to_load个beat周期),timer_done为定时结束标志。子模块sine_reader的功能及就是利用DDS技术产生正弦样品,其原理框图如下所示:由于SineROM只给出四分之一周期的正弦样品,所以地址或数据也需要进行相应的处理,可以直接根据下图设计地址处理器和数据处理器。三、主要仪器设备XUPVirtex-IIPro开发系统、、、实验数据记录与处理各模块仿真结果如下所示:1、mcu:RESET:000WAIT:001END:010NEXT:011PLAY:100以state为核心综合分析,首先置为RESET状态,下个时钟周期置为WAIT,play_button置0后状态变为PLAY,之后又是WAIT……按照波形分析过去,发现和流程图是一致的,仿真正确。2、song_reader:先观察整体,再取几小段观察,着重分析state、new_note、song_done等波形,可以发现是符合要求的。3、sine_reader:首先观察曲线是否是和step_size有关的正弦曲线,这一点是满足的。然后将uut中的信号也添加进去,从中抽查一些小段,看sample、sample_out、rom_addr是否满足要求。这才能够初步判断波形正确。4、note_player:首先观察曲线是频率符合要求的正弦信号。一旦