基于DSP的嵌入式运动控制器设计与优化*

2013-02-05 05:39贾小波陆小虎
组合机床与自动化加工技术 2013年3期
关键词:浮点延迟时间控制算法

贾小波,于 东,胡 毅,陆小虎

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

基于DSP的嵌入式运动控制器设计与优化*

贾小波1,2,于 东2,3,胡 毅2,3,陆小虎1,2

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

分析了基于DSP设计运动控制器的几个关键技术:DSP与SSB-Ⅲ总线控制器的中断机制,高速现场总线技术,定点DSP的IQmath浮点库优化技术和运动控制算法的优化流程模型。最后针对影响运动控制器性能的中断延迟时间、运动控制算法数据精度和算法执行时间进行了评测对比,实验结果表明满足运动控制器的高精、实时等要求。

运动控制器;中断机制;现场总线;优化流程

0 引言

随着电子技术的不断发展,ARM和DSP等各种嵌入式系统微处理器由于具有成本低廉、功耗小、结构简单且性能稳定等特点,在嵌入式系统开发领域得以广泛应用。采用ARM与DSP异构双核处理器开发嵌入式数控系统,体积小,低功耗,低成本,高性能等特点[4],满足中高档数控系统产品市场需求。ARM擅长事务管理,DSP具有强大的数据处理和控制能力,美国德州仪器公司专门为异构双核提供了OMAP 系列芯片,片上无缝集成 ARM+DSP[2],且为DSP设计了DSP/BIOS实时操作系统,适合实时运动控制。

本文分析了基于DSP的嵌入式运动控制器几个关键技术,包括DSP与SSB-Ⅲ总线控制器的中断机制、高速现场总线技术、定点DSP的IQmath浮点库优化技术和运动控制算法的优化流程。给出了基于异构双核微处理器OMAP3530及高速现场总线SSB-Ⅲ的嵌入式数控系统的设计,并重点阐述了SSB-Ⅲ总线控制器和DSP间中断机制的实现、高速现场总线技术以及使用IQmath库下的运动控制算法的优化流程模型,最后测试了DSP与SSB-Ⅲ总线控制器的中断延迟时间以及运动控制算法的数据精度和执行时间,结果表明该方法完全能满足运动控制器高实时,高精度的性能需求。

1 硬件平台

嵌入式数控系统硬件结构如图1所示。上位机采用最小系统板和扩展板构成的主控板,下位机由SSB-Ⅲ总线控制器构成,为提升系统的开放性,引入了高档数控国家工程研究中心自主开发的SSB-Ⅲ高速现场总线。

其中最小系统板包括OMAP3530、MCP(集成DDR和NAND存储模块)、电源管理芯片TPS,并通过系统扩展板提供了SD、LCD、USB等外设接口。SSB-Ⅲ总线控制板采用SSB-Ⅲ总线通信协议,包括通信外围电路、通信逻辑芯片、板级通信接口。主控电路板和总线控制板通过通用存储控制器接口进行数据传输。总线控制板和底层伺服控制单元之间通过SSB-Ⅲ高速现场总线进行通信。运动控制系统硬件结构包括主控板DSP核心和SSB-Ⅲ总线控制器构成。

图1 嵌入式数控系统硬件结构

2 DSP与SSB-Ⅲ总线控制器中断机制

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

中断延迟时间定义为:从中断源发出中断信号到操作系统做出响应,并完成进入中断服务函数所需时间[1]。针对主控板与底层SSB-Ⅲ总线控制器间的中断的实现通常是由ARM响应,再通过双核通信机制如消息队列或者共享内存机制传递给DSP处理,但是这种处理方式将中断流程硬性的分割在两个核上,由于存在通信时延,响应延迟高,实时性差,另一种方案直接由ARM运行强实时运动控制算法并响应中断,而DSP闲置,当实时任务加重时会造成ARM核负载过重难以保证实时。ARM+DSP主从核结构如图2,DSP集成在IVA2.2子系统中,ARM集成在MPU子系统中,二者对等连接到L3总线,且DSP也有对中断进行响应的内部机制[10]。

