基于 ARM+FPGA精密多轴实时运动控制卡设计方案,适用于半导体设备等高精度领域(一)

无论是数控系统还是机器人控制领域,都要求多轴运动控制系统能够实现高
精度、高平稳性、高效率的运动控制。一个高性能的运动控制系统需要从许多方面
来保证,如高精度的位置传感器,响应快、跟随误差小的控制环路,以及高性能的
插补和加减速控制模块。
数字控制技术是战略性核心技术,五轴及以上的联动数控系统和机床设备更
是一种战略物资,它体现了一国的尖端制造技术水平,是大国角逐的重要领域。


随着机械制造技术、微电子技术和精密测量技术的不断进步,运动控制系统的
处理能力迅速提高,MEMS 技术使得数控设备安装功能丰富、精度更高的传感器
成为可能,运动控制器还需要朝着高速化、高精度、智能化方向进一步发展。
(1)高速化。随着集成电路技术的发展,诸如 FPGA、ARM、DSP 等高性能
处理芯片在控制领域应用广泛。运动控制器常采用 FPGA+ARM、FPGA+DSP 等架
构,结合了 FPGA 高并行、计算速度快、灵活、实时性高的优势和 ARM、DSP 控
制能力强,擅长浮点数乘除运算的优势,使得运动控制器的处理能力大大提高。另
一方面,随着精密制造技术、脉宽调制技术和矢量控制等先进的伺服驱动技术的发
展、高性能伺服电机的应用,主轴旋转速度和切削速度得到提高。
(2)高精度。在运动控制系统采取下列措施提高精度:
(a)采用高分辨率的位置编码器来提高位置检测精度,如高精度光栅编码器。
(b)位置伺服系统常常采用前馈和非线性控制等方法改善伺服系统的响应特
性,如海德汉的 PMAC 系列运动控制卡。
(c)为了消除机床动摩擦和静摩擦的非线性导致的爬行现象,除了机床在机
械上采用气浮导轨、滚动导轨等措施减小静摩擦外,高档的伺服控制系统还具备自
动补偿功能,这些补偿功能不仅局限与机械系统的动摩擦、静摩擦,还包括转矩补
偿、刀具补偿、齿侧间隙补偿(Blacklash Compensation)等。
(3)实时智能监测功能。数控设备在硬件电路上大多集成了红外、超声、激
光检测装置,这要求运动控制系统能够实现对加工过程的实时监测。通过自带的硬
件、软件故障自诊断功能,能够在加工过程中出现故障后及时停止加工并保存加工
进度,待故障移除后可以继续加工而不致工件报废。
(1)设计基于 ARM+FPGA 架构的运动控制卡硬件电路,以实现微米级的铣
削加工。由于 FPGA 高并行度,执行速度快的优点,为了尽可能提高运动控制卡的
性能,应尽量将一些实现特定的外围器件在 FPGA 内实现,而不是在 ARM 内核中
实现,比如编码器接口、控制环路、加减速控制。但是由于 FPGA 浮点数的支持较
差及控制不够灵活,故还使用了型号为 LM3S6911 的 ARM 微控制器,功能是实现
运动控制卡与上位机的通信、G 代码解释、速度规划及插补。
(2)在 FPGA 中实现 EnDat2.2 接口协议,实现 FPGA 对高精度光栅编码器输
出位置信息的读取。光栅尺将采用的是海德汉光栅尺,基于 EnDat2.2 接口,最小
分辨率 1nm。然后,设计电机位置及速度控制环路,以实现多轴运动控制系统的精
密运动。控制系统结构设计基于 FPGA 实现,由 PID 闭环反馈控制、前馈环节、
陷波滤波器(Notch Filter)等构成。其中陷波滤波器的作用是去除特定频率分量的信
号。由于 PID 参数调节较为复杂,需要根据不同轴分开调试;如果要实现超精密
多轴运动控制,还需要要设计交叉耦合控制(Cross-coupling Control,CCC),用
于将轮廓误差按照一定的关系分别补偿到各个运动轴,以实现多个运动轴的协同
运动,减少多轴系统的运动误差。
(3)在 ARM 中实现速度规划算法,传统的直线插补、圆弧插补、螺旋插补
算法和基于均匀 B 样条曲线的参数化插补。
本次设计的运动控制系统用于三轴数控铣床,要求直线加工精度在 2um 以内,
圆弧加工精度在 5um 以内,分辨率为 0.1um,能够按照数控软件发送的数控加工
指令完成铣削加工。为了达到给定精度,先设计运动控制卡的硬件电路,然后选取
合适的 X、Y、Z 直线轴和主轴及其控制方案。
运动控制系统总体框图如图 2-1 所示,

