CN101833690A - 一种简单可靠的增量式编码器计数方法 - Google Patents

一种简单可靠的增量式编码器计数方法 Download PDF

Info

Publication number
CN101833690A
CN101833690A CN200910079890A CN200910079890A CN101833690A CN 101833690 A CN101833690 A CN 101833690A CN 200910079890 A CN200910079890 A CN 200910079890A CN 200910079890 A CN200910079890 A CN 200910079890A CN 101833690 A CN101833690 A CN 101833690A
Authority
CN
China
Prior art keywords
scrambler
chip microcomputer
port
rotation
output port
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
CN200910079890A
Other languages
English (en)
Other versions
CN101833690B (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.)
Beijing Itsync Technology Co Ltd
Original Assignee
Beijing Itsync Technology 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 Beijing Itsync Technology Co Ltd filed Critical Beijing Itsync Technology Co Ltd
Priority to CN 200910079890 priority Critical patent/CN101833690B/zh
Publication of CN101833690A publication Critical patent/CN101833690A/zh
Application granted granted Critical
Publication of CN101833690B publication Critical patent/CN101833690B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种增量式编码器计数方法,所述方法通过编码器和单片机相连接,执行一系列代码对编码器两个输出端口的波形在一个周期内分别作脉冲上升沿和下降沿的判断,然后通过计数器对其进行加减计算。采用这种计数方法,能够解决增量式编码器在使用过程中出现的一些问题,比如:编码器旋转速度快慢、晃动造成的误码,接触不良造成的误计数等等。而且该方法简单可靠,易实现。尤其对廉价的机械式旋转编码器效果更加突出。

Description

