基于ARM-FPGA的NURBS插补嵌入式平台研究

2014-07-07 01:50聂明星蒋新华李光炀陈兴武朱娜思
计算机工程与应用 2014年6期
关键词:实时性寄存器时钟

聂明星,蒋新华,李光炀,陈兴武,朱娜思

1.中南大学信息科学与工程学院,长沙 410083

2.福建工程学院控制与信息技术研究所,福州 350108

基于ARM-FPGA的NURBS插补嵌入式平台研究

聂明星1,2,蒋新华1,2,李光炀2,陈兴武2,朱娜思1

1.中南大学信息科学与工程学院,长沙 410083

2.福建工程学院控制与信息技术研究所,福州 350108

针对非均匀有理B样条(Non-Uniform Rational B-Spline,NURBS)曲线高速高精加工过程中计算负载高的问题,提出基于ARM-FPGA嵌入式技术的NURBS曲线插补硬件平台,对硬件平台结构进行了设计,利用读写下降沿同步信号解决ARM与FPGA跨时钟域总线传输问题,自主开发了ARM-FPGA嵌入式硬件平台。该平台结构具有小型化、智能化特点,在硬件平台上经实际测试表明,ARM与FPGA之间数据传输稳定可靠,能有效降低单一处理器的计算负载。

非均匀有理B样条(NURBS);插补器;嵌入式微处理器-现场可编程逻辑阵列(ARM-FPGA);计算负载

1 引言

NURBS曲线以通用的数学表达式将解析图形和自由形状统一起来,并且被ISO组织确定为自由型零件和产品的唯一表达形式,事实上已经成为工业CAD几何造型的标准。NURBS曲线直接插补较传统大量微小直线段逼近非圆曲线插补具有数据存储量小、信息完整、速度平滑等许多明显的优点,容易实现高速高精度,已得到越来越多数控系统的支持。

但是,与NURBS曲线造型技术相比,NURBS曲线插补技术相对比较滞后。传统的均匀参数插补方法速度波动较大,匀速插补方法误差难以控制[1];自动调节进给速度插补方法能满足最大轮廓误差要求,但是速度的变化可能超过机床的加减速能力[2]。为提高插补精度,最大加速度和加加速度限制算法被引入到NURBS插补中,文献[3]中利用分段三角函数加减速方法使加加速度柔性变化,避免产生加加速度阶跃;文献[4]在前瞻模块中对加速度和加加速度超限点进行预处理,再采用S曲线加减速方法对速度进行平滑控制。这些方法虽然在理论上能够大幅提高NURBS曲线插补的精度,但是也引入了较高的计算负载。

随着高速高精数控技术的发展,对NURBS插补器提出了更高的要求。文献[5]中指出高速高精插补周期应在1 ms内,插补时间越短,插补点距越小,零件的加工精度也就越高。由于NURBS曲线采用B样条基函数分段构造的形式,NURBS曲线点的计算复杂。同时采用泰勒1阶或2阶级数展开近似法来求取曲线参数时,NURBS一阶或二阶导[6]计算量也非常大。再加上NURBS非线性变化的曲率对速度的持续影响,使得插补过程中进给速度和加速度的变化可能是非线性的,需进行加减速控制和最大加加速度限制。因此,传统基于单一处理器的NURBS插补解决方案,面临较高计算负载和实时性的问题。

为此,本文针对NURBS曲线插补器的运行环境,提出一种基于ARM-FPGA架构的NURBS插补器嵌入式平台,在此硬件平台上,第一级粗插补在高性能ARM嵌入式处理器端执行,以Xenomai作为实时操作系统,提供人机界面(HMI)、CNC解释器、前瞻模块、通信握手模块及其他管理模块的运行环境,完成实时性要求不高的插补预处理等工作;第二级插补在FPGA端完成,执行加减速控制、插补点生成等实时性较强的任务,实现精插补。

2 基于ARM-FPGA的嵌入式平台结构设计

基于单一处理器的NURBS插补器面临较高计算负载问题,不能很好满足高速高精加工对实时性的要求。基于ARM-FPGA架构的NURBS插补器平台,在ARM端处理实时性要求不高的数据预处理功能,实现NURBS曲线粗插补;在FPGA芯片端处理加减速控制、实时插补等实时性较强功能,实现精插补。

