一种3D打印机挤出头梯形速度曲线控制系统的制作方法

文档序号:16765901发布日期:2019-01-29 17:59阅读:672来源:国知局
一种3D打印机挤出头梯形速度曲线控制系统的制作方法

本发明涉及3D打印技术,更具体地说,是一种3D打印机挤出头梯形速度曲线控制系统。



背景技术:

近几年来,3D打印机技术的研究与应用越来越受到学术界和商业界的重视,它被称为第三次工业革命的重要标志之一。3D打印是一种快速成型的制造技术,不同于传统的“减法”制造,它是利用特殊蜡材、粉末状金属或塑料等可粘合材料进行分层叠加的“加法”制造。它的工作机理是利用电脑端的切面软件(如skeinforge)处理设计好的三维模型,生成G代码传送至3D打印机,3D打印机在接收到G代码后产生相应的控制指令,控制挤出头做出正确的打印动作。总体而言,3D打印机的运动实际上就是打印头的运动,在打印3D模型时,打印机是一层一层的打印,而挤出头在打印某一层时,是按照特定的运动轨迹(直线或曲线)逐点打印的。但在传统的解决方案中,挤出头的运动及速度控制是在固件程序中来完成的,且运用了定时器中断程序,3D打印机的实际打印速度取决于定时器的中断频率,这就使得打印速度有一定的局限性,通过对原固件进行的试验也证实了以上结论。

3D打印机挤出头的运动驱动控制其实质就是挤出头的速度控制,3D打印机挤出头采用梯形速度曲线来实现速度控制,标准的梯形速度曲线包含加速、匀速、减速三个阶段。对于控制挤出头运动的步进电机而言,速度控制曲线一般有三种形式,如图1所示,100是按阶梯规律运行的速度曲线,即步进电机每加速一次到达一个阶梯,维持当前的速度不变,这个速度曲线形式的缺点在于没有恒定的加速阶段,没有充分利用步进电机的加速特性;101是直线型的标准梯形速度曲线,有恒定的加速减速阶段,也是最适合应用于步进电机速度控制的一种形式;102是指数型速度曲线,其缺点在于在高速阶段,加速度太大,这就可能导致步进电机的力矩太小容易发生失步等现象。综上,直线型标准梯形速度曲线有恒定的加速度,无疑是控制步进电机速度的最好选择。

传统的挤出头速度控制解决方案中,是由固件来实现的,如图2所示是固件的整体框图,挤出头运动驱动在其中处于非常重要的位置。固件从setup()初始化函数200开始,许多用于计算速度参数的宏定义参数,以及温度计算的参数,包括定时器的初始化都在这里完成。而后在loop()循环201中,将从上面传来G代码向下传递,进行G代码的解析202,若无G代码输入,则一直循环等待,若有G代码输入,则将G代码数据输入至挤出头运动驱动模块203进行数据处理,最终完成挤出头运动控制,且完成热端和打印床的温度控制204,执行完整的3D打印过程。

挤出头运动驱动在固件中处于重要的位置,其可以描述为一个前后台系统。后台为速度参数计算函数,挤出头运动驱动接受G代码解析传输过来的X、Y、Z、E轴的终点坐标、进给速度等参数,后台的速度参数计算函数205将这些数据加以计算,把计算出来的和运动相关的一系列参数以块结构体的形式存入到buffer块缓存206中。而前台为中断服务程序207,中断程序受控于定时器,它从buffer块缓存中取出块并执行,最终转化为挤出头的运动。

速度参数计算函数生成了梯形速度曲线,但在实际的打印过程中的速度取决于中断服务程序中的定时器,它以取出的块中的速度参数为计算基值,根据这个速度参数经过复杂的计算,来设置定时器的值,速度参数值越大,定时器的值就越小,所以实际的打印速度取决于定时器的中断频率。但这恰恰也成为了制约其打印速度的一个很重要的原因,当定时器的中断频率达到一定程度时,固件的处理速度会跟不上中断频率,这样会导致打印速度总会有一个相对的极限值。

