脉冲的生成方法及装置的制造方法_2

文档序号:9631056阅读:来源:国知局
冲分频参数对高频脉冲进行分频处理,生成低频脉冲,实现了 可以通过上位机来设定输出脉冲个数的效果,解决了伺服驱动器接收到的脉冲频率过高, 上位机无法识别的问题。
[0035] 可选地,步骤S14,伺服驱动器根据数据请求指令获取电机编码器发送的数字信号 的步骤可以包括:
[0036] 步骤S141,伺服驱动器向电机编码器发送位置反馈命令。
[0037] 步骤S142,伺服驱动器接收电机编码器根据位置反馈命令生成的数字信号,其中, 数字信号包括电机单圈数据以及电机多圈数据。
[0038] 在上述步骤S141至步骤S142中,伺服驱动器在接收到编码器的数据之后,可以从 编码器数据分出编码器单圈数据以及多圈数据,伺服驱动器可以根据单圈数据以及多圈数 据生成脉冲和判断电机方向。
[0039] 可选地,步骤S14,伺服驱动器将数字信号转化为高频脉冲的步骤可以包括:
[0040]步骤S143,伺服驱动器对电机单圈数据以及电机多圈数据进行差值处理,生成结 果数据。
[0041] 步骤S144,伺服驱动器将结果数据发送至脉冲产生模块,由脉冲产生模块将结果 数据转换为高频脉冲。
[0042] 在上述步骤S143至步骤S144中,本方案可以将读取到的电机单圈数据以及电机 多圈数据进行整合处理,生成100μS之间的差值,然后将该差值使用累加器进行处理,可 选地,伺服驱动器中的脉冲产生模块使用累加器产生一定数量的高频脉冲。
[0043] 可选地,本方案中,高频脉冲的产生原理可以为如下:
[0044]FPGA在取得编码器信息后,经并口通讯给DSP;同时再分出编码器单圈和多圈数 据用作产生脉冲和判断电机方向。本方案可以用使用累加器去实现输出一定数量的高频脉 冲。如果要在100μS时间里产生8000个脉冲,那么频率f= 80Mhz,反过来计算,按照f =80Mhz频率来对1进行累加,累加8000次,所用时间是100μs,如果把累加器的最大值 设定为8000那么对于累加1来说,100μs累加器刚好溢出1次,可以产生一个脉冲。对于 电机6000r/min转速下,17bit编码器来说,100μs采集的数据大概是1310。在本设计中, 累加器满值设为8000,时钟频率80Mhz,累加器步长Λdata为100μs周期采集的编码器单 圈数据的差值,这样电机旋转一圈,就可以产生131072个脉冲。根据正交脉冲的特征,就把 131072个脉冲当作正交脉冲沿来使用,那么可以产生32768个正交脉冲。如果需要更多的 脉冲,那么通过提高频率就可以实现。
[0045] 可选地,脉冲分频参数至少包括:伺服驱动器的累加器的步长初始值以及累加器 的满值,其中,步骤S16伺服驱动器根据预设脉冲个数、高频脉冲的总数生成脉冲分频参数 的步骤包括:
[0046] 伺服驱动器根据以下公式计算伺服驱动器的累加器的步长初始值以及累加器的 满值:
其中,为预设脉冲个数,ριη为高频 脉冲的总数,η为分频数,a为累加器的步长初始值,其中,累加器采用?_作为累加器的满 值。
[0047] 具体地,从上述公式可以看出,本方案可以实现任意小数的分频。
[0048] 可选地,伺服驱动器包括累加器以及加减计数器,低频脉冲为正交脉冲,其中,步 骤S18,伺服驱动器使用脉冲分频参数对高频脉冲进行分频处理,生成低频脉冲的步骤包 括:
[0049] 步骤S181,伺服驱动器使用累加器控制输出高频脉冲至加减计数器,其中,累加器 采用a作为步长初始值,采用Pciut作为满值。
[0050] 在上述步骤S181伺服驱动器中可以包括累加器与加减计数器,由累加器与加减 计数器协同工作,实现高频脉冲的分频。
[0051] 步骤S182,加减计数器对高频脉冲进行计数,并根据累加器发送的高频脉冲的数 量按照预定规则生成高频脉冲与正交脉冲的对应关系。
[0052] 步骤S183,加减计数器将累加器发送的高频脉冲转发至脉冲分频模块,其中,脉冲 分频模块根据对应关系对高频脉冲进行分频处理,生成正交脉冲。
[0053] 可选地,本方案的脉冲再生(脉冲分频)的算法结构图如图5所示,在图5中,可 以包括编码器、累加器、加减计数器等程序模块,图5中的编码器通讯协议可以为多摩川编 码器TS5667N120所用的数据记忆芯片AU5982来编写的VHDL代码,为了缩短研发周期这一 部分代码,代码可以由编码器厂家提供,只要把读写命令按照它的时序下发即可,本算法程 序里设置读写周期100μs;从发送命令到接受完数据,读取编码器所有信息过程,真正所 用时间是48. 8μs,然后把读取的单圈数据和多圈数据进行整合处理,得到100μs之间的 差值,把这个差值用累加器处理,转变成脉冲这是脉冲产生模块了。在控制板上电后,DSP通 过并口通信向FPGA发下电机没每旋转一周的脉冲数,FPGA保存数据并进行处理,加载到累 加器中。
[0054] 在图5的算法结构图基础之后,现介绍脉冲再生算法的具体实现原理:
[0055] 首先通用的分频公式为如下:
[0056] ⑴
[0057] 需要说明的是,在上述公式(1)中,?_是分频脉冲输出总数,ριη是待分频脉冲输 入,η是分频数(不为0的整数)。根据η是奇数还是偶数,可以分为奇数和偶数分频。本 方案结合具体工程应用可以把公式(1)可以写成如下公式(2):
[0058] pin=K*Pout (2)
[0059] 其中,
(n,b都为不为0的整数,a可以为0)。
[0060] 比较公式(1)与公式(2)可知,公式(1)的系数η为不为0的整数,公式(2)的系 数Κ为不为0的实数,这说明公式(2)可以实现在一定范围内的任意实数分频数。如果用 参数来替代系数b,那可以把公式(2)变成如下公式(3):
[0061] (3)
[0062] 由于ριη输入总脉冲数和p_上位机设定需要输出总脉冲数,这两个参数都是已知 的,可以求出系数K中的n,a。公式(3)相当于把公式(1)中的系数整数化结合累加器的 周期性,通过判断累加器是否溢出,累加器值溢出那么执行pin =n+1个脉冲,P_输出一个脉 冲;否则执行ριη =,脉冲,P_输出一个脉冲。a为累加器步长和初始值,p_为累加器满 值。举个例子:取一对数据{口_^1)} = {7,17},可以求出{]1,3} = {2,3}&11与口_以及 累加器的关系如图6所示,从图6中可以得出一个结论:在累加器值中任意两个相同数值之 间,输入Pin个脉冲,就会输出P_个脉冲。
[0063] 需要说明的是,由于一个正交脉冲有四种状态:00,10,11,01,可以根据编码器 100μS之间的位置差值,来判断电机正反转。如图7所示,在本方案中可以设计一个加减计 数器cnt,对高频脉冲进行计数,加减技术器可以生成加减计数器内部数据与正交脉冲的对 应关系,对应关系如表一所示,在FPGA中只要实现上述对应关系,则可以控制脉冲发射模 块产生符合条件的正交脉冲了。
[0064]表一
[0065]
[0066] 由上可知,本方案可以实现如下效果,首先把编码器数据变成一定个数的高频脉 冲,然后根据电机转向把高频脉冲转变成上位机设定个数的正交脉冲的效果。
[0067] 实施例二
[0068] 本发明实施例还可以提供一种脉冲的生成装置,如图7所示,该装置可以包括:接 收单元70,用于接收上位机发送的数据请求指令,其中,数据请求指令至少包括:预设脉冲 个数;获取单元72,用于根据数据请求指令获取电机编码器发送的数字信号,并将数字信 号转化为高频脉冲;生成单元74,用于根据预设脉冲个数、高频脉冲的总数生成脉冲分频 参数;处理单元76,用于使用脉冲分频参数对高频脉冲进行分频处理,生成低频脉冲。
[0069] 本方案通过伺服驱动器接收上位机发送的数据请求指令,其中,数据请求指令至 少包括:预设脉冲个数;伺服驱动器根据数据请求指令获取电机编码器发送的数字信号, 并将数字信号转化为高频脉冲;伺服驱动器根据预设脉冲个数、高频脉冲的总数生成脉冲 分频参数;伺服驱动器使用脉冲分频参数对高频脉冲进行分频处理,生成低频脉冲,实现了 可以通过上位机来设定输出脉冲个数的效果,解决了伺服驱动器接收到的脉冲频率过高, 上位机无法识别的问题。
[0070] 可选地,获取单元可以包括:发送模块,用于向电机编码器发送位置反馈命令;生 成模块,用于接收电机编码器根据位置反馈命令生成的数字信号,其中,数字信号包括电机 单圈数据以及电机多圈数据。
[0071] 可选地,获取单元还可以包括:处理模块,用于对电机单圈数
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1