基于DSP和MCX312的六轴运动控制器设计*

2014-07-19 12:32叶纯杰吴洪涛朱留存解亚非
组合机床与自动化加工技术 2014年5期
关键词:译码寄存器控制器

叶纯杰,吴洪涛,陈 柏,朱留存,解亚非

(1.南京航空航天大学 机电学院,南京 210016; 2. 常州精锐自动化装备技术有限公司,江苏 常州213032)

基于DSP和MCX312的六轴运动控制器设计*

叶纯杰1,吴洪涛1,陈 柏1,朱留存2,解亚非2

(1.南京航空航天大学 机电学院,南京 210016; 2. 常州精锐自动化装备技术有限公司,江苏 常州213032)

设计了一种以DSP-TMS320F28335为主控芯片,三片专用运动控制芯片MCX312联合使用,实现总共六轴的运动控制器。用于数控或工业机器人等领域,实现六轴联动。首先给出了运动控制器的硬件设计,包括TMS320F28335与MCX312等芯片的硬件连接、CPLD译码与中断处理、输入输出接口电路以及与上位机的通信接口设计。其次分析了软件设计方法,通过C语言编写插补实例程序并测试输出波形,验证其正确性与可靠性。运动控制器性能稳定,开发周期短,开放性好,具有一定的市场价值和前景,成功用于六自由度并联机器人的控制。

DSP;MCX312;运动控制;伺服电机

0 引言

运动控制简单的说就是实现对机械传动机构的位置,速度或者扭矩等的控制和管理,使其按照既定的轨迹或者其他已知的运动参数进行准确、平稳和快速的运动。主要由上位机、运动控制器,电机以及机械传动系统等几部分组成。而运动控制器在整个系统中处于核心地位,因此设计稳定,廉价,通用的运动控制器至关重要。

目前,国内外广泛使用的运动控制器的整体架构主要有以下几类,一种是以微控制器为核心,如单片机[1],此类运动控制器具有电路简单,计算能力差等特点;一种是DSP+CPLD/FPGA+输出部分(ADC或DAC等),如美国Delta Tau Data System 公司推出的PMAC系列[2],此类运动控制器计算能力强,可通过VHDL实现不同功能,开放性好,但开发周期长。另外一种是微处理器加专用运动控制芯片的模式[3-5],如ARM+MCX314构成的运动控制器,此类运动控制器充分利用专用芯片的资源,缩短了开发周期,降低了软件编写的难度,同时能达到较高的稳定性。

综合对比,提出一种用TI推出的32位浮点DSP控制和管理三片MCX312,实现总共六轴的新型运动控制器方案,成功用于六自由度并联式道路模拟器的控制,具有一定的市场价值。

1 核心控制芯片简介

1.1 DSP-TMS320F28335

TMS320F28335具有高达150MHz的工作时钟,专门的硬件乘法器使其具有强大的运算处理能力,32位浮点处理单元使得用户无需花费大量的时间处理小数问题。同时还具有丰富的外设资源,如18路PWM输出、12位16通道ADC、2个事件管理器、SCI、SPI及CAN现场通讯接口等,在工控领域得到广泛的应用。

1.2 专用运动控制芯片MCX312

MCX312是日本NOVA电子有限公司开发的脉冲输出式运动控制集成芯片,可实现2轴步进电机或伺服电机的位置、速度等运动控制,并完成直线、圆弧或者位模式插补的功能,可进行梯形对称或非对称以及S型曲线加减速传动[6],功能框图如图1所示。

图1 MCX312功能框图

该芯片提供8位或16位数据总线接口,输出脉冲频率高达4MHz,每轴均有编码器或光栅尺反馈输入端。可通过读写其内部寄存器完成所有的功能,实现位置闭环的控制。此芯片在数控及工业机器人领域得到广泛的应用。

2 硬件平台的设计

设计的六轴运动控制器的硬件平台总体结构如图2所示。DSP芯片作为整个运动控制器的主控芯片,一方面通过RS232或者以太网通信接口,接收上位机发送的运动轨迹数据,根据接收的数据,利用其高速高性能的数据处理与计算能力,进行实时的插补运算。另一方面,控制和管理三片MCX312,将计算获得的插补位置数据实时写入每个MCX312芯片相应的寄存器中,使其按照特定的指令稳定可靠的工作,同时,可在插补的过程当中读取MCX312中特定的寄存器值,查询插补的状态以及实时的位置反馈数据。

