5. Circuitos lógicos y sistemas microprogramables.

Parece que vamos llegando al final, ya sólo queda repasar los circuitos lógicos y microprogramables y en breve Isidro y Valle se presentarán al examen que les puede permitir acceder a una beca del Ministerio de Educación. Esta parte les parece muy interesante pues todos los sistemas electrónicos que nos rodean se basan en la electrónica digital. Es fundamental comprender cuáles son sus principios de funcionamiento, sus unidades básicas y las propiedades que los caracterizan. Una vez consolidados todo estos conocimientos, Valle e Isidro prepararán un circuito digital que controle la ocupación de un garaje a propuesta de Jaime.
Hoy en día la revolución digital ha modificado los procesos y los equipos electrónicos que utilizamos para todo tipo de usos. Cualquier herramienta o utensilio se ha convertido en digital en los últimos tiempos, por ejemplo los DVD sustituyeron a las cintas magnéticas para grabar las películas, la música se escucha en formato MP3, formato digital del audio, los automóviles disponen de procesadores centralizados digitales que controlan todos los mecanismos del automóvil. ¿Y a qué se debe esta revolución digital? Pues la respuesta la encontramos en toda una serie de ventajas que presenta el uso de sistemas digitales para el procesamiento de todo tipo de señal.
Las ventajas que ofrecen los sistemas digitales frente a los sistemas analógicos son a grandes rasgos:
Los comienzos de la electrónica digital fueron los automatismos que se basaban en los relés electromagnéticos. Estos relés tienen la característica de permitir o no el paso de la corriente eléctrica, lo cual origina los dos estados en los que se fundamenta la lógica digital. Fueron sustituidos por las válvulas de vacío posteriormente, pero su tamaño y consumo seguía siendo muy elevado. El gran avance se produce con la aparición de los semiconductores, mediante los cuales se fabrican los microchips con gran capacidad de integración de componentes electrónicos en un pequeño espacio y con un bajo consumo. A partir de ellos se crearon los controladores programables y de ahí rápidamente se llegó a la era digital, llamada hoy sociedad del conocimiento.
Formato de compresión de audio digital patentado que usa un algoritmo con pérdida para conseguir un menor tamaño de archivo.
Es una pastilla pequeña de material semiconductor, de algunos milímetros cuadrados de área, sobre la que se fabrican circuitos electrónicos generalmente mediante fotolitografía y que está protegida dentro de un encapsulado de plástico o cerámica. El encapsulado posee conductores metálicos apropiados para hacer conexión entre la pastilla y un circuito impreso.
La señal analógica es aquella que varía de manera continua en el tiempo y puede tener infinitos valores. La mayoría de las señales físicas de nuestro entorno son analógicas: El sonido o presión acústica, el peso, la distancia, etc.
La señal digital sólo puede adoptar valores determinados y discretos. Normalmente, los sistemas digitales básicos funcionan con dos niveles, de ahí el nombre de sistema binario. Estos dos valores básicos son "conduce" = '1' lógico y "no conduce"='0' lógico.El sistema de numeración que utilizamos para nuestros cálculos matemáticos es el decimal, es decir de diez dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. El sistema binario utiliza dos dígitos: 0, 1. El número de dígitos o símbolos diferentes de un sistema de numeración constituye su base. La representación de un número en base 10 se realiza multiplicando cada dígito por su base elevada al número que representa la posición que ocupa. Veamos en el ejemplo cómo se representa un número en base decimal: A, B, C, etc. son los dígitos, 10 es la base en la que estamos trabajando y el exponente es el peso según la situación o posición del número. La fórmula sería: . Ahora vas a comprobar cómo sería para el caso del número 325 por ejemplo:
El sistema binario se basa en dos estados lógicos '0' y '1' que se denominan BIT. Para expresar un número en binario se utiliza la misma expresión que para el decimal pero se cambia la base, es decir, el 10 por el 2, la diferencia es que ahora el dígito sólo puede tener dos valores 0 y 1, la fórmula es igual a la que has visto antes: . Por tanto, si queremos expresar un número binario en valor decimal, haremos lo mismo que antes pero cambiando la base, por ejemplo para el número binario 010 sería:
Suele ser cómodo convertir estos dígitos a su valor decimal pues nos resulta más sencillo trabajar con ellos. La forma de conversión es la del anterior ejemplo, recuerda sumar los productos de los dígitos por sus bases elevada a los exponentes que marcan la posición en el número.
Símbolo que no es combinación de otros y que representa un entero positivo.
Número de dígitos diferentes usados en un sistema de numérico.
Si queremos convertir un valor decimal en un valor binario el proceso es el siguiente: se divide el valor entre 2 sucesivamente hasta no poder continuar. Serán los restos de esas divisiones los que nos den el número binario. El valor binario es el número (0 ó 1) compuesto por el último cociente (bit de mayor peso) hasta el primer resto. Por ejemplo, si queremos pasar a binario el valor 37(10).
Además del sistema de numeración decimal y binario se utiliza el sistema de numeración octal y hexadecimal, que suelen convertirse con facilidad al sistema binario. El sistema octal utiliza 8 dígitos: 0, 1, 2, 3, 4, 5, 6, y 7. El sistema hexadecimal es muy utilizado en sistemas programables. Utiliza 16 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
La equivalencia entre los valores hexadecimales y los decimales es la siguiente:
Para convertir un número hexadecimal a decimal, primero se expresa el polinomio equivalente y se calcula el valor equivalente y el resultado es en base 10. Es igual que en el punto anterior, pero cambiando la base y utilizando la correspondencias hexadecimal decimal que acabas de ver. Puedes comprobarlo en el siguiente ejemplo que convierte el hexadecimal ABCDE al sistema decimal:
Para convertir un número decimal a hexadecimal, se divide entre 16 continuamente hasta que el último cociente es menor que 16, éste será el dígito de más peso y luego aparecerán los demás restos de las correspondiente divisiones hasta el primero. Por ejemplo, queremos convertir a decimal 3571 a hexadecimal el proceso sería el siguiente:
Para convertir de binario a hexadecimal, los equivalentes entre valores binarios, decimales y hexadecimales están en la siguiente tabla.
Suma de varios monomios. Un monomio es un producto de un coeficiente y una variable elevado a un número natural, que se llama el exponente del monomio.
El álgebra de Boole es una estructura de operaciones lógicas con las variables binarias 0 y 1. Las operaciones básicas que relacionan estas variables son O, Y, NOT, que son equivalentes a la suma lógica (+), producto lógico (.) y negación lógica. A partir de estas operaciones lógicas simples se pueden obtener otras más complejas que constituyen las funciones lógicas.
Rama de las matemáticas que estudia las estructuras, las relaciones y las cantidades (en el caso del álgebra elemental).
La función lógica o booleana se define como toda variable binaria cuyo valor depende de una expresión algebraica formada por otras variables binarias relacionadas mediante los signos (+) y/o (.).
La siguiente tabla resume las principales características del álgebra de Boole:
Operación básica | Representación | Formulado de postulados básicos |
---|---|---|
Suma | ![]() |
![]() |
Multiplicación | ![]() |
![]() |
Negación lógica | ![]() |
![]() |
Estas operaciones cuentan además con una serie de propiedades y restricciones que hay que tener en cuenta:
En circuitos digitales, para su simplificación, se recurre a las leyes de De Morgan, por tanto, éstas te va ser de mucha ayuda son dos:
La tabla de verdad de una función lógica es la representación de los valores que puede tener una función a su salida para cada una de las combinaciones de las variables de entrada. Se expresan en forma de tabla en la que a su izquierda se colocan tantas columnas como variables de entrada y el número de filas será el número de combinaciones posibles. En la imagen siguiente puede ver un ejemplo de cómo sería la tabla de verdad para la función de la suma.
Existen muchos tipos de puertas las principales son las que puedes ver a continuación:
Otras puertas lógicas importantes que debes conocer son:
Para implementar una función con puertas lógicas es necesario interpretar la función, las operaciones lógicas que simboliza y elegir las puertas lógicas apropiadas. Por ejemplo en la siguiente imagen puede ver como se representa una función lógica en su correspondiente esquema, para realizarlo solo hay que ir eligiendo la representación de las distintas puertas que has visto en el apartado anterior:
Si en lugar de una función tenemos la tabla de verdad, lo primero que tendremos que hacer será deducir la función de la tabla verdad y después dibujar el circuito lógico. La función lógica es una expresión algebraica en la que se relacionan las variables independientes mediante operaciones lógicas. La forma más simple de definir una función lógica es mediante la tabla de verdad. Consiste en establecer todas las posibles combinaciones de las variables independientes en forma de tabla.
Por ejemplo, si te dan la siguiente tabla de verdad de tres variables y desde ella tienes que determinar la función lógica:
La función se puede obtener de dos formas:
Para entenderlo mejor con el ejemplo de la tabla anterior fíjate en la explicación de la siguiente imagen:
Suma de productos de las variables lógicas.
En matemáticas para indicar que algo es natural, como debe ser e independiente de elecciones arbitrarias, que es absoluto y no relativo a un observador, que es intrínseco y no depende de un sistema de referencia o de un sistema de coordenadas, que pertenece a la estructura propia de lo que estudiamos.
Producto de sumas de las variables lógicas.
Normalmente las expresiones algebraicas resultantes de las tablas de verdad son complejas de implementar con puertas lógicas, por lo que se suele simplificar para obtener una función equivalente pero más sencilla. Dos funciones lógicas son equivalentes cuando cumplen la misma tabla de verdad.
Existen diferentes métodos de simplificación:
Los valores internos en las casillas 0, 1, 1 y 1 indican la combinación natural de las variables a y b, que tomarán el valor "0" o "1" según corresponda. En el mapa de Karnaugh se representará el 1 en los cuadros en los que corresponda. En el caso anterior en la casilla 1, en la 2 y en la 3 (corresponden con su mintérmino).
Vamos a ver un ejemplo, utilizando la simplificación por el método de Karnaugh. Partiremos desde la tabla dada, creamos el mapa de Karnaugh y colocamos el valor de la función en cada celda y luego se realizan las agrupaciones de 1, de tal forma que siempre sean potencias de 2 (2,4,8,16). Los grupos han de ser lo mayores posibles, no se pueden agrupar en diagonal y un mismo 1 puede pertenecer a varios grupos. En cada grupo se elimina la variable que cambia dentro del grupo.
Veamos la simplificación por Karnaugh pero en esta ocasión con una función cuatro variables.
Presta atención al orden en el que aparecen la combinación de 0 y 1 en el mapa de Karnaugh de cuatro variables.
La función se puede expresar como el sumatorio de los minterm:
Como has podido ver a medida que agrupamos mayor cantidad de unos, el término tiene menos literales, además como has visto antes el agrupamiento se hace con una cantidad de unos que son potencia de 2 (siempre pares).
Finalmente la representación de la función simplificada sería como se muestra en la siguiente imagen.
Aplicación para realizar simplificaciones de Karnaugh.
Las puertas lógicas se encuentran comercializadas en circuitos integrados con una tecnología de fabricación TTL o CMOS. El tamaño de estos circuitos es cada vez más pequeño, al igual que su precio. El nivel de integración cada vez es mayor. La tecnología de fabricación TTL es una de las más utilizadas se simboliza con los números de referencia 74XX y trabaja con una fuente de alimentación de 5V y una temperatura de trabajo ente 0º y 70ºC. El número XX identifica el tipo de puertas lógicas que integra.
Ahora vas a ver algunos ejemplos de este tipo de circuito integrado, las patillas 7 y 14 son las patillas de alimentación de 0 y 5V respectivamente y según la puerta lógica tendríamos:
Según las técnicas de fabricación de los circuitos integrados se encuentran diferentes familias lógicas que se clasifican en función de los transistores que utilizan y de sus configuraciones y conexiones.
Las familias lógicas tienen una serie de características que las diferencian entre sí:
Las dos familias lógicas más utilizadas en la actualidad son la TTL(Lógica Transistor-Transistor) basada en los transistores bipolares y la CMOS basada en los transistores unipolares de efecto de campo, pero también existen otras familias según el modo de acoplamiento y los componentes que utilizan como:
Las familias RTL y DTL fueron las que primero aparecieron, luego llegaron la TTL y la ECL. La TTL ha sido muy utilizada durante muchos años y cuando apareció la ECL supuso una importante mejora en la velocidad. Por último llegó la familia, CMOS que consiguió bajo consumo lo que supuso un aumento en el nivel de integración (número de puertas por chip). Estas características la han convertido en una de las familias predominantes en el mercado electrónico.
Los instrumentos de medida a utilizar en electrónica digital son:
Valle Isidro se han puesto manos a la obra para diseñar un sistema digital de control de ocupación de un garaje. Jaime les ha proporcionado los requisitos que ha de tener. Se han comprometido a tener el circuito diseñado y montado en un circuito impreso en menos de una semana.
—Tendremos que hacer una revisión rápida a los circuitos digitales para diseñar este circuito —Dice Valle.
—Sí, eso me temo, aunque para diseñar este circuito creo que no bastará con tener claros los conceptos y los esquemas de los circuitos combinacionales. —Le contesta Isidro.
—Yo empezaré repasando el funcionamiento de los decodificadores y los codificadores. — Contesta Valle.
—Muy bien, yo creo que puedo revisar los multiplexores y los demultiplexores. — Añade Isidro.
—¿No crees que también deberíamos utilizar un comparador?—Pregunta Valle.
—Buena idea, seguro que lo necesitamos para comparar valores—.Contesta Isidro.
Los circuitos combinacionales son aquellos que se implementan mediante la combinación de diferentes puertas lógicas. Se caracterizan porque su salida sólo depende del valor de las entradas en ese momento independiente del valor que hayan tenido en un momento anterior. Esta característica nos sirve para diferenciarlos de los circuitos secuenciales (los veremos más adelante) cuya señal de salida depende de las entradas presentes y de las salidas y entradas anteriores.
Los circuitos combinacionales se pueden realizar con puertas lógicas o se puede utilizar un circuito integrado que realice esa determinada función. Conforme construimos funciones lógicas cada vez más complejas se hace inviable representar gráficamente el diagrama de conexión completo con todas las puertas resultantes. Así pues, utilizaremos bloques lógicos para encapsular y ocultar la complejidad.
Los circuitos combinacionales más comunes son:
El circuito multiplexor es un circuito que permite seleccionar en la salida cualquiera de las señales de entrada dependiendo de unas líneas de control o de selección. Sería algo similar a un conmutador de varias posiciones de forma que al posicionar el selector en una de las entradas será esta la que aparezca a la salida.
Como puedes apreciar en la imagen dispone de N entradas de datos, n entradas de selección y 1 salida, de manera que .
Vamos a ver cómo sería el funcionamiento de un multiplexor de 4 entradas de datos y, por lo tanto 2 entradas de selección. Como siempre partimos de la tabla de verdad y de ella deducimos la función lógica para después representarla, como has hecho en ocasiones anteriores, observa el ejemplo en el que mo, m1, m2 y m3 corresponden a los minterm que se crean con las entradas de selección.
El integrado que se utiliza como multiplexor es el 74XX151, se trata de un multiplexor con 8 entradas de datos (D7….D0), 3 líneas de selección (ABC), una entrada de habilitación (EN) necesaria para poner en funcionamiento el circuito y dos salidas (una normal Y y otra complementada W).
En la imagen inferior podéis comprobar su funcionamiento.
Otros multiplexores comerciales son: 74150 (16 canales), 74153 (doble multiplexor de cuatro entradas), 74158 (cuádruple multiplexor de dos entradas). Para ampliar la capacidad de un multiplexor se pueden conectar varios entre sí.
Es la entrada que tiene todo circuito integrado que permite su funcionamiento. Si no está activa no importa lo que tenga en el resto de las entradas que la salida estará inactiva.
El demultiplexor realiza la operación inversa a los multiplexores, es decir tiene una única entrada de datos y varias salidas N, siendo n el número de entradas de selección, de tal modo que . Dependiendo de esta combinación de selección tendremos la entrada en una salida o en otra. En este caso, también hay similitud con un conmutador que permite el paso de una señal a una de las salidas.
La multiplexación y la demultiplexación se utilizan en las líneas de trasmisión de datos por la característica que tienen de poder transmitir la señal de un emisor por una única línea y luego volverla a distribuir entre varios receptores.
Para diseñar un circuito demultiplexor de 2 entradas de selección y 4 salidas tendremos la siguiente tabla de verdad y su implementación con puertas lógicas:
También existe un circuito comercial demultiplexor, el 74138 de 8 salidas y 3 entradas de selección.
En el siguiente enlace puedes encontrar mucha información sobre la serie 74xx.
Los Decodificadores son circuitos que reciben un código a la entrada y lo decodifican activando una determinada salida. Por ejemplo, pueden decodificar un código BCD decimal a otro tipo de código como el decimal.
El decodificador tiene n entradas y 2n salidas como máximo. La salida que se activa es la correspondiente al número binario codificado en la entrada. De forma semejante a como se define el decodificador 2x4, pueden definirse decodificadores de 3x8, 4x16, 5x32 y en forma general de nx2n.
La principal utilización de este dispositivo es cuando se tiene N alternativas que se pueden seleccionar, pero se desea seleccionar solamente una de ella. También puede ser usado para construir funciones lógicas.
En esta animación puedes ver cómo funcionaría un decodificador y como se van iluminando cada una de las salidas dependiendo de la combinación de entrada.
En la siguiente imagen puedes ver además la representación gráfica con puertas lógicas.
Código binario decimal. Los números del 0 al 9 se representan en su equivalente binario.
Las aplicaciones de un decodificador son múltiples. Además de un decodificador de código se pueden utilizar para generar funciones lógicas. Una vez que tenemos una función lógica y la tabla de verdad se puede implementar el circuito lógico conectando una puerta OR a las salidas del decodificador que se correspondan con aquellas combinaciones que hagan 1 la salida, siempre y cuando sea un decodificador de salida activa alta (se considera 1 lógico al nivel de tensión alto). Se entiende que la S0 corresponde al minterm 0, el S1 al minterm 1 y así sucesivamente.
La tabla de verdad de la imagen siguiente pertenece a un decodificador de 2 a 4. Con este decodificador vamos a diseñar un circuito combinacional con un decodificador que implemente la siguiente función:
En este caso las salidas son activas a nivel bajo, es decir funciona con un nivel bajo de tensión a la salida, por lo tanto en lugar de utilizar una puerta OR utilizamos una puerta NAND. A la salida de la puerta NAND obtenemos la función F cuyas entradas son las salidas S1, S2 y S3 del decodificador.
El decodificador BCD a 7 segmentos es una especie de convertidor de código que traduce un código binario a su correspondiente valor decimal en un display de siete segmentos. El display de siete segmentos son siete diodos led configurados de tal manera que al iluminarse unos u otros forman los números.
El decodificador de la imagen se ha de conectar a un display de cátodo común para que los led se activen con un 1. El circuito comercial correspondiente sería un 7448 con salidas activas a nivel alto. Entre el decodificador y el display habría que colocar resistencias limitadoras de 330 ohmios para limitar la corriente que llega a los led.
Los codificadores realizan la función contraria a los decodificadores, codifican en forma binaria la información numérica o alfanumérica recibida a la entrada. Poseen 2n entradas y n salidas. Los codificadores puede ser: codificadores con prioridad o sin prioridad.
Los codificadores sin prioridad: si se activan más de una entrada no funcionará correctamente y se generará una salida errónea.
Los codificadores con prioridad: si se activaran varias entradas aparece la salida correspondiente al código de mayor prioridad. En cada caso se tendría que aclarar cuál es la prioridad, si la de mayor peso o la de menor peso.
En la siguiente imagen puedes comprobar el funcionamiento de un codificador decimal a BCD.
En la siguiente imagen podrás encontrar la tabla de verdad de un codificador con prioridad decimal a BCD, en particular del circuito comercial 74147. En este caso tienes que considerar los 0 como si fueran 1 pues tanto entradas como salidas son activas a nivel bajo. Las X indican que pueden ser 0 ó 1, es decir que su valor es indiferentes para el resultado final. Esto es debido a la prioridad ya que al tener prioridad la entrada de mayor peso, cuando la I9 está activa con un 0 no importa lo que haya en el resto de las entradas, así pues en el resto de las entradas tenemos X y la salida será 0110. Como es lógica negada en realidad 0110 representa 1001 es decir, el código binario de 9.
El comparador es un circuito que detecta si dos combinaciones binarias son iguales o una de ellas es mayor que la otra. En la imagen siguiente podrás ver cuál es el circuito lógico de un comparador y su tabla de verdad. A partir de ese circuito lógico se construyen los comparadores de cuatro bits.
Un ejemplo de un circuito comparador comercial es el LM7485. Se trata de un comparador de cuatro bits, por lo tanto compara los dos números binarios teniendo en cuenta el valor equivalente de la combinación de cuatro bits. La salida que corresponda se activará a nivel alto. Se disponen de entradas en cascada que servirán para construir comparadores de un mayor número de bits. Para el caso de un comparador de 8 bits se necesitaría conectar en cascada dos comparadores 7485.
Para que veas cómo se interconectan dos comparadores para ampliar el tamaño de los números binarios, consulta este vídeo.
Un sumador binario es un circuito digital que realiza la suma de dos números binarios. El elemento básico del sumador es un semisumador que es el circuito que puedes ver en la siguiente imagen. Se trata de un circuito que realiza la suma de dos bits sin tener en cuenta el acarreo. En la tabla de la verdad se puede ver que la salida es 1 siempre y cuando una de las entradas sea 1. Cuando las dos son 1 el resultado es 0 y se genera acarreo. La función suma coincide con el resultado de una puerta XOR, por lo tanto se representa con ella, sin embargo el acarreo se implementa con una puerta AND.
Un sumador completo sería igual sólo que habría que añadir una nueva señal a la entrada: el Ci o acarreo de entrada.
Si quisiéramos implementar un sumador de mayor número de bits tendríamos que conectar dos sumadores en cascada. El acarreo de salida del sumador de los bits de menos peso sería la entrada del acarreo del sumador de bits de más peso.
Es el nombre coloquial utilizado para describir un recurso nemotécnico en una operación aritmética, principalmente en la operación suma. Se usa cuando un dígito ha sido transferido de una columna de dígitos a otra columna de mayor potencia en un algoritmo de cálculo.
Si quieres consultar las características del sumador comercial 74LS83 visita este enlace.
Valle, Isidro y Silvia han quedado hoy en el parque. Valle cuenta a Silvia cómo va el proceso de diseño de su circuito de control para un garaje. Ya tienen el diseño realizado y sólo les falta comprar los componentes y montar el circuito impreso.
—Yo creo que antes de montar el circuito, deberíais pensar en alguna mejora. —Dice Silvia.
—No sé, yo creo que nuestro circuito funciona bastante bien. —Le contesta Isidro.
—¿Habéis introducido algún circuito secuencial? — Contesta Valle.
—Pues claro, podríamos añadir un contador para saber cuántos vehículos hay en el garaje y mostrarlo en un display. — Añade Valle.
—Perfecto Valle, eso era lo que pensaba que podría faltar a vuestro circuito—Pregunta Valle.
—Pues ya tenemos nueva tarea, ¡ repasar todos los circuitos secuenciales y su funcionamiento!.—Contesta Isidro.
Un circuito secuencial es un sistema digital en el que las salidas en un determinado instante dependen de las variables de entrada en ese instante, así como del valor que tenían en un momento anterior. Para que funcione así el sistema necesita unos elementos de memoria que permitan retener estados anteriores, como se representa en la imagen que verás a continuación. Tendríamos dos partes en un circuito secuencial: el circuito combinacional que implementa la lógica necesaria y el bloque de almacenamiento.
Se puede apreciar un proceso de realimentación del estado de la salida hacia la entrada:
Podemos encontrar numerosos ejemplos de circuitos secuenciales en nuestro entorno, por ejemplo un semáforo es un circuito secuencial pues siempre se produce la misma secuencia en su encendido de luces. La secuencia es verde, amarillo y rojo. Para que un circuito pueda mantener un orden determinado en su salida es necesario que disponga de una memoria que almacene el estado anterior. Otro ejemplo, es un contador electrónico como los que se utilizan en los hornos para temporizar el apagado. En realidad se puede afirmar que las aplicaciones de circuitos secuenciales están en cada rincón de nuestro entorno.
Los circuitos secuenciales se pueden clasificar en:
El tipo de sincronismo que utilizan los circuitos secuenciales puede ser:
En esta imagen puedes ver cómo la salida sólo cambia cuando el flanco es activo, en este caso en el flanco de bajada.
La transición del nivel bajo al alto (flanco de subida) o del nivel alto al bajo (flanco de bajada) de una señal digital.
El biestable es un circuito secuencial que puede tener dos estados estables pudiendo estar indefinidamente en uno de ellos. El biestable almacena la información de un bit, es decir, 1ó 0, por lo que podemos decir que es un circuito de memoria que es capaz de almacenar el estado anterior. Sólo cambia de estado cuando cambian las señales de entrada. En esta imagen se puede comprobar el funcionamiento básico de un biestable en el que la salida tendrá un 1 desde el momento que E=1, ya que luego tenemos una puerta OR, cuya entrada S(t+1)=1 siempre.
Los biestables se pueden clasificar atendiendo a la función que realizan, también se pueden clasificar según el modo de sincronismo en: biestables asíncronos y bistables síncronos, según hemos visto anteriormente.
Los parámetros fundamentales de un biestable son:
En esta imagen puedes comprobar el significado de cada uno de los tiempos.
Comenzaremos estudiando el biestable R-S asíncrono: tiene dos entradas, una de SET o puesta a 1 y una de RESET o puesta a 0. Dispone de dos salidas Q y Q'. El funcionamiento es muy simple: cuando no las señales de entrada son 0 no hay cambio en la salida, pero si se activa la señal RESET la salida se pondrá a 0 y si se activa la SET la salida se pondrá a 1. El caso de que se activen las dos será prohibido, ya que la salida será indeterminada.
El biestable R-S síncrono, es igual que el anterior sólo que se ha añadido una entrada de reloj pues, como vimos antes su salida dependía de esta entrada. También se incluyen dos entradas asíncronas, PRESET y CLEAR que se utilizan para poner la salida a 1 ó a 0 respectivamente, independientemente de lo que tengamos en las entradas S y R y también independientemente de la señal de reloj.
Como puedes ver en este cronograma las salidas sólo cambian con las entradas cuando hay un flanco de reloj positivo.
Los biestables J-K son muy similares a los R-S con la diferencia de que estos resuelven el problema del biestable R-S cuando las dos entradas estaban a nivel alto. En el caso del R-S suponía un estado indeterminado, en el caso del biestable J-K supone un cambio en el estado anterior.
El biestable J-K se puede diseñar a partir del biestable R-S, para ello basta conectar puertas AND a sus entradas. Según esta configuración se evita que a las entradas R y S les llegue simultáneamente dos unos puesto que están realimentados con Q y con Q'.
Para configurar un biestable J-K síncrono añadimos una entrada de reloj. La señal de reloj puede ser activa por flanco de bajada o por flanco de subida como vemos en la figura siguiente.
En el cronograma se puede ver la señal de salida si el biestable J-K fuera activado en el flanco de subida de la señal de reloj y también se muestra el caso en el que el biestable fuera activado en flanco de bajada para que puedas ver la diferencia.
El biestable tipo D se caracteriza porque la señal de salida es idéntica a la entrada. Normalmente se trata de un biestable síncrono en el que la señal de salida se controla con la señal de reloj. El biestable tipo D se puede implementar con un biestable J-K o con un R-S como puedes apreciar en la imagen inferior. En este caso el biestable es activo por el flanco de subida del reloj, así que cuando haya un flanco de subida se comprueba que entrada tenemos y se envía a la salida.
En el cronograma siguiente puedes apreciar cómo cambia la salida de un biestable tipo D con una única entrada D según el reloj funcione por nivel (alto o bajo) o por flanco (de subida o de bajada).
El biestable tipo T es un biestable J-K en el que las entradas se han conectado a 1, por lo que siempre que reciba el flanco activo de reloj, la señal cambiará de estado. Estos biestables se utilizan sobre todo para implementar contadores.
El registro es un conjunto de biestables. Si un biestable puede almacenar un bit, un registro de n biestables podrá almacenar n bits, con lo cual aumenta la capacidad de almacenamiento. Según la aplicación para la que están diseñados los registros se clasifican en:
Atendiendo al sentido del desplazamiento se pueden clasificar en:
En la siguiente imagen tenemos biestables R-S configurados como tipo D unidos de manera que forman un registro de desplazamiento a entrada que llega al biestable 1 se desplaza al 2 y de éste al 3 y así hasta llegar al último biestable. Su funcionamiento se puede comprobar perfectamente en el cronograma. Aparece la misma señal en cada una de las salidas pero desplazada en el tiempo.
Existe un circuito comercial registro de desplazamiento universal 74LS194. Permite entradas en serie y en paralelo, desplazamiento a la derecha y a la izquierda en función de unas señales de control.
Si quieres consultar las características del registro de desplazamiento universal 74LS194.
El contador es un circuito secuencial constituido por biestables que cuenta pulsos de una señal de reloj. El valor de cuenta se expresa mediante un código, que en la mayoría de los casos es binario natural o BCD. La señal de reloj que se cuenta es el flanco de reloj. Los biestables que forman un contador son los tipo T, los cuales van conectados de tal forma que la salida del primero es la entrada de reloj del siguiente y así sucesivamente hasta el número de bits que cuente el contador.
La imagen representa un contador ascendente asíncrono activo por flanco de bajada. En la tabla de verdad se puede comprobar su funcionamiento. Cuando se produce un flanco de bajada en la señal de reloj y siempre que la señal de entrada T sea igual a 1, se produce un cambio en la señal de salida. En el momento en el que la señal de salida produce un flanco de bajada activa el segundo biestable y produce un cambio en su salida también y así sucesivamente. De esta manera el código que representa las señales de salida identifica un determinado valor que es el resultado de la cuenta de los impulsos de reloj. Los contadores también se denominan divisores de frecuencia porque en realidad cada biestable divide la frecuencia que le llega por dos como puedes apreciar en el cronograma.
Los contadores pueden ser asíncronos y síncronos, pero también se pueden clasificar por el tipo de código que entregan a la salida (binario, BCD, etc) y por el sentido de conteo (ascendente/descendente). También existen contadores síncronos, en los que la señal de reloj se aplica simultáneamente a todos los biestables del contador, por lo que todos los biestables cambian de estado a un tiempo y así se eliminan los tiempos de retardo. El diseño es algo más complejo que el asíncrono.
Un ejemplo de contador comercial es el CI 74191 es un contador reversible (puede contar en los dos sentidos), módulo 16 o que puede contar hasta 15. Tiene doble entrada de reloj, una para cuenta ascendente y otra para cuenta descendente. La entrada de borrado asíncrono se activa en nivel ALTO colocando las salidas en nivel BAJO (0000) y se inicializa en cualquier número que se cargue en las entradas de datos en forma binaria y se transfieren asíncronamente a la salida BCD (A=QA, B=QB, C=QC, D=QD). La salida de arrastre se utiliza para conectar en cascada serie varios contadores.
Valle e Isidro han terminado su proyecto de control de entrada del garaje. Han utilizado finalmente circuitos combinacionales y secuenciales, aunque ahora están pensando en programar un microcontrolador que realice la misma función que el circuito anterior. A punto de terminar su revisión del módulo "Electrónica Aplicada" han recibido la noticia de que la empresa Telecomsa está buscando técnicos en instalaciones de telecomunicación. Hoy mismo tienen una entrevista con Carmen, la responsable de recursos humanos de la empresa. Con ella charlan animosamente y responden a las preguntas de Carmen sobre posibles averías electrónicas que se pueden dar en un sistema de telecomunicación. La revisión que han realizado para su examen en el Minsiterio de Educación ha sido todo un éxito ya que Carmen les propone trabajar con ellos.
Ahora sólo les queda decidir convertirse en becarios del Ministerio de Educación o trabajar de técnicos en la empresa Telecomsa. Parece que no les van a faltar oportunidades. Valle e Isidro han conseguido su objetivo.
En la lógica digital podemos diferenciar dos tipos de circuitos o de lógicas:
Con esta distinción podemos llegar a la definición de sistema microprogramable, como un dispositivo o conjunto de dispositivos de propósito general, que según sea necesario se programa con un determinado objetivo El ejemplo clásico son los ordenadores.
Las aplicaciones de los sistemas microprogramables son muy variadas, ya que simplemente modificando la programación pueden realizar una función u otra. Las más frecuentes son:
Todo sistema microprogramable está compuesto por tres componentes:
En programación, una rutina se define como un procedimiento independiente (un bloque) que realiza una labor específica y a la cual se puede llamar desde cualquier parte del programa principal.
Todos los sistemas microprogramables tiene la siguiente estructura que consta de los siguientes elementos:
Es el canal de comunicación entre distintos bloques de un sistema microprogramable.
Un periférico de E/S es el que se utiliza para ingresar (E) datos a la computadora, y luego de ser procesados por la unidad central de procesamiento (CPU), genera la salida (S) de información.
La clasificación fundamental de los sistemas microcroprogramables es:
Microprocesadores, microcontroladores y dispositivos PLD. Los dos primeros se diferencian porque son sistemas programables basados en CPU. Los dispositivos PLD son el nivel más básico de hardware, son conjuntos de puertas lógicas generadas con un alto nivel de integración que se pueden programar en la etapa final.
Todos estos sistemas son capaces de leer, interpretar y luego ejecutar de forma secuencial las instrucciones contenidas en un programa y todos salvo los dispositivos PLD poseen la misma estructura que veremos en el apartado siguiente. El sistema microprogramable está dividido en diversos circuitos integrados, denominándose al más importante microprocesador. El microprocesador incluye únicamente en su interior la Unidad Central de Proceso, de ahí, que se le conozca también como CPU. Los microprocesadores se utilizan en aquellas aplicaciones en las que se requieren grandes cantidades de memoria, ejecutar una gran cantidad de programas o se prevea hacer futuras ampliaciones realizando las tareas a una elevada velocidad. Un ejemplo de aplicación son los ordenadores personales.
La estructura de un microprocesador es la siguiente.
En la imagen puedes comprobar cuáles son los bloques característicos de los sistemas microprogramables vistos anteriormente pero también se puede apreciar la distinción entre dos tipos de memorias, la RAM donde se almacenan los datos y los programas y la ROM donde se almacenan los programas de activación del sistema. Por otro lado se pueden ver los buses, los cuales se definen como canales de paso de información, divididos en tres tipos:
El microcontrolador es un circuito integrado que integra en la misma pastilla la CPU, la Memoria Central, los puertos de E/S digitales y otros elementos. Como desventaja su capacidad de trabajo es menor que la de los microprocesadores. Se utiliza en aquellas aplicaciones en las que necesitamos el uso de un pequeño procesador. Se encuentra por todas partes, por ejemplo, los autómatas programables industriales poseen este tipo de circuitos integrados, al que se le han añadido sistemas de control de potencia tales como relés para poder controlar maquinaria industrial.
Como alternativa a lo anterior existen otros tipos que son los dispositivos programables, de menos complejidad de diseño pero con una versatilidad de funciones inferior.
Dentro de estos dispositivos los más comunes son:
Es una memoria de sólo lectura.
Es una memoria de acceso aleatorio, de lectura y escritura.
La arquitectura de un procesador consiste en el conjunto de características que lo identifican. Describe las capacidades y posibilidades de operación que tiene el microprocesador. La clasificación de la estructura se realiza según el hardware y el software del micro.
La arquitectura CISC se refiere a un software de instrucciones complejas, que ofrece una amplia gama de operaciones facilitando el trabajo de programación y reduciendo el tamaño del programa. Los microprocesadores actuales más comunes (Intel, AMD) son CISC. La arquitectura RISC, ofrece un menor número de instrucciones, lo cual implica que el mayor el trabajo de programación y el tamaño del programa.
Tradicionalmente, la arquitectura utilizada es la de Von Newman, que propone una organización en bloques con unas funcionalidades bien definidas:
Las fases de ejecución de las instrucciones la CPU es ésta:
Como hemos visto anteriormente, los microcontroladores incluyen en un único chip todo el sistema microprogramable formado por la CPU, la memoria RAM, la memoria ROM y las unidades de entrada y salida.
Las ventajas que introduce el uso de los microcontroladores son:
La arquitectura de los microcontroladores es semejante a la de los microprocesadores, aunque si bien en los microprocesadores lo más común es la estructura Von Newman en los los microcontroladores lo más común es la estructura Harvard. La cantidad de instrucciones que manejan depende del microcontrolador.
Aplicaciones de los microcontroladores: cada vez existen más productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y coste, mejorar su fiabilidad y disminuir el consumo. Los microcontroladores están siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigoríficos, televisores, ordenadores, impresoras, módems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentación electrónica, control de sistemas en una nave espacial, etc. Una aplicación típica podría emplear varios microcontroladores para controlar pequeñas partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y con un procesador central, probablemente más potente, para compartir la información y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC.
Los microcontroladores comerciales se clasifican fundamentalmente por sus fabricantes:
En el siguiente enlace podrás conocer más características de los PIC.
Características de los microcontroladores PIC.
Ya hemos visto anteriormente que uno de los bloques fundamentales de los sistemas microprogramables son las memorias, que son las encargadas de almacenar los programas y los datos para que la CPU pueda realizar todas sus operaciones.
Las características que poseen las memorias son las siguientes:
La clasificación de las memorias se hace principalmente atendiendo a su volatilidad:
Las memorias ROM se clasifican a su vez en función del proceso de grabado:
Las memorias RAM se clasifican a su vez en función de la celda de almacenamiento que tengan:
Un periférico es un dispositivo electrónico que se conecta a un sistema microprogramable, pero no forma parte del núcleo básico del mismo e intercambia datos con él. La comunicación entre el procesador y el periférico se regula por dos métodos principalmente: polling, en el que el procesador revisa ordenadamente los periféricos para atenderlos secuencialmente y el de interrupciones, en el que el periférico solicita una interrupción al procesador mediante una llamada en la que pide ser atendido por éste.
En el caso de un ordenador todos tenemos claro cuáles son los periféricos, el teclado, el ratón, el monitor, el disco duro. Estos periféricos suelen ir conectados a los diferentes puertos de los ordenadores.
Los puertos son canales de comunicación por los que el procesador se comunica con los periféricos. Los periféricos son habilitados por el microprocesador mediante las señales de control, de manera que activan el puerto por el que circula la información correspondiente. Los puertos pueden ser de entrada y/o de salida y están mapeados con una dirección determinada.
La clasificación de los periféricos se realiza atendiendo a su flujo de datos:
Interfaz a través del cual pueden entrar y salir datos de un equipo microprocesador.
Lenguajes de programación sirven para codificar la información que se introduce a un sistema microprogramable, es necesario un método o lenguaje que sea fácilmente comprensible tanto para el sistema como para el usuario/a que realiza la programación.
Los lenguajes de programación se clasifican en función de la proximidad al lenguaje del sistema en los siguientes tipos:
El lenguaje ensamblador, simbólico o nemotécnico, emplea nemónicos, que son grupos de caracteres que simbolizan a las diferentes órdenes o tareas a realizar en cada instrucción. Los nemónicos se corresponden con las iniciales del nombre de la instrucción en inglés. Este tipo de lenguaje es utilizado en sistemas microprogramables destinados al mundo de la automatización y la robótica.
La sintaxis de un lenguaje ensamblador incluye unos campos determinados, cada uno con una función en los campos de instrucción:
También se suele representar un programa como un diagrama de flujo en el que se expresa de manera gráfica la resolución de un problema mediante un programa, para ello se utilizan una serie de símbolos normalizados.
En el siguiente enlace puedes ver los lenguajes de programación:
Recurso (1) | Datos del recurso (1) | Recurso (2) | Datos del recurso (2) |
---|---|---|---|
Autoría: Glenn Fleishman. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/6/6a/IPad-02.jpg |
![]() |
Autoría: Zephyris. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/5/5c/Microchips.jpg |
|
![]() |
Autoría: JAVITON 21. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/9/97/Logic_probe.jpg |
![]() |
Autoría: I.T.E. Licencia: Uso Educativo no comercial. Procedencia: http://recursostic.educacion.es/bancoimagenes/web/index.php?p=ampliada&id=123398&pos |
![]() |
Autoría: Whiteknight. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/1/1c/HP_1650B_Logic_Analyzer.jpg |
![]() |
Autoría: Mhinner. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/b/b8/JTAG_LOGIC_ANALYZER.png |
![]() |
Autoría: MRB. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/7/77/SR_FF_timing_diagram.png |
![]() |
Autoría: Sm Churchill. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/c/cc/Samsung-galaxy-tab.jpg |
![]() |
Autoría: Audriusa. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/2/23/Phoenix_bios.jpg |
![]() |
Autoría: Dodo. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/b/b5/MC68HC11_microcontroller.jpg |
![]() |
Autoría: Chrinhern. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/8/80/Square_array_of_mosfet_cells_write.png |
![]() |
Autoría: Soulreaper. Licencia: Creative Commons. Procedencia: http://upload.wikimedia.org/wikipedia/commons/c/c5/Red_computer_mouse.jpg |