基于eda的电子琴设计及基于BUCK电路的电源设计_第1页
基于eda的电子琴设计及基于BUCK电路的电源设计_第2页
基于eda的电子琴设计及基于BUCK电路的电源设计_第3页
基于eda的电子琴设计及基于BUCK电路的电源设计_第4页
基于eda的电子琴设计及基于BUCK电路的电源设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA电子琴设计2009-07-1109:07目录

言3

一、设计要求3

二、设计目的3

三、硬件电路的设计3

1、电子琴整体电路3

1.1手动/自动演奏模块4

1.2音调发生器模块4

1.3数控分频模块5

四、程序设计5

1、手动/自动演奏模块的设计6

2、音调发生器模块的设计7

3、数控分频模块的设计7

五、组装调试下载7

六、心得体会9

七、参考文献9

附录110

附录211

EDA技术是电子设计的发展趋势,利用EDA工具可以代替设计者完成电子系统设计中的大部分工作。EDA工具从数字系统设计的单一领域,发展到今天,应用范围已涉及模拟、微波等多个领域,可以实现各个领域电子系统设计的测试、设计方针和布局布线等。设计者只要完成对电子系统的功能描述,就可以利用计算机和工具,进行设计处理,最终得到设计结果。

采用可编程逻辑器件通过对器件内部的设计来实现系统功能,是一种基于芯片的设计方法。设计者可以根据定义器件的内部逻辑很引出端,将电路板设计的大部分工作放在芯片的设计中进行,通过对芯片设计实现数字系统的逻辑功能。

用硬件描述语言进行电路与系统的设计是当前EDA技术的重要特征。硬件描述语言的突出优点是:语言的公开可利用性;设计与工艺的无关性;宽范围的描述能力;便于组织大规模系统的设计;便于设计的复用和继承等。目前常用的IEEE标准硬件描述语言有VHDL和Verilog-HDL。

一、设计要求

基于传统数字频率计的测量精度将随被测信号频率的下降而下降,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。本系统设计的基本指标如下:

1对于频率测试功能,测频范围为0.1-50MHZ;对于测频全域相对误差恒为百万分之一。

2对于脉宽测试功能,测试范围为0.1us-1s,

二、设计目的

⑴熟悉Quartus2软件的使用。

⑵熟悉EDA实验开发系统的基本使用。

⑶学习VHDL基本单元电路的设计应用。进一步掌握EDA的多层次设计方法。

⑷学习音乐发生器的设计。

三、硬件电路的设计

1、电子琴整体电路(见附录1)

本设计由手动/自动演奏模块、音调发生器、数控分频器3个模块组成。手动/自动演奏模块的作用是实现手动和自动演奏音乐的控制。音调发生器tone的作用是产生获得音阶的预置值。数控分频模块spreker对时基钟脉冲进行分频,得到与1,2,3,4,5,6,7,七个音符对应的频率。这3个模块如下:

1.1手动/自动演奏模块

1.2音调发生器模块

1.3数控分频模块

四、程序设计(见附录2)

流程图(如下图1)

图1

1、手动/自动演奏模块的设计

在automusic中设置了9位二进制计数器,作为音符数据ROM的地址发生器。这个计数器的计数频率选为4HZ,即每一计数值的停留时间为0.25秒,恰为全音符设为1秒时,四四拍的4分音符持续时间。例如,automusic在以下的VHDL逻辑描述中,“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒时间,相应地,所对应的“3”音符分频预置数值为1036,在speaker的输入端停留了1秒。随着tone中的计数器按4HZ的时钟速率作加法计数时,即随地址值递增时,音符数据ROM中的音符数据将从ROM中通过index[3..0]端口输向tone模块,乐曲就开始连续自然地演奏起来了。Index2[7..0]是手动音符输入端,8位分别对应do,re,mi,fa,sol,la,si,!do八个音符。auto是自动/手动播放控制端,当auto为0时实现自动演奏功能,为1时则是手动输入乐曲。

