基于ARM9的多功能机床数控系统软件设计

2013-01-06 04:01:26
机械设计与制造工程 2013年5期
关键词:程序段译码缓冲区

汪 越

(中国卫星海上测控部,江苏江阴 214400)

基于ARM9的多功能机床数控系统软件设计

汪 越

(中国卫星海上测控部,江苏江阴 214400)

在深入研究嵌入式系统、多功能数控机床的基础上,系统采用“双CPU架构”的设计思想,以微处理器S3C2440A为主CPU,单片机ATmega88为从CPU。其中,主CPU主要完成数控程序的输入、LCD显示、程序的解释、粗插补等主要功能;从CPU完成精插补功能;系统外围扩展人机交互模块、通讯模块、伺服模块、输入输出模块,实现人机交互、数据通讯、电机控制等功能。调试结果表明,该系统响应速度快、可靠性高、成本低,并且具有良好的可裁剪性和可移植性,能够根据实际需求进行功能的扩展和裁剪,在要求快速移动和加工速度适中的经济型数控机床领域具有广阔的应用前景。

ARM9;机床;数控;系统软件;设计

20世纪80年代,奥地利的林茨机床公司(WFL)率先提出全工序加工的新概念,即在一次装卡中,完成工件的所有车、铣、钻、镗等工序[1]。这种复合加工概念的实现,需要一种集成各种加工方法于一体的高柔性设备,因此促成了多功能数控机床的产生。实验室拟在原数控机床的基础上,设计一种全新的数控系统,从而完成上述功能。

1 开发平台介绍

通过分析数控系统设计方案,并结合多功能机床的实际情况,本文设计了一种基于ARM9微处理器的控制系统,工作原理如下:微型计算机内生成的加工信息,通过USB接口或者其他数据接口(如RS232、RS485等)将刀具路径数据传输给嵌入式控制板,控制板上的微处理器用特定的算法将输入的路径信息转化为数控信息,并生成脉冲驱动伺服电机,控制主轴以及X,Y,Z各坐标轴的运动,实现零件加工中的控制。同时加工过程中加工点的坐标位置等加工信息可在LCD液晶显示器上显示。

系统采用三星S3C2440A芯片作为主CPU,该芯片的突出特点是其处理器核心是一个16/32位的、具有ARM920T的RISC处理器,处理速度满足设计需求。该芯片还具有独立的16KB指令高速缓存和16KB数据高速缓存,电压为1.3V时工作频率可达400MHz。从CPU采用AVR公司生产的ATmega88,存储器工作电压为3.3V,具有8K系统内可编程FLASH,工作频率可满足精插补需求。开发软件采用 ADS1.2(ARM Developer Suite)。ADS1.2包括了4个模块:SIMULATOR、C编译器、实时调试器和应用函数库。ADS1.2提供了完整的Windows界面开发环境,C编译器效率极高,支持C及C++,方便使用C语言进行开发[2]。有了以上部件,即可完成ARM系列的RISC处理器的软件编写和调试应用等工作。

2 软件总体设计

在ARM处理器平台上进行软件开发,通常采用2种方式,一种是基于操作系统的软件设计,另一种是脱离操作系统的裸机软件设计,此种方法与以往8位机和16位机上常用的开发方式类似[3]。

本文研究和设计的多功能机床数控系统,只需完成车、铣、钻等功能,相对简单而且独立,因此系统可采用“裸机”的形式,利用微处理器较高的工作频率,实现加工控制。系统软件部分需完成的功能包括加工信息的预处理及传输、交流伺服电机的联动、主轴变频电机的旋转,以及加工过程中加工信息的实时显示等。其软件总体设计如图1所示。

图1 嵌入式系统结构框图

3 功能模块的实现

3.1 程序译码的实现

3.1.1 加工代码概述

根据加工代码的特点,可将G代码和M代码按各自的功能属性分组,每组代码只需设置一个独立的存储单元,并以特征字来区分本组中的不同代码。这样不仅可以极大地压缩译码的存储规模,保证译码的效率,还方便诊断程序段中的有关逻辑错误。

