Sei sulla pagina 1di 39

Ing.

Fernando Figueroa
INTRODUCCION

El objetivo de este trabajo es el desarrollo de un sistema de transmisión de


datos, mediante la implementación de hardware y software. Este puede ser
utilizado para el desarrollo futuro de Algoritmos de Modulación y Demodulación los
que son necesarios para la transmisión de datos mediante la técnica de Multitono
Discreto (DMT).

La implementación de este sistema fue realizada por medio de una serie de


algoritmos o módulos de software interconectados, conjuntamente con el
desarrollo de una placa transmisora que convierte los datos digitales en una señal
analógica y otra receptora que digitaliza la señal analógica recibida de un cable lo
suficientemente largo para este propósito, 20 metros, en los ensayos. Los
algoritmos presentes en este sistema son:– Codificación y Decodificación de Bits
con el código Reed Solomon RS(255,223)– Transmisión y Recepción de archivos
codificados y sin codificar. Cada módulo procesa una unidad de datos a la vez,
entregando el resultado al módulo siguiente para su posterior procesamiento.

Como resultado final de este trabajo se obtuvo un conjunto de programas


flexibles y un par de placas que podrán ser empleados para experimentación y
aprendizaje del sistema ADSL, el que se encuentra en constante evolución y
desarrollo. Esta implementación tiene perspectivas de no agotarse, sino de
constituirse en una base para el desarrollo de futuros trabajos. Debido a esto se
pensó en un diseño lo más abierto y didáctico posible, implementando como
lenguaje de programación BORLAND C++ 3.1.

5
CAPITULO 1: Descripción del Sistema

El sistema fue desarrollado en base a dos subsistemas: a) Hardware y b) Software

a) Hardware

Los módulos de software se basan en un desarrollo de circuitos conversores


analógico digital y digital analógico, interfase con el puerto paralelo de la PC, LEDs
indicadores, y el correspondiente Driver o excitador de ADSL.

b) Software

El módulo de software está basado en un desarrollo en lenguaje C++; su función


principal es la de:

A1) Implementar los algoritmos de comunicación digital y metodología ADSL.

A2) Realizar la comunicación entre sistemas adquisidores de datos y enlace de


comunicación analógica.

1.1- HARDWARE

1.1.0- Esquema General del Hardware

El hardware de este sistema está conformado básicamente por los


siguientes circuitos: CIRCUITO TRANSMISOR y CIRCUITO RECEPTOR. En la
práctica se adicionan etapas extras para que el sistema pueda cumplir con su
objetivo, que es el de transmitir y recibir información digital convertida en
información analógica para que pueda ser enviada a través de grandes líneas de
transmisión de datos. En la Figura 1.1 se muestra el diagrama de bloques del
sistema

PC PC
TRANSMISORA RECEPTORA

INF. DIGITAL INF. DIGITAL


8 BITS 8 BITS

INFORMACION
CIRCUITO ANALOGICA CIRCUITO
TRANSMISOR RECEPTOR

Figura 1.1- Diagrama en bloques que muestran los diferentes circuitos y su


conexión.

6
1.1.1-CIRCUITO TRANSMISOR

El hardware está compuesto por dos circuitos independientes.

a) Circuito Transmisor

El circuito transmisor es el encargado procesar la señal digital que proviene de


la PC transmisora y luego transmitirla como una señal analógica mediante un par
de cables hacia el circuito receptor.

b) Circuito Receptor

El circuito receptor recibe la señal analógica que proviene del circuito


transmisor y la convierte en señal digital que posteriormente será procesada por
la PC receptora.

Descripción General

El circuito transmisor es el encargado de recibir los datos digitales desde


el puerto paralelo (LPT1) y convertir esos datos de 8 Bits en una señal analógica
que posteriormente será procesada para ser enviada por un cable telefónico, de
aproximadamente 20mts, hasta un circuito receptor.

Diseño y Construcción

El circuito transmisor está constituido por el buffer 74LS540 que se


conecta directamente en las líneas de datos (pines 2 al 9), cuya correspondencia
es: dato 0-pin 2, dato 7-pin 9 del puerto paralelo de la PC. El circuito 74LS540
funciona como etapa separadora y al mismo tiempo mejora la capacidad de
manejo de corriente del puerto. La Figura 1.2 indica las corrientes típicas de salida
para cada chip.

Figura 1.2- Corrientes de salida para cada nivel lógico del buffer
Typical IOL Typical IOH
Series
(sink current) (source current)
74LS540 12 mA -3 mA

Figura 1.2- Corrientes de salida del buffer 74LS540.

El circuito transmisor posee 8 diodos LED cuya función es proporcionar


información visual de la actividad en las líneas de datos del puerto paralelo y
están conectados en las líneas de salida del buffer.
Cada LED rojo puede soportar una corriente de 20mA. Para limitar la corriente por
cada diodo se conecta un resistor en serie de 1,3KOhm. En la Figura 1.3 se
muestra la conexión del buffer al puerto de la PC y a los diodos (LEDs)

Conexión del Buffer

7
74LS540 5V
1 20

2 19
LSB
1,3K
3 18 D1
R3
4 17 D2

Salida de la PC
R4
5 16 D3
DB25
R5
6 15 D4
R6
7 14 D5
R7
8 13 D6
R8
9 12 D7
R9
10 11 D8
R10 MSB

Figura 1.3- Esquema de conexión del Buffer 74LS540.

La señal digital que proviene del puerto es convertida en una señal


analógica mediante el conversor digital analógico DAC0800. El conversor D/A se
conecta directamente en las líneas de salida del puerto (Figura 1.4), esto es
posible ya que ambos circuitos poseen compatibilidad en sus niveles lógicos y
además las corrientes de entrada del conversor D/A son relativamente pequeñas
sin representar una carga peligrosa para el puerto.

Conexión del Buffer al Conversor A/D

10V -12V 5V
74LS540
1 20
10K
2 19
1 12 LSB
Iout 1,3K
2 3 18 D
11

4 17
Salida hacia la PC

3 A/D 10
Iout 0800
DB25

4 5 16
9

6 15
+12V 13 8
5K
+10V 7 14
14 7
5K
15 8 13
6

9 12
-12V 16 5
0.01uF
10 11

MSB

Figura 1.4- Conexión del Buffer 74LS540

8
Figura 1.5- Corrientes para los niveles lógicos de entrada
DAC0800
Símbolo Parámetros Min Typ Max Unidades
IiL Logic ‘0’ -2.0 -10 mA
IiH Logic ‘1’ 0.002 10 mA

Figura 1.5- Corrientes de entrada para los dos niveles lógicos del DAC.

Conversor de Corriente

El conversor D/A entrega a la salida corrientes complementarias que luego


