You are on page 1of 21

TEMA 1

Introduccin a la electrnica digital



E
L
E
C
T
R

N
I
C
A


D
I
G
I
T
A
L

1


C
u
r
s
o

d
e

I
n
g
e
n
i
e
r

a

T

c
n
i
c
a

I
n
d
u
s
t
r
i
a
l
.

E
l
e
c
t
r

n
i
c
a

I
n
d
u
s
t
r
i
a
l



Curso 2009/2010

Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco



ndice

1.1 Concepto de sistema digital .......................................................................................... 1
1.2 Ventajas e inconvenientes de los sistemas digitales ..................................................... 4
1.3 Representacin numrica .............................................................................................. 4
1.3.1 Conversiones entre sistemas numricos ................................................................ 6
1.4 Cdigos binarios............................................................................................................ 9
1.4.1 Cdigos BCD ...................................................................................................... 10
1.4.1.1 Cdigos BCD ponderados......................................................................... 10
1.4.1.2 Cdigos BCD no ponderados.................................................................... 11
1.4.2 Cdigos cclicos .................................................................................................. 11
1.4.2.1 Cdigos cclicos completos....................................................................... 12
1.4.2.2 Cdigos cclicos incompletos.................................................................... 12
1.4.3 Cdigos detectores de errores.............................................................................. 13
1.4.3.1 Cdigos de paridad.................................................................................... 14
1.4.3.2 Cdigos de nmero de unos constante ...................................................... 15
1.4.4 Cdigos correctores de errores ............................................................................ 15
1.4.4.1 Cdigos de Hamming................................................................................ 18



Bibliografa

Sistemas Electrnicos Digitales. Enrique Mandado. Marcombo, 1.998. Captulo 1.
Diseo Digital. Principios y Prcticas. John F. Wakerly. Prentice-Hall, 2001.
Captulos 1 y 2.
Logic Design Principles with Emphasis on Testable Semicustom Circuits.
Edward J. McCluskey. Prentice/Hall International, Inc., 1986. Captulo 1.




Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 1

1.1 Concepto de sistema digital
Antes de entrar de lleno en el desarrollo de los diferentes temas, vamos a proporcionar
una aproximacin al concepto de Electrnica Digital, y ms concretamente al de sistema
digital, ya que la presente asignatura se dedica es al estudio de este tipo de circuitos.
Para ello, abordaremos en primer lugar el concepto de Electrnica. Una posible
definicin para esta disciplina podra ser la siguiente:
La Electrnica es la ciencia que estudia los fenmenos relacionados con el
transporte de carga elctrica en medios materiales, as como la construccin de
dispositivos, circuitos y sistemas basados en ellos.
Atendiendo a la naturaleza de las variables que intervienen, dentro de la electrnica
podemos distinguir dos grandes ramas: la Electrnica Analgica y la Electrnica Digital.
La Electrnica Analgica es la parte de la electrnica que trabaja con variables
analgicas. Una variable analgica es aquella cuya amplitud (A) vara en el tiempo de
manera continua, dentro del rango comprendido entre los valores mnimo y mximo que la
misma puede adoptar (Figura 1.1).
t
A
max
min

Figura 1.1 Representacin grfica de una variable analgica.
Como consecuencia, este tipo de variables puede tomar infinitos valores entre dos valores
cualesquiera, por lo que los incrementos que sufre son infinitesimales.
Un circuito electrnico donde se emplean este tipo de variables recibe el nombre de
sistema analgico. En este tipo de circuitos, un pequeo cambio en una determinada variable
puede producir un gran cambio a la salida. Un ejemplo tpico de sistema analgico es un
amplificador de audio.
La Electrnica Digital, por el contrario, es la parte de la electrnica que trabaja con
variables digitales. Una variable digital es aquella cuya amplitud no vara en el tiempo de
manera continua, sino que lo hace de forma discreta, pudiendo adoptar un nmero finito de
valores. Aunque en principio las variables podran tomar mltiples valores, debido a la
facilidad que presenta la fabricacin de componentes con 2 estados de funcionamiento bien
diferenciados (corte y saturacin), en los sistemas empleados en la prctica se utilizan
variables que solamente pueden adoptar dos valores: uno alto o H (High) y otro bajo o L
(Low). Este tipo de variables digitales se denominan variables binarias o lgicas, mientras
que los circuitos electrnicos donde se emplean reciben el nombre de sistemas digitales.
En la Figura 1.2 se muestra la evolucin en el tiempo de una variable binaria.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 2

A
H
L

Figura 1.2 Representacin grfica de una variable digital binaria ideal.
La representacin anterior corresponde a una variable binaria ideal, por dos motivos
fundamentales:
Los valores adoptados por la misma son exactos.
La transicin entre los dos valores posibles se realiza de forma instantnea.
El principal medio fsico utilizado en la prctica para representar la informacin digital es
la tensin elctrica, que es una magnitud analgica. En consecuencia, los valores binarios no
se corresponden con niveles absolutos de tensin, sino con rangos de tensiones. De este
modo, el valor digital adoptado por una variable en cada instante depende del rango en que se
encuentra el valor de la tensin que la representa.
Adems, entre los dos rangos de tensiones vlidos existe una banda prohibida, dentro de
la cual nunca debera encontrarse, en teora, el valor de la tensin que representa a la variable
binaria. Sin embargo, cada vez que se produce una transicin entre los niveles lgicos, esta
tensin, al ser una magnitud analgica, debe atravesar esta franja. Debido a las limitaciones
tecnolgicas de los circuitos electrnicos empleados en la implementacin de los sistemas
digitales, estas transiciones no se producen todo lo rpido que sera deseable, lo que provoca
que existan intervalos de tiempo durante los cuales la variable digital no posee ninguno de los
dos valores vlidos, y en los que por tanto, sta no deber ser evaluada.
Con todo ello, la evolucin en el tiempo de una variable binaria real se muestra en la
Figura 1.3.
t
A
H
L

