parte iii. códigos

25
UNIVERSIDAD “FERMIN TORO” VICERRECTORADO ACADEMICO FACULTAD DE INGENIERIA CABUDARE EDO. LARA Códigos Circuitos Digitales. Sección: Ti-17 Abreu Gessica, 26.260.948 Castillo Andreina, 21.295.510 Gutiérrez Marly, 25.747.335 Ramos Froilán,23.849.723

Upload: gessica-abreu

Post on 19-Feb-2016

101 views

Category:

Documents


0 download

DESCRIPTION

Códigos.

TRANSCRIPT

Page 1: Parte III. Códigos

UNIVERSIDAD “FERMIN TORO”VICERRECTORADO ACADEMICO

FACULTAD DE INGENIERIACABUDARE EDO. LARA

Códigos

Circuitos Digitales.

Sección: Ti-17

Abreu Gessica, 26.260.948 Castillo Andreina, 21.295.510 Gutiérrez Marly, 25.747.335

Ramos Froilán,23.849.723 Vargas William, 23.570.968

2015

Parte III.

Page 2: Parte III. Códigos

CODIGOS

1. Código BCD (8421 – exceso 3)

Definición

Binary-Coded Decimal (BCD) o Decimal codificado en binario es un estándar para representar

números decimales en el sistema binario, en donde cada dígito decimal es codificado con una

secuencia de 4 bits.

Características

 Con esta codificación especial de los dígitos decimales en el sistema binario, se pueden

realizar operaciones aritméticas como suma, resta, multiplicación y división de números en

representación decimal.

Estos cálculos pueden realizarse sin perder la precisión ni tener las inexactitudes en que

normalmente se incurre con las conversiones de decimal a binario puro y de binario puro a

decimal.

 La conversión de los números decimales a BCD y viceversa es muy sencilla, pero los

cálculos en BCD se llevan más tiempo y son algo más complicados que con números

binarios puros. Esto se debe a que en algunos casos se requiere aplicar un factor de

corrección si la suma produce un desbordamiento o un símbolo que no pertenezca al

código.

Fundamentos

En BCD cada cifra que representa un dígito decimal (0, 1,...8 y 9) se representa con su equivalente

binario en cuatro bits (nibble o cuarteto) (esto es así porque es el número de bits necesario para

representar el nueve, el número más alto que se puede representar en BCD). BCD sólo se utilizan

10 de las 16 posibles combinaciones que se pueden formar con números de 4 bits, por lo que el

sistema pierde capacidad de representación, aunque se facilita la compresión de los números. Esto

es porque el BCD sólo se usa para representar cifras, no números en su totalidad. Esto quiere decir

que para números de más de una cifra hacen falta dos números BCD.

2

Page 3: Parte III. Códigos

El decimal codificado en binario es un código ponderado, puesto que cada dígito decimal puede

obtenerse a partir de su palabra Del código asignando un peso fijo a cada bit de palabra del código.

Los pesos para los bits BCD son 8, 4, 2 y 1, Y por esta razón el código se denomina en ocasiones

código BCD-8421.

Existe otro código denominado código de exceso 3, El cual no es un código ponderado, pero tiene

una relación aritmética con el código BCD: la palabra en este código es la correspondiente palabra

de código de BCD más el valor 0011 o 3. Además tienes la ventaja de ser un código auto

completado, es decir, se puede obtener la palabra del código para el complemento a nueve de

cualquier dígito complementando los bits individuales de la palabra en exceso 3.

Conversión de Decimal al código y del código a decimal.

En BCD cada cifra que representa un dígito decimal (0, 1,...8 y 9) se representa con su equivalente

binario en cuatro bits (nibble o cuarteto) (esto es así porque es el número de bits necesario para

representar el nueve, el número más alto que se puede representar en BCD). En la siguiente tabla se

muestran los códigos BCD más empleados:

Decimal Natural Exceso 30 0000 00111 0001 01002 0010 01013 0011 01104 0100 01115 0101 10006 0110 10017 0111 10108 1000 10119 1001 1100

Por lo que si se desea representar algún número decimal en código BCD, simplemente se sustituyen

cada uno de los dígitos decimales por su equivalente según la tabla (ya sea en código 8421 o exceso

3). Tomemos por ejemplo el número 127.

(127)10=(00010010 0111)BCD

3

Page 4: Parte III. Códigos

De igual forma, si se posee un numero codificado en BCD, por ejemplo 11010010001, se agrupan

cadenas de 4 bits o en nibble, y se reemplaza cada uno por si equivalente en decimal según el

código.

(01101001 0001)BCD=(691)10

Aplicaciones y Usos

El BCD sigue siendo ampliamente utilizado para almacenar datos, en aritmética binaria o

en electrónica.

En un circuito que maneja código BCD, los números se pueden mostrar fácilmente en

visualizadores de siete segmentos enviando cada cuarteto BCD a un visualizador.

La BIOS de un ordenador personal almacena generalmente la fecha y la hora en formato

BCD; probablemente por razones históricas se evitó la necesidad de su conversión en

ASCII.

2. Código Gray

Definición

El código binario reflejado o código Gray, nombrado así en honor del investigador Frank Gray, es

un sistema de numeración binario en el que dos valores sucesivos difieren solamente en uno de sus

dígitos.

Características

Es un código sin peso y no aritmético.

Puede tener cualquier Nº de bits.

Solo hay cambio en 1 bit entre 2 palabras contiguas.

Fundamento del código

Consideremos una rueda codificada en binario, la cual en cada cuadrante se controlan interruptores

mecánicos que ejecutan labores de control para cierto proceso como es la lectura de la posición de

la rueda.

4

Page 5: Parte III. Códigos

El problema con el código binario en base 2 es que con interruptores mecánicos, es realmente difícil

que todos los interruptores cambien al mismo tiempo. En la transición de los dos estados mostrados

arriba, hasta 5 interruptores cambian de sitio entre un estado y otro. En el lapso en el que los

interruptores están cambiando, se pueden presentar salidas de información espurias. Si las salidas

mencionadas alimentan un circuito secuencial, probablemente el sistema presentará un error en

entrada de datos.

El código gray resuelve este problema cambiando solamente un dígito a la vez, así que no existe

este problema. Así, con una rueda codificada en GRAY se observa en la siguiente figura.

5

Page 6: Parte III. Códigos

Aplicaciones y usos

El código Gray fue diseñado originalmente para prevenir señales ilegales (señales falsas o

viciadas en la representación) de los switches electromecánicos, y actualmente es usado

para facilitar la corrección de errores en los sistemas de comunicaciones, tales como

algunos sistemas de televisión por cable y la televisión digital terrestre.

En la actualidad, el código Gray se emplea como parte del algoritmo de diseño de los

mapas de Karnaugh, los cuales son, a su vez, utilizados como "herramienta de diseño" en la

implementación de circuitos combinacionales y circuitos secuenciales.

La vigencia del código Gray se debe a que un diseño digital eficiente requerirá transiciones

más simples y rápidas entre estados lógicos (0 ó 1), por ello es que se persisten en su uso, a

pesar de que los problemas de ruido y potencia se hayan reducido con la tecnología de

estado sólido de los circuitos integrados. Utilizando el código Gray es posible también

resolver el problema de las Torres de Hanói. Se puede incluso formar un ciclo hamiltoniano

o un hipercubo, en el que cada bit se puede ver como una dimensión. Debido a las

propiedades de distancia de Hamming que posee el código Gray, es usado en ocasiones en

algoritmos genéticos.

Conversión de decimal al código GRAY y de GRAY a decimal

Existen métodos de convertir cualquier número en sistema binario a código GRAY, y de igual

forma de decodificar un numero de formato GRAY a binario, por lo que para llevar un numero

decimal a GRAY es necesario la aplicación de aritmética para transformar los números decimales a

binario para codificarlos (o decodificarlos) posteriormente.

Para convertir de decimal a GRAY, por ejemplo 220, pasamos primero a binario:

(220)10=(11011100)2, por divisiones sucesivas o método distributivo (como se explico en la parte

2)

Luego para llevar un número de binario a GRAY se siguen los siguientes pasos:

El bit más significativo en el código GRAY es el mismo que el correspondiente del código

binario.

6

Page 7: Parte III. Códigos

De izquierda derecha, sumar cada par adyacente de los bits en código binario para

obtener el siguiente bit en código GRAY.

BINARIO 1 1 0 1 1 1 0 0

GRAY 1 0 1 1 0 0 1 0

Por lo que así, el número (220)10=(11011100)2 se codifica a (10110010)GRAY

Luego para llevar un número de binario a GRAY se siguen los siguientes pasos:

El bit más significativo en el código Binario es el mismo que el correspondiente del código

GRAY.

A cada bit del código binario generado se le suma el bit en código GRAY de la posición

adyacente.

Tomando el ejemplo anterior, (10100010)GRAY se desea decodificar y llevar a decimal.

GRAY 1 0 1 1 0 0 1 0

BINARIO 1 1 0 1 1 1 0 0

Luego, dicho número binario se convierte a decimal (mediante la suma ponderada del valor

posicional de cada digito binario, como se explicó en la parte 2):

(11011100)2=(220)10

Así se verifica el procedimiento para codificar o decodificar entre números decimales y código

GRAY.

7

Page 8: Parte III. Códigos

3. Código Hamming

Definición

El código de Hamming es un código detector y corrector de errores que lleva el nombre de su

inventor, Richard Hamming. En los datos codificados en Hamming se pueden detectar errores en un

bit y corregirlos, sin embargo no se distingue entre errores de dos bits y de un bit (para lo que se usa

Hamming extendido). Esto representa una mejora respecto a los códigos con bit de paridad, que

pueden detectar errores en sólo un bit, pero no pueden corregirlo.

Fundamento del código

Si se añaden junto al mensaje más bits detectores-correctores de error y si esos bits se pueden

ordenar de modo que diferentes bits de error producen diferentes resultados, entonces los bits

erróneos podrían ser identificados. En un conjunto de siete bits, hay sólo siete posibles errores de

bit, por lo que con tres bits de control de error se podría especificar, además de que ocurrió un error,

en qué bit fue.

Hamming estudió los esquemas de codificación existentes, incluido el de dos entre cinco, y

generalizó sus conclusiones. Para empezar, desarrolló una nomenclatura para describir el sistema,

incluyendo el número de los bits de datos y el de los bits detectores-correctores de error en un

bloque. Por ejemplo, la paridad incluye un solo bit para cualquier palabra de datos, así que las

palabras del Código ASCII que son de siete bits, Hamming las describía como un código (8.7), esto

es, un total de 8 bits de los cuales 7 son datos.

Hoy, el código de Hamming se refiere al (7.4) que Hamming introdujo en 1950. El código de

Hamming agrega tres bits adicionales de comprobación por cada cuatro bits de datos del mensaje.

El algoritmo de Hamming (7.4) puede corregir cualquier error de un solo bit, pero cuando hay

errores en más de un bit, la palabra transmitida se confunde con otra con error en un sólo bit, siendo

corregida, pero de forma incorrecta, es decir que la palabra que se corrige es otra distinta a la

original, y el mensaje final será incorrecto sin saberlo.

Para poder detectar (aunque sin corregirlos) errores de dos bits, se debe añadir un bit más, y el

código se llama Hamming extendido. 

8

Page 9: Parte III. Códigos

Características

Todos los bits cuya posición es potencia de dos se utilizan como bits de paridad (posiciones

1, 2, 4, 8, 16, 32, 64, etc.).

Los bits del resto de posiciones son utilizados como bits de datos (posiciones 3, 5, 6, 7, 9,

10, 11, 12, 13, 14, 15, 17, etc.).

Cada bit de paridad se obtiene calculando la paridad de alguno de los bits de datos.

Posee una distancia mínima de 3, es decir, tres representa la cantidad mínima de bits en que

cambia 2 palabras cualesquiera dentro del código. Esta característica es la que confiere al

código Hamming la posibilidad de detectar un bit errado y corregirlo.

Aplicaciones y usos

En un sistema de transmisión de datos, la información es muy vulnerable y propensa a tener

errores. Los métodos de detección de errores permiten conocer si hubo o no un error en la

cadena de datos recibido, pero no está en condiciones de corregir dichos errores. Cuando se

detecta un error por medio de un método de detección de errores, la manera de corregir la

información es que el receptor pida una retransmisión de la información.

Por medio del código de corrección de errores de Hamming, es posible no solo detectar,

sino también corregir los errores ocurridos sobre la cadena de información en el receptor.

Los códigos de Hamming de distancia 3 y 4 se usan para detectar y corregir errores en los

sistemas de memoria de las computadoras, especialmente en grandes computadores de tipo

mainframe donde los circuitos de memoria tienen que ver con la mayoría de las fallas del

sistema.

El código Hamming es de gran atractivo para palabras de memoria sumamente amplias,

