当前位置:首页 >> 信息与通信 >>

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

作者: 武汉理工大学智能信息系统研究所 朱显新 黄涛 邓启辉 卢珞先 来源: 《今日电子》

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

摘 要 :数字信号处理器具有高效的数值运算能力,并能提供良好的开发环境,而可编程逻辑器件具有高度 灵活的可配置性。本文描述了通过采用 TMS320C32 浮点 DSP 和可编程逻辑器件(FPGA)的组合运用来构成 高速高精运动控制器, 该系统通过 B 样条插值算法对运动曲线进行平滑处理以及运用离散 PID 算法对运动 过程加以控制。

关键词 :运动控制; DSP; FPGA; B 样条插值; PID 运动控制卡已经在数控机床、工业机器人、医用设备、绘图仪、IC 电路制造设备、IC 封装等领域得到了广 泛运用,取得了良好的效果。目前运动控制卡大部分采用 8051 系列的 8 位单片机,虽然节省了开发周期但 缺乏灵活性,难以胜任高要求运作环境,而且运算能力有限。 --- DSP 的数据运算处理功能强大,即使在很复杂的控制中,采样周期也可以取得很小,控制效果更接近 于连续系统。把 DSP 与 PC 的各自优势结合将是高性能数控系统的发展趋势。本运动控制器采用 TI 公司的 高性能浮点 DSP 作为主控芯片,通过 ISA 接口与 PC 协调并进行数据交换,以 PC 计算机作为基本平台,以 DSP 高速运动控制卡作细插补、伺服控制的核心,对直线电机的运动进行控制,取得了良好的实际应用效 果。 1 高速高精运动控制卡的主要硬件构成

--- 本运动控制系统的任务是控制直线电机的运动,要求 4 轴输入和 4 轴输出,采用光栅尺对输入计数, 16 位并行高速 DA 输出,运动定位精度要求达到 10nm,响应时间<100ns。 --- 高速直线电机是本系统的控制对象,它具有加速快(a>10g),运动速度高(v>300mm/s)的特点。要求控 制系统有足够短的响应时间(<100ns)和足够高的定位精度(10nm 级),因而系统的核心 CPU 的处理能力及运 算能力必须满足高速要求;此外,直线电机运动定位的核心是高精度的反馈控制装置。直线电机的反馈控 制装置是光栅尺和高精度脉冲计数器,光栅尺发出与运动距离成线性关系的脉冲数,脉冲计数器的计数值 表示直线电机当前的运动位置。经计算,计数长度为 28 位的计数器才能满足定位的精度要求,同时计数频 率很高。一般的通用计数器参数无法达到,所以设计一个特殊计数器是必要的。为了方便设置目标点的运 动参数,使运动控制卡具有比较好的人机交互功能,系统必须具有与 PC 机通信的功能。 --- 综合考虑上述要求,系统的设计采用 DSP+FPGA 的形式,由 DSP 主控芯片作为中央处理模块,FPGA 作 为反馈计数模块且负责板上的部分逻辑译码工作,PC 通信接口模块采用双口 RAM,输出模块用 D/A 转换器 实现,如图 1 所示。

1.1 DSP 模块

--- 基于 DSP 的运动控制系统一般采用 TI 公司的 TMS320C24x 系列芯片,但 24x 系列是 16 位定点处理器, 运算能力有限。不能满足本系统规划的高速高精要求,为此,我们选用了 TI 公司的 TMS320C32 DSP 作为主 控芯片。 --- TMS320C3X 系列芯片是美国 TI 公司推出的第一代浮点 DSP 芯片,具有丰富的指令集、很高的运算速度、 较大的寻址空间和较高的性价比,在各领域得到了广泛的应用。TMS320C32 是 TMS320 系列浮点数字信号处 理器的新产品,在 TMS320C30 和 TMS320C31 的基础上进行了简化和改进。在结构上的改进主要包括可变宽 度的存储器接口、更快速的指令周期时间、可设置优先级的双通道 DMA 处理器、灵活的引导程序装入方式、 可重新定位的中断向量表以及可选的边缘/电平触发中断方式等。 --- 对 TMS320C32 的开发可以用汇编语言,也可以用 C 语言。使用汇编语言的优点在于运行速度快、可以 充分利用芯片的硬件特性,但开发速度较慢,程序的可读性差;而 C 语言的优势在于编程容易、调试快速、 可读性好,可以大大缩短开发周期,但 C 语言对于其片内的没有映射地址的特殊功能寄存器不能操作,如 IF 和 IE,AR0~AR7 等。

