APP下载

基于DDA插补算法的五轴步进电动机插补控制器IP核设计

2011-11-20杨秀增黎运宇

微特电机 2011年9期
关键词:分频器控制卡积分器

杨秀增,黎运宇

(广西民族师范学院,广西崇左532200)

0 引 言

插补控制器是数控系统的基本单元,用来完成运动轨迹的拟合[1]。随着加工零件结构复杂程度的提高,对数控制系统的插补控制器性能提出了更高的要求,不仅要求插补控制器具有高精度、高速度,还要求具有多轴联动控制功能,比如,对复杂曲面零部件加工,目前广泛采用具有五轴联动线性插补功能[2]的插补控制器,但是,目前的数控系统利用软件插补器[3],软件插补器由于用软件实现插补功能,其性能难以满足复杂数控系统的要求[3]。

针对以上情况,本文利用现场可编程逻辑门阵列(FPGA)[4],设计了一款基于数字积分算法(DDA)五轴步进电动机联动控制的硬件插补控制IP核,由于该插补器控制器全都由硬件来实现,因此,本控制器具有速度快、精度高和实时性强等优点,能应用于多轴复杂的数控系统中。

1 IP核硬件系统框图及其工作原理

图1为本设计的硬件系统原理框图。由图1可见,本设计包括Avalon接口单元、寄存器文件单元和任务逻辑单元三大部分。

图1 五轴步进电动机插补控制器IP核硬件原理框图

Avalon接口单元是本控制IP核的接口电路,负责把用户任务逻辑单元,按基于Avalon总线通信协议接在Avalon总线上,以便实现用户任务逻辑单元与NiosII软核CPU进行通信。

寄存器文件单元由如下九个寄存器组成:

分频因子寄存器,用于寄存可编程分频器的分频因子,其大小能有效地控制插补器的插补速度;X轴坐标寄存器、Y轴坐标寄存器、Z轴坐标寄存器、B轴坐标寄存器和C轴坐标寄存器,分别寄存X轴、Y轴、Z轴、B轴和C轴的终点坐标值,作为数字积分器的被积函数,其值越大,被积函数值越大,意味着该轴的运动距离越远,在单位时间内,数字积分器产生的步进脉冲越快;状态寄存器,用于寄存控制器的当前所处的状态(“闲”或“忙”),用高或低电平来表示;总步进数寄存器,用于寄存五个步进电动机要走的总步进数;控制寄存器,寄存着各种控制信息,包括1位暂停控制信号、1位起动信号和5位步进电动机的方向转动控制信号。

任务逻辑单元是本IP核的行为部分[5],要实现五轴步进电动机的联动和速度控制功能。五轴数字积分器模块,由五个相互独立的数字积分器组成,此模块能对各轴坐标的值进行数字积分运算,不断地产生各轴步进电动机的步进脉冲信号,控制着各轴步进电动机的运动速度和联动功能;终点判定模块对各轴输出的步进脉冲进行计数,并且把计数的结果与总步进数寄存器的值进行比较,如相等,表示已到达终点,用over信号通知状态机表示本次差补结束;状态机是任务逻辑单元的协调控制中心,能产生各种时序控制信号,使五轴数字积分器和终点判定模块的协调工作;可编程分频器可根据分频因子的值对50 MHz时钟进行分频,得到不同频率的工作时钟,实现步进电动机的速度控制。

2 IP核硬件系统的FPGA设计

2.1 寄存器文件设计

寄存器文件由九个寄存器组成,寄存着控制信息、状态信息和各种数据。每个寄存器对应着不同的地址,且读写方向和位宽也不尽相同,表1列出这些寄存器的名称、相对地址、读写方向、位宽和功能描述。

表1 寄存器组定义与地址分配

图2 数字积分器的原理方框图

2.2 任务逻辑设计

2.2.1 可编程分频器设计

在本设计中,利用一个可编程分频器来控制步进电动机的转动速度。由图1可知,分频器的分频因子变大,50 MHz的系统时钟被分频器分频的频率变小,数字积分器的工作时钟变小,数字积分器的运算速度变慢,步进电动机速度变小;相反,分频器分频因子变小,分频器的输出频率变大,五轴数字积分器的运算速度变快,步进电动机转速变快。

2.2.2 五轴数字积分器设计

为了实现五个步进电动机的联动控制,设计了五轴数字积分器。五轴数字积分器由五个互相独立的数字积分组成,每一个坐标轴对应一个数字积分器,其原理框图如图2所示,坐标值寄存器存放本次直线插补的终点坐标值,作为数字积分器的被积函数。在插补前,clr要对余数寄存器内容清零,插补起动后,在clk时钟的上升沿控制下,加法器对坐标寄存器的值和余数寄存器的值进行一次加法运算,并把运算结果存放在余数寄存器中。在设计中,余数寄存器最高位作为驱动步进电动机的步进脉冲,每个上升沿表示步进电动机要步进一步,本积分器的Verlogn HDL程序如下:

module Digital_integrator(iclk,iclr,idata,step_pulse,en);

input iclk,iclr,en;

input[15:0]idata;//数据输入

output step_pulse;//步进脉冲

reg[16:0]sum;//中间寄存器

always@(posedge iclk or posedge iclr)

if(iclr)//高电平,清零

sum=0;

else if(en)//高电平,进行累加

sum=sum+idata;

assign step_pulse=sum[16];//步进脉冲

endmodule

2.2.3 终点判定模块设计

终点判定模块用于判定步进电动机是否运动到终点。插补前,NiosII根据本次差补的终点坐标值和步进电动机的最小步长的值,计算出五个步进电动机的步进数总数,并把这总数写到总步进数寄存器,插补开始后,终点判定模块读取总步进数寄存器的值,并对各轴步进脉冲的上升沿进行计数,当计数的值与读到时的总步进数相等时,表明步进电动机已到达终点,用over信号通知状态机停止本次直线插补,本模块的Verlogn HDL程序如下:

module end_test(x_p,y_p,_p,b_p,c_p,over,idata,RD);

input x_p,y_p,z_p,b_p,c_p,RD;

output reg over;//终点结束输出

input[31:0]idata;//数据输入

reg[31:0]mcounter,mreg;//中间寄存器

wire dclk;

assign dclk=x_p||y_p||z_p||b_p||c_p;always@(posedge dclk or posedge RD)if(RD)begin mreg=idata;over=0;end//RD为高电平时,读取数据

else if(mcounter==mreg)

begin end_out=1;mcounter=0;end//如计数与总步进数相等进,结束

else begin mcounter=mcounter+1;over=0;end//否则计数endmodule

2.2.4 状态机设计

图3 状态机的状态转换图

状态机用于协调五轴数字积分器和终点判定模块协调工作。图3为本状态机的状态转换图,包括“空闲”状态(s0)、数据初始化状态(s1)和步进控制状态(s2)三个状态。在NiosII没有起动插补器前,状态机始终在“空闲”状态(s0)中等待起动信号(start)到来;一旦start为高电平,表明NiosII起动插补器,状态机由等待状态(s0)进入数据初始化状态(s1),在状态中,状态机对数字积分器的余数寄存器内容清零和用RD信号通知终点判定模块读取总步进数寄存器的值,在时钟控制下,状态机无条件地进行步进电控制状态(s2),在此状态中,EN为高电平,使五轴数字积分器开始进行积分运算,当over为高电平时,此状态结束,进入“空闲”状态s0中。

2.3 Avalon接口设计

在QuartusII 8.0软件中,SOPC Builder工具提供了6种不同接口类型和信号,设计者可根据设计需要选择接口,并把任务逻辑各种信号,指定Avalon信号类型,表2为本设计所用到的接口单元信息。

表2 Avalon接口信息表

3 软件设计

