Gabriel Marin Gutiérrez - DSpace@UCLV

Anuncio
Universidad Central “Marta Abreu” de Las Villas
Facultad de Ingeniería Eléctrica
Departamento de Telecomunicaciones y Electrónica
TRABAJO DE DIPLOMA
INGENIERIA
INVERSA
TMS320C6713PYPA
DE
AL
LA
COMPONENTE
TARJETA
T222
PROGRAMABLE
DEL
PECHORA
Autor: Gabriel Marin Gutiérrez
Tutor: Ing. Carlos Manuel García Algora
Santa Clara
-2014“Año 56 de la Revolución”
COMPLEJO
Universidad Central “Marta Abreu” de Las Villas
Facultad de Ingeniería Eléctrica
Departamento de Telecomunicaciones y Electrónica
TRABAJO DE DIPLOMA
INGENIERIA
INVERSA
TMS320C6713PYPA
DE
AL
LA
COMPONENTE
TARJETA
T222
PROGRAMABLE
DEL
PECHORA
Autor: Gabriel Marin Gutiérrez
E-mail: [email protected]
Tutor: Ing. Carlos Manuel García Algora
E-mail: [email protected]
Santa Clara
-2014“Año 56 de la Revolución”
COMPLEJO
Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta
Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería
en Telecomunicaciones y Electrónica, autorizando a que el mismo sea utilizado por la Institución,
para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá
ser presentado en eventos, ni publicados sin autorización de la Universidad.
Firma del Autor
Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la
dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de
esta envergadura referido a la temática señalada.
Firma del Tutor
Firma del Jefe de Departamento
donde se defiende el trabajo
Firma del Responsable de
Información Científico-Técnica
i
PENSAMIENTO
“Todo esfuerzo por difundir la instrucción es vano, cuando no se acomoda la
enseñanza a las necesidades, naturaleza y porvenir del que las recibe”.
José Martí.
ii
DEDICATORIA
A mis padres…
A mis hermanos del alma Marcos y Maibel.
A toda mi familia…
iii
AGRADECIMIENTOS
A mis padres, por el gran esfuerzo que han realizado en mi educación y porque siempre
encuentro en ellos el amor, la comprensión y la confianza necesaria para enfrentar los retos que
me da la vida.
A mi abuelita querida Lilí, por estar siempre tan preocupada y pendiente de mí.
A mi tía Unices por su dulzura y por esas comidas tan ricas que me prepara.
Al cariño de mi tía Mayda, por acogerme siempre con amor en su casa.
A mi novia Virginia por su constante preocupación y apoyo en la realización de este trabajo, por
tantos momentos lindos que hemos vivido, porque siempre es un motivo y una invitación al amor.
A los eternos amigos que aquí conocí: “Guao”, “Norlen”, “Guille”, “Tirado”, “Dani”,
“Leandro”, “Ernesto”, consortes de muchas alegrías y de mucho estudio, por todas las
experiencias chifladas y divertidas que compartimos durante la universidad y que han dado
como resultado etapas inolvidables en mi vida.
A mis compañeros de aula y en especial a “Alejandro Castillo” no sólo por "la paciencia", que
me tuvo alguna vez en explicarme las tantas cosas que durante mi transcurso por la Universidad
me costaron entender, sino también por la incondicionalidad y el respeto que me ha brindado
siempre…y por ser más que un compañero: Mi Amigo.
A mi tutor Algora, por ayudarme en la realización de este trabajo.
A la supervisión del compañero Pierrat en el proyecto.
A todos los profesores que de una forma u otra fueron capaces de brindar lo mejor de sí, para
contribuir con mi formación profesional, a los que siempre me respetaron y confiaron en mí y en
mis capacidades como alumno.
A mi familia en sentido general. A todos, ¡Muchas Gracias!
iv
TAREA TÉCNICA
Para confeccionar el presente trabajo y alcanzar los resultados esperados, fue necesario seguir un
grupo de tareas técnicas que sirvieran a su vez de guía para la elaboración del informe final. Ellas
fueron:
 Descripción del funcionamiento general del Complejo Pechora, especificando los
regímenes de la Estación de Conducción de Cohetes.
 Identificación de las funciones y componentes de la tarjeta T222, para realizar una
caracterización del componente DSP TMS320C6713PYPA perteneciente a dicha tarjeta.
 Revisión bibliográfica sobre el diseño de aplicaciones con DSPs.
 Identificación de los procedimientos empleados en el mundo para realizar la ingeniería
inversa de sistemas programados en DSP.
 Descripción y caracterización del software de simulación C++ Code Composer Studio,
herramienta empleada en la realización de la ingeniería inversa de software.
 Análisis del código fuente de la tarjeta T222 a través de la herramienta C++ Code
Composer Studio.
 Documentación de las expresiones matemáticas implementadas en el código principal del
DSP TMS320C6713PYPA.
 Elaboración del informe final del Trabajo de Diploma.
Firma del Autor
Firma del Tutor
v
RESUMEN
El Complejo “Pechora” es una estación de vigilancia del espacio aéreo que tras la modernización
de su cabina de mando logró convertir los sistemas electrónicos analógicos en sistemas digitales
mucho más eficientes y ligeros. En el presente trabajo de diploma se realiza el proceso de
ingeniería inversa al código fuente presente en el componente programable DSP
TMS320C6713PYPA perteneciente a la tarjeta T222. Se describen las funciones que desempeña
la tarjeta T222 dentro del Complejo Pechora. También se muestran las principales características
de los DSPs y específicamente los pertenecientes a la familia TMS320C6713 de la compañía
Texas Instruments, dispositivo empleado por la tarjeta T222. Se explican algunos procedimientos
de ingeniería inversa y se presentan las características y ventajas de la herramienta de simulación
Code Composer Studio. Gracias a esto se determinó cómo ocurre el procesamiento y la
transmisión de señales dentro de la tarjeta así como hacia el resto de los dispositivos que
componen la ECC “S125MIA”.
.
vi
TABLA DE CONTENIDOS
PENSAMIENTO ...............................................................................................................................i
DEDICATORIA.............................................................................................................................. ii
AGRADECIMIENTOS ................................................................................................................. iii
TAREA TÉCNICA .........................................................................................................................iv
RESUMEN ....................................................................................................................................... v
INTRODUCCIÓN ........................................................................................................................... 1
CAPÍTULO 1.
1.1
LOS DSP EN EL COMPLEJO PECHORA. ..................................................... 5
El Complejo Pechora en la defensa del país. ..................................................................... 5
1.1.1
Regímenes de la Estación de Conducción de Cohetes. .............................................. 7
1.1.2
Funciones de la tarjeta T222 dentro del Complejo Pechora. ...................................... 9
1.2
Procesador Digital de Señales. ........................................................................................ 11
1.2.1
Características del hardware en un DSP. ................................................................. 11
1.2.2
Clasificación de los DSP. ......................................................................................... 14
1.2.3
Campos de aplicación............................................................................................... 14
1.2.4
Principales fabricantes.............................................................................................. 16
1.3
Procesadores de señales TMS320XX de Texas Instruments........................................... 17
1.3.1
1.4
DSP TMS320C6713PYPA. ..................................................................................... 17
Conclusiones del capítulo. ............................................................................................... 20
CAPÍTULO 2.
ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA
REALIZACIÓN DE LA INGENIERÍA INVERSA. ..................................................................... 21
vii
2.1
Definición de ingeniería inversa. ..................................................................................... 21
2.1.1
Fundamentos de la ingeniería inversa de software................................................... 21
2.1.1.1
Ingeniería inversa para comprender el procesamiento...................................... 23
2.1.1.2
Ingeniería inversa para reestructurar el código. ................................................ 23
2.1.1.3
Ingeniería inversa para redocumentar del código. ............................................ 24
2.2
Caracterización de la Herramienta de Desarrollo de Software Code Composer Studio
v5.3. 25
2.2.1
Características de los códigos C/C++. ..................................................................... 27
2.2.2
Características del compilador. ................................................................................ 28
2.3
Análisis del código. ......................................................................................................... 28
2.4
Perfeccionamiento del código C/C++. ............................................................................ 29
3.4.1
Acceso de palabra para datos pequeños. .................................................................. 30
3.4.2
Acceso de palabra en el producto punto a punto. ..................................................... 30
3.4.3
Acceso de palabra en filtro FIR................................................................................ 30
3.4.4
Utilización de funciones especiales.......................................................................... 31
3.4.5
Procesamiento por lote del software. ....................................................................... 32
2.5
Conclusiones del capítulo. ............................................................................................... 33
CAPÍTULO 3.
ASIMILACIÓN
DE
LA
FUNCIONALIDAD DEL CÓDIGO FUENTE
PRESENTE EN EL COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222....... 34
3.1
Declaración de registros en el DSP de la tarjeta T222. ................................................... 34
3.2
Análisis de los códigos. ................................................................................................... 35
3.2.1
Void NMI_ISR(void). .................................................................................................. 36
3.2.1.1
F_222com.BIT.B12==1. .......................................................................................... 37
3.2.1.2
F_222com.BIT.B9==1 ............................................................................................. 40
viii
3.2.1.3
F_222com.BIT.B4==1 ............................................................................................. 43
3.2.1.4
(F_222com.BIT.B4==1 || F_222com.BIT.B9==1) .................................................. 46
3.2.2
Void EInt5_ISR(void) .............................................................................................. 53
3.3
Conclusiones del capítulo. ............................................................................................... 54
CONCLUSIONES ......................................................................................................................... 55
RECOMENDACIONES ................................................................................................................ 56
REFERENCIAS BIBLIOGRÁFICAS ........................................................................................... 57
ANEXOS ........................................................................................................................................ 61
Anexo I Señales de entrada y salida a la T222. ......................................................................... 61
Anexo II Diagrama en bloques simplificado de C67XX. .......................................................... 63
Anexo III Forma de exploración del espacio. ........................................................................... 64
Anexo IV Sistema Entrenador o Imitador UK40. ...................................................................... 64
Anexo V. Modelo electrónico del artículo ................................................................................ 65
INTRODUCCIÓN
1
INTRODUCCIÓN
La actividad de Ciencia e Innovación Tecnológica en las Fuerzas Armadas Revolucionarias
(FAR) de Cuba tiene sus antecedentes más inmediatos en la etapa de la guerra de liberación,
motivado por la necesidad de contar con un armamento capaz de contrarrestar la superioridad
técnica del enemigo (Cubadefensa 2012).
En la actualidad, las FAR de Cuba se encuentra inmersa en un proceso de modernización de la
técnica de combate con el objetivo de alargar la vida operativa de los equipos, en lugar de
reemplazarlos. La Defensa Antiaérea y la Fuerza Aérea Revolucionaria (DAAFAR) muestran
significativos resultados en la modernización del material de guerra acompañado de eficaces
métodos para su empleo combativo.
En el programa de desarrollo armamentístico que lleva a cabo la DAAFAR, se encuentra la
modernización de una estación de vigilancia del espacio aéreo denominada ECC S125MIA,
también conocida como “Pechora”. Este complejo coheteril en sus inicios estaba formado por
sistemas completamente analógicos y con la renovación de la técnica se logró convertir los
sistemas electrónicos analógicos en sistemas digitales mucho más eficientes y ligeros.
Actualmente los Pechora se encuentran funcionando con tarjetas implementadas con electrónica
programada pero con el inconveniente de que se desconoce sobre los principios que rigen su
funcionamiento, lo que ha imposibilitado la explotación total del complejo coheteril. Dada la
dificultad de adaptar el sistema a las necesidades existentes en los disímiles entornos de
operación y unido a los altos costos de mantenimiento, se ha estimulado la búsqueda de
alternativas para la solución del problema (Pierrat 2013).
Una forma de solución común para la problemática planteada es la ejecución de nuevos
algoritmos a partir de la experiencia y el conocimiento que se tiene sobre el funcionamiento de la
estación dada. Se conoce por la experiencia obtenida de los especialistas extranjeros que
implementaron el sistema, que un proceso de este tipo requiere de un personal calificado en la
teoría de funcionamiento de dicha estación y que además tenga suficiente preparación en los
temas de electrónica digital y programada. Un grupo de este personal se tomaría un tiempo entre
INTRODUCCIÓN
2
doce y quince años para evaluar las partes de la estación analógica que se convertirían en
procesos digitales, realizar la conversión funcional teórica de integradores, discriminadores,
esquemas de análisis, filtros de seguimiento y sistemas a lazo cerrado; diseñar los algoritmos de
trabajo de la estación por partes o sistemas independientes, simularlos y compatibilizarlos entre
sí; programarlos para diversos componentes, diseñar los esquemas electrónicos y las tarjetas de
circuitos impresos; realizar el montaje de las placas, la puesta a punto y las pruebas, la
programación de los componentes, el cableado entre placas; y concluir con las pruebas
funcionales a la nueva estación que estaría surgiendo a partir de este proceso (Pierrat 2013).
La otra alternativa para resolver el problema que se planteó es mediante la vía científica.
Teniendo en cuenta que otros especialistas ya pasaron las etapas mencionadas y aprovechando la
oportunidad de tener los códigos fuentes que se encuentran en los componentes programables de
las tarjetas electrónicas, y conociendo además, algunas de las señales de entrada presentes en
sus conectores, es posible, mediante la ingeniería inversa al hardware, obtener la funcionalidad de
dichas tarjetas (Pierrat 2013). La ingeniería inversa es el proceso mediante el cual una tecnología
o producto es desarmado con el fin de conocer los componentes que lo integran y la forma en que
éstos interactúan, para lograr finalmente una comprensión cabal de su modo de funcionamiento,
con el objetivo probable de construir una tecnología similar (López 2010).
Este trabajo pretende, entre otras cosas, descifrar los algoritmos de funcionamiento interno de la
tarjeta T222 para su futura explotación y modificación; lo cual trae como beneficio un ahorro
económico al país, de ahí la importancia que tiene la realización de esta tarea.
Teniendo en cuenta dichas razones se declara como situación problemática: la existencia de los
códigos fuentes que están en los componentes programables de las tarjetas, de los cuales aún no
se ha logrado obtener su funcionalidad. A su vez esto lleva a plantear como problema científico:
¿Qué hacer para obtener la funcionalidad de la tarjeta T222 a partir del código fuente que se
encuentra en el componente programable DSP del tipo TMS320C6713PYPA para su futura
modificación y desarrollo en las FAR?
La investigación tiene como objeto de estudio: el código fuente del componente programable
DSP del tipo TMS320C6713PYPA de la tarjeta T222. El objetivo general es: obtener mediante
INTRODUCCIÓN
3
ingeniería inversa la funcionalidad del código fuente del componente programable
TMS320C6713PYPA de la tarjeta T222.
Para lograr tales resultados se declaran los siguientes objetivos específicos:
1. Identificar las funciones de la tarjeta T222 dentro de la cabina de mando del complejo
Pechora.
2. Especificar el funcionamiento del componente DSP TMS320C6713PYPA dentro de la
tarjeta T222.
3. Describir los procedimientos para la realización de ingeniería inversa de software.
4. Describir la herramienta de simulación C++Code Composer Studio para utilizarla en la
ingeniería inversa.
5. Documentar las ecuaciones matemáticas implementadas en el DSP TMS320C6713PYPA.
6. Exponer el algoritmo de funcionamiento de la tarjeta T222, a partir del análisis de su
código fuente; verificándolo a través de la simulación con la herramienta C++Code
Composer Studio.
7. Documentar el código para que pueda ser utilizado por los especialistas del Complejo
Pechora.
El campo de acción lo constituye el estudio del código fuente del componente programable DSP
TMS320C6713PYPA; a través de la ingeniería inversa, con el empleo de la herramienta de
simulación C++ Code Composer Studio.
De los objetivos específicos surgen las siguientes interrogantes científicas:
1. ¿Qué características posee el componente programable DSP TMS320C6713PYPA dentro
de la tarjeta T222 que permiten cumplir con las tareas asignadas para el Sistema de
Vigilancia?
2. ¿Qué procedimientos de ingeniería inversa utilizar para obtener la funcionalidad del
código fuente del DSP de la tarjeta T222?
3. ¿Cómo se desarrollan aplicaciones para los DSPs utilizando el C++ Code Composer
Studio?
4. ¿Qué significado tienen las expresiones matemáticas y las variables que se encuentran
modeladas en el código fuente del DSP TMS320C6713PYPA de la tarjeta T222?
INTRODUCCIÓN
4
Con los resultados de esta investigación se tendrá al alcance de todos los especialistas e
investigadores que trabajan con el sistema de defensa antiaérea “Pechora” una fuente de
aplicación práctica y teórica de gran importancia, ya que ofrecerá información relacionada al
funcionamiento del Procesador Digital de Señales TMS320C6713PYPA de la tarjeta T222,
encargado del cálculo de las coordenadas espaciales de los artículos y los objetos imitados. Todo
con el fin de lograr una óptima explotación y mantenimiento de la tarjeta; además de facilitar una
base para futuras investigaciones encaminadas a descifrar el funcionamiento de los demás
componentes de la tarjeta.
Para dar cumplimiento a los objetivos trazados el trabajo se divide en: Introducción, tres
capítulos, conclusiones, recomendaciones, referencias bibliográficas y anexos. En el primer
capítulo se exponen las funciones de la tarjeta T222 dentro del Complejo Pechora, también se
realiza una caracterización general de los DSP atendiendo a su arquitectura, principales
fabricantes y aplicaciones más comunes. Se toma como ejemplo representativo a los dispositivos
pertenecientes a la familia TMS320Cxxxx de Texas Instruments.
El segundo capítulo recoge los procedimientos para la realización de ingeniería inversa de
software. Se muestran las características de la herramienta de simulación Code Composer Studio,
explicándose las principales particularidades del lenguaje de programación empleado en los
códigos pertenecientes al componente programable TMS320C6713PYPA.
En el último capítulo se expone el algoritmo de funcionamiento del código principal del
componente programable DSP de la tarjeta T222, a partir del análisis realizado con la
herramienta Code Composer Studio. Se realiza además una descripción de las expresiones
matemáticas que se resuelven en el código del DSP de la tarjeta con el fin de darles un
significado dentro de las tareas que realiza la estación Pechora. Como culminación se representan
las conclusiones, recomendaciones y anexos.
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
5
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
En el presente capítulo se describen las cualidades combativas y los regímenes de trabajo del
complejo de defensa antiaérea Pechora. Se exponen algunas de las funciones de la tarjeta de
cálculo T222 dentro de dicho complejo, y se caracterizan los DSP de acuerdo a su arquitectura,
clasificación, aplicaciones más comunes y principales fabricantes. Por último se caracterizan los
Procesadores de Señal de la familia TMS320CXX pertenecientes a la Compañía de Texas
Instruments
haciendo
particularmente
énfasis
en
las
características
del
DSP
TMS320C6713PYPA.
1.1
El Complejo Pechora en la defensa del país
El Complejo S125MIA “Pechora” es una estación de vigilancia del espacio aéreo con potentes
prestaciones combativas. Se destina para la búsqueda, seguimiento y aniquilamiento de los
objetivos aéreos, en los rangos de bajas y medias alturas, tanto de día como de noche y
excepcionalmente de los objetivos navales y terrestres, en los regímenes de Radiolocalización o
Televisión (Pierrat 2014,a).
El complejo posee la capacidad de lanzar hasta cuatro cohetes consecutivos a un mismo blanco
con una probabilidad de destrucción del objetivo de 0.92. El cohete realiza el vuelo hacia el
blanco y cuando este último entra dentro del radio de acción de la carga combativa que lleva el
cohete, se produce la explosión, originándose un flujo de fragmentos precedidos por una onda
expansiva que viaja en dirección hacia el blanco. La onda expansiva, la densidad de fragmentos y
el efecto rompedor de estos últimos, son los miembros de una integral de probabilidad que
generalmente produce la destrucción del blanco (Pierrat 2014,a).
El Pechora estuvo conformado en sus inicios por sistemas totalmente analógicos, que se
caracterizaban por ser muy pesados y ocupaban gran espacio en el terreno. Con el programa de
modernización de armamentos que lleva a cabo las FAR, el complejo no quedó exento de ello y
todos estos sistemas analógicos pasaron a ser digitales. Con esta modernización se obtuvieron
grandes ventajas ya que se minimizó considerablemente el tamaño del sistema, al convertir una
tecnología basada en válvulas al vacío en sistemas digitales con una alta capacidad de
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
6
integración. Esta reducción le ofrece al sistema una movilidad mayor en el terreno, siendo esta
una característica imprescindible en el complejo, en vistas a contribuir a la vitalidad tanto del
equipo como del personal que lo opera. Es importante destacar que el complejo Pechora realiza
constantes exploraciones del espacio para detectar la posición del blanco a derribar, por lo que
puede ser localizado y atacado si no es capaz de abandonar el lugar de disparo con rapidez
después del tiro.
Para garantizar la disponibilidad combativa de la misma, se hace necesario que las labores de
mantenimiento y reparación sean realizadas por especialistas cubanos. Así se garantiza que ante
cualquier dificultad, el tiempo de reparación sea el mínimo, además de contribuir a minimizar los
gastos generados.
En el siguiente esquema se muestran los diferentes dispositivos que componen la ECC S125MIA,
señalando las tarjetas que realizan las funciones en dichos dispositivos entre ellas la T222.
Figura 1.1 Esquema funcional de la ECC S125MIA (Pierrat 2014,a).
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
7
Todas las tarjetas de la estación modernizada están compuestas por circuitos impresos de cuatro
capas y cada una cuenta con al menos un dispositivo lógico programable (PLD), en el cual, se
encuentran implementadas las funciones digitales de cada una (Pierrat 2013). El PLD puede ser
un CPLD (Dispositivo Lógico Programable Complejo) o un FPGA (Arreglo de compuertas
Programables en el Campo), perteneciente a la compañía de Altera, la elección entre uno u otro
está determinada por la capacidad lógica que requiera el funcionamiento de la tarjeta en cuestión.
1.1.1
Regímenes de la Estación de Conducción de Cohetes
La ECC posee dos canales de trabajo: Radiolocalización y Televisión. En el canal de
Radiolocalización posee dos regímenes de exploración del espacio aéreo: Localización (LOC) y
Acompañamiento (ACOMP), siendo el último el que se emplea para el tiro.
En el régimen LOC se transmiten los impulsos de sondeo y se reciben las señales reflejadas por
la antena UV10, permitiendo la localización de objetivos aéreos hasta una distancia de 80Km, así
como objetivos de superficie (terrestre o marítima) y objetivos portadores del CAR (Cohete Anti
Radar). La frecuencia de la exploración de la UV10 está en el orden de los 25Hz a 28Hz.
En régimen ACOMP la transmisión de los impulsos de sondeo se realiza por la antena UV10, que
detienen el barrido de su diagrama y lo convierte en un cono fijo y la recepción se realiza por las
antenas UV10, y UV11. Como se puede observar, la antena UV10 es transmisora y receptora
mientras que la antena UV11 cumple solamente función de receptora y su frecuencia de
exploración está en el orden de los 16Hz (Pierrat 2014,a).
El régimen de Acompañamiento puede ser empleado en las siguientes condiciones:

Actuar contra objetivos de pequeña Superficie Efectiva de Reflexión (SER).

Actuar contra objetivos de grandes dimensiones.

Actuar contra objetivos en grupo.

Actuar contra objetivos del tipo Aerostatos Automáticos a la Deriva (ADA).

