DSP+FPGA在高速高精运动控制器中的应用.docx
DSP+FPGA在高速高精运动控制器中的应用zhangting导语:运动控制卡已经在数控机床、工业机器人、医用设备、绘图仪、IC电路制造设备、IC封装等领域得到了广泛运用,获得了良好的效果。运动控制卡已经在数控机床、工业机器人、医用设备、绘图仪、IC电路制造设备、IC封装等领域得到了广泛运用,获得了良好的效果。目前运动控制卡大局部采用8051系列的8位单片机,固然节省了开发周期但缺乏灵敏性,难以胜任高要求运作环境,而且运算才能有限。DSP的数据运算处理功能强大,即使在很复杂的控制中,采样周期也可以获得很小,控制效果更接近于连续系统。把DSP与PC的各自上风结合将是高性能数控系统的开展趋势。本运动控制器采用TI公司的高性能浮点DSP作为主控芯片,通过ISA接口与PC协调并进展数据交换,以PC计算机作为根本平台,以DSP高速运动控制卡作细插补、伺服控制的核心,对直线电机的运动进展控制,获得了良好的实际应用效果。1、高速高精运动控制卡的主要硬件构成本运动控制系统的任务是控制直线电机的运动,要求4轴输入和4轴输出,采用光栅尺对输入计数,16位并行高速DA输出,运动定位精度要求到达10nm,响应时间10g,运动速度高v>300mm/s的特点。要求控制系统有足够短的响应时间1.1DSP模块基于DSP的运动控制系统一般采用TI公司的TMS320C24x系列芯片,但24x系列是16位定点处理器,运算才能有限。不能知足本系统规划的高速高精要求,为此,我们选用了TI公司的TMS320C32DSP作为主控芯片。TMS320C3X系列芯片是美国TI公司推出的第一代浮点DSP芯片,具有丰富的指令集、很高的运算速度、较大的寻址空间和较高的性价比,在各领域得到了广泛的应用。TMS320C32是TMS320系列浮点数字信号处理器的新产品,在TMS320C30和TMS320C31的根底上进展了简化和改良。在构造上的改良主要包括可变宽度的存储器接口、更快速的指令周期时间、可设置优先级的双通道DMA处理器、灵敏的引导程序装入方式、可重新定位的中断向量表以及可选的边沿/电平触发中断方式等。对TMS320C32的开发可以用汇编语言,也可以用C语言。使用汇编语言的优点在于运行速度快、可以充分利用芯片的硬件特性,但开发速度较慢,程序的可读性差;而C语言的上风在于编程轻易、调试快速、可读性好,可以大大缩短开发周期,但C语言对于其片内的没有映射地址的特殊功能存放器不能操纵,如IF和IE,AR0AR7等。1.2FPGA模块该局部主要功能为一个4通道的针对光栅尺的脉冲计数器,此外,还承当局部地址译码的工作。但由于脉冲计数频率高,计数目大,所以必须选择高容量、高性能的可编程逻辑器件。ALTERAFLEXFlexibleLogicElementMatrix10K系列FPGA,规模从一万门到十万门,可提供7205392个触发器及614424576位RAM,提供30ns、40ns及50ns等几个速率等级,可适应18105MHz的信号处理速率。ALTERAFLEX10K系列FPGA主要由输入输出单元IOE、掩埋阵列EAB、逻辑阵列LAB及内部连线组成。EAB是在输入和输出端口加有存放器的RAM块,其容量可灵敏变化。所以,EAB不仅可以用于存储器,还可以事先写入查表值来用它构成如乘法器、纠错逻辑等电路。当用于RAM时,EAB可配制成多种形式的字宽和容量。LAB主要用于逻辑电路设计,一个LAB包括8个逻辑单元LE,每一个LAB提供4个控制信号及其反相信号,其中两个可用于时钟信号。每一个LE包括组合逻辑及一个可编程触发器。触发器可被配成D,T,JK,RS等各种形式。IOE提供全局的时钟及清零信号输入端口,还提供具有可编程性的各种输入输出端口,如低噪声端口、高速端口等。FLEX10K系列芯片是ALTERA公司新近推出的PLD产品。与ALTERA公司先前推出的MAX7000系列EPLD相比,FLEX10K以下简称10K系列具有更加丰富的内部资源最多可达10万门,更加充裕的可配置的I/O管脚最多达406条。再加上其低廉的价格,使得10K系列芯片受到越来越多用户的欢送。基于以上原因,我们在本方案中采用ALTERAFLEX10K10,并且考虑到以后设计的连续性,我们可以无需更改硬件电路,就可以更换性能更高的、一样尺寸、一样管脚配置的ALTERAFLEX10K20。1.3PC通讯接口模块该模块选用16位的ISA总线与PC相连,CY7C133双口RAM用作数据缓冲。ISA总线的使用特别灵敏、方便,而且I/O操纵比拟简单。固然ISA总线的引脚多但并不是都要用到的,关键是几个固定引脚的应用,例如:I/OCHRDY、I/OR、I/OW、ALE、数据线和地址线,结合起来实现通讯。在本系统中,双口RAM的PC端地址线并没有直接采用ISA过来的地址线,而是由FPGA内部地址计数器给定。这是由于,ISA总线上大局部地址都已经被PC系统分配好,直接把2K的双口RAM数据空间映射到ISA总线上并不现实;而且控制系统与PC交换的数据根本上是一系列加工点的坐标参数,采用顺序访问对性能没有影响。因此采用地址计数器方式的顺序访问,完全可以到达设计的要求。详细做法是:ISA地址线的A2A9接到地址比拟器74LS688,与设定好的地址作比拟,74LS688的片选信号由ISA的IOR和IOW的“与提供IOR和IOW在ISA总线访问端口时低有效,A0,A1接到FPGA,用于选择FPGA内部4个功能不同的存放器。ISA的ALE用于触发FPGA内部逻辑功能,锁存ISA总线过来的信号,如图2所示。当访问地址清零存放器时,地址计数值清零;当访问地址增加存放器时,地址计数值增加“1。如此类推,访问不同的存放器就对地址计数值完成不同的操纵,把地址计数值直接作为地址送给双口RAM,就可以实现ISA总线访问双口RAM了。1.4输出模块输出模块采用模拟输出,经外部放大驱动电机的方案。D/A转换芯片选择DAC7744。DAC7744是高性能的4通道16位高速D/A,主要特点如下:输出通道:独立4路输出信号范围:05V;010V;±5V;±10V输出阻抗:2D/A转换器件:DAC7744D/A转换分辨率:16位D/A转换码制:二进制原码单极性二进制偏移码双极性D/A转换时间:1sD/A转换综合误差:0.02%FSR电压输出方式负载才能:5mA/路1.5存储模块存储模块用于存储系统程序和数据,主要由SRAM2片CY7C1021和FLASHAM29F400B组成。外围存储电路如图3所示。2、软件设计该运动控制卡应用时插在工控机的ISA槽上,与上位机配合工作。首先在上位NC机输入加工曲线,由上位机做粗插补,然后把数据通过ISA接口传递给控制卡。控制卡对接收到的数据再做细插补采用三次B样条插值,然后发送给DA,驱动电机运动。DSP通过FPGA进展脉冲计数,读出直线电机光栅尺的反应信息,然后采用离散PID控制算法调整,以便于电机运动控制的最优化。运动控制算法的核心是先用B样条插值法把目的点进一步细化,使运动曲线更平滑,然后在运动经过中采用PID算法进展调整,最终到达高速高精的设计要求,图3给出了系统软件流程图。2.1B样条插值目前很多先进的CAD/CAM系统都采用了B样条曲线。其特点是,可用统一的数学形式准确表示分析曲线如直线,圆锥曲线等和自由曲线如均匀B样条曲线等,因此便于用统一的数据库治理、存储,程序量可以大大减少;非均匀B样条曲线定义中的权因子使外形设计更加灵敏方便,设计人员通过调整具有直观几何意义的点、线、面元素即可到达预期的效果。本系统采用三次B样条曲线作为精插补算法,该算法应用在控制卡中可以得到比拟满足的效果。计算经过中只需要相邻4个点的位置数据,x0,y0,x1,y1,x2,y2,x3,y3,就可以构造出平滑的曲线。公式以坐标分量形式表示为:2.2PID控制在控制领域中,PID控制算法是一种常用的算法,PID是比例、积分、微分的缩写。PID的公道的参数估计、比拟,可以通过MATLAB的传递函数模型仿真来得到。由于该系统是数字系统,采用的都是数字量,所以必须把PID算法离散化才能使用。又由于系统的存储空间有限,算法的存储空间开销不能太大,所以采用了离散化的增量式PID算法。该算法在运算经过中只需要保存最近3次的误差数据,就可以推导出下一次的输出量,节省了大量的数据空间,进步了运算速度,有很强实用价值。公式如下:k,k-1分别是k和k-1时刻的输出量,在系统中表达为DA的输出量。ek,ek-1,ek-2分别是k,k-1,k-2时刻的偏向值,在系统中表达为该时刻实际位置与目的位置的偏向。T,Td,Ti,Kp是PID公式的常量,不同的数值代表着PID系统的微分、积分、比例调节作用的强度和效果。在开放式数控系统中应用基于DSP+FPGA的运动控制卡,DSP承当了CNC系统中实时性要求较高的模块功能。利用DSP高速运算才能和实时信号处理才能,采用先进的Bspline插补算法,使该DSP运动控制卡具有高速、高精度的性能,结合FPGA芯片的先进技术,使该运动控制卡的集成性、可靠性大大进步。本运动控制卡目前是基于ISA总线设计的,今后将考虑把该系统移植到PCI总线上,将能进一步进步系统的处理速度才能,适应更高要求。参考文献1TMS320C3xUsersGuide,TexasInstruments,20012TMS320C3xGeneral-PurposeApplications,TexasInstruments,20013孙家广.计算机图形学.清华大学出版社4解旭辉.超精机床数控系统与伺服控制技术研究.长沙:国防科技大学,19975来晓岚,赵佳明,卢焕章.DSP+FPGA实时信号处理系统,电子技术应用,2002.76胡育文,陈宏,顾毅康.基于DSP的电机控制器设计中的几个问题.中国自动化学会,1999.107潘日红,潘日晶.周期B样条曲线的快速递推升阶方法.福建师范大学学报自然科学版,2001.48刘金琨.先进PID控制及其MATLAB仿真.电子工业出版社,20030