基于Verilog的课程设计.docx
- 文档编号:28111558
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:12
- 大小:377.39KB
基于Verilog的课程设计.docx
《基于Verilog的课程设计.docx》由会员分享,可在线阅读,更多相关《基于Verilog的课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
基于Verilog的课程设计
基于Verilog的课程设计
直流电机的PWM控制
指导老师:
翁嘉民
班级:
1031电气自动化技术
成员:
李高峰9112
王俊才9186
孟令朋9143
直流电机的PWM控制器的设计
1.绪论
直流电机介绍
直流电机是实现直流电能与机械能之间相互转换的一种电力机械,按照直流电机的用途分为直流电动机和直流发电机两类。
能够将机械能转换成直流电能的电机称为直流发电机;能够将直流电能转换成机械能的电机称为直流电动机。
1.1.1直流电机的特点
从直流电机与交流电机相比中可以看出,直流电机具有优良的调速性能和启动性能。
直流电机具有宽广的调速范围,平滑的无级调速特性,可实现频繁的无级快速启动、制动和反转;过载能力大,能承受频繁的冲击负载;能满足自动化生产系统中各种特殊运行的要求。
而直流发电机则能提供无脉动的大功率直流电源,且输出电压可以精确地调节和控制。
1.1.2直流电机的应用
直流电机是交通、工矿、建筑等行业中的常见动力机械,是机电行业人员的重要工作对象和工具。
在某些要求调速范围广、速度快、精密度高、控制性能优异的场合,直流电机的应用目前仍占有较大的比重,如大型可逆式轧钢机、内燃机车、矿井卷扬机、造纸和印刷机械、宾馆高速电梯、城市电车、电动自行车、龙门刨床、电力机车、地铁列车、船舶机械、大型精密机床和大型起重机等生产机械中。
介绍
EDA是ElectronicDesignAutomation的简称,从20世纪60年代中期发展开始至今,已经取得了飞跃性的进步,在电子技术设计领域,可编程逻辑器件(如、)的应用,已经非常普及,这些可编程逻辑器件为的设计带来了相当大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构和改变,这就使得硬件的设计可以如同软件设计那样方便快捷效率高,可编程逻辑器件加快了EDA技术的发展,在现代社会,尤其是电子信息科技行业发展突飞猛进,在化工、机械、电子、通信、医学、航空航天、矿产、生物、军事等各个领域都有EDA的广泛应用,相信在为了社会EDA技术会发展的更加发达。
介绍
FPGA是Field-ProgrammableGateArray的简称,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列,内部包括可配置逻辑模块、输出输入模块和内部连线三个部分。
FPGA具有一些重要的特点,例如:
采用FPGA设计ASIC电路(),用户不需要投片生产,就能得到合用的芯片;FPGA可做其它全定制或半定制ASIC电路的中试样片;FPGA内部有丰富的触发器和I/O引脚;FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一;FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
所以可以这么认为,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
VerilogHDL硬件描述语言
1.4.1VerilogHDL硬件描述语言介绍
本文的程序采用VerilogHDL硬件描述语言,VerilogHDL硬件描述语言时目前应用最广泛的硬件描述语言,VerilogHDL可以用来进行各种层次的逻辑设计,也可以进行的逻辑综合,仿真验证和时序分析等。
VerilogHDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述。
本文就是基于FPGA,产生PWM波形,通过VerilogHDL语言编程实现电机的运转控制的。
1.4.2VerilogHDL功能
VerilogHDL典型的功能,基本逻辑门,例如and、or和nand等都内置在语言中。
用户定义原语(UDP)创建的灵活性。
用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。
开关级基本结构模型,例如pmos和nmos等也被内置在语言中。
提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。
可采用三种不同方式或混合方式对设计建模。
这些方式包括:
行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。
VerilogHDL中有两类数据类型:
线网数据类型和寄存器数据类型。
线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
能够描述层次设计,可使用模块实例结构描述任何层次。
设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。
VerilogHDL不再是某些公司的专有语言而是IEEE标准。
人和机器都可阅读Verilog语言,因此它可作为EDA的工具和设计者之间的交互语言。
VerilogHDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。
PLI是允许外部函数访问Verilog模块内信息、允许设计者与模拟器交互的例程集合。
设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。
能够使用内置开关级原语在开关级对设计完整建模。
同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。
VerilogHDL能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。
这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。
在行为级描述中,VerilogHDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。
能够使用门和模块实例化语句在结构级进行结构描述。
在VerilogHDL的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。
VerilogHDL还具有内置逻辑函数,例如&(按位与)和|(按位或)。
对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。
可以显式地对并发和定时进行建模。
提供强有力的文件读写能力。
PWM脉冲宽度调制介绍
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用的数字输出来对进行控制的一种非常有效的技术。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。
电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。
通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。
只要带宽足够,任何模拟值都可以使用PWM进行编码。
直流电机的PWM控制
PWM信号可以由CPU产生,也可以由FPGA产生。
由CPU产生PWM信号时,是通过模拟比较器产生的,比较器的一端接一个给定的参考电压,另一端接周期性线性增加的锯齿波电压。
当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时就输出高电平。
所以改变参考电压就可以改变PWM波形的高电平的宽度,也就是改变PWM波形的占空比。
CPU产生PWM信号,需要D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM,因此外围电路很复杂。
而用FPGA的数字PWM控制产生PWM信号,只需要FPGA内部资源就可以实现,FPGA的优点和工作原理前文已经描述,运用可编程逻辑器件,采用VerilogHDL硬件描述语言编程。
数字比较器的一端接设定值计数器输出,另一端接线性递增计数器输出。
如果线性计数器的计数值小于设定值是就输出低电平,如果线性计数器的计数值大于设定值时输出高电平。
FPGA的数字PWM控制与模拟PWM控制相比,省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少、电路简单、便于控制。
2.设计原理
设计原理框图
直流电机控制电路主要由3部分组成:
(1)FPGA中产生PWM脉宽调制信号电路
(2)FPGA中的工作/停止和正/反转方向控制电路
(3)记速显示模块
计数器设置PWM信号的占空比。
通过设定duty_cycle的值改变占空比,当pwm_en=1时,counter计数器的输出值增加,当计数器的值小于duty_cycle时,PWM的占空比就会增加,电机转速就会加快;否则PWM的占空比减小,电机转速就会变慢。
在电机控制模块里,设置了按键消抖部分,防止按键的不灵敏带来的误差,同时设置了3个按键,通过按键1控制电机速度,按键1可以改变duty_cycle的值,近而通过pwm_logic模块改变PWM波形达到改变速度的目的;通过按键2控制电动机启动、停止,按键2可以改变pwm_en的值,使电源接通或者关闭以使电机启动或者停止;通过按键3控制电动机正/反转,按键3可以改变电机控制模块内部的直流电流方向,从而改变电机的运转方向。
原理图
模块设计
2.3.1moto_test模块
该模块设计了3个按键,Key[2]:
按下该键产生信号,可以使PWM波形翻转,以控制电机正/反转;Key[1]:
按下该键测试信号,控制PWM波形输出或停止,从而控制电动机启动、停止;Key[0]:
按下该键时,可以改变PWM波形的占空比,占空比增加,电机加快,占空比减少,电机变慢,如下图所示:
模块程序如下:
modulemoto_test(clock,key,duty_cycle,pwm_en,pwm_in,motoa,motob,led);
inputclock;2.3.2p
2.3.3
lock(freq_input),.rst(rst),.cin(1'b1),.cout(cout1),.dout(pre_freq[3:
0]));
cnt10u2(.clock(freq_input),.rst(rst),.cin(cout1),.cout(cout2),.dout(pre_freq[7:
4]));
cnt10u3(.clock(freq_input),.rst(rst),.cin(cout2),.cout(cout3),.dout(pre_freq[11:
8]));
cnt10u4(.clock(freq_input),.rst(rst),.cin(cout3),.cout(cout4),.dout(pre_freq[15:
12]));
cnt10u5(.clock(freq_input),.rst(rst),.cin(cout4),.cout(cout5),.dout(pre_freq[19:
16]));
cnt10u6(.clock(freq_input),.rst(rst),.cin(cout5),.cout(cout6),.dout(pre_freq[23:
20]));
cnt10u7(.clock(freq_input),.rst(rst),.cin(cout6),.cout(cout7),.dout(pre_freq[27:
24]));
cnt10u8(.clock(freq_input),.rst(rst),.cin(cout7),.cout(),.dout(pre_freq[31:
28]));
lk_1k(clk_scan),.d(freq_result),.dig(dig),.seg(seg));
endmodule
2.3.4计数器模块
该模块输入信号是电机速度,对其进行计数,便于频率计测试
modulefilter_200us(clk,in,out);
inputclk;
inputin;
outputout;
reg[19:
0]cnt;
regout_r;
always@(posedgeclk)
begin
if(in==1'h1)48M
实物图
7实训心得
参考文献
[1]潘松,黄继业.EDA技术实用教程[M].北京:
科学出版社,2006
[2]齐洪喜,陆颖.VHDL电路设计[M].北京:
清华大学出版社,2004
[3]江国强,李哲英.EDA技术与应用[M].北京:
电子工业出版社,2004
[4]雷伏容.VHDL电路设计[M].北京:
清华大学出版社,2006
[5]曾繁泰,陈美金.VHDL程序设计[M].北京:
清华大学出版社,2000
[6]潘松,王国栋.VHDL实用教程.成都:
电子科技大学出版社,2000
[7]赵雅兴.FPGA原理、设计与应用.天津:
天津大学出版社,1998
[8],,.基于FPGA的直流电机PWM控制器设计[J].微电机2009(10)
[9]卢杰,赖毅.VHDL与数字电路设计.北京:
科学出版社,2001
[10]张昌凡,龙永红,彭涛.可编程逻辑器件及VHDL设计技术.广州:
华南工学院出版社,2001
[11]张明.VerilogHDL实用教程.成都:
电子科技大学出版社,1999
[12]著,徐振林等译.VerilogHDL硬件描述语言.北京:
机械工业出版社,2000
[13]刘明业,将敬旗,刁岚松等译.硬件描述语言Verilog.北京:
清华大学出版社,2001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Verilog 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)