Actuar contra objetivos portadores de interferencias activas y pasivas.
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
8
Por otra parte el sector que cubre la antena UV12 se utiliza para enviar al espacio ondas continuas
de Alta frecuencia de las dos señales: mandos e impulsos, (anteriormente fueron moduladas y
codificadas en el cifrador del Dispositivo Radiotransmisor de los mandos) haciendo que el cohete
vaya cambiando paulatinamente su posición espacial en correspondencia con los valores de los
mandos de dirección enviados.
En caso de que los blancos sean portadores de interferencias e impidan la localización y el
seguimiento se emplea el canal tele óptico, siempre y cuando el objetivo se pueda ver por este
medio. El canal de televisión posee dos regímenes de exploración: Campo visual ancho (Foco F150) 6° diagonalmente y Campo visual estrecho (Foco F-500) 2° diagonalmente. Este último se
utiliza en los casos de localización de objetivos a distancias mayores de 18Km y para el
seguimiento del objetivo durante el tiro, mientras que el primero (F-150) se utiliza durante la
localización de objetivos a distancias menores de 18Km (Pierrat 2014,a).
Figura 1.2 Puesto de Antenas de la Estación S125MIA (Pierrat 2014,a).
Después de haber realizado una descripción general de los regímenes de trabajo del complejo
S125MIA “Pechora”, se pasa a mostrar las principales características de la tarjeta de cálculo
principal T222, perteneciente a la cabina de mando de dicho complejo.
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
1.1.2
9
Funciones de la tarjeta T222 dentro del Complejo Pechora
La tarjeta T222 es la encargada de formar las señales de video imitadas correspondiente al
objetivo, los cohetes y la interferencia, así como el cálculo de la posición espacial de los cohetes
imitados, a partir de los mandos que se le envían a un supuesto objetivo real en vuelo, para que la
trayectoria del cohete imitado sea la misma que toma el artículo real con dichos mandos (Pierrat
2014,b).
A continuación en las figuras 1.2 y 1.3 se muestran la imagen y el esquema funcional de la tarjeta
T222 respectivamente. En ella hay 2 componentes programables: un FPGA del tipo CYCLONE I
(EP1C12Q240I7N) y un DSP del tipo TMS320C6713PYPA. En cada uno de estos componentes
está programado el hardware y los algoritmos que permiten realizar las funciones del sistema. Así
mismo hay otros componentes que no están programados que se encargan de la parte analógica y
de las entradas/salidas. Entre estos componentes se encuentran los conversores A/D y D/A,
Memorias y Amplificadores.
Figura 1.3 Imagen frontal de la tarjeta T222 (Pierrat 2014,b).
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
10
Figura 1.4 Esquema Funcional de la tarjeta T222 (Pierrat 2014,b).
Los mandos de dirección que llegan a la T222 para su conversión en coordenadas espaciales
relativas al sector de exploración de las antenas, son elaborados en la T224 (descifrador). La
conversión de los mandos en coordenadas espaciales se realiza en el DSP de la T222 y con dichas
coordenadas debe cambiar la posición de los artículos que se forman en el FPGA de la T222. Las
señales de los artículos que se forman en la T222 se envían como señales de video a la T311 para
el envío posterior a las tarjetas del receptor (T314).
A la entrada de la T222 arriban también señales de sincronización y de datos por el bus serie.
Como señales de sincronismo llegan los impulsos relacionados con la exploración de las antenas
y los relacionados con el período de repetición del sondeo del transmisor. Como señales de datos
serie le llegan las señales denominadas SB1, SB6, SB8 y SB14. La salida de esta tarjeta son las
señales SB11 y SB16 (Pierrat 2014,d).
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
1.2
11
Procesador Digital de Señales
Con el rápido avance de la electrónica se ha dado paso a elementos cada vez más rápidos y
poderosos en lo que a procesamiento de información se refiere. Desde los inicios de la era digital
hasta la actualidad, se ha progresado mucho, logrando chips, que aunque muy pequeños
físicamente, son capaces de procesar grandes cantidades de datos en pocos segundos. Esto
posibilita mejorar el tiempo de respuesta de cada función a realizar, entregando de esta forma
respuestas de trabajo en tiempo real.
Uno de estos diseños creados para mayor rapidez en el procesamiento digital de señales son los
llamados: “Procesador Digital de Señales” (DSP, por sus siglas en inglés).
Un DSP es un procesador cuyo hardware, software y set de instrucciones están optimizados para
aplicaciones numéricas de alta velocidad, algo esencial para la manipulación de datos que
representan señales analógicas en tiempo real.
1.2.1
Características del hardware en un DSP
Muchas son las características que podemos encontrar en el hardware de un DSP, pero hay
algunas que no debemos dejar de destacar por su importancia. Dentro de las características más
notables podemos mencionar las siguientes:

Arquitecturas del tipo HARVARD con mapas de datos e instrucciones separadas.

Dos a más mapas de memoria de datos que permiten leer concurrentemente operandos y
coeficientes.

Manejo especializado de punteros de direcciones a través de unidades de cálculo dedicadas.

Opciones para la digitalización y captura de señales con intervalos regulares (DMA).

Recursos internos o dispositivos periféricos especializados para la conversión A/D y D/A de
señales, así como el filtrados anti-aliasing y la reconstrucción.

Elevada capacidad de procesamiento aritmético de datos en tiempo real, con elevada
precisión para evitar problemas de redondeo y truncamiento.

Etapas Multiplicadora/Acumuladora (MAC), apta para resolver ecuaciones del tipo A = A +
(B x C) en un único ciclo.

Una ALU operando en forma independiente a la MAC.
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA

12
Códigos de operación para controlar a la MAC y la ALU en una única instrucción.
La operación MAC es la base en el Tratamiento Digital de la Señal. Cuando se piensa en la
implementación de un filtro digital se tiene que las operaciones básicas a realizar son
multiplicaciones y sumas. Para lograr este fin, se modificó la clásica arquitectura de Von
Neumann.
En esta arquitectura existía un único banco de memoria en el que se encontraba tanto la memoria
de programa como los datos. En la arquitectura Harvard, se diferencian la memoria de programa
de la de datos. Por tanto, una de las características básicas de los DSP es la existencia de varios
bancos de memoria. Otro hecho diferencial es que se pretende que en un único ciclo de
instrucción se pueda decodificar la instrucción, traer dos datos de memoria, realizar una
operación MAC en la ALU y cargar la siguiente posición de memoria de programa. Para
conseguir estos resultados se recurre, aparte de aumentar el número de bancos de memoria, a la
existencia de varias unidades de proceso trabajando en paralelo(Damián 2006).
Figura 1.5 Arquitectura Von Neumann y Harvard(Bertini, Gaffi et al. 2012).
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
13
En la tabla 1.1, se muestran las ventajas que ofrece la tecnología de Procesamiento Digital de
Señales atendiendo a parámetros importantes que se deben tener en cuenta para la selección de
este tipo de tecnología.
Tabla 1.1 Ventajas del Procesamiento Digital de Señales
CARACTERÍSTICAS
PROCESAMIENTO ANALÓGICO
PROCESAMIENTO DIGITAL DE
DE SEÑALES
SEÑALES
Precisión Obtenible
1% al 10%
2-16 ….2-24
Efectos Espurios
Temperatura, Humedad,
Redondeo o Truncamiento
Envejecimiento, Ruido
Costo y Tamaño
Elevado
Bajo/ Medio
Confiabilidad
Medida
Elevada
Relación Señal / Ruido
50 a 80 dB
100 o más dB
Calibración
Manual
NO necesaria o Digital
Adaptabilidad
Compleja
Simple
Señales 2D y 3D
No procesable
Procesable
Actualización
Cambio de Hardware
Software
Consumo de Potencia
Elevado
Bajo
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
1.2.2
14
Clasificación de los DSP
Los DSP se pueden clasificar atendiendo a diferentes criterios, pero la clasificación más
extendida es la que tiene en cuenta la precisión con que se realizan las operaciones. Atendiendo a
este criterio tenemos la siguiente clasificación:
DSP de punto fijo: los datos se representan en formato de punto fijo. Presentan problemas de
limitación del rango dinámico en datos. Esto hace que su precio sea más bajo en comparación con
los de punto flotante. El número de bits usados para representar los datos varía entre 16 bits y 24
bits. Los de 16 bits se aplican sobre todo en control de procesos, telecomunicaciones y
codificación de voz. Los de 24 bits tienen invadido el mercado del audio profesional.
DSP de punto flotante: los datos son representados con formato de punto flotante. Su rango
dinámico es mucho mayor que los de punto fijo, aunque su precio es mayor. Hay unanimidad en
el mercado en cuanto al número de bits usados para representar datos: 32 bits. Su juego de
operaciones soporta también datos en formato de punto fijo.
Los nuevos modelos de DSP coinciden en que el juego de instrucciones tiende a parecerse a los
lenguajes de alto nivel (lenguaje C fundamentalmente). Esto facilita el empleo de compiladores
cruzados, de tal forma que facilita el proceso de programación de los DSP, sin tener un
conocimiento de la arquitectura del DSP empleado (Damián 2006).
1.2.3
Campos de aplicación
En los últimos años ha habido un crecimiento notable en el uso de DSP, comenzando a ser
utilizados en campos que hasta ahora casi no había entrado la electrónica (automatización,
multimedia, entretenimiento, etc.). Así mismo, su aparición ha permitido desarrollar proyectos en
tiempo real, que hasta entonces sólo se habían realizado a nivel de simulación.
Comunicaciones:
Compresión de audio y video, Filtrado y cancelación de ruido: ecualización y
tratamiento no lineal para mejorar la relación señal a ruido o el uso del ancho de banda
(Ejemplo: ADPCM, MPEG2, MP3,FAX)
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
15
Módems: métodos de modulación y demodulación digital de datos sobre un canal de
ancho de banda y ruido propio dado. Por ejemplo: ASK, FSK, PSK, DPSK, QAM, TCM.
Reconocimiento de palabra: para automatización de interfaz a usuario.
Señalización: Envío y detección de información de control sobre un canal de voz o datos.
Cancelación de eco: para compensar ecos en sistemas de elevado tiempo de propagación
(Ejemplo: Voice Over IP) o con elevado tono local.
Encriptación: para comunicaciones seguras.
Detección y corrección de errores: agregado de datos a la información transmitida para
detectar y corregir eventuales errores de recepción.
Empaquetado de mensajes: en aplicaciones como ATM y Frame Relay.
Telefonía Celular: manejo dinámico de frecuencias y potencia en estaciones base.
Multiplexores T1: para uso combinado de datos y voz.
Switchs PBX: para centrales telefónicas digitales.
Tratamiento de señales de RF: telefonía celular, modulación y demodulación digital.
Instrumentación:
Medicina: Tomografía, Ecografía, Escáner, Electrocardiograma, Electroencefalograma y
Diagnóstico Asistido.
Telemetría: monitoreo satelital de recursos.
Sonar y Radar: radares de apertura sintética, arreglos de antenas, detección de blancos
móviles, detección doppler, navegación oceanografía.
Industria:
Control de motores: robótica, sistemas de transporte, sistemas de impresión, control de
cabezales en sistemas de almacenamiento masivo de datos (Discos Rígidos, DVD, etc.).
Control de procesos.
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
16
Análisis de vibraciones: detección preventiva de fallas por análisis del espectro de
vibraciones.
Sistemas de navegación: GPS, piloto automático, sistemas de guía de misiles.
Manejo de Potencia: corrección del factor de potencia, inversores, variadores de
frecuencia, fuentes de alimentación.
Consumo:

Electrodomésticos inteligentes: neveras, lavadoras, heladeras, lavarropas, aires
acondicionado.

Audio doméstico semi-profesional

Equipos de música: sintetizadores.

