Вы находитесь на странице: 1из 22

ENCODER INCREMENTAL:

ANLISIS DE MEDOTOLOGAS DE
DECODIFICACIN
Introduccin
El encoder es un transductor que transforma movimiento en una serie
de impulsos digitales donde dichos impulsos son utilizados para
controlar desplazamiento, velocidad, aceleracin y trayectoria. Los
encoders son utilizados en una gran variedad de aplicaciones, por
ejemplo en las mquinas de elaboracin de materiales, en robots como
transductores de retroalimentacin para el control de la velocidad,
posicionamiento de actuadores, controles de rango; en general en
sistemas de medicin y control.
Estn clasificados en encoders rotacionales y encoders lineales
dependiendo del movimiento que realice el dispositivo, los sensores ms
comunes utilizados son del tipo ptico o del tipo magntico, y existen
dos tipos de codificacin: incremental y absoluta.
La codificacin absoluta genera multi-bits digitales los cuales indican
directamente la posicin actual, mientras que la codificacin incremental
proporciona dos seales en cuadratura (A y B), cuya caracterstica es un
par de seales cuadradas con el mismo tiempo en alto y en bajo que se
encuentran desfasadas 90, lo que genera a la salida un ciclo
bidireccional de 4 combinaciones (... 00 <--> 01 <--> 11 <--> 10 <-->
00 ....) y dependiendo el estado en el que se estuvo y el estado actual se
determina el sentido de direccin.
El presente trabajo se centra en la codificacin incremental (en
cuadratura) que proporcionan ciertos dispositivos como los encoders
lineales y
rotacionales, as posean sensor ptico o magntico el
principio de funcionamiento es el mismo.
Palabras Clave: encoder, codificacin incremental, encoder lineal,
encoder rotacional, metodologas, seal en cuadratura, medicin de
posicin, resolucin x1, x2, x4, decodificacin, controlador, driver.

Encoders Incrementales
Los Encoders Incrementales proveen un nmero especfico de pulsos
equitativamente espaciados por revolucin (Counts Per Revolution) en
movimiento rotatorio; o por pulgada o milmetro en movimiento lineal.
Entre ms pulsos por unidad de medida, mayor resolucin posee el
sistema. Debido a dichos pulsos equidistantes, se genera a la salida una
seal cuadrada con un mismo tiempo en nivel alto como en nivel bajo,
en donde la frecuencia de la seal es determinada por la velocidad del
desplazamiento.
Poseen un mnimo de dos canales de salida (Canal A y Canal B), en
donde los pulsos estn desfasado 90 de un canal con respecto del otro
y dependiendo de la secuencia de pulsos generada es posible
determinar el sentido de movimiento. Algunos encoders de incremento
tambin producen otra seal conocida como ndice o canal Z que es
producida una vez cada determinada distancia [Fig. 1].

Fig. 1.- Salidas de los distintos canales de un encoder incremental.

Codificacin Incremental
Es posible utilizar un solo canal de salida para aplicaciones donde el
sentido de la direccin de movimiento no es importante (unidireccional).
En donde se requiere conocer el sentido de direccin, se utiliza la salida
de cuadratura (bidireccional), con los canales conocidos como canal A y
canal B, de 90 grados elctricos fuera de la fase.

Para realizar las mediciones del dispositivo se emplean los siguientes


tipos de resolucin [Fig. 2], dependiendo de las necesidades y precisin
del sistema:

Conteo de flancos de subida o de bajada para un solo canal

(unidireccional x1).
Conteo de flancos de subida o de bajada para un solo canal con

lectura del canal complementario (bidireccional x1).


Conteo de flancos de subida
y de bajada de un canal

(unidireccional x2).
Conteo de flancos de subida o bajada de ambos canales

(bidireccional x2).
Conteo de flancos de subida y de bajada de un canal con lectura

del canal complementario (bidireccional x2).


Conteo de flancos de subida y de bajada para ambos canales
(bidireccional x4).

Fig. 2.- Forma de onda del Encoder de cuadratura y sus distintos tipos de
resolucin.

Para determinar la posicin del dispositivo es necesario contar la


cantidad de pulsos realizados, sumndolos o restndolos al conteo total
(posicin actual) segn la direccin de movimiento. Los conteos se
realizan a travs de controladores, habilitando interrupciones a los
canales y a los flancos necesarios dependiendo de la resolucin a
implementar. Tambin se utilizan controladores especializados o
dispositivos que monitorean todo el tiempo el estado de las seales, y