serán convertidas en tensión por un simple circuito como se muestra en la Figura
1.6
Conversor de Corriente a Tensión

RL

RREF 4 -
VREF =10V I0
E0
DAC0800 TL081
RREF de0a+I FS .R L
2 +
I0

Figura 1.6- Esquema del circuito conversor de corriente a tensión.

El circuito conversor de corriente a tensión está formado por un amplificador


operacional, en este caso se utilizó un TL081, y una resistencia; este circuito
convierte la corriente de salida analógica del conversor D/A en una señal
analógica de tensión E 0 .
Para ajustar la excursión de la señal E 0 de 0 a 5Volt se deben modificar
los valores de las resistencias de referencia R REF y la resistencia de lazo R L
utilizando las siguientes ecuaciones:

I FS . R L = 5V
(1.0)

255
I FS ≈ * I REF (1.1)
256

10V
I REF = (1.2)
R REF

Adopto R L = 5 K y obtengo I FS ≈ I REF ≈ 1mA y R REF = 10 K

9
En la Figura1.7 se muestran los valores de la tensión de salida E 0 para algunos
datos de entrada.

Estado B0 B1 B2 B3 B4 B5 B6 B7 E 0 (Volt )
Full Scale 1 1 1 1 1 1 1 1 5
Full Scale-1LSB 1 1 1 1 1 1 1 0 4.99
Half Scale 1 0 0 0 0 0 0 0 2.5
Zero Scale+2LSB 0 0 0 0 0 0 1 0 0.039
Zero Scale+1LSB 0 0 0 0 0 0 0 1 0.019
Zero Scale 0 0 0 0 0 0 0 0 0

Figura 1.7- Tensión de salida E 0 con respecto al Dato de Entrada

Información Visual

El circuito transmisor posee 8 LED que sirven para proporcionar la


información visual sobre la actividad en las líneas de datos del puerto paralelo. La
información que se obtiene de los LEDs es esencial para configurar el circuito
transmisor y comprobar que los datos sean los correspondientes a los enviados
por la PC y viceversa en el circuito receptor.

Corriente de Alimentación

La variación del consumo del circuito transmisor está ligado básicamente a:

1º- El estado en el que se encuentran los LEDs


2º- Velocidad de transmisión.

La corriente máxima medida en el primario del transformador del circuito


transmisor es de 19mA. Esta corriente fue medida cuando se transmitía un
archivo de números aleatorios a la máxima velocidad de transmisión
(150Bytes/Seg).

La variación del consumo del circuito transmisor se ve afectada mayormente por


la frecuencia de transmisión y por el estado en el que se encuentran los LEDs.

Driver ADSL EL1503A

El EL1503A es un Driver de línea que es utilizado para aplicaciones en


ADSL y HDSL2. Este circuito integrado contiene dos Drivers de banda ancha de
alto voltaje, de los cuales se puede obtener una señal de 39.2VP-P en una carga de
22Ω. Este driver puede reemplazar al amplificador operacional obteniendo así
mayor potencia y velocidad. En este proyecto no son necesarias estas dos
características dado a que estamos trabajando con velocidades de transmisión del
orden de 150 Byes/Seg y distancias a transmitir menores a los 20 mts.

10
Conversor Digital Analógico DAC0800

Descripción General

Las series DAC0800 son conversores digital analógico (DAC) monolíticos de


8-bit con alta velocidad de corriente de salida. Presentan tiempos típicos de
estabilización de 100ns. Las series DAC0800 además presentan gran corriente
complementaria de salida que permiten obtener voltajes diferenciales de salida de
20 Vp-p con un simple resistor de carga como se muestra e la Figura 1.8

Esquema de Conexión del Conversor D/A

Figura 1.8- Salida del conversor Digital Analógico Vout = ±20Vp −p

Características

• Establecimiento rápido de las corrientes de salida 100 ns.


• Error a escala completa +/- 1LSB
• No linealidad de sobre temperatura de +/- 0.1%
• Alta conformidad de salida -10V a +18V
• Corrientes de salida complementarias
• Interactúa directamente con TTL, CMOS, PMOS y otros.
• Amplio rango de alimentación +/- 4.5V a +/-18V
• Bajo consumo 33mW a +/- 5V

11
Esquema de Conexión del Circuito Transmisor

5V
IC6
1 20

IC7 2 19
1 12 LSB
R1 18
2 3 D1
C3 11
R2 R3

Salida hacia la PC
4 17 D2
-12V 3 A/D 10
0800 R4

DB25
4 5 16 D3
9
R5
IC5 C7
6 15 D4
Vout(+) +12V 13 8
R12 R6
+10V 7 14 D5
14 7
R7
R11
15 8 13 D6
6
R8
9 12 D7
-12V 16 5
C4 R9
10 11 D8
R10 MSB

Figura 1.9- Esquema del Circuito Transmisor sin Fuente de Alimentación.

Nota: El diseño del la Fuente de Alimentación del circuito Transmisor se encuentra


en el Apéndice B.

1.1.2- Circuito Receptor

Descripción General

El circuito receptor recibe la señal analógica del circuito transmisor


mediante un cable, este convierte la señal en datos digitales y luego se la envía
mediante otro cable, hacia el puerto paralelo de la PC receptora. Para convertir la
señal analógica en una señal digital el circuito receptor utiliza el conversor
ADC0804.

El circuito receptor posee además 8 diodos LED que indican el estado de


cada una de las líneas de dato (LED encendido equivale a ‘1’), los LEDs son
conectados en las salidas del Buffer Octal (74LS540) en serie con resistencias que
limitan la corriente por los mismos.

El puerto paralelo de la PC receptora se conecta a la salida del conversor


A/D junto con las entradas del buffer Figura 1.10

12
Esquema de conexión del Circuito Receptor

10K
5V
Pin 16 150pF
10uF 5V
(INI) 1 20
74LS540
330 2 19 1 20
PC817
N.O. 2 19
3 18
1,3K
Start 4 3 18
17

Salida hacia la PC
5 17
A/D 16
0804

DB25
5 16
6 15
Vin(+)
6 15
0.1uF 7 14

7 14
8 13

Vref=2.5V 9 8 13
12
0.1uF 9 12
10 11

10 11

Figura1.10- Esquema de conexión del Circuito Receptor.

Las corrientes para los niveles lógicos de entradas del buffer son
relativamente pequeñas y no representan una carga peligrosa para el puerto ni
para el conversor. Las Figuras 1.11, 1.12 y 1.13 muestran datos de los niveles
lógicos del conversor A/D, buffer y Puerto Paralelo de la PC.

Corrientes para los niveles lógicos de salida (ADC0804)


