中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

自控设计

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 自控设计 → 浏览主题: DSP+FPGA在高速高精运动控制器中的应用
发表新帖 回复该主题
回帖:1个,阅读:1145 [上一页] [1] [下一页]
* 帖子主题:

DSP+FPGA在高速高精运动控制器中的应用

分享到
937
zhouqqli
文章数:5
年度积分:50
历史总积分:937
注册时间:2008/6/5
发站内信
发表于:2009/3/27 19:12:13
#0楼

dsp+fpga[/b]在高速高精运动控制器中的应用[/b]

   运动控制卡已经在数控机床、工业机器人、医用设备、绘图仪、ic电路制造设备、ic封装等领域得到了广泛运用,取得了良好的效果。目前运动控制卡大部分采用8051系列的8位单片机,虽然节省了开发周期但缺乏灵活性,难以胜任高要求运作环境,而且运算能力有限。
   dsp的数据运算处理功能强大,即使在很复杂的控制中,采样周期也可以取得很小,控制效果更接近于连续系统。把dsp与pc的各自优势结合将是高性能数控系统的发展趋势。本运动控制器采用ti公司的高性能浮点dsp作为主控芯片,通过isa接口与pc协调并进行数据交换,以pc计算机作为基本平台,以dsp高速运动控制卡作细插补、伺服控制的核心,对直线
