Contador (digital)
En lógica digital y computación, un contador es un dispositivo que almacena (ya veces muestra) el número de veces que ha ocurrido un evento o proceso en particular, a menudo en relación con un reloj. El tipo más común es un circuito lógico digital secuencial con una línea de entrada llamada reloj y múltiples líneas de salida. Los valores en las líneas de salida representan un número en el sistema numérico binario o BCD. Cada pulso aplicado a la entrada del reloj incrementa o decrementa el número en el contador.
Un circuito contador generalmente se construye con varios flip-flops conectados en cascada. Los contadores son un componente muy utilizado en los circuitos digitales y se fabrican como circuitos integrados separados y también se incorporan como partes de circuitos integrados más grandes.
Contadores electrónicos
Un contador electrónico es un circuito lógico secuencial que tiene una señal de entrada de reloj y un grupo de señales de salida que representan un número entero "conteos" valor. En cada borde de reloj calificado, el circuito incrementará (o disminuirá, según el diseño del circuito) los conteos. Cuando los conteos hayan llegado al final de la secuencia de conteo (conteos máximos al incrementar; conteos cero al decrementar), el siguiente reloj hará que los conteos se desborden o rebasen y la secuencia de conteo comenzará de nuevo. Internamente, los contadores usan flip-flops para representar los conteos actuales y retener los conteos entre relojes. Según el tipo de contador, la salida puede ser una representación directa de los recuentos (un número binario) o puede estar codificada. Los ejemplos de estos últimos incluyen contadores de anillo y contadores que emiten códigos Gray.
Muchos contadores proporcionan señales de entrada adicionales para facilitar el control dinámico de la secuencia de conteo, como:
- Reset – establece cero. Algunos fabricantes de IC lo llaman "clear" o "master reset (MR)".
- Habilitar – permite o inhibe contar.
- Dirección – determina si los recuentos aumentarán o decrerán.
- Datos – datos de entrada paralelos que representan un valor de cuenta particular.
- Carga – copia datos paralelos de entrada a los recuentos.
Algunos contadores proporcionan una salida Terminal Count que indica que el próximo reloj causará un desbordamiento o subdesbordamiento. Esto se usa comúnmente para implementar contadores en cascada (combinando dos o más contadores para crear un solo contador más grande) conectando la salida Terminal Count de un contador a la entrada Enable del siguiente contador.
El módulo de un contador es el número de estados en su secuencia de conteo. El módulo máximo posible está determinado por el número de flip-flops. Por ejemplo, un contador de cuatro bits puede tener un módulo de hasta 16 (2^4).
Los contadores generalmente se clasifican como síncronos o asíncronos. En los contadores síncronos, todos los flip-flops comparten un reloj común y cambian de estado al mismo tiempo. En los contadores asíncronos, cada flip-flop tiene un reloj único y los estados de los flip-flops cambian en diferentes momentos.
Los contadores sincrónicos se clasifican de varias formas. Por ejemplo:
- Modulus cuenta a través de un número particular de estados.
- Patrocinador de decenios: modulo diez contadores (cuenta a diez estados).
- Contrarretador de arriba / abajo – cuenta arriba y abajo, como se indica por una entrada de control.
- Soporte de anillo – formado por un registro de cambio "circular".
- Johnson counter – un torcido contador de anillo.
- El contador de código gris produce una secuencia de códigos grises.
Los contadores se implementan de diversas formas, incluso como circuitos integrados MSI y LSI dedicados, como contadores integrados dentro de ASIC, como periféricos contadores y temporizadores de uso general en microcontroladores y como bloques IP en FPGA.
Contador asíncrono (onda)
Un contador asíncrono (onda) es una "cadena" de flip-flops de palanca (T) en los que el flip-flop menos significativo (bit 0) está cronometrado por una señal externa (el reloj de entrada del contador), y todos los demás flip-flops están cronometrados por la salida del más cercano, menos significativo flip-flop (por ejemplo, el bit 0 sincroniza el flip-flop del bit 1, el bit 1 sincroniza el flip-flop del bit 2, etc.). El primer flip-flop está cronometrado por flancos ascendentes; todos los demás flip-flops de la cadena se cronometran mediante flancos de reloj descendentes. Cada flip-flop introduce un retraso desde el borde del reloj hasta el cambio de salida, lo que hace que los bits del contador cambien en diferentes momentos y produzca un efecto dominó a medida que el reloj de entrada se propaga a través de la cadena. Cuando se implementan con flip-flops discretos, los contadores de ondulación se implementan comúnmente con flip-flops JK, con cada flip-flop configurado para alternar cuando está sincronizado (es decir, J y K están conectados a lógica alta).
En el caso más simple, un contador de un bit consta de un solo flip-flop. Este contador se incrementará (al cambiar su salida) una vez por ciclo de reloj y contará de cero a uno antes de desbordarse (comenzando de nuevo en cero). Cada estado de salida corresponde a dos ciclos de reloj; en consecuencia, la frecuencia de salida del flip-flop es exactamente la mitad de la frecuencia del reloj de entrada. Si esta salida se usa como señal de reloj para un segundo flip-flop, el par de flip-flops formará un contador de ondulación de dos bits con la siguiente secuencia de estado:
Ciclo del reloj | Q1 | Q0 | (Q1:Q0) decimal |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
2 | 1 | 0 | 2 |
3 | 1 | 1 | 3 |
4 | 0 | 0 | 0 |
Se pueden agregar flip-flops adicionales a la cadena para formar contadores de cualquier tamaño de palabra arbitrario, con la frecuencia de salida de cada bit igual a exactamente la mitad de la frecuencia del bit menos significativo más cercano.
Los contadores de ondulación exhiben estados de salida inestables mientras el reloj de entrada se propaga a través del circuito. La duración de esta inestabilidad (el tiempo de establecimiento de la salida) es proporcional al número de biestables. Esto hace que los contadores de ondulación no sean adecuados para su uso en circuitos síncronos que requieren que el contador tenga un tiempo de establecimiento de salida rápido. Además, a menudo no es práctico utilizar bits de salida de contadores de ondulación como relojes para circuitos externos porque el efecto de ondulación provoca un sesgo de tiempo entre los bits. Los contadores de ondulación se utilizan comúnmente como contadores de propósito general y divisores de frecuencia de reloj en aplicaciones donde el conteo instantáneo y el sesgo de tiempo no son importantes.
Contador síncrono
En un contador síncrono, las entradas de reloj de los flip-flops están conectadas y el reloj común activa simultáneamente todos los flip-flops. En consecuencia, todos los flip-flops cambian de estado al mismo tiempo (en paralelo).
Por ejemplo, el circuito que se muestra a la derecha es un contador síncrono de cuatro bits ascendente (conteo ascendente) implementado con flip-flops JK. Cada bit de este contador puede alternar cuando todos los bits menos significativos están en un estado lógico alto. En el flanco ascendente del reloj, el bit 1 cambia si el bit 0 tiene un nivel lógico alto; el bit 2 cambia si los bits 0 y 1 son altos; el bit 3 cambia si los bits 2, 1 y 0 son todos altos.
Contador de décadas
Un contador de décadas cuenta en dígitos decimales, en lugar de binarios. Un contador de décadas puede tener cada uno (es decir, puede contar en decimal codificado en binario, como lo hizo el circuito integrado 7490) u otras codificaciones binarias. Un contador de décadas es un contador binario diseñado para contar hasta 1001 (9 decimal). Un contador ordinario de cuatro etapas se puede modificar fácilmente a un contador de décadas agregando una puerta NAND como en el esquema de la derecha. Observe que FF2 y FF4 proporcionan las entradas a la puerta NAND. Las salidas de puerta NAND están conectadas a la entrada CLR de cada uno de los FF.". Cuenta de 0 a 9 y luego se pone a cero. La salida del contador se puede establecer en cero pulsando la línea de reinicio bajo. Luego, el conteo aumenta en cada pulso de reloj hasta que llega a 1001 (9 decimal). Cuando se incrementa a 1010 (10 decimal), ambas entradas de la compuerta NAND se elevan. El resultado es que la salida NAND baja y restablece el contador a cero. D bajando puede ser una señal de CARRY OUT, indicando que ha habido una cuenta de diez.
Contador de timbres
Un contador de anillo es un registro de desplazamiento circular que se inicia de tal manera que solo uno de sus flip-flops está en el estado uno mientras que los demás están en sus estados cero.
Un contador de anillo es un registro de desplazamiento (una conexión en cascada de flip-flops) con la salida del último conectado a la entrada del primero, es decir, en un anillo. Por lo general, circula un patrón que consta de un solo bit, por lo que el estado se repite cada n ciclos de reloj si se utilizan n flip-flops.
Contador Johnson
Un contador de Johnson (o contador de anillo de cola de interruptor, contador de anillo torcido, contador de anillo ambulante o contador de Möbius) es un contador de anillo modificado, donde la salida de la última etapa se invierte y retroalimenta como entrada a la primera etapa.. El registro recorre una secuencia de patrones de bits, cuya longitud es igual al doble de la longitud del registro de desplazamiento, continuando indefinidamente. Estos contadores encuentran aplicaciones especializadas similares al contador de décadas, conversión de digital a analógico, etc. Se pueden implementar fácilmente usando flip-flops tipo D o JK.
Contadores de informática
En la teoría de la computabilidad, un contador se considera un tipo de memoria. Un contador almacena un solo número natural (inicialmente cero) y puede ser arbitrariamente largo. Un contador generalmente se considera junto con una máquina de estados finitos (FSM), que puede realizar las siguientes operaciones en el contador:
- Compruebe si el contador es cero
- Incrementar el contador por uno.
- Decrementar el contador por uno (si ya es cero, esto lo deja sin cambios).
Las siguientes máquinas se enumeran en orden de potencia, siendo cada una estrictamente más potente que la siguiente:
- FSM determinista o no-determinista más dos contadores
- No determinación FSM más una pila
- No determinación FSM más un contador
- FSM determinista más un contador
- FSM determinista o no determinista.
Para el primero y el último, no importa si la FSM es un autómata finito determinista o un autómata finito no determinista. Tienen el mismo poder. Los dos primeros y el último son niveles de la jerarquía de Chomsky.
La primera máquina, una FSM más dos contadores, es equivalente en potencia a una máquina de Turing. Consulte el artículo sobre máquinas de mostrador para ver una prueba.
Contador web
Un contador web o contador de visitas es un programa informático que indica el número de visitas o visitas que ha recibido una determinada página web. Una vez configurados, estos contadores se incrementarán en uno cada vez que se acceda a la página web en un navegador web.
El número generalmente se muestra como una imagen digital en línea o en texto sin formato o en un contador físico, como un contador mecánico. Las imágenes se pueden presentar en una variedad de fuentes o estilos; el ejemplo clásico son las ruedas de un cuentakilómetros.
Contador web fue popular entre mediados y finales de la década de 1990 y principios de la de 2000, y luego fue reemplazado por medidas de tráfico web más detalladas y completas.
Contadores basados en computadora
Muchos sistemas de automatización usan PC y laptops para monitorear diferentes parámetros de máquinas y datos de producción. Los contadores pueden contar parámetros como el número de piezas producidas, el número de lote de producción y las mediciones de las cantidades de material utilizado.
Contadores mecánicos
Mucho antes de que la electrónica se volviera común, se usaban dispositivos mecánicos para contar eventos. Estos se conocen como contadores de conteo. Por lo general, consisten en una serie de discos montados en un eje, con los dígitos del cero al nueve marcados en su borde. El disco más a la derecha se mueve un incremento con cada evento. Cada disco, excepto el que está más a la izquierda, tiene una protuberancia que mueve el siguiente disco hacia la izquierda un incremento después de completar una revolución. Dichos contadores se utilizaron como odómetros para bicicletas y automóviles y en grabadoras, dispensadores de combustible, en maquinaria de producción y en otra maquinaria. Uno de los mayores fabricantes fue la empresa Veeder-Root, y su nombre se usaba a menudo para este tipo de contador.
Los contadores de conteo portátiles se utilizan principalmente para hacer un inventario y contar las personas que asisten a eventos.
Se utilizaron contadores electromecánicos para acumular totales en máquinas tabuladoras que fueron pioneras en la industria del procesamiento de datos.
Contenido relacionado
USB
BogoMips
Submarino americano NR-1