Parámetros
Símbolo (entrada de Condiciones Min Typ Max Unid.
corriente)

Vout short to
Isource 4.5 6 mA
GND

Isink Vout short to VCC 9 16 mA

Figura 1.11- Corrientes de los niveles lógicos de salida del ADC0804.

13
Corrientes para los niveles lógicos de entrada(74LS540)
Parámetros
Símbolo (entrada de Condiciones Min Typ Max Unid.
corriente)

IiH Logic ‘1’ Vcc =5.25 VDC 20 µ A

IiL Logic ’0’ Vcc=5.25 VDC -0.2 µ A

Figura 1.12- Corrientes de los niveles lógicos de entrada del 74LS540.

Características del Puerto Paralelo de la PC


Símbolo Parámetros Min Typ Max Unid.
VioH Logic ‘1’ 3.3 5 V
VioL Logic ’0’ 0 1.8 V
Isource Iout Max 2.6 mA
Isink Iin Max 24 mA

Figura 1.13- Características del puerto DB25.

Descripción del ADC0804

El ADC0804 es un conversor analógico digital CMOS de 8-bit que emplea el


método de aproximación sucesiva. Este conversor esta diseñado para que opere
con el NSC800 y el INS8080A derivando el bus de control con compuertas de
salida de tres estados.
La entrada analógica diferencial permite incrementar el rechazo en modo
común y compensa el cero analógico de entrada. Además, el voltaje de referencia
puede ser ajustado para codificar un pequeño valor analógico con 8 bits de
resolución.

Características.

• Compatible con el micro procesador 8080.


• Tiempo de acceso de: 135 ns.
• Voltaje diferencial analógico de entrada.
• Entradas y salidas compatibles con los niveles de tensión MOS y TTL.
• Voltaje de referencia de 2.5.
• Generador de tiempo interno.
• Rango de voltaje analógico de entrada de 0 a 5V con 5V de alimentación.

Especificaciones de Conversión

• Resolución 8 bits.

14
• Error de conversión máximo de ± 1 LSB.
• Tiempo de Conversión 100 us.

Corriente de Alimentación

La corriente de consumo del circuito receptor se ve afectada mayormente,


al igual que el transmisor, por la actividad en los LEDs indicadores. En cada LED
circula una corriente aproximada de 2.2mA (valores medidos) por lo tato al tener
ocho LED esta corriente puede variar entre 0 y 17.6mA. Todo el circuito con los
LEDs apagados consume 23mA por lo tanto el consumo de los LEDs representa un
43.3% del consumo total.
El consumo total del circuito Receptor puede variar entre 23mA y 48mA.

Nota: El diseño del la Fuente de Alimentación del circuito Receptor se encuentra


en el Apéndice B.

1.2- SOFTWARE

15
1.2.0-Introducción

Coexistiendo en el mundo de la informática una gran diversidad de


lenguajes de programación y de sistemas operativos, la elección de un entorno de
desarrollo de software depende principalmente del tipo de aplicación a desarrollar.
En nuestro caso, era necesario tener un mayor control sobre el hardware del
Puerto y así poder manipular el mismo sin tantas restricciones impuestas en un
entorno Windows XP. Entonces se eligió como sistema operativo al viejo Windows
98, el cual permite manipular el hardware casi sin restricciones.

En cuanto al lenguaje de programación, se opto por el Lenguaje C++, el


cual permite trabajar con instrucciones de bajo nivel y además tiene la potencia
de un lenguaje de alto nivel.

Introducción a los Puertos de Comunicación

Los puertos de comunicación de la PC son de particular interés para el


estudio de la electrónica ya que le permiten utilizar una computadora personal
para controlar todo tipo circuitos electrónicos utilizados, principalmente, en
actividades de automatización de procesos, adquisición de datos, tareas
repetitivas y otras actividades que demandan precisión.

Antes de entrar en detalles, se hará una referencia del Hardware del Puerto
Paralelo como así también de cada pin que lo conforma.

1.2.1-Puerto Paralelo Centronics

El puerto paralelo más conocido es el puerto de impresora (que cumplen


más o menos la norma IEEE 1284, también denominados tipo Centronics) que
destaca por su sencillez y que transmite 8 bits. Se ha utilizado principalmente
para conectar impresoras, pero también ha sido usado para programadores
EPROM, escáners, interfaces de red Ethernet a 10 MB, unidades ZIP y SuperDisk y
para comunicación entre dos PCs (MS-DOS trajo en las versiones 5.0 ROM a 6.22
un programa para soportar esas transferencias).

El puerto paralelo de las computadoras, de acuerdo a la norma Centronic,


está compuesto por un bus de comunicación bidireccional de 8 bits de datos,
además de un conjunto de líneas de protocolo. Las líneas de comunicación
cuentan con un retenedor que mantiene el último valor que les fue escrito hasta
que se escribe un nuevo dato, las características eléctricas son:

• Tensión de nivel alto: 3.3 o 5 V.


• Tensión de nivel bajo: 0 v.
• Intensidad de salida máxima: 2.6 mA.
• Intensidad de entrada máxima: 24 mA.

El sistema operativo gestiona las interfaces de puerto paralelo con los nombres
LPT1, LPT2 y así sucesivamente, las direcciones base de los dos primeros puerto
es:

• LPT1 = 0x378.

16
• LPT2 = 0x278

La estructura consta de tres registros: de control, de estado y de datos.

• El registro de datos, se compone de 8 bits, es bidireccional. Su dirección


en el LPT1 es 0x378.
• El registro de estado, se trata de un registro de entrada de información
de 5 bits, su dirección en el LPT1 es 0x379.
• El registro de control es un bidireccional de 4 bits, con un bit de
configuración que no tiene conexión al exterior, su dirección en el LPT1 es
0x37A.

Nota: Los tres registros se detallan en el Apéndice E.

El Hardware del Puerto Paralelo

El puerto paralelo de una típica PC utiliza un conector hembra de tipo D de


25 patitas (DB-25 S), éste es el caso más común, sin embargo es conveniente
mencionar los tres tipos de conectores definidos por el estándar IEEE 1284, el
primero, llamado 1284 tipo A es un conector hembra de 25 patitas de tipo D, es
decir, el que mencionamos al principio. El orden de las patitas del conector es
éste:

Figura 1.24- Conector DB 25 hembra.

El segundo conector se llama 1284 tipo B que es un conector de 36 patitas de tipo


Centronics y lo encontramos en la mayoría de las impresoras; el tercero se
denomina 1284 tipo C, se trata de un conector similar al 1284 tipo B pero más
pequeño, además se dice que tiene mejores propiedades eléctricas y mecánicas,
éste conector es el recomendado para nuevos diseños. La siguiente tabla describe
la función de cada patita del conector 1284 tipo A:

Configuración del Puerto Paralelo Estándar

Patita E/S Polaridad activa Descripción


1 Salida 0 Strobe
Líneas de datos
2~9 Salida -
(bit 0/patita 2, bit 7/patita 9)
Línea acknowledge
10 Entrada 0
(activa cuando el sistema remoto toma datos)
Línea busy
11 Entrada 0 (si está activa, el sistema remoto no acepta
datos)

17
Línea Falta de papel
12 Entrada 1
(si está activa, falta papel en la impresora)
Línea Select
13 Entrada 1
(si está activa, la impresora se ha seleccionado)
Línea Autofeed
14 Salida 0 (si está activa, la impresora inserta una nueva
línea por cada retorno de carro)
Línea Error
15 Entrada 0
(si está activa, hay un error en la impresora)
Línea INIT
(Si se mantiene activa por al menos 50
16 Salida 0
micro-segundos, ésta señal
autoinicializa la impresora)
Línea Select input
17 Salida 0 (Cuando está inactiva, obliga a la
impresora a salir de línea)
18 ~ 25 - - Tierra eléctrica

Tabla 1: Configuración del puerto paralelo estándar.

Observe que el puerto paralelo tiene 12 líneas de salida (8 líneas de datos,


strobe, autofeed, INIT y select input) y 5 de entrada (acknowledge, busy, falta de
papel, select y error).

De todas estas líneas, las que se usan son aquellos que están sombreados
en el cuadro de arriba. El hardware en cuestión opera en forma síncrona, por lo
que, ambos software (de transmisión y recepción) mantienen constantemente
escaneando las señales Strobe, Ackno, Busy y Autofeed indicando cuando se esta
listo para enviar o recibir un Byte de información.

El Handshaking

Para implementar el handshaking se requieren dos líneas adicionales. La línea


de estroboscopio (en inglés strobe) es la que utiliza la parte transmisora para
indicarle a la parte receptora la disponibilidad de información. La línea de
admisión (acknowledge) es la que utiliza la parte receptora para indicarle a la
parte transmisora que ha tomado la información (los datos) y que está lista para
recibir más datos. El puerto paralelo provee de una tercera línea de handshaking
llamada en inglés busy (ocupado), ésta la puede utilizar la parte receptora para
indicarle a la parte transmisora que está ocupada y por lo tanto la parte
transmisora no debe intentar colocar nueva información en las líneas de datos.
Una típica sesión de transmisión de datos se parece a lo siguiente:

Parte transmisora:

18
 La parte transmisora chequea la línea busy para ver si la parte receptora está
ocupada. Si la línea busy está activa, la parte transmisora espera en un bucle
hasta que la línea busy esté inactiva.
 La parte transmisora coloca la información en las líneas de datos.
 La parte transmisora activa la línea de strobe.
 La parte transmisora espera en un bucle hasta que la línea acknowledge está
activa.
 La parte transmisora inactiva la línea de strobe.
 La parte transmisora espera en un bucle hasta que la línea acknowledge esté
inactiva.
 La parte transmisora repite los pasos anteriores por cada byte a ser
transmitido.

Parte Receptora:

 La parte receptora inactiva la línea busy (asumiendo que está lista para recibir
información).
 La parte receptora espera en un bucle hasta que la línea strobe esté activa.
 La parte receptora lee la información de las líneas de datos (y si es necesario,
procesa los datos).
 La parte receptora activa la línea acknowledge.
 La parte receptora espera en un bucle hasta que esté inactiva la línea de
strobe.
 La parte receptora inactiva la línea acknowledge.
 La parte receptora repite los pasos anteriores por cada byte que debe recibir.

Se debe ser muy cuidadoso al seguir éstos pasos, tanto la parte


transmisora como la receptora coordinan sus acciones de tal manera que la parte
transmisora no intentará colocar varios bytes en las líneas de datos, en tanto que
la parte receptora no debe leer más datos que los que le envíe la parte
transmisora, un byte a la vez.

1.2.2-Programas y Subprogramas

Se confeccionaron varios programas para cubrir las necesidades de este


proyecto, las cuales son:

• Enviar un archivo sin codificar


• Enviar un archivo codificado
• Recibir un archivo
• Recibir un archivo para decodificar
• Comparar dos archivos

En las siguientes figuras se desarrollan los diagramas de flujo correspondientes


a cada programa mencionado y a sus correspondientes rutinas.

Diagrama de Flujo del Handshaking PC Transmisora

19
I n ic io

Lee el Reg.
d e E s ta d o s
I n a c tiv a
S tro b e

E s tá B u s yN O
A c tiv o ?

SI C o lo c a D a to s Lee el Reg.
en el Reg. d e E s ta d o s
d e D a to s

E s tá A c k n oN O
A c tiv o ?
Lee el Reg.
d e E s ta d o s SI F IN

E s tá A c k n oN O
I n a c tiv o ? 1

SI

Figura 1.27- Rutina que muestra los pasos para el Handshaking de la


parte transmisora.

Diagrama de Flujo del Handshaking PC Receptora

20
In ic io

1
In a c tiv a B u s y
A c tiv a B u s y

L e e D a to s
A c tiv a A c k n o

Lee el Reg.
d e E s ta d o s

Le e el R eg.
d e E s ta d o s

E s tá S tro b NeO 1
In a c tiv o ?

SI E s tá S tro b NeO
A c tiv o ?

SI
In a c tiv a
Ackno

F IN

Figura 1.28- Rutina que muestra los pasos para el Handshaking de la parte
Receptora.

La Figura 1.29 muestra el programa SALE.CPP que se encarga de


transmitir un archivo, sin codificar, a través del puerto.

I n ic io

N o m b re
d e l a r c h iv o
a T r a n s m it ir

T r a n s m it i r e l
A r c h iv o p o r e l
P u e r t o P a r a le lo

F in

Figura 1.29-Diagrama de flujo de la rutina que envía un archivo, sin codificar, a


través del puerto paralelo.

21
En este organigrama se hace uso de la rutina que transmite un archivo por
el puerto paralelo que se detalla en la Figura 1.30 su diagrama de flujo.

I n ic io

R e c ib e e l N o m b r e
d e l a r c h iv o
C o m o P a ra m e tro

No
NO
E x i s t e e l a r c h iv o ?

SI SI

A b r ir e l A r c h iv o
p a ra L e c tu ra

N o es
3 F in d e A r c hNi vOo ?
- C ie r r a e l
A r c h iv o

SI

-L ee el R eg . F in
d e E s ta d o s

NO
E stá B u sy 1
A c t iv o ?

SI

Figura 1.30- Rutina para el envío de un archivo por el puerto paralelo.