一种简单可靠的增量式编码器计数方法
技术领域
本发明属于编码器技术领域,特别涉及一种增量式编码器计数方法。
背景技术
目前,旋转编码器广泛应用于高级音响的音量控制、高档汽车用于检测方向盘的转动角度和一些设备的调整、设置等。现在的旋转编码器主要有绝对值式编码器和增量式编码器,从传感器划分又可以分为机械式、光电式和磁感式。对于增量式的编码器他们的主要用途就是将编码器旋转的角度或位移以电信号的方式表现出来。增量式的编码器因为结构简单,价格较低被大量的应用。
现有技术中,增量式编码器在使用过程中常会出现一些问题,比如:因为晃动(编码器有旋转或移动的趋势,但是旋转或移动的量很小不到一个单位)造成的误码;因为旋转速度快慢不一定造成的误码;针对廉价的机械式旋转编码器还会因为接触不良造成误码。使用本发明的代码就能够很好的解决这些问题,对于廉价的机械式旋转编码器效果尤其突出。
现在对于消除增量式编码器的误码主要有两种方法:一是采用复杂的监相和计数电路来实现;二是用单片机来实现计数。对于第一种方法因为电路复杂、成本高很少被采用。现在编码器计数一般都是采用单片机实现。单片机实现的典型方法是:将编码器的公共端接地,两个输出端其中的一个接单片机的中断端口,并将相应的中断设置为下降沿触发。另外一个输出端接单片机的任意端口。当编码器移动或旋转时就会触发单片机的中断,这时只要判断编码器的另外一个数据输出端的电平就可以知道编码器的旋转或移动方向。具体实现方式见附图1。
在理想的情况下用附图1中方法就可以检测编码的移动或旋转方向。
很显然在附图1的流程中对于抖动没有做任何处理,如果因为抖动触发了中断,而编码器又回到原点的话将会产生一次误码。
为了解决抖动的问题一般还会在数据输出端口并联一个小电容或者用软件延时的方法进行防止抖动的处理。这方法实际上只是解决了抖动的问题或者说是机械式编码器接触不良的问题,不能解决编码器晃动的问题。而且还会带来另外的问题就是:因为延时的作用会对高速旋转或移动造成少计数或误计数,对于低速旋转或移动当一个处理工程完成以后中断端口因为电容的充电作用使中断端口仍然处于下降沿,单片机再次产生中断造成重复计数。而且这种方法还会造成编码器旋转速度过快或过慢。
发明内容
本发明为了解决现有技术中存在的问题,特别提出了一种增量式编码器计数方法。
本发明技术方案如下:
一种简单可靠的增量式编码器的计数方法,包括编码器及单片机,其中编码器第一输出端口与单片机的中断端口相连,第二输出端口与单片机任一端口相连,编码器的公共端接地,所述编码器的计数过程包含如下步骤:
A.设置所述第一输出端口的波形为下降沿时,触发所述单片机关闭所述中断端口;
B.所述单片机根据所述第二输出端口的波形判断所述编码器旋转方向;
C.所述单片机等待所述第一输出端口的波形为高电平时,确认所述编码器旋转方向;
D.确认步骤B与步骤C中编码器旋转方向相同,则所述单片机进行计数,否则,执行步骤F;
E.所述单片机确认所述第一端口及所述第二端口同为高电平时,执行步骤F;
F.所述单片机打开所述中断端口,完成一次计数。
其中,所述步骤B中,所述单片机进行如下判断:
所述第一输出端口的波形与所述第二输出端口的波形同为低电平时,则所述编码器旋转方向为顺时针;
所述第一输出端口的波形为低电平,所述第二输出端口的波形为高电平时,则所述编码器旋转方向为逆时针。
一个实施例是,所述步骤D中,所述编码器旋转方向为顺时针,则所述计数器加1。
另一个实施例是,所述步骤D中,所述编码器旋转方向为逆时针,则所述计数器减1。
采用本发明的方法,能够很好的解决抖动造成的这些问题,编码器不会因为晃动而产生错误的计数,而且不会出现编码器重复计数的问题,对于廉价的机械式旋转编码器效果尤其突出。另外,使用这种方法根本不会对编目器旋转速度产生影响,也就不会出现编码器旋转快慢造成的误码。
附图说明
图1为现有技术编码器计数的流程图;
图2为本发明的电路连接示意图;
图3为本发明编码器输出的波形图;
图4为本发明编码器技术的流程图。
具体实施方式
下面通过附图及实施例对本发明做进一步详细说明。
如图3所示是编码器波形图。从图中可以看出编码器的两个输出端(即图中EN_I与EN_D两个输出端)的波形相位相差90度。当编码器移动或旋转时,即中断的端口(EN_I)处于下降沿的时候,数据输出端口(EN_D)的电平顺时针为“0”,逆时针为“1”。当编码器继续移动或旋转时,即中断的端口(EN_I)处于上升沿的时候,数据输出端口(EN_D)的电平顺时针为“1”,逆时针为“0”。当一个周期结束时下一个周期开始前编码器的两个输出端口都为高电平。
实施例:
如图5是本方法的具体实施方法:在图上,101端口为EN_I中断端口,102端口为EN_D输出端口。
根据图5,实现方法如下:
当编码器中断端口(EN_I中断端口)被下降沿触发后,进入该计数方法。
第一步,将编码器的外中断关闭(即将101端口置0);
第二步,判断编码器的旋转方向,这时会存在两种情况:②如果101端口值为0并且102端口值为1,则为逆时针旋转;③其它情况则打开外中断(即将101端口置1)。
第三步,
1)假设我们按照上述发生①顺时针旋转的情况,①如果101端口和102端口同时为0,则为顺时针旋转。则该程序开始等待当编码器中断端口为高电平(即等待101端口为1)时,确认旋转方向是否为顺时针,方法是通过将102端口输出的值与1进行比较。如果102端口值为1,则为顺时针方向,将计数器加1,然后等待编码器的一个周期完成(即当101端口和102端口值同时为1时),最后打开外中断(即将101端口置1)。如果不是顺时针方向,直接打开外中断(即将101端口置1)。
2)在第三步中,假设我们按照发生②逆时针旋转的情况,则该程序开始等待当编码器中断端口为高电平(即等待101端口为1)时,确认旋转方向是否为逆时针,方法是通过将103端口输出的值与0进行比较。如果102端口值为0,则为逆时针方向,将计数器加1,然后等待编码器的一个周期完成(即当101端口和102端口值同时为1时),最后打开外中断(即将101端口置1)。如果不是逆时针方向,直接打开外中断(即将101端口置1)。
采用本发明的方法,能够很好的解决抖动造成的这些问题,编码器不会因为晃动而产生错误的计数,而且不会出现编码器重复计数的问题,对于廉价的机械式旋转编码器效果尤其突出。另外,使用这种方法根本不会对编目器旋转速度产生影响,也就不会出现编码器旋转快慢造成的误码。
通过以上实施例对本发明进行了进一步揭示,但是本发明的范围并不局限于此,在不偏离本发明构思的条件下,以上各实现步骤可用所属技术领域人员了解的相似或等同实现步骤来替换。