cuando detectan un cambio de estado realizan las operaciones


pertinentes.
Es importante verificar que el la metodologa de conteo en el controlador
se realice en un lapso de tiempo menor al que se espera detectar el
siguiente
flanco,
de
lo
contrario,
el
conteo
se
realizar
inadecuadamente, ocasionando la perdida de la posicin real del
sistema.
Para el registro de posicin se tiene que analizar las seales
proporcionadas por el sensor [Fig.3]. Se observa a la salida de los
canales A y B una secuencia de cuatro estados diferentes, los cuales se
repinen constantemente dependiendo del sentido de direccin (
00<--> 01<--> 11<--> 10<--> 00).

Fig. 3.- Seal proporcionada por el encoder y su tabla de estados.

Resolucin Bidireccional x1
Realiza seguimiento de un solo tipo de flanco para un solo canal, se
puede utilizar el flanco de subida o el de bajada dependiendo de las
posibilidades de nuestro controlador [Fig. 4].

A)

B)

Fig.4.- A) Seguimiento de flancos de subida para el canal A. B)


Seguimiento de flancos de bajada para el canal B.

Requerimientos en el controlador:

1 pin de entrada que se pueda configurar para interrupciones de

subida o de bajada.
1 pin de entrada normal.

Ventajas:

Solo se requiere un pin de interrupcin en el controlador por

motor.
El tiempo entre operaciones es el mayor en comparacin a las
otras resoluciones.

Desventajas:

Resolucin baja.

La siguiente metodologa se basa en el seguimiento de flancos de subida


en el canal A, de igual manera se puede realizar para cualquiera de las

modalidades bidireccionales x1 observando los estados vecinos al flanco


deseado [Fig.3].

Fig. 5.- Mquina de estados para resolucin bidireccional x1 para flancos


de subida en el canal A que se observa en la figura 4-A.

Bidireccional x2
Se utiliza los flancos de subida y de bajada para un solo canal, el que se
desee [Fig.6-A] o un tipo de flanco para ambos canales [Fig.6-B] .En esta
seccin se analizarn las seales correspondientes a la siguiente figura,
aunque se puede trasportar fcilmente a las distintas posibilidades
fijndose en la lgica correspondiente. Se pueden realizar varias
maneras de decodificacin dependiendo de las caractersticas de
nuestro controlador.

Fig.6.- A) Seguimiento de flancos de subida y de bajada para el canal A.


B) Seguimiento de flancos de subida para los canales A y B.

Suponiendo un controlador que


interrupciones de cambio de estado.

es

apto

para

habilitar

Requerimientos en el controlador:

1 pin de entrada que se pueda configurar para interrupciones de

cambio de estado (de subida y de bajada al mismo tiempo).


1 pin de entrada normal.

Ventajas:

Solo se requiere un pin de interrupcin en el controlador por


motor.

Desventajas:

Resolucin intermedia.

Fig. 7.- Mquina de estados para resolucin bidireccional x2 en el canal A


con un controlador que es apto para habilitar interrupciones de cambio
de estado.

Suponiendo un controlador que solo se pueden habilitar


interrupciones de flanco de subida y flanco de bajada en
momentos diferentes.

Requerimientos en el controlador:

1 pin de entrada que se pueda configurar para interrupciones de

subida y de bajada en momentos diferentes.


1 pin de entrada normal.

Ventajas:

Solo se requiere un pin de interrupcin en el controlador por


motor.

Desventajas:

Es probable que se pierda un conteo para detectar el primer

movimiento.
Resolucin intermedia.

Fig. 8.- Mquina de estados para resolucin bidireccional x2 en el canal A


con un controlador que solo habilita interrupciones de flanco de subida y
de bajada en momentos diferentes.

Suponiendo un controlador que solo se pueden


interrupciones de flanco de subida o flanco de bajada.

Requerimientos en el controlador:

habilitar

2 pines de entrada que se pueda configurar para interrupciones de


subida o de bajada.

Ventajas:

Solo se requiere que controlador brinde ya sea interrupciones de


flanco de subida o interrupciones de flanco de bajada.

Desventajas:

Se necesitan 2 pines de interrupcin en el controlador por motor.


El tiempo entre interrupciones a considerar es igual al modo x4

con la mitad de resolucin.


Resolucin intermedia.

Fig. 9.- Mquina de estados para resolucin bidireccional x2 los canales


A y B con un controlador que solo habilita interrupciones de flanco de
subida.

Bidireccional x4
Se utilizan flancos de subida y de bajada para ambos canales, esto
brinda mayor precisin al sistema y tambin mayores requerimientos,
por lo que existen distintas alternativas como son los descodificadores
(drivers-controladores) que facilitan su interpretacin.

Fig. 10.- Seguimiento de flancos de subida y de bajada en modo x4.

Suponiendo un controlador que


interrupciones de cambio de estado.

es

apto

para

habilitar

Requerimientos en el controlador:

2 pines de entrada que se pueda configurar para interrupciones de


cambio de estado (detecta flancos de subida y de bajada al mismo
tiempo).

Ventajas:

Resolucin alta.

Desventajas:

Se requieren dos pines de interrupcin del controlador por motor.


El tiempo disponible para decodificar las seales es menor, por lo
que no es recomendable para analizar varios encoders en un solo
sistema.

Fig. 11.- Mquina de estados para resolucin bidireccional x4 los canales


A y B con un controlador que habilita interrupciones de cambio de
estado en dos pines.

Suponiendo un controlador que solo se pueden habilitar


interrupciones de flanco de subida y flanco de bajada en
momentos diferentes.

Requerimientos en el controlador:

2 pines de entrada que se pueda configurar para interrupciones de


flancos de subida y de bajada en tiempos diferentes.

Ventajas:

Resolucin alta.

Desventajas:

Se requieren

motor.
El tiempo disponible para decodificar las seales es menor, por lo

que no es recomendable para analizar varios encoders en un solo


sistema.
Es probable que se pierda de uno a tres conteos para detectar el

dos pines de interrupcin en el controlador por

primer movimiento.

Fig. 12.- Mquina de estados para resolucin bidireccional x4 los canales


A y B con un controlador que habilita interrupciones de flanco de subida
y flancos de bajada en tiempos diferentes en dos pines.

Bidireccional x4 con Compuerta XOR


En diversas aplicaciones se utiliza una compuerta XOR con la finalidad
de disminuir los pines de interrupcin en el controlador, dado que la
salida cambia de estado cada vez que ocurre un movimiento en las
seales A y B. Aunque solo necesitemos un pin de interrupcin para este
modo bidireccional x4, se requieren otros dos pines de entrada normales
para monitorear las seales A y B y determinar el sentido de direccin.

Fig. 13.- Seguimiento de la salida de la compuerta XOR dependiendo de


la entrada que recibe de los canales A y B.

Suponiendo un controlador que solo


interrupciones de cambio de estado.

se

pueden

habilitar

Requerimientos en el controlador:

1 pines de entrada que se pueda configurar para interrupciones de

cambio de estado.
2 pines normales de entrada

Ventajas:

Resolucin alta.

Desventajas:

Se requieren tres pines del controlador por motor.


El tiempo disponible para decodificar las seales es menor, por lo
que no es recomendable para analizar varios encoders en un solo
sistema.

Fig. 14.- Mquina de estados para resolucin bidireccional x4 con


compuerta XOR con un controlador que habilita interrupciones de
cambio de estado.

Suponiendo un controlador que solo se pueden habilitar


interrupciones de flanco de subida y flanco de bajada en
momentos diferentes.

Requerimientos en el controlador:

1 pines de entrada que se pueda configurar para interrupciones de

flancos de subida y de bajada en momentos diferentes


2 pines normales de entrada

Ventajas:

Resolucin alta.

Desventajas:

Se requieren tres pines del controlador por motor.


El tiempo disponible para decodificar las seales es menor, por lo

que no es recomendable para analizar varios encoders en un solo


sistema.
Es probable que se pierda uno conteo para detectar el primer
movimiento.

Fig. 15.- Mquina de estados para resolucin bidireccional x4 con


compuerta XOR con un controlador que habilita interrupciones de flanco
de subida y flancos de bajada en tiempos diferentes.

Decodificador Alternativo en PIC


Justificacin
Dado a un proyecto que requera una resolucin bidireccional x4 en
cuatro motores no se pudo utilizar una metodologa existente, por lo que
fue necesario buscar alternativas que brindaran el tiempo de