因此,可以采用直接由DSP响应底层总线控制器的中断信号,在 SSB-Ⅲ总线控制器和主控板OMAP3530芯片空闲输入引脚建立物理连接,然后,具体的软件配置步骤如图3:步骤包括配置焊板,将空闲输入引脚设为复用模式,并作输入使能;DSP检测中断使能;消去抖动;配置中断触发方式;在DSP实时操作系统上实现中断机制;编写中断服务例程等。

图2 OMAP3530芯片硬件结构

图3 DSP外部中断配置流程图

3 高速现场总线接口

现场总线作为运动控制器的控制接口,已经发展到以工业以太网技术为基础的第三代,其传输速度和抗干扰等性能直接影响到运动控制器加工的速度和精度。现场总线的体系结构基本都以ISO/OSI为参考模型。为了适应控制系统中信息长度短、实时性要求高的特点,现场总线没有采用网络层到表示层,以降低由于层间操作与转换而带来的时间开销,并将这4层的必要功能设置在应用层和数据链路层中。因此,典型的基于以太网的现场总线协议一般包括物理层、数据链路层和应用层,如表1所示[5]。

表1 功能设置表

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

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

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

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

4 定点DSP的IQmath浮点库优化

运动控制器对运动控制算法的数据精度和加工的实时性都有严格要求,这就要求DSP必须支持高精度浮点运算和较高的处理速度。市场应用的DSP有定点与浮点两大类,浮点DSP具有支持浮点运算的硬件单元(FPU),浮点运算速度高,但是价格昂贵,处理频率低;定点DSP没有FPU,浮点数据必须通过软件实现,这样增加了指令代码,间接使得定点DSP运算速度低于浮点DSP。且定点DSP现较多集成在ARM+DSP异构双核芯片中,应用市场广泛,如图1嵌入式数控系统OMAP系列芯片,因此,对定点DSP进行浮点运算的优化显得尤为重要。为此,美国德州仪器公司专门为定点DSP提供了IQmath库以支持浮点运算,可以将IQmath库移植到Linux等系统开发环境中。

4.1 IQmath的原理

IQmath提供了30种Q格式,根据数据范围和精度要求选择相应的Q格式[8]。

QK的相应格式为小数点加在第K位的右侧,定点数的大小按如下计算:-2I+2I-1+… +20+20·2-1+2-1+… +2-Q。

例如我们选择Q15定点数格式,则对应的32位有符号定点数的格式如下:

其中S为符号位,I为整数部分,F为小数部分。

如Q15数据格式最小值1 000000000000000 0.000 0000 0000 0000= -216,即为 65536,最大值为0 11111111111 11111.1111111 11111111=215+214+… +20+2-1+ … +2-15即为 65535.999 969 482,精度为0.000 030 518。小数0.125如果采用Q15格式表示则为1000H。

4.2 IQmath库使用

运动控制系统对数据精度要求极为严格,要求数据误差尽可能小。使用IQmath要在保证精度情况下,对算法的数据范围进行检查,然后确定使用的Q格式。使用IQ-math浮点库必须将程序中的浮点数据全部转化为Q格式,IQmath库支持C/C++语言开发。涉及数据运算都要采用IQmath库函数,这些函数由汇编语言改写,运算速度高,如:

5 运动控制算法的优化流程模型

5.1 优化流程

运动控制算法影响运动控制器的加工精度和效率,因此对运动控制算法进行优化尤为重要。针对定点DSP的运动控制算法优化可以分为四个阶段,运动控制算法在嵌入式数控系统的优化流程模型如图6。

第一步:用C语言实现算法,使用DSP开发环境CCS自带profile clock工具测试程序运行时间,若不能满足要求,则进行第二步。

第二步:优化C代码,使用C64x+开发环境CCS编译器提供的优化方式和C语言优化技术。

第三步:针对定点DSP,传统优化方式若不能满足,将浮点数利用TI提供的IQmath库进行定点话处理,选择合适的Q格式,IQmath库函数改写等。

第四步:编写线性汇编,确定程序段中效率较低的部分,用线性汇编改写,利用汇编优化器进行优化,最终将汇编程序转化为利用流水线方式的高速并行汇编程序。