如图1所示,系统平台由ARM微处理器为核心的管理端和基于FPGA的运动控制端两部分构成。管理端以ARM微处理器为核心,以Xenomai为实时操作系统,提供人机界面(HMI)、CNC解释器、前瞻模块、通信握手模块及其他管理模块的运行环境。执行端由高性能FPGA和扩展电路构成,主要完成第二级精插补、伺服控制等任务。

图1 基于ARM-FPGA的NURBS曲线插补器硬件结构

人机界面提供系统与人的交互接口,方便操作人员使用系统;CNC解释器读入NC文件执行词法分析、语法分析和语义分析,对M、S、T及G功能字进行处理,并把NC代码中NURBS曲线加工信息存入缓冲区;前瞻模块完成第一级粗插补,根据插补速率、曲线曲率及轮廓误差的关系对NURBS曲线进行分段预处理;通信握手模块负责ARM与FPGA间的指令与粗插补数据的传输协调;管理端将第一级插补数据存入FIFO缓冲队列,包括NURBS曲线次数、控制点权因子、控制顶点、分段曲线起始点、加速减速起点等信息,并通过握手模块同步FPGA端数据的存取操作。FPGA端完成基于De Boor-Cox的快速递推算法,加减速控制,实时插补点数据生成等功能,执行第二级精插补。

2.1 硬件方案设计

本文采用ARM嵌入式微处理器和现场可编程逻辑阵列FPGA,利用ARM微处理器的高速运算能力及FPGA强大的逻辑处理能力,以Xenomai作为实时操作系统,构建一个实时性强、稳定性高的硬件平台。

硬件方案如图2所示,系统采用主从式结构[7],ARM作为主CPU主要完成人机界面交互、LCD显示管理、键盘管理、内存管理、粗插补、I/O输入输出等。FPGA主要完成NURBS曲线加减速控制、插补点实时生成等工作。

图2 两级插补器硬件结构

ARM将粗插补数据通过总线与FPGA进行交互,采用16数据位并行总线连接,提高数据传输效率。FPGA采用中断方式进行插补数据的预取,将插补处理后的位置数据送至脉冲密化单元产生驱动脉冲,并将辅助信息送往输出接口,由伺服系统驱动相应电机完成进给控制。编码器输入构成位置闭环控制,零点、限位等I/O输入通过硬件中断交由ARM处理。

2.2 ARM芯片与FPGA器件的接口设计

为了能实现ARM和FPGA之间的快速可靠的数据传输,借助ARM的EABI扩展外部总线的时序来实现对FPGA的读写。ARM采用16位数据线、1位读控制线、1位写控制线、1位片选线、1位命令线及1位等待信号线来实现与FPGA之间的接口通讯。接口如图3所示,nGCS为片选信号,当FPGA被选中,数据使能SDEN信号有效,使能数据Buffer。nWait为总线等待信号,用来延时总线操作。nWE为写信号。INT为FPGA中断输出管脚,通过中断管脚,ARM可以在中断程序中读取FPGA中相应功能寄存器。nOE信号控制Buffer的输出方向,当nOE为高电平,数据由ARM输出到FPGA,即进行写操作;当nOE为低电平,数据由FPGA输出到ARM方向,进行读操作。ARM和FPGA之间的接口采用地址和数据线复用方式,通过命令信号cmd的高低来判断总线上是数据还是地址。

图3 ARM9与FPGA通讯接口

3 ARM与FPGA跨时钟域同步机制

3.1 跨时钟域同步

ARM粗插补处理后的数据通过总线与FPGA进行交互,它们之间数据传输的正确性和稳定性是嵌入式平台设计的重点。由于ARM与FPGA有各自的时钟,数据的传输需要跨时钟域进行。

如图4所示为典型的异步FIFO缓存同步法,采用环形存储结构的先进先出存储器。使用一个双端口存储器存放数据,数据发送方在一端写入数据,接收方在另一端读出数据,能够协调好两个时钟域的工作,满足高时钟频率的要求。访问FIFO时不需要地址线,只需要数据线和读写控制信号线,且数据地址由内部读写指针自动加1完成,因此利用FIFO实现数据的缓存具有接口简单、读写方便的优点。但是,在含有触发器的电路中往往会出现亚稳态问题,将导致异步FIFO的读写地址发生错误,产生误读或者误写。

