FPGA直流电机控制系统设计_第1页
FPGA直流电机控制系统设计_第2页
FPGA直流电机控制系统设计_第3页
FPGA直流电机控制系统设计_第4页
FPGA直流电机控制系统设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、中文摘要直流电机具有良好的启动和调速性能,被广泛地应用于对启动和调速有较高要求的拖动系统。本设计介绍了基于FPGA用PWM实现直流电机调整的基本方法,直流电机调速的相关知识,及PWM调整的基本原理和实现方法。重点介绍了基于FPGA用软件产生PWM信号的途径,输出的PWM波形具有频率高、占空比调节步进细的优点。对直流电机调速的实现提供了一种有效的途径。关键词:直流电机 PWM 频率计 AbstractThis paper introduces a kind of method of DC motor speed modification based on PWM theory bythe FPG

2、AShowing some relative knowledge upon the DCmotor timing,the basic theory and the way to implementAnd it emphasizes on the way for carrying out PWM signals based on FPGAThis PWM signals advatages base its high frequency and duty cycle stepping fine adjustment.It offers a sort ofeficient method for t

3、he DC motor speedcontrolling systemKeyword: DC motor PWM Cymometer目 录引 言1第一章:设计方案及系统分析21.1 系统的实现及参数的要求21.2 直流电机调速原理213 PWM基本原理设计方案31.3.1 PWM基本原理31.3.2 PWM波形的设计方案41.4 系统的外围硬件及其与FPGA的接口电路51.5 系统的工作流程6第二章、硬件设计82.1、电源模块的设计82.2、电机驱动模块92.3、电机转速测量模块102.4、按键输入模块112.5、LED显示模块12第三章、系统软件设计及分析143.1、频率计的设计143.2、

4、数据显示的程序设计163.3、PWM波形发生器的程序设计及分析183.4 PID控制模块193.5 键盘输入模块25第四章核心器件及开发环境的介绍274.1 FPGA核心板的介绍274.2四电压比较器LM339简介284.3开发环境 Quartus II 7.0 介绍30第五章 系统调试325.1 硬件电路的调试325.1.1 电源电路325.1.2 显示电路的调试325.2 系统软件调试335.2.1消抖电路参数的调整335.2.2 PWM波形参数的设计335.2.3 比较器的设计345.2.3PID控制器的参数设计345.2.4系统的最终实现35结束语36致 谢37参考文献38 40引 言

5、电机是电动机和发电机的统称,是一实现机电能转换的电磁装置。拖动生产机械,将电能转换为机械能的电机称为电动机;作为电源,将机械能转换为电能的电机称为发电机。由于电流有交流、直流之分,所以电机也就分为交流电机和直流电机两大类。在各类机电系统中,由于直流电机具有良好的起动、制动和调速性能,直流调速技术已广泛运用于工业、航天领域的各个方面。直流电机具有良好的启动和调速性能,被广泛地应用于对启动和调速有较高要求的拖动系统,例如电力牵引、轧钢机、起重设备等。小容量的直流电动机在制动控制系统中的应用也很广泛。本设计的课题为基于FPGA的直流电机调速系统。最常用的直流调速技术是脉宽调制(PWM)直流调速技术,

6、它具有调速精度高、响应速度快、调速范围宽和耗损低等特点。系统采用PWM调节实现对电机的调速,采用红外发射接收对管采集电机转速。FPGA系统内部进程工作在并行的状态下,各子进程相互独立,输出的PWM波形具有频率高,占空比调节步精密的特点。高频率的PWM波形对直流电机工作的稳定起着极其重要的作用,尤其在高负载的调速系统中体现的优越性极其明显,频率越高电机运行越平稳。另外,对PWM 波形输出占空比的调节步进细分的特点大大的扩大了调速系统的调速范围。本设计中主要研究FPGA产生PWM波形的优越性并对其进行验证,并且针对FPGA系统进行等精度频率测量的高精度性进行验证。第一章:设计方案及系统分析1.1

7、系统的实现及参数的要求本系统是基于FPGA的直流电机闭环控制系统。要求系统能用按键设定电机的工作转速,并在系统工作时可以通过外部设定改变电机的转速。当电机的负载变化时,系统通过检测电机转速的变化对电机的转速进行PID调节,迅速调整电机的转速稳定工作在设定的工作频率。要求系统工作稳定在设定值偏差1HZ范围内。1.2 直流电机调速原理根据励磁方式不同,直流电机分为自励和他励两种类型。不同励磁方式的直流电机机械特性曲线有所不同。对于直流电机来说,人为机械特性方程式为1 (1.1)式中:、额定电驱电压、额定磁通量、与电机有关的常数、电机外加电阻、电机内阻、 理想空载转速、转速降分析(1.1)式可得当分

8、别改变 、和时,可以得到不同的转速n,从而实现对速度的调节。由于当改变励磁电流时,可以改变磁通量的大小,从而达到变磁通调速的目的。但由于励磁线圈发热和电动机磁饱和的限制,电动机的励磁电流If和磁通量 只能在低于其额定值的范围内调节,故只能弱磁调速。而对于调节电枢外加电阻R时,会使机械特性变软,导致电机带负载能力减弱。 对于他励直流电机来说,当改变电枢电压Un时,分析人为机械特性方程式,得到人为特性曲线如图11所示。理想空载转速随电枢电压升降而发生相应的升降变化。不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定。当我们平滑调节他励直流电机电枢两端电压时,可

9、实现电机的无级调速。基于以上特性,改变电枢电压,实现对直流电机速度调节的方法被广泛采用。改变电枢电压可通过多种途径实现,如晶闸管供电速度控制系统、大功率晶体管速度控制系统、直流发电机供电速度控制系统及晶体管直流脉宽调速系统等。图 11 直流电机机械特性曲线13 PWM基本原理设计方案1.3.1 PWM基本原理PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变

10、直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。如图12所示,在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。设电机始终接通电源时,电机转速最大为,设占空比为,则电机的平均速度为2 式中, 电机的平均速度;电机全通电时的最大速度。,占空比。图 12 电驱电压“占空比”与平均电压关系图1.3.2 PWM波形的设计方案如果采用CPU控制产生PWM信号,一般的PWM信号是通过模拟比较器产生的,比较器的一端接给定的参考电压,另一端接周期线形增加的锯齿波电压。当锯齿

11、波电压小于参考电压时输出低电平,当锯齿波电压输出电压大于参考电压时输出高电平。改变参考电压就可以改变PWM波形中高电平的宽度。若用单片机产生PWM波形信号,需要通过D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟器输出PWM波形,因此外围电路比较复杂。 FPGA中的数字PWM控制与一般的模拟PWM控制不同。用FPGA产生PWM波形,只需要FPGA内部资源就可以实现。用数字比较器代替模拟比较器,数字比较器的一端接设定值计数器输出,另一端接线性递增计数器输出。当线性计数器的计数值小于设定值时输出低电平,当计数值大于设定值时输出高电平。与模拟控制相比,省去了外接D/A转换器和模拟比较器的,FP

12、GA内部连线很少、电路更加简单、便于控制。脉宽调制细分驱动电路的关键是脉宽调制,转速的波动随着PWM脉宽细分数的增大而减小。 针对FPGA的优越性,本设计采用了Altera 公司的EP2C5Q208C8 FPGA芯片作为系统的核心控制器件,设计基于FPGA的直流电机闭环控制系统。31.4 系统的外围硬件及其与FPGA的接口电路硬件系统由FPGA核心学习板模块、显示模块、按键输入模块、电机测速模块、直流电机驱动模块组成,如图13。显示模块按键输入FPGA直流电机驱动电路及直流电机电机转速采集电路 图 13 系统硬件框架图1.5 系统的工作流程基于FPGA的直流电机闭环控制系统的系统工作流程框图如