挤出头的运动走步算法的执行依赖于定时器中断服务程序来完成,且控制挤出头运动的步进电机转速是通过计算出的速度参数值,并用它经过计算得到定时器的时间来调节产生中断的频率决定的,甚至部分3D打印机中驱动步进电机的PWM(脉冲宽度调制)波形也是通过软件实现。这样的控制机制会大大增加了CPU的工作负荷,并会很大程度上限制3D打印机的功能扩展(如实时人机交互、信息传输等)。对于打印机固件中比较复杂的中断服务程序而言,由于它的执行需要耗费一定的时间,这就决定了定时器的中断频率在这一限制条件下将会有一个极限值,也就决定了控制挤出头运动的步进电机的最大转速,在对实验所搭建的3D打印样机(基于RepRapPro Mendel)的测试,实验结果如图13所示,16步进细分模式下稳定工作的前提下该样机的最大实际给料速度仅能达到5000毫米/分钟。在不断增大给进速度的实验条件下,其实际打印速度趋于一个极限值,且呈现某种不稳定的现象,这是由于挤出头的运动走步是通过固件程序实现而造成的,而CPU的串行特性决定了驱动挤出头运行的X、Y、Z、E四个轴方向的步进电机的运动不是同步进行的,而是分时进行的。这一重要因素也势必会影响3D打印的速度,从而延长打印时间。



技术实现要素:

本发明提供一种3D打印机挤出头梯形速度曲线控制系统,能增强计算稳定性,减少数据处理时间。

为实现上述目的,本发明的技术方案如下:

一种3D打印机挤出头梯形速度曲线控制系统,其所有计算过程用硬件IP核实现,包括运动参数预处理模块、速度曲线生成器模块、速度曲线优化器模块、输出模块、系统控制器模块、块缓存管理模块;运动参数预处理模块最先被执行,用于负责挤出头运动主要参数的计算,且通过相应的条件判断来保证每个运动块能够正确运行而不出现错误,以便后面的模块能正常运行;速度曲线生成器模块、速度曲线优化器模块和输出模块对块缓存管理模块中的RAM缓存器进行读写操作,且依序被执行;速度曲线生成器模块通过运动参数预处理模块的输出参数利用梯形速度曲线生成器来规划每个运动块的运行轨迹,即产生相应的梯形速度运动曲线;速度曲线优化器模块负责RAM缓存器中所有的块的运动规划,即将所有块的单个梯形速度曲线首尾相连,形成一个完整的速度曲线,使得RAM缓存器中所存放的块能够连续性运行;输出模块负责从块缓存管理模块中取出的挤出头运动的相关速度数据,传递给外设步进电机驱动器模块,驱动挤出头按照指定的运动轨迹运行;系统控制器模块负责完成速度曲线生成器模块、速度曲线优化器模块和输出模块的执行优先级;块缓存管理模块负责根据输入的读写信号和读写地址,读取或写入相对应的数据,并会反馈RAM缓存器的首尾地址以及空满状态。

优选地,还包括均与总线相连用于存储数据的FIFO以及寄存器文件。

优选地,运动参数预处理模块接收到FIFO及寄存器文件的数据后进行数据运算处理,输出各轴走步数、各轴运动位移、运动位移、额定速度、加速度、进入速度。

优选地,运动参数预处理模块包括状态机,其不仅产生FIFO读使能信号,而且还控制着周期计数器的运行,并且根据状态机所处的状态,输出表示模块工作状态的信号。

优选地,速度曲线生成器模块根据前面运动参数预处理模块得到的参数,初步生成当前计算块块的梯形速度曲线,并存入到RAM缓存器中以便后面的模块调用。

优选地,速度曲线生成器模块包括梯形速度曲线生成器模块,梯形速度曲线生成器模块利用挤出头的总位移、初始速度、退出速度、额定速度以及加速度参数,运用速度位移公式来计算出速度曲线中的加速阶段、匀速阶段以及减速阶段的位移和速度,以此即可完成一个完整的速度曲线。

优选地,速度曲线优化器模块从RAM缓存器中取出已经存放好的块计算块来进行各个计算块的速度曲线优化,以实现块之间的速度曲线能够平顺相连,其包括反向速度曲线优化器、正向速度曲线优化器、梯形速度曲线生成器以及控制上述速度曲线优化器执行顺序的四状态控制机。