图4 异步FIFO结构图

为此,本文设计一种更为简单可靠的同步方法,如图5所示为ARM9 S3C2440读写时序图,HCLK为ARM的总线时钟,频率为100 MHz,即时钟周期为5 ns。当读信号nOE有效后的一个时钟周期,读数据D[31:0](R)在数据总线上准备好,并维持到操作时间Tacc结束;在写信号nWE的下降沿,写数据准备好,并维持到操作时间Tacc结束。由此可知,只要以读写信号的下降沿作为同步信号,配合Tacc延时4个周期,即可实现数据的稳定读写。以写数据为例,将nWE信号下降沿作为同步信号开始,经过4个周期的延时,实现数据的提取,在第5个时钟周期,实现数据的分配,将数据送往相应的寄存器中。此时,要求ARM的写操作Tacc的最小时间间隔为5个周期,即25 ns。

图5 S3C2440 BANK3读写时序图

具体实现方法为:当片选信号和写信号有效时,将写信号进行5个周期的延时,第3个延时的同步信号从总线上获取数据,第2个和第4个延时信号作为写数据的缓冲同步,第4个和第5个延时作为将数据送到相对应的寄存器的同步信号。同时,采用命令信号来区分写的数据是地址还是数据。

3.2 接口验证

采用Quartus II仿真环境对接口进行验证,输入信号按时序要求配置如下:cmd_reg的地址为0x20,status_ reg的地址为0x21,cmd为“1”时表示写地址,为“0”时表示写数据。

图6 接口仿真示意图

从图6中可知,当写信号有效时,数据0x20被写入了地址为0x21的status_reg中,数据0x30被写入了地址为0x20的cmd_reg中;当读信号有效时,总线上给出0x21地址,总线上返回了0x20的数据;当给出0x21的地址时,总线返回了0x30的数据,仿真结果验证了接口模块功能的正确性。

4 平台实现与测试

4.1 平台实现

本设计采用模块化设计,将ARM控制器和FPGA设计成核心板模块,其他的输入输出和通信接口,键盘扫描、LCD、SD、USB等模块整合为一块底板。

为加快开发进度,ARM核心板采用成熟的TQ2440核心板。为满足数控系统功能性要求和日后扩展需要,对平台接口作了如下规划。底板共8个DB25接口,包括伺服轴接口4个、扩展轴接口2个、手摇接口1个、扩展I/O接口2个,操作面板接口采用DB62接插头。底板右下角为电源模块,上下边沿为普通I/O。

FPGA核心板采用2层板,布局如图7所示;底板作为主要接口,其大小受到了接口规模限制,大小为250 mm× 150 mm,考虑承重在板子四周和中间做了加固定位孔,同时将PCB的板材厚度规定为2 mm,底板布局如图8所示。

图7 FPGA核心板PCB

图8 底板PCB

将layout后的板子交付PCB板生产商制作,图9为制作完成并进行焊接后的最终成品图。

4.2 ARM与FPGA数据传输测试

将FPGA的工程编译成pof后缀的配置文件,通过usb-blaster下载到FPGA中,完成FPGA相应配置。ARM与FPGA数据传输测试,需结合ARM时序编写linux驱动程序。

图9 嵌入式平台成品

为了使Linux驱动对FPGA进行读写操作时,在EABI总线上产生图6的时序,需要对ARM的寄存器进行设置。应配置BWSCON寄存器控制总线上的数据宽度,以及BANKCON3寄存器控制总线上各信号的时序及延时。同时,在设置BANKCON3的时候,Tacc应该大于5个时钟周期,以保证操作正确性。

在读写FPGA时需对FPGA进行地址译码,FPGA的基地址为nGCS3,FPGA中的命令线cmd接到ARM的A4地址线。当cmd为“1”时总线上的数据为寄存器地址偏移,当cmd为“0”时总线上的数据为寄存器数据。因此,写FPGA地址时的地址是0x18000010,写数据时的地址为0x18000000。读写测试程序是先往FPGA地址写数据,然后再读出数据,如果读出的数据跟写的数据一致,则能验证数据传输的正确性。