Figura 1.3 Representacin grfica de una variable digital binaria real.
Como se puede apreciar en la figura, en un circuito electrnico digital, un pequeo
cambio en alguna de las tensiones que representan a las variables del mismo (siempre que no
sea lo suficientemente grande como para sacarla del rango en que se encuentra), no producir
un cambio apreciable a la salida. Es decir, el comportamiento del circuito digital no depende
del valor exacto de una determinada seal, sino del rango de valores dentro del cual se
encuentra la misma.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 3

Para representar los dos valores de una variable binaria se utilizan comnmente los
smbolos 0 y 1. Existen dos alternativas a la hora de interpretar los dos rangos de
tensiones en los que debe encontrarse la seal:
Si al nivel de tensin ms alto (H) se le asigna el valor 0 y al ms bajo (L) el 1 se
dice que se trabaja en lgica negativa.
Si por el contrario, al nivel de tensin ms alto (H) se le asigna el valor 1 y al ms
bajo (L) el 0 se dice que se trabaja en lgica positiva.
El segundo de los convenios es el utilizado normalmente, y por tanto, es el que
seguiremos en adelante.
Como puede apreciarse en la Figura 1.4, en un sistema electrnico tpico coexisten los
dos tipos de comportamiento: analgico y digital.
Entrada
mbito digital mbito analgico
Salida
1 2 3

Figura 1.4 Zonas de trabajo analgica y digital de un circuito electrnico.
En los extremos de la grfica (zonas 1 y 3) podemos observar que para cambios
considerables en la seal de entrada apenas existe cambio en la seal de salida. stas son las
zonas de operacin de los circuitos en la rama digital de la electrnica, de modo que sin
conocer el valor exacto de la seal de entrada podemos determinar cual ser el valor de la
salida. En cambio, la parte central de la grfica (zona 2) se produce el fenmeno contrario, es
decir, un pequeo cambio en la seal de entrada produce un gran cambio en la seal de salida.
sta es la zona de operacin de los circuitos en la rama analgica de la electrnica. En este
caso debemos conocer el valor exacto de la seal de entrada (su valor continuo) para poder
determinar el valor de la seal de salida. Por tanto, el que un determinado circuito electrnico
sea analgico o digital depende de cuales sean las zonas de trabajo principalmente usadas
durante el funcionamiento del mismo.
Dentro de los circuitos digitales, existe a su vez una divisin en dos grandes grupos: los
circuitos combinacionales y los circuitos secuenciales:
Los circuitos combinacionales se caracterizan por el hecho de que los valores de las
salidas en un instante determinado, nicamente dependen de la combinacin presente
en las entradas en dicho instante, y no de la historia anterior del circuito. Por lo tanto,
este tipo de circuitos no posee memoria y la secuencia de entradas anteriores no tiene
influencia sobre la salida en un momento dado.
Los circuitos secuenciales se caracterizan por el hecho de que las salidas dependen,
adems de la combinacin presente en la entrada, de la historia anterior del circuito.
En consecuencia, estos circuitos disponen de memoria y el orden de la secuencia de
entradas anteriores s es significativo.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 4

1.2 Ventajas e inconvenientes de los sistemas digitales
El empleo de sistemas digitales presenta una serie de ventajas e inconvenientes, los
cuales se resumen a continuacin:
Ventajas
Disponibilidad de un soporte matemtico adecuado, como son las lgebras discretas.
Elevada fiabilidad en la transmisin de la informacin, ya que una pequea
degradacin de la seal (debido a interferencias u otros motivos) no influye en su valor
lgico, pudindose recuperar la informacin original en el receptor.
Facilidad para el almacenamiento de la informacin.
Posibilidad de deteccin y correccin de errores.
Existencia de tecnologas de fabricacin adecuadas.
Amplia aplicacin en mltiples campos, tales como la ingeniera, la computacin, la
industria, los transportes, las comunicaciones, la educacin, el comercio , el hogar, etc.
Inconvenientes
El principal inconveniente que presenta el uso de los sistemas digitales, radica en la
necesidad de interfaces para su conexin con el mundo exterior. Esto es debido a que,
en la mayora de las aplicaciones, las variables o seales a tratar son magnitudes
analgicas, tales como la presin, la velocidad, la temperatura, etc., por lo que es
necesario llevar a cabo la cuantificacin de las mismas antes de que puedan ser
procesadas por el sistema digital. Por otra parte, los resultados del proceso deben, con
frecuencia, volver a transformarse a seales analgicas para poder actuar sobre los
elementos de salida correspondientes.
1.3 Representacin numrica
El ser humano utiliza desde pequeo el sistema decimal o de base 10 para representar las
cantidades numricas. Sin embargo, como hemos comentado anteriormente, en los sistemas
digitales se utilizan variables que pueden adoptar slo 2 valores, es decir, seales binarias o de
base 2. Adems de estos dos sistemas de numeracin, en el estudio de los sistemas digitales se
hace uso con frecuencia de otros dos: el octal (o de base 8) y el hexadecimal (o de base 16),
debido a la facilidad que presentan para su conversin a binario y viceversa, y a que permiten
representar las cantidades de forma ms compacta (usando memos dgitos) que el sistema
binario.
Los cuatro sistemas de numeracin mencionados anteriormente (decimal, binario, octal y
hexadecimal) son posicionales. Un sistema posicional es aquel en el que cualquier nmero
viene definido por una cadena de dgitos, cada uno de los cuales est afectado por un factor de
escala, que depende de la posicin que ocupa dentro de la cadena.
Se denomina base o raz de un sistema posicional al nmero de smbolos diferentes que
se utilizan para representar las cantidades en dicho sistema. As pues, los sistemas
posicionales se caracterizan por el valor de su base, denotndose como sistemas de base 2, 3,
, 8, 9, 10, etc.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 5