优选地,输出模块将获得的梯形速度曲线运动参数分为加速、匀速、减速三个阶段输出至步进电机驱动器。

优选地,块缓存管理模块还包括RAM缓存器头部地址生成器和RAM缓存器尾部地址生成器,当速度曲线生成器对RAM缓存器进行写数据时,由RAM缓存器头部地址生成器处理使得RAM头部地址加1,当速度曲线优化器模块对其读写数据时,头尾地址不发生变化,当输出模块对其读取数据时,由RAM缓存器尾部地址生成器处理使得尾部地址加1。

本发明的有益效果是:本发明所设计的硬件IP核功能划分清晰,硬件化的设计释放了CPU的负荷,增强了计算稳定性,减少了数据处理时间。

附图说明

图1为3D打印机挤出头的几种常见的速度曲线。

图2为传统的挤出头速度控制解决方案的固件程序处理流程。

图3为本发明实施例的硬件IP核整体模块框图。

图4为包含在本发明实施例硬件IP核模块中的FIFO及相关寄存器示图。

图5为本发明实施例硬件IP核中运动参数预处理模块的硬件框图。

图6为本发明实施例硬件IP核中运动参数预处理子模块的状态机状态转换图。

图7为本发明实施例硬件IP核中速度曲线生成器模块的硬件框图。

图8为本发明实施例硬件IP核中梯形速度曲线生成器模块的硬件框图。

图9为本发明实施例硬件IP核中速度曲线优化器模块的硬件框图。

图10为本发明实施例硬件IP核中输出模块的硬件框图。

图11为本发明实施例硬件IP核中系统控制器模块的状态机状态转换图。

图12为本发明实施例硬件IP核中块缓存管理模块的硬件框图。

图13为传统用软件实现的3D打印机实验结果示意图。

具体实施方式

下文结合实施例的方式进一步详细描述本发明的具体细节与特征。

图3为本发明实施例的硬件IP核整体硬件框图,3D打印机挤出头梯形速度曲线控制系统包括运动参数预处理模块300、速度曲线生成器模块301、速度曲线优化器模块302、输出模块303、系统控制器模块304、块缓存管理模块305。

运动参数预处理模块300是整个硬件IP核装置中最先被执行的,优先级在其他模块之上,只要FIFO不为空,并且通过判断系统控制器模块304传过来的信号满足读FIFO的条件,它便会连续读出数据进行运算,其主要功能是负责挤出头运动主要参数的计算,如走步数、打印头运动方向、加速度、距离,且通过相应的条件判断来保证每个运动块能够正确运行而不出现错误,以便后面的模块能正常运行。

速度曲线生成器模块301、速度曲线优化器模块302和输出模块303这三个子模块都需要对RAM缓存器进行读写操作,且存在执行优先级的问题,而系统控制器模块304就是负责完成这部分的功能,三个子模块中,速度曲线生成器模块301的优先级最高,并且按照速度曲线生成器模块301、速度曲线优化器模块302和输出模块303的顺序被执行。

速度曲线生成器模块301主要的功能是通过上一个模块(运动参数预处理模块300)的输出参数利用梯形速度曲线生成器来规划每个运动块的运行轨迹,即产生相应的梯形速度运动曲线。

速度曲线优化器模块302负责RAM中所有的块的运动规划,即将所有块的单个梯形速度曲线首尾相连,形成一个完整的速度曲线,使得RAM中所存放的块能够连续性运行。

输出模块303负责从块缓存管理模块305中取出挤出头运动的相关速度数据,传递给外设步进电机驱动器模块,驱动挤出头按照指定的运动轨迹运行。

块缓存管理模块305更像是系统控制器模块304的补充,在系统控制器模块304完成对其他几个模块的控制执行时,需要对RAM进行读写操作,而块缓存管理模块305就是负责根据输入的读写信号和读写地址,读取或写入相对应的数据,并会反馈RAM缓存器的首尾地址以及空满状态。为了更准确的叙述本发明的工作机理及处理流程,以下对该3D打印机挤出头梯形速度曲线硬件IP核分模块进行具体阐述。

