1、 中图分类号: TP273 TP391 论文编号: 1028705 09-0167 学科分类号: 080202 硕士学位论文 基于 ARM 的 嵌入式 车床 数控系统 研究与开发 研究生姓名 杨军 学科、专业 机械电子工程 研 究 方 向 机电控制工程 指 导 教 师 游有鹏 教授 南京航空航天大学 研究生院 机电学院 二 八年十二月Nanjing University of Aeronautics and Astronautics The Graduate School College of Mechanical and Electrical Engineering Research of
2、Embeded CNC for Lathes Based on ARM A Thesis in Mechanical Engineering By YangJun Advised by Prof. You Youpeng Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Engineering Dec. 2008承诺书 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取得的成果。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人享有著作权的
3、内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。 本人授权南京航空航天大学可以有权保留送交论文的复印件,允许论文被查阅和借阅 ,可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存论文。 (保密的学位论文在解密后适用 本承诺书 ) 作者签名: 日 期: 南京航空航天大学硕士学位论文 I 摘 要 传统的中、低档数控车床在结构上往往采用 8/16 位单片机加精插补器,以获得较高的性价比。随着嵌入式系统的迅速发展,高性能的 32 位 CPU 已经普及,以 ARM 为代表的 32 位微处理器速度快 、 功能强 、 价格低, 完全
4、可以 开发出 具有 更高性价比的 嵌入式 数控 系统 。 本文旨在研究和设计一 种 基于 ARM7 的嵌入式数控车床控制系统。 本文首先通过对嵌入式技术和数控技术的 全面分析 ,选择 确定了车床嵌入式数控系统 的软硬件平台。 硬件平台以 ARM7 系列微处理器 LPC2220 为核心,基于 可编 程逻辑器件 CPLD 实现精插补器 ,并配以 必要 的外围电路。软件平台以源代码公开的 C/OS-实时操作系统为 基础 ,开发系统所需的驱动程序和应用软件。 规划设计了基于 C/OS- 的 车床数控系统 控制任务 划分 以及各任务模块间的通讯协调机制。控制任务划分 为 7 个:主控、液晶显示 、 文件
5、系统服务、数控程序解释、速度处理、插补和逻辑控制 ; 利用 C/OS-提供的邮箱、信号量 等 服务 机制 ,有效实现了任务与任务 、 任务与中断之间的通信 与同步 。 此 外,本文还研究了系统程序解释的实现方法。首先, 基于 有 限 状态机( DFA)的分析策略构造了数 控程序解释的词法分析器,把程序的字符流转换为内部标记流,然后对程序进行语法和语义分析,最后翻译成速度处理和逻辑控制所需要的数据结构。重点分析了子程序调用和返回的机制 及其 实现方 法 。 最后,介绍了系统的软硬件开发工具和调试方法。软硬件测试 表明 ,该嵌入式 车床 数控 系统 可满足 预期目 标 。 关键词: 嵌入式车床数控
6、系统 , ARM, CPLD, C/OS-,程序解释 基于 ARM 的嵌入式车床数控系统研究 与开发 II Abstract To gain high cost perfermence, traditional CNC for lathes usually adopts 8-bit or 16-bit mcu and fine interpolator. With the development of the embedded system, high perfermence 32-bit CPU has been popularization. ARM as a typical produc
7、t of 32 bits processors, being of high speed in computation and function and low costs, can be completely used to develop embedded CNC with higher cost perfermence. In this papar an Embended CNC for lathes based on ARM is designed and developed. Based on general analysis of embedded systems and NC t
8、echnology, the hardware and software platform of embedded CNC for lathes are chosed. A 32-bit CPU LPC2220 is used as the kernel of hardware, together with a fine interpolatorimplemented with a CPLD, and some other necessary peripheral modules. The software of the embedded CNC is based on C/OSII, a r
9、eal-time embedded operating system with open source code. Some equipment driver and application program are included in the software. For the development of the embedded CNC for lathes based on C/OSII, control tasks in the system are firstly planed and the communication coordination mechanism among
10、each task is then designed. Seven tasks is involved in the CNC: main control, LCD display, file service, NC program interpretation, ACC/DEC control, interpolation and PLC. Upon the service of mailbox and semaphore provided by C/OSII, the communication and synchronization can be efficiently realized
11、among tasks or between task and ISR. In addition, the implementation method of the interpretation of NC program for lathes is investigated. First, a lexical analyzer of NC program is constructed by finite state automaton (DFA) which can transform character streams to inner token streams. Then, synta
12、x and semantic analysis are used for the NC program. Finally, the error-free machining information is stored in a specifical datas tructure which can be received and used by both the task of ACC/DEC control and PLC. The mechanism and implementation of call and return for subroutines are analyzed and
13、 given. Finally, the instruments of debugging and development for hardware and software are introduced. By testing, the embedded CNC for lathes can meet the expected design demands. Key Words: embedded CNC for lathes, ARM, CPLD, C/OSII, program interpretation南京航空航天大学硕士学位论文 III 目 录 第一章 绪论 .1 1.1 数控技术
14、概况 .1 1.1.1 数控技术发展背景 .1 1.1.2 国外数控发展现状 .2 1.1.3 国内数控发展现状 .3 1.1.4 数控技术的发展趋势 .3 1.2 嵌入式系统概况 .4 1.3 本文研究意义及主要工作 .5 1.3.1 研究意义 .5 1.3.2 论文主要内容 .6 第二章 嵌入式数控车床系统总体结构设计 .7 2.1 嵌入式数控系统的总体设计 .7 2.2 嵌入式数控系统的硬件组成 .7 2.1.1 ARM 子系统 .8 2.1.2 CPLD 子系统 .8 2.1.3 液晶模块 .8 2.1.4 键盘模块 .8 2.3 嵌入式数控系统软件的结构 .9 2.3.1 人机界面管
15、理 .9 2.3.2 逻辑处理 .9 2.3.3 运动控制 . 10 2.3.4 数据处理控制 . 10 2.3.5 辅助控制 . 10 2.3.6 伺服处理 . 10 2.4 本章小结 . 11 第三章 车床数控系统硬件平台设计 . 12 3.1 LPC2220 概述 . 12 3.1.1 ARM 简介 . 12 3.1.2 LPC2220 微控制器概述及特性 . 12 基于 ARM 的嵌入式车床数控系统研究 与开发 IV 3.2 电源、时钟及复位电路设计 . 14 3.2.1 电源电路设计 . 14 3.2.2 时钟电路设计 . 15 3.2.3 复位电 路设计 . 16 3.3 LPC2
16、220 的外部存储器设计 . 16 3.4 EPM1270 的电路设计 . 17 3.5 人机界面电路设计 . 18 3.5.1 键盘输入电路设计 . 18 3.5.2 液晶显示模块接口电路设计 . 18 3.6 RS-232 串行通信电路 . 20 3.7 本章小结 . 21 第四章 数控系统软件平台设计 . 22 4.1 嵌入式实时操作系统简介 . 22 4.2.C/OS-简介 . 23 2.2.1、 C/OS-的特点 . 23 4.2.2 C/OS-的工作原理 . 24 4.2.3 C/OS-的任务间通讯和同步 . 25 4.2.3.1 信号量 . 25 4.2.3.2 消息邮箱 . 2
17、6 4.2.4 C/OS-的中断机制 . 27 4.3 C/OS- 在 LPC2220 上的移植 . 29 4.3.1 编写 OS_CPU.H . 29 4.3.1.1 定义不依赖编译器的数据类型 . 30 4.3.1.2 OS_ENTER_CRITICAL()和 OS_EXIT_CREITICAL()的编写 . 30 4.3.1.3 OS_STK_GROWTH 的编写 . 31 4.3.1.4 OS_TASK_SW()函数的编写 . 31 4.3.2 编写 OS_CPU_C.C . 31 4.3.3 编写 OS_CUP_A.ASM . 33 4.3.3.1 OSStartHighRdy 函数
18、的编写 . 33 4.3.3.2 OSCtxSw 函数的编写 . 34 4.3.3.3 OSIntCtxSw()函数的编写 . 34 4.3.3.4 OSTickISR()函数的编写 . 34 4.4 系统的软件任务及中断划分 . 34 4.4.1 车床控制系统的任务划分 . 35 南京航空航天大学硕士学位论文 V 4.4.2 车床控制系统任务优先级的确定 . 36 4.4.3 车床数控系统中断的确定 . 37 4.4.4 车床控制系统中各个任务及 ISR 之间的工作流程 . 37 4.5 系统驱动程序设计 . 39 4.5.1 液晶驱动设计 . 39 4.5.1.1 速度匹配 . 39 4.
19、5.1.2 地址空间访问 . 39 4.5.1.3 S1D13305 的初始化 . 40 4.5.1.4 字符、汉字及图形的显示 . 40 4.5.1.5 提高界面切换和屏幕刷新速度的措施 . 42 4.5.2 键盘驱动程序的设计 . 42 4.6 本章小结 . 45 第五章 车床数控程序解释模块的实现 . 46 5.1 程序解释模块的总体分析 . 46 5.1.1 程序解释模块的方法 . 46 5.1.2 程序解释模块结构划分 . 47 5.2 数控程序的检查 . 48 5.2.1 词法分析 . 48 5.2.1.1 词法分析器 . 48 5.2.1.2 分析方法 . 48 5.2.2 语法
20、分析 . 49 5.2.3 语义分析 . 51 5.3 数控程序的翻译 . 52 5.3.1 一般 G 代码的翻译 . 52 5.3.2 子程序的研究与实现 . 53 5.3.3 MST 代码的处理 . 55 5.3.4 重新译码的处理 . 55 5.4 程序解释模块的部分测试 . 56 5.4.1 程序错误的测试 . 56 5.4.2 一般 G 代码的测试 . 56 5.4.3 子程序调用的测试 . 57 5.5 本章小结 . 58 第六章 系统的软件调试 . 59 6.1 系统开发与调试的工具 . 59 基于 ARM 的嵌入式车床数控系统研究 与开发 VI 6.1.1 ADS 集成开发环境介绍 . 59 6.1.1.1 ADS1.2 集成开发环境的组成 . 60 6.1.1.2 CodeWarrior IDE 简介 .