En la Tabla 1.1 se representan los smbolos utilizados en los cuatro sistemas de numeracin
ms empleados en los sistemas digitales.

Sistema posicional Base Smbolos empleados
Sistema decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Sistema binario 2 0, 1
Sistema octal 8 0, 1, 2, 3, 4, 5, 6, 7
Sistema hexadecimal 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Tabla 1.1 Smbolos empleados en los sistemas de numeracin decimal, binario, octal y hexadecimal.
En un sistema posicional de base b, un nmero cualquiera N puede representarse
mediante un polinomio de potencias de dicha base, multiplicadas por coeficientes que tambin
pertenecen al sistema:
n
n n-1 i 0 -p i
b n n-1 i 0 -p i
i = -p
(N) = a .b + a .b + ... + a .b + ... + a .b + ... + a .b a .b =


donde b es la base del sistema de numeracin, a
i
es un smbolo perteneciente al mismo (es
decir: 0 a
i
< b), n+1 es el nmero de dgitos enteros y p es el de dgitos fraccionarios.
Ejemplos:
2 1 0 -1 -2
2
(101.01) = 1 2 + 0 2 + 1 2 + 0 2 + 1 2
1 0 -1 -2 -3
8
(63.574) = 6 8 + 3 8 + 5 8 + 7 8 + 4 8
3 2 1 0 -1
10
(8490.5) = 8 10 + 4 10 + 9 10 + 0 10 + 5 10
3 2 1 0
16
(2AC9) = 2 16 + A 16 + C 16 + 9 16
Con objeto de simplificar la representacin de los nmeros, las potencias de la base no se
suelen representar, indicndose slo la secuencia ordenada de coeficientes, encerrada entre
parntesis o no. Adems, para indicar cual es el sistema utilizado en la representacin se suele
indicar la base de ste como subndice. Si la base es 10 sta puede omitirse. Esta forma de
representar las cantidades se conoce como notacin posicional.
Ejemplos:
2 2
(101.01) 101.01
8 8
(63.574) 63.574
10 10
(8490.5) 8490.5 8490.5
16 16
(2AC9) 2AC9
El mximo nmero de combinaciones que se pueden representar en un sistema posicional
de base b mediante un conjunto de n dgitos, viene determinado por la expresin b
n
. Esto
significa que mediante el uso de n dgitos podremos representar hasta b
n
cantidades diferentes
en dicho sistema de numeracin. En consecuencia, el nmero de dgitos que se deber utilizar
en cada caso depender del nmero de cantidades a representar.
La representacin de los nmeros comprendidos entre el cero y el quince en los sistemas
decimal, binario, octal y hexadecimal, se muestra en la Tabla 1.2.


Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 6

Sistema decimal Sistema binario Sistema octal Sistema hexadecimal
00 0000 00 0
01 0001 01 1
02 0010 02 2
03 0011 03 3
04 0100 04 4
05 0101 05 5
06 0110 06 6
07 0111 07 7
08 1000 10 8
09 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
Tabla 1.2 Representacin de los nmeros del 0 al 15 en los sistemas decimal, binario, octal y hexadecimal.
1.3.1 Conversiones entre sistemas numricos
Para poder trabajar con varios sistemas numricos, como por ejemplo el sistema decimal
y el binario, debemos ser capaces de convertir nmeros de una base a otra. Existen dos
mtodos de conversin de base: el polinmico y el iterativo.
El mtodo polinmico consiste en expresar el nmero como un polinomio de potencias
de la base de origen y evaluarlo segn la aritmtica de la base destino. Por ejemplo:
3 2 1 0
2 10
(1011) = 1 2 + 0 2 + 1 2 + 1 2 = (11)
Este mtodo presenta el problema de que si la base destino no es la decimal, tendremos
que usar una aritmtica diferente a la que normalmente utilizamos. Por lo tanto, este mtodo
suele ser usado para convertir al sistema decimal nmeros expresados en otros sistemas.
El mtodo iterativo consiste en dividir (sin obtener decimales) el nmero de manera
sucesiva por la base destino, usando la aritmtica de la base de origen, hasta que el cociente
valga 0. Una vez hecho esto, el nmero expresado en la nueva base ser igual a la secuencia
ordenada de los restos de todas las divisiones en orden inverso al de su obtencin, es decir, el
dgito ms significativo ser el obtenido en ltimo lugar.
3 2 1 0 2 1 0
3 2 1 0 3 2 1 0
(a b + a b + a b + a b ) / b = a b + a b + a b + a /b
2 1 0
1 0 1 3 2 1
resto : a y cociente : a b + a b + a b

Es decir, cuando realizamos la primera divisin, el resto que nos queda (a
0
) es el dgito
menos significativo en la nueva base y el cociente es el nmero restante. Si volvemos a dividir
sucesivamente el cociente por la base, obtendremos:
2 1 0 1 0
3 2 1 3 2 1
(a b + a b + a b ) / b = a b + a b + a /b
1 0
1 1 1 3 2
resto : a y cociente : a b + a b
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 7

1 0 0
3 2 3 2
(a b + a b ) / b = a b + a / b
0
3 2 3 3
resto : a y cociente : a b
0
3 3
(a b ) / b = a / b
4 3 4
resto : a y cociente : 0
Luego el nmero expresado en base b quedara:
3 2 1 0 b
(a a a a )
Por ejemplo, para pasar a binario el nmero 11
10
, procederamos como sigue:
5
2 11
2
2
2
1
2
1
1
0
0
1
0
a
1
a
2
a
3
a

luego obtenemos que 11
10
= 1011
2
.
Hasta ahora, slo hemos tenido en cuenta la parte entera de los nmeros. Cuando se
utiliza el mtodo polinmico, la parte fraccionaria se trata igual que la parte entera, teniendo
en cuenta que los exponentes de la base son negativos. Como resultado de la conversin de
esta parte se obtendr siempre un nmero menor que 1, ya que el valor de los dgitos siempre
es menor que el de la base. Por ejemplo:
-1 -2 -3
2 10
(0.101) = 1 2 + 0 2 + 1 2 = (0.625)
Cuando se usa el mtodo iterativo, la parte fraccionaria debe evaluarse por separado de la
parte entera. En este caso, la parte fraccionaria se multiplica por la base de destino, de modo
que la parte entera del resultado constituye el primer dgito del nmero convertido,
procedindose de forma similar con la parte fraccionaria restante para obtener nuevos dgitos.
Del mismo modo que antes, podemos comprobar que si procedemos de esta forma sobre
un polinomio genrico obtenemos el resultado esperado.
-1 -2 -3 0 -1 -2
-1 -2 -3 -1 -2 -3
(a b + a b + a b ) b = a b + a b + a b
-1 -2
-1 -2 -3
parte entera: a y parte fraccionaria: a b + a b
-1 -2 0 -1
-2 -3 -2 -3
(a b + a b ) b = a b + a b
-1
-2 -3
parte entera: a y parte fraccionaria: a b
-1 0
-3 -3
(a b ) b = a b
-3
parte entera: a y parte fraccionaria: 0
Como resultado del desarrollo anterior, obtenemos que el nmero de origen puede ser
representado en base b como:
-1 -2 -3 b
(0.a a a ) , es decir que posee una representacin exacta.
Esto es debido a que tras la tercera multiplicacin la parte fraccionaria obtenida es 0. Si esto
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 8

no sucediera, seguiramos multiplicando sucesivamente hasta obtener el nmero de decimales
deseado.
A continuacin, ilustramos un ejemplo de conversin a binario del nmero fraccionario
decimal 0.375:
0.375
2
2
0.750
1.500
2
1.000
-1
a
-2
a
-3
a

luego obtenemos que 0.375
10
= 0.011
2
.
Cuando se utiliza el mtodo iterativo, tanto para la parte entera como para la fraccionaria,
la aritmtica empleada es la de la base de origen, por lo que este mtodo se suele utilizar para
la conversin de nmeros decimales a cualquier otra base.
Si el nmero a convertir mediante el mtodo iterativo tiene parte entera y parte
fraccionaria, se convierten ambas partes por separado y se colocan los resultados parciales
obtenidos a la izquierda y a la derecha de la coma de decimales, respectivamente, para obtener
resultado final.
Debido a que las bases de los sistemas octal y hexadecimal son potencia de dos (8 = 2
3
y
16 = 2
4
), la conversin entre estos sistemas y el binario es muy sencilla. Observemos los
siguientes polinomios correspondientes a nmeros binarios, octales y hexadecimales
genricos:
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
b 2 + b 2 + b 2 + b 2 + b 2 + b 2 + b 2 + b 2
2 1 0
2 1 0
O 8 + O 8 + O 8
1 0
1 0
H 16 + H 16
Por ser estas bases (8 y 16) potencias de dos, en el polinomio correspondiente al nmero
binario podemos agrupar los trminos de tal forma que se obtengan polinomios de potencias
de dichas bases:
1 0 2 2 1 0 1 2 1 0 0
7 6 5 4 3 2 1 0
(b 2 + b 2 ) 8 + (b 2 + b 2 + b 2 ) 8 + (b 2 + b 2 + b 2 ) 8
3 2 1 0 1 3 2 1 0 0
7 6 5 4 3 2 1 0
(b 2 +b 2 + b 2 + b 2 ) 16 + (b 2 + b 2 + b 2 + b 2 ) 16
Comparando las dos ltimas expresiones con las expresiones genricas de los nmeros
octales y hexadecimales, obtenemos las siguientes igualdades:
1 0
2 7 6
O = b 2 + b 2
2 1 0
1 5 4 3
O = b 2 + b 2 + b 2
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 9

2 1 0
0 2 1 0
O = b 2 + b 2 + b 2
3 2 1 0
1 7 6 5 4
H = b 2 + b 2 + b 2 + b 2
3 2 1 0
0 3 2 1 0
H = b 2 + b 2 + b 2 + b 2
Como podemos apreciar, cada dgito octal se corresponde con 3 dgitos de la
combinacin binaria, y cada dgito hexadecimal con 4. Por lo tanto, podemos realizar la
conversin dgito a dgito, y no del nmero completo.
En consecuencia:
Para convertir un nmero octal o hexadecimal a binario, se sustituye cada uno de
sus dgitos por su equivalente binario, suprimiendo los ceros situados a la izquierda de
la parte entera y a la derecha de la parte fraccionaria.
Ejemplos:
8
(35.2)
2
011 101 . 010 (11101.01)

16
(6D.A)
2
0110 1101 . 1010 (1101101.101)


Para convertir un nmero binario a octal o a hexadecimal, se divide dicho nmero
en grupos de 3 o 4 dgitos, respectivamente, partiendo desde la coma de decimales
hacia uno y otro lado. A continuacin, se sustituye cada grupo de dgitos por su
equivalente octal o hexadecimal.
Ejemplos:
2
8
6 (25.16) 5 1
2
(10101.00111)
.

5
16
7 (5A.C7) A C
2
(1011010.11000111)
.

1.4 Cdigos binarios
Una vez analizada la forma de convertir de una base a otra, nos falta determinar la
relacin existente entre la informacin y las combinaciones de dgitos (palabras) utilizadas
para su representacin. Esta relacin viene determinada por el cdigo empleado. Se puede
definir el concepto de cdigo como sigue:
Un cdigo es una representacin biunvoca de las cantidades, de tal forma que a
cada una de stas se le asigna una combinacin de smbolos determinada, y
viceversa.
Segn esta definicin, todos los sistemas de numeracin posicionales estudiados
anteriormente constituyen cdigos para la representacin de cantidades. No obstante, a partir
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 10

de ahora vamos a ocuparnos nicamente de los cdigos binarios, que son aquellos cuyos
dgitos (denominados bits) pueden tomar nicamente dos valores: el 0 y el 1.
Se han desarrollado multitud de cdigos, cada uno de los cuales posee una serie de
caractersticas que los hacen adecuados para ciertas aplicaciones. En el presente apartado
vamos a estudiar algunos de ellos.
1.4.1 Cdigos BCD
El sistema numrico con el que trabajamos habitualmente las personas, y por tanto el que
mejor entendemos, es el sistema decimal. Sin embargo, como hemos comprobado en
apartados anteriores, su conversin al sistema binario (que es el empleado por el sistema
digital), y viceversa, no es inmediata, lo cual dificulta la comunicacin entre el usuario y la
mquina.
Para superar este inconveniente se desarrollaron los cdigos Decimal Codificado en
Binario o BCD (Binary Coded Decimal). En estos cdigos, cada dgito decimal se codifica
directamente mediante una combinacin binaria. Como para representar los diez dgitos del
sistema decimal se necesitan 4 bits (2
3
< 10 < 2
4
), existen 6 combinaciones por cada dgito que
no se usan. Como consecuencia de ello, para representar un determinado nmero en BCD son
necesarios ms bits que para representar el mismo nmero en binario.
1.4.1.1 Cdigos BCD ponderados
Los cdigos BCD ponderados o pesados son aquellos en los que a cada posicin o bit se
le asigna un peso, de forma que el dgito decimal equivalente a una combinacin dada, se
obtiene sumando los pesos de aquellos bits cuyo valor es igual a 1, es decir:
3 3 2 2 1 1 0 0
Valor = C W + C W + C W + C W
donde C
3
C
2
C
1
C
0
es una combinacin perteneciente al cdigo y (W
3
,W
2
,W
1
,W
0
) es el vector
de pesos del mismo.
Algunos ejemplos de cdigos BCD ponderados son el BCD natural, el BCD Aiken y
el BCD 5-4-2-1 (Tabla 1.3), cuyos vectores de pesos son (8,4,2,1), (2,4,2,1) y (5,4,2,1),
respectivamente.

Dgito decimal BCD Natural (8, 4, 2, 1) BCD Aiken (2, 4, 2, 1) BCD 5-4-2-1 (5, 4, 2, 1)
0 0000 0000 0000
1 0001 0001 0001
2 0010 0010 0010
3 0011 0011 0011
4 0100 0100 0100
5 0101 1011 1000
6 0110 1100 1001
7 0111 1101 1010
8 1000 1110 1011
9 1001 1111 1100
Tabla 1.3 Ejemplos de cdigos BCD ponderados.

Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 11

Ejemplos:

Decimal BCD Natural BCD Aiken BCD 5-4-2-1
1289 0001 0010 1000 1001 0001 0010 1110 1111 0001 0010 1011 1100
3670 0011 0110 0111 0000 0011 1100 1101 0000 0011 1001 1010 0000
6789 0110 0111 1000 1001 1100 1101 1110 1111 1001 1010 1011 1100
1.4.1.2 Cdigos BCD no ponderados
Son aquellos cdigos BCD en los que cada posicin binaria no tiene asignado un peso. El
ms utilizado es el BCD Exceso 3 (Tabla 1.4), que se obtiene a partir del cdigo BCD natural
sumando tres a cada una de las combinaciones.


Dgito decimal BCD Exceso 3
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100
Tabla 1.4 Ejemplo de cdigo BCD no ponderado.

Ejemplos:
Decimal BCD Exceso 3
1289 0100 0101 1011 1100
3670 0110 1001 1010 0011
6789 1001 1010 1011 1100
Tanto el cdigo BCD Aiken como el BCD Exceso 3 poseen la propiedad de ser
autocomplementarios, es decir, si complementamos (cambiamos ceros por unos y viceversa)
una palabra perteneciente al cdigo con valor decimal d, obtendremos otra palabra tambin
perteneciente al cdigo cuyo valor decimal es el complemento a 9 de d (9 - d).
1.4.2 Cdigos cclicos
En algunas aplicaciones donde las palabras de cdigo se suceden segn los valores
decimales de las mismas, es conveniente que las palabras asociadas a valores decimales
consecutivos se diferencien lo menos posible, con objeto de que al pasar de una combinacin
a la siguiente (todos los bits no cambian exactamente al mismo tiempo) no se produzcan
combinaciones inesperadas.
Se define la distancia Hamming entre dos palabras de cdigo como el nmero de
bits que difieren entre ambas.
Cuando entre dos combinaciones de un cdigo la distancia Hamming es igual a 1 (se
diferencian en un solo bit) se dice que stas son adyacentes.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 12

Se puede definir un cdigo cclico como aquel en el que las combinaciones
correspondientes a nmeros decimales consecutivos son adyacentes, y adems, la
ltima combinacin tambin lo es con la primera.
1.4.2.1 Cdigos cclicos completos
Son aquellos cdigos cclicos que, constando de n bits, poseen el nmero mximo de
combinaciones posible, es decir, 2
n
.
El cdigo de este tipo de mayor difusin es el reflejado o Gray. Su nombre es debido a
que la formacin de un cdigo de n bits se efecta a partir de uno de n-1 bits, repitiendo
simtricamente las combinaciones de ste y aadiendo por la izquierda un 0 a las 2
n-1
primeras
combinaciones y un 1 a las 2
n-1
restantes.