图 2-2 是设计的速度规划算法、插补算法、加减速控制算法的层次结构,设计
的运动控制系统先在 ARM 中实现速度规划,再进行插补,然后在 FPGA 中实现加
减速控制,最后将位置指令送到数字伺服环路中。

2.2.1 运动控制卡硬件电路设计
运动控制卡硬件电路采用 FPGA+ARM 设计,FPGA 型号为 EP1C3-144PE,配
以 128KB 配置 Flash;ARM 型号 LM3S6911,配以 128K EEPROM。此外,电路还
有两路低通滤波器,24 个输入、30 个输出 IO,输入输出 IO 均有光耦隔离,通过
EtherNet 实现与上层通信。该硬件电路结构和主要模块如图 2-3 所示。
该硬件电路中 FPGA 与 ARM 通过控制线、地址线、数据线相连接,能够实现
ARM 与 FPGA 的协同工作。
2.2.2 XYZ 直线轴控制方案设计
XYZ 直线轴反馈控制方案如下图图 2-4 所示。运动控制卡通过模拟量输出模
块给驱动器发送控制模拟量信号,驱动器输出三相 UVW 驱动信号控制直线电机
运动,直线光栅尺检测到位置反馈信号以 Endat2.2 绝对编码形式传输到运动控制
卡,从而构成位置伺服闭环控制系统。其中直线电机输出电流霍尔信号反馈给驱动
器作为电机正反向运动信号或者速度闭环信号。为了减少系统中的纹波,提高控制
精度,采用 Trust TA330 线性驱动器驱动直线电机。