图4是本发明硬件IP核模块中的FIFO及寄存器,5个FIFO分别存储模块的输入数据;即FIFO_x_module存储输入的X轴目的坐标,FIFO_y_module存储Y轴输入的目的坐标,FIFO_z_module存储Z轴输入的目的坐标,FIFO_e_module存储E轴输入的目的坐标,FIFO_feedrate_module存储输入的给进速度值;其他22个寄存器都是存储用于计算速度曲线的固定值。如axis_steps_per_unit_x寄存器、axis_steps_per_unit_y寄存器、axis_steps_per_unit_z寄存器、axis_steps_per_unit_e寄存器用来分别存储X、Y、Z、E轴单位距离所走步数,用来计算相应的速度参数;EXTRUDE_MAXLENGTH寄存器用于存储挤出头所允许的最大长度,用来判定所运行的块是否在可控范围内;dropsegments寄存器用于存储块所允许的最小步数,用此来运行的块是否符合最小要求;mintravelfeedrate寄存器存储最小给进速度,当E轴所要走的步长为零时,来限定块的运行速度;mintravelfeedrate寄存器用来存储最小进料速度,当E周所要走的步长不为零时,来限定块的运行速度;minsegmenttime寄存器存储块所允许的最小运行时间,来限定块的运行时间,最终达到限定运行速度的目的;max_feedrate_x寄存器、max_feedrate_y寄存器、max_feedrate_z寄存器、max_feedrate_e寄存器分别存储X、Y、Z、E轴所允许的最大速度,来限定各轴的最大速度;retract_acceleration寄存器存储E轴回抽时的加速度;acceleration_frommain寄存器存储默认加速度来计算并调整加速度(单位为mm/sec^2);axis_steps_per_sqr_second_x寄存器、axis_steps_per_sqr_second_y寄存器、axis_steps_per_sqr_second_z寄存器、axis_steps_per_sqr_second_e寄存器分别用来存储X、Y、Z、E轴的加速度,以此来计算各轴的加速度;max_xy_jerk寄存器、max_z_jerk寄存器和max_e_jerk寄存器分别用来存储X、Y、Z以及Z轴所允许的连接处的最大速度,用来计算块的进入速度和安全速度;module_status状态寄存器表示当前模块的一些状态,如来自步进电机驱动模块的中断信号int,FIFO的空状态fifo_empty,FIFO的满状态fifo_full,模块处于工作状态module_busy;module_en寄存器存储运动参数预处理模块、速度曲线生成器模块、速度曲线优化器模块、输出模块这四个子模块的使能标志位pp_en、sc_en、sr_en、do_en。

图5为本发明硬件IP核中运动参数预处理模块的硬件框图,模块接收到FIFO500及寄存器文件501的数据后进行数据运算处理。该子模块的输出数据主要有各轴走步数、各轴运动位移、运动位移、额定速度、加速度、进入速度等,这些数据计算出的数据最终存放在RAM缓存器中。模块的状态机502在模块中起着至关重要的作用,它不仅产生FIFO读使能信号,而且还控制着周期计数器的运行,并且根据状态机所处的状态,输出表示模块工作状态的信号。

图6为本发明硬件IP核中运动参数预处理模块中状态机的状态转换图,当表示FIFO为空,或者RAM缓存器为满状态时,状态机持续处于S0状态,FIFO读使能信号为假,模块处于空闲状态,不能进行运动参数的计算;且周期计数器503的清零信号为真,将周期计算器503的周期寄存器清零;只有当FIFO不为空,并且RAM不为满时,状态机才进入S1状态位,且同时产生FIFO读使能信号,读取FIFO中的数据;在S1,若计数周期数小于57,则状态机一直维持在S1状态,FIFO读使能信号和周期计数器清零信号都置为“0”,此状态进行运动参数的运算;当计数周期数等于57,时,表示模块的计算执行完毕,状态机转向S0状态位。状态机在S1状态,则会进行相关的运算处理,在接收到FIFO以及寄存器的数据(目的坐标、给料速度以及寄存器中的数据)之后,输入到分别计算X、Y、Z、E四个轴数据的32位乘法器504中,并将得到的结果锁存505,这里得到的结果是目的位移和目的步长。将上面得到的各轴的数据输入到32位的减法器506中,即可得到当前块的运动方向,和各轴的运动步长以及各轴的位移长度,并将结果锁存。还需利用cordic三维数据开方器507中计算得出运动的总位移。

