1 guia 1er trimestre tce

20
1 TÉCNICAS DIGITALES En una determinada etapa de la informática coexistieron dos sistemas de trabajo, el analógico y el digital. “Un sistema es analógico“ cuando sus variables toman valores continuos ; por ejemplo : si medimos la diferencia de potencial en un potenciómetro moviendo su cuerpo móvil, intervendrán todos los estados intermedios de tensión. V p V B V B V V p posición del cursor V A V A móvil En la gráfica vemos que la tensión varia linealmente y en forma proporcional al espacio recorrido por el cuerpo móvil. “Un sistema es digital cuando sus variables toman valores discretos sin pasar por estados intermedios por ejemplo: en un potenciómetro por pasos, el brazo móvil va conectando (a saltos) los distintos valores de resistencia. V 4 V V 4 V 3 V 3 V 2 V 2 V 1 V p V 1 posición V 0 V 0 del cursor Móvil En la actualidad se dispone de computadoras digitales para comandar sistemas analógicos, de allí viene la necesidad incluir circuitos llamados interfaces o convertidores que traducen las señales digitales en analógicas o viceversa. --------------------------- Convertidor D/A En su salida se obtiene una señal analógica proporcional a la magnitud (digital) ingresada en la entrada. ------------------------- Convertidor A/D En su salida se obtiene una señal digital proporcional a la magnitud (analógica) de entrada .

Upload: dario-iglesias

Post on 09-Jul-2016

217 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 1 Guia 1er Trimestre Tce

1

TÉCNICAS DIGITALES En una determinada etapa de la informática coexistieron dos sistemas de trabajo, el analógico y el digital. “Un sistema es analógico“ cuando sus variables toman valores continuos ; por ejemplo : si medimos la diferencia de potencial en un potenciómetro moviendo su cuerpo móvil, intervendrán todos los estados intermedios de tensión. Vp VB VB V Vp posición del cursor VA VA móvil En la gráfica vemos que la tensión varia linealmente y en forma proporcional al espacio recorrido por el cuerpo móvil. “Un sistema es digital cuando sus variables toman valores discretos sin pasar por estados intermedios por ejemplo: en un potenciómetro por pasos, el brazo móvil va conectando (a saltos) los distintos valores de resistencia. V4 V V4 V3 V3 V2 V2 V1 Vp V1 posición V0 V0 del cursor Móvil En la actualidad se dispone de computadoras digitales para comandar sistemas analógicos, de allí viene la necesidad incluir circuitos llamados interfaces o convertidores que traducen las señales digitales en analógicas o viceversa. --------------------------- Convertidor D/A En su salida se obtiene una señal analógica proporcional a la magnitud (digital) ingresada en la entrada. ------------------------- Convertidor A/D En su salida se obtiene una señal digital proporcional a la magnitud (analógica) de entrada .

Page 2: 1 Guia 1er Trimestre Tce

2

Sistemas numéricos Son conjuntos fijos de símbolos donde cada elemento tiene un peso (valor) que varia según sea su posición en el sistema; algunos de los más utilizados son: 1) Decimal, 2)Octal , 3)Hexadecimal , 4)Binario. 1) Sistema numérico Decimal: Está formado por diez símbolos (0,1,2,3,..,9) que combinados según un criterio posicional permite la formación de números decimales; también se lo llama en base 10,debido a que sus pesos son potencias de 10 (100 = 1 = unidad ; 101 = 10 = decena ; 102 = 100 = centena ) por ejemplo : para representar el No 56710 Coeficiente peso 5 x 102 (centenas) = 500 6 x 101 (decenas) = + 60 7 x 100 (unidad) = 7 56710 2) Sistema numérico Octal :Tiene como base el No8 y esta formado por ocho símbolos (0, 1, 2 , 3.........7) 3)Sistema numérico Hexadecimal :Tiene como base el No 16 ,es alfanumérico y utiliza 16 símbolos (desde el 0 al 9 son números , luego comienza con letras hasta la “F” , para volver a los números y seguir así sucesivamente.

0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AFB0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BFC0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CFD0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DFE0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EFF0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

100 101 102 103 104 105 106 107 108 109 10A 10B 10C 10D 10E 10F

Page 3: 1 Guia 1er Trimestre Tce

3

4) Sistema numérico binario : Se lo llama en base 2 pues el peso de cada cifra es una potencia de dos ;utiliza solo dos símbolos “1” y “0” llamados bits (binary dígit) y es la unidad elemental de información; al conjunto de 8 bits se le llama byte. Se denomina “ bit más significativo MSB” (Most significative bit) al de mayor peso que es el del extremo izquierdo de una combinación de símbolos y “bit menos significativo LSB” (Least significative bit) al del extremo derecho.

TABLA VERDAD

23 22 21 20 (8) (4) (2) (1)

NÚMEROS

DECIMALES

0 0 0 0 0+0+0+0 = 0

0 0 0 1 0+0+0+1 = 1

0 0 1 0 0+0+2+0 = 2

0 0 1 1 0+0+2+1 = 3

0 1 0 0 0+4+0+0 = 4

0 1 0 1 0+4+0+1 = 5

0 1 1 0 0+4+2+0 = 6

0 1 1 1 0+4+2+1 = 7

1 0 0 0 8+0+0+0 = 8

1 0 0 1 8+0+0+1 = 9

Page 4: 1 Guia 1er Trimestre Tce

4

Tabla de conversión de sistemas numéricos Decimal Octal Hexadecimal Binario

0 0 0 0000 1 1 1 0001 2 2 2 0010 3 3 3 0011 4 4 4 0100 5 5 5 0101 6 6 6 0110 7 7 7 0111 8 10 8 1000 9 11 9 1001

10 12 A 1010 11 13 B 1011 12 14 C 1100 13 15 D 1101 14 16 E 1110 15 17 F 1111 16 20 10 10000 17 21 11 10001 18 22 12 10010 19 23 13 10011 20 24 14 10100 21 25 15 10101 22 26 16 10110 23 27 17 10111

Vemos que para mas de 16 combinaciones hay que colocar un bit más. ------------------- Conversión de cualquier sistema al decimal Un número puede expresarse en sistema decimal como: la suma de los productos de cada una de sus cifras, por sus respectivos pesos por ejemplo: 56710 = 5.102 + 6.101 + 7. 100 = 56710 Y si además tienen parte fraccionaria debemos seguir la serie así: 1 100,102 = 1.22 + 0.21 + 0.20 + 1.2-1 + 0.2-2 = 4 + ---- = 4 + 0.5 = 4,510 21

Ejercitación: 1)108 = 1.81 = 810 2)1016 = 1.161 = 1610

Page 5: 1 Guia 1er Trimestre Tce

5

3)5368 = 5.82 + 3.81 + 6.80 = 320+24+6 = 35010 4)A3B16 = 10.162 + 3.162 + 11.160 = 261910 1 1 1 5)0,110012 = 1.2-1 +1.2-2 + 1.2-5 = ----- +-----+----- = 0,5+0,25+0,03125 =0,7812510 21 22 25 1 6) 27,18 = 2.81 + 7.80 + 1.8-1 = 16+7+---- = 16+7+0,125 = 23,12510 81 5 2 7) 0,528 = 5. 8-1 + 2.8-2 = ---- + ---- = 0,625+0,033125 = 0,6562510 81 82 1 8) 100,116 = 1.162 + 1.16-1 = 256+------ = 256+0,0625 = 256,062510 161 10 9) 0,A16 = 10.16-1 = -------- = 0,62510 161 Caso particular (muy utilizado) : cuando queremos convertir un No binario entero y pequeño a decimal podemos haremos así: 1) Escribir (sobre o debajo) del número a convertir de derecha a izquierda los pesos de las posiciones binarias (8-4-2-1) . 2) Luego sumando los valores de los pesos donde hay un estado lleno obtenemos el número decimal requerido. Por ejemplo para pasar el No 1 0 1 1 02

= 16+4+2 = 2210

16 8 4 2 1 Ejercitación: 10)1 1 1 1 0 12 = 1.25 + 1.24 + 1.23 + 1.22 + 1.20 = 32+16+8+4+1 = 611

32 16 8 4 2 1 = 32+16+8+4+1= 61 11)1 0 1 12 = 1.23 + 1.21 + 1.20 = 8+2+1 = 1110 8 4 2 1 = 8+2+1 = 11 12)1 0 0 0 0 02 = 3210 32 16 8 4 2 1 13)1 1 1 1 0 12 = 32+16+8+4+1 = 6110 32 16 8 4 2 1

Page 6: 1 Guia 1er Trimestre Tce

6

Conversión del sistema decimal a cualquier otro: En estos casos se divide sucesivamente el número a convertir respecto al valor de la base a la que se lo quiere convertir (hasta llegar a la mínima expresión), luego leyendo primero, el resultado de la última división y los restos de las demás(de derecha a izquierda) obtenemos el número deseado. Por ejemplo : si queremos convertir el No 1410 → Bin haremos: 14 2 0 7 2 1 3 2 Entonces 1410 = 11102 1 1 Cuando los números, además contienen fracciones, tratamos la parte entera de la forma ya vista y la decimal , multiplicando la fracción del número por la base a la que se quiere convertir ; para obtener mayor cantidad de decimales multiplicamos sucesivamente, (solamente) la parte fraccionaria que queda como resultado del producto, nuevamente por la misma base . Para obtener los decimales del número que buscamos debemos leer desde arriba hacia abajo. Ejemplo:127,2510 → Bin Parte entera Parte decimal 0,25 . 2 = 0 , 50 127 2 0,50 . 2 = 1 , 00 07 63 2 1 03 31 2 0,00 . 2 = 0 , 00 1 11 15 2 1 1 7 2 1 3 2 1 1 12710 = 11111112 0,2510 = 0,0102 Entonces 127,2510 = 1111111,0102 Ejercitación: 14) 1,83110 → Bin 0,831 .2 = 1 ,662 0,662 .2 = 1 ,324 110 = 12 0,324 .2 = 0 ,648 0,648 .2 = 1 ,184 1,83110 = 1,11012

Page 7: 1 Guia 1er Trimestre Tce

7

Hasta ahora resolvimos los ejercicios aplicando la teoría, ahora lo haremos en forma práctica ,solamente recordando los diez primeros números de la conversión de binario a decimal. Pasaje de binario a octal : como 23 = 8 , por cada 3 bit del número binario, corresponde 1bit del octal . Tomando la coma como eje, agrupamos de a 3 bits hacia ambos lados. Ejemplo: pasar 100 010 101 , 1112 a octal. 1 0 0 0 1 0 1 0 1 , 1 1 1 2 = 4 2 5 , 78 Pasaje de binario a hexadecimal: como 24 =16 trabajaremos con grupos de a 4 bits . Ejemplo: pasar 10111000010,1012 a hexa. 1 0 11 1 0 0 0 0 1 0 , 1 0 1 0 0 = 5 D 2 , A 16 Para pasar de octal o hexadecimal a binario: se utilizara también la misma forma de trabajar. Ejemplo: 752, 38 a bin 7 5 2 , 3 8 = 1 1 1 1 0 1 0 1 0 , 0 1 1 2 Ejemplo: A39,F16 a bin A 3 9 , F 16 = 1 0 1 0 0 0 1 1 1 0 0 1 , 1 1 1 1 2 T.P No 1 1) Pasar los siguientes números a las bases que faltan: 87410 – 01110 – 1001112 – 7128 – 1338 – FEA16 – CAE16 – DF6516 – 112510 – 78210 – 11010110101111002 – 00010110111101012 –2 A410 – 0,32510 – 0,9510 – 1111001,1012 - 3AF5,3216 . 2)Pasar a base 12 el No 1110012 3)Pasar a base 7 el No 33410358