三片MCX312作为DSP的外设,设置其中的某个芯片为主芯片,其他两个为副芯片,采用这种主从模式,可以实现一至六轴的联动功能。该芯片根据DSP写入寄存器的插补数据,负责快速的加减速运算,发出特定频率和数量的脉冲,控制步进电机或伺服电机的精确转速和位置,完成复杂轨迹的跟踪。

整个系统主要分为以下几个模块:①时钟与电源模块;②DSP与MCX312组成的主控制模块;③CPLD片选、复位和译码模块;④驱动信号输出、编码器输入以及光耦隔离模块;⑤与上位机的通信模块,包括以太网通信和RS232通信。

2.1 时钟与电源设计

本运动控制器中总共有两种频率的时钟,30MHz和16MHz。DSP使用30MHz无源晶振,三片MCX312使用同一个16MHz有源晶振,保证了每个芯片时钟输入的同步。

图2 硬件平台总体结构

电源部分总共需要四种:24V、5V、3.3V、1.8V。外部开关电源提供24V和5V,TPS767D318芯片提供DSP和CPLD所需要的3.3V和1.8V。该芯片满足DSP上电次序的要求。

2.2 DSP与MCX312接口设计

DSP与三片MCX312的接口如图3所示[7-8]。

图3 DSP与MCX312接口图

DSP提供一个非复用的外部接口(XINTF),这个接口由20条地址线、32条数据线和三个片选信号组成,可实现与外设的无缝连接。MCX312作为其外设,使用16位数据总线,与DSP连接的信号主要有:数据线、地址线、读写信号和片选信号。

由于DSP 的I/O电压是3.3V,而MCX312的工作电压为5V,需要增加电平转换电路,选用74ALVC164245芯片。考虑信号的方向,数据总线是双向的,需要电平转换,转换后分别与三片MCX312的数据线对应连接,而地址线A2-A0、读写信号及片选信号均为单向,由DSP输出到MCX312,不需要经过电平转换,直接连接。对于三片MCX312的片选信号,是由CPLD经过地址分配和译码产生。

另外,对于多个MCX312芯片实现多轴插补的功能,需要通过给特定寄存器赋值设置一个主芯片,其余为副芯片,而且还需要特定的电气连接,如图4所示。将每个芯片上MPLS、MCLK、MERR、MINP、MDT3-0八个信号连接在一起并用680 电阻上拉。这些信号主要完成主副芯片之间各轴终点数据的传送、插补驱动的同步以及插补到位等待等功能。

2.3 CPLD译码及中断处理

CPLD在整个系统中完成比较简单的逻辑控制的功能,主要是给DSP各个外设分配地址,即译码产生不同的片选信号,包括三片MCX312芯片和RTL8019AS以太网控制芯片;另外还完成一些辅助功能,如产生74ALVC164245的使能信号OE和方向信号DIR、处理来自各个外设的中断信号等。选用ALTERA公司生产的MAX II系列的芯片EPM240T100C5N,开发环境为QUARTUS II。

图4 MCX312之间的电气连接

首先,对三片MCX312分配地址。当使用16位数据总线时,MCX312中寄存器的地址有8个,可以使用DSP中区域0(地址范围0x4000-0x5000)上的一段物理地址,通过内存映射的方式完成对MCX312设备的访问,由A4、A5和A6三根地址线译码产生各个MCX312的片选信号,如图5所示。三片MCX312寄存器的地址分别是0x4010~0x4017、0x4020~0x4027、0x4040~0x4047。

其次,每片MCX312都有一个中断输出,总共三个中断,且属于同一性质,可以在CPLD中相与后再输入DSP中任意一个外部中断,并进行中断处理。如图6所示。

图5 MCX312地址译码

图6 MCX312中断处理

2.4 外围电路设计

外围电路的设计包括脉冲差分输出模块、编码器或光栅尺反馈输入模块和光耦隔离模块[9],如图7所示。

图7 外围电路原理图

