一种基于增量式编码器的计数装置及方法与流程

文档序号:12365848阅读:967来源:国知局
一种基于增量式编码器的计数装置及方法与流程

本发明涉及电子设备技术领域,尤其涉及一种基于增量式编码器的计数装置及方法。



背景技术:

增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。增量式编码器转轴旋转时,有相应的脉冲输出,其旋转方向的判别和脉冲数量的增减借助后部的判向电路和计数器来实现。其计数起点任意设定,可实现多圈无限累加和测量。还可以把每转发出一个脉冲的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 Access Memory,RAM)等。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1