Sistema de transmisión de datos utilizando un transmisor/receptor analógico UHF/VHF
SISTEMA DE TRANSMISION DE DATOS UTILIZANDO UN TRANSMISOR/RECEPTOR ANALOGICO UHF/VHF Christian Castro Velándres Universidad Peruana de Ciencias Aplicadas (UPC) Facultad de Ingeniería – Escuela Profesional de Ingeniería Electrónica, Lima - Perú
[email protected]
Christian Bernal López Universidad Peruana de Ciencias Aplicadas (UPC) Facultad de Ingeniería – Escuela Profesional de Ingeniería Electrónica, Lima - Perú
[email protected]
Prof. Guillermo Kemper Vásquez Universidad Peruana de Ciencias Aplicadas (UPC) Facultad de Ingeniería – Escuela Profesional de Ingeniería Electrónica, Lima - Perú
[email protected]
Prof. Enrique Arnaez Braschi Universidad Peruana de Ciencias Aplicadas (UPC) Facultad de Ingeniería – Escuela Profesional de Ingeniería Electrónica, Lima - Perú
R ESUMEN ESUMEN El proyecto apunta a realizar una transmisión de datos por medio del canal de radiofrecuencia en la banda UHF/VHF. Esto se logra por medio de la implementación de dos estaciones conformadas por una computadora y cualquier transceiver (transmisor/receptor) operante en las mencionadas bandas. En las respectivas estaciones se implementaron interfaces para acoplar la tarjeta de sonido con los equipos transmisores, a fin de establecer una comunicación mediante portadoras de audio en el modo BFSK (Binary Frequency Shift Keying) generadas por software. El proyecto intenta cubrir la necesidad de poder contar con un sistema de comunicación que permita enviar información en forma rápida y eficiente. El sistema tiene las bondades de ser portátil, es decir puede ser instalado en un vehículo y servir como envío de datos de una móvil a una base.
communication using BFSK (Binary Frequency Shift Keying) modulation generated generated by software. software. The project tries to cover the need to be able to count on a system of communication that be of under cost and permit to send information in efficient and quick form. The system has the kindnesses to be portable, that is to say to be able to be installed in a vehicle and thus in this manner can serve like shipment of data of a mobile one to a base.
1.- Introducción
ABSTRACT
El presente proyecto de tesis fue planteado con el objetivo de comprobar la transmisión de datos en radiofrecuencia. Inicialmente se eligió la banda HF, sin embargo luego de varias pruebas y analizando los niveles de ruido presentes en el canal, se optó por descartar el uso esta banda y optar por la banda de UHF y VHF, las cuales presentan menores niveles de ruido e interferencias. El sistema de comunicación planteado posee la capacidad de enviar datos a distancia en un área local con una cobertura de 100Km.
This project consists to carry out a broadcast of data through the channel of radio frequency frequency in UHF and VHF bands. This is achieved through the implementation of two stations each one formed by a computer and a transceiver operating in the radio frequency bands. In the respective stations are implemented interfaces to adapt the sound card signal with the transmitters with the objective of establishing
Hasta el momento el sistema de transmisión ha logrado enviar datos por medio de los canales UHF / VHF con la ayuda de una PC (Computadora Personal). El esquema de modulación utilizado es el BFSK (Binary Frequency Shift-Keying). La modulación es realizada inicialmente con portadoras de la banda de audio (1600Hz y 2000Hz), las cuales son moduladas vía programa utilizando MATLAB (este paquete es
Universidad Peruana de Ciencias Aplicadas (UPC)
1
Sistema de transmisión de datos utilizando un transmisor/receptor analógico UHF/VHF
Fig. 1 Diagrama de bloques del sistema de comunicación propuesto utilizado solo para el prototipo del proyecto. La versión final será implementada en lenguaje C++). La señal modulada en el dominio discreto es enviada a la tarjeta de sonido donde se realiza la conversión D/A (digitalanálogo). La señal analógica resultante presenta un espectro de frecuencia centralizado en 1800Hz y un ancho de banda aproximado de 1200Hz. Esta señal es enviada en seguida al transceiver, el cual simplemente colocará el espectro de entrada en la banda de RF correspondiente. En la recepción, el transceiver colocará nuevamente el espectro en la banda de audio, a fin de que la señal pueda ser adquirida a través de la tarjeta de sonido. La demodulación es realizada a través de un programa utilizando el esquema BFSK no coherente. Los datos binarios son transmitidos y recepcionados en tramas o paquetes de bits. Esto permite asegurar una adecuada sincronización de la información y una mejor administración y control de los posibles errores de transmisión. El sistema en su conjunto puede tener múltiples aplicaciones. Se ha desarrollado un aplicación de envío de coordenadas rectangulares y otra de telemetría (envió de datos de temperatura). Esta ultima fue desarrollada en lenguaje Borland C++ Builder.
2.- OBJETIVOS •
Cubrir la necesidad de contar con un sistema de transmisión de datos en radiofrecuencia que sea portátil. Universidad Peruana de Ciencias Aplicadas (UPC)
• • • •
Demostrar la ventaja de usar la modulación BFSK en presencia de señales perturbadoras. Desarrollar un protocolo de comunicación bastante confiable y robusto frente e eventuales errores de transmisión. Maximizar la tasa de transmisión, en función de las limitaciones de banda de los transceivers analógicos utilizados. Orientar el sistema hacia a aplicaciones practicas donde se pueda verificar la utilidad del equipo.
3.- DESARROLLO DEL PROYECTO El diagrama de bloques sistema de comunicación implementado es presentado en la figura 1: Obsérvese que el “phone pad” es un periférico del transceiver que entrega señales recibidas por el equipo en formato de señales de audio. Así mismo, permite ingresar al transmisor cualquier señal (en la gama de audio) que se desea transmitir.
3.1- Modulación El sistema utiliza el esquema de modulación BFSK. Las portadoras utilizadas (1600Hz y 2000Hz) fueron seleccionadas de tal forma que sean ortogonales entre si (correlación cruzada igual a cero). Esta ortogonalidad se asegura colocando una separación de frecuencias múltipla de la tasa de transmisión. 2
Sistema de transmisión de datos utilizando un transmisor/receptor analógico UHF/VHF El sistema trabaja con una tasa de 400 bits/segundo, lo cual justifica el uso de portadoras de 1600 y 2000Hz. La figura 2 muestra la señal BFSK en el dominio temporal y su respectivo espectro en frecuencia. La figura 3 muestra por otro lado el diagrama de bloques del modulador BFSK.
f i =
nc + i T b
Para algún entero fijo nc , e i = 1,2
Para las portadoras del sistema se utiliza n c
(2)
=3 y
T b = 2.5 ms.
3.2.- Demodulación En el proceso de demodulación se implementó el receptor BFSK no coherente. De acuerdo a ello, la señal recepcionada con fase desconocida se multiplica por cos(2πf it) y sen(2 πf it). Esta operación se debe realizar por cada portadora f i que utiliza el sistema. Las muestras resultantes de cada multiplicación se integran y los resultados (tanto provenientes del coseno y del seno) son elevados al cuadrado y en seguida sumados. Finalmente por cada portadora se tiene un valor numérico resultante del proceso de demodulación. El símbolo transmitido se determina identificando la portadora que obtuvo el mayor valor numérico (debe recordarse que para el esquema BFSK se tiene dos portadoras que representan al símbolo “1” y al símbolo “0” respectivamente). El receptor no coherente utilizado es mostrado en la Fig. 4.
Fig. 2. Señal BFSK en el dominio temporal (figura superior) y su espectro en frecuencia (figura inferior). __
m(t )
X
φ 1 (t ) = 2 / T b cos(2t π f 1 ) Flujo de datos binario
Codificador de nivel activadodesactivado
+
Σ +
Señal FSK Binaria s(t)
3.3.- Formato de trama de datos
__
Invertidor
m(t ) __
X
m(t ) φ 2 (t ) = 2 / T b cos(2t π f 2 )
Fig. 3. Diagrama de bloques del modulador BFSK. En un sistema FSK Binario, los símbolos “1” y “0” se distinguen uno del otro a través del uso de 2 portadoras de diferentes frecuencias. De acuerdo al diagrama de la Fig. 2, solo una de las portadoras se transmite en cada tiempo de bit (T b) dependiendo si el dato es “1” ó “0”. Un par característico de estas ondas senoidales se expresa por medio de la siguiente expresión:
2E b cos(2π f i t ) 0 ≤ t ≤ T b S i (t) = T b 0, otra forma
(1)
Una vez demodulada la información, se procede a extraer las tramas de datos a partir de una larga secuencia de bits recepcionada. La extracción de trama es realizada identificando los códigos de “start” y “stop” (inicio y finalización de trama). Los códigos considerados para este caso fueron “0000” para “start” y “1111” para “stop”. Luego de ser identificada la trama se procede a verificar si el dato recibido es una petición de envío de información o simplemente un dato irrelevante. La Fig. 5 muestra el formato de trama establecido en el trabajo. En la Fig. 6 se muestra el diagrama de flujo del proceso de detección de trama en el receptor. Como puede observarse, el receptor lee continuamente los datos de entrada y solo valida la presencia de una trama cuando detecta los bits de “start” y “stop”. Luego se procede a verificar si la trama contiene algún error a través del método de chequeo de redundancia cíclica que es descrito a continuación.
donde i=1,2, mientras que Eb es la energía de bit de la señal transmitida.
Campo CRC (Chequeo de Redundancia Cíclica):
El valor de las frecuencias es definido por:
Existen varios métodos para garantizar que los datos no hayan sido modificados por el ruido e interferencias en
Universidad Peruana de Ciencias Aplicadas (UPC)
3
Sistema de transmisión de datos utilizando un transmisor/receptor analógico UHF/VHF
T b
∫
X
( )2
0
+
cos(2πf 1t) T b
∫
X
r(t)
Símbolo Transmitido
( )2
0
Detección del mayor valor
sen(2πf 1t) T b
∫
X
( )2
0
+
cos(2πf 2t) T b
∫
X Señal proveniente del tranceiver y digitalizada por la PC para la detección de símbolos transmitidos.
( )2
0
sen(2πf 2t)
Fig. 4. Diagrama de bloques del demodulador BFSK no coherente.
Fig.5. Formato de trama Inicio
Se encontró bits de Start y Stop
No
Si
Sistema Valido?
No
Si
Usuario valido ?
No
Si
ID paquete
Dato
Ultimo Dato?
No
Si Fin
Fig 6. Diagrama de Flujo del algoritmo de detección de trama Universidad Peruana de Ciencias Aplicadas (UPC)
4
Sistema de transmisión de datos utilizando un transmisor/receptor analógico UHF/VHF
el proceso de transmisión. De acuerdo a ello, se trata de generar un código único de corrección de errores asociado a determinados datos, de tal forma que se pueda detectar cualquier error presente en una trama de transmisión. Entre los diferentes métodos de detección y corrección de errores se escogió el método de chequeo de redundancia cíclica (CRC), dada su amplia utilización en diferentes sistemas de comunicaciones digitales. Estos códigos son insertados como redundancia (datos adicionales que no llevan información) en una trama de datos, a fin de permitir que en el receptor se pueda detectar y corregir posibles errores de transmisión. Los códigos cíclicos se pueden describir en forma de polinomios. Esta propiedad es extremadamente útil en el análisis e implementación. El vector que describe a una palabra de código “c” se puede expresar como un polinomio de grado “n-1”, donde “n” es el numero de bits del código (datos+bits de paridad CRC) y Cn los bits del código: c(x)=C1Xn-1+C2Xn-2+...+Cn
(3)
Entre los tipos de códigos cíclicos mas utilizados se encuentran los códigos cíclicos sistemáticos. En este tipo de códigos, los primero “k” bits son conformados por los bits de datos, mientras que los últimos “n-k” bits constituyen los bits de paridad CRC asociado a los bits de datos en cuestión. Una palabra de código c(x) correspondiente a un polinomio de datos d(x) (de grado k-1) se define como:
c( x ) = x
n −1
d ( x ) + p( x ) = q ( x )g ( x )
(4)
donde g(x) es el polinomio generador de grado “n-k”; q(x) es un polinomio de grado “k-1” (o menor) definido como: x n − k d( x ) + p( x ) g( x )
= q( x )
(5)
x n − k d( x ) g( x )
(6)
Puesto que q(x) es del orden “k-1” o menor, entonces q(x)g(x) es una palabra de código. Debido a que X nUniversidad Peruana de Ciencias Aplicadas (UPC)
d(x) representa a d(x) desplazada hacia la izquierda “nk” dígitos, los primeros “k” dígitos de esta palabra de código son los bit de datos, mientras que los últimos “nk” dígitos correspondientes a p(x) deben ser dígitos de comprobación de paridad CRC. Para construir un código cíclico se usará como ejemplo el polinomio generador : g(x) = x3+x2+1. Esto significa que serán 4 bits de comprobación de paridad CRC a ser insertados en una trama de datos. Se asumirá también un vector de datos d=1010, es decir k=4, d(x)=x3+x , n=8, n-k =4, , y xn-k d(x)=x6+x4. Por lo tanto haciendo la división polinómica
x n − k d ( x ) g( x )
3
2
se obtiene el cociente q(x) = x + x + 1 y el
resto p(x) =1:
3
x3 + x2 + 1 q(x) + x + 1 x6 + x4 x6 + x5 + x3 5 + x4 + x3 x5 + x4 + x2 3 + x2 x3 + x2 + 1 1 2
p(x)
Luego la palabra de código c(x)= q(x)g(x) es dada por:
c(x) = (x3 + x2 + 1 )( x3 + x2 + 1) = x6 + x4 + 1
(7)
De acuerdo a ello, se tiene c=1010001. Observe que los “k” bits más significativos constituyen los datos, mientras que los “n-k” bits menos significativos constituyen los bits de comprobación de paridad CRC asociados a los bits de datos. Cabe resaltar que todas la sumas definidas en este procedimiento son realizadas bit a bit en modulo 2. Para el caso del proyecto, se utilizó un polinomio generador de 16 bits definido como :
g ( x ) = x 16 + x 15 + x 2 + 1
Por otro lado, p(x) es definido de la siguiente forma: p( x ) = Re s
1
(8)
Los 16 bits de comprobación de paridad CRC son generados a partir de este polinomio generador y de toda la información de una trama, con excepción de los bits de “start” y “stop”. En la Fig. 7 se muestra el diagrama de bloques de un circuito generador de códigos cíclicos.
5
Sistema de transmisión de datos utilizando un transmisor/receptor analógico UHF/VHF
gn-k-1
gn-k-2
g1 P 1
Entrada de datos D
D
D
D
k dígitos de datos
P 2
Interruptor “s”
Fig. 7. Diagrama de bloques de un circuito generador de códigos cíclicos Para la generación de los bits de comprobación de paridad CRC, los “k” dígitos de datos son desplazados uno a la vez a la entrada del circuito con el interruptor “s” en la posición “ p1” (cada bloque D representa un flip-flop del tipo “D”). Después de que el ultimo digito de datos ingresa al circuito (el más significativo), los dígitos de comprobación de paridad están disponibles en las salidas de cada flip-flop. Luego el interruptor “s” pasa a la posición p2 y los dígitos de comprobación de paridad son desplazados uno a la vez hacia la salida [1].
Decodificación del CRC Todo polinomio de código c(x) valido es un múltiplo de g(x). Si ocurre un error durante la transmisión , el polinomio de palabra recibida r(x) no será un múltiplo de g(x). De acuerdo a ello se tiene: r ( x ) g(x )
= m1 ( x ) +
s( x ) g( x )
(9)
el receptor mapea a un código de error e(x). De esa forma, a partir del síndrome se puede determinar si existe error o no en una trama. Si se recuerda que c(x) es un múltiplo de g(x), entonces el síndrome queda definido como: s( x ) = Re s
r ( x ) g(x)
= Re s
c( x ) + e( x ) g( x )
(12)
Por ejemplo si r=0110010, podría significar que c =1110010 y e=1101000 ó c =1110010 y e=1011010 u otras combinaciones. Sin embargo se puede asumir como el patrón de error mas probable, aquel que indique menor numero de digitos con error en la palabra de código, es decir aquel patrón con menor numero de “unos” [1]. En consecuencia se puede asumir que c =1110010 y e =1000000 como la decisión correcta. En el proyecto en cuestión se utiliza únicamente el CRC como un detector de errores, a fin de evitar los problemas detallados en el ejemplo anterior.
4.- APLICACIONES DESARROLLADAS CON
y
EL SISTEMA s( x ) = Re s
r ( x ) g( x )
(10)
En donde el polinomio de síndrome s(x) tiene grado “nk-1” (o menor). Si se define e(x) como el polinomio de error, entonces : r ( x ) = c( x ) + e( x )
(11)
Cuando todos los dígitos de e(x) son “0”, entonces se verifica que la trama de información esta libre de error. Por otro lado, cada código de síndrome s(x) obtenido en Universidad Peruana de Ciencias Aplicadas (UPC)
4.1.- Transmisión de coordenadas Se ha diseñado una aplicación en Matlab que permita usar de manera efectiva el sistema de transmisión. La aplicación desarrollada consiste en el envío de coordenadas rectangulares. Esta aplicación permite transmitir seis coordenadas en paquetes , siendo que cada uno constituye un par ordenado. Este sistema esta formado por un algoritmo que se encarga de convertir los datos de coordenada de decimal a binario. Por ejemplo si lo que se desea es enviar la coordenada 2,1 el programa formará el vector [0 0 0 0 1 0 0 0 0 0 0 1], 6
Sistema de transmisión de datos utilizando un transmisor/receptor analógico UHF/VHF los 6 primeros bits identifican a la coordenada Y y los 6 restantes a la coordenada X, los datos convertidos a vector son ingresados al programa de transmisión de datos que por medio de funciones van colocando a estos datos en las tramas de transmisión. En el destino los datos son extraídos de las tramas (previa comprobación CRC para descartar posibles errores), y luego son convertidos en base decimal para poder mostrarlos en un plano cartesiano. En una prueba se transmitió las coordenadas (1,1), (2,2), (3,3), (4,4), (5,5) y (6,6) y en el destino se obtuvo lo mostrado en la Fig. 8. Coordenadas Recibidas 6
Fig 9. Vista de la interfase gráfica de la aplicación de envió de datos de temperatura
5.5
5
4.5 Datos de Temperatura en el destino 19
4 18.5 Y e j E
3.5
18
s o d a 17.5 r g i t n e C 17 s o d a r g n e 16.5 a r u t a r e p m 16 e T e d r 15.5 o l a V
3
2.5
2
1.5
1
1
1 .5
2
2 .5
3
3 .5 Eje X
4
4 .5
5
5 .5
6
Fig 8. Coordenadas recibidas 4.2.- Transmisión de datos de temperatura Otra aplicación desarrollada es la de envío de datos de temperatura elaborada en lenguaje Borland C++ Builder. En el transmisor se toman las muestras de temperatura por medio de un sensor de temperatura de tipo termistor NTC con rango de temperatura de –30 °C a - + 130°C. La señal proveniente del sensor es ingresada por el puerto del Joystick a fin de ser procesada. El termistor se conecta a dos pines del puerto de Joystick uno de los cuales entrega 5VDC y el otro es el que recoge la diferencia de voltaje según la temperatura que se este registrando en ese instante. El rango de captura es de 0 a 5VDC el cual pasa por un conversor A/D de la tarjeta de sonido y este entrega valores de entre 0 a 65535. Es decir el conversor esta trabajando con una precisión de 16 bits. Luego el dato recogido mediante un escalamiento es convertido al rango de temperatura en grados centígrados y es mostrado en pantalla como se muestra en la Fig. 9. Para transmitir estos datos se recogen valores cada 3 segundos y se van almacenando en un archivo “.m” que luego Matlab recogerá y transmitirá con el programa de transmisión. Para lograr esto se ha utilizado la función “fopen” de Builder a fin de generar archivos “.m” y así poder lograr una interfaz entre Builder y Matlab. La aplicación en C++ Builder tiene la Visual mostrada en la figura 9: Universidad Peruana de Ciencias Aplicadas (UPC)
15
14.5
14
0
2
4
6 Numero de Dato recibido
8
10
12
Fig 10. Datos de temperatura en el receptor. (La curva muestra una tendencia de la temperatura)
5.- R ESULTADOS En la figura 11 se muestra las señales de transmisión y recepción en el dominio temporal y en el dominio de la frecuencia. en UHF.
Fig. 11. Señales de transmisión (parte superior) y recepción (parte inferior) con sus respectivos espectros en frecuencia 7
Sistema de transmisión de datos utilizando un transmisor/receptor analógico UHF/VHF
Como se mencionó al inicio se intento usar la banda de HF, sin embargo los niveles de ruido son altos en dicha banda lo que nos motivo a cambiar a UHF / VHF para nuestro proyecto. En la Fig. 12 se muestra el espectro de una señal de un equipo RF Kenwood modelo TS440S.
•
detección coherente seria mucho mas difícil y en términos de costos muy alto. Se comprobó con lo logrado en el proyecto que es posible enviar datos en la banda de UHF / VHF con equipos comerciales móviles analógicos.
R ECOMENDACIONES Nótese que el canal de RF atenúa el espectro y distorsiona la señal recibida. Cabe mencionar que en la señal de recepción se percibió la influencia de la componente de la red eléctrica de 60Hz por lo que se optó por pasar la señal por un filtro digital FIR pasa banda entre 1100Hz y 2 900Hz. También se tuvo en el destino la influencia de las portadoras de los equipos por lo que se implementó un filtro en Hardware para evitar que esta señal se inserte y atenúe la señal de mensaje. Actualmente el sistema permite una transmisión halfduplex de 400bits/seg dejando total libertad al usuario de diseñar e implementar su aplicación sobre esta plataforma de comunicación.
•
•
•
1
0.5
0
-0.5
-1 0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
tiempo(seg)
800
600
400
200
0
0
2000
4000
6000
8000 frecuencia(Hz)
10000
12000
14000
16000
Fig. 12. Señal y espectro de una señal de un equipo de comunicación en HF.
CONCLUSIONES •
•
• •
•
Se comprobó que una correcta selección del canal de operación permite una comunicación con buena calidad ya que en la banda de HF hubiera sido muy difícil establecer la comunicación. Experimentalmente quedo verificado que las tierras en los experimentos de laboratorio deben estar adecuadamente acopladas a fin de evitar distorsiones en las señales. Se verificó la incidencia del ruido de la red eléctrica de 220v por lo que se tuvieron que usar filtros para evitar distorsionar la señal mensaje. La recuperación de la data se logró colocando bits de inicio y parada a fin de poder reconocer la información relevante en la trama recibida. De no usar este método sería imposible reconocer la data relevante. Se comprobó que el uso de la detección no coherente es mas simple de implementar ya que no es necesario conocer la fase. El implementar una
Universidad Peruana de Ciencias Aplicadas (UPC)
•
El presente proyecto y su realización comprenden la primera etapa de un proyecto mayor que se debe perfeccionar con el paso del tiempo a través del uso nuevas herramientas y de tecnologías emergentes. Las aplicaciones que se pueden desarrollar en base a la velocidad de transmisión alcanzada, se centran principalmente en el área de control y telemetría. Esto siempre y cuando las variables no sean en extremo criticas o que no necesiten transmisión en tiempo real, de esta manera se puede obtener un sistema práctico de medición de variables para un control o simplemente para supervisión. La implementación de este sistema y el desarrollo del proyecto son una gran herramienta didáctica por que se comprende en la practica conceptos teóricos sobre RF, procesamiento de señales, protocolos de comunicación y modulación. Por medio de la investigación se obtienen herramientas y con la experimentación se logran los objetivos planteados. Esto supone una gran inversión en tiempo y esto se ve reconocido con el nivel de conocimientos que se obtienen sobre el tema al finalizar el proyecto. Para el diseño de este proyecto se contemplaron las normas sobre el uso del espectro de frecuencias a fin de no interferir en el canal de otros usuarios.
R EFERENCIAS BIBLIOGRÁFICAS [1] B. P. Lathi, “Sistemas de Comunicación”, Nueva Editorial Interamericana, 1986. [2] Simon Haykin, Hardcover, 1988.
“Digital
Communications”,
[3] Manual Equipo RF Kenwood modelo TS-440S.
8