13、图 14。+0.57-0.57 设定的转速值+5.7-5.7 实际转速 光电传感器采集 PWM设定频率值显示模块偏差值比较值B产生器(PWM周期调节器)比较器2(PWM发生器)H型直流电机驱动按键5消抖电路开关控制器直流电机频率计转换为转速值实际转速显示模块比较器1设定电机转速按键4按键3按键2按键1比较值A(PID控制)系统通过FPGA内部产生PWM波形输出到H型驱动电路控制电机的转动,采集电路反馈电机转动的波形到FPGA进行系统分析,形成闭还控制。显示模块和按键输入独立接到FPGAD的I/O口,显示模块负责显示设定转速和实际测量到的转速。按键输入模块对系统内部信号进行设置。工作流程为:检测

14、到电机工作脉冲,将其转换为实际转速M,实际转速M与通过键盘设定好的设定转速N比较并且分析,得出偏差值Q,内部的PID调节器对偏差Q和M,N进行分析,输出调节比较器2(PWM波形发生器)的比较值的信号。比较器2输出的PWM波形接到电机开关控制器,电机控制器的输出由输入按键5控制。开关控制器开时输出PWM波形到H型驱动电路驱动电机工作。第二章、硬件设计2.1、电源模块的设计本系统的电源设计采用2个独立电源供电,核心控制部分采用5V,3.3V供电,先输出5V电压满足部分外围硬件工作电压,再将5V电压转为3.3V稳压输出满足FPGA系统工作电压。H型电机驱动电路采用15V电压供电。两电源的接口通讯部分

15、采用光电偶合器PC817实现。电源原理图如图214,图21中两电源不共地,IN1,IN2分别为隔离变压器输入的交流电压,经过整流二级管整流后输出直流电压,经4700u的滤波电容后得到平稳的直流电压,最后经过三端集成稳压器后在OUT1,和OUT2分别输出+5V和+15V的直流电压。0.1u的瓷片电容的作用是滤除电源高频成分,滤除直流电源对电子系统的影响。图 21 电源设计原理图2.2、电机驱动模块电机驱动采用型乔氏驱动电路5,该电路可通过控制电机转速和控制电机方向。 电路图如图22:电路与接口部分采用光偶隔离,通过控制光电偶合器,的红外发光二级管的亮与灭来控制控制,的导通与截止。如下图:当、的电

16、平分别为和时,截止,导通,电流方向为: 地,电机正转;若、的输出电平分别为和时,导通,截止,电流方向为: 地,电机反转。图 22 H型直流电机驱动电路2.3、电机转速测量模块由于在本系统设计中用由无刷直流电机组成的风扇来模拟,所以检测电机转速是通过在风扇的扇叶的两端分别装上一个红外线发射二级管和一个红外线接收管6。硬件电路如图23。工作流程为:当扇叶挡住红外发射对管时,接收管Q截止,由LM339构成的比较器的5脚正端输入得到的是接近5V的高电平。假设比较器的负端输入电压为3.8V,则比较器输出端IO输出高电平。反之,当红外收发对管没有被煽叶挡住的时候,接受管接受到DS发出的光而导通,在导通的情

17、况下,比较器5脚的正端输入电压被拉低到0.3左右,比4脚的3.8V电压低,从而使LM339的输出端2脚输出低电平。由此可知,当电机转动的时候,通过红外收发对管结合LM339够成的比较器电路,在比较器输出端IO得到周期随电机转速的变化而变化的方波,通过FPGA内部的频率计检测该波形可以转换准确的求出电机的转速。这样就完成了速度的采集部分。另外在设计电路的时候,LM339的电源两端并联个100u的电解电容和一个0.1u 的瓷片电容做为退偶电容,可以消除电源纹波的干扰使电路处于最佳工作状态。还有一点要说明的是,由于EP2C5的高电平为3.3V所以为了得到高电平为3.3V的方波,必需在LM339比较器

18、的输出端接3.3V的上拉电阻,调试电路的时候必须用示波器观察比较器输出的波形混有杂波,通过加大滤波电容等办法将杂波滤除,从而消除了干扰得到准备的测量值。 图 23 LM339比较器模块(测速模块)2.4、按键输入模块采用轻触键实现与FPGA的接口7。如图24,key1,key2,key3,key4,key5分别与FPGA核心板引出的IO口连接,由于接上了上拉电阻,所以当按键未按下时在FPGA上呈现的是高电平,当按键按下时,按键的两端导通接到地,在FPGA端口上呈现低电平。FPGA通过检测输入端口的跳变或输入端口的电平状态来对内部信号进行调整。图 24 按键接口电路2.5、LED显示模块显示采用

19、2片4位一体共阴极8段数码管显示8,一片用来显示设定的转速,;另一片用于显示实际采集到的电机的转速。电路如图25,显示采用动态扫描方式实现,数码管的段码并联经过一线流电阻直接接到FPGA的IO口,位选端经过小功率NPN三级管8050实现扫描开关控制。R1R8为150欧姆的限流电阻,R9R16为4.7K,用与保持三级管基极电压。当P2输出的位选信号为低电平时,三极管截止,数码管熄灭。当P2输出信号为高电平时,三极管导通,位选接地,数码管点亮。数码管扫描显示就是依次单个选通8个位选端,快速的循环显示。动态扫描不仅节约IO口,而且减少了电源的负载。P1,P2分别接FPGA核心板引出的IO口。图 25

20、 LED显示模块电路第三章、系统软件设计及分析3.1、频率计的设计对电机转速的测量是通过对LM339输出的脉冲个数在一定闸门时间进行记数。通过对记数值的转换来得到电机的转速。由于风扇有的转轴有7片煽叶,所以电机转过一圈产生7个脉冲个数。在本设计中,闸门时间为0.25秒。假设在0.25秒的闸门时间内共检测到 N个脉冲,则可以通过计算得出 电机的转速 F=N*4/7 转/秒。在频率检测电路中,对脉冲输入检测的消抖电路极其重要消抖进程的时钟参数的设计直接影响到最后频率计得出的频率值。下面结合消抖进程的仿真波形和VHDL代码简单介绍消抖电路的工作原理和参数的设计9。RTL视图: 图 31 消抖电路RT

21、L视图仿真波形:图 32 仿真波形图 消抖进程 VHDL 代码:library ieee;use ieee.std_logic_1164.all;entity doudong isport(din,clk:in std_logic; dout:out std_logic);end doudong;architecture beha of doudong issignal x,y:std_logic;beginprocess(clk)begin if clk'event and clk='1' then x<=din; y<=x; end if;dout<

22、;=x and (not y);end process;end beha;从RTL视图中可知,该电路是由2个D触发器构成的RS触发器。进程中CLK为消抖时钟,din 为IO口电平输入,dout为输出信号。CLK的时间周期的设计直接影响频率计计数的准确行。从仿真波形可以设计出CLK的周期应为: T<Tclk<Tmin, Tclk为CLK的时钟周期,T为干扰信号的周期,Tmin 为电机达到最大速度时检测到波形信号的周期。如果Tclk<T 则带入了干扰信号,没有达到消抖的作用。如果T>Tmin ,则是消抖过大,把有用的信号滤除掉。在设计Tclk 时,结合设计电路,不断的测试并

23、对得到的值进行对比将Tclk的周期设为100us左右,测量得到准确的频率值。3.2、数据显示的程序设计对设定值和实际转速的显示都是经过换算分别求得要显示的数的十位、个位、十分位、百分位的值。然后经过转换成为BCD码,最终显示在2片4位一体的共阴极数码管上面。在换算过程中,是通过编写一个除法器来对要显示的数值进行求余取摸运算。除法器如图32。由于该除法器只能对2个整数进行进行除法运算,所以对要处理的数乘以100,假设乘以100后得到的数为M(即为图33中的a),则对M先除以1000(即为下图中的b),得到的商y和余数rest。Y为十位的数值,rest为M求余100得到的值。接着对rest除以10

24、0即可即可得到个位的位数和余数,即为循环上述的过程,整个显示模块总共调用了3个除法器10。图 33除法器电路除法器VHDL代码如下: library ieee;use ieee.std_logic_1164.all;entity divider is generic (n:integer :=14); port(a,b:in integer range 0 to 32767; y: out std_logic_vector(14 downto 0); rest: out integer range 0 to 32767 );end divider;architecture rt1 of div

