APP下载

基于异构多核微处理器的嵌入式数控系统开发*

2012-09-12林立明秦承刚王志成

组合机床与自动化加工技术 2012年11期
关键词:延迟时间驱动程序数控系统

林立明,于 东,胡 毅,秦承刚,王志成,冯 强

(1.中国科学院 研究生院,北京 100049;2.中国科学院沈阳计算技术研究所,沈阳 110171;3.沈阳高精数控技术有限公司,沈阳 110171)

基于异构多核微处理器的嵌入式数控系统开发*

林立明1,2,于 东2,3,胡 毅2,3,秦承刚1,2,王志成2,3,冯 强1,2

(1.中国科学院 研究生院,北京 100049;2.中国科学院沈阳计算技术研究所,沈阳 110171;3.沈阳高精数控技术有限公司,沈阳 110171)

分析了构建基于异构多核微处理器嵌入式数控系统的几大关键技术,包括:软硬件结构、高速现场总线技术、多核处理器核间通信机制。给出了原型系统的设计与实现细节,重点阐述了基于多核通信中间件DSPLink的SSB-Ⅲ现场总线驱动程序的具体实现,最后针对影响系统性能的中断延迟时间进行了评测,为高性能嵌入式数控系统的进一步开发奠定了基础。

DSPLink;GPMC;现场总线;数控系统

0 引言

随着集成电路工艺的进步以及处理器体系的发展,异构多核微处理器在嵌入式领域中得到了广泛的应用,并逐渐渗透到数字制造、智能装备领域。异构多核处理器可以同时发挥不同类型核心独有的长处,从而满足多样化应用的性能需求。美国德州仪器公司面向音视频处理及移动计算开发的OMAP系列芯片就是这方面的典型例子,它具有ARM+DSP异构双核结构。ARM擅长事务处理,DSP则有出众的数字信号处理能力,OMAP高性能嵌入式微处理器整合了二者的优势。

本文分析了基于异构多核微处理器的嵌入式数控系统的关键技术,包括硬件结构、软件结构、多核通信机制、现场总线技术。给出了基于异构双核微处理器OMAP3530及高速现场总线SSB-Ⅲ的原型系统的设计,并重点阐述了异构双核通信机制——DSPLink,以及基于该机制的总线驱动程序的设计与实现,最后测试了系统的中断延迟时间,结果表明该方法完全能满足高性能嵌入式数控系统的以及总线通信的性能需求。

1 硬件结构

原型系统采用异构双核处理器OMAP3530以获得较高的性能;而为了达到开放化的目的,则引入了高档数控国家工程研究中心自主开发的SSB-Ⅲ高速现场总线。系统硬件结构如图1所示。

主控模块由最小系统板和扩展板构成,其中最小系统板包括 OMAP3530、MCP(集成了 DDR和NAND存储模块)、电源管理芯片,并通过系统扩展板提供了SD、LCD、USB等外设接口。SSB-Ⅲ总线控制板包括通信外围电路、通信逻辑芯片、板级通信接口。主控电路板和总线控制板通过通用存储控制器接口(General Purpose Memory Controller,GPMC)进行数据传输。总线控制板和伺服控制单元通过SSB-Ⅲ高速现场总线进行通信。

图1 原型系统硬件结构

2 软件结构

基于异构多核微处理器的嵌入式数控系统软件由实时操作系统及其上面运行的数控系统任务构成。实时操作系统是数控系统的软件基础,需要具有很高的实时性、确定性、可靠性、安全性和容错性。数控系统任务按是否具有实时性要求和周期性要求划分为:实时周期性任务、实时突发性任务和非实时任务[1-3]。

(1)实时操作系统,ARM平台多数采用实时化Linux操作系统,以保证数控系统的开放性。目前已有多种实时化改造方案,比如 RTlinux、RTAI、Xenomai等。原型系统的ARM端系统为Xenomai,DSP端则采用可裁剪实时内核DSP/BIOS。

(2)数控实时周期性任务,是指严格以固定间隔定时触发,在规定时限到达前必须完成的任务。包括运动控制、数据采样等。

