Académique Documents
Professionnel Documents
Culture Documents
Facultad de Ingenierı́a
Tutor
Eduardo Santos . . . . . . . . . . . . . . . . . . . . . . . Universidad de la República
Franco Simini . . . . . . . . . . . . . . . . . . . . . . . . . Universidad de la República
Tribunal
Juan Cardelino . . . . . . . . . . . . . . . . . . . . . . . Universidad de la República
Juan Pablo Oliver. . . . . . . . . . . . . . . . . . . . . Universidad de la República
Washintong Olivera . . . . . . . . . . . . . . . . . . . Universidad de la República
Montevideo
31/07/2015
IMPETOM B - Inyección, adquisición y tratamiento inicial de señales para tomo-
grafı́a torácica por impedancia eléctrica en placa de pruebas Omap-L137, Nicolás
Alfaro, Fernanda Martinucci, Martı́n Arregui.
Henry Ford.
Esta página ha sido intencionalmente dejada en blanco.
Tabla de contenidos
1. Introducción 1
1.1. Objetivo del proyecto global IMPETOM . . . . . . . . . . . . . . . 1
1.2. Objetivo del proyecto IMPETOM-B . . . . . . . . . . . . . . . . . 2
3. Hardware IMPETOM-B 11
3.1. Principales Caracterı́sticas . . . . . . . . . . . . . . . . . . . . . . . 13
3.2. Procesador OMAP-L137 . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3. Codec de Audio AIC3106 . . . . . . . . . . . . . . . . . . . . . . . 14
3.4. Multichannel Audio Serial Port McASP . . . . . . . . . . . . . . . 17
4. Circuito Auxiliar 21
4.1. Fuente de Corriente . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.1. Fuente de corriente tipo Howland . . . . . . . . . . . . . . . 22
4.1.2. Fuente de corriente con amplificador AD844 . . . . . . . . 24
4.2. Fantoma de Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3. Circuito de Conexión y Multiplexado de Electrodos . . . . . . . . . 26
5. Tratamiento de Datos 29
5.1. Análisis Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2. Digitalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6. Software IMPETOM-B 37
6.1. Conceptos Generales . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2. DSP Digital Signal Processor . . . . . . . . . . . . . . . . . . . . . 38
6.3. GPP General Purpouse Processor . . . . . . . . . . . . . . . . . . . 40
7. Resultados 43
7.1. Relevamiento de fuente de corriente - Primera parte . . . . . . . . 43
7.2. Relevamiento de fuente de corriente - Segunda parte . . . . . . . . 49
Tabla de contenidos
9. Tiempos y Costos 61
9.1. Tiempos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
9.2. Planificación vs Real . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9.3. Costos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.3.1. Costo de Desarrollo . . . . . . . . . . . . . . . . . . . . . . 67
9.3.2. Compras . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.3.3. Posibilidades de Comercialización . . . . . . . . . . . . . . . 67
9.4. Recapitulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
B. Software IMPETOM-B 89
B.1. GPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
B.2. DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Referencias 111
iv
Tabla de contenidos
v
Esta página ha sido intencionalmente dejada en blanco.
Capı́tulo 1
Introducción
2
Capı́tulo 2
Una técnica cada vez es más empleada para caracterizar diversos materiales
es la espectroscopia de impedancia eléctrica, que estudia el comportamiento de la
impedancia eléctrica del material en el dominio de la frecuencia. Al igual que otros
cientos de usos, algunas aplicaciones biomédicas (como es el caso de IMPETOM-
B ), también hacen uso de técnicas de medición de propiedades eléctricas de los
materiales mediante estı́mulos de corriente.
Dentro de este capı́tulo, se empieza por la descripción del problema al cual está orien-
tado el desarrollo (Edema de Pulmón), para luego continuar con una breve reseña
de Bioimpedancia (impedancia del cuerpo humano), y finalmente terminar con
los principales conceptos a tener presentes a la hora de hablar de un prototipo
funcional que realice tomografı́as de impedancia eléctrica.
Figura 2.1: A al izquierda (A), imagen tomográfica de pulmón con edema. A la derecha, imagen
tomográfica de pulmón sin edema (B). [3]
Los medicamentos que se pueden recetar abarcan diuréticos, los cuales elimi-
nan el exceso de lı́quido del cuerpo, medicamentos para fortalecer el miocardio,
controlar el ritmo cardı́aco o aliviar la presión sobre el corazón. De todas maneras,
el tratamiento del edema pulmonar casi siempre es en una sala de urgencias de un
hospital, debido a que también suele ser una complicación común de la ventilación
mecánica. Con los métodos tradicionales actuales, es necesario movilizar el pacien-
te hasta una sala de rayos X, para observar el avance del edema en el pulmón, lo
que significa un alto riesgo.
Es por esto último, que una unidad que realice un monitoreo de la evolución del
estado de los pulmones ante este problema, sin que sea invasivo, o de alto riesgo
(movilizamiento del paciente de un CTI), tiene gran potencial para contribuir con
la calidad de atención en hospitales. [6]
2.2. Bioimpedancia
Dado que el objetivo detrás de IMPETOM es la medida de la impedancia del
cuerpo humano (mas particularmente en el tórax, alrededor de los pulmones), es
necesario disponer también de este concepto.
Se sabe que la impedancia del cuerpo humano es función de diversos factores tales
como la tensión aplicada, la frecuencia, la duración del paso de la corriente, la
temperatura, el grado de humedad de la piel, la presión del contacto, la dureza
de la epidermis, entre otros. También depende de las diferentes partes del cuerpo
en la que se mide tal como, la piel, los músculos, la sangre, etc. En una prime-
ra aproximación, todas estas caracterı́sticas pueden ser modeladas conjuntamente
con una impedancia compuesta por elementos resistivos y capacitivos.
Durante el paso de la electricidad, la impedancia de nuestro cuerpo se comporta
como una suma de tres impedancias en serie: impedancia de la piel en la zona de
entrada, la impedancia interna del cuerpo y la impedancia de la piel en la zona de
salida.
4
2.3. Historia del proyecto IMPETOM
Estudios previos [4], demostraron que es posible modelar la impedancia del cuerpo
humano de la siguiente manera:
R0 − Rı́nf
Z = Rı́nf + (2.1)
1 + (jwτZ )α
Como una breve reseña diremos que IMPETOM-I, implementó el software de-
dicado a la reconstrucción de un corte tomográfico a partir de una matriz de
impedancias relevada sobre el paciente. Su presentación, es la de un programa de
software ejecutable sobre un PC que despliega en la pantalla una imagen resultante
de aplicar un algoritmo determinado (elegible entre varios algoritmos de recons-
trucción) sobre la matriz de impedancias relevada sobre el tórax del paciente, que
recibe como dato de entrada en un formato adecuado (formato IMPETOM ). 2.3
5
Capı́tulo 2. Estado del arte
Figura 2.4: Hardware IMPETOM-C. Se pueden observar las entradas paralelas para la conexión
de electrodos (16). [10]
6
2.4. IMPETOM-B dentro de IMPETOM
7
Capı́tulo 2. Estado del arte
Existes otras técnicas, llamada de corriente óptima [14], que inyectan corrientes de
diferentes patrones simultáneamente (por ejemplo frecuencias), lo cual proporciona
información complementaria (sobre todo en lo referente a la componente reactiva
de la mencionada impedancia), mientras que la medida de voltaje es realizada en
los mismos electrodos que inyectan corriente o en un grupo independiente de éstos.
8
2.5. Introducción al Funcionamiento
9
Capı́tulo 2. Estado del arte
cados en forma alternada alrededor del objeto. Avis y Barber [14], han investigado
otras dos configuraciones en que los pares de electrodos de corriente se colocan con
separaciones angulares de 90◦ (configuración cruzada), y 180◦ (configuración po-
lar).
Una vez obtenidas las medidas de voltaje, es necesario realizar un pre-procesamiento
de los datos para obtener la información relevante de la impedancia, o sea, la infor-
mación que permita reconstruir el mapa de conductividad corporal (más adelante
se verá que se trata de la parte real de la misma). Luego de este primer procesa-
miento de datos, los resultados se reciben en otro módulo mediante la algoritmia
necesaria y en un archivo de texto plano (archivo.txt en formato IMPETOM). Re-
levando los conjuntos de medidas con el mismo juego de electrodos y en las mismas
posiciones en el cuerpo, el algoritmo produce imágenes diferenciales consistentes
de la región a ser reconstruida.
10
Capı́tulo 3
Hardware IMPETOM-B
Estos sistemas tienen por objetivo la evaluación o iniciación del ingeniero en el uso
de cierto modelo de DSP y las herramientas desarrolladas, muchas veces con fines
didácticos. La ventaja de utilizar estas tarjetas es la de tener un sistema completo
que contiene el DSP, memoria, demoduladores que incluyen los conversores A/D
y amplificadores de ganancia programable (PGAs), comunicación con la compu-
tadora, puertos para uso general, el circuito para programar el DSP; todo esto ya
probado y dispuesto de la forma más óptima pronto para obtener resultados desde
el momento [13].
Tabla 3.1: Tabla de ventajas y desventajas según el tipo de implementación del sistema. [13]
Capı́tulo 3. Hardware IMPETOM-B
12
3.1. Principales Caracterı́sticas
El núcleo DSP del OMAP-L137 usa arquitectura basada en caches de dos ni-
veles. El nivel 1 se sub-divide a su vez en dos partes, el cache de programa Nivel 1
(L1P) y el cache de datos de Nivel 1 (L1D). El primero es un cache directamente
mapeado en 32KB, mientras que el (L1D) es un cache asociado en conjunto de dos
vı́as, también de 32KB. El cache de nivel 2, es en realidad un cache de programa
nivel 2 (L2P) que consisten en un espacio de memoria de 256KB compartidos entre
programa y datos. Además, este fragmento de memoria puede ser accedido por el
ARM, algo sumamente necesario para la comunicación y trasmisión de los datos
entre el DSP y el ARM.
13
Capı́tulo 3. Hardware IMPETOM-B
Figura 3.3: Diagrama de bloques del sistema de evaluación EVM OMAP-L137. [23]
14
3.3. Codec de Audio AIC3106
Figura 3.4: Esquemático de conexión interna del codec de audio AIC3106. [22]
El DAC de audio estéreo soporta velocidades de muestreo que van desde los 8kHz
hasta los 48kHz, frecuencia que en principio son suficientes para muestrear señales
de hasta 24kHz (frecuencia aproximada a la que se inyectará la corriente, 16KHz
- 5).
Como entradas, el AIC3106 incluye diez pines de audio analógico (los más im-
portantes para el proyecto son: LINE2LP, LINE2LM ; luego se tiene LINE2RP, LI-
NE2RM, LINE1RP, LINE1RM, LINE1LP, LINE1RM, MONO LOP, MONO LOM ),
configurables hasta en cuatro pares diferenciales, más un par de una sola terminal.
Cada una de las terminales se conecta a amplificadores operacionales diferencia-
les (uno por ADC/canal PGA) con la posibilidad de activar sólo un conjunto de
interruptores por amplificador operacional a la vez. Luego, como salida se tienen
las señales DAC L/R (salidas del DAC de audio estéreo), que pueden ser dirigidos
por control de registro basado en los requisitos del sistema.
15
Capı́tulo 3. Hardware IMPETOM-B
Configuración Base
Conexión y Ganancia de los Canales. Se opta por utilizar los canales iz-
quierda y derecha de la entrada line in para realizar las medidas, y el canal
line out como salida para ser utilizado de DDS. Los registros que realizan
las conexiones internas en el codec, ası́ como también, los que configuran
ganancias de las etapas entrada o salida son: 15, 16, 19, 22, 27, 30, 37, 38,
43, 44, 51, 58, 64, 65, 72, 82, 86, 92 y 93.
16
3.4. Multichannel Audio Serial Port McASP
Entre las caracterı́sticas más destacables del McASP se encuentran las siguien-
tes:
Módulos independientes de trasmisión y recepción, con generadores progra-
mables de reloj independientes. Esta flexibilidad permite por ejemplo, recibir
datos a 48kHz y trasmitir a 96kHz.
Hasta 16 pines asignables de dato serial.
Conexión directa con conversores analógico-digital y digital-analógico, códec
de audio, interfaz de recepción de audio digital (DIR), y otros.
Amplia variedad de Inter-IC Sound (I2S) y formatos similares de bit-stream.
Control de errores y recuperación:
Transmitir insuficiencia de datos y excesos del receptor, debido por ejem-
plo, a que el sistema no cumple con requisitos de tiempo.
Sincronismo de trama tardı́a o temprana en modo TDM.
Reloj de alta frecuencia fuera de rango, tanto para trasmisión como
recepción.
En la figura 3.5 se observan los siguientes pines del puerto McASP :
AXR[n]--hasta 16 pines de dato
AHCLKX -- master clock de alta frecuencia de trasmisión
ACLKX -- bit clock de trasmisión.
AFSX -- se~
nal de sincronismo de trama de trasmisión
AHCLKR -- master clock de alta frecuencia de recepcion
ACLKR -- bit clock de recepcion
AFSR -- se~
nal de sincronismo de trama de recepción
AMUTE -- mute output.
17
Capı́tulo 3. Hardware IMPETOM-B
Funcionamiento General
18
3.4. Multichannel Audio Serial Port McASP
Figura 3.6: Diagrama descriptivo del flujo de bits en los serializadores del puerto McASP,
tanto en recepción, como en transmisión. En recepción por ejemplo, los bits provenientes del
codec de audio llegan mediante los pines AXR[n] al registro XRSR. Cuando este registro esta
completo, el dato se pasa al registro RBUF. Por último los datos son procesados en la unidad
de formato (3.8) antes de ser leı́dos por el DSP
. [17]
Figura 3.7: Transmisión de datos en formato TDM sincrónico y 6 canales o slots. Cada slot
soporta una palabra de datos (hasta 16 bits), que se agrupan a su vez en TDM frames según
la cantidad de canales disponibles. [17]
19
Capı́tulo 3. Hardware IMPETOM-B
Figura 3.8: Diagrama de flujo, descriptivo del procesamiento de palabra de datos según la
unidad de formato en recepción. [17]
Ası́ entonces, el dato queda listo para ser leı́do por el DSP en el formato
correcto. La transmisión se realiza de manera inversa, el dato pasa primero por la
unidad de formato y luego es desplazado hacia afuera mediante los serializer.
20
Capı́tulo 4
Circuito Auxiliar
Una de las opciones mas utilizadas son las fuentes de corriente controladas por
voltaje (FCCV, señal de entrada corresponde a voltaje, y la señal de salida es una
corriente). Las FCCV pueden clasificarse en dos categorı́as: aquellas qué tienen
una alta impedancia de salida debido a las propiedades fı́sicas de un dispositivo,
y las que tienen una alta impedancia de salida debido a un sistema realimentado
en lazo cerrado.
Producto de que la construcción de una fuente de corriente que cumpla con todas
las caracterı́sticas deseadas para la implementación de EIT excede los alcances de
este proyecto, y es por si solo un proyecto independiente, en principio se apunta
a recorrer el camino más simple y que cumple los mı́nimos requerimientos según
la documentación consultada [14] [11]. En este sentido, la primer implementación
de fuente de corriente es el modelo Howland.
Capı́tulo 4. Circuito Auxiliar
Z4 1 Z4
IL = V+ ( − ) − Vin ( ) (4.1)
Z1 Z3 Z2 Z1 Z3
Donde se distingue la componente de offset:
Z4 1
V+ ( − ) (4.2)
Z1 Z3 Z2
Mas tarde se mostrará como este punto representa una importante limitante a la
hora de la precisión deseada en las medidas.
22
4.1. Fuente de Corriente
Además de todo lo anterior, la realidad marca que el circuito funciona bien para
corrientes DC, viendo que los problemas aparecen a frecuencias por encima de
esta, de algunos KHz, justo en el rango de trabajo necesario. En este punto, las
capacidades parásitas de las resistencias y capacidades de fuga, empiezan a tener
preponderancia y la impedancia de salida del circuito se degrada a medida que la
frecuencia de la señal de corriente aumenta.
Acompañando los parámetros anteriores, existen otros que marcan la robustez del
sistema. Dado que estos exceden el alcance de este proyecto no se estudiarán en
este documento, aunque se enumeran a continuación:
La ganancia de la fuente
Los puntos anteriores son de singular importancia a la hora de percibir los efec-
tos del uso sobre los pacientes. Recuerde que IMPETOM-B pretende ser usado en
pacientes de CTI de manera frecuente, por lo que debe cumplir con parámetros de
seguridad en todo momento.
23
Capı́tulo 4. Circuito Auxiliar
Desde el principio se hacen notar las diferencias con la fuente Howland, mien-
tras que en esta última se tiene un pobre desempeño para frecuencias por encima
de la DC y valores de offset importantes, la nueva implementación menciona: ”gran
ancho de banda y muy alto slew-rate con una excelente performance de continua.
Su arquitectura de realimentación de corriente resulta en una muy buena perfor-
mance en AC”.
Yendo al detalle constructivo del amplificador, el mismo cuenta con un nodo in-
terno accesible y de alta impedancia (Z en la figura 4.3) para la compensación
externa de frecuencia. El voltaje aplicado a la entrada no inversora de alta impe-
dancia, es copiado hacia la entrada inversora de baja impedancia, mientras que la
corriente de salida del nodo Z (I), es reproducida por los espejos de corriente.
Vi
I= (4.7)
R
”El uso de este circuito integrado soluciona los problemas originados en la
asimetrı́a de los espejos y la inestabilidad térmica, pero aparecen otros errores
debido a la precisión en la ganancia de la primer etapa y su resistencia de salida
no nula Rob ” [10]. 1
La siguiente figura 4.4 muestra un modelo de las fuentes de error en continua y
de ruido para el AD844. La corriente de bias de la entrada inversora IBN , circula a
través de la resistencia de realimentación R1 , mientras que la IBP de la entrada no
1
De acuerdo al fabricante, el voltaje de la entrada no inversora debe mantenerse entre
–1V y +1V para mejores resultados [1].
24
4.2. Fantoma de Pruebas
R1
VO = (IBP RP + VOS + IBN Rin )(1 + )IBN Rin (4.8)
R2
Se puede apreciar que el voltaje DC, es proporcional a la resistencia de reali-
mentación R1 . Las fuentes de ruido pueden ser modeladas en una forma similar a
las corrientes de bias DC, donde cada fuente de ruido es Inn , Inp , Vn , y el ruido
inducido en la salida VON resulta en:
r
R1 2
VON (rms) = ((Inp RP )2 + Vn2 + (1 + ) (Inn R1 ) (4.9)
R2
Resulta entonces, que es posible mantener los valores de voltaje de offset y
de las corrientes de bias dentro de rangos aceptables, ajustando debidamente los
valores de los parámetros Inp , Inn , RP , Vn , R1 , R2 , etc (recuerde que estos son
ajustadas mediante láser (laser trimmed) durante la construcción del integrado).
25
Capı́tulo 4. Circuito Auxiliar
Figura 4.4: Esquemático de modelo de fuentes de error en continua y ruido para el AD844. [10]
donde A es la ganancia de la señal emitida por la salida analógica del codec de audio
(impuesta como señal de sincronismo como se verá mas adelante 5), y ρ el módulo
de la impedancia total del cuerpo humano. Sabiendo el valor de R y C configurados,
se deduce si el valor del voltaje y defasaje obtenidos siguen el comportamiento
esperado, y permite realizar diferentes pruebas para dictaminar que tan precisa
es la medida en cada una de las situaciones propuestas (frecuencia de corriente
inyectada, resistencia del cuerpo humano, capacidad del circuito humano).
26
4.3. Circuito de Conexión y Multiplexado de Electrodos
Para realizar el control del circuito multiplexador, se cuenta con puertos de co-
municación serie (UART o USB), un puerto paralelo (EMIF-A), y puertos de
comunicación RJ-45. Debido a la dificultad y poco tiempo disponible, ası́ como
también que se tenı́a un conocimiento previo, se optó por realizar el control me-
diante el puerto UART.
27
Esta página ha sido intencionalmente dejada en blanco.
Capı́tulo 5
Tratamiento de Datos
Retroproyección
Matriz de Sensibilidad
Newton-Raphson
Los dos primeros son técnicas de un solo paso, es decir, reconstrucción basada
en la linealización del problema inverso obteniendo una solución que corresponde
a la variación de conductividades respecto a una distribución de referencia. A pe-
sar que estos métodos de un solo paso generan una imagen utilizando una única
operación matemática, y por consiguiente son métodos de reconstrucción rápidos
(para generar imágenes dinámicas), la simplicidad de la formulación, hace que la
búsqueda de los coeficientes de la matriz que representa el operador no sea fácil. En
cambio, el método de Newton-Raphson es iterativo. Utiliza operaciones repetitivas
que en cada paso mejoran la imagen. Intenta una reconstrucción de la distribución
de conductividades absoluta teniendo en cuenta la ausencia de linealidad del pro-
blema [13].
I = Acos(wc t) (5.1)
30
5.1. Análisis Teórico
V = ρz Acos(wc t + θ) (5.2)
llegando a la expresión:
A×B
V.V osc = ρz [cos(θ) + cos(2wc t + θ)] (5.5)
2
Como se puede ver, la nueva expresión de la señal tiene dos componentes bien dis-
tintas. La primera es un valor constante correspondiente a una señal de continua,
que es a su vez, proporcional al módulo de la impedancia, más precisamente, la
A×B
proyección de esta sobre el eje real ρz cos(θ) a menos de una constante .
2
Dicho de otra manera, este valor es en realidad la parte real de la impedancia Z
a menos de una constante. El segundo fragmento de la expresión representa una
componente de alterna a alta frecuencia (el doble de la original). Esta última com-
ponente puede ser eliminada fácilmente si se pasa la señal por un filtro LPF de
frecuencia de corte menor que 2wc .
Donde los a y b son los coeficientes del filtro, y el orden, el máximo entre los valores
de M y N, siendo M y N términos que determinan la cantidad de polos y ceros en
la función de transferencia.
31
Capı́tulo 5. Tratamiento de Datos
Esta implementación caracterı́stica del filtro IIR, le permite tener varias ventajas
sobres otros diseños, entre ellas, ir procesando los datos a medida que van llegando
(no es necesario llenar una variable o buffer para luego procesar los datos), si los
datos recolectados son suficientes, el valor de salida del filtro tiende al valor co-
rrespondiente sin importar que la entrada vuelva a ser nula (respuesta al impulso
infinita), y pueden cumplir las mismas exigencias que otros filtros pero con menos
orden de filtro. Estas tres caracterı́sticas representan una ventaja inigualable a la
hora de implementar el filtro, pues representa una menor carga computacional [9].
En lı́neas generales, el sistema debe implementar una transferencia del estilo si-
guiente: 5.1
Figura 5.1: Diagramas de bloques del sistema implementado en software una vez ingresan los
datos y(t).
A×B
V.V oscf iltrada = ρz cos(θ) (5.7)
2
5.2. Digitalización
Como se mencionó en la descripción de la EVM Evaluation Board (capı́tu-
lo EMOmap-L137 ), la misma cuenta con una frecuencia de muestreo máxima de
(48KHz) para cada canal (izquierdo y derecho por ser estero). Según el teorema
de muestreo, para poder reconstruir la señal correctamente con la fs indicada,
se deben tener señales de hasta 24KHz como máximo, lo que ya representa una
limitación bien importante.
32
5.2. Digitalización
vio que la señal de voltaje percibida en los electrodos debe ser multiplicada por
una señal de similares caracterı́sticas, o sea, una sinusoide de igual frecuencia y
fase. Si la señal de entrada a los electrodos es de la forma K1 cos(wc t + φ) y la señal
de sincronismo es K2 cos(wc t + θ), naturalmente de cuentas se llega a:
cos(θ − φ) + cos(2wc t + θ + φ)
Velectrodo .Vsincronismo = K1 K2 [ ] (5.9)
2
En este punto se tiene una señal con componentes de frecuencia 2fc . De no te-
ner las precauciones ya mencionadas, puede que todavı́a se este por encima de
la frecuencia lı́mite si la señal de control emitida estuviese encima de los 12KHz
(2 × 12KHz=24KHz). De todas maneras, la implementación de la rutina de ad-
quisición y procesamiento de muestras, no necesita de la reconstrucción de la señal
en ningún momento, ya que trabaja sólo con la tabla de muestras adquiridas. Es-
to permite alcanzar idealmente los 24KHz aunque se establece una frecuencia de
trabajo de 16KHz.
Las complicaciones con la señal inyectada y capturada no terminan con lo ante-
rior. Debido a que no se dispone de una señal de reloj analógica interna de acceso
fácil y menos aún, controlable digitalmente desde alguno de los dispositivos de la
placa, se debe disponer de una representación digital de la señal, en este caso de
la sinusoide. Esto quiere decir que en realidad se dispone de una tabla de valores
que representan puntos de la sinusoide, y que luego el DAC se encarga de unir de
forma adecuada.
33
Capı́tulo 5. Tratamiento de Datos
Puesto que el DSP trabaja a una velocidad varios ordenes mayor a lo que lo ha-
cen los diferentes periféricos, como por ejemplo DACs y codec de audio, la limitante
en la velocidad con que se fijan los valores de una muestra en la salida analógica
correspondiente, proviene de estos últimos elementos. Ya se mencionó que la fre-
cuencia de muestreo es fs = 48KHz, entonces los diferentes periféricos de la placa
pueden poner como máximo 48 muestras por milisegundo. En otras palabras, esto
hace que si se desean señales de frecuencia de 1KHz, se necesitarán 48 valores
48
(se muestrea 48 veces en 1 milisegundo, 1ms = 48KHz = fs ), para representar
señales de 2KHz, se necesitan entonces 48 valores que representen 2 perı́odos de
la señal (se muestrea 24 veces en 0,5 milisegundos ), y ası́ sucesivamente, hasta
llegar a representar 48 perı́odos de reloj en 1 milisegundo, o lo que es lo mismo
1
(1/48)ms = 48KHz = fs , lo que implicarı́a representar un perı́odo mediante una
muestra, transformándose en un problema a la hora de reconstruir la señal. Nue-
vamente llegamos a los lı́mites indicados en el teorema de muestreo, mostrando
2
que se debe tener al menos dos muestras por perı́odo (1/24)ms = 48KHz = fs para
que la señal sea representable, o sea, una fc máxima de 24KHz.
K
xn = Kcos(wc tn + θ)cos(wc tn ) = [cos(θ) + cos(2wc tn + θ)] (5.11)
2
34
5.2. Digitalización
Figura 5.4: Representación de la salida del filtro de recepción IIR. Se observa como tiende a
un valor constante, en teorı́a el valor de la parte real de la impedancia medida a menos de una
constante.
35
Esta página ha sido intencionalmente dejada en blanco.
Capı́tulo 6
Software IMPETOM-B
La señal de control para la fuente de corriente se crea a través una tabla con
valores que toma una sinusoide, que luego es reconstruida utilizando las propieda-
des del DAC del codec de audio. Recuerde que la cantidad de valores de la tabla
depende de la frecuencia con que se quiere trabajar5. Si la frecuencia de muestreo
del codec está fija en 48KHz y en el caso de IMPETOM-B, se quiere trabajar con
señales de 16KHz (frecuencia suficiente para que el paciente no perciba moles-
tias), en principio, trabajando con 3 muestras por perı́odo resulta en estos 16KHz
(48/3 = 16). Recurriendo al teorema de muestreo, es posible reconstruir señales
con frecuencias máximas de 24 KHz (fs > 2W ).
38
6.2. DSP Digital Signal Processor
Hasta aquı́ sólo se ha resuelto el problema de enviar una señal analógica para
el control de la fuente de corriente, y recibir una señal, también analógica, prove-
niente de los electrodos, pero como se mencionó antes, la señal ya es recibida en
una variable de programa, por lo que ya se está en condiciones de trabajar con
ella.
En este punto es prudente comentar acerca del formato en que el McASP inter-
cambia los datos con los periféricos, léase codec de audio, DACs y ADCs. En el
capı́tulo dirigido al codec, se indica que soporta multi-canales de transmisión y
recepción en formato TDM sincrónico (Time Division Multiplexed sincrónico). Es-
to quiere decir que los bits de datos son agrupados en palabras y luego en slots,
donde cada uno de estos slots hacen referencia a canales 3.7.
Esto significa que a pesar de que la fı́sica de implementación del codec y de los
ADCs permiten capturar muestras de manera instantáneas, son enviadas al núcleo
DSP en instantes diferentes. IMPETOM-B se piensa de manera de utilizar dos
canales, uno para recibir la señal desde los electrodos y otro para relevar la señal
que controla la fuente de corriente, y que luego se utiliza como señal de referencia
del oscilador local (ecuación 5.3). Entonces, las muestras de los dos canales son
enviadas en slots consecutivos, generando un desfasaje de una muestra. Es im-
prescindible entonces tener este punto en mente a la hora de procesar los datos
y actuar en consecuencia, programando para eliminar este desfasaje en la propia
rutina. Más adelante en este documento en el capı́tulo Resultados, se muestra a
partir de pruebas que efectivamente esto ocurre.
El siguiente paso es entonces, el procesamiento de los datos recopilados.
Según lo visto en el capı́tulo Tratamiento de Datos, se debe asegurar una correcta
medida de voltaje desde los electrodos, extrayendo la información que luego per-
mitirá la correcta generación de imágenes de corte tomográfico. Esta información
tiene que ver la parte real de la impedancia como se dijo, y se obtiene a partir de
un batido de frecuencia con una señal de igual frecuencia que la inyectada, o sea,
multiplicación muestra a muestra de la representación digital de la señal recibida
de los electrodos Acos(wc tn + θ), con la señal local que describe una sinusoide de
la forma 5.3 (extraı́da de la señal que controla la fuente de corriente). Luego la
39
Capı́tulo 6. Software IMPETOM-B
Puesto que la multiplexación de los electrodos debe ser implementada por cir-
cuiterı́a externa y controlada digitalmente desde el software, las caracterı́sticas de
la placa, la hacen dificultosa. Se estudió trabajar con el puerto UART y la salida
digital serie que este posee, más un sistema externo que cambia de manera secuen-
cial los 16 electrodos. Esta no es la implementación más óptima, pero el desarrollo
trasciende las fronteras de este proyecto. En consecuencia, se implementa una lógi-
ca sencilla con el objetivo de realizar pruebas de funcionamiento y desempeño.
Finalmente, una vez recolectadas todas las medidas necesarias, el DSP cierra los
periféricos, registros y buses utilizados.
40
6.3. GPP General Purpouse Processor
recursos) y realiza tareas de baja prioridad en tieme-slots que el sistema esté tra-
bajando con recursos disponibles.
Figura 6.2: Mensajeria involucrada en el inicio de sistema y carga de rutinas en DSP [21]
41
Capı́tulo 6. Software IMPETOM-B
Figura 6.3: Flujo de trabajo para la comunicación entre DSP y GPP [21]
Esta subrutina que corren en el GPP se ejecuta una y otra vez hasta comple-
tar las medidas necesarias, creando un archivo *.txt de 16 columnas con 16 valores
cada una, obteniendo entonces el archivo en formato IMPETOM, similar a lo si-
guiente:
0,00000000 1,56001989 ...
0,00000000 0,00000000 ...
1,54458006 0,00000000 ...
1,49876550 1,53950988 ...
1,33448498 1,50723576 ...
1,19887399 1,38189918 ...
1,09887467 1,29799013 ...
0,86511900 1,08127454 ...
0,80065666 0,99865130 ...
0,87334110 0,90603512 ...
1,00098122 0,93534222 ...
1,18741221 1,09228120 ...
1,28875900 1,14102219 ...
1,36335409 1,38007590 ...
1,45099948 1,40033549 ...
1,55844644 1,59212845 ...
42
Capı́tulo 7
Resultados
En la figura 7.1 se observa una foto del circuito implementado, el cual cuenta
con una fuente de corriente de tipo Howland conectada a una carga RC paralelo
a ser usado como fantoma. Las salidas y entradas al circuito se implementaron a
través de conectores de tipo jacks de 3.5mm.
Los resultados obtenidos se pueden observar en las tablas 7.1 7.2 y figuras 7.2
7.3 7.4 7.5 7.6.
Tabla 7.1: Relevamiento de fuente de corriente tipo Howland conectada a carga RC con C =
47nF y R variando en el rango de 150Ω a 5000Ω.
En la tabla 7.2 se compara con los datos obtenidos en osciloscopio y los datos
teóricos de parte real de la carga. Las columnas corresponden a R-fantoma que
es el valor seteado en la resistencia de carga. Parte real teórica, es la parte real
de la carga calculada a partir de los valores nominales de las componentes del
circuito (R,C y W). La columna Parte real estimada en placa, corresponde al valor
de parte real que calcula y entrega el software IMPETOM-B, mientras que la co-
lumna parte real estimada en osciloscopio corresponde a la parte real calculada a
partir de las medidas que se relevaron con el osciloscopio. Luego se observa en las
subsiguientes columnas, las diferencias entre estos datos, a modo de poder realizar
comparaciones.
44
7.1. Relevamiento de fuente de corriente - Primera parte
Figura 7.2: Comparativo de la parte real estimada de la carga a partir de los datos obtenidos
en osciloscopio, y los valores teóricos de la parte real en función de los valores teóricos de la
parte real.
En la gráfica de la figura 7.2 se puede observar como los datos obtenidos en la placa
(amarillo) prácticamente se superponen a los obtenidos en osciloscopio (azul). Por
otra parte los datos teóricos (naranja) se apartan levemente, el apartamiento, se
puede observar, es prácticamente una constante a lo largo de todo el rango.
45
Capı́tulo 7. Resultados
Figura 7.3: Comparativo de la parte real estimada de la carga a partir de los datos obtenidos
en placa, datos obtenidos en osciloscopio, y los valores teóricos de la parte real en función de
R-fantoma.
Figura 7.4: Comparativo del desfase introducido por la carga relevado a partir de los datos
obtenidos en osciloscopio, y los valores teóricos de desfase en función de R-fantoma.
46
7.1. Relevamiento de fuente de corriente - Primera parte
por la placa dado que el software IMPETOM-B solo entrega los valores de parte
real de la carga.
La gráfica de la figura 7.5 permite analizar el apartamiento del dato que en-
tregan ambos equipos, (Osciloscopio y placa IMPETOM-B) del dato teórico en
función del valor de la resistencia R-fantoma. Es valido aclarar que, si bien las
diferencias respecto del valor teórico alcanzan el 80 %, esto no significa que se este
cometiendo dicho error en la medida ya que el valor teórico es simplemente un
valor de referencia y la realidad de los hechos debe ser considerada a partir de
los datos arrojados por el osciloscopio. No obstante el gráfico permite analizar el
comportamiento de ambos instrumentos al aumentar R-fantoma el cual sigue la
misma tendencia. Al observar el extremo en 5000Ω, la diferencia entre las gráficas
es de un 30 %, pero tampoco este valor representa el error, ya que como se dijo
anteriormente el porcentaje se ha calculado en base a un valor de referencia teórico.
47
Capı́tulo 7. Resultados
Figura 7.6: Apartamiento porcentual entre el valor de parte real obtenido a partir de datos de
osciloscopio y datos de placa en función del valor de la resistencia de fantoma.
48
7.2. Relevamiento de fuente de corriente - Segunda parte
49
Capı́tulo 7. Resultados
Tabla 7.4: Datos obtenidos en ensayo con placa de IMPETOM-B, en la tabla se compara con
los datos teóricos de parte real de la carga.
50
7.2. Relevamiento de fuente de corriente - Segunda parte
Figura 7.8: Comparativo de la parte real estimada de la carga a partir de los datos obtenidos
en osciloscopio, valores teóricos, valores de placa, y valores de placa corregidos en función de
los valores teóricos de la parte real.
En la gráfica de la figura 7.8 se observan las similitudes entre los datos obteni-
dos en la placa y el osciloscopio, y los datos de placa corregidos mediante mı́nimos
cuadrados sobre 5 valores representativos y el valor teórico de parte real.
En la gráfica de la figura 7.9 se observan las similitudes entre los datos obteni-
dos en la placa y el osciloscopio, y los datos de placa corregidos mediante mı́nimos
cuadrados sobre 5 valores representativos y el valor teórico de parte real.
51
Capı́tulo 7. Resultados
Figura 7.9: Comparativo de la parte real estimada de la carga a partir de los datos obtenidos
en placa, datos obtenidos en osciloscopio, y los valores teóricos de la parte real en función de
R-fantoma.
Figura 7.10: Comparativo de apartamientos entre valor teórico de parte real y datos obtenidos
en placa, corregidos en placa y datos obtenidos en osciloscopio, en función de R-fantoma.
52
7.2. Relevamiento de fuente de corriente - Segunda parte
Tabla 7.5: Valores obtenidos en placa a partir de sucesivos ensayos sobre una misma carga.
Figura 7.11: Sucesivos ensayos de medida de parte real de una misma carga.
Se observan, en la figura 7.11, parte real estimada en placa y parte real co-
rregida en placa. Se observan los datos corregidos (amarillo) y los datos teóricos
(azul) prácticamente coincidentes en la gráfica, llegando a existir apartamientos
de menos de un 1 % en el peor caso. En naranja, los datos que entrega la placa
sin corregir. Se puede observar que la diferencia entre los datos corregidos y sin
corregir es prácticamente una constante
53
Capı́tulo 7. Resultados
Figura 7.12: Diferencias respecto del valor teórico en sucesivos ensayos de medida de parte
real de una misma carga.
Se observa que es posible lograr una configuración de sistema que tome medidas
y logre calcular, con apartamientos menores a un 2 %, los valores de parte real de
la impedancia.
Continuando con los ensayos se procedió a retirar el capacitor de la carga fan-
toma de manera tal de poder relevar el desempeño del sistema frente a la toma de
valores resistivos en un rango mayor al relevado hasta el momento. Dichos valores
en el entorno de los 560 Ohm, se asemejan mas a la resistividad del cuerpo humano
a través del tórax. Los resultados obtenidos se pueden observar en la tabla 7.6 y
figuras 7.13 7.14.
En la tabla 7.6 se compara con los datos teóricos de parte real de la carga.
En la primer columna se tabula el valor seteado de R-fantoma y en la segunda la
parte real estimada en la placa IMPETOM-B. Luego en la tercer columna se ob-
serva el valor de parte real corregida mediante mı́nimos cuadrados sobre 5 valores
representativos de parte real obtenida y los correspondientes valores teóricos de
parte real. En las 2 ultimas columnas se tabulan las diferencias entre la parte real
corregida y la parte real teórica, y la diferencia entre la parte real sin corregir y la
parte real teórica.
54
7.2. Relevamiento de fuente de corriente - Segunda parte
55
Capı́tulo 7. Resultados
Figura 7.14: Diferencias respecto del valor teórico en ensayos de medida de parte real.
56
7.3. Conclusiones sobre el relevamiento
Luego de tomar las medidas, al realizar la corrección lineal que elimine los
errores sistemáticos en la adquisición, se obtuvieron resultados que se apar-
tan en el peor caso en un 2.16 % del valor teórico de parte real siendo el
promedio de apartamientos un 0.34 % .
57
Esta página ha sido intencionalmente dejada en blanco.
Capı́tulo 8
8.1. Conclusiones
De los resultados obtenidos, es posible decir que el proyecto IMPETOM-B
logra lo siguiente:
60
Capı́tulo 9
Tiempos y Costos
9.1. Tiempos
Existen dos grandes lecturas para la interpretación del tiempo dedicado en el
proyecto, el primero refiere al tiempo dedicado por tarea o actividad, mientras que
la segunda lectura, apunta a la dedicación total en horas semanales. En base a la
primer lectura se tiene lo siguiente: 9.2
Desde el inicio del proyecto, uno de los objetivos internos del grupo era ser
constantes a la hora de la dedicación a la tarea, evitando ası́ calamidades sobre
el final de los plazos y teniendo margen para otras actividades curriculares en el
perı́odo del proyecto (léase parciales, exámenes y descansos). Se puede observar que
durante el transcurso de la actividad, con excepción de los perı́odos de parciales,
exámenes y vacaciones, se ha logrado estar casi en 15 horas semanales percápita.
En el gráfico 9.2 es de mencionar lo siguiente:
62
9.1. Tiempos
Codec de Audio, puertos disponibles), sino que también, aquel estudio que
surgió a medida que transcurrı́a el proyecto, como puede ser: investigación
de reconstrucción de señal, consultas a Textas Instruments, papers referentes
a reconstrucción de la parte real de la impedancia corporal, etc.
63
Capı́tulo 9. Tiempos y Costos
64
9.2. Planificación vs Real
65
Capı́tulo 9. Tiempos y Costos
66
9.3. Costos
9.3. Costos
9.3.1. Costo de Desarrollo
El costo de desarrollo que aquı́ se presenta, es en esencia, el costo de dedica-
ción de los recursos humanos integrantes del proyecto. En el siguiente cuadro se
enumeran las horas de dedicación por tarea o rubro y el costo generado por ello,
fijando la hora-hombre en U$S 25 9.3.
Tabla 9.3: Costos de Desarrollo de IMPETOM-B durante proyecto, disgregado según dedicación
en horas por rubro
9.3.2. Compras
Dado que para el proyecto en cuestión ya se tenia disponible la placa EVM
OMAP-L137, nos permite llegar a muy buenos costos de compra finales. Sin em-
bargo, y para tener una visión mas global del proyecto, se incluyen los costos de
la placa.
67
Capı́tulo 9. Tiempos y Costos
Por otro lado, y en base a los costos generados en este y otros proyectos IMPE-
1
* Suponiendo la compra de insumos especiales en el exterior, como por ejemplo
operacionales AD844
68
9.3. Costos
TOM [8] [10] [7], la principal inversión radica en las horas hombres invertidas en
investigación y desarrollo de las diferentes etapas. A groso modo, y suponiendo
similar tiempo de dedicación para el resto de los proyectos, diremos que el costo
de horas que resta agregar al costo total, puede ascender a otros U$S 100.000,00.
Sumando el resto de los proyectos previos, que sentaron las bases de este desa-
rrollo, los costos finales no son nada menores 9.6.
2 3
Luego del desarrollo, y ya con los procesos pulidos y terciarizados (es posible pedir
a la companı́a de construcción de placas que integre la etapa de multiplexado y
generación de señal de corriente), la configuración y ensamblado de cada una de
las unidades consta de 3 etapas bien metódicas:
Compra de insumos
Carga de configuración: etapa recolectora de datos y software de reconstruc-
ción.
Integración y pruebas
69
Capı́tulo 9. Tiempos y Costos
x 20 horas x 4 = U$S 800,00 por estudiante. Luego multiplicando por los 2 es-
tudiantes, la suma asciende a U$S 800,00 x 2 = U$S 1.600,00, traducido a U$S
200,00 por placa construida en el mes.
9.4. Recapitulo
Es posible separar el análisis anterior en dos pilares, el primero referido a
la planificación realizada en un principio y que tan ajustada fue a lo largo del
perı́odo, y el segundo pilar, apuntado a los costos del proyecto, tanto particular a
este IMPETOM-B, como al resto de los proyectos y en su conjunto.
70
9.4. Recapitulo
Referidos al primero de los pilares indicados, si bien al principio se estuvo algo des-
fasados con la planificación, propio de la inexperiencia en el tema y los problemas
surgidos a medida que transcurrı́a el proyecto, luego se ha ajustado relativamente
bien a los tiempos finales manejados.
71
Esta página ha sido intencionalmente dejada en blanco.
Apéndice A
El hosting del servidor TFTP requerido para descargar a la placa las imáge-
nes del kernel y del file system usando U-Boot.
Hosting del servidor NFS para bootear la EVM como usuario root del file
system.
Aplicación serial para consola terminal que puede correr tanto sobre Micro-
soft Windows como sobre Linux.
74
A.1. Programación del OMAP-L137 EVM
ti cgt c6000 6.1.9 setup linux x86.bin/TI CGT C6000 6.1.9 setup.exe: Am-
bos binarios instalan, donde corresponda, las herramientas de generación de
código TI, necesarias por si no se tienen las últimas versiones de los gene-
radores de código (también se pueden descargar desde la página de Texas
Instruments).
75
Apéndice A. Configuración Inicial del Hardware
NOTA: TI recomienda escoger entre los ARM Linux drivers o los DSP BIOS
Drivers para ejecutar pero no ambos al mismo tiempo.
Debe descargarse también desde dicha fuente el paquete dsp spi flash writer donde
se podrá encontrar el archivo ccsv3.3/debug/spiflash writer arm.out. Este archivo
es el programa que permitirá escribir en la memoria SpiFlash0 los archivos dsp-
spi-ais.bin (ubl del DSP) y ubl-spi.bin (ubl del ARM), que pueden obtenerse en
la carpeta de instalación del PSP (Platform Software Package). Además permi-
tirá cargar también el archivo u-boot.bin el cual, como se explicó anteriormente,
debe ser descargado en su versión mas reciente.
Una vez que se cuenta con los archivos necesarios, se debe conectar la placa me-
diante puerto USB (Embed USB ) con el switch sw2 en 1111x [19] y ejecutar el
software CSSv3.3 configurado adecuadamente como se detalla en la sección corres-
pondiente de este mismo informe.
76
A.2. User Boot Loader (UBL) y Universal BootLoader (u-boot)
En la siguiente figura A.1 se puede observar una ventana de CSSv3.3 con la EVM
conectada y lista para su configuración.
Figura A.1: Vista de CCSv3.3 con EVM conectada. Para conectar la misma, luego de abrir
el CCS, ir a open, open TMS320C673X... o open ARM9... según el núcleo donde se quiera
trabajar
Cargando U-BOOT.
77
Apéndice A. Configuración Inicial del Hardware
Figura A.2: Vista de CCSv3.3 ejecutando spiflash writer arm.out sobre el ARM. Ventana de
diálogo para cargar UBLs de DSP y ARM, y u-boot.
bps: 115200
Data bits: 8
Parity: No
Flow control: No
Stop bits: 1
78
A.3. Configuración U-BOOT - Kernel S.O.
En este punto se tiene la EVM con la mı́nima configuración que permite su funcio-
namiento. Para poder continuar el trabajo es necesario cargar el kernel del sistema
operativo que corre en la sistema.
En este proyecto se utiliza la versión incluida en el kit de MontaVista Linux cuyo
kernel se encuentra bajo el path: REL LSP 02 20 # #/PSP 02 20 # #/bin/ en
la carpeta de instalación del PSP. Se trata del archivo llamado uImage.
NOTA: Como nota importante, para realizar exitosamente los pasos que a conti-
nuación se enumeran, es necesario contar con un servidor tftp bajo la misma red
local que la placa. El objetivo de esto es brindar una manera de transferir el ar-
chivo uImage a la EVM. Una forma de obtener dicho servidor se describe en la
sección referente a la configuración del software en PC.
En primer lugar, y con la placa conectada a la red local mediante un cable UTP
cualquiera a través de uno de sus puestos RJ-45 disponibles, se debe obtener una
IP de esta red. Para ello se ejecuta:
U-Boot>setenv autoload no
U-Boot>dhcp
U-Boot>sf probe 0
79
Apéndice A. Configuración Inicial del Hardware
Luego se setean los parámetros que u-boot usa para bootear desde un sistema
de archivos en la SD Card (root=/dev/mmsblk0p1 ):
U-Boot>saveenv
80
A.4. Herramientas de Programación
La solución que se provee (EVM OMAP-L137 ), combina el poder del DSP con
las capacidad de propósito general de la arquitectura ARM en un solo procesador
integrado DSP+ARM. Este procesador integrado combina networking, administra-
ción de archivos y features de interfaces de usuario (sistema de control y procesos
de aplicaciones) del procesador ARM al correr sistemas operativos (OS) tales como
LinuxTM , Microsoft
, R Windows
, R Embedded CE y AndroidTM , con el poder del
tiempo real y procesamiento intensivo de señales del Core DSP.
Adicionalmente, los diversos periféricos del chip proveen conectividad (EMAC and
USB 2.0), interfaces de memoria de alta velocidad (DDR2 y/o DDR3) y una in-
terfaz bus estandar (PCI Express 2.0, I2C, UART, etc.).
Aclarados los puntos anteriores, es intuitivo el hecho de que los usuarios OMAP-
L137 son capaces de desarrollar programas tanto para el núcleo ARM como para
el DSP, por lo que se necesitarán diferentes plataformas de desarrollo. De todas
maneras, se centra el estudio en el desarrollo de la aplicación en DSP, puesto que
es este núcleo el encargado del procesamiento principal del sistema IMPETOM
(ver siguiente figura A.3).
81
Apéndice A. Configuración Inicial del Hardware
82
A.4. Herramientas de Programación
83
Apéndice A. Configuración Inicial del Hardware
Una vez conectado, hacer click derecho en el dispositivo que indica el DSP
(TMS320...) y seleccionar Open. Se despliega un nuevo cuadro, correspon-
diente al CCStudio v3.3 donde se cargaran luego los programas.
NOTA: Los archivos con terminación gel (General Extension Language) co-
rresponden a un estandar que es usado por el CCS debugger.
Archivo .lib Una vez cargados todos los archivos en el mismo ”Project”,
se procede a ensamblar (opción build) todos sus componentes para luego
cargarlos al chip. P roject, BuilAll. Si la operación transcurrió sin inconve-
nientes se muestra una ventana de logs donde indica errores y advertencias.
Luego de pasar por todos estos pasos, se tiene el archivo final pronto para
cargar en la placa. El proceder es tan sencillo como sigue: Project, Load Project.
Inmediatamente se despliega una ventana donde muestra le evolución del proceso
y con ello el resultado del programa, un string ”hola mundo”, un sonido, etc.
84
A.5. DSPLINK
A.5. DSPLINK
Dada la importancia de este elemento, es necesario dedicarle al menos un sec-
ción diferencial. El DSP/BIOS LINK o DSPLINK es el software base utilizado
para la comunicación entre procesadores. Proporciona una API genérica que per-
mite la conexión entre el GPP y DSP desde las aplicaciones. Esta facilidad elimina
la necesidad de desarrollar tal relación desde cero y permite centrarse solo en el
desarrollo de aplicaciones [20].
$DSPLINK/make/Linux/davinci mvlpro5.0.mk
Dentro de estos archivos los valores que pueden necesitar ser modificados son:
BASE BUILDOS
BASE INSTALL
BASE SABIOS
BASE CGTOOLS
Dentro de estos archivos los valores que pueden necesitar ser modificados son:
BASE PERL
85
Apéndice A. Configuración Inicial del Hardware
Luego se deben realizar dos pasos mas antes de que la configuración este com-
pleta. Los cuales preparan los paquetes XDC de las XDC-tools.
cd $DSPLINK/dsp
$XDC_INSTALL_DIR/xdc clean
$XDC_INSTALL_DIR/xdc .interfaces
cd $DSPLINK/gpp
$(XDC_INSTALL_DIR)/xdc clean
$(XDC_INSTALL_DIR)/xdc .interfaces
A.6. Recapitulo
Transcurrido el pasado capı́tulo, es posible tener una idea de la amplia variedad
de elementos y aplicaciones necesarios para la configuración y desarrollo del siste-
mas embebido en la Evaluation Board (EVM) OMAP-L137. Lo anterior pretende
establecer los paquetes de software y configuraciones mı́nimas necesarias para el
correcto desarrollo de la tarea, sin necesidad de recurrir a la documentación pro-
vista por el fabricante, la cual es dispersa, de difı́cil acceso (sistemas propietarios),
poco intuitiva y poco detallada (caracterı́sticas que nos presentaron una barrera
importante a la hora del desarrollar el proyecto). Haciendo un recapı́tulo de la
sección, y cumplidos todos los requerimientos de sistema y software necesarios, los
pasos a seguir son los siguientes:
86
A.6. Recapitulo
Cargar los User Boot Loader (UBL) en cada núcleo (ARM y DSP) y Uni-
versal BootLoader (u-boot), esenciales para luego cargar las rutinas, O.S., y
demás elementos necesarios (DSP-Link por ejemplo).
87
Esta página ha sido intencionalmente dejada en blanco.
Apéndice B
Software IMPETOM-B
Figura B.1: Comunicación entre DSP y GPP (en memoria compartida) con configuración de
memoria mı́nimo control. Extraı́do de documentación [18]
B.1. GPP
Dentro del core GPP (ARM) se puede encontrar un conjunto de archivos que
componen a la aplicación que se ejecuta en él bajo el sistema operativo Montavista
Linux la cual resulta esencial para la gestión y el control del software de procesa-
miento de señales que corre en DSP y posibilita la independencia del sistema de la
PC. Para la realización de estas aplicaciones se partió del software ejemplo descrito
en la documentación del dsplink user guide [18] y en particular en la aplicación
message.
Del lado del GPP entonces, la aplicación ejemplo consta de 3 archivos funda-
mentales:
90
B.1. GPP
Figura B.2: Comunicación entre DSP y GPP (en memoria compartida) implementando buffer
dinámico. Extraı́do de documentación [18]
91
Apéndice B. Software IMPETOM-B
Figura B.3: Comunicación entre DSP y GPP (en memoria compartida) implementando confi-
guración de buffers dinámicos. Extraı́do de documentación [18]
B.2. DSP
Del lado del DSP se tiene los siguientes tres archivos fuentes [18]:
main.c contiene las llamadas de las funciones del DSP que inicializan el
DSP/Link (DSPLINK init()), el BSL (EVMOMAPL137 init()) y crea la
aplicación tarea (tskMessage) que contiene la siguiente secuencia de aplica-
ciones.
92
B.2. DSP
Figura B.4: Esquemático de flujo de mensajes entre GPP y DSP. Ejemplo de aplicación MES-
SAGE. Extraı́do de la documentación [18]
93
Esta página ha sido intencionalmente dejada en blanco.
Apéndice C
Inicialización
1- Reseteo Global
En primer lugar, se resetea el McASP mediante los registros control global (Global
Control GBLCTL), control global de recepción (Global Reception Control RGBL-
CTL), y control global de trasmisión (Global Transmission Control XGBLCTL).
En segundo lugar, se setean los registros para la recepción mediante los cuales
se configura: mascara de datos, formato del dato, configuración del reloj de alta
frecuencia, reloj de bit, señal de control, número de slots activos y habilitación de
interrupciones.
Registro RMASK -> 0xffffffff; // No padding used
Registro RFMT -> 0x00008078; // MSB 16bit, 1-delay, no pad, CFGBus
Registro AFSRCTL -> 0x00000112; // 2TDM, 1bit Rising, INTERNAL FS, word
Registro ACLKRCTL -> 0x000000AF; // Rising INTERNAL CLK,(from tx side)
Registro AHCLKRCTL -> 0x00000000; // INT CLK (from tx side)
Registro RTDM -> 0x00000003; // Slots 0,1
Registro RINTCTL -> 0x00000000; // Not used
Registro RCLKCHK -> 0x00FF0008; // 255-MAX 0-MIN, div-by-256
3- Trasmisión
Con los siguientes registros se configura para determinar si los pines son de propósi-
to McASP o GPIO, y si son entrada o salida.
96
C.1. Configuración base
C.1.1. Recapitulo
El McASP es capaz de realizar una comunicación controlada y confiable entre
el códec de audio y el DSP, mediante la configuración de una comunicación en
formato TDM, 2 slots, sincronizada y de 16 bits de dato tanto para entrada como
para salida.
97
Esta página ha sido intencionalmente dejada en blanco.
Apéndice D
Para utilizar los canales de entrada analógica del codec de audio como herra-
mienta adquisidora de voltajes, es necesario conocer los registros que permiten su
manipulación. En este capitulo se analizan dichos registros fundamentales partien-
do siempre de la configuración base realizada en el software test (aic3106 test)
incluido con el kit de la placa.
Configuración base
En el anexo Software Test en DSP, se concluye la utilización de la rutina aic3106 loop linein()
como base a partir de la cual se confecciona la función Grabar() del proyecto. La
configuración efectuada en esta rutina (incluido en el kit de software de la EVM
OMAPL137) es la siguiente:
Frecuencia de muestreo
Se opta por utilizar los canales izquierda y derecha de la entrada line in para
realizar las medidas, y el canal headphone como salida para ser utilizado de DDS.
Los registros que realizan las conexiones internas en el codec, ası́ como también,
los que configuran ganancias de las etapas entrada o salida deja se muestran se-
guidamente.
100
Registro 47 -> 0x80 [Routed]
RIGHT_LOP/M Output
Registro 93 -> 0x09 [Mute=OFF][Power=ON]
101
Esta página ha sido intencionalmente dejada en blanco.
Apéndice E
E.1. Generalidades
Los casos que se describen a continuación, corresponden a tests para le codec
de audio AIC3106 (estos pueden ser localizados en el directorio de test del software
kit que incluye el ccStudio en ../boards/EVOMAPL137/DSP/tests). La estructura
de las rutinas de prueba de cada test, siguen la misma lógica de programación:
inicialización, implementación de funciones y liberación de recursos. Esto es pro-
ducto a que se utilizan los mismos periféricos, bus y protocolos. A continuación,
se divide el estudio de los test en estas 3 parte.
Inicialización
Resetar el Codec.
Configuración de PLLs.
Interconexión de rutas.
Clock.
104
E.2. Tests de Codec AIC3106
Es importante señalar además que alguno de los seteos (Codec o McASP) deben
realizarse post cumplir condiciones. Por ejemplo, en algunos casos debe esperarse a
que el bus o registro estén preparado antes de ser configurados while(mcasp-¿regs-
¿XGBLCTL AND GBLCTL XHCLKRST ON) set otro registro.
Implementación
Una vez inicializados los elementos, se tienen los periféricos preparados para su
utilización. Se describen a partir de aquı́, los cuerpo de las funciones que hace
posible la implementación de los tests
loop micIn
Una vez se haya cumplido esta condición, la rutina prosigue hacia un loop que
dura aproximadamente 1 segundo (1000 ms), donde se repite la secuencia de pro-
grama siguiente:
Se espera a que el registro del McASP esté pronto para recibir datos (aguarda
a que el bit 5 del registro SRCTL5 esté en 1).
105
Apéndice E. Software test en DSP - Digital Signal Processor
loop lineIn
Este test implementa una rutina prácticamente igual a la que se tiene para loop micIn,
con la única excepción de que agrega la posibilidad de emitir y recibir la señal
analógica por dos canales, derecho e izquierdo (en estéreo), lineOut y lineIn res-
pectivamente. Nuevamente se espera a que el registro de salida indique que el
sistema está pronto para emitir la señal, se escribe en buffer XBUF5 la muestra
correspondiente. Luego, se vuelve a esperar a que el sistema este listo para recibir
datos, y cumplida la condición, lee de XBUF0 para guardarla en una variable. La
implementación de la rutina es exactamente igual a la vista antes, sólo cambia un
fragmento de la configuración inicial (de la inicialización), que habilitan los nuevos
canales. Para ello, se configuran las ruta y ganancias a través de los registros del
Codec entre el número 17 y 25, para que en lugar de recibir las muestras desde
micIn (que es una entrada mono), se haga desde lineIn que tiene la posibilidad de
recibir por lineIn Rigth y lineIn Left (derecha izquierda respectivamente).
tone lineOut
La rutina tone lineOut simplemente intenta emitir una señal (tono) tanto por el
canal izquierdo ası́ por como el derecho, aprovechando la caracterı́stica que provee
la salida analógica lineOut. Para realizarlo, también implementa la misma lógica
que lo mostrado antes. Se espera hasta tener habilitado el sistema para escribir la
muestra en buffer. Luego, dado que también se utiliza el método de transmisión
TDM, el sistema colocará alternadamente las muestras en uno u otro canal a pesar
de utilizar el mismo buffer.
El cambio de path y ganancias hacia la salida correspondiente, se realiza con el
seteo adecuado de los registros 47, 51, 58, 64, 65, 72, 82, 86, 92 y 93 del McASP.
tone headPhone
106
E.3. Recapitulo
El test para emitir un tono a través de la salida analógica headPhone repite, nue-
vamente, las mismas instrucciones que el test utilizado para emitir el tono a través
de lineOut, y de la misma forma que antes, lo único que se necesita para cambiar
la ruta hacia la salida analógica deseada radica en la reconfiguración adecuada de
los registros correspondiente.
Cierre de Sistema
E.3. Recapitulo
Se han visto como cada uno de los test disponibles permiten emitir señales
analógicas y digitales utilizando las salidas lineOut o headPhone, ası́ como también
grabar en variable temporal, un fragmento de señal recibida desde las entradas
analógicas del codec de audio lineIn o micIn. En este sentido, las caracterı́sticas
que IMPETOM-B determinan las siguientes necesidades:
Canal analógico de salida para emitir una señal de control hacia la fuente
de corriente.
107
Esta página ha sido intencionalmente dejada en blanco.
Apéndice F
Circuito auxiliar
Dicho esto, lo que prosigue a la creación del elemento UART i, es abrir el mis-
mo a través de la función de sistema EVMOMAPL137 UART open( n, velocidad
) donde n es el ID del elemento UART y velocidad a la que se quiere transmitir.
Se espera a que el puerto esté pronto para transmitir los datos, lo que se reali-
za mediante la función proveı́da por el sistema EVMOMAPL137 UART xmtReady(uart i).
Mientras no se cumpla esta condición, se reduce un contador llamado timeout
cuya función es limitar la espera por el puerto a tiempos aceptables. Si por
Apéndice F. Circuito auxiliar
Una vez confirmado que el puerto está listo para transmitir los datos, se in-
gresan los mismos al tx mediante otra función de sistema EVMOMAPL137 UART putChar(uart0,
uart tx[i]). Esta función selecciona el bit i de la variable (en este caso un buf-
fer uart tx) para ser colocado en el puerto uart0.
Una vez se haya pasado exitosamente la espera anterior, se lee el dato co-
rrespondiente EVMOMAPL137 UART getChar( uart0, &uart rx[i]).
110
Referencias
112
Índice de tablas
116
Índice de figuras
B.1. Comunicación entre DSP y GPP (en memoria compartida) con con-
figuración de memoria mı́nimo control. Extraı́do de documentación
[18] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
B.2. Comunicación entre DSP y GPP (en memoria compartida) imple-
mentando buffer dinámico. Extraı́do de documentación [18] . . . . 91
B.3. Comunicación entre DSP y GPP (en memoria compartida) imple-
mentando configuración de buffers dinámicos. Extraı́do de docu-
mentación [18] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
B.4. Esquemático de flujo de mensajes entre GPP y DSP. Ejemplo de
aplicación MESSAGE. Extraı́do de la documentación [18] . . . . . 93
117
Esta es la última página.
Compilado el sábado 12 diciembre, 2015.
http://iie.fing.edu.uy/