CN101825481B - 一种应用编码器计数的方法和装置 - Google Patents
一种应用编码器计数的方法和装置 Download PDFInfo
- Publication number
- CN101825481B CN101825481B CN 201010104019 CN201010104019A CN101825481B CN 101825481 B CN101825481 B CN 101825481B CN 201010104019 CN201010104019 CN 201010104019 CN 201010104019 A CN201010104019 A CN 201010104019A CN 101825481 B CN101825481 B CN 101825481B
- Authority
- CN
- China
- Prior art keywords
- encoder
- counting
- pulse signal
- output
- pulse
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000002441 reversible effect Effects 0.000 claims abstract description 23
- 239000002131 composite material Substances 0.000 claims description 4
- 230000000630 rising effect Effects 0.000 claims description 2
- 238000000819 phase cycle Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 1
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
本发明涉及一种计数的方法和装置,属于微处理器控制领域。一种应用编码器计数的方法,其特征在于包括如下步骤:设定编码器的输出脉冲信号,定义编码器的角度旋转方向为往希望方向正转或反转时,以上三路输出脉冲信号的状态字作为标准状态字储存,开始计数,微处理器MCU接收到编码器输出的三路脉冲信号,当检测到脉冲信号出现触发点时,读出此时三路脉冲信号的电平作为实时状态字,将所述实时状态字与上述标准状态字进行比对,如符合,则相应做正向或反向计数,如不符合,则忽略不计。本发明还公开了应用以上方法的应用编码器计数的装置。本发明利用编码器输出三相脉冲信号计数,避免了信号下降沿干扰产生计数误差及脉冲多计或漏记等现象。
Description
技术领域
本发明涉及一种计数方法和装置,尤其涉及一种应用编码器计数的方法和装置。
背景技术
编码器是一种最为常见的角度测量传感器,配备一些机械结构还可以测量位移等其他机械量值,在各行各业都有广泛的应用。编码器是将转轴上的转动角度,利用光栅(磁栅)测量技术转换成方波脉冲输出,通过外部的计数装置对输出脉冲进行计数,得到与被测的角度相对应的数字量。以往一般都使用可逆计数器进行计数,随着微处理器技术的发展和成熟,我们完全可以省略计数器电路,直接使用微处理器进行计数。但在实际使用时,往往会出现计数不准和一些波形干扰影响计数的精确度,同时还必须在测量前事先规定一个正向计数的旋转方向,使应用微处理器进行计数变得不如使用可逆计数器进行计数简单和易使用,且计数的精确度也不一定能保证。
发明内容
本发明所要解决的技术问题是提供一种应用编码器计数的方法,解决现在利用微处理器和编码器进行计数时需要事先进行设定致使使用不便,而且因为编码器的一些波形干扰致使计数的精确度不高的缺陷。
技术方案
本发明提出了一种应用编码器计数的方法,其特征在于包括如下步骤:
设定编码器的输出脉冲信号,设置编码器同时输出具有相位差的两路脉冲信号A和信号B,通过反相将其中一路脉冲信号A反相为A,并与上述两路脉冲信号同时输出;
定义编码器的角度旋转方向为往希望方向正转或反转时,以上三路输出脉冲信号的状态字作为标准状态字储存,当转动编码器往希望正向或反向计数的方向正向或反向旋转时,以脉冲信号A或A的上升沿或下降沿作为触发点,记录下此时三路脉冲信号的电平作为标准状态字;
开始计数,微处理器MCU接收到编码器输出的三路脉冲信号,当检测到脉冲信号A或A出现触发点时,读出此时三路脉冲信号的电平作为实时状态字,将所述实时状态字与上述标准状态字进行比对,如完全符合,则相应做正向或反向计数,如不完全符合,则忽略不计。
所述脉冲信号A和B的相位差为90度,采用以脉冲信号A或A的下降沿作为触发点。
本发明还提出了一种应用编码器计数的装置,其特征在于:包括输出两路具有相位差脉冲信号的编码器,将编码器的其中一路输出信号进行反相的反相器,并将此反相信号与所述两路脉冲信号同时输出的合成输出器,所述合成输出器的三路输出信号分别与微处理器的三个端口相连,同时具有正相和反相的脉冲信号的输出连接微处理器的中断口,另外一路具有相位差的脉冲信号连接微处理器的输入/输出口,所述微处理器内包括存储脉冲信号的电平的状态字的存储器和比较接收的脉冲信号的电平的状态字和预设的状态字进行比较的比较器,以及根据比较器结果进行计数的计数器。
所述编码器采用两相双向编码器。
有益效果
本发明的方法和装置利用编码器输出三相脉冲信号并检测计数,避免了常用的利用两相脉冲信号进行计数易出现的其中一路信号下降沿干扰产生计数误差,或编码器正反转变换时脉冲多计或漏记现象,而且改进了现在确定了正反转方向后不能再改变方向进行计数的缺陷。
附图说明
图1为本发明现在常用的两相输出脉冲时序图。
图2为本发明编码器输出三相脉冲时序图
具体实施方式
下面结合具体实施例,进一步阐述本发明。
我们以每圈输出2048个脉冲的光栅式两相双向编码器为例,所谓两相即同时输出相位差为90°两路脉冲信号,双向就是可以进行正反转并进行正反计数,其输出脉冲时序图见图2。脉冲是A脉冲通过一个反相电路得到的和A脉冲逻辑相反的信号,B脉冲是与A脉冲相位差为90°脉冲信号。实际使用时,采用Atmel89C52微处理器进行编码器的脉冲计数,A和A脉冲分别通过光偶将脉冲传输给CPU外部中断0和外部中断1端口上(INT0、INT1),B脉冲用一个I/O口接收。编程时,首先通过相序测量功能在E2ROM中储存定义的正反转状态字,也就是先沿着希望正向计数的方向旋转编码器,A脉冲的下降沿触发外部中断0,在外部中断0服务程序中读入A、A、B脉冲的电平即为正转状态字,再沿着希望反向计数的方向旋转编码器,脉冲的下降沿触发外部中断1,在外部中断1服务程序中读入A、A、B脉冲的电平即为反转状态字。实际计数时,假如定义相序1→2为正转,当外部中断0触发时,在外部中断0服务程序中判断A、A、B脉冲的电平,如果为011(正转状态字)则计数器加1,为010则无效,即相位2的A脉冲下降沿中断有效,编码器正转;当外部中断1触发时,同样判断这个电平,如果为101(反转状态字)则计数器减1,为100则无效,即相位2的脉冲A下降沿中断有效,编码器反转。如果相序测量程序定义2→1为正转,则正转状态字为010,反转状态字为100,在1状态A脉冲触发外部中断0,对计数器加1,在1状态A脉冲触发外部中断1,对计数器减1,其他情况产生的中断无效。
目前一般使用微处理器对编码器进行计数时,都是只使用A、B两相脉冲,如附图1所示。编程时必须先规定加、减计数的旋转方向。假定定义相序1→2为正转,当A相脉冲下降沿触发中断时,判断B相脉冲的电平,如果是高电平则表示正转触发中断,如相序图状态2所示,计数器加1;如果B相脉冲的电平为低电平,则表示反转触发中断,如相序图状态1所示,计数器减1。上述计数方法在一些情况下有较大的缺陷。首先是有可能多计或少计脉冲数,这种情况发生在当编码器正转至1和2之间,变反转则在状态1处会多减1(漏计脉冲);同样在反转变正转时又会多加1(多计脉冲)。如果频繁变换旋转方向则这种情况会带来很大的计数误差。第二种问题发生在下降沿触发时,由于光栅制作或干扰信号使得在一个脉冲上出现多个下降沿,计数器计数出错。第三种情况是如果在编程时无法确定正反转方向,则会发生计数错误。
采用本发明的方法完全能克服上述问题,具有以下优点:
1>避免了正反转变换时脉冲多计或漏计现象;
假如定义相序1→2为正转,如果正转至2和下一个状态之间时,首先在2状态A下降沿触发中断使计数器加1,这时进行反转则在2位置A脉冲触发中断使计数器减1,不会发生脉冲多计或漏计现象。
2>避免了由于下降沿干扰产生的计数误差;
假如定义相序1→2为正转,在状态2的A脉冲出现下降沿的干扰信号或在下降沿处抖动时,在A脉冲下降沿加1,就会在A脉冲的下降沿减1,从而消除了干扰或抖动;
3>可以在面板上进行正反转的相序设定;
在编程时,可以先不要确定正反旋转方向,只需在使用时通过面板的相序设定操作,来确定其旋转方向。
Claims (3)
1.一种应用编码器计数的方法,其特征在于包括如下步骤:
定义编码器的角度旋转方向为往希望方向正转或反转时,以上三路输出脉冲信号的状态字作为标准状态字储存,当转动编码器往希望正向或反向计数的方向正向或反向旋转时,以脉冲信号A或的上升沿或下降沿作为触发点,记录下此时三路脉冲信号的电平作为标准状态字;
3.一种应用如权利要求1所述的方法的应用编码器计数的装置,其特征在于:包括输出两路具有相位差的脉冲信号的编码器,将编码器的其中一路输出信号进行反相的反相器,将此反相信号与所述两路脉冲信号同时输出的合成输出器,及利用脉冲信号进行计数的微处理器,所述合成输出器的三路输出信号分别与微处理器的三个端口相连,同时具有正相和反相的脉冲信号的输出连接微处理器的中断口,另外一路具有相位差的脉冲信号连接微处理器的输入/输出口,所述微处理器内包括存储脉冲信号的电平的状态字的存储器和将接收的脉冲信号的电平的状态字和预设的状态字进行比较的比较器,以及根据比较器结果进行计数的计数器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010104019 CN101825481B (zh) | 2010-01-29 | 2010-01-29 | 一种应用编码器计数的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010104019 CN101825481B (zh) | 2010-01-29 | 2010-01-29 | 一种应用编码器计数的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101825481A CN101825481A (zh) | 2010-09-08 |
CN101825481B true CN101825481B (zh) | 2011-10-12 |
Family
ID=42689528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010104019 Expired - Fee Related CN101825481B (zh) | 2010-01-29 | 2010-01-29 | 一种应用编码器计数的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101825481B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5994305B2 (ja) * | 2012-03-15 | 2016-09-21 | オムロン株式会社 | ロータリーエンコーダおよびロータリーエンコーダの異常検出方法 |
CN103994781B (zh) * | 2014-05-06 | 2016-11-16 | 盛铂科技(上海)有限公司 | 一种旋转编码器二相信号处理电路及其信号处理方法 |
CN104133407A (zh) * | 2014-08-01 | 2014-11-05 | 常州华达科捷光电仪器有限公司 | 一种用于增量式编码器的计数装置及计数方法 |
CN107356274B (zh) * | 2015-01-09 | 2019-11-05 | 杭州谷立电气技术有限公司 | 使用编码器结构进行电机定位的方法 |
CN105676685B (zh) * | 2016-01-05 | 2018-06-15 | 深圳市雷赛软件技术有限公司 | 一种反馈电机初始绝对位置的方法、装置以及编码器分频装置 |
CN107449376B (zh) * | 2017-09-15 | 2024-05-17 | 深圳大学 | 一种实时方向盘转角采集系统 |
CN110186488A (zh) * | 2019-05-29 | 2019-08-30 | 合肥工业大学 | 一种用于提高正交编码转角传感器计数精度的检测方法 |
CN112596421A (zh) * | 2020-11-27 | 2021-04-02 | 山东省蔚仪进出口有限公司 | 一种计数装置及其控制方法 |
CN112924716B (zh) * | 2021-01-25 | 2023-03-10 | 武汉先同科技有限公司 | 一种改进的两相编码器的数字鉴向方法 |
CN113919472B (zh) * | 2021-09-30 | 2022-05-17 | 广州思拓力测绘科技有限公司 | 一种基于增量式编码器的计数方法及其计数装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1586865A2 (en) * | 2004-03-29 | 2005-10-19 | Fujinon Corporation | Position detecting device |
CN2903920Y (zh) * | 2006-05-12 | 2007-05-23 | 西安石油大学 | 一种高精度光电编码测深电路 |
CN1979097A (zh) * | 2005-12-08 | 2007-06-13 | 约翰尼斯海登海恩博士股份有限公司 | 编码器的计数错误检测电路及计数错误检测方法 |
CN101082508A (zh) * | 2006-06-02 | 2007-12-05 | 中国科学院长春光学精密机械与物理研究所 | 一种准绝对式光电轴角编码器处理电路 |
-
2010
- 2010-01-29 CN CN 201010104019 patent/CN101825481B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1586865A2 (en) * | 2004-03-29 | 2005-10-19 | Fujinon Corporation | Position detecting device |
CN1979097A (zh) * | 2005-12-08 | 2007-06-13 | 约翰尼斯海登海恩博士股份有限公司 | 编码器的计数错误检测电路及计数错误检测方法 |
CN2903920Y (zh) * | 2006-05-12 | 2007-05-23 | 西安石油大学 | 一种高精度光电编码测深电路 |
CN101082508A (zh) * | 2006-06-02 | 2007-12-05 | 中国科学院长春光学精密机械与物理研究所 | 一种准绝对式光电轴角编码器处理电路 |
Non-Patent Citations (3)
Title |
---|
JP特开2009-204495A 2009.09.10 |
JP特开2009-79925A 2009.04.16 |
潘明东.光电编码器输出脉冲的几种计数方法.《电子工程师》.2004,第30卷(第8期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101825481A (zh) | 2010-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101825481B (zh) | 一种应用编码器计数的方法和装置 | |
US10451647B2 (en) | Method and device for measuring speed of permanent magnet synchronous motor | |
TWI683193B (zh) | 輸入輸出控制單元、可程式邏輯控制器及檢查系統 | |
CN103162725A (zh) | 一种光电编码器旋转脉冲显示装置 | |
US10921767B2 (en) | Encoder system | |
CN114518782B (zh) | 微控制单元、电机转速测量方法及系统、存储介质 | |
CN204831205U (zh) | 一种基于光栅的智能化位移检测装置 | |
CN111380499A (zh) | 转动角度的检测方法及装置 | |
CN203479256U (zh) | 微距电子测量计 | |
CN112117994B (zh) | 一种增量式编码器解码方法 | |
CN102801412A (zh) | 带有滤波功能的正交信号4倍频计数方法 | |
CN105806276A (zh) | 多功能测量装置 | |
CN204313787U (zh) | 一种角度编码器的检测电路 | |
CN104133407A (zh) | 一种用于增量式编码器的计数装置及计数方法 | |
US11079256B2 (en) | Device for determining the movement of a rotary element, particularly for readings of water and/or gas meters | |
CN213750698U (zh) | 一种计数装置 | |
CN204202575U (zh) | 一种传动比可变的异轴间接角度测量仪 | |
CN203422018U (zh) | 火炮自动机浮动性能检测仪 | |
CN105157622A (zh) | 一种基于gpio的角度光电编码器计数电路 | |
CN114646356A (zh) | 无磁计量系统的计量阈值设置方法及装置、设备及介质 | |
CN115931031B (zh) | 一种角度位置传感器测量装置 | |
JPS60135712A (ja) | タ−ンテ−ブルの回転角度検出方法 | |
CN201898500U (zh) | 鉴相倍频计数装置 | |
CN104007685B (zh) | 高速精密定位采集触发卡电路及采集方法 | |
JP3067729B2 (ja) | エンコーダの信号処理方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111012 Termination date: 20190129 |