好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数电实习报告三相步进电机控制器设计.docx

17页
  • 卖家[上传人]:012****78
  • 文档编号:212519359
  • 上传时间:2021-11-19
  • 文档格式:DOCX
  • 文档大小:414.75KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 数电实习报告--三相步进电机控制器设计———————————————————————————————— 作者:———————————————————————————————— 日期: 三相步进电机控制器设计一、 设计任务及要求:设计任务: 1、输入信号:四个控制开关S1、S2、S3〔开关拨下时S=0,开关拨上时S=1,〕和一个外部的时钟源其中:〔1〕、系统上电后,假设S1=1,S2=1时,电机停顿转动,步数清零〔三个8421BCD数码管显示为000〕;〔2〕、系统上电后,假设S1=X〔无关项〕,S2=0时,电机停顿转动,步数显示保持〔即暂停〕;〔3〕、系统上电后,假设S1=0,S2=1时,步进电机三相三拍转动1周〔360度〕,转动完成后停顿,停顿以后再操作S1、S2、S3无效,直至重新上电后才能从头工作;〔4〕、系统正常工作时,假设S3=0时,步进电机正转,S3=1时,步进电机反转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中所述,数码管计数显示000—360之间的数字设计要求: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、kClk为脉冲输入端口Clk为输入脉冲,为5Hz,由分频器输入。

      k为计数器的返回值,在步数到达360时,该值有效,电机停转s1、s2、s3为三个控制键的输入在不同的情况下执行不同的动作,如下:〔1〕、系统上电后,假设S1=1,S2=1时,电机停顿转动,步数清零;〔2〕、系统上电后,假设S1=X〔无关项〕,S2=0时,电机停顿转动,步数显示保持〔即暂停〕;〔3〕、系统上电后,假设S1=0,S2=1时,步进电机三相三拍转动1周〔360度〕,转动完成后停顿,停顿以后再操作S1、S2、S3无效,直至重新上电后才能从头工作;〔4〕、系统正常工作时,假设S3=0时,步进电机正转,S3=1时,步进电机反转控制器共有四个输出端口,分别为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:0]xiang;output key1,key2, key3;reg key1,key2;reg [2:0]xiang;reg [2:0]state;reg[1:0]i=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 ) begin Cout1 <= (Cout1 == 32d10000_000) ? 32d0 : (Cout1 + 32d1); Clk_En1 <= (Cout1 == 32d10000_000) ? 1d1 : 1d0; end always @(posedge Clk ) begin Cout2 <= (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、key3Clk为输入脉冲,为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,kbushu1、bushu2、bushu3为步数的8421BCD码,每一个数都是一个4位的二进制数,输出给译码扫描器k就是反应到主控器中的变量〔2〕、译码扫描器由步数计数器控制,有四个输入端,分别为Clk,bushu1、bushu2、bushu3bushu1、bushu2、bushu3由步数计数器输入,经过4-7译码器后将译码后的7位二进制数赋值给7位的数码管。

      Clk由分频器产生,经过再分频后,对应输出端的del,对8个数码管进展扫描,使每个管显示不同数值译码扫描器有两个输入端shumaguan,delshumaguan为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:0]bushu1;output [3:0]bushu2;output [3:0]bushu3;reg w1, w2,k;reg [3:0]bushu1;reg [3:0]bushu2;reg [3:0]bushu3;always @(posedge Clk ) begin w2=key3; if(w2!=w1) begin bushu1=4b0000;bushu2=4b0000;bushu3=4b0000; end begin if(bushu1!=4b0||bushu2!=4d6||bushu3!=4d3) if(k==0) begin k=0; case(key1) 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.