X功能代码、Y功能代码、I功能代码、J功能代码、F功能代码等在一个程序段中只会出现一次,因此这些功能代码在缓冲器中存储只需占用一个固定的存储单元。另外,F功能代码的数值只能是一个整数,因此该代码的存储单元数据类型应该是整型;X、Y、I、J功能代码值表示一个坐标值,有可能是整数,也有可能是小数,因此此类代码采用双精度实型的数据类型。系统译码结果在缓冲器中的存储格式见表1。

表1 译码结构存储格式

3.1.2 译码方式选择

所谓译码就是对零件的加工程序进行处理,使其按一定的语法规则翻译成计算机能够识别的数据形式,并以一定的数据格式存放到指定的内存当中[4]。按照编译原理译码主要分为解释方式和编译方式,2种译码方式的比较如图2所示。

考虑上述2种编译方式的特点以及系统的硬件构成,系统采用解释方式,其速度较慢的缺点已经被更高速的硬件弥补,系统主CPU工作频率可达400MHz,性能上完全满足解释译码方式对系统的要求,在加工时,能保证解释代码的实时性。

图2 译码方式的比较

3.1.3 译码过程

译码过程一般分为3个步骤:程序载入、程序语法检查和程序解释[5]。基本的解释思路是:把一段G代码看成一个字符串,对它进行扫描,每判断出一句程序段,便转入解释,作相应的处理,然后继续扫描,判断出程序段再转入解释,直到所有字符都扫描完为止。若是程序段,则段数加1,否则继续读下一个字符,直到读到程序结束符(字符串为M02或M30)不再往下读。译码流程如图3所示。

图3 译码流程图

3.2 电机控制的实现

系统之所以选择S3C2440A为控制核心,很重要的一个因素是因为S3C2440A的定时器具有PWM功能,通过对定时器一些功能寄存器的配置,可定义占空比的大小和改变输出频率,此功能可实现对电机的控制。

系统采用定时中断的方式实现对PWM定时器的控制,流程如图4所示,具体操作步骤如下:首先,进行中断初始化,包括中断模式寄存器以及中断控制寄存器的设置;其次,设置定时器,确定其工作频率以及工作方式、除法器值;再次,打开定时中断,调用插补程序,获取各轴接收脉冲数以及确定各自运动方向,根据脉冲的数量对定时器相关寄存器进行设置;最后,在下次定时中断到来时进行相同的操作。以此方式即可连续均匀地发出系统所需脉冲。

图4 定时器操作流程

3.3 液晶显示的实现

3.3.1 控制器初始化

系统选用群创(INNOLUX)公司生产的TFT型液晶屏 AT080TN52,分辨率为 800×600,采用16bpp无调色板模式,因此液晶显示初始化主要工作包括:初始化控制器LCDCON1~5,设置显示模式和颜色数及分配LCD显示缓冲区。

具体设置如下:

3.3.2 LCD 接口函数

要实现LCD接口函数,最重要的是了解液晶的显示原理和物理屏与显示缓冲区的对应关系。系统采用16bpp显示模式,可理解为液晶屏上的一个像素点用16个二进制位来表示,每个像素的16位分成5位红、6位绿、5位蓝,因此系统初始化时需在SDRAM存储器中开辟一块INT16U LCD_Buffer[800×600]大小的显示缓冲区。新开设的缓冲区与液晶屏是一种映射关系,即LCD屏上的某一像素点(x,y)与显示缓冲区LCD_Buffer[y×800+x]相对应,对液晶屏的显示操作就是对显示缓冲区中对应的位置写入数据。LCD初始化后,可以通过直接修改显示缓冲区实现显示。如下代码为在LCD的(x,y)位置处以颜色c打一个点。

有了打点函数后,要显示图片和字符就变得相对简单了,只需要在相应的显示函数中调用打点函数就可以完成了。绘图函数包括画线、画矩形。文字显示函数包括英文字母、汉字、数字等。它们都由特定的点阵数据组成,即都是通过打点函数的组合来显示。例如:

