基于FPGA的脉冲产生控制方法、终端设备及可读存储介质与流程

文档序号:28704003发布日期:2022-01-29 13:25阅读:167来源:国知局
基于FPGA的脉冲产生控制方法、终端设备及可读存储介质与流程
基于fpga的脉冲产生控制方法、终端设备及可读存储介质
技术领域
1.本发明涉及机器人运动控制技术领域,尤其涉及一种基于fpga的脉冲产生控制方法、终端设备及可读存储介质。


背景技术:

2.在运动控制领域,通过运动控制器输出脉冲去控制电机的正转/反转是一种常用的驱动电机方式。脉冲的产生,可以使用软件模拟的方式,也可以使用专用的运动控制芯片。其中,使用软件模拟的方式,受限于单片微型计算机自身的性能以及软件顺序执行上的延时,导致输出的脉冲频率不精确,当需要控制多个轴的时候,各轴的同步性也无法保证,例如,工业机器人通常使用软件插补方式来对轴运动进行控制,由于该控制方式是由软件来实现的,而软件程序在执行时是按顺序进行的,因此对于具有多个轴的机器人的轴运动只能按顺序进行运动,而不能使多个轴进行同步运动。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提供一种基于fpga的脉冲产生控制方法、终端设备及可读存储介质,旨在解决使用软件模拟的方式,当需要控制多个轴的时候,各轴的同步性无法保证的问题。
5.为实现上述目的,本发明提供一种基于fpga的脉冲产生控制方法,通过fpga的引脚与待控制的各个轴电连接,基于fpga生成的各个轴的驱动脉冲以驱动对应的轴运动,所述基于fpga的脉冲产生控制方法包括:
6.获取各个轴所对应的脉冲频率控制字;
7.根据获取的每个轴的脉冲频率控制字的累加值确定每个轴的驱动脉冲的控制参数;
8.在根据每个轴所对应的所述控制参数确定满足驱动脉冲的产生条件时,生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动。
9.可选地,在根据每个轴所对应的所述控制参数确定满足所述驱动脉冲的产生条件时,生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动的步骤包括:
10.在每个轴所对应的所述控制参数满足所述驱动脉冲的产生条件时,获取所述驱动脉冲的脉冲生成模式;
11.根据所述脉冲生成模式生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动。
12.可选地,根据所述脉冲生成模式生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动的步骤包括:
13.在所述脉冲生成模式为双脉冲生成模式时,且在检测到所述控制参数的最高二进
制位发生第一变化时,生成第一驱动脉冲以驱动与所述控制参数对应的轴按照第一方向运动;或者,
14.在所述脉冲生成模式为双脉冲生成模式时,且在检测到所述控制参数的最高二进制位发生第二变化时,生成第二驱动脉冲以驱动与所述控制参数对应的轴按照第二方向运动,其中,所述驱动脉冲包括所述第一驱动脉冲以及所述第二驱动脉冲,所述第一方向与所述第二方向相反,所述第一变化与所述第二变化不同。
15.可选地,基于fpga的脉冲产生控制方法还包括:
16.在检测到轴的运动方向发生改变时,获取所述轴的运动方向发生改变所对应的所述第一驱动脉冲与所述第二驱动脉冲之间的时间间隔,并控制所述时间间隔大于或者等于预设的第一换向延时时长,其中,所述轴的运动发生改变包括运动方向由所述第一方向切换至所述第二方向以及运动方向由所述第二方向切换至所述第一方向中的至少一种。
17.可选地,根据所述脉冲生成模式生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动的步骤包括:
18.在所述脉冲生成模式为脉冲方向生成模式时,且在检测到所述控制参数的最高二进制位发生第一变化时,生成第一方向控制信号确定与所述控制参数对应的轴的运动方向为第一方向,且生成所述驱动脉冲以驱动与所述控制参数对应的轴按照所述第一方向运动;或者,
19.在所述脉冲生成模式为脉冲方向生成模式时,且检测到所述控制参数的最高二进制位发生第二变化时,生成第二方向控制信号确定与所述控制参数对应的轴的运动方向为第二方向,且生成所述驱动脉冲以驱动与所述控制参数对应的轴按照所述第二方向运动,所述第一方向与所述第二方向相反,所述第一变化与所述第二变化不同。
20.可选地,基于fpga的脉冲产生控制方法还包括:
21.在检测到轴的运动方向发生改变时,获取所述轴的运动方向发生改变所对应的所述驱动脉冲之间的时间间隔,并控制大于或者等于预设的第二换向延时时长,其中,所述轴的运动发生改变包括运动方向由所述第一方向切换至所述第二方向以及运动方向由所述第二方向切换至所述第一方向中的至少一种。
22.可选地,获取各个轴所对应的脉冲频率控制字的步骤包括:
23.接收到实现控制周期监测的时钟信号时,从预设的存储区域获取各个轴所对应的脉冲频率控制字。
24.可选地,接收到实现控制周期监测的时钟信号时,从预设的存储区域获取各个轴所对应的脉冲频率控制字的步骤之后,还包括:
25.在所述控制周期内获取下一控制周期的各个轴所对应的脉冲频率控制字;
26.根据所述各个轴所对应的脉冲频率控制字更新所述预设的存储区域内存储的各个轴所对应的脉冲频率控制字。
27.可选地,接收到实现控制周期监测的时钟信号时,获取各个轴所对应的脉冲频率控制字的步骤之前,还包括:
28.获取目标运动轨迹;
29.根据所述目标运动轨迹确定每个所述控制周期各个轴所对应的脉冲频率控制字。
30.可选地,在每个轴所对应的所述控制参数满足所述驱动脉冲的产生条件时,生成
各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动的步骤之后,还包括:
31.获取生成各个轴的所述驱动脉冲时所在所述控制周期的时间;
32.若所述时间处于所述控制周期中的预设时间范围内时,获取所述驱动脉冲的高电平脉冲的持续时长;
33.根据所述持续时长与预设的最小持续长确定所述驱动脉冲的高电平脉冲的补偿持续时长;
34.控制所述驱动脉冲按照高电平脉冲以及补偿持续时长输出后,以进入下一控制周期。
35.可选地,在每个轴所对应的所述控制参数满足所述驱动脉冲的产生条件时,生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动的步骤之后,还包括:
36.在所述脉冲频率控制字的值小于预设值时,获取所述驱动脉冲的高电平脉冲的持续时长;
37.若所述持续时长大于或者等于预设时长时,控制所述驱动脉冲切换至低电平脉冲输出。
38.此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器以及存储在所述存储器里并可在所述处理器上运行的基于fpga的脉冲产生控制程序,所述基于fpga的脉冲产生控制程序被所述处理器执行时实现如以上所述基于fpga的脉冲产生控制方法的各个步骤。
39.此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有基于fpga的脉冲产生控制程序,所述基于fpga的脉冲产生控制程序被所述处理器执行时实现如以上所述基于fpga的脉冲产生控制方法的各个步骤。
40.本发明提出的基于fpga的脉冲产生控制方法、终端设备及可读存储介质,通过fpga的引脚与待控制的各个轴电连接,基于fpga生成的各个轴的驱动脉冲以驱动对应的轴运动,通过获取各个轴所对应的脉冲频率控制字,进而基于各个轴的脉冲频率控制字,获取的各个轴对应的累加值以确定每个轴相对应的驱动脉冲的控制参数,以实现动态改变每个轴相对应的驱动脉冲的控制参数,进而通过每个轴相对应的驱动脉冲的控制参数确定满足驱动脉冲的产生条件时,以触发生成各个轴的驱动脉冲,同时依据生成的驱动脉冲驱动对应的轴运动,以实现对各个轴进行同步控制。
附图说明
41.图1为本发明的基于fpga的脉冲产生控制方法各个实施例涉及的终端设备的结构示意图;
42.图2为本发明的基于fpga的脉冲产生控制方法第一实施例的流程示意图;
43.图3为本发明的基于fpga的脉冲产生控制方法第一实施例中生成驱动脉冲驱动轴运动的流程示意图;
44.图4为双脉冲生成模式的驱动脉冲波形图;
45.图5为双脉冲生成模式下的换向延时的示意图;
46.图6为脉冲方向生成模式下的驱动脉冲波形图;
47.图7为脉冲方向生成模式下的换向延时的示意图;
48.图8为本发明的基于fpga的脉冲产生控制方法第四实施例的流程示意图;
49.图9为数据请求中断时序图;
50.图10为控制周期边界处的脉冲处理波形图;
51.图11为双脉冲生成模式下驱动脉冲跨控制周期边界下的换向延时要求;
52.图12为双脉冲生成模式下驱动脉冲跨控制周期边界下的换向延时要求。
53.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
54.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
55.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。
56.请参考图1,图1为本发明的基于fpga的脉冲产生控制方法各个实施例涉及的终端设备的结构示意图。
57.如图1所示,该终端设备可以包括:存储器101以及处理器102。本领域技术人员可以理解,图1示出的终端的结构框图并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,存储器101中存储有操作系统以及基于fpga的脉冲产生控制程序。处理器102是终端设备的控制中心,处理器102执行存储在存储器101内的基于fpga的脉冲产生控制程序,以实现本发明的基于fpga的脉冲产生控制方法各实施例的步骤。可选地,终端设备还可包括显示单元103,显示单元103包括显示面板,可采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板,用于输出显示用户浏览的界面。
58.基于上述终端设备的结构框图,提出本发明的基于fpga的脉冲产生控制方法的各个实施例。
59.在第一实施例中,本发明提供一种基于fpga的脉冲产生控制方法,请参考图2,图2为本发明的基于fpga的脉冲产生控制方法第一实施例的流程示意图。在该实施例中,通过fpga的引脚与待控制的各个轴电连接,基于fpga生成的各个轴的驱动脉冲以驱动对应的轴运动,基于fpga的脉冲产生控制方法包括以下步骤:
60.步骤s10,获取各个轴所对应的脉冲频率控制字;
61.步骤s20,根据获取的每个轴的脉冲频率控制字的累加值确定每个轴的驱动脉冲的控制参数;
62.步骤s30,在每个轴所对应的所述控制参数满足驱动脉冲的产生条件时,生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动。
63.需要说明的是,通过fpga的引脚与待控制的各个轴电连接,基于fpga生成的各个轴的驱动脉冲以驱动对应的轴运动。在本实施例中,fpga芯片作为运动控制器中的脉冲产生子系统,可与dsp子系统共同组成了一个完整的运动控制系统。dsp专注于运动轨迹的生成和规划,按照控制周期对轨迹进行分解,向各轴进行映射,最终得到各个轴的脉冲频率控制字,fpga周期性(每个控制周期一次)向dsp发起数据请求信号,以获取各个轴所对应的脉冲频率控制字。此外,fpga具有高度并行计算的特点,既能保证控制脉冲输出的实时性,又
能保证各轴之间的同步性,提高了对各轴的控制精度。相比于轴数量和脉冲形态比较固定的专用运动控制芯片来说,采用fpga的方式,其应用更加灵活性,能支持轴数量的灵活扩展。
64.可选地,dsp可由arm代替。
65.可选地,fpga和dsp之间使用通用并行总线(upp)接口通信,全双工模式,接口时钟50mhz,数据位宽8bits。fpga和dsp之间定义了私有协议报文格式,用于传输配置参数以及脉冲频率控制字。
66.此外,当轴静止不运动时,每个控制周期下的脉冲频率控制字为0;当轴运动时,每个控制周期下发的脉冲频率控制字为非0值;当轴静匀速运动时,每个控制周期下的脉冲频率控制字相同;当轴变速运动时,各个控制周期中的脉冲频率控制字至少存在两个控制周期的脉冲频率控制字不相同。
67.可选地,在实际应用过程中,可通过一次直接获取各个轴所对应的脉冲频率控制字,以使得各个轴基于获取的脉冲频率控制字保持相同的运动状态;也可按照检测到实现控制周期监测的时钟信号时,获取每个时钟周期对应的各个轴所对应的脉冲频率控制字,以在不同周期采用不同的脉冲频率控制字实现各个轴的变速运动,或,在不同周期采用相同的脉冲频率控制字保持各个轴的相同的运动状态。
68.每个轴都会对应一个轴脉冲产生模块。根据获取的每个轴的脉冲频率控制字的累加值确定每个轴的驱动脉冲的控制参数,具体地,可通过与每个轴所对应的累加器按照预设的单位时长累加脉冲频率控制字的值以得到累加值,进而获取每个轴的驱动脉冲的控制参数。
69.可选地,累加器的位宽为29比特,输出脉冲频率误差小于0.0001hz。
70.在每个轴所对应的控制参数满足驱动脉冲的产生条件时,生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动。其中,驱动脉冲的产生条件包括控制参数的最高二进制发生变化时,最高二进制位发生变化包括最高二进制位的数值由0变为1以及最高二进制位的数值由1变为0。
71.可选地,脉冲频率控制字的值可以是正数,也可以是负数。
72.可选地,在脉冲频率控制字的值为正数时,通过脉冲频率控制字所确定的轴的驱动脉冲以驱动轴正向运动;在脉冲频率控制字的值为负数时,通过脉冲频率控制字所确定的轴的驱动脉冲以驱动轴反向运动。
73.具体地,以轴的正向运动为例,当累加器累加脉冲频率控制字的值得到控制参数,控制参数的最高二进制位从0变成1(表示累加到或者超过2
28
)时,将输出io置为高电平,表示一个驱动脉冲开始,之后继续累加脉冲频率控制字,当控制参数的最高二进制位从1变成0(表示再一次累加到或者超过2
28
)时,将输出io置为低电平,表示一个控制脉冲结束。重复上述过程,可以产生连续的驱动脉冲输出。
74.当轴进行反向运动时,当控制参数的最高二进制位从1变成0(表示累加到或者超过2
28
)时,将输出io置为高电平,表示一个驱动脉冲开始,之后继续累加脉冲频率控制字,当控制参数的最高二进制位从0变成1(表示再一次累加到或者超过2
28
)时,将输出io置为低电平,表示一个驱动脉冲结束。重复上述过程,可以产生连续的控制脉冲输出。
75.作为一种可选的实施方式,请参考图3,图3为本发明的基于fpga的脉冲产生控制
方法第一实施例中生成驱动脉冲驱动轴运动的流程示意图,步骤s30包括:
76.步骤s31,在每个轴所对应的所述控制参数满足所述驱动脉冲的产生条件时,获取所述驱动脉冲的脉冲生成模式;
77.步骤s32,根据所述脉冲生成模式生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动。
78.驱动脉冲的产生条件包括控制参数的最高二进制发生变化时,最高二进制位发生变化包括最高二进制位的数值由0变为1以及最高二进制位的数值由1变为0。每个轴所对应的控制参数满足驱动脉冲的产生条件,获取驱动脉冲的脉冲生成模式,其中,脉冲生成模式可预先通过脉冲生成模式的标志位进行设置,根据标志位的标志值可用于区分不同的脉冲生成模式,举例来说,在标志位的标志值为“1”,表明脉冲生成模式为双脉冲生成模式;在标志位的标志值为“0”,表明脉冲生成模式为脉冲方向生成模式,对此不做限定。
79.在实际应用过程中,脉冲生成模式包括双脉冲生成模式以及脉冲方向生成模式,根据脉冲生成模式生成各个轴的驱动脉冲,具体地,在脉冲生成模式为双脉冲生成模式时,且在检测到控制参数的最高二进制位发生第一变化时,生成第一驱动脉冲以驱动与控制参数对应的轴按照第一方向运动;或者,在脉冲生成模式为双脉冲生成模式时,且在检测到所述控制参数的最高二进制位发生第二变化时,生成第二驱动脉冲以驱动与控制参数对应的轴按照第二方向运动,其中,驱动脉冲包括第一驱动脉冲以及第二驱动脉冲,第一方向与第二方向相反,第一变化与第二变化不同,具体实现可参见第二实施例,在本实施例中不做具体说明。
80.在脉冲生成模式为脉冲方向生成模式时,且在检测到控制参数的最高二进制位发生第一变化时,生成第一方向控制信号确定与控制参数对应的轴的运动方向为第一方向,且生成驱动脉冲以驱动与控制参数对应的轴按照第一方向运动;或者,在脉冲生成模式为脉冲方向生成模式时,且检测到控制参数的最高二进制位发生第二变化时,生成第二方向控制信号确定与控制参数对应的轴的运动方向为第二方向,且生成驱动脉冲以驱动与控制参数对应的轴按照第二方向运动,第一方向与第二方向相反,第一变化与第二变化不同,具体实现可参见第三实施例,在本实施例中不做具体说明。
81.作为一种可选的实施方式,步骤s30之后,还包括:
82.在所述脉冲频率控制字的值小于预设值时,获取所述驱动脉冲的高电平脉冲的持续时长;
83.若所述持续时长大于或者等于预设时长时,控制所述驱动脉冲切换至低电平脉冲输出。
84.在实际应用过程中,当脉冲频率控制字的值很小,也即脉冲频率控制字的值小于预设值时,累加器可能需要经过很长时间的累加才能产生一个驱动脉冲(高电平),在高电平期间,运动停止(即脉冲频率控制字变为0),此时脉冲是无法通过累加器的累加来变回低电平的。在本实施例中通过预先设置了驱动脉冲的最大脉冲宽度。当驱动脉冲的高电平持续时长超过最大脉冲宽度的持续时长,也即驱动脉冲的高电平脉冲的持续时长大于或者等于预设时长时,控制驱动脉冲切换至低电平脉冲输出。
85.在本实施例公开的技术方案中,通过fpga的引脚与待控制的各个轴电连接,基于fpga生成的各个轴的驱动脉冲以驱动对应的轴运动,通过获取各个轴所对应的脉冲频率控
制字,进而基于各个轴的脉冲频率控制字,获取的各个轴对应的累加值以确定每个轴相对应的驱动脉冲的控制参数,以实现动态改变每个轴相对应的驱动脉冲的控制参数,进而通过每个轴相对应的驱动脉冲的控制参数确定满足驱动脉冲的产生条件时,以触发生成各个轴的驱动脉冲,同时依据生成的驱动脉冲驱动对应的轴运动,以实现对各个轴进行同步控制。
86.在基于第一实施例的基础上提出第二实施例,在该实施例中,步骤s32包括:
87.在所述脉冲生成模式为双脉冲生成模式时,且在检测到所述控制参数的最高位二进制发生第一变化时,生成第一驱动脉冲以驱动与所述控制参数对应的轴按照第一方向运动;或者,
88.在所述脉冲生成模式为双脉冲生成模式时,且在检测到所述控制参数的最高位二进制发生第二变化时,生成第二驱动脉冲以驱动与所述控制参数对应的轴按照第二方向运动,其中,所述驱动脉冲包括所述第一驱动脉冲以及所述第二驱动脉冲,所述第一方向与所述第二方向相反,所述第一变化与所述第二变化不同。
89.在实际应用过程中,双脉冲生成模式产生的脉冲类型分别为cw和ccw,其中cw代表正向运动,ccw代表负向运动。当正向运动时,cw上产生驱动脉冲,ccw保持为低电平;当反向运动时,ccw上产生驱动脉冲,cw保持为低电平。具体地,双脉冲生成模式的驱动脉冲波形图如图4所示。
90.相对应地,在本实施例中,假设检测到控制参数的最高二进制位发生第一变化,如最高二进制位由0变为1时,可确定双脉冲产生的脉冲类型为cw,并确定轴的运动方向为第一方向,第一方向即正向运动,与此同时,通过检测到控制参数的最高二进制位发生第一变化,生成第一驱动脉冲以驱动与控制参数对应的轴按照第一方向运动,也即cw上产生驱动脉冲,以驱动与控制参数对应的轴按照第一方向运动。
91.同理地,假设检测到控制参数的最高二进制位发生第二变化,如最高二进制位由1变为0时,可确定双脉冲产生的脉冲类型为ccw,并确定轴的运动方向为第二方向,第二方向即反向运动,与此同时,通过检测到控制参数的最高二进制位发生第一变化,生成第二驱动脉冲以驱动与控制参数对应的轴按照第二方向运动,也即ccw上产生驱动脉冲,以驱动与控制参数对应的轴按照第二方向运动。
92.作为一种可选的实施方式,基于fpga的脉冲产生控制方法还包括:
93.在检测到轴的运动方向发生改变时,获取所述轴的运动方向发生改变所对应的所述第一驱动脉冲与所述第二驱动脉冲之间的时间间隔,并控制所述时间间隔大于或者等于预设的第一换向延时时长。
94.需要说明的是,在实际应用过程中,当轴的运动方向发生改变时,由于轴处于运动状态,轴的运动方向并不会立即发生突变,因此,cw上的驱动脉冲与ccw上的驱动脉冲需要满足一定的换向延时,需要说明的是,在换向延时期间不产生任何控制脉冲。
95.在检测到轴的运动方向发生改变时,获取轴的运动方向发生改变所对应的第一驱动脉冲与第二驱动脉冲之间的时间间隔,并控制时间间隔大于或者等于预设的第一换向延时时长。具体地,在检测到轴的运动方向发生改变时,以轴的正向运动转换为轴的负向运动的换向为例,cw产生脉冲与ccw上的最后一个脉冲之间的时间间隔必须要大于或等于电机厂商所要求的换向延时的时长,具体可参见图5,图5为双脉冲生成模式下的换向延时的示
意图;同理地,在检测到轴的运动方向发生改变时,以轴的负向运动转换为轴的正向运动的换向为例,ccw产生脉冲与cw上的最后一个脉冲之间的时间间隔必须要大于或等于电机厂商所要求的换向延时的时长。
96.可选地,由于不同厂商的电机对换向延时的要求各不相同,在本市实施例中,可按照用户需求对换向延时时长进行配置,以获得预设的第一换向延时时长,以支持不同厂家的电机,提高了应用的灵活性。
97.可选地,轴的运动发生改变包括运动方向由第一方向切换至第二方向以及运动方向由第二方向切换至第一方向中的至少一种。
98.在本实施例公开的技术方案中,在脉冲生成模式为双脉冲生成模式时,通过监测每个轴的驱动脉冲的控制参数的最高二进制位发生改变时,生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动。且基于双脉冲生成模式下,在确认脉冲类型如cw或者ccw直接确定轴的运动方向,并在确定运动方向的基础上,监测到每个轴的驱动脉冲的控制参数的最高二进制位发生改变时,按照确定的运动方向并依据生成的各个轴的驱动脉冲驱动对应的轴运动,以实现对各个轴运动的同步控制。
99.在基于上述任意一个实施例提出的第三实施例,在该实施例中,步骤s32包括:
100.在所述脉冲生成模式为脉冲方向生成模式时,且在检测到所述控制参数的最高二进制位发生第一变化时,生成第一方向控制信号确定与所述控制参数对应的轴的运动方向为第一方向,且生成所述驱动脉冲以驱动与所述控制参数对应的轴按照所述第一方向运动;或者,
101.在所述脉冲生成模式为脉冲方向生成模式时,检测到所述控制参数的最高二进制位发生第二变化时,生成第二方向控制信号确定与所述控制参数对应的轴的运动方向为第二方向,且生成所述驱动脉冲以驱动与所述控制参数对应的轴按照所述第二方向运动,所述第一方向与所述第二方向相反,所述第一变化与所述第二变化不同。
102.在实际应用过程中,脉冲方向生成模式下产生pls和dir,其中pls表示驱动脉冲,dir表示运动方向。在该模式下,不管正向运动还是负向运动,驱动脉冲始终都是通过pls进行输出,而运动方向则由dir决定。dir低电平表示正向运动,高电平表示负向运动。脉冲方向生成模式下的驱动脉冲波形图如图6所示。
103.相对应地,在本实施例中,假设检测到控制参数的最高二进制位发生第一变化,如最高二进制位由0变为1时,生成第一方向控制信号,第一方向控制信号dir处于低电平状态,并确定轴的运动方向为第一方向,第一方向即正向运动,与此同时,通过检测到控制参数的最高二进制位发生第一变化,生成驱动脉冲以驱动与控制参数对应的轴按照第一方向运动,也即通过pls产生驱动脉冲,以驱动与控制参数对应的轴按照第一方向运动。
104.同理地,假设检测到控制参数的最高二进制位发生第一变化,如最高二进制位由1变为0时,生成第二方向控制信号,第二方向控制信号dir处于高电平状态,并确定轴的运动方向为第二方向,第二方向即反向运动,与此同时,通过检测到控制参数的最高二进制位发生第一变化,生成驱动脉冲以驱动与控制参数对应的轴按照第二方向运动,也即通过pls产生驱动脉冲,以驱动与控制参数对应的轴按照第二方向运动。
105.作为一种可选的实施方式,基于fpga的脉冲产生控制方法还包括:
106.在检测到轴的运动方向发生改变时,获取所述轴的运动方向发生改变所对应的所
述驱动脉冲之间的时间间隔,并控制大于或者等于预设的第二换向延时时长。
107.需要说明的是,在实际应用过程中,当轴的运动方向发生改变时,由于轴处于运动状态,轴的运动方向并不会立即发生突变,因此,pls上的驱动脉冲以及dir上的控制信号需要满足换向延时的要求,具体可参见图7,图7为脉冲方向生成模式下的换向延时的示意图,t1和t2都要满足电机厂商的换向延时要求。其中,设置t1大于或者等于配置的换向延时的时长的目的在于,确保轴的运动方向由正向运动转变为反向运动时,与dir保持低电平(表示轴的运动方向为正向运动)时所对应的pls最后产生的驱动脉冲的运动方向为正向运动;设置t2大于或者等于配置的换向延时的时长的目的在于,确保轴的运动方向由正向运动转变为反向运动时,明确轴的运动方向为反向运动后,pls输出驱动脉冲,进而依据驱动脉冲驱动的轴进行反向运动。
108.需要说明的是,在换向延时期间不产生任何控制脉冲。
109.可选地,由于不同厂商的电机对换向延时的要求各不相同,在本市实施例中,可按照用户需求对换向延时的时长进行配置,以支持不同厂家的电机,提高了应用的灵活性。
110.可选地,轴的运动发生改变包括运动方向由第一方向切换至第二方向以及运动方向由第二方向切换至第一方向中的至少一种。
111.相较于第二实施例,在本实施例公开的技术方案中,提供另一种脉冲生成模式以生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动。在脉冲生成模式为脉冲方向生成模式时,通过监测每个轴的驱动脉冲的控制参数的最高二进制位发生改变时,生成各个轴的驱动脉冲,并依据生成的驱动脉冲驱动对应的轴运动。基于脉冲方向生成模式下,通过方向控制信号如第一方向控制信号或者第二方向控制信号确定轴的运动方向,在确定轴的运动方向的基础上,监测到每个轴的驱动脉冲的控制参数的最高二进制位发生改变时,按照确定的运动方向并依据生成的各个轴的驱动脉冲驱动对应的轴运动,以实现对各个轴运动的同步控制。
112.在基于上述任意一个实施例提出的第四实施例中,请参考图8,图8为本发明的基于fpga的脉冲产生控制方法第四实施例的流程示意图,在该实施例中,步骤s10包括:
113.步骤s11,接收到实现控制周期监测的时钟信号时,从预设的存储区域获取各个轴所对应的脉冲频率控制字。
114.在实际应用过程中,可基于控制周期的不同,分别获取各个轴所对应的脉冲频率控制字,以实现在不同的控制周期下,可依据各个轴所对应的脉冲频率控制字的不同实现各个轴的变速运动。
115.需要说明的是,当轴静止不运动时,每个控制周期下的脉冲频率控制字为0;当轴运动时,每个控制周期下发的脉冲频率控制字为非0值;当轴静匀速运动时,每个控制周期下的脉冲频率控制字相同;当轴变速运动时,各个控制周期中的脉冲频率控制字至少存在两个控制周期的脉冲频率控制字不相同。
116.需要说明的是,可通过定时器实现对控制周期的监测,接收到实现控制周期监测的时钟信号,可向dsp发起数据请求信号,以获取各个轴所对应的脉冲频率控制字。
117.需要说明的是,在本实施例中,fpga芯片作为运动控制器中的脉冲产生子系统,可与dsp子系统共同组成了一个完整的运动控制系统。dsp专注于运动轨迹的生成和规划,按照控制周期对轨迹进行分解,向各轴进行映射,最终得到各个轴的脉冲频率控制字,fpga周
期性(每个控制周期一次)向dsp发起数据请求信号,以获取各个轴所对应的脉冲频率控制字。
118.可选地,dsp可由arm代替。
119.可选地,fpga和dsp之间使用通用并行总线(upp)接口通信,全双工模式,接口时钟50mhz,数据位宽8bits。fpga和dsp之间定义了私有协议报文格式,用于传输配置参数以及脉冲频率控制字。
120.作为一种可选地实施方式,步骤s11之后,还包括:
121.在所述控制周期内获取下一控制周期的各个轴所对应的脉冲频率控制字;
122.根据所述各个轴所对应的脉冲频率控制字更新所述预设的存储区域内存储的各个轴所对应的脉冲频率控制字。
123.需要说明的是,由fpga和dsp组成的运动控制系统是按照一个一个的控制周期连续工作的。每个控制周期都会有新的频率控制字产生。基于此,fpga在计算输出驱动脉冲的控制参数时必须要用当前控制周期所对应的频率控制字。由于dsp与fpga之间数据传输存在延迟,为了能保证在一个控制周期开始的时候就使用最新的脉冲频率控制字,fpga采用提前向dsp请求数据,然后将最新的脉冲频率控制字进行存储等待使用的方式。也即,在控制周期内获取下一控制周期的各个轴所对应的脉冲频率控制字;根据各个轴所对应的脉冲频率控制字更新预设的存储区域内存储的各个轴所对应的脉冲频率控制字。
124.举例来说,具体请参考图9,图9为数据请求中断时序图。
125.fpga在控制周期1的中间某个时刻向dsp发起数据请求中断,dsp在处理该中断时,通过upp接口向fpga下发控制周期2需要用到的脉冲频率控制字。从发起数据请求中断到控制周期1结束之间的时间间隔为t,只要t大于upp接口的数据传输延,就能在控制周期2开始时刻使用最新的脉冲频率控制字去计算输出驱动脉冲的控制参数。
126.作为一种可选的实施方式,步骤s11之前,还包括:
127.获取目标运动轨迹;
128.根据所述目标运动轨迹确定每个所述控制周期各个轴所对应的脉冲频率控制字。
129.基于fpga芯片作为运动控制器中的脉冲产生子系统,可与dsp子系统共同组成了一个完整的运动控制系统。dsp专注于运动轨迹的生成和规划,进而基于目标运动轨迹,按照控制周期对目标运动轨迹进行分解,向各轴进行映射,最终得到每个控制周期的各个轴的脉冲频率控制字,fpga周期性(每个控制周期一次)向dsp发起数据请求信号,以获取每个控制周期的各个轴所对应的脉冲频率控制字。
130.作为一种可选的实施方式,步骤s30之后,还包括:
131.获取生成各个轴的所述驱动脉冲时所在所述控制周期的时间;
132.若所述时间处于所述控制周期中的预设时间范围内时,获取所述驱动脉冲的高电平脉冲的持续时长;
133.根据所述持续时长与预设的最小持续时长确定所述驱动脉冲的高电平脉冲的补偿持续时长;
134.控制所述驱动脉冲按照高电平脉冲以及补偿持续时长输出后,以进入下一控制周期。
135.在实际应用过程中,在一个控制周期内,由于脉冲频率控制字的不同取值,可能在
控制周期边界时累加器刚好产生了一个驱动脉冲的情况,请参考图10,图10为控制周期边界处的脉冲处理波形图,需要将该驱动脉冲的高电平宽度延长,使之满足驱动轴运动的电机对最小驱动脉冲宽度的要求。假如上述情况发生在一次运动的最后一个控制周期,通过控制驱动脉冲的高电平宽度的持续时长,以使得驱动脉冲的脉冲宽度满足电机对最小驱动脉冲宽度的要求,可避免由于脉冲宽度太小而导致电机无法识别,造成电机丢步的现象。
136.基于上述分析说明可知,预设时间范围是在控制周期边界前的最小持续时长所对应的时间范围内。在生成各个轴的驱动脉冲时所在控制周期的时间处于控制周期中的预设时间范围内时,表明可能由于驱动脉冲的脉冲宽度太小而导致电机无法识别造成电机丢步,通过获取驱动脉冲的高电平脉冲的持续时长,进而根据持续时长与预设的最小持续时长确定驱动脉冲的高电平脉冲的补偿持续时长,也即补偿持续时长可通过最小持续时长与高电平脉冲的持续时长作差进行确定,在当前的控制周期的边界后控制驱动脉冲按照高电平脉冲以及补偿持续时长输出,以使得驱动脉冲的脉冲宽度满足电机对最小驱动脉冲宽度的要求,以进入下一控制周期。
137.一示例性地,在控制周期边界产生驱动脉冲,并结合第二实施例中在双脉冲生成模式时,且检测到轴的运动方向发生改变时的换向延时要求,请参考图11,图11为双脉冲生成模式下驱动脉冲跨控制周期边界下的换向延时要求。
138.一示例性地,在控制周期边界产生驱动脉冲,并结合第三实施例中在脉冲方向生成模式时,且检测到轴的运动方向发生改变时的换向延时要求,请参考图12,图12为双脉冲生成模式下驱动脉冲跨控制周期边界下的换向延时要求。
139.在本实施例公开的技术方案中,可基于控制周期的不同,获取各个轴所对应的脉冲频率控制字,以实现在不同的控制周期下,依据各个轴所对应的脉冲频率控制字的不同实现各个轴的变速运动。
140.本发明还提出一种终端设备,所述终端设备包括:包括存储器、处理器以及存储在存储器里并可在处理器上运行的基于fpga的脉冲产生控制程序,基于fpga的脉冲产生控制程序被处理器执行时实现上述任一实施例中的基于fpga的脉冲产生控制方法的步骤。
141.本发明还提出一种可读存储介质,该可读存储介质上存储有基于fpga的脉冲产生控制程序,所述基于fpga的脉冲产生控制程序被处理器执行时实现如以上任一实施例所述的基于fpga的脉冲产生控制方法的步骤。
142.在本发明提供的终端设备和可读存储介质的实施例中,包含了上述基于fpga的脉冲产生控制方法各实施例的全部技术特征,说明书拓展和解释内容与上述基于fpga的脉冲产生控制方法的各实施例基本相同,在此不做再赘述。
143.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1