Download - 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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Wikipedia (2015). Código ASCII [en línea]. Disponible en: https://es.wikipedia.org/wiki/ASCII
[consultado: 11/11/2015]
18