22
1

-Lee 1 Byte del


Inactiva
Archivo
-Transmite Strobe
el Byte

Lee el Reg.
-Lee el Reg.
de Estados
de Estados

NO Está Ackno NO
Está Ackno
Inactivo? Activo?

SI SI

Figura 1.30- Rutina para el envío de un archivo por el puerto paralelo.

El programa ENTRA.CPP realiza la tarea reciproca, es decir, la recepción de un


fichero desde el puerto paralelo tiene su diagrama de bloques en la Figura 1.31.

I n ic io

R e c ib ir e l
A r c h iv o p o r e l
P u e r t o P a r a le lo

F in

Figura 1.31- Diagrama de flujo de la rutina que recibe un archivo por el puerto
paralelo.

23
Aquí también, la tarea de recibir un archivo, es llevada a cabo por una
subrutina. El Diagrama de Flujo de esta, se detalla en la Figura 1.32.

I n ic io

- A b r e e l a r c h iv o
d e r e c e p c io n
p a r a le c t u r a
- I n i c ia liz a p u e r t o
co m o e n tra d a

- I n a c tiv a B u s y
-R e ta rd o
- A c t iv a B u s y

Lee el Reg.
d e E s ta d o s

N O E l r e t a Sr dI o
es m ayor
a 5 S e g .?

- C ie r r a e l
A r c h iv o
- S a le d e l la z o

E s t á S Nt rO o b1 e
I n a c t iv o ?

S I

Figura 1.32 - Diagrama de flujo de la rutina que recibe un archivo desde el


puerto paralelo.

24
1

-L e e e l B y te
-G u a rd a e l B y te
e n e l A r c h iv o
re c e p o r
- A c t iv a A c k n o

Lee el Reg.
d e E sta d o s

E s t á S tNr oO b e
A c t iv o ?

SI
I n a c t iv a
Ackno

E l r e t a rNd oO - C ie r r a e l
es m enor
a 5 S e g .? A r c h iv o

SI

2 F in

Figura 1.32- Diagrama de flujo de la rutina que recibe un archivo desde el puerto
paralelo.

25
Ahora es el turno de las rutinas que se encargan de codificar un fichero y
enviarlo a través del puerto paralelo.

En la Figura 1.33 tenemos el diagrama de bloques de la rutina que se


encarga de codificar un bloque de datos.

Inicio

Usando al Polinomio Generador


y a un Registro de Desplazamiento
se obtiene el Polinomio de Paridad

Construir la palabra codificada


usando el Polinomio de Paridad
y el Polinomio de Datos a Codificar

Fin

Figura 1.33- Diagrama en bloques de la rutina que se encarga de Codificar un


bloque de datos.

Cabe recordar que el Código usado es el Reed-Solomon, un derivado del


conocido Código BCH, que esta basado en la codificación de símbolos de nn bits
cada uno, en nuestro caso nn=8 bits, lo cual significa que cada símbolo usado es
un byte.

26
El organigrama del programa principal: TRANSMITE.EXE, que codifica y
envía el fichero está en la Figura 1.34

I n ic io

- I n g r e s a e l n o m b r e d e l A r c h iv o
a T r a n s m it ir

No
E x is t e e l a r c h iv o ?
NO

SI D e f in ic io n d e c a r a c t e r ís t ic a s
d e l c o d ig o R e e d - S o lo m o n