25、ider is begin process(a,b)variable temp1:integer range 0 to 32767;variable temp2:integer range 0 to 32767; begin temp1:=a; temp2:=b;for i in n downto 0 loop if (temp1>=temp2*2*i) then y(i)<='1'temp1:=temp1-temp2*2*i;else y(i)<='0'end if ;end loop;rest<= temp1;end process;

26、end rt1;3.3、PWM波形发生器的程序设计及分析PWM波形发生器,如图34:PWM的产生是从比较器的输出得到的,通过改变比较器的输入来达到输出周期一定占空比可调的方波。设计思路为dataa从0到1024步进加1一直循环,循环的周期即为最终输出的方波的周期。Dataa 的值从0一直加1加到1024后跳变回到0,从模拟的角度考虑问题,可以把dataa 看成是周期一定的锯齿波。通过PID控制器计算,根据反馈的值调整datab对比较器的输入,从而达到改变输出PWM占空比的目的。datab在系统内部定义为标准逻辑类型 signal:datab std_logic_vector(9 downto

27、0); 转换成10进制其最大值为1024,但是由于PID控制器的原因,datab的取值在转换成10进制后只能在30-994的范围内。若超出范围,则在调整datab时 执行 datab<=dadab+30或datab<=data-30语句时,datab的值益出跳出最大值或最小值,导致输出占空比突然跳变,影响系统的稳定性。图 34 比较器电路(PWM波形发生器)3.4 PID控制模块根据测量到的实际转速(假设为M)结合设定的转速(假设为N),对数据进行分析,采用PID控制算法对决定转速大小的占空比输出进行调整。控制框图如图35: 控制模块包括一个比较器和一个比较值发生器(即为占空比调整

28、器)。比较值发生器结合偏差来调整输出比较值DATA。偏差Q=|MN|,比较器输出为OUT,当实际值>设定值时 OUT=1;当实际值设定值时 比较器输出OUT=0;即 当OUT=1 时,Q=MN,当OUT=0时 Q=NM 。比较器设定值M比较器输出 OUT比较值发生器偏差Q实际值N比较值 DATA 图35 PID控制框图比较器VHDL代码如下:library ieee;use ieee.std_logic_1164.all;entity bijiaoqi is port(M,N : integer range 0 to 9999; outp:out std_logic); end biji

29、aoqi ;architecture one of bijiao qi is begin process(M,N) beginif M>N then outp<='1'else outp<='0' ; end if;end process;end one ;PID调节器11程序设计流程图如图36,当实际值大于设定值时,PID控制器应该做出反应,相应减小占空比输出。当实际值小于设定值时,应增加占空比出。PID控制器根据实际采样跟设定的偏差值Q的不同做出不同的调节,控制器根据Q所落在数据的范围对输出的比较值进行粗调或微调,调节步进可变,步进的取值是

30、经过多次的实际测试得出适当的值。在本系统中取值为:当Q值>=570时,DATA为调整值,DATAT的调节步进为30,即偏差较大时需要对PWM波形输出的占空比做较大的调整才能达到迅速调节的目的。当114<Q<570时,DATA调节步进为6,当实际值接近设定值时,应该适当减小调整步进,以免调整过大造成系统工作波动太大。当时,实际值逼近设定值,这时应对DATA进行小幅度调节,调节步近为3。当时,实际值临近设定工作频率,控制器以微小的步进对DATA进行调节,步进值为最小值1。若Q=0 则不对DATA进行调整。逐次逼近最终使系统工作稳定在设定值。由于系统工作负载是动态变化的,所以调节也