1.2 FPGA 模块

--- 该部分主要功能为一个 4 通道的针对光栅尺的脉冲计数器,此外,还承担部分地址译码的工作。但由 于脉冲计数频率高,计数量大,所以必须选择高容量、高性能的可编程逻辑器件。 --- ALTERA FLEX(Flexible Logic Element Matrix)10K 系列 FPGA,规模从一万门到十万门,可提供 720~ 5392 个触发器及 6144~24576 位 RAM,提供 30ns、40ns 及 50ns 等几个速率等级,可适应 18~105MHz 的信 号处理速率。ALTERA FLEX10K 系列 FPGA 主要由输入输出单元 IOE、掩埋阵列 EAB、逻辑阵列 LAB 及内部连 线组成。 是在输入和输出端口加有寄存器的 RAM 块,其容量可灵活变化。 EAB 所以,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 系列芯片受到越来越多用户的欢迎。 --- 基于以上原因,我们在本方案中采用 ALTERA FLEX10K10,并且考虑到以后设计的连续性,我们可以无

需更改硬件电路,就可以更换性能更高的、相同尺寸、相同管脚配置的 ALTERA FLEX10K20。

1.3 PC 通信接口模块

--- 该模块选用 16 位的 ISA 总线与 PC 相连,CY7C133 双口 RAM 用作数据缓冲。 --- ISA 总线的使用十分灵活、方便,而且 I/O 操作比较简单。虽然 ISA 总线的引脚多但并不是都要用到 的,关键是几个固定引脚的应用,例如:I/O CH RDY、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 总线过来 的信号,如图 2 所示。 --- 当访问地址清零寄存器时,地址计数值清零;当访问地址增加寄存器时,地址计数值增加“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)组成。外围存 储电路如图 3 所示。 2 软件设计

--- 该运动控制卡应用时插在工控机的 ISA 槽上,与上位机配合工作。首先在上位 NC 机输入加工曲线,由 上位机做粗插补,然后把数据通过 ISA 接口传递给控制卡。控制卡对接收到的数据再做细插补——采用三 次 B 样条插值,然后发送给 DA,驱动电机运动。DSP 通过 FPGA 进行脉冲计数,读出直线电机光栅尺的反馈 信息,然后采用离散 PID 控制算法调整,以便于电机运动控制的最优化。 --- 运动控制算法的核心是先用 B 样条插值法把目标点进一步细化,使运动曲线更平滑,然后在运动过程 中采用 PID 算法进行调整,最终达到高速高精的设计要求,图 3 给出了系统软件流程图。

2.1 B 样条插值

--- 目前许多先进的 CAD/CAM 系统都采用了 B 样条曲线。其特点是,可用统一的数学形式精确表示分析曲 线(如直线,圆锥曲线等)和自由曲线(如均匀 B 样条曲线等),因而便于用统一的数据库管理、存储, 程序量可以大大减少;非均匀 B 样条曲线定义中的权因子使外形设计更加灵活方便,设计人员通过调整具 有直观几何意义的点、线、面元素即可达到预期的效果。 --- 本系统采用三次 B 样条曲线作为精插补算法,该算法应用在控制卡中可以得到比较满意的效果。计算 过程中只需要相邻 4 个点的位置数据,(x0,y0),(x1,y1),(x2,y2),(x3,y3),就可以构造出平滑的曲线。 --- 公式以坐标分量形式表示为: (0≤t≤1)

2.2 PID 控制

--- 在控制领域中,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 总线上,将能进一步提高系统的处 理速度能力,适应更高要求。


