5. Circuitos lógicos y sistemas microprogramables.
1.- Circuitos lógicos digitales y sistemas microprogramables.
Caso práctico
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:
- Buena inmunidad al ruido.
- Gran densidad de integración.
- Gran facilidad de acoplamiento entre bloques y gran fiabilidad.
- Facilidad de procesamiento de las señales.
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.1.1.- Sistemas de Numeración. Sistema binario.
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.
Ejercicio resuelto
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).
Autoevaluación
1.2.- Sistemas de Numeración octal y hexadecimal.
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.
Ejercicio resuelto
1.3.- Función lógica. Algebra de Boole.
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:
- La propiedad conmutativa:
- La propiedad asociativa:
- La propiedad distributiva:
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:
- 1ª Ley de De Morgan:
- 2ª Ley de Morgan:
Ejercicio resuelto
Autoevaluación
1.4.- Tabla de verdad de una función lógica. Puertas lógicas (I).
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:
- Puertas lógicas OR, realizan la suma lógica, su tabla de verdad y función y representación es el siguiente:
- Puertas lógicas AND realizan el producto lógico, los inversores complementan el valor de una variable, su tabla de verdad y función y representación es el siguiente:
- Puertas lógicas NOT representan la negación lógica, su tabla de verdad y función y representación es el siguiente:
1.4.1.- Tabla de verdad de una función lógica. Puertas lógicas (II).
Otras puertas lógicas importantes que debes conocer son:
- Puertas lógicas NOR, representa la suma negada su tabla de verdad y función y representación es el siguiente:
- Puertas lógicas NAND, representa la multiplicación negada su tabla de verdad y función y representación es el siguiente:
- Puertas lógicas OR exclusiva, realizan la operación OR exclusiva que consiste en que la salida es 1 sólo cuando una de las dos variables es 1, su tabla de verdad y función y representación es el siguiente:
Autoevaluación
1.5.- Implementación de funciones con puertas lógicas.
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:
- Como suma de productos de las variables (minterm): Para obtener una expresión canónica con minterm se deben tomar todas las combinaciones posibles de las variables donde la función tiene valor 1, asignando el nombre de la variable cuando vale 1 y el nombre de la variable negada cuando ésta vale 0. Se multiplican las variables de una combinación y se suman todos los minterm que hacen una la salida.
- Como producto de sumas de las variables (maxterm). Para obtener la expresión canónica con Maxterm se toman todas las combinaciones posibles que hacen 0 la salida, asignando el nombre de la variable cuando esta vale 0 y el nombre de la variable negada cuando esta vale 1 sumando las variables de la combinación. Para formar la expresión completa se multiplican todos los términos obtenidos.
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.
1.6.- Método de simplificación de funciones 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:
- Simplificación mediante el álgebra de Boole: consiste en aplicar los teoremas vistos anteriormente para conseguir eliminar variables reduciendo así la función hasta encontrar la función mínima que no puede simplificarse más. Por ejemplo:
- Método de simplificación gráfico de Karnaugh: consiste en la simplificación utilizando los mapas de Karnaugh que son representaciones gráficas de la tabla de verdad.
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.
Autoevaluación
1.7.- Aplicación del método de simplificación de Karnaugh.
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.
Para saber más
Aplicación para realizar simplificaciones de Karnaugh.
1.8.- Circuitos integrados con puertas lógicas (I).
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:
- Circuito 7432: Tiene cuatro puertas OR de dos entradas cada una:
- Circuito 7404: Se trata de un circuito integrado con inversores de negación, tiene seis puertas NOT de una entrada cada una de ellas :
- Circuito 7408: Tiene cuatro puertas AND con dos entradas :
Autoevaluación
1.8.1.- Circuitos integrados con puertas lógicas (II).
1.9.- Familias lógicas.
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í:
- Los valores digitales que utilizan: son los márgenes de tensiones que representan los valores 0 y 1.
- El retardo de propagación: es el tiempo que la señal de respuesta tarda en aparecer a la salida del circuito integrado.
- Consumo: es la disipación de potencia. Conviene que sea un valor pequeño por seguridad del componente.
- Inmunidad al ruido: es la capacidad del circuito para tolerar el ruido sin que se vean afectados los valores lógicos de la salida. El ruido se produce cuando aparecen variaciones indeseables en la tensión de las puertas lógicas.
- Capacidad de carga: se denomina fan-out y es el número máximo de puertas que pueden conectarse a la salida de otra puerta de la misma familia lógica.
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:
- Familia lógica Transistor Resistencia (RTL).
- Familia lógica Diodo-Transistor (DTL).
- Familia lógica Emisor acoplado (ECL).
- Familia lógica bipolar de semiconductor de óxido metal complementario (BiCMOS).
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.
Autoevaluación
1.10.- Instrumentos de medida.
Los instrumentos de medida a utilizar en electrónica digital son:
- Inyector lógico: es un instrumento que introduce un tren de impulsos a la entrada de una patilla del circuito integrado para comprobar su funcionamiento. De forma que al introducir este tren de impulsos comprobemos que señal se produce a la salida. Normalmente se suele utilizar combinado con una sonda lógica, que será la que se encargará de detectar la salida.
- Sonda lógica: es un instrumento de medida digital que comprueba el nivel lógico a la entrada o salida de un circuito digital. Dispone de unos diodos led que indican según el color que se encienda si hay un nivel alto o un nivel bajo, incluso informan de la excesiva ondulación de la fuente. Son muy útiles para la detección de averías.
- Pinza lógica: es un instrumento similar a la sonda lógica pero con la que se pueden visualizar la señal de varias patillas simultáneamente.
- Analizador lógico: instrumento de medida similar al osciloscopio que recoge los datos de un circuito digital y los muestra en una pantalla como puedes ver en la imagen inferior. Normalmente se puede visualizar simultáneamente varios canales.
2.- Circuitos combinacionales.
Caso práctico
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:
- Multiplexores: circuitos de varias entradas y una salida capaces de seleccionar una de las entradas y dejarla pasar a la salida, en función del estado de unas líneas de selección.
- Demultiplexores: Circuitos de una entrada y varias salidas. Se utilizan para realizar el proceso inverso a un multiplexor, en este caso envían la única entrada a la salida que se seleccione con las entradas de control.
- Decodificadores: son circuitos que reciben un código a la entrada y lo decodifican activando una determinada salida.
- Codificadores: realizan la función inversa a los decodificadores, generan un determinado código a la salida cuando se introduce un determinado código a la entrada.
- Comparadores: son circuitos que comparan dos números binarios y a la salida se nos indica si son iguales o cual es menor y mayor.
- Sumadores/restadores: son circuitos que permiten realizar operaciones aritméticas como sumas y restas de diverso tipo.
2.1.- Multiplexores.
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.
Autoevaluación
2.2.- Demultiplexores.
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.
Para saber más
En el siguiente enlace puedes encontrar mucha información sobre la serie 74xx.
2.3.- Decodificadores.
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.
Autoevaluación
2.4.- El decodificador como generador de funciones lógicas.
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.
2.5.- El codificador.
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.
Autoevaluación
2.6.- El comparador.
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 saber más
Para que veas cómo se interconectan dos comparadores para ampliar el tamaño de los números binarios, consulta este vídeo.
2.7.- El sumador binario.
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.
Para saber más
Si quieres consultar las características del sumador comercial 74LS83 visita este enlace.
Autoevaluación
3.- Circuitos secuenciales.
Caso práctico
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.
3.1.- Introducción al circuito secuencial.
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:
- X(t):Entrada actual.
- Z(t):Salida actual.
- S(t): salida actual (Realimentada).
- S(t+1): Salida en un instante posterior.
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:
- Circuitos secuenciales síncronos: pueden cambiar de estado en cualquier instante de tiempo en función de los cambios de las señales de entrada.
- Circuitos secuenciales asíncronos: sólo pueden cambiar de estado en determinados instantes de tiempo, es decir están sincronizados con una señal de reloj (CLK). El sistema sólo interpreta las entradas en los instantes de sincronismo.
El tipo de sincronismo que utilizan los circuitos secuenciales puede ser:
- Sincronismo por nivel (alto o bajo): el sistema toma en cuenta el valor de las entradas siempre y cuando el reloj esté activo (alto o bajo).
- Sincronismo por flanco (de subida o de bajada): el sistema toma en cuenta el valor de las entradas sólo en el momento del flanco activo (subida o bajada).
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.
3.2.- Biestables.
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:
- Tiempo de propagación o retardo (delay time): tiempo necesario para que el efecto de un cambio en la entrada se haga estable en la salida.
- Tiempo de establecimiento (setup time): Tiempo mínimo anterior al flanco de disparo en que las entradas no deben variar (tiempo necesario para que el biestable asiente las entradas antes del flanco).
- Tiempo de mantenimiento (hold time): Es el tiempo máximo posterior al flanco de disparo en que las entradas no deben variar (tiempo necesario para que el biestable procese las entradas).
- Anchura del reloj tWH y tWL: Duración mínima necesaria para los pulsos de nivel alto y bajo respectivamente.
- Frecuencia máxima fmax: Máxima frecuencia permitida al reloj del biestable. Si se supera, el biestable puede funcionar mal.
- Tiempo de preset y clear: Es el tiempo mínimo que debe durar el nivel activo de las entradas asíncronas de puesta a 1 y puesta a 0 para que el biestable tome el valor pertinente. Este tiempo suele estar incluido en tpLH (el tiempo para una transición de bajo a alto) y tpHL (el tiempo para una transición de alto abajo) respectivamente.
En esta imagen puedes comprobar el significado de cada uno de los tiempos.
Autoevaluación
3.3.- Biestable R-S.
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.
3.4.- Biestable J-K.
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.
Autoevaluación
3.5.- Biestable D y T.
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.
3.6.- Registros.
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:
- Registros de almacenamiento: son registros implementados con biestables tipo D, cuya función es almacenar la información que se les suministra en la entrada.
- Registros de desplazamiento: son registros en los que la información puede ser transferida de un biestable a su adyacente. Hay varios tipos de registros de desplazamiento que se clasifican según el mecanismo de entrada y de salida:
- Entrada paralelo: se puede modificar el valor de todos los biestables a la vez (igual que en un registro tipo D).
- Entrada serie: sólo hay una entrada conectada a un biestable y el dato se va desplazando de un biestable a otro de manera secuencial.
- Salida paralelo: todos las salidas de los biestables son accesibles.
- Salida serie: sólo la salida del último biestable es accesible. Los datos van saliendo uno detrás de otro, mediante desplazamientos sucesivos.
Atendiendo al sentido del desplazamiento se pueden clasificar en:
- Desplazamiento sólo hacia la derecha / izquierda.
- Desplazamiento en ambos sentidos, no simultáneo.
- Rotación hacia la izquierda / derecha.
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.
Para saber más
Si quieres consultar las características del registro de desplazamiento universal 74LS194.
Autoevaluación
3.7.- Contadores.
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.
4.- Circuitos microprogramables.
Caso práctico
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.
4.1.- Introducción a los sistemas mircoprogramables.
En la lógica digital podemos diferenciar dos tipos de circuitos o de lógicas:
- La lógica cableada: circuitos diseñados para ejecutar una única función. En este grupo están los circuitos combinacionales y los secuenciales. El problema que se plantea es que al complicar la función que han de realizar se multiplica el hardware y el tiempo necesario para su implementación.
- La lógica programada: son circuitos con una misma estructura que se programan para realizar diferentes funciones. Con este tipo de circuitos se resuelve el problema que veíamos anteriormente sobre la complejidad del hardware al implementar funciones más complejas ya que el hardware siempre será el mismo.
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:
- Aplicaciones informáticas: los ordenadores personales y sus periféricos son sistemas microprogramables en los que el usuario introduce el programa que quiere utilizar en cada momento.
- Reproductores de vídeo y de música: DVD, MP3, etc.
- Sistemas telefonía móvil, Internet, redes locales.
- Procesos industriales: en los que funciona autómatas programables utilizados para controlar robots o cadenas de producción.
- En automoción, los sistemas de control de consumo, de estabilidad, de seguridad, la climatización, etc.
- En los aparatos electrodomésticos: hornos, lavadoras, frigoríficos, lavavajillas, etc.
Todo sistema microprogramable está compuesto por tres componentes:
- El hardware: es el conjunto de circuitos electrónicos que forman el sistema microprogramable, es decir es la parte física del sistema.
- El software: es el conjunto de programas y aplicaciones formado por instrucciones y rutinas que se utilizan para programar sistemas microprogramables. También se denomina software al conjunto de lenguajes empleados para elaborar los programas.
- El firmware: es un software grabado en la estructura electrónica del sistema microprogramable que no es modificable por el usuario. En los ordenadores personales, la BIOS utiliza firmware y contiene un grupo de programas que sirven de intermediario entre el software y el hardware.
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.
4.2.- Estructura de un sistema microprogramable.
Todos los sistemas microprogramables tiene la siguiente estructura que consta de los siguientes elementos:
- Reloj: es un generador de señal cuadrada que sincroniza todo el sistema.
- La CPU es la parte fundamental del sistema microprogramable, ya que es donde se realiza la interpretación y ejecución de las instrucciones, se generan todas las órdenes de control para gobernar todo el sistema y se realizan las operaciones aritmético-lógicas. Para ello se utilizarán los datos procedentes de la memoria interna o de los registros internos. La CPU está compuesta por la ALU, los registros y la Unidad de control. La ALU realiza las operaciones aritméticas fundamentales como el producto lógico, la suma lógica, resta. También efectúa las operaciones lógicas como la operación AND, OR, OR exclusiva, etc. La Unidad de Control es el bloque más importante pues es el que da las órdenes a todo el circuito. En ella se produce la decodificación y la ejecución de las instrucciones del programa. Las instrucciones se almacenan en los registros de datos y pasan a la ALU y a la Unidad de Control por los buses del sistema. La estructura de la CPU la puedes ver en la siguiente imagen.
- La memoria interna: es donde se almacenan los datos y los programas que ha de interpretar el sistema.
- La Unidad de E/S: es el bloque que permite la comunicación del sistema microprogramable con el exterior. Su función fundamental es la de adaptar las diferentes velocidades y códigos utilizados por los elementos externos del sistema y el interior.
- Los periféricos: son los dispositivos que realizan el trabajo desde el exterior del sistema. Estos periféricos pueden ser de entrada o de salida. Los más conocidos son: el ratón, la impresora, el teclado.
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.
Autoevaluación
4.3.- Clasificación de los sistemas microprogramables.
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:
- Bus de direcciones: canal por donde circula la dirección en la memoria donde se encuentran los datos.
- Bus de datos: canal por el que circulan los datos.
- Bus de control: canal por donde circulan las señales de control que manejan el sistema.
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:
- ASIC: son circuitos específicos para una aplicación. Están diseñados a medida y sólo sirven para esa aplicación.
- PLD: son circuitos integrados cuya funcionalidad puede ser programada por el usuario pero que internamente no tiene la estructura de microprocesadores y microcontroladores, pues no están basados en una CPU.
Es una memoria de sólo lectura.
Es una memoria de acceso aleatorio, de lectura y escritura.
4.4.- Microprocesador. Arquitectura.
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.
- Clasificación de la arquitectura según el hardware: Arquitectura Von Newman, segmentada y Harvard.
- Clasificación de la arquitectura según el software: CISC, RISC.
- La arquitectura Von Newman se trata de una máquina secuencial que ejecuta una sola operación a la vez, es lenta, comparte la memoria de datos y direcciones y ejecuta software CISC.
- La arquitectura segmentada se diferencia de la anterior en que es más rápida pues puede realizar más de una operación simultáneamente y comparte software CISC y RISC.
- La arquitectura Harvard: separa la memoria de datos, direcciones y control, lo cual permite leer las instrucciones a mayor velocidad. Se combina con software RISC.
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:
- La memoria principal: compuesta por un conjunto de celdas de igual tamaño. Estas celdas se seleccionan mediante una dirección determinada que se suele expresar en hexadecimal. En la celda se puede almacenar valores y luego recuperarlos, estos valores serán los datos y los códigos de las instrucciones con los que luego se ejecutarán éstas.
- La CPU estará compuesta por la ALU, los registros y la Unidad de Control. La Unidad de Control se encarga de ejecutar las instrucciones que le llegan desde la memoria a través de los correspondientes registros. En la unidad de control se encuentra un decodificador de instrucciones que selecciona las posiciones donde se encuentra la instrucción. También habrá un secuenciador que genere las señales de control necesarias para el proceso, indicando en qué momento actúa cada dispositivo. En la Unidad de Control también encontramos un registro llamado contador de programa que indica la posición de memoria donde se encuentra la próxima instrucción a ejecutar.
Las fases de ejecución de las instrucciones la CPU es ésta:
- Búsqueda de ejecución de las instrucciones de máquina. La unidad de control envía a la memoria principal la dirección de la instrucción a ejecutar (contenido del Contador de Programa), activando las señales de control necesarias para obtener la mencionada instrucción. Se lleva al registro de instrucciones de la Unidad de Control.
- La unidad de control recibe la instrucción y la decodifica activando las señales de control y las señales del secuenciador.
- Búsqueda de operandos y lectura de éstos activando las correspondientes señales de control.
- Ejecución de la instrucción, bajo las directrices de la unidad de control, se realiza la operación en la ALU sobre los operandos y se guarda el resultado en memoria o en un registro.
- Se incrementa el contador de programa y se pasa a la siguiente instrucción.
Autoevaluación
4.5.- Microcontroladores.
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:
- Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo.
- Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado número de elementos disminuye el riesgo de averías y se precisan menos ajustes.
- Reducción del tamaño en el producto acabado: La integración del microcontrolador en un circuito integrado disminuye el volumen, la mano de obra y los stocks.
- Mayor flexibilidad: las características de control están programadas por lo que su modificación sólo necesita cambios en el programa de instrucciones.
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:
- Intel fabrica el 8051 basado en la arquitectura Von Newman y conjunto de instrucciones CISC.
- Microchip: una de las familias más utilizadas últimamente son la familia de microcontroladores PIC. Su arquitectura es Harvard. Uno de los más conocidos es el PIC 16F84 de 8 bits utilizado en proyectos simples.
En el siguiente enlace podrás conocer más características de los PIC.
Para saber más
Características de los microcontroladores PIC.
4.6.- Memorias.
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 capacidad: es la cantidad de información que pueden almacenar. La unidad básica es el byte, pero lo normal son sus múltiplos Mbyte o Gbyte, equivalentes a 1024 Kbyte y a 1024 Mbyte respectivamente.
- La volatilidad: es la propiedad que tienen las memorias de retener o no la información al desconectarse de la fuente de alimentación.
- Tiempo de acceso: tiempo transcurrido desde que se solicita acceso a la memoria hasta que esta lo da. Puede ser de lectura o de escritura, dependiendo de la operación que se quiera hacer en la memoria.
- Modo de acceso: es el modo en el que se accede a la información de la memoria. Puede ser aleatorio, en este caso el tiempo de acceso es independiente de la posición del dato en la memoria; y puede ser secuencial, en el que el acceso depende de la posición del dato como en el caso de los registros.
La clasificación de las memorias se hace principalmente atendiendo a su volatilidad:
- ROM: memoria que conserva los datos almacenados incluso cuando se desconecta la alimentación.
- RAM: son memorias volátiles de acceso aleatorio, en las que se puede leer y escribir pero en las que se pierde la información al desconectar la alimentación.
Las memorias ROM se clasifican a su vez en función del proceso de grabado:
- Memoria ROM: los datos se graban en el proceso de fabricación y estos no se pueden borrar.
- Memorias PROM: los datos pueden ser grabados por el usuario una sola vez mediante un programador PROM.
- Memoria EPROM: se pueden borrar y volver a programar mediante un grabador PROM. El borrado se realiza con radiación ultravioleta.
- Memoria EEPROM: se pueden borrar y reprogramar eléctricamente. Funciona mediante fusibles.
- Memoria Flash: Funciona igual que la EEPROM pero a una velocidad de operación y programación mayor.
Las memorias RAM se clasifican a su vez en función de la celda de almacenamiento que tengan:
- Memorias SRAM: las celdas de alimentación están compuestas de biestables que mantienen la información mientras no se elimine la alimentación.
- Memorias DRAM: las celdas de almacenamiento son pequeños condensadores que almacenan los estados mediante la carga del condensador. El problema de estas es que se van descargando por corrientes de fugas y pierden la información a no ser que se les someta a un proceso de refresco que consiste en una reescritura cada cierto tiempo. El tiempo que se tarda en esta reescritura se denomina tiempo de refresco.
Autoevaluación
4.7.- Periféricos.
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:
- Periféricos de entrada: son los que canalizan la entrada de datos al procesador. Algunos ejemplos: Ratón, teclado, escáner, micrófono etc.
- Los periféricos de salida: son los que canalizan la salida de datos del microprocesador. Ejemplos: monitor, impresora, pantalla, altavoz, tarjeta gráfica.
- Los periféricos de comunicaciones: son los que permiten comunicación entre la entrada y la salida. Algunos ejemplos son: el modem, la tarjeta de comunicaciones.
- Los periféricos de almacenamiento: son los que permiten almacenar datos. Ejemplos: grabadora, disco duro externo.
Interfaz a través del cual pueden entrar y salir datos de un equipo microprocesador.
4.8.- Lenguajes de programación.
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:
- Lenguaje máquina (denominada de bajo nivel) es el lenguaje de 0 y 1 que entiende el microprocesador.
- Lenguaje ensamblador (denominado simbólico) es el intermediario entre el lenguaje de máquina y el lenguaje de alto nivel.
- Lenguaje de alto nivel es el lenguaje que utilizan los programadores con términos comunes a la lengua común.
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:
- La etiqueta identifica la dirección de memoria donde se encuentra la instrucción.
- El nemotécnico expresa el tipo de instrucción que se va a realizar.
- Operando: es el campo donde se almacenan los operandos de la instrucción correspondiente.
- Comentarios: son aclaraciones de cada una de las instrucciones del programa.
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.
Para saber más
En el siguiente enlace puedes ver los lenguajes de programación:
Autoevaluación
Anexo.- Licencias de recursos.
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 |