CN110488764A - 一种基于fpga的雕刻机运动控制器及其雕刻设备和方法 - Google Patents
一种基于fpga的雕刻机运动控制器及其雕刻设备和方法 Download PDFInfo
- Publication number
- CN110488764A CN110488764A CN201910825863.5A CN201910825863A CN110488764A CN 110488764 A CN110488764 A CN 110488764A CN 201910825863 A CN201910825863 A CN 201910825863A CN 110488764 A CN110488764 A CN 110488764A
- Authority
- CN
- China
- Prior art keywords
- cutter
- coordinate
- speed
- unit
- distortion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4142—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by the use of a microprocessor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34013—Servocontroller
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
Abstract
本发明公开了一种基于FPGA的雕刻机运动控制器及其雕刻设备和方法。该控制器包括控制系统和运动系统。控制系统为32位CPU软核。运动系统包括模型建立模块、速度控制模块以及轨迹控制模块。速度控制模块包括分频器、积分器、累加器以及比较器。轨迹控制模块包括偏差判别单元、坐标进给单元、偏差计算单元以及终点判别单元。偏差判别单元判断刀具的实时位置坐标与终点坐标的投影偏差的正负性;坐标进给单元根据正负性驱使刀具进给一步;偏差计算单元计算进给后两个坐标平面上的投影偏差;终点判别单元判断进给总步数是否达到各轴数之和,是则判定到达终点。本发明雕刻启停位置准确,使实际运动轨迹与既定轨迹误差最小,整个计算简单,速度平稳。
Description
技术领域
本发明涉及雕刻技术领域的一种雕刻机运动控制器,尤其涉及一种基于FPGA的雕刻机运动控制器,还涉及该运动控制器的基于FPGA的雕刻设备以及雕刻方法。
背景技术
随着电子通信技术的发展,运动控制技术应用于制造业,带来了产业变革,也改变着人们的日常生活。制造业朝着创新型、智能化的方向发展,离不开运动技术在智能便捷、降低成本、提高效率等方面的不断更新换代。运动控制技术能用脉冲信号实现精确的电机控制,可应用于新兴机械制造领域,相较传统机械制造业更加精细、复杂,精度更高,同时可提升加工效率,解放劳动力。鉴于运动控制技术的自动化特性和减少人工参与的优势,可以将其应用于雕刻等精细制造领域,带来以下优势:减少雕刻中的粉尘对人工呼吸道和肺部的伤害;简化繁琐的人工雕刻,且雕刻精度更高;使批量生产的雕刻产品规格更加一致可靠,提高合格率;扩宽应用领域,改变运动控制系统的参数、刀具的型号或原材料类型等生产要素,就能生产出不同类型的雕刻商品;适用于批量生产,降低成本。
运动控制器是雕刻机的大脑,它的成本、工作方式对雕刻机的性能起着决定性作用。常见的运动控制器多采用ARM和FPGA两芯片协同工作方式,ARM与FPGA协同控制,ARM处理器为主体,搭载FPGA实现插补、加减速等算法功能。这两种芯片配合实现运动控制涉及芯片间通信,使得开发过程更复杂。两芯片的控制模式可以支持数据量小速度低的场景,一旦面临大量数据高速处理需求场景,两芯片间的同步通讯面临时延问题。因此,现有的雕刻机运动控制器存在芯片间通信协同要求高而导致运算速度受限、时延长,而且控制精度不高且产品体积大、成本高的问题。
发明内容
为解决现有的雕刻机运动控制器运算速度受限,控制精度不高的技术问题,本发明提供一种基于FPGA的雕刻机运动控制器及其雕刻设备和方法。
本发明采用以下技术方案实现:一种基于FPGA的雕刻机运动控制器,其包括控制系统以及接收所述控制系统发送的控制信息并根据所述控制信息控制雕刻机的刀具的轨迹和速度的运动系统;所述雕刻机包括用于调节所述刀具速度和轨迹的雕刻电机一、雕刻电机二、雕刻电机三,所述控制信息包括所述刀具的目标位置以及目标速度;所述控制系统采用MIPS架构专门针对运动控制场景设计的32位软核,所述运动系统包括:
模型建立模块,其用于建立所述刀具的三维坐标系,确定所述刀具在所述三维坐标系中的实时位置坐标,并根据所述目标位置,确定所述刀具在所述三维坐标系中的终点位置坐标;
速度控制模块,其用于根据所述控制信息,通过梯形加减速以调节所述刀具的雕刻速度;所述速度控制模块包括分频器、积分器、累加器以及比较器;所述分频器用于将所述控制系统产生的系统时钟信号分频产生采样脉冲;所述采样脉冲在所述积分器与所述累加器中与所述刀具的一个预设加速度相乘并加上所述刀具的初始速度,以生成实时速度;所述比较器用于将所述实时速度与所述目标速度比较;在所述实时速度达到所述目标速度时,所述速度控制模块通过输出进给脉冲驱使所述刀具保持在加减速时控制速度按照一定斜率变化以避免速度突变;以及
轨迹控制模块,其包括偏差判别单元、坐标进给单元、偏差计算单元以及终点判别单元;所述偏差判别单元用于计算所述刀具的实时位置坐标与终点坐标在各个坐标轴上的投影偏差,判断各个轴向上的投影偏差的正负性;所述坐标进给单元用于根据所述投影偏差的正负性,在各个轴向上依次通过所述雕刻电机一、所述雕刻电机二、所述雕刻电机三驱使所述刀具进给一步,以减小所述投影偏差的绝对值;所述偏差计算单元用于在所述刀具进给后,计算进给的方向上的投影偏差;所述终点判别单元用于判断所述刀具在三维方向上进给的总步数是否达到所述终点坐标在三维方向上的各轴数之和,是则判定到达终点。
本发明通过轨迹控制模块对轨迹进行控制,逐点比较并进行三轴直线插补以控制三个雕刻电机,即雕刻电机一、雕刻电机二以及雕刻电机三,不间断纠正刀具与既定轨迹的相对位置,根据比较得到偏离情况,决定下一步哪一个轴前进以保证刀具的实际运动轨迹贴合目标轨迹,使实际运动轨迹与既定轨迹误差最小,并通过速度控制模块对刀具速度进行控制,采用梯形加减速对刀具运行的速度进行控制,而加速和减速过程按照一定的线性规律进行,减小加速度,能使加减速过程中速度过度平稳,雕刻启停位置准确,解决了现有的雕刻机运动控制器运算速度受限,控制精度不高的技术问题,得到了运算速度快,时延短,并且控制精度高的技术效果。
作为上述方案的进一步改进,在所述三维坐标系中,坐标原点为O(0,0,0),所述刀具的实时位置坐标为M(Xi,Yi,Zi),所述终点位置坐标为D(Xd,Yd,Zd);将M点和D点向XOY平面及XOZ平面投影,以计算偏差。
在XOY平面中,所述投影偏差的计算公式为Si,j=XiYd-XdYi,进给一步的偏差公式如下:
其中,Si+1,j为X轴正方向进给一步的偏差公式、Si,j+1为Y轴正方向进给一步的偏差公式;
在XOZ平面中,所述投影偏差的计算公式为Ti,j=XiZd-XdZi:进给一步的偏差公式如下:
其中,Ti+1,j为X轴正方向进给一步的偏差公式、Ti,j+1为Z轴正方向进给一步的偏差公式。
进一步地,所述偏差判别单元用于判断Si,j和Ti,j的正负性;
在Si,j≥0,Ti,j≥0时,所述坐标进给单元通过所述雕刻电机一驱使所述刀具向X轴正方向进给一步,所述偏差计算单元计算XOY平面和XOZ平面的投影偏差,且计算公式为:
在Si,j≤0时,所述坐标进给单元通过所述雕刻电机二驱使所述刀具向Y轴正方向进给一步,所述偏差计算单元计算XOY平面的投影偏差,且计算公式为:
Si,j+1=Si,j+Xd
在Si,j≥0,Ti,j≤0时,所述坐标进给单元通过所述雕刻电机三驱使所述刀具向Z轴正方向进给一步,所述偏差计算单元计算XOZ平面的投影偏差,且计算公式为:
Ti,j+1=Ti,j+Xd。
作为上述方案的进一步改进,所述轨迹控制模块用于将所述刀具的运动轨迹以时间为单位分割成若干相等的时间间隔,并在每个时间间隔所述刀具运动的线段上进行数据点密化,以进行插补;所述轨迹控制模块在X、Y、Z轴的进给脉冲计数不小于所述终点坐标在X、Y、Z轴上坐标之和时,停止插补。
进一步地,所述速度控制模块调节所述刀具的速度公式为:
所述速度控制模块调节所述刀具的位移公式为:
式中,S1为所述刀具在加速阶段的总位移,S2为所述刀具在加速阶段和匀速阶段的总位移;在一个插补周期内,所述刀具的初始速度为vint,所述目标速度为vmax,实时速度为vi;在加速阶段,所述刀具以加速度a线性增加其速度,直至所述实时速度达到所述目标速度;在减速阶段,所述刀具以加速度-a线性降低其速度,直至所述实时速度与所述初始速度相同。
再进一步地,所述控制信息还包括所述刀具的目标距离、加速度以及初始速度;其中,所述目标距离的计算公式为:
式中,S为所述目标距离,T1=T3;
所述速度控制模块根据所述目标距离、所述加速度、所述目标速度以及所述初始速度,计算出所述刀具在加速阶段、匀速阶段以及减速阶段的距离和时间,并控制所述进给脉冲驱使所述刀具在各个阶段按照对应的时间和距离进行前进。
作为上述方案的进一步改进,所述控制系统的架构为MIPS架构,并设置五级流水线模块;所述五级流水线模块包括取指单元、译码单元、执行单元、访存单元以及回访单元;所述取指单元用于根据所述控制系统接收的PC数值,从所述控制系统的指令存储器中读取指令;所述译码单元用于对所述取指单元读取的指令进行译码解析,并确定指令格式信息以及操作数;所述执行单元用于根据所述指令格式信息以及所述操作数,进行算术或逻辑运算;所述访存单元用于访问所述控制系统的数据存储器或将所述数据存储器中的数据发送所述回访单元,且将所述执行单元的运算结果发送至所述数据存储器中;所述回访单元用于访问数据存储器,将获取的数值或运算结果保存在所述控制系统的目标寄存器中。
作为上述方案的进一步改进,所述控制系统用于将外部输入的三维坐标信息经取指、译码、执行、访存以及回访处理生成包含FPGA指令的控制信息;所述运动系统用于先通过所述速度控制模块进行速度控制后,再通过所述轨迹控制模块进行三轴直线插补,最后将产生的进给脉冲输出至所述雕刻电机一、二、三。
本发明还提供了一种基于FPGA的雕刻设备,其包括雕刻机以及控制器;所述雕刻机包括刀具、用于调节所述刀具的速度和轨迹的三个不同方向的雕刻电机一、雕刻电机二、雕刻电机三;所述控制器为上述任意所述的基于FPGA的雕刻机运动控制器;
其中,所述模型建立模块用于建立所述刀具的三维坐标系,确定所述刀具在所述三维坐标系中的实时位置坐标,并根据所述目标位置,确定所述刀具在所述三维坐标系中的终点位置坐标;所述采样脉冲在所述积分器与所述累加器中与所述刀具的一个预设加速度相乘并加上所述刀具的初始速度,以生成实时速度;所述实时速度未达到所述目标速度时,所述速度控制模块通过所述雕刻电机一驱使所述刀具按照所述加速度进行加减速;在所述实时速度达到所述目标速度时,所述速度控制模块通过所述雕刻电机一驱使所述刀具保持匀速运动;所述偏差判别单元用于计算所述刀具的实时位置坐标与终点坐标在各个坐标轴上的投影偏差,判断各个轴向上的投影偏差的正负性;所述坐标进给单元用于根据所述投影偏差的正负性,在各个轴向上依次通过所述雕刻电机二驱使所述刀具进给一步,以减小所述投影偏差的绝对值;所述偏差计算单元用于在所述刀具进给后,计算进给后在坐标平面的投影偏差;所述终点判别单元用于在所有投影偏差均为零时,判断所述刀具在三维方向上进给的总步数是否达到所述终点坐标在三维方向上的各轴数之和,是则判定到达终点。
本发明还提供了一种基于FPGA的雕刻方法,其应用于上述任意所述的基于FPGA的雕刻机运动控制器中,其包括以下步骤:
(1)接收外部输入的三维坐标信息,并将所述三维坐标信息经取指、译码、执行、访存以及回访处理生成包含FPGA指令的控制信息;所述控制信息包括所述刀具的目标位置以及目标速度;
(2)建立所述刀具的三维坐标系,确定所述刀具在所述三维坐标系中的实时位置坐标,并根据所述目标位置,确定所述刀具在所述三维坐标系中的终点位置坐标;
(3)根据所述控制信息,通过梯形加减速以调节所述刀具的雕刻速度;其中,所述雕刻速度的调节方法包括以下步骤:(3.1)将所述控制系统产生的系统时钟信号分频产生采样脉冲;(3.2)使所述采样脉冲与所述刀具的一个预设加速度相乘并加上所述刀具的初始速度,以生成实时速度;(3.3)将所述实时速度与所述目标速度比较;(3.4)在所述实时速度未达到所述目标速度时,通过所述雕刻电机一驱使所述刀具按照所述加速度进行加减速;在所述实时速度达到所述目标速度时,通过所述雕刻电机一驱使所述刀具保持匀速运动;
(4)对所述刀具的轨迹进行控制,且控制方法包括以下步骤:(4.1)判断所述刀具的实时位置坐标与终点坐标在各个坐标平面上的投影偏差,判断各个轴向上的投影偏差的正负性;(4.2)根据所述投影偏差的正负性,在各个轴向上依次通过所述雕刻电机一、所述雕刻电机二、所述雕刻电机三驱使所述刀具进给一步,以减小实际轨迹与目标轨迹的偏差;(4.3)在所述刀具进给后,计算在进给方向上的投影偏差;(4.4)判断所述刀具在三维方向上进给的总步数是否达到所述终点坐标在三维方向上的各轴数之和,是则判定到达终点。
相较于现有技术,本发明的基于FPGA的雕刻机运动控制器及其雕刻设备和方法,其具有以下有益效果:
1、该基于FPGA的雕刻机运动控制器,其通过速度控制模块进行梯形加减速控制,通过对电机的进给脉冲频率或电压进行控制,进而达到加减速控制的目的,在刀具启动加速时,速度控制模块让加在电机上的脉冲频率或电压逐渐增大,而刀具停止减速时,速度控制模块让加在电机上的脉冲频率或电压逐渐减小为零。由于雕刻机的刀具在启动或停止时可能产生冲击、震荡、失步,不仅影响雕刻精度,还会损坏刀具,同时雕刻机存在加工面积较小,又有频繁启动或停止的特点。而本发明中,在刀具加速和减速过程按照一定的线性规律进行,减小加速度,能使加减速过程中速度过度平稳,雕刻启停位置准确。
2、该基于FPGA的雕刻机运动控制器,其通过轨迹控制模块对轨迹进行控制,逐点比较并进行三轴直线插补以控制对应的雕刻电机,不间断纠正刀具与既定轨迹的相对位置,根据比较得到偏离情况,决定下一步哪一个轴前进以缩小偏差,使实际运动轨迹与既定轨迹误差最小,整个计算简单,速度平稳,调节方便,插补误差不大于一个脉冲当量,可以提高控制精度以及运算速度。
3、该基于FPGA的雕刻机运动控制器,其可采用FPGA单芯片设计,减少了两芯片间的通信,系统运行速度更快。而且本发明中可采用MIPS架位的CPU软核,相比内嵌硬核或者FPGA厂商设计的软核,占据的芯片容量更小,对FPGA芯片的要求较低,有效降低成本,且可扩展可移植,有效减少成本、缩短研发时间,更适合于工业生产和商业应用。
附图说明
图1为本发明实施例1的基于FPGA的雕刻机运动控制器的系统框架图;
图2为图1所示的雕刻机运动控制器中MIPS32架构指令格式的示意图;
图3为图1所示的雕刻机运动控制器中MIPS32架构的大端模式存储字节次序示意图;
图4为图1所示的雕刻机运动控制器的控制系统中五级流水线整体结构图;
图5为图1所示的雕刻机运动控制器的运动系统的速度控制模块的梯形加减速速度曲线图;
图6为图1所示的雕刻机运动控制器的运动系统的轨迹控制模块在第一象限比较时的示意图;
图7为图6中的空间直线OD在XOY平面的投影示意图;
图8为图6中的空间直线OD在XOZ平面的投影示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
请参阅图1,本发明提供了一种基于FPGA的雕刻机运动控制器,该控制器包括控制系统和运动系统。其中,运动系统接收控制系统发送的控制信息并根据控制信息控制雕刻机的刀具的轨迹和速度。雕刻机包括刀具、三个方向的雕刻电机,雕刻电机用于调节刀具的速度和刀具的轨迹,这三个雕刻电机分别为雕刻电机一、雕刻电机二、雕刻电机三。在本实施例中,控制信息包括刀具的目标位置以及目标速度,还可包括刀具的目标距离、加速度以及初始速度。其中,运动系统包括模型建立模块、速度控制模块和轨迹控制模块。
控制系统的架构为MIPS架构,而且采用专门针对运动控制场景设计的32位软核,并设置五级流水线模块,还设置MIPS32指令体系以及7种基本指令。在本实施例中,五级流水线模块包括取指单元、译码单元、执行单元、访存单元以及回访单元。取指单元用于根据控制系统接收的PC数值,从控制系统的指令存储器中读取指令。译码单元用于对取指单元读取的指令进行译码解析,并确定指令格式信息以及操作数。执行单元用于根据指令格式信息以及操作数,进行算术或逻辑运算。访存单元用于访问控制系统的数据存储器或将数据存储器中的数据发送回访单元,且将执行单元的运算结果发送至数据存储器中。回访单元用于访问数据存储器,将获取的数值或运算结果保存在控制系统的目标寄存器中。
在本实施例中,控制系统设计为32位CPU软核。运动型CPU软核可裁剪可扩展可移植,为后续开发节约成本时间。CPU内部架构和功能自主定制,因此无需采用容量大、价格高昂的芯片,减少芯片成本。CPU软核采用MIPS指令架构,采用五级流水线结构,能够完成7大类基本指令。CPU软核的作用主要是进行数据分析,对输入和输出数据进行配置,传递给插补模块。
指令集架构的宽度32位并非指令的长度,而是指通用寄存器的宽度,决定了寻址范围。本实施例中32位CPU是指通用寄存器宽度32位,寻址范围为232,4GB寻址空间,运算指令操作位数32位。MIPS指令体系架构包括32位通用寄存器、CPU指令格式、数据存储格式及地址划分、寻址单元、CPU异常情况。
其中,CPU寄存器用于存放中间数据信息。MIPS32架构中有32个通用寄存器$0~$31,其中$0内部存储数据常量0,$31存储子程序返回地址,其余寄存器可在任一条指令中作为通用寄存器,但通常其余30个寄存器的使用仍旧按照约定俗称的用法,以保证代码、编译器、操作系统可以通用。寄存器的存取在一个时钟周期内完成。MIPS32有3个特殊寄存器,PC、HI、LO。PC指针,program counter,程序计数器,包含当前正在执行指令的地址。HILO乘除专用寄存器,HI寄存器存储乘除结果的高位或除法结果余数,LO存储乘除结果低位寄存器或除法结果的商,此寄存器在回访阶段实现。
在CPU指令格式方面,MIPS32架构指令格式都是32位的,按指令格式划分有R、I、J三种形式,其具体格式如图2所示。对R型(register寄存器类型),op表示指令码、sa表示偏移量(在移位指令中使用)、rs和rt表示源操作数、rd表示目的寄存器,func表示功能码。对I型(immediate立即数类型),0到15位是立即数,在运算时将其扩展为32位当做一个源操作数。对J型(jump跳转类型),0到25位是跳转的目标地址。对指令格式的划分在define.v宏文件中进行定义,在译码阶段实现具体解析。
请参阅图3,MIPS32中数据在存储器存储的字节次序有小端模式和大端模式,小端模式低位低地址存储,大端模式高位低地址存储。本实施例采用大端模式。其中,MIPS32体系的地址空间划分,用户可访问存储空间地址范围0X00000000-0X7FFFFFFF,共2GB。0X00000000-0X00300000保留,0X00400000-0X10000000为程序段,0X10000000-0X7FFFFFFF为数据段(堆栈段),0X7FFFFFFF-0XFFFFFFFF留给内核使用。数据段分静态存储区(用于存放全局变量)和动态存储区(用于存放动态分配变量)。堆栈段用于存放子程序(函数)的返回地址和子程序的全局变量。
CPU的7种指令集为7类指令,并且7类指令包括逻辑操作指令、移位操作指令、移动操作指令、算术操作指令、转移指令、加载存储指令、协处理器指令、异常相关指令、其余指令。
在寻址单元方面,MIPS架构有四种寻址方式,其中寄存器寻址和立即数寻址为直接寻址,用于跳转指令。寄存器相对寻址和PC相对寻址位相对寻址。寄存器寻址的新有效地址是指定寄存器的值。立即数寻址,跳转指令后面延迟槽指令地址的高四位即新地址的高四位,指令中立即数左移两位即新地址的低二十八位。寄存器相对寻址用于加载和存储指令,新地址由16位立即数符号扩展后与指定通用寄存器相加所得。PC相对寻址用于分支指令。将16位立即数左移两位做符号扩展,并与程序计数器PC中的地址相加得到的有效地址即存放转移指令。
在异常方面,MIP32架构的CPU中,会发生特殊事件打断流水线的正常执行。特殊事件(中断Interrupt、陷阱Trap、系统调用System Call等)称为异常。CPU在流水线过程中发生异常时,会跳到按照事先定义的异常处理例程入口地址执行异常处理程序。异常处理完毕后,CPU返回异常发生前位置继续执行。
请参阅图4,在本实施例中,五级流水线模块通过五个单元进行工作,并分别分为五个阶段。
1、取指阶段:从指令存储器中读取指令传递给译码阶段,程序计数器的依次根据指令地址从存储器中出对应指令,送至中间暂存器暂存以确保按照时钟周期一级级传递。完成一次取指后,程序计数器加4位下一条要执行的指令的地址。其中,取指单元根据PC数值访问指令存储器取指令,包括程序计数器PC模块及IF/ID模块。
PC模块中存放指令地址,通过指令地址寄存器访问指令存储器的相应地址得到指令,指令传递到IF/ID模块的寄存器进行暂时存储。本设计采用单发射的设计方式,每个时钟周期只能读取一条指令。PC地址加4得到下一条指令地址,取指时连续从指令存储器读指令。此外,在此阶段也有转移、跳转、异常、暂停指令的部分操作,因此有跳转分支接口,PC并不是总是按顺序一条一条读取指令,而是按需要跳转执行。
当PC模块给出当前指令地址后,首先根据branch_flag_i、stall、flush端口输入情况进行判断,是否有流水线其他四个阶段传递来的控制信息,确定下一条指令地址和相关操作。
第一种情况,branch_flag_i端口输入1,表示流水线译码阶段有转移指令控制信息,branch_target_addr端口输入转移指令的目标地址。
第二种情况,stall端口输入1,表示流水线需要暂停,此信号由回访阶段的CTRL模块发出。通常因为指令的执行时间大于1个时钟周期,或结构相关需要暂停流水线。
第三种情况,flush端口输入1,表示流水线访存阶段有异常处理,此功能的输入信号也由CTRL模块发出。new_pc将异常信号跳转地址输入给PC模块作为新的指令地址,异常处理结束后,CP0协处理器中保存的异常处理前指令地址同样通过new_pc输入给PC,恢复流水线正常执行。
第四种情况,即以上三个端口的输入信息均为0的正常情况,PC按地址依次读指令。由于每个指令长度为32位即4字节,因此PC=PC+4即下一条指令的地址。
IF/ID模块作为取指阶段与译码阶段的中间寄存器,IF/ID内部为时序电路,暂时保存PC结果,待下一时钟周期将指令和指令地址传给译码阶段的模块,使指令按照时钟周期一级级传递。当发生异常时,id_pc和id_inst输入0,往ID阶段插入一个空操作。
2、译码阶段:从上一阶段得到指令,进行译码,确定需要完成的操作类型。将指令译码并解析,或从寄存器中读取需要的立即数并进行扩展,然后转移给目标地址。指令在译码阶段,从指令寄存器送至控制单元内的译码器,并进行译码,产生控制命令被送往CPU执行模块。寄存器组负责在运算过程中暂存中间运算数据。其中,译码阶段将IF/ID传递来的指令进行具体分析,译码模块ID分析出指令类型、寄存器等信息后,从寄存器模块regfile中读取涉及的数据。译码单元包括译码模块ID、寄存器模块Regfile、衔接模块ID/EX。
译码模块(ID)从IF/ID模块中间寄存器得到指令信息后再根据32位的指令格式进行解析,具体需要进行指令分类,得到op、sa、rs、immediate等信息。如果译码的指令为I类指令,需要对16位立即数进行符号扩展到32位。此外,ID模块需要判断是否有数据相关,适时对流水线进行暂停,以取得正确的源操作数。指令从inst_i端口进入ID模块后,首先分解指令的特征值。根据第26位到31位的数值(指令码op),确定指令的编码方式,再根据指令0到5位判断功能码,6到10位确定指令的偏移量信息sa,16到20位判断操作数rt。
aluop_o是指令的运算类型,aluse1_o是指令的运算子类型,它们将这些信息输出给执行阶段进行执行。根据指令类型,判断指令是否rs、rt齐全(有一个或两个操作数),进一步确定reg1_read_o和reg2_read_o是否均需要赋予使能信号。如果有两个操作数,则以上两个端口均需赋值使能。如果有一个操作数,则端口reg1_read_o使能赋值1,端口reg2_read_o赋值0,此外需将16位立即数immediate无符号扩展为32位作为另一位操作数。
寄存器模块分析出指令的读写寄存器地址后,将控制信号传递给Regfile模块。MIPS中共有32个通用寄存器,存放指令执行过程中的各类数据。在quartusⅡ中定义一个32Bit的含有32个元素的数组。对寄存器的操作包括1个写操作和2个读操作。寄存器读写操作是从数组中读取数据。在写的过程中,使用了we写使能信号、wdata写入数据、waddr写入寄存器地址。在读过程中,根据读使能信号re1、re2和读寄存器地址rdata1、rdata2对两个寄存器进行读操作,读取寄存器数据并从端口rdata1、rdata2输出。写寄存器内部电路为时序逻辑,需要clk信号进行同步,可防止读写操作的冲突,避免寄存器内需要的数值被新数据覆盖。读寄存器内部为组合逻辑,一旦地址发生变化,数据立即发生变化。
衔接模块ID/EX是将执行模块EX与译码模块ID连接的桥梁,它暂时保存ID模块得到指令格式信息,并在下一个时钟周期传递给EX。代码仅包含一个always时序逻辑语句,并进行非阻塞赋值,即块内其他赋值语句同时进行。实现过程与IF/ID模块类似。
3、执行阶段:根据指令的数据和运算类型进行算术或逻辑运算,给出运算结果。在执行阶段,以译码阶段的结果为依据,根据操作数、指令格式信息等进行运算。其中,执行阶段是五级流水线的核心,根据ID模块得到的指令格式信息、操作数等进行运算。执行单元包括EX执行模块和EX/MEM模块。
执行模块EX根据ID模块解析的指令类型、rs、rt、rd、immediate等信息进行运算,经EX模块内部ALU运算单元运算,输出目的寄存器的数值和写入地址。同时,EX模块对访存和回访阶段传递的信号和数据进行分析,并作出具体操作。如果指令类型为除法,EX模块会调用div模块完成本阶段功能,此外鉴于除法指令不能再一个clk周期内完成,需要联合CTRL模块暂停流水线以完成的除法运算。
本阶段ALU主要完成运算功能,此外还要计算加载指令要访问的内存地址,运算完成后传递给EX/MEM寄存器。ALU电路主要有加减法器、比较器、乘法器、移位器和多路选择器。执行阶段的源操作数有两个来源:一是寄存器中的数据或16位立即数扩展为32位数据;二是运算过程中协处理器CP0进行读写或EX阶段得出的数据。此外,执行阶段在运算时,需要读取HI、LO寄存器,并通过添加接口的方式接受HILO寄存器的数值解决数据相关问题。
CPU中除法运算为二进制除法,从被除数的最高位开始,将被除数与除数比较,当被除数大于除数时,将被除数减去除数,商为1,减后结果为中间余数,若被除数小于除数则商为0。计算周期开始时,被除数左移一位,最后一位补0,判断被除数的高32位是否大于除数,如果大于则被除数的高32位减去除数并加1,得到的新值赋给a;如果被除数的高32位小于除数,则结果为0。
EX_MEM模块为运算结果暂时保存模块,连接EX与访存模块MEM的桥梁,下一个时钟到来时将结果传递到访存模块。具体FPGA实现过程与IF/ID模块类似。
4、访存阶段:访问数据存储器或将数据送入回访阶段。在执行周期内得到的运算输出结果均被送入数据存储器进行保存。访存阶段主要完成将上一阶段得到的运算结果存储到数据寄存器的功能。访存单元包括MEM模块和数据存储器RAM模块。访存阶段需考虑数据相关问题,若存在数据相关,需先处理相关问题,再将数据输出。
MEM模块加载等指令等需要对存储器进行读写操作,将执行阶段传递来的地址、读写信号等数据写入存储器。MEM/WB模块同样为衔接作用,连接MEM与WB,在下一个时钟周期到来时将数据传递个回访阶段。
5、回访阶段:访问存储器得到的数值或运算得到的结果在此阶段被保存到目标寄存器,并实现流水线暂停、协处理器、乘除寄存器等功能。回访阶段是为了把运算结果或从存储器得到的数值保存到目的寄存器,对寄存器写操作。将访存阶段中间暂存器的wdata_o、wreg_o、wd_o端口对应连接到寄存器模块regfile中的写端口wdata、we、waddr即实现运算结果保存。回访单元包括CTRL模块、HILO模块、LLbit模块、CP0协处理器。
CTRL模块根据来自执行和访存阶段的请求流水线暂停信号,控制流水线暂停。进行异常处理时,接受CP0协处理器传来的异常信号,对流水线进行清除,并给出异常处理地址。当流水线进行除法运算等指令时需要在执行阶段占用多个时钟周期,因此需要暂停流水线运行。译码阶段和执行阶段发出流水线暂停请求,收到请求后,本阶段之前所有阶段暂停且寄存器值不变,本阶段之后的所有阶段正常运行。
HILO寄存器根据EX模块的乘除法指令运算时给出的控制信号,对HI和LO寄存器进行读写操作。LLbit寄存器中LLbit即链接状态位,主要在ll和sc指令中涉及,ll指令对其进行写操作,sc指令对其进行读操作。ll指令在访存阶段读取数据存储器后,将LLbit寄存器的值写为1,对该操作中访问的内存地址的做一个链接,以保证该指令对此资源的独占。sc指令在访存阶段获得LLbit寄存器的值,若为1则对链接的地址位置的数据进行修改,并将LLbit寄存器写为0;反之如果LLbit寄存器为0,则不进行存储操作。
协处理器CP0为MIPS架构中提供四个协处理器之一,系统控制处理器必选,有独立的寄存器。CP1、CP3为浮点处理单元,CP2保留用于特定实现,此三项可选。本CPU软核只设计CP0用于设置和协助MIPS处理器。CP0通常包含32个寄存器,通过寄存器的不同的位的操作实现对缓存。本设计中实现CP0的7个寄存器(count、compare、status、cause、EPC、PRID、Config)完成对CPU工作状态的配置、中断异常处理、地址转换等功能。协处理器CP0设计的指令包括2条协处理器访问指令:mtc0、mfc0。COP0为指令码,MT和MF位可区分两种指令。mtc0指令功能为将rt的值赋值给rd,mfc0指令读出rd寄存器的值赋值给rt。
在以上每个阶段中间,都有保存前一级流水线阶段运行结果的中间寄存器。根据运动控制功能特别定制的CPU具有占用资源少、运行速度快、端口简明清晰的特点,完成运动CPU的整体设计后,与指令存储模块、按键模块、运动控制模块连接。CPU软核连接指令存储模块以及按键模块,并由左侧端口输入,经由CPU内部处理后,由Data_sram_addr、Data_sram_wdata、Data_sram_wen、Data_sram_en、Data_sram_en端口向运动控制模块传递数据使能信号、数据地址、数据内容。
请参阅图5,速度控制模块用于根据控制信息,通过梯形加减速以调节刀具的雕刻速度。在梯形加减速中,存在以下三种情况:只有加速区或减速区;有加速区和减速去,没有匀速区;有完整的加速、匀速、减速过程。为了保证刀具在减速阶段完成后到达指定地点,在实现算法时,需要对加速及匀速阶段的脉冲进行累计,以确保有完整的减速区。
速度控制模块包括分频器、积分器、累加器以及比较器。分频器用于将控制系统产生的系统时钟信号分频产生采样脉冲。采样脉冲在积分器与累加器中与刀具的一个预设加速度相乘并加上刀具的初始速度,以生成实时速度。比较器用于将实时速度与目标速度比较。在实时速度未达到目标速度时,速度控制模块通过雕刻电机一驱使刀具按照加速度进行加减速。在实时速度达到目标速度时,速度控制模块通过输出进给脉冲驱使所述刀具保持在加减速时控制速度按照一定斜率变化以避免速度突变对刀具、雕刻品造成损坏,影响雕刻精度。
速度控制模块调节刀具的速度公式为:
速度控制模块调节刀具的位移公式为:
式中,S1为刀具在加速阶段的总位移,S2为刀具在加速阶段和匀速阶段的总位移。在一个插补周期t内,刀具的初始速度为vint,目标速度为vmax,实时速度为vi。在加速阶段,刀具以加速度a线性增加其速度,直至实时速度达到目标速度。在减速阶段,刀具以加速度-a线性降低其速度,直至实时速度与初始速度相同。
由于加减速过程的速度变化量及加速度值相同,可以得出T1=T3,因此通过计算可以得出加减速的距离。其中,目标距离的计算公式为:
式中,S为目标距离,T1=T3。因此,速度控制模块根据给定的目标距离、加速度、目标速度以及初始速度,计算出刀具在加速阶段、匀速阶段以及减速阶段的距离和时间,并控制雕刻电机一驱使刀具在各个阶段按照对应的时间和距离进行前进。
请参阅图6、图7以及图8,模型建立模块用于建立刀具的三维坐标系,确定刀具在三维坐标系中的实时位置坐标,并根据目标位置,确定刀具在三维坐标系中的终点位置坐标。请模型建立模块建立的三维坐标系中,坐标原点为O(0,0,0),刀具的实时位置坐标为M(Xi,Yi,Zi),终点位置坐标为D(Xd,Yd,Zd)。本实施例中,将空间中的直线OD分别向XOY平面及XOZ平面投影,投影线段为OD'及OD”。
轨迹控制模块包括偏差判别单元、坐标进给单元、偏差计算单元以及终点判别单元。偏差判别单元用于计算刀具的实时位置坐标与终点坐标在各个坐标轴上的投影偏差,判断各个轴向上的投影偏差的正负性。坐标进给单元用于根据投影偏差的正负性,在各个轴向上依次通过雕刻电机一、雕刻电机二、雕刻电机三驱使所述刀具进给一步,以减小投影偏差的绝对值。偏差计算单元用于在刀具进给后,计算进给的方向上的投影偏差,即计算两个坐标平面上的投影偏差。终点判别单元用于判断刀具在三维方向上进给的总步数是否达到终点坐标在三维方向上的各轴数之和,是则判定到达终点。
在本实施例中,轨迹控制模块用于将刀具的运动轨迹以时间为单位分割成若干相等的时间间隔,并在每个时间间隔刀具运动的线段上进行数据点密化,以进行插补。轨迹控制模块在X、Y、Z轴的进给脉冲计数不小于终点坐标在X、Y、Z轴上坐标之和时,停止插补。
在本实施例中,在XOY平面中,投影偏差的计算公式为Si,j=XiYd-XdYi,进给一步后的偏差公式为:
其中,Si+1,j为X轴正方向进给一步的偏差公式、Si,j+1为Y轴正方向进给一步的偏差公式。
在XOZ平面中,投影偏差的计算公式为Ti,j=XiZd-XdZi,进给一步后的偏差公式为:
其中,Ti+1,j为X轴正方向进给一步的偏差公式、Ti,j+1为Z轴正方向进给一步的偏差公式。
基于此,本实施例的偏差判别单元用于判断Si,j和Ti,j的正负性。
在Si,j≥0,Ti,j≥0时,坐标进给单元通过雕刻电机一驱使刀具向X轴正方向进给一步,偏差计算单元计算XOY平面和XOZ平面的投影偏差,且计算公式为:
在Si,j≤0时,坐标进给单元通过雕刻电机二驱使刀具向Y轴正方向进给一步,XOZ平面偏差不变,偏差计算单元计算XOY平面的投影偏差,且计算公式为:
Si,j+1=Si,j+Xd
在Si,j≥0,Ti,j≤0时,坐标进给单元通过雕刻电机三驱使刀具向Z轴正方向进给一步,XOY平面偏差不变,偏差计算单元计算XOZ平面的投影偏差,且计算公式为:
Ti,j+1=Ti,j+Xd。
终点判别;总步数为坐标点各轴数之和,脉冲当量为1,插补结束后每前进一步,总步数减1,直到最终总步数减为0,即到达终点,完成终点判别。
在本实施例中,控制系统用于将外部输入的三维坐标信息经取指、译码、执行、访存以及回访处理生成包含FPGA指令的控制信息。运动系统用于先通过速度控制模块进行速度控制后向轨迹控制模块输出进给脉冲,再通过轨迹控制模块进行三轴直线插补,最后将产生的进给脉冲输出至雕刻电机一二三。
综上所述,本实施例的基于FPGA的雕刻机运动控制器具有以下优点:
1、该基于FPGA的雕刻机运动控制器,其通过速度控制模块进行梯形加减速控制,通过对电机的进给脉冲频率或电压进行控制,进而达到加减速控制的目的,在刀具启动加速时,速度控制模块让加在电机上的脉冲频率或电压逐渐增大,而刀具停止减速时,速度控制模块让加在电机上的脉冲频率或电压逐渐减小为零。由于雕刻机的刀具在启动或停止时可能产生冲击、震荡、失步,不仅影响雕刻精度,还会损坏刀具,同时雕刻机存在加工面积较小,又有频繁启动或停止的特点。而本实施例中,在刀具加速和减速过程按照一定的线性规律进行,减小加速度,能使加减速过程中速度过度平稳,雕刻启停位置准确。
2、该基于FPGA的雕刻机运动控制器,其通过轨迹控制模块对轨迹进行控制,逐点比较并进行三轴直线插补以控制雕刻电机一,不间断纠正刀具与既定轨迹的相对位置,根据比较得到偏离情况,决定下一步哪一个轴前进以缩小偏差,使实际运动轨迹与既定轨迹误差最小,整个计算简单,速度平稳,调节方便,插补误差不大于一个脉冲当量,可以提高控制精度以及运算速度。
3、该基于FPGA的雕刻机运动控制器,其可采用FPGA单芯片设计,减少了两芯片间的通信,系统运行速度更快。而且本实施例中可采用MIPS架位的CPU软核,相比内嵌硬核或者FPGA厂商设计的软核,占据的芯片容量更小,对FPGA芯片的要求较低,有效降低成本,且可扩展可移植,有效减少成本、缩短研发时间,更适合于工业生产和商业应用。
实施例2
本实施例提供了一种基于FPGA的雕刻设备,其包括雕刻机以及控制器。在一些实施例中,雕刻设备可以直接命名为“雕刻机”。雕刻机包括刀具、雕刻电机一、雕刻电机二和雕刻电机三,用于调节刀具的速度和轨迹。在本实施例中,该控制器为实施例1中的基于FPGA的雕刻机运动控制器。
其中,模型建立模块用于建立刀具的三维坐标系,确定刀具在三维坐标系中的实时位置坐标,并根据目标位置,确定刀具在三维坐标系中的终点位置坐标。采样脉冲在积分器与累加器中与刀具的一个预设加速度相乘并加上刀具的初始速度,以生成实时速度。实时速度未达到目标速度时,速度控制模块通过雕刻电机一驱使刀具按照加速度进行加减速。在实时速度达到目标速度时,速度控制模块通过雕刻电机一驱使刀具保持匀速运动。偏差判别单元用于计算刀具的实时位置坐标与终点坐标在各个坐标轴上的投影偏差,判断各个轴向上的投影偏差的正负性。坐标进给单元用于根据投影偏差的正负性,在各个轴向上依次通过相应的雕刻电机一、雕刻电机二、雕刻电机三驱使刀具进给一步,以减小投影偏差的绝对值。偏差计算单元用于在刀具进给后,计算进给的方向上的投影偏差。终点判别单元用于判断刀具在三维方向上进给的总步数是否达到终点坐标在三维方向上的各轴数之和,是则判定到达终点。
实施例3
本实施例提供了一种基于FPGA的雕刻方法,其应用于实施例1中的基于FPGA的雕刻机运动控制器中。其中,本实施例的基于FPGA的雕刻方法包括以下步骤(步骤(1)-(4))
步骤(1)、接收外部输入的三维坐标信息,并将三维坐标信息经取指、译码、执行、访存以及回访处理生成包含FPGA指令的控制信息;控制信息包括刀具的目标位置以及目标速度。
步骤(2)、建立刀具的三维坐标系,确定刀具在三维坐标系中的实时位置坐标,并根据目标位置,确定刀具在三维坐标系中的终点位置坐标。
步骤(3)、根据控制信息,通过梯形加减速以调节刀具的雕刻速度;其中,雕刻速度的调节方法包括以下步骤:(3.1)将控制系统产生的系统时钟信号分频产生采样脉冲;(3.2)使采样脉冲与刀具的一个预设加速度相乘并加上刀具的初始速度,以生成实时速度;(3.3)将实时速度与目标速度比较;(3.4)在实时速度未达到目标速度时,通过输出进给脉冲至雕刻电机驱使刀具按照加速度进行加减速;在实时速度达到目标速度时,通过输出进给脉冲至雕刻电机驱使刀具保持匀速运动。
步骤(4)、对刀具的轨迹进行控制,且控制方法包括以下步骤:(4.1)判断刀具的实时位置坐标与终点坐标在各个坐标轴上的投影偏差,判断各个轴向上的投影偏差的正负性;(4.2)根据投影偏差的正负性,在各个轴向上依次通过雕刻电机一、雕刻电机二、雕刻电机三驱使刀具进给一步,以减小投影偏差的绝对值;(4.3)在刀具进给后,计算进给的方向上的投影偏差;(4.4)判断刀具在三维方向上进给的总步数是否达到终点坐标在三维方向上的各轴数之和,是则判定到达终点。
实施例4
本实施例提供一种计算机终端,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序。处理器执行程序时实现实施例3的基于FPGA的雕刻方法的步骤。
实施例3的方法在应用时,可以软件的形式进行应用,如设计成独立运行的程序,安装在计算机终端上,计算机终端可以是电脑、智能手机、控制系统以及其他物联网设备等。实施例3的方法也可以设计成嵌入式运行的程序,安装在计算机终端上。
实施例4
本实施例提供一种计算机可读存储介质,其上存储有计算机程序。程序被处理器执行时,实现实施例3的基于FPGA的雕刻方法的步骤。
实施例3的方法在应用时,可以软件的形式进行应用,如设计成计算机可读存储介质可独立运行的程序,计算机可读存储介质可以是U盘,设计成U盾,通过U盘设计成通过外在触发启动整个方法的程序。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于FPGA的雕刻机运动控制器,其包括控制系统以及接收所述控制系统发送的控制信息并根据所述控制信息控制雕刻机的刀具的轨迹和速度的运动系统;所述雕刻机包括用于调节所述刀具速度和轨迹的雕刻电机一、雕刻电机二、雕刻电机三,所述控制信息包括所述刀具的目标位置以及目标速度;其特征在于,所述控制系统采用MIPS架构专门针对运动控制场景设计的32位软核,所述运动系统包括:
模型建立模块,其用于建立所述刀具的三维坐标系,确定所述刀具在所述三维坐标系中的实时位置坐标,并根据所述目标位置,确定所述刀具在所述三维坐标系中的终点位置坐标;
速度控制模块,其用于根据所述控制信息,通过梯形加减速以调节所述刀具的雕刻速度;所述速度控制模块包括分频器、积分器、累加器以及比较器;所述分频器用于将所述控制系统产生的系统时钟信号分频产生采样脉冲;所述采样脉冲在所述积分器与所述累加器中与所述刀具的一个预设加速度相乘并加上所述刀具的初始速度,以生成实时速度;所述比较器用于将所述实时速度与所述目标速度比较;在所述实时速度未达到所述目标速度时,所述速度控制模块通过所述雕刻电机一驱使所述刀具按照所述加速度进行加减速;在所述实时速度达到所述目标速度时,所述速度控制模块通过输出进给脉冲驱使所述刀具保持在加减速时控制速度按照一定斜率变化以避免速度突变;以及
轨迹控制模块,其包括偏差判别单元、坐标进给单元、偏差计算单元以及终点判别单元;所述偏差判别单元用于计算所述刀具的实时位置坐标与终点坐标在各个坐标轴上的投影偏差,判断各个轴向上的投影偏差的正负性;所述坐标进给单元用于根据所述投影偏差的正负性,在各个轴向上依次通过所述雕刻电机一、所述雕刻电机二、所述雕刻电机三驱使所述刀具进给一步,以减小所述投影偏差的绝对值;所述偏差计算单元用于在所述刀具进给后,计算进给的方向上的投影偏差;所述终点判别单元用于判断所述刀具在三维方向上进给的总步数是否达到所述终点坐标在三维方向上的各轴数之和,是则判定到达终点。
2.如权利要求1所述的基于FPGA的雕刻机运动控制器,其特征在于,在所述三维坐标系中,坐标原点为O(0,0,0),所述刀具的实时位置坐标为M(Xi,Yi,Zi),所述终点位置坐标为D(Xd,Yd,Zd);
在XOY平面中,所述投影偏差的计算公式为Si,j=XiYd-XdYi,进给一步后的偏差公式如下:
其中,Si+1,j为X轴正方向进给一步的偏差公式、Si,j+1为Y轴正方向进给一步的偏差公式;
在XOZ平面中,所述投影偏差的计算公式为Ti,j=XiZd-XdZi,进给一步后的偏差公式如下:
其中,Ti+1,j为X轴正方向进给一步的偏差公式、Ti,j+1为Z轴正方向进给一步的偏差公式。
3.如权利要求2所述的基于FPGA的雕刻机运动控制器,其特征在于,所述偏差判别单元用于判断Si,j和Ti,j的正负性;
在Si,j≥0,Ti,j≥0时,所述坐标进给单元通过所述雕刻电机一驱使所述刀具向X轴正方向进给一步,所述偏差计算单元计算XOY平面和XOZ平面的投影偏差,且计算公式为:
在Si,j≤0时,所述坐标进给单元通过所述雕刻电机二驱使所述刀具向Y轴正方向进给一步,所述偏差计算单元计算XOY平面的投影偏差,且计算公式为:
Si,j+1=Si,j+Xd
在Si,j≥0,Ti,j≤0时,所述坐标进给单元通过所述雕刻电机三驱使所述刀具向Z轴正方向进给一步,所述偏差计算单元计算XOZ平面的投影偏差,且计算公式为:
Ti,j+1=Ti,j+Xd。
4.如权利要求1所述的基于FPGA的雕刻机运动控制器,其特征在于,所述轨迹控制模块用于将所述刀具的运动轨迹以时间为单位分割成若干相等的时间间隔,并在每个时间间隔所述刀具运动的线段上进行数据点密化,以进行插补;所述轨迹控制模块在X、Y、Z轴的进给脉冲计数不小于所述终点坐标在X、Y、Z轴上坐标之和时,停止插补。
5.如权利要求4所述的基于FPGA的雕刻机运动控制器,其特征在于,所述速度控制模块调节所述刀具的速度公式为:
所述速度控制模块调节所述刀具的位移公式为:
式中,S1为所述刀具在加速阶段的总位移,S2为所述刀具在加速阶段和匀速阶段的总位移;在一个插补周期内,所述刀具的初始速度为vint,所述目标速度为vmax,实时速度为vi;在加速阶段,所述刀具以加速度a线性增加其速度,直至所述实时速度达到所述目标速度;在减速阶段,所述刀具以加速度-a线性降低其速度,直至所述实时速度与所述初始速度相同。
6.如权利要求5所述的基于FPGA的雕刻机运动控制器,其特征在于,所述控制信息还包括所述刀具的目标距离、加速度以及初始速度;其中,所述目标距离的计算公式为:
式中,S为所述目标距离,T1=T3;
所述速度控制模块根据所述目标距离、所述加速度、所述目标速度以及所述初始速度,计算出所述刀具在加速阶段、匀速阶段以及减速阶段的距离和时间,并控制进给脉冲驱使所述刀具在各个阶段按照对应的时间和距离进行前进。
7.如权利要求1所述的基于FPGA的雕刻机运动控制器,其特征在于,所述控制系统的架构为MIPS架构,并设置五级流水线模块;所述五级流水线模块包括取指单元、译码单元、执行单元、访存单元以及回访单元;所述取指单元用于根据所述控制系统接收的PC数值,从所述控制系统的指令存储器中读取指令;所述译码单元用于对所述取指单元读取的指令进行译码解析,并确定指令格式信息以及操作数;所述执行单元用于根据所述指令格式信息以及所述操作数,进行算术或逻辑运算;所述访存单元用于访问所述控制系统的数据存储器或将所述数据存储器中的数据发送所述回访单元,且将所述执行单元的运算结果发送至所述数据存储器中;所述回访单元用于访问数据存储器,将获取的数值或运算结果保存在所述控制系统的目标寄存器中。
8.如权利要求1所述的基于FPGA的雕刻机运动控制器,其特征在于,所述控制系统用于将外部输入的三维坐标信息经取指、译码、执行、访存以及回访处理生成包含FPGA指令的控制信息;所述运动系统用于先通过所述速度控制模块对所述雕刻电机一进行速度控制后,再通过所述轨迹控制模块进行三轴直线插补,最后将产生的进给脉冲输出至所述雕刻电机二。
9.一种基于FPGA的雕刻设备,其包括雕刻机以及控制器;所述雕刻机包括刀具、用于调节所述刀具的速度和轨迹的三个不同方向的雕刻电机一、雕刻电机二、雕刻电机三;其特征在于,所述控制器为如权利要求1-8中任意一项所述的基于FPGA的雕刻机运动控制器;
其中,所述模型建立模块用于建立所述刀具的三维坐标系,确定所述刀具在所述三维坐标系中的实时位置坐标,并根据所述目标位置,确定所述刀具在所述三维坐标系中的终点位置坐标;所述采样脉冲在所述积分器与所述累加器中与所述刀具的一个预设加速度相乘并加上所述刀具的初始速度,以生成实时速度;所述实时速度未达到所述目标速度时,所述速度控制模块通过所述雕刻电机一驱使所述刀具按照所述加速度进行加减速;在所述实时速度达到所述目标速度时,所述速度控制模块通过所述雕刻电机一驱使所述刀具保持匀速运动;所述偏差判别单元用于计算所述刀具的实时位置坐标与终点坐标在各个坐标轴上的投影偏差,判断各个轴向上的投影偏差的正负性;所述坐标进给单元用于根据所述投影偏差的正负性,在各个轴向上依次通过所述雕刻电机二驱使所述刀具进给一步,以减小所述投影偏差的绝对值;所述偏差计算单元用于在所述刀具进给后,计算进给后在坐标平面上的投影偏差;所述终点判别单元用于在所有投影偏差均为零时,判断所述刀具在三维方向上进给的总步数是否达到所述终点坐标在三维方向上的各轴数之和,是则判定到达终点。
10.一种基于FPGA的雕刻方法,其应用于如权利要求1-8中任意一项所述的基于FPGA的雕刻机运动控制器中,其特征在于,其包括以下步骤:
(1)接收外部输入的三维坐标信息,并将所述三维坐标信息经取指、译码、执行、访存以及回访处理生成包含FPGA指令的控制信息;所述控制信息包括所述刀具的目标位置以及目标速度;
(2)建立所述刀具的三维坐标系,确定所述刀具在所述三维坐标系中的实时位置坐标,并根据所述目标位置,确定所述刀具在所述三维坐标系中的终点位置坐标;
(3)根据所述控制信息,通过梯形加减速以调节所述刀具的雕刻速度;其中,所述雕刻速度的调节方法包括以下步骤:(3.1)将所述控制系统产生的系统时钟信号分频产生采样脉冲;(3.2)使所述采样脉冲与所述刀具的一个预设加速度相乘并加上所述刀具的初始速度,以生成实时速度;(3.3)将所述实时速度与所述目标速度比较;(3.4)在所述实时速度未达到所述目标速度时,通过进给脉冲驱使所述刀具按照所述加速度进行加减速;在所述实时速度达到所述目标速度时,通过进给脉冲驱使所述刀具保持匀速运动;
(4)对所述刀具的轨迹进行控制,且控制方法包括以下步骤:(4.1)判断所述刀具的实时位置坐标与终点坐标在各个坐标轴上的投影偏差,判断各个轴向上的投影偏差的正负性;(4.2)根据所述投影偏差的正负性,在各个轴向上依次通过所述雕刻电机一、所述雕刻电机二、所述雕刻电机三驱使所述刀具进给一步,使得实际轨迹与目标轨迹偏差最小;(4.3)在所述刀具进给后,计算进给后坐标平面上的投影偏差;(4.4)判断所述刀具在三维方向上进给的总步数是否达到所述终点坐标在三维方向上的各轴数之和,是则判定到达终点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910825863.5A CN110488764A (zh) | 2019-09-03 | 2019-09-03 | 一种基于fpga的雕刻机运动控制器及其雕刻设备和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910825863.5A CN110488764A (zh) | 2019-09-03 | 2019-09-03 | 一种基于fpga的雕刻机运动控制器及其雕刻设备和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110488764A true CN110488764A (zh) | 2019-11-22 |
Family
ID=68556363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910825863.5A Pending CN110488764A (zh) | 2019-09-03 | 2019-09-03 | 一种基于fpga的雕刻机运动控制器及其雕刻设备和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110488764A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888397A (zh) * | 2019-12-16 | 2020-03-17 | 华南理工大学广州学院 | 基于LabVIEW的智能三轴多功能雕刻机的插补方法 |
CN111037636A (zh) * | 2019-12-27 | 2020-04-21 | 湖南鼎一致远科技发展有限公司 | 一种切刀减速方法及装置 |
CN111460746A (zh) * | 2020-03-31 | 2020-07-28 | 上海安路信息科技有限公司 | Fpga ip软核实现电路设计的方法及装置、fpga芯片 |
CN111572168A (zh) * | 2020-05-12 | 2020-08-25 | 东莞固高自动化技术有限公司 | 雕刻头的雕刻控制方法、雕刻头驱动模块及电雕机 |
CN112158016A (zh) * | 2020-08-18 | 2021-01-01 | 固高科技(深圳)有限公司 | 基于分频倍频的雕刻方法、装置、计算机设备和存储介质 |
CN113836770A (zh) * | 2021-09-28 | 2021-12-24 | 方丽颖 | 刀具断点恢复加工的方法、装置、计算机设备和计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RO126468A2 (ro) * | 2009-09-30 | 2011-07-29 | Iulian Morar | Tehnologie şi maşină cu punte cu comandă numerică de gravat pe pardoseală |
-
2019
- 2019-09-03 CN CN201910825863.5A patent/CN110488764A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RO126468A2 (ro) * | 2009-09-30 | 2011-07-29 | Iulian Morar | Tehnologie şi maşină cu punte cu comandă numerică de gravat pe pardoseală |
Non-Patent Citations (4)
Title |
---|
侯元元: "基于MIPS32架构的微处理器流水线设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
张欢欢: "基于FPGA的多轴运动控制器设计", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 * |
胡呈祖: "基于ARM+FPGA的运动控制器及算法研究", 《中国优秀硕士学位论文全文数据库 工程科技I辑》 * |
范建锋: "基于ARM和FPGA的雕刻机控制系统的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888397A (zh) * | 2019-12-16 | 2020-03-17 | 华南理工大学广州学院 | 基于LabVIEW的智能三轴多功能雕刻机的插补方法 |
CN111037636A (zh) * | 2019-12-27 | 2020-04-21 | 湖南鼎一致远科技发展有限公司 | 一种切刀减速方法及装置 |
CN111460746A (zh) * | 2020-03-31 | 2020-07-28 | 上海安路信息科技有限公司 | Fpga ip软核实现电路设计的方法及装置、fpga芯片 |
CN111572168A (zh) * | 2020-05-12 | 2020-08-25 | 东莞固高自动化技术有限公司 | 雕刻头的雕刻控制方法、雕刻头驱动模块及电雕机 |
CN111572168B (zh) * | 2020-05-12 | 2022-05-13 | 东莞固高自动化技术有限公司 | 雕刻头的雕刻控制方法、雕刻头驱动模块及电雕机 |
CN112158016A (zh) * | 2020-08-18 | 2021-01-01 | 固高科技(深圳)有限公司 | 基于分频倍频的雕刻方法、装置、计算机设备和存储介质 |
CN112158016B (zh) * | 2020-08-18 | 2021-11-05 | 固高科技股份有限公司 | 基于分频倍频的雕刻方法、装置、计算机设备和存储介质 |
CN113836770A (zh) * | 2021-09-28 | 2021-12-24 | 方丽颖 | 刀具断点恢复加工的方法、装置、计算机设备和计算机可读存储介质 |
CN113836770B (zh) * | 2021-09-28 | 2023-09-12 | 方丽颖 | 刀具断点恢复加工的方法、装置、计算机设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110488764A (zh) | 一种基于fpga的雕刻机运动控制器及其雕刻设备和方法 | |
US6564179B1 (en) | DSP emulating a microcontroller | |
CN110427337B (zh) | 基于现场可编程门阵列的处理器内核及其运行方法 | |
CN112199173B (zh) | 双核cpu实时操作系统数据处理方法 | |
US8176478B2 (en) | Process for running programs on processors and corresponding processor system | |
CN101114174A (zh) | 嵌入式四轴运动控制器 | |
CN102122149A (zh) | 用于纸箱打样机的嵌入式控制系统及其控制方法 | |
CN102073480B (zh) | 基于时分复用实现多核处理器内核模拟的方法 | |
WO2013101187A1 (en) | Method for determining instruction order using triggers | |
WO2023107789A1 (en) | Deterministic replay of a multi-threaded trace on a multi-threaded processor | |
KR101497346B1 (ko) | 명령으로서 데이터 값을 평가하기 위한 시스템 및 방법 | |
US7110934B2 (en) | Analysis of the performance of a portion of a data processing system | |
KR100463642B1 (ko) | 보조프로세서를 이용한 멀티미디어 처리를 위한 가속장치 | |
CN201945835U (zh) | 用于纸箱打样机的嵌入式控制系统 | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
CN113806250B (zh) | 通用处理器核心与向量部件的协同方法、接口及处理器 | |
CN115292000A (zh) | 一种虚拟机动态迁移的方法、装置及电子设备 | |
CN101581961A (zh) | 一种cpu和降低cpu功耗的方法 | |
CN109634766B (zh) | 提升数据流机运行效率的方法、装置、设备及存储介质 | |
Zhou | Design of carving machine controller based on MCX314 | |
CN102947803B (zh) | 对指令执行次数进行计数的方法、系统及处理器 | |
JPS6225334A (ja) | 命令処理方式 | |
JP2006515446A (ja) | 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム | |
Heering | The Intel 8086, the Zilog Z8000, and the motorola MC68000 microprocessors | |
CN116136762A (zh) | 一种基于OpenCL的FPGA半定制异构计算系统设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191122 |