2、音调发生器模块的设计

音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定,该模块tone的功能首先是为speaker提供决定所发音符的分频预置数,而此数在speaker输入口停留的时间即为此音符飞节拍值。模块tone是乐曲简谱码对应的分频预置数查表电路,其中设置了“梁祝”乐曲全部音符所对应的分频预置数,共13个,每一个音符的停留时间由音乐节拍和音调发生器模块tone的clk的输入频率决定,在此为4HZ。这13个值的输出由对应于tone的4为index[3..0]确定,而index[3..0]最多有16种可选值。输向tone中index[3..0]的值index0[3..0]的输出值与持续的时间由模块tone决定。

3、数控分频模块的设计

音符的频率可以由speaker获得,这是一个数控分频器。数控分频模块spreker对时基钟脉冲进行分频,得到与1,2,3,4,5,6,7,七个音符对应的频率。由其clk端输入一具有较高频率(12MHZ)的信号,通过speaker分频后由spks输出,由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动扬声器,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。speaker对clk输入信号的分频比由11位预置数tone[10..0]决定。spks的输出频率将决定每一音符的音调,这样,分频计数器的预置值tone[10..0]与spks的输出频率,就有了对应关系。例如在tone模块中若取tone[10..0]=1036,将发音符为“3”音的信号频率。

五、组装调试下载

EDA实验箱的芯片是:EP1C3T144C8。

1、引脚配置

程序整体组装的方法有两种:一种是用VHDL语言编写顶层文件,将各个模块的程序组装起来,另一种是用用QuarusII软件将各个模块的程序转化成硬件原理图。我采用的是第二种方法,第二种方法比较直观,且易于实现。组装完成后就对程序进行编译,下载到实验箱。

2、组装调试下载过程中遇到的问题

1、连接好硬件图后,编译有错误。原因是原理图不能连接到所对应的模块的程序。解决办法:将各个模块的程序放到所建立的原理图的工程里面。

2、编译有错误。原因是建立的ROM的address与speaker中用到的信号count0的长度不相对应。解决办法:将ROM中的address的长度改成与count0长度一致的。

3、编译完成后,自动演奏的乐曲音调不对(变调了)。原因是我建立的ROM中输入数据错了。解决办法:对照简谱,将输错的谱改过来。

4、手动弹奏的sol,la两按键发出的音调相同。原因是在音调发生器中缺少了1116这一分频预置数值。解决办法:在音调发生器tone中的分频预置数这一程序段中添加分频预置数值为1116的语句。

5、选乐曲困难。不知道要选怎么样的乐曲,电子琴演奏出来的乐曲才不会变调。通过向老师咨询,我们选乐曲最好是选四拍的没有低音的乐曲。后面就选了“北京的金山上”和“梁祝”这两首乐曲。

六、心得体会

课程设计是一项重要的实习学科之一,我们要正确的面对这项任务,把它做好做的精细,以达到锻炼人的目的,所以说一份好的心得体会是经过认真经历之后才能做出来的!

做了三周的课程设计,有很多的心得体会,有关于专业知识方面的,也有关于人与人之间关系方面的。

在着三周里学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示,后来,在数十次的调试之后,才出现正确的结果。

其次,在连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这次课程设计带给我们的不只是知识,更多的需要我们在课程设计结束后根据自己的情况去感悟,去反思,勤时自勉,有更多的收获。

我们组一共有两个人,我们共同努力,各显所能最终完成了这次的课程设计。当然,这中间有老师和其他同学的帮助与支持,在这里对给过我帮助的所有同学和指导老师表示忠心的感谢!

七、参考文献

1、黄仁欣编著,EDA技术实用教程

清华大学出版社

2、EDA/SOPC技术实验讲义

杭州康芯电子有限公司

附录1

附录2

自动/手动演奏模块的设计

libraryieee;

useieee.std_logic_1164.all;

entityautomusicis

