基于步进电机驱动芯片和核步法实现闭环控制电路的设计
扫描二维码
随时随地手机看文章
步进电机是将电脉冲信号转换成角位移或线位移的一种装置。它产生的位移与输入脉冲数严格成正比,平均转速与输入脉冲的频率成正比,具有结构简单、可靠性高和成本低的特点。由于步进电机没有积累误差,容易实现较高精度的位移和速度控制,被广泛用于精确控制领域。由步进电机与驱动电路组成的开环数控系统简单并且价格低廉,但有时存在振荡和失步现象,故在复杂电磁环境下或是对精度要求较高的场合下,必须加入反馈电路组成高性能的闭环数控系统。本文采用旋转编码器作为反馈器件对步进电机实行闭环控制。
1THB6064H简介
THB6064H是在东芝公司2009年主推的TB6560AHQ的基础上开发的一款PWM斩波型两相步进电机驱动芯片。该芯片配合简单的外围电路即可设计出高性能、多细分、大电流的驱动电路,在低成本、低振动、低噪声、高速度的设计中应用效果较佳。其主要参数和性能指标有:双全桥 MOSFET 驱动,低导通电阻 Ron=0.4 Ω(上桥+下桥),高耐压 50 V DC,大电流 4.5 A(峰值);多种细分可选(1/2、1/8、1/10、1/16、1/20、1/32、1/40、1/64),自动半流锁定功能,衰减方式连续可调;内置高温保护及过流保护,当温度高于170 ℃时自动断开所有输出;封装形式为HZIP25P1.27封装。
2、控制原理
本文的步进电机闭环控制方法采用核步法。核步法的控制思想是从简化控制系统出发,利用核步计数器对系统位置进行跟踪监视,即时发出反馈控制信号,从而完成对位置的控制。其基本原理如图1所示。单片机接收来自上位机的时序脉冲信号和方向信号,经驱动放大后送往步进电机来控制步进电机工作;步进电机带动编码器同轴旋转,由编码器检测转角度,并以脉冲的形式反馈到单片机进行核步计数;单片机根据脉冲反馈当量值与给定值进行比较,按照核步算法发出控制指令。如果发生丢步,单片机就会根据差值继续发送脉冲,把丢掉的步数补上,从而完成步进电机转动位置的闭环控制。
图1闭环控制原理示意图
3、硬件设计
3.1驱动部分电路
驱动电路以步进电机驱动芯片THB6064H为核心,配合简单的外围电路实现步进电机的驱动。驱动电路如图2所示。
图2驱动电路
驱动电源的电压最高不能超过50 V,要大于芯片逻辑电压。提高驱动电压可使电机在高频范围转矩增大,电压大小要根据使用情况来选择。VMA、VMB端口是步进电机的驱动电源引脚,设计时应接入瓷片去耦电容和电解电容用来稳压。OUT1A、OUT2A、OUT1B、OUT2B 端口分别为步进电机的2相输出接口,由于此芯片内集成了续流二极管,不用像以前的一些驱动芯片那样在输出口外接二极管,因此就可以使电路板的布线空间缩小,从而减小控制器的体积。NFA、NFB端口分别为步进电机A、B两相的相电流检测端,应连接大功率检测电阻,典型值为025 Ω/2 W。VREF为电流设定端,调整此端电压就可以设定驱动电流的大小。PGNDA、PGNDB、SGND分别为步进电机驱动的引脚地和逻辑电源地。芯片的逻辑电源为5 V,VDD端口为逻辑电源引脚,设计时也要接入电容来减小干扰噪声;alert为过流保护输出端;RESET为芯片复位脚,低电平有效;OSC1A、OSC1B端口所接电容的大小决定了斩波器频率,推荐接入100~1 000 pF的电容,此时的斩波频率为400~44 kHz;M1、M2、M3端口分别为步进电机驱动的细分设置引脚,用外接拨码开关可设定不同的细分值,例如整步、1/2步、1/4步、1/8步等,最高可达64细分。由于步进电机在低频工作时,可能会伴有较大的振动和较大的噪声,这些就需要通过细分驱动来解决。驱动输出的电流调节和衰减方式调节都可通过外接拨码开关来实现,电路简单,方便可靠。
3.2反馈控制电路
电路的反馈环节选用增量型旋转编码器与步进电机固定同轴旋转,产生反馈脉冲信号,发送到单片机,经单片机处理后获得步进电机的旋转信息。
3.2.1旋转编码器的工作原理
旋转编码器是一种集光、机、电于一体的转速、位移传感器,具有高频响、分辨能力高、力矩小、耗能低、性能可靠、使用寿命长等优点。旋转编码器包括码盘(编码盘的线数不同)、发光元件、接收元件和信号处理部分。码盘的线数决定了其精度。当步进电机带动码盘旋转时,因刻线处透光,间隔处不透光,透过的光被接收元件接收并输入到信号处理部分,产生脉冲信号输出。旋转编码器一般分为增量式和绝对式:增量式旋转编码器输出脉冲供后续电路计数和旋转方向的判断,能够实现多圈无限累计测量;绝对式旋转编码器以代码的形式输出来表示当前的位置,转动方向是通过代码的变化趋势来确定的[4]。一般相同分辨率的编码器,增量式的要比绝对式的便宜,实际应用中,增量式旋转编码器应用更为广泛。本文选用增量型旋转编码器,有三根信号输出线A相、B相、Z相。当编码器转动时A、B两根线都产生脉冲输出,A、B两相脉冲相差90°相位角,由此可测出编码器的转动方向与电机转速。当正转时,A相脉冲比B相脉冲超前90°,反转时A相比B相落后90°。A相用来测量脉冲个数,B相与A相配合就可测量出转动方向。Z相为零脉冲线,光电编码器在每转一圈的固定位置产生一个脉冲,主要用作计数和基准点定位,一般可以不用该相。
3.2.2控制电路
控制部分电路是以51单片机为控制核心,接收上位机的脉冲信号和方向信号CLK1和CW1经过存储处理后发送给驱动电路部分驱动步进电机工作。另外,单片机还要实时接收来自旋转编码器的反馈脉冲信号,对编码器的两相反馈脉冲信号进行处理,判断步进电机的位置和旋转方向是否与给定信息相符合,如果不相符就调用相应的算法进行自动补偿,最终使步进电机达到预定的位置。由于旋转编码器的分辨率有高有低,如果选择高分辨率的旋转编码器,在细分情况下,当步进电机在最高转速时,要求单片机的相应速度要符合要求。本设计选用的单片机为宏晶科技的STC12C5201单片机,1个时钟/机器周期,增强型8051内核,速度比普通8051快8~12倍。一般程序稍大的可选用STC12C5202或者STC12C5204。编码器与STC12C5201的接口如图3所示。
图3编码器与单片机接口
需要注意的是,上位机向单片机发送控制信号的时候要经过光耦隔离。光耦隔离的作用有两个:第一,防止电机干扰和损坏前级芯片;第二,对控制信号进行整形。对于控制信号CLK和CW/CCW要选用中速或者高速的光耦,以保证信号经过光耦后不会发生延迟或者变形而影响步进电机的驱动。
4、软件设计
软件设计中初始化设置要定义各端口的功能,电机的初始化主要是运行前设置端口的I/O方向,确定所选择的细分驱动方式等。之后,要实时获得电机的工作状态和驱动电机运转,并在中断服务程序中处理电机的丢步和转向控制。现代单片机运行速度都很快,所以对编码器采用软件鉴相,既简化电路结构,又节约成本。将编码器的A相与单片机的外部中断INT0相连,B相与普通I/O口的P1.0相连。由于编码器的A相与B相在输出上有固定的相位关系,正转与反转时编码器的A、B两相的电平信号不同,正转时,每当A相出现高电平的前四分之一周期时,B相为高电平;反转时,每当A相出现高电平的前四分之一周期时,B相为低电平。因此,单片机使用外部中断0来处理编码器数据,把编码器的A相接中断源。在中断服务程序中,程序通过读取B相(P1.0口)的状态来确定编码器的转向,进而完成加1或者减1的双向计数。软件程序流程如图4所示。
图4软件程序流程
结语
本文提出了基于驱动芯片THB6064H的步进电机闭环控制电路设计方案。硬件设计将低成本的51单片机与步进电机专用驱动芯片一体化(目前基本都是分立开的),既可以实现所需功能,又能降低成本。该电路结构简单、动态特性好、适应性强、速度快、精度高、性能稳定。采用编码器作为位置反馈,既能使步进电机达到伺服电机的高速度、高精度效果,又能降低成本,在各种车床、切割机、雕刻机等数控场合有很高的实用价值。