本发明涉及主轴伺服控制器倍频编码器线数,具体为一种通过dsp的clb模块输出任意线数的编码器倍频方法。
背景技术:
1、在编码器的倍频输出领域,大多数用于机床行业的数控系统接收伺服反馈回来的abz信号或者plc接收伺服反馈回来的编码器位置,传统的编码器倍频的方法有1:通过搭建硬件电路来实现倍频输出;2:通过fpga来实现编码器的倍频输出。
2、第一种方法倍频输出的倍数是固定不变,ab相位的超前也没法改变。很难达到现场任意线数倍频。第二种方法可以达到任意线数倍频和ab之间的相位也可以由fpga来调整,但是需要在原来的电路上多加一块fpga的芯片,这导致了产品的硬件成本和软件管理成本都大幅增加。
技术实现思路
1、本发明的目的在于提供一种通过dsp的clb模块输出任意线数的编码器倍频方法,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种通过dsp的clb模块输出任意线数的编码器倍频方法,包括以下步骤:
3、s1:在dsp芯片程序中,开一个10ms的定时中断,采集10ms时间内编码器的脉冲差量个数pluse0,通过原始的编码器线数number0和倍频后的编码器线数number1计算出倍频后的脉冲差量个数pluse1;
4、s2:通过步骤1计算出来的脉冲个数pluse1和10ms时间t计算出倍频后的脉冲周期时间tpluse以及脉冲周期时间余数trem;
5、s3:通过脉冲周期时间tpluse和clb的时钟信号tclk,得出clb的计数的match值;
6、s4:通过clb的查找表(lut)来得出当前编码器的方向,方向为正输出高电平,方向反方向输出低电平,得出方向后以便于ab谁先跳变;
7、s5:在周期时间余数trem时间内,clb的计数块的match减一,10ms时间内的其他时间还是match值;
8、s6:根据s5刷新clb的一路计数块的match1和match2的值;
9、s7:根据s6的结果,刷新clb的其中一路计数块的match1 ref和match2ref寄存器,接着判断计数块的时钟计数值是否比当前计算出来match值大,如果大,则把计数块的时钟计数值更新为match值。该步骤计数块得到不包含方向的ab信号;
10、s8:根据s4和s7的结果,决定a信号先跳变还是b信号跳变,从而达到方向同步。
11、更进一步地,步骤s1中,pluse1计算公式如下:
12、更进一步地,步骤s2中,计算公式如下:trem=t%pluse1。
13、更进一步地,步骤s3中,计算公式如下:
14、更进一步地,步骤s6中,计算公式如下:match1=match,
15、与现有技术相比,本发明的有益效果是:
16、该通过dsp的clb模块输出任意线数的编码器倍频方法,与现有技术的区别在于,单位时间(t)内记录芯片捕捉到编码器的脉冲个数pluse0,通过倍频数(m),再在下一个单位时间内输出倍频后的脉冲个数pluse1,从而达到倍频。
1.一种通过dsp的clb模块输出任意线数的编码器倍频方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种通过dsp的clb模块输出任意线数的编码器倍频方法,其特征在于:步骤s1中,pluse1计算公式如下:
3.根据权利要求1所述的一种通过dsp的clb模块输出任意线数的编码器倍频方法,其特征在于:步骤s2中,计算公式如下:trem=t%pluse1。
4.根据权利要求1所述的一种通过dsp的clb模块输出任意线数的编码器倍频方法,其特征在于:步骤s3中,计算公式如下:
5.根据权利要求1所述的一种通过dsp的clb模块输出任意线数的编码器倍频方法,其特征在于:步骤s6中,计算公式如下:match1=match,