CN107656093A - 一种旋转编码器的检测方法及装置 - Google Patents
一种旋转编码器的检测方法及装置 Download PDFInfo
- Publication number
- CN107656093A CN107656093A CN201710963502.8A CN201710963502A CN107656093A CN 107656093 A CN107656093 A CN 107656093A CN 201710963502 A CN201710963502 A CN 201710963502A CN 107656093 A CN107656093 A CN 107656093A
- Authority
- CN
- China
- Prior art keywords
- level signal
- rotary encoder
- saltus step
- key assignments
- step occurs
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01P—MEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
- G01P13/00—Indicating or recording presence, absence, or direction, of movement
- G01P13/02—Indicating direction only, e.g. by weather vane
- G01P13/04—Indicating positive or negative direction of a linear movement or clockwise or anti-clockwise direction of a rotational movement
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
本发明公开了一种旋转编码器的检测方法,该方法包括:获取旋转编码器的第一端口发出的第一电平信号和旋转编码器的第二端口发出的第二电平信号;当第一电平信号发生跳变时,设置第一电平信号处于非使能发生跳变的状态;判断第一电平信号与第二电平信号是否相等,并根据判断结果得出旋转编码器的旋转方向;当设置第一电平信号处于非使能发生跳变的状态的时间达到预先设置的第一间隔时间时,设置第一电平信号处于使能发生跳变的状态;根据旋转编码器的旋转方向得到旋转编码器的键值,并将键值发送至上位机;本发明公开的检测方法,可以避免抖动和干扰对处理器的判断所造成的影响;本发明还公开了一种检测装置,同样具有上述有益效果。
Description
技术领域
本发明涉及信号检测领域,特别是涉及一种旋转编码器的检测方法及装置。
背景技术
随着近年来科技的不断进步,汽车电子设备需要实现的功能越来越复杂。其中旋转编码器作为一种常见的电子物料,常用于调节音量、频率等参数。
旋转编码器通常具有两个端口向外发出矩形波,分别为A相端口和B相端口。当旋转编码器被旋转时,每旋转一格,A相端口和B相端口输出的电平会进行一次跳变,最终形成矩形波。上述A相端口和B相端口发出的矩形波之间存在相位差,根据旋转编码器旋转方向的不同,所述相位差也会不同,例如当旋转编码器顺时针旋转时,A向端口输出的矩形波会超前B向端口输出的矩形波1/4个相位;反之则落后1/4个相位。所以根据A向端口输出的矩形波和B向端口输出的矩形波之间的相位关系可以判断出旋转编码器的旋转方向,并且根据上述跳变的次数可以判断出旋转编码器的旋转格数。
但是在转动旋转编码器的过程中,经常会出现很多的抖动以及干扰信号,使得旋转编码器发出的信号会产生跳变,从而使得处理器检测到错误的跳变信号,进而使得上位机显示错误的信息或执行错误的动作。所以如何避免旋转编码器在使用的过程中,出现的抖动和干扰信号对处理器的判断所造成的影响,是现今亟待解决的问题。
发明内容
本发明的目的是提供一种旋转编码器的检测方法,可以减少抖动和干扰信号对旋转编码器输出的跳变信号的干扰;本发明还提供了一种旋转编码器的检测装置,可以减少抖动和干扰信号对旋转编码器输出的跳变信号的干扰。
为解决上述技术问题,本发明提供一种旋转编码器的检测方法,所述方法包括:
获取旋转编码器的第一端口发出的第一电平信号和所述旋转编码器的第二端口发出的第二电平信号;
当所述第一电平信号发生跳变时,设置所述第一电平信号处于非使能发生跳变的状态;
判断所述第一电平信号与所述第二电平信号是否相等,并根据所述判断结果得出所述旋转编码器的旋转方向;
当所述设置所述第一电平信号处于非使能发生跳变的状态的时间达到预先设置的第一间隔时间时,设置所述第一电平信号处于使能发生跳变的状态;
根据所述旋转编码器的旋转方向得到所述旋转编码器的键值,并将所述键值发送至上位机。
可选的,所述第一间隔时间的取值范围为13ms至20ms。
可选的,所述将所述键值发送至上位机包括:
判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间,若是,则将所述键值发送至所述上位机。
可选的,在所述判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间之后,所述方法进一步包括:
判断是否检测到所述旋转编码器发生旋转,若是,则将所述键值发送至所述上位机。
可选的,所述第二间隔时间的取值范围为45ms至60ms。
本发明还提供了一种旋转编码器的检测装置,所述装置包括:
获取模块:用于获取旋转编码器的第一端口发出的第一电平信号和所述旋转编码器的第二端口发出的第二电平信号;
禁止模块:用于当所述第一电平信号发生跳变时,设置所述第一电平信号处于非使能发生跳变的状态;
方向判断模块:用于判断所述第一电平信号与所述第二电平信号是否相等,并根据所述判断结果得出所述旋转编码器的旋转方向;
消抖模块:用于当所述设置所述第一电平信号处于非使能发生跳变的状态的时间达到预先设置的第一间隔时间时,设置所述第一电平信号处于使能发生跳变的状态;
发送模块:用于根据所述旋转编码器的旋转方向得到所述旋转编码器的键值,并将所述键值发送至上位机。
可选的,所述消抖模块具体用于:
判断所述设置所述第一电平信号处于非使能发生跳变的状态的时间是否达到预先设置的第一间隔时间,若是,则设置所述第一电平信号处于使能发生跳变的状态,所述第一间隔时间的取值范围为13ms至20ms。
可选的,所述发送模块包括:
延迟单元:用于判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间;
发送单元:用于当所述延迟单元判断结果为是,则将所述键值发送至所述上位机。
可选的,所述发送模块还包括:
检验单元:用于判断是否检测到所述旋转编码器发生旋转;
所述发送单元具体用于:
当所述检验单元判断结果为是,则将所述键值发送至所述上位机。
可选的,所述延迟单元具体用于:
判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间,所述第二间隔时间的取值范围为45ms至60ms。
本发明所提供的一种旋转编码器的检测方法,可以在每次第一电平信号发生跳变时,都通过禁止第一电平信号在一段时间内发生跳变,来越过可能存在的干扰对第一电平信号的影响,从而避免旋转编码器在使用的过程中,出现的抖动和干扰对处理器的判断所造成的影响;并且在判断旋转编码器的旋转方向时,可以简单的通过判断第一电平信号和第二电平信号是否一致来得出旋转编码器的旋转方向,从而极大的减少了系统资源的浪费。本发明还提供了一种旋转编码器的检测装置,同样具有上述有益效果,在此不再进行赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所应用的检测电路的电路图;
图2为本发明实施例所提供的第一种旋转编码器的检测方法的流程图;
图3为本发明实施例所提供的第二种旋转编码器的检测方法的流程图;
图4为本发明所提供的检测方法应用在车载导航设备时的流程图;
图5为本发明实施例提供的一种旋转编码器的检测装置的结构框图。
具体实施方式
本发明的核心是提供一种旋转编码器的检测方法。在现有技术中,在转动旋转编码器的时候经常会出现很多的抖动以及干扰信号,使得旋转编码器发出的信号会由于干扰产生跳变,从而使得处理器可能检测到错误的跳变信号,进而使得上位机显示出错误的信息或执行错误的动作。并且在现有技术中,对于检测旋转编码器的转动方向的步骤,通常非常的繁琐,会造成系统资源极大的浪费。
而本发明所提供的一种旋转编码器的检测方法,可以在每次第一电平信号发生跳变时,都通过禁止第一电平信号在一段时间内发生跳变,来越过可能存在的干扰对第一电平信号的影响,从而避免旋转编码器在使用的过程中,出现的抖动和干扰对处理器的判断所造成的影响;并且在判断旋转编码器的旋转方向时,可以简单的通过判断第一电平信号和第二电平信号是否一致来得出旋转编码器的旋转方向,从而极大的减少了系统资源的浪费。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所应用的检测电路的电路图,所述检测电路包括旋转编码器、处理器、输入电源,其中,VCC为输入的电源电压。由于旋转编码器在使用过程中经常会产生抖动以及干扰,同时输入电源在提供电压的同时也会存在干扰信号,所以通常还会分别在输入电源端与旋转编码器端设置有滤波模块,即旋转编码器会通过滤波模块连接处理器的管脚,同时输入电源会通过滤波模块连接该处理器。
具体的讲,旋转编码器会有两个输出端口,分别为A相端口和B相端口,而A相端口和B相端口会分别连接所述处理器的两个管脚PIN_A和PIN_B。其中,A相端口会连接管脚PIN_A,B相端口会连接管脚PIN_B。当然,上述A相端口和B相端口连接的管脚也可以互换,在本发明实施例中不做具体限定。
上述A相端口与管脚PIN_A之间还连接有电阻R3,B相端口与管脚PIN_B之间还连接有电阻R4。A相端口还与电容C2的一端相连,所述电容C2的另一端接地;B相端口还与电容C1的一端相连,所述电容C1的另一端同样接地。上述电阻R3和电容C2共同组成了一个一级RC滤波电路,对A相端口输出的电信号进行滤波;电阻R4和电容C1同样共同组成了一个一级RC滤波电路,对B相端口输出的电信号进行滤波。
对于输入电压VCC端,通常会有正极和负极两根导线连接进上述电路,通常情况下是分别连接在电阻R3和电阻R4的一端,当然,也可以分别连接在管脚PIN_A和PIN_B,或者是旋转编码器的A相端口和B相端口,在本发明中不做具体限定。
上述输入电源的两端,会分别连接电阻R1的一端和电阻R2的一端;所述电阻R1的另一端会连接所述电阻R3的一端,所述电阻R2的另一端会连接所述电阻R4的一端。电阻R1还会连接电容C3的一端,所述电容C3的另一端接地;电阻R2还会连接电容C4的一端,所述电容C4的另一端同样接地。上述电阻R1和电容C3共同组成了一个一级RC滤波电路,电阻R2和电容C4同样共同组成了一个一级RC滤波电路,共同对输入电源的两端进行滤波。
上述检测电路中,通常情况下,电阻R1和电阻R2的电阻值为4.7KΩ,电阻R3和电阻R4的电阻值为1KΩ;电容C1和电容C2的电容值为10nF,电容C3和电容C4的电容值为100nF;所述处理器为型号是STM32F105VC芯片;所述管脚PIN_A为PE2,所述管脚PIN_B为PE3。
上述检测电路中,对于管脚PIN_A和PIN_B,必须有一个管脚具备外部中断功能,通过外部中断来执行在下述本发明实施例中做提及的方法。在本发明中,假设管脚PIN_A具有外部中断功能,当然也可以是管脚PIN_B,视具体的情况而定,在本发明中不做具体限定。在本发明中,会预先将管脚PIN_A设置为外部中断模式,触发条件是双边沿触发,即从管脚PIN_A输入的电信号,每当该电信号发生一次跳变时,就会触发上述外部中断功能,进而执行下述本发明实施例的方法。
请参考图2,图2为本发明实施例所提供的第一种旋转编码器的检测方法的流程图,该方法包括:
S101:获取旋转编码器的第一端口发出的第一电平信号和旋转编码器的第二端口发出的第二电平信号。
在本步骤中,处理器会通过管脚PIN_A和PIN_B获取旋转编码器通过A相端口和B相端口发出的电平信号,其中,在本发明实施例中,第一端口为A相端口,连接管脚PIN_A,该管脚具有外部中断功能,当所述第一电平信号发生跳变时,可以触发后续流程。相应的,第二端口为B相端口,连接管脚PIN_B。
上述具体内容仅起到举例说明的作用,并不是对本发明所提供的方法的具体限定,上述具有外部中功能的管脚也可以是PIN_B,相应的,该外部中断的触发条件会变为:当所述第二电平信号发生跳变时,可以触发后续流程。
在本发明实施例中,S101可以是在S102之前执行,也可以是在S102之后执行,即第一电平信号先发生跳变,在获取所述第一电平信号和所述第二电平信号。在本发明实施例中不做具体限定。
当转动旋转编码器的时候,所述第一电平信号和所述第二电平信号会发生跳变,通常情况下,旋转编码器每转动一格,所述第一电平信号和所述第二电平信号会跳变一次。上述A相端口和B相端口发出的矩形波之间存在相位差,即第一电平信号与第二电平信号在跳变时会存在时间差。根据旋转编码器旋转方向的不同,所述相位差也会不同,所以在下述步骤中,可以根据第一电平信号与第二电平信号是否相等来判断出所述旋转编码器的旋转方向。
S102:当第一电平信号发生跳变时,设置第一电平信号处于非使能发生跳变的状态;
在本步骤中,当所述第一电平信号发生跳变时,意味着用户将旋转编码器旋转了一格,即开启了外部中断功能,此时为了防止抖动及干扰信号使旋转编码器继续发生跳变,会设置所述第一电平信号处于非使能发生跳变的状态,即所述第一电平信号无法再发生跳变,此时即便存在了抖动以及干扰信号,也不会使第一电平信号发生跳变,从而排除了抖动以及干扰信号对旋转编码器输出的电平信号的干扰。
S103:判断第一电平信号与第二电平信号是否相等。
S104:根据判断结果得出旋转编码器的旋转方向。
在本发明实施例中,可以根据S103得到的判断结果得出所述旋转编码器的旋转方向。
具体的讲,由于旋转编码器通过A相端口和B相端口发出的电平信号存在相位差,假如A相端口发出的电平信号的相位超前于B相端口发出的电平信号的相位代表着旋转编码器沿顺时针方向旋转,反之旋转编码器沿逆时针方向旋转,那么当旋转编码器顺时针旋转时,A相端口发出的电平信号会比B相端口发出的电平信号提前发生跳变,反之当旋转编码器逆时针旋转时,B相端口发出的电平信号会比A相端口发出的电平信号提前发生跳变。在本发明实施例中,在所述第一电平信号发生跳变之后,可以根据第一电平信号与第二电平信号是否相等来判断出旋转编码器的旋转方向。
举例说明,若第一电平信号为旋转编码器A相端口发出的电平信号,第二电平信号为旋转编码器B相端口发出的电平信号;并且第一电平信号的相位超前于第二电平线号时,意味着旋转编码器顺时针旋转。那么当所述第一电平线号发生跳变时,若检测到所述第一电平信号与所述第二电平信号不相等,则意味着第一电平信号的相位超前于第二电平线号,即所述旋转编码器正在顺时针旋转。反之,若检测到所述第一电平信号与所述第二电平信号相等,则意味着第二电平信号的相位超前于第一电平线号,即所述旋转编码器正在逆时针旋转。
当然,除了上述举例说明的内容之外,还可以通过其他的设置方式以及相应的条件来判断出所述旋转编码器的旋转方向,其具体内容在本法民实施例中不做具体限定。
S105:当设置第一电平信号处于非使能发生跳变的状态的时间达到预先设置的第一间隔时间时,设置第一电平信号处于使能发生跳变的状态。
在本发明实施例中,不能一直将第一电平信号设置成处于非使能跳变的状态,这样将所述第一电平信号将只能跳变一次。由于上述抖动以及干扰信号通常只在电平信号刚刚发生跳变的阶段对所述电平信号产生干扰,在经过一段时间后,上述抖动以及干扰信号将不会再对电平信号造成干扰,所以在经过一段时间后,就可以设置所述第一电平信号处于使能的跳变状态,即此时当所述第一电平信号再次发生跳变时,可以重复前序步骤。
在本步骤中,通常会判断设置所述第一电平信号处于非使能发生跳变的状态的时间是否达到预先设置的第一间隔时间,若是,则意味着此时抖动以及干扰信号将不会再对电平信号造成干扰,消抖时间已经结束,可以将设置所述第一电平信号处于使能发生跳变的状态;若否,则意味着消抖时间没有结束,此时会重复上述判断的步骤,直到消抖时间结束。所述第一间隔时间的范围为13ms至20ms,即消抖时间的取值范围为13ms至20ms,最好是将消抖时间设置成15ms。
在本发明实施例中,可以但不推荐将S105提前至S103和S104之前,即先判断是否已经经过所述消抖时间,在判断所述旋转编码器的旋转方向。因为当经过消抖时间之后,第二电平信号可能已经发生跳变,此时在将第一电平信号与第二电平信号进行对比可能会造成误判;或者为了不造成可能的误判,需要相应的缩短消抖时间,但这同样会影响消抖的效果,使得上述抖动以及干扰信号依然可能对第一电平信号造成干扰。
进一步的,在本发明实施例中,S105所执行的动作可以与前述步骤同时进行,即S105可以通过其他的线程与前述步骤同时进行,而不用等到S104执行完成之后在执行S105。
S106:根据旋转编码器的旋转方向得到旋转编码器的键值。
在本发明实施例中,当检测到第一电平信号发生跳变时,意味着旋转编码器已经顺时针或者逆时针旋转了一格。当在S104中得到所述旋转编码器的旋转方向时,就可以明确知道旋转编码器是顺时针旋转一格还是逆时针旋转一格,即得到了所述旋转编码器的键值是加1还是减1。通常情况下,顺时针旋转一格对应于旋转编码器的键值为加1,逆时针旋转一格对应于旋转编码器的键值为减1。
S107:将键值发送至上位机。
在本步骤中,得到所述键值之后,会将所述键值发送至上位机,使得所述显示相应的信息或者是执行相应的操作。
本发明实施例所提供的一种旋转编码器的检测方法,可以在每次第一电平信号发生跳变时,都通过禁止第一电平信号在一段时间内发生跳变,来越过可能存在的干扰对第一电平信号的影响,从而避免旋转编码器在使用的过程中,出现的抖动和干扰对处理器的判断所造成的影响;并且在判断旋转编码器的旋转方向时,可以简单的通过判断第一电平信号和第二电平信号是否一致来得出旋转编码器的旋转方向,从而极大的减少了系统资源的浪费。
在本发明中,在向上位机发送旋转编码器的键值时,其频率既不能太快也不能太慢。例如所述旋转编码器是调节音量的旋钮,发送的频率过快,会导致音量突变,产生爆音;发送的频率过慢,会使得音量变化的速率严重低于旋转编码器的转动速率。有关向上位机发送旋转编码器的键值的具体内容,将在下述发明实施例中做详细说明。
请参考图3,图3为本发明实施例所提供的第二种旋转编码器的检测方法的流程图,本发明实施例所提供的检测方法是在上述发明实施例所提供的检测方法的基础上,对于S108做出下述改进:
S201:判断发送键值的发送间隔是否达到预先设置的第二间隔时间,若是,则执行S202。
在本步骤中,在每次向上位机发送旋转编码器的键值时,会判断此次向上位机发送键值的时间与上一次向上位机发送键值的时间的差值是否达到预先设置的第二间隔时间,若是,则表明向上位机发送键值的频率合适,不会因为发送键值的频率过快或过慢导致用户的体验较差。
在本步骤中,若S201判断的结果使否,则会重复执行S201,直到其判断结果为是。所述第二间隔时间的取值范围为45ms至60ms,当第二时间间隔在上述范围内,可以保证向上位机发送键值的频率合适。当然,所述第二间隔时间最好设置成50ms。
S202:判断是否检测到旋转编码器发生旋转,若是,则执行S203。
在本步骤中,会进一步的判断是否检测到旋转编码器发生旋转,由于本实施例所提供的流程与上述发明实施例中的所提供的流程同样可以通过不同的线程并行的执行,所以在此处需要判断旋转编码器是否发生了旋转,以防止误发送的情况发生。在本步骤中,若S202判断结果为是,则执行S203;若其判断结果为否,则结束本流程。
在本发明实施例中,也可以不执行S202,在S201中判断出发送键值的发送间隔已经达到预先设置的第二间隔时间之后,就可以执行S203。
S203:将键值发送至所述上位机。
在本步骤中,会将所述键值发送至上位机,使得所述显示相应的信息或者是执行相应的操作。
本发明实施例所提供的一种旋转编码器的检测方法,可以在向上位机发送旋转编码器的键值时,让发送键值的频率既不太快也不太慢,从而提供用户的体验。
请参考图4,图4为本发明所提供的检测方法应用在车载导航设备时的流程图。
在本发明实施例中,当旋转编码器应用在车载导航设备当中,用于调整车载导航设备的音量等参数时,上述发明实施例中所提供的检测电路以及旋转编码器的检测方法可以应用在车载导航设备中。在本发明实施例中,当第一电平信号发生跳变时,会触发上述检测电路中的外部中断功能,从而开启下述流程。其中S301至S308可以通过第一个线程执行;S309至S311可以通过第二个线程执行;S312至S315可以通过第三个线程执行;而所述第一个线程、第二个线程、第三个线程之间可以同时执行,此时该方法包括:
S301:清除中断标志。
在本步骤中,由于当第一电平信号发生跳变时,会触发管脚PIN_A的外部中断功能,该功能会增加一个中断标志,所以在S301中会先清除该中断标志。
S302:设置PE2处于非使能外部中断的状态。
在本发明实施例中,PE2为管脚PIN_A,该管脚具有外部中断功能。
S303:清零消抖时间计数器。
在本步骤中,由于判断消抖时间,即上述第一间隔时间是否达到是根据消抖时间计数器判断的,即所述消抖时间计数器先加1,然后判断该消抖时间计数器加1的时间是否达到预先设置的第一间隔时间,若达到了所述第一间隔时间,则表明消抖时间已经达到。
S304:读取PE2的电平。
S305:读取PE3的电平。
在本发明实施例中,PE3为管脚PIN_B,该管脚不具有外部中断功能。
S306:判断PE2的电平和PE3的电平是否相等,若是,则执行S307;若否,则执行S308。
S307:检测到音量按键的键值为加1。
S308:检测到音量按键的键值为减1。
在本发明实施例中,所述PE2连接旋转编码器的B相端口,所述PE3连接旋转编码器的A相端口。当PE2的电平和PE3的电平相等时,意味着PE2获取到的矩形波的相位落后于PE3获取到的矩形波的相位,等于旋转编码器顺时针旋转,即检测到音量按键的键值为加1;反之当PE2的电平和PE3的电平不相等时,意味着PE2获取到的矩形波的相位超前于PE3获取到的矩形波的相位,等于旋转编码器逆时针旋转,即检测到音量按键的键值为减1。
S309:消抖时间计数器加1。
S310:判断是否达到15ms,若是,则执行S311;若否,则执行S310。
S311:设置PE2处于使能外部中断的状态。
S312:发送时间计数器加1。
在本发明实施例中,由于判断发送间隔时间,即上述第二间隔时间是否达到是根据发送时间计数器判断的,即所述发送时间计数器先加1,然后判断该发送时间计数器加1的时间是否达到预先设置的第二间隔时间,若达到了所述第二间隔时间,则表明发送时间已经达到。
S313:判断是否达到50ms,若是,则执行S314;若否,则执行S313。
S314:判断是否检测到旋转编码器发生旋转,若是,则执行S315;若否,则结束流程。
S315:将键值发送至所述上位机。
在本发明实施例中,其中关于各个步骤的详细内容已在上述发明实施例中做详细说明,在此不再进行赘述。
下面对本发明实施例提供的一种旋转编码器的检测装置进行介绍,下文描述的旋转编码器的检测装置与上文描述的旋转编码器的检测方法可相互对应参照。
图5为本发明实施例提供的一种旋转编码器的检测装置的结构框图,参照图5,该检测装置可以包括:
获取模块100:用于获取旋转编码器的第一端口发出的第一电平信号和所述旋转编码器的第二端口发出的第二电平信号。
禁止模块200:用于当所述第一电平信号发生跳变时,设置所述第一电平信号处于非使能发生跳变的状态。
方向判断模块300:用于判断所述第一电平信号与所述第二电平信号是否相等,并根据所述判断结果得出所述旋转编码器的旋转方向。
消抖模块400:用于判断所述设置所述第一电平信号处于非使能发生跳变的状态的时间是否达到预先设置的第一间隔时间,若是,则设置所述第一电平信号处于使能发生跳变的状态。
发送模块500:用于根据所述旋转编码器的旋转方向得到所述旋转编码器的键值,并将所述键值发送至上位机。
在本发明实施例中,所述消抖模块400可以具体用于:
判断所述设置所述第一电平信号处于非使能发生跳变的状态的时间是否达到预先设置的第一间隔时间,若是,则设置所述第一电平信号处于使能发生跳变的状态,所述第一间隔时间的取值范围为13ms至17ms。
在本发明实施例中,所述发送模块500可以包括:
延迟单元501:用于判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间。
发送单元502:用于当所述延迟单元501判断结果为是,则将所述键值发送至所述上位机。
在本发明实施例中,所述发送模块500可以还包括:
检验单元503:用于判断是否检测到所述旋转编码器发生旋转。
所述发送单元502具体用于:
当所述检验单元503判断结果为是,则将所述键值发送至所述上位机。
在本发明实施例中,所述延迟单元501具体用于:
判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间,所述第二间隔时间的取值范围为45ms至55ms。
本实施例的一种旋转编码器的检测装置用于实现前述的一种旋转编码器的检测方法,因此检测装置中的具体实施方式可见前文中的检测方法的实施例部分,例如,获取模块100,禁止模块200,方向判断模块300,消抖模块400,发送模块500分别用于实现上述检测方法中步骤S101至S108,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种旋转编码器的检测方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种旋转编码器的检测方法,其特征在于,所述方法包括:
获取旋转编码器的第一端口发出的第一电平信号和所述旋转编码器的第二端口发出的第二电平信号;
当所述第一电平信号发生跳变时,设置所述第一电平信号处于非使能发生跳变的状态;
判断所述第一电平信号与所述第二电平信号是否相等,并根据所述判断结果得出所述旋转编码器的旋转方向;
当所述设置所述第一电平信号处于非使能发生跳变的状态的时间达到预先设置的第一间隔时间时,设置所述第一电平信号处于使能发生跳变的状态;
根据所述旋转编码器的旋转方向得到所述旋转编码器的键值,并将所述键值发送至上位机。
2.根据权利要求1所述的方法,其特征在于,所述第一间隔时间的取值范围为13ms至20ms。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述键值发送至上位机包括:
判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间,若是,则将所述键值发送至所述上位机。
4.根据权利要求3所述的方法,其特征在于,在所述判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间之后,所述方法进一步包括:
判断是否检测到所述旋转编码器发生旋转,若是,则将所述键值发送至所述上位机。
5.根据权利要求4所述的方法,其特征在于,所述第二间隔时间的取值范围为45ms至60ms。
6.一种旋转编码器的检测装置,其特征在于,所述装置包括:
获取模块:用于获取旋转编码器的第一端口发出的第一电平信号和所述旋转编码器的第二端口发出的第二电平信号;
禁止模块:用于当所述第一电平信号发生跳变时,设置所述第一电平信号处于非使能发生跳变的状态;
方向判断模块:用于判断所述第一电平信号与所述第二电平信号是否相等,并根据所述判断结果得出所述旋转编码器的旋转方向;
消抖模块:用于当所述设置所述第一电平信号处于非使能发生跳变的状态的时间达到预先设置的第一间隔时间时,设置所述第一电平信号处于使能发生跳变的状态;
发送模块:用于根据所述旋转编码器的旋转方向得到所述旋转编码器的键值,并将所述键值发送至上位机。
7.根据权利要求6所述的装置,其特征在于,所述消抖模块具体用于:
判断所述设置所述第一电平信号处于非使能发生跳变的状态的时间是否达到预先设置的第一间隔时间,若是,则设置所述第一电平信号处于使能发生跳变的状态,所述第一间隔时间的取值范围为13ms至20ms。
8.根据权利要求6或7所述的装置,其特征在于,所述发送模块包括:
延迟单元:用于判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间;
发送单元:用于当所述延迟单元判断结果为是,则将所述键值发送至所述上位机。
9.根据权利要求8所述的装置,其特征在于,所述发送模块还包括:
检验单元:用于判断是否检测到所述旋转编码器发生旋转;
所述发送单元具体用于:
当所述检验单元判断结果为是,则将所述键值发送至所述上位机。
10.根据权利要求9所述的装置,其特征在于,所述延迟单元具体用于:
判断发送所述键值的发送间隔是否达到预先设置的第二间隔时间,所述第二间隔时间的取值范围为45ms至60ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710963502.8A CN107656093A (zh) | 2017-10-16 | 2017-10-16 | 一种旋转编码器的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710963502.8A CN107656093A (zh) | 2017-10-16 | 2017-10-16 | 一种旋转编码器的检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107656093A true CN107656093A (zh) | 2018-02-02 |
Family
ID=61118489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710963502.8A Pending CN107656093A (zh) | 2017-10-16 | 2017-10-16 | 一种旋转编码器的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107656093A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111142428A (zh) * | 2019-12-13 | 2020-05-12 | 芜湖宏景电子股份有限公司 | 采用ad口线的编码器的检测电路 |
CN112000141A (zh) * | 2020-07-10 | 2020-11-27 | 惠州市德赛西威汽车电子股份有限公司 | 一种旋钮编码器去抖方法 |
CN112146686A (zh) * | 2019-06-27 | 2020-12-29 | 西安诺瓦星云科技股份有限公司 | 旋转信息获取方法、装置及系统和计算机可读存储介质 |
CN112504316A (zh) * | 2019-09-16 | 2021-03-16 | 西安诺瓦星云科技股份有限公司 | 旋转编码器检测方法、装置及系统 |
CN114113993A (zh) * | 2020-08-26 | 2022-03-01 | 深圳和而泰智能控制股份有限公司 | 编码开关检测方法、计算机存储介质及设备 |
CN114353836A (zh) * | 2022-01-17 | 2022-04-15 | 中国人民解放军国防科技大学 | 光纤传感系统3×3信号检测中乘性强度噪声的抑制方法 |
WO2022178835A1 (zh) * | 2021-02-26 | 2022-09-01 | 京东方科技集团股份有限公司 | 按键控制装置和按键控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101348034A (zh) * | 2007-07-17 | 2009-01-21 | 小森公司 | 卷筒纸轮转印刷机的同步控制方法和装置 |
CN103713154A (zh) * | 2014-01-07 | 2014-04-09 | 东华大学 | 一种利用触发器和编码器判断电机转向的方法 |
-
2017
- 2017-10-16 CN CN201710963502.8A patent/CN107656093A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101348034A (zh) * | 2007-07-17 | 2009-01-21 | 小森公司 | 卷筒纸轮转印刷机的同步控制方法和装置 |
CN103713154A (zh) * | 2014-01-07 | 2014-04-09 | 东华大学 | 一种利用触发器和编码器判断电机转向的方法 |
Non-Patent Citations (2)
Title |
---|
李晨: "基于定制Android平台的呼吸机软件研究与实现", 《全国优秀硕士学位论文全文数据库 信息科技辑》 * |
鲜浩: "增量式编码器数据采集", 《华北工学院学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112146686A (zh) * | 2019-06-27 | 2020-12-29 | 西安诺瓦星云科技股份有限公司 | 旋转信息获取方法、装置及系统和计算机可读存储介质 |
CN112504316A (zh) * | 2019-09-16 | 2021-03-16 | 西安诺瓦星云科技股份有限公司 | 旋转编码器检测方法、装置及系统 |
CN111142428A (zh) * | 2019-12-13 | 2020-05-12 | 芜湖宏景电子股份有限公司 | 采用ad口线的编码器的检测电路 |
CN112000141A (zh) * | 2020-07-10 | 2020-11-27 | 惠州市德赛西威汽车电子股份有限公司 | 一种旋钮编码器去抖方法 |
CN112000141B (zh) * | 2020-07-10 | 2023-07-14 | 惠州市德赛西威汽车电子股份有限公司 | 一种旋钮编码器去抖方法 |
CN114113993A (zh) * | 2020-08-26 | 2022-03-01 | 深圳和而泰智能控制股份有限公司 | 编码开关检测方法、计算机存储介质及设备 |
WO2022178835A1 (zh) * | 2021-02-26 | 2022-09-01 | 京东方科技集团股份有限公司 | 按键控制装置和按键控制方法 |
GB2611899A (en) * | 2021-02-26 | 2023-04-19 | Boe Technology Group Co Ltd | Key control apparatus and key control method |
CN114353836A (zh) * | 2022-01-17 | 2022-04-15 | 中国人民解放军国防科技大学 | 光纤传感系统3×3信号检测中乘性强度噪声的抑制方法 |
CN114353836B (zh) * | 2022-01-17 | 2022-09-09 | 中国人民解放军国防科技大学 | 光纤传感系统3×3信号检测中乘性强度噪声的抑制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107656093A (zh) | 一种旋转编码器的检测方法及装置 | |
CN104954675B (zh) | 移动终端及其摄像头的旋转角度检测方法 | |
CN104749993B (zh) | 用于配置工业安全继电器的系统和方法 | |
CN104750063B (zh) | 用于配置工业安全继电器的系统和工业安全系统配置方法 | |
CN103515931B (zh) | 电机缺相检测及保护方法、电机缺相保护系统 | |
CN104468874B (zh) | 用于切换单手操作模式的方法和移动终端 | |
CN104246442B (zh) | 旋转变压器装置、电动机控制装置及电动机控制方法 | |
CN103713170B (zh) | 测试与测量仪器中罕见异常的触发 | |
CN103914208B (zh) | 一种信息处理方法和电子设备 | |
JP2012104088A (ja) | 情報セキュリティ保護ホスト | |
CN103513788B (zh) | 基于陀螺仪传感器的手势识别方法、系统及移动终端 | |
CN106648857A (zh) | 一种移动终端的otg功能的开启方法及移动终端 | |
CN105991415A (zh) | 一种消息推送方法及移动终端 | |
CN106095384A (zh) | 一种音效调节方法及用户终端 | |
CN106355075A (zh) | 一种解锁方法及终端 | |
CN107958169A (zh) | 防拆卸处理方法、装置及终端 | |
CN105629154B (zh) | 一种实现芯片顶层金属覆盖电路测试的方法及装置 | |
CN108614763A (zh) | 一种应用的调试方法及装置 | |
CN104460997B (zh) | 一种实现音乐切换的方法及终端 | |
CN106503065A (zh) | 数据转移的方法及系统 | |
CN109164955A (zh) | 一种应用的展示方法、装置、终端和存储介质 | |
CN104730336A (zh) | 频率检测装置及频率检测方法 | |
CN104881222B (zh) | 一种人机交互方法及装置 | |
JP7065744B2 (ja) | ネットワーク装置、パケットを処理する方法、及びプログラム | |
CN106648378A (zh) | 图像显示方法、装置及移动终端 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180202 |