[URL=http://info.b2b.hc360.com/zt/dianji/index.shtml]
电机
[/URL]
的运动进行控制,取得了良好的实际应用效果。
   1、高速高精运动控制卡的主要硬件构成
   本运动控制系统的任务是控制直线
[URL=http://info.electric.hc360.com/list/electric_column.shtml]
电机
[/URL]
的运动,要求4轴输入和4轴输出,采用光栅尺对输入计数,16位并行高速da输出,运动定位精度要求达到10nm,响应时间。
   高速直线电机是本系统的控制对象,它具有加速快(a>10g),运动速度高(v>300mm/s)的特点。要求控制系统有足够短的响应时间()和足够高的定位精度(10nm级),因而系统的核心cpu的处理能力及运算能力必须满足高速要求;此外,直线电机运动定位的核心是高精度的反馈控制装置。直线电机的反馈控制装置是光栅尺和高精度脉冲计数器,光栅尺发出与运动距离成线性关系的脉冲数,脉冲计数器的计数值表示直线电机当前的运动位置。经计算,计数长度为28位的计数器才能满足定位的精度要求,同时计数频率很高。一般的通用计数器参数无法达到,所以设计一个特殊计数器是必要的。为了方便设置目标点的运动参数,使运动控制卡具有比较好的人机交互功能,系统必须具有与pc机通信的功能。
   综合考虑上述要求,系统的设计采用dsp+fpga的形式,由dsp主控芯片作为中央处理模块,fpga作为反馈计数模块且负责板上的部分逻辑译码工作,pc通信接口模块采用双口ram,输出模块用d/a转换器实现。
   1.1dsp模块
   基于dsp的运动控制系统一般采用ti公司的tms320c24x系列芯片,但24x系列是16位定点处理器,运算能力有限。不能满足本系统规划的高速高精要求,为此,我们选用了ti公司的tms320c32dsp作为主控芯片。
   tms320c3x系列芯片是美国ti公司推出的第一代浮点dsp芯片,具有丰富的指令集、很高的运算速度、较大的寻址空间和较高的性价比,在各领域得到了广泛的应用。tms320c32是tms320系列浮点数字信号处理器的新产品,在tms320c30和tms320c31的基础上进行了简化和改进。在结构上的改进主要包括可变宽度的存储器接口、更快速的指令周期时间、可设置优先级的双通道dma处理器、灵活的引导程序装入方式、可重新定位的中断向量表以及可选的边缘/电平触发中断方式等。
   对tms320c32的开发可以用汇编语言,也可以用c语言。使用汇编语言的优点在于运行速度快、可以充分利用芯片的硬件特性,但开发速度较慢,程序的可读性差;而c语言的优势在于编程容易、调试快速、可读性好,可以大大缩短开发周期,但c语言对于其片内的没有映射地址的特殊功能寄存器不能操作,如if和ie,ar0~ar7等。
1.2fpga模块
   该部分主要功能为一个4通道的针对光栅尺的脉冲计数器,此外,还承担部分地址译码的工作。但由于脉冲计数频率高,计数量大,所以必须选择高容量、高性能的可编程逻辑器件。
   alteraflex(flexiblelogicelementmatrix)10k系列fpga,规模从一万门到十万门,可提供720~5392个触发器及6144~24576位ram,提供30ns、40ns及50ns等几个速率等级,可适应18~105mhz的信号处理速率。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地址线的a2~a9接到地址比较器74ls688,与设定好的地址作比较,74ls688的片选信号由isa的ior和iow的“与”提供(ior和iow在isa总线访问端口时低有效),a0,a1接到fpga,用于选择fpga内部4个功能不同的寄存器。isa的ale用于触发fpga内部逻辑功能,锁存isa总线过来的信号。
   当访问地址清零寄存器时,地址计数值清零;当访问地址增加寄存器时,地址计数值增加“1”。如此类推,访问不同的寄存器就对地址计数值完成不同的操作,把地址计数值直接作为地址送给双口ram,就可以实现isa总线访问双口ram了。

   1.4输出模块
   输出模块采用模拟输出,经外部放大驱动电机的方案。d/a转换芯片选择dac7744。
   dac7744是高性能的4通道16位高速d/a,主要特点如下:
   ●输出通道:独立4路
   ●输出信号范围:0~5v;0~10v;±5v;±10v●输出阻抗:≤2ω
   ●d/a转换器件:dac7744
   ●d/a转换分辨率:16位
   ●d/a转换码制:二进制原码(单极性)二进制偏移码(双极性)
   ●d/a转换时间:≤1μs
   ●d/a转换综合误差:≤0.02%fsr
   ●电压输出方式负载能力:5ma/路
   1.5存储模块
   存储模块用于存储系统程序和数据,主要由sram(2片cy7c1021)和flash(am29f400b)组成。外围存储电路。
[URL=http://info.bpq.hc360.com/picnewslist/]

[/URL]
   2、软件设计
   该运动控制卡应用时插在
[URL=http://www.search.hc360.com/cgi-bin/seinterface.cgi?word=工控机]
工控机
[/URL]
的isa槽上,与上位机配合工作。首先在上位nc机输入加工曲线,由上位机做粗插补,然后把数据通过isa接口传递给控制卡。控制卡对接收到的数据再做细插补——采用三次b样条插值,然后发送给da,驱动电机运动。dsp通过fpga进行脉冲计数,读出直线电机光栅尺的反馈信息,然后采用离散pid控制算法调整,以便于电机运动控制的最优化。
运动控制算法的核心是先用b样条插值法把目标点进一步细化,使运动曲线更平滑,然后在运动过程中采用pid算法进行调整,最终达到高速高精的设计要求。
[URL=http://info.bpq.hc360.com/picnewslist/]

[/URL]
   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的输出量。
   e(k),e(k-1),e(k-2)分别是k,k-1,k-2时刻的偏差值,在系统中体现为该时刻实际位置与目标位置的偏差。
   t,td,ti,kp是pid公式的常量,不同的数值代表着pid系统的微分、积分、比例调节作用的强度和效果。
   3、小结
   在开放式数控系统中应用基于dsp+fpga的运动控制卡,dsp承担了cnc系统中实时性要求较高的模块功能。利用dsp高速运算能力和实时信号处理能力,采用先进的bspline插补算法,使该dsp运动控制卡具有高速、高精度的性能,结合fpga芯片的先进技术,使该运动控制卡的集成性、可靠性大大提高。本运动控制卡目前是基于isa总线设计的,今后将考虑把该系统移植到pci总线上,将能进一步提高系统的处理速度能力,适应更高要求。

ge系列点位运动控制器是固高科技自主研发的经济型点位运动控制器,包括ge-x00-pv、ge-x00-pg等几种型号。它主要应用在高速高精度点位运动领域,具有良好的位置速度规划曲线,可实现高速运行和快速准确定位。在pcb钻铣床、表贴机、邦定机等点位控制设备上得到了广泛应用。
图
图
图
技术特点
图
图
图

采用高性能dsp和fpga 技术。
每块卡可控制1~8个伺服/步进轴,同时进行1~8轴点位运动控制 。
模拟量输出模式下,可编程伺服采样周期,最小可调整为200微秒,最大可调整为2毫秒(默认伺服周期为400微秒);若任何一个轴为脉冲输出模式,伺服周期固定为400微秒。
运动方式:单轴点位运动、速度控制。
可编程梯形曲线规划和s曲线规划,在线刷新运动控制参数。
所有计算参数和轨迹规划参数均为32位。
可编程禁止或使能驱动报警信号和限位信号监测。
限位触发时自动急停触发轴的运动,驱动报警触发时关闭轴伺服使能。
可设置跟随误差极限、控制输出极限等,保证控制安全可靠。
pid(比例-积分-微分)数字滤波器,带速度和加速度前馈,带积分限值、偏差补偿和低通滤波器。
可编程设置home信号的触发沿,硬件捕获home信号和编码器index信号,实现高精度机器原点位置锁存,具有良好的重复定位精度。
网络接口(以太网、profibus-dp、rs232、rs422/485)(选件)。

----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=82500&Name=zhouqqli
-179
379741343
文章数:0
年度积分:-179
历史总积分:-179
注册时间:2014/12/25
发站内信
发表于:2014/12/25 12:49:54
#1楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004