Como se ha dicho en la presentación, en esta serie de artículos, en el enunciado, se tratará sobre los principios de la electrónica digital,
procurando evitar la parte más compleja
siempre que sea posible (como son desarrollo de formulas y principios teóricos, que
utilizaremos sólo cuando sean imprescindibles), de manera que le resulte más sencillo de entender a aquel
aficionado.
Desde luego que todos
estaremos de acuerdo si decimos que la primera 'operación' aritmética que
realizó el hombre fue la de contar. La necesidad de contar, le llevó a idear
un sistema abstracto, con tantos objetos como dedos tenía en las manos, representándolos
con un signo diferente para cada uno, que luego llamaría cifras.
Todos
conocemos estos signos abstractos, en la actualidad se utilizan los llamados
arábicos, por que son los mas comunes, extendidos y conocidos
universalmente.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Estos signos son los pertenecientes al sistema decimal o de base 10. Debido a la
rutina diaria con que utilizamos dicha numeración, hace que algunos no
tengamos conciencia de los números que utilizamos, dando por obvio que se
componen de unidades, decenas, centenas, etc. De esta forma, cuando alguien
habla o escribe un número como por ejemplo 148, nadie repara en que esta cifra
esta compuesta por ocho unidades, cuatros decenas y una centena, que puesto en
forma exponencial, esto quiere decir, que las unidades se multiplican por
10º, las decenas por 10¹, las centenas a 10², los millares por 10³, etc.
Así, la cifra anterior en forma exponencial se representa como sigue:
148
= 1 · 10² + 4 · 10¹ + 8 · 10º
Este sistema
decimal, cuya base esta ligada a los diez dedos de las manos, no quiere decir
que otro sistema de numeración carezca de importancia. Según esto, un
sistema de numeración de hasta 5 signos, tendrá como base B = 5, cuyos dígitos pueden
ser 0, 1, 2, 3, 4. Según las necesidades, se puede optar por diferentes
códigos como el Binario, Octal, Hexadecimal.
De forma similar para un
sistema de numeración hasta dos o sistema de numeración binario, tendrá
como base B = 2 el cual sólo tendrá dos dígitos como por ejemplo:
0,
1
Veamos las equivalencias entre los más utilizados como son el decimal y el
binario puro.
Como
se ha descrito, el sistema binario utiliza exclusivamente dos números el
0 y el 1, para expresar cualquier magnitud, ahí radica la importancia del
sistema binario y la sencillez de sus reglas aritméticas, que hacen del
mismo, el sistema ideal para su uso en computadores y otros dispositivos
digitales.
Así pies, ya vimos cómo en el sistema
decimal se representaba una magnitud, de modo similar se representa en el
sistema binario, sólo que en este caso utilizamos dos únicos símbolos
el 0 y el 1. Por ejemplo, el número 27 en decimal se representa en
binario como 11011. Veamos cómo se representa esto:
Podemos considerar al sistema de
numeración binario como el más extendido después del sistema de numeración
decimal. Dicho sistema de numeración binario, nace de la teoría desarrollada
por el mencionado matemático inglés George Boole, como ya se ha comentado. Recordemos los estados típicos a los que se puede atribuir
la base de numeración binaria:
Una luz esta encendida (1) o esta apagada (0).
Un conductor eléctrico con respecto a otro, si tiene tensión
está a (1), o (0) si no tiene.
Un diodo led, si está a (1) luce, se está (0) si no
luce.
Un transistor NPN tiene un estado alto (1) en su
colector, si no conduce y si conduce, un estado bajo (0).
Un relé electromagnético con la bobina excitada,
cierra un circuito (1) o abre un circuito (0) si no está excitada.
Todos lo ejemplos mencionados, implican en su concepción un
hecho en común, que son 'biestables' o sea que, tienen dos únicos estados posibles:
Ya que el sistema de numeración binario
dispone de dos dígitos (0 y 1). Es lógico pensar que un número binario
estará compuesto por una sucesión de estos signos o dígitos y, por
consiguiente en una numeración general no podrán tomar otro valor que no sea
0 o 1.
BINARIO
DECIMAL
1001
= 9
1101
= 13
1011
= 11
10
= 2
11101101
=237
111
= 7
Los anteriores, son números
pertenecientes al sistema de numeración binario y su equivalente en sistema
decimal.
Sería conveniente tener a mano o no olvidar, la siguiente tabla de
las potencias de 2, con las que identificar el peso o valor de los dígitos en la
posición (o bit) que ocupan para la conversión de un número binario a decimal y
viceversa. Esta tabla tendrá mayor relevancia, cuando se estudien los microprocesadores o microcontroladores.
Es frecuente utilizar los sistemas binario
y decimal y a menudo nos vemos con la necesidad de convertir una cifra de
binario a decimal. Bien, en el sistema binario la base es B=2,
la expresión general de este sistema de numeración será:
En
esta expresión se puede ver que el sistema binario se basa en las potencias
de dos. Obsérvese que, un desplazamiento a la derecha equivale a dividir por dos
y un desplazamiento a la izquierda en cambio representa multiplicar por dos.
Para efectuar el paso de un número decimal a
su equivalente en binario, se puede utilizar el método de las sucesivas divisiones por dos del
número decimal dado, los restos de las divisiones se anotan de abajo a arriba y serán
los dígitos binarios que representen dicho número. Un ejemplo nos
demostrará lo dicho, sea el número decimal 35.
Las reglas de la aritmética del sistema binario son similares
a las del sistema decimal, se simplifican mucho al estar compuestas por sólo
dos números 0 y 1. A continuación resumimos las cuatro operaciones básicas.
SUMA
RESTA
MULTIPLICACIÓN
DIVISIÓN
0 + 0 = 0
0 - 0 = 0
0 X 0 = 0
0 : 0 = 0
0 + 1 = 1
0 - 1 = 1
( y me prestan 1)
0 X 1= 1
0 : 1 = 0
1 + 0 = 1
1 - 0 = 1
1 X 0 = 0
1 : 0 =
1 + 1 = 0
( y 1 de resto)
1 - 1 = 0
1 X 1 = 1
1 : 1 = 1
Posteriormente se mostrarán los circuitos que representa
estas operaciones. Veamos unos ejemplos de operaciones aritméticas en código
binario:
Ahora, presentamos una aplicación que nos servirá para convertir un número de
base conocida a cualquiera de las otras, de forma indistinta. El modo de
uso es sencillo, insertar el número de base conocida, en la casilla correspondiente,
luego sólo se tiene que apuntar en otra de las casillas para obtener el
resultado deseado, en las casillas correspondientes. Todo esto, sobre la misma
tabla que se presenta a continuación, veamos un ejemplo:
Queremos saber del número 12310,
cual es su valor en binario.
Introducimos el numero 123, en la celda de la derecha
de Decimal.
Apuntar con el ratón en un casilla de las demás.
Ya disponemos del valor del número deseado, convertido en
los otros sistemas. Esto mismo ocurre, sea cual sea número de base conocida
introducido, el resultado será presentado al cambiar y 'pinchar' en otra casilla el puntero
del ratón.
Se le llama complemento de un número, a la diferencia
entre la base del sistema y dicho número. La particularidad que presenta es
que, la suma del número y su complemento nos dará la base.
Ejemplos:
El complemento de
4
en base
10
es 6
"
" "
7
"
"
10
" 3
"
" "
3
"
"
8
" 5
"
" "
1
"
"
2
" 1
Una de las razones para utilizar los complementos es que, pueden realizarse
operaciones de resta mediante sumas. El complemento a 1 de un número se obtiene
cumplimentando el valor de los bits del número, o sea, cambiando el valor 1 del bit
por 0 y el valor 0 del bit por 1. Veamos un ejemplo:
Número:
1 0
1101001
Su complemento a
1:
0 1
0010110
También podemos hallar el complemento a 1, si restamos de 1
todos
los bits del número, un ejemplo nos aclarará lo dicho:
111111
001101 ...... número a complementar
----------
110010 ...... complemento a 1
El 'complemento a 2' es el más utilizado por su base. Un
método sencillo de hallar el complemento a 2 es, obtener el complemento a 1 y
luego sumarle 1 al resultado. Ejemplo:
0001101 .....<= número A a complementar
1110010 ........ complemento a 1
+1 ........
se suma
1
-------------
1110011 ........ complemento a 2 del número A
Esta es, otra forma de obtener el complemento a 2 de un número.
Sea el número binario B (10010), consiste en restar el número (B),
al número 1 seguido por tantos
ceros como bits tenga el número B, veamos un ejemplo:
100000 ....... número 1 seguido
de 5 (ceros) bits que tiene el número B
-10010 ....... número B a complementar
------------
001110 ....... complemento a 2 de B
Bien, hemos visto aunque de pasada, cómo hallar el complemento de
un número y el complemento a 2, ahora daremos un paso más dentro de los códigos.
Los códigos en general, se pueden expresar de
dos modos: 1) como 'código ponderado', cuando hace referencia a la posición
que ocupa el bit de un número llamado también peso (BCD, HEXADECIMAL). Y 2) 'código no ponderado',
de este tipo uno muy utilizado es el exceso a 3, código de
Gray y otro el de paridad entre otros.
Sistema BCD (Binario Decimal
Codificado).
Se llama sistema BCD a una forma particular de anotar el
sistema binario, para contar y representar números en decimal. Cada dígito decimal se
expresa por 4 bits, véase la tabla siguiente:
Decimal
12631 Peso del
Bit 8426 8 4 2 1
Binario natural
Hexadecimal
0
0 0 0 0
0000
0
1
0 0 0 1
0001
1
2
0 0 1 0
0010
2
3
0 0 1 1
0011
3
4
0 1 0 0
0100
4
5
0 1 0 1
0101
5
6
0 1 1 0
0110
6
7
0 1 1 1
0111
7
8
1 0 0 0
1000
8
9
1 0 0 1
1001
9
10
0 0 0 1 0 0 0 0
1010
A
11
0 0 0 1 0 0 0 1
1011
B
12
0 0 0 1 0 0 1 0
1100
C
13
0 0 0 1 0 0 1 1
1101
D
14
0 0 0 1 0 1 0 0
1110
E
15
0 0 0 1 0 1 0 1
1111
F
Tabla de los números decimales
codificados en BCD y binario natural.
De forma que utilizando esta tabla el número decimal 478, se
representará en BDC de la siguiente forma:
Decimal:
4 7
8
BDC: 0100
0111 1000
Esta es la forma de representación habitual utilizada en las
computadoras, por ese motivo los códigos siempre son múltiplos de 4.
La conversión del 478 decimal a
binario se obtiene de los restos de dividir sucesivamente por 2
dicho número.
Lo que se expresa por: 111011110
y 10110010 respectivamente, como se aprecia, no
es lo mismo binario natural que codificado a BCD, como vimos en el caso
anterior.
Ciertamente
hay unos tipo de codificación muy generalizados para las diferentes necesidades
por parte de los técnicos, ahora veremos superficialmente el de exceso de 3 y
hexadecimal que son los más usados.
En el código de Exceso a 3 respecto al BCD, sus dígitos no
dependen de su peso o magnitud concreta, con la diferencia respecto de él por que se ha sumado
3 a cada dígito. Es decir, al valor de un número en BCD, se le suma 3 a cada
dígito para codificar y se le resta 3 para decodificar y obtendremos el valor en Exceso a 3 o XS3.
En cuanto
al código Gray, es un código sin ponderar conocido como código binario reflejado o cíclico y a cauda de que minimiza los errores, llamado también como código de errores mínimo en ciertas operaciones.
Este código, se utiliza cuando hay rotaciones de ejes, movimientos radiales o desplazamientos, convirtiendo estos movimientos en un valor binario equivalente (proceso y control de máquinas), para que el computador pueda procesar dichos datos y pueda
calcular, procesar dicha información.
Las líneas de transmisión de datos, los convertidores de analógico a digital, entre otros, introducen errores cuando cambian grupos de bits en la conversión. Por ejemplo, al pasar en binario de 0111 a 1000 (7 a 8), de 1111 a 10000 (15
a 16) etc. En la tabla de debajo, se aprecia en el código de Gray, que sólo cambia un bit al pasar de un número al siguiente superior. El lector puede aumentar fácilmente este código, siguiendo la pausa que lo caracteriza, sumando el número binario con
sigo mismo sin acarreo, se trata de sumar sin acarreo.
Otra forma, añadiendo en cada columna desde la derecha un 0 o un 1, según corresponda, observar en la tabla la cadencia, por ejemplo; 1,2 - 11 : 3,4 - 00 : 5,6 - 11, etc.
Decimal
Binario
Gray
Decimal
Binario
Gray
0
0000
0000
8
1000
1100
1
0001
0001
9
1001
1101
2
0010
0011
10
1010
1111
3
0011
0010
11
1011
1110
4
0100
0110
12
1100
1010
5
0101
0111
13
1101
1011
6
0110
0101
14
1110
1001
7
0111
0100
15
1111
1000
Se pueden utilizar circuitos EOR semi-sumadores para convertir código Gray a binario. Recordemos que una puerta EOR (XOR) de dos entradas, su símbolo se muestra en la figura de la derecha, por si misma nos proporciona un sumador sin acarreo o semi-sumador.
Ver en la imagen siguiente un ejemplo de conversión del número 11101 de código Gray a su equivalente en código binario. este número se aplica a las entradas de la izquierda y su salida (derecha) presenta el número 10110 en binario,
el 16h en hexadecimal y el 22 en decimal.
Sin embargo, no se debe confundir el código Gray con los códigos detectores de error. Un código muy difundido capaz de detectar errores de cálculo en sistemas de comunicación es el llamado comprobación de paridad de bit. Es un
código que indica si el número total de bits 1 es par o impar y se utiliza para detectar errores de la forma más sencilla.
Se llama 'paridad' a la particularidad de ser 'igual' y por esto la comparación de paridad utilizando un código que genere un número de dígitos par o impar añadiendo un dígito al grupo. Al dígito añadido se le llama dígito de
paridad y puede ser un 1 o un 0. En consecuencia un número binario de 4 bits, al aplicarle el bit de paridad, se representa por un grupo de 5bits. Debido a que el bit o dígito de paridad circula siempre unido al número binario, se puede detectar un error
inmediatamente ya que cambia la paridad del número.
Es un sistema de base 16 y se representa por los mismos dígitos
0 al 9 además de las 6 primeras letras mayúsculas del abecedario, A, B, .. F.
Actualmente es el sistema preferido para los procesadores de datos, además, al tener
16 números y ser 16=24,
todos los números del sistema hexadecimal se suelen expresar por grupos de 4
bits o dígitos, lo que simplifica la escritura de números binarios,
facilitando la conversión entre hexadecimal y binario, otra ventaja.
El
modo de expresar un número hexadecimal suele hacerse añadiendo una 'h' a
continuación de los dígitos que lo componen.
Por ejemplo, para pasar el número hexadecimal 7C8h, a binario, bastará con
pasar cada digito a binario por separado, es decir, 7=0111, C=1100 y 8=1000, lo que se
representa por:
0111 1100 1000 = 7C8h
Por lo tanto, para convertir un número binario a hexadecimal,
empezaremos por agrupar los bits de 4 en 4, para ello añadiremos los ceros que
sean necesarios. Es decir, dado el número binario anterior 11111001000, para pasarlo a
hexadecimal, primero debido a que tiene 11 dígitos, completaremos con un cero
los 12 bits, para formar tres grupos de 4 y quedará como sigue:
0111 1100 1000
Ahora, para ver mejor lo que se ha dicho cambiaremos la
disposición y su valor en hexadecimal
0111 = 716
1110 = C16
1000 = 816
Es decir que: 7C816 = 011111101000
Para convertir un número binario a hexadecimal,
agruparemos los bits de 4 en 4 añadiendo para ello, los ceros necesarios, convirtamos
el número binario 110 1010 0011, como tiene 11 dígitos añadimos un cero no
significativo a la izquierda, para cumplir la regla, sigamos:
0110 1010 0011
01102
= 616
10102 = A16
00112 = 316
O sea, 6A316
o en la forma más común 6A3h.
La conversión más utilizada es la de convertir un número hexadecimal a
decimal y viceversa, por ser la más cercana al lenguaje máquina una y al
lenguaje humano la otra. Veamos cómo convertir a decimal el número 37Fh:
37F16
= 3·16²+7·16¹+15·16° = 768+112+15 = 89510
Ahora, convirtamos el número 1.35710 a hexadecimal, lo iremos dividiendo por
16 sucesivamente hasta que no se pueda
continuar, formando el número en hexadecimal el cociente seguido de los restos
desde el último al primero, veamos:
1357 : 16 = 84
13
84 : 16 = 5
|
4 D
Esto es: 135710
= 54D16
También podemos convertir el 135710,
primero a binario: 10101001101 y luego separamos de derecha a izquierda en
grupos de 4, así obtendremos:
0101 = 516
0100 = 416
1101 = 1310 = D16
Como se puede observar obtenemos el mismo resultado.
El álgebra de Boole, establece que todos los elementos tienen dos estados
únicos y basándose en esta teoría, establece unos postulados y operaciones
para resolver las ecuaciones que representan los automatismos y/o procesos
establecidos, obteniendo unos resultados que se deben traducir y ejecutar por
sistemas electrónicos, mecánicos, neumáticos o hidráulicos.
Desde el punto de vista del álgebra de Boole, el estado de cualquier
elemento es cierto o falso, o sea, en el caso de un interruptor
estará cerrado o
abierto, una lámpara estará encendida o apagada, un relé estará activo o en
reposo. Debido al hecho de que sólo se consideren dos estados, es lo que ha
llevado a llamarla álgebra binaria o también álgebra lógica por comportarse
de modo intuitivo y lógico. Esto permite representar por símbolos, objetos de
un circuito lógico con equivalencia al circuito real representado.
De dos variables, se expresará en forma eléctrica como dos
interruptores conectados en paralelo, obteniendo cuatro estados posibles, de
los cuales sólo uno corresponde al estado de circuito abierto, ya que
únicamente cuando los dos interruptores estén abiertos también lo estará
el circuito.
De
dos variables, en forma eléctrica se expresará como dos interruptores en
serie, de cuyos cuatro estados posibles, sólo en el caso de estar ambos
cerrados, también lo estará el circuito eléctrico al que pertenecen.
Fig. 1-2
Las
operaciones NOR y NAND representan una inversión de las anteriores, para
hacernos una idea, eléctricamente se puede entender como pulsadores
normalmente cerrados, en lugar de interruptores normalmente abiertos.
Si alguna cuestión no ha quedado clara,
deberías indicármelo en
este enlace.