传统的数控系统通常是在通用计算机或工控机的基础上加装运动控制卡,使用Windows操作系统,并安装昂贵的数控软件构成的。此类系统成本高,功耗大,不太适合中小规模的应用场合。而嵌入式产品具有系统结构精简、功耗低等特点,能弥补传统数控系统的不足。
目前,嵌入式数控系统主要有两种形式:完全依靠嵌人式处理器控制的系统以及嵌入式处理器和运动控制芯片相结合的系统。与前者相比,后者南于采用了专业的运动控制芯片,在实时性和精度等方面的表现更好,因而成为未来的一个发展方向。本文介绍了一种基于ARM控制器和FPGA运动控制芯片的主从式数控系统,希望能为AR M在嵌入式数控系统中的应用提供一些参考。
1 总体设计
本系统为主从式结构。上位机以S3C2410 ARM9控制器为核心,移植Linux系统和QT/Embedded图形库,主要实现G代码文件处理、加工位置的显示、手动控制等人机交互功能。下位机以$3C44B0 ARM7控制器为核心,斯迈迪的SM5004 FPGA芯片为运动控制器,实现电机驱动、冷却液开关、紧急停止等机床控制功能。上下位机通过CAN总线通信。
2 硬件设计
2.1CAN接口设计
由于S3C2410和S3C44B0不带CAN接口,所以必须对其进行扩展。S3C2410的CAN 扩展接El如图1所示,S3CA4B0的CAN接口与其相似。
系统的CAN控制器使用MCP2510芯片。MCP2510的复位引脚RESET与$3C2410的复位引脚nRESET相连,片选引脚CS与S3C2410的GPH0相连。OSC1和OSC2引脚连接一个16M 的晶振作为时钟源。SI、SO和SCK分别与S3C2410的SPI El MOSIO、MISO0和SPICLKO相连。如果SPI口被其它设备占用,也可用其它的I/O El代替,但要编写软件算法来模拟SPI的读写操作。系统采用中断方式读写MCP2510,因此它的INT引脚与S3C2410的外部中断引脚EINT4相连。在外部中断引脚资源比较紧张的情况下,也可使用查询方式读写MCP2510,此时INT可以悬空。
系统的CAN 收发器使用TJA105O芯片,该芯片的TXD和RXD与MCP2510的TXCAN和RXCAN相连,Rs引脚连接的斜率电阻为1K。
TJAlOS0输出CANH、CANL差分信号,通过J1001插口接人物理线路。
2.2输入输出接口设计
S3C44B0 ARM 和SM5004 FPGA芯片提供了很多通用输入输出接口,为了有效的防止干扰进入系统,这里采用了光耦隔离,如图2所示。
在低速开关量中,由图2(a)可以看出,这里采用贴片低速光耦MOCD217一M。它是Motorola公司的产品,是具有低输入电流的双路光耦。之所以这里在接人输入口之前加入电阻R3,是因为ARM 中的部分I/0 口是开漏式的,防止在输入输出过程中电流过大,将相应口烧坏。如图2(b)在高速开关量中,采用HC—PL0661双路光耦进行扩展,它是Agilent Technologies公司的产品,其开关速率可达到1O M左右,可应用于各种高速脉冲输入输出的场合。
http://www.fly-sun.com.cn
3 软件设计
31人机交互与G代码解释
人机交互界面如图3所示。陔界面是用QT/Embedded嵌人式罔形库设计的。QTEmbedded 是由-rroll—tech公司的嵌入式GUI开发T具,控件丰富,并且支持虚拟帧缓冲。通过该界面可以实现编辑G代码,语法检查、预览加1 轨迹、与下位机通信等功能。
G代码解释的原理如同4所示。程序中定义了两个数据结构PreGCode和GCode分别用来保存语法检查后的中间结果和数据分析后生成的G代码类型、节点坐标、圆弧半径等数据,供仿真和加工使用。
3.2CAN通信
本系统使用CAN控制器MCP2510完成CAN总线帧的发送和接收任务。通信数据分为命令帧和数据帧两种。通信协议利用了CAN总线的29位扩展标识符保存了一些协议中必要的信息,如表1所示。由于CAN支持多主机和多从机模式,所以为源设备和目的设备地址分配了ID,以区分数据的来源和目的地。数据帧的数据量较大,必须分批传送,所以标识符里还包含了数据包分组号,用来排序。
系统使用中断模式传输数据,共开启4项中断,分别为错误消极中断、错误报警中断以及发送中断和接收中断。如果为前两种中断,程序将复位MCP2510芯片。如果为发送中断,则表示发送完毕,程序将置位发送中断标志位以通知主程序。如果为接收中断,程序将检查标识符的ID28一ID21,判断该帧的类型,然后根据帧的类型分别进行处理。
3.3插补算法
SM5004芯片是斯迈迪公司的一款高性能运动控制FPGA芯片,能够实现4轴联动,驱动脉冲频率高达5MPPS,插补精度高达0.5I SB,单次输出脉冲数高达2G,支持4种插补模式:直线插补、圆弧插补、连续插补和位模式插补。
对于直线和圆弧,SM5004有自己的插补算法,只要提供终点坐标、速度等插补所需的参数,SM5004就能自动完成插补。
位模式插补是把高位CPU计算的插补数据以数据包的方式接收后,以指定的驱动速度连续输出插补脉冲。位模式插补的原理是在每个寄存器上2轴或3轴的+/一方向驱动脉冲设定为1位1脉冲,输出驱动脉冲时设定为1,不输出脉冲时设定为0。位模式插补提供了一种灵活的插补机制,用户可以自己编写直线、圆弧、样条曲线、函数曲线等各种曲线的插补算法。程序使用数字积分的方法实现了直线和二次曲线的插补。数字积分插补(又称DDA插补)的原理如图5所示。通过将积分区间[a,b]分割成足够小的区间△f,将函数y=f(t)的积分运算变为变量的求和运算,即
数字运算时,At一般取最小单位“1”,即一个脉冲当量,则:
数字积分法插补器的关键部件是累加器和被积函数寄存器,每一个坐标方向就需要一个累加器和一个被积函数寄存器。一般情况下,插补开始前,累加器清零,被积函数寄存器分别寄存X和Y ;插补开始后,每来一个累加脉冲△£,被积函数寄存器里的内容在相应的累加器中相加一次,相加后的溢出作为驱动相应坐标轴的进给脉冲Ax(或Ay),而余数仍寄存在累加器中;当脉冲源发出的累加脉冲数m恰好等于被积函数寄存器的容量2 时,溢出的脉冲数等于以脉冲当量为最小单位的终点坐标,刀具运行到终点。数字积分法插补第1象限直线的程序流程图如图6所示,插补轨迹如图7所示。
#p#分页标题#e#
4 结束语
ARM 结合FPGA 运动控制芯片的方式,既能发挥ARM 运算速度快、硬件资源丰富的优势,又能利用FPGA出色的运动控制功能。相比与传统的纯ARM 控制的数控系统,在实时性、控制精度等方面更具优势,是未来嵌入式数控系统的一个发展方向。
转载请注明出处。