Port(clk,auto:instd_logic;--系统时钟4HZ;键盘输入/自动演奏

index2:instd_logic_vector(7downto0);--键盘输入信号

index0:outstd_logic_vector(3downto0));--音符信号输出

endautomusic;

architecturebehavioralofautomusicis

componentmusic

port(address:inintegerrange0to279;

clock:instd_logic;

q:outstd_logic_vector(3downto0));

endcomponent;

signalcount0:integerrange0to279;--change

signalindex1:std_logic_vector(3DOWNTO0);

signalindex11:std_logic_vector(3DOWNTO0);

begin

mm:process(clk,count0)

--此进程完成自动演奏部分曲的地址累加

begin

ifclk'eventandclk='1'then

ifcount0=279thencount0<=0;

elsecount0<=count0+1;

endif;

endif;

endprocess;

search:process(index2)

--此进程完成音符到音符的分频系数译码,音符的显示,高低音阶

begin

caseindex2is

when"00000001"=>index11<="0001";--773

when"00000010"=>index11<="0010";--912

when"00000100"=>index11<="0011";--1036

when"00001000"=>index11<="0100";--1116

when"00010000"=>index11<="0101";--1197

when"00100000"=>index11<="0110";--1290

when"01000000"=>index11<="0111";--1372

when"10000000"=>index11<="1000";--1410

when

others

=>index11<="0000";--2047

endcase;

endprocess;

SEL:process(index11,index1)

begin

IFauto='1'thenindex0<=index1;

else

index0<=index11;

endif;

endprocess;

u1:musicportmap(address=>count0,q=>index1,clock=>clk);

END;

音调发生器的设计

libraryieee;

useieee.std_logic_1164.all;

entitytoneis

port(index:instd_logic_vector(3downto0);--音符输入信号

code:outstd_logic_vector(3downto0);--音符显示信号

high0:outstd_logic;--高低音显示信号

tone0:outstd_logic_vector(10downto0));--音符的分频系数

end;

architecturebehavioraloftoneis

begin

search:process(index)

begin

caseindexis

译码电路,查表方式,控制音调的预置数

when"0000"=>tone0<="11111111111";code<="0000";high0<='0';--2047when"0001"=>tone0<="01100000101";code<="0001";high0<='0';--773when"0010"=>tone0<="01110010000";code<="0010";high0<='0';--912when"0011"=>tone0<="10000001100";code<="0011";high0<='0';--1036

when"0100"=>tone0<="10001011100";code<="0100";high0<='0';--1116when"0101"=>tone0<="10010101101";code<="0101";high0<='0';--1197

when"0110"=>tone0<="10100001010";code<="0110";high0<='0';--1290

when"0111"=>tone0<="10101011100";code<="0111";high0<='0';--1372

when"1000"=>tone0<="10110000010";code<="0001";high0<='1';--1410

when"1001"=>tone0<="10111001000";code<="0010";high0<='1';--1480

when"1010"=>tone0<="11000000110";code<="0011";high0<='1';--1542

when"1100"=>tone0<="11001010110";code<="0101";high0<='1';--1622

when"1101"=>tone0<="11010000100";code<="0110";high0<='1';--1668

when"1111"=>tone0<="11011000000";code<="0001";high0<='1';--1728

whenothers=>NULL;

endcase;

endprocess;

end;

数控分频器模块的设计

libraryIEEE;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityspeakeris

Port(clk1:instd_logic;

tone1:inintegerrange0to2047;

spks:outstd_logic);

endspeaker;

architecturebehavioralofspeakeris

signalpreclk,fullspks:std_logic;

begin

divideclk:process(clk1)

variablecount4:integerrange0to15;

begin

preclk<='0';

ifcount4>11thenpreclk<='1';count4:=0;

elsifclk1'eventandclk1='1'thencount4:=count4+1;

endif;

endprocess;

genspks:process(preclk,tone1)

variablecount11:integerrange0to2047;

begin

ifpreclk'eventandpreclk='1'then