部分代码如下:

将驱动程序编译后多次运行结果显示,读出的数据与写入的数据一致,验证了ARM与FPGA之间数据传输的正确性。

5 结论

本文针对NURBS插补计算量大,实时性不高的问题,提出基于ARM和FPGA来构建嵌入式硬件平台,由ARM处理人机交互、CNC解释器、NURBS曲线插补预处理等工作,完成一级粗插补;由FPGA端执行加减速控制、插补点实时生成等工作,完成第二级精插补。该平台具有小型化、智能化特点,能有效降低单一处理器计算负载,从而满足大数据量实时处理要求,提高NURBS插补的实时性。

[1]盖荣丽,王允森,孙一兰.样条曲线插补方法综述[J].小型微型计算机系统,2012(12):2744-2748.

[2]梁宏斌,王永章,李霞.自动调节进给速度的NURBS插补算法的研究与实现[J].计算机集成制造系统,2006,12(3):428-433.

[3]李思益,罗为.NURBS曲线高速高精度插补及加减速控制方法研究[J].计算机集成制造系统,2008,14(6):1142-1147.

[4]孙玉娥,林浒.基于前瞻算法的高效非均匀有理B样条曲线插补器[J].计算机集成制造系统,2009,15(10):2029-2033.

[5]黄翔,曾荣,岳伏军,等.NURBS插补技术在高速加工中的应用研究[J].南京航空航天大学学报,2002,34(1):82-85.

[6]刘宇,戴丽,刘杰,等.泰勒展开NURBS曲线插补算法[J].东北大学学报:自然科学版,2009,30(1):117-120.

[7]田家林,陈利学,寇向辉.基于ARM与FPGA的嵌入式数控系统设计[J].机床与液压,2007,35(2):93-94.

NIE Mingxing1,2,JIANG Xinhua1,2,LI Guangyang2,CHEN Xingwu2,ZHU Nasi1

1.School of Information Science and Engineering,Central South University,Changsha 410083,China
2.Institute of Control and Information Technology,Fujian University of Technology,Fuzhou 350108,China

This paper proposes an NURBS curve interpolation hardware platform based on ARM-FPGA embedded technology to achieve the purpose of high-speed and high-accuracy motion control.The hardware structure is designed.Then, the cross clock domain problem between ARM and FPGA is solved by using R/W falling edge as synchronization signal. The ARM-FPGA embedded hardware platform is developed independently.The practical test shows that data transfer between ARM and FPGA is reliable,and the proposed architecture would effectively reduce the computational load of NURBS curve interpolation in one single processor.

Non-Uniform Rational B-Spline(NURBS);interpolator;Advanced Reduced instruction set computer Machines-Field Programmable Gate Array(ARM-FPGA);computational load

A

TP391

10.3778/j.issn.1002-8331.1309-0362

NIE Mingxing,JIANG Xinhua,LI Guangyang,et al.Embedded platform of NURBS interpolation based on ARM-FPGA. Computer Engineering and Applications,2014,50(6):261-264.

福建省省属高校专项项目(No.JK2013030);福建省教育厅中青年教师教育科研重点项目(No.JA13210)。

聂明星(1982—),男,博士研究生,讲师,主要研究领域为计算机数控技术;蒋新华(1956—),男,教授,博士生导师,主要研究领域为智能控制技术;李光炀(1983—),男,工程师,主要研究领域为嵌入式技术。E-mail:nie_mingxing@163.com

2013-09-24

2013-11-22

1002-8331(2014)06-0261-04

猜你喜欢
实时性寄存器时钟
别样的“时钟”
基于规则实时性的端云动态分配方法研究
古代的时钟
Lite寄存器模型的设计与实现
基于虚拟局域网的智能变电站通信网络实时性仿真
分簇结构向量寄存器分配策略研究*
航空电子AFDX与AVB传输实时性抗干扰对比
有趣的时钟
时钟会开“花”
一种车载Profibus总线系统的实时性分析