Claims (4)

1.一种简单可靠的增量式编码器的计数方法,包括编码器及单片机,其中编码器第一输出端口与单片机的中断端口相连,第二输出端口与单片机任一端口相连,其特征在于计数过程包含如下步骤:
A、设置所述第一输出端口的波形为下降沿时,触发所述单片机关闭所述中断端口;
B、所述单片机根据所述第二输出端口的波形判断所述编码器旋转方向;
C、所述单片机等待所述第一输出端口的波形为高电平时,确认所述编码器旋转方向;
D、确认步骤B与步骤C中编码器旋转方向相同,则所述单片机进行计数,否则,执行步骤F;
E、所述单片机确认所述第一端口及所述第二端口同为高电平时,执行步骤F;
F、所述单片机打开所述中断端口,完成一次计数。
2.根据权利要求1所述的计数方法,其特征在于所述步骤B中,所述单片机进行如下判断:
所述第一输出端口的波形与所述第二输出端口的波形同为低电平时,则所述编码器旋转方向为顺时针;
所述第一输出端口的波形为低电平,所述第二输出端口的波形为高电平时,则所述编码器旋转方向为逆时针。
3.根据权利要求2所述的计数方法,其特征在于,所述步骤D中,所述编码器旋转方向为顺时针,则所述计数器加1。
4.根据权利要求2所述的计数方法,其特征在于,所述步骤D中,所述编码器旋转方向为逆时针,则所述计数器减1。
CN 200910079890 2009-03-13 2009-03-13 一种简单可靠的增量式编码器计数方法 Expired - Fee Related CN101833690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910079890 CN101833690B (zh) 2009-03-13 2009-03-13 一种简单可靠的增量式编码器计数方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910079890 CN101833690B (zh) 2009-03-13 2009-03-13 一种简单可靠的增量式编码器计数方法

Publications (2)

Publication Number Publication Date
CN101833690A true CN101833690A (zh) 2010-09-15
CN101833690B CN101833690B (zh) 2013-01-02

Family

ID=42717753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910079890 Expired - Fee Related CN101833690B (zh) 2009-03-13 2009-03-13 一种简单可靠的增量式编码器计数方法

Country Status (1)

