1 绪论
随着嵌入式技术的发展,嵌入式处理器 ARM 广泛应用于数控系统。ARM 是英国剑桥从事基于 RISC(Reduced Instruction SetComputer)技术芯片设计开发,作为知识产权供应商 ARM 公司设计的芯片。根据各自不同的应用需要,在芯片外适当添加外围电路,从而形成更具特色的 ARM 处理器。ARM 芯片具有RISC 体系的一般特点,如:具有大量的寄存器。绝大多数操作都在寄存器中进行,通过 Load/Store 的体系结构在内存和寄存器之间传递数据。寻址方式简单。采用固定长度的指令格式。目前的 ARM 内核有ARM7、ARM9、ARM9E、ARM10E、ARM11、SecurCore 等多种类型。以最典型的 ARM920T 为例,该型内核具有400 多 MHz 的主频在国内低档数控系统应用最广。但是随着数控技术的发展,加工对象的复杂度增加,CPU处理运动控制插补运算的负载更大。要解决这一问题,除了更换更高性能的 ARM 芯片,就只能往多核方向发展。本文主要论述多核心 ARM 的数控系统的设计。
2 数控软件的任务分析
整个数控系统的功能可以划分为人机交互、数据预处理、运动控制、伺服控制、逻辑控制和辅助控制五大部分。人机交互为机床的准备工作提供数据和信息,反馈机床的运行状态,监控整个加工过程。数据预处理主要包括数据指令的译码,刀具的长度补偿、半径补偿、螺距补偿、间隙补偿等插补前的预处理工作。运动控制主要控制位移,速度,加速度或三者的组合,主要是机床各运动轴的插补运动控制和主轴速度、主轴定位的控制等。逻辑控制分为简单的逻辑输入、逻辑输出及组合逻辑控制,主要是主轴电机的正反转、电机停止、冷却泵电机的启动、停止控制等。在嵌入式实时系统中,通常把五大部分的数控系统功能划分为:插补任务、译码任务、PLC任务、人机交互界面任务,底层辅助任务。如图 1-1 所示:在单个CPU 上运行,各个任务的负载和实时等级。插补任务的实时性和负载最高达 43%;人机交互任务其根据不同用户的需求,不同交互功能占的负载不同,最高达 24%,但是实时性要求最低;底层辅助任务支撑各个任务的运行。根据这些分析数据,我们对各个数控任务进行多 CPU 的划分。
3 多核 CPU 软件架构
多核 CPU 的架构是日益严苛的运算要求的必然结果。多核 CPU 并不仅限于双核,多个核结构更灵活。嵌入式多 CPU 系统将一个特定的任务分割成较小的任务由多个处理器并行地执行,因而具有速度优势.采用嵌入式多 CPU 系统使得信息处理模块化,各个 CPU 采集分配的数据量并独立处理信息,从而可以减轻单个CPU 的负担,提高系统的信息处理速度和处理能力。根据数控系统的任务,本文引入三个 ARM+DSP 的结构,对原来单个 CPU 的数控系统进行升级改造。如图 2 所示:把插补任务划分为精插补任务和粗插补任务,粗插补任务主要是对译码数据的坐标点进行一定的速度规划和细分,精插补任务需要对粗插补数据进行曲线拟合,速度规划,发点控制等,需要更大的浮点运算要求。因此把精插补任务划分到独立的 DSP 芯片,粗插补任务与译码任务一起划分到单一个 ARM 上。人机交互任务和逻辑控制(PLC)任务分别个占一个 CPU。各个任务的数据从原来的单 CPU 内部通信,变更为现在 CPU 之间的通信,所以通信需要经过一个握手应答协议,以协调不同 CPU 之间的时序。
该软件划分的优点主要有:
(1)原来单 CPU 模式下,由于人机交互任务的复杂性,导致负载的不确定性,使得软件规模和功能受到很大的限制,任务优先级的低下,使得该任务容易受其他多任务的影响而不稳定,但在单独占用 CPU 的情况下,资源充足,可以实现更强大更稳定的性能。
(2)独立 CPU 的 PLC 功能,是 PLC 模块独立运作的基础。现在在国外装备行业,独立的 PLC 已经成为主流产品。
(3)译码速度的提高,可实现更多的程序译码的前瞻功能。
(4)DSP 提高强大的浮点运算能力,可实现更高效的插补运算。
4 多 CPU 的数控主板设计
基于以上的软件功能分析,本文设计的多 CPU 硬件是基于 ARM9、DSP6713、OMAPL138、FPGA 为核心,采用多 CPU 体系结构来设计,系统采用两片 ARM9、一片 DSP 和一片大容量 FPGA,以及各种不同功能的存贮器、相关外围器件组成系统的主控 CPU 板。系统中各 CPU 与相应的存贮器构成独立的 CPU 子系统。主 ARM系统进行文件系统管理、系统参数管理、人机界面管理、USB 接口管理、系统逻辑任务管理等。DSP 子系统负责插补算法、GSK-LINK 总线部分管理工作等。从 ARM 子系统负责 PLC 逻辑任务。FPGA 利用内部双口RAM 为各 CPU 子系统提供数据交换通道,FPGA 管理系统的各种外部设备,如 TFT 液晶显示器、主轴电机、机床 IO、键盘管理、串口管理等。根根据上面功能划分,同时考虑到后续的升级、维护等工作,将硬件划分为几个块,具体内容在硬件模块里有详细的描述。大致内容包括:ARM9 处理器、DSP、58M/SDRAM、256K/NVRAM、电源电路、FPGA、LCD 数据口、DC 电路、缓冲电路、光电隔离器件、USB 通讯电路,AVR 对按键扫描电路等。简易框图如图 3,实物图如图 4:
主要元器件说明如下:
(1)ARM9_CPU:采用 ARM920T 模型,采用三星 2440 芯片。
(2)FPGA:采用 Altera 公司的产品,负责中断控制和机床 I/O 信号,机床 I/O 信号初步定为 48-IN/48-OUT。
(3)DSP6713:为 TI 的 DSP6000 系列,主要负责插补算法等工作。
(4)其他:除脉冲串发生器以外,采用 181 低速光电隔离。采用一个 AVR 单片机负责键盘、LED 等信号处理
5 结论
采用多 CPU 结构的数控系统,在数据运算能力方面大大增强,使得更多更强 的数控软件功能得到发展。本文所设计的主板已经成功应用于广州数控 GSK-218TD,GSK-980TE2 等数控系统上,获得良好的市场反应和非常好的经济效益。