SOPC乐曲演奏大作业.docx
- 文档编号:24847428
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:14
- 大小:327.45KB
SOPC乐曲演奏大作业.docx
《SOPC乐曲演奏大作业.docx》由会员分享,可在线阅读,更多相关《SOPC乐曲演奏大作业.docx(14页珍藏版)》请在冰豆网上搜索。
SOPC乐曲演奏大作业
Companynumber:
【0089WT-8898YT-W8CCB-BUUT-202108】
SOPC乐曲演奏大作业
综合实验基于NiosII的乐曲演奏设计
单位:
班级:
组员:
指导老师:
首都师范大学
2012年5月
一.设计概述
本设计基于SOPCbuilder和NiosII的乐曲演奏,使用蜂鸣器进行播放歌曲,本设计编写多首歌曲可以循环播放,并在液晶屏上显示歌曲名称和切换名称。
实验前准备:
1、该实验需要使用七个模块组中的第七个功能单元,所以三个拨码开关处于“处于“110”时,即MODEL_SEL2和MODEL_SEL3拨下处于“OFF”状态,MODEL_SEL1拨下处于“ON”时,选择该模块。
2、拨码开关MODEL_SEL5-8全置于“ON”状态,即MODEL_SEL5-8拨下处于“ON”状态时通过USBBLASTER接口下载。
当全部拨下处于“OFF”时可使用开发平台上LAB_JTAG_PS_AS接口下载或者核心开发板上JTAG接口下载。
这里用户可根据自己所用的下载线来选择适当的下载方式和相应的MODEL_SEL5-8的状态。
二.设计要求
通过使用PWM对交流蜂鸣器进行控制,实现多首乐曲(6首)的播放。
实现如下功能:
1.歌曲播放
2.暂停功能
3.多首歌曲的切换(6首)
其他扩展要求:
在液晶屏上显示歌曲的名称,以及上下切换字符(before,after)
三.设计方案(总体设计原理、软件设计、硬件设计)
总体设计原理
实验箱的蜂鸣器是交流蜂鸣器,在BZSP输入一定频率的脉冲时,蜂鸣器蜂鸣,改变输入频率可以改变蜂鸣器的响声。
因此可以利用一个PWM来控制BZSP,通过改变PWM的频率来得到不同的声响,以此来播放音乐。
PWM设计说明
PWM输出一个占空比可调的方波。
当一个周期11个时钟,高电平输出7个时钟时的PWM输出波形如下图所示。
图1PWM输出波形图
表一内部寄存器:
寄存器名
地址偏移量
访问属性
描述
clock_divide
00
读/写
用来设定PWM输出周期的时钟数
duty_cycle
01
读/写
用来设定一个周期内PWM输出低电平的时钟个数
enable
10
读/写
使能和关闭PWM输出,为1时使能PWM输出
保留
11
-
软件设计流程图
图2程序流程框图
首先,判断暂停键是否按下,如果没有,则播放歌曲,如果按下来了暂停键,就执行暂停功能。
暂停后判断播放键有没有按下,如果按下了播放键,则在断点的地方接着播放歌曲,
如果没有,则一直暂停到播放按键按下。
主程序代码:
6首歌曲播放,暂停,及切换上一首、切换下一首同时显示歌名和play、stop、next、before:
上下首歌切换:
图3程序
硬件设计
图4硬件图
四.实验环境
硬件:
PC机
GX-SOC/SOPC-DEV-LABPLATFORM创新开发实验平台
GX-SOPC-EP2C35-M672核心板
软件:
QuartusII
NiosII
五.软件实验步骤
1、.把altera_avalon_pwm(IP核)拷贝到自己的工程文件夹目录下,
2.在主菜单打开Tools->SOPCBuiler
图5生成PWM核
3.重新命名为bzsp,点击鼠标右键,进行自动分配Addressess和IRQ,点击Generate
图5对PWM核重命名
4.生成成功以后回到QuartusII界面软件中必须替换更新:
在.bdf鼠标右键单击空白处,单击UpdateSymbolorBlock…,即可。
5.在NIOSIIIDE软件环境中点击New->NiosIIC/C++Application,建立一个工程
6.在SOPCBuilderSystemPTFFile选择,C/C++的应用工程名Name重命名,点击Next
7.选中Createanewsystemlibrarynamed,点击Finish.
8.建立文件和头文件
9.编译工程
10.build成功后下载硬件
11.运行RUN
六.头文件
#ifndef_MUSIC_H
#define_MUSIC_H
#include""
1MI{_LA,_4,MUTE(_LA)},
{_SOL,_2,MUTE(_SOL)},{_RE1,_4,MUTE(_RE1)},{_SI,_4,MUTE(_SI)},
{_SOL,_8,MUTE(_SOL)},
{_MI,_2,0},{_LA,_4,MUTE(_LA)},
{_SOL,_2,MUTE(_SOL)},{_RE1,_4,MUTE(_RE1)},{_SI,_4,MUTE(_SI)},
{_SOL,_8,MUTE(_SOL)},--
{_LA,_8,LOUD(_LA)},
{_LA,_8,LOUD(_LA)},
{_LA,_2,LOUD(_LA)},
{_MI,_2,LOUD(_MI)},
{_MI,_2,MUTE(_MI)},
{_MI,_2,0},
{_1LA,_4d,MUTE(_1LA)},
{_DO,_4d,MUTE(_DO)},
{_MI,_4d,MUTE(_MI)},
{_SOL,_4d,MUTE(_SOL)},{_LA1,_4d,MUTE(_LA1)},{_SI1,_4d,MUTE(_SI1)},*/
intxiaoxingxing[SONG_SIZE3][3]={
{_DO,_2,MUTE(_DO)},159-3-2有外设的接口与Avalon总线时钟同步,不需要复杂的握手/应答机制
2.所有的信号都是高电平或低电平有效,便于信号在总线中高速传输。
在Avalon总线中,由(而不是)决定哪个信号驱动哪个外设
3.为了方便外设的设计,地址、数据和使用分离的、专用的端口
10.简述Altera公司支持的SOPC技术的PLD产品类型。
答:
Altera公司的PLD分为CPLD和FPGA两类:
CPLD器件逻辑单元大,分解组合能力很强,一个单元可以分解成数十个组合逻辑,因此其产品较适合设计组合逻辑电路;FPGA器件逻辑单元小,有较多的触发器,适合用来设计需要大量触发器时序逻辑电路。
11.系统描述文件包含了哪些NIOSII系统的硬件信息存在NIOSII工程什么文件夹中
答:
系统描述文件包含了:
外设的硬件配置、外设的基地址、中断请求优先级、外设的符号名等。
存在NIOSII工程文件夹下的software\music_syslib\Debug\system_description文件夹中。
12.基于altera公司的SOPC系统如何实现上电自动加载程序
答:
1)在SOPCBuilder中,将CPU的ResetVector设为cfi_flash
2)下载硬件时,先将DE2板上液晶左边的开关扳到prog,在下载器窗口中Mode选项选择ActiveSerialPrograming选项,然后单击AddFile按钮,选择文件,勾选全部选项,点击start按钮即开始下载。
下载结束后将上述开关扳回run。
以后上电之后就自动将硬件加载到FPGA中,可以直接运行软件。
3)下载软件时,选择Tool->FlashProgrammer,点击ProgramFlash就可以将程序烧入Flash。
13.alt_main()和main()的区别是什么
答:
自动初始化和用户自定义初始化
在调用main()之前,应用程序假定运行环境和所有的服务系统都被初始化并准备运行。
初始化可以被硬件抽象层(HAL)系统库自动执行。
程序员不需要考虑系统的输出设备以及如何初始化每一个外设,HAL会自动初始化整个系统。
alt_main()函数提供了一个独立式的编程环境,能够完全控制系统的初始化。
14.什么是C2H编译器有什么特点
答:
C2H是一种可以直接对ANSIC函数定制硬件加速的技术,C2H编译器能分析程序要加速实现的
接口类型,生成硬件加速器逻辑以及合适的Avalon(供互联架构)的主机和从机接口,达到与存储器延时的匹配。
这样,分担了处理器的数据计算和存储器访问任务,使处理器能够更好的处理其他任务。
15.如何基于HAL编写中断服务程序
答:
中断服务程序的编写和注册方法
的ISRAPI
2NiosIIIDE创建系统库工程时,包含了所有需要的ISR。
用户不必去写HALISR,除非用户要和定制的外设通信。
HALAPI定义了很多函数管理硬件中断,如:
alt_irq_register()
alt_irq_disable()
alt_irq_enable()……
用HALAPI编写用户的ISR,步骤:
1.编写特定设备中断的ISR。
2.调用alt_irq_register()函数来注册ISR。
、
编写用户的ISR
用户编写的ISR必须符合alt_irq_register()函数的原型
voidisr_name(void*context,alt_u32id)
第一个参数:
中断上下文指针(向ISR传递语境信息的指针)
第二个参数:
中断号,在中声明,例如:
PIO_IRQ
v注意:
编写的ISR中不能使用ANSIC标准库中I/O有关操作,
不要调用printf(),可能使系统死锁……
注册用户的ISR,向HAL层传递中断服务程序信息
alt_irq_register(alt_u32id,void*context,void(*isr)(void*,alt_u32))
第一个参数为中断号;(alt_u32在定义为unsignedlong)
第二个参数为中断上下文指针;
第三个参数是中断服务函数的指针。
(可直接用函数名字)
v中断发生时,系统回调用户注册的中断服务程序,传入的第一个参数即为用户调用alt_irq_register时传入的中断上下文指针参数;传入的第二个参数为本中断的中断号。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SOPC 乐曲 演奏 作业