Country Link
CN (1) CN101833690B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133407A (zh) * 2014-08-01 2014-11-05 常州华达科捷光电仪器有限公司 一种用于增量式编码器的计数装置及计数方法
CN104147711A (zh) * 2014-08-28 2014-11-19 山东交通学院 一种提高多叶准直器叶片位置检测精度的方法
CN106295783A (zh) * 2016-07-18 2017-01-04 广州吉欧光学科技有限公司 一种基于增量式编码器的计数装置及方法
CN106643827A (zh) * 2016-11-15 2017-05-10 乐普医学电子仪器股份有限公司 一种编码器输出信号处理方法
CN109188307A (zh) * 2018-08-14 2019-01-11 青岛海尔智能家电科技有限公司 一种非接触式模具传感器
CN109634312A (zh) * 2018-12-31 2019-04-16 华测检测认证集团股份有限公司 自动防倒大气采样设备
CN114113993A (zh) * 2020-08-26 2022-03-01 深圳和而泰智能控制股份有限公司 编码开关检测方法、计算机存储介质及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013479A (zh) * 2007-01-25 2007-08-08 杭州信雅达系统工程股份有限公司 一种带断电保护的工业计数器及计数方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133407A (zh) * 2014-08-01 2014-11-05 常州华达科捷光电仪器有限公司 一种用于增量式编码器的计数装置及计数方法
CN104147711A (zh) * 2014-08-28 2014-11-19 山东交通学院 一种提高多叶准直器叶片位置检测精度的方法
CN106295783A (zh) * 2016-07-18 2017-01-04 广州吉欧光学科技有限公司 一种基于增量式编码器的计数装置及方法
CN106643827A (zh) * 2016-11-15 2017-05-10 乐普医学电子仪器股份有限公司 一种编码器输出信号处理方法
CN106643827B (zh) * 2016-11-15 2019-01-08 乐普医学电子仪器股份有限公司 一种编码器输出信号处理方法
CN109188307A (zh) * 2018-08-14 2019-01-11 青岛海尔智能家电科技有限公司 一种非接触式模具传感器
CN109634312A (zh) * 2018-12-31 2019-04-16 华测检测认证集团股份有限公司 自动防倒大气采样设备
CN114113993A (zh) * 2020-08-26 2022-03-01 深圳和而泰智能控制股份有限公司 编码开关检测方法、计算机存储介质及设备

Also Published As

Publication number Publication date
CN101833690B (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
CN101833690B (zh) 一种简单可靠的增量式编码器计数方法
CN101995533B (zh) 一种数字增量式编码器断线实时检测的方法和系统
CN102200541B (zh) 一种对电机转速进行测量的方法及装置
CN103575312B (zh) 一种用于光电转台的增量式光电编码器的消抖方法
CN201608680U (zh) 电机旋转检测装置
CN104317253A (zh) 一种用于伺服电机位置控制的系统方法
CN201018440Y (zh) 开关磁阻电机转子的角位置和转速检测装置
CN106643827A (zh) 一种编码器输出信号处理方法
CN102480260A (zh) 永磁同步电机转子角度测量装置中位置信号干扰处理方法
CN102843118A (zh) 用于正交编码器的四倍频和辨向的方法及装置
CN201569663U (zh) 一种基于霍尔元件的无刷直流电机测速装置
CN101539437A (zh) 增量型旋转编码器精确计数的算法及其实现装置
CN204313787U (zh) 一种角度编码器的检测电路
CN209230644U (zh) 一种绝对多圈光电编码器
CN103441717A (zh) 电动挖掘机数字直流调速系统
CN103713154A (zh) 一种利用触发器和编码器判断电机转向的方法
CN101621274B (zh) 交流伺服系统中交流伺服电机的自动辨识方法
CN2859607Y (zh) 光栅编码器反馈信号计数装置
CN207019697U (zh) 编码器正反转检测及细分电路
CN102957426B (zh) 一种可程控旋转编码器的自适应电路
CN104133407A (zh) 一种用于增量式编码器的计数装置及计数方法
CN202513866U (zh) 步进电机运动控制器
CN102708665B (zh) 一种宽频编码信号检测电路及其无线遥控信号解码电路
CN200973074Y (zh) 电子计数器
CN104007685B (zh) 高速精密定位采集触发卡电路及采集方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice

Addressee: Beijing Synchronous Technology Co.,Ltd. dumeiman

Document name: Notification of Passing Examination on Formalities

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130102

CF01 Termination of patent right due to non-payment of annual fee