Radio digital y televisión.

Sistemas de Seguridad.
1.2.4
Principales fabricantes
Las empresas que a continuación se mencionan marchan en la vanguardia del mercado de los
DSP:

Texas Instruments.

Hitachi.

Analog Device.

Motorola.

NEC.

SGS-Thomson.

Zilog.
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
1.3
17
Procesadores de señales TMS320XX de Texas Instruments
La línea de DSP de Texas Instruments (TI), englobada bajo el código TMS320, consiste en
múltiples familias de DSPs, de punto fijo o flotante, de procesadores simples o múltiples, que
están orientadas a distintas aplicaciones, tanto en el área de las comunicaciones como del control.
Desde que en 1982 se introdujo el TMS32010 hasta ahora, han aparecido muchas generaciones,
de las cuales algunas están obsoletas en la actualidad y otras siguen vigentes.
De punto fijo: C1x, C2x, C24x, C5x, C54x, C55x, C62x y C64x
De punto flotante: C3x, C4x, C67x
Multiprocesadores: C8x
Combinaciones DSP+CPU: OMAP
1.3.1
DSP TMS320C6713PYPA
El DSP TMS320C67xx forma parte de la familia de DSPs de punto flotante y está basada en la
plataforma de DSP TMS320C6000 que puede operar a 225 MHz otorgando hasta 1800 millones
de instrucciones por segundo (MIPs) y 1350 MFLOPS (Instruments 1990).
El dispositivo TMS320C6713 (C6713) está orientado a brindar alto desempeño y alta velocidad,
con una arquitectura Very Long Instruction Word ( por sus siglas en ingles VLIW) introducida
por Texas Instruments, haciendo de este DSP una excelente opción para aplicaciones que
requieran alta precisión tales como audio profesional, aplicaciones médicas y métodos de
monitoreo y diagnóstico (Papamichalis and Simar 1998).
Esta arquitectura usa unidades de ejecución múltiples que operan en paralelo para ejecutar varias
instrucciones durante un ciclo de reloj. El paralelismo es la clave para lograr un alto desempeño,
dándole a dicho DSP un lugar más allá de las capacidades de rendimiento de los diseños
tradicionales(Instruments 2004).
Algunas de las características más importantes del C6713 se resumen a continuación (Instruments
November 2005):
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
18
Núcleo:
8 Unidades funcionales independientes:
 4 ALUS (punto fijo y flotante)
 2 ALUS (punto fijo)
 2 Multiplicadores (punto fijo y flotante)