Dgito decimal Cdigo Gray de 3 bits
0 000
1 001
2 011
3 010
4 110
5 111
6 101
7 100
Tabla 1.5 Cdigo Gray de 3 bits.
Una de las ventajas que presenta este cdigo es su fcil obtencin a partir del cdigo
binario natural. Para ello bastar con asignar el valor 1 a cada bit G
i
nicamente en el caso de
que B
i
B
i+1
, como puede observarse en la Tabla 1.6.

Binario Gray
Dgito decimal
B
2
B
1
B
0
G
2
G
1
G
0
0 0 0 0 0 0 0
1 0 0 1 0 0 1
2 0 1 0 0 1 1
3 0 1 1 0 1 0
4 1 0 0 1 1 0
5 1 0 1 1 1 1
6 1 1 0 1 0 1
7 1 1 1 1 0 0
Tabla 1.6 Generacin de un cdigo Gray a partir de un cdigo binario natural.
1.4.2.2 Cdigos cclicos incompletos
Son aquellos cdigos cclicos que, constando de n bits, poseen menos de 2
n

combinaciones.
El cdigo de este tipo de mayor difusin es el denominado Johnson (Figura 1.5), cuya
capacidad de codificacin para n bits es 2n.


Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 13


Dgito decimal Cdigo Johnson de 5 bits
0 00000
1 00001
2 00011
3 00111
4 01111
5 11111
6 11110
7 11100
8 11000
9 10000
Figura 1.5 Cdigo Johnson de 5 bits.
1.4.3 Cdigos detectores de errores
Durante el almacenamiento, el procesamiento o la transmisin de la informacin, es
posible que se produzcan errores en la misma, como consecuencia de averas, interferencias,
etc. Los cdigos detectores de errores son aquellos que incluyen la informacin necesaria para
permitir detectar la presencia de errores en sus combinaciones.
Si en el cdigo binario empleado para representar una determinada informacin se
utilizan todas las combinaciones posibles (2
n
para n bits) no ser posible la deteccin de
errores, ya que al producirse un error en un bit de una combinacin cualquiera se obtendr
otra combinacin que tambin pertenecer al cdigo. As pues, para que un cdigo permita
detectar errores no pueden utilizarse en el mismo todas las combinaciones posibles del
conjunto de bits empleado.
Se denomina distancia mnima de un cdigo a la menor de las distancias Hamming entre
dos combinaciones cualesquiera del mismo. De manera general, el nmero de bits errneos
que permite detectar un cdigo es igual a su distancia mnima menos uno.
Una vez llegados a este punto, debemos decidir cual ser el nmero de errores que el
cdigo deber detectar sobre una determinada combinacin del mismo. En principio,
parecera lgico intentar detectar errores en tantos dgitos como bits se utilicen para
representar la informacin, pero en la prctica esta posibilidad resultara excesivamente
costosa. No obstante, los estudios realizados al respecto han concluido que la probabilidad de
que se produzcan fallos en varios bits de una combinacin es bastante ms remota que la
posibilidad de que se produzca un error en un solo bit. En consecuencia, los cdigos
empleados en la prctica son los que permiten detectar errores en un solo bit.
Segn se ha explicado con anterioridad, para que un cdigo pueda detectar la presencia
de un solo error en cualquiera de sus combinaciones, su distancia mnima debe ser 2. El
comportamiento de un cdigo de este tipo se refleja en la Figura 1.6.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 14

Palabra n+1
Palabra n-1
Palabra n 0
1
1
2
2
Error en 2 bits
Error en 1 bit
Distancia a Palabra n

Figura 1.6 Comportamiento de un cdigo detector de errores en un solo bit.
Al tener el cdigo una distancia mnima de dos, entre dos palabras correctas siempre
existir una combinacin de bits que no pertenecer al mismo. Por lo tanto, cuando en una
palabra del cdigo se produce un error en un solo bit, la combinacin obtenida ser alguna de
estas combinaciones, por lo que el error ser detectado. Sin embargo, si se producen errores
en dos bits se obtendr otra combinacin tambin perteneciente al cdigo, por lo que dichos
errores no sern detectados.
Existen diversos tipos de cdigos detectores de errores, entre los cuales cabe destacar los
cdigos de paridad y los de nmero de unos constante.
1.4.3.1 Cdigos de paridad
Este tipo de cdigos se obtiene a partir de cualquier cdigo de distancia mnima
unidad, aadiendo a cada una de las combinaciones un bit llamado de paridad.
Si se desea obtener un cdigo de paridad par, el bit aadido ser tal que el nmero de
unos de la combinacin resultante sea par. Por el contrario, si se quiere un cdigo de paridad
impar, el bit aadido har que la combinacin posea un nmero impar de unos.
La adicin de un bit de paridad aumenta en uno la distancia mnima de un cdigo.
Para la deteccin de errores en este tipo de cdigos se comprobar que la paridad de la
combinacin (par o impar) es la correcta. Si no es as, esto indicar la existencia de un error
en la combinacin.

Dgito decimal BCD Natural con bit de paridad par
0 0000 0
1 0001 1
2 0010 1
3 0011 0
4 0100 1
5 0101 0
6 0110 0
7 0111 1
8 1000 1
9 1001 0
Tabla 1.7 Cdigo BCD Natural con bit de paridad par.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 15

1.4.3.2 Cdigos de nmero de unos constante
Como su nombre indica, son aquellos en los que el nmero de unos que poseen todas sus
combinaciones es el mismo.
Entre los cdigos ms representativos de este tipo se encuentran el 2 entre 5 y el
Biquinario (Tabla 1.8).

