《RTAI在开放式数控系统运动控制器中的应用.docx》由会员分享,可在线阅读,更多相关《RTAI在开放式数控系统运动控制器中的应用.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、RTAI在开放式数控系统运动控制器中的应用网络转载导语:在数控自动控制领域中,所谓运动控制就是对机床机械装置运动部件的位置、速度、加速度等参数进展宴时的控制治理,使其按照预期的运动轨迹和规定的运动参数进展运动。由于工业控制计算机IPC(IndustrialPersonalComputer)强大而完善的功能,基于Pc标准总线的运动控制器已经在数控系统控制领域得到了广泛的应用。0前言在数控自动控制领域中,所谓就是对机床机械装置运动部件的位置、速度、加速度等参数进展宴时的控制治理,使其按照预期的运动轨迹和规定的运动参数进展运动。由于工业控制计算机IPC(IndustrialPersonalCompu
2、ter)强大而完善的功能,基于Pc标准总线的运动控制器已经在数控系统控制领域得到了广泛的应用。但是。基于PC标准总线的运动控制器由于在硬件设计上采用板卡设计,这种构造的运动控制器不宜长期工作在环境恶劣的工业现场(有振动、粉尘、油污等)。因此近年来,开放式运动控制器成为数控机床工业控制领域研究的热门。Linux是一个遵循POSIX(PortableOperatingSystemInterface)标准的多用户多任务且具有先进的网络特性开源操纵系统,可以方便的进展自主知识产权的软件开发。但Linux不是一个“硬实时操纵系统,其内核为非抢占式的(no-preemptive),实时任务不可以得到保证,
3、而本身是综合性很强的技术,具有明显的实时控制、实时交互和实时监测特性。本文研究了RTAI(Real-timeApplicationInterface)的实现原理和基于Mpe5200实时嵌入式Linux运动控制器的架构分析,并实现其在数控系统中的应用。1实时Linux的实现作为一个嵌人式系统,除了具备一个高性能的嵌入式微处理器,还应该拥有一个与处理器配合的嵌入式操纵系统。嵌入式操纵系统除了具备一般操纵系统最根本的功能,如任务调度、同步机制、中断处理和文件功能外,还应该具有以下特点:可移植性、可裁减性、实时性、强稳定性和良好的图形支持。Linux是全面多任务的32位开放式操纵系统可以使运动控制用具
4、有可扩大、可移植、可靠性高和兼容性好等优点,非常合适作为开放式运动控制器的开发平台。到目前为止,全球在Linux平台下开发的具有硬实时功能的系统主要有两个:R1unIlx和RTAI。RTbn一最早是美国新墨西哥理工学院的一个研究工程,它是由VictorYodaiken提出设计思想,由MichaelBambanov实现的硬实时操纵系统。RTAI(RealTimepplicationInterface)是由意大利米兰理工学院航天工程系提议开发的一个遵循GNU的开源工程,RTAI已经支持1386,PowerPC,ARM,MIPS和M68knommu等处理器。是目前支持处理器最多的linux实时解决方
5、案之一。RTAI的实现机制与RTLinux非常相似,唯一不同的是RTAI在Linux上定义了一个实时硬件抽象层RTHAL(RealtimeHaldwamAbstractionLayer)。并针对RTAI开发了LXRT(LinuxRT)。让RTAI可以调用Linux本身的系统调用功能,如图1所示。图1加载RTAI的Linux内核构造RTAI修改了linuxarchi386中与体系构造相关的代码而形成了RTHAL层,RTHAL的作用是使RTAI可以在实时任务需要运行的任何时刻中断Linux。引入RTAI后,Linux的功能没有改变,但是作为优先级最低的任务运行,并且只有在没有实时任务的时候它才能执
6、行。这样做的好处在于将直接修改linux核心的代码减到最小,这使得将RTAI移植到linux内核的工作量减至最低。RTAI实现的主要模块有RTAI模块、SCHED模块、FIFO模块、SHM模块、LXRT模块,它们能动态装入和卸载。用户自己的实时任务是在RTAI装入后再载人。可以通过编辑etcrcsysinit文件,在系统启动时将RTAI模块和用户实时模块加载到Linux内核中,当实时模块加人到内核后,实时模块中创立的线程和函数就可以访问系统的底层资源。2系统设计由硬件系统和软件系统两大局部组成。按照模块化设计思路,将运动控制器的体系构造划分为用户层、内核层和设备层(图2所示)。其中内核层和设备
7、层两局部组成了运动控制器的开放式平台。这种独立的层次构造使得运动控制器易于实现数控系统上的开放式应用。图2运动控制器平台体系示意图用户层(虚框内)就是开放式运动控制器的用户程序空间,运动控制器的用户软件是根据应用对象进展特殊化设计的,可以灵敏更换。开放式运动控制器的设计思路是:无需更改底层软/硬件模块,根据被控对象的特征设计不同的模块化用户软件就可以知足不同的运动控制任务,表达出运动控制器开放式的特性。“用户软件模块化是开放式运动控制器最大的特征,而“用户软件模块化恰好也是Linux提供的一种机制:Linux的内核和用户程序是完全别离的,用户程序通过调用设备操纵接口就可以实现对硬件设备的操纵。
8、内核层的设计按照两条互相独立的线路展开:移植Linux操纵系统和开发设备驱动程序。从图2可以看到,运动控制器的内核层设计最为复杂这局部的设计是与Linux内核机制严密相关的。运动控制器大量的硬件设备是由Linux设备驱动程序提供用户软件设备操纵接口的图2中内核层的“运动控制接口和“现场通讯接口是开放式运动控制器最主要的设备接口。设备驱动程序由于处于Linux内核的最底层,因此相对于上层用户软件又称之为底层软件。图3MPC5200微处理器功能框图设备层是运动控制器的硬件层,在这局部设计经过中需要完成运动控制器的硬件设计,电路设计。嵌入式运动控制器的硬件设计与传统的基于PC机的运动控制器设计有很大
9、不同之处。考虑到面向特殊领域的应用特性,嵌入式系统不能使用桌面系统那样丰富的硬件资源,因此标准的Pc机硬件无法直接应用到嵌入式运动控制器中去,这些决定了开放式运动控制器的硬件设计具有其特殊性。2.1硬件构造设计运动控制器微处理器采用的是摩托罗拉公司于2003年下半年推出的新型的具有广泛开展前景的PowerPCMPC5200其内部采用了双处理器构造,有一个专门负责通讯的协处理器,表达了数据通讯的专业构架。并通过双端口内存(这是种极快的数据交换方式)与主处理器通讯,进而使主处理器负担大幅度下降。其芯片内部含有丰富的实用型外设。基于PowerPC内核的MPC5200“是一颗低功耗、处理速度达760M
10、IPS的嵌入式处理器。它支持以太网、USB、PCI、ATA、12S、12C、SPI、串行接口、J1850和控制区域网(CAN)。同时,它还支持DDR存储器,并集成了一个双精度的浮点单元(FPU),如图3所示。MPC5200运动控制器是一款非常合适于工业控制领域应用的运动控制器,开放化的特点使其可以应用于多种机械设备上,而通过CAN总线互连组建的现场总线运动控制系统是一种全新的分布式控制系统。因此Mpc5200运动控制器完全可以知足当代数控系统高速化、智能化、网络化、集成化、开放化的需求。2.2软件构造设计在实时Linux下,为了保证数控系统的实时任务可以即时响应。所有和实时相关的任务都必须放在
11、内核层下,每个任务用一个独立的内核进程来执行,实时进程是通过调用RTAI的rttaskinit()函数来实现的。而非实时任务那么放在用户层下,它们在任何时候都不会打断实时任务的运行,只有在实时任务完毕后才会执行。嵌入式数控的根本功能由各种功能模块共同来实现的。在以linux为操纵系统的开放式平台上集成RTAI的实时内核。通过模块化的设计思想,可以将整个控制系统按照实时性的要求分为用户层模块,内核层实时模块两个大的模块,同时在两个大的模块下又根据不同的子功能分为代码解释模块,人机交互及刀具仿真图形模块,文件治理模块,位置控制模块,插补运算模块,状态监测模块等,如图4所示。图4系统软件构造图内核层
12、和用户层之间进程的通讯主要是依靠RTAI提供的实时nFo,通过调用函数rlf_create()来创立管道实现数据传输。FIFO的通讯是单向的,因此用户层和内核层的信息交互必须至少创立两条管道才能实现。3实时控制的软件实现根据对开放式运动控制器的运行机制分析,将各实时任务模块分别设置相应的定时器工作方式。优先级及通讯队列等。实时功能模块实现方式如下:位置控制任务moor()决定电机控制精度。计算下一周期的实际坐标增量,输出到伺服单元驱动步进电机工作。因此将其设计成周期性RTAI线程运行周期为4ms,1级优先权。功能控制任务control()是利用fifo从用户层向内核层传递控制命令,并实现对IO
13、口的控制。此任务采用实时中断策略,在承受到控制命令,内核挂起位置控制任务。状态检测任务monitor()要对状态进展实时监控。因此设置此任务运行周期为lOms优先级为3级。运动控制器软件的所有实时任务和函数包含在实时模块mainprogramo中。通过编tetcrcsysinit文件,在系统启动时加载到Linux内核中。当实时模块参加到内核中。实时模块中创立的线程和函数就可以访问系统的底层资源。实时任务模块的加载和卸载在Linux中由initmodule()和cleanupmodule()两个函数实现的,同时可以通过这两个函数进展资源的分配和回收,以及线程和处理函数的创立。4完毕语本文在深化研究Linux实时操纵系统的根底上。将Linux操纵系统移植到数控机床上具有实用价值的嵌人式微处理器MPC5200上,证实了数控嵌人式系统完全可以实现一定程度的开放性,且移植Linux也是开发嵌人式数控运动控制器操纵平台一种比拟好的方案。具有明显的先进性和实用性。通过一系列的实验分析和应用研究,现已成功将MPC5200运动控制器应用于自主开发的一种基于CAN总线的嵌入式线束机控制系统,该系列机床已经通过工程成果鉴定,目前正在进展产业化推广工作。在此也希望本文能为开发和推广我国具有自主知识产权的嵌人式Linux运动控制系统提供一定的借鉴和帮助。