Simulación e implementación de la modulación BPSK en una FPGA Xilinx Spartan 3 xcs200-4ftp256
- Abstracto
- Descripción
- Implementación del
modulador y demodulador en la tarjeta FPGA spartan3 de
Xilinx - Conclusiones
- Referencias
El presente trabajo
presenta la simulación
de la modulación BPSK usando el programa Simulink
de Matlab, así como su implementación en la tarjeta
FPGA (Arreglo de compuertas programables por el usuario) Spartan
3 de la compañía Xilinx.
Se muestra los pasos
realizados en la simulación tanto de la modulación
como de la demodulación y las herramientas
necesarias para poder
implementar la simulación en la tarjeta. Se indican
además pautas para la realización de modulaciones
FSK y OOK.
Modulación BPSK
En esta modulación se tiene como resultados
posibles dos fases de salida para la portadora con una sola
frecuencia. Una fase de salida representa un 1 lógico y la
otra un 0 lógico. Conforme la señal digital de
entrada cambia de estado, la
fase de la portadora de salida se desplaza entre dos
ángulos que están 180° fuera de
fase.
Transmisor de BPSK
La figura siguiente muestra un diagrama de
bloques simplificado de un modulador de BPSK. La señal
codificada ingresa a un multiplexor el mismo que conmuta la fase
de la señal portadora, dependiendo de la condición
lógica
de la entrada digital, la portadora se transfiere a la salida, ya
sea en fase o 180° fuera de fase, con el oscilador de la
portadora de referencia.
El espectro de salida de un modulador de BPSK es,
sólo una señal de doble banda lateral con portadora
suprimida, donde las frecuencias laterales superiores e
inferiores están separadas de la frecuencia de la
portadora por un valor igual a
la mitad de la razón de bit. En consecuencia, el
mínimo ancho de banda requerido, para permitir el peor
caso de la señal de salida del BPSK es igual a la
razón de bit de entrada. La siguiente figura muestra la
fase de salida contra la relación de tiempo para
una forma de onda BPSK.
Figura 1: Modulación
BPSK
Receptor de BPSK
El esquema siguiente muestra el diagrama de bloques de
un receptor de BPSK.
La señal de entrada puede ser +cos(wt) ó
–cos(wt). El circuito de recuperación detecta y
regenera una señal de portadora, tanto en frecuencia como
en fase, con la portadora del transmisor original. El modulador
balanceado es un detector de producto; la
salida es el producto de las dos entradas (la señal de
BPSK y la portadora recuperada). Debido a que se tiene como
posibles salidas las señales
cos(wt) y –(coswt), entonces al pasar por el detector de
producto se tendrá los siguientes resultados:
cos2(wt) = ½ + ½
cos(2wt)
cos2(wt) = – ½ –
½ cos(2wt)
como se necesita solo la parte continua entonces se
utiliza un filtro pasa-bajas (LPF) el mismo que separa los
datos binarios
recuperados de la señal demodulada compleja
[1].
Modulador BPSK
Como la simulación se realiza utilizando Simulink
y los componentes de System Generator, es necesario conocer las
siguientes herramientas necesarias para la simulación e
implementación.
Herramientas de Simulink
- Pulse Generator: simula un tren de
pulsos. - Scope: osciloscopio
utilizado para visualizar los resultados. - Sine Wave: Genera funciones
senoidales.
Herramientas de System Generator
- Mcode: Hace una llamada a un archivo .m de
Matlab y lo ejecuta dentro de la simulación
[2]. - Gateway In: Hace una aproximación al comportamiento de una señal en hardware.
- Gateway Out: Regresa una aproximación del
comportamiento de una señal en hardware al modo
simulación. - Mult: Realiza la multiplicación una o
más entradas. - FIR: Simula un Filtro FIR, haciendo una llamada a la
herramienta FDATool de Matlab. - System Generador: Provee control del
sistema y
parámetros de simulación, y es usada para invocar
al código generado. - Resource Estimator: Presenta los recursos de la
tarjeta utilizados en la simulación del
circuito. - FDATool: Interfaz que permite configurar las
características del filtro
System Generator
Es una herramienta de software que permite crear y
verificar diseños de hardware para FPGAS de Xilinx,
funciona en conjunto con Simulink y Matlab.
Además permite la inclusión de
herramientas DSP para diseñar con FPGAs, generación
automática de código HDL a partir de un modelo en
Simulink y permite al usuario crear sus propias bibliotecas.
Simulación:
La primera fase es la realización del modulador
basándose en el siguiente esquema:
Figura 2: Modulador
BPSK
La señal codificada es ingresada en el bloque
(Mcode), el mismo que funciona como multiplexor entre las dos
señales portadoras (cos(t) y -cos(t))
dependiendo de los valores
binarios de la señal a transmitirse.
Este bloque Mcode hace una llamada un archivo .m el cual
contiene la programación del multiplexor de la
siguiente forma:
function salida =
BPSKmultiplex
(ent_codif,porta,porta_despl);
if ent_codif==1;
sal = porta;
else
sal = porta_despl;
end
Este código, permite obtener una señal
portadora (porta) de salida cuando la entrada es un nivel de
voltaje alto, un coseno en este caso, y una señal
coseno desfasado (porta_despl) de salida cuando la entrada es un
nivel de voltaje bajo. Este estado alto o bajo lo da la
señal que contiene la información.
La señal a la salida del multiplexor es la
modulada y está lista para ser lanzada al
canal.
En la parte superior de la siguiente gráfica se
muestra la señal que contiene la información y en
la inferior, la señal modulada.
Figura 3: Señal de
información-Señal modulada
Demodulador BPSK
La demodulación se la realiza en base al esquema
que se describe a continuación.
Figura 4: Demodulador
BPSK
Para demodular la señal proveniente del canal, se
utiliza un bloque (Mult), el mismo que multiplica la señal
por la portadora recuperada.
El filtro FIR pasa-bajas separa la señal continua
de amplitud + ½ recuperada de la señal
demodulada compleja y permite seleccionar la señal de
frecuencia cero (+1/2 o -1/2).
Este filtro se obtiene haciendo una llamada a la
herramienta de Matlab FDATool, interfaz que permite
diseñar un filtro pasabajas.
Debido a que a la salida del filtro existen
señales con ½ de la amplitud y con rizado en el
borde de cada pulso, se colocará un bloque "comparador"
que además de proporcionar niveles de voltaje de unos y
ceros, evitará el rizado de tales pulsos. El código
del archivo .m del comparador se presenta a
continuación:
function sal = BPSKcompa
(ent)
If ent > 0
sal = 1;
else
sal = 0;
end
Este código, permite obtener a su salida un nivel
de voltaje 1, cuando la entrada (ent) es mayor a cierto voltaje
de referencia en este caso 0V y un nivel de voltaje 1 cuando la
entrada (ent) es menor a dicho voltaje de referencia.
Además se debe mencionar que para la
simulación del canal de transmisión se
colocará un bloque generador de ruido
Gaussiano blanco.
A continuación, se presenta el proceso de
demodulación simulado.
Figura 5: Proceso de
Modulación-Demodulación. Resultados arrojados por
el software
- La primera figura representa la señal
codificada contenedora de la información. - La segunda figura representa señal modulada
que se envía al canal. - La tercera figura muestra la señal modulada
con ruido. - La cuarta figura representa la señal
recuperada a la salida del filtro pasabajas. - Finalmente la quinta figura representa la
señal a la salida del comparador, y es la señal
contenedora de información recuperada. Se puede observar
que ésta señal tiene cierto retrazo debido al
procesamiento del computador
Implementación del modulador y demodulador
en la tarjeta FPGA spartan3 de Xilinx.
Para poder implementar los moduladores en la tarjeta
Sarpatn3 es necesario conocer conceptos básicos sobre cual
es su funcionamiento y su estructura
interna:
(FPGA) Matriz de
compuertas lógicas programables por el
usuario
Un FPGA consiste en arreglos de varios bloques
programables (bloques lógicos) los cuales están
interconectados entre si y con celdas de entrada/salida mediante
canales de conexión verticales y horizontales
[3].
Una FPGA presenta las siguientes
características:
- Consumo medio de Potencia,
aunque hay familias especializadas en bajo consumo - Velocidad intermedia
- Fiabilidad alta
- Tiempo de desarrollo
muy bajo. - Metodología sencilla
- Equipamiento sencillo
- Aumentan la confidencialidad de las placas
[4]
Figura 6: Arquitectura
Básica de un FPGA
Spartan-3
Las FPGAs Xilinx Spartan™ son ideales para las
aplicaciones de bajo costo y alto
volumen y son
designadas como reemplazos para arreglos de compuertas de
lógica fija y para productos
estándar de aplicación específica (ASSP),
productos como sets de chips para interfase de bus [5].
Figura 7: Foto de la
Sapartan-3
La foto muestra la tarjeta que se utilizará en la
implementación de las simulaciones. Los dispositivos
Spartan se caracterizan por tener una arquitectura flexible y
regular que se compone de un arreglo de bloques lógicos
configurables (Configurable Logic Blocks o CLBs), rodeados por
bloques de entrada/salida programables (programmable Input/Output
Blocks o IOBs).
Herramientas del programa para la
Implementación
Para la implementación de los moduladores OOK,
FSK y BPSK, ya simulados, se utilizará una herramienta
ofrecida por Xilinx, denominada JTAG Co-Sim, bloque que
permitirá la co-simulación del diseño
elaborado en la tarjeta Spartan-3.
Figura 8: Bloque JTAG
Cosimulation
En este bloque se puede observar que ya se encuentran
listas las salidas y entradas para su uso, de tal forma que nos
facilite el
trabajo.
Este bloque lo conseguiremos con doble click en
el bloque system generator y escogiendo las opciones de
simulación más convenientes.
Una vez agregado al diseño, debemos verificar que
la tarjeta se encuentre correctamente conectada al computador.
Luego ejecute.
Implementación en la Tarjeta
Spartan-3
El diseño completo es presentado en la
gráfica siguiente [6].
Figura 9: Diagrama de bloques del
proceso Modulación-Demodulación
El resultado de la simulación es comparada con
los resultados arrojados por la tarjeta lo que nos permite
corroborar el acercamiento a la realidad de la simulación.
La siguiente grafica presenta los resultados obtenidos de la
implementación en la tarjeta:
Figura 10: Proceso de
Modulación-Demodulación. Resultados arrojados por
la tarjeta.
Se puede observar que prácticamente los
resultados obtenidos en la tarjeta son los mismos que se obtuvo
en la modulación lo que nos da como referencia que la
simulación tiene un gran acercamiento a la
realidad.
Así como se ha realizado la simulación e
implementación en la tarjeta esta modulación,
también es posible realizar cualquier otra
simulación. Como incentivo al lector a que conozca mas
sobre estas herramientas se da pautas para la realización
de las modulaciones FSK y OOK las mismas que guardan un parecido
común lo cual facilita su
implementación.
Primeramente hay que tener presente que en la
modulación FSK lo que varía no es la fase de la
señal, sino la frecuencia lo que ase podría
realizar utilizando un bloque que no contenga una portadora
desfasada sino a una portadora de frecuenta diferente. Del mismo
modo en la modulación OOK se puede implementar teniendo en
cuenta que para el cambio de
valor binario de la señal codificada se utiliza una
señal portadora para el valor de 1 y una señal de
cero cuando la portadora vale 0. Esta parte se la facilita
utilizando programación en Matlab y haciendo una llamada a
través de un bloque Mcode.
- Las herramientas de Simulink ofrecen una gran
facilidad en lo que es simulaciones de sistemas de
comunicación en general. - Gracias a las herramientas mencionadas en el presente
paper se ha simplificado el proceso que comprende el pasar de
simulación a implementación de diseños,
sin la necesidad de ser un Ingeniero en hardware. - Se puede observar que el uso de la herramienta Mcode
de System Generator, no ofrece ventajas tales como minimizar el
uso de recursos de la tarjeta y la simplicidad de
diseño. - Dado que los resultados obtenidos en hardware son
dependientes del diseño en software, es mucho más
sencillo realizar cambios en estos resultados por medio del
software, incluso después de terminado el diseño
y su implementación, ítem que es considerado uno
de los más importantes en el desarrollo de este tipo de
diseños.
[1] SISTEMAS DE COMUNICACIÓN DIGITALES Y
ANLALÓGICOS, Leon W. Couch, Quinta Edición.
[2]
http://www.xilinx.com/products/software/sysgen/app_docs/user_guide_Chapter_7_Section_3.htm
[3] INTRODUCCIÓN A LOS DISPOSITIVOS FPGA.
ANÁLISIS Y EJEMPLOS DE DISEÑO, Bozich Eduardo
Carlos
[4] DISPOSITIVOS LÓGICOS PROGRAMABLES, CAPII,
Torres Valle Francisco
[5]
http://www.xilinx.com/products/silicon_solutions/fpgas/spartan_series/spartan3_fpgas/index.htm
[6] Workshop Xilinx University Program, ISTEC,
Pontificia Universidad
Javeriana de Cali Colombia (PUJ),
University of New México,
RedDSP – PUJ-UTPL, Ing. Ferney Amaya, Ing. Alonzo
Vera.
Johanna S. Ruque*,
David I. Ruiz*,
Carlos E.
Carrión&
Escuela de Electrónica y Telecomunicaciones,
Grupo de Electricidad y
Sistemas Electrónicos
Universidad Técnica Particular de Loja