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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三相步进电机控制器设计

一、 设计任务及要求:

设计任务:

1、输入信号:四个控制开关S1、S

2、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)

(2)三相三拍反转(S3=0)

其中每种状态切换时,对应电机转过1度角。 4、脉冲分配输出的三路信号A 、B 、C 分别经过脉冲放大器放大后驱动步进电机的三相绕组,本设计中A 、B 、C 分别用三个LED 显示。

5、输出3组8421BCD 信号(每组4个输出端),并在FPGA 内部经过译码后获得七段LED 显示码,并通过扫描方式在三个发光LED 显示数码光上显示歩进电机的步数(即角度数)。三个数码管共享7位数据线,依靠扫描方式工作,用来计数电机步数或角度数(此处电机转一步即一度)。根据要求3中所述,数码管计数显示000—360之间的数字。

设计要求:

1、 按照现代数字系统的Top-Down 模块化设计方法,提出步进电机控制系统的整体设计方案,并进行正确的功能划分,分别提出并实现主控制器、分频器、步数计数器、扫描显示译码模块等四部分ABC

101(CA) 011(BC)

ABC 011(BC) 101(CA)

模块化子系统的设计方案。

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)、系统上电后,若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=2'd0;

always @(posedge clk )

begin if(s1==1 && s2==1)

begin key1<=1'b0;key2<=1'b0; end

else if(s1==1 && s2==0)

begin key1<=1'b1;key2<=1'b0; end

else if(s1==0 && s2==0)

begin key1<=1'b1;key2<=1'b0; end

else if(s1==0 && s2==1) begin

if(k==1)

begin key1<=1'b1;key2<=1'b1; xiang=xiang;end

else begin

i=(i==2'd3)? 0:(i+2'd1);

相关文档
最新文档