SOPC用nios控制蜂鸣器的鸣叫
- 格式:pdf
- 大小:174.76 KB
- 文档页数:2
S O P C乐曲演奏大作业 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】综合实验基于NiosII的乐曲演奏设计单位:班级:组员:指导老师:首都师范大学2012年5月目录一.设计概述本设计基于SOPC builder和Nios II 的乐曲演奏,使用蜂鸣器进行播放歌曲,本设计编写多首歌曲可以循环播放,并在液晶屏上显示歌曲名称和切换名称。
实验前准备:1、该实验需要使用七个模块组中的第七个功能单元,所以三个拨码开关处于“处于“110”时,即MODEL_SEL2和MODEL_SEL3拨下处于“OFF”状态,MODEL_SEL1拨下处于“ON”时,选择该模块。
2、拨码开关MODEL_SEL5-8全置于“ON ”状态,即MODEL_SEL5-8拨下处于“ON ”状态时通过USB BLASTER接口下载。
当全部拨下处于“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输出波形如下图所示。
暂停功能。
暂停后判断播放键有没有按下,如果按下了播放键,则在断点的地方接着播放歌曲,如果没有,则一直暂停到播放按键按下。
FPGA入门系列实验教程——蜂鸣器发出警车鸣笛声1.实验任务实现开发板上的蜂鸣器发出警车鸣笛声。
通过这个实验,掌握采用Verilog HDL语言编程实现蜂鸣器发声的方法。
2.实验环境硬件实验环境为艾米电子工作室型号EP2C8Q208C8增强版开发套件。
软件实验环境为Quartus II8.1开发软件。
3.实验原理艾米电子工作室开发板板载50MHZ的晶振,通过Verilog HDL语言编程将此频率分频后驱动一个I/O口。
这个I/O口连接到一个交流蜂鸣器。
通过改变这个I/O口的输出频率,就可以使蜂鸣器发出各种声音和音乐。
本次实验实现蜂鸣器发出警车鸣笛声,问题现在变得比上个实验复杂起来。
我们需要产生一个音调的变化,使之听起来像是警车的笛声。
仍然从“tone”计数器开始。
我们仅使用23位,这样便可以得到两倍与前面的频率(最高有效位大约以3Hz的频率翻转)。
下面是如何产生变化的音调的技巧。
使用一个寄存器“ramp”来表征当前的音调,则要求ramp的值在某一区间来回变化,例如...-2-1-0-1-2-3-...-127-126-125-...-2-1-0-1-2-...。
考虑“tone”计数器的15到21位(tone[21:15]),这是一个在0到127之间循环递增的值,0-1-2-...-127-0-。
再考虑这几位的反转,即~tone[21:15],这是一个在127-0之间循环递减的值。
如果能控制ramp在这两个值之间来回切换,即可得到一个形如...-0-1-2-...-127-126-125-...的计数器。
而这个变化规律正好符合警车笛声的音调变化规律。
为了让ramp在这两个值之间来回切换,我们使用tone[22]来控制。
可以这样考虑,tone[22:15]从0计数,对于前128个值(0-127),tone[22]等于0,后128个值(128-255),tone[22]等于1。
于是我们就可以使用tone[22]来控制ramp的取值,当tone[22]等于0时,让ramp等于tone[21:15],当tone[22]等于1时,让ramp等于~tone[21:15]。
基于SOPC技术实现数字闹钟【摘要】在现代社会,数字闹钟方便了人们的生活和工作。
数码管显示的时间简单明了而且读数快、时间准确显示到秒。
该数字闹钟主要采用sopc技术,设计由系统对外部机械按键模块进行扫描获取部分指令,对外部时钟分频后进行小时24分频计时模块、分钟60分频计时模块、秒钟60分频计时模块,并进一步建立年月日计时判断模块。
采用LED数码管显示时、分、秒,以24小时计时方式,蜂鸣器则作为闹钟声音提示用。
该数字闹钟优点是小巧,价格低廉,走时精度高,整点报时和定时非常方便。
关键字:SOPC技术数码管显示整点提示闹钟一、课题简介SOPC技术是美国Altrea公司于2000年最早提出的,并同时推出了相应的开发软件Quartus II。
SOPC是基于FPGA解决方案的SOC,与ASIC的SOC解决方案相比,SOPC系统及其开发技术具有更多的特色,构成SOPC的方案有多种途径,我们主要用到的是:基于FPGA嵌入IP硬核的SOPC系统1.基于FPGA嵌入IP硬核的SOPC系统即在FPGA中预先植入嵌入式系统处理器。
目前最为常用的嵌入式系统大多采用了含有ARM的32位知识产权处理器核的器件。
尽管由这些器件构成的嵌入式系统有很强的功能,但为了使系统更为灵活完备,功能更为强大,对更多任务的完成具有更好的适应性,通常必须为此处理器配置许多接口器件才能构成一个完整的应用系统。
如除配置常规的SRAM、DRAM、Flash外,还必须配置网络通信接口、串行通信接口、USB接口、VGA接口、PS/2接口或其他专用接口等。
这样会增加整个系统的体积、功耗,而降低系统的可靠性。
但是如果将ARM或其他知识产权核,以硬核方式植入FPGA中,利用FPGA中的可编程逻辑资源和IP软核,直接利用FPGA中的逻辑宏单元来构成该嵌入式系统处理器的接口功能模块,就能很好地解决这些问题。
2.基于FPGA嵌入IP软核的SOPC系统这种SOPC系统是指在FPGA中植入软核处理器,如:NIOS II核等。
第7卷 第12期 2007年6月167121819(2007)1222959205科 学 技 术 与 工 程ScieTechnol ogy and EngineeringVol17 No112 June20072007 Sci1Tech1Engng.通信技术基于Ni osⅡ软核处理器的通信信号源S O PC设计方 媛 李 勇 李智君 宋 勇(西北工业大学电子信息学院,西安710072)摘 要 介绍了S OPC及N i os II嵌入式软核处理器的概念和优势。
详细论述了S OPC系统的架构、设计框图以及全数字信号发生器和调制器的原理和结构。
给出了一个基于N i os II嵌入式软核处理器和大量自定义I Pcore的多功能全数字通信信号源的S OPC设计实例,并给出了详细的测试结果。
关键词 片上可编程系统 N i osⅡ I P核 通信信号源中图法分类号 T N492; 文献标识码 A S OPC(Syste m on a Pr ogra mmable Chi p,片上可编程系统)是A ltera公司提出来的一种灵活、高效的S OC解决方案。
它运用I P Core,将处理器、存储器、I O口等系统设计需要的功能模块集成到一个FPG A 器件上,构建成一个可编程的片上系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
在可编程器件内,还具有小容量高速RAM资源和足够的可编程逻辑资源,用于实现其它的附加逻辑。
N i osⅡ是A ltera针对其FPG A设计的嵌入式软核处理器,它只占芯片内部很少的一部分逻辑单元和存储资源,成本很低,却具有上百兆的性能,灵活的自定义指令集和自定义硬件加速单元,以及友好的图形化开发环境N i osⅡI D E。
1 系统设计111 系统概述本设计使用了A ltera的N i os II嵌入式软核处 2007年1月25日收到陕西省自然科学基金(2004G02)资助第一作者简介:方 媛(1983—),女,汉族,湖北武汉人,硕士研究生,研究方向:视频编解码,多媒体通信。
一.关于SOPC1)SOPC英文全名为:System-On-a-Programmable-Chip,即可编程片上系统。
SOPC 用可编程逻辑技术把整个系统放到一块硅片上,来用于嵌入式系统研究和电子信息处理。
SOPC是一种特殊的嵌入式系统,它是片上系统(System-On-a -Chip,SOC),即由单个芯片完成整个系统的主要逻辑功能但它不是简单的SOC,它也是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。
SOPC设计包括以32位NIOSII软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计以及软件调试等。
SOPC系统设计的基本软件工具有:1)QuartusII:用于完成NIOSII系统的综合、硬件优化、适配、编程下载以及硬件系统调试等;2)SOPC Builder:Altera NiosII嵌入式处理器开发软件包,用于实现NiosII 系统的配置、生成,内嵌于QuartusII软件中;3)ModelSim: 用于对SOPC生成的NiosII系统的HDL描述进行系统的功能仿真;4)NiosII IDE:用于进行软件的开发、调试,以及向目标开发板进行Flash下载;二.关于NIOSII处理器NIOSII 是一个可配置的软核处理器。
“可配置”的意思是设计者可以根据性能和成本的要求来增加或删减处理器的功能。
ALTERA公司并不销售NIOSII处理器芯片,而是销售空的FPGA,并提供NIOSII 系统相应的IP核来组成NIOSII系统,然后将这个系统下载到FPGA中实现。
1)关于AVALONAvalon总线是SOPC硬件系统的重要组成部分,Avalon总线规范是为了开发SOPC 环境下外设而设计的。
图1-1 一个SOPC的示例二. SOPC简单实例:软核控制LCD液晶字母显示器1.系统构成规划1)系统功能:在character LCD上显示”Hello LCD from NiosII!”2)本系统中需要的外围器件:(1)L CD:输出显示(2)S RAM存储器:程序运行时将其导入SRAM3)SOPC中建立系统需要添加的模块包括:(1)N ios II 32bit CPU(2)L CD display(3)外部RAM总线(4)外部RAM接口(5)J TAG UART Interface(6)定时器2.硬件系统的建立1)首先打开Quartus II 建立工程文件:将工程文件命名为hello_lcd,顶层文件与工程文件同名。
基于NIOS的SOPC设计
方茁;彭澄廉;陈泽文
【期刊名称】《计算机工程与设计》
【年(卷),期】2004(025)004
【摘要】SOPC是Altera公司提出的一种灵活、高效的片上系统设计方案.它将处理器、存储器、I/O口等系统设计需要的组件集成到一个PLD器件上,构建成一个可编程的片上系统.NIOS是Altera公司开发的可进行SOPC设计的处理器软核.通过一个实例,详细介绍了如何在Excalibur平台上实现一个基于NIOS的SOPC设计.
【总页数】4页(P504-507)
【作者】方茁;彭澄廉;陈泽文
【作者单位】复旦大学计算机与信息技术系,上海,200433;复旦大学计算机与信息技术系,上海,200433;复旦大学计算机与信息技术系,上海,200433
【正文语种】中文
【中图分类】TP301;TP391.7
【相关文献】
1.基于SOPC的FPGA NiosⅡ嵌入式等精度频率计设计 [J], 井新宇
2.基于SOPC和Nios Ⅱ的一种数码相框设计 [J], 张雷;王紫婷;王忠峰
3.基于SoPC和NIOSⅡ的SD卡文件系统的设计 [J], 陈侠;李开航
4.基于Nios Ⅱ的 SOPC 实验教学平台设计 [J], 陈晓静;吴爱平
5.基于NiosⅡ的液晶屏控制器SOPC设计 [J], 宋跃;卢俊平;雷瑞庭;陈卫;程博
因版权原因,仅展示原文概要,查看原文内容请购买。
嵌入式蜂鸣器响的程序语句摘要:1.嵌入式蜂鸣器的概念与作用2.嵌入式蜂鸣器响的程序语句编写方法3.实例:使用Arduino 编写嵌入式蜂鸣器响的程序4.测试与调试正文:一、嵌入式蜂鸣器的概念与作用嵌入式蜂鸣器是一种可以发出声音的电子元件,通常用于警报、提示等场景。
在各种电子设备中,嵌入式蜂鸣器被广泛应用,例如手机、电脑、汽车等。
通过编写程序控制蜂鸣器响,可以使其发出特定的声音,从而实现人机交互或设备间的通信。
二、嵌入式蜂鸣器响的程序语句编写方法要编写嵌入式蜂鸣器响的程序,首先需要了解所使用的微控制器或开发板的相关接口和寄存器。
以Arduino 为例,可以使用PWM(脉冲宽度调制)输出接口来控制蜂鸣器的响度。
以下是一个简单的示例:```c// 引入所需库#include <Wire.h>// 设置蜂鸣器引脚const int buzzerPin = 9;void setup() {// 初始化蜂鸣器引脚为输出pinMode(buzzerPin, OUTPUT);}void loop() {// 控制蜂鸣器响的程序语句digitalWrite(buzzerPin, HIGH); // 使蜂鸣器响delay(1000); // 延时1 秒digitalWrite(buzzerPin, LOW); // 使蜂鸣器停止响delay(1000); // 延时1 秒}```三、实例:使用Arduino 编写嵌入式蜂鸣器响的程序1.将蜂鸣器连接到Arduino 开发板上。
通常,蜂鸣器的正极连接到开发板的数字引脚,负极连接到地(GND)。
2.将编写好的程序上传到Arduino。
3.上传成功后,开发板会自动执行程序,蜂鸣器会按照程序设定的频率和时长响。
四、测试与调试在实际应用中,可能需要根据不同的场景和需求对蜂鸣器响的程序进行调整。
可以通过修改程序中的延时值、蜂鸣器引脚等参数来进行调试。
嵌入式蜂鸣器响的程序语句嵌入式蜂鸣器在电子系统中起到了警报、提醒、音乐播放等功能。
蜂鸣器的发声原理是通过快速振动发出声音,一般需要通过控制器来控制其频率和持续时间。
下面将介绍嵌入式蜂鸣器响的程序语句的相关参考内容:1. 选择合适的开发平台和编程语言:嵌入式系统可以采用多种不同的开发平台和编程语言。
例如,Arduino是一种简单易用的开发平台,可以使用Arduino语言进行编程。
而对于更为复杂的嵌入式系统,可以选择使用C语言或者汇编语言进行开发。
根据具体的嵌入式平台和编程语言,可以采用不同的编程语句来控制蜂鸣器。
2. 配置IO口和蜂鸣器:在程序中,需要先配置IO口和蜂鸣器的连接方式。
根据具体的开发平台和蜂鸣器模块,可以参考平台的开发文档或者蜂鸣器模块的说明书来配置IO口和蜂鸣器的连接方式。
3. 定义蜂鸣器的音频信号:在程序中需要定义蜂鸣器发出的音频信号。
音频信号的特征包括频率和持续时间。
一般来说,可以使用一个数组来表示音频信号,数组的元素代表了每个时间点上蜂鸣器的状态,例如高电平或低电平。
4. 控制蜂鸣器发声:在具体的应用场景中,需要根据需要控制蜂鸣器何时开始发声,以及发声的频率和持续时间。
可以使用循环结构、条件语句等来控制蜂鸣器的发声。
例如,可以使用for循环来控制蜂鸣器发声的持续时间,使用if语句来判断何时开始发声。
5. 添加适当的延时:在控制蜂鸣器发声的过程中,需要添加适当的延时来控制音频信号的频率。
可以使用延时函数或者定时器等方法来实现延时。
下面是一个简单的C语言程序示例,用来控制蜂鸣器发出连续的脉冲声:```c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <wiringPi.h>#define BEEP_PIN 7int main(void) {if (wiringPiSetup() == -1) {printf("wiringPi setup failed!\n");return 1;}pinMode(BEEP_PIN, OUTPUT);int beepPattern[] = {HIGH, LOW, HIGH, LOW, HIGH, LOW}; // 声音脉冲的模式int patternLen = sizeof(beepPattern) / sizeof(int);while (1) {for (int i = 0; i < patternLen; i++) {digitalWrite(BEEP_PIN, beepPattern[i]);usleep(500000); // 每个脉冲持续0.5秒}}return 0;}```在上述示例中,使用了wiringPi库来进行GPIO的控制,使用的蜂鸣器针脚为7号引脚。
上海理工大学实验报告课程名称__________实验名称__________ 姓名______班级_______学号_______一.实验目的学习交流蜂鸣器的发音原理。
二.实验内容在SmartSOPC实验箱上的蜂鸣器输出报警笛声。
三.实验原理SmartSOPC实验箱上有1个交流蜂鸣器BUZZER,通过跳线JP6的BEEP与芯片相连接。
为了增强I/O口的驱动能力,在此采纳了PNP型三极管,如此只要在BEEP上输入必然频率的脉冲蜂鸣器就会发出音乐。
四.实验程序实验源程序如下:Library ieee;Use beepp isPort( clk:in std_logic;beep:out std_logic);end beepp;Architecture m1 of beepp issignal beep_r:std_logic;signal count:std_logic_vector(15 downto 0);beginbeep<=beep_r;process(clk)beginif clk'event and clk='1' thencount<=count+'1';end if;end process;process(count(15))beginbeep_r<=not beep_r ;end process;end m1;五.实验步骤(1)、在QuartusII中成立一个工程项目文件,并在该项目下新建VHDL源程序文件输入源程序代码并保留。
(2)、选择目标器件并对相应的引脚进行锁定,在那个地址在那个地址所选择的目标器件为Altera公司Cyclone系列的EP1C12Q240C8芯片,引脚锁定的方式如表,将未利用的管脚设置为三态输入。
表1 引脚锁定方式1C6 1C12 EDA 1C6 1C12 EDA beep 175 175 175 clk 28 28 28(3)、对该工程文件进行全程编译处置,假设在编译进程中发觉错误,那么找出并更正错误,直至编译成功为止。
用nios控制蜂鸣器的鸣叫。
系统带一个输入端,接在一个拨位开关sw0上。
当sw0打在下面时,蜂鸣器鸣叫的频率为1000hz;拨位开关打在上面时,输出频率为2000hz。
要求:
1)画出nios系统的组成框图,并说明每个部件的作用。
2)写出完整的C程序,实现以上功能。
3)如何改变程序,使蜂鸣器鸣叫的频率不变,但更响一些。
1、系统的组成框图:
Rom
Rom
RAM
RAM
Nios II
Nios II
AVALON_MM
AVALON_MM
sysid
sysid
fm_pio
fm_pio
CYCLONEII
DE2-70
Vcc Gnd
蜂鸣器
蜂鸣器
Nios II CPU功能:用来处理并运行程序与各个器件之间的指令。
System id功能:用来生成系统唯一的ID。
Rom功能:用来存放系统程序代码,以便cpu读取并执行。
RAM功能:用来存放系统运行执行程序时所产生的缓存数据。
fm_pio功能:用来连接系统,使系统得以操作盖蜂鸣器的pio口。
2、 C程序:
三、使蜂鸣器更响一些
答:频率一定时,可以让蜂鸣器在一个周期内高电平的延迟时间更长,比如频率在1000Hz时,高电平的延迟时间为350,低电平延迟时间为150,则蜂鸣器会更响。