Arquitectura load-store: 32 registros de propósito general con 32 bits para cada palabra.
Trabaja con palabras de datos de 32/64 bits
8 instrucciones por ciclo de 32 bits.
Características del Set de Instrucciones:
Instrucciones de la IEEE 754
Precisión simple (32 bits) y doble (64 bits)
Protección por desbordamiento (8 bits)
Direccionamiento de bytes (8-16-32 bits)
Arquitectura de la memoria:
4 Kbyte de caché de programa para mapeo directo (L1P)
4 Kbyte de cache para datos (L1D)
256 Kbyte de memoria total L2
La figura 1.6 muestra las características significativas del ´C6713, incluyendo la capacidad de la
RAM, los periféricos, los tiempos de ejecución, el tipo de empaquetado y la cantidad de
pines(Instruments November 2005).
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
19
CAPÍTULO 1. LOS DSP EN EL COMPLEJO PECHORA
20
Figura 1.6. Características del Procesador ´C6713.
1.4
Conclusiones del capítulo
Para el cumplimiento exitoso de las misiones en el campo de batalla del Complejo Pechora se
hace necesario e importante el estudio de la tarjeta T222, debido a que, por sus características,
esta se encarga: de formar las señales de video imitadas correspondiente al objetivo, a los
artículos y a la interferencia, así como, la realización del cálculo de la posición espacial de los
artículos imitados.
Es por esta razón que en este capítulo se hizo una descripción de las cualidades combativas y los
regímenes de trabajo del Complejo de defensa antiaérea Pechora. Se expusieron algunas de las
funciones de la tarjeta de cálculo T222 dentro de dicho Complejo, y se caracterizaron los DSP de
acuerdo a su arquitectura, clasificación, aplicaciones más comunes y principales fabricantes. Por
último se caracterizó los Procesadores de Señales Digitales de la familia TMS320CXX
pertenecientes a la compañía de Texas Instruments haciendo particularmente énfasis en el DSP
TMS320C6713PYPA.
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
21
LA INGENIERÍA INVERSA
CAPÍTULO 2. ELEMENTOS
Y
HERRAMIENTAS
A
TENER
EN
CUENTA EN LA REALIZACIÓN DE LA INGENIERÍA
INVERSA
En este capítulo se explican algunos criterios en los que se apoya la realización de ingeniería
inversa al software, tales como la reestructuración y la redocumentación del código. Se enuncian
las principales características y ventajas que ofrece la herramienta de simulación Code Composer
Studio (CCS), utilizada en la programación de los DSPs y en la realización de ingeniería inversa
al software. Por último se mencionan algunos aspectos a tener en cuenta a la hora de trabajar con
el código, tales como: la escritura de códigos C/C++, utilización de funciones especiales, y el
procesamiento por lote del software, entre otros.
2.1
Definición de ingeniería inversa
“Es el proceso de analizar el código, la documentación y el comportamiento de un sistema para
identificar sus componentes actuales y sus dependencias para extraer y crear una abstracción del
sistema e información de diseño. El sistema en estudio no es alterado, sino que se produce
conocimiento adicional acerca del sistema”(Toscano 2013).
2.1.1
Fundamentos de la ingeniería inversa de software
La ingeniería inversa tiene la misión de desentrañar los misterios y secretos de los sistemas en
uso. Consiste principalmente en recuperar el diseño de una aplicación a partir del código fuente
existente. Esto se realiza principalmente mediante herramientas que extraen información de los
datos, procedimientos y arquitectura del sistema existente (Toscano 2013).
Se aplica a sistemas con las siguientes características (Toscano 2013):
Documentación inexistente o totalmente obsoleta.
Programación en bloque de códigos muy grandes y/o sin estructurar.
Inexistencia de documentación interna en los programas. Esta es incomprensible o está
desactualizada.
La aplicación cubre gran parte de los requisitos y del rendimiento esperado.
La aplicación está sujeta a cambios frecuentes, que pueden afectar a parte del diseño.
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
22
LA INGENIERÍA INVERSA
Se prevé que la aplicación pueda tener larga vida.
A pesar de que esta forma de trabajo es utilizada mucho en la actualidad, los fundamentos de la
ingeniería inversa no se enseñan en ningún curso como asignatura oficial. Los que se inician en
este mundo chocan de frente con una tarea de la cual no tienen idea de cómo embestir, y a la hora
de buscar literatura, se encuentran de que existen muchas formas de hacerlo, ya que no existen
reglas definidas en este mundo, cada quien utiliza el método que considera más atractivo.
Su aplicación nunca cambia la funcionalidad del software sino que permite obtener productos que
indican cómo se ha construido el mismo, permitiendo obtener los siguientes beneficios:
Generar diferentes alternativas: desde el punto de partida del proceso, principalmente
del código fuente, se generan representaciones gráficas lo que facilita su comprensión.
Reducir la complejidad del sistema: al intentar comprender el software se facilita su
mantenimiento y la complejidad existente disminuye.
Recuperar y/o actualizar la información perdida: en la evolución del sistema se
realizan cambios que no se suele actualizar en las representaciones de nivel de abstracción
más alto, para lo cual se utiliza la recuperación de diseño.
Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede
conducirnos a que surjan efectos no deseados, estas anomalías pueden ser detectadas por
la ingeniería inversa.
Facilitar la reutilización: por medio de la ingeniería inversa se pueden detectar
componentes de posible reutilización de sistemas existentes, pudiendo aumentar la
productividad, reducir los costos y los riesgos de mantenimiento.
La ingeniería inversa puede extraer información de diseño del código fuente, pero el nivel de
abstracción, la completitud de la documentación, el grado con el cual trabajan al mismo tiempo
las herramientas y el analista humano, y la direccionalidad del proceso son sumamente variables
(Toscano 2013).
Si se habla de las herramientas a usar, no existe un software específico llamado “Caja de
Herramientas para Ingeniería Inversa”, dichas herramientas dependen en gran medida del trabajo
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
23
LA INGENIERÍA INVERSA
que se pretenda realizar, aunque dos herramientas que no pueden faltar son la paciencia y la
experiencia.
El nivel de abstracción de un proceso de ingeniería inversa y las herramientas que se utilizan para
realizarlo aluden a la sofisticación de la información de diseño que se puede extraer del código
fuente. El nivel de abstracción ideal deberá ser lo más alto posible(Ameneyro 2012).
A medida que crece el nivel de abstracción se proporciona al ingeniero de software información
que le permitirá comprender más fácilmente estos programas. Por tanto, la ingeniería inversa
del software aparece como un proceso que ayuda al aseguramiento de la calidad y documentación
de aplicaciones con deficiencias en los modelos de análisis y diseño(Ameneyro 2012).
A continuación se expondrán diferentes acciones con la finalidad de efectuar ingeniería inversa al
código fuente presente en DSP de la tarjeta T222.
2.1.1.1 Ingeniería inversa para comprender el procesamiento
La primera actividad real de la ingeniería inversa comienza con un intento de comprender y
extraer abstracciones de procedimientos representadas por el código fuente. Para comprender las
complejidades de procedimientos, se analiza el código en distintos niveles de complejidad:
sistema, programa, componente, configuración y sentencia. Por tanto, la información extraída de
la lectura de líneas de código son las especificaciones de diseño: modelos de flujo de control,
diagramas de diseño, documentos de especificación de diseño (Pressman 2003).
La funcionalidad general de todo el sistema de aplicaciones deberá ser algo perfectamente
comprendido antes de que tenga lugar un trabajo de ingeniería inversa más detallado. Esto es lo
que establece un contexto para un análisis posterior, y se proporciona ideas generales acerca de
los problemas de interoperabilidad entre aplicaciones dentro del sistema (Pressman 2003).
2.1.1.2 Ingeniería inversa para reestructurar el código
La reestructuración del software modifica el código fuente y/o los datos en un intento de
adecuarlo a futuros cambios. En general, la reestructuración no modifica la arquitectura global
del programa. Tiende a centrarse en los detalles de diseño de módulos individuales y en
estructuras de datos locales definidas dentro de los módulos. Si el esfuerzo de la reestructuración
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
24
LA INGENIERÍA INVERSA
se extiende más allá de los límites de los módulos y abarca la arquitectura del software, la
reestructuración pasa a ser ingeniería directa (forward engineering) (Pressman 2003).
A continuación algunos beneficios que se pueden lograr cuando se reestructura el software
(Ameneyro 2012):
Reduce el esfuerzo requerido para llevar a cabo las actividades de mantenimiento.
Hace que el software sea más sencillo de comprobar y de depurar.
Programas de mayor calidad, con mejor documentación y menos complejidad, y ajustados
a las prácticas y estándares de la ingeniería del software moderna.
Reduce la frustración entre ingenieros del software que deban trabajar con el programa,
mejorando por tanto la productividad y haciendo más sencillo el aprendizaje.
La reestructuración se produce cuando la arquitectura básica de la aplicación es sólida, aun
cuando sus interioridades técnicas necesiten un retoque. Comienza cuando existen partes
considerables del software que son útiles todavía, y solamente existe un subconjunto de todos los
módulos y datos que requieren una extensa modificación (Pressman 2003).
2.1.1.3 Ingeniería inversa para redocumentar del código
La redocumentación es también una forma de ingeniería inversa y es el proceso mediante el cual
se produce documentación desde un sistema existente. Si la redocumentación toma la forma de
modificación de comentarios en el código fuente, puede ser considerada una forma suave de
reestructuración. Sin embargo, puede ser considerada como una sub-área de la ingeniería inversa
porque la documentación reconstruida es usada para ayudar al conocimiento del programa
(Pressman 2003).
En el caso específico de este trabajo se analizará inicialmente la funcionalidad general de todo el
sistema, para obtener una visión general de la interoperabilidad entre aplicaciones, luego se
mostrará el funcionamiento de algunos bloques funcionales y se propondrán reestructuraciones
del código, en vistas a corregir errores de funcionamiento, o aumentar las prestaciones del
programa.
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
25
LA INGENIERÍA INVERSA
2.2
Caracterización de la Herramienta de Desarrollo de Software Code Composer Studio
v5.3
Code Composer Studio es un software con ambiente integrado de desarrollo, construido
específicamente para DSPs. A pesar de las ventajas ofrecidas por las versiones modernas, en el
presente trabajo se utilizará dicho software en su versión 5.3, debido a las dificultades que se
presentan en el acceso a esta herramienta, principalmente económicas. A los efectos, esto no
representa ningún obstáculo, dado que el DSP TMS320C6713PYPA, pertenece a la familia de los
TMS320C67xx de la compañía de Texas Instruments, y está soportada por esta versión del
software.
En software, un usuario puede construir, corregir, perfilar y manejar proyectos en una sola
aplicación dentro del mismo programa, sin necesidad de realizar varios pasos repartidos en
distintos softwares, con la ventaja de ser modificados, si así se desea. Además, permite realizar
análisis gráficos de la señal, entrada/salida de los archivos, para lo cual, utiliza las herramientas
de Texas Instruments en cada procesamiento de los proyectos que en él se elaboren, es decir, es el
administrador de estas herramientas: compilación, ensamblaje y creación del ejecutable (Fierro
2007).
El CCS incluye además un editor C/C++ para la generación de códigos ensamblados y un
software de tiempo real (DSP/BIOS), el cual tiene en cuenta el tiempo básico de simulación que
se necesita para soportar cualquier aplicación de DSP (Papamichalis and Simar 1998).
La figura 2.1 muestra una vista general del ambiente de trabajo con el Code Composer Studio. A
la izquierda de la imagen se observa una ventana en la que se declaran los proyectos y los
diferentes módulos que este posee. Los módulos están formados por el archivo C/C++ o
assembler, librerías de funciones, archivos “include” y otros más específicos a la aplicación que
se este realizando.
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
26
LA INGENIERÍA INVERSA
Figura 2.1. Ambiente de trabajo del Code Composer Studio.
La ventana principal puede mostrar el editor de texto que se utiliza para escribir el código.
Además puede mostrar gráficos de variables utilizadas en el DSP, un mapa de la memoria de
programa I/O datos, etc.
Así, el objetivo principal de Code Composer es proporcionar las herramientas de desarrollo más
avanzadas y más fáciles de utilizar para el manejo del software de DSP, aumentando con esto la
productividad y reduciendo al mínimo el tiempo de desarrollo. De ahí que su empleo haya sido
de gran utilidad para analizar el código fuente del componente programable DSP
TMS320C6713PYPA de la tarjeta T222, tarea que recoge el contenido principal de la
investigación.
Ahora, cuando se quiere optimizar el desempeño de un código de C/C++ se pueden emplear las
opciones que ofrece el compilador o se pueden aplicar transformaciones directamente al código.
Para poner en práctica esto se hace necesario conocer varios aspectos, tales como la escritura de
un código C/C++ y las características del compilador.
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
27
LA INGENIERÍA INVERSA
2.2.1
Características de los códigos C/C++
Para escribir un código en C/C++ es necesario tener en cuenta el tamaño del dato que se va
emplear; en el caso del compilador C6000, el tamaño de los datos se define por el tipo de dato.
Basado en el tamaño de los datos según su tipo, el programador debe utilizar determinadas
instrucciones que le facilitaran el trabajo, y a la hora de rectificar o depurar el código, los errores
detectados serán ínfimos. A continuación se muestran algunas de estas instrucciones:
Para la multiplicación de puntos fijos, siempre que sea posible se debe usar los datos de
tipo short, ya que este tipo de datos provee el uso más eficiente del multiplicador de
16bits del C6000.
Para los contadores de bucles, se debe usar los datos de tipo intounsignedint en vez de
short o unsigned short, con el objetivo de evitar el uso instrucciones innecesarias.
Evite códigos que asuman que los tipos de int y long son del mismo tamaño, porque para
el compilador C6000 los datos de tipo long son para operaciones de 40bits.
Después de escribir el código aplicando las instrucciones antes mencionadas, se debe hacer un
análisis de cada una de sus regiones, su simulación o depuración con las diferentes herramientas
que CCS provee. Para realizar este análisis se pueden emplear las siguientes técnicas:
Una de las mediciones preliminares del código es el tiempo que este demora en
compilarse. Por ello se hace uso de las funciones clock () y printf () de C/C++ para
temporizar y mostrar el desarrollo de cada región del código.
Usar la compilación del código mediante la opción –mg y la ejecución de load6x con la
opción –g.
Habilitar el reloj y usar puntos de análisis para correr el programa con el objetivo de
obtener los ciclos de reloj consumidos en cada región del código.
Las áreas críticas de desarrollo en el código son la de los lazos más grandes. La forma
más fácil de optimizar un lazo es mediante la extracción de este y separar los archivos que
puedan ser reescritos y recompilados para luego simularlos con load6x.
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
28
LA INGENIERÍA INVERSA
2.2.2
Características del compilador
El compilador C6000 ofrece soporte de lenguaje de alto nivel transformando su código C/C++ en
un código fuente más eficiente. Las operaciones del compilador son controladas por diferentes
opciones para eliminar los fallos que pueda tener el código. Para maximizar la eficiencia del
código, el compilador esquematiza en paralelo tantas instrucciones como le sea posible. Esto crea
una dependencia entre las instrucciones, y como sólo las instrucciones independientes pueden
ejecutarse en paralelo, la dependencia impide el paralelismo. En caso de que el compilador no
pueda determinar que dos variables son independientes, asume una dependencia y escribe dos
instrucciones secuencialmente. En caso de determinar que son independientes, éste las
esquematiza en paralelo.
2.3
Análisis del código
Cuando se quiere mejorar la forma del código existen varios métodos, entre ellos, la utilización
del simulador load6x. Este simulador posee dos formas de aplicación; una de ellas es cuando se
está interesado en el perfil de todas las funciones de la aplicación, donde se puede usar las
opciones –g y -mg.
La opción –g se corre en el simulador independiente. Los archivos originarios deben ser
compilados con la opción para perfilar –mg, para trabajar en el simulador independiente. Los
resultados del perfil son almacenados en un archivo con extensión .out, pero variando la
extensión a .vaa.
En caso de usar la opción para perfilar –mg, al compilar y acoplar el archivo example.out, es
conveniente el empleo de la opción –g para crear un archivo, en el cual se podrán observar los
resultados perfilados.
Para obtener información de la cuenta del ciclo para una o dos funciones, o una región
determinada del código con el simulador independiente, se recomienda la utilización de la opción
clock () en el código C. La incorporación de la opción clock () se puede realizar de la manera que
se muestra a continuación:
1. #include<stdio.h>
2. #include<time.h>
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
29
LA INGENIERÍA INVERSA
3. main(intargc,char*argv[]){
4. constshortcoefs [150];
5. shortoptr[150];
6. shortstate[2];
7. constshorta[150];
8. constshortb[150];
9. int c = 0;
10. intdotp[1]={0};
11. int sum= 0;
12. shorty[150];
13. shortscalar=3345;
14. constshortx[150];
15. clock_tstart,stop,overhead;
16. start=clock();
17. stop=clock();
18. overhead=stop–start;
19. start=clock();
20. sum = mac1(a, b, c, dotp);
21. stop=clock();
22. printf(”mac1cycles:%d\n”,stop–start–overhead);
23. start=clock();
24. vec_mpy1(y,x,scalar);
25. stop=clock();
26. printf(”vec_mpy1cycles:%d\n”,stop–start–over27. head);
28. start=clock();
29. iir1(coefs,x,optr,state);
30. stop=clock();
31. printf(”iir1cycles:%d\n”,stop–start–overhead);
32. }
2.4
Perfeccionamiento del código C/C++
Para obtener ganancias en el desempeño del código C/C++ se debe realizar un refinamiento o
perfeccionamiento del código creado en las siguientes áreas:
Usando acceso de palabra para manejar datos de 16-bit almacenados en las partes altas y
bajas de un registro de 32 bits.
Utilizando funciones especiales para reemplazar los códigos más complicados de C/C++.
Programando manualmente a partir de la creación de una secuencia adecuada de las
instrucciones de manera que se garantice un mayor paralelismo.
Utilizando doble acceso para operar en datos de 32 bits almacenados en un registro de 64 bits
(solamente para C64x y C67x)(Instruments 2000).
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
30
LA INGENIERÍA INVERSA
3.4.1 Acceso de palabra para datos pequeños
El C6000 tiene instrucciones con funciones especiales correspondientes como lo son add2,
mpyhl, mpylh, que operan con datos de 16bits almacenados en la parte baja y alta de un registro
de 32 bits. Cuando opera en una cadena de datos pequeños, se puede hacer uso del acceso de
palabra int para leer dos valores al mismo tiempo y luego usar el compilador.
Conocer el tipo de datos que se le está pasando a cada función puede mejorar el desempeño
considerablemente, siendo a la vez útil a la hora de escribir funciones diferentes que manipulan
diferentes tipos de datos. Si los datos pequeños siempre operan en arreglos alineados en palabra,
incluso enumeradas, entonces el desempeño de la aplicación puede ser mejorado.
3.4.2 Acceso de palabra en el producto punto a punto
Otras funciones especiales útiles para la lectura de datos pequeños como palabras son las
funciones especiales de multiplicación. En el ejemplo que se muestra a continuación se hace uso
de las funciones –mpyh y -mpy. La función -mpyh usa la instrucción MPYH del C6000 la cual
multiplica los 16 bits de la parte baja de dos registros dando como resultado 32 bits. En este
ejemplo se emplean dos variables de suma (sum1y sum2). Podemos percatarnos que la utilización
de una sola variable de suma inhabilita el paralelismo por lo que se crea una dependencia entre lo
escrito del primer cálculo y la lectura del segundo.
1. intdotprod(const short *a, const short *b, unsigned int N)
2. {
3. inti, sum1 = 0, sum2 = 0;
4. constint *i_a = (constint *)a;
5. constint *i_b = (constint *)b;
6. for (i = 0; i< (N >> 1); i++)
7. {
8. sum1 = sum1 + _mpy (i_a[i], i_b[i]);
9. sum2 = sum2 + _mpyh(i_a[i], i_b[i]);
10. }
11. return sum1 + sum2;
12. }
3.4.3 Acceso de palabra en filtro FIR
Un filtro FIR puede ser optimizado con lectura de palabras de datos pequeños y de funciones de
multiplicación. La versión optimizada pasa un arreglo int en lugar de lanzar los arreglos pequeños
y, por consiguiente, las ayudas aseguran que los datos pasados a la función sean alineados en
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
31
LA INGENIERÍA INVERSA
palabra. Suponiendo que se usa un prototipo, cada llamada a la función asegura que los arreglos
sean alineados en palabra obligándole a usar arreglos int que contienen datos pequeños.
3.4.4 Utilización de funciones especiales
El compilador C6000 provee funciones especiales que optimizan su código C/C++. El uso de
estas funciones facilita las operaciones, reduciendo las instrucciones que no están fácilmente
expresadas en el código C/C++. En algunas ocasiones una función especial específica
correspondiente a las instrucciones del lenguaje ensamblador no puede ser utilizada por el
compilador. En este caso, el significado del programa no varía(Instruments 2001).
Tabla 2.1. Ejemplos de funciones especiales del compilador C/C++ para el TMS320C67xx
Funciones Especiales
del compilador C
int_dpint(double)
Lenguaje
Descripción
Ensamblador
DPINT
Converts 64-bit double to 32-bit
signed
integer,
using
the
rounding mode set by the CSR
register.
uint_ftoi(float)
Reinterprets the bits in the
float as anunsigned integer.
(Ex:_ftoi(1.0)==1065353216U)
double_rcpdp(double)
RCPDP
Computes the approximate 64bit double reciprocal.
double_rsqrdp(double
src); C67x
RSQRDP
Computes the approximate 64bit double reciprocal square
root.
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
32
LA INGENIERÍA INVERSA
3.4.5 Procesamiento por lote del software
Esta es una técnica usada para programar instrucciones desde un lazo, a fin de que las múltiples
iteraciones del lazo se ejecuten en paralelo. Usando las opciones del compilador –o2 y –o3, se
logra procesar por lote el código con información proveniente del programa. En la Figura 2.2 se
ilustra un lazo procesado por lote, donde pueden ser ejecutadas al mismo tiempo un máximo de
cinco iteraciones. El estado de los lazos son representados por A, B, C, D y E.
Figura 2.2. Lazo de procesamiento por lote del Software.
Antes de que el lazo termine se itera varias veces. El número de iteraciones es llamado cuenta de
recorrido y la variable usada para contar cada iteración es el contador de recorrido. Cuando el
contador de recorrido es igual a la cuenta de recorrido, el lazo termina. Las herramientas de
C6000 usan la cuenta de recorrido para determinar si un lazo, puede o no, ser procesado por lote.
La cuenta mínima de recorrido para un lazo del procesamiento por lote del software es
determinada por el número de iteraciones que se ejecuten en paralelo(Instruments 2001).
En muchas ocasiones el compilador no puede determinar si el lazo se ha ejecutado más veces que
la cuenta de recorrido mínima. Por consiguiente, el compilador generará dos versiones del lazo,
uno se ejecutará si la cuenta de recorrido es menor que la cuenta segura mínima de recorrido y el
otro se ejecutará si la cuenta de recorrido es igual o mayor que la cuenta segura mínima de
recorrido. Conclusión, los lazos redundantes dañarán el tamaño del código y en menor grado, el
desempeño.
Para indicarle al compilador que no se requiere el uso de las dos versiones de lazos, se hace uso
de las opciones –ms0 o –ms1. El compilador generará la segunda versión del lazo solo si este
CAPÍTULO 2. ELEMENTOS Y HERRAMIENTAS A TENER EN CUENTA EN LA REALIZACIÓDE
33
LA INGENIERÍA INVERSA
puede probar que la cuenta del recorrido mínimo será siempre igual o mayor que la cuenta de
recorrido mínima efectiva. En caso contrario se aplicará la otra versión.
2.5
Conclusiones del capítulo
El contenido principal de esta investigación se orienta hacia la rama de la electrónica digital
programada, específicamente a la obtención mediante ingeniería inversa de la funcionalidad del
código fuente del componente programable TMS320C6713PYPA de la tarjeta T222. De ahí la
necesidad de aplicar al caso particular de la tarjeta T222 algunos criterios en los que se apoya la
realización de ingeniería inversa al software a nivel internacional. Estos criterios asociados a las
ventajas que ofrece la herramienta de simulación Code Composer Studio como una plataforma
que concede espacio para el estudio, comprensión y simulación de códigos propician a su vez un
mejor entendimiento del funcionamiento interno de dicho código.
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
34
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
CAPÍTULO 3. ASIMILACIÓN
DE
LA
FUNCIONALIDAD DEL
CÓDIGO FUENTE PRESENTE EN EL COMPONENTE
PROGRAMABLE DSP DE LA TARJETA T222
El código fuente de una aplicación refleja su integridad funcional y su comportamiento, sólo si se
ha realizado un análisis previo de la tecnología que se describe en la programación. En el
desarrollo de este capítulo se realiza un análisis de los diferentes algoritmos matemáticos
modelados en el componente programable, mediante el proceso de ingeniería inversa al código,
para darles un significado dentro a las operaciones que se realizan en la cabina de dirección.
3.1
Declaración de registros en el DSP de la tarjeta T222
En el código fuente del componente programable de la tarjeta T222 se definen un total de
veintitrés registros para la entrada de datos al CPLD, denominadas:
Flag_222com_adr
data_target_R_adr
data_target_V_adr
data_target_H_adr
data_target_P_adr
data_target_beta_adr
data_ante_epsil_adr
data_ante_beta_adr
data_F1val_adr
data_F2val_adr
data_F3val_adr
data_F4val_adr
data_F5val_adr
data_F6val_adr
data_F7val_adr
data_F8val_adr
data_fai1jun_adr
data_fai2jun_adr
data_epsiljun_adr
data_R1_depsil_adr
data_R1_dbeta_adr
data_R2_depsil_adr
data_R2_dbeta_adr
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
35
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
De igual forma se definen un total de quinces registros para la salida de datos:
Target_R1ch_data_adr
Target_R2ch_data_adr
Target_fai1_data_adr
Target_fai2_data_adr
Rocket1_R_data_adr
Rocket1_fai1_data_adr
Rocket1_fai2_data_adr
Rocket2_R_data_adr
Rocket2_fai1_data_adr
Rocket2_fai2_data_adr
Analysis_R1K1_data_adr
Analysis_R1K2_data_adr
Analysis_R2K1_data_adr
Analysis_R2K2_data_adr
State_data_adr
3.2
Análisis de los códigos
Si se quiere lograr una correcta y completa interpretación de cada una de las fórmulas que se
encuentran documentadas en el código fuente del componente programable, es importante señalar
el sistema geométrico con que se trabaja. En los códigos se hace referencia al sistema de
coordenadas esféricas como el sistema geométrico que se utiliza para determinar la posición de
un punto en el espacio mediante una distancia y dos ángulos.
En el análisis de las ecuaciones se toma como punto de inicio o centro para las mediciones, el
punto donde se ubica la Estación de Conducción de Cohetes (ECC). Desde ese punto se miden
las coordenadas del blanco y del cohete que quedan caracterizadas por un azimut o coordenada
esférica por el plano horizontal, un ángulo de elevación o coordenada esférica por el plano
vertical y una distancia o dimensión del espacio, en línea recta, entre la ECC y la posición del
blanco o del cohete. En la siguiente figura se muestran los sistemas antes mencionados.
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
36
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Figura 3.1 Sistemas de coordenadas rectangulares.
Relacionado con el lenguaje de programación utilizado en el código, se hace necesario tener en
cuenta aspectos como: la aritmética, las reglas de procedencia de operadores, los operadores de
igualdad y relacionales, además de las estructuras de selección If y If/Else.
A continuación se realizará el proceso de ingenieria inversa al código con el fin de obtener las
ecuaciones y las varaibles que demuestran la formación de las señales para los objetivos y los
artículos imitados.
3.2.1 Void NMI_ISR(void)
La interrupción void NMI_ISR(void) dentro del programa principal (main) identifica el proceso
de exploración de la antena UV11 en régimen de acompañamiento. Dicha antena explora el
espacio con una frecuencia de 16 Hz, de ahí que el período de duración de este proceso sea igual
a 62.6 ms.
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
37
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Por la importancia que demuestra especificar de forma correcta el orden en el cual se deben de
ejecutar las acciones, y con vistas a lograr una mejor interpretación de la funcionalidad del
codigo fuente, se procede a dividir en subepigrafes el mismo.
3.2.1.1 F_222com.BIT.B12==1
Paso #1:
Si se cumple la condición de Bit.B12==1 (activo):
De las expresiones anteriores se deriva que las variables ANTENA.beta y ANTENA.epsil
representan el ángulo correspondiente al proceso de exploración de las antenas por el plano β
(ángulo horizontal) y por el plano ε (ángulo de elevación) en cada instante de tiempo. La variable
dx se emplea para leer y guardar el dato que se encuentra en la dirección de registro
correspondiente a data_ante_epsil_adr, en primer lugar, y seguidamente a data_ante_beta_adr.
El dato que se encuentra guardado en dichos registros corresponde a un número.
Paso #2:
Si no se cumple que Bit.B12==1:
La variable ddx realiza la misma función que dx, analizada en el paso anterior. Se emplea para
leer el dato que se encuentra guardado en el registro REG16 (data_ante_epsil_adr). Destacar que
inicialmente ddx se encontraba cargada con el valor de cero.
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
38
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
El paso que le sigue a continuación tiene la función de rectificar y comprobar los valores
obtenidos como resultado de las ecuaciones anteriores.
Si ANTENA.epsil>=180.0:
Si ANTENA.beta<0.0:
Si ANTENA.beta>=360.0:
De lo contrario, si ANTENA.beta no cumple con ninguna de estas dos condiciones, para la cual
se calculó inicialmente, podemos afirmar que β se encuentra dentro de los rangos específicos de
0º ≤β< 360º, y el nuevo valor de ANTENA.beta será calculado de la siguiente manera:
Las ecuaciones que a continuación se describen, corresponden al proceso de obtención de los
mandos de dirección K1 y K2 para cada uno de los cohetes a partir de la manipulación por
frecuencia.
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
39
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Para entender mejor como ocurre este proceso es importante conocer que los mandos que van
hacia el descifrador sufren en la T223 el mismo proceso que se realiza en el cifrador (T811);
primeramente se convierten en intervalos de tiempo, proceso que es denominado “modulación
por la duración del impulso”. Estos intervalos de tiempo o sucesión de impulsos, tanto el de
polaridad positiva (T1) como el de polaridad negativa (T2), se modulan con oscilaciones de
frecuencias diferentes. Esta explicación se puede entender mejor mediante la ilustración de la
figura 3.1 que a continuación se muestra.
Figura 3.2 Manipulación por frecuencia.
Por lo tanto cada mando K1 y K2 es una sucesión de dos frecuencias, lo que se puede evidenciar
mediante las expresiones siguientes:
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
40
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Resumiendo, para los mandos R1K1 y R1K2 del primer canal se emplean los pares de valores de
frecuencias f1val, f2val y f3val, f4val respectivamente; mientras que para los mandos R2K1 y
R2K2 del segundo canal se emplean los valores f5val, f6val y f7val, f8val.
De las ecuaciones anteriores podemos asumir que ROCKET1.K1 y ROCKET1.K2 corresponden
a los mandos de dirección K1, K2 obtenidos para el cohete1, mientras que ROCKET2.K1 y
ROCKET2.K2: son los mandos de dirección K1, K2 para el cohete2. Los mandos K1 y K2,
contienen las magnitudes y el sentido en que debe moverse el cohete en el espacio.
La variable dx se utiliza para leer y cargar los datos que se encuentran guardados en los registros
desde (data_F1val_adr) hasta (data_F8val_adr).
3.2.1.2 F_222com.BIT.B9==1
El grupo de pasos lógicos que a continuación se describen, responden al proceso de
posicionamiento del blanco, donde, es necesario la determinación del azimut y el ángulo de
inclinación del mismo, además de la distancia inclinada al punto de encuentro, la altura, los
mandos de dirección y otros elementos que son de vital importancia para su ubicación.
Si se cumple F_222com.BIT.B9==1, la estación se encuentra en Seguimiento Automático (SA)
del blanco imitado y se procede a elaborar la posición de los blancos imitados en cada instante de
tiempo para indicar el paso correcto de las señales por los canales del receptor. Su función es
mostrar el correcto funcionamiento del Dispositivo de elaboración de los mandos (DEM) y del
Dispositivo Radiotransmisor de los mandos (DTM). Todo este proceso se le llama “control
funcional de la ECC en baja frecuencia”.
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
41
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
A continuación se comprueba si F_222com.BIT.B0 está en un nivel bajo de señal (=0) o alto
(=1). Si se cumple que F_222com.BIT.B0==0, se asume que el blanco está estático y se procede
con los cálculos correspondientes al paso número uno, de lo contrario dicha condición sería falsa
(=1) y se saltaría a las ecuaciones del paso número dos. Cuando se dice que el blanco se
encuentra estático se quiere expresar que la posición tanto por el plano ε como por azimut (β) no
experimenta variación alguna, no siendo así para la posición por distancia.
Paso #1 (blanco estático):
De las expresiones anteriores se deriva que las variables ANTENA.beta y ANTENA.epsil
representan la posición correspondiente al proceso de exploración de las antenas por el plano β
(ángulo horizontal) y por el plano ε (ángulo de elevación). De igual forma las variables
TARGET.beta0, TARGET.beta corresponden a la posición del blanco en su estado final e inicial
respectivamente por el plano horizontal (β), mientras que TARGET.epsil es la posición por el
plano ε. Es importante destacar que se está trabajando con la condición de blanco fijo, de ahí que
la posición inicial y final para el objetivo sea la misma por el plano horizontal.
La distancia inclinada medida desde la estación hasta el punto donde se encuentra el blanco
imitado queda determinada por la variable TARGET.R, mientras que la altura que se le introduce
al blanco se identifica por la variable TARGET.H. De tipo doublé es la variable cntsim y su
empleo en el código fuente significa: la distancia perpendicular desde el curso de vuelo del
blanco hasta la ECC, o parámetro del objetivo imitado (P) como también se le conoce.
Paso #2:
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
42
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Este paso corresponde al posicionamiento del blanco en cada instante de tiempo para el caso en
que este se encuentre en movimiento. La variable TARGET.T_Rx significa la distancia
horizontal medida desde la estación hasta el punto donde se encuentra la proyección en el plano
horizontal del objetivo imitado (R OBJ HOR).
Consecutivamente se compara la distancia inclinada medida desde la ECC hasta el punto donde
se encuentra el objetivo imitado, donde si TARGET.R>5000.0:
En dependencia del paso que se haya ejecutado y del valor obtenido en cada uno para
TARGET.beta y TARGET.epsil se procede a calcular de la siguiente forma.
Si delta_beta<=-180.0:
Si delta_beta> 180.0:
De lo contrario:
De las ecuaciones anteriores se deduce que las variables delta_beta y delta_epsil significan la
diferencia que existe, en la posición angular, entre la antena y el blanco por cada uno de los
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
43
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
planos, con la finalidad de corregir la posición del objetivo y de poder realizar el fuego lo más
certero posible.
Si f1<=0.0:
Si f1>2250.0:
Si f2<=0.0:
Si (f2>2250.0)
Las variables f1 y f2 corresponden a la posición del blanco por los planos Ф1 y Ф2
respectivamente.
Sus
valores,
en
coordenadas,
se
guardan
en
los
registros
REG16(Target_fai1_data_adr) y REG16(Target_fai2_data_adr).
3.2.1.3 F_222com.BIT.B4==1
El segmento de código y las ecuaciones que se describen a continuación corresponden al proceso
de entrenamiento de la estación S125MIA en tiempo de paz. Dichas ecuaciones deben responder
a la formación de las señales para los blancos imitados.
Si se cumple que F_222com.BIT.B3==1 se asume que el objetivo está fijo y se procede con las
asignaciones del paso uno. De no cumplirse la primera condición el código pasa a comprobar si
F_222com.BIT.B11==1. Las ecuaciones ajustadas a esta condición responden al paso dos para
simular el fuego contra el blanco. Como una última acción a realizar, en caso de no cumplirse
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
44
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
ninguna de las condiciones anteriores, aparece el paso tres. A continuación se describen las
fórmulas contenidas en cada uno de los pasos:
Paso 1 (blanco fijo):
Si F_222com.BIT.B8==0:
De lo contrario:
La variable TARGET.epsiljun identifica al dato que se obtiene como resultado de un conteo de
los impulsos de reloj de 62.5KHz, el cual comienza con la llegada del Blanck ε (comienzo del
paso directo) y termina con la llegada de la marca vertical (MV) por el plano ε. Este número del
conteo es la separación entre el comienzo del barrido y la MV.
Paso 2:
Si se cumple que F_222com.BIT.B11==1:
Si delta_beta<=-180.0:
Si delta_beta> 180.0:
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
De lo contrario:
Si se cumple que F_222com.BIT.B8==0, se deshabilitan los puertos de control:
De lo contrario se habilitan:
Si f1<=0.0:
f1=0.0
Si f2>2250.0:
f2=2250.0
Si f2<=0.0:
f2=0.0
Si f2>2250.0:
f2=2250.0
Paso 3:
45
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
46
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
3.2.1.4 (F_222com.BIT.B4==1 || F_222com.BIT.B9==1)
Al comienzo de este segmento de programa se utiliza el operador lógico ║ (OR lógico) de la
siguiente forma: If(F_222com.BIT.B4==1 || F_222com.BIT.B9==1). Dicho operador permite
comprobar que alguna o ambas de las dos condiciones sean verdaderas, antes de que se
seleccione cierto camino de ejecución. Este enunciado también contiene dos condiciones simples.
La condición F_222com.BIT.B4==1 se evalúa para determinar si la estación S125MIA está en el
modo de entrenamiento, mientras que la condición F_222com.BIT.B9==1 se evalúa para
determinar si se está trabajando con el régimen de control funcional de la ECC. Si cualquiera o
ambas de las condiciones simples son verdaderas se pasará a trabajar con los parámetros que
caracterizan al cohete.
Tabla 3.1 Tabla de verdad correspondiente al operador OR lógico (║).
Expresión1
Expresión2
Expresión1 ║ Expresión2
0
0
0
0
1
1
1
0
1
1
1
1
Para que el cohete imitado describa la misma trayectoria de vuelo que la del cohete real, se debe
realizar el cálculo de la posición espacial de los cohetes imitados, a partir de los mandos que se le
envían a un supuesto cohete real con dichos mandos. Los cálculos deben responder también a la
aerodinámica de vuelo del cohete, que a su vez tiene que ver con el coeficiente transferencial del
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
47
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
mismo. A continuación se describen cada una de las ecuaciones relacionadas con el cálculo de la
posición espacial para cada uno de los cohetes.
Trabajo con el Cohete1:
Paso 1:
Si se cumple que F_222com.BIT.B1==0, entonces:
Donde: ROCKET1.t es la variable que se utiliza para determinar la constante aerodinámica del
cohete (Tv).
De esta manera el programa se asegura que el cohete número uno no ha sido aún activado y por
lo tanto se asigna el valor de 0 a dicha variable. De lo contrario F_222com.BIT.B1 se encuentra
en un nivel alto (==1), y se procede de la siguiente forma:
El operador de asignación (+=) añade el valor de la expresión, a la derecha del operador, al valor
de la variable ROCKET1.t que se encuentra a la izquierda, y almacena el resultado en dicha
variable.
Si ROCKET1.t <5.0 entonces:
De lo contrario:
Donde: ROCKET1.k es la variable que se utiliza para determinar el coeficiente transferencial
para el movimiento del Cohete. De esta forma se puede comprobar que mientras mayor sea la
constante aerodinámica del cohete (ROCKET1.t) menor será el coeficiente transferencial
(ROCKET1.k) que caracteriza al cohete.
Paso 2:
Si se cumple que F_222com.BIT.B5==0 se tiene que:
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
48
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Donde dx es la variable que se emplea para leer y cargar el dato que se encuentra guardado en la
dirección
de
registro
correspondiente
a
data_R1_depsil_adr
y
data_R1_dbeta_adr
respectivamente.
De igual manera ROCKET1.epsil y ROCKET1.beta son las variables que se utilizan para
determinar la posición del cohete, correspondiente al proceso de exploración de la antena, sólo
que la primera es por el plano ε (ángulo de elevación) y la otra es por el plano β (ángulo
horizontal).
Si F_222com.BIT.B5==1:
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
49
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
La variable cntr1 es de tipo int y se maneja dentro del código para guardar el valor que resulta de
aplicar floor. Por su parte, floor es una función concerniente a la biblioteca <math.h> que se
utiliza para redondear a la variable ROCKET1.t al entero más grande no mayor que ROCKET1.t
(ej. Floor (9.2) es 9).
Por otro lado se encuentran las variables denominadas ROCKET1.K1 y ROCKET1.K2 que sirven
para identificar los mandos K1 y K2 respectivamente. Dichos mandos contienen las magnitudes
y el sentido en que debe moverse el artículo en el espacio para disminuir el error lineal entre su
posición calculada y la real.
Paso 2.1:
De las ecuaciones anteriores se deriva que las variables delta_r1_epsil y delta_r1_beta se
identifican como la nueva posición que tiene el cohete por el plano ε (ángulo de elevación) y por
el plano β (ángulo horizontal) respectivamente.
Si se cumple que delta_r1_beta<=-180.0 se tiene que:
Si se cumple que delta_r1_beta> 180.0 se tiene que:
De lo contrario:
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
50
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Si f1r1<=0.0 entonces:
Si f1r1>2250.0 entonces:
Si f2r1<=0.0 entonces:
Si f2r1>2250.0 entonces:
Las variables f1r1 y f2r1 determinan la posición del cohete por los planos Ф1 y Ф2, relativos al
barrido de la antena UV11.
Trabajo con el Cohete2:
Para el trabajo con el Cohete2 se procede de la misma forma que para el Cohete1.
Paso 1:
Si se cumple que F_222com.BIT.B2==0, entonces:
De lo contrario si F_222com.BIT.B2==1, entonces:
Ahora si:
entonces:
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
De lo contrario:
Paso #2:
Si se cumple que F_222com.BIT.B6==0 entonces:
De lo contrario si F_222com.BIT.B6==1 entonces:
51
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Paso 2.1:
Si se cumple que delta_r2_beta<= -180.0 entonces se ejecutará la siguiente acción:
De lo contrario si delta_r2_beta > 180.0 entonces ejecutar:
De lo contrario:
Si se cumple que f1r2<=0.0 entonces:
De lo contrario si f1r2>2250.0:
52
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
53
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
Si se cumple que f2r2<=0.0 entonces:
De lo contrario si f2r2>2250.0:
3.2.2 Void EInt5_ISR(void)
Si se cumple F_222com.BIT.B9==1, se procede a elaborar la distancia inclinada (TARGET.R)
para el momento en que la estación se encuentra en control funcional.
Si F_222com.BIT.B0==0, se asume que el blanco está fijo:
Donde la distancia inclinada desde la estación hasta el punto donde se encuentra el blanco
imitado queda determinada por la variable TARGET.R y toma valor de 32 km.
De lo contrario se asume que el blanco se encuentra en movimiento y con una velocidad de
420m/s. Seguidamente se compara la distancia al punto de encuentro con 5 KM de la siguiente
forma:
Si TARGET.R>5000.0:
Se puede apreciar que si la distancia al punto de encuentro TARGET.R es mayor que 5 Km se
determina la nueva posición del blanco restándole la velocidad que trae este último.
Entrenamiento de la estación:
Si se cumple que F_222com.BIT.B3==1 se asume que el objetivo está fijo y la distancia al punto
de encuentro TARGET.R toma valor de 20Km. Esto quiere decir que se colocó un blanco a esa
distancia.
CAPÍTULO 3. ASIMILACIÓN DE LA FUNCIONALIDAD DEL CÓDIGO FUENTE PRESENTE EN EL
54
COMPONENTE PROGRAMABLE DSP DE LA TARJETA T222
De no cumplirse la primera condición el código pasa a comprobar si F_222com.BIT.B11==1. De
ser verdadera se simula el fuego contra el blanco en movimiento y la nueva distancia al punto de
encuentro queda determinada por:
Como una última acción a realizar en caso de no cumplirse ninguna de las condiciones anteriores,
aparece el paso siguiente:
3.3
Conclusiones del capítulo
El empleo del DSP TMS320C6713PYPA dentro de tarjeta T222 facilita el desarrollo de
algoritmos matemáticos de alta precisión y velocidad que por sus complejidades, no pudieran
desarrollarse con otros procesadores. Estos algoritmos están destinados al direccionamiento de la
rampa de lanzamiento y de la antena, para el cálculo de velocidad, ángulo horizontal, ángulo de
inclinación, parámetro y distancia al punto de encuentro. Otros están relacionados con los
mandos y las señales de dirección correspondientes al disparo y a la ubicación del blanco.
CONCLUSIONES Y RECOMENDACIONES
55
CONCLUSIONES
En el presente trabajo se desarrolló la asimilación del funcionamiento del componente
programable DSP TMS320C6713PYPA de la tarjeta T222, a partir del proceso de ingeniería
inversa a su código fuente no documentado. Durante su realización fue posible arribar a las
siguientes conclusiones:
 La tarjeta T222 como componente de la cabina de mando modernizada, tiene la