硬件系统工作离不开软件的支持,硬件系统的设计结构和工作原理决定了软件的编写方法[6]。在插补前,读取状态寄存器里的值,了解系统工作状态,如处于“空闲”状态,NiosII把本次直线插补终点坐标写到相应的寄存器中,然后,根据空间直线的长度和步进电动机的步距,计算出总的步进脉冲数,并写入总步进脉冲寄存器中。最后,根据直线插补方向设置好控制寄存器方向控制位后,起动插补器。

4 IP核在五轴步进电动机运动控制卡中应用及其测试

本控制器IP核被成功地应用于如图4所示的五轴步进电动机运动控制卡中。本运动控制卡在一片FPGA上实现。UART控制器、JTAG控制器、NiosII处理器、EPCS控制器、SDRAM控制、LCD控制器、PIO控制器和Avalon数据总线构成基于NiosII的最小系统;五轴步进电动机插补控制器是通过例化本设计IP核得到的;SPWM细分驱动器实现步进电动机的细分驱动,改善步进电动机的运动性能。加工的数据从上位机的USB口传送到五轴步进电动机控制卡中,CP2101桥式控制芯片把USB数据流转换成UART数据流,然后NiosII把这些数据写到五轴步进电动机插补控制器中。本运动控制卡的具体设计方法,限于篇幅,本文不作介绍。

图4 基于FPGA的五轴步进电动机运动控制卡设计框图

5 测试结果

对以上所设计的运动卡进行测试,现场可编程逻辑门阵列选用Altera公司的EP3C25Q240C8N,步进电动机选用Leetro公司生产的二相式步进电动机DM4250C。测试结果表明,本运动控制卡工作稳定,被控制的步进电动机工作平稳,插补运算速度快、控制精度高。图5为利用QuartusII嵌入式逻辑分析仪(SigalTap II Logic Analyzer)测试五轴数字积分器的输出信号波形:xp、yp、zp、bp和cp分别是X轴、Y轴、Z轴、B轴和C轴的步进脉冲输出,信号每一个上升沿表示步进电动机走一步,从图5可以看出,它们之间的步进数(上升沿数)刚好为2倍关系,说明五轴步进电动机具有良好的联动关系,有效验证了本设计的正确性。

图5 用嵌入式逻辑分析仪分析五轴波形时序图

6 结 语

插补器联动控制器是多轴联动控制卡的重要组成部分,针对目前数控制系统的软件插补器的运行速度慢和实时性差等缺点,利用现场可编程门阵列设计一款五轴步进电动机插补控制器,实际测试结果表明,本控制器工作稳定,具有速度快、精度高和实时性强等优点,因此,本设计有一定推广和实用价值。

[1] 陈黎融,白婕静,刘继伟.基于FPGA的数字积分法圆弧插补器的设计与实现[J].现代制造工程,2008,(2):58-60.

[2] 刘源,王永章,富宏亚,等.用于五轴联动数控机床的曲线插补控制策略[J].计算机集成制造系统,2009,15(4):758-761.

[3] 于海东.直线插补控制器的FPGA实现[J].微特电机,2009(1):46-49.

[4] 李凡,廖勇.基于FPGA数字硬件的无刷直流电动机速度控制系统[J].微特电机,2010(8):65-68.

[5] 殷苏民,杨仁宇.基于Avalon总线的插补器IP核的设计[J].机械设计与制造,2009(8):198-200.

[6] 杨秀增.可变波特率和载频的2FSK数字调制器的FPGA实现[J].电讯技术,2010,50(5):64-67.

猜你喜欢

分频器控制卡积分器
一种基于0.18μm SiGe工艺的8GHz前置分频器
兼容多种运动控制卡的V割机数控系统关键技术*
高频、低相噪、双模分频器设计
基于ECVT数字积分器的仿真及研究
基于运动控制卡的桁架机器人控制系统设计
Rogowski线圈数字积分器的直流误差消除方法研究
基于单二阶广义积分器的三相数字锁相环设计
凌华科技四轴伺服/步进运动控制卡PCI-C154+
DRM/DAB/AM/FM频率综合器中吞吐脉冲分频器的设计
高可靠性通信设备主备倒换软件实现方法