Mejora de la electrónica de control de los filtros sintonizables de

Anuncio
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
MEJORA DE LA ELECTRONICA DE CONTROL DE LOS FILTROS
SINTONIZABLES DE OSIRIS.
Por
Guillermo Alfonzo Herrera Carlés.
Sartenejas, 0ctubre de 2004
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
MEJORA DE LA ELECTRONICA DE CONTROL DE LOS FILTROS
SINTONIZABLES DE OSIRIS.
Por
Guillermo Alfonzo Herrera Carlés.
Realizado con la Asesoría de
Ing. José Vicente Gigante.
Prof. Juan Claudio Regidor.
PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de Ingeniero Electrónico.
Sartenejas, 0ctubre de 2004
2
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
MEJORA DE LA ELECTRONICA DE CONTROL DE LOS FILTROS
SINTONIZABLES DE OSIRIS.
PROYECTO DE GRADO presentado por
Guillermo Alfonzo Herrera Carlés.
REALIZADO CON LA ASESORIA DE
Ing. José Vicente Gigante, Prof. Juan Claudio Regidor.
RESUMEN
La razón de este trabajo viene dada por la necesidad de ampliar las prestaciones del
controlador original CS100, para un Filtro Sintonizable Fabry-Perot, según las exigencias del
proyecto OSIRIS. Para lograr esto, se intervino al CS100, aprovechando sus partes útiles: el
servocontrol de paralelismo, los circuitos de sensado de posición y los circuitos de alta tensión.
Esta intervención se hizo a través de distintos conectores presentes en el CS100. De esta
manera, se ha diseñado para tal fin, una tarjeta de aplicación, y una tarjeta de control. La tarjeta
de aplicación lleva a cabo la generación y la captura de las señales necesarias, y la tarjeta de
control, basada en una FPGA con un microcontrolador embebido, se encarga del control
digital. Se configuró un banco de pruebas ópticas, para probar el alcance del prototipo. Los
resultados iniciales son excelentes y muy alentadores, cumpliendo con todas las
especificaciones del proyecto OSIRIS, y aún más allá, se logra una resolución sobre el Filtro
Sintonizable Fabry-Perot de 0,15nm, que era más de lo previsto.
PALABRAS CLAVES
Astrofísica, Telescopios, Filtros Sintonizables, Fabry-Perot, FPGA, Nanoposicionamiento.
Aprobado con mención:_______
Postulado para el premio:_______
Sartenejas, 0ctubre de 2004
3
INDICE GENERAL
1.
INDICE DE FIGURAS................................................................................................................................. 8
2.
INDICE DE TABLAS................................................................................................................................. 11
3.
LISTA DE ABREVIATURAS Y NOMENCLATURA............................................................................ 12
4.
INTRODUCCION ...................................................................................................................................... 16
5.
FUNDAMENTOS TEORICOS ................................................................................................................. 19
5.1
LOS TELESCOPIOS........................................................................................................................... 19
5.1.1
Definición. ...................................................................................................................................... 19
5.1.2
Tipos de telescopios........................................................................................................................ 19
5.1.3
Monturas......................................................................................................................................... 20
5.1.4
Estaciones focales........................................................................................................................... 21
5.1.5
Solares y nocturnos. ....................................................................................................................... 22
5.1.6
Óptica activa y adaptativa.............................................................................................................. 23
5.1.7
Espectro electromagnético. ............................................................................................................ 24
5.1.8
Instrumentación de los telescopios. ................................................................................................ 25
5.1.8.1
Fotómetro. ............................................................................................................................. 25
5.1.8.2
Cámara. ................................................................................................................................. 26
5.1.8.3
Espectrógrafo. ....................................................................................................................... 27
5.1.8.4
Cámaras-espectrógrafos. ....................................................................................................... 28
5.1.8.5
Espectroscopia multiobjeto. .................................................................................................. 29
5.1.8.5.1 Máscaras de aperturas..................................................................................................... 29
5.1.8.5.2 Máscaras reconfigurables. .............................................................................................. 30
5.1.8.5.3 Robot Posicionador de Fibras Ópticas............................................................................ 30
5.1.8.6
Espectroscopia de campo integral. ........................................................................................ 32
5.1.8.7
Analizadores de polarización. ............................................................................................... 32
5.1.8.8
Coronografía. ........................................................................................................................ 32
5.1.8.9
Filtros sintonizables............................................................................................................... 32
5.2
GRANTECAN .................................................................................................................................... 33
5.2.1
Propósito. ....................................................................................................................................... 33
5.2.2
Funcionamiento. ............................................................................................................................. 33
5.2.3
Ventajas. ......................................................................................................................................... 34
5.2.4
Instrumentación. ............................................................................................................................. 35
5.2.5
Óptica. ............................................................................................................................................ 35
5.3
OSIRIS ................................................................................................................................................ 36
5.3.1
Descripción general........................................................................................................................ 36
5.3.2
Funcionamiento. ............................................................................................................................. 37
5.3.3
Modos de observación. ................................................................................................................... 38
5.3.3.1
Imagen................................................................................................................................... 38
5.3.3.2
Espectroscopía. ..................................................................................................................... 39
5.3.3.3
Modos rápidos....................................................................................................................... 39
5.3.4
Características principales............................................................................................................. 39
5.4
FILTROS SINTONIZABLES FABRY-PEROT. ................................................................................ 40
5.4.1
Teoría. ............................................................................................................................................ 40
5.4.2
Estructura del etalón. ..................................................................................................................... 45
5.4.3
Resumen de propiedades del etalón de OSIRIS.............................................................................. 46
5.5
CONTROLADOR CS-100. ................................................................................................................. 47
5.5.1
Descripción general........................................................................................................................ 47
5.5.2
Descripción del panel frontal. ........................................................................................................ 48
4
5.5.3
5.5.4
5.5.5
6.
PLANTEAMIENTO DEL PROBLEMA. ................................................................................................. 54
6.1
6.2
6.3
6.4
6.4.1
6.4.2
6.4.3
6.4.4
6.4.5
7.
Funcionamiento. ............................................................................................................................. 48
Explicación del esquema de conexión. ........................................................................................... 50
Comentarios.................................................................................................................................... 53
OBJETIVOS........................................................................................................................................ 54
SOLUCION......................................................................................................................................... 55
JUSTIFICACION................................................................................................................................ 56
ESPECIFICACIONES A CUMPLIR. ................................................................................................. 56
Capacidad de control remoto. ........................................................................................................ 56
Control de las señales de consigna................................................................................................. 56
Capacidad de sincronización. ........................................................................................................ 56
Control Automático de cuadratura................................................................................................. 56
Capacidad de comunicación. ......................................................................................................... 57
DISEÑO PRELIMINAR ............................................................................................................................ 58
7.1
MÓDULO 1. .......................................................................................................................................... 58
7.1.1
Estudio del sistema actual. ............................................................................................................. 58
7.1.2
Propuesta de control e intervención de señales. ............................................................................ 58
7.1.3
Características de los componentes necesarios.............................................................................. 59
7.1.4
Diagrama de bloques...................................................................................................................... 60
7.2
MÓDULO 2. .......................................................................................................................................... 63
7.2.1
Estudio del sistema actual. ............................................................................................................. 63
7.2.2
Propuesta de control e intervención de señales. ............................................................................ 64
7.2.3
Características de los componentes necesarios.............................................................................. 64
7.2.4
Diagrama de bloques...................................................................................................................... 65
7.3
MÓDULO 3. .......................................................................................................................................... 66
7.3.1
Estudio del sistema actual. ............................................................................................................. 66
7.3.2
Propuesta de control e intervención de señales. ............................................................................ 66
7.3.3
Características de los componentes necesarios.............................................................................. 66
7.3.4
Diagrama de bloques...................................................................................................................... 67
7.4
MÓDULO 4. .......................................................................................................................................... 67
7.4.1
Estudio del sistema actual. ............................................................................................................. 67
7.4.2
Propuesta de control e intervención de señales. ............................................................................ 68
7.4.3
Características de los componentes necesarios.............................................................................. 68
7.4.4
Diagrama de bloques...................................................................................................................... 69
7.5
MÓDULO 5. .......................................................................................................................................... 69
7.5.1
Estudio del sistema actual. ............................................................................................................. 69
7.5.2
Propuesta de control e intervención de señales. ............................................................................ 70
7.5.3
Características de los componentes necesarios.............................................................................. 70
7.5.4
Diagrama de bloques...................................................................................................................... 71
7.6
RESUMEN DE SEÑALES PARA EL CONTROL DIGITAL............................................................................... 71
7.6.1
Módulo 1......................................................................................................................................... 71
7.6.1.1
Entradas................................................................................................................................. 71
7.6.1.2
Salidas ................................................................................................................................... 72
7.6.2
Módulo 2......................................................................................................................................... 73
7.6.2.1
Entradas................................................................................................................................. 73
7.6.2.2
Salidas ................................................................................................................................... 73
7.6.3
Módulo 3......................................................................................................................................... 73
7.6.3.1
Entradas................................................................................................................................. 73
7.6.3.2
Salidas ................................................................................................................................... 73
7.6.4
Módulo 4......................................................................................................................................... 74
7.6.4.1
Entradas................................................................................................................................. 74
7.6.4.2
Salidas ................................................................................................................................... 74
7.6.5
Módulo 5......................................................................................................................................... 74
5
7.6.5.1
7.6.5.2
8.
Entradas................................................................................................................................. 74
Salidas ................................................................................................................................... 74
DISEÑO DETALLADO. ............................................................................................................................ 75
8.1
CONSIDERACIONES DEL CONTROL DIGITAL A IMPLEMENTAR. ............................................................... 75
8.2
FPGA XILINX SPARTAN -IIE. ............................................................................................................... 76
8.2.1
Descripcion de la familia Spartan- IIE........................................................................................... 76
8.2.2
Especificaciones Técnicas. ............................................................................................................. 77
8.3
TARJETA DE EVALUACIÓN DE AVNET. ................................................................................................ 78
8.3.1
Descripción..................................................................................................................................... 78
8.3.2
Especificaciones Técnicas. ............................................................................................................. 78
8.4
XPS (XILINX PLATFORM STUDIO). ....................................................................................................... 80
8.4.1
Descripción..................................................................................................................................... 80
8.4.2
Características................................................................................................................................ 80
8.5
EDK 6.1 ( EMBEDDED DEVELOPMENT KIT). ........................................................................................ 81
8.6
MICROBLAZE (MICROCONTROLADOR EMBEBIDO). ............................................................................... 81
8.6.1
Descripción..................................................................................................................................... 81
8.6.2
Características................................................................................................................................ 82
8.7
MÓDULOS CIRCUITALES DEFINIDOS. ..................................................................................................... 84
8.7.1
Breve introducción a Protel 99SE. ................................................................................................. 84
8.7.2
Módulo CAQ................................................................................................................................... 85
8.7.2.1
Funcionamiento. .................................................................................................................... 85
8.7.2.2
Selección de componentes..................................................................................................... 86
8.7.2.3
Esquemático. ......................................................................................................................... 87
8.7.3
Módulo DACs. ................................................................................................................................ 91
8.7.3.1
Funcionamiento. .................................................................................................................... 91
8.7.3.2
Selección de componentes..................................................................................................... 91
8.7.3.3
Esquemático. ......................................................................................................................... 93
8.7.4
Módulo Relés. ................................................................................................................................. 97
8.7.4.1
Funcionamiento. .................................................................................................................... 97
8.7.4.2
Selección de componentes..................................................................................................... 97
8.7.4.3
Esquemático. ......................................................................................................................... 98
8.7.5
Módulo LEDs................................................................................................................................ 101
8.7.5.1
Funcionamiento. .................................................................................................................. 101
8.7.5.2
Selección de componentes................................................................................................... 102
8.7.5.3
Esquemático. ....................................................................................................................... 102
8.7.6
Módulo Señales............................................................................................................................. 105
8.7.6.1
Funcionamiento. .................................................................................................................. 105
8.7.6.2
Selección de componentes................................................................................................... 105
8.7.6.3
Esquemático. ....................................................................................................................... 106
8.7.7
Módulo Galvanómetros. ............................................................................................................... 108
8.7.7.1
Funcionamiento. .................................................................................................................. 108
8.7.7.2
Selección de componentes................................................................................................... 109
8.7.7.3
Esquemático. ....................................................................................................................... 110
8.7.8
Módulo Sincronización-CCD. ...................................................................................................... 112
8.7.8.1
Funcionamiento. .................................................................................................................. 112
8.7.8.2
Selección de componentes................................................................................................... 112
8.7.8.3
Esquemático. ....................................................................................................................... 113
8.7.9
Módulo Interfaz. ........................................................................................................................... 113
8.7.9.1
Funcionamiento. .................................................................................................................. 113
8.7.9.2
Selección de componentes................................................................................................... 114
8.7.9.3
Esquemático. ....................................................................................................................... 115
8.7.10
Lista de materiales. .................................................................................................................. 119
8.7.11
Realización del diseño del circuito impreso. ........................................................................... 119
8.7.11.1
Consideraciones generales. ................................................................................................. 119
6
8.7.11.2
8.7.11.3
8.7.11.4
8.7.11.5
9.
Consideraciones técnicas..................................................................................................... 120
Fases del diseño................................................................................................................... 122
Presentación. ....................................................................................................................... 126
Resumen. ............................................................................................................................. 127
MONTAJE Y PRUEBAS DE LOS MODULOS. ................................................................................... 128
9.1
9.2
9.3
10.
TEST ELÉCTRICO................................................................................................................................. 128
TEST FUNCIONAL MÓDULO A MÓDULO. .............................................................................................. 128
INTERFAZ CON LA FPGA .................................................................................................................... 129
DESARROLLO DEL SOFTWARE DE APLICACIÓN. ................................................................. 132
10.1
ASPECTOS GENERALES. ...................................................................................................................... 132
10.2
ESTRUCTURA DEL MICROCONTROLADOR EMBEBIDO. ......................................................................... 132
10.3
CÓDIGO DEL PROGRAMA..................................................................................................................... 147
10.4
EXPLICACIÓN DEL CÓDIGO.................................................................................................................. 147
10.5
PRUEBA DEL SOFTWARE EN EL BANCO ÓPTICO. .................................................................................. 151
10.5.1
Descripcion del banco optico y sus elementos......................................................................... 151
10.5.2
Pruebas electrónicas realizadas y sus resultados.................................................................... 155
10.5.2.1
Prueba de los comandos básicos. ........................................................................................ 156
10.5.2.2
Prueba de los comandos avanzados..................................................................................... 157
10.5.3
Pruebas opticas........................................................................................................................ 162
11.
CONCLUSIONES Y RECOMENDACIONES.................................................................................. 165
12.
REFERENCIAS BIBLIOGRAFICAS................................................................................................ 167
13.
APENDICES......................................................................................................................................... 168
13.1
13.2
13.3
APÉNDICE A. LISTA DE MATERIALES.................................................................................................. 168
APÉNDICE B. CODIGO DEL PROGRAMA DEL MICROCONTROLADOR EMBEBIDO MICROBLAZE. ............ 169
APÉNDICE C. PRESUPUESTO DEL PROYECTO Y HORAS DE TRABAJO INVERTIDAS. ............................... 184
7
1. INDICE DE FIGURAS.
Figura 1. - Algunos tipos de telescopios ..................................................................................20
Figura 2. - Esquema de las estaciones focales del GTC. En la imagen de la derecha se ven las
plataformas Nasmyth (IAC).......................................................................................................22
Figura 3. - Esquema ejemplo de Observatorio Solar................................................................23
Figura 4. - Absorción atmosférica desde el ultravioleta al infrarrojo lejano. En la parte
superior se indica la posición de los filtros estándar más utilizados. ........................................25
Figura 5. - Esquema de un fotómetro .......................................................................................26
Figura 6. - Esquema de un espectrógrafo de prisma.................................................................28
Figura 7. - Esquema óptico de OSIRIS. La luz del telescopio incide desde la derecha sobre la
máscara de rendijas y llega al espejo colimador. De allí sale un haz colimado que es desviado
por un espejo plano y pasa por un filtro y el grisma para llegar a la cámara donde es focalizado
sobre el detector. Tanto el grisma como el filtro están sobre sendas ruedas. ............................29
Figura 8. - Unidad criogénica de rendijas configurables propuesta para EMIR. Las varillas
azules de cada uno de los lados se acercan para formar una rendija en el lugar deseado..........30
Figura 9. - Ejemplo de robots posicionadores de fibras. Arriba derecha, simulación de una
distribución de fibras de Hectospec. Abajo, sistema de sujeción de las fibras de Hectospec. ..31
Figura 10. - Diseño mecánico de OSIRIS. El esquema óptico de la figura 7,
y los
requerimientos ópticos y mecánicos han dado lugar a este diseño. Al ser un instrumento en el
rango visible, el criostato mantiene frío al detector solamente (IAC). ......................................37
Figura 11. - Esquema de conexiones de los Filtros Sintonizables en Osiris ............................38
Figura 12. - Foto de un etalón Fabry Pérot...............................................................................41
Figura 13. - Esquema de los rayos dentro un Fabry Pérot........................................................42
Figura 14. - Gráfica de la intensidad luminosa a la salida de un filtro Fabry Pérot en función
de la frecuencia normalizada. ....................................................................................................43
Figura 15. - Red de Interferencias ............................................................................................44
Figura 16. - Diagrama de los piezoeléctricos en el etalón........................................................45
Figura 17. - Foto del CS100 .....................................................................................................47
Figura 18. - Conexión de los capacitores del Fabry Pérot........................................................50
8
Figura 19. - Contínua a la izquierda : Vx, por ejemplo. Contínua a la derecha : señal a la
entrada del P.S.D fuera de la posición de equilibrio. Punteada, la señal desfasada cuando
tocamos a la manilla de cuadratura. En líneas de pequeños segmentos, la amplitud modificada
usando el botón x.......................................................................................................................52
Figura 20. - Línea contínua: señal a la entrada del P.S.D. Abajo: la señal de reloj. Punteada
Arriba : la señal a la salida mandada hacia el piezo. Punteada abajo: señal a la salida con una
mala sincronización ...................................................................................................................53
Figura 21. - Diagrama de bloques del módulo 1. Parte 1 .........................................................61
Figura 22. - Diagrama de bloques del módulo 1. Parte 2 .........................................................62
Figura 23. - Diagrama de bloques del módulo 1. Parte 3 .........................................................63
Figura 24. - Diagrama de bloques del módulo 2 ......................................................................65
Figura 25. - Diagrama de bloques del módulo 3 ......................................................................67
Figura 26. - Diagrama de bloques del módulo 4 ......................................................................69
Figura 27. - Diagrama de bloques del módulo 5 ......................................................................71
Figura 28. - Diagrama de la arquitectura del MicroBlaze ........................................................82
Figura 29. - Esquemático del Módulo CAQ para el canal X....................................................88
Figura 30. - Esquemático del Módulo CAQ para el canal Y....................................................89
Figura 31. - Esquemático del Módulo CAQ para el canal Z. ...................................................90
Figura 32. - Circuito para operación del DAC en modo bipolar. .............................................92
Figura 33. - Esquemático del Módulo DACs para el canal X. .................................................94
Figura 34. - Esquemático del Módulo DACs para el canal Y. .................................................95
Figura 35. - Esquemático del Módulo DACs para canal Z. .....................................................96
Figura 36. - Esquemático del Módulo Reles para la cuadratura en X e Y. ..............................99
Figura 37. - Esquemático del Módulo Relés para la cuadratura en Z.......................................99
Figura 38. - Esquemático del Módulo Relés para el Offset fino en X e Y.............................100
Figura 39. - Esquemático del Módulo Relés para el Offset fino en Z y grueso en X ............100
Figura 40. - Esquemático del Módulo Relés para el Offset grueso en Y y Z. ........................101
Figura 41. - Esquemático del Módulo LEDs para la salida de la FPGA. ...............................103
Figura 42. - Esquemático del Módulo LEDs para la entrada a la FPGA................................104
Figura 43. - Esquemático del Módulo Señales para la entrada a la FPGA.............................107
9
Figura 44. - Esquemático del Módulo Señales para la salida de la FPGA. ............................108
Figura 45. - Circuito del ADC propuesto por el fabricante. ...................................................110
Figura 46. - Esquemático del Módulo Galvanómetros...........................................................111
Figura 47. - Esquemático del Módulo Sincronización-CCD..................................................113
Figura 48. - Esquemático 1 de conexiones con el CS100. .....................................................115
Figura 49. - Esquemático 2 de conexiones con el CS100. .....................................................116
Figura 50. - Esquemático de conexiones de señales coaxiales y alimentación. .....................117
Figura 51. - Esquemático de conexiones con la FPGA. .........................................................118
Figura 52. - Presentación del PCB .........................................................................................126
Figura 53. - Presentación y descripción del banco óptico. .....................................................151
Figura 54. - Vista superior del banco de pruebas. ..................................................................152
Figura 55. - Interconexion con el CS100................................................................................153
Figura 56. - Generador de señales. .........................................................................................153
Figura 57. - Presentación de la Cónsola de comandos. ..........................................................155
Figura 58. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de
entrada cero (salida -Ref).........................................................................................................158
Figura 59. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de
entrada 16384. .........................................................................................................................158
Figura 60. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de
entrada 32768(salida cero).......................................................................................................159
Figura 61. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de
entrada 49150. .........................................................................................................................159
Figura 62. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de
entrada 65535 (salida +Ref). ...................................................................................................160
Figura 63. - Comenzando positiva, la señal de referencia, y comenzando negativa, la salida del
DAC Z para el valor cero, donde se denota la perfecta simetría de +Ref (de la referencia) con –
Ref (del DAC). ........................................................................................................................160
Figura 64. - Espectro en frecuencia de la señal de referencia donde se nota la componente de
15,6Khz, sin otras contribuciones relevantes en otras frecuencias..........................................161
Figura 65. - Señal del fotómetro con un paso de 10 cuentas a 500ms por paso.....................163
10
Figura 66. - Señal del fotómetro con un paso de 3 cuentas a 300ms por paso.......................164
Figura 67. - Señal del fotómetro con un paso de una cuenta a 100ms por paso.....................164
2. INDICE DE TABLAS.
Tabla 1.- Resumen de características principales de OSIRIS. ..................................................40
Tabla 2.- Resumen de propiedades del etalón de OSIRIS. .......................................................46
Tabla 3.- Características principales para la familia Spartan IIE según modelo.......................76
Tabla 4.- Cantidad de I/O disponibles para la familia Spartan IIE según modelo. ...................77
Tabla 5.- Relación de conversión del DAC. .............................................................................92
Tabla 6.- Resumen del PCB. ...................................................................................................127
Tabla 7.- Interfaz con la FPGA. ..............................................................................................131
Tabla 8.- Resumen de pruebas y resultados de los comandos básicos....................................156
Tabla 9.- Resumen de pruebas y resultados de los comandos avanzados. Parte 1..................157
Tabla 10.- Resumen de pruebas y resultados de los comandos avanzados. Parte 2................157
Tabla 11.- Resumen de pruebas y resultados de los comandos avanzados. Parte 3................161
Tabla 12.- Lista de materiales. ................................................................................................169
11
3. LISTA DE ABREVIATURAS Y NOMENCLATURA
IAC
Intituto de Astrofísica de Canarias.
CSIC
Consejo Superior de Investigaciones Científicas de España.
ENO
Observatorio Norte Europeo.
GTC
Gran Telescopio Canarias.
GRANTECAN Gran Telescopio Canarias.
ORM
Observatorio del Roque de los Muchachos.
INAOE
Instituto Nacional de Astrofísica, Óptica y Electrónica.
IA-UNAM
Instituto de Astronomía de la Universidad Nacional Autónoma de México.
CONACYT
Consejo Nacional de Ciencia y Tecnología de México.
OSIRIS
Optical System for Imaging and Low Resolution Integrated Spectroscopy.
CCD
Charge Coupled Device.
CCC
Closed Cycle Cooler.
ELMER
Instrumento de Imágenes Convencionales.
CANARI-CAM Cámara y Espectrógrafo en el Infrarrojo Térmico.
EMIR
Espectrógrafo Multiobjeto en el Infrarrojo.
UBVRI
U=Ultraviolet, B=Blue, V=Visual, R=Red, I=Infrared.
SDSS
Sloan Digital Sky Survey.
FWHM
Full Width Half Maximum.
TF
Tunable Filter.
UART
Universal Asynchronous Receiver / Transmitter.
FPGA
Field Programmable Gate Arrays.
CLB
Configurable Logic Blocks.
IOB
Input/Output Blocks.
DLL
Delay-Locked Loops.
RAM
Ramdom Access Memory.
IP
Integrated Peripheral.
DSP
Digital Signal Processing.
12
VHDL
Very High Speed Integrated Circuit Hardware Description Language.
JTAG
Joint Test Action Group.
PROM
Programmable Read Only Memory.
LVDS
Low Voltage Differential Swing.
MICTOR
Centerline Matched Impedance Connector.
MDR
Metadata Repository.
XPS
Xilinx Platform Studio.
MHS
Microprocessor Hardware Specification.
MSS
Microprocessor Software Specification.
GNU
Complete UNIX tyle operating system which is free software.
ACE
Adaptative Communication Environment.
EDK
Embedded Development Kit.
CPU
Central Processor Unit.
EST
Embedded System Tools.
RISC
Reduced Instruction Set Computer.
ILMB
Instruction Local Memory Bus.
DLMB
Data Local Memory Bus.
IOPB
Instruction On-chip Peripheral Bus.
DOPB
Data On-chip Peripheral Bus.
OPB
On-chip Peripheral Bus.
LMB
Local Memory Bus.
FSL
Fast Simplex Link.
ATM
Modo de Transferencia Asíncrona.
MAC
Media Access Control.
HDLC
High level Data Link Control.
PCI
Peripheral Component Interconnect.
SPI
Serial Peripheral Interface.
PCB
Printed Circuit Board.
CAQ
Control Automático de Cuadratura.
13
DAC
Digital – Analog Converter.
ADC
Analog – Digital Converter.
CL
Control Logic.
FP
Front Panel.
TA
Tarjeta de Aplicación.
BAL
Balance.
MQUAD
Quadrature Mode.
DIS
Disable.
OPER
Operate.
MOFFS
Offset Mode.
PWR
Power.
OOR
Out Of Range.
AGND
Analog Ground.
DGND
Digital Ground.
GND
Ground.
QX, QY, QZ
Quadrature X, Quadrature Y, Quadrature Z.
XCOAR
Coarse X Adjust.
YCOAR
Coarse Y Adjust.
ZCOAR
Coarse Z Adjust.
XFINE
Fine X Adjust.
YFINE
Fine Y Adjust.
ZFINE
Fine Z Adjust.
DRC
Design Rule Check.
FSR
Free Spectral Range.
ISE
Integrated Software Environment.
n0
Indice del medio de propagación del haz.
d
Diferencia de camino óptico.
d
Distancia entre espejos.
?
Angulo de incidencia del haz.
14
I
Período espacial.
R
Reflectividad.
fp
Frecuencia de resonancia.
p
Número del modo de la componente del haz.
c
Velocidad de la luz en el vacío.
?p
Longitud de onda relacionada con fp.
?
Longitud de onda.
f
Frecuencia.
dfsr
Rango espectral libre.
d?fsr
Rango espectral libre en términos de longitud de onda.
Vx
Señal de consigna para el paralelismo X.
Vy
Señal de consigna para el paralelismo Y.
Vz
Señal de consigna para el desplazamiento Z.
Vcom
Señal de referencia para las señales de consigna.
Nmodos
Número de modos del haz.
15
4. INTRODUCCION
Este proyecto se ha realizado en las instalaciones del Instituto de Astrofísica de
Canarias (IAC), situado en la isla de Tenerife, Islas Canaria, España. Específicamente se ha
llevado a cabo en el Dpto. de Ingeniería Electrónica (Área de Instrumentación). El IAC reúne a
un gran número de investigadores astrofísicos provenientes de todo el mundo, y a través de su
departamento de ingeniería, construye las soluciones y resuelve las solicitudes demandadas por
estos investigadores, respecto a la instrumentación necesaria para nuevos estudios. Están
integrados en el IAC la Administración del Estado (Ministerio de Ciencia y Tecnología, la
Comunidad autónoma de Canarias, la Universidad de La Laguna y el Consejo Superior de
Investigaciones Científicas (CSIC).
Aunque fue inaugurado oficialmente en 1985, el IAC llevaba trabajando desde mucho
antes en la labor de desarrollo de la Astronomía y la Astrofísica. Una fecha histórica es el año
1979, en que se firman los "Acuerdos de Cooperación en Astrofísica", por los que España
internacionaliza los Observatorios del IAC. A través de ellos, más de 62 instituciones
científicas de Alemania, Bélgica, Dinamarca, España, Estados Unidos, Finlandia, Francia,
Irlanda, Italia, Noruega, Países Bajos, Polonia, Portugal, Reino Unido, República de Armenia,
Rusia, Suecia, Taiwán y Ucrania, tienen hoy instrumentos astrofísicos instalados en Canarias.
Canarias es de hecho el Observatorio Norte Europeo (ENO), uno de los tres paraísos
astronómicos más importantes de nuestro planeta.
El Instituto de Astrofísica de Canarias (IAC) empezó a promover la idea de construir
un gran telescopio en Canarias en 1987, cuando entró en servicio el telescopio William
Herschel, de 4.2 metros de diámetros, un instrumento muy avanzado en aquel momento. Allí
nace la idea del Gran Telescopio Canarias (GTC)[8].
El Gran Telescopio CANARIAS estará equipado con una instrumentación avanzada
que aprovechará al máximo sus posibilidades científicas. El GTC se está construyendo sobre
16
una superficie de 5.000 m2 en el Observatorio del Roque de los Muchachos (ORM), en la isla
canaria de La Palma. Este observatorio, situado al borde del Parque Nacional de la Caldera de
Taburiente, en el término municipal de Garafía, se encuentra a 2.400 metros sobre el nivel del
mar, por encima del “mar de nubes”.
Se trata de un lugar privilegiado para la actividad astrofísica por la atmósfera
transparente y estable que le proporcionan los Vientos Alisios. Allí, geografía y clima se unen,
proporcionando unas condiciones excepcionales para la observación astronómica, de ahí que
en el ORM se encuentre una de las baterías de telescopios más completa del mundo. Es
además uno de los lugares mejor estudiados para la observación astronómica. Se llevan a cabo
campañas constantes, y continuas prospecciones con el fin de analizar sistemáticamente la
calidad y transparencia de la atmósfera, garantizando así la calidad de observación.
En cuanto a la participación internacional en el proyecto, de momento ya se cuenta con
la participación del Instituto Nacional de Astrofísica, Óptica y Electrónica de México
(INAOE) del Instituto de Astronomía de la Universidad Nacional Autónoma de México (IAUNAM), que, financiados por el Consejo Nacional de Ciencia y Tecnología de México
(CONACYT), aportan un 5% del presupuesto de construcción, operación y demás actuaciones
e inversiones preparatorias previas a su explotación (en total, unos 5,5 millones de euros), al
igual que la Fundación para la Investigación de la Universidad de Florida. Además, tanto las
instituciones mexicanas como la Universidad de Florida están ya implicadas en la construcción
de instrumentación para el telescopio [1].
Uno de los instrumentos más innovadores presentes en el GTC es el OSIRIS. OSIRIS,
un espectrógrafo de baja resolución con sistema de imagen, es un instrumento que trabaja en
el rango visible, e incorpora el uso de filtros variables o sintonizables. Estos permiten observar
de manera muy precisa una línea determinada del espectro de luz, situada en cualquier
posición dentro del rango visible. Por dicha razón, OSIRIS será un instrumento único con
respecto a otros instrumentos parecidos que existen en EE.UU. y en Europa. OSIRIS está
siendo diseñado y construido por el IAC, con la participación del Instituto de Astronomía de la
17
Universidad Nacional Autónoma de México (IA-UNAM) [8].
Para entender el significado real de este trabajo y su finalidad, se considera pertinente
el relacionarse con el área que va a disfrutar de las bondades de la realización de este proyecto,
a través de conocimientos básicos en telescopios, detalles del Proyecto GRANTECAN y
OSIRIS, una base teórica de los filtros sintonizables y la presentación del controlador actual.
Por ello, los próximos puntos, contenidos en el capítulo de fundamentos teóricos, trataran de
estos temas, ayudando al lector a lograr el entendimiento pleno del contenido del proyecto que
abarca este escrito.
Luego se pasará al capítulo del planteamiento del problema, donde se discuten las
dificultades tecnológicas que se desean superar, incluyendo las especificaciones en concreto.
Después, se discute el capítulo del diseño preliminar, en el cual se dará un bosquejo del diseño
a cumplir, el cual será abordado con lujo de detalles, en el capítulo siguiente, llamado diseño
detallado.
Después, un capítulo que reseña las pruebas realizadas al diseño ya fabricado, dará una
primera visión de su funcionamiento y resultados parciales. Seguido, se entrará en el capítulo
de desarrollo del software de aplicación, donde se definen los componentes restantes para el
funcionamiento completo del diseño, incluyendo pruebas ópticas al instrumento en cuestión,
con la incorporación de este prototipo de control.
Finalmente, se presentará un capítulo de conclusiones respecto al trabajo desarrollado y
la experiencia proporcionada por el proyecto, como también unas recomendaciones para una
optimización a futuro del prototipo, en vías del desarrollo del equipo final.
18
5. FUNDAMENTOS TEORICOS
5.1
5.1.1
LOS TELESCOPIOS
Definición.
Un telescopio es un instrumento en el que un sistema de lentes o espejos “acerca”
visualmente la imagen de objetos alejados, por lo que estos aparecen más grandes y nítidos,
suficientemente brillantes y con detalles para ser vistos, fotografiados o registrados para su
estudio. Un telescopio tiene dos propiedades principales, por un lado nos permite distinguir
objetos muy lejanos y, al mismo tiempo, recoge una gran cantidad de luz [2].
5.1.2
Tipos de telescopios.
Hay dos tipos básicos de telescopios: refractores y reflectores. Los primeros están
basados en lentes y suelen ser de un tamaño pequeño. Presentan problemas de cromaticidad, es
decir, las distintas longitudes de onda no focalizan en el mismo punto. Este efecto es debido a
que el índice de refracción de la lente depende de la longitud de onda. Los telescopios
reflectores (de espejos) no tienen el problema de la cromaticidad y pueden hacerse muy
grandes. Los espejos monolíticos más grandes que se han fabricado tienen alrededor de 8
metros de diámetro, y la solución que se ha encontrado para superar esas dimensiones y hacer
telescopios mayores es fabricar muchos segmentos pequeños, que luego se ponen uno al lado
del otro siguiendo la forma de la superficie óptica ideal [2].
19
Figura 1. - Algunos tipos de telescopios
5.1.3
Monturas.
Hay dos tipos básicos de monturas: ecuatoriales y altazimutales. Las monturas
ecuatoriales tienen dos ejes de movimiento perpendiculares, en el que uno de ellos es paralelo
al eje de rotación de la Tierra. Este eje en Canarias, por ejemplo, tiene una inclinación de
28º18’ respecto del horizonte. Cuando el telescopio está apuntado, para efectuar el
seguimiento del objeto sólo hay que girar todo el telescopio respecto de este eje, compensando
así la rotación terrestre. Los telescopios altazimutales tienen dos ejes de movimiento
coincidentes con la vertical y la horizontal del lugar. Es decir, es una montura similar a la que
podría tener un cañón que gira horizontalmente y luego levanta el tubo para apuntar a un
determinado objetivo. Para efectuar el seguimiento, sin embargo, hay que actuar
20
simultáneamente sobre los dos ejes, ya que los objetos celestes en su movimiento siguen
trayectorias oblícuas [2].
5.1.4
Estaciones focales.
Las estaciones focales son aquellos lugares donde se encuentra el foco del telescopio y
donde se puede colocar la instrumentación que va a analizar la luz proveniente del objeto. En
el caso del telescopio Cassegrain, el tipo más común entre los grandes telescopios, el foco más
utilizado es el llamado foco Cassegrain que se encuentra debajo del espejo primario M1 (ver
figura 2). No obstante, mediante el uso de un espejo terciario (M3) el haz de luz puede ser
desviado lateralmente dando lugar a otras estaciones focales. El foco Nasmyth se diferencia
del Cassegrain doblado en que coincide con el eje de giro de elevación. Esa particularidad
permite situar en dicha estación focal una plataforma grande donde colocar instrumentación
pesada. El foco primario se encuentra detrás del espejo secundario (M2) y para su uso hay que
quitar dicho espejo. El foco Coudé es otra estación focal, utilizada más en los telescopios
ecuatoriales, que tiene la particularidad de que está fija físicamente en un punto y es
independiente del movimiento del telescopio. Para ello, la luz sale por un lateral, similar al
foco Nasmyth, y luego es reconducida mediante espejos planos por el interior de la montura
del telescopio para acabar saliendo por el eje de giro. Usualmente, a la salida del telescopio la
luz es llevada por debajo del mismo hasta un laboratorio [2].
21
Figura 2. - Esquema de las estaciones focales del GTC. En la imagen de la derecha se ven las plataformas
Nasmyth (IAC).
5.1.5
Solares y nocturnos.
Los telescopios para el estudio del Sol y los nocturnos están basados en los mismos
principios. Sin embargo, es común ver una diferencia en los edificios que alojan a unos y a
otros. Esta diferencia viene marcada por el hecho de que durante el día, y debido al calor, la
turbulencia atmosférica disminuye mucho con la altura respecto al suelo, y ello conduce a
situar los telescopios solares en edificios más altos (torres solares). Por otro lado, es común el
uso de celostatos, que es un conjunto de dos espejos planos que siguen al Sol y que envían su
luz a un punto fijo, hacia abajo, en el interior del edificio. De esta manera el telescopio puede
estar en una posición fija y mucho más estable ya que no requiere seguir el movimiento del Sol
durante toda la observación, de ello se encargan los dos espejos planos del celostato [2].
22
Figura 3. - Esquema ejemplo de Observatorio Solar.
5.1.6
Óptica activa y adaptativa.
La única manera de luchar por acercarse al límite de difracción y así tener unas
imágenes más nítidas, es utilizar la óptica activa y adaptativa. Con la óptica activa se corrige la
forma del espejo primario o secundario para mantenerla en sus valores nominales. Esto se hace
mediante actuadores situados detrás del espejo que empujan o tiran para contrarrestar las
deformaciones no deseadas. Estas correcciones se realizan a baja velocidad (cada segundo
aproximadamente) y dan cuenta de las flexiones debidas a la gravedad y a los cambios de
temperatura más que a los efectos de la atmósfera.
Los cambios rápidos de la atmósfera se compensan, en primer orden, con espejos
planos que se mueven muy rápido en dos direcciones angulares y recentran la imagen en x e y
(corrección llamada de “tip-tilt”). Para corregir órdenes mayores es necesario usar espejos
deformables, que son espejos con muchos actuadores detrás. Estos espejos se controlan a altas
23
frecuencias, por encima de 100 o 500 veces por segundo y, naturalmente, son más pequeños,
de 5 a 20 cm., normalmente. Los sistemas de óptica adaptativa, por lo tanto, son sistemas que
van colocados entre el telescopio y el instrumento y que van a intentar suministrar al
instrumento una calidad de imagen (poder resolutivo) cercana al límite de difracción del
telescopio. Para el funcionamiento de la óptica adaptativa es necesario utilizar estrellas de
referencia cercanas al objeto de interés. Y para suplir el hecho de que a veces no hay estrellas
cercanas, se han desarrollado sistemas de láser que envían un haz a la atmósfera y forman una
estrella guía artificial (láser) [2].
5.1.7
Espectro electromagnético.
Antes de comenzar a hablar acerca de los instrumentos es necesario hacerse una idea de
las longitudes de onda en las que trabajan y para ello hay que saber cuál es la radiación que la
atmósfera deja pasar. Desde las ondas de radio hasta los rayos gamma provenientes del
espacio, no todas las radiaciones llegan al suelo. Muchas son absorbidas por la atmósfera y
otras son atenuadas. En el rango visible (aproximadamente de 400 a 1000 nm) la atmósfera es
transparente y también en algunas zonas del infrarrojo cercano y medio.
Estos tramos de longitudes de onda en los que la atmósfera deja pasar las radiaciones
se llaman ventanas. En el infrarrojo cercano, y centrados en las ventanas, se encuentran los
filtros estándar denominados J, H, K, L y M. Los tres primeros filtros están en el rango de 1 a
2,5 micras (1000 a 2500 nm) y los dos últimos de 2,5 a 5 micras. Más allá en el espectro se
encuentra el infrarrojo medio hasta unas 15 micras donde la atmósfera atenúa mucho pero
donde todavía se puede observar desde sitios muy altos y con poca humedad. Longitudes de
onda más largas son absorbidas, hasta llegar a las ondas milimétricas y ondas de radio que sí
atraviesan la atmósfera. Las ondas de radio por encima de 50 m son rebotadas en la ionósfera y
tampoco alcanzan el suelo. En el otro extremo, desde los rayos ultravioleta hasta los rayos
gamma, la atmósfera no deja pasar nada, con la excepción de los rayos ultravioletas más
cercanos (de 300 a 400 nm). En la figura 4 se muestran las ventanas de absorción de la
atmósfera y el lugar donde están centrados los filtros estándar que más se suelen utilizar. No
24
obstante, los astrónomos durante las observaciones, aparte de los filtros estándar, utilizan otros
filtros situados en longitudes específicas de su interés [2].
Figura 4. - Absorción atmosférica desde el ultravioleta al infrarrojo lejano. En la parte superior se indica la
posición de los filtros estándar más utilizados.
5.1.8
5.1.8.1
Instrumentación de los telescopios.
Fotómetro.
El fotómetro es uno de los instrumentos más simples. Consiste en hacer llegar la luz
del telescopio hasta un detector sensible a la luz. Este instrumento se usa cuando se requiere
conocer con mucha precisión el brillo de las estrellas u otros objetos. Al no ser un detector
bidimensional, en la salida no tendremos una imagen del objeto sino un valor preciso de su
nivel de luminosidad. Con una buena electrónica y las técnicas de observación adecuadas se
pueden conseguir niveles de ruido muy bajos. En la figura 5 se puede ver el esquema de un
fotómetro. La apertura tiene como misión dejar pasar sólo la luz del objeto eliminando ruido
de fondo. Su tamaño suele ser 2 o 3 veces mayor que el tamaño esperado del objeto en el foco
del telescopio para así evitar que los errores en el movimiento del telescopio o las vibraciones
saquen al objeto fuera y se pierda la calidad de la medida. El filtro selecciona la banda de
longitudes de onda que se quiere observar. La lente que sigue a continuación se llama lente de
Fabry y genera una imagen de la pupila de entrada del telescopio (normalmente el espejo
primario) sobre el detector. De esta manera la iluminación sobre el detector es uniforme y
estacionaria, aunque el objeto se mueva en la apertura [2].
25
Figura 5. - Esquema de un fotómetro
5.1.8.2
Cámara.
Una cámara consiste en un detector bidimensional, normalmente un CCD o un arreglo
infrarrojo, al cual se hace llegar la luz del telescopio para formar la imagen de un objeto
celeste. Las cámaras no suelen tener las precisiones fotométricas de los fotómetros pero nos
dan una visión bidimensional de los objetos. Así, se pueden hacer estudios sobre la forma y
distribución de estrellas, gas y polvo en nebulosas, galaxias, etc. La cámara puede ir en
cualquiera de los focos del telescopio y suele llevar un sistema óptico delante para
acondicionar la luz del telescopio a la resolución y calidad necesarias para cumplir con los
requerimientos científicos. Al igual que las cámaras de fotos corrientes, las cámaras en
astronomía pueden llevar varios sistemas de lentes intercambiables para conseguir diferentes
resoluciones espaciales. Las resoluciones pueden ir según los casos desde 1” por píxel hasta
0,01” por píxel para las cámaras de alta resolución, que se usan con óptica adaptativa. Algunas
cámaras se han diseñado para ver un gran campo y en ellas se han puesto mosaicos con varios
CCDs para que de una sola exposición se tome una imagen de una gran parte del cielo.
Para mantener la temperatura del detector baja y así tener menos ruido electrónico se
usan los criostatos. Normalmente tienen un depósito estanco de Nitrógeno líquido a 77 grados
Kelvin y sobre él va montado el detector. Para evitar la condensación, todo lo que rodea al
depósito se pone al vacío. Los criostatos tienen una ventana a través de la cual la luz llega al
26
detector. En los instrumentos visibles, es suficiente con que el detector esté alrededor de 100º
bajo cero, pero en los infrarrojos suele estar en torno a 200º bajo cero. En los infrarrojos,
además, la propia óptica debe también estar dentro del criostato para que el detector no vea su
emisión térmica. Para evitar el uso del Nitrógeno líquido o para conseguir temperaturas más
bajas también se usan los refrigeradores de ciclo cerrado (CCC, closed cycle cooler) que
consisten en un motor frigorífico que funciona con Helio. En ocasiones se utilizan soluciones
mixtas en las que el Nitrógeno es usado inicialmente y luego la temperatura es mantenida por
el motor refrigerante [2].
5.1.8.3
Espectrógrafo.
Un espectrógrafo es un sistema óptico destinado a medir el espectro de la luz que viene
de un objeto celeste. El espectro da mucha información sobre la física de los objetos, su
temperatura, composición química, etc. En la figura 6 puede verse el esquema básico de cómo
funciona un espectrógrafo. De la luz que llega del telescopio se deja pasar una apertura circular
o una rendija situada sobre el objeto de interés. La luz que atraviesa la rendija es colimada, es
decir, se crea un haz paralelo e incide sobre el prisma. Al llegar a éste, la luz se dispersa en
distintas direcciones según su longitud de onda. A la salida del prisma, el haz colimado pasa
por otro elemento óptico, llamado cámara, que focaliza la luz sobre el detector.
Si la apertura es circular, sobre el detector tendremos una línea en la que la posición
sobre ella vendrá determinada por su longitud de onda. Este esquema óptico se llama de
colimador-cámara y es de uso muy frecuente. En la zona de haz colimado, además del prisma
se suelen colocar otros dispositivos como los filtros, por ejemplo. Con los espectrógrafos
sucede lo mismo que con las cámaras, cuando son para el rango visible sólo hay que enfriar el
detector, pero si trabajan en el infrarrojo deben también tener fría toda la óptica, lo cual
implica el uso de criostatos. Los detectores son idénticos a los usados en las cámaras pero la
problemática del control puede ser ligeramente mayor debido a los nuevos mecanismos que
hay que controlar, como el elemento dispersivo y las lámparas de calibración [2].
27
Figura 6. - Esquema de un espectrógrafo de prisma
5.1.8.4
Cámaras-espectrógrafos.
Las cámaras espectrógrafos son de diseño relativamente reciente y tienen la gran
ventaja de la versatilidad. Se trata de espectrógrafos que también, aunque no simultáneamente,
pueden tomar una imagen directa del objeto o campo estelar. Su funcionamiento como
espectrógrafos es similar al de cualquier otro espectrógrafo, y su capacidad como cámara de
imagen directa la consigue, en el caso de los grismas, simplemente retirando el elemento
dispersivo. En el caso de los espectrógrafos con redes de difracción, la imagen directa se
consigue sustituyendo la red por un espejo plano con la orientación adecuada. En la figura 7 se
muestra el diseño óptico de OSIRIS, la cámara espectrógrafo en el visible para el GTC. Desde
el punto de vista de control, las cámaras-espectrógrafos presentan una problemática similar a
la de los casos anteriores, aumentada por la cada vez mayor cantidad de mecanismos a
controlar. Además, no sólo hay más mecanismos, sino que las formas en que pueden ser
combinados para realizar una observación junto con las múltiples maneras de leer los
detectores, requieren un análisis de los “casos de uso” muy cuidadoso. Por otro lado, al ser
instrumentos versátiles, suelen ser de uso común en el telescopio, es decir, que pueden ser
utilizados por cualquier astrónomo, al cual no se le puede exigir que sea un experto en su uso.
Esto implica que los sistemas de control deben ser muy robustos y seguros [2].
28
Figura 7. - Esquema óptico de OSIRIS. La luz del telescopio incide desde la derecha sobre la máscara de
rendijas y llega al espejo colimador. De allí sale un haz colimado que es desviado por un espejo plano y pasa por
un filtro y el grisma para llegar a la cámara donde es focalizado sobre el detector. Tanto el grisma como el filtro
están sobre sendas ruedas.
5.1.8.5
Espectroscopia multiobjeto.
En este punto se describirá brevemente las distintas formas de obtener
simultáneamente el espectro de varios objetos dentro del campo de visión. Se trata de
dispositivos que van a ir colocados en el plano focal del telescopio y que luego van a alimentar
a un espectrógrafo como los que se han visto anteriormente [2].
5.1.8.5.1
Máscaras de aperturas.
La solución técnica más sencilla para hacer una máscara de aperturas es el fabricar
unas placas metálicas en las que se han practicado los cortes adecuados en las posiciones
esperadas de los objetos de interés. Estas placas se fabrican con antelación y se colocan a
mano en el plano focal del telescopio delante del espectrógrafo. Esta solución se puede
automatizar un poco poniendo las máscaras en una rueda, o en un cargador de mascaras como
es el caso de OSIRIS [2].
29
5.1.8.5.2
Máscaras reconfigurables.
Una manera de evitar el cambio de las máscaras en cada exposición es hacer un
mecanismo que sea capaz de colocar una serie de rendijas en el campo de forma automática.
Estos mecanismos son muy completos y requieren mucha precisión. Hoy en día hay muy pocos
instrumentos visibles que los tengan y ninguno infrarrojo [2].
Figura 8. - Unidad criogénica de rendijas configurables propuesta para EMIR. Las varillas azules de cada uno de
los lados se acercan para formar una rendija en el lugar deseado.
5.1.8.5.3
Robot Posicionador de Fibras Ópticas.
Las fibras ópticas permiten desacoplar mecánicamente el instrumento y el telescopio.
Para ello, en el plano focal del telescopio debe haber un sistema que mantenga las fibras sobre
la imagen del objeto y en el otro extremo las fibras se coloquen en el lugar de la rendija del
espectrógrafo. De hecho, en el extremo del haz que va al espectrógrafo, cuando hay varias
fibras, se las coloca en línea formando una rendija sintética que se acopla al espectrógrafo. La
espectroscopía multiobjeto con fibras ópticas se consigue mediante un robot posicionador de
fibras que permita colocar automáticamente cada una de las fibras ópticas sobre un objeto de
interés. Este robot debe garantizar la posición correcta de la fibra a pesar de los movimientos
30
del telescopio y del derrotador al que puede estar acoplado. Si el instrumento se encuentra
lejos del robot puede haber bastantes metros de fibras entre uno y uno [2].
Figura 9. - Ejemplo de robots posicionadores de fibras. Arriba derecha, simulación de una distribución de fibras
de Hectospec. Abajo, sistema de sujeción de las fibras de Hectospec.
31
5.1.8.6
Espectroscopia de campo integral.
Se entiende por espectroscopía de campo integral aquellas técnicas que permiten
obtener simultáneamente el espectro de una zona bidimensional del cielo. Idealmente se
trataría de obtener el espectro de todos los puntos que componen una imagen. Una manera de
conseguir esto es hacer un haz compacto de fibras ópticas con una distribución bidimensional
en el extremo del haz que se coloque en el foco del telescopio. En el otro extremo las fibras se
colocan formando una rendija que alimenta a un espectrógrafo [2].
5.1.8.7
Analizadores de polarización.
Son sistemas ópticos que permiten analizar la polarización de la luz que entra en el
instrumento. Están basados en retardadores y polarizadores ópticos que se colocan en el haz de
luz dentro del instrumento. Desde un punto de vista astronómico, el análisis de la polarización
da información sobre los campos magnéticos en el objeto [2].
5.1.8.8
Coronografía.
Se trata de una técnica que permite distinguir objetos débiles que están situados muy
cerca de objetos muy brillantes. Actualmente se están utilizando mucho para la búsqueda de
planetas alrededor de estrellas. La manera en que funcionan es colocando con gran precisión
una máscara que tape el objeto brillante y deje pasar la luz del objeto débil que se encuentra al
lado. Se ponen, por lo tanto, a la entrada del instrumento [2].
5.1.8.9
Filtros sintonizables.
Son filtros que, a diferencia de los normales, pueden ser sintonizados en longitud de
onda y ancho de banda. Se basan en dos placas de vidrio plano-paralelas colocadas muy cerca
una de otra que ocupan el lugar de un filtro normal. La sintonía del filtro se realiza controlando
con extrema precisión la separación de las placas y su paralelismo. Para su correcto
funcionamiento deben utilizarse conjuntamente con filtros normales [2].
32
5.2
5.2.1
GRANTECAN
Propósito.
El Gran Telescopio CANARIAS (GTC) es un telescopio reflector, es decir, que emplea
espejos, en lugar de lentes,
para recoger la luz. Cuenta en su diseño con las últimas
innovaciones tecnológicas, por lo que en el año 2005, fecha prevista para el inicio de su
funcionamiento, será uno de los telescopios más avanzados. El GTC podrá llegar a “ver” los
objetos más distantes y los más débiles de nuestro Universo. Se ha de entender esto como un
viaje en el tiempo: la luz que se recibe de los objetos más alejados del Universo empezó su
viaje hace unos 15.000 millones de años, por lo que se podrá obtener respuesta a muchas
preguntas sobre la creación del Universo conocido. Con el GTC se distinguirá sistemas
planetarios en estrellas de nuestros alrededores, se podrá conocer la materia oscura, descubrir,
oculto tras las densas nubes moleculares, el “nacimiento” de estrellas, “ver” las galaxias más
alejadas y los cuásares, estudiar más a fondo las características de algunos agujeros negros y su
evolución, o saber cuáles son los componentes químicos creados tras el “Big Bang”. Hallar
planetas similares al nuestro en otras estrellas es una de las metas emblemáticas del GTC [8].
5.2.2
Funcionamiento.
El espejo primario del GTC fue pensado para alcanzar un tamaño de 10 metros de
diámetro, para lo cual fue necesario diseñar y fabricar un espejo segmentado, ya que sería
imposible la manipulación y el traslado de un espejo único de ese tamaño. Éste está compuesto
por 36 piezas hexagonales que, unidas, tienen un tamaño equivalente al de un espejo circular
de 10,4 metros de diámetro. Aparte del espejo primario, se utilizan un espejo secundario y un
tercer espejo para enviar la luz a los focos donde se ubican los instrumentos científicos. La
montura, estructura que soporta y sobre la que se mueve el telescopio, es altazimutal, es decir,
que los movimientos se realizan según dos ejes, el horizontal y el vertical. Este telescopio
observará y analizará la luz visible y la infrarroja procedentes de los objetos celestes [1].
33
5.2.3
Ventajas.
Por ser el último de esta generación de grandes telescopios que se está construyendo, el
GTC ha intentado mejorar el diseño de sus predecesores, aprendiendo de su experiencia. En el
momento de su inauguración será el telescopio con mayor superficie colectora de luz: 75,7
metros cuadrados, equivalente a un espejo circular de 10,4 metros. Junto con la gran superficie
colectora, es muy importante la calidad de imagen, por lo que el GTC utilizará dos técnicas
para optimizarla: la óptica activa y, más adelante, la óptica adaptativa. Con la primera se
alinean, deforman y mueven los espejos (segmentos del primario y espejo secundario) para
mantener de un modo preciso la posición y forma de los espejos, independientemente de las
condiciones externas (climatología, temperatura, gravedad, defectos de fabricación, etc.) de
manera que no influyan sobre la imagen. La óptica adaptativa es, en la actualidad, una nueva
técnica que está siendo desarrollada para los principales telescopios del mundo y, una vez
implantada, equivaldrá casi a observar sin atmósfera. Consiste en utilizar espejos deformables
para compensar las aberraciones que sufre la luz a su paso por la atmósfera.
A todo esto hay que sumar una cúpula, que protege al telescopio y está preparada para
evitar al máximo la existencia de turbulencias externas e internas que puedan degradar la
imagen y una estructura mecánica diseñada para que la observación se realice libre de
vibraciones que podrían restar nitidez a las imágenes. Además el GTC pretende lograr un
óptimo aprovechamiento del tiempo de observación mediante el sistema de observación por
colas (proceso por el cual se decidirá automáticamente qué instrumentación y qué tipo de
observación conviene hacer conforme a las condiciones atmosféricas de cada momento).
Además, utilizará un avanzado sistema de control y dispondrá de una alta fiabilidad de
funcionamiento gracias a un programa de mantenimiento preventivo, diseñado para percibir
posibles fallos de funcionamiento antes de que se produzcan, garantizando que el tiempo de
parada producido por estos fallos en el sistema sea mínimo [8].
34
5.2.4
Instrumentación.
Un telescopio necesita instrumentación focal. El GTC contará con varios instrumentos
científicos de última generación que permitirán analizar la luz visible e infrarroja. Los
instrumentos, ubicados en las estaciones focales del telescopio, captarán la luz, formando
imágenes directas (las que detecta el ojo humano) e imágenes espectroscópicas (a través de
espectrógrafos, seleccionamos una parte de la imagen, separándola en sus diferentes longitudes
de onda). Estos instrumentos serán: OSIRIS, un espectrógrafo de baja resolución con sistema
de imagen; ELMER, un instrumento que obtendrá imágenes convencionales; CANARI-CAM,
una cámara y espectrógrafo en el infrarrojo térmico (dentro del infrarrojo, la categoría con
longitud de onda más larga) y, como instrumento de segunda generación, EMIR, un
espectrógrafo multiobjeto de gran campo que trabajará en el infrarrojo [8].
5.2.5
Óptica.
La óptica activa es un complejo sistema informático que actuará sobre el espejo
primario y el espejo secundario. En el primario hará que los 36 segmentos del espejo se
muevan y deformen para lograr que estén siempre correctamente alineados. Las razones que
influirán en la posición de cada espejo con respecto a los demás son la climatología (viento,
cambios de temperatura), las tensiones mecánicas y las inevitables limitaciones del proceso de
fabricación. Eliminar las perturbaciones producidas por la atmósfera equivale esencialmente a
observar desde el espacio. De ahí la importancia de la óptica adaptativa. Esta tecnología
permitirá determinar y corregir gran parte de las aberraciones con que llega la luz de los
objetos observados. Cuando la óptica adaptativa se ponga en marcha en el GTC será, para
determinadas observaciones, como si tuviera un espejo primario de 80 metros en lugar de 10.
Se trata primero de analizar y determinar las características de la atmósfera para entender qué
perturbaciones induce en las ondas luminosas, e inmediatamente deformar una serie de espejos
para compensar esas perturbaciones. La realización práctica es complicada, ya que la
atmósfera, dada su naturaleza cambiante, ha de analizarse muy rápida y continuamente, para
enseguida transmitirla a los espejos deformables [8].
35
5.3
5.3.1
OSIRIS
Descripción general.
El instrumento OSIRIS (Sistema Óptico para Imagen y Espectroscopía Integrada de
Resolución Baja/Intermedia, o por sus siglas en ingles, Optical System for Imaging and Low
Resolution Integrated Spectroscopy) podrá obtener imágenes directas del cielo y podrá realizar
espectroscopía de varios objetos a la vez. Es un sistema de imagen y un espectrógrafo de baja
resolución con modos de rendija larga y multi-objeto, cubriendo el intervalo de longitudes de
onda entre 0.365 y 1.05 µm, en un campo de visión de 7 arcmin x 7 arcmin y 8 arcmin x 5,2
arcmin en imagen directa y espectroscopía de baja resolución respectivamente. Trabajará en el
rango visible, es decir, con la luz del cielo que es capaz de percibir el ojo humano [6].
Entre otros resultados, proporcionará nuevos datos a los científicos en diversas áreas de
conocimiento de la astrofísica, como las atmósferas de los planetas del Sistema Solar, las
supernovas muy lejanas (que sirven de referente para conocer la edad del Universo), las
llamadas explosiones de rayos gamma, (unas tremendas emisiones de energía cuyo origen se
desconoce y que es preciso identificar), la formación y evolución de las galaxias y los cúmulos
de galaxias, asteroides y cometas, estrellas variables, ciclos de actividad estelar en estrellas de
cúmulos abiertos, poblaciones estelares en regiones remotas de la galaxia, enanas marrones,
enanas blancas en cúmulos estelares, regiones HII en galaxias, búsqueda de agujeros negros, la
relación entre galaxias normales, contrapartidas ópticas de radiojets, el origen del fondo de
rayos X, acumulación alrededor de radio fuentes, evolución de galaxias con bajo
desplazamiento al rojo, determinación de desplazamientos al rojo de objetos débiles, pruebas
de materia oscura y microlentes. Además, OSIRIS incorpora el uso de filtros sintonizables.
Estos permitirán observar de manera muy precisa una línea determinada del espectro de luz,
situada en cualquier posición dentro del rango visible [7].
36
Cámara
Obturador
Criostato
Colimador
Rendija
Ruedas
Filtros y
Grismas
Cargador de
Máscaras
Espejo Plano
Adaptador
Nasmyth
Estructura
Soporte
Plano Focal
Figura 10. - Diseño mecánico de OSIRIS. El esquema óptico de la figura 7, y los requerimientos ópticos y
mecánicos han dado lugar a este diseño. Al ser un instrumento en el rango visible, el criostato mantiene frío al
detector solamente (IAC).
5.3.2
Funcionamiento.
OSIRIS usara dos filtros sintonizables para poder seleccionar una longitud de onda
especifica. Estos filtros sintonizables estarán compuestos por dos elementos:
o Un filtro Fabry-Perot (etalón) montado sobre tres actuadores piezoeléctricos,
los cuales permiten cambiar la anchura de la cavidad. Habrán dos etalones
diferentes: un etalón optimizado para el rango de longitudes de onda hacia el
rojo y otro optimizado para el rango de longitudes de onda hacia al azul
o Un controlador para seleccionar y mantener cierta anchura en la cavidad. Ya
que se usaran dos etalones, se necesitaran dos controladores.
37
Filtro Sintonizable
Azul
Controlador Filtro
Sintonizable Azul
Filtro Sintonizable
Rojo
Controlador Filtro
Sintonizable Rojo
Subsistema de
Control
Rueda de Filtros
Figura 11. - Esquema de conexiones de los Filtros Sintonizables en Osiris
Estos filtros estarán montados en unas ruedas de filtros: en una de ellas estarán los
Fabry-Perot , y en otra rueda estarán los filtros convencionales corta-ordenes, que trabajan en
combinación con filtros Fabry-Perot. Además contará con un cargador de mascaras de apertura
y otros elementos que se pueden apreciar en la figura 10 [4].
Como detector se utilizarán dos CCDs de 2kx4k píxeles formando un mosaico, con un
tamaño de píxel de ~15mum, optimizados en el rojo y sensibles desde 0,365µm a 1,05µm.
5.3.3
5.3.3.1
Modos de observación.
Imagen.
Será posible obtener imagen de banda ancha en los filtros UBVRI (U=Ultraviolet,
B=Blue, V=Visual, R=Red, I=Infrared) y SDSS (Sloan Digital Sky Survey). Usando dos filtros
sintonizables en la pupila del sistema óptico será posible cubrir todo el intervalo de longitudes
de onda, proporcionando un número ilimitado de filtros interferenciales de banda estrecha e
intermedia con FWHM (Full Width Half Maximum) entre 1 y 70 Å. Según el rango espectral y
la FWHM seleccionada, los órdenes pueden ser bloqueados mediante filtros de banda ancha o
con un conjunto adicional de filtros interferenciales de 250-400 Å de FWHM. Tanto los filtros
corta-órdenes como los filtros ajustables están inclinados hasta 12° [7].
38
5.3.3.2
Espectroscopía.
Permitirá realizar espectroscopía de baja resolución (R = 500, 1500, 2500) mediante el
uso de grismas. Estará disponible tanto en modo de rendija larga (8 arcmin) como en multiobjeto mediante el uso de máscaras en el plano focal [7].
5.3.3.3
Modos rápidos.
Fotometría y espectroscopía [7].
5.3.4
Características principales.
Nasmyth
Estación focal
(Diseño para operar también en Cassegrain)
0.365 – 1.05 ? m
Intervalo de longitud de
onda
Detector
2 (2Kx 4K)
Escala en el detector
0.125"/píxel
Campo de visión
7 arcmin x 7 arcmin (Imagen Directa)
8 arcmin x 5,2 arcmin (Espectroscopía de baja
resolución)
Modo de Imagen
39
UBVRI y SDSS
Banda ancha
Filtros sintonizables con FWHM desde 1 a 70 Å sobre
Banda estrecha
todo el intervalo espectral
Modo de Espectroscopía
Resolución espectral
R = 500 (365 - 1000nm)
R = 1500 (370 - 950nm)
R= 2500 (420 - 950nm)
Rendija larga
8 arcmin
Nº Máscaras
13
Nº objetos / máscara
20 (objetivo: 30)
Tabla 1.- Resumen de características principales de OSIRIS.
5.4
5.4.1
FILTROS SINTONIZABLES FABRY-PEROT.
Teoría.
Un filtro Fabry-Pérot esta compuesto por dos espejos paralelos, con aire entre ellos
como dieléctrico.
40
Figura 12. - Foto de un etalón Fabry Pérot
Son dos placas de cristal, separadas una distancia d, y recubiertas de una capa de
reflectividad R. La luz, al entrar, se encierra entre ambos espejos, y “rebota” varias veces en el
medio de índice n0, lo que da lugar a que sucedan tantos rayos salientes como rebotes
mencionados. Esto implica la formación de un patrón de interferencias.
La diferencia de camino óptico entre dos rayos sucesivos es:
? ? 2n0 d cos?
41
Reflectividad R
Indice
Distancia d
Figura 13. - Esquema de los rayos dentro un Fabry Pérot
Esto implica un período espacial de:
i?
?
2n0 cos?
(2)
suponiendo que el camino óptico es un múltiplo de la longitud de onda, y que los cristales
están paralelos.
El Fabry-Pérot actúa entonces como un filtro óptico, es decir, que va a dejar pasar
sólamente algunas longitudes de onda de la luz incidente. Esas frecuencias de resonancias
dependen del índice del medio y de la longitud de la cavidad según:
fp ? p
c
2n0 d
(3)
42
donde p es el modo, y c la velocidad de la luz en el vacío. Las resonancias son tales que la
onda de vuelta al interior de la cavidad se puede añadir a sí misma, es decir, una ida y vuelta
(2d) es igual a un camino óptico múltiple de la longitud de onda:
2 d ? p? p
(4)
Se puede apreciar en la figura 14, la curva de la transmisión de potencia luminosa en
función de la frecuencia, llamada función de Airy (que depende de R y d, o R y f).
Figura 14. - Gráfica de la intensidad luminosa a la salida de un filtro Fabry Pérot en función de la frecuencia
normalizada.
Se ve que la forma depende de la reflectividad R.
Así, de la fórmula precedente (3), se deduce el denominado intervalo espectral libre,
que es la “distancia” entre dos picos consecutivos:
43
? f fsr ?
c
2n 0 d
(5)
o lo que corresponde en términos de longitud de onda a:
?? fsr
?2
?
2n 0 d
(6)
La figura 15, de interferencias, es una red de hiperboloides. Si el plano de observación
es perpendicular a S1S2 vemos anillos, y si es paralelo a S1S2, se verán rectas, porque en
realidad, el campo es muy reducido. Cambiando el paralelismo de los espejos y su traslación,
el plano de observación toma distintas posiciones dentro de la red (mientras que en realidad es
la red la que se mueve), así, los espejos son paralelos cuando el plano de observación es
perpendicular a S1S2, y si además, situados en el centro de S1S2, se verá una mancha
uniforme [3].
Figura 15. - Red de Interferencias
44
5.4.2
Estructura del etalón.
El etalón tiene una parte de electrónica que permite mover uno de los dos espejos,
quedando el segundo siempre fijo. Tiene tres actuadores piezoeléctricos, los cuales mueven el
espejo móvil según los tres ejes del espacio, con ciertas limitaciones [5].
Sensores de
capacidad.
Piezoeléctrico
.
Capacidad de referencia.
Figura 16. - Diagrama de los piezoeléctricos en el etalón
Mientras los ejes x e y controlan el paralelismo, el eje z controla la anchura de la
cavidad. Al aplicar una tensión a los actuadores, estos se contraen o se expanden según sea la
tensión, lo cual conlleva a una rotación según el eje x o y, o una traslación según el eje z (en
este ultimo caso, los tres piezos se mueven de manera similar). Los sensores, midiendo la
capacidad que existe entre los dos espejos, permiten generar un bucle de realimentación con el
fin de mantener la longitud de los piezos constante. Después de ocurrir el mayor porcentaje de
su cambio de volumen, estos piezos tienen un tiempo de relajación, para alcanzar el punto de
equilibrio. Las capacidades que se miden existen gracias a unas pequeñas placas circulares que
están en las caras internas de los espejos, que simulan un capacitor con el aire como dieléctrico
(ver en la figura 16 los círculos de sensores de capacidad) [5].
45
Tiene cinco conexiones: uno para la alta tensión de los tres amplificadores del
controlador, aplicadas respectivamente a los bornes de los cada piezo (a,b,c), tres de retorno
para los tres ejes x, y, z, y un quinto para la señal de 15kHz sinusoidal que alimenta el puente
de medida de los capacitores que actúan como sensores. Se ha determinado que estas señales
de retorno son muy débiles, por lo que la carcasa del etalón se debe mantener aislada, y en
ningún caso, hacer contacto con tierra analógica o digital; de lo contrario, el controlador no
será capaz de distinguir correctamente estas señales de error [6].
5.4.3
Resumen de propiedades del etalón de OSIRIS.
Rango de longitudes de onda
365 65 a 1000 nm.
FWHM de los filtros
a 372.7 nm.
0.99 nm (meta 1.49 nm).
sintonizables
a 656.3 nm.
1.75 nm (meta 2.62 nm).
(TF en ingles Tunable Filter)
a 906.9 nm.
2.42 nm (meta 3.63 nm).
Al menos 400 (para el TF azul).
Contraste
y 1000 (para el TF rojo).
Al menos 70 % desde la longitud de onda
Alcance
central.
Rango de longitudes de onda
para el TF azul
Rango de longitudes de onda
para el TF rojo
Rango de desplazamiento
Apertura total del etalón
De 365 a 670 nm.
De 620 a 1000 nm.
Separación entre espejos desde 2µm hasta
12µm.
100 mm.
Tabla 2.- Resumen de propiedades del etalón de OSIRIS.
46
5.5
5.5.1
CONTROLADOR CS-100.
Descripción general.
El CS100 es el controlador estándar que suministra IC Optical Systems junto con sus
Filtros Sintonizables. Este instrumento es el controlador que aplica una tensión a cada uno de
los piezoeléctricos del etalón, de manera que se pueda ajustar la distancia entre los espejos, así
como el paralelismo. Se puede usar manualmente o de forma remota a través de una entrada
analógica de +/- 10V, utilizando un generador de señal o una tarjeta generadora conectada a un
PC , o bien a través de un puerto serie RS232 [5].
Figura 17. - Foto del CS100
47
5.5.2
Descripción del panel frontal.
El aparato tiene en su centro dos manillas: uno para ajustar el tiempo de respuesta, y el
otro para seleccionar el modo de calibración (“balance”) o el modo de operación (“operate”).
Para la calibración del aparato, refiérase al manual páginas 24 y 25. Las dos columnas de
manillas mas a la izquierda (los finos y gruesos) sirven para controlar la tensión a los bornes
de los piezos, según los ejes X, Y y Z. Cabe destacar que el manejo de una sola manilla no
implica que se mueva sólo un piezo, sino una combinación de los piezos. La columna restante
de manillas a la derecha, es para controlar la señal de cuadratura para X, Y y Z. Los tres
galvanómetros indican, en voltios, el nivel de cuadratura, o de offset, de la señal usada por el
CS100, para los tres ejes, según la posición de la manilla de selección ‘‘quadrature/offset’’ que
se encuentra debajo del galvanómetro mas a la derecha [5].
5.5.3
Funcionamiento.
El CS100 controla el desplazamiento del espejo de forma indirecta, por comparación
entre dos medidas de capacidades: una de referencia, fija, otra variable (compuesta por dos
pequeñas placas metálicas ubicadas sobre ambos espejos del filtro) que, gracias a un bucle de
realimentación va alcanzando la de referencia (el error, o sea la diferencia entre esas dos
capacidades, tiende a cero). Para poder ajustar la distancia entre los dos espejos, hay que
introducir un error artificial, sin el cual la distancia sería siempre fija, e impuesta por el valor
de la capacidad de referencia. Este error artificial indica el nivel de offset. El nivel de
cuadratura es debido al sistema interno del controlador que usa señales sinusoidales de 15
Khz. para los capacitores y sirve para manejar la fase de estas señales. Debe quedarse entre +/5V, en caso contrario el CS100 se sobrecarga, y el indicador “fuera de rango” se enciende (es
un sistema de seguridad para no estropear el etalón). Por eso se usan las manillas de ajustes de
cuadratura. En caso de sobrecarga, se pasa del modo “balance” a “operate”, sin olvidar
cambiar los ajustes como eran antes de la sobrecarga [5].
El CS100 entrega a los piezoeléctricos, tensiones de
-750 V hasta
+750 V
aproximadamente. El CS100 tiene también cierto margen de uso: la reducción o el aumento de
48
la longitud de la cavidad esta limitada, como también la máxima perpendicularidad de los
espejos. Según los ejes x e y, el movimiento de los espejos es de tipo tip-tilt, puesto que el uso
normal del etalón es el de ajustar los espejos paralelos. Entonces, las limitaciones se ven
sobretodo cuando se traslada el espejo móvil según z: a partir de dos ciertos puntos (el de
mínimo y máximo rango), aunque las agujas de cuadratura estén cercanas a cero utilizando los
botones de cuadratura, el CS100 se sobrecarga. Esto significa que ya no se puede adelantar /
retrasar más los espejos. Esto corresponde también a una tensión aplicada por el CS100 de
+750 V (o -750 V, según el punto en el cual esté). Unas manillas corresponden a los
incrementos gruesos, y otras a los incrementos finos, y se puede apreciar las discontinuidades
debidas al incremento grueso, por lo que no hay equivalencia entre un ajuste con la manilla de
incremento fino al máximo, y un incremento de la manilla de grueso, con el fino al mínimo.
Conociendo el funcionamiento del CS100, se propuso un esquema de conexión para los
capacitores dentro del Fabry Pérot, puesto que el fabricante no proporcionaba ningún
documento sobre el tema.
49
Vcom1
Bridge Drive C8
jVcom1
Cx2
Amp
Vx
Cx1
Bridge Drive C6
Cy2
Vy
Cy1
Bridge Drive C16
Xcoax
Charge Amp X
C28
Amp
Ycoax
Charge Amp Y
C28
Cz
Amp
Vz
Cref
Bridge Drive C26
Zcoax
Charge Amp Z
C28
P
S
D
Amp
Piezo
B
Amp
Piezo
A
Amp
Piezo
C
jVcom1
P
S
D
jVcom1
P
S
D
Bridge Drive C14
0V
Figura 18. - Conexión de los capacitores del Fabry Pérot
5.5.4
Explicación del esquema de conexión.
Se describe un esquema de un sistema servomecanizado. Impone a cada uno de los
piezoeléctricos del etalón una tensión, de manera que se pueda cambiar su espesor, y por
consiguiente, controlar el paralelismo del espejo como su traslación. Cada canal tiene un
puente de capacitores formados por plaquitas metálicas ubicadas sobre cada espejo del Fabry
Pérot (ver posición de dichos elementos figura 16). El principio de funcionamiento es el
siguiente:
50
?
Vcom1 es una señal sinusoidal de referencia de 15 Khz de frecuencia, y de baja
tensión.
?
Vx, Vy y Vz son señales sinusoidales de 15KHz de frecuencia, de amplitud igual a
la de Vcom1, y en contrafase con ella, (sin embargo, la amplitud y la fase de estas
tres señales pueden ser modificadas). Debido a que el esquema es redundante, se va
a explicar el fenómeno por un solo canal, por ejemplo el canal Vx.
?
Suponemos que Vx sea en contrafase con Vcom1 y de igual amplitud. En este caso, a
la salida del puente formado por Cx1 y Cx2, ninguna señal es generada siempre que
las capacidades sean iguales: se esta en equilibrio, el piezo no se mueve.
?
Si Vx no está exactamente en contrafase con Vcom1, entonces a la salida del puente
de capacitores aparece una señal de frecuencia 15 Khz, y de amplitud
proporcionada con la diferencia de fase que existe entre Vx y Vcom1. La señal podría
parecerse a la curva verde a la derecha de la figura 11.
?
El montaje incluyendo el detector de fase (bloque P.S.D.) muestrea coincidiendo
con el flanco de una señal de reloj de frecuencia igual a la de Vcom1 y desfasada 90º
(llamada jVcom1), la señal que sale del amplificador. El resultado es dirigido hacia
el piezo B del etalón después de una amplificación: la señal ahora es de alta
tensión. Finalmente, el piezo B se alarga o disminuye según el signo de la señal y
su amplitud, lo cual implica un cambio de valores de las capacidades, es decir que
Cx1 y Cx2 cambian de valores ; lo que modifica Vx, hasta alcanzar el punto de
equilibrio ya visto en el punto anterior.
?
Es imprescindible durante esta etapa que ambas señales es decir, los pulsos de
muestreo y la señal muestreada, estén bien sincronizadas. En caso contrario (figura
51
19), una mala señal será podría ser entregada al etalón, lo que puede dañarlo. Por
tanto, el controlador se sobrecarga y indica ‘‘fuera de rango’’. Las manillas de
ajustes de cuadratura son para este uso : cambiar la fase de Vx (figura 11), de forma
que se selecciona siempre una tensión cercana a los máximos a la salida del P.S.D.
Quadrature
X
level
position
Figura 19. - Contínua a la izquierda : Vx, por ejemplo. Contínua a la derecha : señal a la entrada del P.S.D fuera
de la posición de equilibrio. Punteada, la señal desfasada cuando tocamos a la manilla de cuadratura. En líneas de
pequeños segmentos, la amplitud modificada usando el botón x.
52
Figura 20. - Línea contínua: señal a la entrada del P.S.D. Abajo: la señal de reloj. Punteada Arriba : la señal a la
salida mandada hacia el piezo. Punteada abajo: señal a la salida con una mala sincronización
5.5.5
Comentarios.
Eso es el principio del servomecanismo que permite a los tres piezos guardar sus
espesores constantes, y por lo tanto el espejo bien fijo. Sin embargo, hay que dejar al usuario la
posibilidad de ajustar el paralelismo de los espejos, así como su traslación según z. Por eso se
introduce una señal de offset. Gracias a las manillas X, Y y Z del controlador, se aumenta la
amplitud de los señales Vx, Vy y Vz (figura 18). En cuanto a los ejes x e y, puesto que sirven
para ajustar el paralelismo, los valores de las capacidades Cx1, Cx2, Cy1 y Cy2 no importan
mucho, porque el servocontrol está basado en la diferencia entre cada par de valores. En el
caso del eje z, un valor de la capacidad es fija ya que queremos ajustar la anchura de la cavidad
con cierto valor. Por ejemplo, cuando giramos la manilla del eje z del controlador, eso impone
un cambio de la tensión al piezo C, aumentando o disminuyendo su espesor, lo que implica un
desajuste del paralelismo (uno de los tres piezos cambia su espesor), pero gracias al servo, los
piezos B y A se ajustan de forma que guardan el paralelismo [3].
53
6. PLANTEAMIENTO DEL PROBLEMA.
Las limitaciones del CS100, actual y único equipo disponible para el control de los
filtros sintonizables Fabry-Perot de gran apertura a usarse, hacen que el mismo no cumpla con
los requerimientos demandados
por el
proyecto OSIRIS. Dichas limitaciones son las
siguientes:
?
En el modo de control remoto ofrecido por el fabricante, no se tiene acceso al cambio
de valores de todas las señales que se pueden manejar desde el panel frontal del CS100,
obligando a que, en algún momento de su funcionamiento, sea necesario intervenir
manualmente al controlador en el panel frontal. La situación física de este controlador
en el telescopio, no va a permitir su acceso durante su operación.
?
También, en el modo de control remoto del fabricante, el desplazamiento máximo de
los espejos que se puede lograr es de 2µm, es decir, ± 1µm a partir de un punto
prefijado manualmente, donde una vez mas se requiere el acceso al panel frontal.
?
Además, el panel de control remoto, exige que cada valor desplazamiento sea enviado
por el puerto serial, uno a uno, lo cual resulta lento si se desea hacer barridos en el
espectro, con una velocidad que supere la velocidad de transmisión del puerto serial.
?
El controlador CS100 no permite sincronizar los desplazamientos de los espejos con
una señal externa.
6.1
OBJETIVOS.
Bajo las limitaciones presentadas anteriormente, y en pro de cumplir con los
requerimientos de OSIRIS, se plantearon los siguientes objetivos:
54
?
Lograr tener un modo de control remoto que permitiese tener el control total del panel
frontal y así evitar la intervención manual en el equipo para su calibración y operación.
?
Poder realizar un desplazamiento total de los espejos de 8µm en modo de control
remoto, con al menos 0,5nm de resolución.
?
Poder configurar barridos del espectro que no dependan de la velocidad de transmisión
del puerto serial.
?
Tener la habilidad de ordenar el movimiento de los espejos con una señal externa, que
provendrá de la cámara CCD, y así sincronizar el movimiento de los espejos, con el
desplazamiento de carga del CCD.
6.2
SOLUCION.
La solución planteada consiste en el diseño de una tarjeta de aplicación que capture las
señales del controlador CS100, las interprete, en casos las modifique, y las regrese al
controlador para lograr tener el control total del panel frontal de manera remota, y cambiar la
señal de consigna de cada uno de los servos de los espejos, y lograr así el desplazamiento
máximo de 8µm.
Por efecto de este desplazamiento, se genera una señal de error de cuadratura que se
controlaba con el panel frontal, lo cual ha llevado al diseño de un servo-control que evitara la
necesidad de la compensación por el panel frontal en las manillas de ajuste de cuadratura. Este
servo-control captura la señal de error de cuadratura y aplica una compensación necesaria para
evitar que el equipo de la alerta de “fuera de rango”, la cual evita que se produzcan
oscilaciones indeseadas en los espejos, que pudiesen llevar a que chocaran entre ellos y se
destruyan.
55
Además, dicha tarjeta deberá poder recibir una señal externa para la sincronización con
la cámara CCD.
Todo esto sin que ello afecte al funcionamiento de los demás circuitos del controlador
CS100, y así asegurar la correcta operatividad de todo el equipo en conjunto.
6.3
JUSTIFICACION.
La justificación viene dada por la exigencia de funcionamiento, presentadas por la
operatividad necesaria para poder hacer los estudios solicitados por los astrónomos. También
puede notarse razones de versatibilidad y robustez del instrumento OSIRIS.
6.4
6.4.1
ESPECIFICACIONES A CUMPLIR.
Capacidad de control remoto.
Controlar y monitorizar todo el panel frontal, de forma remota.
6.4.2
Control de las señales de consigna.
Capturar la señal de consigna del canal de desplazamiento Z, la de la señal de
paralelismo X y la de paralelismo Y, controlar su amplitud (±10VAC a 15KHz) y fase
(0º~180º) a fin de lograr una resolución mejor a 0,5nm.
6.4.3
Capacidad de sincronización.
Controlar el cambio del canal Z que define el desplazamiento de los espejos en
sincronía con la señal de disparo externa TTL proveniente del CCD.
6.4.4
Control Automático de cuadratura.
Capturar las señales de error de cuadratura de cada canal y aplicarle una regulación
automática a la señal de control de cuadratura del controlador.
56
6.4.5
Capacidad de comunicación.
Controlar en su totalidad al equipo CS100 a través de una interfaz de un puerto serie
desde un computador, con un protocolo de comandos en ASCII.
57
7. DISEÑO PRELIMINAR
A continuación se definirán un conjunto de módulos electrónicos cuya funcionalidad
dará lugar al cumplimiento de las especificaciones citadas.
7.1
Módulo 1.
La funcionalidad de este módulo permitirá cumplir la especificación 6.4.1., relacionada
con la capacidad de control remoto.
7.1.1
Estudio del sistema actual.
En el panel frontal se encuentran todas las manillas de selección de modos de
operación, ajustes finos y gruesos de offset, ajustes de cuadratura, selección de tiempos de
respuesta, y tres galvanómetros, uno para cada canal, que indican según selección de modo
offset o cuadratura, el ajuste del offset o el ajuste de la cuadratura respectivamente. También
se encuentran 5 leds que indican: encendido del equipo, equipo en modo operate, equipo en
modo balance, equipo en fuera de rango y equipo en modo remoto representado por “disable”.
Las señales de selección son estados digitales que van a un controlador lógico, las señales a los
leds vienen de ese mismo controlador lógico, y las señales de ajuste de cuadratura y de offset,
como también las señales a los galvanómetros, son señales analógicas, y vienen de
determinados puntos del equipo. Mas detalles circuitales del CS100 no pueden ser
mencionados respecto a este punto por un acuerdo de confidencialidad con el fabricante.
7.1.2
Propuesta de control e intervención de señales.
En tal sentido se tienen tres grupos de señales:
?
Un primer grupo de señales digitales que leer, provenientes del panel frontal
respecto a las selecciones de modos y tiempos de respuesta, y otras provenientes
del controlador lógico que activan el encendido de los leds, que también se deben
58
leer. Seguidamente, estas señales serán interpretadas por un sistema de control
digital, para después generar las señales de selección de modos y tiempos de
respuesta según nuestra operación y redirigirlas al controlador lógico, lo cual
implica que ahora estas señales del panel frontal, no irán directamente al
controlador lógico, y su selección dependerá del nuevo sistema de control digital.
Igualmente con las señales de encendido de los leds provenientes del controlador
lógico, que serán leídas e interpretadas por el nuevo sistema de control digital, el
cual decidirá que señales a los leds activar, y las generara para redirigirlas a los leds
en el panel frontal. Cabe mencionar que todas estas señales de selección y
activación trabajan con lógica negativa.
?
Un segundo grupo de señales analógicas que provienen de los ajustes de offset y
cuadratura, que tendrían la opción de ser cortadas para ser sustituidas por las
señales de ajuste que se generen en la nueva tarjeta de aplicación. Todo esto con el
debido cuidado a crear efectos de carga al CS100. Estas opciones de sustitución
también serán decididas por el nuevo sistema de control digital.
?
Un tercer grupo de señales analógicas provenientes de los galvanómetros, las cuales
simplemente serán capturadas sin ser alteradas o desconectadas de los
galvanómetros, para así poder interpretarlas y saber su valor en voltios.
7.1.3
Características de los componentes necesarios.
?
Para el primer grupo de señales, las selecciones de modos provenientes del panel
frontal necesitarían de unos “pull-up” ya que trabajan con lógica negativa. Y las
selecciones dadas por el nuevo sistema de control digital, pasarían por un buffer
TTL para evitar los efectos de carga provenientes del CS100. Respecto a las
conexiones a los leds, las órdenes de encendido provenientes del controlador lógico
serán conectadas a dispositivos optoaisladores, para separar la electrónica del
CS100 y sus efectos de carga, del nuevo sistema de control digital. Y para señales
de encendido de los led provenientes del nuevo sistema de control digital, se
59
incluiría las debidas resistencias en serie con cada led según las características de
potencia de los mismos, como también de la intensidad de luz deseada.
?
Para el segundo grupo constituido por señales analógicas, se sabe que son señales
con un máximo de ±10VAC. Con la intención de sustituir estas señales, se pensó
usar unos switch analógicos comandados por el nuevo sistema de control
automático. Pero dadas las posibilidades que el switch inyectara ruido, por las
señales digitales de activación, a la señal analógica, y esto aunado a la posibilidad
de efectos de carga sobre el CS100, debido a la circuiteria presente en el punto de
donde provienen estas señales, se decidió colocar unos relés para la selección de las
señales, cuyas ordenes de activación estarían aisladas, del nuevo sistema de control
digital, por dispositivos optoaisladores. Es altamente deseable que estos reles
tengan una muy baja resistencia de contacto para evitar atenuaciones, y que
soporten el rango de voltaje y el tipo de estas señales analógicas que van a pasar
por ellos.
?
Para el tercer grupo de señales, que provienen de los galvanómetros, es necesario
implementar para su lectura un dispositivo conversor analógico digital, para que así
el nuevo sistema de control digital pueda procesarlo. Este ADC preferentemente
seria de salida paralela, y con capacidad de, al menos, tres canales seleccionables,
que en nuestro caso son los canales X, Y y Z. También debe tener un rango de
voltaje de entrada de ±10VDC. Además debe ofrecer al menos 8 bits de resolución,
que ofrecería una resolución de lectura de algo menos a 100mV, suficiente para
nuestros propósitos de monitorización.
7.1.4
Diagrama de bloques.
?
Para el primer grupo de señales:
60
Señales de
Selección de
modos del Panel
Frontal
8
Señales de
Selección de
modos hacia el
controlador
lógico
Señales de
Encendido de
LEDs hacia el
Panel Frontal
Señales de
Encendido de
LEDs del
controlador
lógico
Tarjeta de Aplicación
Pull-ups
8
Nuevo
8
Buffers
8
Sistema
de
Control
5
5
Arreglo de
resistencias
5
Dispositivos
Optoaisladores
5
Digital
Figura 21. - Diagrama de bloques del módulo 1. Parte 1
61
?
Para el segundo grupo de señales:
Señales de
Ajuste de
Cuadratura del
Panel Frontal
Señales de
Ajuste de
Cuadratura
de la Tarjeta de
Aplicación
Tarjeta de Aplicación
x
x
y
3
y
z
Señales de
cuadratura
generadas
z
3 Señales de
activación de reles
3
Dispositivos
Optoaisladores
3
Dispositivos
Optoaisladores
3
Nuevo
Sistema de
Control
3 Señales de
activación de reles
Señales de
Ajuste de Offset
del Panel Frontal
Señales de
Ajuste de Offset
de la Tarjeta de
Aplicación
3
x
x
y
y
Digital
z
z
Señales de
offset
generadas
3
Figura 22. - Diagrama de bloques del módulo 1. Parte 2
62
?
Para el tercer grupo de señales:
Señal para el
Galvanómetro
X
Tarjeta de Aplicación
Entradas
Analógicas
ADC
Señal para el
Galvanómetro
Y
Nuevo
Conversor
Analógico
- Digital
Señal para el
Galvanómetro
Z
Salida
Digital
ADC
8
Sistema de
Control
Digital
Señales de control
entrada/salida
Figura 23. - Diagrama de bloques del módulo 1. Parte 3
7.2
Módulo 2.
La funcionalidad de este módulo permitirá cumplir la especificación 6.4.2., relacionada
con el control de las señales de consigna.
7.2.1
Estudio del sistema actual.
Las señales de consigna de los etalones para X, Y y Z, que son los ajustes grueso y fino
del offset, son señales AC sinusoidales con amplitud máxima de 10VAC a 15KHz. El CS100
dispone de puntos donde esta señal es capturada como vimos en el punto anterior. Mas detalles
circuitales del CS100 no pueden ser mencionados respecto a este punto por un acuerdo de
confidencialidad con el fabricante.
63
7.2.2
Propuesta de control e intervención de señales.
El ajuste grueso será sustituido en el Módulo 1 por lo que este módulo genere. El
ajuste fino será desconectado con un relé (tal y como se hace en el punto anterior pero en vez
de mandar la señal generada, se pondrá a tierra) y enviado a tierra para que no ofrezca
contribución alguna durante la operación de este módulo. Como la señal sustitutiva debe ser
igual en amplitud y frecuencia a las que reciben los etalones, se necesita una señal de
referencia, que se puede capturar en un punto determinado del CS100 fácilmente. Mas detalles
circuitales del CS100 no pueden ser mencionados respecto a este punto por un acuerdo de
confidencialidad con el fabricante. Un conversor Digital-Analógico es la opción a este
módulo, ya que el nuevo sistema de control digital podrá decidir el valor a cargar, dentro del
rango ofrecido por la señal de referencia. El recorrido del etalón es lineal con el intervalo
definido desde -Ref hasta +Ref, encontrándose los espejos en mitad de su desplazamiento en
cero voltios, que es la mitad del mencionado intervalo. Por ello, el cero digital debe coincidir
con –Ref y la salida máxima digital debe coincidir con +Ref. Así controlaremos su amplitud.
La fase la controla la señal de cuadratura a través de un módulo de control automático que se
describirá mas adelante.
7.2.3
Características de los componentes necesarios.
El componente principal de este módulo es el conversor digital- analógico. Debe ser de
tipo multiplicador ya que su señal de referencia será una señal AC. Se debe usar un DAC para
cada canal (X,Y,Z). Bajo la premisa de que debemos tener una resolución de al menos de
0,5nm, y sabiendo que el recorrido total del etalón es de aproximadamente 8µm, entonces se
tendrá una exigencia mínima de 16000 pasos distinguibles, que corresponden a 14bits de
resolución del DAC. Ya que esto es para el mínimo necesario, se buscará mejorar esta
resolución de 0,5nm utilizando un DAC de 16bits, lo cual ofrecería una resolución en
principio de 0,12nm. También esto permite aceptar un componente con una no linealidad
integral de 1 bit (INL de 1LSB), que ya es bastante exigencia. Por otro lado, debe aceptar
señales de referencia sinusoidales de 15KHz con 10Vp-p. Debido a que se necesita llevar la
señal analógica desde +10Vp pasando por cero, hasta otros +10Vp pero con 180º de desfasaje,
64
el DAC debe trabajar en modo bipolar, donde el cero analógico, corresponda a media escala en
los 16bits. Es también muy aconsejable que ofrezca un reducido nivel de ruido de salida para
no introducir perturbaciones a esta señal que va a los etalones.
7.2.4
Diagrama de bloques.
Señal de offset
generada para X
Salida
analógica
DAC X
Señal de referencia
Tarjeta de Aplicación
Conversor
DigitalAnalógico
Entrada
Digital al
DAC X
16
Señales de control
DAC X
Señal de offset
generada para Y
Salida
analógica
DAC Y
Señal de referencia
Conversor
DigitalAnalógico
Entrada
Digital al
DAC Y
16
Nuevo
Sistema de
Señales de control
DAC Y
Control
Digital
Señal de offset
generada para Z
Señal de referencia
Salida
analógica
DAC Z
Conversor
DigitalAnalógico
Entrada
Digital al
DAC Z
16
Señales de control
DAC Z
Figura 24. - Diagrama de bloques del módulo 2
65
7.3
Módulo 3.
La funcionalidad de este módulo permitirá cumplir la especificación 6.4.3., relacionada
con la capacidad de sincronizacion.
7.3.1
Estudio del sistema actual.
El sistema actual no cuenta con ningún dispositivo que permita aceptar una señal de
sincronización externa, que dispare el avance de la señal de offset del canal Z.
7.3.2
Propuesta de control e intervención de señales.
Con el nuevo sistema digital a implementar, se abre la posibilidad de hacer
sincronismos con señales externas, debido a que la solución planteada en el módulo 2, permite
controlar la señal de offset del canal Z de manera digital. En tal sentido, el nuevo sistema
digital interpretara la señal de sincronía y, según el estado en que se encuentre, dará un avance
de paso del etalón, es decir, su desplazamiento. La señal de sincronía proveniente de la cámara
CCD, es una señal TTL, y al momento de hacer un barrido, será una onda cuadrada de
aproximadamente unos 200Hz de frecuencia.
7.3.3
Características de los componentes necesarios.
El único componente necesario en este caso podría ser un buffer TTL para evitar
efectos de carga en el nuevo sistema digital, ya que la circuiteria de la cual proviene esa señal
TTL se desconoce.
66
7.3.4
Diagrama de bloques.
Tarjeta de Aplicación
Señal de
sincronización
Externa TTL
Nuevo
Buffer
TTL
Señal
Digital
Sistema de
Control
Digital
Figura 25. - Diagrama de bloques del módulo 3
7.4
Módulo 4.
La funcionalidad de este módulo permitirá cumplir la especificación 6.4.4., relacionada
con el control automatico de cuadratura.
7.4.1
Estudio del sistema actual.
La señal de cuadratura que se aplica en el panel frontal, hace un ajuste de
compensación de la señal de offset en el puente de capacitores del CS100 debido a la
presencia de una señal espuria (ver figura 18 en el punto CONTROLADOR CS100), para
mantener el desfasaje que ocurre entre la señal de referencia y dicha señal antes mencionada,
mucho menor a 90º. Esto lleva a un ajuste continuo de este valor, ya que, cuando el desfasaje
supera un cambio de 90º, el equipo cae en fuera de rango, y su operatividad es detenida por
razones de seguridad y buen funcionamiento. El desplazamiento posible antes de llegar a los
90º es muy pequeño, y se está hablando de poder recorrer el desplazamiento máximo que
permita el etalón.
67
7.4.2
Propuesta de control e intervención de señales.
Claramente, y en apoyo a la especificación 6.4.1 (capacidad de control remoto), esta
graduación debe hacerse en forma automática, de tal forma que se realicen ajustes a la señal de
cuadratura, de acuerdo con la señal de error de cuadratura, la cual se encuentra en un módulo
dentro del CS100, para los cuales existen 3 puertos coaxiales internos (uno para cada canal –
X, Y y Z-), que permiten recogerlas por separado y de una manera fácil. De esta manera se
puede tomar esas señales como medida proporcional al ajuste que se debe hacer a la señal de
cuadratura.
Por lo tanto, es la amplitud de una señal de referencia de 15KHz la que se debe
modificar para reinyectarla al CS100 y efectúe la compensación que elimine los efectos de la
señal espuria. Mas detalles circuitales del CS100 no pueden ser mencionados respecto a este
punto por un acuerdo de confidencialidad con el fabricante. Para el propósito de modificar la
amplitud de la señal de referencia, es necesario multiplicar a la misma por un factor que la
atenúe o la amplifique su amplitud. Este factor lo se obtiene a partir de la señal de error de
cuadratura antes mencionada. Esta señal de error de cuadratura es una señal de corriente
contínua, por lo cual una integración de esta señal daría el factor multiplicativo necesario. Es
de interés que el integrador no produzca efectos de ganancia en la señal, por lo que seria
recomendable un ajuste de máxima amplitud permitida antes de pasar al multiplicador.
También, para evitar efectos de carga al CS100, se colocará un buffer en la entrada al circuito.
Deberá realizarse un circuito para cada canal.
7.4.3
Características de los componentes necesarios.
Los amplificadores operacionales que conformen el buffer deberán ser de muy alta
impedancia de entrada, para cumplir el propósito para el cual se van a usar. Ya que se
utilizarán más amplificadores operacionales para el integrador y para el ajuste de ganancia, es
recomendable escogerlos de tal forma que sean varios OPAMs en un solo integrado. Y para el
multiplicador, interesa que tenga entradas diferenciales de alta impedancia, que tenga un error
de multiplicación bajo, sea de bajo nivel de ruido en operación con señales de 15KHz, y que
68
introduzca muy poca distorsión, para reproducir la señal de 15KHz correctamente sin sufrir
deformaciones.
7.4.4
Diagrama de bloques.
(Un diagrama como el que sigue para X, otro para Y y otro para Z, idénticos).
Señal de
Error de
cuadratura
Señal de
Referencia
Tarjeta de Aplicación
Buffer
de
Integrador
Señal para
el ajuste
de la
cuadratura
Buffer con ajuste
de amplitud
máxima
Multiplicador
Figura 26. - Diagrama de bloques del módulo 4
7.5
Módulo 5.
La funcionalidad de este módulo permitirá cumplir la especificación 6.4.5., relacionada
con la capacidad de comunicación.
7.5.1
Estudio del sistema actual.
El sistema actual permite un manejo vía puerto serial desde un computador, pero con
serias limitaciones. En primer lugar, el funcionamiento de control a través del puerto serie sólo
69
permite un desplazamiento de 2µm, lo cual ya empieza a ser una limitante fuerte; y aún cuando
lo permitiese, no ofrecería la resolución requerida por OSIRIS. Mas detalles circuitales del
CS100 no pueden ser mencionados respecto a este punto por un acuerdo de confidencialidad
con el fabricante. Luego, su funcionamiento es alrededor de un punto que debe ser fijado
manualmente, lo cual se contrapone con la especificación 6.4.1. Además, no permite hacer
barridos con la rapidez que se necesita, aunado esto a que los comandos programados vía
puerto serial disponibles en el equipo original son poco prácticos.
7.5.2
Propuesta de control e intervención de señales.
Debido a que el nuevo sistema de control digital ejerce un dominio sobre todos los
módulos de la tarjeta de aplicación, la cual en si, controla y monitoriza el panel frontal,
controla el paralelismo X , el paralelismo Y, y el desplazamiento Z, regula los ajustes de
cuadratura, todos estos puntos básicos para el bien funcionamiento del etalón, queda de este
nuevo sistema de control digital, el poder establecer comunicaciones vía puerto serial con un
computador, y ser programado para interpretar los comandos a establecer.
7.5.3
Características de los componentes necesarios.
El elemento de control digital a utilizar debe tener la capacidad de establecer
comunicaciones vía RS232, y debe poder ser programado para que ejecute los comando de
manera ordenada. Deberá disponer de un dispositivo UART para comunicarse con el
computador.
70
7.5.4
Diagrama de bloques.
Tarjeta de Aplicación
Nuevo
Señal TX
Señal RX
Sistema de
Dispositivo
UART
Computador
Señal RX
Control
Señal TX
Digital
Figura 27. - Diagrama de bloques del módulo 5
7.6
Resumen de señales para el control digital.
El resumen de señales para el control digital que harán interfaz con el nuevo sistema de
control digital, según el módulo al que pertenezcan, son las siguientes:
7.6.1
Módulo 1.
7.6.1.1
Entradas
?
Selección de modo “Offset” en el panel frontal.
?
Selección de modo “Quadrature” en el panel frontal.
?
Selección de modo “Operate” en el panel frontal.
?
Selección de modo “Balance” en el panel frontal.
?
Selección de constante de tiempo “0.2msec” (RT1) en el panel frontal.
?
Selección de constante de tiempo “0.5msec” (RT2) en el panel frontal.
?
Selección de constante de tiempo “1.0msec” (RT3) en el panel frontal.
?
Selección de constante de tiempo “2.0msec” (RT4) en el panel frontal.
71
?
Orden de encendido del led “power” del controlador lógico del CS100.
?
Orden de encendido del led “operate” del controlador lógico del CS100.
?
Orden de encendido del led “balance” del controlador lógico del CS100.
?
Orden de encendido del led “out of range” del controlador lógico del CS100.
?
Orden de encendido del led “disable” del controlador lógico del CS100.
?
Valor de la lectura del galvanómetros en formato paralelo de 8 bits.
?
Señales de control provenientes del ADC.
7.6.1.2
Salidas
?
Selección de modo “Offset” hacia el controlador lógico del CS100.
?
Selección de modo “Quadrature” hacia el controlador lógico del CS100.
?
Selección de modo “Operate” hacia el controlador lógico del CS100.
?
Selección de modo “Balance” hacia el controlador lógico del CS100.
?
Selección de modo “0.2msec” (RT1) hacia el controlador lógico del CS100.
?
Selección de modo “0.5msec” (RT2) hacia el controlador lógico del CS100.
?
Selección de modo “1.0msec” (RT3) hacia el controlador lógico del CS100.
?
Selección de modo “2.0msec” (RT4) hacia el controlador lógico del CS100.
?
Orden de encendido del led “power” hacia en el panel frontal.
?
Orden de encendido del led “operate” hacia en el panel frontal.
?
Orden de encendido del led “balance” hacia en el panel frontal.
?
Orden de encendido del led “out of range” hacia en el panel frontal.
?
Orden de encendido del led “disable” hacia en el panel frontal.
?
Orden de activación de relé para sustitución de señal de cuadratura en X.
?
Orden de activación de relé para sustitución de señal de cuadratura en Y.
?
Orden de activación de relé para sustitución de señal de cuadratura en Z.
?
Orden de activación de relé para sustitución de señal de ajuste de offset (fino y
grueso) en X.
?
Orden de activación de relé para sustitución de señal de ajuste de offset (fino y
grueso) en Y.
72
?
Orden de activación de relé para sustitución de señal de ajuste de offset (fino y
grueso) en Z.
?
Señales de control hacia el ADC.
7.6.2
Módulo 2.
7.6.2.1
Entradas
Ninguna.
7.6.2.2
Salidas
?
Valor a cargar en el DAC para X en formato paralelo de 16 bits.
?
Valor a cargar en el DAC para Y en formato paralelo de 16 bits.
?
Valor a cargar en el DAC para Z en formato paralelo de 16 bits.
?
Señales de control hacia el DAC para X.
?
Señales de control hacia el DAC para Y.
?
Señales de control hacia el DAC para Z.
7.6.3
Módulo 3.
7.6.3.1
Entradas
?
7.6.3.2
Señal de sincronización proveniente del CCD.
Salidas
Ninguna.
73
7.6.4
Módulo 4.
7.6.4.1
Entradas
Ninguna.
7.6.4.2
Salidas
Ninguna.
7.6.5
Módulo 5.
7.6.5.1
Entradas
?
7.6.5.2
Señal de transmisión de datos provenientes del computador (RS232).
Salidas
?
Señal de transmisión de datos hacia el computador (RS232).
74
8. DISEÑO DETALLADO.
8.1
Consideraciones del control digital a implementar.
Este nuevo sistema de control digital deberá manejar un gran número de señales de
entrada y salida, por lo que su capacidad de interconexión deberá ser considerable. Además,
debe poder procesar con eficiencia y rapidez las señales de entrada, para luego mandar señales
de salida coherentes, resultado de un software de control implementado dentro del mismo.
Existen en el mercado algunos microcontroladores que ofrecen una arquitectura que permite su
utilización en casos como el presente, entre los que están los fabricados por varias compañías
de reconocida trayectoria en circuitos integrados.
Debido a que en el centro de desarrollo del departamento de ingeniería se contaba con
una FPGA, como parte de una tarjeta de desarrollo, se convertía esta en una excelente opción
para el desarrollo de este nuevo sistema de control digital, evitando el alto gasto que implicaría
la compra de una plataforma de desarrollo de un microprocesador comercial. Además que
implicaría ceñirse a las limitaciones que se puedan presentar si se desea cambiar de fabricante
o de arquitectura de hardware en el futuro. La FPGA (Field Programmable Gate Arrays) es una
arquitectura que consiste en un gran número de bloques lógicos simples programables (una
alta densidad de compuertas lógicas), con switches e interconexiones entre estos bloques
también programables, y un número celdas de entrada y salida periféricos al integrado, que se
pueden conectar a estos bloques. Todo esto se hace a través de un sistema de software de
desarrollo, que permite al usuario definir la función de hardware que se busca implementar,
después de haber sido fabricado el integrado. Debido a su flexibilidad es muy útil para los
diseñadores de circuitos integrados.
75
8.2
8.2.1
FPGA Xilinx Spartan -IIE.
Descripcion de la familia Spartan- IIE.
La familia Spartan-IIE de FPGAs cuenta con una arquitectura regular, flexible y
programable de bloques lógicos configurables (-CLBs-Configurable Logic Blocks), rodeados
por un perímetro de bloques de entradas/salidas programables (-IOBs-Input/Output Blocks).
Contiene cuatro DLLs (Delay-Locked Loops), en cada esquina de su plano. También, dos
columnas de bloques de RAM, que están en el lado contrario, entre las columnas de CLBs y
IOB. Las Spartan-IIE son configurables según las especificaciones del usuario, a través del
proceso de carga de dicha data de configuración dentro de las celdas internas de memoria
estática. De esta forma, los ciclos de reprogramación son ilimitados. El valor guardado en esas
celdas, determina las funciones lógicas y las interconexiones implementadas en la FPGA [9 y
10].
Tabla 3.- Características principales para la familia Spartan IIE según modelo.
76
Tabla 4.- Cantidad de I/O disponibles para la familia Spartan IIE según modelo.
8.2.2
Especificaciones Técnicas.
?
Densidades de hasta 15,552 celdas lógicas, hasta con 600,000 compuertas.
?
Reprogramación ilimitada.
?
Tecnología avanzada de 0.15 micras.
?
Memoria jerárquica SelectRAM+™: 16 bits/LUT de RAM distribuida, puertos
duales de bloques de RAM 4K-bit reales, interfaz rápida con RAM externa.
?
3.3V PCI de 64 bits a 66 MHz y CardBus “compliant”.
?
Arquitectura de segmentación de ruteo de baja potencia.
?
Lógica de signo dedicada para operaciones aritméticas a alta velocidad.
?
Manejo eficiente de multiplicadores.
?
Abundantes registros, “latches” con “enable”, “set” y “reset”.
?
Cuatro DLLs dedicados para control avanzado de reloj: elimina el retardo de
distribución de reloj, multiplica, divide y hace corrimiento en fase.
?
Compatible con IEEE 1149.1.
?
Empaquetados de bajo costo para distintas densidades.
?
Compatibilidad de familias de “footprints”.
?
19 estandares de interfaz de alto rendimiento: LVTTL, LVCMOS, HSTL, SSTL,
AGP, CTT, GTL, LVDS y LVPECL I/O diferencial.
77
?
Hasta 205 pares diferenciales I/O que pueden trabajar como salidas, entradas o en
modo bidireccional.
8.3
?
Cambio en caliente de entradas/salidas (compatible a CompactPCI).
?
Mapeo, ruteo e implementación automáticos usando el Software de Xilinx.
?
Integrado con las entradas de diseño y las herramientas de verificación.
?
Extensas librerías IP incluyendo funciones DSP procesadores embebidos.
Tarjeta de evaluación de AVNET.
8.3.1
Descripción.
El kit de evaluación de Avnet para el Xilinx Spartan-IIE es usado por ingenieros como
una plataforma de prueba para diseños de FPGA a ser aplicados en dispositivos Xilinx
Spartan-IIE. También, es una gran herramienta para principiantes que deseen obtener destreza
con FPGAs, VHDL y microcontroladores embebidos. El dispositivo Spartan-IIE, localizado en
el centro de la tarjeta, puede ser configurado a través de un puerto JTAG de descarga o desde
la PROM contenida en la misma tarjeta. La configuración de dicha PROM es también
programable a través del cable JTAG. Sobre 100 señales de entrada/salida están conectadas
entre la FPGA y los conectores de expansión; cuatro pares diferenciales están conectados al
conector LVDS. Las otras entradas/salidas están conectadas a ocho LEDs, dos pulsadores,
ocho DIPswitches, un puerto RS-232 “line transceiver”, un Codec y dos indicadores de siete
segmentos [14].
8.3.2
Especificaciones Técnicas.
?
FPGA:
?
SPROM: Xilinx XC18V02VQ44C
Xilinx® Spartan-IIE XC2S200E-6FT256C
78
?
Conectores entrada/salida en tarjeta:
o Dos conectores de expansión de 0.1 de 50 pines.
o Pads para tres conectores MICTOR.
o Pads para dos conectores de expansión de propósito general de 140 pines
(AvBus).
o Pads para conectores MDR de 26 pines para LVDS (4 pares).
?
Alimentaciones:
o +5.0 VDC conector de alimentación (fuente incluida).
o +3.3 VDC regulado.
o +2.5 VDC regulado.
o +1.8 VDC regulado.
o +1.5 VDC regulado.
o Capacitancias de desacople en todos los puntos necesarios.
?
Características:
o TI TLV320AIC23 16-bit audio Codec.
o Entradas/Salidas versátiles: Terminaciones seleccionables, voltajes de
referencia y de salida en un solo banco.
?
Comunicaciones: Puerto Serial RS-232 (DB9).
?
Configuración:
o Conector JTAG (header).
o PROM programable integrada.
?
Misceláneas:
o 8 DIP-switches.
o 2 pulsadores.
o Dual LED 7 segmentos.
o 8 LEDs.
79
o Oscilador de 50 MHz.
8.4
XPS (Xilinx Platform Studio).
8.4.1
Descripción.
XPS provee un entorno integrado para crear las especificaciones de software y
hardware para un sistema con procesador embebido. También provee de un editor y un gestor
de interfaz de proyecto para crear y editar códigos fuente. XPS ofrece la personalización del
conjunto de opciones de configuración de las herramientas. También, proporciona un sistema
de edición grafico para la conexión de procesadores, periféricos y buses. XPS esta disponible
para plataformas Windows y Solaris. Existe también, un modo de invocación tipo “batch” del
XPS disponible [13].
8.4.2
Características.
XPS tiene las siguientes características:
?
Permite agregar dispositivos, editar los parámetros de dichos dispositivos, definir
conexiones de buses y señales, para generar las especificaciones del hardware del
microprocesador (-MHS-Microprocessor Hardware Specification).
?
Permite la generación y modificación de las especificaciones del software del
microprocesador (-MSS- Microprocessor Software Specification).
?
Manejo y soporte de las herramientas siguientes: Generador de librerías,
compilador GNU, generador de plataforma, generador de modelos de simulación,
generación del “Makefile”, sistemas ACE, Xilinx Microprocessor Debug, y
exportar e importar diseños, hacia y desde el Xilinx Project Navigator.
?
Visualización y edición del diagrama de bloques gráficos.
?
Visualización y edición de códigos en lenguaje C, y archivos cabecera
?
Permite la gestión completa del proyecto
?
Permite la gestión de los procesos y de la dependencia de herramientas.
80
8.5
EDK 6.1 ( Embedded Development Kit).
Este kit fue diseñado para proveer a los diseñadores de un valioso conjunto de
herramientas de diseño, y una amplia selección de periféricos estándar, requeridos para
construir un sistema con procesador embebido como lo es MicroBlaze, considerado la
solución mas rápida en procesadores “soft” para la industria, y como lo es el IBM ® PowerPC
® CPU en el Virtex-II Pro. El EDK incluye las herramientas para sistemas embebidos(-ESTEmbedded System Tools), las cuales consisten en una plataforma para el manejo de utilidades,
aplicaciones para el desarrollo de herramientas, herramientas para debug, manejadores de
dispositivos y librerías, permitiendo al usuario de desarrollo aprovechar al máximo las
prestaciones y el rendimiento del MicroBlaze y el Virtex-II Pro [13].
8.6
MicroBlaze (microcontrolador embebido).
8.6.1
Descripción.
El MicroBlaze es una estructura de procesador embebido del tipo RISC (reduced
instruction set computer), optimizado para su implementación en FPGAs de Xilinx. La figura
28 muestra el diagrama de bloques que describe la estructura del MicroBlaze [11]. En dicho
diagrama se denotan 4 tipos de interfaz por los buses que son los siguientes:
?
ILMB: Instruction Local Memory Bus.
?
DLMB: Data Local Memory Bus.
?
IOPB: Instruction On-chip Peripheral Bus.
?
DOPB: Data On-chip Peripheral Bus.
81
Figura 28. - Diagrama de la arquitectura del MicroBlaze
8.6.2
Características.
El procesador embebido MicroBlaze tiene las siguientes características:
?
Treinta y dos registros de 32 bits de propósito general.
?
Manejo de palabras de instrucciones de 32 bits con tres operandos y dos modos de
direccionamiento.
?
Buses separados de 32 bits para instrucciones y de 32 bits para datos, que conforman
las especificaciones del IBM’s OPB.
?
Buses separados de 32 bits para instrucciones y de 32 bits para datos, con conexión
directa al bloque de RAM integrado(on-chip block RAM) a través del LMB.
?
Buses de 32 bits de direccionamiento.
?
Procesamiento tipo “pipeline”.
?
Cache para instrucciones y datos.
?
Debug lógico del Hardware.
?
Manejo de FSL (Fast Simplex Link).
82
?
Multiplicador de Hardware(en Virtex-II y dispositivos subsecuentes).
La estructura MicroBlaze esta organizada como una arquitectura tipo Hardvard con
unidades de bus de interfaz separadas para el acceso a datos y para el acceso a instrucciones.
Cada unidad de interfaz de bus esta dividida dentro del LMB y del OPB. El LMB provee un
acceso de ciclo simple al puerto dual del bloque de RAM integrado. La interfaz del OPB
dispone de conexiones a periféricos y bloques de memoria, tanto integrados como externos.
Además, la estructura del MicroBlaze provee de 8 interfaces de entradas y 8 interfaces de
salida a un bus FSL. El bus FSL es un canal de comunicación unidireccional de dedicación no
arbitraria.
MicroBlaze dispone de los manejadores de dispositivos de Xilinx siguientes [12]:
?
Controlador para ATM.
?
Ethernet 10/100 MAC.
?
Ethernet 10/100 MAC Lite.
?
Controlador de memoria externa.
?
I/O (entradas/salidas) de propósito general.
?
Gigabit Ethernet MAC.
?
HDLC (High level Data Link Control).
?
Intel StrataFlash.
?
Inter-Integrated Circuit (IIC).
?
Controlador de interrupciones.
?
Arbitro de OPB.
?
Enlace de OPB a PLB.
?
Enlace a PCI.
?
Arbitro de PLB.
?
Enlace de PLB a OPB.
?
Entradas/Salidas rápidas.
?
Interfaz para periféricos vía serial(-SPI-Serial Peripheral Interface).
83
?
Sistema ACE.
?
Reloj/Contador
?
UART Lite.
?
UART 16450/16550.
?
Watchdog Timer/Timebase.
8.7
8.7.1
Módulos circuitales definidos.
Breve introducción a Protel 99SE.
Protel 99 SE es un sistema de diseño electrónico a 32 bits para Windows 95/98/NT.
Protel 99 SE provee de un juego de herramientas de diseño completamente integradas, que
permiten efectuar un diseño desde la etapa conceptual hasta la definición final del trazado en
tarjeta. Así, todas las fases para el diseño y modelos de fabricación se ejecutan en un solo
programa integrado llamado Design Explorer.
Al abrir Protel 99 SE, se ejecutara el Design Explorer, facilitando todas las
herramientas a la mano, sin necesidad de llamar a otras aplicaciones para efectuar diferentes
etapas del diseño final, integrándolas en tal forma que ni siquiera es necesario importar o
exportar partes o etapas del diseño para pasar a la siguiente fase del mismo.
También, Protel 99 SE tiene la capacidad de compilar un circuito para su
implementación en un dispositivo de lógica programable, directamente desde el esquemático.
Protel 99 SE también cuenta con un simulador, donde se pueden configurar y correr
simulaciones analógicas y digitales mezcladas, directamente desde el esquemático. Incluye
además, con una librería amplia de componentes de simulación, con soporte en el lenguaje de
simulación estándar de la industria SPICE 3F5.
84
Protel 99 SE incluye librerías de esquemáticos y “PCB footprints”. Cuenta con el
Protel Library Development Center, donde continuamente se puede actualizar las librerías del
Design Explorer con los últimos dispositivos que salen al mercado, con sus respectivos
encapsulados, de todos los grandes fabricantes.
Además, Protel 99 SE tiene integrados procesadores de texto, hojas de cálculo,
gráficos, y herramientas de creación de macros, permitiendo manejar todos los aspectos del
diseño, sin salir del Design Explorer [15].
8.7.2
8.7.2.1
Módulo CAQ.
Funcionamiento.
El módulo CAQ (control automático de cuadratura) es directamente el resultado del
módulo 4 del diseño preliminar. Este módulo recibe una señal de corriente continua
porporcional al error de cuadratura desde el CS100. Un buffer en la entrada de este módulo,
permitirá evitar los efectos de cargas hacia y desde los circuitos del CS100. Luego, esta señal
de corriente continua al ser integrada, resultará en una función rampa, donde su pendiente sea
la amplitud de esta señal corriente continua que es tomada del CS100, de tal forma, que tal y
como manualmente se moverían las manillas para ir aumentando la compensación en la señal
de cuadratura, igualmente nuestra rampa ira ascendiendo. De esta función rampa, se pasa de
nuevo por un buffer con un ajuste de la amplitud máxima permitida a través de un
potenciómetro, de tal forma que no pase de los 10 voltios o -10 voltios en ningún caso. Luego
esta señal entra en un multiplicador que incorpora una ganancia interna de 0,1, que realiza la
multiplicación, por la señal de referencia de 15Khz del sistema (lo cual asegura que el factor
multiplicativo aplicado a esta señal de referencia es un número entre -1 y +1). Luego la
resultante es reinyectada al CS100 como la propia señal de compensación de cuadratura,
cumpliendo con las características de la señal de cuadratura que normalmente se ajustaría por
el panel frontal. De esta forma, el sistema automáticamente ajusta la compensación necesaria
para eliminar esa señal espuria que se genera, sin necesidad de hacer alguna intervención
manual. Este módulo CAQ estará contenido por tres circuitos idénticos, ya que se necesita uno
85
para cada canal, y cada uno tendrá de entrada la señal de cuadratura que corresponda a cada
canal (X,Y,Z). También en este circuito, se retoma la señal de referencia, ya que va a ser usada
en el módulo de los DACs para generar la señal de consigna, por lo cual se aplica un buffer a
esta señal de referencia para aislar a los módulos entre si, y no recibir en la señal de consigna
algún efecto no deseado.
8.7.2.2
Selección de componentes.
Los elementos a seleccionar comprenden:
?
Amplificadores operacionales con alta impedancia de entrada.
?
Resistencias de baja potencia.
?
Potenciómetros.
?
Capacitores.
?
Multiplicadores.
?
Jumper de selección.
Los amplificadores necesarios son en total doce, por lo cual conviene usar integrados
que contengan más de uno. Debido a que son cuatro por cada submódulo, entonces esta
cantidad por integrado es preferible. Al ser de alta impedancia, un amplificador Jfet de bajo
nivel de ruido es el indicado. Debido a que cumplía con esta especificación y es un integrado
disponible fácilmente, el TL074 de Texas Instrument fue la opción seleccionada.
Las resistencias forman parte del circuito integrador, las cuales pueden ser de baja
potencia debido a la poca exigencia de corriente en esta etapa.
Los potenciómetros también pueden ser de baja potencia al ser seleccionado de valor
de 10k? . El trimmer 3142 de Meggitt Citec, ofrece en un dispositivo de dimensiones muy
reducidas, buenas características y opera hasta a 150mW máximo.
86
Para los capacitores, se tiene los capacitores de desacople en las alimentaciones, que
serán del valor estándar recomendado de 100nF los cuales pueden ser cerámicos, y los
capacitores pertenecientes al integrador. Para este último caso es necesario que sean no
polarizados y presenten bajas pérdidas. Los condensares MMK de poliéster metalizado
contienen buenas características para ello.
Los multiplicadores que se necesitan deben tener una alta calidad de operación con las
señales, que se traduzca en un error de multiplicación muy bajo, ya que eso se traduciría en
una mala compensación de la señal de cuadratura. Además, debe operar con señales AC de
15Khz, con bajo nivel de ruido a esta frecuencia. El AD632 de Analog Devices ofrece las
características necesarias para este caso.
La selección por jumper de la señal de referencia, es debido a que según el
comportamiento del circuito del CS100, necesitaremos compensar con la señal –Ref o +Ref,
de tal forma que provee una forma de seleccionarla. Esto sólo se debe hacer una vez, por lo
que este jumper no debe ser cambiado en ningún otro momento después de su prueba inicial.
8.7.2.3
Esquemático.
87
Figura 29. - Esquemático del Módulo CAQ para el canal X.
88
Figura 30. - Esquemático del Módulo CAQ para el canal Y.
89
Figura 31. - Esquemático del Módulo CAQ para el canal Z.
90
8.7.3
8.7.3.1
Módulo DACs.
Funcionamiento.
El módulo 2 del diseño preliminar esta representado en este módulo DACs. Aquí se
generará la señal consigna de los etalones para cada canal, por lo que igualmente se tendrá tres
circuitos idénticos, pero con entradas y salidas distintas, uno para cada canal.
Directamente desde la FPGA se cargará el valor digital en 16 bits de la señal de
consigna en el conversor digital-analógico, que va a ser la señal de referencia, pero
multiplicada por ese valor cargado, para que cumpla con el tipo de señal que procesa el
CS100.
El control sobre dicho DAC será también directamente ejercido por la FPGA.
8.7.3.2
Selección de componentes.
Los elementos a seleccionar comprenden:
?
Conversores-multiplicadores analógico-digital.
?
Amplificadores operacionales.
?
Capacitores.
El DAC de 16 bits debe ser multiplicador, ya que la señal de referencia del mismo, es
una señal sinusoidal, la cual se desea simplemente variar en amplitud. Además, el DAC debe
trabajar en modo bipolar, ya que nuestras señal de –Ref es la misma +Ref pero con 180º de
desfase. Se desea coincidir la media escala con salida de cero voltios. El LTC1597 de Linear
Technology, ofrece las características necesarias, y además, propone el siguiente circuito para
que el funcionamiento sea en modo bipolar:
91
Figura 32. - Circuito para operación del DAC en modo bipolar.
Y su correspondiente tabla de relación de conversión es la siguiente:
Tabla 5.- Relación de conversión del DAC.
De esta forma este dispositivo ofrece las bondades necesarias para los requerimientos.
Aunque la configuración propuesta por Linear Technology es correcta, el amplificador
operacional dual LT1112, no es el indicado, debido a que tiene un producto ganancia por
ancho de banda (0,75MHz) y un slew rate (0,16 V/µs), bajos para la característica de señal de
referencia de 15 kHz AC que se va a usar, y para la velocidad de conversión que se necesita.
En tal sentido, se optó por la opción del LT1113, que es del mismo encapsulado del LT1112,
pero que ofrece un producto ganancia por ancho de banda de 5,6 MHz que es notablemente
92
mejor, y un slew rate de 3,7 V/µs que también es mucho mas confiable para el funcionamiento
del circuito.
Los capacitores utilizados son cerámicos de 100nF para el desacople de las
alimentaciones, e igualmente cerámicos para los necesarios en el circuito del DAC, según el
valor especificado en este circuito propuesto por su fabricante.
8.7.3.3
Esquemático.
93
Figura 33. - Esquemático del Módulo DACs para el canal X.
94
Figura 34. - Esquemático del Módulo DACs para el canal Y.
95
Figura 35. - Esquemático del Módulo DACs para canal Z.
96
8.7.4
8.7.4.1
Módulo Relés.
Funcionamiento.
El módulo Reles, representa parte del módulo 1. Este módulo se encargará de capturar
las señales analógicas del CS100 que se van a intervenir. Entre esas señales están las
correspondientes a las señales de consigna para cada canal del etalón (offset), y las señales de
cuadratura. Las señales de consignas podrán seleccionarse entre las que genera el CS100 y las
que generará el Módulo DACs, según orden de la FPGA. Como estas señales de offset tiene en
el panel frontal una graduación gruesa y una graduación fina (limitada por el rango de la
gruesa), y como el DAC va a proporcionar un ajuste fino pero en todo el rango, entonces al
cortar las señales del panel frontal, se va a reconectar la señal del DAC al ajuste grueso del
CS100 y a la entrada del ajuste fino del CS100 se pondrá a tierra para eliminar las
contribuciones de esta rama por completo.
Con las señales de cuadratura el procedimiento será parecido, es decir, las señales que
viene cuadratura del panel frontal se capturarán y cuando decida la FPGA, entonces se
procederá a desconectar la señal del panel frontal y se inyectará la señal resultante del Módulo
CAQ, que se vió anteriormente.
8.7.4.2
Selección de componentes.
Los elementos a seleccionar comprenden:
?
Relés.
?
Optoacopladores.
?
Diodos.
?
Resistencias.
En un principio se pensó utilizar switches analógicos para el corte de estas señales, y su
redireccionamiento con las señales alternativas, pero con un estudio sobre los circuitos en el
CS100 en los puntos en los cuales se capturarían y luego se regresaran estas señales, se notó un
97
posible efecto de inyección de carga dado que los switch analógicos están compuestos por
transistores internamente. Para dicho fin entonces se decidió seleccionar a los relés para este
caso, y de allí el nombre del módulo. Dichos relés deberán ser de pequeño tamaño, y con una
baja resistencia de contacto, aparte de ofrecer una muy buena calidad. Además, debían poder
ser activados con señales TTL. Los G6H de Omron ofrecían las características necesarias,
aparte de ofrecer dos relés por encapsulado con una única orden de activación, lo cual era
favorable debido a la integración que se quiere lograr. Por otro lado, Omron es una reconocida
casa en el campo en cuestión.
Por otro lado, los relés no podrán recibir la orden directamente de la FPGA porque se
arriesga de someter a la FPGA a una exigencia de corriente excesiva, por lo que, para de
manera efectiva aislar por completo eléctricamente a la FPGA, se usaron optoacopladores. Los
TLP181 de Toshiba fueron los escogidos para este fin, y una vez mas por ser una marca que
ofrece calidad y larga duración en sus productos.
La función de los diodos es evitar que la alta tensión di/dt que se produce al
desactivarse la bobina pueda dañar el circuito. De esta forma, se seleccionó al GF1A de
General Semiconductor, con 1 amperio de máxima corriente directa. Este diodo ofrecía una
buena protección, en un encapsulado muy reducido, que favorecía la integración.
Las resistencias se usaron para regular la corriente que pasaría a través del diodo del
optoacoplador y proveniente de la FPGA, estando esta regulada a (3,3V-1V)/120Ohm =
19mA, donde el valor de 3,3V es la tensión de salida de la FPGA, y 1V es la caída de tensión
en el diodo del optoacoplador.
8.7.4.3
Esquemático.
98
Figura 36. - Esquemático del Módulo Reles para la cuadratura en X e Y.
Figura 37. - Esquemático del Módulo Relés para la cuadratura en Z.
99
Figura 38. - Esquemático del Módulo Relés para el Offset fino en X e Y.
Figura 39. - Esquemático del Módulo Relés para el Offset fino en Z y grueso en X .
100
Figura 40. - Esquemático del Módulo Relés para el Offset grueso en Y y Z.
8.7.5
8.7.5.1
Módulo LEDs.
Funcionamiento.
El Módulo LEDs también forma parte de Módulo 1. Este circuito se encargará de
capturar las señales de órdenes de encendido de los led del panel frontal por parte del CS100,
para ser analizadas por la FPGA, y luego la FPGA decidirá sobre este encendido a los led,
emitiéndole una orden directa a los leds. Propiamente, se convierte el estado de la
alimentación a los leds proveniente del CS100, en una señal digital a ser interpretada por la
FPGA, pero con el debido cuidado de tomar en cuenta que la FPGA es tolerante a 3.3 voltios
(LVTTL) y no a 5 voltios (TTL), por lo que se deberá hacer lo propio en el ajuste de nivel de
voltaje de esta señal.
En total son cinco leds: Power, Operate, Balance, Out of Range y Disable. Así que
seguramente se hará un circuito base que se repetirá para cada led.
Igualmente, se ha de tomar las mediciones correspondientes, para que, sin crear una
exigencia de corriente excesiva a la FPGA, se logre una intensidad de luz en el led, similar a la
que se tenia al estar conectado directamente al circuito del CS100. Esta corriente resultó ser de
19mA.
101
8.7.5.2
Selección de componentes.
Los elementos a seleccionar comprenden:
?
Optoacopladores.
?
Resistencias.
Los optoacopladores fue una especial solución para este caso porque ofrece aislar
eléctricamente a la FPGA de los circuitos del CS100, lo cual es algo que se ha estado
buscando todo el tiempo en el diseño, y además, al tener un diodo interno en el lado de
conexión hacia el CS100, simula casi exactamente la misma carga que ve el CS100 en un led.
Aunado a que ya en el Módulo Relés, se había hecho una selección de un optoacoplador, se
estudió sus características para saber si podía ser aplicado en este módulo también, y hacer así
más homogéneo los dispositivos en la placa, aparte de que ya había sido ubicado dicho
componente en los distribuidores disponibles. Por tal sentido, el TLP181 de Toshiba vuelve a
ser un componente seleccionado.
Las resistencias son para dos casos en este módulo. Un caso es para polarizar el
transistor de salida del optoacoplador, actuando a la vez como resistencia de pull-up de la
entrada de la FPGA. Se consideró suficiente una corriente de saturación del transistor de
alrededor de 2 mA. El otro caso es para regular la cantidad de corriente que dará la FPGA para
encender el led, y a la vez, obtener una intensidad suficiente en el led, encontrando que con
150? se lograba ambos cometidos, (3,3-1,2)/150 = 20.6 mA. Se midió que se obtenía un buen
brillo en el led con 19 mA, y la corriente máxima que puede soportar la salida de la FPGA es
de 24 mA.
8.7.5.3
Esquemático.
102
Figura 41. - Esquemático del Módulo LEDs para la salida de la FPGA.
103
Figura 42. - Esquemático del Módulo LEDs para la entrada a la FPGA.
104
8.7.6
Módulo Señales.
8.7.6.1
Funcionamiento.
Este módulo también forma parte del Módulo 1. Aquí se capturan las señales de las
selecciones de las manillas del panel frontal del CS100, y se mandan a la FPGA a ser
interpretadas, la cual decide sobre estas, y manda una señal digital al controlador lógico del
CS100, según lo que decide hacer. Igualmente se debe hacer que dichas selecciones en el panel
frontal se traduzcan en niveles lógicos LVTTL para que pueda manejarlas la FPGA. Debido a
la circuiteria encontrada en el CS100, para este caso se deberá usar pull-ups a 3.3 voltios y
regular la corriente, de manera parecida al caso anterior. Para el caso de selección hacia el
controlador lógico por parte de la FPGA, se debe convertir de LVTTL a TTL, para asegurar el
funcionamiento interno del CS100, y además, buscar aislar efectos de carga hacia y desde la
FPGA.
Se tiene un total de ocho posibles selecciones, algunas relacionadas con otras en el
sentido de que al ser seleccionada una, la otra debe quedar deseleccionada, pero para efectos
circuitales, son manejadas como entradas independientes: modo Operate y modo Balance,
modo Quadrature y modo Offset, y entre los cuatro tiempos de respuesta disponibles están,
tiempo de respuesta 2ms, tiempo de respuesta 1ms, tiempo de respuesta 0.5ms y tiempo de
respuesta 0.2ms.
8.7.6.2
Selección de componentes.
Los elementos a seleccionar comprenden:
?
Buffers.
?
Resistencias.
?
Capacitores.
El buffer hace la traducción de niveles lógicos de 3,3V a 5V. Para la selección del
buffer, se tomó en cuenta que fuese capaz de tomar un 3.3 voltios como un alto, y que pudiese
105
manejar la entrada de 8 señales, para así reducir el número de componentes y ayudar a la
integración de la tarjeta. Además, que se encontrara en los distribuidores disponibles. El
MC74ACT244 de ON Semiconductor, cumplía con las especificaciones, pero no estaba
disponible en los distribuidores, por lo que se selecciono el MC74ACT541 de la misma casa,
el cual tiene las mismas prestaciones.
Las resistencias de los pull-ups se escogieron de valores tales que la corriente drenada a
nivel bajo en la salida del control lógico fuera sólo de 1 mA, lo que mantiene un bajo consumo
y es suficiente para las exigencias de corriente de entrada de la FPGA.
El capacitor se usó para el desacople de la alimentación del integrado del buffer, al
valor de 100nf y de material cerámico.
8.7.6.3
Esquemático.
106
Figura 43. - Esquemático del Módulo Señales para la entrada a la FPGA.
107
Figura 44. - Esquemático del Módulo Señales para la salida de la FPGA.
8.7.7
8.7.7.1
Módulo Galvanómetros.
Funcionamiento.
El módulo de Galvanómetros también pertenece al Módulo 1. En este módulo se leerán
los valores de los galvanómetros del panel frontal, por lo cual su nombre. En el panel frontal
se tiene tres galvanómetros, uno para cada canal (X,Y,Z), los cuales ofrecen el valor de la
señal de offset o de cuadratura, según el modo que se tenga seleccionado. Estos valores van en
un máximo de -10 voltios a +10 voltios, y son señales de corriente continua. Para tal fin se
necesitará un conversor analógico digital, que le dé el valor digital a la FPGA. Debido a que se
quiere ahorrar proceso a la FPGA, se decidió que fuese una salida paralela bit a bit hacia la
FPGA. El cuidado de no poner valores de entrada en la FPGA distintos de LVTTL se tiene que
considerar de nuevo.
108
8.7.7.2
Selección de componentes.
Los elementos a seleccionar comprenden:
?
Conversores analógico-Digital (ADC).
?
Resistencias.
?
Capacitores.
Para el ADC, aparte de las consideraciones descritas en el funcionamiento, sería
provechoso para reducir el número de componentes en la placa, que este conversor tuviese un
multiplexor interno, para así poder utilizar el mismo componente para los tres canales,
seleccionándole cual se desea convertir. Con respecto a la resolución buscada, un mínimo de 8
bits es suficiente, ya que supera al sistema actual, que es simplemente al ojo humano en un
galvanómetro. Este módulo tiene la propiedad de que si el galvanómetro falla, según y de
donde se esté tomando la medida en el CS100, se podrá seguir leyendo los valores a través del
ADC. Para todo esto, el ADS7824 de Burr-Brown (ahora Texas Instruments), cumple con
todas las especificaciones necesarias de manera muy adecuada. Otros dispositivos tipo ADC
tenían en su mayoría características favorables, pero no todas en un mismo modelo, en los que
por ejemplo, podíamos encontrar ADC con salida en formato paralelo pero que no soportaba el
rango de voltajes de entrada, o que tenia varios canales de entrada, pero la conversión la
mandaba por un puerto serie, y así. Además, fue localizado disponible en los distribuidores.
Aun más, ofrece un bajo consumo de potencia, necesitando sólo una fuente de alimentación de
5 voltios, y tiene un INL de ±0,5 LSB como máximo. Además de proponer un circuito básico
para su funcionamiento con los valores de los capacitores necesarios, como se vé en la figura
siguiente:
109
Figura 45. - Circuito del ADC propuesto por el fabricante.
Aunque el ADC ofrece 12 bits de resolución, se utilizaron sólo los 8 bits más
significativos, ya que era suficiente y no añadía procesamiento a la FPGA. Las señales de
control del ADC vendrán directamente desde la FPGA, desde donde se podrá seleccionar, por
ejemplo, el canal que se desea convertir.
Las resistencias se utilizaron para hacer un divisor de voltaje, y llevar la salida del
ADC de +5 voltios a 3.3 voltios, para poder mandarla a la FPGA sin causar daños a esta, y su
cálculo se hizo en base también a tener bajos niveles de potencia en las resistencias, dado que
se tiene bajas corrientes en las entradas de la FPGA.
Los capacitores propuestos por el fabricante, especifican que deben ser capacitores
polarizados y de tantalio, y para el capacitor de desacople de alimentación de 100nF, se
seleccionó un cerámico como en los otros casos.
8.7.7.3
Esquemático.
110
Figura 46. - Esquemático del Módulo Galvanómetros.
111
8.7.8
Módulo Sincronización-CCD.
8.7.8.1
Funcionamiento.
Aquí se representa al Módulo 3. Este módulo servirá para utilizar la señal de
sincronización a través de la FPGA, y así poder programar de manera síncrona, el
desplazamiento de los espejos en el etalón, con esta señal. La señal de sincronía es una TTL, y
vendrá directamente de la cámara CCD y debe acoplarse a la entrada LVTTL de la FPGA.
Aunque en este caso, para realizar la traducción de niveles lógicos, hubiera bastado un divisor
de tensión, dado que esta entrada será conectada a un módulo electrónico externo, empleamos
un buffer de manera que proteja la FPGA frente a la introducción errónea de un nivel de
tensión peligroso para esta entrada. La frecuencia máxima aproximada de esta señal en forma
de onda cuadrada, será de 200Hz, por lo tanto el buffer debe responder a los cambios de nivel
en menos de 5ms, requerimiento cumplido con creces por cualquier familia lógica moderna.
8.7.8.2
Selección de componentes.
Los elementos a seleccionar comprenden:
?
Buffer.
?
Resistencia.
?
Capacitor.
El buffer debe ser, como ya se ha visto, de colector abierto. El SN74LVC1G07 de
Texas Instruments es un integrado muy reducido, que asegura la velocidad de cambio de nivel
necesaria en el buffer y es de drenador abierto, lo cual fue la característica principal para su
selección, además de estas disponible en los distribuidores y ser de una marca reconocida en el
mercado.
El capacitor de desacoplo de alimentación, se seleccionó igualmente de 100nF y de
material cerámico.
112
8.7.8.3
Esquemático.
Figura 47. - Esquemático del Módulo Sincronización-CCD.
8.7.9
Módulo Interfaz.
8.7.9.1
Funcionamiento.
El módulo interfaz es aquel que contiene todos los puertos de comunicación de la
tarjeta de aplicación con el CS100 y con la tarjeta de evaluación de Avnet. Hacia el CS100
existen varias conexiones, ya que hay que traer las señales del mismo, y luego mandarlas de
vuelta. Con la tarjeta que contiene la FPGA, también hay numerosas conexiones, debido a que
el nuevo sistema de control digital esta completamente centrado allí.
También en este módulo, están los conectores para la distribución de la alimentación,
la cual se deriva del CS100 para las alimentaciones de +15 voltios, -15 voltios, +5 voltios,
tierra digital (DGND) y tierra analógica (AGND). La alimentación de +3,3 voltios se deriva de
la tarjeta de evaluación de Avnet, la cual a su vez es alimentada por el propio CS100.
113
8.7.9.2
Selección de componentes.
El CS100 utiliza muchos de sus conectores tipo marca LEMO. Esto conectores ofrecen
una muy buena calidad, por lo que, y para evitar hacer cambios en el equipo original, se
utilizaron estos mismos conectores para el retorno de las señales. En algunos conectores
referidos a alimentaciones, se notan la presencia de capacitores, colocados para que actúen
como desacoplos de alimentación, al momento de que el sistema de fuente de alimentación se
vea obligada a dar una cantidad de corriente considerada en un tiempo muy rápido. Estos
capacitores son polarizados de tantalio, lo más recomendados para estos casos.
Se verá en los esquemáticos varios conectores que están identificados, entre los que
tenemos:
?
Dos “headers” de 20 pines al CS100 (al Controlador lógico-CL- y al Panel Frontal –
FP). Entre otras señales, cabe destacar que trae la tierra digital del CS100.
?
Un jumper que une las tierras de AGND y DGND en caso de ser necesario.
?
Un receptáculo para LEMO EXP1S305 de 5 pines, y un header de 5 pines que traen y
devuelven las alimentaciones de +15 voltios, -15 voltios, las señales de referencia +Ref
y –Ref, y la tierra analógica del CS100.
?
Tres receptáculos para LEMO EXP0S303 de 3 pines, y tres headers de 3 pines
respectivamente, donde cada par, trae y regresa las señales de offset y cuadratura para
X, Y y Z.
?
Tres conectores BNC para coaxial, donde viene las señales de error de cuadratura para
X, Y y Z, respectivamente, y un cuarto conector BNC para la señal de sincronización
del CCD.
?
Un header de 3 pines donde se manda la alimentación de +5 voltios a la tarjeta de
evaluación de Avnet, se toma la alimentación de +3,3 voltios que hace un regulador
presente en la tarjeta de Avnet para alimentar los puntos respectivos en la tarjeta de
aplicación, y finalmente, la unión de la tierra digital de la tarjeta de evaluación con la
tarjeta de aplicación, y por ende, con el CS100.
114
?
Y para concluir, dos header de 50 pines cada uno, para todas las señales de entrada y
salida con la FPGA.
Para la identificación de las señales, se uso la siguiente norma: primero indica de
donde viene la señal, por ejemplo, TA es tarjeta de aplicación, luego un guión, y seguido hacia
donde va esa señal, por ejemplo, CL es el controlador lógico del CS100, luego otro guión, y
finalmente la referencia de que señal es, por ejemplo, BAL es la selección del modo
Balance(en resumen “TA-CL-BAL”).
8.7.9.3
Esquemático.
Figura 48. - Esquemático 1 de conexiones con el CS100.
115
Figura 49. - Esquemático 2 de conexiones con el CS100.
116
Figura 50. - Esquemático de conexiones de señales coaxiales y alimentación.
117
Figura 51. - Esquemático de conexiones con la FPGA.
118
8.7.10 Lista de materiales.
Los componentes se escogieron en su mayoría de montaje superficial, debido a la gran
disponibilidad de este tipo de componentes que existe en el mercado. Además, se buscaban los
encapsulados más reducidos para ahorrar espacio. El detalle de la lista de materiales se
encuentra en el Apéndice A.
8.7.11 Realización del diseño del circuito impreso.
8.7.11.1 Consideraciones generales.
El diseño del circuito impreso (PCB-Printed Circuit Board), se tenía que hacer en
función de varios aspectos. Uno de ellos es el hecho de que se está haciendo un prototipo, lo
cual obliga a tomar en consideración como que quizás es necesario tener que corregir algunos
detalles de componentes, redes de ruteado, interconexiones, etc. En tal sentido, todas las capas
de señales deberán quedar accesibles por completo, en caso de necesitar hacer algunas pruebas
específicas o hacer algunas correcciones.
En su mayoría, se seleccionaron componentes de montaje superficial, que incrementa
las dificultades de ensamblaje del circuito, pero ayuda a lograr colocar más componentes en un
espacio menor. Con respecto a los “footprint”, no todos estaban disponibles en las librerías del
Protel 99 SE, como tampoco algunos componentes a nivel de esquemáticos, lo cual llevó a
agregar la tarea de diseñar esos componentes a nivel de esquemáticos, a definir los footprints
faltantes en el entorno CAD que provee el mismo Protel, donde incluso, algunos footprint que
supuestamente deberían ser precisos, tuvieron que ser modificados. Esto aunado a la dificultad
de que el proceso de colocación y soldadura de los componentes, iba a estar a cargo propio, lo
cual llevó a hacer los “pads” un poco mas amplios dentro de los permitido, para poder realizar
una soldadura confiable.
119
8.7.11.2 Consideraciones técnicas.
Entre las consideraciones técnicas se encuentran las siguientes:
?
El PCB se va a diseñar utilizando sólo cuatro capas, en las cuales, la superior y la
inferior son de componentes y señales, y las otras dos capas internas para un plano de
masa AGND y otro plano DGND. El separar los planos de masa viene dado para evitar
que los picos de tensión producidos en los dispositivos digitales alteren a las señales
analógicas, al elevar por valores pequeños al potencial de tierra por mínimos instantes,
en los que se tendría entonces una componente no deseada en las señales analógicas.
Dichas tierras deben ser unidas en un único punto lo mas cerca de la fuente de
alimentación, que para este caso, se encuentra en el CS100. De todas formas, y en caso
de verse necesario, se incluyó en el diseño un punto de unión de planos de masa
(DGND y AGND), a través de un jumper, y muy cerca del conector que trae la
alimentación del CS100.
?
El orden de prioridad de no paso por vías, es decir, de ruteado directo, se estableció
como sigue: señales analógicas, señales de alimentación y de último señales digitales.
Esto se debió a la inductancia que crean estas vías que atraviesan todas las placas, y
porque en este caso, las señales analógicas son de especial importancia, y las más
sensibles.
?
Se establecieron reglas de dimensiones mínimas de ancho de las vías según
especificaciones de estándares de las empresas que fabrican los circuitos impresos,
para evitar el sobre precio debido a las medidas usadas. En tal caso, el diámetro
mínimo de las vías se estableció en 0,3mm.
?
Además, se siguieron un conjunto de reglas recomendadas por la literatura electrónica,
y se establecieron otras, que en conjunto se resumen así:
o Separación mínima entre dos vías, dos pistas, o entre pistas y vías de 0.2mm.
o Ancho mínimo de pistas de señales de 0,254mm.
o Ancho mínimo de pistas de +3,3 voltios de 0,381mm.
o Ancho mínimo de pistas de +5 voltios de 0,254mm.
o Ancho mínimo de pistas de ±15 voltios de 0,381mm.
120
o Preferencia en el ancho de las pistas en el orden siguiente: señales de
alimentación, señales analógicas y señales digitales.
o Se buscó que las señales analógicas tuviesen preferencia respecto al mínimo de
longitud de las pistas, para evitar atenuaciones indeseadas.
o Las vías que se usaron para redirigir pistas hacia el otro plano, se hacían de tal
forma que el ancho de las pistas coincidiera con el diámetro externo de las vías.
o Angulo de cruces de las pistas de 45º máximo.
o Las pistas de alimentación empezaban con un ancho de 1,905mm y se iban
reduciendo conforme su rama llegaba a los últimos componentes.
?
Se agregaron al PCB cuatro perforaciones, una en cada esquina, para poder tener la
opción de montarse atornillada en soportes a la medida.
?
Los conectores verticales se pusieron todos en la cara superior del PCB para su fácil
conexión.
?
Los conectores con ángulo recto se pusieron en la periferia del PCB.
?
Se colocaron algunos pines de conexión a las tierras AGND y DGND en puntos
distribuidos por el PCB para disponer de ellos al momento de hacer pruebas o colocar
puntas de osciloscopio.
?
Se colocaron puntos de prueba de las señales de importancia, reseñadas a continuación:
o Punto de prueba 1 (TP1): Señal de error de cuadratura de X.
o Punto de prueba 2 (TP2): Señal de cuadratura de X a la salida del CAQ.
o Punto de prueba 3 (TP3): Señal de error de cuadratura de Y.
o Punto de prueba 4 (TP4): Señal de cuadratura de Y a la salida del CAQ.
o Punto de prueba 5 (TP5): Señal de error de cuadratura de Z.
o Punto de prueba 6 (TP6): Señal de cuadratura de Z a la salida del CAQ.
o Punto de prueba 7 (TP7): Señal de referencia para el DAC X.
o Punto de prueba 8 (TP8): Señal de salida del DAC X.
o Punto de prueba 9 (TP9): Señal de referencia para el DAC Y.
o Punto de prueba 10 (TP10): Señal de salida del DAC Y.
o Punto de prueba 11 (TP11): Señal de referencia para el DAC Z.
121
o Punto de prueba 12 (TP12): Señal de salida del DAC Z.
o Punto de prueba 13 (TP13): Señal de entrada al ADC – canal X.
o Punto de prueba 14 (TP14): Señal de entrada al ADC – canal Y.
o Punto de prueba 15 (TP15): Señal de entrada al ADC – canal Z.
8.7.11.3 Fases del diseño.
?
Revisión de los footprint: los footprints fueron agrupados en una sola base de datos, y
cada uno fue revisado, rediseñado o, en algunos casos, definidos. En total fueron 26
footprins implementados, que se listan a continuación junto con su figura en tamaño
real:
o 10KTRIMMER
o 11-4C1
o 28SSOP
o 0805
o 1206
o 6032
o 7343M
o BNCH
122
o DIP-14
o DO214BA
o EXP0S3
o EXP1S5
o G6H-2F
o HEADER20PIN
o HEADER50PIN
o JUMPER2PIN
o JUMPER3PIN
123
o MOLEX3PIN
o MOLEX5PIN
o RAD0.2M
o SO-G8
o SO-G14
o SO20W
o SO28W
o SOT-23DBV
o TESTPOINT
?
Generación del NetList: una vez que se tiene definidas los footprints, y sus librerías son
cargadas, se genera el NetList desde el editor de esquemáticos, y se puede revisar si
efectivamente todos los componentes que deberían estar conectados lo están y a través
de que “Net”.
?
Colocación de los componentes en el PCB: después de actualizar el archivo del PCB
con todos los componentes de los esquemáticos y el NetList, se procede a colocar los
124
componentes según el patrón que se quiera seguir. En este caso, en principio se hizo
una aproximación de cálculo espacial que se necesita para colocar todos los
componentes, mas un factor que representaría las pistas necesarias. Ese cálculo arrojó
que las dimensiones de una tarjeta con componentes por ambas caras debería ser
aproximadamente 6 pulgadas por 7,7 pulgadas. Finalmente fue de 6,15 pulgadas por
7,450 pulgadas. Se siguió un patrón de colocación en el que se agrupaba los
componentes por esquemático, y luego, al ver las líneas que se cruzaban entre los
grupos, se trataba de eliminarlas moviendo a los mismos. Las múltiples líneas que
salían del conector de las señales provenientes de la FPGA, se colocaron lo más
próximo a los componente con los que compartían muchas pistas, como lo eran los
DACs y los ADC.
?
Ruteo de la placa: con la guía de las líneas que indican que pines se deben unir, se
empezó con las señales analógicas, luego las de alimentación y luego las digitales. Este
fue uno de los procesos más difíciles debido a la cantidad de pistas que había que
trazar.
?
Luego se corrió un subprograma de Protel llamado DRC (Design Rule Check), que
verifica que las reglas impuestas por defecto y las añadidas por el usuario, hayan sido
cumplidas, con lo cual se logró corregir algunos pequeños detalles entre la gran
telaraña de líneas presentes.
?
Luego de aquí, se envió el archivo de diseño al fabricante contratado para hacer el
PCB.
125
8.7.11.4 Presentación.
Figura 52. - Presentación del PCB
126
8.7.11.5 Resumen.
Se lista aquí un resumen del PCB:
Característica
Cantidad
Nets
179
Componentes
164
Arcos
143
Pads
756
Segmentos de pistas
4109
Vías
321
Conexiones de Pistas con vías
605
Errores reportados por el DRC
0
Tabla 6.- Resumen del PCB.
127
9. MONTAJE Y PRUEBAS DE LOS MODULOS.
9.1
Test eléctrico.
La tarjeta fue verificada eléctricamente por la compañía encargada de elaborar el PCB,
como parte de los servicios contratados, por lo que sólo se hicieron unas pocas
comprobaciones aleatoriamente.
9.2
Test funcional módulo a módulo.
Se procedió entonces a montar los componentes en el PCB, en un orden que permitiese
verificar los circuitos en la forma más modular posible, y probando si la electrónica básica
funcionaba, simulando darles las órdenes digitales como si viniesen de la FPGA. Ciertos
comportamientos más dinámicos no podían ser probados aún, ya que se necesitaba el
programa. Se encontró un error en una pista, que debería estar conectada a +3,3 voltios, y
estaba a +5 voltios, por lo cual se hizo la corrección a ese punto, uniéndolo a la pista correcta
en el punto mas cerca posible. Este fue el único error encontrado en el circuito.
Posteriormente, los módulos fueron montados y probados en el siguiente orden:
?
Módulo CAQ: las señales de error de cuadratura fueron capturadas
correctamente, y su procesado fue correcto también, por lo que el
funcionamiento base de este módulo fue como se esperaba.
?
Módulo Relés: efectivamente este módulo respondía correctamente a las
activaciones de los reles.
?
Módulo DACs: en este módulo se comprobaron las características más
importantes como lo eran que el funcionamiento con valor de cero voltios a
media escala fuese correcto, y que mostrara la onda sinusoidal de referencia.
?
Módulo LEDs: la parte de este módulo que contiene los optoacopladores fue
probada, y funcionó correctamente.
?
Módulo Señales: el buffer que se encuentra en ese módulo, como elemento
importante, fue probado y funcionó correctamente.
128
?
Se probaron todos los capacitores de desacople, resultando funcionar
correctamente.
?
El módulo Galvanómetros sólo se montó y se probó que la alimentación
estuviese bien. Se dejó la prueba para la incorporación del software de control.
9.3
Interfaz con la FPGA
SEÑAL (Net).
TIPO (PARA LA FPGA)
UBICACIÓN CONECTOR-PIN PIN EN LA SPARTAN-IIE
FPGA-TA-ADCA0
OUT
JP16-12
K14
FPGA-TA-ADCA1
OUT
JP16-14
L16
FPGA-TA-ADCBYTE
OUT
JP16-10
K16
FPGA-TA-ADCCS
OUT
JP16-13
L13
FPGA-TA-ADCR/C
OUT
JP16-11
K15
FPGA-TA-LEDBAL
OUT
JP16-20
M14
FPGA-TA-LEDDIS
OUT
JP16-18
M16
FPGA-TA-LEDOOR
OUT
JP16-24
P16
FPGA-TA-LEDOPER
OUT
JP16-22
N16
FPGA-TA-LEDPWR
OUT
JP16-16
L14
FPGA-TA-MOFFS
OUT
JP16-32
E6
FPGA-TA-MQUAD
OUT
JP16-30
C5
FPGA-TA-OPER
OUT
JP16-28
C4
FPGA-TA-RT1
OUT
JP16-34
B5
FPGA-TA-RT2
OUT
JP16-36
C6
FPGA-TA-RT3
OUT
JP16-38
A6
FPGA-TA-RT4
OUT
JP16-40
C7
FPGA-TA-BAL
OUT
JP16-26
A3
FPGA-TA-CTRET1
OUT
JP17-26
P10
FPGA-TA-CTRET2
OUT
JP17-28
T11
FPGA-TA-CTRET3
OUT
JP17-30
M10
FPGA-TA-CTRQ1
OUT
JP17-27
R11
FPGA-TA-CTRQ2
OUT
JP17-29
N10
FPGA-TA-DACXCLR
OUT
JP17-17
T7
FPGA-TA-DACXLD
OUT
JP17-19
N8
FPGA-TA-DACXWR
OUT
JP17-21
R8
FPGA-TA-DACYCLR
OUT
JP17-23
N9
FPGA-TA-DACYLD
OUT
JP17-25
R10
FPGA-TA-DACYWR
OUT
JP17-24
T10
FPGA-TA-DACZCLR
OUT
JP17-18
M7
FPGA-TA-DACZLD
OUT
JP17-20
P8
FPGA-TA-DACZWR
OUT
JP17-22
P9
FPGA-TA-DACXYZD0
OUT
JP17-1
P4
129
FPGA-TA-DACXYZD1
OUT
JP17-2
R4
FPGA-TA-DACXYZD2
OUT
JP17-3
T3
FPGA-TA-DACXYZD3
OUT
JP17-4
T4
FPGA-TA-DACXYZD4
OUT
JP17-5
N5
FPGA-TA-DACXYZD5
OUT
JP17-6
P5
FPGA-TA-DACXYZD6
OUT
JP17-7
R5
FPGA-TA-DACXYZD7
OUT
JP17-8
T5
FPGA-TA-DACXYZD8
OUT
JP17-9
N6
FPGA-TA-DACXYZD9
OUT
JP17-10
P6
OUT
JP17-11
R6
OUT
JP17-12
T6
OUT
JP17-13
M6
OUT
JP17-14
N7
OUT
JP17-15
P7
OUT
JP17-16
R7
FPGA-TADACXYZD10
FPGA-TADACXYZD11
FPGA-TADACXYZD12
FPGA-TADACXYZD13
FPGA-TADACXYZD14
FPGA-TADACXYZD15
FP-TA-FPGA-BAL
IN
JP16-25
B3
FP-TA-FPGA-MOFFS
IN
JP16-31
D5
FP-TA-FPGA-MQUAD
IN
JP16-29
B4
FP-TA-FPGA-OPER
IN
JP16-27
A4
FP-TA-FPGA-RT1
IN
JP16-33
D6
FP-TA-FPGA-RT2
IN
JP16-35
A5
FP-TA-FPGA-RT3
IN
JP16-37
B6
FP-TA-FPGA-RT4
IN
JP16-39
B7
TA-FPGA-ADCBUSY
IN
JP16-9
L12
TA-FPGA-ADCD0
IN
JP16-1
G16
TA-FPGA-ADCD1
IN
JP16-2
H16
TA-FPGA-ADCD2
IN
JP16-3
J13
TA-FPGA-ADCD3
IN
JP16-4
J16
TA-FPGA-ADCD4
IN
JP16-5
J15
TA-FPGA-ADCD5
IN
JP16-6
J14
TA-FPGA-ADCD6
IN
JP16-7
K13
TA-FPGA-ADCD7
IN
JP16-8
K12
TA-FPGA-LEDBAL
IN
JP16-19
M15
TA-FPGA-LEDDIS
IN
JP16-17
M13
TA-FPGA-LEDOOR
IN
JP16-23
N15
TA-FPGA-LEDOPER
IN
JP16-21
N14
TA-FPGA-LEDPWR
IN
JP16-15
L15
130
TA-FPGA-SYNC
IN
JP16-41
D7
Tabla 7.- Interfaz con la FPGA.
131
10. DESARROLLO DEL SOFTWARE DE APLICACIÓN.
10.1 Aspectos generales.
El software de aplicación estará en el microcontrolador embebido en la FPGA, el cual
contendrá el código del programa principal que controlará al CS100 a través de la tarjeta de
aplicación, e interpretará los distintos estados para tomar las decisiones que precisen ser
tomadas. A continuación se muestra la definición de las partes de este microcontrolador
embebido MicroBlaze implementado.
10.2 Estructura del microcontrolador embebido.
?
Definición del Hardware:
############################################################################
##
# Created by Base System Builder Wizard for Xilinx EDK 6.1 Build EDK_G.12
# Wed Oct 01 16:22:45 2003
# Target Board:
Avnet Design Spartan-IIE XC2S200E FT256 Development Board
# Family:
Spartan-IIE
# Device:
XC2S200E
# Package:
FT256
# Speed Grade:
-7
#
############################################################################
PARAMETER VERSION = 2.1.0
# Puertos internos y externos
PORT sys_clk = sys_clk, DIR = I, SIGIS = CLK
PORT LEDs_8Bit_GPIO_IO = LEDs_8Bit_GPIO_IO, VEC = [0:7], DIR = IO
PORT dacxyz_out = dacxyz_out, VEC = [0:15], DIR = IO
PORT puerto_serie_RX = puerto_serie_RX, DIR = I
PORT puerto_serie_TX = puerto_serie_TX, DIR = O
PORT control_dacs_out = control_dacs_out, VEC = [0:15], DIR = IO
PORT control_reles_out = control_reles_out, VEC = [0:7], DIR = IO
132
PORT seleccion_modo_out = seleccion_modo_out, VEC = [0:7], DIR = IO
PORT encendido_leds_out = encendido_leds_out, VEC = [0:7], DIR = IO
PORT control_adc_IO = control_adc_IO, VEC = [0:7], DIR = IO
PORT fp_modos_in = fp_modos_in, VEC = [0:7], DIR = I
PORT adcxyz_in = adcxyz_in, VEC = [0:7], DIR = I
PORT estado_leds_in = estado_leds_in, VEC = [0:7], DIR = I
PORT ccd_sync_in = ccd_sync_in, DIR = I
PORT sys_rst = sys_rst, DIR = I
PORT dip_switch_in = dip_switch_in, VEC = [0:7], DIR = I
PORT enable_7seg = sys_clk, DIR = OUT
PORT adc_busy_in = adc_busy_in, DIR = I
# Microcontrolador
BEGIN microblaze
PARAMETER INSTANCE = microblaze_0
PARAMETER HW_VER = 2.00.a
PARAMETER C_DEBUG_ENABLED = 1
PARAMETER C_NUMBER_OF_PC_BRK = 8
PARAMETER C_NUMBER_OF_RD_ADDR_BRK = 1
PARAMETER C_NUMBER_OF_WR_ADDR_BRK = 1
BUS_INTERFACE DLMB = dlmb
BUS_INTERFACE ILMB = ilmb
BUS_INTERFACE DOPB = mb_opb
BUS_INTERFACE IOPB = mb_opb
PORT CLK = sys_clk
PORT DBG_CAPTURE = DBG_CAPTURE_s
PORT DBG_CLK = DBG_CLK_s
PORT DBG_REG_EN = DBG_REG_EN_s
PORT DBG_TDI = DBG_TDI_s
PORT DBG_TDO = DBG_TDO_s
PORT DBG_UPDATE = DBG_UPDATE_s
PORT INTERRUPT = Interrupt
PORT RESET = opb_rst
END
#Bus OPB
BEGIN opb_v20
PARAMETER INSTANCE = mb_opb
PARAMETER HW_VER = 1.10.b
PARAMETER C_EXT_RESET_HIGH = 1
PORT OPB_Clk = sys_clk
133
PORT OPB_Rst = opb_rst
PORT SYS_Rst = sys_rst
END
# Bus LMB de instrucciones
BEGIN lmb_v10
PARAMETER INSTANCE = ilmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 1
PORT LMB_Clk = sys_clk
PORT SYS_Rst = sys_rst
END
# Bus LMB de datos
BEGIN lmb_v10
PARAMETER INSTANCE = dlmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 1
PORT LMB_Clk = sys_clk
PORT SYS_Rst = sys_rst
END
# Controlador de bloque de memoria RAM para DLMB
BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = dlmb_cntlr
PARAMETER HW_VER = 1.00.b
PARAMETER C_MASK = 0x8000000
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x00000fff
BUS_INTERFACE SLMB = dlmb
BUS_INTERFACE BRAM_PORT = dlmb_port
END
# Controlador de bloque de memoria RAM para ILMB
BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = ilmb_cntlr
PARAMETER HW_VER = 1.00.b
PARAMETER C_MASK = 0x8000000
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x00000fff
BUS_INTERFACE SLMB = ilmb
BUS_INTERFACE BRAM_PORT = ilmb_port
134
END
# Bloque de memoria RAM LMB
BEGIN bram_block
PARAMETER INSTANCE = lmb_bram
PARAMETER HW_VER = 1.00.a
PARAMETER C_MEMSIZE = 4096
BUS_INTERFACE PORTA = ilmb_port
BUS_INTERFACE PORTB = dlmb_port
END
# Puerto OPB que carga el valor de los DACs
BEGIN opb_gpio
PARAMETER INSTANCE = dacxyz
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000400
PARAMETER C_HIGHADDR = 0x0c0004ff
PARAMETER C_GPIO_WIDTH = 16
PARAMETER C_TRI_DEFAULT = 0x00000000
PARAMETER C_DOUT_DEFAULT = 0x00000000
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_IO = dacxyz_out
END
# Dispositivo que envia los datos vía puerto serie
BEGIN opb_uartlite
PARAMETER INSTANCE = puerto_serie
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0x0c000e00
PARAMETER C_HIGHADDR = 0x0c000eff
PARAMETER C_USE_PARITY = 0
PARAMETER C_DATA_BITS = 8
PARAMETER C_BAUDRATE = 9600
PARAMETER C_CLK_FREQ = 50_000_000
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk
PORT RX = puerto_serie_RX
PORT TX = puerto_serie_TX
END
# Puerto OPB que maneja el control de los DACs
135
BEGIN opb_gpio
PARAMETER INSTANCE = control_dacs
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000500
PARAMETER C_HIGHADDR = 0x0c0005ff
PARAMETER C_GPIO_WIDTH = 16
PARAMETER C_TRI_DEFAULT = 0x00000000
PARAMETER C_DOUT_DEFAULT = 0x00000000
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_IO = control_dacs_out
END
# Puerto OPB que maneja el control de los Reles
BEGIN opb_gpio
PARAMETER INSTANCE = control_reles
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000600
PARAMETER C_HIGHADDR = 0x0c0006ff
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_TRI_DEFAULT = 0x00000000
PARAMETER C_DOUT_DEFAULT = 0x00000000
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_IO = control_reles_out
END
# Puerto OPB que maneja el control de la selección de modos
BEGIN opb_gpio
PARAMETER INSTANCE = seleccion_modo
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000700
PARAMETER C_HIGHADDR = 0x0c0007ff
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_TRI_DEFAULT = 0x00000000
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_IO = seleccion_modo_out
END
# Puerto OPB que maneja el control del encendido de los leds
BEGIN opb_gpio
PARAMETER INSTANCE = encendido_leds
PARAMETER HW_VER = 2.00.a
136
PARAMETER C_BASEADDR = 0x0c000800
PARAMETER C_HIGHADDR = 0x0c0008ff
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_TRI_DEFAULT = 0x00000000
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_IO = encendido_leds_out
END
# Puerto OPB que maneja el control del ADC
BEGIN opb_gpio
PARAMETER INSTANCE = control_adc
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000900
PARAMETER C_HIGHADDR = 0x0c0009ff
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_TRI_DEFAULT = 0x00000000
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_IO = control_adc_IO
END
# Puerto OPB que captura la selección de modos del CS100
BEGIN opb_gpio
PARAMETER INSTANCE = fp_modos
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000a00
PARAMETER C_HIGHADDR = 0x0c000aff
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_IS_BIDIR = 0
PARAMETER C_TRI_DEFAULT = 0xFFFFFFFF
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_in = fp_modos_in
END
# Puerto OPB que captura el valor del ADC
BEGIN opb_gpio
PARAMETER INSTANCE = adcxyz
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000b00
PARAMETER C_HIGHADDR = 0x0c000bff
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_IS_BIDIR = 0
137
PARAMETER C_TRI_DEFAULT = 0xFFFFFFFF
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_in = adcxyz_in
END
# Puerto OPB que captura el estado de los leds
BEGIN opb_gpio
PARAMETER INSTANCE = estado_leds
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000c00
PARAMETER C_HIGHADDR = 0x0c000cff
PARAMETER C_GPIO_WIDTH = 8
PARAMETER C_IS_BIDIR = 0
PARAMETER C_TRI_DEFAULT = 0xFFFFFFFF
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_in = estado_leds_in
END
# Puerto OPB que captura la señal de sincronización con el CCD
BEGIN opb_gpio
PARAMETER INSTANCE = ccd_sync
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000d00
PARAMETER C_HIGHADDR = 0x0c000dff
PARAMETER C_GPIO_WIDTH = 1
PARAMETER C_IS_BIDIR = 0
PARAMETER C_TRI_DEFAULT = 0xFFFFFFFF
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_in = ccd_sync_in
END
# Segundo bloque de memoria RAM
BEGIN bram_block
PARAMETER INSTANCE = bram_block_opb
PARAMETER HW_VER = 1.00.a
PARAMETER C_MEMSIZE = 2048
BUS_INTERFACE PORTA = conn_2
END
# Controlador del segundo bloque de memoria RAM
BEGIN opb_bram_if_cntlr
PARAMETER INSTANCE = opb_bram_cntlr
138
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c001000
PARAMETER C_HIGHADDR = 0x0c0017ff
BUS_INTERFACE PORTA = conn_2
BUS_INTERFACE SOPB = mb_opb
END
# Puerto OPB que captura el estado del ADC
BEGIN opb_gpio
PARAMETER INSTANCE = adc_busy
PARAMETER HW_VER = 2.00.a
PARAMETER C_BASEADDR = 0x0c000f00
PARAMETER C_HIGHADDR = 0x0c000fff
PARAMETER C_TRI_DEFAULT = 0xFFFFFFFF
PARAMETER C_GPIO_WIDTH = 1
PARAMETER C_IS_BIDIR = 0
BUS_INTERFACE SOPB = mb_opb
PORT GPIO_in = adc_busy_in
END
139
?
Definición del Software: aquí se lista las versiones de software de los manejadores de
los periféricos y puertos mostrados anteriormente.
PARAMETER VERSION = 2.1.0
BEGIN PROCESSOR
PARAMETER DRIVER_NAME = cpu
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = microblaze_0
PARAMETER DEBUG_PERIPHERAL = debug_module
PARAMETER DEFAULT_INIT = EXECUTABLE
PARAMETER LEVEL = 0
PARAMETER OS = standalone
PARAMETER COMPILER = mb-gcc
PARAMETER ARCHIVER = mb-ar
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = mb_opb
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = dlmb_cntlr
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = ilmb_cntlr
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
140
PARAMETER HW_INSTANCE = dacxyz
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = puerto_serie
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = control_dacs
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = control_reles
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = seleccion_modo
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = encendido_leds
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
141
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = control_adc
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = fp_modos
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = adcxyz
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = estado_leds
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = ccd_sync
PARAMETER LEVEL = 0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = opb_bram_cntlr
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
142
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = adc_busy
END
143
?
Definición de pines de salida y entrada según Nets definidos en la FPGA.
#********************************************************************
#
File Name:
#
Version:
#
Date:
#
Model:
system.ucf
1.9
25/08/2004
ITFC
#
#
Company:
IAC - Guillermo Herrera
#
#
#
Copyright (c) 2004 IAC.
#
All rights reserved
#*********************************************************************
# RELOJ DEL SISTEMA
Net sys_clk PERIOD = 20000 ps;
# PUERTO SERIE
Net PUERTO_SERIE_RX LOC=A9;
Net PUERTO_SERIE_TX LOC=B9;
# ENTRADAS RELOJ Y RESET
Net sys_clk LOC=C8;
Net sys_rst LOC=N3;
# SW3
Net enable_7seg LOC=A14;# DISPLAY_7_SEGMENTOS
# PUERTOS DE SALIDA
Net dacxyz_out<0> LOC=R7;
# DACS_D15
Net dacxyz_out<1> LOC=P7;
# DACS_D14
Net dacxyz_out<2> LOC=N7;
# DACS_D13
Net dacxyz_out<3> LOC=M6;
# DACS_D12
Net dacxyz_out<4> LOC=T6;
# DACS_D11
Net dacxyz_out<5> LOC=R6;
# DACS_D10
Net dacxyz_out<6> LOC=P6;
# DACS_D9
Net dacxyz_out<7> LOC=N6;
# DACS_D8
Net dacxyz_out<8> LOC=T5;
# DACS_D7
Net dacxyz_out<9> LOC=R5;
# DACS_D6
Net dacxyz_out<10> LOC=P5; # DACS_D5
144
Net dacxyz_out<11> LOC=N5; # DACS_D4
Net dacxyz_out<12> LOC=T4; # DACS_D3
Net dacxyz_out<13> LOC=T3; # DACS_D2
Net dacxyz_out<14> LOC=R4; # DACS_D1
Net dacxyz_out<15> LOC=P4; # DACS_D0
Net control_reles_out<3> LOC=M10; # CTRET3_YCOARSE_ZCOARSE
Net control_reles_out<4> LOC=N10; # CTRQ2_QZ
Net control_reles_out<5> LOC=T11; # CTRET2_ZFINE_XCOARSE
Net control_reles_out<6> LOC=R11; # CTRQ1_QX_QY
Net control_reles_out<7> LOC=P10; # CTRET1_XFINE_YFINE
Net control_dacs_out<7> LOC=R10; # DAC_Y_LOAD
Net control_dacs_out<8> LOC=T10; # DAC_Y_WRITE
Net control_dacs_out<9> LOC=N9;
# DAC_Y_CLEAR
Net control_dacs_out<10> LOC=P9; # DAC_Z_WRITE
Net control_dacs_out<11> LOC=R8; # DAC_X_WRITE
Net control_dacs_out<12> LOC=P8; # DAC_Z_LOAD
Net control_dacs_out<13> LOC=N8; # DAC_X_LOAD
Net control_dacs_out<14> LOC=M7; # DAC_Z_CLEAR
Net control_dacs_out<15> LOC=T7; # DAC_X_CLEAR
Net seleccion_modo_out<0> LOC=C7; # RESPONSE_TIME 4
Net seleccion_modo_out<1> LOC=A6; # RESPONSE_TIME 3
Net seleccion_modo_out<2> LOC=C6; # RESPONSE_TIME 2
Net seleccion_modo_out<3> LOC=B5; # RESPONSE_TIME 1
Net seleccion_modo_out<4> LOC=E6; # MODO_OFFSET
Net seleccion_modo_out<5> LOC=C5; # MODO_QUADRATURA
Net seleccion_modo_out<6> LOC=C4; # MODO_OPERATE
Net seleccion_modo_out<7> LOC=A3; # MODO_BALANCE
Net encendido_leds_out<3> LOC=P16; # LED_OUT_OF_RANGE
Net encendido_leds_out<4> LOC=N16; # LED_OPERATE
Net encendido_leds_out<5> LOC=M14; # LED_BALANCE
Net encendido_leds_out<6> LOC=M16; # LED_DISABLE
Net encendido_leds_out<7> LOC=L14; # LED_POWER
Net control_adc_IO<3> LOC=L16; # ADC_A1
Net control_adc_IO<4> LOC=L13; # ADC_CS
Net control_adc_IO<5> LOC=K14; # ADC_A0
Net control_adc_IO<6> LOC=K15; # ADC_R/C
145
Net control_adc_IO<7> LOC=K16; # ADC_BYTE
# PUERTOS DE ENTRADA
Net fp_modos_in<0> LOC=B7; # FRONT_PANEL_RESPONSE_TIME 4
Net fp_modos_in<1> LOC=B6; # FRONT_PANEL_RESPONSE_TIME 3
Net fp_modos_in<2> LOC=A5; # FRONT_PANEL_RESPONSE_TIME 2
Net fp_modos_in<3> LOC=D6; # FRONT_PANEL_RESPONSE_TIME 1
Net fp_modos_in<4> LOC=D5; # FRONT_PANEL_MODO_OFFSET
Net fp_modos_in<5> LOC=B4; # FRONT_PANEL_MODO_QUADRATURA
Net fp_modos_in<6> LOC=A4; # FRONT_PANEL_MODO_OPERATE
Net fp_modos_in<7> LOC=B3; # FRONT_PANEL_MODO_BALANCE
Net adcxyz_in<0> LOC=K12; # ADC_D7
Net adcxyz_in<1> LOC=K13; # ADC_D6
Net adcxyz_in<2> LOC=J14; # ADC_D5
Net adcxyz_in<3> LOC=J15; # ADC_D4
Net adcxyz_in<4> LOC=J16; # ADC_D3
Net adcxyz_in<5> LOC=J13; # ADC_D2
Net adcxyz_in<6> LOC=H16; # ADC_D1
Net adcxyz_in<7> LOC=G16; # ADC_D0
Net estado_leds_in<3> LOC=N15; # LED_OUT_OF_RANGE_(CL)
Net estado_leds_in<4> LOC=N14; # LED_OPERATE_(CL)
Net estado_leds_in<5> LOC=M15; # LED_BALANCE_(CL)
Net estado_leds_in<6> LOC=M13; # LED_DISABLE_(CL)
Net estado_leds_in<7> LOC=L15; # LED_POWER_(CL)
Net adc_busy_in LOC=L12; # ADC_BUSY
Net ccd_sync_in LOC=D7; # CCD_SYNCHRONIZATION
146
10.3 Código del programa.
El código del programa en el microcontrolador embebido MicroBlaze, se encuentra en
el Apéndice B, debidamente documentado.
10.4 Explicación del código.
El código tiene un doble funcionamiento. Puede trabajar de modo tal que el panel
frontal no se vea alterado ni intervenido, y puede trabajar en el modo remoto. En el control
remoto, el microprocesador embebido obedece a las órdenes establecidas de comando que se
le envié por el puerto serial. El protocolo de comandos (ASCII) para la comunicación vía
puerto serial, fue establecida como sigue:
?
Comando “f”: para seleccionar el modo de operación manual (panel frontal).
?
Comando “r”: para seleccionar el modo de operación remota.
?
Comando “x” + “valor”: para aplicar un ajuste de paralelismo en X.
?
Comando “y” + “valor”: para aplicar un ajuste en paralelismo en Y.
?
Comando “z” + “valor”: para aplicar un ajuste en desplazamiento de los espejos.
?
Comando “gx”: para leer el valor del galvanómetro del canal X, devolviendo el mismo
inmediatamente.
?
Comando “gy”: para leer el valor del galvanómetro del canal Y, devolviendo el mismo
inmediatamente.
?
Comando “gz”: para leer el valor del galvanómetro del canal Z, devolviendo el mismo
inmediatamente.
?
Comando “c”: para activar el control automático de la señal de cuadratura.
?
Comando “m”: para desactivar el control automático de la señal de cuadratura.
?
Comando “q”: para activar el modo cuadratura o “quadrature”.
?
Comando “o”: para activar el modo “offset”.
?
Comando “–”: para activar el modo “balance”.
?
Comando “+”: para activar el modo “operate”.
147
?
Comando “1”: para seleccionar el tiempo de respuesta 1.
?
Comando “2”: para seleccionar el tiempo de respuesta 2.
?
Comando “3”: para seleccionar el tiempo de respuesta 3.
?
Comando “4”: para seleccionar el tiempo de respuesta 4.
?
Comando “d” + “valor”: para configurar el valor de inicio de un barrido.
?
Comando “s” + “valor”: para configurar el valor de paso del desplazamiento de los
espejos en un barrido.
?
Comando “n” + “valor”: para configurar la cantidad de pasos de un barrido.
?
Comando “b” para arrancar un barrido. El envío de cualquier carácter detendrá el
barrido inmediatamente.
?
A todos los comandos anteriormente descritos se deberá agregar un retorno de carro al
final.
?
De reconocer los comandos aplicados, el sistema deberá devolver un retorno de carro,
un salto de línea y el carácter “>”; en caso contrario se deberá agregar a la cadena
anterior el carácter “?” antes del “>”.
Respecto al lenguaje de programación empleado es ANSI C, junto con ciertas
funciones de librería generada por el entorno XPS, en función de los periféricos añadidos a
MicroBlaze. Los periféricos en el programa, son manejados por las funciones establecidas en
la librería que los contiene. Dicha plantilla de funciones, puede ser de nivel uno o nivel cero.
El nivel uno ofrece un juego de instrucciones más complejo y completo, pero a su vez ocupan
más memoria RAM. En un principio se empezó a utilizar el nivel de interfaz uno, pero en
cierto punto de la programación se llegó a la capacidad máxima de memoria de programa a ser
cargado. El bloque de Ram que se estaba utilizando es de 4Kbytes, lo cual representa muy
poco para lo que se quería llegar a hacer. Se podía tratar de configurar otro bloque de 2Kbytes
(y no más), pero en vista de lo que ocupaba cada función en nivel uno, se decidió bajar a una
interfaz de nivel cero, más dificultosa en la programación, pero que ocupa un espacio en
memoria considerablemente menor. Aun así, al término de tener el programa con todas las
funciones de control necesarias, se configuró el enlazador para que hiciera ver como contiguos
los bloques de memoria (el de 4Kb con el de 2Kb). Este código de enlazador hace una
148
distribución de los tipos elementos en la memoria, según en la región donde se quieran asignar.
Aunque complejo de utilizar y configurar, se logró enlazar las memorias, y se pudo terminar el
programa con todas las prestaciones que se requerían, sin dejar de hacer interactuar a la FPGA
con algún módulo circuital en la tarjeta de aplicación. A continuación, este código,
denominado LinkerScript.
Definición del Linker Script implementado:
/*
* Define el mapeo del memoria, especificando la dirección de inicio y l
*tamaño de las regiones
*/
MEMORY
{
LMB : ORIGIN = 0x0, LENGTH = 4k
OPB : ORIGIN = 0x0c001000, LENGTH =2k
}
/*
* Especifica el punto de entrada del programa
*/
ENTRY(_start)
/*
* Define las secciones y donde estas mapeadas en la memoria
*/
SECTIONS
{
/*
* Especifica que los sectores .text los colocara en el LMB
*/
.text : {
*(.text)
} >LMB
/* Define el espacio para el Stack
*/
. = ALIGN(4);
_heap = .;
.bss : {
_STACK_SIZE = 0x100;
. += _STACK_SIZE;
149
. = ALIGN(4);
} >OPB
_stack = .;
/* */
/* Empieza la memoria OPB */
/* */
.opb_text : {
} >OPB
. = ALIGN(4);
.rodata : {
*(.rodata)
} >OPB
. = ALIGN(8);
_ssrw = .;
.sdata2 : {
*(.sdata2)
} >OPB
. = ALIGN(8);
_essrw = .;
_ssrw_size = _essrw - _ssrw;
_SDA2_BASE_ = _ssrw + (_ssrw_size / 2 );
. = ALIGN(4);
.data : {
*(.data)
} >OPB
/* Las secciones .sdata y .sbss deben ser contiguas */
. = ALIGN(8);
_ssro = .;
.sdata : {
*(.sdata)
} >OPB
. = ALIGN(4);
.sbss : {
__sbss_start = .;
*(.sbss)
__sbss_end = .;
} >OPB
. = ALIGN(8);
_essro = .;
_ssro_size = _essro - _ssro;
_SDA_BASE_ = _ssro + (_ssro_size / 2 );
150
. = ALIGN(4);
.opb_bss : {
__bss_start = .;
*(.bss) *(COMMON)
. = ALIGN(4);
__bss_end = .;
} > OPB
_end = .;
}
10.5 Prueba del software en el banco óptico.
10.5.1 Descripcion del banco optico y sus elementos.
Se procedió entonces a construir un banco óptico de pruebas para verificar todas las
funciones de la nueva electrónica, tanto a nivel electrónico, como óptico. La siguiente figura
nos muestra los componentes de este banco de pruebas:
Monitor
Filtro
Osciloscopio
Sintonizable
Fabry Perot
Tarjeta Tarjeta de
FPGA aplicación
Computador
Controlador
CS100
Láser (632,8nm)
Lente Focal
Expansor de
Haz
Divisor de
Haz
Lente
Colimadora
Generador
de señales
Cámara
Filtro
Neutro
Fotómetro
Amplificador
del fotómetro
Figura 53. - Presentación y descripción del banco óptico.
151
El camino del rayo es el siguiente: sale el rayo del láser, pasa por un expansor de haz
para aumentar al ancho del haz y poder cubrir la apertura del filtro sintonizable, atraviesa una
lente colimadora para que los rayos al entrar en el Fabry Perot sean paralelos entre sí, y
perpendiculares a los espejos, luego pasa a través del Filtro Sintonizable donde se potenciará el
rayo si la separación de las placas del etalón es n veces ?/2 donde ? es igual a 632,8nm , y se
atenuará en caso contrario. Al salir, el haz pasa por una lente de enfoque que vuelve a reducir
su anchura, pasa por un divisor de haz 50/50, los separa en dos haces de media intensidad total
cada uno. El haz que va al fotómetro, es captado por el fototransistor que allí se encuentra, que
luego manda la señal eléctrica al amplificador del fotómetro, y de allí al osciloscopio para
medir una señal proporcional a la intensidad de la luz incidente. El otro, pasa primero por un
filtro neutro, que baja la intensidad para no saturar la cámara, y luego mandar una imagen al
monitor, donde se podrán ver las franjas que representan los máximos de interferencia de la
onda, que a su vez son los modos que pasan por el filtro sintonizable. A continuación, una
vista superior del banco óptico, donde se puede apreciar desde otra perspectiva, al conjunto de
elementos del mismo:
Figura 54. - Vista superior del banco de pruebas.
El CS100 está interconectado con la tarjeta de aplicación, la cual a su vez está
conectada con la tarjeta de evaluación de la FPGA, como se vé a continuación:
152
Figura 55. - Interconexion con el CS100.
El generador de señales simula ser la señal de sincronización proveniente de la cámara
CCD. En la siguiente figura vemos su aspecto:
Figura 56. - Generador de señales.
153
Finalmente, como parte del banco de pruebas, se diseñó una cónsola de comandos en
Microsoft Visual Basic para hacer que el control sobre el CS100, con la tarjeta de aplicación,
fuese más amigable y fácil de usar. Desde dicha cónsola, se pueden hacer ordenar todos los
comandos establecidos en el diseño detallado respecto a la interfaz de comandos vía puerto
serial, cumpliendo con las especificaciones, de una manera más ágil para el usuario, respecto a
la alternativa del uso del HyperTerminal de Windows. En ella, además de tener el control de la
señal de consigna a los etalones, se tiene el control de las manillas de modos y tiempos de
respuesta. También se puede activar o desactivar el control automático de cuadratura.
Además, se pueden programar los barridos del etalón sincronizados por el generador de
señales, definiendo el punto de partida del barrido, en cuentas entre 0 y 65535 (16 bits), el
valor del paso (número de cuentas por paso), y cuantos pasos se desean dar. Adicionalmente,
se ha configurado un tipo de barrido más lento, ya que son posiciones que se mandan una a
una vía puerto serial, el cual no esta sincronizado con el generador de señales, pero ofrece la
ventaja de dar el valor instantáneo (en cuentas) de la señal de consigna que se le esta aplicando
al etalón, y además, ofrece la posibilidad de configurar la velocidad de barrido desde 1ms en
adelante. De esta manera, se dá una herramienta adicional para precisar la ubicación de
máximos, lo cual se traduce en la posibilidad de medir con mucha más exactitud, la distancia,
en cuentas, entre ellos, que arrojan el valor de la resolución que se esta obteniendo. Además,
sirve para la calibración óptica del paralelismo de X e Y, la cual se logra mucho más rápido
con este barrido lento asíncrono.
Los valores de los galvanómetros también pueden ser leídos, y se muestra su valor en
formato decimal, representativo del valor del galvanómetro en 8 bits complemento a dos (ya
que hay valores negativos y positivos). De esta cónsola, se hizo un instalador, que se ejecuta
fácilmente desde cualquier plataforma Windows, el cual instala absolutamente todos los
recursos necesarios, aparte del ejecutable de programa en sí. A continuación, vemos la
presentación de la cónsola de comandos diseñada:
154
Figura 57. - Presentación de la Cónsola de comandos.
10.5.2 Pruebas electrónicas realizadas y sus resultados.
A continuación se presenta unas tablas con las pruebas sobre la correcta interpretación
y ejecución de los comandos ordenados, por parte del sistema de control mejorado, tanto desde
el HyperTerminal, como desde la cónsola de comandos diseñada, de los comandos básicos,
tomando en cuenta también que los leds en el panel frontal sigan un comportamiento acorde, y
la debida respuesta del sistema de control a través del carácter de reconocimiento de comando:
155
10.5.2.1 Prueba de los comandos básicos.
Prueba
Activación del modo de control
remoto.
Activación del modo de control
manual.
Activación del control automático
de cuadratura.
Desactivación del control
automático de cuadratura.
Resultado
Correcto, se toma el control del CS100.
Correcto, se devuelve el control al panel frontal.
Activación del tiempo de respuesta
2ms.
Activación del tiempo de respuesta
1ms.
Activación del tiempo de respuesta
0.5ms.
Activación del tiempo de respuesta
0.2ms.
Activación del modo operate.
Correcto, la señal de cuadratura se regula
automáticamente.
Correcto, la señal de cuadratura se regula
manualmente.
Correcto, se observa lecturas de offset en los
galvanómetros.
Correcto, se observa lecturas de cuadratura en los
galvanómetros.
Correcto, se observa lecturas de offset en los
galvanómetros.
Correcto, se observa el cambio en las agujas de los
galvanómetros.
Correcto, se observa el cambio en las agujas de los
galvanómetros.
Correcto, se observa el cambio en las agujas de los
galvanómetros.
Correcto, se observa el cambio en las agujas de los
galvanómetros.
Correcto, el CS100 entra en modo operate.
Activación del modo balance
Correcto, el CS100 entra en modo balance.
Activación del modo offset.
Activación del modo cuadratura.
Activación del modo cuadratura.
Tabla 8.- Resumen de pruebas y resultados de los comandos básicos.
156
10.5.2.2 Prueba de los comandos avanzados.
?
Lectura de los galvanómetros.
Prueba
Orden de lectura del galvanómetro
del canal X.
Resultado
Correcto, se lee el valor del galvanómetro, el cual
es comprobado visualmente contra el panel
frontal.
Orden de lectura del galvanómetro
del canal Y.
Correcto, se lee el valor del galvanómetro, el cual
es comprobado visualmente contra el panel
frontal.
Orden de lectura del galvanómetro
del canal Z.
Correcto, se lee el valor del galvanómetro, el cual
es comprobado visualmente contra el panel
frontal.
Tabla 9.- Resumen de pruebas y resultados de los comandos avanzados. Parte 1.
?
Ajustes de paralelismo en X, paralelismo en Y, y desplazamiento Z.
Prueba
Resultado
Orden de cargar un valor para el Correcto, se nota en el valor del galvanómetro del
canal X de paralelismo.
canal X el cambio según su equivalente en voltaje.
Orden de cargar un valor para el Correcto, se nota en el valor del galvanómetro del
canal Y de paralelismo.
canal X el cambio según su equivalente en voltaje.
Orden de cargar un valor para el Correcto, se nota en el valor del galvanómetro del
canal Z de desplazamiento.
canal X el cambio según su equivalente en voltaje.
Tabla 10.- Resumen de pruebas y resultados de los comandos avanzados. Parte 2.
Además se comprobó a través del osciloscopio, la señal de referencia, la señal a cada
de salida de cada DAC, para cada uno de los canales, y el espectro en frecuencia. A
157
continuación, las gráficas resultantes en el osciloscopio de estas pruebas para Z (para los otros
dos canales, las imágenes eran exactamente iguales).
Figura 58. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de entrada
cero (salida -Ref).
Figura 59. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de entrada
16384.
158
Figura 60. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de entrada
32768(salida cero).
Figura 61. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de entrada
49150.
159
Figura 62. - Arriba, la señal de referencia, y abajo, la salida del DAC Z para el valor de entrada
65535 (salida +Ref).
Figura 63. - Comenzando positiva, la señal de referencia, y comenzando negativa, la salida del
DAC Z para el valor cero, donde se denota la perfecta simetría de +Ref (de la referencia) con –Ref
(del DAC).
160
Figura 64. - Espectro en frecuencia de la señal de referencia donde se nota la componente de
15,6Khz, sin otras contribuciones relevantes en otras frecuencias.
?
Ejecución de barridos.
Prueba
Resultado
Configuración de barrido síncrono Correcto, se nota en el valor del galvanómetro del
embebido
dentro
del
permitido.
rango canal Z y en el osciloscopio, el cambio de la onda
de la señal de consigna continuamente.
Configuración de barrido asíncrono Correcto, se nota en el valor del galvanómetro del
lento dentro del rango permitido canal Z y en el osciloscopio, el cambio de la onda
(solo en cónsola).
de la señal de consigna continuamente.
Correcto, se nota en el valor del galvanómetro del
Orden de detener un barrido.
canal Z y en el osciloscopio, que se ha detenido el
barrido.
Tabla 11.- Resumen de pruebas y resultados de los comandos avanzados. Parte 3.
161
10.5.3 Pruebas opticas.
?
Número máximo de cuentas sin que el equipo llegue al estado fuera de rango: se
ejecutaron múltiples barridos, hasta encontrar que el rango máximo seguro de valores
en cuentas estaba entre 30000 y 62000.
?
Número de modos contados en el rango máximo seguro: se contabilizaron 14 modos en
el recorrido.
?
Desplazamiento máximo en los espejos:
N mod os ? ?
2
? recorrido ,
Entonces con ? ˜ 633nm, tenemos un recorrido de 4,6µm.
?
Distancia entre máximos en valor de cuentas: se encontró un máximo en 47650,
seguido un mínimo en 48700, y seguido otro máximo en 49800. Y entonces, se
procedió a afinar el punto de cuentas de los máximos, corrigiendo los valores iniciales
y obteniendo un máximo en 47660 y el siguiente máximo en 49750. Esto arroja un
valor de cuentas entre máximos (modos) de 2090, también llamado rango de espectro
libre (FSR-Free Spectral Range).
?
La resolución teórica viene dada por:
? ?
1
? ? ? nm
2
cuenta
FSR(en _ cuentas)
Y entonces finalmente, la resolución teórica es de 0,15nm/cuenta.
?
Verificación de la resolución: Se realizó un barrido entre 48000 y 51000, y se encontró
un punto donde la pendiente de la curva del fotómetro se hacia máxima, en 49300
cuentas aproximadamente. Este punto de la curva, ofrece una buena respuesta del
162
fotómetro, ya que la máxima pendiente se traduce en mayor ganancia, lo que representa
estar en la zona más sensible. Luego de esto, se hicieron microbarridos que oscilaban
un paso hacia delante y otro hacia atrás. Buscando la respuesta de la señal del
fotómetro, se hicieron pruebas con valores de paso en estos microbarridos con 10
cuentas por paso, 3 cuentas por paso y con 1 cuenta por paso, que representan
resoluciones de 1,5nm, 0,45nm y 0,15nm respectivamente. El ruido que afecta a las
señales es debido a las limitaciones del actual montaje experimental. Se debe por un
lado a pequeñas fluctuaciones en la luz ambiente y en la intensidad del láser, y a ruido
de tipo electromagnético que se acopla en el amplificador del fotómetro debido a que
se le hace funcionar a ganancias muy elevadas (105 – 106). Desconectándola, se
verifico que en ningún caso la electrónica diseñada contribuía al mismo. Las graficas
resultantes son las siguientes:
Figura 65. - Señal del fotómetro con un paso de 10 cuentas a 500ms por paso.
163
Figura 66. - Señal del fotómetro con un paso de 3 cuentas a 300ms por paso.
Figura 67. - Señal del fotómetro con un paso de una cuenta a 100ms por paso.
164
11. CONCLUSIONES Y RECOMENDACIONES.
Se ha comprobado que es posible el control del filtro sintonizable de prueba en todo su
rango (4,6um) y con una resolución mejor que 0.5nm., tal y como plantea la necesidad en
proyecto OSIRIS. También el error de cuadratura es compensado ahora de manera automática,
eliminando la necesidad de la intervención manual en el equipo.
Además, es posible el control remoto de todos los elementos del panel frontal del
CS100 de forma absoluta, así como la lectura de los galvanómetros.
Y aunado a todo esto, es posible sincronizar el cambio de sintonía del filtro con una
señal externa. Las tablas son simuladas por una secuencia de longitudes de onda programable
desde los comandos via puerto serial.
Por lo tanto, se han cumplido todas las especificaciones de proyecto OSIRIS fijadas
inicialmente en el capítulo correspondientes, y logrando hacer un avance mas alla de lo
previsto en el proyecto, por lo que, se consideró al proyecto un total éxito, debido a que no se
presentaron inconvenientes que frenaran el desarrollo del mismo y todos los módulos
diseñados cumplieron su cometido a la primera.
De las recomendaciones a futuro, se puede decir que debido a los buenos resultados
obtenidos con este primer prototipo, es posible abordar directamente el diseño del equipo
final.
También seria necesario integrar la electrónica de control en la tarjeta de aplicación,
prescindiendo de la tarjeta de evaluación. Se dedería reducir el tamaño de la tarjeta integrada
para adaptarse al de un módulo 3U, y así poder ser instalado como un módulo más del CS100.
Además, en vista de la posibilidad de crecimiento en las funciones del sistema de control
165
digital, es aconsejable el realizar un depurado final del software de control y añadirle nuevas
funcionalidades en caso de ser necesario.
Finalmente podemos decir, que las prestaciones originales del CS100 han sido
considerablemente mejoradas, con lo que se dá un nuevo avance en el proyecto OSIRIS, el
cual, para muchos, es el intrumento de mayor innovación e importancia del Gran Telescopio
Canarias.
El presupuesto del proyecto y las horas de trabajo invertidas se encuentran en el
Apéndice C.
166
12. REFERENCIAS BIBLIOGRAFICAS.
[1]
IAC, “1er Congreso Internacional Ciencia con el GTC”, Febrero del 2002.
C. Martín, “Introducción a los telescopios terrestres y su intrumentación”,
[2]
IAC, Noviembre del 2003.
J. Zaccaria, “Banco de pruebas para filtros sintonizables”, IAC, Agosto del
[3]
2003.
J. Rasilla, J. Gigante, J. Cepa, “Tunable Filters Specifications”, IAC, Marzo
[4]
del 2002.
Queensgate Instruments Ltd., “User’s guide Queensgate Servo-stabilized
[5]
Interferometer System CS100 Controller, ET series II and EC series Etalons”
[6]
OSIRIS: http://www.gtc.iac.es/instrumentation/osiris_es.asp
[7]
OSIRIS - Introduction: http://www.iac.es/project/OSIRIS/
[8]
GTC: http://www.gtc.iac.es/
Xilinx, “Spartan-IIE 1.8V FPGA Family: Complete Data Sheet”, Julio del
[9]
2004.
[10]
Xilinx, “Spartan-IIE Brochure”, 2002.
[11]
Xilinx, “MicroBlaze Processor Reference Guide”, Julio del 2003.
[12]
Xilinx, “Xilinx Device Drivers Documentation”, Agosto del 2003.
[13]
Xilinx, “Embedded System Tools Guide”, Septiembre del 2003.
Avnet Inc., “Xilinx Spartan™-IIE Evaluation Kit Datasheet”, Noviembre del
[14]
2002.
[15]
Protel, “Exploring Protel 99 SE”, 1999.
167
13. APENDICES
13.1 Apéndice A. Lista de Materiales.
Valor o Número del fabricante
Descripción
Footprint
CANTIDAD
100nF
Capacitor 50V
0805 SMT
24
33pF
Capacitor 50V
1206 SMT
3
10µF
Capacitor 25V
SIZE D
2
2.2µF
Capacitor 35V
SIZE C
3
CABLE20
3M CABLE 20 LINEAS 28AWG
N/A
CABLE50
3M CABLE 50 LINEAS 28AWG
N/A
1 METRO
CRIMP MOLEX
CRIMP TERMINAL 28AWG
N/A
1 PACK100
GF1A
Diode 1A 50V
DO-214BA
TL074CD
Low-Noise JFET-Input Operational Amplifier
SO-G14
3
FOTOCOUPLER_TLP181
Optocoupler Toshiba TLP181
11-4C1
10
G6H-2F
5
2 METROS
5
RELAY_ONROM_G6H-2F 5VDC
RELAY OMRON G6H-2F SURFACE MOUNT
ADS7824U(28)
4 Channel, 12-Bit Sampling CMOS A/D Converter SOIC(28)DW
1
MC74ACT541DW
OCTAL BUF AND LINE DRV 3SO
SO20W
1
SN74LVC1G07DBVR
SINGLE BUFFER/DRIVER WITH OPEN DRAIN
SOT-23 (DBV)
1
LT1112S8
Dual Low Power Precision,
Picoamp Input Operational Amplifier
SO-G8
3
DAC_LTC1597-1ACG
DAC_LTC1597-1ACG
28SSOP (G)
3
BNC SOCKET
BNC Connector RIGHT ANGLE 50 OHMS
N/A
4
5PIN HEADER
Connector MOLEX 2,5MM 5PIN
N/A
1
HEADER 25X2
3M 2,54MM 50PIN
N/A
2
BNC MACHO
CONECTOR BCN CABLE RG174
N/A
3
CRIMP TERMINAL HOUSING3
CONECTOR HEMBRA 3PIN
N/A
4
CRIMP TERMINAL HOUSING5
CONECTOR HEMBRA 5PIN
N/A
1
SOCKET20
CONECTOR HEMBRA 20PIN
N/A
2
SOCKET50
CONECTOR HEMBRA 50PIN
N/A
4
3PIN HEADER
Connector MOLEX 2,5MM 3PIN
N/A
4
10K RC02H
PHILIPS RC02H
1206 SMT
3
1.2K RC02H
PHILIPS RC02H
1206 SMT
5
150R RC02H
PHILIPS RC02H
1206 SMT
5
1M RC02H
PHILIPS RC02H
1206 SMT
3
120R RC02H
PHILIPS RC02H
1206 SMT
5
3.9K RC02H
PHILIPS RC02H
1206 SMT
9
6.8K RC02H
PHILIPS RC02H
1206 SMT
9
3.3K RC02H
PHILIPS RC02H
1206 SMT
9
10K 3142W
Potentiometer MEGGITT 100mW
N/A
3
2200nF
Capacitor
RAD0.2
3
AD632AD
RECEPTACULO LEMO
EXP0S303
RECEPTACULO LEMO
EXP1S305
Internally Trimmed Precision IC Multiplier
DIP-14
3
LEMO EXP OS
N/A
3
LEMO EXP 1S
N/A
1
HEADER 20PIN3M
20 PIN 2,54MM
N/A
2
+REF/-REF
Connector 3 PIN PARA JUMPER
N/A
4
168
TOTAL
156
Tabla 12.- Lista de materiales.
13.2 Apéndice B. Codigo del programa del microcontrolador embebido
MicroBlaze.
?
Archivo de cabecera:
/******** Archivo globals.h*********/
/* Librerias de Xilinx utilizadas*/
#include "xparameters.h"
#include "xgpio_l.h"
#include "xbasic_types.h"
#include "xuartlite_l.h"
/* Declaracion de Funciones */
void activar(Xuint32 Base_Address, Xuint32 MASCARA,Xboolean estado);
Xboolean activado(Xuint32 Base_Address, Xuint32 MASCARA);
void cargardac(int dac,Xuint32 valor);
void activar_RT(Xuint32 valor_rt);
void enviar_cadena(char respuesta[]);
Xuint8* hacer_cadena(int numero);
?
Código Principal:
/********************************************************************
*
File Name:
*
Version:
main.c
1.9
*
Date:
01/09/2004
*
Model:
ITFC v.0.1
*
*
Company:
IAC - Guillermo Herrera
*
*
*
Copyright (c) 2004 IAC
169
*
All rights reserved
**********************************************************************/
/**********************************************************************/
#include "globals.h"
// MASCARAS
#define LED_POWER
0x00000001
// Led Power del Panel Frontal
#define LED_DIS
0x00000002
// Led Disable del Panel Frontal
#define LED_BAL
0x00000004
// Led Balance del Panel Frontal
#define LED_OPER
0x00000008
// Led Operate del Panel Frontal
#define LED_OOR
0x00000010
// Led Out of Range del Panel Frontal
#define BALANCE
0x00000001
// selección modo Balance
#define OPERATE
0x00000002
// selección modo Operate
#define CUADRATURA
0x00000004
// selección modo Quadrature
#define OFFSET
0x00000008
// selección modo Offset
#define RT1
0x00000010
// selección del tiempo de respuesta 1
#define RT2
0x00000020
// selección del tiempo de respuesta 2
#define RT3
0x00000040
// selección del tiempo de respuesta 3
#define RT4
0x00000080
// selección del tiempo de respuesta 4
#define DACX
0
// selección DAC X para ajuste de Offset
#define DACY
1
// selección DAC Y para ajuste de Offset
#define DACZ
2
// selección DAC Z para ajuste de Offset
#define CLX
0x00000001
// Pin de Clear en DAC X
#define LDX
0x00000004
// Pin de Load en DAC X
#define WRX
0x00000010
// Pin de Write en DAC X
#define CLY
0x00000040
// Pin de Clear en DAC Y
#define LDY
0x00000100
// Pin de Load en DAC Y
#define WRY
0x00000080
// Pin de Write en DAC Y
#define CLZ
0x00000002
// Pin de Clear en DAC Z
#define LDZ
0x00000008
// Pin de Load en DAC Z
#define WRZ
0x00000020
// Pin de Write en DAC Z
#define CAQXQYQZ
0x0000000A
// activación de Reles de señales QUADRATURE
#define FINECOARSEXYZ
0x00000015
// activación de Reles de señales OFFSET
#define ADCBYTE
0x00000001
// Pin de BYTE del ADC
#define ADCRC
0x00000002
// Pin de RC del ADC
#define ADCA0
0x00000004
// Pin de A0 del ADC
#define ADCCS
0x00000008
// Pin de CS del ADC
#define ADCA1
0x00000010
// Pin de A1 del ADC
#define ADCBUSY
0x00000001
// Pin de BUSY del ADC
#define SYNC_CCD
0x00000001
// Entrada de señal TTL del CCD
#define PREAJUSTE_X
41200
// Valor de posicion estable del etalón en X
#define PREAJUSTE_Y
39800
// Valor de posicion estable del etalón en Y
#define PREAJUSTE_Z
44200
// Valor de posicion estable del etalón en Z
170
Xuint8 cadenatx[4];
// Variable Global de Cadena de transmision
main(){
Xboolean operar_dac = XFALSE;
int cual_dac;
// Variable que indica operación con DAC
// Variable que indica selección del DAC
Xboolean ascendente = XTRUE;
// Variable que indica sentido del barrido
int nulo;
// Variable de uso general
Xboolean barrido_activo = XFALSE; // Variable de “barrido en proceso”
Xuint16 inicio_barrido = 0;
Xuint16 fin_barrido = 0;
// Variable del valor de inicio del barrido
// Variable del valor final del barrido
Xuint16 paso_barrido = 1; // Variable del valor del paso del barrido
Xuint16 numero_pasos = 65535;
// Variable del número de pasos del barrido
Xboolean a0 = XTRUE;
// Variable de configuración del A0 del ADC
Xboolean a1 = XTRUE;
// Variable de configuración del A1 del ADC
Xboolean analizar = XFALSE;
// Variable que indica analizar un comando
char caracter;
// Variable de una cadena
int x,y;
// Variables de uso general
int num_caracter = 0;
// Variable del número de caracteres
Xuint8 cadenarx[7];
// Variable de la cadena de recepcion
Xuint16 dato_dac = 0;
// Variable del dato a cargar en un DAC
Xboolean dato_valido = XFALSE;
// Variable que indica comando valido
Xboolean estado_operate = XFALSE; // Variable del modo Operate
Xboolean estado_offset = XTRUE;
// Variable del modo Offset
Xuint32 constante_tiempo = RT4;
// Variable de la constante de tiempo
Xboolean remoto = XFALSE; // Variable del modo remoto
activar(XPAR_CONTROL_DACS_BASEADDR, CLX, XFALSE);
//Clear en DAC X
activar(XPAR_CONTROL_DACS_BASEADDR, CLY, XFALSE);
//Clear en DAC Y
activar(XPAR_CONTROL_DACS_BASEADDR, CLZ, XFALSE);
//Clear en DAC Z
cadenarx[0] = '\r'; // Inicializa cadena-recepcion en retorno de carro
activar(XPAR_CONTROL_ADC_BASEADDR, ADCBYTE, XTRUE); //Modo 8 Bits en ADC
activar(XPAR_CONTROL_ADC_BASEADDR, ADCCS, XTRUE); // Chip Select ADC “Low”
activar(XPAR_CONTROL_ADC_BASEADDR, ADCRC, XFALSE); //RC ADC “High”
/* Pantalla de inicio para el caso de uso del Hyper Terminal*/
enviar_cadena("\f\n\r\t\t\tITFC v0.1 - sv1.9, IAC 2004\n\r>");
while (1){
// Ciclo natural del Programa mientras no haya reset
/* Las cuatro líneas siguientes replican las ordenes de encendido de los leds Power,
Out if Range, Balance y Operate dadas por el CS100*/
171
activar(XPAR_ENCENDIDO_LEDS_BASEADDR, LED_POWER, (activado(XPAR_ESTADO_LEDS_BASEADDR,
LED_POWER)));
activar(XPAR_ENCENDIDO_LEDS_BASEADDR, LED_OOR, (activado(XPAR_ESTADO_LEDS_BASEADDR, LED_OOR)));
activar(XPAR_ENCENDIDO_LEDS_BASEADDR, LED_BAL, (activado(XPAR_ESTADO_LEDS_BASEADDR, LED_BAL)));
activar(XPAR_ENCENDIDO_LEDS_BASEADDR, LED_OPER, (activado(XPAR_ESTADO_LEDS_BASEADDR, LED_OPER)));
if(remoto == XFALSE){ // Instrucciones a realizar en modo de operación manual
// Apaga el led de disable
activar(XPAR_ENCENDIDO_LEDS_BASEADDR, LED_DIS, XFALSE);
// Desactiva reles de señales de ajuste
activar(XPAR_CONTROL_RELES_BASEADDR, FINECOARSEXYZ, XTRUE);
// Duplica la selección del modo operate del panel frontal
activar(XPAR_SELECCION_MODO_BASEADDR, OPERATE, (activado(XPAR_FP_MODOS_BASEADDR, OPERATE)));
// Duplica la selección del modo balance del panel frontal
activar(XPAR_SELECCION_MODO_BASEADDR, BALANCE, (activado(XPAR_FP_MODOS_BASEADDR, BALANCE)));
// Duplica la selección del modo quadrature del panel frontal
activar(XPAR_SELECCION_MODO_BASEADDR, CUADRATURA, (activado(XPAR_FP_MODOS_BASEADDR, CUADRATURA)));
// Duplica la selección del modo offset del panel frontal
activar(XPAR_SELECCION_MODO_BASEADDR, OFFSET, (activado(XPAR_FP_MODOS_BASEADDR, OFFSET)));
// Duplica la selección de tiempo de respuesta 1 del panel frontal
activar(XPAR_SELECCION_MODO_BASEADDR, RT1, (activado(XPAR_FP_MODOS_BASEADDR, RT1)));
// Duplica la selección de tiempo de respuesta 2 del panel frontal
activar(XPAR_SELECCION_MODO_BASEADDR, RT2, (activado(XPAR_FP_MODOS_BASEADDR, RT2)));
// Duplica la selección de tiempo de respuesta 3 del panel frontal
activar(XPAR_SELECCION_MODO_BASEADDR, RT3, (activado(XPAR_FP_MODOS_BASEADDR, RT3)));
// Duplica la selección de tiempo de respuesta 4 del panel frontal
activar(XPAR_SELECCION_MODO_BASEADDR, RT4, (activado(XPAR_FP_MODOS_BASEADDR, RT4)));
}
//Cierre del if
else{
// Instrucciones a realizar en modo de operación remota
// Enciende led de disable
activar(XPAR_ENCENDIDO_LEDS_BASEADDR, LED_DIS, XTRUE);
// Activa reles de señales de ajuste
172
activar(XPAR_CONTROL_RELES_BASEADDR, FINECOARSEXYZ, XFALSE);
// Activa o desactiva el modo operate según variable estado_operate
activar(XPAR_SELECCION_MODO_BASEADDR, OPERATE, estado_operate);
// Activa o desactiva el modo balance según variable estado_operate negada
activar(XPAR_SELECCION_MODO_BASEADDR, BALANCE, !estado_operate);
// Activa o desactiva el modo quadrature según variable estado_offset negada
activar(XPAR_SELECCION_MODO_BASEADDR, CUADRATURA, !estado_offset);
// Activa o desactiva el modo offset según variable estado_offset
activar(XPAR_SELECCION_MODO_BASEADDR, OFFSET, estado_offset);
// Selecciona el tiempo de respuesta según variable constante_tiempo
activar_RT(constante_tiempo);
}
// Cierre del else
/* A continuación se verifica si a llegado un carácter por el puerto serial, y de
ser cierto, se lee el mismo para armar la cadena de recepcion
*/
if(XUartLite_mIsReceiveEmpty(XPAR_PUERTO_SERIE_BASEADDR)==XFALSE){
caracter = XUartLite_RecvByte(XPAR_PUERTO_SERIE_BASEADDR);
if((num_caracter < 6) && (caracter != '\r')){ // Condiciones hacer-cadena
cadenarx[num_caracter] = caracter;
num_caracter++;
// Agrega carácter a cadenarx
// Incrementa posicion en cadenarx
XUartLite_SendByte(XPAR_PUERTO_SERIE_BASEADDR, caracter); /*Devuelve el
carácter recibido */
}
// Cierre del if
else{ // Condiciones de fin de cadenarx ocurridas
num_caracter = 0;
// Inicializacion de la posicion en cadenarx
analizar = XTRUE; //Indica que se debe analizar un comando(cadenarx)
}
}
// Cierre del else
// Cierre del if
if(analizar == XTRUE){ // Condicion de analizar un comando recibido
dato_valido = XFALSE;
// Inicializacion de validar el comando a falso
switch (cadenarx[0]){
// Discrimina en el primer carácter de la cadena
// el tipo de comando recibido
case 0x0d:
dato_valido = XTRUE;
break;
// Retorno de carro recibido
// Valida la entrada como identificada
// Cierre del case
173
case 'x':
// Comando de ajuste en X recibido
cual_dac = DACX;
// Configura el DAC a cargar
operar_dac = XTRUE; // Confirma un comando de ajuste
dato_valido = XTRUE;// Valida la entrada como identificada
break;
// Cierre del case
case 'y':
// Comando de ajuste en X recibido
cual_dac = DACY;
// Configura el DAC a cargar
operar_dac = XTRUE;
// Confirma un comando de ajuste
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'z':
// Comando de ajuste en X recibido
cual_dac = DACZ;
// Configura el DAC a cargar
operar_dac = XTRUE;
// Confirma un comando de ajuste
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'g':
// Comando de lectura de galvanómetro recibido
/* Nota: el canal X es el seleccionado por defecto en este punto */
if(cadenarx[1]=='y'){ // Discrimina la orden para el canal Y
a0 = XFALSE; // Configura la entrada del ADC
}
// Cierre del if
if(cadenarx[1]=='z'){// Discrimina la orden para el canal Z
a1 = XFALSE; // Configura la entrada del ADC
/* Nota: el canal X es el selecionado por defecto
}
// Cierre del if
activar(XPAR_CONTROL_ADC_BASEADDR, ADCA0, a0); // Ejecuta la
activar(XPAR_CONTROL_ADC_BASEADDR, ADCA1, a1);// selección
// del canal
// Ordena la conversión (n-1) del canal escogido
activar(XPAR_CONTROL_ADC_BASEADDR, ADCRC, XTRUE);
// Espera de respuesta de conversión (n-1) terminada
while(activado(XPAR_ADC_BUSY_BASEADDR, ADCBUSY)){
a0 = XTRUE;
}
// Configura A0 para canal X
// Cierre del while
// Ordena la conversión (n) del canal escogido
activar(XPAR_CONTROL_ADC_BASEADDR, ADCRC, XFALSE);
activar(XPAR_CONTROL_ADC_BASEADDR, ADCRC, XTRUE);
174
// Espera de respuesta de conversión (n) terminada
while(activado(XPAR_ADC_BUSY_BASEADDR, ADCBUSY)){
a1 = XTRUE;
}
// Configura A1 para canal X
// Cierre del while
// Pone en el puerto de salida del ADC conversión (n-1)
activar(XPAR_CONTROL_ADC_BASEADDR, ADCRC, XFALSE);
// Envia por el puerto serie el valor de salida del ADC
enviar_cadena(hacer_cadena(XGpio_mReadReg(XPAR_ADCXYZ_BASEADDR, XGPIO_DATA_OFFSET)));
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'd':
// Comando de configuración de valor
// de inicio de barrido recibido
inicio_barrido = 0; // Inicializacion de la variable
y = 100000;
// Inicializacion de la variable de division
for( x = 1; x <= 5; x++){ // Bucle de conversion String->Int
y = y/10;
inicio_barrido += (cadenarx[x] - 0x30)* y;
}
// Cierre del for y queda en inicio_barrido el valor
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'n':
// Comando de ajuste en X recibido
numero_pasos = 0;
y = 100000;
// Inicializacion de la variable de division
for( x = 1; x <= 5; x++){ // Bucle de conversion String->Int
y = y/10;
numero_pasos += (cadenarx[x] - 0x30)* y;
}
// Cierre del for y queda en número_pasos el valor
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 's':
// Comando de ajuste en X recibido
paso_barrido = 0;
y = 100000;
// Inicializacion de la variable de division
175
for( x = 1; x <= 5; x++){ // Bucle de conversion String->Int
y = y/10;
paso_barrido += (cadenarx[x] - 0x30)* y;
}
// Cierre del for y queda en paso_barrido el valor
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'b':
// Comando de inicio de barrido recibido
ascendente = XTRUE; // Indica un barrido ascendente
barrido_activo = XTRUE;
// Indica un barrido en ejecucion
dato_dac = inicio_barrido; // Inicializa valor del DAC Z
// Hace que el valor final del barrido coincida con un
// multiplo del valor del paso para pasar por los mismos
// valores al regresar
fin_barrido = inicio_barrido + (numero_pasos * paso_barrido);
// Bucle bajo condicion de barrido en proceso
while(barrido_activo == XTRUE){
// Bucle de condicion nivel bajo en señal de sincronía
while(activado(XPAR_CCD_SYNC_BASEADDR, 0x00000001)==XTRUE){
nulo = 0;
// No hace nada, solo espera
} // Cierre del while
//Al salir del bucle anterior sucede la señal de disparo
cargardac(DACZ, dato_dac); // carga el valor al DAC Z
if(ascendente==XTRUE){// Condicion barrido ascendente
dato_dac += paso_barrido; // Incrementa un paso
} // Cierre del if
else{
// Condicion barrido descendente
dato_dac -= paso_barrido; // Decrementa un paso
} // Cierre del else
if(dato_dac >= fin_barrido){ // Llega al final
ascendente = XFALSE; // Indica barrido descendente
} // Cierre del if
if(dato_dac <= inicio_barrido){ // Llega al principio
ascendente = XTRUE;
// Indica barrido ascendente
} // Cierre del if
// Condicion que detecta si se ha recibido un caracter
if(XUartLite_mIsReceiveEmpty(XPAR_PUERTO_SERIE_BASEADDR)==XFALSE){
barrido_activo = XFALSE; // Detiene el barrido
176
}
// Cierre del if
// Bucle de condicion nivel alto en señal de sincronía
while(activado(XPAR_CCD_SYNC_BASEADDR, 0x00000001)==XFALSE){
nulo = 1; // No hace nada, solo espera
}
}
// Cierre del while
// Cierre del while de barrido activo
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'c':
// Comando de activar CAQ recibido
// Orden de activar el Control automático de Cuadratura
activar(XPAR_CONTROL_RELES_BASEADDR, CAQXQYQZ, XFALSE);
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'm':
// Comando de desactivar CAQ recibido
// Orden de desactivar el Control automático de Cuadratura
activar(XPAR_CONTROL_RELES_BASEADDR, CAQXQYQZ, XTRUE);
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'q':
// Comando de modo cuadratura recibido
estado_offset = XFALSE; // Activa el modo cuadratura
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'o':
// Comando de modo offset recibido
estado_offset = XTRUE;
// Activa el modo offset
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case '-':
// Comando de modo balance recibido
estado_operate = XFALSE; // Activa el modo balance
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case '+':
// Comando de modo operate recibido
estado_operate = XTRUE; // Activa el modo operate
// Las siguientes tres líneas cargan los valores de posicion
// estable determinados experimentalmente
cargardac(DACX, PREAJUSTE_X);
cargardac(DACY, PREAJUSTE_Y);
177
cargardac(DACZ, PREAJUSTE_Z);
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case '1':
// Comando selección RT1 recibido
constante_tiempo = RT1; // Activa el tiempo de respuesta 1
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case '2':
// Comando selección RT2 recibido
constante_tiempo = RT2; // Activa el tiempo de respuesta 2
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case '3':
// Comando selección RT3 recibido
constante_tiempo = RT3; // Activa el tiempo de respuesta 3
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case '4':
// Comando selección RT4 recibido
constante_tiempo = RT4; // Activa el tiempo de respuesta 4
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'r':
// Comando modo remoto recibido
estado_operate = XFALSE; // Activa el modo balance
estado_offset = XTRUE;
// Activa el modo offset
constante_tiempo = RT4;
// Activa el tiempo de respuesta 4
remoto = XTRUE;
// Activa el modo remoto
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
case 'f':
// Comando de modo manual recibido
remoto = XFALSE;
// Activa el modo manual
dato_valido = XTRUE; // Valida la entrada como identificada
break;
// Cierre del case
}
if(operar_dac == XTRUE){
dato_dac = 0;
y = 100000;
// Condicion de modo de ajuste sucedido
// Inicializa la dato a cargar
// Inicializa la variable de division
for( x = 1; x <= 5; x++){ // Bucle de conversion String->Int
y = y/10;
178
dato_dac += (cadenarx[x] - 0x30)* y;
}
// Cierre del for y queda en dato_dac el valor
// Carga el valor en el DAC selecionado
cargardac(cual_dac, dato_dac);
operar_dac = XFALSE;
}
// Elimina solicitud de ajuste
// Cierre del if
if(dato_valido == XTRUE){
// Condicion de entrada validada
enviar_cadena("\n\r>"); // Envia cadena de validacion
}
// Cierre del if
else{
// Condicion de entrada no validada
enviar_cadena("\n\r?>"); / Envia cadena de invalidacion
}
// Cierre del else
analizar = XFALSE;
// Elimina solicitud de analizar comando
cadenarx[0] = '\r'; // Inicializa la cadenarx con retorno de carro
}
// Cierre del switch
}
// Cierre del while principal
}
// Cierre del main
/*******************FUNCIONES**********************/
/*********************************************************************************
FUNCION activar: Esta función recibe los siguientes parámetros:
a. Un entero sin signo de 32 bit que contiene la dirección de memoria del
dispositivo GPIO donde se va a hacer la escritura.
b. Un entero sin signo de 32 bit que contiene la mascara que discrimina el
bit (o los bits) a cambiar en el registro del dispositivo GPIO.
c. Un dato “boolean” que indica si la acción es activar en el caso de
XTRUE, o si es desactivar en el caso XFALSE. Dichas activaciones trabajan
con lógica negativa, por lo que activar es poner un cero lógico en el
bit
indicado, y viceversa.
No
devuelve
ningún
valor
porque
hace
las
modificaciones
directamente
en
los
registros. Se utilizan las funciones de bajo nivel XGpio_mReadReg para leer los
registros, y XGpio_mWriteReg para escribir los registros. Propiamente esta función
escribe en los registros, cambiando únicamente los bits indicados, sin afectar o
cambiar a los demás bits.
Nota: en la aplicación de esta función a selección de modos y encendido de led, la
lógica negativa tiene sentido por la operación interna del CS100. Pero en todos los
179
demás casos, se debió usar XFALSE para activar y XTRUE para desactivar, para así
utilizar la misma función en dispositivos de lógica positiva.
*********************************************************************************/
void activar(Xuint32 Base_Address, Xuint32 MASCARA,Xboolean estado){
Xuint32 COMPARACION;
COMPARACION = XGpio_mReadReg(Base_Address, XGPIO_DATA_OFFSET);
if(estado==XTRUE){
COMPARACION &= ~MASCARA;
}
// Cierre del if
else {
COMPARACION |= MASCARA;
}
// Cierre del else
XGpio_mWriteReg(Base_Address, XGPIO_DATA_OFFSET, COMPARACION);
}
// Cierre de la función
/*********************************************************************************
FUNCION activado: Esta función recibe los siguientes parámetros:
a. Un entero sin signo de 32 bit que contiene la dirección de memoria del
dispositivo GPIO donde se va a hacer la escritura.
b. Un entero sin signo de 32 bit que contiene la mascara que discrimina el
bit (o los bits) a cambiar en el registro del dispositivo GPIO.
Devuelve un dato “boolean” que indica si el bit (o los bits) indicados están
activados para cuyo caso devuelve XTRUE, o si están desactivados, caso en el cual
devuelve XFALSE. Dichas verificaciones de activación trabajan con lógica negativa,
por lo que activado se traduce en un cero lógico en el
Se
utiliza
la
función
de
bajo
nivel
bit indicado, y viceversa.
XGpio_mReadReg
para
leer
los
registros.
Propiamente esta función lee en los registros, verificando únicamente los bits
indicados.
Nota: en la aplicación de esta función a lectura de modos y estado de led, la lógica
negativa tiene sentido por la operación interna del CS100. Pero en todos los demás
casos, se debió interpretar XFALSE para activado y XTRUE para desactivado, para así
utilizar la misma función en dispositivos de lógica positiva.
*********************************************************************************/
Xboolean activado(Xuint32 Base_Address, Xuint32 MASCARA){
Xuint32 COMPARACION;
COMPARACION = XGpio_mReadReg(Base_Address, XGPIO_DATA_OFFSET);
COMPARACION &= MASCARA;
180
if(COMPARACION== MASCARA){
return XFALSE;
}
// Cierre del if
else{
return XTRUE;
}
}
// Cierre del else
// Cierre de la función
/*********************************************************************************
FUNCION cargardac: Esta función recibe los siguientes parámetros:
a. Un entero que indica el dac a utilizar en la función.
b. Un entero sin signo de 32 bit que contiene el valor a escribir en el
registro del dispositivo GPIO relacionado a la salida hacia los dacs.
No
devuelve
ningún
valor
porque
hace
las
modificaciones
directamente
en
los
registros. Se utiliza la función de bajo nivel XGpio_mWriteReg para escribir los
registros. También se utiliza la función activar, creada en este mismo código.
Propiamente esta función escribe el valor a cargar en el registro del dispositivo
GPIO de salida a los dacs, y luego, a través de un switch, discrimina que dac es el
de
interés
en
ser
cargado,
y
finalmente
ejecuta
un
secuencia
de
escrituras
(indicadas por el fabricante del dac) con la función activar, en los debidos puertos
a través del dispositivo GPIO para las señales de control de los dacs creada, para
que se actualice el valor en el integrado conversor digital-analógico.
*********************************************************************************/
void cargardac(int dac,Xuint32 valor){
Xuint32 write_dac, load_dac;
XGpio_mWriteReg(XPAR_DACXYZ_BASEADDR, XGPIO_DATA_OFFSET, valor);
switch(dac){
case DACX:
write_dac = WRX;
// WRITE X
load_dac = LDX;
// LOAD X
break;
// Cierre del case
case DACY:
write_dac = WRY;
// WRITE Y
load_dac = LDY;
// LOAD Y
break;
// Cierre del case
case DACZ:
write_dac = WRZ;
// WRITE Z
181
load_dac = LDZ;
// LOAD Z
break;
}
// Cierre del case
// Cierre del switch
activar(XPAR_CONTROL_DACS_BASEADDR, write_dac, XTRUE);
// WRITE XYZ
activar(XPAR_CONTROL_DACS_BASEADDR, write_dac, XFALSE);
activar(XPAR_CONTROL_DACS_BASEADDR, load_dac, XFALSE);
// LOAD XYZ
activar(XPAR_CONTROL_DACS_BASEADDR, load_dac, XTRUE);
}
Cierre de la función
/*********************************************************************************
FUNCION activar_RT: Esta función recibe los siguientes parámetros:
a.
Un
entero
sin
signo
de
32
bit
que
contiene
la
información
en
una
directamente
en
los
mascara acerca del tiempo de respuesta seleccionado.
No
devuelve
ningún
valor
porque
hace
las
modificaciones
registros. Se utilizan las funciones de bajo nivel XGpio_mReadReg para leer los
registros, y XGpio_mWriteReg para escribir los registros. Propiamente esta función
lee en el registro del dispositivo GPIO de modos, y luego, a través de un switch,
discrimina
que
tiempo
de
respuesta
es
el
de
interés
en
ser
seleccionado,
y
finalmente ejecuta la escrituras en los registros del GPIO de modos, cambiando
únicamente el bit indicado, sin afectar o cambiar a los demás bits.
Nota: en la aplicación de esta función, la lógica negativa tiene sentido por la
operación interna del CS100.
*********************************************************************************/
void activar_RT(Xuint32 valor_rt){
Xuint32 estado;
estado = XGpio_mReadReg(XPAR_SELECCION_MODO_BASEADDR, XGPIO_DATA_OFFSET);
estado |= 0x000000f0;
switch (valor_rt){
case RT1:
estado &= ~RT1;// Tiempo de respuesta 1 seleccionado
break;
// Cierre del case
case RT2:
estado &= ~RT2; // Tiempo de respuesta 1 seleccionado
break;
// Cierre del case
case RT3:
estado &= ~RT3; // Tiempo de respuesta 1 seleccionado
182
break;
// Cierre del case
case RT4:
estado &= ~RT4; // Tiempo de respuesta 1 seleccionado
break;
}
// Cierre del case
// Cierre del switch
XGpio_mWriteReg(XPAR_SELECCION_MODO_BASEADDR, XGPIO_DATA_OFFSET, estado);
}
// Cierre de la función
/*********************************************************************************
FUNCION enviar_cadena: Esta función recibe los siguientes parámetros:
a. El arreglo de caracteres tipo char que se desea enviar por vía puerto
serial.
No
devuelve
ningún
valor
porque
hace
las
modificaciones
directamente
en
los
registros. Se utiliza la función de bajo nivel XUartLite_SendByte para escribir
directamente en los registros del dispositivo UartLite. Propiamente esta función va
leyendo uno a uno los elementos de la cadena de caracteres y los va enviando vía
puerto serie a través de la función XUartLite_SendByte, hasta encontrarse con un
carácter nulo.
*********************************************************************************/
void enviar_cadena(char respuesta[]){
int contador = 0;
// Inicializa contador
while(respuesta[contador] != '\0'){ // Condición de caracteres no nulos
XUartLite_SendByte(XPAR_PUERTO_SERIE_BASEADDR, respuesta[contador]);
contador++;
}
}
// Cierre del while
// Cierre de la función
/*********************************************************************************
FUNCION hacer_cadena: Esta función recibe los siguientes parámetros:
a.
Un
entero
que
contiene
el
número
a
convertir
en
formato
cadena
de
caracteres tipo Xuint8.
Devuelve un puntero a la dirección de memoria de la cadena de caracteres cadenatx),
a construir(primer elemento de la cadena). Propiamente esta función va desglosando
el número de unidades, decenas y centenas, y los va agregando en formato ASCII en la
cadenatx, y agregando finalmente un carácter nulo.
183
Nota: en la aplicación de esta función, solo se hacen cadenas de tres dígitos,
debido
a
que
esto
se
ajusta
a
la
necesidad
de
este
código.
*********************************************************************************/
Xuint8* hacer_cadena(int numero){
int x,y;
y = 1000;
for( x = 0; x <= 2; x++){ // Bucle que arma la cadena
y = y/10;
cadenatx[x] = (numero/y) + 0x30; // Convierte
numero -= (cadenatx[x] - 0x30)*y;
}
// Cierre del for
cadenatx[3] = '\0'; // Agrega carácter nulo
return cadenatx;
}
// retorna la cadena hecha
// Cierre de la función
13.3 Apéndice C. Presupuesto del proyecto y horas de trabajo invertidas.
Descripción
Costo en Euros
Fabricación de placa de circuito impreso.
1200,00
Materiales y componentes.
600,00
Tarjeta de evaluación de Avnet + Software de desarrollo ISE + EDK.
650,00
Total Proyecto
2450,00
Número de horas aproximadas invertidas en el proyecto: 1000 horas.
184
Descargar