Page 8: 1 Guia 1er Trimestre Tce

8

CÓDIGOS Es la representación de cantidades, correspondiéndole a cada una de ellas una combinación de símbolos determinada; establece una correspondencia entre un conjunto de informaciones y un conjunto de símbolos que las representan. Básicamente puede ser: PESADOS o LIBRES. SON PESADOS: Cuando a cada columna de bits se le adjudica un cierto peso; por ejemplo en el caso del código BCDnat., a las columnas de los dígitos se le asignan los pesos del sistema binario y la suma algebraica de los estados llenos va formando los número decimales.

ESTADOS LIBRES Y OCUPADOS

TABLA VERDAD

8 4 2 1 23 22 21 20 (8) (4) (2) (1)

NÚMEROS DECIMALES

0 0 0 0

0+0+0+0 = 0

0 0 0 1

0+0+0+1 = 1

0 0 1 0

0+0+2+0 = 2

0 0 1 1

0+0+2+1 = 3

0 1 0 0

0+4+0+0 = 4

0 1 0 1

0+4+0+1 = 5

0 1 1 0

0+4+2+0 = 6

0 1 1 1

0+4+2+1 = 7

1 0 0 0

8+0+0+0 = 8

1 0 0 1

8+0+0+1 = 9

SON LIBRES: cuando las columnas de los bits no tienen peso.

Page 9: 1 Guia 1er Trimestre Tce

9

CÓDIGOS BCD (Decimal Codificado en Binario): Es la familia mas utilizada para representar información numérica del sistema decimal mediante combinaciones binarias; se utiliza para 4 bit , pues con esta cantidad de símbolos alcanza para codificar los números decimales del 0 al 9 . Como 24 = 16, podemos decir que con 4 bit se pueden construir 16 combinaciones, de las cuales se utilizan solamente 10 pues las demás son redundantes. Decimales

BCDN 8 4 2 1

AIKEN 2 4 2 1

EXCESO 3

0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 0 2 0 0 1 0 0 0 1 0 0 1 0 1 3 0 0 1 1 0 0 1 1 0 1 1 0 4 0 1 0 0 0 1 0 0 0 1 1 1 5 0 1 0 1 1 0 1 1 1 0 0 0 6 0 1 1 0 1 1 0 0 1 0 0 1 7 0 1 1 1 1 1 0 1 1 0 1 0 8 1 0 0 0 1 1 1 0 1 0 1 1 9 1 0 0 1 1 1 1 1 1 1 0 0

Se toman las 5 primeras y las 5

No utiliza las 3primeras ni las 3 ultimas

1010 = 0001 0000 9910 = 1001 1001

ultimas combinaciones de las 16 que corresponden al BCDN,

Combinaciones de las 16 que corresponden al

BCDN

Recordar la diferencia que hay entre un número de un sistema y un número de un código. Para entenderlo mejor, haremos algunos ejemplos entre los sistemas decimal, binario y el código BCDN:

Decimal Sist. Binario Código BCDN 10 1010 0001 0000 99 1100011 1001 1001

Page 10: 1 Guia 1er Trimestre Tce

10

CÓDIGO DE GRAY: Se emplea en procesos industriales para transformar magnitudes analógicas en digitales; por ejemplo armaremos el código reflejado de Gray de 4bit: Para el caso de dos variables, comenzamos siempre de derecha a izquierda y copiamos, todo lo que hay en la primer columna sobre el eje de simetría, debajo del eje de simetría y complementamos (cambiando unos por ceros y viceversa) lo que hay en la última columna y lo colocamos debajo del eje de simetría. Siguiendo el mismo método, podemos extender el código para mayor cantidad de bits

