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
12 631 Peso del Bit
Binario natural
Hexadecimal
8426 8 4 2 1
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
&nb sp; 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 . ↑↑