Dgito decimal Cdigo 2 entre 5 Cdigo Biquinario (5, 0, 4, 3, 2, 1, 0)
0 01100 0100001
1 11000 0100010
2 10100 0100100
3 10010 0101000
4 01010 0110000
5 00110 1000001
6 10001 1000010
7 01001 1000100
8 00101 1001000
9 00011 1010000
Tabla 1.8 Cdigos de nmero de unos constante.
En las tablas anteriores podemos apreciar que ambos cdigos son de peso fijo igual a 2,
que su distancia mnima es tambin 2 y que por tanto permiten detectar errores en un solo bit
mediante la deteccin de paridad impar.
El cdigo 2 entre 5 est formado por todas las combinaciones binarias de 5 bits que
poseen slo dos unos. Un error en un bit de cualquiera de estas combinaciones dar lugar a
una palabra con uno o con tres bits iguales a 1, por lo que el resultado de la deteccin de
paridad impar ser 1, y el error ser detectado. Sin embargo, si el nmero de errores es par la
paridad de la combinacin no se alterar, y los errores no sern detectados.
El cdigo biquinario muestra un aspecto similar al 2 entre 5, es decir, todas sus palabras
contienen slo dos unos, pero a diferencia de este ltimo, no contiene todas las combinaciones
de 7 bits que poseen 2 unos. No obstante existe una relacin que slo es cumplida por las
palabras pertenecientes al cdigo. As, la deteccin de un fallo se realiza comprobando que
exista un 1 en los dos primeros bits, y otro 1 en los cinco restantes. Por otro lado, y a
diferencia del anterior, el cdigo biquinario es ponderado, siendo su vector de pesos:
(5,0,4,3,2,1,0).
1.4.4 Cdigos correctores de errores
Son aquellos cdigos que no slo detectan la existencia de errores, sino que tambin
indican la situacin de los bits errneos, lo cual permite la correccin de los errores sin ms
que invertir el valor de dichos bits.
Estos cdigos son utilizados principalmente en transmisin de datos, cuando no es
posible volver a enviar la informacin en caso de existir errores en la misma.
Para poder llevar a cabo la correccin de errores, es preciso que la palabra errnea se
encuentre ms cerca (en el sentido de la distancia de Hamming) de la palabra correcta que de
cualquier otra palabra del cdigo, o lo que es lo mismo, que tenga menos bits diferentes con
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 16

respecto sta que con respecto a las dems. As pues, la condicin necesaria y suficiente para
que un cdigo permita corregir errores en un solo bit, es que la distancia mnima del mismo
sea igual a 3, tal como se ilustra en la Figura 1.7.
Palabra n+1
Palabra n-1
Palabra n 0
1
1
2
2
Error en 2 bits
Error en 1 bit
Distancia a Palabra n
3
3

Figura 1.7 Comportamiento de un cdigo corrector de fallos en un solo bit.
Como se puede apreciar, al producirse un solo error en la combinacin correcta (Palabra
n), las posibles palabras resultantes estn ms cerca de sta que de las dems, pudiendo ser
corregido el error. Por el contrario, si se produjeran ms de un error esto no ocurrira, por lo
que no se podra averiguar cual es la combinacin correcta.
La distancia mnima de un cdigo capaz de corregir errores debe ser superior a dos.
Como norma general, la distancia mnima de un cdigo para que permita corregir n errores,
debe ser al menos 2n + 1.
Para lograr este objetivo, es necesario aadir al cdigo de partida ms de un bit, por lo
que en la palabra resultante podremos distinguir entre bits de mensaje (que son los que
realmente llevan la informacin til) y bits de chequeo (que incorporan la informacin
necesaria para corregir los posibles errores). Estos bits de chequeo suelen ser, por lo general,
bits de paridad impar correspondientes a determinados subconjuntos de los bits de mensaje.
El nmero de bits de chequeo aadidos a la combinacin original (c), debe ser tal que se
cumpla la expresin:
2
c
m + c + 1
donde m es el nmero de bits de mensaje. Esto es necesario para que las diferentes
combinaciones de los bits de chequeo permitan indicar la presencia de un error en cualquiera
de los bits de la combinacin resultante, as como la ausencia de error.
Para que un cdigo pueda corregir un error, un fallo en un bit de mensaje debe producir
una contradiccin en ms de un bit de chequeo, mientras que un fallo en un bit de chequeo
slo debe producir una contradiccin en dicho bit (bits de chequeo independientes
explcitamente). De esto se deduce que cada bit de mensaje debe ser chequeado, al menos, por
dos bits de chequeo.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 17

Como ejemplo, en la Tabla 1.9 se representa un cdigo de este tipo, el cual consta de tres
bits de chequeo (C
1
, C
2
y C
4
) y cuatro bits de mensaje (M
3
, M
5
, M
6
y M
7
).

Dgito decimal C
1
C
2
M
3
C
4
M
5
M
6
M
7

