INGENIERÍA ELECTROMECÁNICA
ASIGNATURA: ELECTRÓNICA DIGITAL
PROFESOR: AGUILAR GUERRERO LUIS MANUEL
“ANTOLOGÍA”
ELABORÓ:
Parrilla Páez Miguel Ángel
Julio de 2017
PRESENTACIÓN La Electrónica Digital tiene una relevancia fundamental en la formación de un Ingeniero Electromecánico, ya que le permite conocer, diseña y aplicar los circuitos digitales para el control de los diferentes sistemas digitales. La asignatura reúne los fundamentos matemáticos, leyes y principios de la electrónica digital. Esta publicación se presenta con una finalidad: divulgar la extensa materia de Electrónica Digital que al paso de los años ha demostrado ser parte fundamental del progreso y avances tecnológicos que la humanidad va logrando al paso del tiempo y q al mismo tiempo debemos transmitir y explicar a futuras generaciones como es que esta materia se ha ido implementando y evolucionando al pasar del tiempo para así poder lograr que futuras generaciones logren traspasar las barreras que nos ponemos hoy en día y así poder llevar a la electrónica digital a un nuevo nivel.
2
JUSTIFICACIÒN Ésta asignatura requiere que el estudiante posea los conocimientos que se aportaron en las asignaturas de Programación Básica, Análisis de Circuitos Eléctricos. Es deseable que el estudiante posea alguna habilidad en la medición de corriente y voltaje, y que al menos se desarrolle en forma paralela algún curso de Electrónica Analógica Elemental. Esta experiencia educativa es la primera del área de sistemas digitales. Fundamenta y define los conceptos que posteriormente serán extendidos a máquinas digitales algorítmicas (en la experiencia educativa de Sistemas Digitales) para concretarse en dispositivos microcontroladores y microprocesadores (en la clase de Microprocesadores y microcontroladores). Plantea la descripción del sistema binario como una extensión de la representación de la notación decimal. Ofrece mecanismos para conversión entre diferentes bases numéricas. También muestra la representación de información (aritmética y lógica) a partir de códigos binarios. Posteriormente se formaliza la presentación de los conceptos binarios, a partir de la representación que aporta el Álgebra de Boole, con sus axiomas, teoremas y postulados. Se ofrecen métodos de representación y simplificación de funciones a partir de procedimientos algebraicos, gráficos y tabulares. Se describen herramientas computacionales que auxilian en el diseño de sistemas electrónicos y son aplicadas a la descripción e implementación de sistemas digitales, así como los conceptos básicos del hardware y sus técnicas de programación.
3
OBJETIVO
Objetivo General El programa formará especialistas en electrónica digital de manera integral con sólidos conocimientos y habilidades investigativas en las áreas de Procesamiento de Datos, Control, y Sistemas Embebidos, con capacidad para la creación, innovación y desarrollo tecnológico, mediante el aprovechamiento óptimo de los recursos físicos, técnicos y humanos; propendiendo por el desarrollo humanístico, científico y tecnológico no solo de la región si no del país. Objetivos Específicos Profundizar en el conocimiento de áreas como procesamiento de datos, control y sistemas embebidos, y aplicar estos conocimientos para contribuir a mejorar la productividad y la competitividad de las organizaciones y la calidad de vida de las personas. -
Formar profesionales que actúen como promotores y gestores de la innovación y el cambio tecnológico.
-
Proveer la información sobre los desarrollos actuales y las tendencias tecnológicas en el área de la electrónica digital.
-
Formar a los profesionales de ingeniería con alto sentido de responsabilidad ética y con sensibilidad social para un ejemplarizante desempeño futuro.
-
A su vez, ésta materia sirve de sustento a asignaturas posteriores, tales como: Circuitos Hidráulicos y Neumáticos, Microcontroladores, Controladores Lógico Programables.
4
ÍNDICE
Contenido 1. Fundamentos de sistemas digitales .......................................................................................... 7 1.1.
Señal digital y señal analógica ....................................................................................... 7
1.2.
Sistemas digitales y sistemas analógicos..................................................................... 7
1.3.
Relación entre los sistemas analógicos y digitales ..................................................... 9
2. Código y Sistemas Numéricos ................................................................................................. 10 2.1.
Sistemas Numéricos ...................................................................................................... 10
2.1.1. Sistema numérico decimal ..................................................................................... 10 2.1.2. Sistema numérico binario ....................................................................................... 11 2.1.3. Sistema numérico octal ........................................................................................... 12 2.1.4. Sistema numérico hexadecimal ............................................................................ 13 2.1.5. Conversión entre sistemas numéricos ............................................................... 13 2.2.
Operaciones básicas...................................................................................................... 15
2.2.1. Complemento ............................................................................................................. 15 2.2.2. Suma ............................................................................................................................. 16 2.2.3. Resta ............................................................................................................................. 16 2.2.4. Multiplicación ............................................................................................................. 18 2.2.5. División ........................................................................................................................ 19 2.2.6. Representación de números binarios con signo.............................................. 19 2.3.
Códigos binarios y alfanuméricos ................................................................................ 20
2.3.1. Código BCD ............................................................................................................... 20 2.3.2. Código Reflejado o Gray ......................................................................................... 21 2.3.3. Código ASCII .............................................................................................................. 21 2.3.4. Código UNICODE ...................................................................................................... 23 3. Álgebra de Boole ........................................................................................................................ 24 3.1.
Postulados y teoremas fundamentales ....................................................................... 24
3.1.1. Funciones booleanas ............................................................................................... 26 3.1.2. Función simple y función compuesta ................................................................. 27 3.2.
Simplificación de funciones booleanas ....................................................................... 27
5
3.2.1. Minitérminos y maxitérminos ................................................................................ 28 3.2.2. Mapas de Karnaugh .................................................................................................. 28 4. Compuertas Lógicas .................................................................................................................. 31 4.1.
Niveles lógicos y compuertas lógicas.......................................................................... 31
4.1.1. Compuerta NOT ......................................................................................................... 32 4.1.2. Compuerta AND ......................................................................................................... 32 4.1.3. Compuerta OR............................................................................................................ 33 4.1.4. Compuerta NAND ...................................................................................................... 33 4.1.5. Compuerta NOR......................................................................................................... 33 4.1.6. Compuerta XOR ......................................................................................................... 34 4.1.7. Compuerta XNOR ...................................................................................................... 34 4.2.
Familias Lógicas ............................................................................................................. 34
5. Circuitos Combinacionales ....................................................................................................... 37 5.1.
Introducción. .................................................................................................................... 37
5.2.
Procedimiento de análisis ............................................................................................. 38
5.2.1. Obtención de Funciones Booleanas .................................................................... 39 5.2.2. Obtención de la Tabla de Verdad .......................................................................... 39 5.3.
Procedimiento de diseño ............................................................................................... 41
5.3.1. Circuitos de salida múltiple .................................................................................... 42 6. Conclusiones .............................................................................................................................. 44 Bibliografía ....................................................................................................................................... 45
6
1. Fundamentos de sistemas digitales Conocer la diferencia entre la electrónica analógica y la electrónica digital, sabiendo cuáles son sus ventajas y desventajas.
1.1. Señal digital y señal analógica Antes de poder hablar de sistemas, primero debemos conocer el concepto de señal, que, en el área de la Física Aplicada, es la variación de una magnitud medido por supuesta con algún parámetro, por ejemplo: corriente, voltaje, luz, calor. De entre las clasificaciones de señales que se podrían hacer, tenemos dos de particular relevancia en nuestro estudio:
•
•
Señal Analógica: Señal generada por algún fenómeno electromagnético y que se puede representar mediante una función matemática continua y dependiente del tiempo, con amplitud y periodo variable. Señal Digital: Señal generada por algún fenómeno electromagnético y en la que cada segmento codifica valores que representan magnitudes discretas.
Figura 1.1. Señales
1.2. Sistemas digitales y sistemas analógicos Cuando se considera que una señal además de representar una magnitud física, implica el traslado de información útil (es decir, que sea factible interpretarse), entonces hablamos de un sistema. Así entonces, un sistema analógico emplea señales analógicas en el traslado de la información, mientras que los sistemas digitales emplean señales analógicas en el traslado de la información.
Sistema analógico
Sistema digital Figura 1.2. Ejemplos de Sistemas
7
A los efectos de diferenciar entre un sistema digital de un sistema analógico supongamos el sistema de la figura 1.3, donde un sistema electrónico indica el nivel de agua dentro de un tanque, en este caso el nivel de agua está determinado por el potenciómetro (R), este valor varia en forma continua a medida que el flotante sube o baja acompañando el nivel del agua y hace mover el cursor del potenciómetro, el Medidor muestra en una escala continua el nivel del agua en el tanque, constituyendo esto un sistema analógico.
Figura 1.3. Sistema analógico para indicar el nivel del agua Si el indicador de nivel lo construyésemos según el esquema de la figura 1.4, la información del nivel de agua en el tanque no varía en forma continua sino que asume valores discretos, encendiéndose un determinado led según el nivel de agua en el tanque, constituyendo esto un sistema digital.
Fi gura 1.4. Sistema digital para indicar el nivel de agua Como se puede apreciar el sistema digital no representa todos los valores posibles que puede tomar el nivel del agua en el tanque pero puede diseñarse un sistema tan preciso que represente todos los niveles o valores que el usuario del sistema desee conocer.
Uno de los principales problemas de los sistemas analógicos es el ruido eléctrico, que se pueden entender como perturbaciones que modifican el valor de la señal. En las señales
8
digitales, el ruido solo afecta al sistema si se supera el margen de tensión entre un nivel y otro (figura 1.5)
Figura 1.5. El ruido en las señales.
1.3. Relación entre los sistemas analógicos y digitales Los sistemas electrónicos procesan la información que les llega a sus entradas. En general, la información que llega a estas entradas proviene de magnitudes físicas del mundo real en el que vivimos. Estas magnitudes son temperatura, presión, longitud, velocidad, tensión, intensidad, etc. que tienen un carácter continuo o analógico. La utilización de alguna de estas magnitudes dependerá de la aplicación específica para la que esté diseñando mi sistema electrónico.
Figura 1.6. Un sistema analógico transfiere información a un sistema digital.
9
Es evidente que los sistemas digitales tienen infinitas aplicaciones y se pueden encontrar, por ejemplo, en el diseño de computadores, instrumentación, control de procesos industriales, control de semáforos, electrónica de automóviles (ABS, encendido electrónico, etc.), simuladores para pilotos de aviones, aplicaciones en medicina, electrónica de consumo (sonido y vídeo digital, TV, PC, telefonía móvil digital, etc.).
2. Código y Sistemas Numéricos En ésta unidad el estudiante:
• •
Conoce y entiende los sistemas binarios, octal y hexadecimal; las conversiones entre ellos y realiza operaciones básicas en los diferentes sistemas. Conocer diferentes códigos para representar información en los sistemas digitales.
2.1. Sistemas Numéricos Los sistemas de numeración son conjuntos de dígitos usados para representar cantidades. La cantidad de símbolos que utiliza el sistema para representar dichas cantidades define lo que se denomina base. Así se tenemos los sistemas de numeración decimal, binario, octal, hexadecimal, cuyas bases son: diez, dos, ocho, dieciséis, respectivamente. Una cantidad (magnitud) se representa por una cadena de elementos, y cada elemento de la cadena tiene un valor asociado a la posición que ocupa dentro de la cadena, estos sistemas de numeración se llaman también sistemas de numeración posicionales. Así, la cantidad 33 está representada por una cadena de dos elementos, el tres. En ésta cadena el valor del ‘3’ de la derecha no es igual al valor del elemento ‘3’ de la izquierda:
2.1.1. Sistema numérico decimal El sistema de numeración decimal es el más usado, tiene como base el número 10, o sea que posee 10 dígitos (o símbolos) diferentes para representar cualquier cantidad numérica: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. La posición de cada dígito en un número decimal indica la magnitud de la cantidad representada y se le puede asignar un ‘peso’. Los ‘pesos’ para los números enteros son potencias de 10, que aumentan de derecha a izquierda comenzando por 100 = 1.
Por ejemplo, el número decimal 72410 puede ser representado como:
Para los decimales los pesos son potencias de 10 que aumentan negativamente hablando de derecha a izquierda comenzando por 0. Todo número entero N representado en cualquier base, puede descomponerse de modo único en la forma: 𝑁 = 𝐴𝑛𝑏𝑛 + 𝐴𝑛−1𝑏𝑛−1 +… + 𝐴1𝑏1 + 𝐴0𝑏0 + 𝐴−1𝑏−1 + 𝐴−2𝑏−2 +… 10
Donde: 𝑏 es la base del número 𝑁 representado en decimal. 𝐴𝑖, dígito i-ésimo del número, 𝑖 = 0, 1, 2,. . . . , 𝑘. 𝑛 − 1: es la cantidad de dígitos enteros que tiene el número. Ahora nos podríamos preguntar por qué tenemos como sistema de numeración usual al sistema decimal, por qué es el más usado por todo tipo de gente, a qué se debe que en todo el mundo sea el sistema utilizado por las personas (las máquinas no usan el sistema decimal, sino el binario). La razón es que porque tenemos 10 dedos. Intuitivamente, utilizábamos nuestra elemental calculadora: las manos, para contar, realizar sumas y restas sencillas, etc.
2.1.2. Sistema numérico binario El sistema numérico binario es un sistema posicional de base 2, es decir que posee dos símbolos para representar cualquier cantidad numérica: 0, 1. El equivalente decimal de un número binario se puede obtener a partir del polinomio antes mencionado, de tal forma que
Ejercicio 2.1: Convertir a decimal el número
Los dígitos de un número binario se llaman bits. Bit es el acrónimo de Binary digit (dígito binario).
La razón de ser del sistema binario, es que la información que se manipula dentro de un sistema digital se hace de acuerdo a señales eléctricas. Mediante una señal eléctrica alta, se representa el valor ‘1’ y mediante una señal eléctrica baja se representa el ‘0’.
11
Existen diferentes formas de codificar la información en el sistema binario, la más usual es la codificación en binario natural, en esta forma de representación cada número es representado por un código de 𝑛 bits, En la tabla 1.1 se presentan los 16 primeros números en los sistemas numéricos más usados, entre ellos el binario natural Tabla 2.1. Primeros 16 números en distintos sistemas
Decimal Binario Octal Hexadecimal 0 0000 00 0 1 0001 01 1 2 0010 02 2 3 0011 03 3 4 0100 04 4 5 0101 05 5 6 0110 06 6 7 0111 07 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F
2.1.3. Sistema numérico octal El Sistema Numérico Octal consta de 8 símbolos para representar cualquier cantidad numérica: 0, 1, 2, 3, 4, 5, 6, 7 Tal como puede apreciarse en el tabla 1.1, éste sistema permite abreviar los 3 dígitos binarios usados en la representación de los números del 0 al 7. Como se verá más adelante, éste hecho facilita la conversión de números entre ambos sistemas.
Para saber qué número decimal corresponde a una cantidad en el sistema octal se usan las mismas reglas de los sistemas numéricos posicionales: 123.48 = 1 ∙ 82 + 2 ∙ 81 + 3 ∙ 80 + 4 ∙ 8−1 = 83.510
12
2.1.4. Sistema numérico hexadecimal El Sistema Numérico Hexadecimal consta de 16 símbolos para representar cualquier cantidad numérica. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹. Donde 𝐴 equivale a 10 en base 10, 𝐵 equivale a 11 en base 10, 𝐶 equivale a 12 en base 10, 𝐷 equivale a 13 en base 10, 𝐸 equivale a 14 en base 10, 𝐹 equivale a 15 en base 10.
En este caso el sistema hexadecimal permite abreviar 4 dígitos del sistema binario.
De este modo:
𝐴12. 𝐵16 = 10 ∙ 162 + 1 ∙ 161 + 2 ∙ 160 + 11 ∙ 16−1 = 2578.687510
2.1.5. Conversión entre sistemas numéricos Como ya se dijo, podemos pasar de una representación de una magnitud en un sistema numero b a un sistema de numeración de base 10 por aplicación del polinomio N = En bn + An-1 bn-1 + … + A1 b1 + A0 b0 + A-1 b-1 + A-2 b-2 + … Ejercicio 2.3. Convertir el número 111012 a base 10. = 1.20 + 0.21 + 1.22 + 1.23 + 1.24 = 1 + 4 + 8 + 16 = 2910 Ejercicio 2.4. Convertir 1111100_2 a base 10
el
número
binario
= 1.26 +1.25 + 1.24 + 1.23 + 1.22 + 0.21 + 0.20 = 64 + 32 + 16 + 8 + 4 = 12410 Para cambiar de la base 10 a cualquier otra base:
• •
Parte entera: Se divide por la base sucesivamente, tomando los restos en orden inverso. Parte decimal: Multiplicar el número por la base y tomar la parte entera, con el resto se repite el proceso hasta obtener la cantidad de decimales deseados.
13
Ejercicio 2.5. Convertir el número 2910 en su equivalente en binario. El número obtenido es (0 1 1 1 0 1) 2 = 29 10 Notar que el número resultante se toma desde el último resto hacia arriba, escribiéndose en ese orden de derecha a izquierda. Ejercicio 2.6. Convertir el número decimal 4573 al sistema hexadecimal El número obtenido es (4 5 7 3) 10 = 11DD16 Ejercicio 2.7. Convertir el número decimal 1036 al sistema octal El número obtenido es (1 0 3 6) 10 = 20148 Ejercicio 2.8. Convertir el número decimall sistema octal. 133.45 a
El número obtenido es (133.45)10 ≅ 205.3468 Notar que la conversión de decimal a la base deseada no necesariamente es exacta. Esto explica el épsilon de los sistemas informáticos.
La conversión entre los sistemas de base 2, 8 y 16 es casi directa, debido a que los dos últimos son múltiplos del primero. De este modo:
• •
Paso de la base 2 a la base 2^𝑛: se agrupan los bits de n en n, de derecha a izquierda Paso de la base 2𝑛 a la base 2: se expande cada digito por los n bits correspondientes
14
Ejercicio 2.9. Convertir el número binario 011100000001.11000100: (a) a octal; (b) a hexadecimal. (a) Octal: 011 100 000 001. 110 001 000 = (3 4 0 1. 6 1 0)8 (b) Hexadecimal: 0111 0000 0001. 1100 0100 = (7 0 1. C 4)16
2.2. Operaciones básicas Las operaciones aritméticas con números de base b ≠ 10 siguen las mismas reglas que los números decimales. Sólo debe tenerse especial cuidado en emplear solo dígitos admisibles para la base que se trabaja.
2.2.1. Complemento El complemento es una operación muy importante en el entendimiento de la electrónica digital que tiene su sustento en la Teoría de Conjuntos: dado un conjunto universo U de elementos, y un conjunto A formado por algunos de los elementos de U, el complemento de A es el conjunto formado por todos los elementos del universo que no pertenecen al conjunto A, y se denota por 𝐴′ o 𝐴𝑐.
Figura 2.1. Complemento de un conjunto
En el caso de los sistemas numéricos tenemos dos tipos de complementos: Complemento a la base menos uno o complemento radical disminuido, dado un número 𝑁 en base 𝑏 de 𝑛 dígitos, el complemento radical disminuido se define como: (𝑏𝑛 − 1) − 𝑁 Ejercicio 2.10. El complemento radical disminuido o complemento a 9 de 1238910 será:
105 1
12389
99999 12389 87610
Ejercicio 2.11. El complemento radical disminuido o complemento a 1 del número 𝑁 = 10110012 es: (27 − 1) − 1011001 = 1111111 − 1011001 = 0100110 Complemento a la base o complemento radical, definido por la operación 𝑏𝑛– 𝑁, que equivale a sumar al complemento radical disminuido de un número:
𝑏𝑛 − 𝑁 = (𝑏𝑛 − 1) − 𝑁 + 1 Ejercicio 2.12. Obtener el complemento radical de 1238910. 87610𝑐9 + 1 = 87611𝑐10 Ejercicio 2.13. Obtener el complemento a 2 de 10110012. 0100110𝑐1 + 1 = 0100111𝑐2
15
En los ejemplos anteriores se supuso que el número N era entero, si N tiene punto decimal este debe eliminarse en forma temporal para poder complementar, la coma se devuelve después en la misma posición relativa.
2.2.2. Suma Se sigue el algoritmo de siempre: dígito menos significativo se opera primero y el más significativo último, considerando los acarreos correspondientes cuando el número resultante tiene más de un dígito.
Ejercicio 2.14. Realizar la operación 1012 + 0012 =? En el caso binario resulta útil construir una tabla para la suma de un dígito. a b 0 0 0 1 1 0 1 1
Ejercicio
a+b Acarreo 0 0 1 0 1 0 0 1
2.15. Resolver 3𝐴𝐹16 + 23𝐶16 =? Como (F + C)16 es (15 + 12)10 = 2710 = 1B16 Como (1+A+3)16 es (1+10+3)10 = 1410 = E16
2.2.3. Resta El algoritmo de la resta es el mismo del sistema decimal, incluyendo aquella idea intuitiva del ‘préstamo’. Ejercicio 2.16. Realizar la operación 1012 − 0112
De nuevo, resulta útil construir una tabla para la resta de un dígito. a b a-b Acarreo 0 0 1 1
0 1 0 1
0 1 1 0
0 1 0 0
Desafortunadamente ésta forma de restar tiene dos inconvenientes: primero, en cifras de varios dígitos y estando en un sistema numérico distinto del decimal tendemos a cometer errores debido al hecho de tener que pedir préstamos y determinar el guarismo
16
correspondiente; en segundo término, cuando se implementa en un circuito electrónico requiere de su propio arreglo, lo cual es poco práctico. Si los números a restar se consideran sin signo (ambos positivos) se puede utilizar la regla del complemento radical disminuido o la regla del complemento radical. Resta con complemento radical: La resta de dos números sin signo (M–N) puede realizarse de la siguiente forma: Sumar a M el complemento a la base de N. Si M ≥ N la suma producirá acarreo final 𝑏𝑛 que se desecha, lo que queda es el valor de M – N. Si M < N la suma no producirá acarreo final y es igual a 𝑏𝑛 − (𝑁– 𝑀), que es el complemento a la base b de N – M. Para obtener la respuesta calcúlese el complemento a b de la suma y coloque el signo negativo adelante. Resta con complemento radical disminuido: La resta de dos números sin signo (𝑀– 𝑁) puede realizarse de la siguiente forma:
I. II.
Sumar a M el complemento a la base menos uno de N. Verificar el acarreo final de la suma: a. De ser igual a 1, se suma al dígito menos significativo de la primera suma, lo cual genera el número resultante, el cual es positivo. b. De ser igual a 0, tómese el complemento a la base menos uno de la suma y agréguese un signo menos, el resultado es un número negativo.
Ejercicio 2.17. Use el complemento a la base disminuida para calcular 7253210 − 325010
Ejercicio 2.18. Use el complemento a la base disminuido para calcular 3218 − 5018
Compruebe el resultado haciendo la resta en decimal Resta con complemento radical: La resta de dos números sin signo (𝑀– 𝑁) puede realizarse de la siguiente forma:
I. II.
Sumar a M el complemento a la base de N. Verificar el acarreo: a. Si es 1, se deshecha y el resultado es el resto de los dígitos sumandos.
17
b. Si es 0, entonces calcúlese el complemento a 𝑏 de la suma y coloque el signo negativo adelante. Ejercicio 2.19. Usando el complemento radical calcule 7253210– 325010.
Notar que el acarreo se descarta Ejercicio 2.20. Usando el complemento radical calcule 325010 − 7253210.
Ejercicio 2.21. Dados 𝑀 = 10101002 y 𝑁 = 10000112 obtenga 𝑀 − 𝑁 y 𝑁 − 𝑀 por complemento a 2.
2.2.4. Multiplicación Mismas reglas que en el algoritmo de base 10 Ejercicio 2.22. Multiplicar 10012 por 10112.
Considere la tabla de multiplicar binaria a b 𝒂∙𝒃 0 0 1 1
0 1 0 1
0 1 1 0
18
2.2.5. División En este caso sólo revisamos la división binaria en el entendido de que finalmente es el medio fundamental en los sistemas digitales, sin embargo, y como se ha dicho, el algoritmo no varía del que conocemos desde la infancia. Para el caso binario el proceso en este caso resulta más simple que el sistema decimal puesto que cuando se verifica cuantas veces el divisor “cabe en” el dividendo, solo hay dos posibilidades ‘0’ o ‘1’.
Ejercicio 2.23. Realizar la división de
0 1001110
2
entre 0110
2
18
2.2.6. Representación de números binarios con signo Las magnitudes en los sistemas digitales se representan a través de una combinación de bits, en un sistema de 6 bits podríamos representar cantidades que van desde 0000002 a 1111112 (010 a 6310). Si queremos representar números negativos debemos valernos de algún medio de representación para el signo. Esto se lleva a cabo agregando un bit para representar el signo, de tal forma que por convención tal como ‘0’ equivales a signo ‘+’ y ‘1’ equivale a signo ‘-‘, es sistema entonces que en nuestro sistema de seis bits las magnitudes que podemos representar van desde –31 a +31. Por ejemplo:
El bit de signo se usa para indicar si un número es positivo o negativo, el resto de los bits se usa para representar la magnitud en forma binaria. Para los números negativos, no obstante existen tres formas de representar la magnitud:
• • •
Forma de magnitud verdadera. La magnitud se representa en binario natural Forma de complemento a 1. Cuando se representa un número negativo en éste formato, el bit de signo se conserva en ‘1’ y la magnitud se complementa a 1. Forma de complemento a 2. En este caso la magnitud se complementa a 2.
Así por ejemplo: +5710 = 0 1110012
Un número positivo, el bit de signo es cero 19
−5710 = 1 1110012 −5710 = 1 0001102 −5710 = 1 0001112
Número negativo en signo magnitud verdadera Número negativo en signo complemento a 1 Número negativo en signo complemento a 2
Las tres formas de representación se utilizan en los sistemas digitales, algunos almacenan la información en forma de magnitud verdadera y la transforman a forma de complemento antes de realizar una operación aritmética.
Ejercicio 2.24. Los siguientes números son números binarios en complemento a dos, determine el valor decimal: a) 011002; b) 110102; y, c) 100012. a) Como el signo es + la magnitud esta expresada en forma verdadera, entonces 011002 = +1210 b) Si complementamos la magnitud, C2 = (10102)’ = 01102, y dado que el signo se conserva tendremos que 101102 = -610. c) Si complementamos la magnitud C2 = (00012)’ = 11112 y como el signo se conserva tendremos que 111112 = -1510
2.3. Códigos binarios y alfanuméricos La codificación es en pocas palabras la abstracción simbólica de un objeto. En este caso los números son precisamente un sistema de codificación que nos permiten representar cantidades. Ahora conocemos el sistema numérico binario, que de hecho es llamado también sistema binario natural, porque la codificación sigue el ordenamiento de los números naturales, sin embargo, existen otros sistemas de códigos binarios cuya existencia es motivada por las utilidades prácticas que pueden tener al desarrollar tecnología digital.
2.3.1. Código BCD El código BCD (Binary Code Decimal, decimal codificado en binario) utiliza 4 dígitos binarios para representar un dígito decimal (0 al 9), observar la tabla 2.1. Tabla 1.2. Código BCD
Por ejemplo, la codificación en BCD del número decimal 59237 es: Decimal: BCD:
5 0101
9 1001
2 0010
3 0011
7 0111 20
2.3.2. Código Reflejado o Gray Pertenece a una clase de códigos llamado de cambio mínimo en los cuales solo cambia un bit cuando se pasa de una combinación otra. También es llamado código cíclico, porque en un conjunto elegido de bits para formar el sistema, el primero y el último código también varían en un solo bit. Tabla 2.3. Código Gray
Decimal
Código Gray
0
0000
1
0001 2
0011
3
0010
4 5
0110 0111
6
0101
7
0100
Este código se utiliza generalmente en dispositivos de entrada y salida, y especialmente en aquellas situaciones donde se hace necesario efectuar controles sobre el sistema por su facilidad de auto detección de errores.
2.3.3. Código ASCII En general los sistemas digitales deben poder reconocer código que representen no solo números sino también letras y caracteres especiales. Estos códigos son llamados códigos alfanuméricos. Un conjunto completo de caracteres incluye: 26 letras minúsculas +
26 letras mayúsculas 10 cifras numéricas ~25 caracteres especiales 87 caracteres diferentes
Para representar 87 caracteres diferentes se requerirán 7 bits ya que con 7 bits podemos representar 27 = 128 combinaciones posibles. El código alfanumérico más conocido es el código ASCII (Código Estándar
21
Estadounidense para el Intercambio de Información) realizado sobre una longitud de 8 bits, ya que, en el momento de su creación, se incluyeron además comandos abreviados por carácter para su utilización desde la línea de comandos o consola del sistema operativo. Tabla 2.4. Código ASCII
21
22
2.3.4. Código UNICODE El término Unicode alude a un sistema estándar de caracteres creado para permitir un fácil manejo de la informática, visualización y transmisión de escritos de diversos lenguajes y disciplinas técnicas, pero también incluye textos clásicos de lenguas ya muertas. En otras palabras y de una manera más específica el Unicode es un formato común de caracteres, que dentro del cual se encuentran cada uno de los caracteres de teclado de una computadora. De acuerdo a lo plasmado el término deriva de los tres objetivos perseguidos que son universalidad, unicidad y uniformidad.
Figura 2.2. Una vista a un fragmento del cód
igo UNICODE
23
3. Álgebra de Boole En ésta unidad el estudiante:
• • •
Conoce y aplica los postulados y teoremas fundamentales del álgebra booleana. Representa las formas canónicas SOP y POS. Reduce funciones booleanas utilizando los teoremas del álgebra de Boole. Simplifica funciones booleanas mediante los métodos de mapas de Karnaugh y McClausky.
3.1. Postulados y teoremas fundamentales El Álgebra de Boole surgió como un intento de incrustar las técnicas algebraicas para tratar expresiones de la Lógica proposicional. Empecemos entonces comprendiendo los estados lógicos Verdadero y Falso representados numéricamente mediante el 1 y el 0. Vistos desde el punto de vista eléctrico podemos interpretar como los estados de encendido-apagado de un foco (figura 3.1). Cuando el circuito se cierra el foco se enciende y representa el estado lógico 1 o Verdadero; en caso contrario, si el circuito está abierto, entonces tenemos el estado lógico 0 o Falso.
Figura 3.1. Representación eléctrica de los estados lógicos
.
En éste orden de ideas, definimos al Álgebra de Boole como el conjunto de elementos ‘b’ que puede asumir dos valores posibles (0 o 1) y que están relacionados por dos operaciones binarias suma (+) y producto (*) lógico, y que además cumple con conjunto de postulados.
Figura 3.2. Operaciones lógicas fundamentales. De la figura 3.2 podemos obtener las tablas para la suma y producto lógico. 24
Tabla 3.1. Tablas de Operaciones Lógicas básicas.
Suma Lógica a b a+b
Producto Lógico a b a∙b
0 0 0
0 0 0
0 1 1
0 1 0
1 0 1
1 0 0
1 1 1
1 1 1
Los postulados son los siguientes: Postulado No 1. Las operaciones fundamentales son conmutativas. a + b = b+ a
a∙b =
b∙a
25
Postulado No 2. Existe el neutro aditivo, el ‘0’; y el neutro multiplicativo, el ‘1’. a+0=a a∙1=a
Postulado No. 3. Cada operación es distributiva respecto de la otra c a∙(b+c) =a∙b+a∙
a + ( b ∙ c ) = (a+b) ∙ (a+c)
La primera ecuación distributiva es bien conocida en el álgebra ordinaria y su Interpretación no debería presentar ninguna dificultad. Este postulado indica que podemos factorizar una expresión, es decir que si tenemos una expresión de dos o más términos y estos términos tienen una (o más) variables en común, estas variables pueden expresarse como factor común. Ejemplos:
a) 𝑎𝑏𝑐 + 𝑎𝑏̅𝑐 + 𝑎𝑏𝑐̅ = 𝑎 ∙ (𝑏𝑐 + 𝑏̅𝑐 + 𝑏𝑐̅) b) (𝑎 + 𝑏) ∙ (𝑎 + 𝑐) = 𝑎 + (𝑏 ∙ 𝑐) 3.1.1. Funciones booleanas Una variable binaria ‘𝑏’ puede tomar el valor 0 o 1. Luego, una función de Boole es una expresión formada con variables binarias y operadores booleanos (los correspondientes a la suma y producto lógico y la negación). La notación es la misma que se usa en el cálculo, así (𝑎, 𝑏, 𝑐) representa una función cuyas variables binarias son 𝑎, 𝑏, 𝑐, las cuales por consecuencia cumplen con los postulados y teoremas del Álgebra de Boole. La función en cuestión devuelve valores binarios en función de los valores de las variables, por ejemplo, la función 𝐹 (𝑎, 𝑏) = 𝑎𝑏̅ devuelve los valores mostrados en la siguiente tabla. Tabla 3.2. Un ejemplo de los valores de una función.
𝒂
𝒃
𝑭(𝒂, 𝒃)
0 0 1 1
0 1 0 1
0 0 1 0 26
Una función Booleanas se puede escribir en de varias maneras cuando se expresa a través de su forma algebraica, sin embargo, la llamada forma estándar emplea términos en forma de sumas (𝑎 + 𝑏 + 𝑐) y términos de productos (𝑎 𝑏 𝑐). Por ejemplo:
3.1.2. Función simple y función compuesta Una función booleana está en su forma compuesta cuando la expresión incluye los términos como una combinación sumas y productos de las variables, sin ninguna regla en particular, incluyendo términos que podrían ser redundantes. Por ejemplo, la función
𝐹(𝑎, 𝑏, 𝑐) = 𝑎𝑏̅𝑐̅ + 𝑏̅𝑐̅ + 𝑎𝑏̅ Está en una forma compuesta, ya que, por la teoría del Álgebra de Boole, algunos de los términos podrían reducirse,
𝐹 (𝑎, 𝑏, 𝑐) = 𝑎𝑏𝑐̅ ̅ + 𝑏𝑐̅ + ̅ 𝑎𝑏̅ = (𝑎 + 1) 𝑏̅𝑐̅ + 𝑎𝑏̅ = 𝑏̅ (𝑎 + 𝑐̅) El término de la última igualdad es una expresión más breve de la misma función, por lo que es una función en su forma simple.
3.2. Simplificación de funciones booleanas Se llaman términos canónicos, a todo término de producto o de suma que contenga absolutamente a todas las variables que intervienen en la función. Por ejemplo, en la expresión:
El primero y segundo sumando están en su forma canónica, mientras que el tercero no lo está. Cuando todos los términos están en su forma canónica se tiene una función canónica. En nuestro ejemplo, la forma canónica sería:
𝐹(𝑎, 𝑏, 𝑐) = 𝑎𝑏̅𝑐̅ + 𝑎𝑏𝑐 + 𝑎𝑏̅(𝑐 + 𝑐̅)
= 𝑎𝑏̅𝑐̅ + 𝑎𝑏𝑐 + 𝑎𝑏̅𝑐
Además, si la función está en su forma canónica tiene 2𝑛 términos, siendo 𝑛 la cantidad de variables binarias de las cuales depende dicha función. Lo cual a su vez nos permite construir la tabla de verdad correspondiente:
𝒂 0 0 0 0 1 1 1 1
𝒃 0 0 1 1 0 0 1 1
𝒄 0 1 0 1 0 1 0 1
F 0 0 1 0 1 1 0 0
Decimal 0 1 2 3 4 5 6 7 27
3.2.1. Minitérminos y maxitérminos Una función canónica en forma de sumas de productos se puede expresar en forma compacta usando una notación de sumatoria y cambiando los valores de las variables por 0 si están negadas y 1 si no lo están, e interpretando el valor binario que se forma al considerar todos los dígitos del término. En este sentido el término 𝑎𝑏𝑐̅ al usar ésta regla equivale a 110 y por lo tanto su valor numérico sería 6. Usando estas ideas:
𝐹 (𝑎, 𝑏, 𝑐) = 𝑎̅𝑏𝑐̅ + 𝑎𝑏̅𝑐̅ + 𝑎𝑏̅𝑐 = ∑ (2, 4,5) Llamaremos mini términos (en algunos textos, mintérminos) a las funciones canónicas expresadas como sumas de productos. La misma función se puede expresar canónicamente como productos de sumas si usamos las leyes de De Morgan. ̅̅̅ ̅𝑏̅𝑐̅ ̅̅ +̅̅̅𝑎 ̅ ̅𝑏 ̅ ̅𝑏 𝐹𝑚(𝑎, 𝑏, 𝑐) = 𝑎̅𝑏𝑐̅ + 𝑎𝑏̅𝑐̅ + 𝑎𝑏̅𝑐 = (̅̅𝑎 ̅ ̅𝑐̅̅ ̅+𝑎 ̅ ̅𝑐̅ ̅)̅ = = 𝑎 ̅ ̅𝑏 ̅ ̅𝑐̅ ̅̅ ∙̅̅𝑎̅𝑏̅𝑐̅ ̅̅ ∙̅̅𝑎̅̅𝑏̅𝑐̅ ̅ = (̅̅𝑎̅+̅̅𝑏̅+̅ ̅ ̅𝑐̅)(̅ ̅𝑎̅+̅ ̅ ̅𝑏̅+̅𝑐̅ ̅)(̅ 𝑎 ̅ ̅+̅ ̅ ̅𝑏̅+̅𝑐̅ ̅)̅ La última expresión representa a la función como producto de sumas, pero complementado, para compensarlo complementamos a ambos lados:
𝐹𝑀(𝑎, 𝑏, 𝑐) = 𝐹 ̅ ̅𝑚̅(𝑎, 𝑏, 𝑐) = (𝑎 + 𝑏̅ + 𝑐)(𝑎̅ + 𝑏 + 𝑐)(𝑎̅ + 𝑏 + 𝑐)̅ De donde implicamos que la forma en productos de sumas es el complemento de la forma en minitérminos, razón por la cual y en contrasentido, llamaremos a éstos multiplicandos los llamaremos maxitérminos (llamados también maxtérminos). En conclusión, para nuestro ejemplo:
𝐹𝑀 (𝑎, 𝑏, 𝑐) = (𝑎 + 𝑏̅ + 𝑐) (𝑎̅ + 𝑏 + 𝑐) (𝑎̅ + 𝑏 + 𝑐̅)
= ∏ (0, 1, 3, 6,7)
El poder pasar de minitérminos a maxitérminos y viceversa es muy útil en la simplificación de funciones.
3.2.2. Mapas de Karnaugh Las expresiones Booleanas pueden ser simplificadas por manipulación algebraicas, como se ha visto en ejercicios anteriores. Como un ejemplo:
El método del mapa de Karnaugh en cambio, es un método tabular de reducción de funciones basado en el cuarto postulado: 𝑎 + 𝑎̅ = 1, y ofrece un procedimiento directo, para simplificar expresiones booleanas de hasta cinco variables. Se pueden trazar mapas para mayor cantidad de variables, pero son más difíciles de manipular.
28
Este método en una representación bidimensional de la tabla de verdad de la función a simplificar. Puesto que la tabla de verdad de una función de 𝑁 variables posee 2𝑁 filas, el mapa 𝐾 correspondiente debe poseer también 2𝑁 cuadrados. Las variables de la expresión son ordenadas en función de su peso y siguiendo el código Gray, de manera que sólo una de las variables varía entre celdas adyacentes. La transferencia de los términos de la tabla de verdad al mapa de Karnaugh se realiza de forma directa, albergando un ‘0’ o un ‘1’, dependiendo del valor que toma la función en cada fila. Las tablas de Karnaugh se pueden fácilmente realizar a mano con funciones de hasta 6 variables, para funciones de mayor cantidad de variables es más eficiente el uso de software especializado.
Ejercicio 3.2. Dada la función booleana 𝐹 (𝑎, 𝑏, 𝑐) = 𝑎𝑏𝑐 + 𝑎𝑏̅𝑐 + 𝑎𝑏𝑐̅ + 𝑎𝑏̅𝑐 ̅ obtenga su reducción mediante mapas de Karnaugh. Solución: I. Representamos la función en una tabla de verdad a b c F 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 II. Construimos un mapa de Karnaugh de tantas celdas como filas tenga la tabla de
29
Verdad. Considere como referencias de columnas a combinaciones del par de variables de menor valor significativo, codificándolas en código Gray. Algo similar se hace para colocar las referencias de columna, aunque en este caso sólo al ser sólo una variable la que resta, sólo se colocan en orden de 0 a 1. Observe el mapa de éste ejercicio: bc 00 01 11 10 0 0 0 0 0 a 1 1 1 1 1 III. Para reducir la función encierre con círculos o elipses, grupos de 1’s en potencias de base dos: 2, 4,8, etc., de celdas adyacentes, considere que la base de la tabla es adyacente a la parte superior, y que el extremo izquierdo es adyacente al extremo derecho. Para escribir la expresión resultante anote las variables cuyo valor no cambia en el grupo formado. Vea el ejemplo.
En este caso se han agrupado los cuatro unos de la fila inferior, en los cuales la única variable que no cambia es a. De este modo la reducción es, como sabíamos por el Álgebra de Boole, 𝐹(𝑎, 𝑏, 𝑐) = 𝑎. Ejercicio 3.3. Reducir la función 𝐹 (𝑎, 𝑏, 𝑐, 𝑑) = ∑ (6, 8, 9, 10, 11, 12, 13,14). Solución: I. Escribimos la función en forma de minitérminos: 𝐹(𝑎, 𝑏, 𝑐, 𝑑) = 𝑎̅𝑏𝑐𝑑̅ + 𝑎𝑏̅𝑐̅𝑑 + ̅ 𝑎𝑏̅𝑐̅𝑑 + 𝑎𝑏̅𝑐𝑑̅ + 𝑎𝑏̅𝑐𝑑 + 𝑎𝑏𝑐̅𝑑̅ + 𝑎𝑏𝑐𝑑̅ + 𝑎𝑏𝑐𝑑̅ II. Hacemos la tabla de verdad correspondiente. No 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
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 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0
30
4. Compuertas Lógicas En esta unidad el estudiante:
• •
Conoce qué es una familia lógica y sabe diferenciar entre ellas. Aplica las tablas de verdad de los diferentes operadores lógicos para obtener la función booleana correspondiente a cada una de las compuertas lógicas.
4.1. Niveles lógicos y compuertas lógicas La electrónica digital es un área de la ciencia que estudia las señales eléctricas que varían en forma discreta, considerando que se tienen bien identificados sus estados, razón por la cual a un determinado nivel de tensión se le llama estado alto (High) o uno lógico; y a otro, estado bajo (Lo) o cero lógico. Los niveles lógicos equivalen a niveles de voltaje que varían según la tecnología empleada.
Figura 4.1. Tensiones eléctricas como niveles lógicos. La figura 3.1 esquematiza los rangos de voltaje que representan los estados lógicos de un sistema binario, en el cual el valor 1 o verdadero se da en los niveles de voltaje alto, y el valor 0 o falso se da en los niveles de voltaje bajo. Ésta forma de representar los valores de verdad es llamada Lógica Positiva, porque es la interpretación natural de la mayoría 31
de las personas. Sin embargo, es posible representar los valores de verdad falsos con 1 o voltaje alto, y los valores verdaderos con 0 o con voltaje bajo, lo que nos lleva a la Lógica Negativa.
Figura 4 .2 . Interpretación de un proceso lógico en una compuerta. Las compuertas son dispositivos que operan con aquellos estados lógicos mencionados. Pueden asemejarse al proceso en una computadora, por un lado se ingresa un dato, la compuerta realiza la operación lógica correspondiente a su tipo, y finalmente, muestra el resultado en su salida. Cada compuerta lógica realiza una operación aritmética o lógica diferente, que se representa mediante un símbolo de circuito. A continuación, vamos a analizar las diferentes operaciones lógicas una por una comenzando por la más simple.
4.1.1. Compuerta NOT La también llamada compuerta inversora, es un dispositivo electrónico de una única entrada que devuelve el valor lógico opuesto del que se le introduce. Por ejemplo, si se pone su entrada a 1 (nivel alto) se obtiene una salida 0 (o nivel bajo), y viceversa. a S 0 1 1 0 Tabla de Verdad Figura 4 .3 . La compuerta Not .
4.1.2. Compuerta AND Una compuerta AND tiene dos entradas como mínimo y su operación lógica es el producto lógico de ambas entradas. No se debe confundir la operación lógica con la operación aritmética, ya que pueden no concordar con las aritméticas, aunque en este caso particular coincidan. Su salida será alta si sus dos entradas están a nivel alto. a b 0 0 0 1 1 0 111
S 0 0 0
Tabla de verda Figura 4.4. Compuerta AND. d Símbolo
32
4.1.3. Compuerta OR Al igual que la anterior posee dos entradas como mínimo y la operación lógica, será una suma lógica entre ambas. La operación lógica O es inclusiva; es decir que la salida es alta si una sola de las entradas es alta o inclusive si ambas lo son. Es decir, basta que una de las entradas sea 1 para que su salida también lo sea. a b S 0 0 0 0 1 1 1 0 1 1 1 1 Tabla de Símbolo verdad . Compuerta Figura 4.5OR
4.1.4. Compuerta NAND La compuerta NAND es un dispositivo de dos entradas como mínimo, cuya salida es la composición de poner una compuerta NOT después de una compuerta AND, de tal forma que su salida es la inversa de ésta última. Su símbolo es casi el mismo que la AND, agregando justo antes de la línea de salida un pequeño círculo, que es virtualmente significa la inversión de dicha salida.
Símbolo s
a b 0 0 0 1 1 0 Ta 1 1 0
S 1 1 1
Figura 4 .6 . Compuerta NAND bla verdad
de
4.1.5. Compuerta NOR La compuerta NOR se obtiene conectando una NOT a la salida de una OR. El resultado que se obtiene a la salida de esta compuerta es entonces la inversión de la operación lógica OR. Lo mismo que en el caso anterior, sólo se agrega un círculo a la salida de la OR y se obtiene el símbolo de la NOR. a 0 0 1 1
b S 0 1 1 0 0 0 1 0
Símbolos Tabla de verdad Figura 4.7. Compuerta NOR
33
4.1.6. Compuerta XOR La compuerta OR exclusiva u XOR, es una versión de la OR anteriormente vista, en la que se anula la posibilidad de que ambas entradas en 1 den como salida 1 (ver tabla de verdad en la figura 4.8). En Álgebra de Boole su expresión sería: 𝑆 = 𝑎𝑏̅ + 𝑎̅𝑏 = 𝑎 ⊕ 𝑏. a b S 0 0 0 0 1 1 1 0 1 1 1 0 Tabla de verdad Símbolo s Figura 4 .8 . Compuerta X OR
4.1.7. Compuerta XNOR La compuerta XNOR, es simplemente la negación de la compuerta XOR. Por el Álgebra de
̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ Boole tenemos que, 𝑎 ̅ ̅⊕̅𝑏̅ = 𝑎𝑏+ ̅ 𝑎𝑏 ̅ = 𝑎𝑏̅ ∙ 𝑎 ̅ ̅𝑏̅ = (𝑎̅ + 𝑏) (𝑎 + 𝑏̅) = 𝑎̅𝑏̅ + 𝑎𝑏 = 𝑎 ⊙ 𝑏. El último término en la igualdad es justamente la expresión de la función XNOR.
Símbolos Figura 4.9. Compuerta XOR
a b 0 0 0 1 1 0 1 1 Tabla verdad
S 1 0 0 1 de
4.2. Familias Lógicas Las compuertas lógicas, como dijimos, son dispositivos electrónicos que sirven para construir circuitos que simulen físicamente las expresiones dadas por la teoría del Álgebra de Boole. Estos dispositivos electrónicos se constituyen en circuitos integrados digitales (CI), que se agrupan en familias lógicas. Cada familia refiere una tecnología específica de fabricación. Las diversas familias lógicas caen en las amplias categorías basadas en el elemento principal que se usa para la fabricación. Las familias bipolares (TTL Y ECL) utilizan el transistor bipolar como elemento principal del circuito. Las familias de semiconductores de óxido metálico (MOS) utilizan transistores de efecto de campo como elemento principal. Si bien las familias TTL y CMOS dominan las áreas de aplicación que requieren compuertas biestables, existen otras familias cuyas características se resumen la tabla 4.1.
34
FAMILIA
DTL
RTL
TTL
STTL
Compuerta básica
NAND
NOR
NAND
NAND
Fan-Out tipico
8-10
4
8-10
Retardo típico (ns)
30
20
6-33
Desempeño al ruido
bueno
aceptable aceptable aceptable aceptable
10 mw
12 mw
Disipación potencia
de
1-25 mw
ECL
CMOS
OR NOR
NAND NOR
8-10
20-25
ilimitada
3-10
1-2
25-35
2-20 mw
alta
Muy bueno
0.01
w
La nomenclatura con que se definen los parámetros más importantes de los circuitos lógicos se ha estandarizado:
•
VIH (mín.), Voltaje de entrada de alto nivel: es el nivel de tensión mínimo que se requiere para un “1” lógico en la entrada. • VIL(máx.), Voltaje de entrada de bajo nivel: es el nivel de tensión máximo admitido que se requiere para un “0” lógico en la entrada. • VOH (mín.) Voltaje de salida de alto nivel: es el valor de tensión en la salida del circuito lógico para un estado de “1” lógico. • VOL (máx.) Voltaje de salida de bajo nivel: es el valor de tensión en la salida del circuito lógico en un estado de “0” lógico. • IIH, Corriente de entrada de alto nivel: corriente que fluye en una entrada cuando se aplica una tensión VIH en dicha entrada. • IIL, Corriente de entrada de bajo nivel: corriente que fluye en una entrada cuando se aplica una tensión VIL en dicha entrada. • IOH, Corriente de salida de alto nivel: corriente que fluye desde la salida en el estado “1” lógico. • IOL, Corriente de salida de bajo nivel: corriente que fluye desde la salida en el estado “0” lógico. Otros parámetros relevantes:
•
Fan-Out, Carga máxima de la salida: número máximo de entradas lógicas que se pueden conectar en una salida (figura 4.10).
35
Figura 4.10. Compuertas en paralelo en la misma salida (Fan
• •
- Out)
tPLH, es el tiempo de retardo para pasar de un estado lógico “0” a “1”. tPHL, es tiempo de retardo para pasar de un estado lógico “1” a “0”.
Figura 4.11. Tiempos de retardo en un circuito integrado.
• •
Icc, corriente que se toma de la fuente de alimentación, esta corriente variara de acuerdo a los estados lógicos de la salida del circuito. Inmunidad al ruido: es la capacidad del circuito para tolerar señales ruidosas en sus entradas o la variación de tensión admisible a la entrada de una compuerta sin que esta cambie de estado. El margen de ruido en el estado alto se define como: VNH = VOH (min) – VIH (min) El margen de ruido en el estado bajo se define como: VNL = VIL (max) – VOL (max)
Figura 4.12. Esquematización del ruido en los niveles lógicos. 36
Como se puede ver en la figura 4.12, la tensión de salida (A) si es “0” lógico podrá superar a Vol en un valor menor o igual a VNL antes de que la entrada B deje de reconocer un “0” lógico. Igualmente observamos que el valor VOH en A podrá disminuir VNH voltios antes de que la entrada B deje de reconocer un “1” lógico.
Todos los parámetros indicados se obtienen de las hojas de datos (datasheets) del fabricante
Figura 4.13. Fragmento de una hoja de datos.
5. Circuitos Combinacionales En esta unidad el estudiante: Diseña e implementa circuitos combinacionales.
5.1.
Introducción.
Los circuitos lógicos de sistemas digitales, pueden ser combinatorios o secuénciales. Un circuito combinatorio consta de compuertas lógicas cuyas salidas en cualquier momento se determinan directamente a partir de los valores de las entradas presentes. Un circuito combinatorio realiza una operación de procesamiento de información determinada que se puede especificar lógicamente por medio de un conjunto de expresiones booleanas. Los circuitos secuenciales emplean elementos de almacenamiento llamados multivibradores biestables (flip–flops) además de las compuertas lógicas. El estado de los elementos de almacenamiento, a su vez, es función de las entradas previas. Como consecuencia, las salidas de un circuito secuencial dependen no solo de los valores presentes de las entradas, sino también de las entradas pasadas, y el comportamiento del circuito debe especificarse, por una secuencia de tiempo de entradas y estados internos. Los circuitos secuenciales se presentan en la siguiente unidad. Un circuito combinatorio consta de variables de entrada, compuertas lógicas o de lógica, y variables de salida. Las compuertas lógicas, aceptan señales de las entadas y generan 37
señales en las salidas. Este proceso transforma informaciones binarias de datos de entrada en datos de salidas requeridos. En la figura siguiente se presenta un diagrama en bloques de un sistema combinacional.
Figura 5.1. Esquema general de un circuito combinacional. Las M variables de entrada provienen de una fuente externa y las N variables de salida se dirigen a un destino externo. Cada variable de entrada y salida existe físicamente como una señal binaria que representa el equivalente de un ‘1’ o un ‘0’ lógico. Para n variable de entrada existen 2n combinaciones binarias posibles. Para cada combinación binaria de las variables de entrada existe un valor binario de salida posible. Por lo tanto, un circuito combinacional se puede especificar a través de una tabla de verdad que presente los valores de salida de cada combinación de la variable de entradas. Existen circuitos combinacionales que se emplean frecuentemente en el diseño y la construcción de computadores digitales. Estas componentes están disponibles en circuitos integrados y se clasifican como circuitos MSI (mediana escala de integración).
5.2. Procedimiento de análisis El análisis de un circuito combinacional, consiste en determinar la función que ejecuta el circuito. Se inicia con un diagrama de un circuito lógico, dado y culmina con un conjunto de funciones booleanas cuya tabla de verdad junto con una posible explicación de la operación del circuito El primer paso en el análisis consiste en asegurarse de que el circuito dado sea combinacional y no secuencial. El diagrama de un circuito combinatorio tiene compuertas, lógicas sin elementos de retroalimentación o almacenamiento. Una trayectoria de retroalimentación existe si hay una conexión de la salida de una compuerta a la entrada de otra, que forma parte de la entrada de la primera compuerta. Cuando se verifica que un diagrama lógico es un circuito combinacional, se puede proceder a obtener las funciones booleanas de salida o la tabla de la verdad.
38
5.2.1. Obtención de Funciones Booleanas Para mostrar el proceso de obtención de una función booleana consideremos el siguiente circuito.
a
4 6
T2
5
b 9 1
2
1 3
T1
8
T3
10
2
c
Figura 5.2. Circuito combinacional para ejemplo de deducción de funciones booleanas. Los pasos a seguir son:
I. Identificar y nominar las salidas de aquellas compuertas cuyas entradas está en función de la variable de entrada para luego escribir la función Booleana que la expresa.
𝑇1 = 𝑏̅ 𝑐
II.
III.
Identificar y nominar aquellas compuertas que tengan como entrada las variables de entrada y/ o las salidas de las compuertas identificadas en el paso anterior. Escribir su función. 𝑇2 = 𝑎 ∙ 𝑇1 Repetir el paso anterior hasta llegar a las variables de salida.
𝑇3 = 𝑇1 ∙ 𝑇2 = (𝑏̅ ∙ 𝑐) ∙ (𝑎 ∙ (𝑏̅ ∙ 𝑐)) = 𝑎 ∙ 𝑏̅ ∙ 𝑐
5.2.2. Obtención de la Tabla de Verdad La obtención de la tabla de verdad de un circuito combinacional es un proceso sencillo, una vez que se conocen las funciones booleanas de salida, se procede a construir una tabla de verdad en la cual se escribirán todas las combinaciones posibles de las variables que intervienen en la función y luego tomando estas combinaciones se reemplaza en la función booleana para así obtener el valor de la salida.
Siguiendo con el ejemplo, para algunas combinaciones tenemos:
•
Para la combinación 0 𝑇3 = (1 ∙ 0) ∙ (0 ∙ (1 ∙ 0)) = 0
•
Para la combinación 5 𝑇3 = (1 ∙ 0) ∙ (0 ∙ (1 ∙ 0)) = 0
Tabla de Verdad del ejemplo # a b c 𝑇3 0 0 0 0 0 1 0 0 1 0 2 0 1 0 0 3 0 1 1 0 4 1 0 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 1 0
39
Si no se tiene la función booleana se puede recurrir a un simulador en software donde podremos ir probando los valores a la entrada y verificar la salida, aunque deberíamos de ser capaces de realizar ésta misma actividad a mano. Su docente le sugerirá el software más adecuado para realizar una simulación. En la figura 5.3 se muestra el software LogiSim simulando las combinaciones hechas en el ejemplo presente.
Figura 5.3. Simulación en software del circuito de ejemplo. Ejercicio 5.1. Encontrar la función booleana y la tabla de verdad del circuito de la figura siguiente. Realice la simulación en software y arme el circuito correspondiente para verificar sus resultados.
Figura 5.4. Circuito para el ejercicio 5.1.
40
Solución:
Tabla de Verdad A B C F 0 0 0 0 𝐹=𝐴∙𝐶+𝐴∙𝐵+𝐵∙𝐶 0 0 1 0 0 1 0 0 Y la tabla de verdad construida a partir de la función F, para todas 0 1 1 1 las combinaciones posibles de las variables de entrada es la que 1 0 0 0 se muestra en el recuadro de la derecha. 1 0 1 1 1 1 0 1 1 1 1 1
5.3. Procedimiento de diseño El diseño de circuitos combinacionales comienza desde la especificación del problema y culmina en un diagrama de circuito lógico o en un conjunto de funciones booleana del cual se puede obtener el diagrama lógico. En el procedimiento se aplican los siguientes pasos:
I.
De las especificaciones del circuito, determínese el número de entradas y salidas y asígnese un símbolo alfabético (o, letra) a cada una. II. Construirla tabla de verdad que define la relación entre entradas y salidas analizando 2n posibles combinaciones (n = cantidad de variables de entrada). III. Obtener las funciones booleanas a partir de la tabla de verdad y simplifíquese por el método de Karnaugh (o algebraicamente) para cada una de las salidas. IV. Dibujar el diagrama lógico Ejercicio 5.2. Diseñar un circuito con tres variables de entrada y una de salida. La salida debe ser de un 1 lógico cuando el valor decimal que representan las entradas sea menor que tres y 0 lógico en caso contrario. Utilícense solo compuertas NAND en la construcción del diagrama. Realícese la simulación en software y física del diseño. Solución:
i) ii)
Definimos las variables, en este caso se identifica claramente que necesitamos tres variables de entrada a, b, c y una de salida S. Construimos la tabla de verdad que cumpla con el enunciado.
# 0 1 2 3 4
a 0 0 0 0 1
b 0 0 1 1 0
c 0 1 0 1 0
S 1 1 1 0 0 41
5 1 0 1 0 6 1 1 0 0 7 1 1 1 0
iii)
iv)
Obtenemos la expresión booleana, en este ejemplo lo haremos como suma de producto. 𝑆 = 𝑎𝑏 ̅ 𝑐̅ ̅ + 𝑎𝑏 ̅ 𝑐̅ + 𝑎̅𝑏𝑐 ̅ Aplicamos la reducción, en este caso por mapas de Karnaugh
𝑆 = 𝑎̅𝑐̅ + 𝑎̅𝑏̅ v)
Construimos el diagrama lógico.
Figura 5.5. Primera aproximación al resultado. Como puede apreciarse no cumple con el requerimiento de emplear compuertas AND, lo cual se puede lograr si a la función resultante se le aplican las Leyes de De Morgan, lo cual se deja al estudiante.
5.3.1. Circuitos de salida múltiple Cuando un circuito combinacional posee más de una salida, cada una de ellas puede ser tratada en forma independiente, obteniéndose un diagrama lógico para cada una de ellas. El riesgo que se corre en estos casos es la posibilidad de duplicar funciones con el correspondiente aumento innecesario del costo, pero se simplifica notablemente el diseño y se reducen las posibilidades de error. Además, se simplifica el mantenimiento del sistema. De todas formas, mencionaremos que el método tabular Karnaugh permite la simplificación de múltiples funciones si dadas las funciones 𝐹1 (𝑎, 𝑏, 𝑐), 𝐹2 (𝑎, 𝑏, 𝑐,), y 𝐹3 (𝑎, 𝑏, 𝑐), se aplican las siguientes sentencias:
a) Representar en una tabla aquellos términos canónicos que se repiten en 𝐹1, 𝐹2, 𝐹3. b) Representar en una tabla aquellos términos que se repiten 𝐹1 y 𝐹2 y que no se representaron en la tabla anterior. 42
c) Representar en una tabla aquellos términos que se repiten en 𝐹1 y 𝐹3 y que no se d) e) f) g) h)
representaron en las tablas anteriores. Representar en una tabla aquellos términos que se repitan en 𝐹2 y 𝐹3 y que no se representaron en las tablas anteriores. Representar en una tabla los términos que solo están en 𝐹1 y que no se representaron en las tablas anteriores. Representar en una tala los términos que solo están en 𝐹2 y que no se representaron en las tablas anteriores. Representar en una tala los términos que solo están en 𝐹3 y que no se representaron en las tablas anteriores. Escribir las funciones booleanas para las funciones tomando los términos que le correspondan a cada función de todas las tablas.
𝐹1, 𝐹2, 𝐹3
𝐹1, 𝐹2
𝐹1, 𝐹3
𝐹2, 𝐹3
𝐹1
𝐹2
𝐹3
De este modo: F1= términos de la tabla (𝐹1, 𝐹2, 𝐹3) + Términos de la tabla (𝐹1, 𝐹2) + + Términos de la tala (𝐹1, 𝐹3) + Términos de la tabla 𝐹1. F2= términos de la tabla (𝐹1, 𝐹2, 𝐹3) + Términos de la tabla (𝐹1, 𝐹2) + + Términos de la tala (𝐹2, 𝐹3) + Términos de la tabla 𝐹2. F3=
términos de la tabla (𝐹1, 𝐹2, 𝐹3) + Términos de la tabla (𝐹1, 𝐹3) + + Términos de la tala (𝐹2, 𝐹3) + Términos de la tabla 𝐹3.
43
6. Conclusiones En este apartado podemos observar las conclusiones que se obtuvieron con este trabajo. Desde que la electrónica digital se basa, como su nombre lo insinua, en las señales binarias que se envían a través de compuertas lógicas y otros circuitos integrados, se aplica en la construcción de múltiples circuitos para diferentes aparatos de uso común como computadoras, refrigeradores, televisiones, estéreos, celulares, dispositivos MP3, y una larga lista de etcéteras. Los sistemas digitales pueden incluso clasificarse de la siguiente forma:
-
Sistemas cableados
-
Sistemas Programados
Los primeros incluyen las memorias y los circuitos secuenciales; mientras que los segundos van orientados a mircroprocesadores y microcontroladores.
Por eso podemos decir que ella misma contempla los mejores avances y conducen la vida al futuro, claro complementada por las telecomunicaciones y por las ciencias exactas, la informática, la mecatrónica, la ciencia médica con aplicaciones de prótesis, chips cerebrales, los mismos juegos de realidad virtual y videojuegos infantiles y los no tan infantiles. En conclusión los desarrollos tecnológicos gestados en laboratorios, instalaciones militares, los avances y ayudas humanitarias a países y personas en sitios aún hoy en día remotos e inhóspitos, no fueran posible sin esta rama de la ingeniería la electrónica pero principalmente la digital, la cual es hoy en día una de las más importantes, versátil y sigue en avance y crecimiento en tiempos globalizados. La electrónica digital ha alcanzado una gran importancia debido a que es utilizada para realizar autómatas y por ser la piedra angular de los sistemas microprogramados como son los ordenadores o computadoras.
44
Bibliografía • • • •
Morris Mano, M. Lógica Digital y Diseño De Computadores. Ed. Prentice Hall, 1982. Morris Mano, M. Diseño Digital, Ed. Pearson Educación, 1987. Tocci, Ronald J. y Widmer Neal S. Sistemas Digitales Principios y Aplicaciones. Ed. Person Educación, 8va. Edición. 2003. Guzmán, R. (2010). Multivibrador astable a transistores: explicación. Obtenido de Electrónica y ciencia: http://electronicayciencia.blogspot.mx/2010/04/multivibradorastabletransistores.html
•
Herrera Vaquero, E., Hernández Vaquero, S., Ponce Acosta, C., & Trujillo Jimenez, J. A. (30 de 05 de 2012). Electrónica Digital FIME Universidad Veracruzana. Obtenido de Google Sites: https://sites.google.com/site/electronicadigitaluvfime/
•
Wikipedia La enciclopedia libre. (25 de Octubre de 2015). Multivibrador. Obtenido de Wikipedia.org: https://es.wikipedia.org/wiki/Multivibrador
45