智能步进电机控制器设计
1.引言 步进电机驱动器是步进电机控制系统的核心,步进电机能否更好的应用,很大程度上取决于步进电机驱动器的水平。伴随着步进电机的产生,步进电机驱动器就一直在不断发展和进步,目前国内外步进电机驱动器种类很多,但是大部分功能比较单一,很多是针对固定的步进电机或者固定的应用领域,而且价格一般较高,很多不带细分功能,很难满足现实生活中需要灵活应用且成本较低的场合。 本设计的目的就是解决现实生活中需要灵活应用和低成本的问题,并且是使用应用最广泛的混合式步进电机而制作的步进电机控制器,步进电机采用三洋公司的2-4相两用混和式步进电机。系统可以实现正反转控制,多模式选择,圈数、速度设定和存储,速度调节范围宽,低速自动细分,输出转矩大且可调,各种数据的液晶显示,过热和掉电保护等功能。 2.设计分析与方案的确定 2.1 设计方案 方案1:细分完全靠软件实现,驱动电路采用三极管和A/D转换芯片;脉冲用单片机的定时器产生;显示采用数码管;存储采用单片机内部的特殊存储单元。这种方法侧重于软件设计,当脉冲太快时,定时器中断就会和细分程序产生冲突,造成程序的混乱;存储的数据容易丢失;显示内容比较单一;控制的实时性不易保证,调试也比较烦琐,可靠性较低;而且效率较低,大部分能量消耗在三极管得发热上。 方案2:驱动电路采用东芝公司最新推出的步进电机驱动芯片TB6560AHQ,它内部集成双全桥MOSFET驱动;最高耐压40V,单相输出最大电流3.5A(峰值);具有整步、1/2、1/8、1/16细分方式;内置温度保护芯片,温度大于150℃时自动断开所有输出;具有过流保护;配合单片机可以实现自动细分、电流和力矩自动控制、过流和温度过高自动保护等功能。掉电存储电路采用Atmel公司的AT24C04(EEPROM);显示电路采用1602液晶显示模块;输入设备采用4*4矩阵键盘。 2.2 方案对比及确定 用分立元件做的驱动电路比较复杂,调试繁琐,如果设计的电路稍有瑕疵,就会造成故障率急剧上升,效率较低,很大一部分能量浪费在驱动电路上,而且很难实现细分和正弦波电流驱动。集成芯片驱动方式具有外围电路简单,调试容易,稳定性高,效率高,体积小,功能齐全等优点,能做到自动细分和正弦波电流驱动,但是功率一般不能做的很大。 当速度增大时单片机定时器中断较快,因此细分不能全部用软件实现,若使用三极管和A/D转换芯片时必须大量依靠软件实现细分;圈数和速度必须牢靠的存储起来,方便应用,因此必须使用专业的掉电存储芯片;使用中必须实时显示速度和圈数,因此应该选用能显示多个数据的1602液晶显示模块;使用中对稳定性和实用性有很高的要求,使用集成芯片外围电路简单、功能强大,可以把单片机大量的资源用在其他地方,不仅增加了系统的整体稳定性和实用性,而且还能增加许多其他功能,使系统的实用性更强。 所以综合以上情况考虑,选用方案2来设计步进电机智能控制器。总体设计框图如图1。 3.主要模块设计 3.1 驱动模块 3.1.1 TB6560AHQ简介 TB6560AHQ是东芝公司最新推出的步进电机驱动芯片,通过采用BICD工艺将低电阻与高许可损耗封装相结合,使其与其它同类产品相比能够极大减少热量的产生,还能支持使用时钟输入控制的无微控制器应用环境下的微步驱动。自动产生纯正的正弦波控制电流,与其它高集成度步进电机控制芯片相比,在相同高转速下力矩不但不会下降,反而有所增加;支持各种步进电机选型。 TB6560AHQ的主要特点有: ●内部集成双全桥MOSFET驱动; ●最高耐压40V,单相输出最大电流3.5A(峰值); ●具有整步、1/2、1/8、1/16细分方式; ●内置温度保护芯片,温度大于150℃时自动断开所有输出; ●具有过流保护。 3.1.2 硬件电路的设计及驱动原理 工作原理如下:M1(22)和M2(23)引脚通过单片机的程序控制细分,共有2、8、16三种细分模式,CW/CCW(21)引脚控制电机的正反转,当需要正转时单片机P1.2输出高电平,需要反转时输出低电平;PROTECT(19)引脚是芯片的保护输出端,当芯片正常工作时由于上拉电阻的作用,单片机P1.3口采集到高电平,当芯片过热保护时,把单片机P1.3口拉低,此时可令程序断开所有输出,从而保护芯片;MO(17)引脚是芯片初始化引脚,芯片初始化结束后会输出低电平,通过这个引脚单片机可以查询芯片初始化是否结束。 TQ2(1)和TQ1(2)控制驱动芯片的输出电流,通过这两个端的选择可以选择不同的工作电流,具体选择模式如表1。可以通过J1和J2跳线选择最大电流的100%、75%、50%和25%。改变电机的驱动电流也就改变了电机力矩的大小。 DCY2(24)和DCY1(25)是电流衰减模式控制端,通过这两个端的选择可以选择不同的衰减模式,具体模式如表2。可以通过J3和J4跳线选择0、25%、50%和100%四种衰减模式。 由于电机本身状况、供电电源状况及脉冲频率等其他因素的影响,步进电机可能会产生高频噪声,通过选择不同的电流衰减模式可以很好的降低甚至消除这种噪声。 OSC(7)引脚是斩波频率控制端,所接电容的大小可以控制斩波频率的大小。当所驱动的步进电机固定后,电容值也随之确定。 当单片机上电后,在初始化程序中对芯片进行复位(把RESET(5)拉低,然后再置高电平),当检测到M0(17)出现低电平时,表示芯片已经初始化。然后根据按键输入或者24C04存储的信息输出脉冲,芯片在脉冲的作用下产生正弦波驱动电流,驱动步进电机运转。在芯片运行期间,保持ENABLE(4)引脚为高电平;当按下停止键或者PROTECT(19)引脚出现低电平时,保持ENABLE(4)引脚为低电平,断开所有输出。 3.1.3 软件程序流程 驱动芯片的控制程序采用C语言进行程序设计,便于主程序的调用,程序流程如下: ⑴初始化TB6560AHQ; ⑵根据速度的大小定义芯片细分管脚; ⑶发送脉冲和正反转信号; ⑷监控芯片保护端,当温度过高时自动断开所有输出。 驱动芯片的细分程序流程图如图3所示。 驱动芯片TB6560AHQ自带2、8、16三种细分模式,单片机通过M1(22)和M2(23)两个引脚可以实现对细分的控制。在程序设计中定义了一个细分标志位t2,当执行完上述程序后t2会自动的被覆上细分值,在圈数程序处理单元,把t2自动的乘上,因此就能实现在细分情况下,速度和圈数的准确对应。 3.2 掉电存储模块 3.2.1 硬件电路设计 掉电存储模块采用ATMEL公司生产的AT24C04芯片,它的容量是512字节×8位,既4k位,对于本系统来说已经足够了。电路的连接如图4所示。 电路中的SDA接单片机的P3.0口,SCL接单片机的P3.1口,由单片机模拟I2C的工作与存储芯片进行通信;上拉电阻如4图所示,选用5.1k的普通电阻。 3.2.2 软件程序设计 3.3 显示模块 3.3.1 硬件电路的选择与设计 显示电路使用RT1602C显示模块,其接线图如图5。 3.3.2 显示设置 本设计中,0—04h显示"MODE";06h—0Bh显示"SPEED:";0Ch—0Eh显示三位速度值;然后第二行和第一行对应显示模式、圈数。 设计中采用P2口作为数据口;采用P3.5、P3.6、P3.7三个接口作为控制接口,通过设置电平高低控制1602的工作状态。 3.4 单片机最小系统模块 3.4.1 硬件电路中晶振选择 单片机的外围电路选择:因为步进电机运行时的速度靠定时器的定时中断产生,因此中断频率要求高一些,所以晶振选用24MHZ。电容选用30PF的瓷片电容。 3.4.2 定时器初值计算 根据所用步进电机(三洋公司的2-4相两用混和式步进电机)的资料进行分析和现场试验得出:当用四相四拍方式运行时,每个脉冲周期走过1.8°,也就是200个脉冲周期走一圈;当用两相两拍(本设计所选驱动芯片驱动方式)时,每个脉冲周期走过0.9°,也就是400个脉冲周期走一圈。当使用细分驱动时,脉冲数还要乘上细分数。 因此可以得出公式如下: S=M/(400*N) (1) 式中:S—速度,单位:圈数/分;M—定时器每分钟产生的脉冲数;N—细分数,有2、8、16三种。 脉冲的周期: P=400*N*S/60*1000 (2) 式中:P—脉冲的周期,单位:毫秒;定时器定时时间:T=P/2。 根据公式(1)和公式(2)可以得出: T=10000*N*S/3 (3) 根据定时器计算公式: T=(65536-T0初值)*振荡周期*12 (4) 式中:T0—定时器初值;振荡周期—1/24MHZ。 根据公式(3)和公式(4)可以得出: T0初值=65536-20000*N*S/3 (5) 当S=100转/分,T=2.5ms;当S=200转/分,T=1.5ms。 根据定时器计算软件,根据T可以得出对应的定时器T0初值。因此把T0初值和S带入公式(4),并经过修正,可以得出: T0=65536-150000/S 630 (6) 这样就可以根据速度自动求出定时器初值: TH1=(65536-150000/S 630)/256; TL1=(65536-150000/S 630)%6。 |