31、是随着负载的变化动态调节PWM波形输出。偏差值Q之所以那么大是因为Q是设定值跟实际值的差求得,但是因为显示部分要对设定值和实际值进行除法运算,由于除法器支持的是整数的运算,所以先把设定值和实际值放大100倍,然后进行处理才能分出十分位、百分位。由于频率计的记数闸门时间设定为0.25秒,闸门时间中记数值为NUM,系统采用风扇来模拟,电子转过一圈产生脉冲个数X=7。由此可以换算得出频率F=4*NUM /X,即F=0.57NUM。所以本系统的调节频率为步进0.57HZ。若想更细分调节电机的工作频率范围,可以通过提高X的值来实现。本系统中X取值为7。YES NO YES YESNO NO YES YE

32、S NO NO YES YESNO NO YES NO NO YES 实际值设定值?偏差=设定值实际值偏差=实际值设定值偏差570?偏差570?调整值=调整值+30调整值=调整值-30114偏差=570 ?114偏差=570 ?调整值=调整值-6调整值=调整值+657偏差=114 ?57偏差=114 ?调整值=调整值-3调整值=调整值+30偏差=57 ?0偏差=57 ?调整值保持不变调整值=调整值+1调整值=调整值-1图 36 PID控制流程PID控制器进程的VHDL代码:-*-*PROCESS(clk_1hz,power) - 输出调整variable BB:std_logic_vector

33、(9 downto 0):="0000111111" -调整值-初值为128BEGIN IF POWER='0' THEN BB:="0000111111" ; -电机关时调整值发返回到初值 ELSIF clk_1hz'EVENT AND clk_1hz='1' THEN -当电机开时(即POWER=1)-根据偏差做调整偏差为0 if chazhi=0 then BB:=BB+0; -不进行调整 elsif chazhi <=57 then -偏差值小于等于57 调整步进为1 IF OUT1='1&#

34、39; THEN BB:=BB-1; -OUT为1表示实际值大于等于设定-反之为0 IF BB<"0000100000" THEN BB:="0000100000" END IF; -调整值输出最小为 64 else BB:=BB+1; IF BB>"1111011111" THEN BB:="1111011111" END IF; -调整值输出最大值限制在980 end if; elsif chazhi <=114 and chazhi >57 then -偏差值大于57且小于等于114

35、时调整步进为3 if out1='1' then BB:=BB-3; IF BB<"0000100000" THEN BB:="0000100000" END IF; else BB:=BB+3; IF BB>"1111011111" THEN BB:="1111011111" END IF; end if; elsif chazhi <570 and chazhi>114 then -偏差值大于114且小于570 时调整步进为 6 if out1='1' t

36、hen bb:=bb-6; IF BB>"1111011111" THEN BB:="1111011111" END IF; else bb:=bb+6; IF BB>"1111011111" THEN BB:="1111011111" END IF; end if;elsif chazhi >=570 then -偏差值大于等于570时调整步进为30 (粗调) IF OUT1='1' THEN BB:=BB-30; IF BB<"0000100000"

37、THEN BB:="0000100000" END IF; else BB:=BB+30; IF BB>"1111011111" THEN BB:="1111011111" END IF; END IF; end if; end if; if bb ="1111011111" and sheding>pin then led_guozai<='0' -当调整值达到最大值且实际值小于 -设定值时 点亮过载指示灯 else led_guozai<='1' ; en

38、d if; B<=BB;END PROCESS;3.5 键盘输入模块本设计中总共有5个按件输入。分别设为 key1, key2, key3, key4, key5。其中key1, key2, key3, key4 为设定值输入键,分别为加0.57,减0.57,加5.7,减5.7。 key5为电机开关控制键。两个输入模块的程序设计有所不同,FPGA对key1, key2, key3, key4的识别为输入信号电平的判断,进程的始终信号为1HZ,通过检测时钟信号上升沿时输入信号的电平高低来做出反应,当按键未按下时输入信号为高电平,时钟上升沿时参数设置条件不成立。当按键按下时,输入信号为低电平

39、,时钟信号上升沿时参数设置条件成立,设定值随时钟上升沿到来而按一定步进加或减。对于key5的检测,是通过检测输入信号的边沿跳变来实现的,既然是检测边沿跳变,则需要加消抖电路滤除干扰。当检测到输入信号的下降沿时,立即取反内部信号 POWER ,当POWER 为1时 电机开,当POWER为0时,电机关,系统上电时初始化信号POWER 默认为0 ,即电机关状态。 key1, key2, key3, key4控制进程代码如下: -*process(CLK_ANJIAN)-按键变化的时间begin if CLK_ANJIAN'event and CLK_ANJIAN='1' th

