CN112653427A - 分频方法、装置以及计算机可读存储介质 - Google Patents

分频方法、装置以及计算机可读存储介质 Download PDF

Info

Publication number
CN112653427A
CN112653427A CN202011447981.6A CN202011447981A CN112653427A CN 112653427 A CN112653427 A CN 112653427A CN 202011447981 A CN202011447981 A CN 202011447981A CN 112653427 A CN112653427 A CN 112653427A
Authority
CN
China
Prior art keywords
signal
pulse
edge
state
clb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011447981.6A
Other languages
English (en)
Other versions
CN112653427B (zh
Inventor
吴海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Invt Electric Co Ltd
Original Assignee
Shenzhen Invt Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Invt Electric Co Ltd filed Critical Shenzhen Invt Electric Co Ltd
Priority to CN202011447981.6A priority Critical patent/CN112653427B/zh
Priority claimed from CN202011447981.6A external-priority patent/CN112653427B/zh
Publication of CN112653427A publication Critical patent/CN112653427A/zh
Application granted granted Critical
Publication of CN112653427B publication Critical patent/CN112653427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation

Landscapes

  • Manipulation Of Pulses (AREA)

Abstract

本申请提供了一种分频方法、装置以及计算机可读存储介质,该方法应用于分频脉冲发生器PG,PG包括数字信号处理芯片DSP,DSP包括可配置逻辑模块CLB,该方法包括:CLB获取外部输入的第一增量脉冲信号和第二增量脉冲信号,并确定第一增量脉冲信号的边沿信息和第二增量脉冲信号的边沿信息;CLB根据上述两个边沿信息,确定边沿状态脉冲信号;CLB根据分频系数,对边沿状态脉冲信号做分频处理,得到分频后的两路边沿状态脉冲信号;CLB对两路边沿状态脉冲信号做信号保持处理,得到两路方波脉冲信号。通过本申请的方法解决了传统FPGA芯片与主控板DSP芯片可支持编程语言的不同而不便于开发人员维护管控的问题。

Description

分频方法、装置以及计算机可读存储介质
技术领域
本申请属于分频方法技术领域,尤其涉及一种分频方法、装置及计算机可读存储介质。
背景技术
目前,分频技术应用之广,几乎涉及到了所有的电子领域。例如,在主从控制及同步控制等电机闭环控制的应用场景中,就需要用到基于分频脉冲发生器(puls generator,PG)的分频技术。
由于传统的数字信号处理(digital signal processing,DSP)芯片没有可配置逻辑模块(configurable logic block,CLB),无法适用于高频采样的分频技术应用场景中,所以目前的分频技术均是采用能够适用于高频采样的现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)作为PG卡控制芯片(或主芯片),然后对输入的脉冲信号进行分频并将分频后的信号输出至主控板。
但是,由于PG卡的FPGA芯片只能支持硬件描述语言(hardware descriptionlanguage,HDL)(例如,通用硬件描述语言(very-high-speed integrated circuithardware description language,VHDL)、Verilog等语言),而主控板的芯片为仅支持C语言或者汇编语言编程的DSP芯片,所以不便于开发人员维护和管控。
发明内容
本申请实施例提供了一种分频方法及装置,可以解决上述由于主控板的DSP芯片与PG卡的FPGA芯片不同,而不便于开发人员维护、管控,进而增加维护成本的问题。
第一方面,本申请实施例提供了一种分频方法,应用于分频脉冲发生器PG,分频脉冲发生器PG包括数字信号处理芯片DSP,数字信号处理芯片DSP包括可配置逻辑模块CLB,该方法包括:CLB获取外部输入的第一增量脉冲信号,确定第一增量脉冲信号的边沿信息;CLB获取外部输入的第二增量脉冲信号,确定第二增量脉冲信号的边沿信息,第二增量脉冲信号的相位与第一增量脉冲信号的相位相差90°;CLB根据第一增量脉冲信号的边沿信息以及第二增量脉冲信号的边沿信息,确定边沿状态脉冲信号;CLB根据分频系数,对边沿状态脉冲信号做分频处理,得到分频后的两路边沿状态脉冲信号;CLB对两路边沿状态脉冲信号做信号保持处理,得到两路方波脉冲信号。
应理解,上述边沿信息包括脉冲信号中从前一个平稳状态过渡至下一个平稳状态时的边沿信号,例如,从高电平(或者1)过渡至低电平(或者0)的边沿信号,或者从低电平过渡至高电平的边沿信号。
在本申请的一些实施例中,上述增量脉冲信号为增量式编码器输出的两路周期相同(均为T),相位相差90°的脉冲信号。
例如,假设增量式编码器输出的周期相同的脉冲A、脉冲B,则脉冲A与脉冲B的相位差为90°。
边沿状态脉冲信号指的是结合第一增量脉冲信号的边沿信号以及第二增量脉冲信号的边沿信号得到的边沿状态脉冲信号,根据边沿状态脉冲信号可以确定第一增量脉冲信号或者第二增量脉冲信号的边沿信号到来的时刻。
应理解,上述分频系数可以是用户预先设置的。具体地,用户可以通过PG上的开关(SWITCH)选择具体的分频系数(例如,一分频、二分频、四分频等)。
还应理解,上述信号保持处理指的是,保持前一个脉冲的状态并输出。例如,当前一个脉冲的状态为高电平,则保持高电平状态并输出,当前一个脉冲的状态为低电平,则保持低电平状态并输出。
在上述方法中,通过在DSP芯片中设置CLB模块,以取代并实现传统分频方法中的FPGA芯片的功能,由于DSP芯片与主控板的DSP芯片所支持的编程语言一致,所以解决了传统FPGA不便于开发人员维护和管控的问题,同时采用成本较低的DSP芯片作为PG的主芯片,也解决了传统FPGA芯片成本高的问题。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:CLB根据第一增量脉冲信号,确定第一增量脉冲信号的状态信息;CLB根据第二增量脉冲信号,确定第二增量脉冲信号的状态信息;CLB根据第一增量脉冲信号的边沿信息,第一增量脉冲信号的状态信息,第二增量脉冲信号的边沿信息,以及第二增量脉冲信号的状态信息,确定方向状态信号;当边沿状态脉冲信号为0时,CLB对方向状态信号做信号保持处理,得到处理后的方向状态信号;CLB根据边沿状态信号以及处理后的方向状态信号,确定分频后的两路边沿状态信号的方向。
应理解,上述状态信息包括脉冲信号中处于平稳状态时的状态信号,例如,脉冲信号中处于高电平或者低电平时的状态信号。
在一些电机闭环控制的场景中,例如,主从控制及同步控制等电机闭环控制场景中,电机的正向、反向旋转需要通过输入至电机的脉冲方向来控制,所以,有必要区分分频后的两路边沿状态信号的方向。
在本申请的一些实施例中,CLB根据第一增量脉冲信号的边沿信息,第一增量脉冲信号的状态信息,第二增量脉冲信号的边沿信息,以及第二增量脉冲信号的状态信息,确定的方向状态信号为单周期的方向状态信号,即由于边沿信号的周期为T/4,所以该方向状态信号仅能维持T/4,所以,在边沿状态信号为0时,需要对该方向状态信号做信号保持处理,使其能够持续输出高电平。
在得到处理后的方向状态信号后,根据该处理后的方向状态信号,确定分频后的两路边沿状态信号的方向。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:方法还包括:CLB根据处理后的方向状态信号,判断边沿状态信号是否有杂波;当边沿状态信号有杂波时,CLB通过自适应滤波方法对边沿状态信号进行滤波处理,得到滤波处理后的边沿状态信号。
在本申请的一些实施例中,由于增量式编码器可能会遇到电磁干扰等问题,所以,其输出的脉冲可能存在杂波(先上升后下降或者先下降后上升的波形)的情况。如果不对杂波进行处理的话,杂波的边沿信息会影响边沿状态脉冲信号,进而导致方向状态信号出现翻转,使得最终输出的分频信号的方向不稳定。
例如,如果第二增量脉冲信号的t3时刻出现一个先上升后下降的杂波,原本t3时刻的边沿信息会多出两个边沿信号,导致t3时刻的方向状态信号会出现由高电平至低电平的翻转。所以,需要使用自适应滤波方法对边沿状态脉冲信号做滤波处理,以得到准确的边沿状态脉冲信号。
结合第一方面以及上述实现方式,在第一方面的一种可能的实现方式中,CLB根据边沿状态信号以及处理后的方向状态信号,确定分频后的两路边沿状态信号的方向,包括:当处理后的方向状态信号为“0”时,确定分频后的两路边沿状态信号为正向;当处理后的方向状态信号为“1”时,确定分频后的两路边沿状态信号为反向。
第二方面,本申请实施例提供了一种分频装置,包括:存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述第一方面中任一项的分频方法。
第三方面,本申请实施例提供了一种计算机可读存储介质,包括:计算机可读存储介质存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述第一方面中任一项的分频方法。
第四方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项的分频方法。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请的一些实施例提供的一例PG卡组成示意图;
图2是根据本申请的一些实施例提供的一例分频方法流程示意图;
图3是根据本申请的一些实施例提供的一例脉冲A与脉冲B及其边沿信号的示意图;
图4是根据本申请的一些实施例提供的一例PG卡100通过DSP芯片引脚获取脉冲A、脉冲B的示意图;
图5是本申请的一些实施例提供的一例生成方向状态信号流程示意图;
图6是根据本申请的一些实施例提供的一例单周期方向脉冲信号D示意图;
图7是根据本申请的一些实施例提供的一例方向状态信号示意图;
图8是根据本申请的一些实施例提供一例杂波示意图;
图9是根据本申请的一些实施例提供的一例脉冲B中出现杂波的波形示意图;
图10是根据本申请的一些实施例提供的一例滤波示意图;
图11是根据本申请的一些实施例提供的一例滤波前后脉冲信号对比图;
图12是根据本申请的一些实施例提供的一例生成分频信号流程图;
图13是根据本申请的一些实施例提供的一例分频信号示意图;
图14是本申请的一些实施例提供的一例CLB2_LUT1_out以及CLB2_LUT2_out的输出示意图;
图15是根据本申请的一些实施例提供的一例分频处理后的方波信号示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
如背景技术所言,现有的PG卡100的主芯片为FPGA芯片,而主控板的芯片为DSP芯片,但是由于FPGA芯片只能支持硬件描述语言(hardware description language,HDL)(例如VHDl,Verilog等语言),而DSP芯片仅支持C语言或者汇编语言编程,所以不利于开发人员维护和管控。
为解决上述问题,本申请的技术方案提供了一种分频方法。下面将结合附图1至13详细说明本申请提供的方法。
图1是根据本申请的一些实施例提供的一例PG卡100组成示意图。
示例性的,如图1所示,PG卡100包括DSP芯片101、CLB1011、有限状态机(finitestate machine,FSM)10111、显示查找表(look up table,LUT)10112、计数器(COUNTER)10113、查表输出模块(out look up table,OUTLUT)10114。
其中,DSP芯片101作为PG卡100的主芯片,用于通过自身的CLB1011对获取的脉冲信号做处理。具体地,DSP芯片101是通过CLB1011中的FSM10111、LUT10112、COUNTER10113、查表输出模块10114完成脉冲信号的获取、滤波、分频输出等步骤。
CLB1011,是由是输入、输出模块和可编程互联总线组成的一个产品。
在本申请的一些实施例中,PG卡100通过CLB1001获取增量式编码器200输出的两个相位差为90°、周期为T的脉冲信号(脉冲A以及脉冲B)。
可选地,CLB1011的数量可以为1个或者1个以上。
应理解,CLB1011的数量是由CLB1011中FSM、LUT的资源决定的,当一个CLB1011中FSM、LUT等设备或模块的资源不能满足脉冲信号处理需求时,可以增加CLB1011的数量。本申请对CLB1011的数量不作限制。
FSM10111是CLB1011中的组成的部分,是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑有可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。
在本申请的一些实施例中,FSM1011用于根据上一刻脉冲信号以及当前脉冲信号判断此时脉冲信号的方向。例如,假设脉冲信号中的低电平用“0”表示,高电平用“1”表示,FSM1011接收到的上一刻脉冲信号为“0”,当前的脉冲信号为“1”,所以可以判断该脉冲信号为正向;又例如,FSM1011接收到的上一刻脉冲信号为“1”,当前的脉冲信号为“0”,可以判断该脉冲信号为反向。
可选地,FSM10111的数量可以为1个或者1个以上,本申请对FSM10111的数量不作限制。
LUT10112是CLB1011的组成部分,其本质为一个随机存取存储器(random accessmemory,RAM)。LUT10112把数据事先写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。在本申请的一些实施例中,LUT10112用于根据接收到的脉冲A以及脉冲B的边沿信号和状态信号,通过布尔运算对这些信号处理后得到单周期的方向脉冲信号。
可选地,LUT10112的数量可以为1个或者1个以上,本申请对LUT10112的数量不作限制。
COUNTER10113用于对脉冲A、脉冲B的边沿信号进行累加计数。在本申请的一些实施例中,COUNTER10113根据脉冲A、脉冲B的边沿信号的个数,确定分频系数。
可选地,COUNTER10113的数量可以为1个或者1个以上,本申请对COUNTER10113的数量不作限制。
OUTLUT10114用于将经过CLB1011内部的脉冲信号输出至CLB1011外部设备,可以是将某个CLB内部的脉冲信号输出至另一个CLB,也可以是将某个CLB内部的脉冲信号输出至其他外部设备。
可选地,OUTLUT10114的数量可以为1个或者1个以上,本申请对OUTLUT10114的数量不作限制。
尽管未示出,但是上述PG卡100还可以包括更多或者更少的设备或者模块,例如,开关(SWITCH)等。本申请对PG卡100的其他组成不作限制。
下面基于图1所示的PG卡100,结合附图2至13说明本申请的分频方法。
图2是根据本申请的一些实施例提供的一例分频方法流程示意图。
示例性的,如图2所示,该方法200包括:
201:开始。
202:获取增量式编码器200输出的脉冲A、脉冲B。
图3是根据本申请的一些实施例提供的一例脉冲A与脉冲B及其边沿信号的示意图。
示例性的,如图3所示,脉冲A、B为相位相差90度的周期为T的正交方形波,脉冲A1、脉冲B1分别为脉冲A、脉冲B的边沿脉冲信号,周期为T/4。
图4是根据本申请的一些实施例提供的一例PG卡100通过DSP芯片引脚获取脉冲A、脉冲B的示意图。
示例性的,如图4所示,PG卡100通过DSP芯片的引脚in1、in2、in4、in5获取脉冲A、脉冲B。
然后,PG卡100通过in1获取脉冲A的状态信号,通过in2获取脉冲A的边沿信号,通过in4获取脉冲B的状态信号,通过in5获取脉冲B的边沿信号。
在本申请的一些实施例中,也可以将A、B脉冲的其他信号状态作为输入信号。例如,将A、B脉冲的上升沿信号作为输入信号,对应的,PG卡100通过in1获取脉冲A的状态信号,通过in2获取脉冲A的上升沿信号,通过in3获取A的下降沿信号,通过in4获取脉冲B的状态信号,通过in5获取脉冲B的上升沿信号,通过in6获取B的下降沿信号。
应理解,PG卡100必须要获取增量编码器输入的脉冲信号中的状态信号。
在本申请的一些实施例中,还可以通过程序控制(例如,编程)等内部输入的方法从DSP101的其他引脚输入置位信号等,本申请对此不作限制。
203:结合脉冲A的边沿信号以及状态信号、脉冲B的边沿信号以及状态信号,生成方向状态信号。
在本申请一种可能的实现方式中,PG卡100中的DSP101中可以包括CLB1和CLB2两个CLB,然后通过CLB1中的FSM和LUT共同对脉冲A和脉冲B进行如下处理,最终生成方向状态信号。
图5是根据本申请的一些实施例提供的一例生成方向状态信号流程示意图。
示例性的,如图5所示,包括CLB1_LUT0,CLB1_LUT1,CLB1_FSM0。
其中,CLB1_LUT0的i0接收脉冲A的边沿信号,i1接收脉冲B的边沿信号。
CLB1_LUT1的i0接收脉冲A的状态信号,CLB1_LUT1的i1接收脉冲B的状态信号,CLB1_LUT1的i2接收脉冲A的边沿脉冲信号A1,CLB1_LUT1的i3接收脉冲B的边沿脉冲信号B1。
CLB1_FSM0的e0接收CLB1_LUT0的输出,e1接收CLB1_LUT1的输出。
结合图5,继续参考参考图3,首先,通过CLB1_LUT0生成边沿脉冲信号C。例如,通过公式(一)计算CLB1_LUT0的输出CLB1_LUT0_out,并最终产生边沿脉冲信号C(参见图3中的脉冲C)。
CLB1_LUT0_out=i0|i1 (一)
由上述公式(一)可知,CLB1_LUT0只有在接收到脉冲A或者脉冲B的边沿信号的情况下,上述CLB1_LUT0_out=1,例如,假设脉冲A的边沿信号为1(由于脉冲A与脉冲B相差90°的相位,所以可以理解,在脉冲A的边沿信号为1时,脉冲B的边沿信号一定为0)。
当脉冲A的边沿信号以及脉冲B的边沿信号均为0时,上述CLB1_LUT0_out=0。
然后结合边沿脉冲C,通过CLB1_LUT1进一步生成单周期的方向状态信号D,并将单周期的方向状态信号D输出至CLB1_FSM0。
图6是根据本申请的一些实施例提供的一例单周期方向脉冲信号D示意图。示例性的,如图6所示,当输入周期T的脉冲A、脉冲B时,CLB1_LUT1_out就会输出单周期的的方向状态信号D。
例如,通过公式(二)可以计算得到CLB1_LUT1的输出CLB1_LUT1_out,并最终得到单周期的方向状态信号。
CLB1_LUT1_out=(((~i0)&(~i1)&i3)|(((~i0)&i1)&i2)|((i0&(~i1)
&i2)|((i0&i1)&i3)) (二)
结合图5,继续参考图3,以脉冲A的边沿信号=1为例,此时i2=1,i3(脉冲B的边沿信号)=0,所以上述公式(二)就为:CLB1_LUT1_out=((~i0)&i1)&i2)|((i0&(~i1)&i2))。即,CLB1_LUT1_out的结果最终取决于i0(脉冲A的状态信号),i1(脉冲B的状态信号),i2(脉冲A的边沿信号)。
假设在t时刻i2=1,那么此时i3=0,而t时刻之后的下一刻i0=1,i1=0,所以CLB1_LUT1_out=((~0)&0)&1|((1&(~0)&1))=1,所以CLB1_LUT1_out在脉冲B边沿信号到来时输出为正向脉冲信号;
当t+T/4时刻,i3=1,i2=0,所以CLB1_LUT1_out=((~i0)&(~i1)&i3)|((i0&i1)&i3)),也即,CLB1_LUT1_out的结果取决于i0,i1,i3。t+T/4时刻的下一时刻i0=1,i1=1,所以CLB1_LUT1_out=((~1)&(~1)&1)|((1&1&1))=1,即CLB1_LUT1_out在脉冲A的边沿信号到来时输出为正向脉冲信号;
当t+T/2时刻,i2=1,i3=0,所以CLB1_LUT1_out=((~i0)&i1)&i2)|((i0&(~i1)&i2)),也即,CLB1_LUT1_out的结果取决于i0,i1,i2。而t+T/2时刻的下一时刻i0=0,i1=1所以,CLB1_LUT1_out=((~0)&1&1)|((0&(~1)&1)=1,即CLB1_LUT1_out在脉冲B边沿信号到来时输出为正向脉冲信号;
当t+3T/4时刻,i3=1,i2=0,所以CLB1_LUT1_out=((~i0)&(~i1)&i3)|((i0&i1)&i3)),而而t+3T/4时刻的下一时刻i0=0,i1=0,所以CLB1_LUT1_out=((~0)&(~0)&1)|((0&0&1))=1,即,CLB1_LUT1_out在脉冲A的边沿信号到来时输出为正向脉冲信号。
当没有接收到脉冲A或者脉冲B的边沿信号时,脉冲A的边沿信号以及脉冲B的边沿信号均为0,所以,i2=0,i3=0,此时,CLB1_LUT1_out=0。
所以,CLB1_LUT1_out在一个脉冲周期T内,输出单周期的方向状态信号D。
当获取到单周期的正向脉冲D后,继续通过CLB1_FSM0对正向脉冲S做处理,得到最终的方向状态信号。例如,通过公式(三)计算CLB1_FSM0_s0,并得到最终的方向状态信号。
CLB1_FSM0_s0=(e0&e1)|((!e0)&s0)
CLB1_FSM0_s1=e1 (三)
结合图5,继续参考图3,以上述脉冲A与脉冲B为例。无论脉冲A的边沿信号为1还是脉冲B的边沿信号为1,通过公式(一)计算均可得CLB1_LUT0_out=1,所以有脉冲A以及脉冲B的边沿信号,e0=1,所以CLB1_FSM0_s0=e1=CLB1_LUT1_out,即CLB1_FSM0_s0输出就为CLB1_LUT1_out,当脉冲A以及脉冲B的边沿信号为0时,e0=0,所以CLB1_FSM0_s0=CLB1_FSM0_s0,即CLB1_FSM0_s0保持输出上一个周期的CLB1_FSM0_s0。
图7是根据本申请的一些实施例提供的一例方向状态信号示意图。
示例性的,如图7所示,脉冲信号E即为CLB1_FSM0_s0输出的正向脉冲信号,由图可知,当不再接收到脉冲A和脉冲B的边沿信号,CLB1_FSM0_s0会一直保持输出上一个周期的CLB1_FSM0_s0,最终通过CLB1_OUTLUT4输出至CLB2模块进行分频处理。
204:结合脉冲A的边沿信号、脉冲B的边沿信号以及上述方向状态信号,对脉冲A和/或脉冲B进行滤波处理。
应理解,增量编码器在使用过程中,往往会由于电磁干扰等情况产生杂波。例如,假设脉冲A的状态一直维持为1,此时脉冲B由于电磁干扰出现杂波(例如,先上升后下降或者先下降后上升),如果不将脉冲B的杂波过滤掉,杂波的边沿也会作为正常的边沿信号输出至CLB2中进行分频计算。
传统的滤波方法是通过IO接口的窗口滤波功能进行去除。窗口滤波功能的原理是,通过预估杂波的抖动期,在抖动期之内的方波均为杂波。
图8是根据本申请的一些实施例提供一例杂波示意图。
示例性的,如图8所示,包括正常的脉冲B,以及有杂波的脉冲B。其中,有杂波的脉冲B中,杂波具有抖动期。
假设杂波的抖动期为t2 s(秒),在t1时刻检测到脉冲B此时的状态为1,经过t2s在进行一次检测,当t3s检测到脉冲B的状态仍为1时,则认为脉冲B的状态为1。可以理解,窗口滤波方法有些粗糙,如果杂波的周期或者脉宽与脉冲B的周期或脉宽一致,则很容易造成丢脉冲(丢掉了正常的脉冲B)或者多脉冲(将杂波作为正常脉冲)的情况。
本申请的一些实施例提供了一种自适应滤波方法。
图9是根据本申请的一些实施例提供的一例脉冲B中出现杂波的波形示意图。
示例性的,如图9所示,t3时刻脉冲A的状态保持为0时,而脉冲B出现了先上升后下降的情况,对应的边沿脉冲信号C在t3时刻也出现了由于杂波引起的两个边沿信号,进而导致原本的方向状态信号E出现一次翻转(参见图9的方向状态信号E1),进一步导致在t3时刻CLB1_FSM1_s0的输出不为0。
图10是根据本申请的一些实施例提供的一例滤波示意图。
示例性的,如图10所示,首先通过CLB1_FSM1判断脉冲B是否有杂波。如果有杂波,则通过CLB1_LUT2将该杂波过滤,如果没有杂波,则通过CLB1_LUT2将有效方向脉冲输出至CLB1_OUTLUT5,最终输出至CLB2模块进行分频计算。
示例性的,CLB1_FSM1的e0接收CLB1_FSM0的s0,然后利用公式(四)计算CLB1_FSM1_s1的结果,根据CLB1_FSM1_s1的结果判断脉冲B是否有杂波。当CLB1_FSM1_s1=0时,认为脉冲B没有产生杂波;当CLB1_FSM1_s1=1时,认为脉冲B产生了杂波。
CLB1_FSM1_s0=CLB1_FSM1_e0
CLB1_FSM1_s1=(CLB1_FSM1_s0&(~CLB1_FSM1_e0)|((~CLB1_FSM1_s0)&e0)
(四)
结合图10,继续参考图9,假设t3时刻脉冲B产生杂波,脉冲A的边沿信号=0,下一刻脉冲A的状态信号=1,脉冲B的边沿信号=1,下一刻脉冲B的状态信号=0。利用上述公式(二)、(三)计算得到CLB1_FSM0_s0=0=CLB1_FSM1_e0,然后根据公式(四)计算可得t3时刻CLB1_FSM1_s1=1,所以t3时刻的方向脉冲与t3时刻之前的方向脉冲的方向不一致,所以t3时刻脉冲B产生了杂波。
然后利用CLB1_LUT2将去除杂波,并输出至CLB1_OUTLUT5。
图11是根据本申请的一些实施例提供的一例滤波前后脉冲信号对比图。
示例性的,如图11所示,通过滤波处理将由于脉冲B的杂波引起的两个边沿信号去除掉。
示例性的,CLB1_LUT2的i0接收CLB1_FSM1_s1,CLB1_LUT2的i1接收CLB1_COUNTER0的match1,然后通过公式(5)将杂波去除后,输出至CLB1_OUTLUT5。
CLB1_LUT2=CLB1_LUT2_i1&(!CLB1_LUT2_i0) (五)
在本申请的一些实施例中,由于边沿信号比方向脉冲要超时一段时间,所以需要通过CLB1_COUNTER0对边沿信号进行延时,以使得边沿信号与方向脉冲能够同步输出。
在得到滤波处理后的边沿信号后,通过CLB1_OUTLUT5输出至CLB2进行分频处理。
应理解,判断脉冲A是否有杂波的方式与判断脉冲B是否有杂波的方式是一致的,此处不再赘述。
205:结合上述经过滤波处理后的脉冲A以及脉冲B的边沿信号以及方向状态信号,对边沿脉冲信号C进行分频处理,并输出分频后的信号。
图12是根据本申请的一些实施例提供的一例生成分频信号流程图。
示例性的,如图12所示,包括CLB2_LUT0、CLB2_COUNTER0、CLB2_FSM0、CLB2_LUT1、CLB2_LUT2、CLB2_FSM1、CLB2_FSM2、CLB2_OUTLUT4、CLB2_OUTLUT5。
其中,CLB2的in2输出决定是否输出1分频的信号,in3接收上述输出的滤波后的边沿信号,in4接收CLB1输出的使能信号,以控制CLB1信号是否输出至CLB2,in5接收脉冲A的原始状态信号,in6接收脉冲B的原始状态信号,in7接收上述输出的方向状态信号。
CLB2_LUT0的i0与CLB2_COUNTER0的match1相接,i1与in4相接,i3与in3相接,out与CLB2_COUNTER0的reset相接,用于根据in4输出的使能信号接收in3输出的上述经过滤波后的边沿信号,然后根据公式(六)判断是否将CLB2_COUNTER0重置。
CLB2_LUT0=CLB2_LUT0_i0|CLB2_LUT0_i1 (六)
CLB2_COUNTER0的event与in3相接,match1分别与CLB2_LUT1的i0以及CLB2_LUT2的i0相接,match2与CLB2_FSM0的e0相接,用于根据in3输出的边沿信号进行计数,当满足需要的分频系数后,通过match1与match2输出分频后的信号。其中,match1输出分频后的边沿翻转信号,match2输出分频后的边沿方波信号。
图13是根据本申请的一些实施例提供的一例分频信号示意图。
示例性的,如图13所示,包括了match1与match2的波形,以及match2经过CLB2_FSM0转换后的波形
CLB2_FSM0的out分别与CLB2_LUT1的i1以及CLB2_LUT2的i1相接,用于通过公式(七)将match2转换成与match1相同的类型的边沿翻转信号。
CLB2_FSM0_s0=CLB2_FSM0_e0
CLB2_FSM0_out=(~CLB2_FSM0_s0)&CLB2_FSM0_e0 (七)
其中,CLB2_LUT1的i2与in7相接,out与CLB2_FSM1的e0相接,CLB2_LUT2的i2与in7相接,out与CLB2_FSM2的e0相接,然后利用in7的输入是否为“1”,来判断CLB2_LUT1、CLB2_LUT2输出结果为match1还是match2。
示例性的,通过公式(八)、(九)来判断输出至CLB2_FSM1还是CLB2_FSM2。
CLB2_LUT1_out=(CLB2_LUT1_i2&CLB2_LUT1_i1)|((~CLB2_LUT1_i2&CLB2_LUT1_i0)) (七)
CLB2_LUT2_out=(CLB2_LUT2_i2&CLB2_LUT2_i0)|((~CLB2_LUT2_i2&CLB2_LUT2_i1)) (八)
当int7输出为1,即为正向状态信号,此时CLB2_LUT1_i2=1,则CLB2_LUT1_out=CLB2_LUT1_i1,所以CLB2_LUT1_out=match2;同理,CLB2_LUT2_out=CLB2_LUT2_i0,然后CLB2_LUT2_out=match1。
当int7输出为0,即为反向状态信号,此时CLB2_LUT_i2=0,则CLB2_LUT1_out=CLB2_LUT1_i0,所以CLB2_LUT1_out=match1,同理CLB2_LUT2_out=CLB2_LUT2_i1,所以CLB2_LUT2_out=match2。
图14是本申请的一些实施例提供的一例CLB2_LUT1_out以及CLB2_LUT2_out的输出示意图。
示例性的,如图14中的(a)图所示,当int7输出为正向状态信号时,CLB2_LUT1_out的输出为match2,CLB2_LUT2_out的输出为match1。
如图14中的(b)图所示,当int7输出为反向状态信号时,CLB2_LUT1_out的输出为match1,CLB2_LUT2_out的输出为match2。
CLB2_FSM1的e1与in4相接,s0与CLB2_OUTLUT4的i0相接,用于通过公式(十)将接收到的match1或者match2边沿方波信号转换成方波信号。CLB2_FSM1_s0=(CLB2_FSM1_e0&(~CLB2_FSM1_s0))|((~CLB2_FSM1_e0)&CLB2_FSM1_s0)&(~CLB2_FSM1_e1)(十)
CLB2_FSM2的e1与in4相接,s0与CLB2_OUTLUT5的i0相接,用于通过公式(十一)将接收到的match1或者match2边沿方波信号转换成方波信号。CLB2_FSM2_s0=(CLB2_FSM2_e0&(~CLB2_FSM2_s0))|((~CLB2_FSM2_e0)&CLB2_FSM2_s0)&(~CLB2_FSM2_e1) (十一)
图15是根据本申请的一些实施例提供的一例分频处理后的方波信号示意图。
示例性的,如图15中的(a)图所示,当int7输出为正向状态信号时,CLB2_LUT1_out的输出为match2,CLB2_LUT2_out的输出为match1,此时CLB2_FSM1_s0输出为match2转换后的方波信号,CLB2_FSM2_s0输出为match1转换后的方波信号。
如图15中的(b)图所示,当int7输出为反向状态信号时,CLB2_LUT1_out的输出为match1,CLB2_LUT2_out的输出为match2,此时CLB2_FSM1_s0输出为match1转换后的方波信号,CLB2_FSM2_s0输出为match2转换后的方波信号。
CLB2_OUTLUT4的i1与in5相接,i2与in2相接,out与CLB2的out4相接,用于通过公式(十二)将接收到分频后的方波信号从CLB2输出。
CLB2_OUTLUT4_out=((CLB2_OUTLUT4_i2&CLB2_OUTLUT4_i1)|(!CLB2_OUTLUT4_i2)&CLB2_OUTLUT4_i0) (十二)
CLB2_OUTLUT6的i1与in6相接,i2与in2相接,out与CLB2的out5相接,用于通过公式(十三)将接收到分频后的方波信号从CLB2输出。
CLB2_OUTLUT6_out=((CLB2_OUTLUT6_i2&CLB2_OUTLUT6_i1)|(!CLB2_OUTLUT6_i2)&CLB2_OUTLUT6_i0) (十三)
206:结束。
应理解,上述实施例中各个脉冲示意图里脉冲的宽度、高度等仅为了示意性说明,并不限制其具体的脉冲宽度以及高度。
还应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请的方法使用DSP芯片取代传统PG卡100的FPGA主芯片,以使得PG卡100主芯片与主控板芯片一样,都能够支持同样的汇编语言编程,解决了传统PG卡100FPGA芯片与主控板芯片不同,无法支持同样汇编语言编程而导致开发人员开发、维护困难的问题,降低了PG卡100的维护成本;同时,由于FPGA芯片能够通常适用于高频采样的场景中,所以制造成本要比一般适用于低频采样场景中DSP芯片的制造成本高,通过本申请的方法也解决了使用FPGA芯片成本高的问题。
另外,在本申请中的分频方法中,也使用了不同于传统IO接口的窗口滤波功能的自适应滤波方法,解决了传统窗口滤波功能丢脉冲、多脉冲等问题。
本申请实施例还提供了一种基于数字信号处理技术实现的设备,该设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (6)

1.一种分频方法,应用于分频脉冲发生器PG,所述分频脉冲发生器PG包括数字信号处理芯片DSP,所述数字信号处理芯片DSP包括可配置逻辑模块CLB,其特征在于,所述方法包括:
所述CLB获取外部输入的第一增量脉冲信号,确定所述第一增量脉冲信号的边沿信息;
所述CLB获取外部输入的第二增量脉冲信号,确定所述第二增量脉冲信号的边沿信息,所述第二增量脉冲信号的相位与所述第一增量脉冲信号的相位相差90°;
所述CLB根据所述第一增量脉冲信号的边沿信息以及所述第二增量脉冲信号的边沿信息,确定边沿状态脉冲信号;
所述CLB根据分频系数,对所述边沿状态脉冲信号做分频处理,得到分频后的两路边沿状态脉冲信号;
所述CLB对所述两路边沿状态脉冲信号做信号保持处理,得到两路方波脉冲信号。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述CLB根据所述第一增量脉冲信号,确定所述第一增量脉冲信号的状态信息;
所述CLB根据所述第二增量脉冲信号,确定所述第二增量脉冲信号的状态信息;
所述CLB根据所述第一增量脉冲信号的边沿信息,所述第一增量脉冲信号的状态信息,所述第二增量脉冲信号的边沿信息,以及所述第二增量脉冲信号的状态信息,确定方向状态信号;
当所述边沿状态脉冲信号为0时,所述CLB对所述方向状态信号做所述信号保持处理,得到处理后的方向状态信号;
所述CLB根据所述边沿状态信号以及所述处理后的方向状态信号,确定分频后的所述两路边沿状态信号的方向。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述CLB根据所述处理后的方向状态信号,判断所述边沿状态信号是否有杂波;
当所述边沿状态信号有杂波时,所述CLB通过自适应滤波方法对所述边沿状态信号进行滤波处理,得到滤波处理后的边沿状态信号。
4.根据权利要求2或3所述的方法,其特征在于,所述CLB根据所述边沿状态信号以及所述处理后的方向状态信号,确定分频后的所述两路边沿状态信号的方向,包括:
当所述处理后的方向状态信号为“0”时,确定分频后的所述两路边沿状态信号为正向;
当所述处理后的方向状态信号为“1”时,确定分频后的所述两路边沿状态信号为反向。
5.一种分频装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的方法。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的方法。
CN202011447981.6A 2020-12-11 分频方法、装置以及计算机可读存储介质 Active CN112653427B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011447981.6A CN112653427B (zh) 2020-12-11 分频方法、装置以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011447981.6A CN112653427B (zh) 2020-12-11 分频方法、装置以及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112653427A true CN112653427A (zh) 2021-04-13
CN112653427B CN112653427B (zh) 2024-05-31

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725754B1 (en) * 2006-08-08 2010-05-25 Xilinx, Inc. Dual clock interface for an integrated circuit
CN102394639A (zh) * 2011-10-26 2012-03-28 深圳市三艾科技有限公司 基于fpga实现伺服驱动器的任意数分频方法及任意数分频器
CN102412828A (zh) * 2011-12-27 2012-04-11 哈尔滨工业大学 基于cpld的光电码盘正交脉冲任意小数分频系统及方法
CN204597934U (zh) * 2015-05-26 2015-08-26 合康变频科技(武汉)有限公司 一种正交光电编码器的任意整数分频电路
CN105553466A (zh) * 2015-12-03 2016-05-04 天津凌浩科技有限公司 基于cpld的光电码盘正交脉冲任意小数分频方法
US20190214944A1 (en) * 2016-09-29 2019-07-11 Intel IP Corporation Modulation circuitry with n.5 division

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725754B1 (en) * 2006-08-08 2010-05-25 Xilinx, Inc. Dual clock interface for an integrated circuit
CN102394639A (zh) * 2011-10-26 2012-03-28 深圳市三艾科技有限公司 基于fpga实现伺服驱动器的任意数分频方法及任意数分频器
CN102412828A (zh) * 2011-12-27 2012-04-11 哈尔滨工业大学 基于cpld的光电码盘正交脉冲任意小数分频系统及方法
CN204597934U (zh) * 2015-05-26 2015-08-26 合康变频科技(武汉)有限公司 一种正交光电编码器的任意整数分频电路
CN105553466A (zh) * 2015-12-03 2016-05-04 天津凌浩科技有限公司 基于cpld的光电码盘正交脉冲任意小数分频方法
US20190214944A1 (en) * 2016-09-29 2019-07-11 Intel IP Corporation Modulation circuitry with n.5 division

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
丁信忠;严彩忠;: "伺服系统等占空比任意小数分频研究", 微电机, no. 07 *
杨辰光: "应用于GPS中的Σ-Δ小数分频电路的研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 *

Similar Documents

Publication Publication Date Title
US4787062A (en) Glitch detection by forcing the output of a simulated logic device to an undefined state
US5087828A (en) Timing circuit for single line serial data
CN112363763B (zh) 数据处理方法、装置及计算机可读存储介质
CN212622809U (zh) 检测电路
CN107562163A (zh) 一种具有稳定复位控制的数字逻辑电路
CN112653427B (zh) 分频方法、装置以及计算机可读存储介质
CN112653427A (zh) 分频方法、装置以及计算机可读存储介质
CN108647422A (zh) 端口时延约束方法及装置
CN110868212B (zh) 一种高速计数和比较电路及其方法
JP2641276B2 (ja) 2段式同期装置
CN109391247B (zh) 一种基于pwm信号的滤波器、处理电路及芯片
US8363766B2 (en) Device and method of synchronizing signals
US10145892B2 (en) Increasing the resolution of on-chip measurement circuits
CN115356532A (zh) 微处理器多路测频系统及其测频方法
Eswar Noise reduction and image smoothing using gaussian blur
RU2806240C1 (ru) Схема обнаружения и способ обнаружения
CN213458042U (zh) 一种前仿真中对亚稳态的模拟处理电路
JP2000004147A (ja) ノイズ除去装置およびノイズ除去方法、並びに記録媒体
US7116599B1 (en) High speed FIFO synchronous programmable full and empty flag generation
SU1583884A1 (ru) Устройство дл функционального контрол цифровых схем
US6856172B1 (en) Sequential logic circuit for frequency division
JP2004164402A (ja) タイマーカウント値の非同期読み出し方法及びタイマー
SU1443745A1 (ru) Многоканальное устройство дл формировани импульсных последовательностей
JPS60173484A (ja) 論理シミユレ−シヨン方式
JPH0636028A (ja) ヒストグラム作成装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant