100% encontró este documento útil (1 voto)
1K vistas36 páginas

Códigos Binarios y Detección de Error

Este documento describe varios códigos binarios utilizados en sistemas digitales para representar información discreta como números, letras y otros símbolos. Explica el Código Binario Decimal (BCD) que representa cada dígito decimal con 4 bits, el Código Gray que sólo varía un bit entre códigos adyacentes, y el código ASCII de 7 bits para 128 caracteres. También cubre sumas en BCD, detección de errores con bits de paridad y conversión entre códigos binarios, Gray y decimales.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
1K vistas36 páginas

Códigos Binarios y Detección de Error

Este documento describe varios códigos binarios utilizados en sistemas digitales para representar información discreta como números, letras y otros símbolos. Explica el Código Binario Decimal (BCD) que representa cada dígito decimal con 4 bits, el Código Gray que sólo varía un bit entre códigos adyacentes, y el código ASCII de 7 bits para 128 caracteres. También cubre sumas en BCD, detección de errores con bits de paridad y conversión entre códigos binarios, Gray y decimales.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CÓDIGOS BINARIOS

CÓDIGOS BINARIOS
Los sistemas digitales representan y manipulan no sólo números
binarios, sino también muchos otros elementos discretos de
información. Cualquier elemento discreto de información distinto dentro
de un grupo de cantidades se puede representar con un código binario.

Los códigos deben estar en binario porque las computadoras sólo


pueden almacenar unos y ceros. Debemos entender que los códigos
binario simplemente cambian los símbolos, no el significado de los
elementos de información que representan.

Entre los códigos más usados encontramos: Código BCD, Código Gray,
ASCII y Siete segmentos.
CÓDIGO DECIMAL BINARIO (BCD)
Aunque el sistema numérico binario es el más natural para una
computadora, casi todas las personas están acostumbradas al sistema
decimal. Una forma de relacionar esta diferencia es convertir los números
decimales a binario, realizar todos los cálculos aritméticos en binario y
luego convertir los resultados a decimal.

El código decimal binario (BCD, Binary Coded Decimal) es una forma de


expresar cada uno de los dígitos decimales con un código binario. Código
decimal binario significa que cada dígito decimal, de 0 hasta 9, se
representa mediante un código binario de cuatro bits.
Códigos no válidos: Es sabido
que, con cuatro dígitos, se
pueden representar dieciséis
números (desde 0000 hasta
1111), pero en el código BCD,
sólo se usan diez de ellos. Las
seis combinaciones que no se
emplean (1010, 1011, 1100,
1101, 1110 y 1111) no son
válidas en el código BCD.
Para expresar cualquier número decimal en BCD, simplemente
reemplace cada dígito decimal por el apropiado código de 4 bits.
Igualmente, para determinar el número decimal a partir del código BCD
se comienza por el bit mas a la derecha y se separa el código en grupos
de 4 bits y se representa por su decimal.

Tenga en cuenta que un número decimal puede representarse en


código BCD o en binario directo. Un número binario directo toma el
numero decimal completo y lo representa en binario, el código BCD
convierte cada dígito decimal en binario de manera individual. Por
ejemplo, consideremos el numero decimal 185 y expresémoslo en
código BCD y en su correspondiente binario:
Es importante entender que los números BCD son números decimales,
no binarios, aunque se representen con bits. La única diferencia entre
un número decimal y un BCD es que los decimales se escriben con los
símbolos 0, 1, 2, …, 9 y los números BCD usan el código binario 0000,
0001, 0010, …, 1001.

Ejemplo: Convertir a BCD los siguientes números decimales: a) 35; b)


98; c) 170; d) 2469
SUMA EN BCD
BCD es un código numérico y puede utilizarse en operaciones aritméticas.
La suma es la más importante de estas operaciones, ya que las otras tres
operaciones (sustracción, multiplicación y división) se pueden llevar a cabo
utilizando la suma. El procedimiento para sumar dos números BCD es:

Paso 1. Sumar los dos números BCD utilizando las reglas de la suma binaria,
antes vistas.
Paso 2. Si una suma de 4 bits es igual o menor que 9, es un número BCD
válido.
Paso 3. Si una suma de 4 bits es mayor que 9, o si genera un acarreo en el
grupo de 4 bits, el resultado no es válido. En este caso, se suma 6 (0110) al
grupo de 4 bits para saltar así los seis estados no válidos y pasar al código
BCD. Si se genera un acarreo al sumar 6, éste se suma al grupo de 4 bits
siguiente.
Consideremos estas tres sumas BCD:

Resultado de suma válido Como la suma es mayor


porque es igual o menor a a 9, se debe sumar 6 La suma binaria
9 (0110). Esta suma genera produce un acarreo.
un acarreo Bajo esta condición
también es
necesario sumar 6
(011).
La suma de dos números BCD de n dígitos sin signo se efectúa siguiendo el
mismo procedimiento. Consideremos la suma de 184+576=760 en BCD:

El primer par de dígitos BCD (los menos significativos) produce una suma de dígitos BCD de
0000 y un acarreo para el siguiente par de dígitos. El segundo par de dígitos BCD más el
acarreo anterior produce una suma de dígitos de 0110 y un acarreo para el siguiente par
de dígitos. El tercer par, más el acarreo, produce una suma binaria de 0111 que no requiere
corrección.
CÓDIGO GRAY
El código Gray es un código sin pesos posicionales y no aritmético. La
característica más importante del código Gray es que sólo varía un bit de un
código al siguiente. Esta propiedad es importante en muchas aplicaciones,
tales como los codificadores de eje de posición, en los que la susceptibilidad
de error aumenta con el número de cambios de bit entre números
adyacentes dentro de una secuencia.

Como en los números binarios, el código Gray puede tener cualquier


número de bits, a diferencia del código BCD que solo se utilizan 4 bits.
La siguiente tabla presenta el código Gray de cuatro bits para los números
decimales de 0 a 15. Como referencia se muestran también en la tabla los
números binarios.
Conversión de código binario a código Gray

Las reglas para convertir un número binario en un número en código Gray


son:
1. El bit más significativo (el que está más a la izquierda, MSB) en el
código Gray es el mismo que el correspondiente MSB del número
binario.
2. Yendo de izquierda a derecha, sumar cada par adyacente de los bits
en código binario para obtener el siguiente bit en código Gray. Los
acarreos deben descartarse.

Por ejemplo, la conversión del número binario 10110 a código Gray se


hace del siguiente modo:
Por lo tanto el equivalente código Gray del numero binario 10110, es 11101.
Conversión de código Gray a Binario

Para convertir de código Gray a binario, se utiliza un método similar, pero


con algunas diferencias. Se aplican las siguientes reglas:

1. El bit más significativo (bit más a la izquierda) en el código binario es el


mismo que el correspondiente bit en código Gray.
2. A cada bit del código binario generado se le suma el bit en código Gray
de la siguiente posición adyacente. Los acarreos se descartan.

Por ejemplo, la conversión del número en código Gray 11011 a binario es


como sigue:
Por lo tanto el equivalente numero binario del código Gray 11011, es 10010.
CÓDIGO DE CARACTERES ASCII
Para la comunicación, no sólo se necesitan números, sino también letras y
otros símbolos. En sentido estricto, los códigos alfanuméricos son códigos
que representan números y caracteres alfabéticos (letras).

El American Standard Code for Information Interchange (ASCII, código


estándar americano para el intercambio de información) es un código
alfanumérico universalmente aceptado, que se usa en la mayoría de las
computadoras y otros equipos electrónicos.

El código ASCII dispone de 128 caracteres que se representan mediante un


código binario de 7 bits. Realmente, el código ASCII puede considerarse
como un código de 8 bits en el que el MSB siempre es 0.
Los primeros treinta y dos códigos de la tabla ASCII representan los
caracteres de control. Estos se utilizan para permitir a dispositivos, tales
como una computadora o una impresora, que se comuniquen entre sí
cuando transfieren información y datos.

Los demás caracteres son símbolos gráficos que pueden imprimirse o


mostrarse en pantalla, e incluyen las letras del alfabeto (mayúsculas y
minúsculas), los diez dígitos decimales, los signos de puntuación y otros
símbolos comúnmente utilizados.
DETECCIÓN DE ERRORES Y CÓDIGOS DE
CORRECIÓN
Necesidad del tratamiento de errores

En informática (entre varios ordenadores o en el interior de ellos) la


información circula entre diferentes dispositivos y reposa en ciertos
dispositivos. En la comunicación entre ellos se pueden presentar
posibles errores debido a:

• Ruidos en las comunicaciones


• Defectos en las superficies de los discos, etc.

Los errores consisten en la modificación de la información desde que se


emite (o almacena) hasta que se recibe (o se recupera). Estos errores se
pueden dar en el cambio de valor de algunos bits (0 ⇔1)
DETECCIÓN DE ERRORES Y CÓDIGOS DE
CORRECIÓN

Cuando se desea detectar errores en la comunicación y en el


procesamiento de datos, a veces se añade un bit al grupo de bits que
contienen el mensaje (este mensaje puede estar en algún código BCD,
ASCII, etc), este bit se llama bit de paridad. El bit de paridad es un bit
adicional que se incluye en un mensaje de modo que el número total de
unos sea par o impar.

Un determinado sistema puede funcionar con paridad par o impar, pero


no con ambas. Por ejemplo, si un sistema trabaja con paridad par, una
comprobación que se realice en cada grupo de bits recibidos tiene que
asegurar que el número total de 1s en ese grupo es par. Si hay un
número impar de 1s, quiere decir que se ha producido un error.
La Tabla enumera los bits de paridad de cada número BCD, tanto en el
caso de paridad par como de paridad impar. El bit de paridad para
cada número BCD se indica en la columna P.

El código BCD con bits de paridad

El bit de paridad se puede añadir


al principio o al final del código,
dependiendo del diseño del
sistema.

Observe que el número total de


1s, incluyendo el bit de paridad,
siempre es par para paridad par,
y siempre es impar para paridad
impar.
Detección de un error

El bit de paridad ayuda a detectar errores durante la transmisión de


información de un lugar a otro. Cuando se realiza una transmisión entre
dos sistemas, se debe poner de acuerdo si la transmisión se realiza con
paridad par o impar, tanto para el transmisor como para el receptor.

Ejemplo: Un sistema de paridad impar recibe los siguientes grupos de códigos:


10110, 11010, 110011, 110101110100 y 1100010101010. Determinar qué grupos,
si hay alguno, tienen error.

Solución Puesto que se requiere paridad impar, cualquier grupo con un número
par de 1s es incorrecto. Los siguientes grupos contienen error:

110011 y 1100010101010
El código Hamming de corrección de errores

Un único bit de paridad permite detectar errores de un único bit en una


palabra de código. Un único bit de paridad puede indicar si existe un error
en un determinado grupo de bits. Para corregir un error detectado, se
necesita más información, ya que hay que identificar la posición del bit
erróneo antes de poder
corregirlo.

Debe incluirse más de un bit de paridad en un grupo de bits para poder


corregir el error detectado.

El código Hamming proporciona un método de corrección de un único bit


erróneo.
A continuación se estudia la construcción de un código Hamming de 7
bits para corregir un único error.

Número de bits de paridad. Si el número de bits de datos se designa


por d, entonces el número de bits de paridad, p, se determina mediante
la siguiente relación:

Por ejemplo, si tenemos cuatro bits de datos (d), entonces p se calcula


por el método de prueba y error usando la relación anteriormente
mencionada. Sea p = 2. Entonces,

Puesto que 2𝑝 tiene


que ser igual o mayor
y que 𝑑 + 𝑝 + 1 , la
relación no se
satisface.
La escogencia de p debe cumplir la relación, por lo que probamos de
nuevo con p = 3. Luego,

Este valor de p satisface la relación 2𝑝 ≥ 𝑑 + 𝑝 + 1, por lo que se


necesitan tres bits de paridad para poder corregir un único error en
cuatro bits de datos.

Ahora el procedimiento consiste en crear el código Hamming, por lo


que es necesario saber ubicar los bits de paridad y de datos dentro de
dicho código.
Colocación de los bits de paridad en el código. Ahora sabemos cuál es
el número necesario de bits de paridad en nuestro ejemplo, debemos
colocar correctamente los bits dentro del código.

En este ejemplo, el código está formado por cuatro bits de datos y tres
bits de paridad. El bit más a la izquierda es el bit 1, el siguiente bit es el
bit 2, y así sucesivamente, como se muestra a continuación:

bit 1, bit 2, bit 3, bit 4, bit 5, bit 6, bit 7

Los bits de paridad se sitúan en las posiciones que se han numerado


haciéndolas corresponder con las potencias de dos en sentido
ascendente (1, 2, 4, 8, . . . ), del modo siguiente:

𝑃1 𝑃2 𝐷1 𝑃3 𝐷3 Los bits de
𝐷2 𝐷4
paridad deben
1 2 4 tener estas
posiciones
Asignación de los valores de los bits de paridad. Para terminar de
armar el código Hamming, hay que asignar apropiadamente un valor
de 1 o de 0 a cada uno de los bits de paridad. Puesto que cada bit de
paridad proporciona una comprobación sobre los restantes bits del
código total, tenemos que conocer el valor de dichos otros bits par
asignar el valor del bit de paridad. Para hallar los valores de los bits,
primero expresamos en binario el número correspondiente a cada
posición de bit; es decir, escribimos el número binario
correspondiente a cada número decimal de posición, como se
muestra en la Tabla:
Observe que el número binario de posición del bit de paridad P1 tiene un 1
como su dígito más a la derecha. Este bit de paridad comprueba las
posiciones de todos los bits, incluyéndose a sí mismo, que tienen 1s en la
misma posición en el correspondiente número de posición en binario. Por
tanto, el bit de paridad P1 comprueba las posiciones de bits 1, 3, 5 y 7.

El número de posición en binario para el bit de paridad P2 tiene un 1 en su


posición intermedia. Este bit comprueba entonces todas las posiciones de
bit, incluyéndose a sí mismo, que tienen un 1 en esa misma posición. Por
tanto, el bit de paridad P2 comprueba las posiciones de bit 2, 3, 6 y 7.

El número de posición en binario para el bit de paridad P3 tiene un 1 como


su bit más a la izquierda. Este bit comprueba entonces todas las posiciones
de bit, incluyéndose a sí mismo, que tienen un 1 en esa misma posición. Por
tanto, el bit de paridad P3 comprueba las posiciones de bit 4, 5, 6 y 7.
En cada uno de los casos, se asigna un valor al bit de paridad de
modo que la cantidad de 1s en el conjunto de bits que se desea
comprobar sea impar o par, dependiendo de lo que se haya
especificado.

Ejemplo: Determinar el código Hamming para el número BCD 1001


(bits de datos), utilizando paridad par:

Solución:

Del ejemplo conocemos la cantidad de bits de datos:

𝑑=4
El Código Hamming es 0011001 que contiene 7 bits, 4 bits de datos y 3 bits
de paridad.
Cómo detectar y corregir un error con el código Hamming

Como ya conoce el método de construcción de un código de corrección


de errores como el Hamming, ahora el propósito es emplearlo para
localizar y corregir un error. Cada uno de los bits de paridad junto con
su correspondiente grupo de bits de datos, debe comprobarse de
acuerdo con la paridad que se vaya a utilizar.

Si en una palabra de código hay tres bits de paridad, entonces se


realizan tres comprobaciones de paridad. Si hay cuatro bits de paridad,
debe realizarse cuatro comprobaciones, y así sucesivamente. Cada
comprobación de paridad dará un resultado bueno o malo. El resultado
total de todas las comprobaciones de paridad indica el bit, si existe, en
el que se encuentra el error de la siguiente manera:
Paso 1. Comience con el grupo comprobado por P1.

Paso 2. Compruebe si el grupo tiene la paridad correcta. Un 0


representa que la comprobación de paridad es correcta y un 1 que es
incorrecta.

Paso3. Repita el paso 2 para cada grupo de paridad.

Paso 4. El número binario formado por los resultados de todas las


comprobaciones de paridad indica la posición del bit del código que es
erróneo. Es el código de posición de error. La primera comprobación
de paridad genera el bit menos significativo (LSB). Si todas las
comprobaciones son correctas, no habrá error.
Ejemplo: Suponga que se transmite la palabra código del Ejemplo
anterior (0011001) y que se recibe 0010001. El receptor no “sabe” lo
que se ha transmitido y debe calcular las paridades apropiadas para
determinar si el código es correcto. Indique cualquier error que se haya
producido en la transmisión si se utiliza paridad par.

Solución

En primer lugar, se construye una tabla de posiciones de bits, con el


código recibido:
REFERENCIAS
• Fundamentos de sistemas digitales Thomas L. Floyd, 9
ed. Capitulo 2

• Diseño Digital Morris mano, 3 ed. Capitulo 1

Common questions

Con tecnología de IA

The Hamming code is an error correction code that allows for the detection and correction of single-bit errors within a block of data. It uses extra bits, called parity bits, strategically placed to verify the accuracy of the associated data bits . The number of parity bits p for d data bits is determined such that 2^p is greater than or equal to d + p + 1. This ensures there are enough parity bits to cover the data bits and provide adequate error correction . In practice, the parity bits are placed in positions corresponding to powers of two (e.g., 1, 2, 4, ...) and each bit checks a specific pattern of data bits. The strategic placement and value assignment of these bits allow the Hamming code to not only detect but also locate and correct a single erroneous bit through a process called syndrome decoding, where parity checks indicate which bit has been erroneously flipped .

In the Hamming code, parity bits are strategically positioned at positions corresponding to powers of two (1, 2, 4, etc.) within the codeword to ensure optimal error detection and correction. This placement is critical because each parity bit is responsible for checking a unique set of bit positions, ensuring that any single-bit error can be detected and located . Specifically, each parity bit covers all positions whose binary representation shares a '1' in that parity bit's position. For instance, the first parity bit (P1) checks all bits positioned at 1, 3, 5, 7, etc., because these positions have '1' in the least significant bit of their binary form . This logic ensures every data bit is under the supervision of multiple parity bits, providing comprehensive coverage for single-error detection and correction. The strategic nature of these placements allows calculating a syndrome that identifies not just the presence of an error, but its exact location within the codeword .

Hamming codes are highly efficient for both error detection and correction in digital communication systems, primarily equipped to handle single-bit errors. With its unique arrangement of parity bits, Hamming code can detect and accurately correct a single error within a block of bits. It achieves this by using multiple check bits placed strategically among the data bits, which continually assess data integrity during transmission . When data with a possible error is received, the Hamming algorithm calculates parity checks. If a check fails, a syndrome is generated, which indicates precisely where the error occurred, allowing for its correction. This capability is particularly valuable in environments where transmission noise typically results in single-bit errors, ensuring data integrity and reducing the need for retransmissions . However, it cannot correct errors affecting multiple bits, which requires more complex error-correcting codes like Reed–Solomon codes suited for burst errors .

ASCII is primarily used in digital systems for representing alphanumeric characters, combining letters, numbers, and other symbols in a standardised binary form for communication and display. ASCII uses 7 bits to represent 128 different characters, facilitating universal data exchange across computers and electronic devices. The first 32 codes are control characters, which manage text and device communication, while the remaining codes represent printable characters, such as alphabet letters and common symbols .

To convert from binary to Gray code, you follow two main rules: First, the most significant bit (MSB) of the Gray code is the same as the MSB of the binary number. Second, for the remaining bits, you calculate each Gray bit by summing each pair of adjacent bits in the binary code from left to right. You discard any carries. For example, converting the binary number 10110 to Gray code results in 11101 .

To correct an error in a Hamming code, follow these steps: First, for each parity bit, check if the portion of the code it covers maintains the defined parity (even or odd). If a parity check fails, note down a binary 1; if it passes, note down a 0. These binary results collectively form a position number indicating the erroneous bit. Fix the error by inverting the bit at that position. This method only works if there's a single-bit error, as the parity combinations pinpoint its location .

To perform a BCD addition, you follow these steps: First, sum the two BCD numbers using the binary addition rules. If the sum of a group of 4 bits is 9 or less, the result is valid and no further action is needed. However, if the sum is greater than 9 or generates a carry, the result is invalid. In such a case, you need to add 6 (0110) to the group of 4 bits to skip the six invalid states and convert it to a valid BCD. If adding 6 causes a carry, this carry is added to the next group of four bits .

For choosing the number of parity bits, p, in a Hamming code used for error correction, the condition 2^p ≥ d + p + 1 must be satisfied, where d is the number of data bits. This relationship ensures there are enough bits to provide distinct outputs for detecting and correcting single-bit errors in the code. For instance, with four data bits, three parity bits are needed, hence satisfying 2^3 = 8 ≥ 4 + 3 + 1 = 8 .

The Binary Coded Decimal (BCD) system is a method of representing each digit of a decimal number with a separate binary code of four bits, allowing decimal numbers to be expressed in a format that aligns more naturally with human notation but is also compatible with binary storage in computers. In BCD, only ten out of the possible sixteen four-bit combinations are used, corresponding to the decimal digits 0 through 9, while combinations 1010 to 1111 are invalid . Conversely, direct binary representation involves converting the entire decimal number into binary as a whole, representing it with as few binary digits as necessary. This typically results in a more compact representation than BCD because it does not use fixed-length binary codes for each digit. This distinction is important in digital arithmetic, where BCD can simplify certain decimal-aligned operations, despite being less space-efficient compared to direct binary .

A parity bit functions in error detection by ensuring that the total number of 1s in a data set is either even (even parity) or odd (odd parity), depending on the system used. During transmission, the sending system computes the parity bit to achieve the desired parity. When received, the receiving system checks if the parity matches. If the number of 1s does not align with the expected parity—odd or even—it indicates likely errors during transmission .

También podría gustarte