在多轴铣削数控加工系统中,由直线电机直接驱动加工平台的直线运动,而不
使用蜗轮蜗杆传动,这样可以消除蜗轮蜗杆之间的齿隙引起的齿侧间隙误差,具有
更快的动态响应速度和更高的定位精度19
图 2-5 所示的是用于驱动 X、Y、Z 轴线性电机的三个线性驱动器 TA330。线
性三相伺服电机驱动器是一种真正的 AB 类放大器,是工业中最新的正弦电机控
制技术。TA330 提供可选的外部 24V 电压输入,以保持串行通信而无需主电源。
TA330 是具有四种常用配置模式的高度可配置的设备。TA330 将使用外部正弦换
向驱动一台无刷电机。它还可以使用霍尔效应传感器反馈来平滑内部换向梯形操
作。TA330 还支持一个或两个电刷或音圈型电动机,以及在正弦控制下驱动传统的
二线圈步进电机。
之所以采用线性驱动器,是因为相较于 PWM 驱动器,其驱动平滑,无力矩文
波,带宽高。适用于控制精度要求高及超平滑运动的场合。此外,线性驱动器还可
以有效减小电机的发热和运行时产生的噪声、震动。在控制层面上,可以方便的设
定电机的电流极限、伺服补偿、动态增益和偏置量,非常适用于超精密铣削加工。
2.3 ARM 与 FPGA 数据交换接口设计
ARM 与 FPGA 数据交换的方式有共享内存和自定义地址、数据接口。共享内
存的数据交换方式中,ARM 与 FPGA 芯片通过控制信号、地址、数据并行总线连
接。在 FPGA 内部利用 IP 核生成双口 RAM,将存储地址映射到 ARM 的 RAM 中,
优点是传输速度快,传输容量大。自定义地址、数据接口实现数据交换具有灵活简
单的特点。由于是异步通信,没有时钟信号的控制,FPGA 和 ARM 需要根据控制
信号等待到总线上地址、数据接口稳定后才能读取数据;还需要避免从总线上重复
读取或写入数据;避免发生亚稳态。在 ARM 和 FPGA 中定义相应的地址、指令。
对 FPGA 中的寄存器按功能划分为不同轴位置寄存器、PID 参数寄存器、滤波器系
数寄存器,接口模块中的状态机根据传输数据正确处理总线上的指令和数据。
ARM 与 FPGA 接口如图 2-7 所示。每次 ARM 要读取或写入数据时,都会将
Is 信号拉低。Rd、Wr 为读写控制信号,低电平有效,ARM 根据读出还是写入拉
低相应信号。Addr7:0为地址总线,传输的是 ARM 写入到 FPGA 的的指令。
DataBus15:0为三态,即为输入又为输出,可以双向传输,但数据传输方向由 ARM
的 Wr、Rd 信号控制。FPGA_ISR 是 FPGA 向 ARM 传输的中断信号,下降沿有效。
在 FPGA 和 ARM 之间交换的数据主要有各轴的位置数据、限位数据、PID 参
数、陷波滤波器系数。ARM 需要在每个插补周期从 FPGA 中读取各轴的位置数据
并向 FPGA 的位置缓冲区写入位置指令。在进行调试时,ARM 还需要向 FPGA 写
入 PID 参数和陷波滤波器参数。因此根据上述内容定义如表 2-2 所示的指令和寄
存器地址。
2.4 FreeRTOS 移植
LM3S6911 是 Luminary 公司生产的基于 ARM Cortex M3 内核的微控制器。它
支持嵌套向量中断控制器(NVIC, Nested vectoredinterrupt controller),可以方便的
处理中断事件。芯片内部集成了 10/100M 以太网媒体访问控制(MAC)以及物理
层(PHY),可以在此基础上开发轻量级的 IP 应用。比如 Delta Tau 的运动控制器
就使用 Ethernet 将主机、运动控制卡等模块连接起来。其内部实现的功能如图图
2-11 所示。
为了降低开发难度,提高任务运行效率,合理分配不同任务的运行时间,提高
系统实时性,因此需要在 ARM 中移植实时嵌入式操作系统。用于 CNC 数控加工
的实时操作系统有 RT-Linux、Xenomai、FreeRTOS 等。
信迈提供ARM+FPGA+AI研发与生产一体化定制服务。

相关推荐
奔跑中的小象8 小时前
统信UOS + 天数AI卡部署SGLang服务手册
人工智能·uos·sglang·天数智芯
DevSecOps选型指南8 小时前
中国版Mythos,为何是悬镜安全灵脉CodeAI?
人工智能·安全
Shockang8 小时前
LangGraph 状态机实战
人工智能
刹那芳华19928 小时前
循环神经网络的从零开始实现(RNN)
人工智能·rnn·深度学习
阿童木写作8 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
科技之门8 小时前
AI3D从建模到贴图、绑骨和动画的完整流程怎么做?V2Fun完整工作流指南
人工智能·3d·贴图
宇宙第一小趴菜8 小时前
二、机器学习的应用领域和发展史
人工智能·机器学习
前端开发江鸟9 小时前
我写过 MCP Server,却一直以为 MCP 只有 Tool
人工智能
天国梦9 小时前
自习室智能化升级避坑指南:天学网AI智习室方案实测与选型建议
大数据·人工智能
azwsm9 小时前
驱动第一阶段——启动流程
单片机·嵌入式硬件