技术频道

基于ARM和MCX314As的嵌入式运动控制器

摘要:ARM处理器是业界领先的低功耗、低成本、高性能32位嵌入式RISC微处理器,MCX314A是4轴3联动专用DSP运动控制芯片。文中提出以ARM微控器LPC2292对MCX314A进行控制的嵌入式运动控制器方案,论述了控制器硬件和软件系统的构成,给出了运动控制器在XY两轴数控伺服工作台控制中的应用实例。
关键词:运动控制;微控器;数控

1 引言
运动控制系统广泛应用于现代制造加工业、机器人、电子机械、纺织机械、食品加工、办公设备、家用电器等。控制是为了实现预期运动轨迹和速度、加速度、力等运动参数而采取的必要手段。运动控制器为实现运动控制提供了一个基础平台,在这个平台上可以方便地实现对多个电机的协调控制。发挥ARM微控器与MCX314A各自的优势,将两者有机融合可方便地构成高性能的运动控制器。

2 MCX314A的主要功能
MCX314A是日本NOVA公司推出的4轴运动控制专用DSP集成电路,能用于步进电机或脉冲型伺服驱动的位置、速度和插补控制,可用于工业自动化设备、工业机器人、测量设备、办公设备和家用电器等。其可以进行各轴(X轴、Y轴、Z轴、U轴)独立的定位控制、速度控制,也可在4轴中选择任意的2轴作圆弧插补、2/3轴作直线插补,插补精度是±0.5LSB。默认输入时钟为16MHz,脉冲输出速度最高可达4MPPS,输出脉冲范围为32位。
MCX314A还有伺服电机反馈输入(编码器信号、在位信号和报警信号)、加/减速驱动、软硬件限位、自动原点搜索、同步动作、输入信号滤波等功能。
MCX314A能与8/16位数据总线接口,其所有的功能都是通过读写内部命令寄存器、数据寄存器、状态寄存器和模式寄存器而实现。各轴都有32位的逻辑位置计数器(对输出的驱动脉冲计数)、实际位置计数器(对外部编码器计数)和比较寄存器,实现位置的闭环控制。各轴都有4个通用输入(可用于限位、原点信号输入)和4/8个通用输出。

3 ARM微控器LPC2292
LPC2292是Philips公司推出的基于支持JTAG的16/32位ARM7TDMI-S工业级ARM微控制器,片内带有256 kB高速Flash ROM和16kB静态RAM,且具有外部存储器接口。通过片内PLL可实现最大为60MHz的CPU操作频率。LPC2292采用144脚LQFP封装,内含2路CAN、8路10位ADC、2个32位定时器、6路PWM通道、实时时钟、看门狗、9个外部中断以及多种串行接口(包括2个16C550工业标准UART、I2C接口和SPI接口)等功能模块,这使它特别适用于工业嵌入式控制应用。

4 运动控制器的基本构成
4.1 硬件系统
ARM微控制器LPC2292通过16位数据总线与MCX314A相连,如图1所示。LPC2292的I/O运行电压是3.3V的(但能承受5V电平),而MCX314A是5V电压的,两者互连时,可串入1kΩ电阻。应用实践表明LPC2292和MCX314A直接相连也是可行的。两者互连后,且将MCX314A的EXPLSN引脚、H16L8引脚、TESTN引脚接+5V电压,RESETN引脚连接低电平复位电路,CLK引脚接16M有源晶振时钟,VDD引脚接上+5V电源,MCX314就具备了最基本的运行条件。微控器就可通过外部存储器接口,对MCX314A进行读写操作,实现相应的功能。
图1中虚线框内表示4轴中的某一轴的接口。XPP/XPM 引脚工作在CW/CCW模式时输出正/反驱动脉冲,在脉冲/方向模式时输出驱动脉冲和方向信号。ECA/ECB/IN0接收编码器的反馈输入。AM26LS31是4路差动线驱动器,AM26LS32是4路差动线接收器。