图7为本发明硬件IP核中速度曲线生成器模块的硬件框图,该子模块根据前面运动参数预处理模块300得到的参数,初步生成当前计算块块的梯形速度曲线,并存入到RAM缓存器中以便后面的模块调用。该子模块主要是利用挤出头的总位移、初始速度、退出速度、额定速度以及加速度等参数,运用速度位移公式()来计算出速度曲线中的加速阶段、匀速阶段以及减速阶段的位移和速度,以此即可完成一个完整的速度曲线。这部分功能主要由梯形速度曲线生成器模块700来完成的。

图8为梯形速度曲线生成器模块700的硬件框图,该模块的主要功能是运用加减速运动中的速度位移公式来计算所需要的速度曲线中加速阶段、匀速阶段以及减速阶段的位移。模块得到运动参数预处理模块300传来的挤出头运动的数据,初始速度、退出速度、额定速度、加速度以及总位移等,分别输入到初始速度乘法器800得到初始速度的平方值,输入到额定速度乘法器801得到额定速度的平方值,以及输入到退出速度乘法器802中得到退出速度的平方值。将得到的初始速度平方值和额定速度平方值输入到加速阶段初末速度平方减法器803中,其结果送到加速位移运算除法器804中除以二倍的加速度值,即可得到加速阶段的位移。将得到的额定速度平方值和退出速度平方值输入到减速阶段初末速度平方减法器805中,其结果送到减速位移运算除法器806中除以二倍的加速度,即可得到减速阶段的位移。将得到的加速阶段位移和减速阶段位移送入到匀速位移运算减法器中807与挤出头合运动的总位移相减,即可求得匀速阶段的位移。但挤出头的速度曲线不一定是标准的梯形速度曲线,可能不存在匀速阶段,故需要在匀速位移是否为零比较器中判断匀速位移是否等于零,所不等于,则可输出结果,若等于,则需要利用初始速度平方值和退出速度平方值在没有匀速阶段初末速度平方减法器808和无匀速阶段加速位移运算除法器809中计算出加速距离,也即求出了速度曲线所需要的开始减速的位移值,并将结果锁存并输出。

图9为本发明硬件IP核中速度曲线优化器模块的硬件框图,本模块的主要功能是从RAM缓存器中取出已经存放好的块计算块来进行各个计算块的速度曲线优化,以实现相邻块之间的速度曲线能够平顺相连,从而保证驱动电机转速变化能够平滑过渡。模块对计算块的速度曲线优化分为三个阶段,反向速度曲线优化、正向速度曲线优化以及梯形速度曲线生成阶段,三个阶段分先后执行。本模块主要的三个组成部分反向速度曲线优化器900、正向速度曲线优化器901以及梯形速度曲线生成器902的执行顺序需要四状态控制机903的作用,状态机不仅控制这三部分,还需要对数据三级锁存产生读地址,以及所需要的清理信号,清理信号主要是在反向速度曲线优化器900、正向速度曲线优化器901以及梯形速度曲线生成器902在转换执行顺序时产生,以将三级缓存中的数据清除来接收新的数据。在接收到数据后,首先执行的反向速度曲线优化,产生的读地址也需要送入反向速度曲线优化地址计数器,在计数器未计算完,反向速度曲线优化器900一直被执行,计数器的值也会返回给状态机,然后经过正向速度曲线优化地址计算器的运算,在计数器未计算完的情况下,执行正向速度曲线优化器901,最后切换至梯形速度曲线生成地址计算器,执行梯形速度曲线生成器902,即可完成整个速度曲线的优化过程。

图10为本发明硬件IP核的输出模块的硬件框图,该子模块主要功能是将获得的梯形速度曲线运动参数分为加速、匀速、减速三个阶段输出至步进电机驱动器。输入的数据是从RAM缓存器中获得,即从块缓存管理模块305处得到,所获得的运动参数是挤出头运动的速度曲线以及各轴所走位移长度的相关数据,并将输入数据锁存。速度曲线分为三个阶段,即加速阶段、匀速阶段以及减速阶段,而对于输出模块而言,只能按顺序依次输出某一个运动阶段,什么时候应该输出速度曲线哪一个阶段的运动参数这就需要用到模块中的阶段输出控制状态机1000来实现。阶段输出控制状态机1000分别控制加速阶段运动参数计算器1001、匀速阶段运动参数计算器1002、减速阶段运动参数计算器1003来完成梯形速度曲线的输出。