puesto que el número requerido de bits de paridad aumenta lentamente con la amplitud de

la palabra en la memoria.

Procedimiento de conversión a binario y de binario al código.

Si se posee una palabra binaria que se desea codificar a Hamming, es necesario agregar bits de

paridad a la palabra en las posiciones de potencia 2n, donde n=0, 1, 2,… si se tiene una palabra de

9

Page 10: Parte III. Códigos

datos de 7 bits (por ejemplo), cada uno de estos se presentaría con una letra d. se agregan los bits de

paridad par (letras p):

(X ¿¿11 X10 X 9 P8 X7 X6 X5 P4 X3 P2 P1)HAMMING¿

Donde los bits palabra binaria a codificar se representan de la forma:

X11 X10 X9 X7 X6 X5 X3

Para obtener los valores de los bits de paridad (P8 , P4 , P2, P1) se realizan las siguientes

operaciones booleanas con los valores de los bits de datos:

P1=X3⨁ X5⨁ X7⨁ X9⨁ X11

P2=X3⨁ X6⨁ X7⨁ X10⨁ X11

P4=X5⨁ X6⨁ X7

P8=X9⨁ X10⨁ X11

Y luego dichos bits calculados se asignan y distribuyen como el esquema planteado por el código

Hamming.

Posteriormente, si se está trabajando con sistemas que emplean codificación Hamming, la palabra

recibida se realiza el siguiente estudio para saber si posee un bit errado.

E1=P1⨁ X 3⨁ X5⨁ X7⨁ X9⨁ X11

E2=P2⨁ X3⨁ X6⨁ X7⨁ X10⨁ X11

E4=P4⨁ X5⨁ X6⨁ X7

E8=P8⨁ X9⨁ X10⨁ X11

Donde (E8 E4 E2 E1)2 indica el valor de la posición (en binario) donde se encuentra el bit errado, al

cual solo se debe cambiar su valor para corregir la palabra codificada. Para la decodificación de una

palabra Hamming, por lo tanto, se requiere estudiar si existe algún bit errado, corregirlo (si no hay

error (E8 E4 E2 E1)2=0000) si lo hay, y posteriormente tomar simplemente los bits de datos

descartando los bits de paridad agregados o bits de redundancia.

10

Page 11: Parte III. Códigos

4. Código ASCII

Definición

ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código

Estándar Estadounidense para el Intercambio de Información), es un código de caracteres basado en

el alfabeto latino, tal como se usa en inglés moderno.

El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit

adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama

incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1, que es

una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos

al inglés, como el español.

Fundamento del código

Las computadoras solamente entienden números. El código ASCII es una representación numérica

de un carácter como ‘a’ o ‘@’. Como otros códigos de formato de representación de caracteres, el

ASCII es un método para una correspondencia entre cadenas de bits y una serie de símbolos

(alfanuméricos y otros), permitiendo de esta forma la comunicación entre dispositivos digitales así

como su procesado y almacenamiento. 

Características

ASCII es, en sentido estricto, un código de siete bits, lo que significa que usa cadenas de

bits representables con siete dígitos binarios (que van de 0 a 127 en base decimal) para

representar información de caracteres.

En la actualidad define códigos para 32 caracteres no imprimibles, de los cuales la mayoría

son caracteres de control que tienen efecto sobre cómo se procesa el texto, más otros 95

caracteres imprimibles que les siguen en la numeración (empezando por el carácter

espacio).

11

Page 12: Parte III. Códigos

Los dígitos del 0 al 9 se representan con sus valores prefijados con el valor 0011 en binario

(esto significa que la conversión BCD-ASCII es una simple cuestión de tomar cada unidad

BCD y prefijarla con 0011).

Las cadenas de bits de las letras minúsculas y mayúsculas sólo difieren en un bit,

simplificando de esta forma la conversión de uno a otro grupo.

Aplicaciones y usos

Casi todos los sistemas informáticos actuales utilizan el código ASCII o una extensión

compatible para representar textos y para el control de dispositivos que manejan texto como

el teclado.

El código ASCII se desarrolló en el ámbito de la telegrafía y se usó por primera vez

comercialmente como un código de tele-impresión impulsado por los servicios de datos de

Bell.

Algunos sistemas operativos como DOS, podían trabajar con ASCII, y los fabricantes de

computadoras personales incluyeron soporte para dichas páginas en su hardware. Los