40、en if key1='1' then sheding<=sheding+57; elsif key2='1' then sheding<=sheding-57; elsif key3='1' then sheding<=sheding+570; elsif key4='1' then sheding<=sheding-570; end if ;end if;end process;-*key5控制进程代码如下:process(key5)begin if key5'event and key5=&#

41、39;1' then power<= not power;end if;end process; 第四章核心器件及开发环境的介绍4.1 FPGA核心板的介绍在在本系统是基于Altera 公司的 Cyclone II 系列的 EP2C5Q208C8 FPGA芯片12,该芯片内部有4608个逻辑单元,2个PLL,5个18比特乘18比特乘法器。核心板的外部输入的有源晶振为50MHZ。图4-1为EP2C5Q208C8 FPGA芯片的资源结构图。Altera 在大获成功的第一代Cyclone 系列的基础上,开发了90nm低k绝缘工艺,1.2V SRAM工艺设计,在300mm 圆晶片上生产的

42、Cylclone II FPGA。Cylclone II FPGA具有很高的性能和极低的功耗,而价格和ASIC相当,能够提供多种功能,为价格敏感的应用工大批量产品解决方案。Cylclone II 器件是汽车、通信、消费类、视频处理、测试和测量以及其他终端市场解决方案的理想选择。用户可以单独使用Cylclone II FPGA 或者作为数字信号处理(DSP)协处理器使用,提高DSP应用的性价比。Cylclone II 期间含有经过优化的多种DSP特性,由altera 全面的DSP流程提供支持。Cylclone II DSP 支持包括:18*18乘法器多大150个片内嵌入式存储器高达1.1Mbit

43、sDSP IP 核Math Work 的 Simulink和MATLAB软件DSP Builder 接口Cylclone II 版DSP开发、套件Cylclone II 器件提供了4608到68416个逻辑单元,并具有一整套最佳的功能,包括嵌入式18比特乘18比特乘法器、专用外部存储器接口电路、4Kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。 图 41 EP2C5Q208C8 的资源结构图。4.2四电压比较器LM339简介LM339集成块内部装有四个独立的电压比较器13,该电压比较器的特点是:1)失调电压小,典型值为2mV;2)电源电压范围宽,单电源为2-36V,双电

44、源电压为±1V-±18V;3)对比较信号源的内阻限制较宽;4)共模范围很大,为0(Ucc-1.5V)Vo;5)差动输入电压范围较大,大到可以等于电源电压;6)输出端电位可灵活方便地选用。 LM339集成块采用C-14型封装,图42为外型及管脚排列图。由于LM339使用灵活,应用广泛,所以世界上各大IC生产厂、公司竟相推出自己的四比较器,如IR2339、ANI339、SF339等,它们的参数基本一致,可互换使用。 图 42 LM339的外型及管脚排列图LM339类似于增益不可调的运算放大器。每个比较器有两个输入端和一个输出端。两个输入端一个称为同相输入端,用“+”表示,另一个

45、称为反相输入端,用“-”表示。用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM339输入共模范围的任何一点),另一端加一个待比较的信号电压。当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。当“-”端电压高于“+”端时,输出管饱和,相当于输出端接低电位。两个输入端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM339用在弱信号检测等场合是比较理想的。LM339的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)。选不同阻值的上拉电阻会影响输出端高电位的

46、值。因为当输出晶体三极管截止时,它的集电极电压基本上取决于上拉电阻与负载的值。另外,各比较器的输出端允许连接在一起使用。在本设计中,比较器的接法为单限比较器电路,单限比较器的标准接法为下图:图 43 单限比较器的标准接法4.3开发环境 Quartus II 7.0 介绍Quartus II 7.014是Altera 提供的FPGA/CPLD 开发集成环境,Altera是世界上最大的可编程逻辑期间供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAP+plus II 的更新换代产品,其界面友好,使用便捷。在Quartus II 上能完成整个基于