图11为本发明硬件IP核的系统控制器模块的状态机状态转换图,系统控制器模块是整个硬件IP核的中心大脑,是负责控制几个子模块合理地被执行的功能单元,也是连接运动参数预处理模块300、速度曲线生成器模块301、速度曲线优化器模块302和输出模块303这几个子模块的枢纽。状态机存在四个状态S0、S1、S2、S3;三个控制输出信号sc_start、sr_start、do_start来分别控制速度曲线生成器模块301,速度曲线优化器模块302,输出模块303这三个模块的执行。当状态机处于S1状态并正在进行速度曲线生成器模块301的执行时,状态机会一直停留在S1;或者当处于状态S1,但速度曲线生成器模块301已执行完成(sc_busy为假),此时只要FIFO不为空(FIFO_empty为假),或运动参数预处理模块300处于工作状态(pp_busy为真),或该模块的输出有效信号pp_valid为真,同样状态机将会一直处于S1,则sc_start为真,驱动速度曲线生成器模块301的执行。只有当速度曲线生成器模块301处于空闲状态(sc_busy为假),且执行信号sc_start为假,加上RAM缓存器不为空(rambuffer_isempty为假)这三个条件同时成立,状态才由S1转换为S2。状态机处于S2时,当速度曲线优化器模块302处于忙状态(sr_busy为真),则状态机持续停留在S2;而当速度曲线优化器模块302处于空闲状态时(sr_busy为假),状态机根据状态转换的条件不同可朝两个不同的方向进行转化,由于几个模块的执行计算中,速度曲线生成器模块301的执行优先级最高,当运动参数预处理模块300有处理完的有效数据或者正在进行数据的处理,则状态转向S1,执行速度曲线生成器模块301;当表示RAM中有数据可供输出模块303读取,状态转换至S3,则do_start置为1,驱动该模块开始执行。状态机处于S3时,输出模块303处于忙状态(do_busy为真),则状态机一直停留在S3;但当do_busy为假时,状态机根据转换条件的不同可向三种不同的状态进行转换。由于速度曲线生成器模块301的执行优先级最高,当RAM缓存器中还有数据没被读出,此时状态机继续维持在状态S3,将输出模块303的执行信号do_start置为1,驱动模块的运行,使其能够连续性读取RAM中的数据,并输出至步进电机驱动模块,这样便能高效的加快数据的处理速度,也在一定程度上提高了3D打印的速度。

图12为本发明硬件IP核中块缓存管理模块的硬件框图,在整个硬件IP核中,有速度曲线生成器模块、速度曲线优化器模块和输出模块三个模块需要对块缓存模块进行读写。其中,速度曲线生成器模块301只需对块缓存管理模块进行写,速度曲线优化器模块302需要对块缓存管理模块进行读和写,而输出模块303对块缓存管理模块只进行读。而这三个子模块是如何进行读写,以及它们对RAM缓存器进行读写操作时RAM的首尾地址是如何变化的,这就依赖于块缓存管理模块的作用。当速度曲线生成器对RAM缓存器1202进行写数据时,由RAM缓存器头部地址生成器1200处理使得RAM头部地址加1,当速度曲线优化器模块302对其读写数据时,头尾地址不发生变化,当输出模块对其读取数据时,由RAM缓存器尾部地址生成器1201处理使得尾部地址加1。本发明的3D打印机挤出头梯形速度曲线硬件IP核的实施例如上描述,当发生特殊情况时,CPU可通过调用该硬件IP核的驱动程序来进行控制。