0 0 0 0 0 0 0 0
1 1 1 0 1 0 0 1
2 0 1 0 1 0 1 0
3 1 0 0 0 0 1 1
4 1 0 0 1 1 0 0
5 0 1 0 0 1 0 1
6 1 1 0 0 1 1 0
7 0 0 0 1 1 1 1
8 1 1 1 0 0 0 0
9 0 0 1 1 0 0 1
Tabla 1.9 Ejemplo de cdigo corrector de errores en un solo bit.
Una vez que disponemos de un cdigo corrector, debemos obtener cules son los bits de
mensaje cuya paridad es almacenada por cada bit de chequeo. Para obtener esta informacin,
se comienza por considerar todas las palabras que posean un solo 1 en sus bits de mensaje, de
manera que todos los bits de chequeo que tomen el valor 1 en dichas combinaciones estarn
afectados por el bit de mensaje correspondiente. Por ejemplo, en la palabra 1 de la tabla
slo se encuentra a 1 el bit M
7
y se puede observar que todos los bits de chequeo tienen el
valor 1. Por lo tanto, todos ellos chequearn a dicho bit de mensaje. A continuacin, se
consideran las palabras que posean 2 unos en los bits de mensaje, de manera que los bits de
chequeo afectados por los bits iguales a 1, sern en este caso aquellos que posean un cero en
dichas combinaciones. Repitiendo el proceso las veces necesarias, en el ejemplo que nos
ocupa obtenemos las siguientes expresiones:
1 3 5 7
C = M M M
2 3 6 7
C = M M M
4 5 6 7
C = M M M
Para chequear si una combinacin dada es correcta o no, y en su caso corregirla, se
aplican las expresiones anteriores sobre los bits de mensaje de la misma, comparando los
valores obtenidos con los bits de chequeo de la propia combinacin. Si todos los valores
coinciden, la combinacin es correcta. Si se encuentra discrepancia entre los valores de un
solo bit de chequeo, el error se encuentra en dicho bit y no en los bits de mensaje. Por ltimo,
si existe discrepancia en varios de los bits de chequeo, el fallo se encuentra en el nico bit de
mensaje que es comn a todos ellos.
Por lo tanto, en el ejemplo que nos ocupa:
Si no se detectan discrepancias, la combinacin es correcta.
Si se detecta discrepancia en C
1
, el error est en C
1
.
Si se detecta discrepancia en C
2
, el error est en C
2
.
Si se detecta discrepancia en C
3
, el error est en C
3
.
Si se detectan discrepancias en C
1
y C
2
, el error est en M
3
.
Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 18

Si se detectan discrepancias en C
1
y C
4
, el error est en M
5
.
Si se detectan discrepancias en C
2
y C
4
, el error est en M
6
.
Si se detectan discrepancias en C
1
, C
2
y C
4
, el error est en M
7
.
1.4.4.1 Cdigos de Hamming
Son un tipo de cdigos correctores de errores capaces de corregir fallos en un solo bit. Se
obtienen aadiendo c bits adicionales a un cdigo de distancia mnima unidad de m bits, con
lo cual se obtiene un cdigo de m + c bits.
En el cdigo resultante se realizan c detecciones de paridad (sobre distintos grupos de bits
del mismo), cuyo resultado indicar la posicin del bit errneo y permitir su correccin. En
caso de no existir error, el resultado de todas las detecciones de paridad ser cero.
Como ejemplo de lo expuesto, se va a obtener un cdigo de Hamming a partir de uno
binario natural de 4 bits. El nmero de bits a aadir (c) ser en este caso 3 (2
3
4 + 3 + 1).
Como consecuencia de lo indicado anteriormente, se realizarn 3 detecciones de paridad (D
3
, D
2

y D
1
), cuyos resultados indicarn la situacin del bit errneo, en caso de que lo hubiera, segn la
Tabla 1.10.

D
3
D
2
D
1
Bit errneo
0 0 0 Ninguno
0 0 1 b
1

0 1 0 b
2

0 1 1 b
3

1 0 0 b
4

1 0 1 b
5

1 1 0 b
6

1 1 1 b
7

Tabla 1.10 Posicin del bit errneo.
En la tabla anterior podemos apreciar que la variable D
1
toma el valor 1 cuando existe un
error en los bits b
1
, b
3
, b
5
o b
7
. Si generamos el cdigo de tal forma que la combinacin
formada por estos cuatro bits tenga siempre paridad par, un error en cualquiera de ellos
convertira la paridad en impar, circunstancia que sera detectada mediante la funcin:

D
1
= b
1
b
3
b
5
b
7

Anlogamente, para D
2
y D
3
las expresiones respectivas seran:

D
2
= b
2
b
3
b
6
b
7


D
3
= b
4
b
5
b
6
b
7

Para lograr que el nmero de unos de las combinaciones b
7
b
5
b
3
b
1
, b
7
b
6
b
3
b
2
y b
7
b
6
b
5
b
4
sea siempre par en el cdigo generado, habr que asignar adecuadamente los valores a los tres
bits que se aaden al cdigo original. Como los bits b
1
, b
2
y b
4
solo aparecen en una expresin
cada uno, sern stos los que se aadan al cdigo. Los valores necesarios de los bits a aadir
pueden obtenerse fcilmente con ayuda de las siguientes expresiones.

Electrnica Digital (Curso 09-10) Tema 1. Introduccin a la electrnica digital

Manuel Pedro Carrasco 19

b
1
= b
3
b
5
b
7


b
2
= b
3
b
6
b
7


b
4
= b
5
b
6
b
7

De esta forma, los bits a generar tomarn el valor uno cuando la combinacin formada
por los tres bits restantes tenga paridad impar, y cero en caso contrario.
Una vez hallados los valores de los tres bits a aadir para todas las combinaciones del
cdigo original, con ayuda de las expresiones anteriores, representamos los mismos en los
lugares correspondientes, obteniendo el cdigo de Hamming de siete bits representado en la
Tabla 1.11.

Nmero decimal b
7
b
6
b
5
b
4
b
3
b
2
b
1
00 0 0 0 0 0 0 0
01 0 0 0 0 1 1 1
02 0 0 1 1 0 0 1
03 0 0 1 1 1 1 0
04 0 1 0 1 0 1 0
05 0 1 0 1 1 0 1
06 0 1 1 0 0 1 1
07 0 1 1 0 1 0 0
08 1 0 0 1 0 1 1
09 1 0 0 1 1 0 0
10 1 0 1 0 0 1 0
11 1 0 1 0 1 0 1
12 1 1 0 0 0 0 1
13 1 1 0 0 1 1 0
14 1 1 1 1 0 0 0
15 1 1 1 1 1 1 1
Tabla 1.11 Cdigo de Hamming resultante.

You might also like