




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京工程学院自动化学院本科毕业设计(论文)PAGEIV自动化学院本科毕业设计(论文)题目:数字积分法轮廓插补的FPGA实现方法摘要本论文设计完成的芯片由VHDL编程设计,它能按照程序设计要求,实现利用DDA插补法对直线和圆弧各个象限的插补。本论文主要介绍了DDA插补法的插补原理、芯片设计及在MAXPIUSⅡ环境下的仿真。为了提高伺服电机的步进精度,简化控制器结构,采用FPGA器件并运用VHDL语言设计出的插补控制器,不仅采用数字积分法实现直线插补控制和圆弧插补控制,提高了插补速度和插补精度,而且运用多轴联动技术,实现输出脉冲的均匀分配。它可接收外部处理器指令,并发出所需的脉冲到伺服电机的驱动中,从而控制伺服电机的运转,其结果证明了该控制器的正确性。这种结构的控制器简化了一般数字控制器结构,具有良好的移植性能和一定的实用价值。关键字:数字积分法;轮廓插补;FPGAABSTRACTInthispaper,chipdesigniscompletedbytheVHDLProgramming,itdesignrequirementsinaccordancewithprocedures,DDAinterpolationmethodtoachievetheuseoflinearandcircularinterpolationofeachquadrant.ThispaperintroducestheprincipleofDDAinterpolationinterpolationmethod,thechipdesignandsimulationinMAXPLUSⅡenvironment.Inordertoimprovetheaccuracyofservosteppermotor,simplifyingthecontrollerstructure,theuseofFPGAdevicesandtheuseofVHDLlanguagedesigninterpolationcontroller,notonlyusingdigitalintegrationmethodtoachievecontroloflinearinterpolationandcircularinterpolationcontrol,improvedinterpolationspeedandaccuracyofinterpolation,andtheuseofmulti-axistechnologytoachieveauniformdistributionoftheoutputpulse.Itcanreceiveexternalprocessorinstructionsandissuesthenecessarydrivepulsestotheservomotor,therebycontrollingtheoperationoftheservomotor,whichshowthevalidityofthecontroller.Thisstructuresimplifiesthecontrolofthegeneralstructureofadigitalcontroller,havingagoodperformanceandtransplantpracticalvalue.Keyword:Digitalintegration;ContourInterpolation;FPGA目录第一章绪论1.1引言………………………..11.2选题的背景及意义………..11.3数控系统插补……………..11.3.1插补的介绍…………21.3.2插补方法的分类……………………21.3.3插补技术的发展……………………41.4本课题的主要工作………..4第二章插补芯片设计2.1芯片的总体设计…………..62.2芯片开发工具……………..72.3VHDL硬件描述语言……………………...82.4FPGA的设计流程…………8第三章读写逻辑控制模块3.1读写逻辑控制模块的功能………………..113.1.1数据转换…………...113.1.2象限处理…………...143.2程序仿真及波形分析……………………..163.3设计元件…………………..17第四章数字积分法直线插补模块的实现4.1数字积分法基本原理184.2数字积分法直线插补……………………194.2.1插补原理…………194.2.2插补实例…………214.3直线插补设计……………224.4直线插补的VHDL语言的实现…………..234.5仿真波形及分析…………24第五章数字积分法圆弧插补模块的实现5.1数字积分法圆弧插补……………………265.1.1插补原理…………265.1.2插补实例…………275.2圆弧插补设计……………275.3圆弧插补的VHDL语言的实现…………..295.4仿真波形及分析…………29第六章结论6.1工作总结…………………326.2展望………………………32致谢………………….33参考文献…………….34附录A………………..35PAGE33第一章绪论1.1引言数控系统的核心技术是运动控制技术,随着机电一体化的深入发展,运动控制技术已经成为推动机电一体化进程的重要环节,是推动新的产业革命的关键技术码。现代高速数控技术对运动控制器的速度和精度要求日益提高,与运用软件实现的控制器相比较,基于FPGA设计的插补控制器具有控制方便、插补速度快、精度高、通用性好、可移植性的特点,并拥有可运用硬件描述语言实现软硬结合等多种优点。为了提高伺服电机的精确度,本文设计了一个基于数字积分法并采用多轴联动技术的插补控制器,该控制器可实现两轴的直线插补和圆弧插补。1.2选题的背景及意义开放化、高速化和高精度化都是现代计算机数控系统最新的发展趋势和研究热点。目前我国在紧密跟随国外发展趋势的同时,对开放式数控的体系结构和实现方法从多个侧面开展了广泛的研究。本文基于数控智能芯片的思想,采用FPGA,电路的二次开发和在线编程能力硬化实现计算机数控系统的插补功能模块。虽然国内也有不少学者已经尝试过这种硬化实现技术,但一般仍是针对数控系统内部某项功能的局部实现和替换,没有站在整个系统的角度,按照一定的标准和规范来设计出标准的数控智能芯片,也就无法做到真正的即插即用。由于软件硬化模块处理速度相当与ASIC芯片,因此可获得很高的处理速度,为我国超高速加工机床的研制提供了一条有效途径。1.3数控系统插补数控就是数字控制(NumberControl,NC)的简称。从广义上讲,是指利用数字化信息实行控制,也就是利用数字控制技术实现自动控制系统,其被控对象可以是各种生产过程。而这里主要从侠义上理解,也就是利用数字化信息对数控机床轨迹和状态实行控制,例如数控车床、数控铣床、数控线切割机床、数控加工中心等。在数控机床加工过程中,刀具只能以折线去逼近将要加工的曲线轮廓,所以它的运动轨迹并不是光滑的曲线。为了实现轮廓控制,就必须实时计算出满足零件形状和进给速度要求的介于起点和终点之间的若干个中间点的坐标,这些可以通过插补算法来获得。1.3.1插补的介绍根据零件图编写出数控加工程序后,通过输入设备将其传送到数控装置内部,然后经过数控系统控制软件的译码和预处理,就开始针对刀具补偿计算后的刀具中心轨迹进行插补运算处理。插补是整个数控系统软件中一个极其重要的功能模块之一,其算法的选择将直接影响到系统的精度、速度及加工能力等。在数控机床加工过程中,刀具只能以折线去逼近将要加工的曲线轮廓,所以它的运动轨迹并不是光滑的曲线。为了实现轮廓控制,就必须实时计算出满足零件形状和进给速度要求的介于起点与终点之间的若干个中间点的坐标,这些可以通过插补算法来获得。所谓插补,就是根据零件轮廓尺寸,结合精度和工艺等方面的要求,在已知刀具中心轨线转接点之间插入若干个中间点的过程。换句话说,就是“数据点的密化过程”,起对应的算法称之为插补算法。中间点的获取是根据相应的算法由数控系统软件或硬件自动完成,并以此来协调控制各坐标轴的运动,从而获得所要求的运动轨迹。常见零件轮廓的形状有直线、圆弧、抛物线、自由曲线等。数控加工程序中一般都要提供直线的起点和终点坐标、圆弧的起点和终点坐标、圆弧走向(顺圆/逆圆)、圆心相对于起点的偏移量或圆弧半径等。另外,还要根据机床参数和工艺要求给出刀具长度、刀具半径和主轴转速、进给速度等。具体来说,插补的任务就是根据进给速度的要求,计算出每一段零件轮廓起点与终点之间所插入中间点的坐标值。但是为了避免坐标值计算过程中可能遇到的三角函数、乘、除以及开方等运算,一般都采用迭代算法,这样也为插补的实时处理创造了有利条件。1.3.2插补方法的分类随着相关学科特别是计算机领域的迅速发展,插补算法也在不断地完善和更新。由于插补的速度直接影响到数控系统的速度,而插补的精度又直接影响整个数控系统的精度,因此,人们一直在努力探求一直计算快并且精度又高的插补方法。但不幸的是,插补速度与插补精度之间是互相制约、互相矛盾的,这是必须进行折中的选择。目前为止,已涌现出了大量的插补算法,现将它们归纳为如下两大类:(一)脉冲增量插补算法脉冲增量插补(又称行程标量插补)算法是通过向各个运动轴分配脉冲,控制机床坐标轴相互协调运动,从而加工出一定轮廓形状的算法。这类插补算法的特点是每次插补的结果仅产生一个单位的行程增量,以单位脉冲的形式输出给步进电动机。因此,该类插补被称为脉冲增量插补。每个单位脉冲对应的坐标轴位移量,称之为脉冲当量,一般用BLU表示。脉冲当量是脉冲分配的基本单位,对应于内部数据处理的一个二进制位,它决定了数控机床的加工精度。对于普通数控机床,一般去BLU=0.01mm,比较精密的数控机床可取BLU=0.005mm、0.0025mm、0.001mm等。脉冲增量插补算法比较简单,通常仅需几次加法和位移操作就可完成插补运算。比较容易用硬件实现,并且处理速度很快。当然,也可以用软件来实现。属于这类插补的具体算法有:数字脉冲乘法器法、逐点比较法、最小偏差法、数字积分法、比较积分法、目标点跟踪法、单步追踪法等。早期常用的脉冲增量式插补算法有逐点比较法、单步跟踪法、DDA法等。80年代后期插补算法有改进逐点比较法、直接函数法、最小偏差法等,使插补精度提高到半个脉冲当量,但执行速度不很理想,在插补精度和运动速度均高的CNC系统中应用不广。近年来的插补算法有改进的最小偏差法,映射法。兼有插补精度高和插补速度快的特点。(二)数据采样插补算法数据采样插补(又称时间标量插补)算法是根据数控加工程序编写的进给速度,先将零件轮廓曲线按插补周期分割为一系列首位相连的微小直线段,然后输出这些微小直线段对应的位置增量数据,用以控制伺服系统实现坐标轴进给。与脉冲增量插补算法相比,数据采样插补算法不再是单个脉冲,而是位置增量的数字量。这类插补算法适用于以直线或交流伺服电动机作为执行元件的闭环或半闭环数控系统。在数据采样插补的数控系统中,每调用一次插补程序,就计算出本次插补周期内各坐标轴的位置增量,据此求得各坐标轴相应的位置,并与采样所获得的实际位置(反馈值)进行比较,从而获得位置跟踪误差。伺服位置控制软件则根据当前的位置误差计算出进给坐标轴的速度,随后输出至驱动装置,通过执行机构带动机床移动部件朝着减小误差的方向移动,以保证整个系统的加工精度。数控系统是一个多任务控制装置,它不仅有插补运算任务。而且还应完成数控加工程序编制、存储、收集运行状态数据、监视机床等其他数控功能。因此,要求插补运算仅占用插补周期的部分时间。当CNC系统选用数据采样插补法算法时,特别是当插补频率较低,大约在50~125Hz时,插补周期约为8~20ms,一般要求插补程序占用的时间不大于计算机在一个插补周期工作机时的30%~40%,一边在余下的时间内,计算机可以去做其他工作。在这种插补频率下,数控系统可达到的最大轨迹速度可达10m/min以上,也就是说数据采样插补程序的运行时间也不再是限制加工速度的主要因素。加工速度的上限将取决于圆弧轮廓插补过程中弦弧误差以及伺服系统的动态响应特性。1.3.3插补技术的发展数控技术的发展与计算机领域的发展是息息相关的,特别是20世纪80年代以后微型计算机的出现,给数控技术注入了新的活力,基于微型计算机的数控系统已成为现在数控系统的主流。为了进一步提高数控系统性能,克服其在速度和精度之间的矛盾,人们提出了如下一些切实可行的方案来加以弥补。(一)采用软硬件相配合的两级插补方案在这种数控系统中,为了减轻数控装置的插补负担,将整个插补任务分成两步完成,即先用插补软件将加工零件的轮廓段插补周期(10~20ms)分割成若刚微笑之线段这个过程称为粗插补。随后利用附加的硬件插补器对粗插补输出的微直线段做进一步的插补,形成一簇单位脉冲输出,这个过程称为精插补。大官人,精插补也可以利用软件来实现粗插补将完成插补任务中的绝大部分计算工作量,而占用的时间却比用一级软件插补方案少得多。这样可大大缓和实时插补与多任务控制之间的矛盾。例如FANUC公司生产的SYSTEN-5数控系统就是采用这种方案实现的。(二)采用多个CPU的分布式处理方案首先将数控系统的全部功能划分为几个子功能模块,每个子功能模块配置一个独立的CPU来完成其相应功能,然后通过系统软件来协调各个CPU之间的工作。美国麦克唐纳·道格拉斯公司的ActrionⅢ型数控系统就是一个典型的代表,它采用四个微处理器分别实现输入/输出、轮廓插补及进给速度控制功能、坐标轴私服功能、数控加工程序编程和CRT显示功能。这种系统具有较高的性能/价格比,代表着数控技术发展的一个方向。(三)采用但太高性能微型计算机方案采用高性能的微型计算机来完成整个数控系统的软件功能。目前32位和64位的微型计算机技术已经成熟,其处理速度可达到2GHz以上,综合性能已经超过原来的小型机。可见,将它们应用于数控系统中在合适不过了,并且已经有这种系统上市。1.4本课题的主要工作1.熟悉开发工具、VHDL等2.方案设计3.控制芯片读写逻辑实现与仿真4.数字积分法直线插补实现与仿真5.数字积分法圆弧插补实现与仿真第二章插补芯片设计完成插补运算的装置或程序称为插补器,分为硬件插补器、软件插补器和软硬件结合插补器。插补器是计算机数控系统的一个基本单元,用来完成运动轨迹的拟合。由于计算机技术的发展,目前数控系统所使用的插补器多为软件插补器。尽管软件插补有很多优点,但由于其插补运算是串行的,因而运算速度较低,特别是对于一些高精度、高速度的多轴数控系统,往往不能满组需求。而硬件插补则可以实现多轴插补的并行运算,因而具有较高的插补速度。应用现场可编程逻辑门阵列可以弥补硬件插补器结构复杂、灵活性差的缺点。本文利用FPGA可以弥补硬件插补器的不足,是执行速度提高,且可与运动控制部分很好的集成,制成运动控制器,实现高速运动控制。2.1芯片的总体设计根据插补的定义及目的,我们所要设计的芯片应具备接收外部传送的数据、指令,完成直线和圆弧各象限的插补功能。该控制器的核心部分是DDA插补模块,整个插补模块可分成直线插补模块和圆弧插补模块两部分。每个插补模块内都由数据缓存器、插补积分器和位置计数器3个部分组成。插补控制器具备直线插补及圆弧插补的能力,2种插补均采用数字积分法实现。数字积分法(DDA)具有逻辑能力强、可实现多轴联动控制,且输出脉冲均匀的特点。如图1所示,插补控制器接收到外部处理器的控制信号和数据,经过译码及配置寄存器模块的译码和配置后,根据需要选择进行直线插补或圆弧插补,输出指脉冲和方向信号。脉冲用于通过伺服电机驱动控制伺服电机的转动,方向信号则控制伺服电机的转动方向。读写逻辑控制模块(LD)读写逻辑控制模块(LD)DDA插补器直线插补模块圆弧插补模块数据缓存器插补积分器位置计数器数据缓存器插补积分器位置计数器图1根据上述对芯片功能的概述,把芯片分为三个模块:读写逻辑控制模块(简称LD模块)、DDA直线插补模块、DDA圆弧插补模块。下面我们就要一一解决这三个模块的内容。2.2芯片开发工具MAXplus是MultipleArrayMatrixandProgrammableLogicUserSystem缩写。它提供的灵活性和高效性是无可比拟的。MAXplusⅡ开发系统有许多特点:(1)开放的界面(2)与结构无关(3)多平台运行(4)完全集成化(5)丰富的设计库(6)模块化工具(7)支持多种硬件描述语言MAXplusⅡ是一款非常成功的EDA设计软件,在全球拥有广泛的用户群。但随着大型FPGA/CPLD设计的迅速发展,MAXplusⅡ软件在功能上逐渐显现出许多不足的地方。QuartusⅡ作为Altera公司近年推出的一款成功的综合EDA设计软件,它的强大功能使开发者能够缩短产品设计周期、减少上市时间,而且支持最新的MAXⅡ、StratixⅡ、Stratix,Cyclone、APEX20KE、APEXⅡ、ACEX、Excalibur、FLEX10KE、FLEX10K、FLEX10KA、FLEX6000、MAX7000S、MAX7000B、MAX7000AE和MAX3000A器件,是现今使用最广的Altera器件软件开发平台。2.3VHDL硬件描述语言硬件描述语言最早出现于20世纪60年代,至今在工业生产和科学研究中得以应用的HDL有百余种之多。众多软件公司开发研制的具有自己特色的电路硬件描述语言(HardwareDescriptionLanguage,HDL),存在着很大的差异,工程师一旦选用某种硬件描述语言作为输入工具,就被束缚在这个硬件设计环境之中。因此,硬件设计工程师需要一种强大的、标准化的硬件描述语言,作为可相互交流的设计环境。迄今只有两种HDL被IEEE列为标准,被众多EDA工具所支持。它们是VHDL(IEEE1076)和VerilogHDL(IEEE1364)。VHDL语言是美国国防部在20世纪80年代初为实现超高速集成电路计划(veryhighspeedintegratedcircuit,VHDL)而提出的一种HDL,其目标之一是为下一代集成电路的生产,实现阶段性的工艺极限以及完成10万门级以上的设计,建立一项新的描述方法。1981年提出了一种新的HDL,称之为VHSICHardwareDescriptionLanguage,简称为VHDL,这种语言的成就有两个方面:1.描述复杂的数字电路系统,2.成为国际的硬件描述语言标准。VHDL语言的优点主要有:1.用于设计复杂的、多层次的设计。支持设计库和设计的重复使用2.与硬件独立,一个设计可用于不同的硬件结构,而且设计时不必了解过多的硬件细节。3.有丰富的软件支持VHDL的综合和仿真,从而能在设计阶段就能发现设计中的Bug,缩短设计时间,降低成本。4.更方便地向ASIC过渡5.VHDL有良好的可读性,容易理解。VHDL语言与计算机语言的区别主要体现在:1.运行的基础不同计算机语言是在CPU+RAM构建的平台上运行。VHDL设计的结果是由具体的逻辑、触发器组成的数字电路。2.执行方式不同计算机语言基本上以串行的方式执行。VHDL在总体上是以并行方式工作。3.验证方式不同计算机语言主要关注于变量值的变化。VHDL要实现严格的时序逻辑关系。2.4FPGA的设计流程FPGA设计可以分为设计输入、综合、功能仿真(前仿真)、实现、时序仿真、配置下载等六个步骤。1设计输入设计输入包括使用硬件描述语言HDL、状态图与原理图输入三种方式。HDL设计方法是现在设计大规模数字集成电路的良好形式。HDL语言描述在状态机、控制逻辑、总线功能方面较强,使其描述的电路能在特定综合器作用下以具体硬件单元很好的实现:而原理图的输入在顶层设计、数据通路逻辑和手工最优化电路等方面,具有图形化强、单元节俭、功能明确等优点。以HDL语言为主,原理图为辅,进行混合设计是常用的方式来发挥二者各自特色。在进行混合设计时,设计者应该严格按照自上而下或自下而上的结构化设计方法。2设计综合综合,就是按照给定的电路实现的功能和实现这个电路的约束条件,比如速度、功耗、成本及电路类型等,通过计算机对此进行优化处理,得到一个能满足上述要求的最优的电路设计方案。综合包括分析、综合和优化这三个步骤。用HDL描述作为例,分析是利用标准的HDL语法规则对HDL源文件进行分析并纠正语法错误;综合是用选定的FPGA结构和器件作为目标,对HDL和FPGA网表的文件进行逻辑综合;优化则是根据用户的设计约束对速度和面积等进行逻辑优化,产生一个优化过的FPGA网表文件,以供FPGA布局和布线工具使用。综合与优化可分为两步独立进行,在两步之间进行约束指定,例如时钟的确定、通路与端口的延时、模块的算子共享和寄存器的扇出等。如果设计模型较大,可以采用层次化方式进行综合,先综合下级模块,然后综合上级模块。在进行上级模块综合后设置下级模块为Don’tTouch,使设计与综合过程合理和规范化。综合后形成的网表可以导入FPGA设计厂商提供的可支持第三方设计输入的专业软件中,就可进行后续FPGA芯片的实现。综合完成后可得到报告文件,输出综合状态与综合结果,如资源使用情况、综合以后层次信息等。3仿真验证从广义上讲,设计验证包括功能与时序仿真和电路验证。仿真是指使用设计软件包对已实现的设计进行完整测试,模拟实际物理环境下的工作情况。前仿真是指仅对逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性,如延时特性:而在布局布线后,提取有关的器件延迟、连线延时等时序参数,而在此基础上进行的时序仿真称为后仿真,它已是接近真实器件运行的仿真。4设计实现实现是利用FPGA厂商的实现工具把综合后逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能连接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)。通常可分为如下五个步骤。1).转换:将多个设计文件进行转换并合并到一个设计库文件中。2).映射:将网表中逻辑门映射成物理元素,即把逻辑设计分割到构成可编程逻辑阵列内的可配置逻辑块与输入输出块及其它资源中的过程。3).布局与布线:布局是指从映射取出定义的逻辑和输入输出块,并把它们分配到FPGA内部的物理位置,通常基于某种先进的算法来完成布线是指利用自动布线软件使用布线资源选择路径完成所有的逻辑连接。可以使用约束条件操作布线软件,完成设计规定的性能要求。在布局布线过程中,可同时提取时序信息形成报告。4).时序提取:产生反标文件,供给后续的时序仿真使用。5).配置:产生FPGA配置时的需要的位流文件。5时序分析在设计实现过程中,在映射后需要对一个设计的实际功能块的延时和估计的布线延时进行时序分析,而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行静态时序分析。静态时序分析允许设计者详尽地分析所有关键路径并得出一个有次序的报告,而目‘报告中含有其’已调试信息。静态时序分析器可以用来检杳设计的逻辑和时序,以便计算各通路性能,识别可靠的路径,检测建立和保持时间的配合。6下载验证下载是在功能仿真与时序仿真正确的前提下,将综合后形成的位流下载到具体的FPGA芯片中,也叫芯片配置。因FPGA大多支持IEEE的JTAG标准,所以使用芯片上的JTAG口是常用下载方式。将位流文件下载到FPGA器件内部后进行实际器件的物理测试即为电路验证,当得到正确的验证结果后就证明了设计的正确性。电路验证对ASIC最后的投片生产具有较大意义。第三章读写逻辑控制模块3.1读写逻辑控制模块的功能由上一章节对LD模块的介绍知道,其功能是将单片机送来的数据写入芯片当中,并对待插补的直线或圆弧进行象限处理。由于微处理器的位数有8位、16位、32位不等,在进行芯片设计时,考虑不同处理器之间的通信关系,若以8位数据作为输入,则其既可向16位数据转换,也可向32位数据转换。故,从兼容性方面考虑,数据输入部分采用8位即可。而芯片内部,采用16位已经足够。3.1.1数据转换根据上面文章对LD模块功能的介绍,我们知道输入给LD模块的是一个8位的脉冲信号,LD模块要把这个8位的脉冲信号转换成我们所需要的16位脉冲信号。下面我们介绍一下LD模块中数据转换的流程:开始开始写数据写Xe的高8位与低8位相与送给Xe写Ye的高8位与低8位相与送给Ye写Xs的高8位与低8位相与送给Xs写Ys的高8位与低8位相与送给Ys结束WR下降沿,CS=0TMP=000TMP=001TMP=010TMP=011TMP=100TMP=101TMP=110TMP=111图二数据转换流程图下面是数据转换的VHDL语言描述:P1:PROCESS(WR,A)VARIABLELINE:STD_LOGIC;VariableHDA:STD_LOGIC_VECTOR(7DOWNTO0);VariableTMP:STD_LOGIC_VECTOR(2DOWNTO0):="000";BEGINifWR'EVENTANDWR='0'thenifA='0'THENTMP:="000";elsifCS='0'thenifTMP="000"thenHDA:=D;TMP:=TMP+1;elsifTMP="001"thenXXE<=CONV_INTEGER(HDA&D);TMP:=TMP+1;elsifTMP="010"thenHDA:=D;TMP:=TMP+1;elsifTMP="011"thenYYE<=CONV_INTEGER(HDA&D);TMP:=TMP+1;LINE:='1';ELSifTMP="100"thenHDA:=D;TMP:=TMP+1;elsifTMP="101"thenXXS<=CONV_INTEGER(HDA&D);TMP:=TMP+1;elsifTMP="110"thenHDA:=D;TMP:=TMP+1;elsifTMP="111"thenYYS<=CONV_INTEGER(HDA&D);TMP:="000";LINE:='0';endif;endif;endif;LL<=LINE;ENDPROCESSP1;在VHDL程序中,P1:PROCESS(WR)为进程语句,WR为敏感变信号,敏感信号有事件发生时,进程中的顺序语句都会按照他们出现的顺序执行。WR'EVENTANDWR='0'表示为WR下降沿,'EVENT是信号预定义属性,表示有事件发生,WR'EVENTANDWR='0'为WR发生变化且WR=O,从而实现WR的下降沿,WR为下降沿有效。程序中TMP为标志位,HAD是一个中间变量,用来存放脉冲信号的高8位。其中D是输入的一个8位信号。然后把HAD和D并起来,就得到了我们需要的16位信号,从而实现了数据的转换。3.1.2象限处理DDA法在插补不同象限的直线和圆弧时,其算法也有所不同,如表3.1。在程序设计当中,以XXDIR和YYDIR分别作为X轴和Y轴的进给方向,为“1”表示向负方向进给,为“0”则表示向正方向进给。而进给方向则通过起、终点的坐标值及其大小比较来确定。表3.1不同象限脉冲分配修正直线或圆弧所在的想象X轴脉冲走向Y轴脉冲走向第一象限+X+Y第二象限-X+Y第三象限-X-Y第四象限+X-Y为避免程序设计繁冗,及因坐标值的正负而出现程序错误等现象的出现,对于坐标值为负的点,将其坐标取绝对值后,在确定其进给方向,这样,经过绝对值修正后,就将四象限的插补过程均转化为第一象限的插补,简化了程序及插补算法。不同象限进给方向的程序设计:IF(LL='0')THEN--直线类型IFXXE<0THENXXDIR:='1';--X轴正方向进给TXE:=-XXE;--取绝对值ELSEXXDIR:='0';--X轴负方向进给ENDIF;IFYYE<0THENYYDIR:='1';--Y轴正方向进给TYE:=-YYE;--取绝对值ELSEYYDIR:='0';--Y轴负方向进给ENDIF;ELSEIFXXE>XXSTHENXXDIR:='0';ELSEXXDIR:='1';ENDIF;IFYYE>YYSTHENYYDIR:='0';ELSEYYDIR:='1';ENDIF;IFXXE<0THEN--对圆弧的起点和终点取绝对值:TXE:=-XXE;--对终点X轴坐标取绝对值ELSETXE:=XXE;ENDIF;IFXXS<0THENTXS:=-XXS;--对起点的X轴坐标取绝对值ELSETXS:=XXS;ENDIF;IFYYE<0THENTYE:=-YYE;--对终点的Y轴坐标取绝对值ELSETYE:=YYE;ENDIF;IFYYS<0THENTYS:=-YYS;--对起点的Y轴坐标取绝对值ELSETYS:=YYS;ENDIF;ENDIF;3.2程序仿真及波形分析首先通过MAX+plusⅡ在File菜单中选择“New…”选项,然后选择建立一个TxtEditorFile,如图3.1图3.1然后输入数据输入缓存模块的VHDL的程序,完成设计程序输入,并用与ENTITY实体名一致的文件名以vhd格式保存,然后在MAX+plusⅡ菜单中选择compiler进行编译。如果编译成功这只能说明设计符合一定的语法规范,并不能保证满足设计者的功能要求。仿真的目的是验证电路的行为是否和设计目的保持一致。仿真是通过MAX+plusⅡ在File菜单中选择“New…”选项,然后选择“WaveformEditorFile”,从其右边的下拉列表框中选择.scf文件扩展名,单击“OK”按钮即可创建一个新的仿真文件。从File菜单中选择“EndTime”,设置欲仿真的时间长度。选择Node菜单中的“EnterNodesfromSNF”菜单项,选中Type框中的“input”和“output”,单击“List”,列出所有的输入输出项。选择向右箭头,将所有输入输出信号加入仿真窗口。在编辑波形窗口,根据需要来编辑波形,对信号进行赋值。WR设置时钟周期为100ns的信号,CS置“1”,A置“1”保存后选择“Simulator”,单击“Start”开始仿真,在WaveformEditor窗口里进行波形仿真,得到如图3.2所示波形。图3.2LD模块仿真波形图由图3.2可以看出,片选信号CS一直为低电平有效,在WR的第一个下降沿到来时,写入的值D为‘01’,此时计数次数变量TMP的值为‘00’,表示第一次计数,并将高8位值赋给中间变量HDA,TMP加1;当WR下降沿第二次来到时,写入的值为‘04’,TMP=01为第二次写数据,写低8位,通过并置运算符将高低8位相并,完成16位频率的计数值的写入,即XE〈=0103;YE值的写入同理。验证了程序的正确性。3.3设计元件在“file”里选择“CreactDefaultSymbol”,即生成设计元件,如图3.3所示:图3.3数据缓存模块元件第四章数字积分法直线插补模块的实现4.1数字积分法基本原理数字积分法是利用数字积分的方法,计算刀具沿各坐标轴的位移,使得刀具沿着所加工的轮廓曲线运动。数字积分法的基本原理就是,使用一系列的小矩形面积之和来近似轮廓曲线函数积分的整个面积。利用数字积分原理构成的插补装置称为数字积分器,又称数字微分处理器(DigitalDifferentialAnalyer),简称DDA。数字积分器插补的最大优点在于容易实现多坐标轴的联动插补,能够描述空间直线及平面各种函数曲线等。因此,数字积分法插补在轮廓数控系统中得到广泛的应用。图4.1函数积分的几何描述从几何图形来看,积分运算就是求出函数Y=f(t)曲线与横轴所围成的面积。如图1所示,从t0到tn时刻,函数Y=f(t)的积分值可表述为(4-1)如果进一步将t[t0,tn]的时间区划分为若刚等间隔△t的小区间,则当△t足够小时,函数Y的积分可用下式近似表示(4-2)在几何上就是用一系列的小矩形面积之和来近似表示函数f(t)以下的积分面积。进一步如果在式(4-2)中,取△t为基本单位“1”,则上式可演化成数字积分器算式(4-3)由此可见,通过假设△t=“1”,就可以将积分运算转化为式(4-3)所示的求纵坐标值的累加运算。若再假设累加器容量为一个单位面积值,则在累加过程中超过一个单位面积时立即产生一个溢出脉冲。这样,累加过程产生的溢出脉冲总数就等于所求的总面积,即所求的积分值。下面就以直线和圆弧为例,详细介绍数字积分法在轮廓插补中的具体应用。4.2数字积分法直线插补4.2.1插补原理设简要加工的直线为XOY平面内第Ⅰ象限直线,如图4.2所示,直线的起点在坐标原点,终点为E(Xe,Ye)。同样,假设坐标值均为以脉冲当量为单位的整数。图4.2DDA直线插补示意图若此时刀具在两坐标轴上的进给速度分量分别为Vx、Vy,则刀具在X轴、Y轴方向上的位移增量分别为△X=Vx△t(4-4)△Y=Vy△t(4-4)由图2的集合关系可以看出(4-5)现将式(2-5)中的Vx、Vy分别带入式(4-4)中,可得△X=KXe△t(4-6)△Y=KYe△t(4-6)可见,刀具由原点O走向终点E的过程,可以看作是每经过一个单位时间间隔△t,就分别以增量[KXe]、[KYe]同时在两个坐标轴累加的结果。也可以这样认为,数字积分法插补实际上就是利用速度分量,进行数字积分来确定刀具在各坐标轴上位置的过程,即(4-7)(4-7)当取△ti=“1”(一个单位时间间隔),则式(4-7)将演变为(4-8)(4-8)设经过n次累加后,刀具正好到达终点E(Xe,Ye),即要求式(4-8)中常量满足下式nK=1或n=1/K(4-9)从上式可以看出,比例常数K和累加次数n之间的关系是互为倒数,即两者相互制约,不能独立自由选择。也就是说,只要选定了其中一个,则另一个也就随之确定了。由于式中n是累加次数,必须取整数,这样K就必须取小数。为了保证每次分配给坐标轴的进给脉冲不超过1个单位(一般指1个脉冲当量),则△X=KXe<1(4-10)△Y=KYe<1(4-10)上式中Xe、Ye的最大允许值受系统中相应寄存器容量的限制。现假设寄存器为N位,则其容量为2N,对应存储的最大允许数字量为(2N-1)。将其代人式(4-9)中Xe、Ye,则可得到(4-11)现不妨设显然它满足式(4-10)和式(4-11)的约束条件,再将K值代入式(4-9),可得累加次数为n=1/K=(4-12)也就是说,经过n=2N次累加后,动点(刀具)将正好到达终点E。事实上,如果将n、K值代入式(4-7),则动点坐标为(4-13)(4-13)根据签名的分析,在进行直线插补时,先开辟两个被积函数寄存器JVX、JVY分别存放终点坐标值Xe、Ye,还有两个余数寄存器JRX和JRY。然后,当脉冲源每发送一个控制脉冲信号△t,X轴积分器和Y轴积分器各累加一次。当累加结果超出余数寄存器容量(2N-1)时,就产生一个溢出脉冲△X(或△Y)。这样,经过2N次累加后,每个坐标轴溢出脉冲的总数就等于该州的被积函数值(Xe和Ye),从而控制刀具到达了终点E。与逐点比较法一样,DDA法也可以使用硬件逻辑器件来实现。下面主要介绍相应的硬实现方法。DDA直线插补过程中使用的累加表达式为累加值=被积函数寄存器+余数寄存器一旦累加结构超过了寄存器的容量时,就产生溢出,发出一个脉冲信号,并控制相应的坐标轴进给一步。在软件实现过程中,也可直观地认为余数寄存器为小数部分寄存器,与进位位CY之间存在着一个小数点。具体表示为进位位CY(1位)进位位CY(1位)余数寄存器(N位).小数点这样,当小数部分的累加器一旦加满“1”后,立即向整数部分进位。事实上,把余数寄存器当作小数部分看待后,就相当于将其缩小了2N倍,也就是把小数点从最右端向左移动了N位,即每次累加值为:(Xe/2N)或(Ye/2N),这正好与前面的推导过程相符合。4.2.2插补实例插补第一象限直线OE,起点为O(0,0),终点为E(5,3)。取被积函数寄存器分别为JVX、JVY,余数寄存器分别为JRX、JRY,终点计数器为JE,均为三位二进制寄存器。图4.3DDA直线插补实例表4.1DDA直线插补运算过程累加次数NX积分器Y积分器终点判别J∑JRX=JRX+JVX+△XJRY=JRY+JVY+△Y开始000081JRX=0+5=50JRY=0+3=3072JRX=5+5=8+21JRY=3+3=6063JRX=2+5=70JRY=6+3=8+1154JRX=7+5=8+41JRY=1+3=4045JRX=4+5=8+11JRY=4+3=7036JRX=1+5=60JRY=7+3=8+2127JRX=6+5=8+31JRY=2+3=5018JRX=3+5=8+01JRY=5+3=8+0104.3直线插补设计设直线段的起点坐标和终点坐标分别为(Xs,Ys)和(Xe,Ye),JVX、JVY为两个被积函数器,JRX、JRY为两个余数寄存器。根据图所示的直线插补流程图,当余数寄存器值满溢出时,就相应的产生一个X轴或者Y轴方向上的进给脉冲,当进给信号到来时,相应的方向上会产生一次进给运动,进给次数寄存器就相应的减“1”,按照这个过程直至进给次数寄存器的值为零,即完成插补运动。其流程图如图4.4所示:开始开始初始化:J初始化:JVX←Xe,JVY←Ye,JRX←0,JRY←0,J=2NJJRX←JRX+JVX有溢出?N有溢出?Y(接上一页)进给一步(进给一步(△X)JJRY←JRY+JVY有溢出?N有溢出?Y进给一步(+进给一步(+△Y)J=0?J=0?NY结束结束图4.4直线插补流程4.4直线插补的VHDL语言实现见附录A4.5仿真波形及分析仿真首先通过MAX+plusⅡ建立一个TxtEditorFile,如图4.5所示图4.5然后输入直线插补的VHDL的程序,整个设计过程中,完成设计输入以及成功编译综合,这只能说明设计符合一定的语法规范,并不能保证满足设计者的功能要求。仿真的目的是验证电路的行为是否和设想中的一致。仿真是通过MAX+plusⅡ在File菜单中选择“New…”选项,然后选择“WaveformEditorFile”,从其右边的下拉列表框中选择scf文件扩展名,单击“OK”按钮即可创建一个新的仿真文件。从File菜单中选择“EndTime”,设置欲仿真的时间长度。选择Node菜单中的“EnterNodesfromSNF”菜单项,选中Type框中的“input”和“output”,单击“List”,列出所有的输入输出项,选择向右箭头,将所有输入输出信号加入仿真窗口。在编辑波形窗口,根据需要来编辑波形,对信号进行赋值。保存后选择“Simulator”,单击“Start”开始仿真,得到波形图如同图4.6所示。在“file”里选择“CreactDefaultSymbol”,即生成设计元件,如图4.7所示:图4.6数字积分法直线插补的仿真图图4.7数字积分法直线插补的元件图由上面的仿真图上看出,当输入的XE(X轴终点坐标)为H03,YE(Y轴终点坐标)为H05,输出的X轴方向的进给脉冲为3个,Y轴方向的进给脉冲为5个,插补结束。从而验证了程序的正确。第五章数字积分法圆弧插补模块的实现5.1数字积分法圆弧插补5.1.1插补原理现以第Ⅰ象限逆圆NR1为例,说明DDA法圆弧插补的基本原理。设刀具沿圆弧SE进行切削,圆弧半径为R,刀具切削速度为V,在两坐标轴上的速度分量为VX和VY,动点坐标为N(Xi,Yi),则根据图中相似三角形关系,可得(5-1)则有由于半径R为常数,若切向速度V为匀速,则K为常数,那么,动点在两坐标轴上的速度分量将随其坐标值的变化而变化。当给定一个时间增量△t,动点在X、Y坐标轴上位移增量分别为(5-2)(5-2)由于第Ⅰ象限逆圆对应X轴坐标值逐渐减小,所以,上式中△Xi表达式取负号,也就是说VX、VY均取绝对值,不带符号运算。从而获得第Ⅰ象限逆圆DDA法插补公式如下(5-3)(5-3)与直线插补相比,DDA圆弧插补具有两个方面的不同:第一,被积函数寄存器与坐标轴的关联关系不同。在DDA直线插补中,JVX与X坐标轴相关联,JVY与Y坐标轴相关联。但在圆弧插补中,JVX与Y坐标轴相关联,JVY与X坐标轴相关联。第二,被积函数寄存器存放的数据形式不相同。在DDA直线插补中,被积函数寄存器JVX、JVY存放的是终点坐标,即一个不受插补进程变化的常量。而在圆弧插补过程中,被积函数寄存器JVX、JVY存放着动点坐标,即一个随着插补过程不带变化的变量。例如图4所示的NR1插补过程中,开始时被积函数寄存器JVX、JVY的初值分别为起点坐标YS和XS。然后,每当Y轴产生一个溢出脉冲(+△Yi)时,JVX就作“+1”修正;反之,每当X轴产生一个溢出脉冲(-△Xi),JVY就作“-1”修正。至于何时“+1”或“-1”修正,取决于动点N所在的象限以及圆弧走向。根据上述基本原理,给出NR1的DDA法圆弧插补计算流程如图5.1所示。其中JVX,JVY是被积函数寄存器,JRX,JRY是余数寄存器,JX、JY是终点计数器,在这里要说明的是,DDA圆弧插补的终点判别与直线插补有所不同,需要设置两个终点计数器JX=|Xe-Xs|和JY=|Ye-Ys|,分别对X轴和Y轴进行终点监控。每当X轴或Y轴产生一个溢出脉冲,相应的终点计数器就作减“1”修正,直到为零,表明该坐标轴已到终点,并停止其坐标轴的累加运算。只有当两个坐标轴均已到达终点,圆弧插补才结束。5.1.2插补实例设有第一象限逆圆弧SE,如图5.2所示起点为S(5,0),终点坐标为E(0,5)且寄存器位数为N=3。图5.1DDA圆弧插补实例图插补开始时,被积函数寄存器初值为JVX=Ys=0,JVY=Xs=5,终点判别寄存器JX=︱Xe-Xs︱=5,JY=︱Ye-Ys︱=5。5.2圆弧插补设计该圆弧插补运算过程如表5.1所示,插补轨迹如图5.1所示。流程图如5.2所示。开始开始初始化:JVX初始化:JVX←︱Ys︱,JVY←︱Xs︱JRX=JRY←0,JX=︱Xe-Xs︱,JY=︱Ye-Ys︱JX=0YJX=0有益出?有益出?N进给一步(进给一步(—)YN且N且有溢出?N有溢出?Y进给一步(+)Y进给一步(+)结束结束进给了()N进给了()Y进给了()N进给了()Y图5.2圆弧插补流程图与直线插补相比,DDA圆弧插补具有两个方面的不同:第一,被积函数寄存器与坐标轴的关联关系不同。在DDA直线插补中,与X坐标轴相关联,与Y坐标轴相关联。但在圆弧插补中则是相反的。第二,被积函数寄存器存放的数据形式不相同。在DDA直线插补中,被积函数寄存器、存放的都是终点坐标,即一个不受插补进程变化的常量。而在圆弧插补过程中,被积函数寄存器存放着动点坐标,即一个随着插补过程不断变化的变量。表5.1DDA圆弧插补运算过程累加次数nX积分器Y积分器JVXJRX=JRX+JVX+△XJ∑XJVYJRY=JRY+JVY+△YJ∑Y开始000550051000555052
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省莆田市某校2024-2025学年高二上学期期末考试政治试题(原卷版+解析版)
- 2025年湖北省中考思想品德与法治模拟试卷(附答案)
- 2025年党章党纪党史党建知识竞赛多项选择题库及答案(共190道题)
- 中学精神文明建设工作计划
- 宫腔镜下输卵管插管通液治疗不孕不育效果探讨
- 节日教职工福利(花生油)项目 投标方案(技术方案)
- 乡村农田管理与开发协议
- 音乐制作与发行全流程指南
- 船舶导航与航行技术指南
- 环保设备可行性研究报告
- 安全环保职业健康法律法规清单2024年
- 监理平行检查记录表格模板
- 幼儿园小班语言《娃娃开门》课件
- DB44∕T 1316-2014 物业服务 设施设备标识管理规范
- 疼痛非药物治疗
- 汕头大学-阮卓丰-答辩通用PPT模板
- 梯笼安装施工方法
- JIS G4304-2021 热轧不锈钢板材、薄板材和带材
- 第8章 塔设备设备的机械设计
- MTK 4G modem 配置
- 平面直角坐标系(打印版)
评论
0/150
提交评论