(3)数控实时突发性任务,是指负责处理随机的、突发性事件的任务。包括急停、报警等。

(4)非实时性任务,是指实时性要求较低的任务,比如人机界面程序。

多核处理器架构下,良好的任务划分尤其显得重要,它将有助于多核协同工作,降低单核运行负载,从而大幅度提升数控系统的性能。图2给出了OMAP3530异构多核处理器上数控系统的任务划分方案。其中ARM端主要运行人机界面、任务控制器、解释器等非实时应用;DSP端主要运行插补算法、速度控制算法、数学库等计算密集型应用。高速现场总线控制逻辑则在总线控制卡的FPGA中予以实现。

图2 原型系统软件结构

3 高速现场总线接口

数控系统的运动控制对总线的要求主要体现在以下几方面:①实时循环周期一般在1~10ms之间;②总线传输的确定性:控制器的控制指令以及伺服系统的反馈均有确定的收发时间;③执行命令与反馈的同步性:高精度多轴控制系统要求各轴严格同步运行,即各个控制轴要同时执行收到的控制指令,将同一时刻的反馈数据传输给控制器;④支持I/O设备信号的传递;⑤支持非周期的数据[4]。

目前,现场总线的体系结构基本都以ISO/OSI为参考模型。为了适应控制系统中信息长度短、实时性要求高的特点,现场总线没有采用网络层到表示层,以降低由于层间操作与转换而带来的时间开销,并将这4层的必要功能设置在应用层和数据链路层中。因此,典型的基于以太网的现场总线协议一般包括物理层、数据链路层和应用层,如表1所示[5]。

表1 基于以太网的现场总线模型

SSB-Ⅲ现场总线通信模型如图3所示。主站和从站均包括物理层、数据链路层、应用层。主从站之间使用问答的方式进行通信,主站从从站的应答协议帧中获取通信状态信息(数据收发是否错误等)。每个从站有两个通信接口,两两相接,形成菊花链拓朴结构。每个从站除了作为通信主体外,还采用交换技术对其它站的信息进行实时转发[6]。

图3 SSB-Ⅲ现场总线通信模型

SSB-Ⅲ总线控制板功能设计如图4a所示,如前所述分为三个逻辑功能块:通信外围电路、通信逻辑芯片、板级通信接口。其中通信逻辑芯片采用FP-GA,实现高速现场总线的链路层功能,其功能框图如图4b所示。整个链路层可以划分为三个逻辑部分:物理层接口(MII interface)、链路层逻辑功能、用户层接口。物理层和用户层接口主要实现物理层和用户层信息的接入。而链路层逻辑功能实现现场总线链路层的全部功能:实时数据交换、主/从站调度、数据帧的编解码、数据存储组织等[7]。

图4 SSB-Ⅲ总线控制板、数据链路层功能框图

4 OMAP平台软件架构及异构双核通信机制

OMAP指的是德州仪器所推出的开放式多媒体应用平台架构(Open Multimedia Application Platform),包括一系列异构多核处理器。异构多核架构大幅度提升了处理器的性能,却也增加了软件开发的复杂性。为了解决高性能和易用性之间的矛盾,TI推出了完整的软件解决方案,如图5所示,最底层为所支持的硬件,包括外设、ARM、DSP、以及一个或多个硬件加速器(Hardware Accelerator),如图中的AC1、AC2,硬件加速器采用特定领域内核库(Domain Specific kernel library,DSK-lib)对特定功能进行加速,比如高清视频和图像协处理器(High Definition Video and Image Co-processor);ARM上运行的是通用操作系统,比如Linux、WinCE等,DSP上运行的是DSP/BIOS,负责进行信号处理,并将处理的结果通过共享存储器的方式提供给ARM;应用层(Application Layer)为用户编写的应用、第三方或开源软件提供了接口,高层次的 API诸如 Open Max、GStreamer、DirectShow、OpenGL等均可以在其上面运行;Codec Engine通过与DSP/BIOS和DSPLink绑定,对xDM的信号处理功能进行了封装,并为应用层提供了VISA接口;嵌入式外设接口软件(Embedded Peripheral Software Interface,EPSI)为信号处理需要的输入输出驱动程序提供了接口,其目的是是取代直接的操作系统调用,以此换得可移植性,当然也牺牲了一定的性能;DSP/BIOS Link简称DSPLink,是实现ARM和DSP核间通信的基本软件,是Codec Engine的底层组件[8]。

根据Codec Engine框架开发一个ARM+DSP架构的程序需要以下3个部分的工作:

①创建符合xDAIS标准的DSP的编解码算法程序,并打包成Codec Engine包。

②建立一个DSP端的Codec Server,使其具备与ARM通信的能力。

③创建ARM端的应用程序,实现各类数据的采集、控制、图形界面的显示以及和DSP数据通信等等功能。

如前所述,DSPLink是Codec Engine的基础。作为一个低层次的处理器核间通信的连接,它允许主处理器核心对从核心的执行流程进行控制,包括DSP的启动、加载、运行、停止。图6是DSPLink的软件架构图。

在ARM端,OS适配层(Operating System AdaptationLayer)封装了DSPLink所需的系统服务,使得上层模块独立于操作系统,因此DSPLink具有很好的平台可移植性。链路驱动层(Link Driver)封装了 ARM-DSP物理链路的控制操作,用于控制DSP的执行流并按照预先选择的协议传输数据。进程管理(Processor Manage)维护了组件的状态信息,同时将链路驱动层的控制操作传递给API层(API Layer)。API层提供了对ARM客户端的所有接口,而它本身只是一个轻型组件,通常只负责参数验证。API的意义在于将DSPLink的核心实现与具体的操作系统相分离,为进程管理和链路驱动组件提供灵活的表示方式。在DSP端,Link Driver属于DSP/BIOS中的一个驱动组件,详细定义了DSP-ARM物理链路的通信方式。DSP/BIOS中的驱动组件主要有SIO、GIO、MSGQ;DSPLink则进一步为DSP应用程序提供了其他组件,包括:RingIO、MPCS、MPLIST、NOTIFY、POOL 等[9]。

图5 OMAP平台软件架构

图6 双核通信中间件DSPLink软件架构

5 基于DSPLink的SSB-Ⅲ总线驱动设计与实现

如前所述,SSB-Ⅲ总线控制板采用GPMC接口与OMAP3530主控电路板进行通信,因此总线驱动程序需要具有获得、控制、释放GPMC接口的功能,此外核心代码还需要与数控运动线程进行数据交换。SSB-Ⅲ总线控制板驱动程序包括三部分:模块初始化init_module,中断服务函数isr_schedule,模块清除cleanup_module。图7示意了总线驱动程序从ARM单核模式到双核架构的演变过程。ARM端驱动程序采用Linux动态内核模块的(.ko)编写方式,主要负责GPMC资源的申请与释放;DSP端驱动程序则是基于DSPLink多核临界区组件的周期中断服务代码,涉及到DSPLink存储分配以及GPMC地址到DSP地址空间的映射等问题。

图7 总线驱动程序框架演变过程

5.1 DSPLink多处理器临界区组件——MPCS

OMAP平台软件架构是专门为音视频编解码以及图像处理等多媒体应用而设计的,并且为了易用性牺牲了一部分系统性能。如果将整个软件架构照搬到数控系统上,不仅会给数控软件开发带来不便,而且不利于数控系统性能的提升。鉴于此,本文只采用最底层的DSPLink软件架构。运动控制需要对大型数据结构Motion Struct进行操作,而多核心或核心上的多任务对该共享数据结构的访问又必须保证是互斥的,DSPLink组件多处理器临界区(multiprocessor critical section,MPCS)能很好地满足这些需求。基于MPCS组件的双核数据传输过程如图8所示。

图8 基于MPCS组件的双核数据传输过程

实际应用中对基于MPCS的数据传输框架作了改动:

