步进电机是一种将脉冲信号转化成角位移的伺服履行器材。其特色是结构简略、作业牢靠、操控便利。
尤其是步距值不受电压、温度的改动的影响、差错不会长时刻堆集,这给实践的运用带来了很大的便利。它广泛用于消费类产品(打印机、照相机)、工业操控(数控机床、工业机器人)、医疗器械等机电产品中。
一般的步进电机操控办法是选用CPU(PC机、单片机等)合作专用的步进电机驱动操控器来完结,这存在本钱较高、各个环节调配不便利(不同类的电机必需求相应的驱动操控器与之配对)等问题。
CPLD器材具有速度快、功耗低、保密性好、程序规划灵敏、抗搅扰能力强、与外围电路接口便利等特色,越来越多的运用于各种工控、丈量、仪器仪表等方面。 一起单片机十分合适运用于需求杂乱的操控算法的场合。因而本规划选用的办法是:用单片机收集现场信号后计算出步进电机作业所需的操控信息后,再传给 CPLD,CPLD把接收到的信息转化成步进电机实践的操控信号(作业方向、作业速度)输出给电机的驱动电路。这样的长处是单片机与CPLD各行其是。单 片机能够专心于处理输入信号与输出信息之间的转化等杂乱的算法.不用占用过多的CPU资源去直接操控电机,也减小了由此引进搅扰的可能性;CPLD只需把 单片机传送过来的信息转化成电机的操控信号。这样就发挥了单片机和CPLD两者的长处。
1 步进电机原理简介
一般电机的转子为永磁体,当电流流过定子绕组时,定子绕组发生一矢量磁场。该磁场会带动转子旋转一视点,使得转子的一对磁场方向与定子的磁场方向共同。当 定子的矢量磁场旋转一个视点。转子也跟着该磁场转一个视点。每输入一个电脉冲,电动机滚动一个视点行进一步。它输出的角位移与输入的脉冲数成正比、转速与 脉冲频率成正比。改动绕组通电的次序,电机就会回转。所以可用操控脉冲数量、频率及电动机各相绕组的通电次序来操控步进电机的滚动。
咱们运用的单极四相步进电机为例。其结构如图1:
四个绕组引出四相(相A1相A2相B1相B2)和两个公共线(接到电源的正机)。把绕组的某一相接到电源的地线。这样该绕组就会遭到鼓励。咱们选用四相八拍的操控办法,即1相与2相替换导通,这样可进步分辨率。每一步可转0.9°操控电机正转的励磁次序如下表:
若要求电机回转,将励磁信号倒过来传送即可。
2 步进电机操控计划
操控体系的框图如下:
本计划选用AT89S51作为主操控器材。它与AT89C51兼容,一起还添加了SPI接口和看门狗模块,这不光使程序调试变得便利并且也使程序作业愈加 安稳。在计划中该单片机首要完结现场信号的收集并计算出步进电机作业的方向和速度信息。然后传送给CPLD。
CPLD选用EPM7128SLC84-15,EPM7128是可编程的大规模逻辑器材,为ALTERA公司的MAX7000系列产品。具有高阻抗、电可 擦等特色,可用单元为2500个,作业电压为+5V。CPLD接收到单片机发送过来的信息后,转化成对应的操控信号输出给步进电机驱动器。驱动器则把操控 信号处理后输入电机绕组,完结了电机的有用操控。
2.1 电机驱动器硬件结构
电机的驱动器选用如下电路:
其间R1-R8的电阻值为320Ω。R9-R12的电阻值为2.2KΩ。Q1-Q4为达林顿管D401A,Q5-Q8为S8550。J1、J2与步进电机的六条引线相连
2.2 CPLD硬件电路的规划
运用CPLD器材使电路的规划变得十分简练。咱们只需求把CPLD的I/O脚引出来, 接上相应的外围器材就能够了。CPLD与专用数字芯片(如74SC164等)的一个重要区别是其I/O 口的功用可任意在软件上设定,这样在硬件规划中便可只用考虑电源线与地线的散布。以减小高频电流噪声对数据传输的影响。
在规划CPLD电路时,电源、时钟以及I/O与方针芯片都可经过接插件进行衔接。最终在管脚确定的时分把CPLD的I/O别离与单片机和电机电路部分相连就能够了,这样使电路的装置调试变得愈加简洁。
2.3 操控的完结
因为篇幅的约束。在此只评论单片机与CPLD逻辑接口部分以及CPLD中操控信号的发生部分。
首要阐明单片机和CPLD逻辑接口的问题。AT89S51与EPM7128SLC84的I/O电压都为5V。所以它们的I/O能够直接衔接。无需添加额定的电路。假如运用的是I/O电压为3.3V的可编程逻辑器材,则需求考虑逻辑接口这个问题。
一起经过时序剖析. 咱们能够知道该体系中EPM7128SLC84的输入信号树立时刻Ts=8ns。也就是说输入CPLD的信号有必要继续8ns以上才能够被CPLD辨认。单片机如选用12MHZ的晶振,则信号的改动时刻为微秒级,彻底满意这个条件。
当单片机依据实践状况计算出操控信息(电机的速度和方向)后就要联络CPLD以便及时的把信息传给它。单片机和CPLD交流数据能够选用并行传送或许 串行传送的办法。考虑到单片机和CPLD的引脚都比较丰富。并且并行传送的接口相对简略,因而选用并行的办法交流数据。规则传送数据的协议如下图所示:
由图可知,单片机每次用P0口发送3个字节的数据(N1、N2别离为速度和方向操控字,N3为和校验字节),当CPLD检测到EN从高到低的跳变标明传进 数据开端。每个字节的有用数据出现在CLK的上升沿。ACK为CPLD的应对信号。当CPLD接收完数据后进行和校验.假如不对则把ACK拉高。单片机若 检测到ACK为高电平则重新开端送数的进程。CPLD接收到正确的数据后就把它转化成步进电机的物理运动。直到接收到新的操控信息。咱们用VHDL言语编 程,并挑选EPM7128SLC84-15作为方针器材进行时序仿真和硬件测验。程序的框图如下:
EN:体系使能信号。
CPLD_CLK:体系时钟信号。
N1:速度操控信号。
N2:方向操控信号。
体系时钟CPLD_CLK在速度操控信号N1的操控下得到脉冲分配器(状态机)的输入时钟,此时钟的频率决议操控逻辑输出的频率然后(在答应的范围内)操控电机的转速。EN为高电平时体系使能开端正常作业。N1为01H代表电机正转,00H代表电机回转。
程序的脉冲分配器部分选用状态机的办法编写。状态机是纯硬件数字体系中的次序操控电路,在状态机的作业办法上类似于操控灵敏便利的CPU,而在作业速度和作业牢靠性方面都优于CPU。
状态机部分的VHDL代码如下:
PROCESS(C_ST,EN,N1,BCLK)
BEGIN
IF RISING_EDGE(BCLK) THEN C_ST=N_ST;
IF EN=1 THEN
CASE C_ST IS
WHEN ST0=> IF N1=00000000 THEN
N_ST=ST1; ELSE N_ST=ST7;END IF;
CON_OUT=1000;
WHEN ST1=> IF N1=00000000 THEN
N_ST=ST2; ELSE N_ST=ST0;END IF;
CON_OUT=1100;
WHEN ST2=> IF N1=00000000 THEN
N_ST=ST3;ELSE N_ST=ST1;END IF;
CON_OUT=0100;
WHEN ST3=> IF N1=00000000 THEN
N_ST=ST4;ELSE N_ST=ST2;END IF;
CON_OUT;0110;
WHEN ST4=> IF N1=00000000 THEN
N_ST=ST5;ELSE N_ST=ST3;END IF;
CON_OUT=0010;
WHEN ST5=> IF N1=00000000 THEN
N_ST=ST6; ELSE N_ST=ST4;END IF;
CON_OUT=0011;
WHEN ST6=> IF N1=00000000 THEN
N_ST=ST7;ELSE N_ST=ST5;END IF;
CON_OUT=0001;
WHEN ST7=> IF N1=00000000 THEN
N_ST=ST0; ELSE N_ST=ST6;END IF;
CON_OUT=1001;
WHEN OTHERS=> N_ST=ST0;
CON_OUT=0000;
END CASE;
END IF;
END IF;
END PROGESS;
2.4 定论
实践标明.这样的操控办法切实可行。在整个作业进程中,单片机作业安稳。电机能够依据状况完结正常的正转回转,加快减速。
3 结语
单片机是一种十分传统的智能操控器材,无论是智能家电仍是消费类产品都有它的身影。CPLD器材在各种场合的运用也越来越广泛。两者有各自的优缺点。单片 机操控功用很强,能完结杂乱的数学运算.可是安稳性稍差。CPLD作业速度快。程序不会跑飞。合适发生各种杂乱组合逻辑和时序逻辑。能够灵敏的界说各个引 脚的与外围电路衔接的电气特性等。运用单片机和CPLD联合操控步进电机仅仅不同类型的器材协同完结同一使命在实践运用中的一个比如。实践证明这种办法是 可取的。