Dec. Reflejado de Gray 0 0 0 0 0 1 0 0 0 1 2 0 0 1 1 3 0 0 1 0 4 0 1 1 0 5 0 1 1 1 6 0 1 0 1 7 0 1 0 0 8 1 1 0 0 9 1 1 0 1 10 1 1 1 1 11 1 1 1 0 12 1 0 1 0 13 1 0 1 1 14 1 0 0 1 15 1 0 0 0

CÓDIGO DE JOHNSON:Se genera fácilmente mediante registros de

Eje simetría p/ 2 bit

Eje simetría p/ 3 bit

Eje simetría p/ 4 bit

Page 11: 1 Guia 1er Trimestre Tce

11

desplazamiento y sirve para fabricar contadores sencillos.

Dec. Código de Johnson 0 0 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 1 3 0 0 1 1 1 4 0 1 1 1 1 5 1 1 1 1 1 6 1 1 1 1 0 7 1 1 1 0 0 8 1 1 0 0 0 9 1 0 0 0 0

CÓDIGO DE 7 SEGMENTOS: Es habitualmente utilizado para el displays de 7 segmentos.

Con este display se pueden representar todos los símbolos numéricos y algunas letras (con los primeros siete segmentos se forman los símbolos y con el octavo el punto decimal).

Page 12: 1 Guia 1er Trimestre Tce

12

a f b g e c d

Según su conexión interna pencontrarlos de cátodo o de ánodo común.

En este caso utilizaremos el de cátodo común.

La X se puede tomar como ¨0¨ o como ¨1¨; esto significa que esos números pueden escribirse de dos formas: por ejemplo el 7 puede escribirse como o como .

a b C d e f g 0 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 2 1 1 0 1 1 0 1 3 1 1 1 1 0 0 1 4 0 1 1 0 0 1 1 5 1 0 1 1 0 1 1 6 X 0 1 1 1 1 1 7 1 1 1 0 0 X 0 8 1 1 1 1 1 1 1 9 1 1 1 X 0 1 1

Page 13: 1 Guia 1er Trimestre Tce

13

CÓDIGO ASCII de 7 bit(American Standard Code for Information Interchange) Representa informacion de números, letras, caracteres especiales y ordenes de control para periféricos. Equivalencia entre sistemas: Decimal, Hexadecimal y Caracteres del ASCII Dec. Hexa Caract. Dec. Hexa Caract. Dec. Hexa Caract. Dec. Hexa Caract.

0 0 NUL 32 20 espacio 64 40 @ 96 60 ` 1 1 SOM 33 21 ! 65 41 A 97 61 A 2 2 STX 34 22 ¨ 66 42 B 98 62 B 3 3 ETX 35 23 # 67 43 C 99 63 c 4 4 EOT 36 24 $ 68 44 D 100 64 d 5 5 ENQ 37 25 % 69 45 E 101 65 e 6 6 ACK 38 26 & 70 46 F 102 66 f 7 7 BEL 39 27 ‘ 71 47 G 103 67 G 8 8 BS 40 28 ( 72 48 H 104 68 H 9 9 HT 41 29 ) 73 49 I 105 69 i 10 A LF 42 2A * 74 4A J 106 6ª j 11 B VT 43 2B + 75 4B K 107 6B k 12 C FF 44 2C , 76 4C L 108 6C l 13 D CR 45 2D - 77 4D M 109 6D m 14 E SO 46 2E . 78 4E N 110 6E n 15 F S1 47 2F / 79 4F O 111 6F o 16 10 DLE 48 30 0 80 50 P 112 70 P 17 11 DC1 49 31 1 81 51 Q 113 71 Q 18 12 DC2 50 32 2 82 52 R 114 72 R 19 13 DC3 51 33 3 83 53 S 115 73 s 20 14 DC4 52 34 4 84 54 T 116 74 t 21 15 NAK 53 35 5 85 55 U 117 75 u 22 16 SYN 54 36 6 86 56 V 118 76 v 23 17 ETB 55 37 7 87 57 W 119 77 w 24 18 CAN 56 38 8 88 58 X 120 78 x 25 19 EM 57 39 9 89 59 Y 121 79 y 26 1A SUB 58 3A : 90 5A Z 122 7ª z 27 1B ESC 59 3B ; 91 5B [ 123 7B { 28 1C FS 60 3C < 92 5C \ 124 7C | 29 1D GS 61 3D = 93 5D ] 125 7D } 30 1E RS 62 3E > 94 5E ^ 126 7E ~ 31 1F US 63 3F ? 95 5F _ 127 7F DEL

Del 0 al 1F son funciones de control.

Page 14: 1 Guia 1er Trimestre Tce

14

Hay otros códigos alfanuméricos que no son tan utilizados como: ISO (Internacional Standard Organization) de 7 bit ; EBCDIC (Extended Binari Coded Decimal Inter.- change Code) ; etc.

Caracteres

Código Caracteres Código

@ 100 0000 Espacio 010 0000 A 100 0001 ! 010 0001 B 100 0010 ” 010 0010 C 100 0011 # 010 0011

D 100 0100 $ 010 0100

E 100 0101 % 010 0101

F 100 0110 & 010 0110

G 100 0111 ` 010 0111

H 100 1000 ( 010 1000

I 100 1001 ) 010 1001

J 100 1010 * 010 1010

K 100 1011 + 010 1011

L 100 1100 , 010 1100

M 100 1101 _ 010 1101

N 100 1110 . 010 1110

O 100 1111 / 010 1111

P 101 0000 0 011 0000 Q 101 0001 1 011 0001

R 101 0010 2 011 0010

S 101 0011 3 011 0011

T 101 0100 4 011 0100

U 101 0101 5 011 0101

V 101 0110 6 011 0110

W 101 0111 7 011 0111

X 101 1000 8 011 1000

Y 101 1001 9 011 1001

Z 101 1010 : 011 1010

[ 101 1011 ; 011 1011

\ 101 1100 < 011 1100

] 101 1101 = 011 1101

^ 101 1110 > 011 1110

101 1111 ? 011 1111

Page 15: 1 Guia 1er Trimestre Tce

15

Códigos detectores de error CÓDIGO CON PARIDAD( par o impar): Sirve para detectar errores y se forma incorporando un bit extra al código base. Para entender que efecto produce este bit extra, debemos definir que es la distancia entre palabras, para luego definir ¨ Distancia mínima de un código ¨. La distancia entre combinaciones está dada por la cantidad de bit que cambian cuando pasamos de una palabra a la siguiente o a la anterior. Haremos un ejemplo utilizando como código base, el BCDN.

0 0 0 0 1bit

0 0 0 1 2bit 0 0 1 0 1bit 0 0 1 1 3bit 0 1 0 0 1bit 0 1 0 1 2bit 0 1 1 0 1bit 0 1 1 1 4bit 1 0 0 0 1bit 1 0 0 1 En este caso la distancia entre palabra es 1, por lo tanto la distancia mínima del código BCDN será dm = 1. Con esto podemos definir, que los códigos que tienen dm = 1 no detectan ni corrigen errores. Si le agregamos un bit extra en la columna de menor peso, se convierte en un código de paridad (par o impar) de dm = 2 , y en este caso ya podrá detectar un error pero no corregirlo.

Page 16: 1 Guia 1er Trimestre Tce

16

IMPORTANTE: Cuando se transmiten datos con un tipo de paridad, se deben recibir con el mismo tipo de paridad, de lo contrario habría un error de paridad. CÓDIGOS DETECTORES Y CORRECTORES DE ERROR:Deben cumplir con la siguiente ley de formación: dm = 2. n + 1 Donde ¨n¨ es la cantidad de bit que se quiere detectar y corregir por combinación. En nuestro curso, analizaremos el caso básico de querer detectar y corregir solamente un error en una palabra. Al reemplazar n en la formula obtenemos dm = 2. 1 + 1 = 3 Esto nos corrobora que los códigos que detectan y corrigen un error en una combinación deben tener dm = 3. En los códigos de paridad para cumplir con la condición dm = 2 hubo que incluir un solo bit extra ; en el caso de Hamming, con dm = 3 para saber cuantos bit extra se deben agregar hay que solucionar la siguiente inecuación:

BCDN(paridad par) BCDN(paridad impar) 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 0 dm = 2 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1

El bit extra se completa con unos o ceros de tal

forma que en cada combinación quede una cantidad par de unos.

El bit extra se completa con unos o ceros de tal

forma que en cada combinación quede una cantidad impar de unos

dm = 2

Page 17: 1 Guia 1er Trimestre Tce

17

2p ≥ (i + p) + 1 Donde: i = cantidad de bit de información. p= cantidad de bit de paridad que hay que agregar. 1=esta constante aparece siempre que se quiera hallar, algun error(en nuestro caso uno) Se va variando el valor de ¨p¨ hasta que se cumpla la inecuación. El valor de “p” que solucione la inecuación, concuerda con la cantidad de bit extra que hay que agrega para cumplir con la condición dm = 3. p = 1 21 ≠ (4 + 1) + 1 = 6 p = 2 22 ≠ (4 + 2) + 1 = 7 p = 3 23 = (4 + 3) + 1 = 8 ( se cumple)(3bits extra) CÓDIGO DE HAMMING Este código tiene dm=3 por lo que habrá que agregar 3 bit extra, entonces se formarán paquetes de 7 bit (4 de información y 3 de paridad).

Ahora debemos saber donde ubicamos estos tres bit extras, para esto armaremos un código BCD auxiliar (Tabla verdad) de 3 bit donde sus variables coincidirán con las condiciones de error( C1, C2 y C3)

C3 C2 C1 b0 0 0 0 (bit de no error)

bp1 b1 0 0 1 bp2 b2 0 1 0

b3 0 1 1 bp4 b4 1 0 0

b5 1 0 1 b6 1 1 0

b7 1 1 1 La ubicación de los bit de paridad la obtenemos de esta tabla, tomando en cuenta las combinaciones que tienen un solo estado lleno (bp1, bp2, bp4); entonces, el lugar donde tienen que estar los bit de paridad serán:

b7 b6 b5 bp4 b3 bp2 bp1

Además con esta tabla, podemos crear un sistema de 3ecuaciones con 3 incógnitas, para posteriormente fabricar el detector de error; este sistema lo armamos haciendo la suma módulo 2 (porque utilizamos paridad par) de los estados llenos de cada columna, comenzando por C3. C3 = bp4 ⊕ b5 ⊕ b6 ⊕ b7 C2 = bp2 ⊕ b3 ⊕ b6 ⊕ b7 Detector de error C1 = bp1 ⊕ b3 ⊕ b5 ⊕ b7

Page 18: 1 Guia 1er Trimestre Tce

18

No teniendo en cuenta las condiciones de error (C1, C2, C3) obtendremos otro sistema de ecuaciones, que corresponderá al generador de paridad. bp4 = b5 ⊕ b6 ⊕ b7 bp2 = b3 ⊕ b6 ⊕ b7 Generador de paridad bp1 = b3 ⊕ b5 ⊕ b7 Utilizando las ecuaciones del generador de paridad para cada combinación (palabra), construiremos el código de Hamming (en nuestro caso lo haremos tomando el código BCDN como base). Por ejemplo: si tomamos de la tabla, la combinación del 1 decimal, en los bit de información del BCDN tendremos (b7 = 0, b6 = 0, b5 = 0, b3 = 1), si los reemplazamos en cada ecuación del generador de paridad, obtendremos los valores de los bit de paridad (bp4 = 0 , bp2 = 1, bp1 = 1) de la siguiente forma: bp4 = b5 ⊕ b6 ⊕ b7 = 0 ⊕ 0 ⊕ 0 = 0 bp2 = b3 ⊕ b6 ⊕ b7 = 1 ⊕ 0 ⊕ 0 = 1 bp1 = b3 ⊕ b5 ⊕ b7 = 1 ⊕ 0 ⊕ 0 = 1 Repitiendo esto para todas las combinaciones, llenamos todas las columnas de los bit de paridad y terminamos de construir el Código de Hamming para 4 bit.