(1)精简了对控制信息的操作

(2)舍去了数据校验环节

(3)将代码执行流程由迭代改成中断方式

5.2 DSPLink内存布局(Memory Map)

运动控制模块的Motion Struct结构体需要占用较大的存储空间,默认的 DSPLink动态存储区(POOLMEM)只有832K,无法满足需求,需要对 DSPLink的存储布局进行更改。DSPLink默认的内存布局如下:

(1)用于ARM和DSP通信的1MB共享内存

(2)用于DSP代码和数据存储的1MB DSP内存

DSPLink提供了两个用于内存映射的配置文件,一个是$DSPLINK/config/all/下面的CFG_OMP3530_SHMEM.c,另一个是$DSPLINK/dsp/inc/DspBios/5. XX/OMAP3530/下面的 dsplink-omap3530-base.tci。CFG_OMP3530_SHMEM.c 代码中所给DSPLink默认内存划分如图9所示(下文将两个配置文件简称为.c和.tci)。

图9 DSPLink默认的内存布局

DSPLink的默认配置是针对128M SDRAM的,而实际用的SDRAM则是256M,一个显而易见的改动需求是:将默认配置的存储区基址(.c中的RESETCTRLADDR,以及.tci中的 RESET_VECTOR.base)往后移动128M,以便为Linux腾出宝贵的可用内存。为了满足Motion Struct的内存需求,需要对POOLMEM内存段进行扩展。因此DSPLink基址的实际调整量需要把POOLMEM的增量(实际值为16M)考虑进去。配置效果是DSPLink基址往后偏移了112M(即128M-16M),POOLMEM的大小增加到了832K+16M,足以满足应用需求。

5.3 GPMC片选地址到DSP地址空间的映射

DSP的内存管理单元MMU默认是被关闭的,这种情况下所有的地址均可直接访问。但是DSPLink会将MMU打开,此时只有0x11000000以上的地址空间对DSP端才是可见的,这就就需要将GPMC的片选地址配置到0x11000000以上的地址空间,并且为MMU TLB增加映射以便对需要访问的GPMC地址空间进行编址[10]。

以下代码通过对OMAP3530的GPMC_CONFIG7_i寄存器的BASEADDRESS域赋值,将GPMC片选地址配置为0x20000000:

接下来是将GPMC片选地址空间描述添加到DSPLink的内存布局中。首先在.tci中增加以下代码:

其次是在.c的LINKCFG_memTable_00[]数组里增加:

修改完配置文件后,重新编译DSPLink即可。

6 性能评测

一个实时操作系统实时性能的主要评测标准包括:系统响应时间、任务切换时间、中断延迟时间、调度延迟时间、周期抖动等[1]。

中断延迟时间定义为:从中断源发出中断信号到操作系统做出响应,并完成进入中断服务函数所需时间[1]。我们针对两种软件架构下的系统中断延迟时间进行了测量:①采用一体化设计方案,整个数控系统软件运行于ARM核心上,使用实时化Linux操作系统,DSP核心被闲置;②采用结构独立、任务分离的设计方案,充分利用多核资源,使用DSP/BIOS准操作系统,任务模块的具体划分如前所述。

第一种方案需要测量的是实时化Linux操作系统的中断延迟时间。测量手段采用系统的定时器中断,测得数据如图10所示,最坏情况(所得数据中的最大值)为4.08μs。第二种方案下的测量对象是DSP/BIOS系统的中断延迟时间。通过示波器测得最大中断延迟时间为5.7μs。

图10 一体化设计方案下系统中断延迟时间

可以看到两种方案下的系统中断延迟时间均达到了硬实时的要求,完全可以满足高性能数控应用的需求。另外可以看到,在系统中断延迟时间差别不大的情况下,第二种方案由于对系统任务进行了良好的划分,均衡了多核上的运行负载,大大减轻了单个核心上的计算压力,从而有助于更好地提升数控系统的性能。

7 结束语

