一种运动控制器的设计和实现

时间:2011-09-03

 

  运动控制起源于早期的伺服控制。简单地说,运动控制就是对机械运动部件的位置、速度等进行实时的控制管理,使其按照预期的运动轨迹和规定的运动参数进行运动。早期的运动控制技术主要是伴随着数控技术、机器人技术和工厂自动化技术的发展而发展的。早期的运动控制器实际上是可以独立运行的专用的控制器,往往无需另外的处理器和操作系统支持,可以独立完成运动控制功能、工艺技术要求的其他功能和人机交互功能。这类控制器可以成为独立运行的运动控制器。这类控制器主要针对专门的数控机械和其他自动化设备而设计,往往已根据应用行业的工艺要求设计了相关的功能,用户只需要按照其协议要求编写应用加工代码文件,利用RS232或者DNC方式传输到控制器,控制器即可完成相关的动作。这类控制器往往不能离开其特定的工艺要求而跨行业应用,控制器的开放性仅仅依赖于控制器的加工代码协议,用户不能根据应用要求而重组自己的运动控制系统。本文对该运动控制器的总体结构、硬件设计和软件设计进行了描述。

  1 系统总体设计

  运动控制器的总体性能指标为:作为一个单独的运动控制器使用,控制信号采用数字量方式输出,能控制四轴的伺服电机;脉冲输出频率为4MP/s,能处理的编码器反馈信号频率为4MP/s;能接收和处理4路编码器反馈信号;可以处理原点信号、正负方向信号、到位信号以及急停信号等数字量输入信号;提供16路数字量输出信号和16路数字量输入信号接口。运动控制器采用DSP与FPGA芯片作为主控芯片,主要包括DSP模块、FPGA模块、FPGA外围电路模块和数字量输入输出接口模块。

  采用基于DSP与FPGA的运动控制器,能够实时完成复杂的轨迹运算,而且利用DSP的高速数字信号处理功能和FPGA功耗低、主频高的优点,能充分显示该运动控制器的优点。采用DSP与FPGA相结合的运动控制器可以方便地对系统的控制策略进行修改,对控制参数进行修正,并可使设备具有良好的可靠性、可维修性,而且还降低了成本。系统还可以采用更多的智能控制策略,结构灵活,有较强的通用性,适合于模块化设计,能够提高算法效率,且易于维护和扩展。总体设计方案原理框图如图1所示。

 

总体设计方案原理框图

 

  2 系统硬件设计

  2.1 DSP模块

  数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。

  本控制器采用TI公司的TMS320F2812为主控芯片,它是32位的控制专用DSP,内含FLASH,主频高达150 MHz,具有数字信号处理、事件管理和嵌入式控制功能,适用于大批量数据处理的场合。

  选用TI公司生产的TPS767D318芯片来实现TMS320F2812的电源设计,将5 V电源分别转换为3.3 V和1.8 V。SRAM是DSP常用的外围存储器,它具有接口简单、读写速度快等优点,所以选择大小为64 KB的随机存储器CY7C1021作为存储器扩展芯片。DSP F2812与CY7C1021接口电路如图2所示。

 

DSP F2812与CY7C1021接口电路

 

  复位电路设计采用TI公司的TPS382x系列电压监控电路,此系列电路不需要外围电路即可组成监控电路。SCI模块用于扩展RS-232和RS-485串行通信接口;CAN模块和外部CAN工业现场总线相连;外部接口用于与FPGA连接和扩展数字量输入输出。

  2.2 FPGA模块

  FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA.因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。

  FPGA芯片选用Altera公司的Cyclone系列EP1C6TC44C8,这是一款高性能、低功耗的FPGA。EP1C6TC44C8具有2个锁相环,包含5 980个逻辑单元,相当于12万门的规模,同时还包含了频率200 MHz、92 160 bit的内部RAM。该芯片所拥有的逻辑门数量、频率和引脚I/O等资源都能很好地满足运动控制器的设计要求。由于本系统的控制对象是伺服电机,所以设计中主要利用EP1C6TC44C8的I/O口设计电机控制信号的输入输出、编码器信号的输入与部分数字量输入输出。另外,该芯片在整个硬件系统设计完毕后还可以通过JTAG接口对硬件进行重配置,可以增加系统设计的灵活性。

  2.3 FPGA外围电路模块

  X轴伺服电机控制电路如图3所示。Y轴、Z轴、U轴伺服电机控制电路与X轴相同。

 

X轴伺服电机控制电路

 

  (1)输入输出开关量接口设计。输入信号主要包括限位开关信号LIMX+、LIMX-~LIMU+、LIMU-,伺服报警信号ALMX~ALMU和回零信号HMX~HMU。输出信号主要包括伺服使能信号SRVX~SRVU和复位信号RSTX~RSTU。当检测到这些信号后,确定具体触发的信号,限位信号触发,则立即停止对应电机该方向的运动,直到限位消除,电机才能在该方向继续运动;回零信号触发,则电机等待Index信号的输入后立即让电机反向运行用户设定的回零距离作为机械零点;伺服报警信号输入时,程序立即停止该电机的运动,直到用户将报警清除。

  (2)输出控制脉冲电路设计。输出控制脉冲信号为伺服电机的4路脉冲控制输出信号。此控制采用“脉冲+方向”指令,由于每个控制轴分别有脉冲和方向信号,所以4路共8个输出信号。输出控制脉冲信号由FPGA输出,要先经过电平转换,将FPGA的I/O引脚的3.3 V变为5 V,再经过光电隔离,然后再经过施密特触发器整形后输出。由于脉冲和方向信号需要进行差分,所以将信号接入差动线驱动器后再输出。XPLS~UPLS为脉冲信号,XDIR~UDIR为方向信号。差动线驱动器由AM26LS31构成,该电路的功能是将输入的单极性的方波信号转化为一对极性相反的电机驱动信号,它的高阻抗输出状态在电源掉电时是有保障的。

  (3)反馈脉冲处理电路设计。伺服电机的编码器信号直接接入到电机驱动器中,驱动器提供三对差分信号A+、A-、B+、B-、Z+、Z-作为反馈。这三对信号由于受到驱动器内部大电源的干扰,在电机旋转时,所发出的信号会出现许多毛刺,直接接到FPGA中会引起误判断,所以三对信号经过差分电路转化为单路信号A、B、Z。差分电路由AM26LS32构成,该芯片功能与AM26LS31相反,该电路的功能是将输入的一对极性相反的编码器反馈信号转化为单极性的方波信号。A、B两路为正交编码脉冲,Z路每转产生一个低电平脉冲,用于回零时的定位。

  2.4 数字量输入输出接口模块

  考虑到系统的可扩展性和DSP的GPIO口的数量,此运动控制器在DSP与FPGA上分别设计8路,共16路数字量输入输出。运动控制器的所有数字量输入输出信号均采用光电隔离处理,并对每一路信号进行相应的数字滤波处理,以消除噪声信号。数字量输入通道可以根据用户的要求自定义用途,用于零点、限位信号的输入等;数字量输出通道用于各轴方向、脉冲信号的输出以及一些外部设备的启停控制等。

  3 系统软件设计

  软件设计采用模块化设计方法,程序的总体结构采用以数据管理和位置速度控制为主,以I/O端口控制、逻辑控制、插补运算等为中断任务或子函数任务的形式。位置速度控制主要负责对实时运动状态的监控与调节;I/O端口控制主要负责扫描输入端口、设置输出端口等辅助性任务。

  DSP控制程序主要由一个定时中断构成,主程序启动后,首先完成对TMS320F2812的初始化及系统的一些基本配置,并处于等待状态。运动控制功能是在伺服中断服务程序中实现的。主程序和伺服中断服务程序基本流程如图4所示。

 


 

  FPGA主要完成运动控制器的精插补功能,采用数字积分法进行插补[1]。把数字积分法分为3个状态:(1)状态WAIT,等待插补信号;(2)状态L1,判断总的脉冲数;(3)状态L2,积分累加器累加,如有溢出,相应的输出脉冲为高电平,剩余累加次数减1。

  数字积分法的有限状态机如图5所示。

 


 

  触发条件T1:没有启动信号,下一状态为WAIT,无操作;触发条件T2:有启动信号,下一状态为L1,操作为初始化各寄存器,置忙信号;触发条件T3:剩余累加次数大于0,下一状态为L2,操作为各轴输出脉冲为低电平;触发条件T4:剩余累加次数为0,下一状态为WAIT,操作为各轴输出脉冲为低电平,清忙标志;无触发条件:下一状态为L1。

  具体实现方法为:时序电路产生的插补脉冲作为此模块的累加脉冲,每累加1次,剩余累加次数减1。当剩余累加次数为0时,此次插补过程结束。

  本文设计了一种通用型四轴伺服运动控制器,该运动控制器的结构设计可以模块化和易于扩展,这样可以满足用户的各种需求。在软件部分中,采用有限状态机的插补方法,在插补速度处理环节做了优化,使脉冲输出更加稳定。此设计采用了模块化思想,各电机可以单独控制,具有较为全面的运动控制功能、较高的控制和较快的反应速度,其性能可靠、硬件结构简单、价格便宜。


  
上一篇:基于MC68HC908GP32的μC/OS-II移植
下一篇:利用LC电源滤波电路改善SSO 的算法与设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料