相关文章:
DSP+FPGA在高速高精运动控制器中的应用.doc
DSP+FPGA在高速高精运动控制器中的应用_电子/电路_工程科技_专业资料。讲
DSP+FPGA在高速高精运动控制器中的应用_图文.pdf
DSP+FPGA在高速高精运动控制器中的应用 - 巨Mupff¥c? o DPF
DSP在高精控仪器中的应用………(精).doc
DSP在高精控仪器中的应用………(精) - DSP+FPGA 在高速高精运动控制器中的应用 摘要 :数字信号处理器具有高效的数值运算能力...
DSP+FPGA运动控制器设计-开题报告_图文.doc
DSP+FPGA 在高速高精运动控制器中的应用.[D].武汉:武汉理工大 学.2
FPGA在高速高精运动控制系统中的应用.pdf
FPGA在高速高精运动控制系统中的应用 - 介绍了FPGA器件在高速高精运动控制系统中的应用.在该系统中通过FPGA器件实现了对直线电机各轴位置的精确反馈,DSP系统的存储...
采用DSP和FPGA构建高速高精运动控制器.doc
采用DSPFPGA构建高速高精运动控制器 - 采用 DSPFPGA 构建高速高精运动控制器 数字信号处理器具有高效的数值运算能力, 并能提供良好的开发环境, 而可编程...
FPGA在高速高精运动控制系统中的应用.pdf
第 29卷 第 2期 黄 涛, 等: FPGA在高速高精运动控制系统中的应用 29 信号的反馈, 实现对直线电机各轴位置的精密检 测; ? 配合 DSP 及 ISA 的访 问时...
DSP在高精控仪器中的应用……….doc
DSP+FPGA 在高速高精运动控制器中的应用 摘要 :数字信号处理器具有高效的
一种基于DSP和FPGA的多轴运动控制卡的设计_图文.pdf
系统中的应用 3.王雅生 基于PCI总线的两轴运动控制卡的设计[期刊论文]-组合机床与自动化加工技术 2004(02) 4.朱显星 DSP+FPGA在高速高精运动控制器中的应用[...
基于DSP 与FPGA 的运动控制器设计.pdf
目前, 多轴伺服控制器越来越多地运用在运动控制系统 中,具有较高的集 成度和...DSP+FPGA在高速高精运动... 6页 免费 基于DSP_CPLD_FPGA的运动... 3页 ...
FPGA在高速高精运动控制系统中的应用_论文.pdf
FPGA在高速高精运动控制系统中的应用 - 介绍了FPGA器件在高速高精运动控制系统中的应用。在该系统中通过FPGA器件实现了对直线电机各轴位置的精确反馈,DSP系统的存储...
基于DSP与FPGA的运动控制器设计.pdf
基于DSPFPGA的运动控制器设计_计算机软件及应用_IT/计算机_专业资料。基于 DSP...完成运动控制过程中复 杂的逻辑处理和控制算法,能实现多轴高速高精度的伺服控制...
DSP+FPGA在高速高精运动控制器中的应用.doc
DSP+FPGA 在高速高精运动控制器中的应用 在高速高精运动控制器 控制器中的
基于DSP 和 FPGA 的多轴伺服运动控制器设计.pdf
基于DSPFPGA 的多轴伺服运动控制器设计 - 针对数控技术的发展对运动控制系统的实时性、加工速度、精确度等性能指标提出了越来越高的要求,本文提出了一种高速...
基于DSP+FPGA的开放式伺服运动控制器的研究_图文.pdf
运动控制 系统 在 制造 业 中应 用越 来越 广泛,而 先进 的运动控制器 的...DSP+FPGA在高速高精运动... 6页 免费 基于DSP和FPGA的数控铣床... 65页 ...
DSP+FPGA四轴运动控制器设计方案.doc
设计了一种基于 DSPFPGA运动控制器。该控制器以 DSPFPGA 为核心器件,针 对运动控制中的实时控制、高精度等具体问题,规划了 DSP 的功能扩展,并在...
基于ARM+DSP+FPGA的机器人运动控制器研究.pdf
基于ARM+DSP+FPGA的机器人运动控制器研究_电子/电路...定位精度可达1 trm,稳定性也不错,在机床上 连续...可靠性 高,性价比高,实时性强,支持多任务应用呤。...
PC机+伺服驱动在高速高精运动系统中的应用_论文.pdf
PC机+伺服驱动在高速高精运动系统中的应用 - 运动控制技术是推动制造业自动化前进的旋律,开放式运动控制器是实现信息处理与运动轨迹控制相结合的关键。充分利用PC机...
基于DSP和FPGA的通用控制器设计_刘鹏鹏.pdf
及并 口的 多种 方式 输出 信息, 从而 保证了控制器对于 多种场合的应用 ...DSP+FPGA在高速高精运动... 6页 免费 基于DSP和FPGA的四轴运动... 89页 ...
基于ARMDSPFPGA的机器人运动控制器研究.pdf
基于ARMDSPFPGA的机器人运动控制器研究_互联网_IT/...定位精度可达1 trm,稳定性也不错,在机床上 连续...基于Pc的高速高精度开放式数控系统的硬件设计[D]....