sábado, 22 de enero de 2011

Use un microcontrolador para decodificar las señales sin necesidad de un IC dedicado.

Los codificadores de cuadratura de trabajo en muchas aplicaciones para determinar el desplazamiento y la dirección de desplazamiento mecánico. Varían en el diseño, pero todos hacen lo mismo: suministro de un conjunto de ondas cuadradas de 90 ° fuera de fase. Figura 1 muestra las señales de salida típica.
Decode a quadrature encoder in software figure 1













El codificador gira hacia la derecha cuando el canal A conduce canal B. Si B lleva Canal Canal A, el codificador está girando hacia la izquierda.Al contar los pulsos y la dirección de la rotación, se puede encontrar la posición del encoder. Aunque VA puede decodificar codificadores de cuadratura, usted puede fácil y menos costoso que el procesador de decodificar la señal. Las señales de Canal A y Canal B ir a través de un disparador de Schmitt si codificadores necesarios, pero muchos y procesadores incluyen el gatillo internamente.Las señales se aplican luego a dos pines I / O en el procesador que interrumpe el apoyo disparados por el borde. El código del controlador de interrupción implementa un algoritmo descodificador estándar, pero todos los algoritmos suelen seguir estos pasos:
Decode a quadrature encoder in software table 1
  1. Configurar una tabla de estado como el de la Tabla 1 . En la tabla se envuelve alrededor de Estado del Estado de 3 a 0.
  2. Inicializar un contador.
  3. Medir el estado actual del Canal A y Canal B. Buscar ese estado en la mesa y un puntero a la misma.
  4. Habilitar las interrupciones.
En el controlador de interrupción, utilice los pasos siguientes:
  1. Leer el estado de Canal A y Canal B.
  2. Si el estado es el que precede al puntero, disminuir el contador.
  3. Si el estado es el que sigue al puntero, incrementar el contador.
  4. Ajuste el puntero al nuevo estado. 5. Desactive la interrupción.
Este método requiere que una tabla de estado existe, que el estado anterior permanecen, y que el controlador de determinar en cada interrupción que de los cuatro estados existe y luego tomar una decisión basada en dos condiciones posibles. El controlador realiza esta tarea con un switch de cuatro de los casos, en los que cada caso tiene dos si las condiciones.
Decode a quadrature encoder in software listing

















Ahora, tenga en cuenta lo que sucede en el mundo real. Si el pin I / O genera una interrupción en el flanco de subida, a continuación, cuando la interrupción ocurre, ese canal va de menor a mayor. Por lo tanto, no hay razón para leer el estado del pin que interrumpió. El otro canal no interrumpió porque las señales son de 90 ° fuera de fase.Así que, para determinar el estado actual, sólo tiene que leer el estado del pin que no inició la interrupción.El estado de la señal sin cambios bajo o alto dice de qué manera el codificador de rotación. Si es baja, entonces el pin interrumpir está llevando. Si es alta, entonces el perno de la interrupción es final.Usted puede utilizar estos datos para implementar un controlador de interrupción eficiente sin tabla de estado y no hay memoria de un estado anterior.
El código de la Lista 1 fue probado en un procesador MSP430F conectado a un codificador de Productos 15T modelo. El codificador de seguimiento de la posición de una fase lineal. La etapa de recorrido de 85 mm y pueden ser rastreados con la resolución de 5 micras. El definir estados (en rojo) que el código sea más legible. El initPort () función (en azul) establece el levantamiento de última interrupción en los canales A y B. La pieza final es el manejador de interrupciones (resaltado en verde). Tenga en cuenta que sólo contiene seis líneas de código en comparación con las líneas 20 o 30 que se necesitaría para poner en práctica el método tradicional de la descodificación de los canales.
Levingston Sid, Gentec-Oswego EO, Lago, O; Editado por Martin Rowe y Fran Granville - EDN, 20 de enero 2011

Si le gusto el articulo visite a uno de nuestros patrocinadores para mantenimiento del Blog
dando click en las Letras subrayadas con doble raya y de color azul, dentro del texto del artículo

No hay comentarios:

Publicar un comentario