CN106295783A - 一种基于增量式编码器的计数装置及方法 - Google Patents
一种基于增量式编码器的计数装置及方法 Download PDFInfo
- Publication number
- CN106295783A CN106295783A CN201610569087.3A CN201610569087A CN106295783A CN 106295783 A CN106295783 A CN 106295783A CN 201610569087 A CN201610569087 A CN 201610569087A CN 106295783 A CN106295783 A CN 106295783A
- Authority
- CN
- China
- Prior art keywords
- gpio interface
- coding
- incremental encoder
- arm chip
- turn
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06M—COUNTING MECHANISMS; COUNTING OF OBJECTS NOT OTHERWISE PROVIDED FOR
- G06M1/00—Design features of general application
- G06M1/27—Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D5/00—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
- G01D5/12—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means
- G01D5/244—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing characteristics of pulses or pulse trains; generating pulses or pulse trains
- G01D5/245—Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing characteristics of pulses or pulse trains; generating pulses or pulse trains using a variable number of pulses in a train
- G01D5/2451—Incremental encoders
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
本发明公开了一种基于增量式编码器的计数装置及方法,该方法包括:ARM芯片接收第一GPIO接口和第二GPIO接口输入的电平信号,并将电平信号转换为时序编码;ARM芯片比较时序编码和预先存储的转向编码;转向编码包括正转向编码和反转向编码;如果时序编码与转向编码相一致,则ARM芯片根据转向编码所对应的转向及电平信号,修改共享内存中存储的计数值。采用本发明实施例能简化电路,实现快速高效的增量编码器计数。
Description
技术领域
本发明涉及电子设备技术领域,尤其涉及一种基于增量式编码器的计数装置及方法。
背景技术
增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。增量式编码器转轴旋转时,有相应的脉冲输出,其旋转方向的判别和脉冲数量的增减借助后部的判向电路和计数器来实现。其计数起点任意设定,可实现多圈无限累加和测量。还可以把每转发出一个脉冲的Z信号,作为参考机械零位。编码器轴转一圈会输出固定的脉冲,脉冲数由编码器光栅的线数决定。需要提高分辨率时,可利用90度相位差的A、B两路信号对原脉冲数进行倍频,或者更换高分辨率编码器。
通常读取增量编码器的方法是利用一块单片机连接编码器,将单片机里的计数器IO端口连接到编码器的A,B两路信号,当增量式编码器顺时针或逆时针旋转时,计数器0及计数器1根据脉冲A及脉冲B的波形择一计数,并向单片机发送计数结果,单片机判断计数增加还是减少。但是,现有的计数方法需要使用有计数寄存器的单片机,而且要为单片机额外绘制输入输出电路,提高生产成本。另外,单片机的主频较低,当增量编码器高速旋转或起转高频抖动时,会因响应不及时而发生计数错误的现象。
发明内容
本发明实施例提出一种基于增量式编码器的计数装置及方法,能简化电路,实现快速高效的增量编码器计数。
本发明实施例提供一种基于增量式编码器的计数装置,包括:ARM芯片、电平转换电路和增量式编码器;
其中,所述ARM芯片设置有第一GPIO接口、第二GPIO接口和4字节int32型的共享内存;
所述增量式编码器设置有第一相接口和第二相接口;
所述第一GPIO接口通过所述电平转换电路与所述第一相接口连接;
所述第二GPIO接口通过所述电平转换电路与所述第二相接口连接;
所述共享内存用于存储所述增量式编码器的计数值。
进一步的,所述ARM芯片还包括:第三GPIO接口;
所述增量式编码器设置有第三相接口;
所述第三GPIO接口通过所述电平转换电路与所述第三相接口连接。
相应地,本发明实施例还提供一种基于增量式编码器的计数方法,利用所述的计数装置来实现,所述计数方法包括:
ARM芯片接收所述第一GPIO接口和所述第二GPIO接口输入的电平信号,并将所述电平信号转换为时序编码;
ARM芯片比较所述时序编码和预先存储的转向编码;所述转向编码包括正转向编码和反转向编码;
如果所述时序编码与所述转向编码相一致,则ARM芯片根据所述转向编码所对应的转向及所述电平信号,修改所述共享内存中存储的计数值。
进一步的,所述ARM芯片接收所述第一GPIO接口和所述第二GPIO接口输入的电平信号,并将所述电平信号转换为时序编码,具体为:
所述ARM芯片分别接收所述第一GPIO接口和所述第二GPIO接口在一个周期内输入的电平信号,并每隔四分之一个周期分别读取所述第一GPIO接口和所述第二GPIO接口的电平值,将所述电平值转换为二进制的时序编码。
进一步的,所述第一GPIO接口每隔四分之一周期所读取的电平值分别为1、0、0、1;
所述第二GPIO接口每隔四分之一周期所读取的电平值分别为1、1、0、0;
所述二进制的时序编码为:0b11,0b01,0b00,0b10。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的基于增量式编码器的计数装置及方法,通过ARM芯片的GPIO接口与增量式编码器连接,实现增量式编码器的计数。ARM芯片内置有存储模块对计数值进行存储,并将增量式编码器输入的第一相信号和第二相信号转换为时序编码,最后通过比较时序编码和预存的转向编码,确定增量式编码器的转向后,修改共享内存空间中相应的计数值。相比于现有技术中通过增添具有寄存器的单片机,本发明简化了电路设计,实现快速高效的增量编码器计数,节约生成成本。
附图说明
图1是本发明提供的基于增量式编码器的计数装置的一种实施例的结构示意图;
图2是本发明提供的增量式编码器的一种实施例的时序图;
图3是本发明提供的增量式编码器的另一种实施例的时序图;
图4是本发明提供的基于增量式编码器的计数装置的另一种实施例的结构示意图;
图5是本发明提供的基于增量式编码器的计数方法的一种实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的基于增量式编码器的计数装置的一种实施例的结构示意图。如图1所示,该计数装置包括:ARM芯片1、电平转换电路2和增量式编码器3。其中,ARM芯片1设置有共享内存、第一GPIO接口11和第二GPIO接口12。增量式编码器3设置有第一相接口31和第二相接口32。该ARM芯片1通过编程分配有4字节int32型的共享内存。
在本实施例中,第一GPIO接口11(General Purpose Input Output,简称为GPIO或总线扩展器)通过电平转换电路与第一相接口31连接。第二GPIO接口12通过电平转换电路与第二相接口32连接。
在本实施例中,共享内存用于存储增量式编码器3的计数值。该共享内存可以但不限于为ARM芯片的公共内存。本发明利用共享内存来保存计数值,通过内存读写锁技术可以保证多个内存的进程/线程同时读取计数值。
在本实施例中,由于增量编码器3的输出通常是5Vdc的TTL电平,而ARM芯片1的GPIO接口只支持3.3V的电平,所以需要通过电平转换电路2进行转换后才能输入相应的电平信号。
在本实施例中,第一相接口31为增量式编码器3的A相,第二相接口32为增量式编码器3的B相,A相和B相的相位差为π/2,及四分之一个周期,详细如图2所示。
当增量式编码器正转(顺时针转)时:
当B相处于脉冲上升沿时(B=1),A相为高电平(A=1)。
当A相处于脉冲下降沿时(A=0),B相为高电平(B=1)。
当B相处于脉冲下降沿时(B=0),A相为低电平(A=0)。
当A相处于脉冲上升沿时(A=1),B相为高电平(B=0)。
反转(逆时针)不再重复说明,其最终时序图如图3所示。
作为本实施例的一种举例,参见图4,图4是本发明提供的基于增量式编码器的计数装置的另一种实施例的结构示意图。图4与图1的区别在于,ARM芯片1还包括:第三GPIO接口13;增量式编码器3设置有第三相接口33;第三GPIO接口13通过电平转换电路与第三相接口连接。第三相接口33为增量式编码器3的Z相,用于机械置零。
参见图5,图5是本发明提供的基于增量式编码器的计数方法的一种实施例的流程示意图。该计数方法利用本发明提供的计数装置来实现,其步骤具体如下包括:
步骤101:ARM芯片接收第一GPIO接口和第二GPIO接口输入的电平信号,并将电平信号转换为时序编码。
步骤102:ARM芯片比较时序编码和预先存储的转向编码;转向编码包括正转向编码和反转向编码;
步骤103:如果时序编码与转向编码相一致,则ARM芯片根据转向编码所对应的转向及电平信号,修改共享内存中存储的计数值。
在本实施例中,步骤101具体为:ARM芯片分别接收第一GPIO接口和第二GPIO接口在一个周期内输入的电平信号,并每隔四分之一个周期分别读取第一GPIO接口和第二GPIO接口的电平值,将电平值转换为二进制的时序编码。
作为本实施例的一种举例,第一GPIO接口每隔四分之一周期所读取的电平值分别为1、0、0、1;第二GPIO接口每隔四分之一周期所读取的电平值分别为1、1、0、0;则其转换后的二进制的时序编码为:0b11,0b01,0b00,0b10。该时序编码所对应的转向为正转向。
作为本实施例的一种举例,ARM芯片还可以根据第三GPIO接口的输入信号,对增量式编码器进行机械置零。
在本实施例中,ARM芯片1在确认增量式编码器3正转一个周期时,使存储模块的计数值加1。在确认增量式编码器3反转一个周期时,使存储模块的计数值减1。
由上可见,本发明实施例提供的基于增量式编码器的计数装置及方法,通过ARM芯片1的GPIO接口与增量式编码器3连接,实现增量式编码器3的计数。ARM芯片1分配好的共享内存空间对计数值进行存储,并将增量式编码器3输入的第一相信号和第二相信号转换为时序编码,最后通过比较时序编码和预存的转向编码,确定增量式编码器的转向后,修改共享内存中相应的计数值。相比于现有技术中通过增添具有寄存器的单片机,本发明简化了电路设计,实现快速高效的增量编码器计数,节约生产成本。
进一步的,本发明使用的GPIO接口的响应速率由ARM芯片的主频来决定,一般情况下,ARM主频均在500M~800MHz左右,因此本发明的响应时间可以低至几微秒,响应速度快。
进一步的,本发明利用嵌入式ARM产品中富余的GPIO接口,通过简单的电路连接即可实现增量编码器计数,在小于1/4个相脉冲周期即可判断出当前增量编码器的旋转方向,不需要额外的编码器计数芯片,节省产品成本。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (5)
1.一种基于增量式编码器的计数装置,其特征在于,包括:ARM芯片、电平转换电路和增量式编码器;
其中,所述ARM芯片设置有第一GPIO接口、第二GPIO接口和4字节int32型的共享内存;
所述增量式编码器设置有第一相接口和第二相接口;
所述第一GPIO接口通过所述电平转换电路与所述第一相接口连接;
所述第二GPIO接口通过所述电平转换电路与所述第二相接口连接;
所述共享内存用于存储所述增量式编码器的计数值。
2.根据权利要求1所述的基于增量式编码器的计数装置,其特征在于,
所述ARM芯片还包括:第三GPIO接口;
所述增量式编码器设置有第三相接口;
所述第三GPIO接口通过所述电平转换电路与所述第三相接口连接。
3.一种基于增量式编码器的计数方法,其特征在于,利用权利要求1至3任一项所述的计数装置来实现,所述计数方法包括:
ARM芯片接收所述第一GPIO接口和所述第二GPIO接口输入的电平信号,并将所述电平信号转换为时序编码;
ARM芯片比较所述时序编码和预先存储的转向编码;所述转向编码包括正转向编码和反转向编码;
如果所述时序编码与所述转向编码相一致,则ARM芯片根据所述转向编码所对应的转向及所述电平信号,修改所述共享内存中存储的计数值。
4.根据权利要求3所述的基于增量式编码器的计数方法,其特征在于,所述ARM芯片接收所述第一GPIO接口和所述第二GPIO接口输入的电平信号,并将所述电平信号转换为时序编码,具体为:
所述ARM芯片分别接收所述第一GPIO接口和所述第二GPIO接口在一个周期内输入的电平信号,并每隔四分之一个周期分别读取所述第一GPIO接口和所述第二GPIO接口的电平值,将所述电平值转换为二进制的时序编码。
5.根据权利要求4所述的基于增量式编码器的计数方法,其特征在于,
所述第一GPIO接口每隔四分之一周期所读取的电平值分别为1、0、0、1;
所述第二GPIO接口每隔四分之一周期所读取的电平值分别为1、1、0、0;
所述二进制的时序编码为:0b11,0b01,0b00,0b10。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610569087.3A CN106295783A (zh) | 2016-07-18 | 2016-07-18 | 一种基于增量式编码器的计数装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610569087.3A CN106295783A (zh) | 2016-07-18 | 2016-07-18 | 一种基于增量式编码器的计数装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106295783A true CN106295783A (zh) | 2017-01-04 |
Family
ID=57651493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610569087.3A Pending CN106295783A (zh) | 2016-07-18 | 2016-07-18 | 一种基于增量式编码器的计数装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106295783A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727216A (zh) * | 2019-09-23 | 2020-01-24 | 重庆智能机器人研究院 | 一种编码器的数据读取方法、装置和读取数据的装置 |
CN111953353A (zh) * | 2020-08-21 | 2020-11-17 | 烟台艾睿光电科技有限公司 | 一种增量式编码器的解码方法及相关装置 |
CN112097803A (zh) * | 2020-09-03 | 2020-12-18 | 华帝股份有限公司 | 一种增量式编码器信号识别系统及识别方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2217837B (en) * | 1988-04-12 | 1992-08-19 | Fuji Heavy Ind Ltd | Method and apparatus for adjusting vehicle body height |
CN200959128Y (zh) * | 2006-08-17 | 2007-10-10 | 贾良红 | 增量式编码器通用计数装置 |
CN201242765Y (zh) * | 2007-12-21 | 2009-05-20 | 贾良红 | 增量式编码器通用计数装置 |
CN101833690A (zh) * | 2009-03-13 | 2010-09-15 | 北京同步科技有限公司 | 一种简单可靠的增量式编码器计数方法 |
EP2522959A2 (de) * | 2011-05-11 | 2012-11-14 | Phoenix Contact GmbH & Co. KG | Elektrisches und/oder optisches Gerät mit wenigstens einer Eingabeeinrichtung |
CN103162725A (zh) * | 2013-02-28 | 2013-06-19 | 重庆大学 | 一种光电编码器旋转脉冲显示装置 |
CN105680735A (zh) * | 2016-02-03 | 2016-06-15 | 中国科学院自动化研究所 | 基于arm处理器的四轴伺服电机运动控制卡及方法 |
-
2016
- 2016-07-18 CN CN201610569087.3A patent/CN106295783A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2217837B (en) * | 1988-04-12 | 1992-08-19 | Fuji Heavy Ind Ltd | Method and apparatus for adjusting vehicle body height |
CN200959128Y (zh) * | 2006-08-17 | 2007-10-10 | 贾良红 | 增量式编码器通用计数装置 |
CN201242765Y (zh) * | 2007-12-21 | 2009-05-20 | 贾良红 | 增量式编码器通用计数装置 |
CN101833690A (zh) * | 2009-03-13 | 2010-09-15 | 北京同步科技有限公司 | 一种简单可靠的增量式编码器计数方法 |
EP2522959A2 (de) * | 2011-05-11 | 2012-11-14 | Phoenix Contact GmbH & Co. KG | Elektrisches und/oder optisches Gerät mit wenigstens einer Eingabeeinrichtung |
CN103162725A (zh) * | 2013-02-28 | 2013-06-19 | 重庆大学 | 一种光电编码器旋转脉冲显示装置 |
CN105680735A (zh) * | 2016-02-03 | 2016-06-15 | 中国科学院自动化研究所 | 基于arm处理器的四轴伺服电机运动控制卡及方法 |
Non-Patent Citations (2)
Title |
---|
吴禄慎 等: ""基于单片机的增量式编码计数系统"", 《仪表计数与传感器》 * |
彭震: "《51菜鸟到ARM(STM32)高手进阶之旅》", 31 August 2014 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727216A (zh) * | 2019-09-23 | 2020-01-24 | 重庆智能机器人研究院 | 一种编码器的数据读取方法、装置和读取数据的装置 |
CN111953353A (zh) * | 2020-08-21 | 2020-11-17 | 烟台艾睿光电科技有限公司 | 一种增量式编码器的解码方法及相关装置 |
CN111953353B (zh) * | 2020-08-21 | 2023-02-17 | 烟台艾睿光电科技有限公司 | 一种增量式编码器的解码方法及相关装置 |
CN112097803A (zh) * | 2020-09-03 | 2020-12-18 | 华帝股份有限公司 | 一种增量式编码器信号识别系统及识别方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106295783A (zh) | 一种基于增量式编码器的计数装置及方法 | |
CN1565034B (zh) | 同步型半导体存储器设备模块及其控制方法与信息设备 | |
CN102495565A (zh) | 一种相控阵雷达天线波束控制装置 | |
CN107101607B (zh) | 电机旋转角度测量设备及方法 | |
CN107340005A (zh) | 多圈绝对值编码器、驱动装置、存储介质及控制方法 | |
CN104898530A (zh) | 一种基于dsp和fpga的嵌入式控制器的同步印染控制系统 | |
CN102682700B (zh) | 一种led恒流驱动芯片及其输出电流控制方法 | |
CN201897522U (zh) | 一种低频方波周期检测系统 | |
CN105388817B (zh) | 脉冲的生成方法及装置 | |
CN201018471Y (zh) | 锁相环路全频多模分频器 | |
CN100472969C (zh) | 反相移位方式的制约竞争计数码电路 | |
CN109308275B (zh) | 一种正交编码脉冲的转换系统及方法 | |
CN105205012A (zh) | 一种数据读取方法和装置 | |
CN102262595B (zh) | 一种微处理器扩展寻址方法 | |
CN203250312U (zh) | 一种接口形式可扩展的通用核心处理子板 | |
CN103177767B (zh) | 一种用于一次编程存储器的简化存储方法 | |
CN101277091B (zh) | 高压变频器的传感器信号反馈装置 | |
CN103178871A (zh) | 一种跳频信号发生器及确定频率控制字的方法 | |
CN107727930A (zh) | 智能型高精度模拟信号采样系统和采样方法 | |
CN101813971B (zh) | 处理器及其内置存储器 | |
CN208460003U (zh) | I2c从地址生成装置及芯片 | |
CN203772290U (zh) | 机械计数器的电磁感应线性读取装置 | |
CN201378177Y (zh) | 一种电能计量芯片内的防潜动电路 | |
CN207164533U (zh) | 接口信号处理装置 | |
CN201184970Y (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |