Máquina de Estados Finitos: Aprovechando Realimentación para Construir Controladores de Secuencia Programables
La realimentación es piedra angular de la ingeniería moderna, transformando un circuito directo en un sistema de control versátil. Al embeber bucles de realimentación —tanto negativa como positiva— los diseñadores pueden crear dispositivos que se adaptan, estabilizan y realizan lógica compleja con notable simplicidad.
- Comparador + realimentación negativa → amplificador de ganancia controlable
- Comparador + realimentación positiva → comparador con histéresis
- Lógica combinacional + realimentación positiva → multivibrador
En instrumentación de procesos, un sistema de medición acoplado con realimentación negativa produce un controlador de lazo cerrado que corrige automáticamente desviaciones de un punto de consigna.
Cuando una tabla de búsqueda se programa en una ROM y la salida de datos se enruta de vuelta a la entrada de dirección, emerge una nueva clase de dispositivo: la Máquina de Estados Finitos (FSM). Esta estructura usa datos almacenados para dictar la siguiente dirección, generando así una secuencia predefinida de salidas.

La idea fundamental es simple: cada dirección de ROM contiene la dirección del siguiente estado. Para sincronizar la secuencia con un reloj y evitar riesgos de temporización, la salida de datos se alimenta a través de un flip-flop tipo D de 4 bits antes de convertirse en la siguiente dirección. El pulso de reloj asegura que la máquina transiciona paso a paso.

Una analogía intuitiva es una fila de buzones de correos. Cada buzón (dirección) contiene un papel dirigiéndole al siguiente buzón (datos). Arreglando los papeles en un orden deseado, dicta la secuencia de buzones abiertos y, consecuentemente, la secuencia de información leída.
Con 16 ubicaciones direccionables, la FSM puede habitar 16 estados estables distintos. La ROM se pre-programa con el siguiente estado para cada dirección, y la máquina avanza en cada flanco de reloj.
Una aplicación común es generar una secuencia de cuenta arbitraria, como el código Gray de 4 bits:
Dirección -----> Datos Código Gray secuencia cuenta: 0000 -------> 0001 0 0000 0001 -------> 0011 1 0001 0010 -------> 0110 2 0011 0011 -------> 0010 3 0010 0100 -------> 1100 4 0110 0101 -------> 0100 5 0111 0110 -------> 0111 6 0101 0111 -------> 0101 7 0100 1000 -------> 0000 8 1100 1001 -------> 1000 9 1101 1010 -------> 1011 10 1111 1011 -------> 1001 11 1110 1100 -------> 1101 12 1010 1101 -------> 1111 13 1011 1110 -------> 1010 14 1001 1111 -------> 1110 15 1000
Ejecutando esta tabla, la FSM empieza en dirección 0000, lee datos 0001, y salta a dirección 0001 en el siguiente tic de reloj, y así sucesivamente. Cuando alcanza el último estado programado (dirección 1000), los datos almacenados 0000 vuelven la secuencia al inicio.
Expandir las líneas de dirección de la ROM y añadir más salidas de datos mejora aún más la flexibilidad. Por ejemplo, una ROM de dirección de 5 bits puede codificar dos secuencias de cuenta distintas —binaria y Gray— controladas por una línea de función adicional (A4). La siguiente tabla ilustra esta operación de modo dual:
Dirección -----> Datos Dirección -----> Datos 00000 -------> 0001 10000 -------> 0001 00001 -------> 0010 10001 -------> 0011 00010 -------> 0011 10010 -------> 0110 00011 -------> 0100 10011 -------> 0010 00100 -------> 0101 10100 -------> 1100 00101 -------> 0110 10101 -------> 0100 00110 -------> 0111 10110 -------> 0111 00111 -------> 1000 10111 -------> 0101 01000 -------> 1001 11000 -------> 0000 01001 -------> 1010 11001 -------> 1000 01010 -------> 1011 11010 -------> 1011 01011 -------> 1100 11011 -------> 1001 01100 -------> 1101 11100 -------> 1101 01101 -------> 1110 11101 -------> 1111 01110 -------> 1111 11110 -------> 1010 01111 -------> 0000 11111 -------> 1110
En esta configuración, cuando A4 = 0 la FSM cuenta en binario; cuando A4 = 1 sigue la secuencia código Gray. El programador puede definir secuencias arbitrarias e incluso decidir cuándo el ciclo se reinicia, haciendo la FSM un dispositivo de cuenta totalmente programable.
Mejoras adicionales son posibles usando una ROM con líneas de dirección y datos adicionales. Un diseño podría enrutar D0–D3 de vuelta a A0–A3 para realimentación de estado, mientras D4–D7 proveen salidas arbitrarias no relacionadas con el estado. Esto expande las capacidades de la FSM más allá de contar, permitiéndole realizar lógica combinacional compleja que depende tanto del estado actual como de entradas externas (A4–A7).

Además, el reloj del flip-flop no necesita ser un generador simple de onda cuadrada; puede vincularse a un evento externo, causando que la FSM avance solo cuando ocurre una señal particular. Este enfoque dirigido por eventos alinea la operación de la FSM estrechamente con procesos del mundo real.
Así, una ROM programada con tabla de búsqueda, combinada con realimentación y control de reloj, realiza una verdadera máquina de estados finitos. El programa almacenado en ROM dicta todo el comportamiento, reflejando el principio de la máquina de Turing teórica de un programa dictando computación. Esta encarnación práctica demuestra el poder de la realimentación, memoria y lógica secuencial para construir sistemas digitales sofisticados, fiables y versátiles.
Tecnología Industrial
- Equipos de EEG: Diseño, fabricación y aplicaciones emergentes
- Máquinas expendedoras: Una industria de 36.600 millones de dólares en EE. UU.
- La evolución y fabricación de máquinas de coser: de la innovación del siglo XIX a la automatización moderna
- Comprender el Torneado Mecánico: Un Proceso Clave de Mecanizado de Precisión
- Top 5 tecnologías que revolucionan la manufactura
- Fresadoras Versátiles: Corte, Taladrado y Mucho Más
- Fundamentos de CNC: Dominando el Control Numérico Computarizado
- Unidad 5: Operación CNC – Dominando Configuración y Control de Fresadora Haas
- Dominando el Mecanizado de Titanio: Consejos y Técnicas Expertas
- Guía Esencial para Mecanizar Grafito: Mejores Prácticas y Recomendaciones de Herramientas
- JW Machine: Servicios de Fabricación por Contrato CNC de Precisión