edapwm直流电机调速.docx
- 文档编号:449442
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:18
- 大小:85.01KB
edapwm直流电机调速.docx
《edapwm直流电机调速.docx》由会员分享,可在线阅读,更多相关《edapwm直流电机调速.docx(18页珍藏版)》请在冰豆网上搜索。
edapwm直流电机调速
“EDA技术应用”实训专用周
所属系部:
班级:
姓名:
指导老师:
目录
一、摘要3
二、关键字:
3
1绪论3
1.1、直流电机的介绍3
1.2、EDA的介绍4
1.3、FPGA的介绍4
1.4、VerilogHDL硬件描述语言的功能介绍5
2、设计原理7
2.2、直流电机的PWM控制8
2.3、直流电机控制原理图9
2.3、程序模块说明9
2.3.1、按键控制模块9
2.3.2、分频模块10
2.3.3、显示模块10
2.4、Pwm直流电机调速的功能说明12
总结113
总结214
3、附录15
3.1、总程序15
3.2、scan_led数码管显示17
3.3、cnt10十进制计数器18
4、参考文献18
一、摘要
本文阐述了基于verilogHDL控制直流电机的设计方法及设计思路,这次课程我们是通过改变脉冲的宽度来调控电机的转速,然后通过KEY1来控制直流电机的速度并LED1~LED4灯显示其速度的档位(0~F),KEY2控制直流电机的启动并由LED8显示其状态,由KEY3来控制直流电机的正反转,用speed来测试直流电机的速度并在数码管上显示出来,这次的设计主要用到了按键的消抖、按键控制显示、计数、分频、数码管显示、LED的控制等程序模块。
这次的课程设计是基于verilogHDL汇编语言实现的,我们在Quartus2来完成设计,最后在smartEDA实验箱上进行硬件测试。
二、关键字:
绪论、设计原理、模块说明、功能说明
1绪论
1.1、直流电机的介绍
直流电机是实现直流电能与机械能之间相互转换的一种电力机械,按照直流电机的用途分为直流电动机和直流发电机两类。
能够将机械能转换成直流电能的电机称为直流发电机;能够将直流电能转换成机械能的电机称为直流电动直流电机具有优良的调速性能和启动性能。
直流电机具有宽广的调速范围,平滑的无级调速特性,可实现频繁的无级快速启动、制动和反转;过载能力大,能承受频繁的冲击负载;能满足自动化生产系统中各种特殊运行的要求。
而直流发电机则能提供无脉动的大功率直流电源,且输出电压可以精确地调节和控制。
1.2、EDA的介绍
EDA电子设计自动化是ElectronicDesignAutomation的简称,从20世纪60年代中期发展开始至今,已经取得了飞跃性的进步,在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已经非常普及,这些可编程逻辑器件为数字系统的设计带来了相当大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构和改变,这就使得硬件的设计可以如同软件设计那样方便快捷效率高,可编程逻辑器件加快了EDA技术的发展,在现代社会,尤其是电子信息科技行业发展突飞猛进,在化工、机械、电子、通信、医学、航空航天、矿产、生物、军事等各个领域都有EDA的广泛应用
1.3、FPGA的介绍
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的使用非常灵活。
1.4、VerilogHDL硬件描述语言的功能介绍
VerilogHDL典型的功能,基本逻辑门,例如and、or和nand等都内置在语言中。
用户定义原语(UDP)创建的灵活性。
用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。
开关级基本结构模型,例如pmos和nmos等也被内置在语言中。
提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。
可采用三种不同方式或混合方式对设计建模。
这些方式包括:
行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。
VerilogHDL中有两类数据类型:
线网数据类型和寄存器数据类型。
线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
能够描述层次设计,可使用模块实例结构描述任何层次。
设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。
VerilogHDL不再是某些公司的专有语言而是IEEE标准。
人和机器都可阅读Verilog语言,因此它可作为EDA的工具和设计者之间的交互语言。
VerilogHDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。
PLI是允许外部函数访问Verilog模块内信息、允许设计者与模拟器交互的例程集合。
设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。
能够使用内置开关级原语在开关级对设计完整建模。
同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。
VerilogHDL能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。
这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。
在行为级描述中,VerilogHDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。
能够使用门和模块实例化语句在结构级进行结构描述。
在VerilogHDL的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。
VerilogHDL还具有内置逻辑函数,例如&(按位与)和|(按位或)。
对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。
可以显式地对并发和定时进行建模。
提供强有力的文件读写能力。
2、设计原理
2.1、PWM直流电机调速的原理
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。
电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。
通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。
只要带宽足够,任何模拟值都可以使用PWM进行编码。
2.2、直流电机的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、直流电机控制原理图
2.3、程序模块说明
2.3.1、按键控制模块
通过按key1、key2、key3来控制电机的速度、启动、正反转。
always@(posedgeclock)
begin
clk_1k=(counter>=17'd48000);
if(clk_1k)
counter<=17'd0;
else
counter<=counter+1'b1;
end
assignkey_out=(dout1|dout2|dout3);//按键的消抖
always@(posedgeclk_1k)
begin
dout1<=key;
dout2<=dout1;
dout3<=dout2;
end
always@(posedgekey_out[0])//按键1,控制电动机速度
begin
duty_cycle<=duty_cycle+1'b1;
end
always@(posedgekey_out[1])//按键2,控制电动机启动、停止
begin
pwm_en<=~pwm_en;
end
always@(posedgekey_out[2])//按键3,控制电动机正/反转
begin
moto_dir<=~moto_dir;
end
assignmotoa=moto_dir?
pwm_in:
1'b0;
assignmotob=moto_dir?
1'b0:
pwm_in;
2.3.2、分频模块
always@(posedgeclock)
begin
if(divide_clk)
counter2<=26'd0;
else
counter2<=counter2+1'b1;
end
assigndivide_clk=(counter2>=26'd48000000);//锁存测量值进程
always@(posedgeclock)
begin
if(divide_clk)
freq_result<=pre_freq;
end
always@(posedgeclock)//产生计数器复位信号
begin
if(divide_clk)
rst<=1'b1;
else
rst<=1'b0;
end
cnt10u1(.clock(freq_input),.rst(rst),.cin(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- edapwm 直流电机 调速