工控网首页
>

应用设计

>

基于MPC5200和嵌入式Linux的数控系统

基于MPC5200和嵌入式Linux的数控系统

2006/5/16 11:31:00
摘 要:本文介绍了一种基于MPC5200处理器和嵌入式Linux的数控系统。设计过程中结合嵌入式Linux操作系统的优点和MPC5200处理器丰富的片内资源,采用模块化的设计思路,使系统具有一定的开放性和灵活性。本文详细介绍了系统各模块的主要功能及实现方法。 关键词:嵌入式Linux MPC5200 数控系统 0 引言   数控加工是现代控制技术与传统加工方式相结合的产物,随着被加工产品复杂程度和精度要求的提高,数控机床的控制部分——数控系统向柔性化、信息化、高可靠性和高实时性的方向发展。随着工业领域数字化、信息化、智能化程度的提高,嵌入式系统在数控领域中得到了广泛应用。   嵌入式系统是在有限的资源和体积中运行的、能够高效地实现某项专用功能的系统,其本质是将一个计算机嵌入到一个对象体系中去。大多数的数控系统都是面向用户、面向应用,是和具体应用有机结合在一起的,追求功能对资源的最大化,一般无需PC机那样丰富的软硬件资源。因此,嵌入式系统在数控领域中具有很高的应用价值。   最初的嵌入式系统的软件都是由汇编语言编写,没有操作系统的支持。其缺点是:一方面,程序编写与硬件紧密相关,软件开发人员必须熟悉硬件;另一方面,程序都是循环控制,实时性不高。而在目前的嵌入式操作系统中,Linux操作系统具有开放的源代码、强大而稳定的内核、良好的可裁剪性、模块化的设计思路、完善的网络和图形管理功能以及丰富的硬件支持等诸多优点,这些优点使Linux非常适用于嵌入式系统。   本文介绍一种以MPC5200处理器和嵌入式Linux操作系统为核心的二维数控系统。基于PowerPC内核的MPC5200微处理器是以工业控制领域为应用对象的高性能嵌入式CPU,具有面向工业良好的扩展能力。MPC5200的处理速度达到760MIPS,同时提供丰富的硬件接口。其硬件接口如图1所示,图中64M的SDRAM内存和8M的Flash是片外资源。MPC5200内部提供了8个通用定时器和众多I/O口,可将定时器配置成PWM模式(定脉宽调频),用于向步进电机(或伺服电机)驱动器发送脉冲。另外,MPC5200丰富的GPIO口可以用于数字信号输入和输出。
1 数控系统体系结构   基于MPC5200的数控系统分为上层主控单元和底层硬件控制单元(如图2所示)。上层主控单元工作在Linux用户层,分为人机交互模块和运动控制模块,它们又各自包含用户操作、文件编辑、跟踪显示子模块和代码解释、软件插补、故障诊断子模块。用户操作和跟踪显示模块构成了人机交互界面;文件编辑模块提供基本的参数设置和代码编辑功能;代码解释模块负责将G代码翻译成本系统的数据格式;软件插补模块将解释完成的数据转换为机床末端执行机构的位置增量;而依托MPC5200强大的网络功能可以实现机床的远程故障诊断。   底层硬件控制单元工作在Linux内核层,完成对硬件设备的操作和使用,这主要是通过Linux设备驱动程序来实现的。设备驱动程序是Linux内核的一部分,它为Linux应用程序屏蔽了硬件的细节,这样对应用程序来说,硬件设备只是一个设备文件, 应用程序可以像操作普通文件一样对硬件设备进行操作。图2中的硬件层列举了本系统需要的部分硬件设备,机床末端执行器可采用步进电机或伺服电机驱动。
2 主控单元的实现 2.1 人机交互界面的实现   MPC5200处理器提供了丰富的硬件接口,这保证了用户交互功能的完整性。现在USB键盘和鼠标已经非常普遍,因此MPC5200处理器内的USB接口可以用于连接键盘、鼠标等输入设备;对于输出设备,可以选用合适的PCI显卡提供VGA显示支持。   软件方面,嵌入式系统需要配备一个优秀的图形用户系统,使用户能与系统进行友善且高效的交互。在本系统中,交互界面是通过MiniGUI图形系统来完成的。MiniGUI是一个自由软件项目,完全遵循GPL条款,它可以运行在普通的PC机上,也可以运行在许多嵌入式CPU上,并且提供了完备的多窗口机制和控件,是一种基于消息机制的可配置和可移植的轻量级图形系统。基于 MiniGUI 的应用程序一般通过 ANSI C 库以及 MiniGUI 自身提供的 API 函数来实现自己的功能,MiniGUI的上层应用程序无需关心底层的硬件信息。   在开发过程中,首先将MiniGUI提供的库文件用ppc_82xx-gcc编译器交叉编译,生成PPC格式的目标代码,然后将其移植到MPC5200处理器上去。做好这些工作以后,同样将用户界面程序交叉编译,并与MPC5200上的库文件链接,这样就得到了能够在MPC5200上运行的可执行文件。图3 显示了开发完成的基于MiniGUI的图形交互界面,界面左半部分是跟踪显示区。
2.2 主控子模块的功能及实现 主控单元分为文件编辑、跟踪显示、代码解释、软件插补和故障诊断等子模快。通过前面系统体系结构的分析,划分各子模块功能如下: 文件编辑与跟踪显示模块:提供文件编辑界面,允许用户输入加工代码和控制命令。同时在主控界面上跟踪显示加工路径和实际加工位置。 代码解释模块:代码解释模块负责将标准的G代码翻译成本系统能够识别的代码形式。在本系统中,该模块负责将用户输入的数控加工NC指令转化为C语言的数据格式,以链表的形式存放。定义这个链表结构体类型为: struct nc_instruction { int nc_num; //加工序号 char nc_flag; //直线或圆弧标志位 int nc_m; //辅助指令 float nc_x; //X终点坐标 float nc_y; //Y终点坐标 int nc_f; //进给速度 float nc_circle[1]; //圆心坐标(圆弧加工时) struct nc_ instruction *next;};   软件插补模块:读取上述链表以后,根据加工精度计算出零件每个轮廓步长中X、Y方向控制电机的脉冲个数和脉冲频率。软件插补需要解决算法精度和运行效率之间的矛盾。软件插补模块还负责将电机控制信息写入电机驱动程序的数据缓冲区中。定义一条控制信息为11字节:
故障诊断模块:数控系统的远程故障诊断技术是计算机技术、通信技术和故障诊断技术相结合的一种全新的机床诊断技术。MPC5200上的CAN和以太网接口为本系统提供了强大的网络功能,是实现远程故障诊断的硬件基础。 3 硬件控制单元的实现 硬件控制单元由各种设备驱动程序构成。本文以电机驱动程序为例,说明上层用户程序是如何通过设备驱动程序来完成对硬件设备的操作。 用户进程通过设备文件同硬件打交道,对设备文件的操作就是一些常用的系统调用,如 open,read,write,close等。当上层用户程序打开电机设备文件后,软件插补模块在完成插补工作后向设备驱动程序的缓冲区写入控制信息。但此时的缓冲区仍位于用户层,设备驱动程序需要先把这片缓冲区复制到内核层,在Linux驱动程序中是通过Linux提供的get_user()函数来完成这一功能的。完成复制以后,设备驱动程序就根据这些控制信息完成对电机的控制。 图4中的Input接口是使用MPC5200带中断功能的GPIO口来实现的,这些接口用于实现机床零点和限位开关;而图4中Output接口就是Linux内核提供的数据结构struct file_operations中的write项,使用这个数据结构可以把系统调用和驱动程序联系起来,write项指向的接口函数为: static ssize_t device_write(struct file *file, const char *buffer,size_t length,loff_t *offset) { extern void pulse_control( char *kernel_buffer); //脉冲发生函数 int i; char kernel_buffer[256]; //电机内核层数据缓冲区 for (i=0;i<=length;i++) //用get_user()函数将用户缓冲区 复制到内核缓冲区 {if((error=get_user( *(kernel_buffer+i),buffer+i))!=0) {printk("Cantget info[%d] from user!\n",i); return (i--);} pulse_control(kernel_buffer); //调用脉冲发生函数 return(length);}   这样,接口函数device_write就与系统调用write相关联,当上层插补进程完成向电机设备文件写(write)动作时,设备驱动程序就调用device_write函数完成对电机的控制。这里需要注意的是,频繁写设备会造成系统性能下降,从实时性的角度出发,通常都是几帧控制信息同时送入设备驱动程序的缓冲区,设备驱动程序一次接收这几帧控制信息来完成电机的控制任务。
4 结束语   本设计来源于上海市科学技术委员会的科研项目——“基于嵌入式Linux的开放式控制平台”,项目编号为036505008。本文介绍的嵌入式数控系统按照功能需求,从精简实用的角度出发,充分利用了MPC5200的片内资源,以最精简的软、硬件资源完成了所需功能。同时,由于采用模块化的设计思路,使本系统具有一定的开放性和灵活性,通过简单的软硬件更新后,可以适用于不同类型的数控加工。现在,该数控系统已在自主研发的J-1010-001型混合磨料水射流数控切割机床上得到使用,能够实现平面复杂曲线的切割加工,执行机构位移精度达到0.01mm。
投诉建议

提交

查看更多评论
其他资讯

查看更多

智光节能内蒙古阿拉善左旗瀛海建材余热发电机组首次启动成功

智光电气台州电厂给水泵系统节能改造项目成功投运

智光节能荣登2014年度全国节能服务公司百强榜第五位

索引程序编程凸轮表

奥越信300系列PLC手册