47、VHDL等硬件描述语言的至顶向下的设计流程,它提供一种与结构武官的设计环境,使设计者能方便的进行输入、快速处理和器件编程。Altera 的Quartus II 提供完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP 开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL,Verilog的设计流程,其内部嵌有VHDL,Verilog 逻辑综合器。Quartus II 也可以利用第三方的综合工具,如Leonardo Specturm 、Sysplify Pro 、FP

48、GA Complier II,并能直接调用这些工具。同样,Quartus II 具备仿真功能,同时也支持第三方的仿真工具,如Modelsim。此外,Quartus II 与MATLAB 和DSP Builder 结合,可以进行基于FPGA的DSP 系统开发,是DSP硬件系统实现的关键EDA工具。Quartus II包括模块化的编译器。编译器包括的功能模块有分析综合器(Analysis&Systhesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、EDA网表文件生成器(EDA N

49、etlist Writer)、编辑数据接口(Complier Darabase Interface)等。可以通过选择 Start Compliation 来运行所有的编译器模块,也可以通过Start单独运行各个模块。还可以通过选择Complier Tool(Tools菜单),在Compiler Tool窗口中运行该模块来启动编译器模块。在Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。此外,Quartus II 还包括许多十分有用的LPM(Library of Parameteriterized Modules)模块,它们是复杂或高级系统构件的重要组

50、成部分,也可在Quartus II中与普通设计文件一起使用,Altera提供的LPM函数均基于Altera 器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera 特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。第五章 系统调试5.1 硬件电路的调试5.1.1 电源电路 对系统进行调试时,发现内部电路读不到电机转动发出的脉冲,在排除电路设计错误及LM339芯片烧坏的情况下,怀疑是电源带来的干扰。用示波器观察LM339的 第1脚输出电压波形(1脚输出即为反应电机转速的连续脉冲)。发现输出的方波严重失真

51、,波形受干扰很大,导致内部频率计读不到输入脚的电平跳变。经分析认为是电源杂波干扰对LM339芯片的干扰,解决的办法是在LM339的电源脚接退藕电容,并连470uf 电解电容和瓷片电容0.1 uf各一个。电路接上后,用示波器观察LM339第1脚输出电压,转动电机得到频率随电机转速变化的漂亮干净的方波。 另外,在测试系统工作状态时,发现电机转速在输出PWM波形占空比不变时,测量到的转速不稳定。而理论上当占空比不变的时候,输出的平均电压是恒定的,电机的转速应稳定工作。经分析认为是电源电路不稳定造成电压波动,供电机工作的电源与系统控制器电源共用同一电源,从而导致两电源之间相互干扰。解决的办法是采用光电

52、耦合器将2个电路独立开来,用2个独立的电源供电,互不干扰,通过光电偶合器来控制电机。电路改良后发现消除了原来的干扰,系统稳定工作。5.1.2 显示电路的调试数码管显示过亮,消耗导致系统消耗电流太大,会导致系统工作电源不稳定,且数码管显示过亮从视觉上给操作用户带来不便。于是将接入到数码管段码的限流电阻加大,将原来150的限流电阻改为470 ,解决了以上现象。5.2 系统软件调试5.2.1消抖电路参数的调整本设计中2种不同的信号输入需要消抖,一是按键输入的消抖;另一个是LM339第1脚输出信号接入到FPGA的I/O口,该信号反映电机转速及其变化。在没有经过消抖电路的按键输入,由于按键输入的机械抖动,输入得到的信号抖动得很厉害很不稳定,不利于控制。对反映电机转速的消抖尤其重要,消抖不当将会导致频率计得到的数据因为抖动的干扰而发生错误。测量不到确定的频率值。消抖的参数取值不当将得到误差较大的频率值,只有参数设定在一定的范围内频率计才能读到精确的频率值,具体参数设定请参考3.1节 频率计的设计。按键输入的消抖参数则没那么严格

温馨提示

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

评论

0/150

提交评论