b7 b6 b5 bp4 b3 bp2 bp1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 2 0 0 1 1 0 0 1 3 0 0 1 1 1 1 0 4 0 1 0 1 0 1 0 5 0 1 0 1 1 0 1 6 0 1 1 0 0 1 1 7 0 1 1 0 1 0 0 8 1 0 0 1 0 1 1 9 1 0 0 1 1 0 0

BCDN Con este código podemos detectar y corregir un solo error en una Combinación, utilizando el siguiente esquema.

Page 19: 1 Guia 1er Trimestre Tce

19

Tx Rx

Ejemplo: Si transmitimos la palabra del código de Hamming con base BCDN, correspondiente al numero 5 decimal : b7 b6 b5 bp4 b3 bp2 bp1 0 1 0 1 1 0 1 y debido a problemas de ruido en la comunicación se recibe: b7 b6 b5 bp4 b3 bp2 bp1 0 1 1 1 1 0 1 Aplicando la combinación recibida (0111101) en las ecuaciones del detector de error podremos verificar que hay un error en la recepción y que está en el bit X. C3 = bp4 ⊕ b5 ⊕ b6 ⊕ b7 = 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1 C2 = bp2 ⊕ b3 ⊕ b6 ⊕ b7 = 0 ⊕ 1 ⊕ 1 ⊕ 0 = 0 C1 = bp1 ⊕ b3 ⊕ b5 ⊕ b7 = 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1 Leyendo el resultado del detector de error desde arriba hacia abajo, tenemos en binario el número del bit donde se encuentra el error 1012 = 510 esto nos indica, que el error está en el bit 5. Si con estos datos entramos en un corrector de error (inversor controlado) tendremos reparada la palabra recibida. Otras características de los códigos:

Generador

de paridad

bp4, bp2,bp1

b7

b6

b5

bp4

b3

bp2

bp1

b7 b6 b5

bp4

b3 bp2

bp1

Detector de

error C1, C2, C3

Correctorde error

b7

b6

b5

b3

b7

b6

b5 b3

Page 20: 1 Guia 1er Trimestre Tce

20

AUTOCOMPLEMENTARIOS`: Tienen simetría de complementación y se produce con la simple inversión de unos por ceros ( por ejemplo cuando el código es complementario a 9 , la suma de dos combinaciones simétricas da 9). ANALITICOS: Aumentados o disminuidos en un valor constante (EXC.3) REDUNDANTES : Tienen mas de 4 bits por dígito decimal (con 4bit ya alcanza para codificar todos los números requeridos con los símbolos del 0 CONTINUOS(Progresivos o regresivos): Cuando una combinación difiere de la anterior y posterior solamente en un bit. CÍCLICOS: Cuando la ultima combinación difiere de la primera en un bit. DETECTORES DE ERROR: Con la adición de un bit extra, provocan que cada combinación tenga una cantidad par (o impar) de unos (detectan error de paridad). DETECTORES Y CORRECTORES DE ERROR: Por ejemplo el código de Hamming que detecta y corrige un solo bit en una palabra). ALFANUMÉRICOS: Cuando representan informaciones en número, letras, signos especiales y ordenes de control para periféricos. Cuadro demostrativo de las propiedades de los códigos

Propiedades BCD Natural

BCD Aiken

BCD Exceso 3

BCD Paridad

GRAY JOHNSON Hamming

Pesado X X Autocomp. X X Analítico X Continuo X X Cíclico X X Detector X X Corrector X Distancia 1 1 1 2 1 1 3

T.P Nº2 Hacer el código de Hamming 1) con base AIKEN, 2) con base EXCESO 3 y en cada caso transmitir una palabra con un error en algún bit, paraluego verificar lo recibido con el detector de error y ver si se cumple lo explicado.