Centro Salesiano “Manuel Lora Tamayo” SISTEMAS DE CONTROL SECUENCIAL (Sistemas Digitales y Automática) PROFESOR: JUAN P. NARVÁEZ Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- INDICE Cap 1.- Introducción ………………………………………………………………………… Cap 2.- Sistemas de representación. Familias lógicas Cap 3.- Algebra de Boole ……………………………….. 3.7.- ………………………………………………………………………... 30.- Cap 4.- Circuitos combinacionales ……………………………………………………………………. 46.- Cap 5.- Circuitos MSI (1) Multiplexores y demultiplexores……………………………….. 71.- Cap 6.- Circuitos MSI (2) Codificadores, decodificadores y comparadores ……….. 82.- Cap 7.- Circuitos MSI (3) Circuitos aritméticos …………………………………………………. 93.- Cap 8.- Biestables …………………………………………………………………………… 110.- Cap 9.- Registros …………………………………………………………………………… 118.- Cap 10.-Circuitos digitales auxiliares …………………………………………………………………… 121.- Cap 11.-Autómatas finitos ………………………………………………………………………….. 129.- Cap 12.-Sistemas microprogramables…………………………………………………………………. 146.- Cap 13.-Convertidores y motores paso a paso…………………………………………………… 177.- Cap 14.-Circuitos secuenciales asíncronos …………………………………………………………… 187.- 2 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 1 Introducción Antes de entrar en los detalles de esta asignatura, es interesante tener una perspectiva mayor, para entender el contexto de esta asignatura, en qué fundamentos se basa y cómo se relaciona con el resto de asignaturas. Electrónica Esta asignatura trata sobre Electrónica. La Electrónica estudia el comportamiento de los electrones en diversos medios, y se aplican estos conocimientos para conseguir que “los electrones hagan lo que nosotros queramos”. Así por ejemplo, si construimos un circuito electrónico constituido por una pequeña bombilla, una pila y un interruptor y lo conectamos, lograremos que los electrones circulen por todo el circuito y que al atravesar la bombilla parte de ellos se conviertan en luz1. ¡¡Hemos conseguido que los electrones nos obedezcan!! Para “dominar” a los electrones, es necesario crear circuitos electrónicos, formados por materiales conductores (cables) que unen todos los componentes del circuito, de la misma manera que hay tuberías de agua que recorren nuestras casas, uniendo diferentes elementos: grifos, llaves de paso, el contador del agua... El objetivo de la electrónica aplicada es construir circuitos electrónicos para que los electrones se comporten de la manera que a nosotros nos interese. Tipos de electrónica Electrónica Analógica Uno de los grandes retos del hombre es el de manipular, almacenar, recuperar y transportar la información que tenemos del mundo en el que vivimos, lo que nos permite ir progresando poco a poco, cada vez con más avances tecnológicos que facilitan nuestra vida y que nos permiten encontrar respuestas a preguntas que antes no se podían responder. Ahora estamos viviendo un momento en el que esa capacidad de manipulación, almacenamiento, recuperación y transporte de la información está creciendo exponencialmente, lo que nos convierte en lo que los sociólogos llaman la “Sociedad de la información”, y que tendrá (de hecho ya tiene) grandes implicaciones sociales. Con la aparición de la electrónica las posibilidades para desarrollar esas capacidades aumentaron considerablemente. Para comprender los principios de la electrónica analógica, nos centraremos en un ejemplo concreto: la manipulación, almacenamiento, recuperación y transporte de una voz humana. Cuando hablamos, nuestras cuerdas vocales vibran de una determinada manera, lo que origina que las moléculas del aire también lo hagan, chocando unas con otras y propagando esta vibración. Si no existiesen esas moléculas, como en el espacio, el sonido no se podría propagar. Si medimos la vibración de una de estas moléculas, durante un intervalo corto de tiempo, y la pintamos, podría tener una pinta como la que se muestra en la figura 1.2. A esta vibración la llamaremos señal acústica. Cuando esta señal acústica incide sobre un micrófono, aparece una señal eléctrica que tiene una forma análoga a la de la señal acústica. Las vibraciones de las moléculas se han convertido en variaciones del voltaje, que al final se traducen en vibraciones de los electrones. Es decir, que con los micrófonos lo que conseguimos es que los electrones vibren de una manera análoga a cómo lo hacen las moléculas del aire. 3 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Esta nueva señal eléctrica que aparece, se denomina señal analógica, puesto que es análoga a la señal acústica original. De esta manera, con señales eléctricas conseguimos imitar las señales del mundo real. Y lo que es más interesante, conseguimos que la información que se encuentra en la vibración de las moléculas del aire, pase a los electrones. Cuanto mejor sea el micrófono, más se parecerá la señal eléctrica a la acústica, y la información se habrá “copiado” con más fidelidad. La electrónica analógica trata con este tipo de señales, análogas a las que hay en el mundo real, modificando sus características (ej. amplificándola, atenuándola, filtrándola...). Fijémonos en el esquema. La persona que habla emite una señal acústica que es convertida en una señal electrónica analógica por el micrófono. Estas dos señales son Muy parecidas, pero la que sale del micrófono es más pequeña. Por ello se introduce en un circuito electrónico, llamado amplificador, que la “agranda” (la ha manipulado). A continuación esta señal se puede registrar en una cinta magnética de audio. Lo que se graba es una “copia” de la señal, pero ahora convertida a señal magnética. En cualquier momento la señal se puede volver a recuperar, convirtiéndose de señal magnética nuevamente a señal eléctrica. Una parte del sistema se ha llamado “sistema de transmisión-recepción” indicándose con esto que la señal eléctrica se puede transportar (Por ejemplo el sistema telefónico). Finalmente se introduce por un altavoz que realiza la conversión inversa: pasar de una señal eléctrica a una acústica que se puede escuchar. 4 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Los problemas de los sistemas analógicos son: 1. La información está ligada a la forma de la onda. Si esta se degrada, se pierde información 2. Cada tipo de señal analógica necesita de unos circuitos electrónicos particulares (No es lo mismo un sistema electrónico para audio que para vídeo, puesto que las señales tienen características completamente diferentes). En las señales analógicas, la información se encuentra en la forma de la onda Electrónica digital Existe otra manera de modificar, almacenar, recuperar y transportar las señales, solucionándolos problemas anteriores. Es un enfoque completamente diferente, que se basa en convertir las señales en números. Existe un teorema matemático (teorema de muestreo de Nyquist) que nos garantiza que cualquier señal se puede representar mediante números, y que con estos números se puede reconstruirla señal original. De esta manera, una señal digital, es una señal que está descrita por números. Es un conjunto de números. Y la electrónica digital es la que trabaja con señales digitales, o sea, con números. Son los números los que se manipulan, almacenan, recuperan y transportan. Reflexionemos un poco. Estamos acostumbrados a escuchar el término televisión digital, o radio digital. ¿Qué significa esto? Que la información que nos envían está en los propios números y no en la forma que tenga la señal que recibidos. ¿Y qué es un sistema digital?, un sistema que trabaja con números. ¿Y un circuito digital? Un circuito electrónico que trabaja con números. ¡¡Y sólo con números!! Si nos fijamos, con un ordenador, que es un sistema digital, podemos escuchar música o ver películas. La información que está almacenada en el disco duro son números. En la figura 1.5 se muestra un sistema digital. La señal acústica se convierte en una señal eléctrica, y a través de un conversor analógico-digital se transforma en números, que son procesados por un circuito digital y finalmente convertidos de nuevo en una señal electrónica, a través de un conversor digital-analógico, que al atravesar el altavoz se convierte en una señal acústica. El utilizar circuitos y sistemas que trabajen sólo con números tiene una ventaja muy importante: se pueden realizar manipulaciones con independencia de la señal que se esté introduciendo: datos, voz, vídeo... Un ejemplo muy claro es Internet. Internet es una red digital, especializada en la transmisión de números. Y esos números pueden ser datos, 5 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------canciones, vídeos, programas, etc... La red no sabe qué tipo de señal transporta, “sólo ve números”. La electrónica digital trabaja con números. La información está en los números y no en la forma de señal. Cualquier señal siempre se puede convertir a números y recuperarse posteriormente. Circuitos y sistemas digitales Ya podemos entender de lo que trata esta asignatura. En ella estudiaremos y diseñaremos circuitos digitales, que manipulan números. Existen unos números en la entrada y nuestro circuito generará otros números de salida (figura 1.6). Algunos números se considerarán como datos y otros se usarán para el control del propio circuito. No nos preocuparemos de dónde vienen estos números, pero ya sabemos que o bien vendrán de otro sistema digital, o bien de una señal analógica que se ha convertido a números (se ha digitalizado). Un circuito digital realiza manipulaciones sobre los números de entrada y genera unos números de salida. 6 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 2 SISTEMAS DE REPRESENTACIÓN Conceptos El concepto de número todos lo tenemos, pero un mismo número se puede representar de muchas maneras. Por ejemplo, el número 10, lo representamos mediante dos dígitos, el ’1’ y el ’0’. Si utilizásemos numeración romana, este mismo número lo representaríamos sólo con un único dígito ’X’. Pero está claro que ambas representaciones, “10” y “X” hacen referencia al mismo número diez. Nosotros estamos acostumbrados a representar los números utilizando diez dígitos: ’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’. Por eso nuestro sistema de representación se denomina Sistema decimal o sistema en base diez. Analicemos con un poco más de detalle el sistema decimal, que es el que manejamos habitualmente. Vamos a representar el número “tres mil doscientos ochenta y uno”: 3281 Observamos lo siguiente: Está constituido por cuatro dígitos: ’3’,’2’,’8’ y ’1’. El orden en el que están colocados es muy importante y si se modifica, se está representando otro número. Cuanto más a la izquierda está un dígito, más importante es. Supongamos el número 3281 El dígito ’3’ es más importante que todos los que tiene a su derecha. Tiene un peso mayor que el resto de dígitos. De hecho, este dígito ’3’ está representando al número tres mil. El dígito ’2’ por estar en tercera posición comenzado desde la derecha, representa el número doscientos, el ’8’ al ochenta y el ’1’ al uno. Podemos descomponer el número de la siguiente manera: 3281 = 3000 + 200 + 80 + 1 = 3 1000 + 2 100 + 8 10 + 1 = 3 +2 +8 +1 Observamos que cada dígito está multiplicando una potencia de 10. Cuanto más a la izquierda se sitúe el dígito, mayor será la potencia de diez por la que se multiplica. En la figura 2.2 se muestra el número 3281 descompuesto en dígitos y pesos, y se indica cuál es el dígito de mayor peso y cuál es el de menor. _ ____ _ ____ _ ____ ___ Este sistema de representación también se llama sistema en base diez porque los pesos de los dígitos son potencias de 10: El dígito de más de la derecha tiene un peso de 0 los siguientes tienen pesos de 1,2, 3… 7 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Nosotros representamos los números en el sistema decimal, que consta de diez dígitos Diferentes, asignándoles un peso que es una potencia de diez y que será mayor cuanto más ala izquierda se encuentre el dígito. ¿Qué nos impide que utilicemos unos sistemas de representación en los que los pesos delos dígitos, o incluso los dígitos sean diferentes de los del sistema decimal? Nada. Por ejemplo, podemos emplear un sistema de representación octal (Base 8), que utiliza sólo ocho dígitos (0,1,2...7) para representar cualquier número y los pesos de los diferentes dígitos serán potencias de 8. En este sistema, si escribimos los dígitos 352 no se corresponden con el número “trescientos cincuenta y dos” . Para calcular cuál es el número que representa hay que multiplicar cada dígito por su correspondiente peso, obteniendo el número equivalente en el sistema decimal. 352 = 3 64 + 5 8 + 2 = 248 El número 352 en representación octal es equivalente al número 248 del sistema decimal. En el sistema octal, los dígitos tienen pesos que son potencias de 8, en lugar de potencias de 10 como en el sistema decimal. Para evitar confusiones cuando se trabaja con sistemas de representación diferentes se escribe el número con el subíndice correspondiente que indica la base. El subíndice 8 indica que el número está representado en un sistema octal y con el subíndice 10 se indica que lo está en un sistema decimal. ______ ____ _ _ _ Sistema octal (Base 8) Ya lo hemos visto en el apartado de introducción. Utiliza ocho dígitos: 0,1,2,3,4,5,6 y 7 y los pesos son potencias de 8. No lo utilizaremos en esta asignatura. Sistema binario (Base 2) ¿Se podrían utilizar sólo dos dígitos para representar cualquier número? Si, se denomina sistema binario. Este sistema de representación sólo utiliza los dígitos 0 y 1 para representar cualquier número. Fijémonos en lo interesante que resulta esto, ¡¡¡sólo con dos dígitos podemos representar cualquiera de los infinitos números!!! En el sistema binario los pesos de estos dígitos son potencias de 2. Veamos un ejemplo del número binario 1 0 1 0 0 1 = 41 en decimal El sistema binario tiene mucha importancia y lo utilizaremos constantemente en esta asignatura. Fijémonos en lo que significa esta forma de representación. Utilizando sólo dos dígitos, es posible representar cualquiera de los infinitos números. En la tecnología actual disponemos de un elemento, llamado transistor, que se puede encontrar en dos estados diferentes, abierto o cerrado, (El nombre técnico para estos estados es Corte y Saturación, pero es más intuitivo pensar en un transistor como en un pequeño interruptor que puede estar abierto o cerrado) a los que le asociamos los dígitos 0 y 1. Todos los circuitos integrados o chips se basan en estos transistores y trabajan internamente en binario. Todas las operaciones se realizan utilizando este sistema de representación, por eso es muy importante que lo conozcamos, para entender cómo funcionan los microprocesadores y los chips por dentro. El sistema binario utiliza sólo dos dígitos diferentes para representar cualquier número. El peso de los dígitos es una potencia de 2. __ __ 8 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Sistema hexadecimal (Base 16) ¿Y sería posible utilizar más de 10 dígitos para representar los números?. También es posible. Ese es el caso del sistema hexadecimal, en el que se emplean 16 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F, donde las letras representan los números 10, 11, 12, 13, 14 y 15 respectivamente. Los pesos de los dígitos son potencias de 16. Por ejemplo, el número hexadecimal FE2A se puede descomponer igual que en el caso anterior, la única diferencia es que ahora la base es 16, luego el número decimal equivalente es 65066 Este sistema, como veremos más adelante, se emplea para escribir números binarios de una manera más compacta, dado que el paso de hexadecimal a binario y viceversa es inmediato. __ ___ ______ _ _____ _ _ _____ _ __ Tabla de conversión para los sistemas Decimal- binario- hexadecimal La tabla que se muestra a continuación representa las equivalencias entre diferentes números expresados en los sistemas decimal, binario, hexadecimal, Aiken, Exceso 3, y BCD Natural, que son los que más usaremos. a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hex 0 1 2 3 4 5 6 7 8 9 A B C D E F Aik 0 1 2 3 4 5 6 7 8 9 Exc3 0 1 2 3 4 5 6 7 8 9 - Nat 0 1 2 3 4 5 6 7 8 9 - Un dígito binario, que puede ser ’0’ ó ’1’, recibe el nombre de BIT, del término ingles Binary DigiT (dígito binario). Utilizaremos los bits para indicar el tamaño de las entradas y salidas de nuestros circuitos. Así por ejemplo podemos tener un circuito digital con 3 bits de entrada y 4 de salida. Los circuitos digitales sólo saben trabajar con números en binario, sin embargo a los humanos nos es más cómodo trabajar en decimal. Trabajar con número binarios puede parecer “poco intuitivo”. Vamos a ver cómo en determinadas ocasiones resulta muy intuitivo el trabajar con números binarios. Imaginemos que en una habitación hay 5 bombillas situadas en la misma línea, y que cada una de ellas puede estar encendida o apagada. ¿Cómo podríamos representar el estado de estas5 bombillas mediante números? 9 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Una manera muy intuitiva sería utilizar el sistema binario, en el que utilizaríamos el dígito 1 para indicar que la bombilla está encendida y el dígito 0 para indicar que está apagada. Así el número 01011 nos indica que la primera bombilla está apagada, La segunda encendida, la tercera apagada y las dos últimas encendidas, como se muestra en la figura 2.5. Esta forma de representar el estado de las bombillas es bastante intuitiva. Este es un ejemplo en el que se puede ver que “pensar” en binario resulta más fácil que hacerlo directamente en decimal Sistema binario y sistema hexadecimal El sistema hexadecimal se utiliza para representar números binarios de una forma más compacta. Cada dígito hexadecimal codifica 4 bits, de manera que un número hexadecimal de 4 bits permite representar un número binario de 16 bits. Veamos un ejemplo: 1011000111101101 = B1ED Podemos ver cómo es mucho más cómodo utilizar el número hexadecimal que el binario. Pero, ¿cómo se pasa de binario a hexadecimal o vice-versa? El proceso es muy sencillo. Lo único que hay que conocer es la tabla de equivalencia. El número en binario hay que dividirlo en grupos de 4 bits empezando desde la derecha. La conversión del número binario anterior se haría de la siguiente manera: Bits y electrónica Todavía nos queda una cosa por resolver. En la electrónica trabajamos con electrones, forzándolos a que hagan lo que nosotros queremos. En el caso de los circuitos digitales, lo que hacemos es operar con números. ¿Cómo conseguimos esto? ¿Cómo introducimos los números en los circuitos digitales? 10 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------La solución a esto es asignar un voltaje a cada uno de los dos estados de un bit. Lo normal, conocido como lógica TTL, es asignar el valor de 5 voltios al dígito ’1’ y 0 voltios al dígito ’0’. Esta asignación de valores depende de la tecnología empleada. En la figura se muestra un circuito digital que tiene un bit de entrada. Si queremos introducir un dígito ’1’ ponemos el interrupción en la posición A, de manera que por la entrada E llegan 5 voltios. Si queremos introducir un dígito ’0’ ponemos el interruptor en la posición B, por lo que llegan cero voltios. Otros sistemas de representación Para representar los números hemos visto que los circuitos digitales utilizan el sistema binario. Y hemos estado utilizando el sistema binario natural, en el que los bits tienen de peso Potencias de 2, que es lo más habitual. Sin embargo existen otros sistemas de representación que son binarios en el sentido de que sólo usan los dos dígitos ’0’ y ’1’, sin embargo tienen pesos diferentes. Algunos de estos sistemas, también conocidos como códigos son los siguientes: 1. Código BCD: Decimal Codificado en Binario. Es una manera de representar números Decimales en binario. A cada dígito decimal se le asignan 4 bits, correspondientes a su número binario natural. Así por ejemplo para representar número decimal 21 en BCD, utilizaremos en total 8 bits, 4 para uno de los dos dígitos: 21 = 0010 0001 Los primeros 4 bits representan al dígito ’2’ y los 4 siguientes al dígito ’1’. 2. Código AIKEN: Similar al BCD, pero con los pesos cambiados. Cada dígito decimal se representa mediante 4 bits, siendo los pesos de estos bits: 2, 4, 2 y 1. 3. Código GRAY: Son una familia de códigos que se caracterizan porque el paso de un número al siguiente implica que sólo se modifica un bit. Terminología BIT Dígito binario. Un bit puede tomar los valores 0 ó 1. Es la abreviatura de las palabras inglesas de Binary digiT. Byte Conjunto de 8 bits. El número más alto que se puede representar es el 11111111, que en decimal es 255. A continuación dibujamos una tabla que establece la relación existente entre los códigos más frecuentes. Esta tabla es la ideal para hacer los cambios necesarios para diseños de cambios de códigos o, para resolver circuitos combinacionales cuyos resultados estén codificados en un código determinado. Volvemos a poner la tabla de códigos, esta vez introducimos además el código Gray En el cuadernillo de prácticas se diseñan varios circuitos de este tipo. 11 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Bin Nat Aiken Ex 3 Hex Gray 0 0 0 0 0 1 1 1 1 1 2 2 2 2 3 3 3 3 0 3 2 4 4 4 1 4 7 5 5 2 5 6 6 6 3 6 4 7 7 4 7 5 8 8 5 8 15 9 9 6 9 14 10 7 A 12 11 5 8 B 13 12 6 9 C 8 13 7 D 9 14 8 E 11 15 9 F 10 Ejemplos de suma y resta en Hexadecimal D48AC79D CE8D7A5C 1A31 8 41F9 D48AC79D - CE8D7A5C 0 5FD4D41 Transmisión de datos En una transmisión de datos, habrá que tener en cuenta la posibilidad de que algunos de los bits que conforman una determinada palabra pueda “mutar”. En ese caso, además de sincronizar el emisor y receptor o, en su defecto introducir bits de inicialización y de finalización, se dispondrá de un circuito capaz de detectar esa mutación, identificar el bit mutado, representarlo y corregirlo. Para conseguir todo lo anterior, se recurre al código Hamming, con bits de paridad par o bits de paridad impar. A continuación resolveremos un caso práctico con una palabra de tres bits. Supongamos que pretendemos mandar una palabra de 3 bits. Con bits de paridad par 2 > n + p +1 N= nº de bits de la palabra P= nº de bits de paridad => 2 > 4 +3 + 1 Luego el número de bits de paridad serán 3 para esa palabra de tres bits Tendremos que transmitir un total de 7 bits para que puedan estar controlados los bits de información A continuación calculamos la posición de cada uno de ellos y también el nº de bits que controla cada bits de paridad mediante la fórmula 2 siendo i = al número del bit que estamos analizando : 1, 2, 3 …. Así que a cada bit le ponemos un subíndice. P =2 = 2 partir de él. = 2 = 1 => posición 1 y controla a los bits 1-3-5-7 alternos de uno en uno a 12 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------P =2 = 2 = 2 = 2 => posición 2 y controla los bits alternos tomados de dos en dos y a partir de él 2-3 y 6-7 P = 2 = 2 = 2 = 4 => posición 4 y controla los bits alternos tomados de cuatro en cuatro a partir de él 4,5,6,7 Trabajaremos con los bits de paridad par, es decir número de bits en estado “1” par =0 A7 0 A6 0 A5 1 P4 1 A3 1 P2 1 P1 0 Si la palabra es 0011, tendremos Calculamos el valor de los bits de paridad y ordenando: A la derecha comprobamos el detector de error sin cambios A7 A5 A3 P1 A7 A5 A3 P1 E1 0 1 1 => 0 0 1 1 1 0 A7 0 A7 0 A6 0 A6 0 A3 1 => A5 1 => P2 1 P4 1 A7 0 A7 0 A6 0 A6 0 A3 1 A5 1 P2 1 P4 1 E2 0 E4 0 A continuación supongamos que el bit 6 ha sufrido una mutación, es decir de de 0=>1 Los detetectores de error E4 E2 toman el valor 1 con lo que el resultado es 110 =6. Tanto el generador de bits de paridad y el detector de error, podemos observar que se resuelven por puertas tipo X-OR. Coma flotante. Los números reales binarios que hemos estudiado se pueden representar en un formato llamado coma fija. Es decir lo que se encuentra a la izquierda de la coma es la parte izquierda y la de la derecha parte decimal. Desplazar la coma tiene enefecto de multiplicar por un factor constante que en binario es una potencia positiva o negativa, si desplazamos hacia la izquierda o hacia la derecha A continuación hablaremos del sistema de representación por como flotante, a partir de un número en binario o en decimal. Los sistemas de representación de coma flotante se utilizan en las programaciones de autómatas programables. El sistema de coma flotante se puede estudiar en 16, 32, ó 64 bits. El sistema de representación será el mismo con la única salvedad del número de bits La fórmula emplear será: En general un número N expresado en coma flotante, en un sistema de numeración de base b, se representa por: 13 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------N =SmM (b) elevado a SeE. Donde M es el valor absoluto de la mantisa, E es el valor del exponente, Sm el signo de la mantisa, Se el signo del exponente y b la base. En base 2 ( b=2), el conjunto resulta ser una palabra binaria Con un ejemplo se verá más claro: Representar en coma flotante en el sistema de 16bits, los casaos siguientes. a) 100101,0110 b) -64,372 c) 0,00732 a) a) 0,1001010110 x 2 elevado a 0110 Sm Se/ Exp 0 b) 0 0 1 / 1 0 Mantisa 1 0 0 1 0 1 0 1 1 0 -0,64372 x 10 elevado a 2 a continuación lo pasamos a binario multiplicando la parte decimal sucesivamente por 2 y después tomamos la parte entera de cada uno de ellos, es decir -0,64372 x 2 = 1,28744 1 0,28744 x 2 = 0,57488 0 y así sucesivamente hasta obtener 10 bits. El resultado sería 1 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 b) c) 0,732 x 10 elevado a -2 resultado será 0 Procedemos de la misma manera que anteriormente y el 1 0 0 1 0 1 0 1 1 1 0 1 1 0 1 14 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Ejercicios resueltos 15 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 16 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------CARACTERÍSTICAS BÁSICAS DE LAS FAMILIAS LÓGICAS. PARÁMETROS DE TENSIÓN Y CORRIENTE. Como se explicó en la introducción del tema anterior, la electrónica digital, trabaja con dos valores de tensión, que podemos llamar en general nivel alto (H) y nivel bajo (L). En general, se asocia el nivel alto con el uno lógico ‘1’ y el nivel bajo con el cero lógico ‘0’, esto se llama lógica positiva, aunque se puede trabajar al revés, lo que se llama lógica negativa. Si no se indica lo contrario, consideraremos que estamos trabajando con lógica positiva En cualquier caso, y dado que el mundo que nos rodea es continuo, o analógico si se prefiere, cada familia lógica tiene unos límites, o unos márgenes, para interpretar los niveles alto y bajo. Es importante saber cada familia lógica entre que valores de tensión se mueve, y saber como se llaman estos valores. - Voltaje mínimo de entrada de nivel alto (VIH). Es la tensión mínima para que la puerta lógica interprete nivel alto (H) a su entrada. - Voltaje máximo de entrada de nivel bajo (VIL). Es la tensión máxima para que la puerta lógica interprete un nivel bajo (L) a su entrada. - Voltaje mínimo de salida de nivel alto (VOH). Es la tensión mínima que debe dar una puerta lógica a su salida, para el nivel alto (H). - Voltaje máximo de salida de nivel bajo (VOL). Es la tensión máxima que debe dar una puerta lógica a su salida, para el nivel bajo (L). Es interesante conocer también los valores de corriente que circulan por las puertas lógicas, de cara a poder interconectar unas con otras. - Corriente de entrada de nivel alto (IIH). Corriente que circula por una entrada cuando ésta se encuentra a nivel alto. - Corriente de entrada de nivel bajo (IIL). Corriente que circula por una entrada cuando ésta se encuentra a nivel bajo. - Corriente de salida de nivel alto (IOH).Corriente que circula por la salida cuando ésta se encuentra a nivel alto. - Corriente de salida de nivel bajo (IOI). Corriente que circula por la salida cuando ésta se encuentra a nivel bajo. FACTOR DE CARGA DE LA SALIDA. Más conocido como fan-out, es una medida de la cantidad de puertas lógicas de la misma familia, que pueden conectarse a la salida de una puerta lógica. Por ejemplo, si el factor de carga es 10, quiere decir, que la salida de esta puerta lógica se puede conectar a 10 entradas de puertas lógicas de la misma familia. Este parámetro está íntimamente ligado a las corrientes de entrada y salida definidas en el punto anterior. MÁRGENES DE RUIDO. Se define ruido eléctrico señales eléctricas aleatorias y no deseadas, que se introducen o generan en algún punto del circuito. El ruido, se mezcla con la señal verdadera distorsionándola, lo que puede producir error en el funcionamiento del circuito. Inmunidad al ruido es la capacidad de un circuito de soportar ruido en sus entradas sin que le afecte. Los márgenes de ruido son la medida cuantitativa de la inmunidad al ruido, y hay dos, uno para nivel alto (VNH) y otro para nivel bajo (VNL). - Margen de ruido en estado alto VNH = VOH – VIH - Margen de ruido en estado bajo VNL = VIL – VOL 17 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Obviamente, cuanto mayores sean los márgenes de ruido, mayor inmunidad al ruido presentan. TIEMPOS DE PROPAGACIÓN. Es el retardo que sufre una señal, entre el cambio de la señal de entrada y el cambio a la salida. Se definen dos tiempos: a) tPLH. Tiempo que tarda la salida en cambiar del nivel bajo al alto. b) tPHL. Tiempo que tarda la salida en cambiar del nivel alto al bajo. Ambos tiempos se consideran desde el cambio del 50 % en la entrada al 50 % del cambio en la salida. tPHL y tPLH no tienen porque ser iguales, y dependen de la carga del circuito, por lo que suele usarse el tiempo medio de propagación (tPD),promedio de los dos anteriores. Relacionado con estos tiempos está el concepto de velocidad de propagación, que es la frecuencia máxima de cambios en las entradas sin que se produzca error a la salida. DISIPACIÓN DE POTENCIA. Es la potencia que consume un circuito integrado. Se calcula como el producto de la tensión de la fuente de alimentación (VCC) por la intensidad que consume de dicha fuente. Como la intensidad que consume depende del estado de las entradas, y de la frecuencia de conmutación, en realidad la potencia se calcula como un promedio. PRODUCTO POTENCIA – TIEMPO DE PROPAGACIÓN. El producto de la potencia por el tiempo de propagación es un factor de calidad de la familia lógica. Idealmente, se desea que la velocidad del circuito integrado sea lo mayor posible, es decir su tiempo de propagación lo menor posible, y al mismo tiempo es deseable que consuma poca potencia, por lo que cuanto menor sea este producto, mayor calidad tiene el circuito integrado. Desafortunadamente, es difícil mejorar los dos parámetros al mismo tiempo, de hecho las familias o subfamilias lógicas, se centran en mejorar uno de los dos parámetros, intentando no empeorar el otro, para mejorar el producto potencia – tiempo de propagación. ENCAPSULADO DIL. Las puertas lógicas no se fabrican sueltas, sino en unos componentes que se llaman circuitos integrados. Los circuitos integrados se fabrican encapsulados permitir su conexión exterior. El encapsulado más común se llama DIP, siglas de dual in line package1, es decir encapsulado de doble línea, porque está formado por dos hileras de terminales. Los terminales están numerados en sentido antihorario, empezando a contar a partir de un punto o una muesca que sirve para identificar el terminal número 1, como se muestra en la figura 3. Existen 18 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------encapsulados DIP de 14, 16, 20, 24, 28, 40 y 64 terminales, aunque el más frecuente es el de 14. Figura 3. Puertas lógicas en encapsulados DIP (familia TTL) La figura 3 muestra los encapsulados y la disposición de los terminales, para algunas puertas lógicas de la familia TTL, que es una de las familias lógicas más extendidas. El número de referencia (74XX), sirve para identificar el circuito integrado. Los terminales VCC y GND, sirven para alimentar el circuito, a 5 V y 0 V respectivamente, por tratarse de TTL. Las puertas lógicas de la figura 3 tienen todas dos entradas, excepto lógicamente la puerta inversora (NOT). Algunas puertas lógicas, se fabrican con mayor número de entradas: - Puerta NAND. Se fabrica en 2, 3, 4, 8, 12 y 13 entradas. - Puerta NOR. Se fabrica en 2, 3, 4 y 5 entradas. - Puerta AND. Se fabrica en 2, 3 y 4 entradas. - Puerta OR. Se fabrica en 2 y 3 entradas. - Puertas XOR y XNOR. Se fabrican únicamente de 2 entradas. Hay también circuitos integrados que combinan diferentes puertas en un mismo encapsulado. FAMILIAS LÓGICAS CON TRANSISTORES BIPOLARES. FAMILIA LÓGICA RTL. La familia RTL (lógica transistor – resistencia) fue históricamente la primera en aparecer. Su estructura es muy simple, como se observa en la figura 3. 19 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- La tensión de alimentación (VCC) de esta tecnología se puede ajustar con los valores de resistencia adecuados, pero típicamente es pequeña, entre 3 y 5 V. Los valores lógicos son: 0 V para el 0 lógico, VCC para el 1 lógico. En esta familia los transistores están pensados para trabajar en corte y en saturación, por lo que la tensión colector – emisor es VCC (‘1’) cuando el transistor está en corte, y muy pequeña, 0,2 V como máximo (‘0’) cuando el transistor está en saturación. El funcionamiento del inversor RTL, de la figura 4-a es muy simple, si entra un ‘0’, el transistor se corta, obteniéndose un ‘1’ a la salida. Si entra un ‘1’, el transistor se satura, obteniéndose un ‘0’ a la salida. En el circuito de la figura 4-b, cuando una de las entradas (A, B), o ambas a la vez, tiene ‘1’ lógico, satura el transistor correspondiente, lo que produce ‘0’ a la salida. Sólo se produce un ‘1’ a la salida, si ambos transistores están en corte a la vez, para lo cual ambas entradas han de estar a ‘0’. Si se compara este funcionamiento con la tabla de verdad de la función NOR (figura 4-c), se observa que son iguales. Esta familia tiene los inconvenientes de poseer un fan-out muy bajo, y un reducido margen de ruido, debido a las pequeñas tensiones de alimentación. Sus ventajas se centran en los pocos componentes empleados, que facilitan su integración y bajo consumo. FAMILIA LÓGICA DTL. La familia lógica DTL (lógica transistor – diodo), es una de las más antiguas, y al igual que la familia RTL está prácticamente en desuso. Los valores de tensión son 5 V para VCC y el 1 lógico, y 0 V para el 0 lógico. Al igual que la familia RTL, los transistores trabajan en corte y saturación, que se identifican con ‘1’ y ‘0’ a la salida, respectivamente La familia DTL, tiene prácticamente los mismos inconvenientes y ventajas que la familia RTL, como son fan-out muy bajo y márgenes de ruido muy pequeños. Además, su retardo es de 30 ns, lo que la hace más bien lenta. FAMILIA LÓGICA TTL. La familia lógica TTL (lógica transistor – transistor) fue introducida en 1964 por Texas Instruments Corporation. En su día desplazó a la familia lógica DTL, con la que comparte los valores de tensión (5 V para VCC y el 1 lógico, y 0 V para el 0 lógico) por lo que son compatibles. Fue tan popular que, a pesar de los años que han pasado, es todavía una de las familias lógicas más usadas, ya que con los años fueron apareciendo toda una serie de subfamilias con objeto de mejorar sus características. No obstante, en los últimos años las mejoras de las familias MOSFET la están desplazando. TTL estándar. La familia TTL en general, también se conoce como serie 74, porque todos los circuitos integrados que utilizan esta tecnología se nombran con un código que empieza por 74, seguido de unas cifras para identificar su función. Así, por ejemplo el circuito integrado 7400 lleva 4 puertas NAND de 2 entradas, mientras que el integrado 7404 lleva 6 puertas NOT. Con el tiempo, han ido apareciendo subfamilias que mejoran las prestaciones de la familia TTL estándar. Existe otra serie general de la familia TTL, que se conoce como serie 54. Tiene la nomenclatura con la serie 74, simplemente cambiando el primer 7 por un 5. Además, esta serie comparte prácticamente las mismas características que la serie 74, incluidas las subfamilias de ésta, con la diferencia fundamental en la temperatura de trabajo, que está comprendida desde – 55 ºC hasta 125 ºC. Es una serie más cara, reservada para aplicaciones especiales. 20 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Las características más importantes de la serie TTL estándar (serie 74) son: - Tensión de alimentación (VCC): 4,75 a 5,25 V. - Temperatura ambiental: de 0º a 70º C. - VOL: 0,4 V - VOH: 2,4 V - VIL: 0,8 V - VIH: 2,0 V - Margen de ruido: 400 mV (tanto en estado alto como en estado bajo). - Disipación de potencia: 10 mW (promedio). - Tiempo medio de propagación: 10 ns. - Velocidad máxima: 35 MHz - Factor de carga típico de la salida (fan-out): 10. Subfamilias TTL de baja potencia y alta velocidad. Son dos series diferentes. La serie 74L y la serie 74H se diseñaron como versiones TTL de baja potencia (es decir bajo consumo) y alta velocidad respectivamente. Internamente son muy similares a la serie TTL estándar, con la diferencia de tienen otros valores de resistencias para optimizar una de las dos características. Rebajando los valores de las resistencias se consigue la serie de mayor velocidad (menores retardos), del orden de 6 ns, pero a costa de aumentar el consumo de potencia (23 mW). Aumentando los valores de las resistencias se consigue la serie de menor consumo (lowpower), del orden de 1 mW, pero a costa de aumentar los retardos (33 ns). No se usan ninguna de estas dos series, porque hay series más nuevas que mejoran sus prestaciones. Subfamilias TTL Scottky. Estas subfamilias lógicas se basan en el uso de transistore Schottky. Estos transistores se consiguen añadiendo un diodo Schottky desde la base al colector de un transistor bipolar. La subfamilia TTL Schottky básica, se llama serie 74S, y se consigue sustituyendo los transistores por transistores Sckottky. En estos transistores las transiciones entre los dos estados posibles (corte y saturación) son más rápidas, porque la presencia del diodo Schottky desvía parte de la corriente de base, evitando una saturación excesiva del transistor, con todo lo cual, se puede aumentar la frecuencia de trabajo del transistor en conmutación. El tiempo de propagación es 3 ns, y el consumo de potencia 20 mW. Existe también una familia TTL Schottky de baja potencia (low-power Schottky), que se llama serie 74LS, en la cual se han elevado los valores de las resistencias, y se consigue una potencia media de 2mW, con un tiempo propagación de 10 ns. Si se compara con la serie TTL estándar, se comprueba que se ha disminuido 5 veces la potencia, mientras que prácticamente mantiene el retardo de propagación, es por esto que, de todas las subfamilias TTL, ésta es la más popular y más abundante en el mercado. Otra ventaja de las subfamilias Schottky es su fan-out, que aunque depende de la serie concreta, es como mínimo 20, es decir el doble de la familia estándar. Subfamilias TTL Scottky avanzadas. Existen dos subfamilias Scottkty avanzadas, la serie 74AS (advanced Scottky) , y la serie 74ALS (advanced low-power Scottky). En la primera, se ha disminuido el tiempo de propagación a 1,7 ns, con un consumo de potencia de 8 mW. En la segunda (74ALS), se ha reducido la potencia a 1,2 mW, mientras que el tiempo de propagación es 4 ns. Aunque estas subfamilias tienen el menor producto velocidad-potencia de todas las series TTL, su alto coste ha hecho que sólo se usen en aplicaciones específicas que requieran la inversión. Otra serie es la 74F, también conocida como FAST (Fairchild Advanced Schottky TTL), con una potencia disipada de 4 mW y un tiempo de propagación de 3 ns. 21 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------FAMILIA LÓGICA ECL. Las familias estudiadas anteriormente utilizan los transistores en los modos de corte y saturación, lo que limita la velocidad de conmutación de las puertas lógicas. En cambio, la familia ECL (lógica de acoplamiento por emisor, emmiter coupled logic en inglés), trabaja conmutando la corriente, pero sin saturar los transistores. De esta forma, se consigue más velocidad de conmutación. Aunque hay subfamilias, la más rápida tiene un tiempo de propagación de 1 ns. Entre los inconvenientes cabe citar que tienen reducidos márgenes de ruido (250 mV), sus niveles de tensión no son compatibles con TTL, y su consumo de potencia es elevado en comparación con otras familias (25 mW) FAMILIA LÓGICA HTL. Esta familia es una variación de la familia DTL para conseguir una alta inmunidad al ruido, lo que consigue gracias a elevar los niveles de tensión. El margen admitido de tensión de alimentación va de 10,8 a 20 V. Con esto se consigue un margen de ruido de unos 5 V. Por esto se deduce que está pensada para su uso en ambientes industriales. Tiene un retardo de propagación de unos 150 ns, por lo que se puede decir que es bastante lenta. FAMILIAS CON TRANSISTORES MOSFET. Dentro de todos los tipos que hay de transistores de efecto de campo, sólo se utiliza unos de ellos para realizar circuitos integrados digitales: el MOSFET de enriquecimiento. Los transistores MOSFET ocupan mucha menor área del circuito integrado que los transistores bipolares. Además, los circuitos lógicos con MOSFET no requieren del uso de resistencias, que también ocupan mucho espacio del circuito integrado, sino exclusivamente con MOSFET. FAMILIA LÓGICA CMOS. Existen varias familias que emplean transistores MOSFET, de entre ellas destaca la familia CMOS, que quiere decir lógica MOS complementaria. Se llama así porque para realizar cualquier puerta lógica se combinan transistores MOSFET de canal P con transistores MOSFET de canal N. Al igual que en el caso de la familia lógica TTL, dentro de la lógica CMOS existen muchas subfamilias, pero antes de ver las más importantes, vamos a analizar las características generales. La tensión de alimentación (VDD) puede ser desde 3 a 15 V, pero según el valor escogido, las características básicas, como los tiempos de propagación y el consumo de potencia, varían sensiblemente, por lo que para establecer comparaciones entre las subfamilias CMOS, y con el resto de familias lógicas TTL, principalmente con la familia TTL, supondremos una tensión de alimentación de 5 V, si no se dice otra cosa. En un transistor MOSFET, debido a su estructura de puerta aislada, aparecen capacidades intrínsecas al transistor desde la puerta al surtidor, por lo que la entrada de una puerta lógica CMOS equivale a una capacidad aproximada de 5 pF. Esto es una limitación a la velocidad, puesto que introduce retardos de propagación, que además dependen de otros factores, como el factor de carga. Precisamente por la misma característica, la puerta aislada del transistor, la intensidad de entrada a una puerta es mínima, lo que proporciona factores de carga elevados (fan-out), aunque a costa de rebajar la velocidad de funcionamiento del transistor (elevar el retardo). El consumo de potencia, en un estado cualquiera menos durante la conmutación, es mínimo, pero se puede demostrar que aumenta de forma proporcional a la frecuencia y al cuadrado de la tensión de alimentación. Dicho de otra forma, la tecnología CMOS disipa dos tipos de 22 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------potencia: la estática, es decir cuando no cambian las entradas, que es del orden de 10 nW por puerta, y una potencia dinámica, es decir cuando está conmutando, que para una tensión de alimentación determinada es proporcional a la frecuencia de conmutación. La serie 4000 es la serie más básica de la familia CMOS. Vamos a ver sus características, teniendo en cuenta que pueden sufrir cambios, como se ha explicado, en función de la alimentación, la frecuencia de conmutación y el número de puertas conectadas a la salida. Resumen de características de la familia CMOS estándar (serie 4000): - Tensión de alimentación (VDD): 3 a 15 V. - VOL: 0,05 V - VOH: 4,95 V - VIL: 1,5 V - VIH: 3,5 V - Margen de ruido: 1,45 V (tanto en estado alto como en estado bajo). - Disipación de potencia: 1 mW (a 1 MHz). - Tiempo medio de propagación: 50 ns. - Velocidad máxima: 12 MHz - Factor de carga típico (fan-out): 50. (Si se aumenta, crece el tiempo de propagación) Se observa que la serie 4000 mejora a la TTL estándar (serie 74) en la potencia disipada, márgenes de ruido y fan-out, en cambio el tiempo de propagación (50 ns) es muy superior al de la familia TTL, dicho de otra forma, es una familia lenta. SUBFAMILIAS CMOS. La serie 74C es compatible completamente con TTL en cuanto a los niveles de tensión, los encapsulados y las funciones integradas, con la diferencia que no tiene todas las funciones de la serie TTL. Esto quiere decir, que las funciones lógicas de la serie 74C pueden sustituir a las TTL. Por ejemplo, es posible sustituir un circuito integrado 7400 por uno 74C00, siempre que los requerimientos de velocidad y potencia lo permitan, ya que las características de la serie 74C son similares a la serie 4000. Las series 74HC y 74HCT, son subfamilias CMOS de alta velocidad. Sus retardos de propagación son del orden de 8 ns, similares a la serie 74LS (TTL Scottky de bajo consumo). Mantienen los encapsulados y las funciones integradas de la familia TTL. La serie 74 HCT mantiene además niveles compatibles de tensión con TTL, por lo que puede sustituir a cualquier circuito integrado TTL, o conectarse con él. Por todo esto, se han convertido en las series CMOS más empleadas. Las series 74AC y 74ACT, son subfamilias CMOS avanzadas, diseñadas para aumentar la inmunidad al ruido. Mantiene las funciones de la familia TTL pero no así los terminales, por lo que no puede sustituirla. En las subfamilias CMOS de alta velocidad y avanzadas, la tensión máxima de alimentación es 6 V, a diferencia de las otras subfamilias, que es 15 V. Hay una familia lógica que combina transistores bipolares con la lógica CMOS, con objeto de conseguir la alta velocidad de las familias lógicas con transistores bipolares con la baja potencia de la lógica CMOS. Se llama BiCMOS, y tiene muy pocas funciones integradas, se utiliza normalmente como interfaz entre circuitos lógicos. TABLA COMPARATIVA TTL – CMOS. Dado que son las dos familias lógicas más populares, interesa establecer una comparación entre ambas. A modo de resumen, la TTL es la tecnología más desarrollada, por ser la más antigua, por lo que existen más circuitos TTL que CMOS. Sin embargo, la principal ventaja de la familia TTL es el tiempo de conmutación, que es en general inferior al de la familia CMOS. Por otro lado, las ventajas de la familia CMOS frente a la TTL son muchas: ofrece más posibilidades de tensión de alimentación, más rango de temperatura de trabajo, mejor inmunidad al ruido, mayor fan-out y menor potencia disipada. 23 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------La tabla siguiente muestra las principales familias TTL y CMOS, donde la CMOS se ha alimentado a 5 V, para poder establecer la comparación con la TTL. Familia Serie Potencia Tiempo de propagación TECNOLOGÍA DE BAJO VOLTAJE. La tendencia actual de los circuitos integrados es disminuir los voltajes de alimentación, lo que se llama tecnología de bajo voltaje (LVT), básicamente para disminuir la disipación de potencia y aumentar el nivel de integración, además de facilitar la alimentación mediante baterías o pilas. El principal problema de disminuir los voltajes está en que se reducen los márgenes de ruido. Esta tecnología usa una alimentación de 3,3 V, y se encuentra en los microprocesadores 486 y posteriores, así como memorias, y dispositivos portátiles. Las series lógicas de 3,3 V se fabrican con tecnologías CMOS y BiCMOS. Circuitos Integrados INTRODUCCIÓN El presente trabajo trata sobre la estructura y función de los Circuitos Integrados. En el desarrollo del presente trabajo se hizo uso de una Investigación bibliográfica en libros, revistas, obras generales o Enciclopedias, Tesis e Internet. También se utilizó la elaboración de Mapas Conceptuales, figuras. Tablas, imágenes, etc. 24 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Este proyecto de Investigación tiene como contenido los antecedentes históricos de los Circuitos Integrados, su definición, la forma en que son fabricados, el material del cual están hechos, clasificación de acuerdo a su estructura y función; funciones de los circuitos integrados, el uso de estos y las ramas que abarca el uso de los circuitos integrados. La importancia de este trabajo radica en la gran utilización que presentan los Circuitos Integrados en la electrónica y en la fabricación de cualquier aparato nuevo. Otro detalle muy importante es que los Circuitos Integrados son uno de los dispositivos mas importantes en la electrónica ya que si no fuera por ellos; no contaríamos con la tecnología que actualmente poseemos. La razón de su uso es por su tamaño; ya que estos circuitos pueden contener miles de transistores y otros componentes como resistencias, diodos, resistores, capacitadotes, etc; y medir solamente unos centímetros. Los ordenadores comúnmente llamados computadoras o PCs utilizan esta característica de los Circuitos Integrados ya que todas las funciones lógicas y aritméticas de una computadora pueden ser procesadas por un solo chip a gran escala llamado Microprocesador o cerebro de la computadora. Los objetivos logrados con el desarrollo de este trabajo fueron Conocer la historia de los circuitos integrados, como y cuando surgieron, saber los materiales del cual están hechos, conocer un poco sobre como se construyen, saber para que sirven, donde son utilizados, conocer las funciones que realizan en los aparatos y/o sistemas. 25 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------INTRODUCCIÓN A LOS CIRCUITOS INTEGRADOS Como todos sabemos los Circuitos Integrados son unos pequeños circuitos electrónicos fabricados con una función específica como pueden ser: Operaciones Aritméticas, funciones lógicas, amplificación, codificación, decodificación, controladores, etc. Estos Circuitos Integrados por lo general se combinan para formar sistemas mucho mas complejos que pueden ser desde una calculadora, un reloj digital, un videojuego, hasta una computadora, etc Se fabrican mediante la difusión de impurezas en silicio monocristalino, que sirve como material semiconductor, o mediante la soldadura del silicio con un haz de flujo de electrones. La característica más notable de un Circuito Integrado es su tamaño; ya que puede contener 275, 000 transistores, además de una multitud de otros componentes como son transistores, diodos, resistencias, condensadores y alambres de conexión, y medir desde menos de un centímetro a poco mas de tres centímetros. Otra de las características de los circuitos integrados es que rara vez se pueden reparar; es decir si un solo componente de un circuito integrado llegara a fallar, se tendría que cambiar la estructura completa; esto se debe al tamaño diminuto y los miles de componentes que poseen. Que son los Circuitos Integrados Un circuito integrado o ( ci ) es aquel en el cual todos los componentes, incluyendo transistores, diodos, resistencias, condensadores y alambres de conexión, se fabrican e interconectan completamente sobre un chip o pastilla semiconductor de silicio. Una vez procesado, el chip se encierra en una cápsula plástica o de cerámica que contiene los pines de conexión a los circuitos externos. Los chips digitales más pequeños contienen varios componentes sencillos como compuertas, inversores y flip-flops. los mas grandes contienen circuitos y sistemas completos como contadores, memorias, microprocesadores, etc. La mayoría de los circuitos integrados digitales vienen en presentación tipo dip (dual in-line package ) o de doble hilera. Los ci mas comunes tipo dip son los de 8,14,16,24, 40 y 64 pines. En la cápsula trae impresa la información respecto al fabricante, la referencia del dispositivo y la fecha de fabricación. Además del tipo dip, existen otras presentaciones comunes de los circuitos integrados digitales como la cápsula metálica, la plana y la " chip carrier". Existen circuitos integrados que utilizan cápsulas smt o de montaje superficial , smt son casi 4 veces mas pequeños que los dip . La tecnología smt (surface-mount technology ) es la que ha permitido obtener calculadoras del tamaño de una tarjeta de crédito. 26 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Historia de los Circuitos Integrados. La introducción de los tubos de vacío a comienzos del siglo XX propició el rápido crecimiento de la electrónica moderna. Con estos dispositivos se hizo posible la manipulación de señales, algo que no podía realizarse en los antiguos circuitos telegráficos y telefónicos, ni con los primeros transmisores que utilizaban chispas de alta tensión para generar ondas de radio. Por ejemplo, con los tubos de vacío pudieron amplificarse las señales de radio y de sonido débiles, y además podían superponerse señales de sonido a las ondas de radio. El desarrollo de una amplia variedad de tubos, diseñados para funciones especializadas, posibilitó el rápido avance de la tecnología de comunicación radial antes de la II Guerra Mundial, y el desarrollo de las primeras computadoras, durante la guerra y poco después de ella. Hoy día, el transistor, inventado en 1948, ha reemplazado casi completamente al tubo de vacío en la mayoría de sus aplicaciones. Al incorporar un conjunto de materiales semiconductores y contactos eléctricos, el transistor permite las mismas funciones que el tubo de vacío, pero con un costo, peso y potencia más bajos, y una mayor fiabilidad. Los progresos subsiguientes en la tecnología de semiconductores, atribuible en parte a la intensidad de las investigaciones asociadas con la iniciativa de exploración del espacio, llevó al desarrollo, en la década de 1970, del circuito integrado. Estos dispositivos pueden contener centenares de miles de transistores en un pequeño trozo de material, permitiendo la construcción de circuitos electrónicos complejos, como los de los microordenadores o microcomputadoras, equipos de sonido y vídeo, y satélites de comunicaciones. El primer circuito Integrado fue creado por Jack Kilby en la empresa Texas Instruments en el año de 1959; poco más de una década después de la invención del transistor en los laboratorios Bell en 1947. A partir de 1966 los Circuitos Integrados comenzaron a fabricarse por millones y en la actualidad se considera una pieza esencial en los aparatos electrónicos. ESTRUCTURA DE LOS CIRCUITOS INTEGRADOS En este capitulo se dará a conocer la forma en que los circuitos integrados son fabricados, así como los materiales de los cuales están constituidos; también veremos la clasificación de dichos circuitos de acuerdo a su estructura y la clasificación de acuerdo a su función. Como se fabrican los Circuitos Integrados. Los Circuitos Integrados digitales disponibles se fabrican a partir de pastillas de silicio. el procesamiento del silicio para obtener CI o chips es relativamente complicado . 27 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------El silicio utilizado para la fabricación de chips es de una pureza de orden del 99.9999999% . una vez sintetizado, el silicio se funde en una atmósfera inerte y se cristaliza en forma de barras cilíndricas de hasta 10cm de diámetro y 1 m de largo . Cada barra se corta en pastillas de 0.25 a 0.50 mm de espesor y las superficies de estas ultimas se pulen hasta quedar brillantes. Dependiendo de su tamaño, se obtienen varios cientos de circuitos idénticos (chips) sobre ambas superficies mediante un proceso llamado planar, el mismo utilizado para producir transistores en masa.. Para fabricar un chip, las pastillas de silicio se procesan primero para hacer transistores. una pastilla de silicio por si misma es aislante y no conduce corriente. los transistores se crean agregando impurezas como fósforo o arsénico a determinadas regiones de la pastilla. las conexiones se realizan a través de líneas metálicas. Cada rasgo de forma sobre la pastilla rociando en las regiones seleccionadas un químico protector sensible a la luz llamado photoresisú, el cual forma una película muy delgada sobre la superficie de la pastilla. la pastilla es entonces bombardeada con luz, mediante un proyector deslizante muy preciso llamado alineador óptico. El alineador posee un dispositivo muy pequeño llamado mascara, que evita que la luz incida sobre puntos específicos de la pastilla, cuando la luz alcanza un área determinada de la pastilla elimina el photoresist presente en esa zona. a este proceso se le denomina fotolitografía. Mediante un proceso de revelado, el químico se deposita en las regiones descubiertas por la luz e ignora las encubiertas por la mascara. éstas ultimas zonas aun permanecen recubiertas de " photoresist". La precisión del alineador óptico determina que tan fino puede hacerse un rasto. A comienzos de los 70´s, era difícil hacer transistores de menos de 10 micras de tamaño. Ahora, los transistores alcanzan tamaños inferiores a una velocidad de respuesta de los dispositivos. A continuación, la pastilla se calienta a altas temperaturas; esto origina que el silicio no procesado de la superficie se convierta en oxido de silicio (SiO2). El SiO2 se esparce sobre la superficie de la pastilla y forma sobre la misma una delgada película aislante de unas pocas micras de espesor. De este modo se obtiene el primer nivel de metalización de chips. Para obtener una nueva capa de metalización, el SiO2 se trata nuevamente con "photoresist" y se expone al alineador óptico, repitiéndose el mismo procedimiento seguido con el silicio del primer nivel. Las diferentes capas van creciendo una sobre otra formando una estructura parecida a un sandwich, con el SiO2 como el pan y el metal o el silicio dopado como la salchicha, la mayoría de Circuitos Integrados no se hacen con mas de tres capas de metalización. De que están hechos los Circuitos Integrados. Los Circuitos Integrados están hechos por silicio que sirve como base donde se fabrican transistores, diodos y resistencias. Los circuitos Integrados contienen cientos de estos componentes distribuidos de manera ordenada; esto se logra por medio de la técnica llamada fotolitografía la cual permite ordenar miles de componentes en una pequeña placa de silicio. 28 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------En la actualidad, los pasos para fabricar un circuito integrado han cambiado, ya que han surgido nuevas industrias que han asumido la responsabilidad de introducir los últimos avances tecnológicos en el equipo de procesamiento. El resultado es que el fabricante puede concentrarse en el diseño, el control de calidad, en el mejoramiento de las características de funcionamiento y confiabilidad y en una todavía mayor miniaturización haciendo de esta forma a los circuitos integrados cada vez mas confiables y con una menor complejidad física y Los circuitos integrados han hecho posible el desarrollo de muchos nuevos productos, como computadoras y calculadoras personales, relojes digitales y videojuegos. Se han utilizado también para mejorar y rebajar el costo de muchos productos existentes, como los televisores, los receptores de radio y los equipos de alta fidelidad por lo tanto un menor costo. El desarrollo de los circuitos integrados ha revolucionado los campos de las comunicaciones, la gestión de la información y la informática. Los circuitos integrados han permitido reducir el tamaño de los dispositivos con el consiguiente descenso de los costes de fabricación y de mantenimiento de los sistemas. Al mismo tiempo, ofrecen mayor velocidad y fiabilidad. Los relojes digitales, las computadoras portátiles y los juegos electrónicos son sistemas basados en microprocesadores. 29 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Clasificación de los Circuitos Integrados de acuerdo a su estructura. La clasificación de los Circuitos Integrados de acuerdo a su estructura puede ser de acuerdo a la cantidad de compuertas utilizadas para implementar la función propia del chip (llamado Escalas de Integración) como sabemos, las compuertas son los bloques constructivos básicos de todos los circuitos digitales. Las escalas de Integración son 4: SSI, MSI, LSI, VLSI; a continuación veremos cada una de ellas. SSI.- Significa Small Scalas Integration ( integración en pequeña escala)y comprende los chips que contienen menos de 13 compuertas. ejemplos: compuertas y flip flops. los Circuitos Integrados SSI se fabrican empleando tecnologías ttl, cmos y ecl. los primeros Circuitos Integrados eran SSI . MSI.- Significan Medium Scale Integration ( integración en mediana escala), y comprende los chips que contienen de 13 a 100 compuertas . ejemplos: codificadores, registros, contadores , multiplexores, de codificadores y de multiplexores. los Circuitos Integrados MSI se fabrican empleando tecnologías ttl, cmos, y ecl. LSI.- significa Large-Scale Integration ( integración en alta escala) y comprende los chips que contienen de 100 a 1000 compuertas. ejemplos: memorias, unidades aritméticas y lógicas (alu's), microprocesadores de 8 y 16 bits . los Circuitos Integrados LSI se fabrican principalmente empleando tecnologías i2l, nmos y pmos. VLSI.- Significa Very Large Scale Integration ( integración en muy alta escala) y comprende los chips que contienen mas de 1000 compuertas ejemplos: micro-procesadores de 32 bits, micro-controladores, sistemas de adquisición de datos. los Circuitos Integrados VSLI se fabrican también empleando tecnologías ttl, cmos y pmos. Funciones principales de los Circuitos Integrados. Las funciones principales de los circuitos integrados son mejorar las funciones de los aparatos tanto electrónicos como electrodomésticos; así como reducir el tamaño, complejidad y por lo tanto el costo también disminuye. CONCLUSIONES Como Conclusión podemos mencionar que los Circuitos Integrados son pequeños circuitos electrónicos que han ido evolucionando con el paso del tiempo; ya que su funciones han crecido y su tamaño a disminuido considerablemente; la llamada “Miniaturización”. 30 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 3 ALGEBRA DE BOOLE . La operación + Esta operación se define de la siguiente manera: 0+0=0 0+1=1 1+0=1 1+1=1 Las tres primeras operaciones nos resultan obvias, son iguales que la suma que conocemos, sin embargo la expresión 1 +1= 1 nos puede resultar chocante, estamos utilizando otra operación que NO ES LA SUMA, la denotamos con el mismo símbolo ’+’, ¡¡pero no es una suma normal!! ¡¡Hay que cambiar el “chip”!! ¡¡Ahora estamos con Algebra de Boole!! El resultado siempre es igual a ’1’ cuando alguno de los bits sumandos es igual a ’1’. O lo que es lo mismo, El resultado de esta suma sólo da ’0’ si los dos bits que estamos sumando son iguales a cero. En caso contrario valdrá ’1’. ¿Y para qué nos sirve esta operación tan extraña? Veamos un ejemplo. Imaginemos que hay una sala grande a la que se puede acceder a través de dos puertas. En el techo hay una única lámpara y existen dos interruptores de luz, uno al lado de cada puerta de entrada. Como es lógico, la luz se enciende cuando algunos de los dos interruptores (o los dos) se activan. Esto lo podemos expresar mediante una ecuación booleana. Para denotar el estado de uno de los interruptores utilizaremos la variable booleana A, que puede valor ’0’ (Interruptor apagado) ó ’1’ (interruptor activado). Para el otro interruptor usaremos la variable B. Y para el estado de la luz, ’0’ (apagada) y ’1’ encendida, usaremos la variable F. El estado en el que se encuentra la luz, en función de cómo estén los interruptores viene dado por la ecuación booleana: F= A + B que indica que F=1 (Luz encendida) si alguno de los interruptores está a ’1’ (activado). Ya lo veremos más adelante, pero podemos ir adelantando unas propiedades muy interesantes. Si A es una variable booleana, se cumple: A+A=A 1+A=1 0+A=A La operación Esta operación se define así: 0 *0 = 0 0 *1 = 0 1 *0 = 0 1 *1 = 1 En este caso, la operación es más intuitiva, puesto que es igual que el producto de números Reales. Si nos fijamos, vemos que el resultado sólo vale ’1’ cuando los dos bits están a ’1’, o visto de otra manera, el resultado es ’0’ cuando alguno de los dos bits es ’0’. 31 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Vamos a ver un ejemplo. Imaginemos una caja de seguridad de un banco que sólo se abre cuando se han introducido dos llaves diferentes, una la tiene el director y la otra el jefe de seguridad. Si sólo se introduce una de ellas, la caja no se abrirá. Modelaremos el problema así. Utilizaremos la variable A para referirnos a una de las llaves (’0’ no introducida, ’1’ introducida) y la variable B para la otra llave. Con la variable F expresamos el estado de la caja de seguridad (’0’ cerrada y ’1’ abierta). El estado de la caja lo podemos expresar con la ecuación: F=A.B que indica que la caja se abrirá (F=1) sólo si A=1 (una llave introducida) y B=1 (la otra llave introducida). En cualquier otro caso, F=0, y por tanto la caja no se abrirá. Podemos ir adelantando algunas propiedades de esta operación: A .A=A A . 0=0 A . 1=1 __ _ . La negación La operación de negación nos permite obtener el estado complementario del bit o variable booleana al que se lo aplicamos. Se define de la siguiente manera: _ _ Es decir, que si se lo aplicamos a ’0’ obtenemos ’1’ y si se lo aplicamos al ’1’ obtenemos ’0’. Esta operación nos permite cambiar el estado de una variable booleana. Si A es una variable booleana A negada tiene el estado contrario. _ Las propiedades del Álgebra de Boole Las operaciones del Álgebra de Boole las podemos definir utilizando tablas de verdad: 32 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Las propiedades del Algebra de Boole son las siguientes: 1. Las operaciones + y . son CONMUTATIVAS A+B=B+A A.B =B.A 2. Elemento Neutro A+0=A A . 1 = A 3. Distributiva A + (B . C) = (A + B) . (A + C) A. ( B + C) =A . B + A . C 4. Elemento inverso _ _ __ Operación de negación definida por: _ _ Teoremas importantes Derivados de las propiedades fundamentales, existen una serie de Teoremas muy interesantes e importantes que usaremos a lo largo de todo el curso. Algunos los utilizaremos en la teoría y otros para los problemas. Asociatividad A +B+C+= (A + B) + C = A + ( B + C) A . B . C = ( A . B) . C = A . (B . C) Idempotencia: B +B=B B.B=B _ _ __ _ __ __ _ ___ _ _ _ _ Ley de Absorción A+A.B=A A.(A+B)=A Este teorema es muy importante puesto que nos permite realizar simplificaciones en las expresiones. Leyes de DeMorgan Este teorema es también muy importante y lo usaremos constantemente. ___ _ _ _ _ _ _ _ _ __ _ ___ _ _ _____ _ __ _ _ Teorema de Shannon: Este teorema es una generalización de las leyes de DeMorgan. Lo que nos dice es que si tenemos cualquier expresión booleana negada, es igual a la misma expresión en la que todas las variables estén negadas y en la que se sustituyan las operaciones + por . y viceversa. 33 _ ____ Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Funciones booleanas Funciones reales y funciones booleanas Vamos a definir Funciones booleanas, que son exactamente iguales a las funciones matemáticas a las que estamos habituados pero con la particularidad de que las variables son booleanas y que los valores devueltos por la función también son booleanos, es decir, una función booleana sólo puede tomar los valores ’0’ ó ’1’. __ _ _ __ __ __ _ __ Ejercicios: Hacer el ejercicio 3 3.5. FUNCIONES BOOLEANAS 43 Funciones booleanas y tablas de verdad Existen dos maneras de representar una función booleana. Una ya la conocemos, y es utilizado expresiones booleanas. Así por ejemplo se puede definir la función booleana siguiente: __ _ y hemos visto cómo podemos obtener todos los valores de esta función. Existe otra manera de especificar una función booleana y es utilizando las tablas de verdad. En ellas lo que estamos representando es el valor que debe tomar la función cuando las variables de entrada toman todos los valores posibles. Así por ejemplo yo puedo definir una función G de la siguiente manera: A B 0 0 0 1 1 0 1 1 G 0 1 0 1 ¿Cuánto vale G si A=0 y B=1?. Miramos la tabla y vemos que G vale 1. Esta forma de definir funciones booleanas es muy sencilla. El número de filas de la tabla de verdad depende del número de variables que usemos. Cuanto mayor número de variables, mayor cantidad de filas tendrá la tabla de verdad. La regla que se cumple es la siguiente: “Si la función tienen n variables, la tabla de verdad tendrá 2 elevado a n filas. Si una función tiene 2 variables, su tabla de verdad tendrá 4 filas Si la función tiene 3 variables, la tabla tendrá 8 filas Si la función tiene 4 variables, la tabla tendrá 16 filas Dada una tabla de verdad, ¿cómo podemos obtener la expresión booleana de la función? O Obtención de una tabla de verdad a partir de una expresión Esto es bastante sencillo. Lo primero que hay que hacer es identificar el número de variables de la función, para conocer el tamaño de la tabla de verdad. A continuación escribimos números en binario en la parte de las variables. Finalmente vamos fila por fila obteniendo el valor de la función, utilizando la expresión. Lo mejor es ver un ejemplo. Imaginemos que nos han dado la siguiente función, definida por la expresión: _ _ 1. La función tiene 2 variables, luego la tabla de verdad tendrá 4 filas Dibujamos una tabla de verdad con 4 filas, y ponemos en la parte de la izquierda el número de fila en binario natural, comenzando por la fila 0. 34 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------A B 0 0 0 1 1 0 1 1 F 0 1 0 0 3. Aplicando la expresión, vamos calculando el valor de F. 4. Ya podemos rellenar la tabla de verdad: _ _ _ _ _ Veamos otro ejemplo, ahora con una función de 3 variables: 1. Como la función tiene 3 variables, la tabla de verdad tendrá 8 filas. 2. Dibujamos la tabla, poniendo en binario natural el número de fila, comenzando por 0: 3. Calculamos el valor de la función para cada una de las filas. El resultado se muestra a continuación A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 C 0 1 0 1 0 1 0 1 F 0 1 0 1 1 1 0 1 Obtención de una expresión a partir de una tabla de verdad Cuando diseñemos circuitos combi nacionales, será muy normal que tengamos una tabla de verdad que haya que convertir a expresiones booleanas. El proceso es sencillo, sin embargo ocurre que dada una tabla de verdad se pueden obtener multitud de expresiones diferentes, todas ellas equivalentes. Nuestra misión consistirá en obtener la expresión más simplificada posible. Esto lo iremos viendo en los siguientes apartados. Formas canónicas A partir de una tabla de verdad, podemos obtener múltiples expresiones para la misma función. Todas esas expresiones son equivalentes y podemos obtener unas expresiones de otras aplicando las propiedades del Álgebra de Boole. Existen dos tipos de expresiones que se obtienen directamente de la tabla de verdad, de forma inmediata. Se denominan formas canónicas. Se caracterizan porque en todos los términos de estas expresiones aparecen todas las variables. Primera forma canónica Una función que esté en la primera forma canónica se caracteriza porque está formada por sumas de productos. Y recordemos que por ser una forma canónica, en todos sus términos se ecuentran todas sus variables. 35 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Un ejemplo de una función de 3 variables, expresada en la primera forma canónica es la siguiente. Vemos que está constituida por la suma de tres términos y en cada uno de los términos están todas las variables. La obtención de la primera forma canónica, a partir de una tabla de verdad es inmediata. El proceso se denomina “desarrollo de la tabla de verdad por unos”. Tomamos la tabla de verdad y sólo nos fijamos en las filas en las que la función vale ’1’, olvidándonos del resto. Por cada una de estas filas tendremos un sumando, constituido por el producto de todas las variables, aplicando la siguiente regla: Si una variable está a ’0’, en la fila escogida, usaremos la variable negada, y si está a ’1’ usaremos la variable sin negar. Ejemplo: Obtener la primera forma canónica, a partir de la siguiente tabla de verdad: A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 C 0 1 0 1 0 1 0 1 F 0 1 0 1 0 0 0 1 Nos fijamos en las filas en las que F=1. Vemos que sólo hay tres filas, por tanto la función F se podrá expresar como suma de tres términos. La función F será la suma de estos tres términos: _ Esta función está constituida por la suma de tres términos y en cada uno de ellos es el producto de las tres variables, bien negadas o no. Vamos en algunos casos que esta expresión representa la misma función que la de la tabla de verdad: Segunda forma canónica Una función en la segunda forma canónica se caracteriza porque está formada por un producto de sumas. Y en todos sus términos deben aparecer todas sus variables, bien negadas o no. Por ejemplo está constituida por dos términos que van multiplicados, y cada uno de ellos está formado por sumas. La obtención de la segunda forma canónica, a partir de una tabla de verdad es inmediata. El proceso se denomina “desarrollo de la tabla de verdad por ceros”. Tomamos la tabla de verdad y sólo nos fijamos en las filas en las que la función vale ’0’, olvidándonos del resto. Por cada una de estas filas tendremos un término, constituido por la suma de todas las variables, aplicando la siguiente regla: Si una variable está a ’1’, en la fila escogida, usaremos la variable negada, y si está a’0’ usaremos la variable sin negar. Es decir, que esta regla es justo la contraria que cuando estábamos trabajando con la primera forma canónica. Como vemos en la siguiente tabla de verdad 36 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Ejemplo: Obtener la segunda forma canónica, a partir de la siguiente tabla de verdad: A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 C 0 1 0 1 0 1 0 1 F 1 1 0 1 0 1 0 1 Nos fijamos en las filas en las que F=0. En este ejemplo hay tres. Cada fila representa un término, que estará multiplicando al resto. La función F desarrollada por la segunda forma canónica, queda: _ _ _ _ __ ___ _____ _ __ _ _ _ _ Simplificación de funciones booleanas Introducción En las matemáticas con números Reales, estamos muy acostumbrados a simplificar. De hecho es lo que nos han enseñado desde pequeños. Si una determinada expresión la podemos simplificar, ¿por qué no hacerlo?, así seguro que nos ahorramos cálculos. Cuando estamos diseñando circuitos digitales, utilizaremos funciones booleanas para describirlos. Y antes de implementarlos, es decir, antes de convertir las ecuaciones a componentes electrónicos (puertas lógicas) tenemos que simplificar al máximo. Una de las misiones de los Ingenieros es diseñar, y otra muy importante es optimizar. No basta con realizar un circuito, sino que hay que hacerlo con el menor número posible de componentes electrónicos. Y esto es lo que conseguimos si trabajamos con funciones simplificadas. Las funciones booleanas se tienen que simplificar al máximo, para diseñar los circuitos con el menor número de componentes electrónicos. Y este será uno de los grandes caballos de batalla de esta asignatura: la simplificación de las funciones. Esta simplificación la podemos realizar de dos maneras diferentes: 1. Utilizando las propiedades y Teoremas del Algebra de Boole. Se denomina método analítico de simplificación de funciones. Hay que manejar muy bien estas propiedades para poder eliminar la mayor cantidad de términos y variables. 2. Utilizando el método de Karnaugh. Es un método gráfico que si lo aplicamos bien, nos garantiza que obtendremos la función más simplificada posible, a partir de una tabla de verdad. Normalmente las formas canónicas no son las expresiones más simplificadas. Método analítico de simplificación de funciones Desgraciadamente no existe tal método :-(. Hay que basarse en la experiencia y en el conocimiento de las propiedades y teoremas del Algebra de Boole. Lo mejor es ver un ejemplo: Ejemplo: Simplificar la siguiente función: Vamos a intentar aplicar la propiedad distributiva, lo que normalmente llamamos sacar factor común. Operando con los términos 1 y 3: Operando con los términos 2 y 4: 37 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- La función que nos queda es: Tanto la función inicial, como la que hemos obtenido son funciones equivalentes. Tienen la misma tabla de verdad, sin embargo, la segunda está mucho más simplificada: sólo tiene dos sumandos y cada sumando tiene sólo dos variables. __ __ Método de Karnaugh En este apartado veremos un método para obtener la función más simplificada a partir de una tabla de verdad. Vamos a ir poco a poco, viendo los fundamentos de este método. Supongamos que tenemos una función F(A,B,C) de tres variables, cuya tabla de verdad es: Si la desarrollamos por la primera forma canónica obtenemos: A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 C 0 1 0 1 0 1 0 1 F 0 0 1 1 1 1 1 1 Veremos como aplicando el método de Karnaugh podemos simplificar esta función. Vamos a organizar esta misma tabla de la siguiente manera: a b c 0 1 0 0 0 1 11 10 1 1 1 1 1 1 Observamos lo siguiente: En total hay 8 casillas, cada una correspondiente a una fila de la tabla de verdad En cada casilla está colocado el valor de la función F, correspondiente a esa entrada. Procedemos a tomar grupos que contengan el máximo número de unos, pero el número de grupos mínimo. Luego se pueden formar dos grupos de cuatro. Hay que tener en cuenta que se pueden asociar si los unos se encuentran al lado o arriba, nunca en diagonal. También primera y última fila y primera y última columna, etc El resultado será F = A + B Para obtener una función que no se puede simplificar más hay que tomar el menor número de grupos con el mayor número de ’1’ en cada grupo. Funciones de 4 variables ¿Y qué ocurre si tenemos una función de 4 variables? La idea es la misma pero tendremos una tabla más grande. El criterio de máxima simplificación es el mismo: hacer el menor número posible de grupos con el máximo número de ’1’s. Veamos un ejemplo: 38 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Ejemplo: Dada la siguiente tabla de verdad, obtener la expresión de F más simplificada posible: Lo primero que hacemos es pasarlo al diagrama de Karnaugh A B C 0 1 11 10 0 1 0 0 1 1 11 10 1 1 1 1 0 0 1 0 0 1 1 1 A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 Podemos observar que se pueden tomar dos grupos, uno de cuatro unos y otro de ocho con lo que el resultado será el siguiente: Hay una operación que en electrónica digital se utiliza mucho, llamada XOR y que se denota por el símbolo O Esta operación la podemos definir mediante una tabla de verdad: Fijándonos en esta tabla podemos ver lo que hace: esta operación devuelve ’0’ cuando los dos bits sobre los que operan son iguales, y ’1’ cuando con distintos. Tanto esta operación como su negada, , las utilizaremos mucho, por ello vamos a ver cómo las podemos definir a partir de las operaciones + y x, y ver algunas de sus propiedades. Partiremos de la tabla de verdad, en la que además representaremos la operación negada: Vamos a obtener las dos formas canónicas de ambas funciones. Estas expresiones las utilizaremos bastante: _ _ _ __ 39 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Existe otra forma de simplificación denominada Quine M´Cluskey. Es un método más laborioso que el Karnaugh y el resultado, como máximo, será el obtenido por este último. EJERCICIOS 40 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 41 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 42 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 43 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 44 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 45 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 46 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 4 CIRCUITOS COMBINACIONALES Introducción Después de introducir y trabajar con el Algebra de Boole, vamos a volver a los circuitos digitales. Recordemos que son circuitos electrónicos que trabajan con números, y que con la tecnología con la que están realizados, estos números están representados en binario. Si tomamos un circuito genérico y miramos en su interior, podemos ver que está constituido por otros circuitos más simples, interconectados entre sí. Estos subcircuitos se pueden clasificar en dos tipos: Circuitos combinacionales Circuitos secuenciales Así, podemos decir que todo circuito digital genérico tendrá una parte combinacional y otra parte secuencial. En este capítulo nos centraremos en los circuitos combinacionales, que no tienen parte secuencial. Estos circuitos se caracterizan porque NO almacenan información. Las salidas están relacionadas con las entradas a través de una función booleana, como las vistas en el capítulo anterior. Como veremos más adelante, los circuitos secuenciales son capaces de “recordar” números que han recibido anteriormente. En un circuito combinacional, las salidas dependen directamente del valor delas entradas, y no pueden por tanto almacenar ningún tipo de información, sólo realizan transformaciones en las entradas. Estos circuitos quedan caracterizados mediante funciones booleanas. Cada bit de salida de un circuito combinacional, se obtiene mediante una función booleana aplicado a las variables de entrada. Así, si un circuito tiene n salidas, necesitaremos n funciones booleanas para caracterizarlo. En este capítulo estudiaremos las puertas lógicas, que son los elementos que usamos para construir estos circuitos, y cómo las funciones booleanas las podemos realizar mediante puertas lógicas, lo que se denomina implementación de funciones booleanas. _ 47 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Puertas lógicas En todas las ingenierías se utilizan planos que describen los diseños. En ellos aparecen dibujos, letras y símbolos. Mediante estos planos o esquemas, el Ingeniero representa el diseño que tiene en la cabeza y que quiere construir. En electrónica analógica se utilizan distintos símbolos para representar los diferentes componentes: Resistencias, condensadores, diodos, transistores... Algunos de estos símbolos se pueden ver anteriormente. En electrónica digital se utilizan otros símbolos, los de las puertas lógicas, para representar las manipulaciones con los bits. Puertas básicas Puerta AND Esta puerta implementa la operación del Algebra de Boole. La que se muestra en esta figura tiene dos entradas, sin embargo puede tener más. Lo mismo ocurre con el resto de puertas lógicas que veremos a continuación. Puerta OR Implementa la operación + del Algebra de Boole. Puede tener también más de dos entradas. Puerta NOT (Inversor) Tiene sólo una entrada y realiza la operación de negación lógica. Esta puerta se conoce normalmente con el nombre de inversor. Sólo con estos tres tipos de puertas se pueden implementar cualquier función booleana. Ejemplo: Analizar el siguiente circuito y obtener la expresión booleana de la salida: El circuito está constituido por dos puertas, una AND de tres entradas y un inversor. A la salida de la puerta AND se tiene el producto de las tres variables de entrada y al atravesar el inversor se obtiene la expresión final de F, que es: _ _ 48 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Ejemplo: Obtener la expresión booleana de salida del siguiente circuito: El circuito está constituido por dos puertas AND, dos inversores y una puerta OR. La expresión de F es: Otras puertas Con las puertas básicas podemos implementar cualquier función booleana. Sin embargo existen otras puertas que se utilizan mucho en electrónica digital. Puerta NAND El nombre viene de la abreviación de NOT-AND, y la operación que realiza es la negación de un producto. Aplicando las leyes de DeMorgan vemos que la expresión a su salida es: Esta puerta también puede tener más de dos entradas. Las puertas NAND tienen una característica muy importante y es que sólo con ellas se puede implementar cualquier función booleana. Sólo hay que aplicar las propiedades del Algebra de Boole a cualquier expresión booleana para dejarla de forma que sólo existan este tipo de operaciones Puerta NOR Es una puerta OR negada (NOT-OR). Aplicando las leyes de DeMorgan: _ _ ___ Lo mismo que con las puertas NAND, con las puertas NOR se puede implementar cualquier función booleana 49 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Puerta XOR Ejemplo: Analizar el siguiente circuito y obtener la expresión booleana de la salida: a su salida siempre se obtendrá ’0’. Y aplicando las leyes de DeMorgan nos queda 50 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Imágenes: 51 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 52 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Dos circuitos integrados, junto a una moneda de 1 euro 53 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Circuitos integrados ¿Y si ahora queremos construir un circuito? ¿Cómo lo implementamos físicamente? Las puertas lógicas se encuentra encapsuladas dentro de circuitos integrados o también conocidos como chips. En la figura se muestra una foto de dos de ellos, junto a una moneda de 1 euro para apreciar su tamaño. Más coloquialmente, entre los alumnos, reciben el nombre de “cucarachas”, porque son negros y tienen patas. Hay una familia de circuitos integrados, 74XX, que está estandarizada de manera que se ha definido la información que entra o sale por cada una de las patas. Así pueden existir multitud de fabricantes, pero todos respectando el mismo estándar. En la figura se muestra un esquema del integrado 7402, que contiene en su interior 4 puertas NOR de dos entradas. Por las patas denominadas VCC y GND se introduce la alimentación del chip, que normalmente será de 5v, aunque esto depende de la tecnología empleada. Por el resto entrará lo que defina una determinada función o salida de otra puerta, etc. 5v al dígito ’1’ y 0v al dígito ’0’. Esquema del integrado 7402 A la hora de fabricar un diseño, estos chips se insertan en una placa y se interconectan las patas con el resto de chips o partes de nuestro circuito. La interconexión se realiza por medio de cables. Cuando se realiza una placa profesional, las interconexiones entre los chips son pistas de cobre en la superficie de la placa. Estas placas reciben el nombre de placas de circuito impreso, o por sus siglas en inglés PCB (printed circuito Board). En la figura se muestra la parte inferior de una de estas placas. Por los agujeros se introducen las patas de los componentes y luego se sueldan. Los distintos agujeros están interconectados por pistas de cobre. Además existe una capa de un barniz verde para que las pistas no estén “al aire” y se puedan producir cortocircuitos. 54 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Otras tecnologías La electrónica ha avanzado muchísimo y en los chips en los que antes sólo se podían integrar unas pocas puertas lógicas, ahora se pueden integrar muchísimas más. De esta manera, los chips tradicionalmente se han clasificado según el número de puertas que pueden integrar. Así tenemos la siguiente clasificación de chips: SSI (Small Scale Integration). Chips con menos de 12 puertas MSI (Medium Scale Integration). Entre 12 y 100 puertas. LSI (Large Scale Integration). Entre 100 y 10.000 puertas. VLSI (Very Large Scale Integration). Más de 10.000 puertas Los VLSI se corresponden con los microprocesadores y los microcontroladores. Muchos diseños que antes se realizaban sólo con electrónica digital, ahora es más sencillo y barato hacerlos con un microprocesador o microcontrolador y programarlos. Es decir, hacer software en vez de hardware. Sin embargo, existen otras maneras de implementar circuitos digitales sin utilizar los chips tradicionales, es decir, sin tener que recurrir a los chips de la familia 74XX. Esta nueva forma de diseñar se denomina lógica programable. Existen unos circuitos integrados genéricos (PALs,GALs, CPLDs,FPGAS), que contienen en su interior muchas puertas lógicas y otros componentes. El diseñador especifica los circuitos digitales que quiere diseñar utilizando un lenguaje de descripción hardware (Como por ejemplo el VHDL). Una herramienta software, conocida como sintetizador, convierte esta descripción en un formato que indica cómo se deben interconectar los diferentes elementos de este chip genérico. El chip “se configura” (es decir, realiza conexiones entre sus elementos internos) según se indica en el fichero sintetizado, de manera que ¡¡¡¡nuestra descripción del hardware se ha convertido en un circuito que hace lo que hemos indicado!!!! ¡¡¡Con esta técnica se pueden diseñar desde circuitos simples hasta microprocesadores!!! El hardware está siguiendo la misma tendencia que el software. Los diseñadores de ahora utilizan sus propios “lenguajes de programación” para especificar el hardware que están diseñando. En esta asignatura se intenta dar una visión lo más independiente posible de la tecnología. De manera que bien se diseñe con puertas lógicas, o bien se utilice un lenguaje de descripción hardware, los conocimientos aquí adquiridos sirvan para ambos casos. 55 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Diseño de circuitos combinacionales El proceso de diseño En Ingeniería se entiende por diseñar el proceso por el cual se obtiene el objeto pedido a partir de unas especificaciones iniciales. Cuando diseñamos circuitos combinaciones, estamos haciendo lo mismo. Partimos de unas especificaciones iniciales y obtenemos un esquema, o plano, que indica qué puertas básicas u otros elementos hay que utilizar así como la interconexión que hay entre ellos. Los pasos que seguiremos para el diseño son los siguientes: 1. Estudio de las especificaciones iniciales, para entender realmente qué es lo que hay que diseñar. Este punto puede parecer una trivialidad, sobre todo en el entorno académico donde las especificaciones son muy claras. Sin embargo, en la realidad, es muy difícil llegar a comprender o entender qué es lo que hay que diseñar. 2. Obtención de las tablas de verdad y expresiones booleanas necesarias. En el entorno académico este suele ser el punto de partida. Nos describen qué función es la que se quiere implementar y lo hacemos. 3. Simplificación de las funciones booleanas. ¡¡¡Este punto es importantísimo!!! No basta con implementar una función y ya está. ¡¡Somos ingenieros!!. Hay que implementar la mejor función, de manera que obtengamos el mejor diseño posible, reduciendo el número de puertas lógicas empleadas, el número de circuitos integrados o minimizando el retraso entre la entrada y la salida. 4. Implementación de las funciones booleanas utilizando puertas lógicas. Aquí podemos tener restricciones, como veremos. Puede ser que por especificaciones del diseño sólo se dispongan de puertas tipo NAND. O puede ser que sólo podamos utilizar puertas lógicas con el mínimo número de entradas. En ese caso habrá que tomar la función más simplificada y modificarla para adaptarla a este tipo de puertas. El resultado de esto es la obtención de un esquema o plano del circuito. 5. Construcción. El último paso es llevar ese plano o circuito a la realidad, construyendo físicamente el diseño. Esto se estudia en el laboratorio de esta asignatura, utilizando tecnología TTL. En este apartado veremos el punto 4, es decir, veremos cómo a partir de una función (que ya está simplificada) podemos obtener el circuito correspondiente, o cómo la podemos modificar para utilizar un tipo determinado de puertas lógicas. Esto se denomina implementar una función. Implementación de funciones con cualquier tipo de puertas El proceso es muy sencillo. Sólo hay que tomar la función que queremos implementar e ir sustituyendo las operaciones del Algebra de Boole por sus correspondientes puertas lógicas. Y como siempre, lo mejor es ver un ejemplo. Ejemplo 1: Implementar la siguiente función, utilizando cualquier tipo de puertas lógicas: Se trata de implementar un circuito que tiene tres bits de entrada: A, B y C y como salida Se quiere obtener la función F indicada. Se puede realizar de muchas formas, pero vamos a ir poco a poco. Primero nos fijamos que no tenemos ninguna restricción. Es decir, en el enunciado nos permiten utilizar cualquier tipo de puerta lógica, y con cualquier número de entradas. Tampoco vamos a simplificar la función, porque lo que queremos es ver cómo implementarla, aunque ya hemos visto que siempre hay que simplificar!!! (y de hecho, esta función se puede simplificar más, ¿como?, se deja como ejercicio). Vemos que en la función hay tres términos que van sumados: 56 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------La puerta lógica que representa la suma es la OR, por lo que podemos escribir: Ahora el problema es más sencillo. Hay que obtener esos tres términos independientemente. Uno ya lo tenemos, que es A (es directamente una de las entradas). El término es el producto de B y C negado y lo podemos obtener con una puerta AND así: El término C negado lo obtenemos directamente a partir de un inversor: Para obtener el término que es el último que nos falta, nos fijamos que es un producto de tres elementos, por lo que usaremos una puerta AND de tres entradas: y finalmente para obtener los términos A negado y B negado utilizamos sendos inversores: y ahora unimos todas las piezas para obtener el circuito final: 57 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Ejemplo 2: Implementar la siguiente función, utilizando el menor número posible de puertas lógicas de cualquier tipo. La función está simplificada al máximo. En este caso nos dicen que la función está simplificada al máximo ¿Está simplificada al máximo? También nos introducen una restricción: usar el menor número posible de puertas lógicas. Lo primero que se nos puede ocurrir es utilizar el método del ejemplo anterior, sustituyendo las operaciones del Algebra de Boole por puertas lógicas. El circuito que obtenemos es el siguiente: Hemos utilizado las siguientes puertas lógicas: 4 inversores 2 puertas AND de dos entradas 1 puerta OR de cuatro entradas La única restricción que nos han impuesto es utilizar el menor número posible de puertas lógicas... ¿Podemos implementar este circuito con menos puertas?. Echemos un vistazo la función F. Teniendo en cuenta que existen otras puertas, como las NAND, XOR, etc... vamos a realizar las siguientes operaciones: Teniendo en cuenta que: y que La expresión de F que nos queda es la siguiente; Si a continuación implementamos Hemos conseguido simplificar aún más Implementación de funciones con puertas NAND Sólo con las puertas NAND es posible implementar cualquier función booleana. Para ello habrá que hacer transformaciones en la función original para obtener otra función equivalente pero que se pueda obtener sólo con puertas NAND. Para ver cómo podemos hacer eso, implementaremos las puertas NOT, AND, OR y XOR usando sólo puertas NAND. Para refrescar ideas, a continuación se muestra una puerta NAND de dos entradas y las formas de expresar el resultado: 58 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Implementación de una puerta NOT Si introducimos la misma variable booleana por las dos entradas de una NAND obtendremos lo siguiente: Tenemos un circuito por el que si introducimos una variable A, obtenemos a la salida su complementario , es decir, se comporta exactamente igual que un inversor. _ Implementación de una puerta AND Tenemos que diseñar un circuito con puertas NAND que implemente la función Lo que haremos será aplicar propiedades del Algebra de Boole a esta función hasta dejarla de forma que la podamos implementar directamente con puertas NAND. Podemos hacer lo siguiente: La expresión se implementa con una puerta NAND y la expresión será por tanto la negación de la NAND. Como ya sabemos como negar utilizando una puerta NAND, el circuito resultante es: Implementación de una puerta OR La función que queremos implementar con puertas NAND es: Aplicando propiedades del Algebra de Boole, esta expresión la convertimos en la siguiente: que es el negado de un producto de dos términos, es decir, es una puerta NAND aplicada a A negado y B negado. 59 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Implementación de una puerta XOR La función a implementar con puertas NAND es: Podemos modificarla de la siguiente manera: El circuito nos queda así: _ Ya tenemos implementada la función XOR sólo con puertasn NAND. Ejemplo 1: Implementar la siguiente función utilizando únicamente puertas NAND. La función está simplificada al máximo: Tendremos que aplicar la propiedades del Algebra de Boole para dejar esta expresión de forma que la podamos implementar con puertas NAND. Como el enunciado no nos pone ninguna restricción, podremos usar puertas NAND con el número de entradas que queramos. Una puerta NAND de tres entradas puede realizar las siguientes operaciones: Si aplicamos una doble negación a F y luego aplicamos sucesivamente las leyes de DeMorgan (o el teorema de Shannon): 60 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Esta función es inmediata implementarla con puertas NAND: Ejemplo 2: Implementar la siguiente función utilizando sólo puertas NAND de 2 entradas: Es la misma función que la del apartado anterior, sin embargo, ahora tenemos la restricción de que sólo podemos usar puertas NAND de dos entradas. Si hacemos la misma transformación que antes, obtenemos: _ que tiene la forma y que se implementa fácilmente con una NAND de dos entradas: El problema ahora es cómo implementar los términos Vamos con el primero de ellos. Se puede escribir también de la siguiente forma (aplicando el “truco” de la doble negación): que se implementa de la siguiente forma: _ _ __ _ _ _ _ El otro término lo podemos implementar de forma similar: y ahora juntando todas las piezas e implementando lo que falta: 61 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Implementación de funciones con puertas NOR Lo mismo que con las puertas NAND, con las puertas NOR se puede implementar cualquier función booleana. Vamos a ver cómo se pueden implementar el resto de puertas lógicas. Recordemos que las expresiones a las salidas de las puertas NOR son: Implementación de una puerta NOT Se hace de la misma manera que con las puertas NAND. Si introducimos la misma variable por las dos entradas, obtenemos la variable negada: Implementación de una puerta OR La función a implementar es: Esta expresión la podemos poner de la siguiente manera: __ _ ____ es decir, que podemos utilizar una puerta NOR y luego un inversor, que ya sabemos cómo implementarlo con puertas NOR. Lo que nos queda es: Implementación de una puerta AND La función a implementar es: Podemos realizar las siguientes modificaciones para que pueda ser implementada con puertas NOR: 62 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------_ _ _ _ __ __ Y el circuito quedaría así: Implementación de una puerta XOR La función a implementar es: Haciendo las siguientes modificaciones: ___ _ Uniendo “todas las piezas”, el circuito final que nos queda es: Hemos implementado la puerta XOR sólo con puertas NOR. Aplicación: Diseño de un controlador para un robot seguidor de línea Introducción En este apartado diseñaremos un circuito digital que gobierne el comportamiento de un robot seguidor de línea. El objetivo es que el alumno vea cómo todo lo aprendido hasta ahora se puede aplicar, y obtener también algo de intuición sobre el tipo de circuitos digitales que se pueden diseñar. Obviamente no construiremos el robot entero, esto nos llevaría más tiempo . Partiremos de un robot ya existente, que tiene una estructura mecánica hecha con piezas de Lego, dos motores, dos sensores para detectar el color negro sobre un fondo plano y la electrónica necesaria para controlar los motores y leer los sensores. Este robot se comercializa bajo el nombre de Tritt. Sin embargo utiliza un microcontrolador 6811 para implementar el “cerebro”. Nosotros diseñaremos nuestro propio cerebro digital, para que el robot siga una línea negra. En la figura se muestra el microbot Tritt, junto a un disquete, para hacerse una idea de las dimensiones que tiene. 63 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- APLICACIÓN: DISEÑO DE UN CONTROLADOR PARA UN ROBOT SEGUIDOR DE LÍNEA91 Figura El microbot Tritt En la figura se muestra el mismo microbot Tritt pero sin la tarjeta CT6811 que lleva el microcontrolador 6811. En vez de ella diseñaremos nuestro propio “cerebro digital”. Especificaciones Las especificaciones son: Objetivo: Diseñar un circuito digital, capaz gobernar un microbot, haciendo que éste siga una línea negra pintada sobre un fondo blanco. Sensores: El microbot está dotado de dos sensores digitales capaces de diferenciar el color negro del blanco. La salida de estos sensores es ’0’ cuando leen blanco y ’1’ cuando leen negro. Denominaremos a este bit como C: Sensor C Color Blanco 0 Color Negro 1 Motores: Dos motores de corriente continua que son controlados cada uno mediante dos bits, denominados S y P, descritos mediante la siguiente tabla de verdad: P S Motor 0 0 Parado 0 1 Parado 1 0 Giro derecha 1 1 Giro izquierda El bit P es el bit de ’Power’. Indica si el motor está conectado o no. El bit S es el del sentido de giro. Según su valor el motor girará a la derecha o a la izquierda (siempre que el motor esté activado, con P=1). El robot: El esquema del robot es el siguiente (visto desde arriba): 64 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Sensor 1 Sensor 2 Motor 1 Motor 2 Ruedas Algoritmo: El algoritmo para seguir la línea negra es muy sencillo. Mientras los dos sensores detecten negro, el robot deberá avanzar. Cuando el sensor de la derecha detecte blanco y el de la izquierda negro, el robot girará a la izquierda y cuando ocurra el caso contrario girará a la derecha. Si ambos sensores leen blanco permanecerá parado. Esto se esquematiza en la siguiente figura: Recto Giro izquierda Giro derecha Diagrama de bloques Como primera fase del diseño tenemos que entender qué es lo que se nos está pidiendo y determinar el aspecto que tiene el circuito que hay que realizar. El circuito tendrá dos entradas provenientes de los sensores, y cuatro salidas, dos para cada motor: __ Tabla de verdad Ahora hay que definir el comportamiento del circuito, utilizando una tabla de verdad. Este comportamiento nos lo da el algoritmo de seguir la línea. La tabla de verdad es la siguiente: 65 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Con una ’x’ se han marcado las casillas de la tabla de verdad que es indiferente su valor. Según nos convenga puede valer ’0’ ó ’1’. Ecuaciones booleanas del circuito Puesto que el circuito sólo tiene 2 variables de entrada, es inmediato obtener las expresiones de S1, P1, S2 y P2 __ También se podría haber hecho Karnaugh: Podemos observar que los resultados son los mismos obtenidos anteriormente Implementación del circuito El circuito, implementado con puertas lógicas básicas es el siguiente: Si lo construimos utilizando puertas TTL, necesitamos dos integrados, uno para los inversores y otro para la puerta OR. Si en vez de ello lo implementamos sólo con puertas NAND, el circuito es el siguiente: 66 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Tiene también 3 puertas, pero ahora sólo es necesario un sólo circuito integrado. Análisis de circuitos combinacionales Por análisis entendemos lo contrario de diseño. Al diseñar partimos de unas especificaciones, obtenemos una tabla de verdad o una función booleana, la simplificamos y la implementamos con puertas lógicas. En el análisis partimos de un circuito y tendremos que obtener bien la tabla de verdad, bien la expresión booleana, lo que nos permitirá analizar si el circuito era el más óptimo o nos permitirá hacer una re- implementación de dicho circuito utilizando otra tecnología. Si el circuito tiene pocas entradas, cuatro o menos, lo mejor es hacer la tabla de verdad. Para realizarla tomaremos puntos intermedios en el circuito, que incluiremos también en la propia tabla. Iremos rellenando el valor de estos puntos intermedios hasta obtener el valor de la función. Y como siempre, lo mejor es ver ejemplos. Ejemplo 1: Obtener la tabla de verdad del siguiente circuito: El problema se puede hacer de varias maneras. Y ese suele ser uno de los problemas. ¿Qué camino escojo para obtener la tabla de verdad?. Por un lado podemos obtener la expresión de F, pasando las puertas lógicas a operandos del Algebra de Boole y luego obtener la tabla de verdad. O podemos obtener directamente la tabla de verdad. Sea cual sea el camino elegido, lo primero que haremos será tomar puntos intermedios: seleccionamos las salidas de las puertas lógicas y les asignamos una variable booleana: 67 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- En este circuito hemos tomado dos puntos intermedios, el a y el b. Si decidimos obtener F usando el Algebra de Boole, la expresión que obtenemos es: _ _! _ __ Y ahora la representaríamos en una tabla de verdad. Sin embargo, suele ser más sencillo obtener la tabla de verdad directamente del diseño y luego aplicar karnaugh para obtener la expresión más simplificada de F, si fuese necesario. En la tabla de verdad dibujaremos nuevas columnas en las que aparecen los puntos intermedios, que nos permitirán ir anotando los cálculos intermedios para obtener F más fácilmente. La tabla de verdad sin rellenar es: Y ahora vamos columna por columna, rellenando la información. Comenzaremos por la columna a. Hay que hacer la NAND de B y C. Para no confundirnos, nos dibujamos la tabla NAND para dos variables: 68 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------y nos fijamos en que sólo vale ’0’ cuando ambas variables son 1. Recorremos las filas de B y C buscando el caso en el que B=1 y C=1, y anotamos un ’0’. Para el resto de casos a=’1’. Nos queda lo siguiente: Se ha marcado con “negrita” los dos casos en los que B=1 y C=1. Para el resto de casos “no hemos tenido que pensar”, se puede rellenar de forma directa. Este método nos permite obtener las tablas de verdad de una manera muy rápida y cometiendo muy pocos errores. Continuamos con la siguiente columna. En este caso hay que rellenar una columna con el producto entre B y A. Nuevamente nos fijamos en la tabla de la operación AND y vemos que el resultado sólo vale ’1’ cuando B=1 y A=1. Para el resto de casos se tendrá ’0’: Y por último ya podemos obtener el valor de F, aplicando una operación OR a la columna a con la b. Por la definición de la operación OR (mirando su tabla), sabemos que sólo vale 0 cuando ambos operandos son ’0’. Buscamos ese caso en la tabla y en el resto de filas ponemos un ’1’. La tabla final es: 69 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Aunque no los pide el enunciado del ejercicio, vamos a obtener la expresión más simplificada de F, usando Karnagh, y la vamos a comparar con la expresión F que antes obtuvimos. El diagrama de Karnaugh es muy sencillo de obtener a partir de la tabla de verdad, puesto que sólo un ’0’. Pintamos este ’0’ en su casilla correspondiente (A=0, B=1 y C=1) y el resto de casillas valdrán ’1’: Podemos hacer los siguientes grupos: De los que obtenemos la expresión más simplificada de F: __ _ _ _ Vemos que está más simplificada que la expresión inicial que obtuvimos aplicando el Algebra de Boole. 70 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Ejercicios 71 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 72 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 5 CIRCUITOS MSI (1): Multiplexores y demultiplexores Introducción Los circuitos MSI son los que están constituidos por un número de puertas lógicas comprendidos entre 12 y 100). En este capítulo veremos una serie de circuitos combinaciones que se utilizan mucho en electrónica digital y que son la base para la creación de diseños más complejos. Aunque se pueden diseñar a partir de puertas lógicas, estos circuitos se pueden tratar como “componentes”, asignándoles un símbolo, o utilizando una cierta nomenclatura. Los circuitos que veremos son los siguientes: Multiplexores y demultiplexores Codificadores y decodificadores Comparadores Lo más importante es comprender para qué sirven, cómo funcionan y que bits de entrada y salida utilizan. Estos circuitos los podríamos diseñar perfectamente nosotros, puesto que se trata de circuitos combinacionales y por tanto podemos aplicar todo lo aprendido en el capítulo Similitud entre un multiplexor y un sistema de agua de una granja Multiplexores Conceptos Un Multiplexor es un circuito combinacional al que entran varios canales de datos, y sólo uno de ellos, el que hallamos seleccionado, es el que aparece por la salida. Es decir, que es un circuito que nos permite SELECCIONAR que datos pasan a través de dicho componente. Vamos a ver un ejemplo NO electrónico. Imaginemos que hay dos tuberías (canales de datos) por el que circulan distintos fluidos (datos). Una transporta agua para regar y la otra agua potable. Estas tuberías llegan a una granja, en la cual hay una única manguera por la que va a salir el agua (bien potable o bien para regar), según lo que seleccione el granjero posicionando la llave de paso en una u otra posición. En la figura se muestra un esquema. Las posiciones son la 0 para el agua potable y 1 para el agua de regar. Moviendo la llave de paso, el granjero puede seleccionar si lo que quiere que salga por la manguera es agua potable, para dar de beber al ganado, o agua para regar los cultivos. Según cómo se posicione esta llave de paso, en la posición 0 ó en la 1, seleccionamos una tubería u otra. Pero ¿por qué sólo dos tuberías?. Porque es un ejemplo. A la granja podrían llegar 4 tuberías. En este caso el granjero tendría una llave de paso con 4 posiciones, como se muestra en la figura . Esta llave se podría poner en 4 posiciones distintas para dar paso a la tubería 0, 1, 73 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------2 ó 3. Obsérvese que sólo pasa una de las tuberías en cada momento, ¡y sólo una!. Hasta que el granjero no vuelva a cambiar la llave de paso no se seleccionará otra tubería. Con este ejemplo es muy fácil entender la idea de multiplexor. Es como una llave de paso, que sólo conecta uno de los canales de datos de entrada con el canal de datos de salida. Ahora en vez de en tuberías, podemos pensar en canales de datos, y tener un esquema como el que se muestra en la figura 5.3, en la que hay 4 canales de datos, y sólo uno de ellos es seleccionado por el multiplexor para llegar a la salida . En general, en un multiplexor tenemos dos tipos de entradas: Sistema de agua de 4 tuberías 74 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Dos multiplexores de 4 canales de entrada Entradas de datos: (Las tuberías en el ejemplo). Entrada de selección: Indica cuál de las entradas se ha seleccionado (posición de la llave de paso). Multiplexores y bits Hemos visto cómo a un multiplexor le llegan números por distintas entradas y según el número que le llegue por la entrada de selección, lo manda por la salida o no. Recordemos que los circuitos digitales sólo trabajan con números. Pero estos números, vimos que siempre vendrán expresados en binario y por tanto se podrán expresar mediante bits. ¿Cuantos bits? Depende de lo grande que sean los números con los que se quiere trabajar. En el interior de los microprocesadores es muy normal encontrar multiplexores de 8 bits, que tienen varias entradas de datos de 8 bits. Pero se puede trabajar con multiplexores que tengan 4 bits por cada entrada, o incluso 2, o incluso 1bit. En la figura 5.4 se muestran dos multiplexores que tienen 4 entradas de datos. Por ello la entrada de selección tiene dos bits (para poder seleccionar entre los cuatro canales posibles). Sin embargo, en uno las entradas de datos son de 2 bits y en el otro de 1 bit. Los multiplexores en lo que principalmente nos centraremos son los que tienen canales de 1 bit. A partir de ellos podremos construir multiplexores mayores, bien con un mayor número de canales de entrada o bien con un mayor número de bits por cada canal. Multiplexores de 1 bit y sus expresiones booleanas Llamaremos así a los multiplexores que tienen canales de entrada de 1 bit, y por tanto sólo tienen un bit de salida. Estudiaremos estos multiplexores, comenzando por el más simple de todos, el que sólo tienen una entrada de selección. Multiplexores con una entrada de selección El multiplexor más simple es el que sólo tiene una entrada de selección, S, que permite seleccionar entre dos entradas de datos, según que S = 0 ó 1 Su aspecto es el siguiente: Entrada de Esta figura será la que utilicemos normalmente aunque su representación real sea la que aparece a continuación 75 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Podemos construir la tabla de verdad, en total hay tres entradas. Dos son de datos y una de selección. Cuántas filas habrá en la tabla 2 elevado a tres entradas nos dan un total de 8. Aplicando el método de Karnaugh Obtenemos: o sea ¡¡Es justo la definición de un multiplexor!! La salida toma el valor de una de las entradas, según el valor que tome la entrada de selección. Multiplexores con dos entradas de selección. El siguiente multiplexor en complejidad es el que tenga 2 entradas de selección, por lo que se podrá seleccionar hasta 4 entradas posibles. Habrá por tanto 4 entradas de datos. El circuito es como el siguiente: Hay 4 entradas de datos y 2 entradas de selección, en total 6 entradas. Ahora hacemos lo mismo que antes, construimos la tabla de verdad y aplicamos Karnaugh... pero.... ¿6 variables? Tendríamos 2 elevado a 6 filas es decir 64 filas y si pretendemos hacer el Karnaugh sería muy laborioso. De todas formas el resultado final sería: En encuaderno de prácticas, utilizamos los multiplexores para dar solución a distintos circuitos combinacionales 76 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Demultiplexores Conceptos El concepto de demultiplexor es similar al de multiplexor, viendo las entradas de datos como salidas y la salida como entradas. En un multiplexor hay varias entradas de datos, y sólo una de ellas se saca por el canal de salida. En los demultiplexores hay un único canal de entrada que se saca por una de las múltiples salidas (y sólo por una!!!). Si utilizamos el símil de la granja y las tuberías, podemos imaginar el siguiente escenario. Supongamos que ahora a la granja le llega una única tubería con agua, pero en el interior de la granja hay varias mangueras, cada una para limpiar una zona del establo o dar de beber a los animales de esa zona. Cómo sólo hay un granjero, sólo podrá usar una de las mangueras cada vez (el granjero no podrá usar a la vez dos mangueras, porque están en sitios diferentes!!). Para seleccionar qué manguera quiere usar en cada momento, hay una llave de paso, de manera que si la sitúa en una posición, el agua que viene por la entrada saldrá por la manguera 0, mientras que si la sitúa en la otra posición, el agua saldrá por la manguera 1 De la misma manera que en los multiplexores puede haber varias entradas, en los demultiplexores puede haber varias salidas. Por ejemplo en la figura 5.6 se muestra el mismo sistema de tuberías de la granja, pero ahora hay 4 mangueras, para llegar a 4 zonas distintas de la granja. Ahora el granjero tendrá que posicionar la llave de paso en una de las 4 posiciones posibles, para que el agua salga por la manguera seleccionada. Ya comprendemos cómo funcionan los demultiplexores. Si lo aplicamos al mundo de la electrónica, en vez de tuberías tendremos canales de datos. Habrá un único canal de entrada, por el que llegarán números, que saldrán sólo por uno de los canales de salida, el que tengamos seleccionado, como se muestra en la figura En general en un demultiplexor tendremos: Una entrada de datos Esquema de demultiplexor, como sistema de agua de una granja 77 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Igual que el caso anterior pero con cuatro canales Podemos observar que el funcionamiento del mismo es igual que los multiplexores, con sus entradas de selección sino que al revés. Varios canales de datos de salida. Sólo estará activo el que se haya seleccionado. Juntando multiplexores y demultiplexores Uso de un multiplexor y demultiplexor para transmisión de datos por un único cable Podemos ver que a la salida del multiplexor se encuentra la información enviada por los 4 sistemas. Se dice que esta información está multiplexada en el tiempo. Al final de esta línea hay un demultiplexor que realiza la función inversa. Un circuito de control selecciona periódicamente 78 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Ejemplos gráficos y tabla del demultiplexor de dos entradas de selección y salidas de un bit por canal , que es el más utilizado. La tabla de verdad abreviada la ponemos a continuación La entrada I se saca por la salida indicada en las entradas de selección. Las funciones de salida son: Y así sucesivamente. Multiplexores con entrada de validación (ENABLE) Los multiplexores, y en general la mayoría de circuitos MSI, disponen de una entrada adicional, llamada entrada de validación (en inglés Enable). Esta entrada funciona como un interruptor de encendido/apagado para el circuito MSI. Si la entrada de validación está activada, el circuito funcionará normalmente. Pero si esta está desactivada, el circuito sacará el valor ’0’ por todas sus salidas, independientemente de lo que llegue por sus entradas. Se dice que está deshabilitado (no está en funcionamiento). Las entradas de validación se les suele llamar E (del inglés Enable) y pueden ser de dos tipos: activas a nivel alto ó activas a nivel bajo. 79 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Se puede poner esta tabla de manera más abreviada y el resultado aparece a continuación Extensión de multiplexores La idea es poder conseguir tener multiplexores más grandes a partir de otros más pequeños. Y esto es necesario porque en nuestros diseños podemos necesitar unos multiplexores grandes, sin embargo en el mercado nos encontramos con multiplexores menores. Tenemos que saber cómo construir los multiplexores que necesitamos para nuestra aplicación a partir de los multiplexores que encontramos en el mercado. La extensión puede ser bien aumentando el número de entradas, bien aumentando el número de bits por cada canal de datos o bien ambos a la vez. Aumento del número de entradas La solución es conectarlos en cascada. Lo mejor es verlo con un ejemplo. Imaginemos que necesitamos un multiplexor de 8 canales, pero sólo disponemos de varios de 2 canales: A continuación conectamos los multiplexores necesarios para obtener el de 8 entradas por comodidad en el dibujo las entradas de selección se unen. 80 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- De la misma manera podíamos conectar multiplexores de cuatro entradas y obtener multiplexores de 16 canales Aumento del número de bits por canal Para conseguir esto hay que conectarlos en paralelo. Imaginemos que queremos construir un multiplexor de dos canales de entrada, cada uno de ellos de 2 bits, y para ello disponemos de multiplexores de 2 canales de un bit: 81 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Implementación de funciones con MX’s Utilizando multiplexores es posible implementar funciones booleanas. En general, cualquier función de n variables se puede implementar utilizando un multiplexor de n-1 entradas de selección. 82 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 83 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 6 Codificadores, decodificadores y comparadores Introducción En este capítulo veremos otros circuitos MSI: codificadores, decodificares y comparadores. Codificadores Conceptos Los codificadores nos permiten “compactar” la información, generando un código de salida a partir de la información de entrada. Y como siempre, lo mejor es verlo con un ejemplo. Imaginemos que estamos diseñando un circuito digital que se encuentra en el interior de una cadena de música. Este circuito controlará la cadena, haciendo que funcione correctamente. Una de las cosas que hará este circuito de control será activar la radio, el CD, la cinta o el Disco según el botón que haya pulsado el usuario. Imaginemos que tenemos 4 botones en la cadena, de manera que cuando no están pulsados, generan un ’0’ y cuando se pulsa un ’1’ (Botones digitales). Los podríamos conectar directamente a nuestro circuito de control la cadena de música, como se muestra en la figura Sin embargo, a la hora de diseñar el circuito de control, nos resultaría más sencillo que cada botón tuviese asociado un número. Como en total hay 4 botones, necesitaríamos 2 bits para identificarlos. Para conseguir esta asociación utilizamos un codificador, que a partir del botón que se haya pulsado nos devolverá su número asociado: El codificador que hemos usado tiene 4 entradas y 2 salidas, por lo que se llama codificador de 4 a 2 84 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Existen codificadores de mayor número de entradas, como el que vamos a ver en el siguiente ejemplo. Imaginemos que ahora queremos hacer un circuito para monitorizar la situación de un tren en una vía. En una zona determinada, la vía está dividida en 8 tramos. En cada uno de ellos existe un sensor que indica si el tren se encuentra en ese tramo (el sensor devuelve 1) o fuera de él (valor 0). Se ve claramente que cuando uno de los sensores esté activado, porque que el tren se encuentre en ese tramo, el resto de sensores devolverán un ’0’ (No detectan al tren). Si conectamos todas las entradas de los sensores a un codificador de 8 a 3, lo que tendremos es que a la salida del codificador saldrá un número que indica el tramo en el que se encuentra el tren. El circuito de control que conectemos a las salidas de este codificador sólo necesita 3 bits de entrada para conocer el tramo en el que está el tren, y no es necesario 8 bits. ¡¡Su diseño será más simple!!. La tabla de verdad es: _ ___ _ _ _ _ _ _ _ __ _ _ _ Ecuaciones A continuación deduciremos las ecuaciones de un codificador de 4 a 2, y luego utilizaremos un método rápido para obtener las ecuaciones de un codificador de 8 a 3. El codificador de 4 a 2 que emplearemos es el siguiente: Las ecuaciones las obtenemos siguiendo el mismo método de siempre: primero obtendremos la tabla de verdad completa y aplicaremos el método de Karnaugh. Con ello obtendremos las ecuaciones más simplificadas para las salidas _ Al hacer la tabla de verdad, hay que tener en cuenta que muchas de las entradas NO SE PUEDEN PRODUCIR. En las entradas de un decodificador, una y sólo una de las entradas estará activa en cada momento. Utilizaremos esto para simplificar las ecuaciones. Se ha utilizado una X para indicar que esa salida nunca se producirá: _ _ __ _ _ _ _ _ 85 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Tabla general para poder aplicar los Karnaugh Las ecuaciones resultantes son las siguientes: Las ecuaciones para el decodificador de 8 a 3 por el método rápido son las siguientes: 86 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Decodificadores Conceptos Un decodificador es un circuito integrado por el que se introduce un número y se activa una y sólo una de las salidas, permaneciendo el resto desactivadas. Y como siempre, lo mejor es verlo con un ejemplo sencillo. Imaginemos que queremos realizar un circuito de control para un semáforo. El semáforo puede estar verde, amarillo, rojo o averiado. En el caso de estar averiado, se activará una luz interna “azul”, para que el técnico sepa que lo tiene que reparar. A cada una de estas luces les vamos a asociar un número. Así el rojo será el 0, el amarillo el 1, el verde el 2 y el azul (averiado) el 3 Para controlar este semáforo podemos hacer un circuito que tenga 4 salidas, una para una de las luces. Cuando una de estas salidas esté a ’1’, la luz correspondiente estará encendida. Sin embargo, ocurre que NO PUEDE HABER DOS O MAS LUCES ENCENDIDAS A LA VEZ. Por ejemplo, no puede estar la luz roja y la verde encendidas a la vez!!!!. Circuito de control del semáforo, usando un decodificador de 2 a 4 Si utilizamos un decodificador de 2 a 4, conseguiremos controlar el semáforo asegurándonos que sólo estará activa una luz en cada momento. Además, el circuito de control que diseñemos sólo tiene que tener 2 salidas El funcionamiento es muy sencillo. Si el circuito de control envía el número 2 en binario 1 0 se encenderá la luz verde (que tiene asociado el número 2) y sólo la luz verde!!!. Un decodificador activa sólo una de las salidas, la salida que tiene un número igual al que se ha introducido por la entrada. En el ejemplo del semáforo, si el circuito de control envía el número3, se activa la salida y se encenderá la luz azul (y sólo esa!!). A la hora de diseñar el circuito de control, sólo hay que tener en cuenta que cada luz del semáforo está conectada a una salida del decodificador y que por tanto tiene asociado un número diferente. 87 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Tablas de verdad y Ecuaciones Decodificador de 2 a 4 Comenzaremos por el decodificador más sencillo, uno que tiene 2 entradas y 4 salidas, como se muestra en la figura Y las ecuaciones las podemos obtener desarrollando por la primera forma canónica. Puesto que por cada función de salida sólo hay un ’1’, no se podrá simplificar (No hace falta que hagamos Karnaugh): _ _ __ Si_ Si el decodificador dispone de entrada de validación como los multiplexores, habrá que tenerlas en cuenta y las ecuaciones irán multiplicadas por esa entrada. La entrada de validación puede ser activa a nivel alto o bajo Decodificador de 3 a 8 Tiene 3 entradas y 8 salidas. La tabla de verdad abreviada es la siguiente: _ _ __ _ _ 88 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Tipos de decodificadores según sus salidas Las salidas de los decodificadores pueden ser activas a nivel alto o a nivel bajo. Así, tendremos dos tipos: los decodificadores con salidas activas a nivel alto y los decodificadores con salidas activas a nivel bajo. Todos los que hemos visto hasta ahora son decodificadores activos a nivel alto, lo que quiere decir que si una salida está activa por ella sale un ’1’, y si está desactivada un ’0’. Sin embargo, en los decodificadores con salidas activas a nivel bajo ocurre justo lo contrario. Aplicaciones de los decodificadores Además del uso normal de los decodificadores, como parte de nuestros diseños, existen otras aplicaciones que veremos a continuación. Como Demultiplexor Si examinamos las tablas de verdad, observamos que realmente un decodificador con una entrada de validación se comporta como un demultiplexor. De hecho no existen circuitos integrados con demultiplexores, sino que se usan decodificadores. También se pueden utilizar como: Implementación de funciones Ejemplo de implementación de una función con multiplexor , decodificador y puertas nand. Ensayo y comprobación con decodificadores que implementan una función lógica En un registro de cuatro bits, cuyas salidas están disponibles al exterior se almacena información en el código BCD Natural,. Realizar la tabla de verdad de un circuito que detecte que el número contenido en el registro esté comprendido entre 0 y 2 y entre 4 y 8. Confeccionamos la tabla, según las premisas del enunciado y a continuación ponemos los Karnaugh para deducir la ecuación con puertas nand y también para el multiplexor. Este último lo haremos de forma distinta a como se ha explicado, aunque también se puede hacer utilizando la forma rápida 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 8 9 - 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 89 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Representación teórico-práctico de las tres formas de solución del ejercicio propuesto En las clases teóricas, se explicarán cómo se obtienen las ecuaciones a partir del decodificador y el proceso de cálculo para la solución a través del multiplexor. 90 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 91 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- CIRCUITOS COMPARADORES Introducción En electrónica digital, como en otros campos, sobre todo en el analógico, es frecuente la comparación de diversas magnitudes. La comparación es algo imprescindible en todo el tema de regulación y control automático, para obtener una determinada salida y en función de ella efectuar la realimentación y ajustes necesarios. Analizaremos a continuación la comparación en el ámbito digital Comparación de palabras.Iniciaremos el tema de comparadores con la comparación de dos palabras ( se le da el nombre de palabra en lógica digital a un grupo de bits ordenados según su peso), en este caso de dos palabras de un solo bit. Ejemplo: Necesitamos comparar la palabra A con la palabra B, para ello dispondremos de una tabla combinacional de dos entradas y de tres salidas. Como es lógico las tres salidas serán: A>B A=B A<B A 0 0 1 1 B A>B A=B A<B 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 Directamente de la tabla podemos deducir los valores de las tres salidas F A>B = A*B FA=B = A O B FA<B = A*B Según hemos comprobado este circuito solo sirve para comparar dos palabras de un solo bit, podemos deducir que, si la palabra es mayor en número de bits bastará con acoplar un número de comparadores simples como bits tengan las palabras a comparar. Lo más importante será que estando conectados en cascada, automáticamente se puedan conectar de un bloque a otro en función de las comparaciones de los bits de menor peso. Para efectuar todo esto debemos incorporar a las ecuaciones obtenidas anteriormente una nueva entrada tal como aparece en el diagrama de bloques Dicha entrada es la de Inhibición, para que cuando valga “0”, a partir de ahí el circuito deja de analizar o comparar y cuando valga “1” se activará el bloque siguiente. Las ecuaciones anteriores bastarán con modificarlas y convertirlas en las siguientes F A>B = A*B*Ei FA=B =( A O B)* Ei FA<B = A*B*Ei A continuación representaremos las ecuaciones 92 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Bastará confeccionar una tabla que sirva para que los comparadores simples se puedan activar en función de los valores de A y B. Es decir cuando los dos bits de mayor peso de las palabras a comparar sean iguales. A continuación aparece la tabla que ejerce la función de comparación de dos palabras de cuatro bits. A3B3 A3>B3 A3<B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A3=B3 A2B2 X X A2>B2 A2<B2 A2=B2 A2=B2 A2=B2 A2=B2 A2=B2 A1B1 X X X X A1>B1 A1<B1 A1=B1 A1=B1 A1=B1 A0B0 X X X X X X A0>B0 A0<B0 A0=B0 A>B 1 0 1 0 1 0 1 0 0 A=B 0 0 0 0 0 0 0 0 1 A<B 0 1 0 1 0 1 0 1 0 Se deja el diseño final del comparador para que el alumno lo realice, en su momento en el cuadernillo de prácticas. Aunque comercialmente existan comparadores, es necesario que el alumno sepa diseñarlos, lo mismo que otros circuitos del tipo MSI. Es decir circuitos que por sí mismos hagan una determinada operación, como por ejemplo en este caso, en los sumadores , decodificadores, etc 93 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 94 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 7 CIRCUITOS ARITMETICOS SISTEMAS COMBINACIONALES ARITMÉTICOS 1. LA ARITMÉTICA BINARIA DE NÚMEROS CON SIGNO La aritmética del sistema de numeración binario que hemos visto ha sido la de números sin signos, pero en este apartado vamos a estudiar el tratamiento especial que tiene la consideración de signo. Y esto nos dará lugar a diferentes representaciones. 1.1. Representación MAGNITUD-SIGNO La representación en magnitud-signo de un número consiste en escribir el número es sistema binario natural y añadir un bit a la izquierda con valor " 0 " para números positivos y con valor " 1 " para números negativos. 1.2. Representación mediante COMPLEMENTOS El utilizar la representación magnitud-signo en un sistema digital significaría la utilización de un circuito para realizar las sumas y otro distinto para realizar restas. Por este motivo se utilizan los complementos que son representaciones para convertir restas en sumas ( se resta sumando ) y así simplificar la circuitería. figura 1. proceso de conversión de operación resta en suma mediante los complementos 1.2.a. Complemento a uno ( C1 ) El complemento a uno de un número binario es el número que se obtiene al cambiar los ceros por unos y unos por ceros (complementar). Por ejemplo, para obtener el C1 de 101101 sería 010010. 1.2.b. Complemento a dos ( C2 ) El complemento a dos de un número binario es el que se obtiene sumando 1 al C1. 95 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Los pasos que se deben seguir para decodificar un número representado en C2 son los siguientes, teniendo en cuenta que el bit de más peso (MSB), representa el signo: • Si el primer bit de la izquierda es 0 el número es positivo. Entonces el número representado es el equivalente del número binario que forma el resto de bits. • Si el primer bit es 1 el número es negativo. Entonces el número representado es el opuesto del equivalente decimal del número binario que forma su complemento a dos. Vamos a ver un ejemplo: el C2 (0001) sería +1, mientras que el C2 (1111) representa un número negativo entonces lo que hago es obtener su C1 que sería 0000 y le sumo 1, obteniendo el 0001 que es el número decimal 1, pero como se que es negativo, sería el -1. Representación binaria en C2 con 4 bits La operación aritmética de resta en C2 se realiza de la siguiente forma: La representación binaria de +42 es 0101010 y poniendo el bit de signo será 00101010, mientras que el C2(-19) será tomando el binario de 19 que es 0010011 realizo el C1 obteniendo el 1101100 y su C2 será C1+1 = 1101101. Le añado un uno delante para indicar que es negativo y entonces realizo la resta (que se ha transformado en una suma). Si la operación fuera una suma realizaría la codificación en C2 de ambos números como lo he hecho para el número 42 de ejemplo anterior. 96 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------AMPLIACIÓN SOBRE LA SUMA Y RESTA DE NÚMEROS. EJEMPLOS SOBRE COMPLEMENTACIÓN. 97 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 98 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 99 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 100 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 101 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 102 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 103 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 104 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Existen otras fortmas como sumar en BCD natural (Decimal codificado en Binario) 105 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Pongamos algún que otro ejemplo SUMADORES BINARIOS La suma binaria para números de un bit es la siguiente: 106 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Pero cuando tengo números binarios formados por más de un bit, al operar aparece el acarreo (carry) Circuito semisumador y sumador completo Circuito semisumador Si realizamos el semisumador para dos números A y B de un bit nos queda: Realizando su implementación mediante puertas queda Se le denomina normalmente HA de half-adder. 107 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Circuito sumador completo Este se diferencia del anterior que para el bit i-ésimo se introduce el acarreo resultado del bit i-1. La tabla de verdad será : Las expresiones lógicas obtenidas de la tabla de verdad son Si implementamos mediante puertas: 108 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Sumador paralelo con acarreo SERIE ( Ripple Carry ) El problema de este sumador es que el resultado no está disponible hasta que no se van generando desde el bit menos peso al de más, o sea debo esperar a que lleguen al MSB. Por tanto, se trata de un circuito lento que además aumenta su retardo según aumenta el número de bits de los operandos. En este caso tendríamos que utilizar el sumador con acarreo paralelo o anticipado (Carry LookAhead) Para solucionar el retardo con este circuito obtengo de forma rápida el acarreo de entrada de todas las etapas del sumador. Por tanto los bits de la suma se obtienen simultáneamente. La idea consiste en obtener la generación de acarreo ( Gi ) y la propagación de acarreo ( Pi ) de una forma independiente de cada bit para la obtención del último acarreo mucho más rápido ( antes tenía que esperar a que se realizaran todos para obtenerlo ). De la misma manera que hemos incluido la solución del problema de diseño de la solución con multiplexores y decodificadores, en el cuadernillo de prácticas tendremos ocasión de diseñar un caso práctico de sumador. 109 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 110 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 8 BIESTABLES 1. INTRODUCCIÓN: El biestable como elemento básico de memoria. Los BIESTABLES nos son necesarios para la síntesis de los circuitos secuenciales, que son aquellos cuya salida depende de la entrada actual y de las entradas en momentos anteriores. Los biestables serán los encargados de almacenar ( MEMORIA ) el estado interno del sistema. Pero aquí nos aparece un concepto nuevo llamado estado interno que para poder entenderlo intuitivamente vamos a poner un ejemplo fuera de la electrónica. Si consideramos el sistema BOLIGRAFO podemos definir: • • • el conjunto de entradas: PULSAR Y NO PULSAR el conjunto de salidas : SALE PUNTA, ENTRA PUNTA y NO SE MUEVE PUNTA. el conjunto de ESTADOS INTERNOS : PUNTA DENTRO y PUNTA FUERA. Como puedo observar los estados internos de un sistema me definen todas las situaciones diferenciadas por las que puede pasar o a las que puede evolucionar mi sistema. Los biestables son circuitos binarios ( con dos estados ) en los que ambos estados son estables de forma que hace falta una señal externa de excitación para hacerlos cambiar de estado. Esta función de excitación define al tipo de biestable ( D,T, RS o JK ). En la electrónica combinacional no existía el tiempo, sin embargo en la electrónica secuencial es esencial, la posición relativa en la que ocurren los sucesos ( eventos ). Con la introducción anterior podemos definir formalmente un biestable como un circuito secuencial con dos estados estables, es decir tiene memoria y una con una salida que puede permanecer indefinidamente en uno de los dos estados posibles. Al ser secuencial las salidas dependen de las entradas y del estado anterior. Un biestable almacena la información de 1 bit. 111 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Mediante biestables que son la base de los circuitos secuenciales en combinación con una adecuada lógica combinacional podremos construir: contadores, registros de desplazamiento, temporizadores, memorias y en general cualquier autómata. 2. Biestables RS con puertas NAND y NOR. El estado del circuito biestable será el contenido de la memoria. La memoria se consigue mediante la realimentación, o sea introduciendo la salida otra vez a la entrada. Si Qn es el estado actual o presente y Qn+1 el estado futuro entonces se consigue el estado de memoria Para poder modificar este estado de memoria debo añadir entradas y así cambiar el estado. Si llamamos a estas entradas R ( reset ) y S ( set ) obtenemos el biestable RS. Los biestables RS se pueden implementar con puertas NOR y NAND. A este tipo de biestables que son activos por nivel se les denomina LATCH. 112 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Cuando aplicamos un “1” a S originamos una situación no permitida. Situación que eliminamos utilizando el biestable JK. 113 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Hasta ahora los biestables representados son asíncronos, es decir no están sincronizados con una determinada señal de reloj. Las salidas sólo dependen del valor de las entradas. Los biestables síncronos, además desvalor de las entradas también dependerán de que exista una señal de reloj. Esta señal se identificará por nivel, por flaco de subida o por flanco de bajada. Preferentemente utilizaremos este último, debido a que de esta forma utilizaremos el flanco de subida como instante en que se toma el valor de las entradas para que en función de estas, el biestable bascule su salida. Dicho de otra forma: La necesidad de establecer los instantes de tiempo en un circuito secuencial basado en biestable nos lleva a la introducción de señales de reloj que nos marcan esos instantes. En cuanto al comportamiento respecto a los instantes de tiempo los circuitos se dividen en : • • Circuitos asíncronos : cada variación en las entradas afecta al estado del circuito ( es igual a definir un nuevo instante de tiempo ) Circuitos síncronos : Una señal de reloj establece los instantes en los que se modifica el estado del circuito. Los circuitos síncronos se dividen a su vez en : • • Síncronos por nivel : El instante en el que se modifica el estado del circuito es un semiciclo de reloj. Síncronos por flanco : El instante en el que se modifica el estado del circuito es un flanco del reloj. Esto me lleva a la siguiente clasificación de los biestables : • • Latch: Se les llama así a los biestables asíncronos o síncrono por nivel. ( ver figura 2 el biestable asíncrono RS por nivel ). Flip-flop : Se les llama así a todos los biestables síncronos por flanco. Biestable RS síncrono por nivel Se añade una señal de reloj al Latch RS básico ( asíncrono ) quedando de la siguiente forma 114 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Aquí tenemos que: R´= R. CK y S´= S.CK La representación normal en los ejercicios sería de esta forma: Esta representación corresponde a los biestables síncronos ya que aparece la señal de reloj en el centro. Dibujamos también el preset y reset, si ambos los llevamos a tensión alta, los anulamos de manera que el biestable evolucionará según el valor de las entradas y si al mismo tiempo coincide un flanco de bajada del reloj (normalmente trabajaremos por flancos de bajada. A continuación pondremos las tablas de excitación de los biestables más comunes utilizados en los ejercicios para determinar las entradas en función de la señal de salida. A 0 0 1 1 B 0 1 0 1 J 0 1 X X K X X 1 0 R X 0 1 0 S 0 1 0 X T 0 1 1 0 D 0 1 0 1 Esta tabla de excitación nos será de utilidad para la confección de las tablas para el diseño de los contadores síncronos. Para determinar las conexiones de los contadores asíncronos, ya sean completos o con puesta a cero o a un determinado número. Por supuesto será de ayuda inestimable para la confección de los divisores de frecuencia. Desde el momento en que los registros de desplazamiento están integrados por flip-flop, es necesario conocer su funcionamiento, ya sean síncronos o asíncronos y cómo no, en la confección de memorias RAM. 115 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Hay que tener presente que en el caso de que necesitemos convertir un flip-flop en otro, si no disponemos de las tablas de excitación sería imposible llevarlo a cabo. A continuación se citan algunos ejercicios para justificar todo lo anterior Por ejemplo Diseñar un contador síncrono con biestables D módulo 5 0 1 2 3 4 5 6 7 q1 0 0 0 0 1 1 1 1 Qt q2 0 0 1 1 0 0 1 1 q3 0 1 0 1 0 1 0 1 Qt+1 q1 q2 0 0 0 1 0 1 1 0 0 0 x x x x x x q3 1 0 1 0 0 x x x Biestables D1 D2 0 0 0 1 0 1 0 0 0 0 x x x x x x D3 1 0 1 0 0 x x x Una vez que hemos realizado la tabla sólo tenemos que dibujar el circuito teórico y práctico Ejercicio para que el alumno intente diseñarlo: Realizar la tabla contador síncrono módulo 6 con biestables JK Ejercicio práctico resuelto:. Obtener un biestable JK a partir de un RS. Lo primero que tenemos que hacer es poner la tabla de equivalencia de ambos biestables Qt Qt+1 J 0 0 0 0 1 1 1 0 x 1 1 x S = J.Q´t K x x 1 0 R x 0 1 0 S 0 1 0 x JK Qt 00 01 11 10 0 x x 1 1 1 x JK Qt 00 01 11 10 0 1 1 1 x x R = K Qt El resultado será el con biestable siguiente, el ejemplo lo hacemos asíncrono 116 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- El alumno como ejercicio podrá experimentar con los distintos biestables: de JK a RS o a T , o a D 117 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 118 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 9 REGISTROS Al igual que los contadores, los registros están formados por biestables . los registros comerciales están formados por integrados MSI. Los registros son bloques funcionales destinados a almacenar o registrar información binaria durante un cierto tiempo. Así como un biestable puede almacenar un bit un conjunto de n biestables compondrá un número n de bits. Los registros pueden ser de almacenamiento y de desplazamiento. Los registros de almacenamiento están formados por un conjunto de biestables (normalmente de tipo D) aislados entre sí, con una señal de reloj común a todos ellos, de forma que todos se cargan simultáneamente los datos presentes en sus entradas, siendo accesibles en cada momento sus entradas y salidas. Si los registros de almacenamiento se activan por nivel, también reciben el nombre de latch (cerrojo), también se pueden disparar por flanco. La forma en que se hacen llegar los datos de entrada o cómo se recogen en la salida da posteriormente al tipo de registros. Los datos pueden ser transferidos en serie y en paralelo. Cuando, además de la función de memoria, se requiere dentro de un registro el poder de desplazar bit de un biestable a otro, se generan los registros de desplazamiento. Un registro de desplazamiento consta esencialmente de una cadena de biestables conectados en cascada, siendo la salida de uno la entrada del siguiente. Para convertir el circuito en síncrono se conecta una señal de reloj a todos los biestables para que transfieran al mismo tiempo su contenido. Los registros de desplazamiento normalmente están formados por biestables del tipo JK. Según la forma de recibir o dar información pueden dividirse en: Entrada serie / salida serie Entrada serie / salida paralelo Entrada paralelo /salida serie Entrada paralelo /salida paralelo El desplazamiento puede conseguirse de izquierda a derecha o viceversa. La utilización de los registros de almacenamiento hace honor a su nombre, de tal manera que están destinados a almacenar una información durante un tiempo determinado para operar con ella o simplemente representar los resultados en un display pasando a través de un decodificador. La utilización de los registros de desplazamiento, también sirven para almacenar una información un tiempo determinado hasta que ésta es volcada en uno de almacenamiento, pero entre otras, también se utiliza como contadores y generadores de una determinada secuencia, algo que veremos más adelante. El esquema que aparece a continuación es un registro de almacenamiento con biestables D. Entrada de datos en paralelo y salida de datos también en paralelo. Podemos observar que las entradas preset están conectadas a 5 v, con lo que las inutilizamos y el reset lo conectamos a un circuito automático, que en un principio resetea y después cuando el condensador se cargue aplicamos cinco voltios con lo que también anulamos la posibilidad de que el reset ponga a cero la salida del biestable. El tiempo que tardará esta transición vendrá determinado por : T = 1,2 R. C, en los que la resistencia vendrá dada en ohmios y la capacidad en faradios = al tiempo en segundos. 119 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- En la figura tenemos un ejemplo de un registro de desplazamiento, entrada serie/ salida paralelo 120 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Contadores y registros comerciales 121 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 10 CIRCUITOS DIGITALES AUXILIARES Cuando se trabaja con circuitos digitales, frecuentemente es necesario utilizar circuitos que sean capaces de generar impulsos o de conformarlos (adaptarlos), mantenerlos durante un tiempo determinados, retardarlos, adaptar las señales que se obtienen de las puertas lógicas para excitar a otros circuitos. Esos circuitos de los que estamos hablando podrían ser entre otros: - Multivibradores monoestables - Multivibradores astables - Temporizadores - Circuitos adaptadores de entrada y salida de puertas lógicas. Los circuitos monoestables son circuitos que a su salida tienen un estado estable (0 o 1) y un estado inestable ( 1 o 0). Estos circuitos permanecen en su estado estable durante un tiempo indefinido y cuando se los excita por medio de una señal de disparo, permanecen en el estado inestable o metaestable durante un tiempo relativamente largo, en comparación con el tiempo mínimo que necesita la señal de disparo para pasar a ese estado. Conclusión: Poseen un sólo estado estable y otro metaestable Las aplicaciones que podemos encontrar a estos circuitos monoestables serían las siguientes. - Generar impulsos de anchura controlable Conformar impulsos en sistemas digitales Regenerar y dar la forma primitiva a impulsos deformados en transmisión Retardar impulsos digitales Establecer un intervalo de tiempo fijo entre el principio y el fin de la transición de datos • Circuitos Biestables o Flip-Flop (FF): Son aquellos que cambian de estado cada vez que reciben una señal de entrada (ya sea nivel bajo o alto), es decir retienen el dato de salida aunque desaparezca el de entrada. Conclusión: Poseen dos estados estables • Circuitos Astables : Son circuitos gobernados por una red de tiempo R-C (Resistencia -Capacitor) y un circuito de realimentación, a diferencia de los anteriores se puede decir que no poseen un estado estable sino dos metaestables De todos los circuitos astables el más conocido es el que se construye con un integrado NE555, no obstante podemos utilizar casi cualquier elemento para confeccionar uno, en este caso con dos inversores. 122 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Oscilador Simétrico con compuertas NOT Supongamos que determinado momento la salida del inversor B está a nivel "1", entonces su entrada esta a "0", y la entrada del inversor "A" a nivel "1". En esas condiciones C se carga a través de R, y los inversores permanecen en ese estado. Cuando el capacitor alcanza su carga máxima, se produce la conmutación del inversor "A". Su entrada pasa a "0", su salida a "1" y la salida del inversor "B" a "0", se invierte la polaridad del capacitor y este se descarga, mientras tanto los inversores permanecen sin cambio, una vez descargado, la entrada del inversor "A" pasa nuevamente a "1", y comienza un nuevo ciclo. Este efecto es continuo y no parará hasta que se desconecte. Este oscilador es simétrico ya que el tiempo que dura el nivel alto es igual al que permanece en nivel bajo. T = 2,5 R. C, donde el tiempo viene determinado en segundos , R en Ohmios y la capacidad en faradios. Si recordamos las leyes de De Morgan, podemos sustituir, si queremos, los inversores por puertas NAND de dos entradas de la forma siguiente De la misma forma podemos hacerlo con puertas NOR Podemos utilizar las combinaciones que queramos, no obstante, podemos sustituir la resistencia R por un potenciómetro o resistencia variable con lo que podemos variar la velocidad de conmutación del mismo. Exactamente cambiamos la frecuencia de este generador de ondas cuadradas. Podemos probar este en el programa, usando tres inversores 123 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Disparadores Schmitt Trigger Algo que no vimos hasta ahora son las compuertas SCHMITT TRIGGER o disparadores de Schmitt, son iguales a las compuertas vistas hasta ahora pero tienen la ventaja de tener umbrales de conmutación muy definidos llamados VT+ y VT-, esto hace que puedan reconocer señales que en las compuertas lógicas comunes serían una indeterminación de su estado y llevarlas a estados lógicos definidos, mucho mas definidos que las compuertas comunes que tienen un solo umbral de conmutación. Supongamos la salida a nivel lógico 1, C comienza a cargarse a través de R, a medida que la tensión crece en la entrada de la compuerta esta alcanza el nivel VT+ y produce la conmutación de la compuerta llevando la salida a nivel 0 y el capacitor comienza su descarga. Cuando el potencial a la entrada de la compuerta disminuye por debajo del umbral de VT-, se produce nuevamente la conmutación pasando la salida a nivel 1, y se reinicia el ciclo. No sólo existen inversores Schmitt Trigger, sino también compuertas AND, OR, NOR, etc, y ya sabemos como utilizarlas A continuación representaremos una serie de circuitos, empezando por un circuito multivibrador astable con elementos discretos. Podemos observar el circuito que es completamente simétrico, con lo que una vez conectado se producirán sobreoscilaciones hasta que el transistor de menor tensión de umbral se adelante al otro y se ponga a conducir. Después los mecanismos de constante de tiempo serán los únicos que influirán en la conducción de uno y el paso al corte de otro y viceversa, la señal de salida la tenemos presente en la pantalla del osciloscopio. 124 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- También disponemos a continuación de un circuito multivibrador astable, con el integrado 555 La figura inferior también nos muestra un circuito monoestable, en el que el tiempo que durará el estado inestable será aproximadamente t = 1,1 R.C, el resultado en segundos. 125 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Circuito retardador de señal con puertas lógicas. Estos circuitos se caracterizan por presentar a su salida el estímulo de entrada retardado un tiempo t = 1,1 R.C. Estos circuitos presentan el inconveniente de que la señal de disparo debe estar presente en la entrada hasta que se genere la señal de salida 126 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Imágenes de circuitos auxiliares 127 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 128 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 129 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 11 AUTOMATAS FINITOS Llamamos autómatas finitos a todos los circuitos sincronizados con la señal de reloj en un sistema. Dentro de estos circuitos podemos incluir los contadores síncronos, divisores de frecuencia o cualquier autómata que, una vez iniciado podamos obtener una salida debida a la evolución de los estados, teniendo en cuenta o no, la señal de entrada. Fundamentalmente existen dos tipos de de modelo de autómatas: Modelo MOORE: La salida sólo depende de los estados internos, según podemos observar en la figura siguiente: Modelo de autómata Mealy. La salida está asociada a las transiciones entre estados de entrada y de los estados internos 130 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------ETAPAS DE DISEÑO DE CIRCUITOS SECUENCIALES SÍNCRONOS - Pasar las especificaciones verbales al diagrama de estados Reducir estados equivalentes Construir la tabla de estados Asignar códigos a los estados Seleccionar elementos de memoria Obtener las tablas de excitación Simplificación de las funciones de excitación Implementación del circuito Vamos a resolver un circuito aplicando las técnicas anteriormente descritas y lo resolveremos por Moore y Mealy. Realizar un circuito que actúe como un divisor de frecuencia por tres, como elemento síncrono. Es decir por cada tres impulsos a la entrada obtenemos uno a la salida. 1º.- Un diagrama de estados es una representación de los estados internos de un circuito secuencial, es decir una representación gráfica de su funcionamiento Por supuesto, se puede prescindir de la representación del diagrama de estados y pasar directamente a confeccionar la tabla de estados. Incluso más adelante veremos que en determinados casos no hay que tener en cuenta la entrada X, ya que podemos hacerla coincidir con la entrada de reloj. Esta forma reducida la emplearemos sobre todo en los autómatas secuenciales asíncronos, autómatas industriales. No obstante seguiremos con el mismo ejemplo y citaremos todos los pasos. E. Presente Io Io I1 I1 I2 I2 Entrada x 0 1 0 1 0 1 E. Siguiente Io I1 I1 I2 I2 Io Mealy 0 0 0 0 0 1 Moore 1 1 0 0 0 0 131 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------K Qt Qt+1 J A continuación asignaremos un código a cada uno de los estados. 0 0 0 Io 00 I1= 01 I2= 11. Sólo tenemos que sustituir los estados por el 0 1 1 código correspondiente en la asignación. 1 0 1 2 elevado a n >= 3 luego n = 2 1 1 0 Fig 1 A continuación seleccionaremos los elementos de memoria, es decir determinamos el tipo de de Flip-flop, que en este caso se tratará de un JK. Por supuesto tendremos en cuenta la tabla de excitación de la misma. ( Fig 1) Ahora representaremos la tabla general Qt X Qo Q1 X 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Qt+1 FF- 1 Qo Q1 J1 K2 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 - FF-0 Mealy Moore Jo Ko S1 S2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 - Q1Qo 00 01 11 10 Qt 0 0 0 x x 1 0 1 x x Q1Qo 00 01 11 10 Qt 0 x x x 0 1 x x x 1 A continuación ponemos los Karnaugh. Q1Qo 00 01 11 10 Qt 0 0 x x 0 1 1 x x 0 Q1Qo 00 01 11 10 Qt 0 x 0 x x 1 x 1 x x Q1Qo 00 01 11 10 Qt 0 0 0 x 0 1 0 0 x 1 Q1Qo 00 Qt 0 1 1 1 01 11 10 0 x 0 0 x 0 Los resultados son los siguientes: J1 = Qo. X K1 = X Jo = Q1*.X Ko = X S1 = Q1 . X So = Q1*. Q2* A continuación podemos implementar el circuito. 132 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Circuito reducido con las dos salidas, Moore y Mealy Tal como se ha citado anteriormente podemos hacerlo de manera reducida. Debido a que el tipo de biestable es del tipo Master Slave, el circuito se encontrará activo en los flancos de bajada de la señal de reloj. Haciendo coincidir la entrada X ( el nivel alto) con la señal activa del reloj, podemos prescindir de la primera. Luego si X=1 = Clock, podemos reducir la tabla o directamente de las funciones de salida la reducimos. J1 = Qo K1 = 1 Jo = Q1* Ko = 1 S1 = Q1 So = Q1* . Qo* Importante para evitar que en la conexión, el autómata comience en un estado distinto de cero, lo importante es añadir una entrada o puesta a cero automática o en frío ( que es la ideal), y otra, si lo creemos conveniente que sería la asíncrona, manual o en caliente A continuación aparecen los esquemas a los que anteriormente se ha hecho alusión: 133 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Hagamos otro ejemplo de autómata finito. Diseñar un circuito que actúe como el lanzamiento de un dado , mediante autómata finito utilizando el método MOORE, ya que existe coincidencia entre los estados y la salida. 2 elevado a n >= 6 => n =3 biestables Diagrama de estados Pasaremos del diagrama de estados a la tabla. La tabla, insisto puede diseñarse directamente sin pasar por el diagrama de estados. 0 1 2 3 4 5 6 7 Qt QT+1 q2 q1 qo q2 q1 qo 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 X X X FF-2 J2 K2 0 X 0 X 0 X 1 X X 0 X 0 X 1 X X FF-1 J1 K1 0 X 1 X X 0 X 1 0 X 1 X X 1 X X FF-0 Jo Ko 1 X X 1 1 X X 1 1 X X 1 1 X X 1 Q2Q1 00 01 11 10 Qo 0 x x x x 1 1 1 1 1 Q2Q1 00 01 11 10 Qo 0 x 0 1 X 1 x 1 x 0x K2= Q1 Q2Q1 00 01 11 10 Qo 0 x x 1 0 1 x x x 0 Q2Q1 00 01 11 10 Qo 0 1 1 0 1 1 x x x x Q2Q1 00 01 11 10 Qo 0 0 x x 0 1 1 x x 1 J2 = Q1.Qo Q2Q1 00 01 11 10 Qo 0 0 0 x x 1 0 1 x x J1 = Qo K1 = Q1+Q2 Jo= 1 Ko= 1 134 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- En el circuito se puede observar que hemos utilizado un display con decodificador incluido y en otra ocasión hemos utilizado el display con siete entradas y el decodificador de binario a decimal de siete segmentos. También disponemos en el circuito del Reset automático y manual 135 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Contadores Contadores síncronos Diseño de contador síncrono módulo 5. 2 elevado a n >= 5 => n=3 dispondremos de tres biestables. Podemos observar que el módulo no coincide con la base 2 elevada a un cierto número, así que se trata de un contador incompleto Qt 0 1 2 3 4 5 6 7 Qt q1 q2 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 q3 0 1 0 1 0 1 0 1 Qt+1 FF- 1 FF-2 FF-3 Z q1 q2 q3 J1 K1 J2 K2 J3 K3 Z 0 0 1 0 x 0 x 1 x 0 0 1 0 0 x 1 x x 1 0 0 1 1 0 x x 0 1 x 0 1 0 0 1 x x 1 x 1 0 0 0 0 x 1 0 x 0 x 1 x x x x x x x x x 0 x x x x x x x x x 0 x x x x x x x x x 0 q1q2 00 01 11 10 q3 0 0 0 x x 1 0 1 x x q1q2 00 01 11 q3 0 1 1 x 1 x x x 10 0 x q1q2 00 01 11 10 q3 0 x x x 1 1 x x x x q1q2 00 01 11 q3 0 x x x 1 1 1 x 10 x x q1q2 00 01 11 10 q3 0 0 x x 0 1 1 x x x q1q2 00 01 11 q3 0 0 0 0 1 0 0 0 10 1 0 J1= q2.q3 K1= 1 J2= Q3 K2= Q3 J3= Q1* K3= 1 Z= q1. q2*. q3* En el circuito no aparece esta salida q1q2 00 01 11 10 q3 0 x 0 x x 1 x 1 x x 136 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Contadores asíncronos. Contador asíncrono módulo 8 Este contador es completo porque coincide con la base 2 elevado a tres. En este tipo de contadores, no utilizaremos tablas combinacionales para llegar a su diseño. Lo primero que debemos tener en cuenta es que también este tipo de contadores se caracteriza porque se dividen en: Completos e incompletos. Estos últimos contadores incompletos se dividen en contadores con puesta a cero y con puesta a un determinado módulo. Todos, en principio se resuelven de la misma manera. Lo primero es dibujar un oscilograma completo en el que aparecerán la entrada del reloj y a continuación las distintas salidas de los biestables. 0 1 2 3 4 5 6 7 Como podemos observar en el circuito hemos establecido una señal de salida con una etapa de potencia que activa un altavoz. Esta etapa de salida la hemos diseñado para cuando cuente 8 impulsos, mediante una puerta AND obtengamos la salida correspondiente. 137 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 138 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Contador asíncrono módulo cinco Este contador difiere del anterior en que no es completo, ya que tiene que contar ocho impulsos, es decir en la salida observaremos que cuenta hasta cuatro y al próximo impulso pone a cero el contador. Por supuesto este tipo de circuitos no llevará el reset automático, ya que lo que se pretende es que se ponga a cero cuando cumpla unas determinadas condiciones y para ello llevará el circuito adecuado con una NAND. No obstante si queremos, podemos añadirle un reset manual. 139 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Podemos observar que cuenta cinco impulsos y en ese instante cuando pretende la 1ª memoria activarse, rápidamente se ponen a cero las tres. Todo esto lo hacemos con la información del módulo que es 1 0 1, lo introducimos en la puerta Nand y a la salida obtenemos un cero que es lo que aplicamos a los reset. La alimentación de la NAND debe dar “1” para ello la alimentamos con las Qt del primero y del último y con la Qt* negada de la memoria del centro. Ejemplo de autómata finito: Contador síncrono módulo 13 con biestables JK Como es módulo 13, quiere decir que el último número que aparecerá en el display es el 12, y al próximo impulso se pondrá a cero el contador Qt 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 q1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Qt q2 q3 q4 q1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 x 1 1 0 x 1 1 1 x QT+1 q2 q3 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 x x x x x x q4 1 0 1 0 1 0 1 0 1 0 1 0 0 x x x FF-1 J1 K1 0 x 0 x 0 x 0 x 0 x 0 x 0 x 1 x x 0 x 0 x 0 x 0 x 1 x x x x x x FF-2 J2 K2 0 X 0 X 0 X 1 X X 0 X 0 X 0 X 1 0 X 0 X 0 X 1 X X 1 X X X X X X FF-3 J3 K3 0 X 1 X X 0 X 1 0 X 1 X X 0 X 1 0 X 1 X X 0 X 1 0 X X X X X X X FF-4 J4 K4 1 X X 1 1 X X 1 1 X X 1 1 X X 1 1 X X 1 1 X X 1 0 X X X X X X X 140 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- q1q2 q3q4 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 x x x x 10 x x x x q1q2 00 01 11 q3q4 00 x 0 1 01 x 0 x 11 x 1 x 10 x 0 x q1q2 q3q4 00 01 11 10 00 1 x x 1 01 1 x x 1 11 0 x x x 00 01 11 10 00 x x x x 10 q1q2 00 x q3q4 00 0 x 01 1 x 11 x x 10 x 01 0 1 x x 10 1 x x 1 q1q2 q3q4 q1q2 q3q4 00 01 11 10 01 11 10 x 1 0 x x 0 x x 0 x x 0 11 0 x x x 10 0 1 x x q1q2 q3q4 00 01 11 10 q1q2 q3q4 00 01 11 10 00 0 0 1 0 01 x x x x 11 x x x x 10 0 0 1 0 00 01 11 10 x x x x x x x x 1 1 x 1 0 0 x 0 00 01 11 10 x x x x 1 1 x 1 1 1 x 1 x x x x Las ecuaciones obtenidas de los Karnaugh serían: J1= q2.q3.q4 J4= q1*+q2* K1=q2 J2= q3.q4 K2=q1+q3.q4 J3=q4 K3= q4 K4 = 1 141 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- DIVISORES DE FRECUENCIA Los divisores de frecuencia, son circuitos capaces de dividir por un número la frecuencia del generador aplicado a la entrada. La construcción de un divisor de frecuencia es semejante, por no decir lo mismo que un contador asíncrono. Para empezar el diseño de un divisor de frecuencia habrá que reducir el número por el que queremos dividir la frecuencia por un producto en el que cada uno de los factores sean los que resulten de descomponerlo en factores primos. 142 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Por ejemplo si el número por el que queremos dividir es 30, lo descomponemos en 2x3x5. Es decir habrá que diseñar tres divisores y después conectarlos entre sí, es decir la salida de uno será el reloj o entrada del siguiente, tal como se puede observar en el oscilograma que figura a continuación. En la confección de cada uno de ellos tendremos en cuenta la tabla de excitación de los biestables que lo conforman, que normalmente trabajaremos con los slip-flops JK. En el caso de que el divisor sea de un número primo distinto de los anteriormente citados, se confeccionará como un contador asíncrono con puesta a cero. A continuación diseñaremos un divisor de frecuencia por 30. Está claro que conectaremos uno de 2 con otro de 3 y con otro de 5, de manera que el producto sea 30. El analizador lógico que tenemos conectado lo representamos antes del circuito, en él podemos observar la entrada de reloj y las distintas de salida. 143 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 144 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 145 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 12 SISTEMAS MICROPROGRAMABLES Un sistema microprogramable es un sistema electrónico digital formado por uno o varios chips integrados capaz de interpretar y ejecutar secuencialmente las órdenes contenidas en un programa y a una velocidad muy elevada. Entre las aplicaciones Más importantes podemos destacar: - Realizar cálculos matemáticos o aplicaciones informáticas, como podemos observar en los ordenadores, que son sistemas microprogramables basados en los microprocesadores - Controlar procesos industriales de seguridad o producción, como en el caso de autómatas programables que controlan robots y cadenas de montaje que poseen microcontroladores - Controlar el funcionamiento de aparatos domésticos, como … microondas, lavadoras, que se encuentran controladas por microprocesadores y o microcontroladores. Hardware y software Todos los conocimientos y conceptos relacionados con el sistema microprogramable se agrupan en tres, que son los siguientes: Hardware . Son todos los circuitos y componentes electrónicos que componen el sistema Software. Conjunto de instrucciones y rutinas con que se programa el sistema, así como todo lo referente a los lenguajes empleados. Firmware, es un término intermedio y se define como el conjunto de programas de un sistema microprogramable grabados sobre un hardware pero inalterables por el usuario. El ejemplo más sencillo es la memoria ROM-BIOS en los ordenadores. Clasificación: -Ordenadores personales. Son sistema microprogramables que utilizan un chip microprocesador. Están destinados a los procesos informáticos, aunque añadiéndoles los sistemas de control externo adecuados, son capaces de controlar procesos o máquina industrial -Autómatas programables Son sistema microprogramables basados en un microcontrolador al que se le añaden sistemas de control de potencia tales como contactores o relés. Están destinados al control de maquinaria industrial y automatización. Pequeños automatismos y electrodomésticos Son sistemas gobernados por microprocesadores, microcontroladores o dispositivos PLD, destinados a controlar electrodomésticos, rótulos luminosos, calculadoras programables, pequeños sistemas de alarmas y cualquier otro sistema que se pueda asociar a estos elementos. 146 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Usuario Bus de direcciones Periférico C. selec ROM RAM Unidad I/O CPU Bus control Reloj Bus de datos Sistema Control externo Receptores ESQUEMA DE BLOQUES DE UN SISTEMA MICROPROGRAMABLE CON MICROPROCESADOR. Unidad Central de Proceso. Su estructura es la de un circuito integrado LSI que posee en su interior entre otros elementos: - Unidad de decodificación e interpretación - Unidad aritmética lógica - Un contador de programa - Registros de almacenamiento La CPU controla por medio de instrucciones que decodifica e interpreta a las memorias, a la unidad de entrada y salida I/O y a través de esta última a los periféricos y sistemas de control externo. Reloj.- La CPU genera los impulsos de control de los restantes bloques, partiendo de las señales de onda cuadradas suministradas por un generador de funciones llamado reloj. La frecuencia del reloj determina la velocidad de operación y funcionamiento de la CPU y de todo en general Buses. Se definen como el conjunto de de grupos de hilos que transportan información del mismo tipio y que sirven para realizar la comunicación entre los diferentes bloques del sistema. Existen tres tipos de buses, en dos de los cuales el número de de hilos está en función del número de bits de la palabra binaria con la que trabaja el sistema. - Bus de datos - Bus de direcciones - Bus de control 147 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Bus de datos. (Data Bus) Es el destinado a transportar los datos entre los diferentes bloques. Su número de hilos es igual a la longitud de la palabra Bus de direcciones. (Address Bus). Su misión es transmitir al bloque correspondiente la dirección con la que va a trabajar la CPU. El número de líneas determina la capacidad de la memoria. El número de direcciones de memoria que es capaz de controlar un microprocesador mediante su bus de direcciones, se obtiene: Nº de direcciones de memorias o palabras = a la base binaria 2, elevada al número de líneas del bus de direcciones. Así por ejemplo un micro de 8 bits posee 16 líneas luego = a 65.536 posiciones o bits = 64 Kb Bus de control. (Control Bus) El micro utiliza un número de líneas para enviar o recibir órdenes que realizan fines diversos, como R/W*, RESET, líneas de interrupción, Entrada de programación, etc. Circuitos de selección de Chips. Es un conjunto de elementos decodificadores y multiplexores que tienen la finalidad de obtener las señales de autorización de cada bloque del sistema, evitando que el bloque de bus de direcciones tenga que llegar a todo el sistema Unidad de entrada y salida (I/O) Todo sistema de desarrollo de microprocesador necesita comunicarse con el exterior, ya sea para recibir o llevar información. Estos dispositivos constituyen la frontera ( interface) entre los circuitos internos y los externos. La necesidad de emplear circuitos específicos viene impuesta por la diferencia de las señales empleadas en el interior y exterior del sistema: Diferente frecuencia de trabajo. El microprocesador y las memorias trabajan a frecuencias muy superiores al megahercio, mientras que los periféricos y receptores rara vez superan los kilohercios. Diferencias en los códigos binarios de trabajo. Esto hace que tengamos que trabajar con convertidores de códigos. En algunos casos, las interfaces o unidades de entrada y salida son circuitos cuya complejidad puede llevar a superar la de algunos microprocesadores. Independientemente de su complejidad interna, además posee como mínimo estos elementos: Registros de entrada y registro de salida. El primero es un registro cuyo número de bits es igual al de la palabra utilizada y cuya carga está controlada por un conjunto de interruptores electrónicos gobernados por la CPU. Se le denomina puerto de entrada. La información que se envía desde los periféricos al puerto sólo se almacena cuando la CPU lo autorice. El segundo, el registro de salida, es un registro de almacenamiento de información de longitud igual al de la palabra utilizada. Lo llamaremos puerto de salida. Periféricos. Podemos distinguir dos tipos de funciones: Periféricos de comunicación entre el sistema y el usuario y periféricos de almacenamiento masivo de la información. Periféricos de comunicación: Teclado (Keyborad) Periférico de entrada, sirve para introducir datos mediante teclas y están adaptadas en función del tipo de lenguaje empleado en la programación: - Teclados hexadecimales para programar en lenguaje máquina. - Teclados alfanuméricos, para programación en alto nivel - Teclados especiales, con teclas de funciones específicas. Pantallas y displays. Son los periféricos de salida más usuales, junto con las impresoras, por ejemplo: Monitores de televisión (CTR), Cristal líquido (LCD), Visualizadores de tipo matricial de 7 segmentos, etc 148 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Impresora. Periférico de salida básico, especializado en la producción de informes en formato papel, los más importantes los de inyección de tinta y láser. Interfaces de comunicación de E/S. son dispositivos periféricos que no deben confundirse con las unidades (I/O) que sirve para intercomunicar sistemas microprogramables separados y serían: - Interface RS-232 para comunicación serie - Interface Centronics para comunicación paralelo - Interface USB de comunicación universal Conviene citar en este apartado uno de los elementos utilizados en la comunicación E/S y sería la puerta triestada. Corresponde a un circuito como el que se cita a continuación, en el que si a la entrada de control le aplicamos un uno la información pasa, independientemente si la niega o no. En el caso de que esa información de control sea un cero no existe comunicación ya que se crea un estado de alta impedancia, equivalente a un interruptor abierto. CS =0 las puertas AND aplican señal baja a las bases de los transistores => alta impedancia, equivale a una desconexión real. CS=1 Es lógico comprobar que las puertas transmiten señales opuestas a los transistores con lo cual, en un caso obtendremos un “1” y en otro caso obtendremos un “0”. Módem. Es un interface que permite la comunicación serie a distancia, por medio de redes telefónicas o redes inalámbricas. Periféricos de almacenamiento. Unidades de disco magnético. Esta clase de periférico emplea un soporte plano y circular recubierto de un material magnético donde se almacena la información - Disco duro (hard disk) - Disco flexible (floppy disk) Unidades de disco óptico. Soporte plano circular de policarbonato, donde se almacena la información) recubierto de una capa de aluminio que actúa como espejo: CD-ROM y DVD Unidades de memoria flexible. Están fabricadas con memoria tipo Flash y SD (variedad de memoria RAM) que posee un conector USB. Pendrive y Tarjeta Sistemas de control externo. Constituyen un conjunto de circuitos que sirven para realizar la comunicación entre el sistema microprogramable y los procesos industriales o máquinas por él controlado. - Transductores y sensores - Convertidores A/D, D/A, V/I, etc - Componentes de conmutación y potencia: relés, tiristores, contactores, etc. - Circuitos de amplificación. 149 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Memorias Antes de entrar a analizar las distintas memorias, volvemos a citar cierta clasificación de ellas. Memorias centrales. Son las que se encuentran en el interior de los sistemas microprogramables y están directamente regidas por la CPU. En ellas se almacenan los sistema operativos, las tablas de datos, el programa de usuario que se encuentra en ejecución y los datos de la pila de memoria, según su principio de funcionamiento existen los siguientes tipos: • Memorias de núcleo de ferrita. Fue el primer tipo de memoria empleado, hoy en desuso. Formadas por núcleos toroidales de algunas décimas de milímetro de diámetro recorridos por tres hilos, dos de selección y uno de lectura. • Memorias integradas. Son las únicas empleadas actualmente. Se clasifican en: - Memorias de lectura y escritura, o memorias RAM - Memorias de sólo lectura o memorias ROM Memorias masa. Son las unidades de memoria de más alta capacidad que existen y están situadas en los periféricos. Su función es almacenar grandes cantidades de datos, así como los programas de usuario y el sistema operativo cuando no están en ejecución. Las más importantes hoy día son: • Memorias en disco duro • Memorias en disquete • Memorias en disco óptico: CD-ROM y DVD • Memorias integradas extraíbles: Pen Drive y SD Clasificación de las memorias integradas Memorias RAM.Las siglas RAM significan memoria de acceso aleatorio (Random Acces Memory). Son memorias volátiles, en las que se puede leer y escribir Tipos: RAM estáticas o SRAM. Las celdas de memoria o de almacenamiento están formadas por flipflops, que permanecen indefinidamente en su estado mientras no se elimine la alimentación o se haga bascular. RAM dinámicas o DRAM. Las celdas de almacenamiento están formadas por pequeños condensadores que almacenan la información (Tecnología CMOS). Tienen el defecto de, por inevitables corrientes de fuga pierden la información. Por tal motivo se requiere de un circuito de refresco (proceso de reescritura periódico) que restablezca la información. El tiempo típico de refresco de 2 milisegundos. Este proceso requiere un tiempo y una mayor complejidad de hardware, es decir la memoria dinámica no está disponible en todo momento para ser leída o escrita, ya que el proceso de recarga no es instantáneo. Por el contrario la DRAM ofrece la ventaja de un mayor número de bits por chip, lo que redunda en un precio más bajo y en unas dimensiones de montaje más pequeñas, sin olvidar que el circuito de refresco encarece un poco el conjunto. RAM con pila. Este tipo de memorias es no volátil, es decir no pierden la información al ser desconectadas, se trata de una memoria RAM CMOS que lleva incorporada en su encapsulado una pequeña batería de litio que asegura una estabilidad de los datos durante diez años, con el chip extraído del circuito.. en lugar de ellas hoy se utilizan las EEPROM, que estudiaremos a continuación. Memorias ROM. Las siglas ROM significan, memorias de sólo lectura (Read Only Memory) Son memorias no volátiles, en las que sólo se puede leer, ya que su proceso de grabado es más complejo y se realiza normalmente fuera del sistema. Según la forma en que se procede a grabar los datos, se dividen a su vez en los tipos siguientes: 150 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------• ROM (programable por máscara). Los datos se graban en la memoria durante su proceso de fabricación. Proceso fotolitográfico. Evidentemente estos datos son indelebles y nunca se podrán borrar o cambiar. • PROM. (Rom programable) Grabadas o programadas por el usuario una sola vez. El fabricante las suministra en estado virgen, con tos sus bits puestos a “0” o a “1”, según los tipos. El proceso de grabación se hace mediante un equipo programador de PROM que produce fusiones de carácter irreversible de acuerdo con los datos que se pretende grabar. • EPROM (ROM borrable y programable) Son similares a las PROM, pero el proceso de grabación no es destructivo. Los datos se almacenan induciendo cargas en electrodos de silicio policristalino completamente aislados en el seno de una capa de óxido de silicio. La grabación se realiza mediante un programador de EPROM y a partir de ese momento los datos permanecen inalterables. Cuando se requiera borrar los datos, la devolvemos a su estado original mediante la acción de rayos ultravioletas a través de una ventana dispuesta a tal fin. El número de ciclos de borrado-grabado es limitado ya que el proceso produce una cierta degradación de los datos. • EEPROM (ROM, borrables eléctricamente). Son las memorias que logran el ideal de alcanzar una memoria de lectura-escritura que no pierde su contenido al cortar la alimentación. Estas memorias pueden alterar su contenido sobre el montaje definitivo sin necesidad de extraer el chip y sin utilizar una instrumentación específica. • Tener en cuenta los siguientes términos. EAROM (ROM (alterable eléctricamente) y EEPROM ((ROM borrable eléctricamente) TIPOS DE MEMORIA RAM • VRAM : Siglas de Vídeo RAM, una memoria de propósito especial usada por los adaptadores de vídeo. A diferencia de la convencional memoria RAM, la VRAM puede ser accedida por dos diferentes dispositivos de forma simultánea. Esto permite que un monitor pueda acceder a la VRAM para las actualizaciones de la pantalla al mismo tiempo que un procesador gráfico suministra nuevos datos. VRAM permite mejores rendimientos gráficos aunque es más cara que la una RAM normal. • SIMM : Siglas de Single In line Memory Module, un tipo de encapsulado consistente en una pequeña placa de circuito impreso que almacena chips de memoria, y que se inserta en un zócalo SIMM en la placa madre o en la placa de memoria. Los SIMMs son más fáciles de instalar que los antiguos chips de memoria individuales, y a diferencia de ellos son medidos en bytes en lugar de bits. El primer formato que se hizo popular en los computadores personales tenía 3.5" de largo y usaba un conector de 32 pins. Un formato más largo de 4.25", que usa 72 contactos y puede almacenar hasta 64 megabytes de RAM es actualmente el más frecuente. Un PC usa tanto memoria de nueve bits (ocho bits y un bit de paridad, en 9 chips de memoria RAM dinámica) como memoria de ocho bits sin paridad. En el primer caso los ocho primeros son para datos y el noveno es para el chequeo de paridad. 151 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------• DIMM : Siglas de Dual In line Memory Module, un tipo de encapsulado, consistente en una pequeña placa de circuito impreso que almacena chips de memoria, que se inserta en un zócalo DIMM en la placa madre y usa generalmente un conector de 168 contactos. • DIP : Siglas de Dual In line Package, un tipo de encapsulado consistente en almacenar un chip de memoria en una caja rectangular con dos filas de pines de conexión en cada lado. • RAM Disk : Se refiere a la RAM que ha sido configurada para simular un disco duro. Se puede acceder a los ficheros de un RAM disk de la misma forma en la que se acceden a los de un disco duro. Sin embargo, los RAM disk son aproximadamente miles de veces más rápidos que los discos duros, y son particularmente útiles para aplicaciones que precisan de frecuentes accesos a disco. Dado que están constituidos por RAM normal. los RAM disk pierden su contenido una vez que la computadora es apagada. Para usar los RAM Disk se precisa copiar los ficheros desde un disco duro real al inicio de la sesión y copiarlos de nuevo al disco duro antes de apagar la máquina. Observe que en el caso de fallo de alimentación eléctrica, se perderán los datos que hubiera en el RAM disk. El sistema operativo DOS permite convertir la memoria extendida en un RAM Disk por medio del comando VDISK, siglas de Virtual DISK, otro nombre de los RAM Disks. • Memoria Caché ó RAM Caché : Un caché es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un área reservada de la memoria principal como un dispositivo de almacenamiento de alta velocidad independiente. Hay dos tipos de caché frecuentemente usados en las computadoras personales: memoria caché y caché de disco. Una memoria caché, llamada también a veces almacenamiento caché ó RAM caché, es una parte de memoria RAM estática de alta velocidad (SRAM) más que la lenta y barata RAM dinámica (DRAM) usada como memoria principal. La memoria caché es efectiva dado que los programas acceden una y otra vez a los mismos datos o instrucciones. Guardando esta información en SRAM, la computadora evita acceder a la lenta DRAM. Cuando un dato es encontrado en el caché, se dice que se ha producido un impacto (hit), siendo un caché juzgado por su tasa de impactos (hit rate). Los sistemas de memoria caché usan una tecnología conocida por caché inteligente en el cual el sistema puede reconocer cierto tipo de datos usados frecuentemente. Las estrategias para determinar qué información debe de ser puesta en el caché constituyen uno de los problemas más interesantes en la ciencia de las computadoras. Algunas memorias caché están construidas en la arquitectura de los microprocesadores. Por ejemplo, el procesador Pentium II tiene una caché L2 de 512 Kbytes. El caché de disco trabaja sobre los mismos principios que la memoria caché, pero en lugar de usar SRAM de alta velocidad, usa la convencional memoria principal. Los datos más recientes del disco duro a los que se ha accedido (así como los sectores adyacentes) se almacenan en un buffer de memoria. Cuando el programa necesita acceder a datos del disco, lo primero que comprueba es la caché del disco para ver si los datos ya están ahí. La caché de disco puede 152 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------mejorar drásticamente el rendimiento de las aplicaciones, dado que acceder a un byte de datos en RAM puede ser miles de veces más rápido que acceder a un byte del disco duro. • SRAM Siglas de Static Random Access Memory, es un tipo de memoria que es más rápida y fiable que la más común DRAM (Dynamic RAM). El término estática viene derivado del hecho que necesita ser refrescada menos veces que la RAM dinámica. Los chips de RAM estática tienen tiempos de acceso del orden de 10 a 30 nanosegundos, mientras que las RAM dinámicas están por encima de 30, y las memorias bipolares y ECL se encuentran por debajo de 10 nanosegundos. Un bit de RAM estática se construye con un --- como circuito Flip-Flop que permite que la corriente fluya de un lado a otro basándose en cual de los dos transistores es activado. Las RAM estáticas no precisan de circuiteria de refresco como sucede con las RAMs dinámicas, pero precisan más espacio y usan mas energía. La SRAM, debido a su alta velocidad, es usada como memoria caché. • DRAM Siglas de Dynamic RAM, un tipo de memoria de gran capacidad pero que precisa ser constantemente refrescada (re-energizada) o perdería su contenido. Generalmente usa un transistor y un condensador para representar un bit Los condensadores debe de ser energizados cientos de veces por segundo para mantener las cargas. A diferencia de los chips firmware (ROMs, PROMs, etc.) las dos principales variaciones de RAM (dinámica y estática) pierden su contenido cuando se desconectan de la alimentación. Contrasta con la RAM estática. Algunas veces en los anuncios de memorias, la RAM dinámica se indica erróneamente como un tipo de encapsulado; por ejemplo "se venden DRAMs, SIMMs y SIPs", cuando debería decirse "DIPs, SIMMs y SIPs" los tres tipos de encapsulado típicos para almacenar chips de RAM dinámica. También algunas veces el término RAM (Random Access Memory) es utilizado para referirse a la DRAM y distinguirla de la RAM estática (SRAM) que es más rápida y más estable que la RAM dinámica, pero que requiere más energía y es más cara • SDRAM Siglas de Synchronous DRAM, DRAM síncrona, un tipo de memoria RAM dinámica que es casi un 20% más rápida que la RAM EDO. SDRAM entrelaza dos o más matrices de memoria interna de tal forma que mientras que se está accediendo a una matriz, la siguiente se está preparando para el acceso. SDRAM-II es tecnología SDRAM más rápida esperada para 1998. También conocido como DDR DRAM o DDR SDRAM (Double Data Rate DRAM o SDRAM), permite leer y escribir datos a dos veces la velocidad bús. 153 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------• FPM Siglas de Fast Page Mode, memoria en modo paginado, el diseño más común de chips de RAM dinámica. El acceso a los bits de memoria se realiza por medio de coordenadas, fila y columna. Antes del modo paginado, era leido pulsando la fila y la columna de las líneas seleccionadas. Con el modo pagina, la fila se selecciona solo una vez para todas las columnas (bits) dentro de la fila, dando como resultado un rápido acceso. La memoria en modo paginado también es llamada memoria de modo Fast Page o memoria FPM, FPM RAM, FPM DRAM. El término "fast" fué añadido cuando los más nuevos chips empezaron a correr a 100 nanoseconds e incluso más. • EDO Siglas de Extended Data Output, un tipo de chip de RAM dinámica que mejora el rendimiento del modo de memoria Fast Page alrededor de un 10%. Al ser un subconjunto de Fast Page, puede ser substituida por chips de modo Fast Page. Sin embargo, si el controlador de memoria no está diseñado para los más rápidos chips EDO, el rendimiento será el mismo que en el modo Fast Page. EDO elimina los estados de espera manteniendo activo el buffer de salida hasta que comienza el próximo ciclo. BEDO (Burst EDO) es un tipo más rápido de EDO que mejora la velocidad usando un contador de dirección para las siguientes direcciones y un estado 'pipeline' que solapa las operaciones. • PB SRAM Siglas de Pipeline Burst SRAM. Se llama 'pipeline' a una categoría de técnicas que proporcionan un proceso simultáneo, o en paralelo dentro de la computadora, y se refiere a las operaciones de solapamiento moviendo datos o instrucciones en una 'tubería' conceptual con todas las fases del 'pipe' procesando simultáneamente. Por ejemplo, mientras una instrucción se está ejecutando, la computadora está decodificando la siguiente instrucción. En procesadores vectoriales, pueden procesarse simultáneamente varios pasos de operaciones de coma flotante La PB SRAM trabaja de esta forma y se mueve en velocidades de entre 4 y 8 nanosegundos Resumen de las características DRAM • La capacidad de almacenamiento de los chips de memoria DRAM es, a igualdad de tamaño, superior a la de los chips de memoria SRAM. • El consumo de las memorias DRAM es considerablemente superior al de las RAM • La adaptación de las memorias DRAM a los sistemas basados en microprocesadores es más complicada que la adaptación de memorias SRAM, dado que las primeras obligan a la incorporación de la adecuada lógica de refresco. Evolución de las memorias DRAM. • Memoria FPM RAM (Fast Page Mode RAM) Memoria DRAM diseñada para trabajar en modo página, es decir, para accesos a bloques de memoria consecutivo. 154 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------• Memorias EDO RAM (Extended Data Out RAM) Son una variante de las anteriores que mediante la utilización de un búfer en su salida le permite estar finalizando la lectura de un dato de la matriz y simultáneamente, decodificar la dirección del siguiente dato que se va a leer. • Memorias SDRAM (Synchronous DRAM). Es el tipo de memoria DRAM más empleada hoy. Su estructura consta de dos o más matrices, cuyo funcionamiento se organiza de forma que mientras se está realizando el acceso a una matriz, otra se está preparando el siguiente acceso. • Memorias DDR SDRAM (Double Date Rate SDRAM). La más moderna de la familia de memorias DRAM soporta dos operaciones de memoria por ciclo de reloj, así que proporciona el doble de velocidad. Módulos de memorias. • Módulos SIMM (Single In- Line Memory Module) hoy prácticamente en desuso. - SIMM de 30 contactos (4 MB y 16 MB) - SIMM de 72 contactos ( 16 MB y 32 MB) - SIMM de 168 contactos (16 MB, 32 MB y 64 MB) • Módulos DIMM de memoria DRAM ( Dual In-Line Memory Module). Este tipo es el empleado actualmente. Consta como los anteriores de un conjunto de zócalo y tarjeta de circuito impreso que contiene los chips de memoria, actualmente del tipo SDRAM o DDRAM, pero en éstos los conectores están en ambas caras y contienen información diferente. Estos módulos trabajan con palabras de 64 bits - DIMM de 72 contactos. Fueron los primeros en aparecer en el mercado - DIMM de 144 contactos. Con memoria DDRAM t capacidad de 1024 MB por módulo - DIMM de 168 contactos - DIMM de 184 contactos con memoria SDRAM y capacidad de 512 MB por módulo - DIMM de 200 contactos, para portátiles con memoria DDRAM y capacidad de 1024 MB por módulo Modo de acceso. Se entiende por modo de acceso, el método que la memoria emplea para acceder a una información almacena en ella. • Acceso aleatorio. Se puede ir a cualquier posición directamente. El sistema asigna a cada posición de memoria un código y por él la identifica. El tiempo de acceso es independiente de la posición de la memoria. Un ejemplo de este tipo de memorias son las integradas RAM y ROM. • Acceso secuencial. Las memorias de este tipo de acceso no se utilizan hoy día. Para acceder a una determinada posición era necesario recorrer previamente todas las posiciones anteriores. Formaban parte de las memorias masas ya que formaban parte de algunos periféricos. El dispositivo más característico de este tipo de memoria es la cinta magnética. • Acceso cíclico. Este modo de acceso es una combinación de los dos anteriores. Los dispositivos de memorias que emplean este tipo de acceso son los discos duros, los disquetes los CDROM y DVD. En todos los casos el disco está dividido en pistas concéntricas y en y en un número par de divisiones. La información está almacenada en un sector. Para leer la cabeza accede de forma aleatoria para localizar la pista y después de manera secuencial para acceder al sector. • Acceso por Pila o LIFO (Last in, first out), último en entrar primero en salir • Acceso por Pila o FIFO ( First in, first out) primero en entrar, primero en salir 155 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Repaso esquemático de las memorias , sus características, etc.. y ejercicios de memorias (Cálculo de estudios de memorias, bloques de memorias, ampliación de memorias, programación de matrices PLA, etc…) 156 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 157 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 158 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 159 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 160 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 161 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 162 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 163 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- 164 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Primer caso: construir una memoria de 1 Kx8 a partir de pastillas de 1 K x 4, número de líneas del bus de direcciones, en ambas la misma, la única diferencia es el bus de datos, tendremos que utilizar dos pastillas y de cada una sacamos el bus de datos y obtenemos ocho líneas del bus de datos total, el resto se conectará en paralelo 165 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Segundo caso: Realizar una memoria de 2K x8 a partir de 1 X x 4. Tendremos que utilizar cuatro pastillas, es el resultado de multiplicar lo que obtenemos de dividir ordenadamente, las memorias y el bus de datos. Memoria total 2K => n =11 1k=> n=10, luego nos sobra una línea del bus de direcciones, que a través de un inversor la utilizaremos para seleccionar la pareja de pastillas donde leeremos o escribiremos, según que A10 sea “0” o “1”. Tercer caso: Obtención de una memoria de 4 K x 4 a partir de memorias de 1K x4. Es obvio que necesitaremos cuatro pastillas, como el bus de datos es el mismo, lo conectaremos en paralelo. La memoria que pretendemos obtener es cuatro veces superior => que el bus de direcciones del total tiene dos líneas más, luego las emplearemos mediante un decodificador de 2 a 4 para seleccionar una de las cuatro. El resto de elementos los conectaremos en paralelo Ejercicio de implementación de memoria, con lógica. * Partiendo del bus de direcciones de un microprocesador, implementar con puertas lógicas el circuito de selección de chips de una memoria RAM de 2 K, situado entre las direcciones 0000 y 07FFH A15 ………………………Ao, es decir 0000 0000 0000 0000 => 0000 H ----------------------------------------------------0000 0111 1111 1111 =>07FF H Permanecen invariables de A15 a A11 Luego CS = A15*.A14*.A13*.A12*.A11* Despues apliocamos CS* y obtenemos CS* = A15+A14+A13+A12+A11 Cada uno de ellos está negado, después se niega todo porque CS lo está y a continuación empleamos De Morgan y obtenemos el circuito de la figura Ejercicios varios: 1.- ¿Qué significa que un microprocesador de 8 bits tenga 64 K de memoria? R: Que el número de líneas del bus de direcciones es 16 => que 2 elevado a 16 = 65.536 bytes O lo que es lo mismo : 64 x 1024 = 65.536 2.- ¿Cuántos Kilobytes son 131.072 bits? R: 131.072/ 8 = 16.384 bytes luego si dividimos a su vez por 1024 => 8Kbytes 3.- Si una memoria está organizada en 64 k x4 R: - Nº de células de memoria 64x1024x4 = 262.144 bits - Estructura de la matriz=> Raíz cuadrada de 262.144 = 512x512 - Nº de líneas del bus de direcciones, es el exponente al que hay que elevar 2 = 16 - Nº de líneas del bus de datos = 4 ( la segunda cifra de la organización) - Nº de palabras o direcciones corresponde a la primera cifra 64k = 65.536 4.- Si una memoria está organizada en 8K x4 R: - Nº de bits => 8 x 1024 x 4 = 32.768 166 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Estructura: La raíz no es exacta luego primero dividimos por dos, porque está multiplexada, se trata de una memoria DRAM = 128 x 128 Nº de líneas del bus de direcciones n =13 desde Ao hasta A12 Nº de líneas del bus de datos = 4 va desde D0 hasta D3 Nº de palabras o direcciones = 8 x 1024 = 8.196 5.- Indicar las direcciones inicial y final de cada uno de los bloques que resultan de dividir un mapa de memoria de 64 K en 16 bloques iguales: R: - 64 K: 16 = 4K Si queremos representar 4 K será 0001 0000 0000 0000 => 1000 H, como contamos la primera dirección que es la cero habrá que restar uno => 0FFF H que es la equivalente a 4 K tendremos lo siguiente: 0000H => 0FFFH 1000H => 1FFFH 2000H => 2FFFH …………………. F000H => FFFFH 6.- Mismo ejemplo anterior pero dividido en 32 bloques => 64 : 32 = 2K 2040 = 2 a la n => n= 11 2 K = 0111 1111 1111 => 7 FF H por ser 1 menos en realidad sería 800 H Luego loa grupos serían: 0000H => 07FF H 4000H => 47FF H C000H => C7FFH 0800H => 0FFF H ……………….. ………………….. -------------------3800H => 3FFF H ………………… 3FFFH => 7FFFH ………………….. F800H => FFFFH 7.- Si situamos en un mapa de memoria a una pastilla de una RAM de 1 K desde la dirección 0400 H. Cuales serán las direcciones comprendidas dentro de dicha pastilla de memoria? 1K = 1024 = 400 H restamos 1 y tenemos : 3FF H, luego solo tenemos que sumar a la primera línea el equivalente de una memoria. 0400 H + 03FF H = 07FF H 8.- Si situamos en un mapa de memoria un módulo SIMM de memoria RAM de 4 M desde la dirección A0000H. ¿Cuáles serán las direcciones comprendidas dentro de dicha pastilla de memoria? * * XXXX XXXX XXXX XXXX XXXX XXXX * 1010 0000 0000 0000 0000 XXXX XXXX XXXX XXXX XXXX XXXX 0100 0000 0000 0000 0000 0000 La dirección final contando uno menos será 3FFFFF H Luego sumándole la inicial, tendremos: 49FFFFH 9.- Qué Cantidad de direcciones de memoria expresada en K existe entre las direcciones 1000H y A7FFH Restamos y obtenemos 97FFH => 9 millares y 8 centenas hexadecimales luego un millar son cuatro K y 1 K = 4 centenas Luego: 36 K + 2 K ( que son 8 centenas ) = 38 K 167 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------10.- Partiendo del bus de direcciones de un microprocesador, realizar el circuito de selección de un chip de memoria EPROM de 2 Kbytes, situado entre las direcciones hexadecimales FB80H y FFFF H. Podemos observar que las líneas del bus de direcciones A15 ……A11 no varían y su valor es “1”. Luego tendremos CS * = (A15.A14.A13. A12.A11)*, Luego el circuito sería: Conceptos y definiciones varias -PLD : Programmable Array Logic. Dispositivo Lógico Programable -PAL: “ “ “ Matriz Lógica Programable -GAL : Matriz Lógica Genérica Ejemplos: GAL20V8 ( 20 entradas incluidas entradas/salidas y 8 salidas (V) versátiles GAL22V10 (22 entradas, incluidas las salidas y 10 salidas (V) versátiles. -En un diagrama de PLD una x significa fusibles sin fundir -Un punto significa conexión hecha por el fabricante. -Diferencia entre una PAL y una PROM -La estructura PAL está formada por una red de puertas AND programables por el usuario, seguido de una red de puertas OR ya programadas, mientras que la estructura PROM es todo lo contrario. -EPLD son las siglas de Erase Programmable Logic, Device, es decir circuitos programables y borrables, en es caso por luz ultravioleta, lo que les da su propiedad más importante. -Para programar una PLD se necesita un ordenador personal, un sofware de programación y un equipo programador de PLD. -JEDEC, son la siglas de Joint Electronic Device Engineering Council y un fichero JEDEC es el estándar que generan los programas utilizados para el diseño con PLD, y que será luego entendido por los programadores de PLD. -Cuando se desee realizar una función lógica con un gran número de productos en la función se utilizará un dispositivo PROM -La lógica triestada en un sistema microprogramable se emplea para que la información que es enviada de un bloque a otro a través de un bus llegue a todos los bloques simultáneamente y produzca mezcla de informaciones y errores de funcionamiento. -Definición de lenguaje ensamblador. Es un lenguaje utilizado por el programador en el que se emplean nemónicos o grupo de caracteres alfanuméricos que simbolizan las órdenes. Los nemónicos se corresponden con las iniciales del nombre de la instrucción en inglés y cada microprocesador posee su propio set de nemónicos. 168 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Ejercicios varios: Indica cómo se programa la matriz Lógica para obtener la función lógica de cuatro variables ( a,b,c,d) que tome a su salida un nivel alto cuando tres o más de sus entradas estén en nivel alto A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B C D 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 F 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 El resultado que obtenemos es: F=A*BCD+AB*CD+ABC*D+ABCD*+ABCD La única dificultad es que aparecen cinco sumas de producto. El problema se resuelve usando la realimentación y la parte inferior de la matriz con el estado de alta impedancia en la puerta triestada. Ejercicio: Indicar como se programaría la matriz lógica para obtener la función: F=ABCDE 169 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Dado el circuito o matriz programable, indicar como se programa la lógica de AND para obtener un multiplexor de cuatro entradas de datos y dos entradas de direccionamiento. S=AX1*X2*+BX1*X2+CX1X2*+DX1X2 X1 X2 S 0 0 A 0 1 B 1 0 C 1 1 D Utilizando un PAL del tipo 16L8, indica los fusibles que quedarán sin fundirse si se pretende realizar con ella un decodificador para un display tipo cátodo común que cumpla con las condiciones siguientes. A B C F A B C a b c d e f g Seg 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 A b C d E F g A b C d E F g 0 Como el PALL16L84 es activa a nivel bajo, si tomamos las funciones que hacen cero las salidas, como si fueran unos en una tabla de verdad con lógica positiva, se obtienen las siguientes funciones. a= A*B*C*+A*B*C+A*BC+AB*C+ABC*+ABC b= A*B*C*+A*B*C+AB*C*+ABC c= A*B*C*+A*B*C+A*BC*+AB*C*+ABC d= A*B*C*+A*BC*+A*BC+AB*C*+AB*C+ABC e= A*B*C*+A*B*C+A*BC*+A*BC+AB*C*+AB*C+ABC* f= A*B*C*+A*B*C+A*BC*+A*BC+AB*C+ABC*+ABC g= A*B*C+A*BC*+AB*C*+AB*C+ABC*+ABC 170 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- La figura representa el diagrama lógico con los fusibles activos 171 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Ejercicios propuestos: Programar en una matriz lógica como la anterior la función: F= A B C 172 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------PROGRAMACIÓN DE PLD Principios de programación. Ecuaciones de Boole, para representar los operadores, se hará con los siguientes símbolos: AND(&), OR (#), XOR (##), NOT( `), NAND(AND)´, NOR (OR)´ En la forma automática el compilador se encarga de realizar la asignación. Si las salidas del circuito son activas a nivel bajo, como sucede normalmente en los decodificadores, se debe seleccionar una PAL con salidas activas a nivel bajo como la PAL 16L8 Ejemplo 1: La solución a los dos circuitos para poder Programarlo para una PAL 16L8 es la Siguiente: El programa de configuración será el que Se cita a continuación. PAL 16L8 I2:F1, I3: F2; 1:d, 2:c,3:b, 4:a Se indica que F1 se conecta al terminal I2 Y la señal a se conecta al Terminal 4 F1 = (d&c&b) # (d&c) #(d&a) F2 = (d##b) # (d&a) # (c&b&a) F1 F2 Con asignación automática PAL 16L8 Salidas: (F1,F2) Entradas : (d,c,b,a) F1 = (d&c&b) # (d&c) #(d&a) F2 = (d##b) # (d&a) # (c&b&a) Los compiladores, además de generar el mapa de fusibles, proporcionan distintos informes a lo largo del proceso, en uno de ellos se puede encontrar la asignación de pines que realiza el compilador cuando se indica de forma automática Ejemplo 2: Diseñar un contador ascendente de tres bits asíncrono, activo con el flanco de subida de una señal de reloj (CLK) y que cuente en binario natural, de tal forma que cuando la salida tome el valor máximo, antes de pasar al estado inicial, se active una señal de CARRY. El contador dispondrá de una señal de RESET que cuando se active a nivel, alto las salidas y pasarán a nivel bajo. Para la realización del circuito se utilizará una PAL 16R8 El diagrama de bloques se representa a continuación 173 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Se trata de una máquina de ocho estados, que se puede diseñar con tres biestables y que en capítulos anteriores, hemos tenido la posibilidad de estudiar. También se representa el diagrama de estado o grafo. El siguiente paso es transforma el grafo en un lenguaje que el compilador pueda entender . El fichero de configuración se muestra a continuación, con una breve explicación de cada una de sus partes. PAL 16R8 ; se realiza una asignación automática Salidas: (Z2,Z1,Z0, CARRY) Entradas: (RESET, CLK) ; asignación de estados Q0= 000, Q1= 001, Q2=010, Q3= 011, Q4= 100, Q5= 101, Q6= 110, Q7= 111 ; se define la máquina de estados, su funcionamiento, es decir si el sistema se encuentra en Q0 al llegar un flanco de subida evoluciona hacia Q1, (Q0 =>Q1) Q0=>Q1, Q1=>Q2, Q2=>Q3, Q3=>Q4, Q4=>Q5, Q5=>Q6, Q6=>Q7, Q7=>Qo ;si la máquina se encuentra en cualquier estado y activamos la entrada de RESET el sistema pasa a Q0 Qx si RESET =1 Q0 ; se define la activación de CARRY CARRY = (Z2 &Z1 & Z0) 174 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Ejemplo 3 Se precisa diseñar un sistema de control de una máquina de juego de azar de ocho números distintos. Para ello se utilizará un PAL 16R8. El sistema electrónico deberá tener dos entradas X e Y y tres salidas F1, F2 y F3, tal como se muestra en la figura Y 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 3 0 5 2 7 4 1 6 La lógica de funcionamiento que relaciona las entradas con la salida es la siguiente. Hacemos que una de las entradas coincida con la señal de reloj, por ejemplo la X. Cuando se produzca un flanco de subida en la entrada X, las salidas del sistema electrónico cambiarán de valor en función del valor de la entrada Y. La entrada Y determinará el cambio que se debe producir a la salida con el siguiente criterio: Si Y=0 las salidas incrementarán en uno su valor actual. Si las salidas llegan a tomar el valor 7, el siguiente valor será el 0. Si Y=1 las salidas incrementarán en tres su valor actual, siempre que dicho valor sea par; en caso contrario las salidas se decrementarán en uno. Como en el caso anterior, las salidas se incrementarán y decrementarán en código binario natural en módulo 8. Se considera que F3 es el bit de mayor peso y F1 el de menor. Como en todo circuito secuencial es conveniente introducir una entrada de RESET que cada vez que se active llevará todas las salidas a nivel bajo. 175 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Solución: Fichero de configuración A continuación se representa el fichero de configuración que, posteriormente, y a btravés del compilador se transformará en un mapa de fusibles que se programará en la PAL. 16R8 ; tipo de dispositivo PAL 16R8 ; asignación automática de pines Entradas : ( X,Y,RESET)) Salidas : ( F3, F2, F1) ; se supone que todas las entradas y salidas son activas a nivel alto ;asignación de estados Q0 = 000, Q1 =001 …………………………………..Q7=111 La PLD quedaría de la forma siguiente 176 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 13 CONVERTIDORES Y MOTORES PAS0 A PASO CONVERTIDORES DAC Y ADC Convertidor A/D de 8 bits de salida Ejemplo de convertidor A/D de 4 bits en su salida ( Para no alargar su explicación). Tensión máxima de entrada de 15 voltios, es decir, cuando apliquemos 15 voltios en la entrada generará a la salida el valor binario 1111 Funcionamiento: Vamos a aplicarle 7 voltios para ser convertidos en digital. El convertidor realizará el siguiente proceso: a) El registro se posiciona en 1000, al convertirlo en analógico obtiene el 8, ya que a cada combinación le corresponde 1 voltio. b) Al comparar los 7 v con los 8 el convertidor indica que la entrada es menor que la de referencia y por tanto no se acepta el 1 en el bit de mayor peso. c) El registro se pone ahora en 0100 que es el 4, al comparar, el convertidor indica que la entrada es mayor, con lo cual se acepta el i en su puesto. d) Partimos entonces de 0110 que es el 6, al comparar se detecta que la entrada sigue siendo mayor con lo que también se acepta en su lugar e) Partimos entonces de 0111 que es el 7, al comparar se detecta que son iguales la tensión de referencia que la de entrada y la conversión finaliza. 177 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Ejercicios de convertidor A/D Ejemplo 1 1.- Sabiendo que un convertidor A/D posee los siguientes límites de conversión +10 v =FFH y -10v= 00H. Calcula el valor de su salida digital si introducimos una tensión de -5 voltios Solución: FFH contiene 256 posiciones o posibilidades. Por otra parte el campo de entrada va de -10 a +10 = 20 voltios por lo que: 256/20 =12,8 posibilidades de salida por voltio de entrada. Teniendo en cuenta que la entrada es de -5 voltios => 12,8x 5 = 64 posibilidades que si la pasamos a hexadecimal son =40H Pasando a binario la salida hexadecimal = 01000000 Ejemplo 2 Sabiendo que un convertidor A/D posee los siguientes límites de conversión: +10 v =FFH y -10 v =00H. Calcula el valor binario de su salida digital si introducimos una tensión de +7,5 v Solución: Igual que en el caso anterior: 256/20 = 12,8 posibilidades de salida por voltio de entrada. Como +7,5 v equivalen a 7,5 + 10 = 17,5 v, desde el inicio de la escala de conversión en -10 v, tendremos: 12,8 x 17,5 =224 posibilidades que pasadas a hexadecimal = E0H. Luego en la salida de 8 bits nos aparecerá la combinación binaria 11100000. Ejercicios de convertidor D/A Ejemplo 1 Sabiendo que un covertidor D/A posee los siguientes límites de conversión FFH = +5 v y 00H = -5 v. Calcula el valor analógico de su salida si introducimos una información digital de C0H Solución: El campo de salida = 10 voltios porque va desde -5 a +10 y el campo de entrada va desde 00H a FFH que contiene 256 posibilidades luego: 256/10 = 25,6 posibilidades de entrada por voltio de salida Como C0H =192 en binario => 192/25,6 = 7,5 voltios, contados desde el inicio del campo de -5 v. luego la salida del convertidor = 7,5-5 = 2,5 voltios Ejemplo 2 En un convertidor D/A con los mismos límites de conversión que el anterior. Calcular el valor analógico a la salida para una entrada digital de 20H Solución: Procedemos igualque antes: 256/10 = 25,6 posibilidades de entrada por cada voltio de salida Como 20H =32, que corresponden a : 32/ 25,6 =1,25 voltios contados desde el inicio del campo que es -5 voltios. En consecuencia la salida analógica = 1,25 – 5 = 3,75 v 178 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------MOTORES PASO A PASO. Son dispositivos electromecánicos que, trabajando con corriente continua son capaces de convertir información digital en movimientos mecánicos proporcionales Los motores de imán permanente son los más usados. El estator tiene un gran número de bobinas y el imán permanente del rotor tiene un numeroso número de pares de polos. La razón es la de disminuir el ángulo de paso Lo normal es gobernar el motor con un integrado que proporcione los impulsos necesarios en un tiempo muy corto y además con gran precisión. Ejemplo, ploter, impresoras, etc. Si el integrado genera una determinada secuencia a las bobinas, el rotor dará pasos en el sentido que se desee. Velocidad de rotación La velocidad de rotación viene definida por la ecuación: donde: f: frecuencia del tren de impulsos n: nº de polos que forman el motor Si bien hay que decir que para estos motores, la máxima frecuencia admisible suele estar alrededor de los 625 Hz. Si la frecuencia de pulsos es demasiado elevada, el motor puede reaccionar erróneamente en alguna de las siguientes maneras: Puede que no realice ningún movimiento en absoluto. Puede comenzar a vibrar pero sin llegar a girar. Puede girar erráticamente. O puede llegar a girar en sentido opuesto. Incluso perder potencia Tipos de motores paso a paso El motor de paso de rotor de imán permanente: Permite mantener un par diferente de cero cuando el motor no está energizado. Dependiendo de la construcción del motor, es típicamente posible obtener pasos angulares de 7.5, 11.25, 15, 18, 45 o 90°. El ángulo de rotación se determina por el número de polos en el estator El motor de paso de reluctancia variable (VR): Tiene un rotor multipolar de hierro y un estator devanado laminado, y rota cuando los dientes del rotor son atraídos a los dientes del estator electromagnéticamente energizados. La inercia del rotor de un motor de paso de reluctancia variable es pequeña y la respuesta es muy rápida, pero la inercia permitida de la carga es pequeña. Cuando los devanados no están energizados, el par estático de este tipo de motor es cero. Generalmente, el paso angular de este motor de paso de reluctancia variable es de 15° 179 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------El motor híbrido de paso: Se caracteriza por tener varios dientes en el estator y en el rotor, el rotor con un imán concéntrico magnetizado axialmente alrededor de su eje. Se puede ver que esta configuración es una mezcla de los tipos de reluctancia variable e imán permanente. Este tipo de motor tiene una alta precisión y alto par y se puede configurar para suministrar un paso angular tan pequeño como 1.8°. Motores paso a paso unipolares: estos motores suelen tener 5 ó 6 cables de salida dependiendo de su conexionado interno. Este tipo se caracteriza por ser más simple de controlar, estos utilizan un cable común a la fuente de alimentación y posteriormente se van colocando las otras lineas a tierra en un orden especifico para generar cada paso, si tienen 6 cables es porque cada par de bobinas tiene un común separado, si tiene 5 cables es porque las cuatro bobinas tiene un solo común; un motor unipolar de 6 cables puede ser usado como un motor bipolar si se deja las lineas del común al aire. Motores paso a paso Bipolares: Estos tienen generalmente 4 cables de salida. Necesitan ciertos trucos para ser controlados debido a que requieren del cambio de dirección de flujo de corriente a través de las bobinas en la secuencia apropiada para realizar un movimiento. 180 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Esquemas: Motor paso a paso bipolar Angulo de paso, ( step angle). Es el avance angular que se produce en el motor por cada impulso de excitación, se mide en grados. 0,72º 500 pasos por vuelta 1,8º 200 pasos por vuelta 3,75º 96 pasos por vuelta 7,5º 48 pasos por vuelta 15º 24 pasos por vuelta. Los motores de imán permanente (los más usados) suelen poseer 3,75º, 7,5º y 15º. Si deseamos ángulos menores es preciso recurrir a los motores paso a paso de reluctancia variable, empleados en aplicaciones muy especiales. Frecuencia de paso máxima (Maximum pul-lin/out rate) Se define como el máximo número de pasos por segundo que puede recibir el motor funcionando adecuadamente. Par de detención (detention torque). Este par sólo existe en los motores de imán permanente y consiste en el par que mantiene fijo el eje del motor cuando está desactivado, debido al magnetismo existente entre los polos del estator y el imán del rótor. Oscilaciones Debido a la inercia del rotor, cuando un motor paso a paso recibe un impulso de salto, al llegar a la posición que le corresponde, la sobrepasa y realiza una serie de oscilaciones alrededor del nuevo punto de reposo. El número y amplitud de las oscilaciones son directamente proporcionales al peso de dicho rotor, e inversamente proporcionales al par de detención que posea el motor. En la práctica, dado que estas oscilaciones limitan la frecuencia de trabajo del motor, se trata de evitar recurriendo al amortiguamiento electrónico consistente en eliminar momentáneamente la alimentación cuando el rotor pasa por la posición de equilibrio, reanudando después dicha alimentación. Esto provoca que el rotor disminuya su velocidad y quede parado en el punto adecuado. Queda claro que este proceso es regulado por el circuito de control que cualquier motor paso a paso precisa. 181 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Control y modos de trabajo de un motor paso a paso. Características que se pueden controlar: Velocidad de giro.- Su control se consigue variando el número de impulsos por segundo (pasos) que recibe el integrado de control Sentido de giro.- Se logra variando el orden de la secuencia de polaridades aplicadas al motor por el integrado de control. Para ello todos los integrados de control llevan una patilla denominadaCW/CCW*, que sirve para indicar al integrado si debe generar la secuencia de sentido horario (CW = ClockWise),o sentido antihorario (CCW* = Counter-Clock-Wise). Por otra parte, los motores paso a paso poseen dos modos de trabajo básico: Trabajo en paso completo (Full-Step mode) En este modo el motor avanza, con cada impulso que llega al integrado de control, el ángulo de paso completo. El integrado de control genera, en esta forma de trabajo, una secuencia con cuatro estados de salida que repetirá de forma cíclica. Trabajo en medio paso completo (Half-Step mode). En este modo el motor avanza, con cada impulso que llega al integrado de control, la mitad del ángulo de paso. El integrado de control genera, de esta forma de trabajo, una secuencia con ocho estados de salida que repetirá de forma cíclica. Cuando utilizamos un circuito microprogramable, por ejemplo 6502 y VIA 6522,, la posición de las órdenes que llegan al integrado de control en cada uno de los bit del puerto B aparece en la figura siguiente y el significado será: • • • • RESET Orden para que la secuencia de polaridades se inicie en una posición determinada. HALF/FULL*. Orden para que el motor trabaje en medio paso, si vale 1, o en paso completo si vale 0 CLOCK. A este Terminal deben llegar sucesivamente un nivel alto y un nivel bajo,o viceversa, para que el integrado de control del motor considere que le ha llegado un impulso. CW/CCW* Orden para que el motor gire en sentido horario, si le llega un 1, o en sentido antihorario, si le llega un 0. X X X X PB7 PB6 PB5 PB4 RESET* PB3 HALF FULL CW CLOCK CCW* PB2 PB1 PB0 Ejercicios de motores paso a paso Ejemplo 1 ¿Cuántos pasos por vuelta da un motor de…? a) 12º de ángulo de paso b) 1º de ángulo de paso c) 7,5º de ángulo de paso Solución: a) Con una simple regla de tres podemos resolverlo: Sabiendo que una vuelta son 360º => 360º/12º = 30 pasos b) 360º/1 = 360 pasos c) 360º/7,5º= 48 pasos 182 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Ejemplo 2 Señala el ángulo de paso de un motor que precise… a) 48 pasos para dar una vuelta completa b) 300 pasos para dar una vuelta completa c) 500 pasos para dar una vuelta completa Solución: Al igual que en el caso anterior procederemos de forma parecida a) 360/48 = 7,5º b) 360/300= 1,2º c) 360/500= 0,72º Continuación de ejercicios de motores paso a paso Ejercicio 1 Si al circuito controlador de motores paso a paso L297 le llega una secuencia procedente de la VIA 6522 , ¿Qué hará el motor si le llegan en secuencia repetitiva las siguientes palabras procedentes del puerto B de la vía: a) 08H y 7AH b) 5DH y AFH c) AFH y 17H d) 00H y AFH e) B7H y 25H Solución: a) • • • • No hay orden de Reset al llegar siempre un 1 El motor trabaja en paso completo al llegar siempre un 0 El motor girará porque le llegan impulsos de 0 a 1 o viceversa El motor girará en sentido antihorario al llegar siempre un 0 Bit 7 08H 7AH 0 0 Bit 6 0 1 Información Bit 5 0 1 Bit 4 0 1 No conectados Bit 3 1 1 Bit 2 0 0 Reset H/F Bit 1 Bit 0 0 1 0 0 Clock CW/ CCW b) • • • • No hay orden de Reset para la secuencia de impulsos al llegar siempre un 1 El motor trabaja en medio paso al llegar siempre un 1 El motor girará porque lellegan impulsos de 0 a 1 y viceversa El motor girará en sentido horario al llegar siempre un 1 Bit 7 5DH AFH Información 0 1 Bit 6 1 0 Bit 5 0 1 No conectados Bit 4 1 0 Bit 3 1 1 Reset Bit 2 1 1 H/F Bit 1 Bit 0 0 1 1 1 Clock CW/ CCW 183 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------c) • El motor no girará porque no le llegan impulsos (secuencia de 0 a 1 o viceversa. Bit 7 AFH 17H 1 0 Bit 6 0 0 Información Bit 5 1 0 Bit 4 1 1 No conectados Bit 3 1 0 Bit 2 1 1 Reset H/F Bit 1 Bit 0 1 1 1 1 Clock CW/ CCW d) • • • • Hay orden de Reset para la secuencia de impulsos al llegar siempre un 0 El motor trabaja en paso completo al llegar siempre un 0 El motor gira porque le llegan impulsos en secuencia o a 1 o viceversa El motor girará en sentido antihorario al llegar siempre un 0 Bit 7 00H B2H 0 1 Bit 6 0 0 Información Bit 5 0 1 Bit 4 0 1 No conectados Bit 3 0 0 Bit 2 0 0 Reset H/F Bit 1 Bit 0 0 1 0 0 Clock CW/ CCW e) • • • • Hay orden de Reset para la secuencia de impulsos al llegar siempre un 0 El motor trabaja en medio paso al llegar siempre un 1 El motor gira porque le llegan impulsos en secuencia distinta El motor girará en sentido horario allegarle siempre un 1 Bit 7 B7H 25H Información 0 1 Bit 6 0 0 Bit 5 0 1 No conectados Bit 4 0 1 Bit 3 0 0 Reset Bit 2 0 0 H/F Bit 1 Bit 0 0 1 0 0 Clock CW/ CCW 184 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Análisis del circuito ADC y DAC 185 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Análisis de la Unidad Aritmético Lógica (ALU) 186 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Capítulo 14 CIRCUITOS SECUENCIALES ASÍNCRONOS En este tipo de circuitos, ocurre que las memorias no están sincronizadas con una señal de reloj, sino que los relojes de cada una de ellas son distintos. Anteriormente hemos visto los circuitos contadores asíncronos, en esta unidad estudiaremos los circuitos, también llamados autómatas industriales. Para ello habrá que tener en cuenta que el proceso será el mismo que los circuitos secuenciales síncronos o autómatas finitos. ETAPAS DE DISEÑO DE CIRCUITOS SECUENCIALES ASÍNCRONOS - Pasar las especificaciones verbales al diagrama de estados Reducir estados equivalentes Construir la tabla de estados Asignar códigos a los estados Seleccionar elementos de memoria Obtener las tablas de excitación Simplificación de las funciones de excitación Implementación del circuito CONSIDERACIONES SOBRE CIRCUITOS SECUENCIALES ASÍNCRONOS En todo circuito secuencial asíncrono se tiene que cumplir lo siguiente: - En una fila, de la tabla de memoria, debe aparecer al menos un estado siguiente igual al presente - Todo estado siguiente debe ser analizado como estado presente - En toda fila debe aparecer una doble conmutación - Sólo habrá salida cuando el estado siguiente sea igual que el presente - En una fila no puede aparecer un estado siguiente igual presente si anteriormente no ha salido como siguiente distinto del presente 187 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Ejemplo de circuito secuencial asíncrono Circuito de marcha y parada de un motor con una secuencia determinada. Supongamos un circuito de marcha y parada de un motor con pulsadores A y B. al pulsar el A, el motor no se pone en marcha hasta pulsar el siguiente B. Posteriormente pulsando cualquiera de ellos, el motor se para, el hecho de pulsar los dos simultáneamente no modificará el estado. Utilizar en la solución Flip- Flop JK AB Qt 0 1 2 3 4 5 6 7 00 01 0 1 0 1 3 x 3 4 5 4 5 6 7 6 7 1 11 x 1 2 x 4 x 6 x 10 2 x 2 2 x 6 x 2 00 0 x x 0 x 1 x 0 01 x 0 x x 1 x 0 x 11 x 0 0 x 1 x 0 x 10 x x 0 x x x x x 1 -0-3 2 1-4 3 0-5 1-4 4 5 X 0-7 1-6 -- 6 7 0-5 0-3 1-4 X -X 3-5 0-5 1-6 3-5 2-6 3-7 X 4-6 X 5-7 3-7 3-7 4-6 1-4 1-4 5-7 X 2 3 0-7 0-7 0 1 4 1-6 5 6 Obtenemos las siguientes parejas de estados: (0-1) (0-6) (0-7) (1-6) ( 1-7) (2-3) (6-7) A continuación encontramos los grupos de estados que contengan un mayor número de éstos, es decir clases equivalentes con un mayor número de estados y que cubran a las anteriores: (0-1-6) (0-1-7) => (0-1-6-7) => a (2-3) => b (4) => c (5) => d Con estos estados confeccionamos la tabla que cubra a la primitiva AB Qt a b c d 00 01 a a b c d c d a 11 a b c - 10 b b a 00 0 0 1 01 0 1 - 11 0 0 1 - 10 0 - AB Qt 00 01 11 10 00 00 01 10 10 01 00 11 11 00 11 00 01 11 -- 10 01 01 -00 00 0 0 1 01 0 1 - 11 0 0 1 - 10 0 - 188 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Qt Qt+1 FF-1 FF-2 z A B q1 q2 q1 q2 J1 K1 J2 K2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 - 0 0 0 0 - 0 1 0 0 1 - 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 1 0 0 0 - 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 - 1 1 0 - 0 0 - 1 - 1 0 - 0 - 0 - 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 - 0 0 - 0 0 0 0 1 CIRCUITO TEÓRICO 0 - 0 - 0 - 1 - 0 0 0 0 - - - - 1 0 0 - 0 0 - 0 - - 0 - 0 0 0 - 0 0 0 - 1 1 - 1 - - - 0 0 0 1 0 0 0 0 - - - - - - - - 0 0 0 - - - - - 0 1 - 1 J1 = abq2 K1=bq2*+aq2* = q2*(a+b) J2 =ab*q1 K2 =q1b* Z = q1 ELALUMNO REALIZARÁ ADEMÁS EL CIRCUITO PRÁCTICO CON LOS DIFRENTES INTEGRADOS Y ETAPA DE POTENCIA CON TRANSISTOR Y RELÉ 189 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------El producto final de una fabricación son barras metálicas, cuya longitud ha de ser inferior a L delimitada por los dos emisores. La salida de los receptores de luz adopta dos niveles de tensión bien diferenciados, según esté o no una barra situada entre él y su emisor respectivo. Se asigna por convenio el estado lógico “1” cuando la barra esté situada delante del receptor y el estado”0”, en caso contrario. La trampilla será accionada por el motor cuando la barra sea de una longitud superior a L. Una vez pasada la barra, (cuando sea inferior a L), el sistema debe estar preparado para una nueva detección. El problema consiste en diseñar un sistema secuencial asíncrono cuyas entradas sean las salidas de los receptores, que denominaremos X1 y X2 y cuya salida Z accione el motor M mediante el circuito de potencia adecuado. El cierre de la trampilla es automático mediante un dispositivo que acciona un motor paso a paso. Obtenemos las clases: (0-1) (0-2) (0-3) (0-4) (0-5) (1-2) (1-3) (1-4) (1-5) (2-4) (3-5) Obtenemos: (0-1-2-4) (0-1-3-5) AB 00 01 0 2 2 4 5 4 5 AB 00 01 Qt a a a b a b 0-2 Qt - - - - 4-5 - - - 4-5 - - 4-5 - Qt X Qt+1 FF-1 A B z J1 K1 0 1 2 3 4 5 AB 0 0 0 0 0 0 1 0 1 0 0 1 1 1 Qt 0 1 00 01 0 0 0 1 11 3 3 11 b b 10 1 1 10 a b 00 0 0 00 0 0 01 0 1 01 0 1 11 1 11 1 10 0 10 0 0 11 1 1 10 0 1 00 0 0 01 0 1 11 1 10 0 0 0 - 0 0 - 1 0 0 0 - 0 1 1 - 0 1 0 0 0 0 - 0 0 0 1 0 - - - - 0 0 - 0 0 1 1 - 0 0 - - - - 1 0 0 0 0 1 1 0 1 1 0 1 1 - - 1 1 1 1 - 0 1 00 01 11 10 J= A.B 00 01 11 10 K= A*.B* 00 01 11 10 Z = B.Q 190 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- CIRCUITO TEÓRICO EL ALUMNO REALIZARÁ ADEMÁS, EL CIRCUITO PRÁCTICO CON LOS INTEGRADOS CORRESPONDIENTES Y SALIDA CON ETAPA DE POTENCIA A BASE DE TRANSISTOR Y RELÉ 191 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- CIRCUITOS CONTADORES Y GENERADORES DE SECUENCIA A BASE DE REGISTROS DE DESPLAZAMIENTO Contador de décadas de cuatro etapas realizado con registros de desplazamiento con memorias JK PROCEDEMOS A REALIZAR EL DIAGRAMA DE ESTADOS S1 S2 0010 S5 0101 0001 S6 0110 S0 0000 S3 0011 S13 1101 S7 0111 S4 0100 S12 1100 S8 1000 S15 1111 S9 1001 S10 1010 S14 1110 S11 1011 Según el diagrama de estados, obtenemos varias posibilidades para su ejecución, por ejemplo: A) S0 - S1 - S2 - S5 - S11 - S7 - S15 - S14 - S12 - S8 - S0 B) S0 - S1 - S3 - S7 - S15 - S14 - S13 - S10 - S4 - S8 - S0 C) S0 - S1 - S2 - S5 - S11 - S6 - S13 - S10 - S4 - S8 - S0 Representaremos mediante el diagrama de BRUIJN uno de ellos por ejemplo el C) S7 S3 S9 0111 0011 1001 1111 1110 S14 S0 S1 0000 0001 0010 0101 1011 1100 1000 0100 1010 1101 0110 S12 S8 S4 S10 S13 S15 S2 S5 S11 S6 192 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------- Tabla de realimentación a partir del diagrama de Bruijn y a continuación la pasaremos a la tabla general S S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 F 1 0 1 0 1 1 0 0 0 0 - Tablas de estados de control D S0 0 S1 0 S2 0 S5 0 S11 1 S6 0 S13 1 S10 1 S4 0 S8 1 C 0 0 0 1 0 1 1 0 1 0 B 0 0 1 0 1 1 0 1 0 0 A 0 1 0 1 1 0 1 0 0 0 F 1 0 1 1 0 1 0 0 0 0 00 01 11 10 00 1 0 - 0 01 0 1 0 - 11 - - - 0 10 1 1 - 0 F= d* b + d* c* a* +d* c a S D S9 1 S2 0 C B A 0 0 1 0 1 0 F 0 1 S S3 S7 S15 S14 S12 S8 D 0 0 1 1 1 1 C 0 1 1 1 1 0 B 1 1 1 1 0 0 A 1 1 1 0 0 0 F 1 1 0 0 0 1 193 Sistemas de Control Secuencial Profesor: Juan P. Narváez SISTEMAS DIGITALES © ----------------------------------------------------------------------------------------------------------Generador de secuencia a partir de registros de desplazamiento. Supongamos que queremos general la secuencia siguiente: 1 0 1 1 0 1 1 0. Podemos comprobar que se trata de tres etapas ya que la secuencia contabiliza 8 Como se trata de tres memorias introducimos la secuencia a una de ellas y la información irá pasando a las memorias siguientes como se expresa en la tabla adjunta. Qa es la secuencia dada y a partir de ella se generan las demás. Podemos observar que Qc Qb Qa hay secuencias que se repiten y otras como 0 1 => 0 01 =>1 salidas distintas. 1 0 1 Como esta secuencia no se puede generar, no tenemos más remedio que utilizar una 0 1 0 lógica de salida y otra de realimentación 1 0 1 Hacemos directamente el diagrama de Bruijn 0 1 1 1 1 0 1 1 0 1 1 0 1 1 0 S4 S S0 S1 S2 S5 S3 S7 S6 S4 C B A 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 000 S0 001 S1 010 S2 101 S5 100 110 111 011 S6 qR F 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 S S0 S1 S2 S3 S4 S5 S6 S7 S7 C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A qR F 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 1 C B A 0 1 0 1 0 1 1 1 11 10 0 0 0 1 qR= c* a* + c *b + c b* a S3 C B 0 1 A 0 1 1 0 1 0 11 10 1 1 0 1 F = c* a* + b a* + c a 194