一种低功耗多圈编码器圈数纠错方法技术

技术编号:32928648 阅读:14 留言:0更新日期:2022-04-07 12:19
本发明专利技术公开了一种低功耗多圈编码器圈数纠错方法,涉及低功耗电子多圈编码器的控制方法领域。可有效避免因进入低功耗的瞬间编码器位置改变,并出现跳变时,导致下一次控制器被唤醒,出现圈数计算错误的问题。本发明专利技术在格雷码发生一次跳变时,不会立即判定为计圈错误或出现丢圈现象,先判断是否存在计圈错误,再判断进入低功耗模式之前记录的两个格雷码和单圈位置所处的区域处在A组,B组还是C组,最后完成纠错。可以根据记录的前两次不同的格雷码对丢失的格雷码进行判断,推算出丢失的格雷码,再结合前两次不同的格雷码、推算出的格雷码和当前格雷码,可以正确计算圈数,提高了编码器计圈的可靠性和容错率。计圈的可靠性和容错率。计圈的可靠性和容错率。

【技术实现步骤摘要】
一种低功耗多圈编码器圈数纠错方法


[0001]本专利技术涉及低功耗电子多圈编码器的控制方法领域。

技术介绍

[0002]目前,低功耗电子多圈编码器的多圈技术主要利用磁电方式,两个磁感应器件会产生两位格雷码信息。编码器按照固定方向旋转一圈两位格雷码连续变化顺序为00、01、11、10或00、10、11、01。电池供电期间,控制器进入低功耗状态,只有磁感应器件信号发生变化或外部电源上电时,控制器会被唤醒,然后计算圈数并记录当前的单圈位置。然而,格雷码的变化是在一瞬间完成的,时间非常短,而控制器进入低功耗所花费的时间t,比格雷码变化的时间要长,如果在控制器进入低功耗的时间t内,编码器位置变化,并且格雷码发生变化,控制器将无法记录格雷码的变化,从而丢失一次格雷码;这样,在某些情况下,下次控制器被唤醒,读取的格雷码将与上一次的格雷码将不再是连续的值,即出现跳变的情况,从而导致圈数计算错误,这种情况出现的概率并不会很高,容易被忽略,但随着编码器的使用,这样的错误将不断被累计,最终,给圈数的计数带来极为严重的影响。

技术实现思路

[0003]本专利技术针对以上问题,提出了一种低功耗多圈编码器圈数纠错方法,可有效避免因进入低功耗的瞬间编码器位置改变,并出现跳变时,导致下一次控制器被唤醒,出现圈数计算错误的问题。
[0004]本专利技术的技术方案为:按以下步骤进行:S1、判断控制器是否由电池供电,如果不是电池供电,则进入步骤S2;如果是电池供电,则进入步骤S3;S2、控制器处在主电工作过程,主电工作期间,记录单圈位置,并将唤醒标志位设置为0,结束后返回步骤S1;S3、控制器进入低功耗模式;此后,当磁感应器件电平发生变化或主电上电时,控制器从低功耗模式被唤醒;唤醒后,控制器判断唤醒标志位是否等于0;如果唤醒标志位不等于0,则进入正常计圈过程,结束后返回步骤S1;如果唤醒标志位等于0,则进行下一步;S4、如果唤醒标志位等于0,则判断格雷码是否发生跳变;如果格雷码没有发生跳变,则进入正常计圈过程,结束后返回步骤S1;如果格雷码发生跳变,则进行下一步;S5、控制器判断进入低功耗模式之前记录的两个格雷码是否为连续变化;如果不是连续变化,则判定为计圈错误,返回步骤S1;如果是连续变化,则进行下一步;S6、控制器进入低功耗模式之前记录的两个格雷码和单圈位置所处的区域具有16种可能,分别为{00,01,区域c}、{00,01,区域d }、{01,11,区域e}、{01,11,区域f}、{11,10,
区域g}、{11,10,区域h}、{10,00,区域a}、{10,00,区域b}、{00,10,区域g}、{00,10,区域h}、{10,11,区域e}、{10,11,区域f}、{11,01,区域c}、{11,01,区域d}、{01,00,区域a}、{01,00,区域b};将以上16种可能分为A、B、C三组;A组包括;{00,01,区域d}、{01,11,区域e}、{11,10,区域g}、{10,00,区域b}、{00,10,区域g}、{10,11,区域e}、{11,01,区域d}、{01,00,区域b};B组包括;{01,11,区域f}、{11,10,区域h}、{00,10,区域h}、{10,11,区域f};C组包括;{00,01,区域c}、{10,00,区域a}、{11,01,区域c}、{01,00,区域a};控制器判断进入低功耗模式之前记录的两个格雷码和单圈位置是否在A组中。如果在A组中,则圈数计数不变,完成纠错,返回步骤S1;如果不是,则进行下一步;S7、控制器判断进入低功耗模式之前记录的两个格雷码和单圈位置是否在B组中;如果在B组中,则将圈数计数+1,完成纠错,返回步骤S1;如果不是,则必然在C组,则将圈数计数