codificacin suficiente para los cuatro encoders con un uso mnimo pines
habilitados para interrupcin y medicin,
Se realizaron investigaciones acerca de decodificadores de seales en
cuadratura con la intencin de simplificar el cdigo de decodificacin al
menor tiempo posible y que sea funcional para los requerimientos.
La opcin en el mercado que satisface estos requerimientos se encontr
en el controlador LS7184, pero debido a un costo excesivo de envo (13
veces mayor al costo del producto) y a los tiempos de entrega se opt
por realizar un cdigo implementado a un microcontrolador PIC de gama
baja que realice la misma funcin que dicho controlador.
El microcontrolador utilizado es el PIC10F200, microcontrolador de gama
baja que posee 3 pines de entrada y/o salida y un pin que es solo de
entrada, la frecuencia de operacin de trabajo es tpicamente a 4 MHz
(1s ciclo de instruccin) y es ajustable mediante programacin.
La salida generada se inspir en la del driver LS7184, que consiste en
establecer un pin de direccin, que estando en alto especifica un
sentido de movimiento y estando en bajo representa el sentido opuesto;
y otro pin que manda un pulso negativo (alto-bajo -alto) para mandar el
dato adquirido como interrupcin a otro dispositivo (ver Datasheet para
ms informacin).
Se utilizarn dos pines del microcontrolador como entrada que servirn
para leer los canales A y B del encoder y dos pines como salida, uno que
indicar la direccin del desplazamiento y otro que mande la indicacin
de movimiento. La lgica de programacin se muestra en [Fig. 16] donde
se observa una lgica de programacin de comparacin de los estados
actuales y pasados de las seales.
Este cdigo se emplea para cada encoder y se manipula por un
dispositivo maestro para posicionamiento de los 4 motores. De esta
manera con el otro dispositivo, por medio de interrupciones de flanco de
bajada se detecta el movimiento de cada motor, y leyendo el pin de
direccin del decodificador del motor correspondiente se identifica el
sentido de direccin.

Fig. 16.- Mquina de estados del cdigo a implementar para el decodificador alternativo.

Tarda un mximo de 50 ciclos de mquina en realizar la medicin ms


tardada, que es el pasar del estado 00 al 10, en este microcontrolador se
traduce tpicamente en 50 microsegundos, pero como lo estamos
trabajando a su mxima velocidad de trabajo, se espera un tiempo
menor sin conocerlo exactamente.
De esta manera con otro dispositivo por medio de solo interrupciones
de flanco de bajada se detectan los cambios de estado y leyendo el pin
de direccin se identifica el sentido del mismo.

Fig. 17.- Mquina de estados para control maestro del decodificador


alternativo.

El programa se adapt y prob para controlar cuatro encoders en


cuadratura rotacionales magnticos de codificacin incremental con
salida en cuadratura que se encuentran en los moto-reductores 75:1
Metal Gearmotor 25Dx54Lmm HP with 48 CPR Encoder de la marca
Pololu (como se indica, brinda 48 conteos por revolucin del encoder en

modo x4 y, asociado a una caja de engranajes con relacin encodermotor de 74.83:1, proporciona 3592 conteos por revolucin del motor) a
un voltaje de 9 volts (cerca de 180 rpm cada motor) que tarda 75
microsegundos en realizar cambios de estado a la salida de las seales
para cada motor, mostrando resultados excelentes.

Referencias

Sensores y Acondicionadores de Seal, Ramn Palls Areny, 4ta Edicin


2003,Boixareu Editores

MANUAL DE APLICACIN DE ENCODERS

por West Instruments de

Mxico

http://www.westmexico.com.mx/pfd/dynapar/catalogos/4.-Manual%20de
%20Aplicacion%20de%20Encoders.pdf

http://facultad.bayamon.inter.edu/arincon/encoderincrementales.pdf
http://www.multimechatronics.com/images/uploads/design/2012/Optic

al%20Encoder%20and%20the%20Arduino%202012.pdf
http://www.datasheetcatalog.com/datasheets_pdf/L/S/7/1/LS7184.sht

ml
http://www.datasheetcatalog.com/datasheets_pdf/P/I/C/1/PIC10F200.s

html
http://www.ni.com/tutorial/7109/es/

Вам также может понравиться