基于TMC428的步进电机控制系统设计
摘要: 由 TRINAMIC公司生产的TMC428就是这样一款三轴步进电机运动控制芯片。这里使用TMC428控制芯片设计一种三轴步进电机控制系统,本系统可用于经济型三轴数控系统中。
关键字: 三轴步进电机运动控制芯片, 步进电机
步进电机是一种重要的执行装置,广泛用于工业控制和各种办公设备中,步进电机的稳定可靠运行直接关系到工业控制的精度和设备的质量,特别是在高精度数控系统中更是要求步进电机能够精确运行。如何实现对步进电机的精确可靠控制成为工业控制等系统中的关键技术。多年来很多专家学者研制出很多性能较好的步进电机控制系统,然而,早期的步进电机控制系统体积大,使用的元器件多,这给系统的可靠运行带来了较大的隐患。随着电子技术的发展,很多功能单元都走向模块化和数字化,并且具有体积小,重量轻,工作可靠性高,成本低等优点,而且能够实现多轴控制,这给步进电机控制系统的设计带来了很大的方便。由 TRINAMIC公司生产的TMC428就是这样一款三轴步进电机运动控制芯片。这里使用TMC428控制芯片设计一种三轴步进电机控制系统,本系统可用于经济型三轴数控系统中。
一、TMC428芯片及其功能
TMC428是一种小尺寸、高性价比的二相步进电机控制器,包括位置控制、速度控制及微步控制等步进电机常用的控制功能,可同时对三个二相步进电机进行控制。带有2个独立的SPI接口,可分别与微处理器和带有SPI接口的步进电机驱动器相连接,能够与3个TMC236相连接构成菊花链结构。
1、 结构
TMC428采用16引脚封装,是由各个单元的寄存器和片内RAM构成的。其内部包括二个外部串行接口、波形发生器和脉冲发生器、微步单元、多口RAM 控制器和中断控制器。如图一所示。SPI串行通信使用32bit数据长度的简单协议,与电机驱动器相连接时,其数据传输速率高达1Mbit/s。时钟输入范围宽且时钟频率最高可达16MHz,采用3.3V或5V的CMOS/TTL兼容电平供电。
图一
2、 功能
TMC428有4种不同的工作模式,对每个步进电机的控制单独编程,其中位置控制有RAMP模式和SOFT模式,速度控制有VELOCITY模式和 HOLD模式。TMC428提供了一组功能不同的寄存器单元和片内RAM,一般从微处理器获得控制指令,微处理器则通过发送和接收固定长度的数据包对 TMC428寄存器和RAM进行读写操作。TMC428的寄存器和片内RAM的功能有所不同。寄存器用于存储电机总体配置参数和运动参数,而片内RAM用于存储 驱动串行接口的配置和微步表。电机总体参数是指对驱动器菊花链中TMC236的配置。运动参数包括各电机的当前位置、目标位置、最大速度、最大加速度、电流比例、波形发生器和脉冲发生器参数以及微步细分分辨率等。片内RAM包括64个地址的数据空间,每个地址可存储24位宽的数据,前32位地址数据是对驱动器菊花链串行通信数据包的配置,后32位地址的数据为微步细分表。
初始化以后,TMC428即可自动发送数据包到菊花链的每个TMC236,也就是说,驱动串行接口经过初始化后便可以自动工作,而不需要微处理器的参与。只要把位置、速度写进指定的寄存器就可以控制电机。 TMC428的多口RAM控制器可管理数据的存取时序。这样,微处理器就可以在任何时间读写寄存器和片内RAM的数据。
通过波形发生器可以处理存储在寄存器里的运动参数并计算电机运动速度曲线。脉冲发生器则根据波形发生器计算得到的速度来产生步进脉冲。步进脉冲产生时TMC428的驱动串行接口将自动发送数据包给步进电机驱动器菊花链以驱动步进电机。当采用微步控制时,微步单元即开始处理根据脉冲发生器产生的步进脉冲,同时根据选择的微步分辨率来产生全步、半步和微步脉冲,并通过驱动串口送给驱动器菊花链。
驱动串行接口是TMC428与驱动器菊花链之间的通信接口。从 TMC428到驱动器之间的串行数据包的长度是可配置的,以适应由不同类型和厂家的电路构成的SPI环形结构,最大数据长度为64bit。初始化后,TMC428与步进电机驱动器之间的通信是自动完成的。不同类型的带有SPI接口的驱动器都可以混合构成菊花链结构与TMC428进行连接。
二、系统分析
本系统采用MCS51单片机作为微处理器,用于系统的控制和指令发布,这是整个控制系统的核心,系统的各种逻辑和数量计算都有单片机完成。由于系统采用SPI串行通信方式,而51单片机本身不带有SPI接口,所以在单片机与TMC428必须独立SPI专用接口模块进行数据转换,这里采用MCP2510 SPI接口芯片。上电以后,单片机首先对TMC428进行初始化,设置初始的位置、速度以及加速度等运动参数,并且配置菊花链串行通信数据和微步表。由于运动参数被配置在TMC428的功能寄存器中,在工作过程中可以根据实际要求在线更改以适应实际运动过程,而菊花链串行通信数据和微步表是存放在片内RAM中,上电以后这些参数一般不能更改,所以在初始化时要对这些参数进行精确计算。采用3个TMC236构成一个菊花链,每个 TMC236控制一个步进电机,当初始化完成后,TMC428可以脱离单片机自动地把控制数据发送给TMC236实现对电机的控制,但由于TMC236所发出的控制信号比较弱,不足以驱动电机,所以在TMC236发出的控制信号必须进过功率放大才能驱动电机。系统结构如图二所示。
图二
三、硬件设计
本系统单片机选用AT89S52,系统时钟频率采用16MHZ,由于TMC428的最高工作频率能够达到16MHZ,但TMC236的PWM操作频率不能超过100KHZ,所以为了方便设计本系统采用分频电路对16MHZ的时钟频率分频为20KHZ,TMC428和TMC236都采用同一20KHZ时钟频率。为减小电源的复杂性,系统由单一+5V直流电源供电。由于本系统中TMC428不使用内部中断,所以3个参考开关输入必须接地,同时没有使用 3.3V电源,所以V33引脚必须通过一个470nF的电容接地,+5V输入电源要通过一个100nF的电容滤波,以保证TMC428的可靠运行。驱动 SPI接口的数据输入线SDI_S引脚要通过一个阻值为10K的电阻下拉。TMC428的nscs_s引脚作为3个TMC236使能信号与CSN引脚相连。控制数据通过SDO_S引脚传送至TMC236的SDI引脚中,由于采用的是菊花链形式,所以3个TMC236通过各自的SDO——SDI两个引脚相串联。在TMC236电路设计中,20KHZ的外部时钟从OSC引脚输入。由于TMC236内部集成了HVCMOSFET构成的双全桥驱动电路,它采用恒流斩波驱动方式来驱动双极性二相步进电机,其中电机的供应电源由VS引脚输入,但必须在VS引脚上连接220pF和100uF的电容进行滤波,在本系统中采用+12V的直流电源作为电机两相绕组的励磁电源。TMC236的OA1和OA2连接步进电机的A相励磁绕组,而OB1和OB2连接步进电机的B相励磁绕组。另外,为了限制电机的最大电流,必须对TMC236双全桥驱动电路设置限流电阻Rs,Rs电阻的设置可根据如下计算公式计算:
其中Imax为电机所允许的最大电流,在这里Imax=1030mA,所以计算电阻Rs=0.33Ω。本系统采用脉冲变压器作为功率放大装置直接对步进电机供电。系统的主电路如图三所示。
图三
四、软件设计
控制系统的软件主要完成对TMC428的初始化以及控制参数计算和发送的工作。在初始化过程中首先要对TMC428的工作模式进行设置,一个是位置控制模式和速度控制模式,另外就是TMC428所要控制的步进电机的个数。这些参数的设置是通过微处理器向TMC428的相关寄存器写数据来完成。其中位置和速度控制模式寄存器的地址为1010,在本系统中位置控制采用RAMP模式,速度控制采用VELOCITY模式。由于本系统是三轴控制设计,所以TMC428要同时对三个步进电机进行控制,因此在步进电机全局配置参数寄存器设置中要把寄存器的地两位设置为10,其他位采用默认值。根据 TMC428的功能要求,每个电机都有自己的配置寄存器,对于电机的初始位置和初始速度都要在各自寄存器中单独设置。在初始化过程中对电机的目标速度、目标位置、实际速度和位置以及加速度和速度的最大值、最小值进行设置00地址表示电机1,01地址表示电机2,10地址表示电机三,其寄存器地址范围为 0000~1110。当初始化完成后根据实际需要微处理器在任意时刻都可以改变寄存器和片内RAM中的数据以适应实际控制。本系统的软件工作过程如图四所以。
图四
五、总结
采用专用步进电机运动控制器和驱动电路组成的系统具有外围电路简单、系统抗干扰能力强和可靠性高等优点,可减少控制电路的开发成本。整个系统除了电源之外只有5个IC,因此,体积小,控制简单,特别适用于3轴步时电机的驱动。实验证明该驱动器控制的步时电机定位精度高,加、减速性能良好,同时,启停、反转性能也很优良。
暂无评论