ifcount11=2047then

count11:=tone1;fullspks<='1';

elsecount11:=count11+1;fullspks<='0';

endif;

endif;

endprocess;

delayspks:process(fullspks)

variablecount2:std_logic;

begin

iffullspks'eventandfullspks='1'thencount2:=notcount2;

ifcount2='1'thenspks<='1';

elsespks<='0';

endif;

endif;

endprocess;

end;更多我的日记►EDA三层电梯控制设计

2009-07-1109:04

►大学学会的很多事(转)

2009-06-1913:04

►我--两面真

2009-06-1616:16查看/发表评论您还没有登录,请登录后发表留言、评论!用户名/彩虹号:

密码:隐身登录点这里快速注册

共0条评论Copyright©2005-201151.com申请您的主页|问题、意见反馈

现代电源技术基于BUCK电路的电源设计学院:专业:姓名:班级:学号:指导教师:日期:目录摘要 2一、设计意义及目的 3二、Buck电路基本原理和设计指标 32.1Buck电路基本原理 32.2Buck电路设计指标 5三、参数计算及交流小信号等效模型建立 53.1电路参数计算 53.2交流小信号等效模型建立 9四、控制器设计 10五、Matlab电路仿真 165.1开环系统仿真 165.2闭环系统仿真 17六、设计总结 20 摘要 Buck电路是DC-DC电路中一种重要的基本电路,具有体积小、效率高的优点。本次设计采用Buck电路作为主电路进行开关电源设计,根据伏秒平衡、安秒平衡、小扰动近似等原理,通过交流小信号模型的建立和控制器的设计,成功地设计了Buck电路开关电源,通过MATLAB/Simulink进行仿真达到了预设的参数要求,并有效地缩短了调节时间和纹波。通过此次设计,对所学课程的有效复习与巩固,并初步掌握了开关电源的设计方法,为以后的学习奠定基础。关键词:开关电源设计Buck电路1一、设计意义及目的通常所用电力分为直流和交流两种,从这些电源得到的电力往往不能直接满足要求,因此需要进行电力变换。常用的电力变换分为四大类,即:交流变直流(AC-DC),直流变交流(DC-AC),直流变直流(DC-DC),交流变交流(AC-AC)。其中DC-DC电路的功能是将直流电变为另一固定电压或可调电压的直流电,包过直接直流变流电路和间接直流变流电路。直接直流变流电路又称斩波电路,它的功能是将直流电变为另一固定电压或可调电压的直流电,主要包括六种基本斩波电路:Buck电路,Boost电路,Buck-Boost电路,Cuk电路,Sepic电路,Zeta电路。其中最基本的一种电路就是Buck电路。因此,本文选用Buck电路作为主电路进行电源设计,以达到熟悉开关电源基本原理,熟悉伏秒平衡、安秒平衡、小扰动近似等原理,熟练的运用开关电源直流变压器等效模型,熟悉开关电源的交流小信号模型及控制器设计原理的目的。这些知识均是《线代电源设计》课程中所学核心知识点,通过本次设计,将有效巩固课堂所学知识,并加深理解。二、Buck电路基本原理和设计指标2.1Buck电路基本原理 Buck变换器也称降压式变换器,是一种输出电压小于输入电压的单管不隔离直流变换器,主要用于电力电路的供电电源,也可拖动直流电动机或带蓄电池负载等。其基本结构如图1所示:图1Buck电路基本结构图在上图所示电路中,电感L和电容C组成低通滤波器,此滤波器设计的原则是使Vs(t)的直流分量可以通过,而抑制Vs(t)的谐波分量通过;电容上输出电压V(t)就是Vs(t)的直流分量再附加微小纹波Vripple(t)。由于电路工作频率很高,一个开关周期内电容充放电引起的纹波Vripple(t)很小,相对于电容上输出的直流电压V有:Vripple(t)max一个周期内电容充电电荷高于放电电荷时,电容电压升高,导致后面周期内充电电荷减小、放电电荷增加,使电容电压上升速度减慢,这种过程的延续直至达到充放电平衡,此时电压维持不变;反之,如果一个周期内放电电荷高于充电电荷,将导致后面周期内充电电荷增加、放电电荷减小,使电容电压下降速度减慢,这种过程的延续直至达到充放电平衡,最终维持电压不变。这种过程是电容上电压调整的过渡过程,在电路稳态工作时,电路达到稳定平衡,电容上充放电也达到平衡。当开关管导通时,电感电流增加,电感储能;而当开关管关断时,电感电流减小,电感释能。假定电流增加量大于电流减小量,则一个开关周期内电感上磁链增量为:∆Ψ=L(∆i2.2Buck电路设计指标 基于如上电路基本原理,设定如下指标:输入电压:25v输出电压:5v输出功率:10W开关频率:100KHz电流扰动:15%电压纹波:0.02根据上述参数可知:R=2.5Ω三、参数计算及交流小信号等效模型建立3.1电路参数计算根据如图2所示Buck电路开关等效图可知:图2Buck电路的开关等效图Buck有两种工作状态,通过对开关管导通与关断时(即开关处于1时和2时)的电路进行分析可计算出电路的电感值。其开关导通与关断时对应的等效电路图如图3、4所示:图3导通时等效电路图4关断时等效电路开关处于1位置时,对应的等效电路为图3,此时电感电压为:vL(t)=根据小扰动近似得:

vL(t)≈V同理,开关处于2位置时,对应的等效电路为图4,此时电感电压为:vLt=-v 根据小扰动近似得:vLt≈V(4) 根据以上分析知,当开关器件位于1位置时,电感的电压值为常数V图5Buck电路稳态电感电压波形再根据电感上的伏秒平衡原理可得:Vg代入参数可得:占空比D=0.2。根据电感公式知:vL在电路导通时有:diL(t)对应关断时为:diL根据式7和8,结合几何知识可推导出电流的峰峰值为:

2∆iL=其中∆i∆iL=通常扰动电流∆iL值是满载时输出平均电流I的10%~20%,扰动电流∆iL的值要求尽可能的小。在本次设计中选取L>Vg代入参数可得:电感L>66.68由于电容电压的扰动来自于电感电流的扰动,不能被忽略,因此在本Buck电路中小扰动近似原理不再适用,否则输出电压扰动值为零,无法计算出滤波电容值。而电容电压的变化与电容电流波形正半部分总电荷电量q有关,根据电量公式Q=CV可以得q=C(2∆v)(12)电容上的电量等于两个过零点间电流波形的积分(电流等于电量的变化率),在改电路中,总电量去q可以表示为:q=12将式12代入式13中可得输出电压峰值∆v∆v=∆iLTs8C再将式10代入式14中可得:∆v=(1-D)16LC根据设计中参数设定电压纹波为2%,即∆v<2%V,代入式15中可得:C>0.故电路参数为:占空比D=0.2,L=300uH,C=300uF。3.2交流小信号等效模型建立 根据定义,分别列出电感电流和电容电压的表达式。在图3对应状态时:Vic在图4对应状态时:VLt=-V(t)利用电感与电容的相关知识可以得出:<Vg化简得:Ld<i(t)在稳态工作点(V,I)处,构造一个交流小信号模型,假设输入电压vg(t)和占空比d(t)的低频平均值分别等于其稳态值Vg、D加上一个幅值很小的交流变量VgLi(t)dt=D根据上式建立建立交流小信号等效模型,如图6:图6交流小信号等效模型四、控制器设计根据所建立的交流小信号等效模型可知,Buck电路中含有两个独立的交流输入:控制输入变量d(s)和给定输入变量vg(s)。交流输出电压变量v vs式21描述的是vg(s)中的扰动如何通过传递函数Gvds传送给输出电压v已知输入输出传递函数Gvgs和控制输入输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论