LPC2292外部Flash存储器可用于存储需要固化的运动控制参数(如轨迹坐标、运动参数)。Flash存储器采用SST39VF160(2MB),SRAM采用IS61LV25616AL(512KB),液晶模块采用SMG240128A。为便于与上位系统和其他控制器间通信,控制器设计有RS232、CAN和以太网通信功能。CAN收发器采用TJA1050, RS232电平与3.3V电平转换IC采用SP3232E,以太网接口控制器采用RTL8019AS。通信接口可以根据需要增减,如可用SGS-THOMSON公司的专用SERCOS接口控制芯片SERCON410B扩展SERCOS接口。通过这些通信接口,运动控制器可直接与CAD/CAM系统融合。ARM控制器可方便地把CAD/CAM系统产生的G、M数控代码直接转换成MCX314A的命令。MCX314A执行命令,产生控制脉冲给伺服驱动器,驱动机械部件形成期望的运动。
4.2 软件系统
LPC2292要完成通信、人机交互、运行控制算法产生控制指令、MCX314A的读写操作等多任务。在控制器中嵌入实时多任务μC/OS-II操作系统给软件系统设计带来便利,移植的技术细节参见文献[3>。下面主要讨论MCU对MCX314A的控制。


操作MCX314A对于程序设计来说就是按一定的时序读写其内部的寄存器。MCX314A可“写”的寄存器有:命令寄存器WR0,模式寄存器WR1~3,输出寄存器WR4,插补模式寄存器WR5,数据寄存器WR6~7;可“读”的寄存器有:主状态寄存器RR0,状态寄存器RR1~5,数据寄存器RR6~7。
ARM处理器将I/O端口和存储器统一编址,可将MCX314A接于LPC2292的Bank2存储器组(地址范围是0x8200,0000~0x82ff,ffff),即将CS2作为MCX314A的片选信号,那么WR0和RR0的地址是0x8200,0000,记为Addr。那么,WR1和RR1的地址是Addr+2,依此类推,WR7和RR7的地址是Addr+0x0e。为了使LPC2292提供16位的总线接口,需要在其启动代码中设置PINSEL2= 0x0f814914, BCFG2 =0x1000ffef。图2是MPU操作MCX314A的流程图。
文献[1>提供了基于 C语言的示例程序,但ARM开发套件ADS1.2(CodeWarrior for ARM Developer Suite)没有提供outpw和inpw函数。下面提供这两函数的源代码,这样,文献[1>的程序可方便地移植到ARM中。
void outpw(unsigned int addr, unsigned short data)
{ volatile unsigned short *ptr;
ptr=(volatile unsigned short *)addr;
*ptr=data;
}
unsigned short inpw(unsigned int addr)
{ volatile unsigned short *ptr;
ptr=(volatile unsigned short *)addr;
return *ptr;
}

5 在XY两轴数控伺服工作台中的应用

XY两轴工作台是采用滚珠丝杆和滚动导轨传动的十字工作台(X、Y两轴垂直)。X、Y两轴两端各有1个限位开关。采用松下交流伺服电机(型号MSMA022A1C,功率200W,额定转速3000r/min,额定转矩0.64Nm)驱动工作台运动,电机驱动器采用松下伺服驱动器MSDA023A1A。采用光电编码器作为位置反馈器件(伺服电机同轴安装11线2500P/r增量编码器)。

图3是该平台的X轴驱动原理图,Y轴驱动与X轴驱动电路相同。图中M为伺服电机,EC是编码器。
将伺服驱动器的“控制模式”设置为“位置控制”,把指令脉冲设置为“CW/CCW”方式。LPC2292按流程图操作MCX314A,设置相应的运动参数,写入功能命令,即可完成对平台的运动轨迹控制。

6结束语
运动控制系统应用广泛。以运动控制器作为相对独立的标准部件可以明显缩短新产品的研发周期,尽快将产品投入市场。以ARM微控器和MCX314A为核心的嵌入式运动控制器,具有高速度、高精度、高效率、高可*性、成本低等特点和优势,是运动控制器的一种良好的解决方案。在数控机床等数控装备、机器人等领域有重要应用价值。

文章版权归西部工控xbgk所有,未经许可不得转载。