UNIDAD 2 SISTEMAS DE NUMERACIÓN Y ÁLGEBRA DE BOOLE CONFIGURACIÓN DE INSTALACIONES DOMÓTICAS Y AUTOMÁTICAS Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
ÍNDICE 1.
Sistemas digitales................................................................................................................................. 3
2.
Sistemas de numeración...................................................................................................................... 3
3.
Sistema de numeración decimal ......................................................................................................... 4
4.
Sistema de numeración binario........................................................................................................... 4
5.
Sistema de numeración hexadecimal ................................................................................................. 5
6.
Operaciones Binarias ........................................................................................................................... 6
7.
Álgebra de Boole................................................................................................................................. 10
8.
Función Lógica.................................................................................................................................... 10
9.
Función NOT (NO)............................................................................................................................... 10
10.
Función AND (Y) ............................................................................................................................. 11
11.
Función OR (O) .............................................................................................................................. 11
12.
Función NAND (NOY) ..................................................................................................................... 12
13.
Función NOR (NOO) ....................................................................................................................... 12
14.
Función XOR (O exclusiva)............................................................................................................ 13
15.
Funciones lógicas con lógica cableada ....................................................................................... 13
16.
Póstulados del álgebra de Boole .................................................................................................. 15
17.
Simplificación de funciones lógicas............................................................................................. 17
18.
Formas canónicas .......................................................................................................................... 17
19.
Planteamiento de un circuito lógico............................................................................................. 20
20.
Minimización de funciones booleanas ......................................................................................... 21
21.
Método gráfico de Karnaugh ......................................................................................................... 21
22.
Procedimiento de diseño de circuitos lógicos ............................................................................ 24
23.
Problemas propuestos................................................................................................................... 30
2-2
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
1.
Configuración de instalaciones domóticas y automáticas
Sistemas digitales
Los sistemas digitales son los sistemas automáticos - o de control - gobernados por variables que pueden tomar un número finito de valores. Los más comunes son los gobernados por variables binarias. Éstas pueden tomar dos estados posibles: verdadero - falso, activo - inactivo, abierto - cerrado, activado desactivado, valor alto – valor bajo, conduce – no conduce, etc. Los sistemas digitales pueden realizarse con diferentes tecnologías: lógica cableada (contactos, relés), circuitos integrados, autómatas programables, circuitos neumáticos e hidráulicos, etc; pero todos tienen en común el hecho de manejar valores binarios (0,1). Por ello su funcionamiento tiene una base común en el Álgebra de Boole, y el sistema de numeración binario. Conocer estas herramientas será importante para poder abordar satisfactoriamente problemas de diseño de sistemas domóticos y sistemas automáticos en general.
2.
Sistemas de numeración
Todos estamos acostumbrados a manejar el sistema de numeración decimal sin grandes esfuerzos. Es el que hemos aprendido en la escuela y con el que empezamos a hacer nuestras primeras cuentas. Cuando los hombres empezaron a contar usaron los dedos, guijarros, marcas en bastones, nudos en una cuerda y algunas otras formas para ir pasando de un número al siguiente. A medida que la cantidad crece se hace necesario un sistema de representación más práctico. En diferentes partes del mundo y en distintas épocas se llegó a la misma solución, cuando se alcanza un determinado número se hace una marca distinta que los representa a todos ellos. Este número es la base. Se sigue añadiendo unidades hasta que se vuelve a alcanzar por segunda vez el número anterior y se añade otra marca de la segunda clase. Cuando se alcanza un número determinado (que puede ser diferente del anterior constituyendo la base auxiliar) de estas unidades de segundo orden, las decenas en caso de base 10, se añade una de tercer orden y así sucesivamente. La base que más se ha utilizado a lo largo de la Historia es 10 según todas las apariencias por ser ese el número de dedos con los que contamos. Hay alguna excepción notable como son las numeración babilónica que usaba 10 y 60 como bases y la numeración maya que usaba 20 y 5 aunque con alguna irregularidad. Desde hace 5000 años la gran mayoría de las civilizaciones han contado en unidades, decenas, centenas, millares etc. es decir de la misma forma que seguimos haciéndolo hoy. Sin embargo la forma de escribir los números ha sido muy diversa y muchos pueblos han visto impedido su avance científico por no disponer de un sistema eficaz que permitiese el cálculo. Casi todos los sistemas utilizados representan con exactitud los números enteros, aunque en algunos pueden confundirse unos números con otros, pero muchos de ellos no son capaces de representar grandes cantidades, y otros requieren tal cantidad de símbolos que los hace poco prácticos. Pero sobre todo no permiten en general efectuar operaciones tan sencillas como la multiplicación, requiriendo procedimientos muy complicados que sólo estaban al alcance de unos pocos iniciados. De hecho cuando se empezó a utilizar en Europa el sistema de numeración actual, los abaquistas, los profesionales del cálculo se opusieron con las más peregrinas razones, entre ellas la de que siendo el cálculo algo complicado en sí mismo, tendría que ser un método diabólico aquel que permitiese efectuar las operaciones de forma tan sencilla. El sistema actual fue inventado por los indios y transmitido a Europa por los árabes. Del origen indio del sistema hay pruebas documentales más que suficientes, entre ellas la opinión de Leonardo de Pisa (Fibonacci) que fue uno de los introductores del nuevo sistema en la Europa de 1200. El gran mérito fue la introducción del concepto y símbolo del cero, lo que permite un sistema en el que sólo diez símbolos puedan representar cualquier número por grande que sea y simplificar la forma de efectuar las operaciones. La importancia del sistema decimal radica en que se utiliza universalmente para representar cantidades fuera de un sistema digital. Junto con el sistema de numeración decimal existen otros sistemas que son también utilizados para tareas específicas, como el sistemas binario o el sistema hexadecimal. En los sistemas digitales, aquellos en los que las variables toman dos valores – 0 y 1 – el sistema binario (sistema de base dos) es de gran utilidad. En un sistema digital las operaciones se realizan en sistema binario, y por tanto la programación de sistemas digitales exige en muchos casos conocer a fondo este sistema. Habrá situaciones en las cuales los valores decimales tengan que convenirse en valores binarios antes de que se introduzcan en sistema digital. Otras veces los valores binarios de las salidas de un circuito digital se tendrán que convertir a valores decimales para presentarse al mundo exterior. Por otro lado del binario y el decimal, otros dos sistemas de numeración encuentran amplias aplicaciones en los sistemas digitales. Los sistemas octal (base 8) y hexadecimal (base 16) se usan con el mismo fin, Sistemas de numeración y álgebra de Boole
2-3
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
que es ofrecer un eficaz medio de representación de números binarios grandes. Como veremos, ambos sistemas numéricos tienen la ventaja de que pueden convenirse fácilmente al y del binario.
3.
Sistema de numeración decimal
El sistema de numeración decimal es un sistema posicional en base 10: el valor de las cifras depende de la situación que ocupen dentro del número, y construimos todos los números con 10 símbolos diferentes: {0,1,2,3,4,5,6,7,8,9} Esto se puede ver con más claridad desarrollando un número del sistema decimal:
1278 1000 200 70 8 11000 2 100 7 10 8 1 110 3 2 10 2 7 101 8 10 0 Las potencias de 10 que multiplican a cada una de las cifras es lo que llamaremos el “peso” de cada cifra. Al estar en el sistema decimal utilizamos 10 números, la base es 10 y el “peso” de cada cifra son potencias de 10. La notación que utilizaremos para indicar que un número está expresado en sistema decimal será el subíndice “10” o “d”
4.
Sistema de numeración binario
El sistema binario es un sistema de numeración posicional en base 2, utilizamos solamente dos símbolos diferentes , para representar todos los números: {0,1} La notación que utilizaremos para indicar que un número está expresado en sistema decimal será el subíndice “2” o “b” Conversión de binario a decimal: Cualquier número binario puede convenirse a su equivalente decimal, simplemente sumando en el número binario las diversas posiciones que contenga un 1. Ejemplo 1: convertir 1110112 en decimal.
1110112 1 2 5 1 2 4 1 2 3 0 2 2 1 21 1 2 0 2 5 2 4 2 3 21 2 0 32 16 8 2 1 5910 Los “pesos” correspondientes a las cifras decimales serán 1/2, 1/4, 1/8 , 1/16, .... Ejemplo 2: convertir 1001,0012 en decimal.
1001,0012 1 2 3 0 2 2 0 21 1 2 0 0 (1 / 21 ) 0 (1 / 2 2 ) 1 (1 / 2 3 ) 8 1 (1 / 8) 9,12510 Conversión de decimal a binario: una forma de realizar el paso de decimal a binario es dividir repetidas veces el número en decimal entre dos, marcamos los restos (que al dividir entre dos sólo podrán ser 0 o 1) y el último cociente. Para formar el número binario tomamos el último cociente como bit más significativo y a continuación los restos de abajo a arriba:
17410 10101110 2
Ejemplo 3: convertir 17410 a binario. 174 2 0
2-4
87
2
1
43
2
1
21
2
1
10
2
0
5
2
1
2
2
0
1
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
Si el número que queremos convertir tiene decimales, procederemos con la parte entera igual que en el ejemplo anterior. Para convertir la parte decimal multiplicaremos por dos la parte decimal. Del resultado obtenido separaremos la parte decimal y la volveremos a multiplicar por dos. Volvemos a hacer lo mismo con la parte decimal del resultado obtenido. Detendremos el proceso cuando la parte decimal obtenida sea cero. La parte decimal del número expresado en binario la obtendremos con la parte entera de los resultados obtenidos en los productos. Ejemplo 4: convertir 26,187510 a binario.
0,1875 x2 ----------0,3750
26
2
0
13
2
1
6
2
0
3
2
1
1
0,3750 x2 ------------0,7500
0,7500 x2 ----------1,5000
0,50000 x2 -----------1,00000
26,187510 11010,00112 Al igual que los números decimales, los números binarios pueden presentar un número infinito de cifras decimales. En este caso detendremos el proceso cuando alcancemos la precisión deseada. Ejemplo 5: convertir 1,610 a binario. La parte entera del número binario será 1. 0,6 x2 ----1,2
0,2 x2 ----0,4
0,4 x2 ----0,8
0,8 x2 ----1,6
0,6 x2 ----1,2
A partir de la cuarta multiplicación el las cifras decimales se repetirán
1,610 1,10012 5.
Sistema de numeración hexadecimal
El sistema hexadecimal es un sistema de numeración posicional en base 16, utilizamos 16 símbolos diferentes , para representar todos los números. Para completar los 16 símbolos a continuación del 9 se añaden las letras A, B, C, D, E, F, escritas en mayúsculas. Sus valores correspondientes en decimal serán, respectivamente, 10, 11, 12, 13, 14 y 15. Por tanto los símbolos que utiliza el sistema de numeración hexadecimal serán: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F } La notación que utilizaremos para indicar que un número está expresado en sistema decimal será el subíndice “16” o “h” Conversión de hexadecimal a decimal: Cualquier número hexadecimal puede convenirse a su equivalente decimal, sumando los productos del valor equivalente en decimal por el peso correspondiente a cada cifra. Ejemplo 6: convertir 3AF16 en decimal.
3 AF16 3 16 2 10 161 15 16 0 3 256 10 16 15 1 768 160 15 94310 Conversión de binario a hexadecimal: una de las razones para utilizar el sistema hexadecimal es que permite representar los números con un menor número de cifras que el decimal y el binario. Además la conversión de binario a decimal es casi directa. Fijándonos en la tabla 1 podemos observar que con cuatro Sistemas de numeración y álgebra de Boole
2-5
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
bits de un número binario podemos representar los número decimales del 0 al 15 , o lo que es lo mismo, los dieciséis símbolos del código hexadecimal. Para convertir un número binario en hexadecimal agruparemos sus bits de cuatro en cuatro desde la derecha y escribiremos el equivalente en hexadecimal de cada uno de estos grupos. Figura 2.1, Equivalencia binario-decimal-hexadecimal
binario
decimal
hexadecimal
0000
0
0
0001
1
1
0010
2
2
0011
3
3
0100
4
4
0101
5
5
0110
6
6
0111
7
7
1000
8
8
1001
9
9
1010
10
A
1011
11
B
1100
12
C
1101
13
D
1110
14
E
1111
15
F
Ejemplo 5.2: convertir 1 10011100010111001110011000110011 2 en hexadecimal. 0001
1001
1100
0101
1100
1110
0110
0011
0011
1
9
C
5
C
E
6
3
3
110011100010111001110011000110011 2 = 19C5CE63316
6.
Operaciones Binarias
En lo que sigue se adopta como convención la lógica positiva, lo que implica: verdadero = 1 = activo, falso = 0 = inactivo Hay cinco operaciones binarias básicas: AND, OR, NOT, XOR y ADD. La resta, multiplicación y división se derivan de estas cinco anteriores. Cualquiera sea la longitud de la palabra (conjunto de bits que forman un número en binario) o palabras objeto de la operación, siempre se hace de a un bit por vez de derecha a izquierda (tal como si fuera una suma o resta con números decimales). Esto permite una definición de cada operación que es independiente de la longitud del o de los operando(s). La operación NOT es la única que se realiza sobre un sólo operando (es unaria), y las otras cuatro sobre dos operandos. - La operación AND (Y) tiene resultado 1 si sus dos operandos son ambos 1 - La operación OR (O) tiene resultado 1 si cualquiera de sus operandos es 1 - La operación XOR tiene resultado 1 si los operandos son distintos (uno en 0 y el otro en 1) - La operación NOT (NO) tiene resultado 1 si el operando es 0 y viceversa - La operación ADD (SUMA) se define igual que con los números decimales
2-6
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
Figura 2.1, operaciones binarias
AND
OR
XOR
NOT
SUMA
0*0=0
0+0=0
0X0=0
NOT 1 = 0
0+0=0
0*1=0
0+1=1
0X1=1
NOT 0 = 1
0+1=1
1*0=0
1+0=1
1X0=1
---
1+0=1
1*1=1
1+1=1
1X1=0
---
1 + 1 = 10
Ejemplo 7: La suma se realiza igual que en el sistema decimal. Hay que tener en cuenta que al sumar en sistema decimal tenemos un acarreo(“nos llevamos una”) cuando el resultado de la suma de dos cifras es mayor que nueve. Al sumar en binario tendremos acarreo si la suma de dos cifras en mayor que uno. 1 1
1
1
1
1
1 1 0 0 1 +
1
Acarreo
Acarreo
1 0 1 0 1 1 1 0 0 0 1 0 0
25 +
+ 43 68
1 1 0, 1 0
6,50
1 1 0 1, 0 1
+ 13,25
1 0 0 1 1, 1 1
19,75
Ejemplo 8: La multiplicación se realiza de la misma forma que en el sistema decimal.
x
1 1 0 0 1
25
1 0 0 1 1
x19
1 1 0 0 1
225
1 1 0 0 1 1 1 0 0 1
25 475
1 1 1 0 1 1 0 1 1
Ejemplo 9: Reglas de la división binaria: 0/0 no permitida, 1/0 no permitida, 0/1=0, 1/1=1 1 1 0, 0 1
1 0
0 1 0
1 1, 0 0 1
0 0
0 1 0 0
Es lo que hacemos en la suma decimal 5+5=10 (nos llevamos "1" para la operación del dígito siguiente). Este llevarse "1" es bastamente usado entre los procesadores digitales y tiene un nombre especial: carry (lo verá abreviado como CY, C o CF-por carry flag), lo que en castellano se traduce como "acarreo" .Estas operaciones también se llaman "booleanas" ya que se basan en el álgebra de Boole. Muchas computadoras digitales utilizan un sistema numérico de complemento a base a fin de minimizar la cantidad de circuitos necesarios para realizarla aritmética de enteros. Por ejemplo, se puede realizar la operación A - B calculando A + (- B) donde (- B) está representado por el complemento a 2 de B. Por tanto, la computadora sólo necesita un sumador binario y algunos circuitos complementarios para la suma y la resta. Las máquinas que utilizan el sistema numérico de complemento a 2 pueden representar enteros en el intervalo –2n-1 2n-1-1, donde n es el número de bits disponibles para representar a N. Observe que 2n-1-1=(0,11...1)2ms y que –2n-1=(1,00...0)2ms, donde el bit extremo representa el signo y los n-1 bits restantes representan la magnitud. Se considerarán tres casos para ilustrar la aritmética en el sistema numérico de complemento a dos: A=B+C, A=B-C y A=-B-C. Se describirá cada caso en general y para todos los casos se supondrá que B>0 y C >0. Los resultados se pueden generalizar fácilmente, si B y C son negativos. Sistemas de numeración y álgebra de Boole
2-7
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
Ejemplo 10: Calcular A=B+C. Como B y C son positivos, A también lo será, y esto se convierte simplemente en (A)2 = (B) 2 + (C) 2 Como los tres números son positivos, no hay que utilizar complemento a dos. Cuando A> 2n-1-1, es decir, cuando hay desbordamiento existe una dificultad. Es fácil detectar tal condición, ya que el bit del signo de A será incorrecto. Calcule (9)10 + (5)10 con aritmética de complemento a dos de 5 bits. +(9) 10 = +(1001) 2 = (0,1001) 2ms +(5) 10 = +(0101) 2 = (0,0101) 2ms Al sumar estos códigos de 5 bits se obtiene 0 1 0 0 1 0 0 1 0 1 __________________ + 0 1 1 1 0 Como el resultado también tiene un bit de signo 0, representa correctamente la suma derecha, que se interpreta como, (0,1110)2ms = +(1110)2 = (14)10 Ejemplo 11: Calcular (12)10 + (7)10 (12)10 = +(1100)2 = (0,1100)2ms (7)10 = +(0111)2 = (0,0111)2ms Sumando los dos códigos de 5 bits resulta 0 1 1 0 0 0 0 1 1 1 ______________________ + 1 0 0 1 1 El resultado es (1,0011)2ms, que se interpreta, como (1,0011)2ms= -(1101) = -(13)10 El resultado es un número negativo. Sin embargo, esto no puede ser correcto, por lo que debe haber una explicación. La respuesta es que la suma de los dos números dados requiere mas espacio que los cinco bits originados para representarla. La suma correcta es +(19)10, que está fuera del intervalo de números de complemento a dos de cinco bits, pues la escala total positiva es (0,1111)2ms=+(15)10. El bit de signo incorrecto obtenido en los cálculos indica un resultado incorrecto. Por tanto, hay una condición de desbordamiento. Ejemplo 12: Calcular A = B - C. Se considera este cálculo como A = B +(- C) de la siguiente manera: A = (B)2 + (- (C)2) A = (B)2 + [C]2 A = (B)2 + 2n – (C)2 A = 2n + (B - C)2 2n es un término adicional. Si B ³ C, entonces B-C 0, lo que hace A 2n. El término 2n representa un bit de acarreo y se puede ignorar, conservando (B - C)2. Por tanto (A)2 = (B)2 + [C]2 y se descarta el acarreo. Si B < C, entonces B - C < 0, lo que da A = 2n - (C – B)2= [C - B]2, o A= - (C - B)2 que es la respuesta deseada. En este caso no hay acarreo. Si B y C son ambos positivos, la magnitud de B - C siempre será menor que cualquiera de los dos números. Esto significa que no se presenta desbordamiento al calcular B - C. Ejemplo 13: Calcular (12)10 – (5)10 Se realiza este cálculo como (12)10 + (-(5)10) (12)10 = (1100)2 = (0,1100)2ms -(5)10 = -(0101)2 = (1,1011)2ms
2-8
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
Se suman los dos números de 5 bits 0 1 1 0 0 + 1 1 0 1 1 ______________________ 1 0 0 1 1 1 Al descartar el acarreo, el bit de signo es cero y por tanto, se interpreta el resultado como (0,0111)2ms = +(0111)2 = +(7)10 Ejemplo 14: Calcule (5)10 – (12)10 Se realiza el cálculo como (5)10 + (-(12)10). (5)10 = +(0101)2 = (0,0101)2ms -(12)10 = -(1100)2 = (1,0100)2ms Se suman los dos códigos de 5 bits para obtener, 0 0 1 0 1 + 1 0 1 0 0 _________________ 0 1 1 0 0 1 En este caso no hay acarreo y el bit de signo es 1, lo que indica que el resultado es negativo. (1,1001)2ms = -[1,1001]2= -(00111)2ms= -(0111)2= -(7)10 Ejemplo 15: Calcule A = - B - C. El resultado es A = - (B + C) = [B + C]2. Representamos - B y - C mediante el complemento a dos de sus magnitudes, y calculamos A = (- B) + (C). Por tanto, A = [B]2 + [C]2.= 2n - (B)2 + 2n - (C)2 = 2n + 2n - (B + C)2 = 2n + [B + C]2 Si se descarta el bit de acarreo (2n), el cálculo produce el resultado correcto. Ejemplo 16: Calcule - (9)10 - (5)10 Se realiza el cálculo como (- (9)10) + (- (5)10). (- 9)10 = - (1001)2 = (0,1001)2ms = [01001]2ms = (1,0111)2ms (- 5)10 = - (0101)2 = (0,0101)2ms = [0,0101]2ms = (1,1011)2ms Al sumar los dos códigos de cinco bits se obtiene: 1 0 1 1 1 + 1 1 0 1 1 _________________ 1 1 0 0 1 0
Al descartar el acarreo se tiene un bit de signo 1. Por tanto el resultado es correcto y se interpreta como: (1,0010)2ms = -[1,0010]2= -(01110)2ms= -(1110)2= -(14)10 En este caso puede haber desbordamiento, lo que se indica mediante un resultado que tiene un bit de signo incorrecto como en el ejemplo siguiente. Ejemplo 17: Calcule - (12)10 - (5)10 Se realiza el cálculo como (- (12)10) + (- (5)10). (- 12)10 = - (1100)2 = (0,1100)2ms = (1,0100)2ms (- 5)10 = - (0101)2 = (0,0101)2ms = (1,1011)2ms Sistemas de numeración y álgebra de Boole
2-9
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
Al sumar los dos códigos de cinco bits se obtiene: 1 0 1 0 0 + 1 1 0 1 1 ______________________ 1 0 1 1 1 1 Al descartar el acarreo, se interpreta el resultado como: (0,1111)2ms = (1111)2= (15)10 El resultado es incorrecto. Como el bit de signo es incorrecto, entonces, hay un desbordamiento. 7.
Álgebra de Boole
El álgebra de Boole nació como herramienta matemática para la representación de postulados lógicos (proposiciones o enunciados que solo admiten dos tipos de soluciones, o cierto o falso). El desarrollo de los sistemas electrónicos digitales permitió la utilización de estas herramientas en el diseño y enunciado de circuitos digitales electrónicos y eléctricos. Así los sistemas digitales permiten asociar el valor cierto (“1” lógico) y el valor falso (“0” lógico) a la presencia o ausencia de señal en las entradas y salidas de estos sistemas.
8.
Función Lógica
Combinación de operaciones lógicas básicas de unos valores binarios de entrada, que da como resultado una variable binaria de salida. Las funciones lógicas se definen a través de una Tabla de verdad: Tabla de valores que toma la salida de una función para las diferentes combinaciones binarias de las entradas. Una función de un álgebra de Boole o función lógica la podemos definir como una variable binaria cuyo valor es igual al de una expresión algebraica en la que se relaciona entre si las variables binarias por medio de las operaciones básicas. Se representa la expresión f = f (A,B,C,.....) , según el número de variables de que depende la función. Por ejemplo una función de tres variables sería la siguiente:
f ( A, B, C ) A B C A C Las funciones lógicas se forman a partir de las funciones básicas (u operaciones lógicas): NOT, AND , NAND , OR y NOR. Ahora vamos a describir las operaciones lógicas a nivel de bits que ya se habían enumerado en el epígrafre 6. Estas operaciones serán la base del álgebra de Boole.
9.
Función NOT (NO)
La salida toma el valor contrario a la entrada Figura 2.3, Función NOT SIMBOLO EUROPEO
A
SIMBOLO AMERICANO
S
A
A 0 1
S 1 0
S
S A
2-10
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
10.
Configuración de instalaciones domóticas y automáticas
Función AND (Y)
La salida es “1” sólo cuando todas las entradas valen “1”. Figura 2.4, Función AND
AND (2 entradas) A
A B
S
S
0 0 1 1
0 1 0 1
0 0 0 1
S
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A
&
S
B
B SIMBOLO EUROPEO
SIMBOLO AMERICANO
S AB AND (3 entradas) A
A B
&
S
C
B C
SIMBOLO EUROPEO
S 11.
SIMBOLO AMERICANO
ABC
C 0 1 0 1 0 1 0 1
S 0 0 0 0 0 0 0 1
Función OR (O)
La salida vale “1” cuando alguna de sus entradas toma el valor “1”. Figura 2.5, Función OR
OR (2 entradas) A
A B
S
S
0 0 1 1
0 1 0 1
0 1 1 1
S
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A
>1
S
B
B SIMBOLO EUROPEO
SIMBOLO AMERICANO
S A B OR (3 entradas) A
A B
>1
S
C
B C
SIMBOLO EUROPEO
SIMBOLO AMERICANO
S A B C
Sistemas de numeración y álgebra de Boole
C 0 1 0 1 0 1 0 1
S 0 1 1 1 1 1 1 1
2-11
Configuración de instalaciones domóticas y automáticas
12.
Alejandro G. Castro
Función NAND (NOY)
La salida vale “1” excepto si todas las entradas valen “1”. Equivale a negar la salida de la función AND. Figura 2.6, Función NAND
NAND (2 entradas) A
A B
S
S
0 0 1 1
0 1 0 1
1 1 1 0
S
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A
&
S
B
B SIMBOLO EUROPEO
SIMBOLO AMERICANO
S A B
NAND (3 entradas) A
A
&
B C
S
B C
SIMBOLO EUROPEO
SIMBOLO AMERICANO
S A B C 13.
C 0 1 0 1 0 1 0 1
S 1 1 1 1 1 1 1 0
Función NOR (NOO)
La salida vale “1” sólo cuando todas las entradas valen “0”. Equivale a negar la salida de la función OR. Figura 2.7, Función NOR
NOR (2 entradas) A
A B
S
S
0 0 1 1
0 1 0 1
1 0 0 0
S
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A
>1
S
B
B SIMBOLO EUROPEO
SIMBOLO AMERICANO
S A B
NOR (3 entradas) A
A B
>1
S
C
B C
SIMBOLO EUROPEO
SIMBOLO AMERICANO
S A B C 2-12
C 0 1 0 1 0 1 0 1
S 1 0 0 0 0 0 0 0
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
14.
Configuración de instalaciones domóticas y automáticas
Función XOR (O exclusiva)
La salida toma el valor “1” cuando un número impar de entradas toman valor “1”. Figura 2.8, Función XOR
XOR (2 entradas) A
A B
S
S
0 0 1 1
0 1 0 1
0 1 1 0
S
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A
=1
S
B
B SIMBOLO EUROPEO
SIMBOLO AMERICANO
S
A B
XOR (3 entradas) A
A B C
=1
S
SIMBOLO EUROPEO
B C SIMBOLO AMERICANO
S A B C 15.
C 0 1 0 1 0 1 0 1
S 0 1 1 0 1 0 0 1
Funciones lógicas con lógica cableada
Vamos a particularizar la construcción de funciones lógicas en el caso de que estemos con lógica cableada, es decir, un sistema digital formado por contactos, pulsadores, relés, etc. Para la realización de los esquemas se ha tomado el siguiente convenio: -
La simbología utilizada es la descrita en la normas UNE
-
En el esquema se representa el estado de reposo de los contactos. Este no tiene por que corresponder con el estado inicial del sistema.
-
Los contactos de accionan desplazándose a la derecha.
-
A la situación de reposo de los contactos se les asigna el valor lógico “0”.
-
A la situación de activados de los contactos se les asigna el valor lógico “1”.
-
A los receptores (relés, lámparas) se les asigna el valor “1” cuando por ellos circula corriente.
-
A los receptores se les asigna el valor “0” cuando por ellos no circula corriente.
-
Las entradas se realizan a través de pulsadores con contacto NA y NC. o o
NA: normalmente abiertos en reposo NC: normalmente cerrados en reposo
Sistemas de numeración y álgebra de Boole
2-13
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
Figura 2.9, Funciones lógicas en esquema de contactos
A
A
K
S
K
S
K
A
A
B
B
S
K
NOT
B
A
S
AND
A
K
B
OR K
S
S
A
A
B
K
K
B
K K
S
S
NOR
NAND
A
A
B
B
S
K
K
XOR
2-14
S
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
16.
Configuración de instalaciones domóticas y automáticas
Póstulados del álgebra de Boole
Un álgebra de Boole es toda clase o conjunto de elementos que pueden tomar dos valores perfectamente diferenciados, 0 y 1 , que están relacionados por dos operaciones binarias denominadas suma (+) y producto (). La operación suma está relacionada con la condición lógica “OR” y la operación producto con la condición lógica “AND”, de forma que la expresión “A+B” está condicionada a que “A” sea cierta o “B” sea cierta, mientras que la expresión “AB” lo está a que las dos variables sena ciertas, es decir, que “A” sea cierta y que “B” sea cierta. Las operaciones suma y producto, además, cumplen los siguientes postulados: Ambas operaciones son conmutativas:
A B B A A B B A Existen los elementos neutros:
0 A A 1 A A Cada operación es distributiva respecto a la otra:
A (B C) A B A C A B C ( A B) ( A C ) Para cada elemento existe el complementario:
A A 1 A A 0 Las dos operaciones cumplen la ley asociativa:
A ( B C ) ( A B) C A B C A ( B C ) ( A B) C A B C Además de los postulados anteriores se desprenden los propiedades muy útiles para la simplificación de funciones lógicas: Ley de absorción:
A A B A A ( A B) A Leyes de Morgan:
A B A B A B A B Los postulados del álgebra de Boole se pueden demostrar construyendo las correspondientes tablas de verdad. A continuación se muestra su representación con puertas lógicas. Sistemas de numeración y álgebra de Boole
2-15
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
Figura 2.10, Postulados del Álgebra de Boole
2-16
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
17.
Configuración de instalaciones domóticas y automáticas
Simplificación de funciones lógicas
La herramienta fundamental para la simplificación de funciones booleanas es la aplicación de los postulados y leyes del álgebra de Boole a las expresiones que vamos obteniendo; sin embargo, este método tiene las siguientes desventajas: o o o
No es un método sistemático (no hay un algoritmo paso a paso a seguir). No es fácil saber cuando la expresión ya está lo más reducida posible. Es fácil cometer errores y es difícil revisar el procedimiento.
Por ello, es importante contar con un método como el de los mapas de Karnaugh, que es un método sistemático y además gráfico, por lo cual es más sencillo y poderoso para la simplificación de funciones booleanas. Sin embargo, previamente a la presentación del método se requieren algunas definiciones que se usarán de aquí en adelante.
18.
Formas canónicas
Término Producto: Se llama término producto una expresión booleana que solamente incluye operaciones AND entre sus variables (afirmadas o negadas)
A B, A C , A B C D
Ejemplo 18: Ejemplos de términos producto
Forma Suma de Productos (SP): Una función booleana se dice que esta en la forma de suma de productos (SP) si está formada exclusivamente por la suma (OR) de términos producto. Ejemplo 19: Funciones en forma SP
f1 ( A, B, C , D) A B C B D A C D f 2 ( x1 , x2 , x3 ) x1 x3 x2 x3 x1 x2 x3 Mintérmino: Es un término producto que contiene todas las variables de la función. Ejemplo 20: Ejemplos de mintérminos de una función den 4 variables A, B, C, D
A B C D, A B C D, A B C D Forma canónica SP: Si los términos producto de una función booleana en la forma SP son todos mintérminos, se dice que está en forma canónica SP. Ejemplo 21: Funciones en forma canónica SP
f 3 ( A, B, C ) A B C A B C A B C A B C f 4 ( A, B, C , D, E ) A B C D E A B C D E A B C D E Término Suma: Se llama término suma a una expresión booleana que solamente incluye operaciones OR entre sus variables (afirmadas o negadas) Ejemplo 22: Ejemplos de términos suma
A B, A B C , B C , A B C D, B
Forma Producto e sumas (PS): Una función booleana se dice que esta en la forma de producto de sumas (PS) si está formada exclusivamente por el producto (AND) de términos suma. Ejemplo 23: Funciones en forma PS
f 5 ( A, B, C , D) ( A B C ) ( B D) ( A C D) f 6 ( x1 , x2 , x3 ) ( x1 x3 ) ( x2 x3 ) ( x1 x2 x3 ) Sistemas de numeración y álgebra de Boole
2-17
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
Maxtérmino: Es un término suma que contiene todas las variables de la función. Ejemplo 24: Ejemplos de mintérminos de una función den 4 variables A, B, C, D
A B C D, A B C D, A B C D Forma canónica PS: Si los términos suma de una función booleana en la forma PS son todos maxtérminos, se dice que está en forma canónica PS. Ejemplo 25: Funciones en forma canónica SP
f 7 ( A, B, C ) ( A B C ) ( A B C ) ( A B C ) ( A B C ) f 8 ( A, B, C , D, E ) ( A B C D E ) ( A B C D E ) ( A B C D E ) Notación: Una manera simplificada de representar las funciones en forma canónica consiste en representar sus términos por números binarios, en base a la siguiente convención:
Variable afirmada Variable negada
Mintérmino Maxtérmino 1 0 0 1
Ejemplo 26: Según esta convención al función f3(A,B,C) puede representarse
f 3 ( A, B, C ) A B C A B C A B C A B C 010 110 011 111 m2 m6 m3 m7 O en forma más compacta como:
f 3 ( A, B, C ) m(2,6,3,7) Ejemplo 27: De forma similar podemos representar la función f7(A,B,C)
f 7 ( A, B, C ) ( A B C ) ( A B C ) ( A B C ) ( A B C ) 101 001 100 000 M 5 M1 M 4 M 0 Y de una forma más compacta como:
f 7 ( A, B, C ) M (0,1,4,5) Para plantear la funciones de esta forma el orden de escritura de las variables en cada uno de los términos tiene que coincidir con el orden que ocupan las variables en la función.
Relación entre mintérminos y maxtérminos :Usando el teorema de D’Morgan podemos obtener la equivalencia entre mintérminos y maxtérminos como sigue. Tomemos como ejemplo el mintérmino m2 de la función f3(A,B,C) y obtengamos su complemento:
m2 A B C A B C M 2 Lo anterior se cumple para cualquier mintérmino, es decir, en general el complemento de un mintérmino es el maxtérmino correspondiente: mi M i Al analizar la tabla de verdad encontraremos una relación aún más general
2-18
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
Obtención de la forma canónica SP: Partiendo de una expresión booleana cualesquiera se puede seguir el siguiente procedimiento 1) Escribir la expresión en forma SP 2) A cada término producto multiplicarlo por 1 escrito en términos de la variable faltante. Hacer esto tantas veces como variables falten al término producto 3) Aplicar distributividad del producto sobre la suma. 4) Aplicar idempotencia a términos semejantes. Ejemplo 28:. Escribir la función f1(A,B,C) en forma canónica SP. En este caso el primer paso ya ha sido realizado, es decir, f1 ya está en forma SP. A continuación se escribe el segundo paso:
f1(A,B,C, D) A B C (D D ) (A A ) B (C C ) D A (B B ) C D aplicando distributividad, obtenemos
f1(A,B,C, D) A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D eliminando términos semejantes
f1(A,B,C, D) A B C D A B C D A B C D A B C D A B C D A B C D con lo cual se tienen los mintérminos m11, m10, m8, m2, m0, m6 y por lo tanto
f1 ( A, B, C , D) m(0,2,6,8,10,11) Obtención de la forma canónica PS.- Partiendo de una expresión booloeana cualesquiera se puede seguir el siguiente procedimiento 1) Escribir la expresión en forma PS 2) A cada término suma sumarle 0 escrito en términos de la variable faltante. Hacer esto tantas veces como variables falten al término suma 3) Aplicar distributividad de la suma sobre el producto 4) Aplicar idempotencia a términos semejantes. Ejemplo 29: Escribir la función f5(A,B,C,D) en forma canónica PS. En este caso el primer paso ya ha sido realizado, es decir, f5 ya está en forma PS. A continuación se escribe el segundo paso:
f 5(A,B,C, D) (A B C D D ) ( A A B C C D ) ( A B B C D ) aplicando distributividad, obtenemos
f 5 (A B C D) (A B C D ) (A B C D ) ( A B C D ) (A B C D ) ( A B C D ) ( A B C D) ( A B C D) eliminando términos semejantes
f 5 (A B C D) (A B C D ) ( A B C D ) (A B C D ) ( A B C D ) ( A B C D) con lo cual se tienen los maxtérminos M4, M13, M7, M15, M9, M5 y por lo tanto
f 5(A,B,C,D) M ( 4 ,5,7 ,9 ,13,15 ) Formas canónicas para el complemento de una función: Cuando una función ya está en forma canónica se puede utilizar la relación existente entre mintérminos y maxtérminos para expresar su complemento. para ello, tomemos como ejemplos las funciones f1 y f5 anteriores. para f1 tenemos que f1(A,B,C,D)
m( 0 ,2 ,6 ,8,10 ,11 ) . complementando
Sistemas de numeración y álgebra de Boole
2-19
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
f 1 ( A, B, C , D) m0 m2 m6 m8 m10 m11 por el Teorema de D’ Morgan
f1(A,B,C, D) m0 m2 m6 m8 m10 m11 De la relación entre mintérminos y maxtérminos
f1(A,B,C, D) M 0 M 2 M 6 M 8 M 10 M 11 es decir,
f1(A,B,C, D)
M( 0,2,6, 8,10,11 )
o sea, los mintérminos que contiene f los contiene como maxtérminos su complemento. Aplicando este razonamiento a f5, ya que esta función contiene los maxtérminos 4,5,7,9,13,15, será complemento de la que contiene éstos como mintérminos, es decir,
f 5(A,B,C,D) m( 4,5,7 ,9,13,15 ) 19.
Planteamiento de un circuito lógico
A partir de los conceptos y definiciones anteriores ya estamos en condiciones de plantear algunos diseños sencillos de circuitos lógicos. Podemos ordenar el procedimiento para esto de acuerdo a los siguientes pasos: 1) 2) 3) 4)
Planteamiento de la función que debe hacer el circuito en una tabla de verdad. Obtención de la función en lista de mintérminos o de maxtérminos. Simplificación de la función lógica Implementación mediante compuertas lógicas de la función simplificada
Ejemplo 30: Un jurado está formado por tres jueces A, B, C, cada juez emite su voto a favor oprimiendo un botón enfrente de él. Se desea construir un circuito que encienda una luz que indique si la mayor parte del jurado votó a favor y no la encienda en cualquier otro caso. Figura 2.11, Ejemplo 30, planteamiento de un circuito lógico
Tabla de verdad Jueces Luz ABC L 000 0 001 0 010 0 011 1 100 0 101 1 110 1 111 1 La función que realiza lo deseado es L(A,B,C)= m(3,5,6,7) Posteriormente veremos como esta función podrá simplificarse:
L( A, B, C ) A B A C B C
Como habrá podido advertirse, en el procedimiento anterior, los únicos paso que no han sido completamente sistematizados son el 1 y el 3 (la simplificación de la función). A continuación se presenta un método sistemático para realizar este paso.
2-20
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
20.
Configuración de instalaciones domóticas y automáticas
Minimización de funciones booleanas
El criterio de minimización más utilizado es el de obtener una expresión en forma de suma de productos (SP) o producto de sumas (PS) que tengan un número mínimo de términos, con el menor número de variables en dad uno de ellos. En general, siempre partiremos de la expresión canónica o de la tabla de verdad asociada. Para la simplificación podemos utilizar básicamente dos métodos: a. Aplicación de forma adecuada y sistemática de las propiedades del álgebra de Boole. La aplicación directa de las propiedades de álgebra de Boole permite simplificar de forma eficaz las funciones lógicas. Ejemplo 31: Aplicando la ley de absorción del álgebra de Boole, podemos simplificar la función: f ( A, B, C ) A B C A B C A C A C A C A b. Métodos gráficos o tabulares. Existen métodos sistemáticos que, si bien son aplicación directa de las propiedades del álgebra de Boole, facilitan la simplificación. La mayoría de estos métodos se basan en representaciones gráficas de las tablas de la verdad, tal y como se estudia en el apartado siguiente.
21.
Método gráfico de Karnaugh
El método gráfico de Karnaugh (MK) se desarrolla a partir de la representación gráfica de la tabla de la verdad aprovechando la propiedad de que los términos canónicos adyacentes, aquellos que sus variables sólo difieren en un estado, pueden reducirse a un dolo término, aplicación de la ley de absorción, en el cual se ha suprimido la variable cuyo estado difiere en ambos. Esta propiedad permite una agrupación tabular de todos los términos canónicos adyacentes y , por lo tanto, fácilmente agrupables. Cada cuadrado corresponde a un término canónico en el que se representa el valor que toma la función para ese término, Los cuadros que tienen un lado en común son físicamente adyacentes y los de los laterales con sus opuesto. En función del número de variables de la función a simplificar utilizaremos el gráfico adecuado. El procedimiento sistemático que se debe utilizar para obtener una función simplificada en forma SP a partir del método de Karnaugh es el siguiente: I. A partir de la tabla de verdad se representa el diagrama de Karnaugh según el número de variables, asignando “1” o “0” según corresponda. También se puede partir de una expresión algebraica de la función, en este caso se cubren con “1” las celdas que cumplen cada una de las condiciones. II. Agrupamos los “1” formando grupos lo más grandes posibles en potencias de 2 ( 1,2,4,8, etc). Hay que tener en cuenta que las posiciones opuestas de los laterales también se consideran contiguas y que puede haber “1” que forme parte de los grupos diferentes, con el fin de formar grupos lo mayores posibles. Por tanto empezaríamos formando grupos de 8, cuando hayamos formado todos los posibles pasamos a hacer grupos de cuatro, y así sucesivamente. III. Al final, se toman los “1” que no se pueden combinar con ningún otro (si es el caso). Cuando se hayan cubierto todos los unos, se detiene el proceso. IV. Cada grupo viene representado por el producto de las variables que no varían su estado teniendo en cuenta su valor ( valor directo si su estado es “1”, o complementado si su estado es “0”). V. La función resultante tendrá tantos sumandos como agrupaciones de unos. Si lo que se desea es minimizar la función en forma PS el proceso es similar al anterior, pero en este caso se realiza una agrupación de “0”. Habrá que tener en cuenta a la hora de escribir la función (paso IV), que si la variable es “1” aparecerá en forma negada en la expresión , y si la variable es “0” aparecerá en forma directa. Los gráficos a utilizar en función de número de variables de la función son los que figuran a continuación. Habrá que poner especial atención en colocar en los cuadros las combinaciones adecuadas de las variables de entrada para que las celdas contiguas sean adyacentes, así como las que se encuentren en lados opuestos. Sistemas de numeración y álgebra de Boole
2-21
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
Figura 2.12, Mapas de Karnaugh A B
0
1
0
2
1
3
0 AB CD
00
01
11
10
0
4
12
8
1
5
13
9
1
00
Mapa para dos variables AB
01
C 3
7
15
00
11
01
11
10
0
2
6
4
1
3
7
5
0
11 2
6
14
10
1
10 Mapa para cuatro variables
Mapa para tres variables
BC DE
BC 00
0
01 4
11 12
10
DE
8
00
00
01
11
10
16
20
28
24
17
21
29
25
19
23
31
27
18
22
30
26
00 1
5
13
9
01
01 3
7
15
11
11
11 2
6
14
10
10
10
A=0
A=1 Mapa para cinco variables
Como puede observarse, un mapa de 2 variables posee cuatro celdas (mintérminos), uno de 3 tiene 8, etc. de manera que un mapa de n variables poseerá 2n celdas, sin embargo los mapas tienen limitaciones y resulta impráctico trabajar con mapas de más de 5 variables. Para realizar este último es necesario desplegar las diferentes combinaciones de las entradas en dos tablas, una de ellas corresponderá a A=0, y la otra a A=1. Esto implica que las casillas que ocupan la misma posición en cada una de las dos tablas también son adyacentes, y por lo tanto se pueden agrupar. Figura 2.13, Ejemplo 32 - Karnaugh
Ejemplo 32: Simplificar la siguiente función utilizando el método de los mapas de Karnaugh.
f ( A, B, C , D) A B C B C A C D
AB CD
00 0
01 4
11 12
00
Para el primer término localizamos en el M.K. las celdas que forman la intersección de los conjuntos A,B y C las marcamos con “1” en este caso corresponde a las celdas 12 y 13, en forma similar se procede para el segundo y tercer términos, obteniendo el M.K. siguiente.
10 8
1 1
5
13
9
1
01 3
7
15
6
14
1
11 2
11
1
1 10
1
10
1
f (A, B,C, D) BC AC D A BC Figura 2.14, Ejemplo 33 - Karnaugh
AB C Ejemplo 33: Simplificar la función del ejemplo 19.1. A partir de la tabla de verdad escribimos en la tabla los valores 0 “1” de la salida y agrupamos las variables formando el menor número de grupos y siendo éstos lo más grandes posible. 1
00
01
11
0
2
6
1
3
7
10 4
1 1
5
1
1
L(A, B, C) A B A C B C 2-22
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
Ejemplo 34: Simplificar la función
f ( A, B, C , D) m(1,2,4,6,9) AB
Figura 2.15, Ejemplo 34 - Karnaugh
C
AB CD
00 0
01
11
4
00
12
10
1
0 1
13
15
7
5
1
11
Figura 2.16, Ejemplo 35 - Karnaugh
11 2
10
1
f ( A, B , C ) B C A C
1 7
3
1
10 4
9
1 3
11 6
1
1
5
01 2
8
1
01
00 0
6
1
14
10
1
f (A, B,C, D) AC D A B D BC D Ejemplo 35: Simplificar la función
f ( A, B, C ) m(1,2,3,6)
Ejemplo 36: Simplificar la función f ( A, B, C , D )
m(0,1,2,7,8,9,10,15)
Figura 2.17, Ejemplo 36 - Karnaugh
AB CD
00 0
00
01
11
4
12
10 8
1
1 1
01
5
13
9
1 3
1 7
15
1
11 2
11
1
6
14
10
1
10
1
f (A, B,C, D) BC B D BC D
Ejemplo 37: Simplificar la función
f ( A, B, C , D, E ) m(1,3,4,9,11,12,13,15,17,19,22,25,27,29,30,31) Figura 2.18, Ejemplo 37 - Karnaugh
BC DE
BC 00
0
01 4
00
11 12
1
5
13
1 3
1
11 2
9
15
1
1 6
14
11
10
28
24
17
21
29
25
23
31
1 19
1 10
1
1
11 18
10
A=0
01 20
01
11
10
00 16
00
1 7
DE
8
1
1
01
10
1 27
1 22
30
1
1 26
1
A=1
f (A, B,C, D, E) B EC E AC D E AC D E Sistemas de numeración y álgebra de Boole
2-23
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
Condiciones “sin cuidado”: En ocasiones bajo algunas combinaciones de las variables independientes, no se puede especificar como responderá el circuito o función lógica que se pretende implementar. Es decir, una función lógica puede valer 1 para ciertos mintérminos, cero para otros y los mintérminos restantes pueden ser opcionales. Un mintérmino opcional es llamado condición sin cuidado, ya que representa una condición del circuito o función lógica en la que no importa como responda éste. Las condiciones sin cuidado se pueden deber a diversas situaciones que se pueden presentar en el diseño de un circuito o función lógica: o o o
Especificación incompleta de la función Combinaciones imposibles de las variables independientes (entradas) Combinaciones prohibidas de las entradas
Las condiciones sin cuidado incrementan la versatilidad de los M.K., ya que pueden ser tratadas como unos o como ceros, según convenga. Además sólo los utilizaremos en la medida que esto signifique simplificar la expresión resultante de la función. Ejemplo 38: Simplificar la función definida por la siguiente tabla de verdad. Las posiciones marcadas con “X” son combinaciones de las entradas que debido a la naturaleza del sistema no se pueden producir. Figura 2.19, Ejemplo 38 - Karnaugh
0 1 2 3 4 5 6 7 8 6 10 11 12 13 14 15
22.
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 f(A,B,C,D) 0 1 1 1 0 X 1 X 0 0 1 0 0 X 1 X 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0
AB CD
00 0
00
01 4
1
11
10
12
8
1
1
5
13
9
3
7
15
11
01
X
11 2
10
6
X
1
X 14
X
10
1
f ( A, B , C , D ) B C A D
Procedimiento de diseño de circuitos lógicos
Aunque en principio, al abordar el problema de diseño de un circuito podemos usar nuestra experiencia, intuición, inventiva y sentido común, todos estos elementos no nos garantizan una solución óptima. Sin pretender coartar la creatividad e imaginación, se propone el siguiente Procedimiento de Diseño de Circuitos Lógicos: Primer paso.- Identificar en el enunciado del problema las variables involucradas en el diseño, asignarles un símbolo y representarlas en un Diagrama de Bloques, el cual es un bloque desconocido interiormente aún, pero su exterior debe estar bien especificado, es decir, debe poseer un conjunto de entradas (variables independientes) y salidas (variables dependientes o funciones a diseñar). Segundo paso.- Interpretar en el enunciado las relaciones de dependencia lógica entre entradas y salidas y representarlas en una Tabla de Verdad. Este paso debe realizarse cuidadosamente, dado la ambigüedad propia del lenguaje que puede llevar a relaciones lógicas equivocadas. En este paso no debe olvidarse la relación directa de los conectivos gramaticales Y, O con las operaciones AND, OR respectivamente, así como la negación gramatical con el complemento lógico (NOT). Sin embargo, hay que ser cuidadoso de las interpretaciones gramaticales de O inclusivo (OR) y O exclusivo (XOR). Esto ciertamente será más sencillo si el enunciado lo elaboramos nosotros mismos a partir de un problema real,
2-24
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
pues nosotros sabremos exactamente lo que queremos decir, Sin embargo, en algunos condiciones de los problemas los ha elaborado otra persona.
casos, las
Tercer paso.- Obtener de la tabla de verdad los Mapas de Karnaugh, un mapa por cada variable de salida. Cuarto Paso.- Obtener las expresiones lógicas mínimas para cada variable de salida usando los mapas del paso anterior. Quinto paso.- Dibujar la implementación con puertas lógicas procurando usar la mínima cantidad de ellas. Ya sea para la fabricación de un circuito electrónico, o para la programación de un PLC, la economía del aconseja en ambos casos hacerlo así. Para el caso de realizarlo con circuitos electrónicos integrados hay que tener presente que una expresión lógica mínima NO garantiza una implementación mínima en términos de circuitos integrados. Para ello, se puede recurrir al uso de puertas lógicas de un sólo tipo , ya que esta estrategia permite aprovechar todas las puertas lógicas de cada circuito integrado utilizado. Las puertas que permiten ser utilizadas de esta manera son las puertas NAND o NOR. Las primeras son adecuadas para formas SP y las segundas para formas PS. A continuación estos pasos se ilustrarán con un ejemplo. Ejemplo 39 : Diseñar un circuito para controlar el encendido y apagado de la lámpara de un jardín doméstico, la cual deberá encender siempre que sea de noche, o la iluminación ambiental sea muy baja, a menos que se desee ahorrar energía. El indicador de horario nocturno es una señal (N) controlada por un reloj (N=1 indica que es de noche), El indicador de iluminación ambiental es una señal L controlada por una fotocelda (L=1 indica que aún hay luz ambiental) y el usuario utiliza un par de switches A,B para indicar si desea ahorrar energía, de manera que si ambos están desactivados (AB=00) no se ahorrará energía, si sólo uno de los dos se activa bloqueará el encendido debido a L y, finalmente si ambos están activados la luz del jardín no podrá encenderse. 1. Diagrama de bloques: Figura 2.20, Ejemplo 39 - Diagrama de bloques
2. Tabla de verdad:
3. Mapa de Karnaugh para f(A,B,N.L)=m(0,2,3,6,7,10,11)
Figura 2.21, Ejemplo 39 - Tabla de verdad
minterm 0 1 2 3 4 5 6 7 8 6 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 f(A,B,C,D) 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0
AB CD
00 0
01
11
10
4
12
8
1
5
13
9
3
7
15
11
00
1
01
1
11 2
10
1 6
1
1 14
1
10
1
Figura 2.22, Ejemplo 39 - Mapa de Karnaugh
Sistemas de numeración y álgebra de Boole
2-25
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
4. Función simplificada.
f (A, B,C, D) A B L A N B N 5. Construcción de la función con puertas lógicas de dos y tres entradas:
Figura 2.23, Ejemplo 39 - Esquema con puertas lógicas de dos y tres entradas
1
&
1
&
BN
>1
f (A, B, C, D) A B L A N B N
N
&
AN
6. Construcción con funciones NAND. Transformamos la función aplicando las leyes de Morgan:
f A B L A N B N A B L A N B N A B L A N B N Figura 2.24, Ejemplo 39 - Esquema con puertas NAND
A
&
B
&
&
&
A N
BN
&
AB L AN B N
N L 2-26
&
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
Ejemplo 40: Diseñar el circuito para generar la señal N del ejemplo anterior: Se cuenta con un reloj con salida BCD para indicar las horas, la señal N se deberá activar cuando la hora sea mayor o igual que siete. 1. Diagrama de bloques: Figura 2.25, Ejemplo 40 - Diagrama de bloques
2. Tabla de verdad: Como el dato BCD sólo puede tomar valores de 0 a 9 (00002 a 10012), los renglones de la tabla de verdad del 10 al 15 (del 10102 al 11112) nunca pueden ocurrir y por lo tanto, son condiciones sin cuidado que en este caso se representan con un asterisco como se muestra a continuación. Figura 2.26, Ejemplo 40 - Tabla de verdad
minterm 0 1 2 3 4 5 6 7 8 6 10 11 12 13 14 15
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 f(D,C,B,A) 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 X 1 X 0 X 1 X 0 X 1 X
3. Mapa de Karnaugh para N(D,C,B,A)= m(7,8,9)+d(10,11,12,13,14,15) En este caso todas las condiciones sin cuidado conviene tomarlas como unos, ya que contribuyen a formar grupos más grandes. Figura 2.27, Ejemplo 40 - Mapa de Karnaugh
DC BA
00 0
01 4
11 12
00
X 1
5
13
01 7
9
15
1
11 2
Sistemas de numeración y álgebra de Boole
1
X 3
10
10 8
6
X 14
X
1 11
X 10
X
2-27
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
N f (D,C, B, A) D C B A
4. Función simplificada 5. Circuitos lógicos
Figura 2.28, Ejemplo 40 - Esquema con puertas lógicas
D C B
N
>1
&
D
C B A
A
D
&
B
N D C B A
&
C
&
CB A
A N D C B A D C B A DC B A Ejemplo 41 : Resolver el ejemplo anterior aplicando el método del mapa de Karnaugh en forma producto de sumas (PS). En las secciones anteriores se ha ilustrado el procedimiento de diseño se circuitos lógicos utilizando solamente formas SP y los mintérminos de la tabla de verdad. Para realizar el diseño utilizando formas PS el procedimiento sólo cambia en los pasos 4 y 5 como se ilustrará repitiendo el último ejemplo para obtener una implementación usando formas PS. Los pasos 1, 2 y 3 son idénticos, de manera que sólo se ilustrarán los pasos 4 y 5 4. Como la tabla de verdad es idéntica, la función a diseñar es Figura 2.29, Ejemplo 41 - Mapa de Karnaugh
N(D,C,B,A) = M(0-6)*d(10-15), cuyo Mapa de Karnaugh también es idéntico, sin embargo, se dibuja nuevamente para ilustrar la minimización de la función (sólo que en esta ocasión se marcan los ceros y no los unos).
DC BA
00 0
00
0 1
01
2
2-28
9
X 15
11
X 6
0
X
0 7
10 8
13
0
11 10
0
0
11 12
5
3
N f (D,C, B, A) (DC)(B A)(CB)
01 4
14
0
X 10
X
Sistemas de numeración y álgebra de Boole
X
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
Obsérvese que la función obtenida NO es equivalente a la función en la forma SP, ya que las condiciones sin cuidado fueron usadas de manera diferente en ambos casos Obsérvese que los grupos de celdas adyacentes se forman de igual manera que se hizo anteriormente con los unos del mapa, salvo que: 1.- Se agrupan los ceros en lugar de los unos 2.- Las expresiones obtenidas son términos suma y no términos producto 3.- Para obtener las variables que deberán aparecer en la expresión correspondiente a cada grupo del mapa se procede igual que como se hizo para formas SP, sólo que las variables se complementan (en lugar de X se obtiene X y viceversa). 5. Por último realizamos la construcción del circuito con puertas lógicas Figura 2.30, Ejemplo 41 - Esquema con puertas lógicas
D C
N B
A N f ( D, C , B, A) ( D C ) ( B A) (C B ) ( D C ) ( B A) (C B ) ( D C ) ( B A) (C B )
Sistemas de numeración y álgebra de Boole
2-29
Configuración de instalaciones domóticas y automáticas
23.
Alejandro G. Castro
Problemas propuestos
P.1)
A partir de la tabla de verdad , expresa la función en su forma canónica y obtén una expresión lo más simplificada posible. ABC f(A,B,C) 000 0 001 1 010 0 011 0 100 0 101 0 110 1 111 0
P.2)
Representa mediante contactos eléctricos la función:
P.3)
Representar la tabla de verdad de la función del (P.3).
P.4)
Representa en código decimal los siguientes números expresados en código:
P.5)
BINARIO:
f ( A, B, C ) A B C
00111011 11001110 01011011 11111111
HEXADECIMAL:
FF E0 21 B7
01010110 00010111 10011000 00100110
BCD:
Representa en código binario los siguientes números expresados en código:
P.6)
2-30
DECIMAL: 90 34 381 91 HEXADECIMAL: 4B EE 4E52 17 Representar en un mapa de Karnaugh las siguientes funciones. Simplificarlas si es posible
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
P.7)
Obtener un circuito más simple utilizando el álgebra de Boole:
P.8)
Obtener una función mínima para los siguientes mapas de Karnaugh de cuatro variables:
Sistemas de numeración y álgebra de Boole
2-31
Configuración de instalaciones domóticas y automáticas
Alejandro G. Castro
P.9)
Obtener una función mínima para los siguientes mapas de Karnaugh de cinco variables:
P.10)
Se desea automatizar la iluminación de una jardín, para conseguir los siguientes funcionamientos:
Funcionamiento normal: La luz se encenderá si es de noche y el sistema detecta presencia de personas en el jardín. Funcionamiento forzado o encendido fijo: La luz se encenderá al anochecer y se apagará a las 0:00 horas. Las entradas y salidas son las siguientes: S1: Interruptor (1: seleccionado funcionamiento normal ; 0: Seleccionado encendido fijo) B1: Interruptor crepuscular (1: Día , detecta luz ; 0 : noche, no detecta luz) B2: Interruptor horario (1: desde las 17:00 hasta la 0:00 h; 0: resto del horario) B3: Detector de movimiento (1: detecta movimiento; 0: no hay detección de movimiento) Realizar un esquema con puertas lógicas y otro con contactos que consigan este funcionamiento.
P.11)
Se desea realizar el control de una bomba que abastece un depósito de agua. Se deberán tener en cuenta las siguientes variables: I: Interruptor horario (1: en horario programado como nocturno; 0: en horario programado como diurno) B: flotador-boya (1: si el líquido está por encima del nivel mínimo del depósito; 0: el líquido está por debajo del nivel mínimo) C: Interruptor para control manual (1: control manual activado; 0: control manual desactivado)
-
2-32
La bomba estará en funcionamiento en cualquiera de estos supuestos: Si el operador acciona el control manual durante el día. Si el nivel del agua desciende por debajo del nivel mínimo, tanto de día como de noche. Si es de noche y el operador no acciona el pulsador. Sistemas de numeración y álgebra de Boole
Alejandro G. Castro P.12)
Configuración de instalaciones domóticas y automáticas
Se desea automatizar la iluminación y la electroválvula de riego de un jardín, en una vivienda unifamiliar. Para ello disponemos de las siguientes entradas: A (interruptor de funcionamiento automático): Activado =1 ; Desactivado =0. B (interruptor crepuscular): estará activado durante el día (cuando detecta luz). Día=1, Noche=0 C (sensor de presencia): Detecta presencia=1; No detección =0. D (sensor de humedad): Suelo húmedo=1; suelo seco=0.
Salidas a controlar: Electroválvula de Riego (R). Alumbrado del jardín (L)
Se desea un funcionamiento normal para la instalación, que consiste en que sólo se encienda la luz del jardín si alguien transita por el mismo, y en regar el jardín cuando el suelo esté seco y nadie transite por él. El otro modo de funcionamiento que llamaremos “descanso” consistirá en poder estar “placidamente” sentados en el jardín con luz permanente y sin mojarnos. Modo normal (A=0): Durante el día no funcionan ni el riego ni la luz del jardín. Durante la noche se enciende el alumbrado sólo cuando hay detección de presencia. Durante la noche se activa la electroválvula de riego si el sensor de humedad detecta suelo seco. La detección de presencia desconecta el riego. Modo “descanso” (A=1): Durante el día no funcionan ni el riego ni la luz del jardín. Durante la noche el alumbrado está permanentemente encendido y el riego desconectado.
Obtener las funciones lógicas simplificadas para las salidas del sistema (riego y alumbrado)
P.13)
Se desea diseñar un sistema digital para controlar un sistema de riego.
Las entradas del sistema son las siguientes: A (Interruptor de activación) Interruptor de llave para activar el riego [1 para activar el riego, 0 si se desea el riego desactivado] B (Nivel máximo). Sensor que indica que el depósito está próximo a desbordarse. [1 si el agua supera este nivel, 0 en caso contrario] C (Nivel medio) Sensor que indica que B1 el depósito está a la mitad de su bomba 1 capacidad [1 si el agua supera este nivel, 0 en caso contrario] D (Nivel mínimo) Sensor que indica que el depósito está próximo a vaciars [1 si el agua supera este nivel, 0 en caso contrario]
-
-
CUADRO B (nivel máximo)
o A
C (nivel medio)
I
H2
RIEGO ACTIVADO
D (nivel mínimo) H1
H3
Regando Avería
B2 bomba21 V (electroválvula)
Las salidas a controlar son: B1 (contactor Bomba 1) Activación de la Bomba número 1 de llenado del depósito. B2 (contactor Bomba 2) Activación de la Bomba número 2 de llenado del depósito. V (electroválvula de riego) Activa el riego abriendo una electroválvula que da paso de agua a una acequia. H1 (señalización regando) Se activa si estamos regando, es decir si la electroválvula está activada. H2 (riego activado) Su encendido señaliza la activación mediante el interruptor del sistema de riego. H3 (señalización de avería) Su encendido señaliza que tenemos una avería en alguno de los sensores. Por ejemplo si B=1, C=1, y D=0, es una situación no posible, por probable avería en alguno de los sensores. El funcionamiento que se desea para el sistema es el siguiente: Riego activado (A=1): Regamos activando la electroválvula si el nivel de agua en el depósito está por encima del nivel mínimo. Las dos bombas funcionan simultáneamente si el nivel de agua está por debajo del nivel medio. Si el nivel de agua del depósito está entre el máximo y el medio, funciona sólo la bomba1. Si superamos el nivel máximo las dos bombas están paradas.
-
Riego desactivado (A=0): La electroválvula se activa vaciando el depósito en el caso de que el agua supere el nivel máximo. La bomba 1 permanece siempre parada. La bomba 2 funciona sólo si el nivel de agua está por debajo del nivel medio.
-
Las combinaciones de los sensores del depósito que correspondan a estados de llenado imposibles producen la activación de la señalización de avería y la parada de las dos bombas. En este caso la electroválvula sigue funcionando de la forma normal.
Sistemas de numeración y álgebra de Boole
2-33
Configuración de instalaciones domóticas y automáticas P.14)
Alejandro G. Castro
Diseñar un sistema combinacional cuyas entradas son NM, NS, IN y CM capaz de controlar un motor eléctrico de bombeo de agua. Significado de las señales:
NM vale 1 si el agua supera un cierto nivel máximo y 0 en caso contrario. NS vale 1 si el agua superar un cierto nivel umbral de seguridad. IN vale 1 durante toda la noche. CM es una señal de control que maneja un operario y que puesta a 0 no produce efecto alguno, pero si toma valor 1 y el agua está por debajo del nivel máximo, entonces debe poner en marcha el motor de la bomba.
La especificación del diseño indica que: 1. 2.
P.15)
La bomba deberá funcionar por la noche si el depósito está por debajo del nivel máximo y la bomba deberá funcionar por el día si el nivel está por debajo del nivel de seguridad.
Un proceso químico posee tres indicadores de la temperatura del punto P cuyas salidas T1, T2, y T3 adoptan dos niveles de tensión bien diferenciados según la temperatura sea menor, o mayor-igual a t1, t2, ó t3 respectivamente (t1< t2< t3).
Se asigna el valor cero al nivel de tensión correspondiente a una temperatura inferior a t, y el valor uno al nivel correspondiente a una temperatura superior o igual a t. Se desea generar una señal que: Adopte un nivel de tensión alto (1 lógico) si la temperatura está comprendida entre t1 y t2 Adopte un nivel de tensión alto si la temperatura es superior o igual a t3 Adopte un nivel de tensión bajo en cualquier otro caso diferente a los descritos anteriormente.
P.16)
Se desea diseñar un sistema de control para la apertura automática de una puerta. Las señales de control son las siguientes: Detector de proximidad de entrada: A. Detector de proximidad de salida: B. Interruptor de funcionamiento automático: C Las condiciones de funcionamiento son las siguientes: I. Si el interruptor de funcionamiento automático está desactivado ( C = 0 ), la puerta permanecerá siempre cerrada ( salida = 0 ). II. Si el interruptor de funcionamiento automático está activado ( C = 1 ), la puerta se abre ( salida = 1 ) al detectar presencia de personas mediante el detector de proximidad de entrada o de salida, y se cierra ( salida = 0 ) si no detecta presencia.
2-34
Sistemas de numeración y álgebra de Boole
Alejandro G. Castro
Configuración de instalaciones domóticas y automáticas
INDICE DE IMÁGENES Figura 2.1, Equivalencia binario-decimal-hexadecimal _________________________________________________6 Figura 2.1, operaciones binarias___________________________________________________________________7 Figura 2.3, Función NOT _______________________________________________________________________10 Figura 2.4, Función AND _______________________________________________________________________11 Figura 2.5, Función OR_________________________________________________________________________11 Figura 2.6, Función NAND ______________________________________________________________________12 Figura 2.7, Función NOR _______________________________________________________________________12 Figura 2.8, Función XOR _______________________________________________________________________13 Figura 2.9, Funciones lógicas en esquema de contactos________________________________________________14 Figura 2.10, Postulados del Álgebra de Boole _______________________________________________________16 Figura 2.11, Ejemplo 30, planteamiento de un circuito lógico ___________________________________________20 Figura 2.12, Mapas de Karnaugh _________________________________________________________________22 Figura 2.13, Ejemplo 32 - Karnaugh ______________________________________________________________22 Figura 2.14, Ejemplo 33 - Karnaugh ______________________________________________________________22 Figura 2.15, Ejemplo 34 - Karnaugh ______________________________________________________________23 Figura 2.16, Ejemplo 35 - Karnaugh ______________________________________________________________23 Figura 2.17, Ejemplo 36 - Karnaugh ______________________________________________________________23 Figura 2.18, Ejemplo 37 - Karnaugh ______________________________________________________________23 Figura 2.19, Ejemplo 38 - Karnaugh ______________________________________________________________24 Figura 2.20, Ejemplo 39 - Diagrama de bloques _____________________________________________________25 Figura 2.21, Ejemplo 39 - Tabla de verdad _________________________________________________________25 Figura 2.22, Ejemplo 39 - Mapa de Karnaugh_______________________________________________________25 Figura 2.23, Ejemplo 39 - Esquema con puertas lógicas de dos y tres entradas _____________________________26 Figura 2.24, Ejemplo 39 - Esquema con puertas NAND _______________________________________________26 Figura 2.25, Ejemplo 40 - Diagrama de bloques _____________________________________________________27 Figura 2.26, Ejemplo 40 - Tabla de verdad _________________________________________________________27 Figura 2.27, Ejemplo 40 - Mapa de Karnaugh_______________________________________________________27 Figura 2.28, Ejemplo 40 - Esquema con puertas lógicas _______________________________________________28 Figura 2.29, Ejemplo 41 - Mapa de Karnaugh_______________________________________________________28 Figura 2.30, Ejemplo 41 - Esquema con puertas lógicas _______________________________________________29
Sistemas de numeración y álgebra de Boole
2-35
Configuraciรณn de instalaciones domรณticas y automรกticas
Alejandro G. Castro
NOTAS
2-36
Sistemas de numeraciรณn y รกlgebra de Boole