Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fernando Figueroa
INTRODUCCION
5
CAPITULO 1: Descripción del Sistema
a) Hardware
b) Software
1.1- HARDWARE
PC PC
TRANSMISORA RECEPTORA
INFORMACION
CIRCUITO ANALOGICA CIRCUITO
TRANSMISOR RECEPTOR
6
1.1.1-CIRCUITO TRANSMISOR
a) Circuito Transmisor
b) Circuito Receptor
Descripción General
Diseño y Construcción
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
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
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
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
RL
RREF 4 -
VREF =10V I0
E0
DAC0800 TL081
RREF de0a+I FS .R L
2 +
I0
I FS . R L = 5V
(1.0)
255
I FS ≈ * I REF (1.1)
256
10V
I REF = (1.2)
R REF
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
Información Visual
Corriente de Alimentación
10
Conversor Digital Analógico DAC0800
Descripción General
Características
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
Descripción General
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
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.
Vout short to
Isource 4.5 6 mA
GND
13
Corrientes para los niveles lógicos de entrada(74LS540)
Parámetros
Símbolo (entrada de Condiciones Min Typ Max Unid.
corriente)
Características.
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
1.2- SOFTWARE
15
1.2.0-Introducció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.
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
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
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
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.
1.2.2-Programas y Subprogramas
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
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.
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
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
22
1
Lee el Reg.
-Lee el Reg.
de Estados
de Estados
NO Está Ackno NO
Está Ackno
Inactivo? Activo?
SI SI
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
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.
Inicio
Fin
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
27
Ejemplo Numérico de la Codificación
Infoblock
Bloque Nro 1
...
Archivo
Codificado
...
...
Bloque Nro q
28
En donde “q” es el número de bloques de 223 bytes que posee un fichero.
Resto = 76 bytes
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
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:
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.
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
32
CAPITULO 2: Configuración y Operación
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+
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
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
RL
IL
VREF =10V RREF
4
I0 E0
DAC0800 C7 TL081
RREF
2
I0
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
3-Vseñal
4-GND 2 -Strobe
2
5-Busy 1-AutoFD
2.3-Líneas de Conexión
Línea de Transmisión
35
Cable Armado que Conecta Ambos Módulos
Línea de Datos
Interfaz PC Módulo
36
Línea de Alimentación
Línea de Alimentación
ON MSB
ON
PWR
LSB
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
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
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).
ARCHIVOS DE PRUEBA
ARCHIVOS DE PRUEBA
NOMBRE TIPO CONTENIDO TAMAÑO (BYTES)
100 Nros. Enteros
100.DAT BINARIO 200
Crecientes
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
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.
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
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.
CONCLUSIONES FINALES
42
Ing. Fernando F. Figueroa
43