3.3.3 汉字库的嵌入

系统中字符都是由特定格式的点阵数据组成,因此可利用字模提取工具按照指定格式获取对应的点阵数据,然后将点阵数据由CPU发送至液晶显示控制器。以点阵为16×16的汉字为例,字符点阵数据在CPU的存储方式为:

系统根据数组行号找到字符的字模数据,从而实现所需字符的显示。本系统中,文字的字体高度与宽度(以像素为单位)都设定为8的整数倍,点阵数据以十六进制的形式存放于数组中。英文字母的格式为8×16;汉字格式为16×16;数字的格式有8×16和16×32两种,其中16×32格式的数字用于加工过程中各坐标值的显示。

4 综合调试

软件设计完成后,即可对系统软件进行综合调试。主要方法是:加工用刀具、进给速率以及主轴转速可在LCD液晶显示器上显示;同时程序每读一行,系统X,Y,Z轴坐标值也可在LCD上显示;当系统执行完G00功能后,继续按照程序走完G01功能,如图5所示。

5 结束语

图5 系统联调LCD显示图像

研究与调试结果表明,基于微处理器S 3C2440A和ATmega88的双CPU嵌入式数控系统,能够完成车、铣、钻等加工功能,加工信息可以实时显示,并且具有响应速度快、可靠性高、成本低的特点。在要求快速移动和加工速度适中的经济型数控机床领域具有广阔的应用前景。

[1]王礼健.车铣复合加工技术[J].航空制造技术,2004,8(4):48-49.

[2]张风仙.嵌入式控制系统设计课程的特点和教学方法研究[J].科技创新导报,2010,10(2):174.

[3]魏忠,蔡勇,雷红卫.嵌入式开发详解[M].北京:电子工业出版社,2003.

[4]孟健.数控系统中译码模块的研究[D].阜新:辽宁工程技术大学,2006.

[5]陈秀珍.基于Windows的经济型CNC系统译码模块设计[J].数控机床市场,2008,2(3):102-103 .

Development of Multi-function Machine Tool Numerical Control System Based on ARM9

WANG Yue
(Chinese Satellite Sea Measurement and Control Department,Jiangsu Jiangyin,214400,China)

Based on the embedded system and multi- function numerical control machine tool,it establishes the double CPU architecture,uses microprocessor S3C2440A as primarily CPU and takes SCM ATmega88 as auxiliary CPU,develops the multi-function machine tool numerical control system.The primarily CPU completes the CNC program input,LCD display,program interpretation,coarse interpolation and main function.The auxiliary CPU executives fine interpolation function.There are human -computer interaction module,communication module,servo module,input/output module in the system.Testing results show that the system has high response speed,reliability,low cost,can expand and cut according to the actual needs of function.This system has the broad application prospect in economical NC machine tools.

ARM9;Machine Tool;Numerical Control;Software System;Design

TG273

A

2095-509X(2013)05-0035-05

10.3969/j.issn.2095 -509X.2013.05.009

2012-07-08

汪越(1988—),男,江苏江阴人,中国卫星海上测控部工程师,硕士,主要从事机械制造及其自动化方面的研究工作。

猜你喜欢
程序段译码缓冲区
嵌入式系统环形缓冲区快速读写方法的设计与实现
基于WinCC的物料小车控制系统设计与仿真
电动工具(2022年2期)2022-05-18 08:40:38
基于校正搜索宽度的极化码译码算法研究
数控系统手轮回退功能的研究与实现*
基于NC程序段的提高数控加工监控阈值与信号同步的方法*
从霍尔的编码译码理论看弹幕的译码
新闻传播(2016年3期)2016-07-12 12:55:27
关键链技术缓冲区的确定方法研究
LDPC 码改进高速译码算法
遥测遥控(2015年2期)2015-04-23 08:15:19
基于概率裁剪的球形译码算法
基于概率裁剪的球形译码算法