- G e n e r a C a m p o d^e8 )G a l o i s G F ( 2
- O b t ie n e e l P o lin o m io G e n e r a d o r

- C a lc u la la lo n g . d e l A r c h iv o
- D e t e r m in a la c a n t . d e b lo q u e s

G e n e r a e l b lo q u e d e in f o r m a c ió n lo
c o d if ic a y g u a r d a e n e l a r c h iv o

- C o d ific a lo s b lo q u e s d e D a t o s y
lo s g u a r d a e n e l A r c h iv o .

- T r a n s m it e e l A r c h iv o c o n
lo s d a t o s C o d ific a d o s

F in

Figura 1.34- Diagrama del programa TRANSMITE.EXE que codifica un archivo y


lo envía por el puerto paralelo.

27
Ejemplo Numérico de la Codificación

Durante la codificación de un archivo, se debieron implementar varios


trucos para llevarla a cabo. La rutina que codifica la información, solo lo hace para
223 bytes y este número surge de la característica definida para el código, que es
la siguiente: RS(255, 223), esto significa que el código genera un bloque de datos
codificados de 255 bytes, de los cuales 223 bytes son información y 32 son bytes
de paridad. Existe otra relación importante entre estas magnitudes: n es el nro.
de bytes que tiene el bloque codificado y k es el número de bytes de información,
n-k es el número de errores que se detectan y (n-k)/2 nos da el número de
errores que se pueden corregir.

Además, el código puede detectar un cierto número de bytes y corregir otro


tanto, teniendo en cuenta la relación 2C + D <= n-k en donde C es el número de
bytes erróneos que se pueden corregir y D el número de bytes que se pueden
detectar.

El problema surgió cuando se quería codificar un fichero, el cual puede ser


de unos cuantos bytes hasta varios kbytes. La solución adoptada fue dividir al
fichero en bloques de 223 bytes más un resto, que debe ser menor a 223 bytes.
Para pasar esta información al programa decodificador, al generar el fichero con la
información codificada, se agrego un bloque extra al principio del archivo
denominado Infoblock, que contiene la cantidad de bytes sobrantes que se
obtiene al dividir el tamaño total del fichero en 223 bytes. Este bloque cumple la
función de permitir reconstruir el fichero cuando se reciba en la otra PC. El
Infoblock tiene en sus 223 bytes de información el número de bytes sobrantes,
que luego son codificados por el programa antes de ser almacenado en archivo.
Luego del Infoblock se adicionan los bloques de 223 bytes codificados, es decir
son bloques de 255 bytes y al final se agrega el último bloque que contiene los
bytes restantes del archivo, completando los 223 bytes con ceros, para ser
codificados y almacenados al final del fichero.

Se muestra en la Figura 1.35 la estructura de un archivo codificado, con la


metodología expuesta anteriormente.

Infoblock

Bloque Nro 1

...
Archivo
Codificado
...

...

Bloque Nro q

Bloque con Resto

Figura 1.35- Estructura de un archivo codificado.

28
En donde “q” es el número de bloques de 223 bytes que posee un fichero.

Después de codificar cada bloque de 223 bytes se convierten en bloques de 255


bytes. Veremos todo esto, con un simple ejemplo numérico:

Supongamos que deseamos codificar un fichero de 5225 bytes de tamaño,


entonces este archivo tendrá 23 bloques de 223 bytes y un resto de 76 bytes, es
decir:

q = 23 bloques de 223 bytes cada uno

Resto = 76 bytes

Tamaño de archivo = q*223 + resto [bytes]

Al codificar el fichero tendremos como primer bloque al Infoblock con 255


bytes, luego q bloques de 255 bytes y finalmente un bloque Resto de 255 bytes,
totalizando 255 + 23*255 + 255 = (q+2)*255 [bytes] = 6375 bytes para el
nuevo fichero generado, que contiene toda la información codificada y lista para
ser enviada.

La tarea de recibir al fichero codificado es realizada por el programa


RECIBE.EXE, el cual también lleva a cabo la decodificación del mismo cuyo
diagrama de bloques se presenta en la Figura 1.36.

29
El Programa RECIBE.EXE

I n ic io

D e f in ic io n d e c a r a c t e ís t ic a s
d e l c o d ig o R e e d - S o lo m o n

-G en erar C a m p o d e
G a lo is G F ( 2 e x p 8 )
- O b t e n e r e l P o lin o m io
G e n e ra d o r

- R e c ib ir e l A r c h iv o
- D e t e r m in a r D a t o s
d e l A r c h iv o R e c ib id o

N O SI
R e la c ió n d e
ta m a ñ o c o rre c ta ?

- L e e r B lo q u e d e I n fo r m a c ió n
- D e c o d if ic a r e l b lo q u e
- O b t e n e r in fo r m a c io n d e l
A r c h iv o O r ig in a l

- L e e r b lo q u e s r e s t a n t e s
- D e c o d ific a r lo s b lo q u e s
- R e c o n s t r u ir e l A r c h iv o
O r ig in a l

- C e r r a r t o d o s lo s a r c h iv o s

F in

Figura 1.36- Diagrama del programa RECIBE.EXE que recibe un archivo por el
puerto paralelo y lo decodifica.

30
Ejemplo Numérico de la Decodificación

Este programa se recibe el fichero para luego decodificarlo. Para


decodificar, la rutina que se encarga de esa tarea, decodifica bloques de 255
bytes, entonces se procede con el proceso inverso para decodificar al fichero en
bloques y así lograr reconstruirlo.

El primer paso luego de recibir el fichero es calcular su tamaño y dividiendo


por 255, se obtiene el número de bloques “p”. Si este cociente me devuelve resto
cero significa que se recibió el número correcto de bytes y se prosigue deduciendo
que el fichero tiene (p-2) bloques, suponiendo que el primer bloque es el
Infoblock y el último bloque del archivo es el bloque resto. Luego se lee el
Infoblock, primer bloque del archivo y decodificándolo se obtiene del mismo, el
número de bytes restantes del fichero original. Con estos datos se puede
determinar el tamaño del fichero original. Lo haremos nuevamente continuando
con los datos del ejemplo anterior:

Si salió todo bien, deberíamos obtener 6375 bytes como tamaño del archivo
que al dividir en 255, nos da que tiene 25 bloques=p, de los cuales:

p-2=23 bloques son de datos


+
un bloque seria el Infoblock
+
un bloque resto, con datos del fichero

total = 25 bloques

Estos sencillos cálculos nos indican que la Relación de Tamaño coincide con
lo esperado, por lo tanto, continuamos con la decodificación de los datos. Se lee
un bloque, se decodifica y se graba en un fichero, que al final será la
reconstrucción del fichero original que se envió desde la otra PC; seguimos así
hasta que completamos los p-2 bloques de datos y finalmente recuperamos los
últimos bytes del fichero original que están el Bloque Resto. De esta manera
terminamos por reconstruir al fichero original.

Hay que aclarar que se logra reconstruir cada bloque si se producen 16 o


menos errores, que es la capacidad de corrección que tenemos en el código
implementado. En caso contrario. la rutina de decodificación no puede corregir los
errores y me devuelve el bloque de datos con todos los errores.

La rutina de decodificación esta explicada en detalle en el listado del


programa que se encuentra en el apéndice. En la Figura 1.37 solo se lista su
diagrama esquemático.

31
Rutina que decodifica un Bloque de Datos

I n ic io

- C á lc u lo d e S in d r o m e s
- A lm a c e n a m ie n t o d e
S in d r o m e s

- U t iliz a n d o la I t e r a c ió n
d e B e r le k a m p s e e n c u e n t r a
e l P o l in o m io d e L o c a liz a c ió n
d e E rro re s (E L P )

G ra d o d e E L P
NO m ayor que SI
N ro M a x d e E rro re s

- N o s e p u e d e n c o r r e g ir C a lc u lo d e la s R a íc e s d e l E L P
T o d o s lo s e r r o r e s ( P o l i n o lmo ci oa l idz dea ec i ó n
E rro re s )

- U s a n d o la s R a íc e s d e E L P
s e d e t e r m i n a n la s p o s ic io n e s
d e lo s e r r o r e s

NO G rad o d e E LP
ig u a l q u e
SI
N ro d e E rro re s

- U s a n d o la s R a íc e s d e - U s a n d o la s R a íc e s d e
E L P s e d e t e r m in a n la s E L P s e d e t e r m in a n la s
p o s ic io n e s d e lo s p o s ic i o n e s d e lo s
e rro re s e r r o r e s y s e c o r r ig e n

- C e r r a r t o d o s lo s a r c h iv o s

F in

Figura 1.37- Diagrama en bloques de la rutina que se encarga de decodificar un


bloque de datos.

32
CAPITULO 2: Configuración y Operación

2.1- Calibración del Hardware

Para facilitar el análisis y calibración del Hardware, se puede dividir en dos


circuitos al circuito Transmisor. Cada uno recibe una señal y la procesa para
retransmitirla a la siguiente etapa como se muestra en la Figura 2.1.

Diagrama en Bloques del Circuito Transmisor

PC CON VERSO R CONVERSORD E LINEA


DIGITAL CORRIENTEA
ANALOG ICO TENSION

Figura 2.1- Diagrama en bloques del circuito Transmisor

El primer circuito es el conversor D/A mostrado en la Figura 2.2. Este


circuito convierte una señal digital de 8 Bits en una señal analógica, el conversor
DAC0800 posee corrientes de salida complementarias.

Conversor Digital Analógico

Data Input

10V
Rref 5 6 7 8 9 10 11 12 I0
14 4
DAC0800
Rref
15 2 I0
3 16 13 1

0.1uF 0.1uF

0.01uF
V- V+

Figura 2.2- Esquema del conversor digital analógico.

Este circuito posee dos resistencias que se pueden modificar para aumentar
o reducir la corriente de referencia según las características que se requieran, en
este caso Rref=10K, todos los demás elementos que lo componen permanecen
fijos, ya que la variación de algunos de ellos no modifican la corriente de salida
del conversor. El circuito siguiente actúa como un circuito inversor y como un
conversor de corriente a tensión, se muestra en la Figura 2.3 los componentes
que lo componen, la resistencia RL se puede ajustar para modificar la corriente IL
y así obtener la excursión deseada (de 0 a +5V) y el capacitor C7 (150pF) que
actúa como un paso a tierra para las corrientes parásita

33
Conversor de Corriente a Tensión

RL

IL
Ii
E0
C7 T L081

Figura 2.3- Esquema del Circuito Conversor de Corriente a Tensión.

El valor de RL se adopto en 5K con una tolerancia del 1%, luego este valor
se reemplazó en las ecuaciones 1.1, 1.2 y 1.3 para obtener los demás datos del
diseño. En la Figura 2.4 se muestran ambos circuitos conectados.

Circuitos Conversores

CONVERSOR D/A INVERSOR

RL

IL
VREF =10V RREF
4
I0 E0
DAC0800 C7 TL081
RREF
2
I0

Figura 2.4- Esquemas del los circuitos conversores.

El circuito receptor tiene implementado un conversor A/D que sólo trabaja


con valores positivos de tensión (de 0 a +5V), dado a que tenemos valores
negativos presentes en la salida del conversor D/A, el circuito conversor de
corriente a tensión también cumple la función de inversor. Todo esto se realiza
con un solo operacional, el TL081 es un circuito que posee un ancho de banda de
4Mhz y un Slew Rate de 13V/uS y cumple con los requisitos de este proyecto.

Nota: Las hojas de datos del circuito TL081 se encuentran en el Apéndice E.

Nota: El TL081 se lo puede reemplazar por un LF351 que posee características


similares, no obstante se probó también con el operacional LM741 y se obtuvo un
incremento de errores debido a su bajo Slew Rate (0.5V/uS).

Nota: El circuito inversor se lo podría implementar también en el circuito receptor,


esto es posible pero no conveniente ya que a la hora de realizar mediciones

34
tendríamos una señal de corriente circulando por la línea de transmisión
dificultando así la medición.

2.2- Medición

Con el fin de poder realizar medidas sobre la señal Transmitida, a


continuación, se detallan los pines del conector Canon (macho).

3-Vseñal

4-GND 2 -Strobe
2

5-Busy 1-AutoFD

Figura 2.5- Detalle de los Pines del Conector Canon.

2.3-Líneas de Conexión

Línea de Transmisión

La transmisión de señal se realiza a través de un cable de 20 mts., de 5


conductores aislados y una malla protectora. Este cable posee en cada extremo
una ficha hembra tipo Canon de 5 pines que se corresponden, esto quiere decir
que se pueden intercambiar los extremos sin problemas. Estos dos conectores
facilitan la conexión y desconexión de la línea de ambos módulos. La Figura 2.6
muestra un cable armado de 1 mts con ficha Canon, este cable se utilizó para
hacer transmisiones de ensayo.

35
Cable Armado que Conecta Ambos Módulos

Figura 2.6- Cable de datos con ficha Canon.

Línea de Datos

Para la interfaz PC/módulo o línea de datos se utilizó un cable armado de 25


conductores de 1.80 mts de largo, posee en sus extremos un par de conectores
DB25 macho como se muestra en la Figura 2.7.

Interfaz PC Módulo

Figura 2.7- Cable de datos que conecta la PC al Módulo.

36
Línea de Alimentación

La línea de alimentación está compuesta por un cable aislado de 1.80 mts


de longitud conectado a una ficha tipo Interlock y a una ficha de dos patas planas
para conectar al toma corriente (220AC). El cable de alimentación se muestra en
la Figura 2.8

Línea de Alimentación

Figura 2.8- Cable de Alimentación.

2.4- Señalización del Hardware

En la Figura 2.9 se muestran los LEDs indicadores instalados en la parte superior


de ambos módulos. Esta característica ayuda a menudo a identificar fallas y
proporciona información visual de la transmisión.

Vista Superior del Módulo Transmisor

ON MSB

ON

PWR
LSB

Figura 2.9- LEDs Indicadores.

37
FUNCION DE LOS LEDs
INDICADORES
LED ESTADO FUNCION
Encendido Módulo Encendido
VERDE
Apagado Módulo Apagado
Encendido Bit ON
ROJO
Apagado Bit OFF

Figura 2.10- Función de los LEDs Indicadores.

2.5- Especificaciones Técnicas del Hardware

ESPECIFICACIONES TECNICAS DEL HARDWARE


SIMBOLO PARAMETRO CONDICION TRANS. RECEPT. UNIDAD
Voltaje de
VS 220 220 VAC
Alimentación
Corriente de
IS Máx. velocidad 19 14.8 mA
Alimentación
Tiempo de
TC 100 uSeg.
Conversión

Velocidad de
CR Modo libre 8870 conv/Seg
Conversión

Frecuencia de
fclk 640 KHz
Reloj
Tiempo de
TS 100 nSeg
Establecimiento
Resolución 8 8 Bits
No linealidad ±0.19% %FS
Error de Escala
EC ±1 LSB
Conversión Completa
Sensibilidad a la
Fuente de ±1/16 LSB
Alimentación
Disipación de Vs=±12V,
PD Potencia del IREF=1 mA 100 mW
Conversor
Fclk=640KHz,
Corriente
VREF/2=2.5V,
ICC continua en el 2 mA
TA=25ºC
Conversor
y CS=5V

Capitulo 3: Ensayos

38
3.1- Preparación y Configuración

Para llevar a cabo los ensayos y poner a prueba el Hardware con el


Software, al principio se debió configurar ambas máquinas instalando un sistema
operativo de versión anterior al WINDOWS XP. Los sistemas operativos en que se
puede hacer correr los programas realizados en este proyecto son: WINDOWS 95,
98, 2000, y WINDOWS ME que permiten al usuario trabajar con el puerto paralelo
si la necesidad de parches.

Luego se conectan los módulos con las PCs mediante sus interfaces y se
verifican que las máquinas tengan su correcta conexión a tierra. La falta de la
conexión a tierra en alguna de ellas produce un incremento en el error de
transmisión a tal punto en que se podría superar la capacidad de corrección del
código RS(255,223).

Por último se realiza la conexión de ambos módulos mediante un cable de


par trenzado apantallado de aproximadamente 20 mts. de longitud similar al que
se muestra en la Figura 2.6

Para determinar la cantidad de errores se realizó un programa que cuenta


los errores que se producían en el envío de cada archivo. Este programa se
denomina filecomp.exe.

ARCHIVOS DE PRUEBA

Los archivos de prueba fueron archivos de números enteros crecientes y


también aleatorios, comprendidos entre 0 y 255. Estos archivos fueron grabados
previamente en las unidades “C:\” de ambas máquinas, para luego poder
comparar y contar los errores producidos en la transmisión.

ARCHIVOS DE PRUEBA
NOMBRE TIPO CONTENIDO TAMAÑO (BYTES)
100 Nros. Enteros
100.DAT BINARIO 200
Crecientes

200 Nros. Enteros


200.DAT BINARIO 400
Crecientes
300 Nros. Enteros
300.DAT BINARIO 600
Crecientes
255 Nros. Enteros
RAN.DAT BINARIO 512
Aleatorios

Figura 3.1- Características de los Archivos de Prueba.

3.2- Realización de los Ensayos

El Parámetro “D”

39
El parámetro “D” es un valor entero que indica el retardo en milisegundos.
Este parámetro se encuentra presente en el argumento de la función delay() del
código C++, por ejemplo para un retardo de 500 milisegundos el valor del
parámetro “D” debe ser D=500. La función delay(D), se encuentra presente en
puntos específicos del software y ayuda a la coordinación de la transmisión.

Detección de Errores

Este ensayo consistió en modificar el parámetro “D” de los programas


SALE.EXE y ENTRA.EXE para obtener la máxima velocidad de transmisión, sin que
se exceda la cantidad máxima de errores permitidos ó en el peor de los casos que
se detenga la transmisión.

El programa FILECOMP.EXE compara dos archivos, el recibido por el puerto


y el archivo original (que también se encuentra presente en la PC destino). Este
programa cuenta las diferencias entre los Bytes que componen los archivos,
siendo 0 cuando los archivos son idénticos e incrementándose con cada diferencia.
Cada Byte diferente se cuenta como un error que se produce en la transmisión.
Los datos de este ensayo se muestran en la Figura 3.2.

DATOS DEL ENSAYO


TAMAÑO TIEMPO
NOMBRE ERRORES
(BYTES) (Seg.)
CON EL PARAMETRO D=10
100.DAT 200 1 7.8
200.DAT 400 2 14.9
300.DAT 600 5 22.4
RAN.DAT 512 4 19.1
CON EL PARAMETRO D=5
100.DAT 200 0 3.5
200.DAT 400 2 6.9
300.DAT 600 6 10.2
RAN.DAT 512 4 8.8
CON EL PARAMETRO D=1
100.DAT 200 0 1.3
200.DAT 400 1 2.7
300.DAT 600 6 4
RAN.DAT 512 3 3.2

Figura 3.2- Ensayos de Errores.

Nota: Para esta prueba se utilizó un cable par trenzado de 1 metro Figura
2.6 y los archivos recibidos fueron comprados con el programa FILECOMP.EXE.

Con el parámetro D=0 se detuvo la transmisión por lo tanto el mínimo valor


para este parámetro es D=1, con este valor se obtuvo una velocidad media de
transmisión de 152 Bytes/Seg sin que se supere la cantidad máxima de errores
(16 errores) Figura 3.3.

40
VELOCIDAD DE TRANSMISION (D=1)
TAMAÑO TIEMPO Velocidad
NOMBRE
(BYTES) (Seg) Byte/Seg
100.DAT 200 1.3 153
200.DAT 400 2.7 148
300.DAT 600 4 150
RAN.DAT 512 3.2 160
Velocidad Media 152

Figura 3.3- Velocidad de Transmisión.

DATOS DEL ENSAYO UILIZANDO EL CODIGO CORRECTOR DE ERRORES


CON EL PARAMETRO D=1
TAMAÑO (BYTES)
NOMBRE ERRORES
Sin codificar Codificado
100.DAT 200 510 0
200.DAT 400 765 0
300.DAT 600 1020 0
RAN.DAT 512 765 0

Figura 3.2- Ensayos utilizando el Código Corrector de Errores.

3.3- Análisis de Resultados

Cabe destacar que el código RS(255,223) tiene la capacidad de corregir 16


bytes por cada bloque de 255 bytes, por ejemplo el código pueda corregir 64
bytes en 4 boques de 255 bytes si y solo si se producen como máximo 16 bytes
de errores en cada bloque. Si se producen más de 16 errores en un bloque y en
otro menos de 16 entonces el archivo se puede recuperar en forma parcial.

El código RS puede configurarse para corregir más errores en bloques


mayores incrementando así la capacidad de corrección.

41
Al aumentar la capacidad de corrección del código también se debe
incrementar la capacidad de cómputo de la PC, es decir, se necesita mayor poder
de computación a medida que se incrementa el número de errores a corregir. El
numero de cálculos que debe realizar la rutina de decodificación es mucho mayor
que la rutina de codificación resultando en un impedimento a la hora de
implementar corrección de errores vía software.

Finalmente se puede concluir que tenemos una opción económica y muy


práctica, dado a que no es necesario cambiar el hardware existente. Para recibir
un archivo sin errores solo se deben utilizar las rutinas de codificación y
decodificación en el software de comunicación.

CONCLUSIONES FINALES

La realización de este trabajo permitió la aplicación de distintos


conocimientos adquiridos durante la carrera, como así también la introducción de
nuevos conceptos que aportan al estudio de los sistemas de comunicación y
adquisición de datos.

Se implementó un enlace de comunicación para un Banco de Pruebas de


Modelos de Canales bajo el concepto de código y hardware abierto. El código
abierto permite el trabajo con diferentes Códigos Correctores de Errores, siendo
estos programables como una subfunción que se llama desde el código principal.
En particular resulta útil para la evaluación de modelos computacionales y su
validación empírica, en cuanto al comportamiento real. Este sistema además,
permite la inclusión de códigos relacionados con Algoritmos de Ecualización Digital
de Canales. El hardware fue desarrollado en forma discreta y permite la selección
del nivel de la señal analógica.

Para la verificación del sistema se trabajó a modo de referencia con el


Código Reed-Solomon con (255, 223) y símbolos de 8 bits, utilizando un enlace
de cable telefónico de cobre. Se realizaron múltiples ensayos con y sin el código
para determinar la cantidad de errores que se realizaban en la transmisión.

El software actual está elaborado para permitir la comunicación en un solo


sentido, la estructura del hardware permite la comunicación bidireccional sólo en
los bits de control para el Handshaking.

PROPUESTA PARA TRABAJOS FUTUROS

Es de interés para la continuación en esta línea de trabajo, la elaboración


de una interface gráfica que permita la automatización de todo el proceso de
selección del Código y sus configuraciones, y el análisis automatizado de los
resultados (BER Tasa de Error, Diagrama de Ojo, Histograma de Ecualización).

42
Ing. Fernando F. Figueroa

43

Potrebbero piacerti anche