随着开放式数控系统以及嵌入式技术的发展,高性能嵌入式数控系统已成为研究的热点。异构多核微处理器的使用提升了嵌入式数控系统的性能;高速现场总线的引入保证了嵌入式数控系统的开放性;相比“大而全”的PC平台,可定制、可裁剪的嵌入式系统软硬件结构则降低了成本。本文研究分析了基于异构多核微处理器的嵌入式数控系统软硬件结构、现场总线接口、多核通信机制等关键技术,在此基础上给出了原型系统的设计与实现,特别对基于DSPLink的SSB-Ⅲ总线驱动程序的具体实现做了详细说明,为高性能嵌入式数控系统的进一步开发奠定了基础,对同类产品的研究具有一定借鉴意义。

[1]林浒,蔡光起,李凤宪,等.实时化的Linux系统及其实时性能的研究[J].小型微型计算机系统,2004(8):1454-1457.

[2]吴文江,秦承刚,陶耀东.基于MIPS处理器和RTAI的数控系统中调度抖动的研究[J].小型微型计算机系统,2010(7):1342-1345.

[3]姚建强.嵌入式数控系统软件总体设计研究[J].今日科苑,2009(4):189-190.

[4]樊留群.实时以太网及运动控制总线技术[M].上海:同济大学出版社,2009.

[5]王志成,于东,李培新,等.数控系统现场总线通信效率的改进[J].计算机工程,2011(10):23-15.

[6]王志成,于东,张晓辉,等.数控系统现场总线可靠通信机制的研究[J].机械工程学报,2011(3):152-158.

[7]胡毅,于东,郭锐锋,等.数控总线的消息安全通信方法[J]. 机械工程学报,2011(5):134-142.

[8]B.I.(Raj)Pawate.Developing Embedded Software using DaVinci and OMAP Technology[M].Morgan & Claypool Publishors,2009.

[9]Texas Instruments Incorporated.DSP/BIOSTM LINK USER GUIDE[Z].USA:Texas Instruments Incorporated,April 2006.

[10]Texas Instruments Incorporated.OMAP35x Applications Processor Technical Reference Manual[Z].USA:Texas Instruments Incorporated,September 2008.

Development of Heterogeneous Multi-core Microprocessor Based on Embedded NC System

LIN Li-ming1,2,YU Dong2,3,HU Yi2,3,QIN Cheng-gang1,2,WANG Zhi-cheng2,3,FEND Qiang1,2
(1.Graduate University of Chinese Academy of Sciences,Beijing 100049,China;2.Shenyang Institute of Computing Technology,Chinese Academy of Sciences,Shenyang 110171,China)

Several key technologies for building Heterogeneous multi-core microprocessor based embedded NC system were analyzed in this paper,which include Hardware and Software architecture,Highspeed field bus technology,Communication mechanism between cores of multi-core processor.A prototype system was given together with its design&implementation.Especially,this paper illustrated the detailed implementation of field bus diver based on DSPLink,which is a middleware for communication between multi-cores.Finally,this paper completed the measurement of interrupt latency which affects system performance.This paper makes some contribution to the further development of high-performance embedded NC system.

DSPLink;GPMC;field bus;NC system

TH16;TG65

A

1001-2265(2012)11-0078-05

2012-03-12;

2012-03-30

“高档数控机床与基础制造装备”国家科技重大专项课题(2011ZX04016-071)

林立明(1985—),男,福建龙海人,中国科学院研究生院硕士研究生,主要研究方向为数控技术,(E-mail)linlm@sict.ac.cn;于东(1966—),男,中国科学院沈阳计算技术研究所研究员,博士,博士生导师,主要研究方向为数控技术、面向控制器的实时系统等。

(编辑 赵蓉)

猜你喜欢

延迟时间驱动程序数控系统
二氧化碳对乙烷燃烧着火延迟时间的影响
添加非平衡等离子体对甲烷着火性能的影响
LTE 系统下行链路FDRX 节能机制研究
阻止Windows Update更新驱动程序
计算机硬件设备驱动程序分析
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
NOx对甲烷点火延迟时间影响的数值研究