1,完成纠错,返回步骤S1。
[0005]步骤S4中通过以下方法判断格雷码是否发生跳变:判断所读取到的格雷码是否为连续变化,如果是则不认为是发生跳变,如果不是则认为是发生跳变。
[0006]步骤S5判定为计圈错误后,先对编码器进行故障排除或更换,再返回步骤S1。
[0007]所述纠错方法加载于控制器中;控制器保持运行状态,由电池供电时为低功耗模式,被唤醒后,如果唤醒标志位等于0,则先进行一次纠错再进入主电工作模式,进行正常计圈过程;正常计圈过程结束之后,重新进入低功耗模式,等待下一次唤醒。
[0008]本专利技术在格雷码发生一次跳变时,不会立即判定为计圈错误或出现丢圈现象,需要根据记录的前两次不同的格雷码和单圈位置对丢失的格雷码进行判断,推算出丢失的格雷码,再结合前两次不同的格雷码、单圈位置、推算出的格雷码和当前格雷码,可以正确计算圈数,提高了编码器计圈的可靠性和容错率。
附图说明
[0009]图1是本案的工作流程图,图2是本案的工作原理示意图一,图3是本案的工作原理示意图二,图4是本案的工作原理示意图三,图5是本案的工作原理示意图四。
具体实施方式
[0010]为能清楚说明本专利的技术特点,下面通过具体实施方式,并结合其附图,对本专利进行详细阐述。
[0011]编码器的正常计圈过程:两个磁感应器件将编码器一圈位置等分为4个区域,对应不同的格雷码。如图2所示,格雷码变化的位置都可以作为多圈零点,本案选取格雷码10和00的变化位置作为多圈零点,则0
°
~90
°
对应格雷码00,90
°
~180
°
对应格雷码01,180
°
~270
°
对应格雷码11,270
°
~360
°
对应格雷码10;当格雷码由10变为00时,圈数加1,当格雷码由00
变为10时,圈数减1。
[0012]本专利技术方法:控制器唤醒时,格雷码发生跳变,如果只知道前两次不同的格雷码,还无法推算出丢失的格雷码。比如唤醒时,获取的格雷码是00,前两次不同的格雷码是10和11,那么丢失的格雷码存在在两种情况:可能是10,也可能是01。
[0013]如图3所示,本案将编码器一圈位置等分为8个区域,分别为区域a、区域b、区域c、区域d、区域e、区域f、区域g、区域h,其中,0
°
~45
°
为区域a,45
°
~90
°
为区域b,以此类推。主电供电期间,编码器会不断记录最新的单圈位置。为了准确推算出跳变的格雷码,主电供电期间,必须保证编码器记录最新单圈位置在8个区域中是连续变化,因此编码器记录最新位置的时间间隔必须小于,其中是最高转速,t是编码器进入低功耗模式所花费的时间t。
[0014]当格雷码发生跳变时,需要进行以下判断:如果前两次不同的格雷码是10和11,唤醒时,读取的格雷码是00,虽然同样是一次跳变,但会存在两种情况,丢失的格雷码可能是10,也可能是01,具体来说:如图4所示,掉电前单圈位置在区域f中,此时,只有一种情况会导致跳变,即编码器在进入低功耗模式的时间t内本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种低功耗多圈编码器圈数纠错方法,其特征在于,按以下步骤进行:S1、判断控制器是否由电池供电,如果不是电池供电,则进入步骤S2;如果是电池供电,则进入步骤S3;S2、控制器处在主电工作过程,主电工作期间,记录单圈位置,并将唤醒标志位设置为0,结束后返回步骤S1;S3、控制器进入低功耗模式;此后,当磁感应器件电平发生变化或主电上电时,控制器从低功耗模式被唤醒;唤醒后,控制器判断唤醒标志位是否等于0;如果唤醒标志位不等于0,则进入正常计圈过程,结束后返回步骤S1;如果唤醒标志位等于0,则进行下一步;S4、如果唤醒标志位等于0,则判断格雷码是否发生跳变;如果格雷码没有发生跳变,则进入正常计圈过程,结束后返回步骤S1;如果格雷码发生跳变,则进行下一步;S5、控制器判断进入低功耗模式之前记录的两个格雷码是否为连续变化;如果不是连续变化,则判定为计圈错误,返回步骤S1;如果是连续变化,则进行下一步;S6、控制器进入低功耗模式之前记录的两个格雷码和单圈位置所处的区域具有16种可能,分别为{00,01,区域c}、{00,01,区域d }、{01,11,区域e}、{01,11,区域f}、{11,10,区域g}、{11,10,区域h}、{10,00,区域a}、{10,00,区域b}、{00,10,区域g}、{00,10,区域h}、{10,11,区域e}、{10,11,区域f}、{11,01,区域c}、{11,01,区域d}、{01,00,区域a}、{01,00,区域b};将以上16种可能分为A、B、C三组;A组包括;{00,01,区域d}、{01,11,区域e}、{...

【专利技术属性】
技术研发人员:孙家明黄林奎
申请(专利权)人:南京埃斯顿自动化股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1