estándares de ocho bits como ISO 8859 y Mac OS Roman fueron desarrollados como

verdaderas extensiones de ASCII, dejando los primeros 127 caracteres intactos y añadiendo

únicamente valores adicionales por encima de los 7-bits. Esto permitió la representación de

un abanico mayor de lenguajes, pero estos estándares continuaron sufriendo

incompatibilidades y limitaciones. Todavía hoy, ISO-8859-1 y su variante Windows-1252

(a veces llamada erróneamente ISO-8859-1) y el código ASCII original de 7 bits son los

códigos de carácter más comúnmente utilizados.

Procedimiento de conversión a binario y de binario al código.

Existen dos tipos de caracteres en el código ASCII: caracteres imprimibles y caracteres de control.

Cada uno de estos caracteres se encuentra codificados de forma estándar según normativas

establecidas por los entes responsables de estandarización y tratamiento de información

computacional. De tal forma, que simplemente se debe observar las tablas de codificación ASCII

para convertir de binario a caracteres o viceversa.

Caracteres imprimibles: El carácter 'espacio', designa al espacio entre palabras, y se

produce normalmente por la barra espaciadora de un teclado. Los códigos del 33 al 126 se

12

Page 13: Parte III. Códigos

conocen como caracteres imprimibles, y representan letras, dígitos, signos de puntuación y

varios símbolos. Dichos caracteres y su codificación se observa a continuación:

Binario Dec Hex carácter0010 0000 32 20 espacio 0010 0001 33 21 !0010 0010 34 22 "0010 0011 35 23 #0010 0100 36 24 $0010 0101 37 25 %0010 0110 38 26 &0010 0111 39 27 '0010 1000 40 28 (0010 1001 41 29 )0010 1010 42 2A *0010 1011 43 2B +0010 1100 44 2C ,0010 1101 45 2D -0010 1110 46 2E .0010 1111 47 2F /0011 0000 48 30 00011 0001 49 31 10011 0010 50 32 20011 0011 51 33 30011 0100 52 34 40011 0101 53 35 50011 0110 54 36 60011 0111 55 37 70011 1000 56 38 80011 1001 57 39 90011 1010 58 3A :0011 1011 59 3B ;0011 1100 60 3C <0011 1101 61 3D =0011 1110 62 3E >0011 1111 63 3F ?

  Binario Dec Hex carácter0100 0000 64 40 @0100 0001 65 41 A0100 0010 66 42 B0100 0011 67 43 C0100 0100 68 44 D0100 0101 69 45 E0100 0110 70 46 F0100 0111 71 47 G0100 1000 72 48 H0100 1001 73 49 I0100 1010 74 4A J0100 1011 75 4B K0100 1100 76 4C L0100 1101 77 4D M0100 1110 78 4E N0100 1111 79 4F O0101 0000 80 50 P0101 0001 81 51 Q0101 0010 82 52 R0101 0011 83 53 S0101 0100 84 54 T0101 0101 85 55 U0101 0110 86 56 V0101 0111 87 57 W0101 1000 88 58 X0101 1001 89 59 Y0101 1010 90 5A Z0101 1011 91 5B [0101 1100 92 5C \0101 1101 93 5D ]0101 1110 94 5E ^0101 1111 95 5F _

  Binario Dec

Hex carácter