MCX312可驱动两个轴,下面以X轴为例说明。驱动输出有两个引脚,即XPLS和XDIR,输出脉冲有双脉冲和脉冲+方向两种类型,可通过设置内部寄存器WR2的D6位进行配置。这两路信号经过差分驱动芯片AM26LS31输出四路信号,并连接至步进电机或者伺服电机驱动器,进而控制电机的运转。编码器的三相六路信号XA+/XA-、XB+/XB-、XZ+/XZ-先输入差分接收芯片AM26LS32,输出的三路信号直接连接到MCX312的XECA、XECB和XSTOP2,Z相信号一般用于回零的检测。

伺服到位和报警、正负限位信号和通用输入信号等外部输入信号,直接通过光耦隔离送入MCX312相应的引脚。光耦选用四通道贴片式芯片SFH6916,该芯片体积很小,便于PCB布局并减小PCB整体尺寸。另外,每个轴设有4路通用输出信号,通过光耦隔离后经达林顿管ULN2003输出,可用于控制伺服ON或者继电器等。

3 软件设计

硬件平台是实现运动控制的基础,而软件是实现运动控制的保证。此处重点介绍专用运动控制芯片MCX312的初始化及插补的实现。所有对MCX312设备的操作,都是在CCS3.3开发编译环境下,使用C语言编写完成的。

首先必须对DSP进行初始化配置,包括CMD文件配置、时钟配置、GPIO初始化以及XINTF初始化等,此处不再详述。DSP正确配置后,可通过读写三片MCX312内部寄存器完成我们所需要的功能。

操作MCX312就是按照一定的顺序读写其内部的寄存器。MCX312写寄存器有:命令寄存器wr0、模式寄存器wr1~wr3、输出寄存器wr4、插补模式寄存器wr5和数据寄存器wr6~wr7。读寄存器有:主状态寄存器rr0、状态寄存器rr1~rr3、输入寄存器rr4~rr5和数据寄存器rr6~rr7。同一芯片每个轴wr0~wr7与 rr0~rr7地址相同,在操作这些寄存器之前,DSP须向wr0写入特定命令指定某个轴。

下面以DSP访问MCX312完成插补功能为例,流程图如图8所示[10-11]。DSP访问每个芯片的方式是相同的,所以在此仅给出DSP访问主芯片的部分插补程序。

图8 DSP访问MCX312插补流程图

第一步:定义写寄存器wr0~wr7偏移地址,rr0~rr7偏移地址(省略程序)与wr0~wr7具有相同偏移地址:

#define wr0 0x0

#define wr1 0x2

#define wr2 0x4

#define wr3 0x6

#define wr4 0x8

#define wr5 0xa

#define wr6 0xc

#define wr7 0xe

第二步:定义MCX312寄存器首地址:

int *BaseAdr_12 = (int *)0x004010;

第三步:软件复位:

*(BaseAdr_12+wr0) = 0x8000;

for(count = 0; count < 2; ++count);

第四步:芯片工作模式设定:

command(0x3,0xf,BaseAdr_12);

*(BaseAdr_12+wr1) = 0x0000;

*(BaseAdr_12+wr2) = 0x0040;

*(BaseAdr_12+wr3) = 0x0000;

*(BaseAdr_12+wr4) = 0x0000;

*(BaseAdr_12+wr5) = 0x0400;

第五步:驱动轴1和轴2插补参数设定,包括倍率、初始速度、加减速度等参数:

accofst(0x3,0,BaseAdr_12);

range(0x3,800000,BaseAdr_12);

acac(0x3,1010,BaseAdr_12);

acc(0x3,100,BaseAdr_12);

dec(0x3,100,BaseAdr_12);

startv(0x3,0,BaseAdr_12);

speed(0x3,100,BaseAdr_12);

第六步:终点位置,即脉冲数设定:

pulse(0x1,5000,BaseAdrr_12);

pulse(0x2,-2000,BaseAdrr_12);

最后:发送插补命令,并等待插补的完成:

command(0x0, 0x30,BaseAdrr_12);

wait(0x3,BaseAdrr_12);

运行程序,并通过示波器对该运动控制器的输出进行测试,如图9所示,结果表明该运动控制器能按照设定的参数发出准确频率和数量的脉冲信号,且工作稳定可靠。

