The invention discloses a method and a device for realizing pulse uniform output based on FPGA, which relates to the technical field of industrial numerical control, generates synchronous clocks according to the clock of the FPGA system, processes synchronous data and sends multi-axis pulses synchronously with the CPU, and writes pulse string parameters synchronously into the FPGA through the CPU, and according to the F. PGA system clock processes the pulse output of multiple pulse trains by preset addition operation, which makes the pulse output of FPGA uniform and improves the quality and precision of output pulse. Compared with traditional division operation, addition operation does not produce remainder, reduces the precision of pulse output, and additive operation reduces operation. Calculate the time needed to reduce the consumption of hardware resources.
【技术实现步骤摘要】
一种基于FPGA实现脉冲均匀输出的方法及装置
本专利技术涉及工业数控
,尤其涉及一种基于FPGA实现脉冲均匀输出的方法及装置。
技术介绍
在数控系统中,连接多个脉冲串类型驱动器时,一般单独使用一个FPGA进行多路脉冲串同时输出控制,实现多轴的同步运行。但是传统的FPGA实现脉冲串输出一般采用除法运算,即在每个插补周期开始时,由一次插补周期内FPGA的系统时钟数Clocks除以该周期需要输出的脉冲数Pulse,从而得到每产生一个脉冲需要间隔的时钟数Period,即:Period=Clocks/Pulse。如果Clocks能够被Pulse整除,则该除法算式不会产生余数,按照每Period个FPGA时钟产生一个脉冲输出,则在一个插补周期结束时,就会产生Pulse个脉冲输出。但是在Clocks不能够被整除时,则会产生余数,如果这时候仍然按照每间隔Period个时钟周期产生一个脉冲输出,则有可能在一个插补周期结束时,产生超过Pulse个脉冲的输出。一般解决这个算法存在的问题,是在脉冲输出部分添加一个积分电路,将每次的余数计入积分器,在积分器数值达到Period脉冲时,进行一次脉冲输出的修正,从而达到最终输出Pulse个脉冲的目的。这样虽然能够输出正确的脉冲个数,但是在脉冲修正的过程中,必然会造成输出脉冲频率的变化,从而会导致设备进给速度的变化,可能会造成设备的抖动或者刀具纹路的变化,从而降低了设备的加工精度。
技术实现思路
本专利技术要解决的技术问题目的在于提供一种基于FPGA实现脉冲均匀输出的方法及装置,用以解决现有数控系统中脉冲串输出不均匀,导致产生精度误差的 ...
【技术保护点】
1.一种基于FPGA实现脉冲均匀输出的方法,其特征在于,包括步骤:步骤一、获取插补周期及FPGA的系统时钟信息;步骤二、根据插补周期同步时钟,读取脉冲串参数并获取所述脉冲串的初始相位值作为预设数值;步骤三、判断FPGA的系统时钟是否触发,若是,则获取所述插补周期内的所需发送的脉冲个数以对所述预设数值进行累加;步骤四、获取所述插补周期内输出脉冲的电平状态,判断所述电平状态是否为高电平,若是,执行步骤五,若否,则执行步骤六;步骤五、判断所述预设数值是否大于所述插补周期内系统时钟高电平所占个数,若是,则将所述输出脉冲翻转,改变为低电平状态输出并将所述预设数值与所述系统时钟高电平所占个数的差值作为所述预设数值的初始值,转至步骤三;步骤六、获取所述插补周期内系统时钟个数与所述插补周期内系统时钟高电平所占个数的差值作为第一差值,判断所述预设数值是否大于所述第一差值,若是,则将所述输出脉冲翻转,改变为高电平状态输出并将所述预设数值与所述第一差值的差值作为所述预设数值的初始值,转至步骤三。
【技术特征摘要】
1.一种基于FPGA实现脉冲均匀输出的方法,其特征在于,包括步骤:步骤一、获取插补周期及FPGA的系统时钟信息;步骤二、根据插补周期同步时钟,读取脉冲串参数并获取所述脉冲串的初始相位值作为预设数值;步骤三、判断FPGA的系统时钟是否触发,若是,则获取所述插补周期内的所需发送的脉冲个数以对所述预设数值进行累加;步骤四、获取所述插补周期内输出脉冲的电平状态,判断所述电平状态是否为高电平,若是,执行步骤五,若否,则执行步骤六;步骤五、判断所述预设数值是否大于所述插补周期内系统时钟高电平所占个数,若是,则将所述输出脉冲翻转,改变为低电平状态输出并将所述预设数值与所述系统时钟高电平所占个数的差值作为所述预设数值的初始值,转至步骤三;步骤六、获取所述插补周期内系统时钟个数与所述插补周期内系统时钟高电平所占个数的差值作为第一差值,判断所述预设数值是否大于所述第一差值,若是,则将所述输出脉冲翻转,改变为高电平状态输出并将所述预设数值与所述第一差值的差值作为所述预设数值的初始值,转至步骤三。2.根据权利要求1所述的一种基于FPGA实现脉冲均匀输出的方法,其特征在于,所述步骤一还包括步骤:采用FPGA系统时钟产生插补周期同步时钟,将脉冲串参数同步写入FPGA。3.据权利要求1或2所述的一种基于FPGA实现脉冲均匀输出的方法,其特征在于,所述步骤二还包括:通过所述插补周期同步时钟,产生锁存信号以将所述脉冲串参数信息锁存至预设寄存器中。4.权利要求1所述的一种基于FPGA实现脉冲均匀输出的方法,其特征在于,所述脉冲串参数包括插补周期所需发送的脉冲个数、插补周期内系统时钟高电平所占个数、脉冲串初始相位值。5.根据权利要求1所述的一种基于FPGA实现脉冲均匀输出的方法,其特征在于,还包括步骤:获取所述FPGA系统时钟周期,接收插补周期时长,计算所述插补周期内系统时钟个数上式中,Clocks表...
【专利技术属性】
技术研发人员:王金领,卢鸥,徐百里,邹骞,卓宏治,魏威,岳巍,
申请(专利权)人:海天塑机集团有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。