0110 0000 96 60 `0110 0001 97 61 a0110 0010 98 62 b0110 0011 99 63 c0110 0100 100 64 d0110 0101 101 65 e0110 0110 102 66 f0110 0111 103 67 g0110 1000 104 68 h0110 1001 105 69 i0110 1010 106 6A j0110 1011 107 6B k0110 1100 108 6C l0110 1101 109 6D m0110 1110 110 6E n0110 1111 111 6F o0111 0000 112 70 p0111 0001 113 71 q0111 0010 114 72 r0111 0011 115 73 s0111 0100 116 74 t0111 0101 117 75 u0111 0110 118 76 v0111 0111 119 77 w0111 1000 120 78 x0111 1001 121 79 y0111 1010 122 7A z0111 1011 123 7B {0111 1100 124 7C |0111 1101 125 7D }0111 1110 126 7E ~

Caracteres de Control: El código ASCII reserva los primeros 32 códigos (numerados del 0

al 31 en decimal) para caracteres de control: códigos no pensados originalmente para

representar información imprimible, sino para controlar dispositivos (como impresoras) que

usaban ASCII. Por ejemplo, el carácter 10 representa la función "nueva línea" (line feed),

que hace que una impresora avance el papel, y el carácter 27 representa la tecla "escape"

que a menudo se encuentra en la esquina superior izquierda de los teclados comunes. El

código 127 (los siete bits a uno), otro carácter especial, equivale a "suprimir" ("delete"). Y

así sucesivamente, se encuentra un amplio listado de caracteres de control manejados por

sistemas informáticos actuales, como se observan en la siguiente tabla:

Binario Decimal Hex Abreviatura

Repr AT Nombre/Significado

0000 0000

0 00 NUL ␀ ^@ Carácter Nulo

13

Page 14: Parte III. Códigos

0000 0001

1 01 SOH ␁ ^A Inicio de Encabezado

0000 0010

2 02 STX ␂ ^B Inicio de Texto

0000 0011

3 03 ETX ␃ ^C Fin de Texto

0000 0100

4 04 EOT ␄ ^D Fin de Transmisión

0000 0101

5 05 ENQ ␅ ^E Consulta

0000 0110

6 06 ACK ␆ ^F Acuse de recibo

0000 0111

7 07 BEL ␇ ^G Timbre

0000 1000

8 08 BS ␈ ^H Retroceso

0000 1001

9 09 HT ␉ ^I Tabulación horizontal

0000 1010

10 0A LF ␊ ^J Salto de línea

0000 1011

11 0B VT ␋ ^K Tabulación Vertical

0000 1100

12 0C FF ␌ ^L De avance

0000 1101

13 0D CR ␍ ^M Retorno de carro

0000 1110

14 0E SO ␎ ^N Mayúsculas fuera

0000 1111

15 0F SI ␏ ^O En mayúsculas

0001 0000

16 10 DLE ␐ ^P Enlace de datos / Escape

0001 0001

17 11 DC1 ␑ ^Q Dispositivo de control 1 — oft. XON

0001 0010

18 12 DC2 ␒ ^R Dispositivo de control 2

0001 0011

19 13 DC3 ␓ ^S Dispositivo de control 3 — oft. XOFF

0001 0100

20 14 DC4 ␔ ^T Dispositivo de control 4

0001 0101

21 15 NAK ␕ ^U Confirmación negativa

0001 0110

22 16 SYN ␖ ^V Síncrono en espera

0001 0111

23 17 ETB ␗ ^W Fin de Transmisión del Bloque

0001 1000

24 18 CAN ␘ ^X Cancelar

0001 1001

25 19 EM ␙ ^Y Finalización del Medio

0001 1010

26 1A SUB ␚ ^Z Substituto

0001 1011

27 1B ESC ␛ ^[ or ESC Escape

0001 1100

28 1C FS ␜ ^\ Separador de fichero

0001 1101

29 1D GS ␝ ^] Separador de grupo

0001 1110

30 1E RS ␞ ^^ Separador de registro

0001 1111

31 1F US ␟ ^_ Separador de unidad

0111 1111

127 7F DEL ␡ ^?, Delete o Backspace Eliminar

14

Page 15: Parte III. Códigos

5. Código de Paridad Par e Impar

Definición

Los códigos de paridad se usan en telecomunicaciones para detectar, y en algunos casos corregir,

errores en la transmisión. Para ellos se añade en origen un bit extra llamado bit de paridad a los n

bits que forman el carácter original.

Fundamento del código

Este valor del bit de paridad se determina de forma que el número total de bits 1 a transmitir sea par

(código de paridad par) o impar (código de paridad impar).

Así, para el código de paridad par el número de unos contando el carácter original y el bit de

paridad tiene que ser par. Por lo tanto, el bit de paridad será un 0 si el número total de unos a

transmitir es par y un 1 para un número impar de unos.

Por el contrario, para el código de paridad impar el número de unos contando el carácter original y

el bit de paridad ha de ser impar. De esta forma, el bit de paridad será un 0 si el número total de

unos es impar y un 1 para un número par de unos.

Características

Posee una distancia mínima de 2.

Normalmente el bit de paridad se añade a la derecha del carácter original.

Este método, aunque resulta satisfactorio en general, puede detectar sólo un número impar

de errores de transmisión. Es decir, sólo es útil si los errores no cambian un número par de

bits a la vez, ya que un número par de errores no afecta a la paridad final de los datos.

Aplicaciones y usos

15

Page 16: Parte III. Códigos

Debido a su simplicidad, la paridad se utiliza en muchas aplicaciones de hardware cuando

una operación se puede repetir en caso de crisis o cuando simplemente detectar el error es

útil. Por ejemplo, los buses SCSI y PCI utilizan la paridad para detectar errores en la

transmisión, y muchos caches de instrucciones del microprocesador incluyen la protección

de la paridad. Dado que los datos I-caché es una copia de la memoria principal, que puede

ser tenida en cuenta y volver a descabellada si se comprueba que esté dañado.

En la transmisión de datos en serie, un formato común es 7 bits de datos, un bit de paridad

par, y uno o dos bits de parada. Este formato se adapta perfectamente a todos los caracteres

ASCII de 7 bits en una cómoda byte de 8 bits. Otros formatos son posibles; 8 bits de datos y

un bit de paridad pueden transmitir todos los valores de byte de 8 bits.

En contextos de comunicación en serie, se genera la paridad y se comprueba por lo general

por el hardware de interfaz y, en la recepción, el resultado a disposición de la CPU a través

de un bit de estado en un registro de hardware en el hardware de la interfaz. Recuperación

del error se realiza por lo general mediante la retransmisión de los datos, los detalles de los

cuales son generalmente tramitadas por el software.

Procedimiento de conversión a binario y de binario al código.

Un método muy simple, pero muy usado por su sencillez para detectar errores en transmisión de datos, consiste en añadir un bit de paridad a cada palabra o carácter del código original.

Tenemos el carácter original 0111001. Vemos que la trama a transmitir tiene un número par de unos (4 unos). Al añadir el bit de paridad obtendremos el siguiente carácter, que es el que se transmitirá a destino:

Si usamos paridad par, ya hay un número par de unos, por tanto se añade un 0, y transmitiremos 01110010.

Si usamos paridad impar, como hay un número par de unos, añadiremos otro 1 para conseguir un número impar, y transmitiremos 01110011.

Si se envía un dato y durante la transmisión se produce un único error, el destinatario puede detectarlo al comprobar la paridad en el destino. Usando los ejemplos anteriores, y alterando un solo bit de la trama transmitida, nos quedaría.

16

Page 17: Parte III. Códigos

Paridad par: se recibe 00110001 en vez de 00111001. En la comprobación, al contar el número de unos salen 3 (impar), por lo que se ha producido un error.

Paridad impar: se recibe 10110001 en vez de 10111001. En la comprobación, al contar el número de unos salen 4 (par), por lo que se ha producido un error.

Siguiendo los ejemplos anteriores, y alterando dos bits en la transmisión, veremos como el método de detección de errores falla:

Paridad par: se recibe 00110101 en vez de 00111001. Al comprobar el número de unos salen 4 (par), y no se detectan los errores.

Paridad impar: se recibe 10110101 en vez de 10111001. Al comprobar el número de unos salen 5 (impar), y no se detectan los errores.

Como ya se mencionó, el código de paridad ya sea par o impar permite detectar errores si el número

de bits errados en la palabra codificada es impar.

Bibliografía

Prezi (2013) Aplicaciones del código Hammnig y bit de paridad en sistemas [en línea]. Disponible

en: https://prezi.com/spv-oaygi-cc/aplicaciones-del-codigo-hamming-y-bit-de-paridad-en-

sistemas/ [consultado: 11/11/2015]

Wikipedia (2015). Decimal codificado en BCD [en línea]. Disponible en:

https://es.wikipedia.org/wiki/Decimal_codificado_en_binario [consultado: 11/11/2015]

Wikipedia (2015). Código Hamming [en línea]. Disponible en: https://es.wikipedia.org/wiki/C

%C3%B3digo_Hamming [consultado: 11/11/2015]

Wikipedia (2015). Distancia de Hamming [en línea]. Disponible en:

https://es.wikipedia.org/wiki/Distancia_de_Hamming [consultado: 11/11/2015]

Wikipedia (2015). Código GRAY [en línea]. Disponible en: https://es.wikipedia.org/wiki/C

%C3%B3digo_Gray [consultado: 11/11/2015]

17

Page 18: Parte III. Códigos

Wikipedia (2015). Código ASCII [en línea]. Disponible en: https://es.wikipedia.org/wiki/ASCII

[consultado: 11/11/2015]

18