importante función de formar las señales de video imitadas correspondientes al objetivo, a
los artículos y la interferencia, para el control funcional de la estación y en el caso de los
entrenamientos a las dotaciones para simular un tiro real.
 Se empleo como herramienta de simulación el software Code Composer Studio, ya que
permitió el análisis del código fuente, evidenciándose su utilidad en la realización de la
ingeniería inversa.
 La ingeniería inversa al software comienza con la comprensión del código fuente, y
mediante la reestructuración del código y la redocumentación se logra preservar las
características externas y la generación de información del sistema existente.
 Se evidenciaron cada uno de los algoritmos matemáticos implementados en dicho
procesador,
quedando
documentada
la
funcionalidad
del
componente
DSP
TMS320C6713 de la tarjeta T222.
 Se logró la asimilación de los cálculos matemáticos referentes al direccionamiento de la
antena, del blanco y del cohete, así como también de los parámetros: ángulo de
inclinación, ángulo horizontal, distancia al punto de encuentro, velocidad, mandos y
señales de dirección presentes en el código del programa principal.
CONCLUSIONES Y RECOMENDACIONES
56
RECOMENDACIONES
Con la intención de seguir perfeccionando el estudio que se ha realizado en este trabajo sobre el
código fuente del DSP TMS320C6713PYPA de la tarjeta T222, se propone:
 A partir de la identificación de los algoritmos implementados, proponer un conjunto de