图6 DSP算法优化流程模型

5.2 C代码优化方法

C64x+平台下的C源程序优化的核心思想就是串行程序的并行化,可以选用的优化方法如下:

(1)使用DSP集成环境CCS自带的C编译器进行优化,优化选项如下:

-o:使能软件流水和其他优化方法,其中-o3为最强级别的优化。

-k:保留优化后生成汇编语言文件。

-mt:若程序中没有使用alaising技术,则编译器可以进行比较好的优化。

-mw:在汇编语言文件加入软件流水线信息。

-ms:确保不产生冗余循环,从而减小代码尺寸。

-s:汇编语言文件中加入优化信息,如果没有则加入C语言源程序作为注释等。

(2)针对DSP编译器特点的C代码优化方法

①减小代码相关性,多使用const关键字

CCS编译器尽可能将不相关的代码指令安排为并行执行,而在不确定指令间关系时,将默认为相关的,因此,在设计中多用关键字const来指定目标,以减小指令相关性。

②多使用内联函数(intrinsics),少使用函数调用

编译器提供了专门内联函数,由嵌入式的汇编指令实现,在C代码中调用内联函数按照一般的函数调用规则,再在内联函数前加下划线。在intrinsics提供了数据的快速运算指令,下面列举在优化过程中比较常用的几个intrinsics指令[9]:

(3)软件流水线的优化方法

软件流水线是编译器针对循环使用的一种调度技术。通过将多个循环体并行起来,从而加快循环的速度。其原理是,将循环体划分成多个部分,在流水线的每一个环节可同时处理多个循环体的不同部分。代码编译时,选择编译器编译选项-mt或内部函数_nassert,编译器将根据程序尽可能地安排软件流水线。如图7所示。

图7 软件流水线的循环结构

6 性能评测

应用上述关键技术,可以从硬件和软件两方面极大提高运动控制器的实时性和精准度,为了测试运动控制器性能,实验对DSP与底层FPGA总线控制板中断延迟时间进行了测量,同时为了验证优化流程和IQmath浮点库的有效性,实验选取运动控制算法中具有典型特点的基于滤波技术的速度规划算法[3]作为实例进行优化,最后对影响运动控制器实时和精度的算法执行时间和算法数据精度两个性能指标进行测试。

6.1 实验环境的搭建

整套实验装置由OMAP3530主控板、FPGA总线控制板、SSB-Ⅲ总线伺服驱动单元、伺服电机、供电和通信电缆、以及键盘、液晶显示器等输入输出设备构成,如图8所示。

图8 完整的实验装置

6.2 实验数据的评测

为对比不同设计方案下,对系统中断延迟时间进行测试:①全部任务置于ARM核心,使用实时化Linux操作系统,DSP核心闲置;②采用结构独立、任务分离的设计方案,使用DSP/BIOS实时操作系统,充分利用双核的计算资源。任务划分如前所述。

第一种方案实时化Linux操作系统的中断延迟时间利用系统的定时器中断进行测量,最坏情况(所得数据中的最大值)为4.08μs。第二种方案下的测量对象是DSP/BIOS系统的中断延迟时间如图9。从图中可得最大中断延迟时间为5.7μs。

两种方案下的系统中断延迟时间均达到了硬实时的要求,完全可以满足高性能数控应用的需求。但是测试时,第一种方案在系统任务增加时,ARM核负载过重,难以保证实时。第二种方案由于对系统任务进行了合理划分,均衡了双核上的运行负载,保证了运动控制器的实时高效运转。

图9 DSP/BIOS系统中断延迟时间

实现基于滤波技术的速度规划算法,实验数据取最大速度10m/s,加减速时钟周期0.002s,最大加速度0.08m2/s,运动轨迹从(0,0)到(30,0)mm,滤波器长度为20。选用双精度数据类型,在保证了精度条件下,定点DSP由于处理浮点数时存在浮点和定点间相互转换耗时,导致算法的执行时间达到76ms,如图10a,大大长于传统PC和浮点DSP运行时间,难以满足数控系统实时性要求。

图10b为采用IQmath浮点库并经过C代码优化后的执行时间。

图10 优化前后对比

从图中可以看出该算法在使用IQmath浮点库和C代码优化后,算法执行时间大大减少,由之前76ms降低为2ms,优化并使用IQmath后的算法运行时间是未使用Q格式算法执行时间的1/10以内,未出现执行时间的大范围跳变,且数据多稳定在较为清晰的四条时间带,说明算法执行时稳定性好。实验中使用的数据格式为Q23,精度为0.000000119,与PC平台实验数据精度误差不到1um,实验精度数据如图11,双精度数据速度曲线与采用Q格式的速度曲线吻合,说明二者精度相当,支持该分析结果,满足数控系统精度要求。

将该算法在TMS320F28335(150MHZ)浮点DSP运行,测试数据显示,滤波速度规划算法运行时间为22.3ms,数据精度和上述实验精度相同,耗时长于优化后的定点DSP(360MHZ)算法执行时间。

图11 DSP平台Q格式滤波算法速度规划曲线

7 结束语

本文着眼于基于DSP的运动控制器的设计与优化,介绍了影响运动控制器性能的几个关键技术,包括DSP与SSB-Ⅲ总线控制器的中断机制实现,现场总线技术,IQmath浮点库原理及应用,运动控制算法优化流程,最后选取运动控制算法中具有代表性的基于滑动滤波的速度规划算法作为应用实例进行优化,并对影响运动控制器性能的中断延迟时间、运动控制算法的算法执行时间和数据精度进行测试,实验数据表明,设计和优化满足运动控制器高精度,强实时的应用需求,并总结了一套基于DSP的运动控制系统的设计方法和优化流程模型,为进一步设计开发优化嵌入式运动控制器有一定的借鉴意义。

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

[2]张启贵,张胜,张刚,等.最新DSP技术[M].北京:国防工业出版社,2009.

[3]于东,胡韶华,盖荣丽,等.基于滤波技术的数控系统加减速研究[J].中国机械工程,2008(2):75-78.

[4]赖晓丰,刘敬猛,李善锋.基于ARM和运动控制器的嵌入式数控系统设计[J].机床与液压,2011(3):86-88.

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

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

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

[8]TMS320C64x+IQmath Library User’s Guide[Z].

[9]TMS320C64x_C64x+DSP CPU and Instruction Set Reference Guide[Z].

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

(编辑 李秀敏)

Embedded Motion Control System Design and Optim ization Based On DSP

JIA Xiao-bo1,2,YU Dong2,3,HU Yi2,3,LU Xiao-hu1,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 technology in designingmotion controller based on DSP:the interruptmechanism between DSP and FPGA bus controller,high-speed field bus technology,fixed-point DSP IQmath floating-point library optimization technology andmotion control algorithm optimization processmodel.Finally,this paper completed themeasurement of themotion controller performance and interrupt latency,and data accuracy and execution time of motion control algorithm,the experimental results show that can meet the high-precision motion controller,real-time and other requirements.

motion controller;interruptmechanism;field bus;optim ize processes

TH16;TG65

A

1001-2265(2013)03-0042-05

2012-07-06

国家科技支撑计划(2012BAF13B08);核高基国家科技重大专项(2012ZX01029001-002)

贾小波(1987—),男,湖北襄阳人,中国科学院研究生院硕士研究生,主要研究方向为数控技术,(E-mail)jiaxiaobo@sict.ac.cn;于东(1966—),男,中国科学院沈阳计算技术研究所博士,研究员,博士生导师,主要研究方向为数控技术、面向控制器的实时系统等。

猜你喜欢
浮点延迟时间控制算法
LEO星座增强GNSS PPP模糊度浮点解与固定解性能评估
二氧化碳对乙烷燃烧着火延迟时间的影响
添加非平衡等离子体对甲烷着火性能的影响
LTE 系统下行链路FDRX 节能机制研究
基于Simulink浮点模型和定点模型的问题研究
基于浮点DSP的铁路FSK信号检测
基于ARM+FPGA的模块化同步控制算法研究
高精度位置跟踪自适应增益调度滑模控制算法
NOx对甲烷点火延迟时间影响的数值研究
基于航迹差和航向差的航迹自动控制算法