图9 运动控制器测试图示

4 结束语

本文提出了一套完整的新型运动控制器设计方案,充分利用DSP的高速计算能力和专用芯片MCX312的稳定性,并结合以太网通信实现与上位机数据的传送。目前该运动控制器已成功应用于六自由度并联机器人,完成预先设定姿态的跟踪,效果良好。结果表明该运动控制性能稳定,开发周期短,开放性好,具有一定的市场价值和前景。

[1] 刘艳华,何高清等. 基于串口通信的六轴运动控制器的研发及应用[J]. 组合机床与自动化加工技术,2009(4): 70-78.

[2] 吉方,张勇斌,张练新,等. 基于PMAC的数控系统运动控制参数调节技术[J]. 组合机床与自动化加工技术,2010(9): 70-78.

[3] 徐爱军,许艺萍,周建中,等. 基于ARM+MCX314四轴运动控制器的硬件平台[J]. 河南科技大学学报,2007,28(1):23-25.

[4] 刘丹,傅建中. 基于ARM和PCL6045的运动控制器设计[J]. 组合机床与自动化加工技术,2006(3):47-49.

[5] Wang Changlei, Cao Shunkun. Design of five-axis CNC Based on Linux[J]. International Conference on Computer Science and Network Technology, 2011: 336-1339.

[6] 王雅生,于旭东,戴风雷. 基于PCI总线的两轴运动控制卡的设计[J]. 组合机床与自动化加工技术,2004(2):34-36.

[7] 王晓初,陈科. 基于PCI总线和MCX314的运动控制卡的硬件设计[J]. 机床与液压,2013, 41(5): 101-104.

[8] 王修岩,李宗帅. 基于PCI总线和MCX314的多轴电机伺服控制器设计[J]. 机床与液压,2009,37(6): 12-145.

[9] 叶佩青,汪劲松. MCX314运动控制芯片与数控系统设计[M]. 北京:北京航空航天大学出版社,2002.

[10] 郭小强. 基于DSP的嵌入式运动控制系统的设计[D]. 天津:天津大学,2009.

[11] Gang Zhou. Design of Carving Machine Controller Based On MCX314 [J]. International Conference on Electronic & Mechanical Engineering and Information Technology, 2011: 2521-2523.

(编辑 李秀敏)

Design of Six-Axis Motion Control Card Based on DSP and MCX312

YE Chun-jie1,WU Hong-tao1,CHEN Bai1,ZHU Liu-cun2,XIE Ya-fei2

(1.College of Mechatronics, Nanjing University of Aeronautics and Astronautics, Nanjing 210016; 2. Changzhou Jingrui Automatic Equipment and Technology Co., Ltd, Changzhou 213032)

A kind of six-axis motion control card is presented in this paper which integrates DSP as main CPU and three ASICs of MCX312. It is commonly used for numerical control and industrial robot. At first, the schematic design is introduced, including electrical connection between TMS320F28335 and MCX312, decoding and interrupt processing in CPLD, I/O interface and communication interface with the host computer. Then software design method is analyzed. A C project is set up to verify its correctness and reliability by testing the output waveform of the card. The result shows that it is stable, short development cycle. It is valuable and has a great developing prospect in the market and succeeds in controlling Six-degree Parallel Robot.

DSP; MCX312; motion control; servo motor

1001-2265(2014)05-0092-04

10.13462/j.cnki.mmtamt.2014.05.023

2013-09-10;

2013-10-08

国家自然基金(51375230);江苏省科技支撑计划(BE2012052)

叶纯杰(1988—),男,安徽霍山县人,南京航空航天大学硕士研究生,研究方向为机电控制,(E-mail)pureycj@126.com。

TH165;TG659

A

猜你喜欢
译码寄存器控制器
工商业IC卡控制器改造为物联网控制器实践
基于对数似然比与极化信道可靠度的SCF 译码算法
基于扩大候选码元范围的非二元LDPC加权迭代硬可靠度译码算法
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
Lite寄存器模型的设计与实现
二进制翻译中动静结合的寄存器分配优化方法
移位寄存器及算术运算应用
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列