pruebas de hardware que permitan validar la correspondencia entre los aspectos teóricos
identificados y los resultados prácticos.
 Continuar profundizando en el funcionamiento de los demás componentes de la tarjeta
T222, a través de la ingeniería inversa, para alcanzar un dominio completo del
funcionamiento de la misma.
REFERENCIAS BIBLIOGRÁFICAS
57
REFERENCIAS BIBLIOGRÁFICAS
Ameneyro, A. (2012). Reingeniería para la implementación de un Web Feature Service.
Bertini, G., et al. (2012). “Microprocessori per DSP. Modelli recenti e tools di sviluppo:
alcune applicazioni nel settore telecom.”.
Cubadefensa (2012). "Sitio Web de la defensa de Cuba.". Retrieved 11/01/2014, from
http://www.cubadefensa.cu/.
Damián, M. (2006). ESTUDIO COMPARATIVO DE LOS DSPs DEL MERCADO.
Dpto. Ingeniería de Telecomunicación, Universidad de Jaén.
Fierro, M. A. T. (2007). Desarrollo de tutorial multimedial para el diseño de proyectos
con Code Composer. Escuela de Electricidad y Electrónica. Valdivia Chile,
UNIVERSIDAD AUSTRAL DE CHILE.
García, S. E. (Septiembre de 2009). Introducción a microDSP y familia C67xx. Buenos
Aires.
Instruments, T. (1988) Third Generation TMS320.
Instruments, T. (1990). TMS320 Family. DSP Characteristics.
REFERENCIAS BIBLIOGRÁFICAS
58
Instruments, T. (1992). "TMS320C6713PYPA FLOATING-POINT DIGITAL SIGNAL
PROCESSOR." Retrieved 7/05/2014, from http://www.ti.com
Instruments, T. (2000). TMS320C6000 Programmer´s Guide.
Instruments, T. (2001). ""TMS320C6000 Optimizing Compiler User´s Guide"."
Instruments, T. (2004). "Code Composer Studio v3. 0 Getting Started Guide."
Instruments, T. (November 2005). "TMS320C6713PYPA167 Datasheet ". Retrieved
22/05/2014,
from
http://html.alldatasheet.es/html-
pdf/227395/TI/TMS320C6713PYPA167/486/12/TMS320C6713PYPA167.html.
López, E. (2010). La ingeniería inversa como metodología para potenciar la enseñanza de
la metrología. México
Papamichalis, P. and J. R. Simar (1998). “The TMS320C30 floating-point digital signal
processor” Micro: 13-29.
Pierrat, G. G. (2013). TAREA TÉCNICA PARA LAS TESIS DE LOS CADETES
VINCULADOS A LA TAREA TRIUNFO.
Pierrat, G. G. (2014,a). "Generalidades de la Estación de Conducción de Artículos ECC
S125MIA “Pechora”."
Pierrat, G. G. (2014,b). "Ayuda para la confección de la Tesis."
REFERENCIAS BIBLIOGRÁFICAS
59
Pierrat, G. G. (2014,c). "Antecedentes de la T222."
Pierrat, G. G. (2014,d). "Las señales de entrada y salida a la T222."
Pierrat, G. G. (2014,e). "“SISTEMA DE CÁLCULO DE LAS COORDENADAS
ESPACIALES DEL ARTÍCULO IMITADO”."
Pierrat, G. G. (2014,f). "Información adicional de la T223."
Pressman, R. (2003). "Software Engineering: A Practitioner’s Approach with Bonus
Chapter on Agile Development." McGraw-Hill Science/Engineering/Math. Retrieved
14/11/14, from http://dl.acm.org/citation.cfm?id=995775
SPECTRUM DIGITAL, I. (November 2003). TMS320C6713 DSK Technical Reference:
52.
Torres, R. L. C. (2008). Módulo para el análisis, visualización y caracterización de
señales y sistemas apoyado del DSP TMS320VC5402 Texas Instruments y Matlab
Facultad de Ingeniería Electrónica. Bolivia, Universidad Pontificia Boivariana.
Toscano, F. M. (2013). "Qué es la ingeniería inversa." Retrieved 10/03/14, from
http://boards5.melodysoft.com/uteci_sistemas/que-es-la-ingenieria-inversa-extracto39.html
Vázquez, J. J. D. (2010) Ingeniería Inversa: Metodología y aplicaciones FORO DE
ANÁLISIS DE INVESTIGACIÓN, DESARROLLO Y GESTIÓN TECNOLÓGICA EN
ITESCA 6-10
REFERENCIAS BIBLIOGRÁFICAS
60
ZAÑARTU, M. (Noviembre de 2011). INTRODUCCIÓN AL CODE COMPOSER
STUDIO Y AL DSK TMS320C6713. Valparaíso, UNIVERSIDAD TÉCNICA
FEDERICO SANTA MARÍA: 19.
ANEXOS
61
ANEXOS
Anexo I Señales de entrada y salida a la T222.
Esta tarjeta tiene dos conectores: el Xp1 recibe los voltajes de la fuente de alimentación (+12v,
-12v, +5v y Tierra) y el Xp2 se utiliza para las señales de entrada y salida. Las señales que entran
y salen por el conector Xp2, se muestran en la siguiente figura y se describen de la manera
siguiente:
Videoseñales de salida de la T222 (puntos 24, 12, 25 y 13). Estas son las señales que elabora la
T222 cumpliendo su función en el sistema imitador. Estas señales se envían hacia la T311, donde
ANEXOS
62
se les introduce la atenuación necesaria para los entrenamientos y donde se “rellenan” con
frecuencia intermedia (solo en el caso de las señales de los canales principal y A/F, y la señal de
interferencia imitada), para su entrega al sistema receptor de la estación.
Señales SB (puntos 18, 6, 19, 7, 20, 8, 21, 9, 22, 10, 23 y 11). Estas son las entradas por bus
serie SB1, SB8, SB11, SB14, SB6 y SB16.
Impulso MVε (punto 4). Por este punto llega el impulso de la “marca vertical” por el plano ε
(que representa la directriz del sector de barrido del diagrama direccional de la antena UV10) si
la estación está en régimen de “Localización”.
Impulso MV F1 F2 (punto 15). En caso de que la estación se encuentre en el régimen de
“Acompañamiento”, por este punto llegan los impulsos de la “marca vertical” por los planos
inclinados F1 y F2 (que representan la directriz de los sectores de barrido del diagrama
direccional de la antena UV11 por dichos planos inclinados).
Blanqueo ε (punto 16). Estos son impulsos que se elaboran en el sincronizador (T221) a partir de
los impulsos que vienen desde los emisores que están en los mecanismos de exploración de la
antena UV10. El “Blanqueo ε” es el impulso que permanece en “1” durante el tiempo de paso
inverso del barrido (exploración del diagrama direccional) de la antenaUV10 (en el régimen de
localización). Y por tanto marca el inicio del sector de exploración, por el plano épsilon, de la
antena UV10.
Blanqueos F1 y F2 (puntos 14 y 2). Estos son impulsos que se elaboran en el sincronizador
(T221) a partir de los impulsos que vienen desde los emisores que están en los mecanismos de
exploración de la antena UV11. El “blanqueo F1” y el “blanqueo F2”, son los impulsos que
permanecen en “1” durante el tiempo de paso inverso de los barridos por los planos F1 y F2 de la
antena UV11. Estos se emplean para marcar el inicio de la exploración (inicio del barrido angular
de los monitores) por los planos F1 y F2.
Ro UK (punto 3). Este es un impulso de distancia; es decir, aparece con período igual al de los
impulsos de sondeo de la estación. Este impulso marca la distancia “cero”.
ANEXOS
Anexo II Diagrama en bloques simplificado de C67XX.
Las unidades funcionales L, S y M ejecutan instrucciones de punto flotante.
63
ANEXOS
64
Anexo III Forma de exploración del espacio.
Anexo IV Sistema Entrenador o Imitador UK40.
En el complejo Pechora sin modernizar (el original ruso) el Sistema entrenador o Imitador se
encuentra implementado en un armario; el armario UK40. Este armario recibe señales desde el
ANEXOS
65
Dispositivo de Dirección de las antenas y las Rampas de lanzamiento, para obtener la
información de la posición que tienen las antenas y elaborar las señales del objetivo y de los
artículos relacionadas con el movimiento de las manivelas. También el UK40 recibe los mandos
de dirección desde el Descifrador del DTM, con los cuales se elaboran las trayectorias de vuelo
de los artículos.
La formación de las envolventes de los objetivos y de la interferencia la realiza el bloque UK43;
estas envolventes se convierten en señales de video en el bloque UK42, y se convierten en
radioimpulsos de FI en el bloque UK41. En el UK44 se forma el programa de movimiento de los
objetivos. Por su parte, la señal de los artículos se forma completamente en el bloque UK45.
Anexo V. Modelo electrónico del artículo
Para que el cohete imitado se comporte aerodinámicamente de la misma manera que el cohete
real, debe recibir los mandos de dirección, de la misma forma que los recibe el artículo real, y
ANEXOS
66
convertirlos en una posición real en el espacio. Esto se denomina “modelo electrónico” del
artículo y se realiza según el siguiente esquema.
Descargar