




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
三相步进电机控制器设计一、 设计任务及要求:设计任务: 1、输入信号:四个控制开关s1、s2、s3(开关拨下时s0,开关拨上时s1,)和一个外部的时钟源。其中:(1)、系统上电后,若s11,s21时,电机停止转动,步数清零(三个8421bcd数码管显示为000);(2)、系统上电后,若s1x(无关项),s20时,电机停止转动,步数显示保持(即暂停);(3)、系统上电后,若s10,s21时,步进电机三相三拍转动1周(360度),转动完成后停止,停止以后再操作s1、s2、s3无效,直至重新上电后才能从头工作;(4)、系统正常工作时,若s30时,步进电机正转,s31时,步进电机反转。2、外部输入脉冲信号时钟源(50mhz),经分频后产生两路5hz信号,供主控制器和步数计数器使用。还要产生一个400hz信号供三个7段数码管扫描显示使用。3、脉冲分配器将连续脉冲分配给a、b、c三相绕组,根据上面的要求,设计三相三拍控制方式,且具有正反转控制功能的脉冲分配器,即下列两种情况:(1)三相三拍正转(s3=1)abc110(ab)011(bc)101(ca)(2)三相三拍反转(s3=0)abc110(ab)101(ca)011(bc)其中每种状态切换时,对应电机转过1度角。4、脉冲分配输出的三路信号a、b、c分别经过脉冲放大器放大后驱动步进电机的三相绕组,本设计中a、b、c分别用三个led显示。5、输出3组8421bcd信号(每组4个输出端),并在fpga内部经过译码后获得七段led显示码,并通过扫描方式在三个发光led显示数码光上显示歩进电机的步数(即角度数)。三个数码管共享7位数据线,依靠扫描方式工作,用来计数电机步数或角度数(此处电机转一步即一度)。根据要求3中所述,数码管计数显示000360之间的数字。设计要求:1、 按照现代数字系统的top-down模块化设计方法,提出步进电机控制系统的整体设计方案,并进行正确的功能划分,分别提出并实现主控制器、分频器、步数计数器、扫描显示译码模块等四部分模块化子系统的设计方案。2、 在quartus的eda设计环境中,采用原理图和verilog语言混合输入的方法,完成系统的顶层设计、各子系统的模块化设计。分别完成各个基于verilog语言实现的子模块(包括分频器、步数计数器、主控制器、扫描显示译码四部分)的逻辑功能仿真,并对顶层设计进行功能和时序仿真。 3、 在2步的基础上,采用altera公司的cpld器件ep1c12f324c8对顶层设计进行适配(fit design),生成下载文件。4、 采用download软件将设计的jed文件烧录到试验板的芯片上,实际测试。二、设计原理与方案:(一)、顶层设计方案:设计原理图如下所示:该控制器共含有四大部分:主控制器、步数计数器、译码扫描显示电路、分频器。分频器由时钟源输入50mhz的脉冲,经过分频器可分频为5hz和400hz频率的脉冲,输入给下一级电路。主控制器部分根据外部输入的控制按键控制电机的转动方向,根据输入的脉冲控制电机的转动频率,并显示相序的变化。同时向步数计数器输出控制数值,以使步数计数器与主控器同步。另外在主控制器中还应有一个控制端来接收计数器的反馈,使电机在转动360度后能够停止转动。计数器部分根据分频器输入的脉冲数进行计数,并由主控制器的输出来控制其是否计数以及清零、暂停等功能。同时当记数到360步后反馈给主控制器一个控制值使其控制电机停止转动。将计数的数值输出给译码扫描电器。译码扫描电路中由分频器的400hz脉冲控制数码管的扫描频率。根据计数器的数值通过4-7译码器显示到数码上。(二)、控制器设计方案: 设计思路:控制器共有五个输入端口,分别为clk、s1、s2、s3、k。clk为脉冲输入端口。clk为输入脉冲,为5hz,由分频器输入。k为计数器的返回值,在步数达到360时,该值有效,电机停转。s1、s2、s3为三个控制键的输入在不同的情况下执行不同的动作,如下:(1)、系统上电后,若s11,s21时,电机停止转动,步数清零;(2)、系统上电后,若s1x(无关项),s20时,电机停止转动,步数显示保持(即暂停);(3)、系统上电后,若s10,s21时,步进电机三相三拍转动1周(360度),转动完成后停止,停止以后再操作s1、s2、s3无效,直至重新上电后才能从头工作;(4)、系统正常工作时,若s30时,步进电机正转,s31时,步进电机反转。控制器共有四个输出端口,分别为xiang、key1、key2、key3。 key1、key2、key3控制计数器与电机同步计数和清零。xiang为三个相位的输出。主控器程序如下:module kongzhiqi(clk,s1,s2,s3,k,xiang,key1,key2,key3);input clk,s1,s2,s3,k;output 2:0xiang;output key1,key2, key3;reg key1,key2;reg 2:0xiang;reg 2:0state;reg1:0i=2d0;always (posedge clk )begin if(s1=1 & s2=1) begin key1=1b0;key2=1b0; end else if(s1=1 & s2=0) begin key1=1b1;key2=1b0; end else if(s1=0 & s2=0) begin key1=1b1;key2=1b0; end else if(s1=0 & s2=1) begin if(k=1) begin key1=1b1;key2=1b1; xiang=xiang;end else begin i=(i=2d3)? 0:(i+2d1); case(i) 2d0: begin key1=1b1;key2=1b1;xiang=3b110;end 2d1: begin key1=1b1;key2=1b1;xiang=(s3=1d0)? 3b011:3b101; end 2d2: begin key1=1b1;key2=1b1;xiang=(s3=1d0)? 3b101:3b011; end endcaseendendendassign key3=s3;endmodule分频器程序如下:module fenpin(clk,pin5,pin400);input clk;output pin5;output pin400;reg 31:0 cout1;reg 31:0 cout2;reg clk_en1;reg clk_en2;always (posedge clk )begincout1 = (cout1 = 32d10000_000) ? 32d0 : (cout1 + 32d1);clk_en1 = (cout1 = 32d10000_000) ? 1d1 : 1d0; end always (posedge clk )begincout2 = (cout2 = 32d125_000) ? 32d0 : (cout2 + 32d1);clk_en2 = (cout2 = 32d125_000) ? 1d1 : 1d0; endassign pin400=clk_en2;assign pin5=clk_en1;endmodule(三)、受控器设计方案: 受控器有步数计数器和译码扫描器两个。(1)、步数计数器由主控器控制,有四个输入端,分别为clk、key1、key2、key3。clk为输入脉冲,为5hz,由分频器输入,与主控器同频。key1、key2、key3为三个控制键的输入在不同的情况下执行不同的动作,如下: 、key1=0,key2=0或key2=1时,步数为零;、key1=1, key2=1时,步数在脉冲上升沿时加一;、key1=1, key2=0时,步数保持上一次的数值;在程序中,添加变量w1、w2,判断key3的值是否与上次的不同,不同则说明电机转向改变,执行步数清零,重新计数。输出变量k,当计数达到360步时,添加if语句使k值会由原来的0变为1,计数停止,并且根据k值为1使计数在此后都不计数。步数计数器有四个输出端,分别为bushu1、bushu2、bushu3,k。bushu1、bushu2、bushu3为步数的8421bcd码,每一个数都是一个4位的二进制数,输出给译码扫描器。k就是反馈到主控器中的变量。(2)、译码扫描器由步数计数器控制,有四个输入端,分别为clk,bushu1、bushu2、bushu3。bushu1、bushu2、bushu3由步数计数器输入,经过4-7译码器后将译码后的7位二进制数赋值给7位的数码管。clk由分频器产生,经过再分频后,对应输出端的del,对8个数码管进行扫描,使每个管显示不同数值。译码扫描器有两个输入端shumaguan,del。shumaguan为7位数值对应电路板上的数码管的7段显示。del端对应电路板上的3-8译码器的3个输入端,对数码管扫描。步数计数器程序如下:module jishu(clk,key1,key2,key3,bushu1,bushu2,bushu3,k );input clk,key1,key2,key3;output k;output 3:0bushu1;output 3:0bushu2;output 3:0bushu3;reg w1, w2,k;reg 3:0bushu1;reg 3:0bushu2;reg 3:0bushu3;always (posedge clk )beginw2=key3;if(w2!=w1) begin bushu1=4b0000;bushu2=4b0000;bushu3=4b0000; end beginif(bushu1!=4b0|bushu2!=4d6|bushu3!=4d3) if(k=0) begin k=0; case(key1) 1b0: begin case(key2) 1b0: begin bushu1=4b0000;bushu2=4b0000;bushu3=4b0000;end 1b1: begin bushu1=4b0000;bushu2=4b0000;bushu3=4b0000;end endcase end 1b1: begin if(key2=1b1) begin bushu1 =(bushu1=4b1001)? 4b0:(bushu1+4b1); if(bushu1=4b0) bushu2 =(bushu2=4b1001)? 4b0:(bushu2+4b1); if(bushu2=4b0 & bushu1=4b0) bushu3 =bushu3+4b1; w1=key3; end else begin bushu1=bushu1;bushu2=bushu2;bushu3=bushu3;end end endcase end if(bushu1=4b0 & bushu2=4d6 & bushu3=4d3) begin bushu1=4b0000;bushu2=4b0110;bushu3=4b0011;k=1b1;endend endendmodule译码扫描器程序如下:module yima(clk,shumaguan,bushu1,bushu2,bushu3,del );input clk;input 3:0bushu1;input 3:0bushu2;input 3:0bushu3;output 2:0del;output 6:0shumaguan;reg 6:0shuzhi;reg 2:0i;always (posedge clk )begin i= (i=3b010)? 3b0 : (i+3b001); end always (i) case(i) 3b000: case(bushu1) 4b0000: shuzhi = 7b0111_111;4b0001: shuzhi = 7b0000_110;4b0010: shuzhi = 7b1011_011;4b0011: shuzhi = 7b1001_111;4b0100: shuzhi = 7b1100_110;4b0101: shuzhi = 7b1101_101;4b0110: shuzhi = 7b1111_101;4b0111: shuzhi = 7b0000_111;4b1000: shuzhi = 7b1111_111;4b1001: shuzhi = 7b1101_111; endcase 3b001: case(bushu2) 4b0000: shuzhi = 7b0111_111;4b0001: shuzhi = 7b0000_110;4b0010: shuzhi = 7b1011_011;4b0011: shuzhi = 7b1001_111;4b0100: shuzhi = 7b1100_110;4b0101: shuzhi = 7b1101_101;4b0110: shuzhi = 7b1111_101;4b0111: shuzhi = 7b0000_111;4b1000: shuzhi = 7b1111_111;4b1001: shuzhi = 7b1101_111; endcase 3b010:case(bushu3) 4b0000: shuzhi = 7b0111_111;4b0001: shuzhi = 7b0000_110;4b0010: shuzhi = 7b1011_011;4b0011: shuzhi = 7b1001_111;default: shuzhi = 7b0000_000;endcase default: shuzhi =7b0111111;endcase assign shumaguan=shuzhi;assign del=i;endmodule三、电路设计、仿真与实现:(一)、顶层设计实现:顶层电路图如下:图1.1 顶层电路图总程序的rtl视图: 图1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 当天入出院管理制度
- 律师进村居管理制度
- 微权力工作管理制度
- 心连心请假管理制度
- 快递站仓库管理制度
- 急诊实训室管理制度
- 总承包安全管理制度
- 患者出入院管理制度
- 成品物料卡管理制度
- 成都cng管理制度
- 简阳市2024-2025学年五年级数学第二学期期末统考模拟试题含答案
- 2025年广东省佛山市中考英语一模试卷
- 防尘网施工方案
- 垃圾发电行业安全培训
- 学校部门协调制度
- 2024年贵州贵州磷化有限责任公司招聘考试真题
- 中华文化选讲(吉林师范大学)知到课后答案智慧树章节测试答案2025年春吉林师范大学
- 二年级下册数学人教版导学案有余数的除法例6学案
- 我是小厨师(厨艺体验)主题班会
- 物业管理行业公共区域安全免责协议
- 健康管理中心岗位职责与要求
评论
0/150
提交评论