本发明3D打印机挤出头梯形速度曲线控制系统是通过硬件实现的,其改变了原有固件程序在驱动挤出头运行时需要分时运行的缺陷,硬件化的设计使得控制各个坐标轴的步进电机能够并行独立运行。且简化了挤出头梯形速度曲线的计算过程,硬件IP核中各个子模块负责相应的功能,结构清楚,CPU通过简单的调用驱动函数即可实现控制。彻底解决了原解决方案中需要运用定时器中断程序来驱动挤出头运行的问题,避免了和3D打印机电子系统中温度控制的定时器中断程序所产生的冲突问题。大大释放了CPU的负荷,有效的提高了计算稳定性,显著减少了计算时间,为提高3D打印的实际打印速度做出相应的贡献。

本发明3D打印机挤出头梯形速度曲线控制系统的硬件IP核划分为运动参数预处理模块300、速度曲线生成器模块301、速度曲线优化器模块302、输出模块303、系统控制器模块304、块缓存管理模块305这六大子模块。还包含有存储数据的FIFO306以及寄存器文件307,各个模块分工明细,协同运作,有效的计算出打印头运动的速度、运动方向、加速度、走步数等数据,为打印头的精准移动提供有力支持。其特点包括:

1.六个子模块相互衔接,共同作用,且由模块控制器进行整体的执行控制;

2.模块的使用者只需给其输入各坐标轴所需运动目的坐标和整体运行速度即可得到一个完整的打印头运动轨迹(这依赖于本模块的输出参数);

3.每组输入数据所计算出来的参数中,对于几个子模块所共用的一些数据和用于输出给PWM以便控制步进电机运动的相关运动参数以一个运动块的形式存储在RAM中;

4.每次每个模块只执行一个运动块的计算,但只要FIFO不为满状态模块使用者可向其写入多组数据供模块连续读取进行运算;

5.速度曲线生成器模块301、速度曲线优化模块302和输出模块303,三个模块的运行有相互制约且执行优先级的关系(速度曲线生成器302的优先级最高),具体实现依靠系统控制器模块304和块缓存管理模块305的作用;

6.Nios II可监视模块的状态寄存器,了解模块的工作状态。

模块中包含5个FIFO和24个寄存器(其中22为数据寄存器),均与Avalon总线相连,总线可直接访问FIFO和寄存器。

本发明提出的3D打印机挤出头梯形速度曲线控制系统摒弃了原解决方案中需要定时器驱动挤出头运行的缺陷,彻底解决了与温度控制中定时器中断程序所产生的冲突问题,增强了计算稳定性。所有计算过程都通过硬件实现,减少了数据处理所花费的时间。本发明的硬件IP核挂接在Avalon总线上,CPU可通过调用相应的驱动函数即可实现对此IP核的控制。相较于原解决方案,本发明无需CPU承担复杂的计算,大大释放了CPU的负荷,为3D打印机的功能扩展(如无线打印、操作系统等)提供可能。通过实验,输入一组G代码数据数据G1X17Y17Z1E1F3000,分别对应X、Y、Z、E四个轴的目的坐标以及给进速度,在所搭建的实验平台上运行移植过来原固件程序,在固件程序中插入用来测试时间的函数millis(),实验测得这组数据的处理时间为4.3056ms。而在实验平台上改用本发明所设计的硬件IP核来处理这组数据,在硬件程序中插入一个周期计数器,读取周期寄存器中的数据得到模块共经历176个周期,实验工作主频为80MHZ,计算得模块处理这组数据的时间为2.2μs,可见在只是处理一组数据时,相比用软件实现的原固件来说,新型挤出头运动驱动器的数据处理时间缩短了1957倍之多。而实际的3D打印是成千上万组G代码数据集中处理的过程,故足以见得仅仅在程序处理数据过程中本发明所设计的硬件IP核相较于现有3D打印机挤出头运动驱动的解决方案在数据处理速度方面有了相当大的改进,为提高3D打印机时间打印速度提供了有效贡献。通过输入多组G代码数据进行实验并观察得到,原固件中的解决方案在数据处理时间的稳定性不够,往往会由于其他程序的影响,使得处理时间发生突变现象,而本发明所设计的硬件IP核的数据处理时间一直维持不变,表现出足够的稳定性,且数据处理时间远小于原有解决方案。

总之,本发明所设计的硬件IP核功能划分清晰,硬件化的设计释放了CPU的负荷,增强了计算稳定性,减少了数据处理时间。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1