tÍtulo del trabajo: diseño y construcción de un sistema …...del programa para el...

84
INFORME TÉCNICO DE LA OPCIÓN CURRICULAR EN LA MODALIDAD DE: PROYECTO DE INVESTIGACIÓN INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE BIOTECNOLOGÍA TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales Para obtener el titulo de Ingeniero Biomédico PRESENTA: Bedolla Pallares Alejandro Sánchez Mora Leticia México, D. F. Mayo 2008 DIRECTOR INTERNO: M.en C. Rigoberto Garibay Sánchez

Upload: others

Post on 20-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

INFORME TÉCNICO DE LA OPCIÓN CURRICULAR EN LA MODALIDAD DE: PROYECTO DE INVESTIGACIÓN

INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE BIOTECNOLOGÍA

TÍTULO DEL TRABAJO:

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales

Para obtener el titulo de Ingeniero Biomédico

PRESENTA: Bedolla Pallares Alejandro

Sánchez Mora Leticia

México, D. F. Mayo 2008

DIRECTOR INTERNO: M.en C. Rigoberto Garibay Sánchez

Page 2: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA DE MONITOREO PARA SATURACIÓN DE OXÍGENO POR MEDIOS DIGITALES

Bedolla Pallares Alejandro, Sánchez Mora Leticia. Dr. Jorge Isaac Chairez Oria.* Tel. (55) 14019307. email: [email protected].

Palabras clave: Saturación de Oxigeno, Oxímetro, Pletismografía, MSP430FG437IPN, Pre-diagnóstico. INTRODUCCIÓN: El oxímetro de pulso es utilizado en el área médica para la medición de dos parámetros importantes: el porcentaje de Saturación de Oxígeno (SaO2) y frecuencia cardiaca en pulsaciones por minuto (ppm). La SaO2, expresa la cantidad de oxihemoglobina que es quien transporta el oxígeno en sangre hacia los tejidos. La medición de la Saturación de Oxigeno es de forma indirecta y no invasiva mediante un sensor, el cual contienen dos emisores a dos longitudes de onda diferentes y un receptor, obteniendo dicha medición en base a espectrofotometría. El sensor óptico determinado la absorción de la sangre a dos longitudes: esto es a 660nm donde la onda es dependiente de la saturación de oxihemoglobina, y a 994nm donde teóricamente la absorción no varía con la SaO2. Esto es debido a que la hemoglobina como sus derivados son compuestos con características de absorción específicas a diferentes longitudes de onda, lo cual se emplea en su identificación y cuantificación. Las medidas cuantitativas en espectrofotometría se basan en las leyes de absorción de Beer-Lambert. METODOLOGÍA: 1) Revisión Bibliográfica, la recopilación de información es necesaria para obtener las bases teóricas del proyecto. 2) La adquisición de habilidades para programación en el MSP430. 3) El procesamiento de señales eléctricas obtenidas mediante la electrónica. 4) El diseño del esquema de hardware alterno al dispositivo microcontrolador es decir el sensado de las señales mediante dispositivos electrónicos para obtener información y procesarla de forma digital. 5) Diseño del esquema en pseudo-código del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno en el MSP430. 7) Diseño de la interfase por puerto serial o USB para el equipo de cómputo. 8) Programación y Diseño de pantallas e interfase gráfica para el desplegado de la señal de saturación de oxígeno. 9) La programación y diseño de la base de datos para resguardo de la información obtenida para cada paciente. 10) Hacer la descripción del sistema difuso en Matlab necesario para el prediagnóstico de trastornos respiratorios. Por último realizar las pruebas correspondientes. RESULTADOSY DISCUSIÓN: Diseño de la interfase por puerto serial para el equipo de cómputo. Es la intercomunicación de la PC y el microcontrolador MSP340 para transmitir y/o recibir información del oxímetro de pulso a la PC por medio del MSP430FG437IPN, se utilizó el puerto serial. Cabe mencionar que el MSP trabaja con niveles de voltaje TTL o menores y el puerto serie de la computadora trabaja con niveles de voltaje de acuerdo al protocolo RS232, por lo que utilizamos el C.I. MAX232A.

Programación y Diseño de pantallas de interfase gráfica para el desplegado de la señal de saturación de oxígeno y diseño de la base de datos en MATLAB. A través del editor gráfico de MATLAB programamos las pantallas para hacer agradable el ambiente de trabajo del usuario. La pantalla principal muestra el porcentaje de SaO2, la frecuencia cardiaca, el pre-diagnóstico, los botones para la gráfica pletismografica y para ingresar a la base de datos y buscar datos del paciente. Descripción del sistema difuso. El pre-diagnóstico se realizó mediante un esquema que describe el estado normal o los trastornos respiratorios del paciente en base al porcentaje de SaO2. CONCLUSIONES Y PERSPECTIVAS.Se configuró en el MSP las diferentes etapas de procesamiento analógica y digital de las señales a adquirir por medio de este microcontrolador. Se diseñó de un sistema difuso que realizará un prediagnóstico del estado de salud del paciente de acuerdo a la descripción que se muestra en la metodología. Se logró la interfaz gráfica como software del proyecto donde llama a cada sub-pantalla correspondiente a las diferentes opciones que presenta nuestra pantalla principal. Se obtuvo el enlace de la base de datos (diseñada en Microsoft Access) con Matlab para acceder a esta desde una plataforma agradable de trabajo. La innovación tecnológica nos llevó a mejorar el desempeño en equipos portátiles de monitoreo de saturación de oxígeno, ya que el consumo reducido de corriente del microcontrolador prolonga la vida útil de la pila. AGRADECIMIENTOS. Agradecemos el gran apoyo recibido de parte de nuestro asesor M.C. Rigoberto Garibay y del Profesor Victor Pascual por su asesoramiento en el proyecto y al profesor Jorge Isaac Chairez Oria por el apoyo económico y el tiempo para darnos las asesorías para el manejo del MSP. BIBLIOGRAFÍA. 1) Deitel H.M., Deitel P.J. Deitel, Como Programar en C++, 2ª Edición, Editorial Prentice Hall, México 1990 2) Stein J.H., 1992, Enermedades Pulmonares, pp 563-573, Tomo 1, Medicina Interna, 3ª Edición, Editorial Salvat, México REFERENCIAS DE INTERNET. 1)Sola A., Chow L. y Rogido M., Oximetría de pulso en la asistencia neonatal en 2005. Revisión de los conocimientos actuales, 2005, http://209.85.173.104/search?q=cache:1F0RalOt0lQJ:www.premat uros.cl/webagosto05/enfermerianeonatal/oximetriapulso/oximetriapulso.htm+Los+coeficientes+de+extinci%C3%B3n+de+las+cuatro+especies+de+hemoglobina.&hl=es&ct=clnk&cd=5&gl=mx.

Page 3: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno
Page 4: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno
Page 5: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

5

Agradecimientos de Leticia Sánchez Mora.

Agradezco primeramente a Dios por la oportunidad que me concede de culminar una

etapa más en mi vida, por que a lo largo de esta carrera su bendición y respaldo fueron

conmigo.

Agradezco a mi Papá Guadalupe por todo el apoyo económico y moral que me brindo

durante mis estudios.

Agradezco a mi Mamá Catalina por que durante este tiempo sus oraciones, su apoyo y

comprensión no me faltaron. Por aquellos consejos que en forma oportuna tuvo a bien

darme.

Agradezco a mis hermanos, a mi cuñada Martha, a mi novio Marcos y a mis sobrinos por

el entusiasmo que me transmitieron en las etapas difíciles de mi carrera, por que siempre

estuvieron conmigo.

Agradezco a mis profesores, compañeros y amigos por el conocimiento transmitido y

por el apoyo brindado momentos difíciles de la carrera.

GRACIAS POR CONFIAR EN MÍ.

Page 6: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

6

ÍNDICE GENERAL

Pág.

RESUMEN DE TRABAJO.................................................................................................. 7 JUSTIFICACIÓN ................................................................................................................ 9 APORTACIONES DE TESIS ........................................................................................... 11 CONTENIDO ................................................................................................................... 12 OBJETIVOS .................................................................................................................... 13 INTRODUCCIÓN ............................................................................................................. 14 LIMITACIONES. .............................................................................................................. 16 CAPITULO 1 1 GENERALIDADES ....................................................................................................... 17

1.1 PRINCIPIOS DE LA OXIMETRÍA DE PULSO ....................................................... 17 1.2 FISIOLOGIA........................................................................................................... 24 1.3 MICROCONTROLADOR MSP430 ......................................................................... 26 1.4 PROGRAMACIÓN EN C ........................................................................................ 30 1.5 LÓGICA DIFUSA: .................................................................................................. 33 1.6 EL PUERTO SERIE RS-232C ............................................................................... 38

CAPITULO 2 METODOLOGÍA .............................................................................................................. 44 CAPITULO 3 RESULTADOS ................................................................................................................ 59 CONCLUSIONES ............................................................................................................ 70 BIBLIOGRAFÍA ................................................................................................................ 71 ANEXOS.............................................................................................................................72

Page 7: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

7

RESUMEN DE TRABAJO

Los grandes avances de la tecnología en la ingeniería electrónica y digital permite una

mayor capacidad para el cuidado y medición de las funciones vitales, una de las

posibilidades de cumplir con esta tarea es contar con un monitoreo completo y eficiente,

en la actualidad, el oxímetro de pulso es una modalidad de monitoreo indispensable, es

un recurso que permite la identificación y corrección tempranas de episodios de

desaturación o hipoxemia inminente ante la presencia de problemas respiratorios y/o un

desequilibrio acido-base; por tal motivo se desarrolló un Oxímetro de pulso con tecnología

MSP, que además de entregar un reporte tanto gráfico como numérico de la Saturación

de Oxigeno (SpO2), entrega un prediagnóstico del estado del paciente el cual esta

basado en un sistema difuso y cuenta con un software, esto es, una serie de programas

que proporciona una interfaz de usuario con la PC para llevar un control del estado clínico

del paciente (historial clínica, estudios clínicos, gráficas de saturación y una base de

datos) con el propósito de llegar a ser una herramienta indispensable en el área de la

salud; por lo que en el presente trabajo se describe el diseño y la construcción de un

Oxímetro de pulso para la monitorización de SpO2.

Para desarrollar el software del prediagnóstico se emplearon técnicas de control difuso al

analizar la gráfica de la SpO2, es decir la relación del porcentaje de saturación (% SaO2),

la presión parcial del Oxigeno (PO2) y las patologías a las que conlleva una alteración de

estos parámetros dando un prediagnóstico con cierto grado de presición del estado del

paciente al personal médico. Lo antes mencionado se basa en el estudio acerca de la

afinidad oxigeno-hemoglobina para formar la oxihemoglobina, que es quien transporta el

oxígeno en sangre hacia los tejidos, si dicha combinación no es la adecuada se

presentan una serie de patologías que se manifiestan primeramente en alteraciones de la

ventilación pulmonar, cabe mencionar que el contenido del oxígeno en la sangre depende

de la PO2 capilar pulmonar producido por el intercambio gaseoso, la cantidad de

hemoglobina presente y el declive de la curva de disociación oxígeno-hemoglobina.

Para la obtención de la gráfica de la señal de la SpO2 se utilizó un sensor el cual consta

de dos emisores a dos longitudes de onda diferentes, roja e infrarroja, y un receptor el

cual por principios de espectrofotometría determina la absorción de la sangre a una cierta

Page 8: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

8

longitud de onda en donde es dependiente de la saturación de oxihemoglobina, (660nm) y

a la otra longitud de onda (940nm) donde teóricamente la absorción no varía con la SpO2.

Al comunicar la circuitería por medio del puerto serial del ordenador y hacer un

procesamiento de la señal mediante software para desplegar los datos en las pantallas de

interfaz se procede a diseñar la interfaz con la base de datos gracias a los comandos que

cuenta Matlab. De esta forma se crea una base de datos anticipadamente en Microsoft

Access que cuente con los mismos campos que desee adquirir a través de mi pantalla de

interfaz gráfico con el usuario. Así podemos tener control de la base de datos desde la

pantalla de comandos y el editor de texto de Matlab.

El despliegue de la gráfica de SpO2, fue a través de un programa ejecutable que nos

permite obtener un vector de puntos con la finalidad de que el médico tratante lleve un

control de las señales monitoreadas a través de un equipo de cómputo portátil para cada

paciente.

En cuanto a la construcción del equipo se implementó la tecnología del microcontrolador

MSP430, por ser un microprocesador con un conjunto reducido de instrucciones para

programarlo, además de otras las ventajas que proporciona entre ellas se encuentran sus

diferentes modos de operación, es decir, el bajo consumo de corriente con el que puede

trabajar el cual se puede seleccionar a través de la programación permitiendo así

construir un equipo portátil de batería de larga duración. La programación para el MSP430

es a través del lenguaje C y ensamblador.

Page 9: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

9

JUSTIFICACIÓN

El uso de la tecnología digital en el campo médico ha revolucionado la manera que

entendemos y aceptamos la práctica de la medicina en nuestros días. Esto se ha

traducido en mejores métodos de diagnóstico y terapia para aumentar o recuperar la

calidad de vida de los pacientes que asisten a un consultorio u hospital. Estas tecnologías

se han caracterizado por la aparición de instrumentos y dispositivos que han llevado al

médico a poder entender los detalles de muchos procesos salud-enfermedad que hasta

hace algunos años eran imposibles de acceder en cualquier manera.

Por otro lado, esta nueva tecnología no solo ha impactado en el desarrollo de equipos con

grandes estructuras o que crean una nueva línea de trabajo en la medicina, sino que

también ha proporcionado una nueva manera de tratar dispositivos bien conocidos de

monitoreo pero proveyendo al médico de más herramientas para resolver el mismo

problema; uno de estos equipos tiene que ver con el monitoreo continuo de la SpO2, mejor

conocido como oxímetro de pulso. Su utilidad radica en detectar un caso de déficit de

oxígeno en la sangre debido a que una persona no puede sobrevivir más de 2 minutos sin

el suministro de oxígeno al cerebro. Los valores típicos de SpO2 se encuentran entre 95%

y 97% con un rango de variación del 2%. Valores por debajo del 90% se asocian con

situaciones patológicas e insuficiencia respiratoria.

Por lo anterior, se ha dispuesto crear un oxímetro basado en la tecnología digital provista

por el microcontrolador MSP430 el cual no solo entregue la medición de la SpO2 a través

de una pantalla LCD sino que a través de un software nos permita llevar un registro de las

señales monitoreadas a través de un equipo de cómputo portátil de cada paciente,

estimando un prediagnóstico del estado del mismo y que además tenga la posibilidad de

llevar un registro que indique el nombre del paciente en una base de datos junto con su

respectiva historia clínica. Con lo antes mencionado el médico tratante podrá llevar un

control adecuado del paciente e ir actualizando los datos clínicos dado la respuesta del

paciente al tratamiento.

Cabe mencionar que la demanda en el mercado de dispositivos basados en batería o de

equipos de bajo consumo de energía es cada vez mayor por lo que en este proyecto se

Page 10: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

10

han aprovechado las características del MSP430, este microcontrolador maneja cinco

modos de operación, de los cuales uno es activo (AM), y 4 de bajo consumo (LPMn). La

diferencia entre cada uno de los modos es la cantidad de periféricos que quedan

apagados, y el tiempo que le lleva al microcontrolador retomar su operación normal, que

de todas formas no excede los 6 µs y la corriente que consume llega a ser de 100 nA en

modo de espera.

Otra razón por la cual se desarrolló este proyecto es porque en el mercado no se cuenta

con un tipo de dispositivo que permita dar un pre-diagnóstico en base a la curva de

pletismografía.

Page 11: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

11

APORTACIONES DE TESIS

La oximetría es un método simple, continuo, no invasivo, para vigilar de manera periférica

el porcentaje de hemoglobina (Hb) saturada con oxígeno (O2), por el paso de longitudes

de onda específicas a través de la sangre (SpO2) y de esta manera medir el grado de

oxigenación de la sangre del paciente. El avance del conocimiento médico, los avances

tecnológicos y la incorporación paulatina de estos avances en los establecimientos de

salud nos conlleva a realizar mejoras en los equipos médicos que son un apoyo para la

monitorización hemodinámica del paciente, por lo que se obtuvo el diseño y construcción

de un sistema de monitoreo para la SpO2 por medios digitales, implementando

tecnologías como son los microcontroladores MSP’s y la programación en C,

ensamblador y Matlab. La integración de estos elementos resulta en una herramienta de

diagnóstico y prediagnóstico en clínicas y hospitales de forma continua y económica.

La demanda en el mercado de dispositivos basados en batería o de consumos de energía

eficientes es cada vez mayor de acuerdo a las patologías detectadas con estos, así la

introducción al mercado se da eficazmente si este prediagnostica un mayor número de

padecimientos o parámetros que permitan el diagnóstico oportuno de otros trastornos

fisiológicos. Dar un prediagnóstico con este equipo portátil permite tener una visión de la

condición respiratoria del paciente para toda aquella persona que no pueda interpretar de

forma inmediata una curva de SpO2 o un parámetro numérico de la misma gracias a la

lógica difusa programada con este equipo, basada en los valores normales de SpO2, la

lógica difusa nos dice si el paciente se encuentra en una condición de hipoxia, hipo o

hiperventilación o una condición normal.

Sólo con un clic selecciona la adquisición de la gráfica de pletismografía con la cual un

médico experimentado interpreta la condición del paciente en base a la SpO2, sístole y

diástole cardiaca desde las pantallas de interfaz.

En un equipo es portátil es requisito indispensable contar con una batería de larga

duración, pero esto no es necesario si el dispositivo digital de adquisición consume tan

poca corriente que una pila de 3V lo puede alimentar por largo tiempo como lo hace el

MSP430.

Page 12: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

12

CONTENIDO

La estructura del trabajo propuesto, consta de 3 partes o capítulos importantes.

La primera consiste de la recopilación y análisis del material bibliográfico, con el cual se

pretende presentar un panorama global de principios básicos de los cuales se partieron

para el desarrollo del proyecto, entre los cuales se encuentran el principio de

funcionamiento del oxímetro de pulso, la bases sobre fisiopatología para obtener la

fusificación que reportará el prediagnóstico, el conocimiento de los diferentes registros

que componen al MSP430 para su programación en el lenguaje C para obtener el

sensado de la SpO2 y el estudio de la paquetería de Matlab para obtener las pantallas de

interfaz gráfico y la base de datos.

La segunda se enfoca al diseño del esquema de hardware y del software, la circuiteria en

conjunto con el microcontrolador se enlazarán para la obtención de la señal de la SpO2 a

través del sensor lo que permite la transferencia de datos desde este hasta el

microcontrolador, la programación del algoritmo para el cálculo del la SpO2 y el diseño del

software para la obtención de las distintas pantalla con las cuales el usuario podrá

interactuar de forma agradable. Después, el diseño de la interfase por puerto serial para

el equipo de cómputo. Un puerto serial es una interfaz de comunicaciones entre

ordenadores y periféricos en donde la información es transmitida bit a bit enviando un solo

bit a la vez. Así mismo la programación y diseño de la interfase gráfica para el desplegado

de la señal de SpO2. Este software entrega las gráficas de los datos adquiridos del

puerto serial.

Por último los resultados obtenidos para cada una de las secciones descritas en la

metodología, lo que incluye los códigos de ejecución y las pruebas obtenidas al enlazar la

circuiteria y el software diseñado. Al final se comenta las conclusiones detalladas sobre el

trabajo desarrollado.

Page 13: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

13

OBJETIVOS

Objetivo General:

Construir un sistema de monitoreo de saturación de oxígeno por medios digitales

utilizando los principios de sistemas dedicados y procesamiento digital de señales.

Objetivos Particulares:

Diseñar el modelo de hardware para construir un sistema de monitoreo de saturación

de oxígeno.

Programar el algoritmo de cálculo de la cantidad de oxígeno disuelto de sangre.

Construir un sistema de interfase para un equipo de cómputo para monitorear la

saturación de oxígeno.

Diseñar una base de datos que registre los datos obtenidos por el modelo de

monitoreo de saturación de oxígeno.

Descripción del sistema difuso para el prediagnóstico de trastornos respiratorios.

Page 14: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

14

INTRODUCCIÓN

El oxímetro de pulso es utilizado en el área médica para la medición de dos parámetros

importantes: el porcentaje de SaO2 y frecuencia cardiaca en pulsaciones por minuto

(ppm). La SpO2, es quien expresa la cantidad de oxihemoglobina como se había

comentado, que es quien transporta el oxígeno en sangre hacia los tejidos. El sistema de

suministro de O2 en el cuerpo lo componen los pulmones y el aparato circulatorio. El

suministro de oxígeno a un tejido particular depende de la cantidad de O2 que entra a los

pulmones, lo adecuado del intercambio gaseoso pulmonar, el riego sanguíneo del tejido y

la capacidad de la sangre para transportar el O2. El flujo sanguíneo depende del grado de

constricción del lecho vascular en el tejido y del gasto cardiaco. La concentración de

oxígeno en la sangre esta determinada por la cantidad de O2 disuelto, la cifra de

hemoglobina de la sangre y la afinidad de la hemoglobina por el O2.

Al medir la saturación de oxígeno estamos midiendo la cantidad de oxígeno que se

encuentra combinado con la hemoglobina, cada molécula de hemoglobina tiene cuatro

enlaces disponibles a realizar con el oxígeno, por lo que el porcentaje de estos enlaces

disponibles y los que verdaderamente se encuentran combinados con moléculas de

oxígeno reportan el tanto por ciento de SaO2. Es por eso que esta medida es una medida

relativa y no absoluta ya que no indica la cantidad de oxígeno en sangre que llega a los

tejidos, sino, que relación hay entre la cantidad de hemoglobina presente y la cantidad de

hemoglobina combinada con oxigeno (oxihemoglobina).

La utilidad del Oxímetro de Pulso radica en las áreas de unidades de cuidados intensivos

(UCI's), en el áreas de urgencias, medicina interna, unidad de cuidados intensivos

neonatales y en las salas de cirugía dado que, como ya mencionamos, el cerebro no

puede estar más de 2 minutos sin recibir oxígeno.

La medición de la Saturación de Oxigeno es de forma indirecta y no invasiva mediante un

sensor, el cual contienen dos emisores a dos longitudes de onda diferentes y un

receptor, como se muestra en la figura 0, obteniendo dicha medición en base a

espectrofotometría. El sensor óptico está determinado porque la absorción de la sangre a

una cierta longitud de onda en donde es dependiente de la saturación de oxihemoglobina,

(660nm) y a la otra longitud de onda donde teóricamente la absorción no varía con la

Page 15: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

15

SaO2 si no con la cantidad de sangre varía con el pulso. Esto es debido a que la

hemoglobina como sus derivados son compuestos con características de absorción

específicas a diferentes longitudes de onda, lo cual se emplea en su identificación y

cuantificación. Las medidas cuantitativas en espectrofotometría se basan en las leyes de

absorción.

Figura 1. Estructura interna del sensor

Page 16: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

Diseño y Construcción de un Sistema de Monitoreo para Saturación de Oxígeno por Medios Digitales.

16

LIMITACIONES.

El funcionamiento de los oxímetros de pulso depende de una pulsación arterial

perceptible. Una disminución significativa de la pulsación vascular periférica puede

producir una señal demasiado pequeña como para ser procesada fiablemente por el

oxímetro. La pulsación periférica puede ser pequeña en casos de hipotensión (baja

presión del pulso), vasoconstricción, hipotermia (temperatura corporal baja), bypass

cardiopulmonar, o infarto cardiaco. La vasoconstricción puede parar completamente el

flujo del dedo haciendo que el tejido consuma lentamente el O2 en el lecho arterial, sin

eliminar la señal pulsátil en las arteriolas, y de alguna manera provoca la pulsación de la

sangre venosa. En estos casos los pulsioxímetros pueden infravalorar la saturación. En

pacientes con bajas concentraciones de hemoglobina (anemias), para saturaciones bajas,

los oxímetros de pulso dan valores de SpO2 mucho mas bajos.

De todas las dishemoglobinas (variedad de hemoglobinas combinadas con determinados

gases) que pueden estar presentes, la carboxihemoglobina es la más peligrosa y común,

ya que provoca alteraciones en las medidas de los oxímetros de pulso. La

carboxihemoglobina se origina como resultado de la inhalación de inclusive pequeñas

cantidades de monóxido de carbono, por lo que no es adecuado utilizar los oxímetros de

pulso en pacientes que probablemente hayan inhalado este gas. La carboxihemoglobina

(HbCO) absorbe muy poco en la zona infrarroja (940 nm), mientras que en la zona del rojo

(660 nm) absorbe tanto como la oxihemoglobina (hemoglobina oxigenada, HbO2), y por

ello la HbCO se comporta como la HbO2 a 660 nm (940nm).

Page 17: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Principios de Oximetría de Pulso

17

1 GENERALIDADES

1.1 PRINCIPIOS DE LA OXIMETRÍA DE PULSO El oxímetro de pulso se basa en dos principios físicos:

1. Primero, la absorción de la luz por la hemoglobina oxigenada que es diferente de la

absorción por la hemoglobina reducida y esto puede ser diferenciado por un oxímetro

con dos longitudes de onda diferentes (espectrofotometría).

2. El volumen de la sangre arterial en el tejido (y, por lo tanto, la absorción de luz por

parte de dicha sangre) cambia durante el pulso (pletismografía).

Un pulsioxímetro determina la SaO2 mediante el paso de luz roja e infrarroja hacia un

lecho arteriolar y la medición de los cambios en la absorción de luz durante el ciclo

pulsátil. Debido a que la oxihemoglobina y la desoxihemoglobina difieren en la absorción

de luz, la cantidad de luz roja e infrarroja que absorbe la sangre se relaciona con la

saturación de oxígeno de la hemoglobina. Para identificar la SaO2 de la Hb arterial, se

utiliza la naturaleza pulsátil del flujo arterial. Durante la sístole, un nuevo pulso de sangre

arterial ingresa al lecho vascular, y el volumen de sangre y la absorción de luz aumentan.

Durante la diástole, el volumen de sangre y la absorción de luz alcanzan su punto más

bajo. El pulsioxímetro basa sus mediciones de SaO2 en la diferencia entre la absorción

máxima y mínima (mediciones durante la sístole y la diástole). Al hacerlo, se concentra en

la absorción de luz por parte de la sangre arterial pulsátil, eliminando los efectos de los

absorbentes que no son pulsátiles, como el tejido, los huesos y la sangre venosa. Ver

figura 2.

Figura 2. Movimiento estático y dinámico del lecho ungueal.

Page 18: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Principios de Oximetría de Pulso

18

En estos dos principios se ha apoyado la técnica moderna para obtener el oxímetro de

pulso actual. Como se mencionó anteriormente la reacción del O2 con la Hb aumenta

enormemente la transmisión de la luz roja a través de soluciones conteniendo Hb y por

tanto, de la sangre, mientras que a nivel del infrarrojo el efecto del O2 es opuesto, es

decir, hace la sangre más opaca. Con las otras longitudes de onda no hay cambios en la

absorción de la luz.

Espectrofotometría.

Para vigilar de manera periférica el porcentaje de Hb saturada con O2, por el paso de

longitudes de onda específicas a través de la sangre (SaO2). Se basa en la ley de

Lambert-Beer-Bouguer.

Ley de Beer-Lambert.

El principio en el que se funda la determinación de la SaO2, con el oxímetro de pulso, es

la ley de Beer. Todas las técnicas de oximetría se basan en análisis espectrofotométricos

que miden las porciones de luz transmitida y absorbida por la Hb, combinado con el

principio de la pletismografía.

Las sustancias químicas son capaces de absorber luz (o radiación electromagnética) de

determinadas longitudes de onda. Cuando un haz de luz monocromática (de una sola

longitud de onda) incide sobre una solución de una sustancia que se absorbe, la

intensidad de la luz transmitida (la que atraviesa la solución) es menor que la incidente.

Así pues, la transmitancia (T) de una solución se define como la fracción incidente de luz

transmitida por la solución.

Se expresa en porcentaje:

Io

IT = Ec. 1

Donde:

I = Intensidad de luz después del paso a través de una muestra (transmitida).

Io = Intensidad de luz inicial (incidente).

Page 19: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Principios de Oximetría de Pulso

19

La absorbancia es el logaritmo decimal del inverso de la transmitancia. La ecuación es la

siguiente:

−=

−=

Io

IA

TA

*log

*10log

10

Ec. 2

La fracción de luz absorbida en una longitud de onda específica, se denomina coeficiente

de extinción (E). La absorbancia de una sustancia en solución depende del espesor de la

muestra, de la concentración del compuesto absorbente y de la naturaleza química de

éste. Esto se expresa mediante la ley de Lambert-Beer,

Ley de Beer: La absorbancia de una radiación monocromática es directamente

proporcional al espesor de la radiación a través de la solución y a la concentración de la

especie absorbente que se encuentra en solución:

c*b*a A = Ec. 3

Donde:

A = absorbancia

a = Absorción

b = Distancia a la cual la luz es transmitida a través la solución (longitud de la trayectoria)

c = Concentración del soluto

Esta ley se aplica a sustancias que absorben energía radiante y relaciona la

concentración de un soluto en solución con la intensidad de la luz transmitida a través de

la solución.

El coeficiente de extinción (É) cuantifica la tendencia de un soluto dado a absorber la luz y

es una constante conocida para un soluto específico a una longitud de onda dada. Si un

soluto cuyo É es conocida, se encuentra disuelto en una cubeta de dimensiones

conocidas, su concentración podrá ser calculada con la ecuación 4 midiendo las

intensidades de la luz incidental y la transmitida. En un sistema de un solo soluto, la

absorción "a" es simplemente el producto de la longitud de trayectoria (D) por la

concentración (C) y por el coeficiente de extinción (É).

Page 20: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Principios de Oximetría de Pulso

20

É××= CDa Ec.4

Si existen múltiples solutos, "a" es la suma de expresiones similares para cada soluto, por

ejemplo:

)É*É*(* 2211 CCDa += Ec. 5

En el caso de dos solutos. Los coeficientes de extinción de las cuatro especies de Hb en

los rangos de longitud de onda del rojo y del infrarrojo se pueden observar en la figura 3.

Figura 3. Los coeficientes de extinción de las cuatro especies de hemoglobina.

Hemos dicho que el oxímetro de pulso mide la luz roja e infrarroja transmitida a través del

lecho tisular, usando efectivamente el dedo como una cubeta que contiene Hb. Además

de la Hb, hay otros numerosos absorbentes de la luz a lo largo de su trayectoria, tales

como la piel, tejidos blandos y los capilares sanguíneos.

Para entender como el oxímetro de pulso resuelve este problema podemos observar la

figura 4.

Page 21: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Principios de Oximetría de Pulso

21

Figura 4. Atenuación de los medios absorbentes en el tejido.

La figura 4 ilustra esquemáticamente la serie de absorbentes en una muestra de tejido

vivo. En la parte superior vemos el componente pulsátil, que corresponde a la pulsación

de la sangre arterial. La base representa la absorción del lecho tisular, incluidos la sangre

venosa, capilares sanguíneos y la sangre arterial no pulsátil. La expansión pulsátil del

lecho arteriolar produce un aumento de la longitud de trayectoria, lo que redunda en un

aumento de la absorción.

Todos los oxímetros de pulso asumen que la única absorción pulsátil entre la fuente de

luz y el fotodetector es la de la sangre arterial. Para determinar la saturación funcional, los

oxímetros de pulso corrientes utilizan dos longitudes de onda:

)(940

)(600

IRnm

rojonm

Para determinar la relativa contribución de la oxihemoglobina y de la desoxihemoglobina.

Las mediciones entregan las absorciones máximas y mínimas a 660 y a 940nm.

Obteniéndose así cuatro valores separadamente. La relación entre las absorciones

determina la SaO2 y se calcula de la siguiente forma:

940) a mínimaión 940/absorc a máxima (absorción

660) a mínimaión 660/absorc a máxima (absorción R =

Ec. 6

Page 22: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Principios de Oximetría de Pulso

22

Saturación de la hemoglobina y transporte de oxígeno.

El oxímetro de pulso entrega una estimación no invasiva de la saturación de la Hb,

variable que está directamente relacionada al contenido de O2 de la sangre arterial. Dos

definiciones de la saturación de la Hb son usadas corrientemente.

La antigua definición, conocida como saturación funcional o SaO2, relaciona las

concentraciones de oxihemoglobina (O2Hb) y hemoglobina desoxigenada (habitualmente

llamada "reducida") (RHb) de la manera siguiente:

%100*2

22

RHbHbO

HbOSaO

+= Ec. 7

Tipos adicionales de Hb están a menudo presentes en la sangre del adulto, la

carboxihemoglobina (COHb) y la metahemoglobina (MetHb). Esto nos lleva a la definición

de saturación fraccional de la Hb, u O2Hb%, como la relación de la oxihemoglobina con la

concentración total de todas las hemoglobinas presentes:

%100*2

22

MetHbCOHbRHbHbO

HbOHbO

+++= Ec. 8

La saturación fraccional de la Hb es llamada también fracción de oxihemoglobina u

oxihemoglobina porcentual. La saturación fraccional de la hemoglobina arterial se

relaciona con el contenido arterial de O2, CaO2, mediante la siguiente fórmula:

( )22

2 003.0100

%37.1 PaO

HbOHbCaO ∗+

∗∗= Ec. 9

Donde:

Hb es la concentración total de la hemoglobina en g/dl

PaO2 es presión arterial de oxígeno en mm Hg.

El primer término en esta ecuación representa el O2 unido a la Hb, el cual bajo

condiciones normales (Hb = 15 g/dl; O2Hb% = 98) es igual a 20 ml de oxígeno por 100 ml

Page 23: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Principios de Oximetría de Pulso

23

de sangre. El segundo término representa el Oxígeno disuelto en el plasma, que es igual

a 0.3 ml/100 ml, para una PaO2 de 100 mm Hg.

El O2 disuelto en el plasma normalmente no juega ningún rol en el transporte de O2. Esta

ecuación muestra que el contenido arterial de oxígeno es directamente proporcional a la

hemoglobina total (Hb) y a la saturación fraccional (O2Hb). La O2Hb% y la PaO2 se

relacionan mediante la curva de disociación de la oxihemoglobina (figura 5).

Figura 5. Curva de disociación de la oxihemoglobina.

La pletismografía.

La pletismografía incluye aquellas técnicas que miden cambios de volumen como

consecuencia de variaciones del flujo sanguíneo.

Principios Físicos: Detecta el flujo de sangre cutáneo y traduce sus pulsaciones. Consiste

en la emisión de luz infrarroja desde un diodo emisor y un fotodetector adyacente que

recibe la luz infrarroja reflejada. A medida que aumenta el flujo de sangre cutáneo

aumenta la cantidad de luz reflejada. De esta manera obtenemos una medida cualitativa

del flujo sanguíneo cutáneo. Se utiliza preferentemente en la medición de la presión

digital.

Page 24: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Fisiología

24

1.2 FISIOLOGIA

La dinámica de la reacción de la Hb con el O2 la hace un transportador de O2

particularmente adecuado. La Hb es una proteína constituída por 4 subunidades cada una

con una molécula hem unida a una cadena polipeptídica. El hem es un complejo

compuesto de una porfirina y un átomo de íon ferroso. Cada uno de los 4 átomos de

hierro puede combinar, reversiblemente, una molécula de O2. El hierro permanece en

estado ferroso, de manera que la reacción es una oxigenación:

84264

64244

44224

2424

OHbOOHb

OHbOOHb

OHbOOHb

OHbOHb

⇔+

⇔+

⇔+

⇔+

La reacción es rápida, requiriendo menos de 0.01s. La desoxigenación (reducción de la

Hb4O8 también es muy rápida.

La estructura cuaternaria de la Hb determina su afinidad por el O2 cambiando la relación

de sus 4 cadenas peptídicas componentes, la molécula fomenta la captación de O2 o su

suministro. El movimiento de las cadenas esta asociado con un cambio en la posición de

las moléculas hem, lo cual supone un estado de relajamiento o estado R, que favorece el

enlace del O2 , o un estado tenso o estado T que disminuye el enlace O2.

Cuando la Hb capta una pequena cantidad de O2 se favorece el estado R y se facilita una

captación adicional de O2. Esta es la razón por la cual la curva de la disociación de la

oxihemoglibina, curva que relaciona el porcentaje de SaO2 en la Hb y por lo tanto su

poder de transportación con la PaO2 tiene una forma sigmoide característica (figura 6). La

combinación del primer hem en la molécula de Hb con el oxígeno incrementa la afinidad

del segundo hem por el O2 y la oxigencaión del segundo aumenta la afinidad del tercer

hem etc., de manera que la afinidad de la Hb para la cuarta molécula de O2 es muchas

veces mayor que la primera. Cuando la Hb capta O2 las dos cadenas β se acercan;

cuando el camino es cedido se apartan. Este desplazamiento es esencial para que ocurra

el cambio en la afinidad por el O2.

Page 25: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Fisiología

25

Cuando la sangre se equilibra con 100% de O2 la Hb se satura 100%. Caundo esta

completamente saturada cada gramo de Hb contiene 1.34ml de O2. En la sangre normal

la concentración de Hb es cerca de 15mg/100ml, por lo tanto 100ml de sangre contiene

2.1ml e O2 unido a la Hb cuando esta se encuentra saturada al 100%.

In vivo la Hb esta cerca del 97.5% saturada como O2 al final de los capilares pulmonares

(PaO2 = 97mmHg). Debido a uma ligera mezcla com sangre venosa que no pasa por los

pulmones la Hb solo se encuentra 97% saturada em la sangre arterial general. Por lo

tanto la sangre arterial contiene un total de caso 19.8ml de O2 por 100ml.

En base curva de disociación de la hemoglobina (figura6). Podemos observar que

cuando la Pa O2 baja de 60 mmHg la cantidad contenida por la sangre se reduce

considerablemente, sin embargo, cuando la presión parcial está por encima de dicha cifra

sólo se consigue pequeños incrementos del contenido de O2. Como medida de esta

afinidad se utiliza la denominada P50 o cifra de Pa O2 necesaria para saturar la

hemoglobina en un 50%. Si la curva se desplaza hacia la derecha, es decir, si la P50

aumenta, la afinidad de la hemoglobina para el oxígeno disminuye. El fenómeno contrario

se produce si la curva de disociación se desplaza hacia la izquierda (P50 disminuye). La

disminución del pH plasmático o el aumento de la PaCO2, de la concentración

intraeritrocitaria de 2,3 difosfoglicerato (2,3-DPG) o de la temperatura provocan un

incremento de la P50, con lo que disminuye la afinidad de la hemoglobina por el oxígeno y

se facilita su liberación a los tejidos. La alcalosis, hipocapnia, hipotermia y/o disminución

del 2,3-DPG tiene un efecto contrario.

Figura 6. Curva de Disociación Hb/O2

Page 26: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Descripción del MSP 430

26

1.3 MICROCONTROLADOR MSP430

Al diseñar sistemas basados en un microcontrolador habitualmente es necesario

interconectar diversos componentes, por lo que es necesario conocer las técnicas

utilizadas, los protocolos y estándares utilizados por los distintos fabricantes y por las

instituciones que rigen a la industria.

Los MSP son microcontroladores de 16 bits de muy bajo consumo de energía (desde

pocos µA hasta algunos mA), dependiendo del modo de bajo consumo que el diseñador

elija, además cuentan con conversores análogo a digital y comparadores para señales

analógicas. El trabajo con este microcontrolador se facilita por su capacidad de utilizar un

emulador en línea con una interfaz JTAG, esto permite descargar código a su memoria

Flash, leer y escribir el estado de la memoria RAM y sus registros, y ejecutar el código

paso a paso desde una interfaz gráfica. Otra ventaja de este microcontrolador es que

debido a su amplia utilización existen variadas herramientas de software para trabajar con

él, algunas incluso de libre distribución como el GNU C Compiler, IAR.

La demanda en el mercado de dispositivos basados en batería o de consumos de energía

eficientes es cada vez mayor. La selección de un dispositivo adecuado para este tipo de

aplicaciones puede ser la diferencia entre un producto exitoso o uno muy costoso de

introducir y mantener.

La arquitectura del MSP corresponde a un modelo Von-Neumann en el que tanto la

memoria RAM y ROM comparten un solo mapa de memoria de hasta 64KB. Posee un

sistema de reloj particularmente flexible que posee 3 osciladores independientes,

pensados para ahorrar energía. Además incorpora una serie de periféricos mapeados a

memoria, tales como: 3 temporizadores, 8 canales de conversores análogo a digital, dos

puertos seriales sincrónicos o asincrónicos de comunicación, un módulo de multiplicación

por hardware, un comparador de niveles analógicos, un módulo controlador de memoria

Flash que permite que el dispositivo se reprograme a si mismo, o guarde información en

un espacio de memoria no volátil.

Page 27: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Descripción del MSP 430

27

Las interrupciones en el microcontrolador pueden ser de tres tipos, de reset,

enmascarables y no enmascarables. La diferencia entre estas últimas es que las

enmascarables se pueden habilitar o deshabilitar individualmente o mediante el flag de

habilitación general de interrupciones, en tanto las no enmascarables sólo se pueden

habilitar o deshabilitar individualmente, el flag de habilitación general no afecta su

comportamiento.

Los puertos de entrada y salida digital.

El microcontrolador MSP430F437 tiene 6 puertos de 8 bits de entrada y salida, cuyos

terminales se encuentran multiplexados con otros periféricos como se puede ver en la

Figura 7.

Figura 7. Designación de pines del microcontrolador.

Cada bit del puerto se puede manejar en forma independiente. El control y acceso a los

puertos se realiza mediante 4 registros por cada uno de los n puertos, los que almacenan

los datos de entrada (PnIN), de salida (PnOUT), la dirección de entrada o salida (PnDIR) y

la función como puerto de entrada y salida o como el periférico correspondiente (PnSEL).

Cuando un bit se ocupa para controlar un periférico no se configura automáticamente

como de entrada o salida, sino que es trabajo del programador seleccionar el sentido

correcto.

Page 28: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Descripción del MSP 430

28

El módulo de reloj.

El módulo de reloj del microcontrolador tiene tres fuentes de señal de reloj para alimentar

otras tres señales que sincronizan la CPU y los periféricos. Las fuentes de reloj son las

siguientes:

• Un reloj que puede funcionar con cristales o resonadores cerámicos de baja frecuencia o

de alta frecuencia (LFXTCLK). El modo se selecciona por software.

• Un reloj de alta frecuencia que ocupa cristales o resonadores cerámicos de alta

frecuencia (XT2CLK).

• Un oscilador interno de características RC controlado digitalmente mediante registros de

control (DCOCLK).

Con estas fuentes el módulo de reloj genera las siguientes tres señales:

• Reloj maestro (MCLK): que alimenta la CPU y el sistema y se puede generar a partir de

la señal de baja frecuencia, la de alta frecuencia o el oscilador digital; que pueden

dividirse por un factor de 1, 2, 4 u 8.

• Reloj de sub sistema (SMCLK): que alimenta a los periféricos seleccionados por

software. Se puede generar a partir de la señal de baja frecuencia, la de alta frecuencia o

el oscilador digital; que pueden dividirse por un factor de 1, 2, 4 u 8.

• Reloj auxiliar (ACLK): que alimenta a los periféricos seleccionados por software. Se

genera a partir de la señal de baja frecuencia dividida por un factor de 1, 2, 4 u 8.

Esta flexibilidad en el sistema de reloj está especialmente indicada para ahorrar energía,

ya que se puede ocupar un cristal de baja frecuencia, por ejemplo 32 KHz, para los

periféricos, mientras la CPU se opera mediante el oscilador interno a una frecuencia que

puede ir de los 800 KHz a los 8 MHz, dependiendo de la configuración y características

del dispositivo en particular. Además para contrarrestar el efecto de corrimiento de

frecuencia del oscilador interno se puede corregir periódicamente con la señal más

estable proveniente del oscilador de baja frecuencia controlado por cristal.

Page 29: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Descripción del MSP 430

29

Modos de bajo consumo.

La familia de microcontroladores MSP430 tiene 5 modos de operación, uno activo (AM), y

4 de bajo consumo (LPMn) que se seleccionan escribiendo ciertos bits del registro de

estado (SR). La diferencia entre cada uno de los modos es la cantidad de periféricos que

quedan apagados, y el tiempo que le lleva al microcontrolador retomar su operación

normal, que de todas formas no excede los 6 µs.

En cuanto al consumo el modo 3 en el que se detiene la CPU pero se mantiene en

función un reloj de baja frecuencia para mantener un reloj de tiempo real, el consumo es

de alrededor de 2 µA. En el modo 4, en que se detiene toda actividad pero se mantiene el

estado de la memoria RAM el consumo es de tan sólo 0,2 µA. Para obtener el mejor

rendimiento en sistemas portátiles el microcontrolador es llevado al modo 3 y mediante

interrupciones generadas por uno de los temporizadores se activa momentáneamente la

CPU para realizar las operaciones del programa, luego se vuelve a llevar al modo de bajo

consumo.

Los temporizadores.

Existen tres temporizadores disponibles en el microcontrolador MSP430F437, uno que

realiza la función de perro guardián (watchdog). Un temporizador/contador que cuenta con

3 registros de captura o comparación y otro que cuenta con 7 registros de captura o

comparación.

Conversores analógicos a digital.

El microcontrolador contiene un comparador de voltaje analógico. Una de las

características distintivas de la familia de microcontroladores es la incorporación de

conversores análogo a digital. El MSP430F349 tiene un conversor de 12 bits con una tasa

de muestreo de casi 200 mil muestras por segundo, el inicio de la conversión se puede

realizar por software o por señales provenientes de los temporizadores; el término de la

conversión puede generar interrupciones para alertar al procesador; la referencia positiva

se puede seleccionar entre una señal externa o interna fija de 1.5 V ó 2.5 V; la referencia

negativa se puede seleccionar entre una señal externa o la tensión de tierra negativa.

Para la programación de los diferentes registros con los que cuenta el MSP430 y que son

útiles para el proyecto se realizó en lenguaje C.

Page 30: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Lenguaje C

30

1.4 PROGRAMACIÓN EN C

C es un lenguaje de programación de propósito general. Todo puede programarse con el,

desde sistemas operativos y compiladores hasta aplicaciones de bases de datos y

procesadores de texto, etc. Es cierto que un listado completo de un programa en C para

gestión de bases de datos (por poner un ejemplo) puede requerir varios miles de líneas de

código, y que su equivalente en Visual Basic sólo requiere unos pocos cientos. Pero

detrás de cada línea de estos compiladores de alto nivel hay cientos de líneas de código

en C, la mayor parte de estos compiladores están respaldados por enormes librerías

escritas en C.

Una de las propiedades de C es la reutilización del código en forma de librerías de

usuario. Después de un tiempo trabajando, todos los programadores desarrollan sus

propias librerías para aquellas cosas que hacen frecuentemente. Además, los programas

escritos en C tienen otras ventajas sobre el resto. Con la excepción del ensamblador,

generan los programas más compactos y rápidos. El código es transportable, es decir, un

programa ANSI en C podrá ejecutarse en cualquier máquina y bajo cualquier sistema

operativo. Y si es necesario, proporcionan un acceso a bajo nivel de hardware sólo

igualado por el ensamblador.

Otra ventaja importante, C tiene más de 30 años de vida y no parece que su uso se

debilite demasiado. No se trata de un lenguaje de moda, y probablemente le quede aún

mucha vida por delante. Sólo hay que pensar que sistemas operativos como Linux, Unix o

incluso Windows se escriben casi por completo en C. Por último, existen varios

compiladores de C gratuitos, o bajo la norma GNU, así como cientos de librerías de todo

propósito.

Fichero fuente y programa o código fuente:

El programa C se escribe con la ayuda de un editor de textos del mismo modo que

cualquier texto corriente. Los ficheros que contienen programas en C en forma de texto se

conocen como ficheros fuente, y el texto del programa que contiene se conoce como

programa fuente.

Page 31: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Lenguaje C

31

Ficheros objeto, código objeto y compiladores:

Los programas fuente no pueden ejecutarse. Son ficheros de texto, pensados para que

los comprendan los seres humanos, pero incomprensibles para los ordenadores. Para

conseguir un programa ejecutable hay que seguir algunos pasos. El primero es compilar o

traducir el programa fuente a su código objeto equivalente. Este es el trabajo que hacen

los compiladores de C. Consiste en obtener un fichero equivalente a nuestro programa

fuente comprensible para el ordenador, este fichero se conoce como fichero objeto, y su

contenido como código objeto. Los compiladores son programas que leen un fichero de

texto que contiene el programa fuente y generan un fichero que contiene el código objeto.

El código objeto no tiene ningún significado para los seres humanos, al menos no

directamente. Además es diferente para cada ordenador y para cada sistema operativo.

Por lo tanto existen diferentes compiladores para diferentes sistemas operativos y para

cada tipo de ordenador.

Librerías:

En los compiladores de C se incluyen ciertos ficheros llamados librerías. Las librerías

contienen el código objeto de muchos programas que permiten hacer cosas comunes,

como leer el teclado, escribir en la pantalla, manejar números, realizar funciones

matemáticas, etc. Las librerías están clasificadas por el tipo de trabajos que hacen, hay

librerías de entrada y salida, matemáticas, de manejo de memoria, de manejo de textos,

etc. Hay un conjunto de librerías muy especiales, que se incluyen con todos los

compiladores de C. Son las librerías ANSI o estándar y no estándar, y dentro de estas las

hay públicas y comerciales.

Ficheros ejecutables y enlazadores:

Cuando obtenemos el fichero objeto, aún no hemos terminado el proceso. El fichero

objeto, a pesar de ser comprensible para el ordenador, no puede ser ejecutado. Hay

varias razones para eso:

1. Nuestros programas usaran, en general, funciones que estarán incluidas en

librerías externas, ya sean ANSI o no. Es necesario combinar nuestro fichero

objeto con esas librerías para obtener un ejecutable.

Page 32: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Lenguaje C

32

2. Muy a menudo, nuestros programas estarán compuestos por varios ficheros

fuente, y de cada uno de ellos se obtendrá un fichero objeto. Es necesario unir

todos los ficheros objeto, más las librerías en un único fichero ejecutable.

3. Hay que dar ciertas instrucciones al ordenador para que cargue en memoria el

programa y los datos, y para que organice la memoria de modo que se disponga

de una pila de tamaño adecuado, etc. La pila es una zona de memoria que se usa

para que el programa intercambie datos con otros programas o con otras partes

del propio programa. Existe un programa que hace todas estas cosas, se trata del

"link", o enlazador. El enlazador toma todos los ficheros objeto que componen

nuestro programa, los combina con los ficheros de librería que sea necesario y

crea un fichero ejecutable. Una vez terminada la fase de enlazado, ya podremos

ejecutar nuestro programa.

Page 33: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Lógica Difusa

33

1.5 LÓGICA DIFUSA:

La lógica difusa se aplica a conceptos que pueden tener un valor cualquiera de veracidad

dentro de un conjunto de valores que oscilan entre dos extremos, la verdad absoluta y la

falsedad total. La lógica difusa permite tratar información imprecisa como la estatura

media o temperatura baja en términos de conjuntos borrosos que se combinan en reglas

para definir acciones como son si es muy frío, calienta mucho. De esta manera el control

basado en lógica difusa combina variables de entrada, definidas en términos de conjuntos

difusos por medio de grupos de reglas que producen uno o varios valores de salida.

La Lógica Difusa actualmente está relacionada y fundamentada en la teoría de los

Conjuntos Difusos. Según esta teoría, el grado de pertenencia de un elemento a un

conjunto va a venir determinado por una función de pertenencia, que puede tomar todos

los valores reales comprendidos en el intervalo [0,1]. La representación de la función de

pertenencia de un elemento a un Conjunto Difuso se representa según la figura 8.

Figura 8. Ejemplo de una función de pertenencia a un Conjunto Difuso.

Así, en la Lógica Difusa hay muchas maneras de definir la implicación. Se puede elegir

una "función (matemática) de implicación" distinta en cada caso para representar a la

implicación.

La última característica de los sistemas lógicos es el procedimiento de razonamiento, que

permite inferir resultados lógicos a partir de una serie de antecedentes. Generalmente, el

razonamiento lógico se basa en silogismos, en los que los antecedentes son por un lado

Page 34: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Lógica Difusa

34

las proposiciones condicionales (nuestras reglas), y las observaciones presentes por otro

(serán las premisas de cada regla).

Los esquemas de razonamiento utilizados son "esquemas de razonamiento aproximado",

que intentan reproducir los esquemas mentales del cerebro humano en el proceso de

razonamiento. Estos esquemas consistirán en una generalización de los esquemas

básicos de inferencia en Lógica Binaria (silogismo clásico).

Tan importante será la selección de un esquema de razonamiento como su

representación material, ya que el objetivo final es poder desarrollar un procedimiento

analítico concreto para el diseño de controladores difusos y la toma de decisiones en

general.

Una vez que dispongamos de representaciones analíticas de cada uno de los elementos

lógicos que acabamos de enumerar, estaremos en disposición de desarrollar formalmente

un controlador "heurístico" que nos permita inferir el control adecuado de un determinado

proceso en función de un conjunto de reglas "lingüísticas", definidas de antemano tras la

observación de la salida y normas de funcionamiento de éste.

Conjuntos Difusos: Lógica Difusa.

Los conjuntos clásicos se definen mediante un predicado que da lugar a una clara división

del Universo de Discurso X en los valores "Verdadero" y "Falso". Sin embargo, el

razonamiento humano utiliza frecuentemente predicados que no se pueden reducir a este

tipo de división: son los denominados predicados vagos.

Hay que considerar que la pertenencia o no pertenencia de un elemento x al conjunto A

no es absoluta sino gradual. En definitiva, definiremos A como un Conjunto Difuso. Su

función de pertenencia ya no adoptará valores en el conjunto discreto 0,1 (lógica

booleana), sino en el intervalo cerrado [0,1]. En conclusión podemos observar que los

Conjuntos Difusos son una generalización de los conjuntos clásicos.

Page 35: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Lógica Difusa

35

Mediante notación matemática se define un Conjunto Difuso B como:

B = ( x , m B( x ) ) / x S X

m B: X® [0,1]

La función de pertenencia se establece de una manera arbitraria, lo cual es uno de los

aspectos más flexibles de los Conjuntos Difusos.

Para operar en la práctica con los Conjuntos Difusos se suelen emplear funciones de

pertenencia del tipo representado en la figura 9:

Figura 9. Tipos de funciones de pertenencia.

En la figura anterior se pueden observar dos tipos de funciones de pertenencia de todos

los posibles: el tipo triangular, que puede ser un caso concreto del trapezoidal en el que

los dos valores centrales son iguales, y el de forma de campana gaussiana.

Tómese ahora el Universo de Discurso de la edad. El Conjunto Difuso "Joven" representa

el grado de pertenencia respecto al parámetro juventud que tendrían los individuos de

cada edad. Es decir, el conjunto expresa la posibilidad de que un individuo sea

considerado joven. Un Conjunto Difuso podría ser considerado como una distribución de

posibilidad, que es diferente a una distribución de probabilidad.

Se puede observar que los Conjuntos Difusos de la figura 10 se superponen, por lo que

un individuo xl podría tener distintos grados de pertenencia en dos conjuntos al mismo

tiempo: "Joven" y "Maduro". Esto indica que posee cualidades asociadas con ambos

conjuntos. El grado de pertenencia de x en A, como ya se ha señalado anteriormente, se

Page 36: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Lógica Difusa

36

representa por m A(x). El conjunto difuso A es la unión de los grados de pertenencia para

todos los puntos en el universo de discurso X, que también puede expresarse como:

( )∫=χ

χ

χµAA

Bajo la notación de los conjuntos difusos, ( )χ

χµA es un elemento del conjunto A. La

operación òx representa la unión de los elementos difusos ( )χ

χµA . Los universos de

discurso con elementos discretos utilizan los símbolos "+" y "S " para representar la

operación unión.

Figura 10. Ejemplo de Conjuntos Difusos en el universo de la edad.

Tómese un individuo x cuya edad sea de 20 años. Como se puede observar en la figura

10, pertenece al conjunto difuso "Joven" y al conjunto difuso "Maduro". Se puede observar

que posee un grado de pertenencia ( )χµAde 0.6 para el conjunto difuso "Joven" y un

grado de 0.4 para el conjunto difuso "Maduro"; también posee un grado de 0 para "Viejo".

De este ejemplo se puede deducir que un elemento puede pertenecer a varios conjuntos

difusos a la vez aunque con distinto grado. Así, nuestro individuo x tiene un grado de

pertenencia mayor al conjunto "Joven " que al conjunto "Maduro"(0.6 > 0.4), pero no se

puede decir, tratándose de conjuntos difusos, que x es joven o que x es maduro de

manera rotunda.

Page 37: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Lógica Difusa

37

Variables Lingüísticas

Una Variable Lingüística es aquella variable cuyos valores son palabras o sentencias que

van a enmarcarse en un lenguaje predeterminado. Para estas variables lingüísticas se

utilizará un nombre y un valor lingüístico sobre un universo de discurso. Además, podrán

dar lugar a sentencias generadas por reglas sintácticas, a las que se les podrá dar un

significado mediante distintas reglas semánticas.

Los conjuntos difusos pueden utilizarse para representar expresiones tales como:

o x es PEQUEÑO.

o La velocidad es RÁPIDA.

o El ganso es CLARO.

Las expresiones anteriores pueden dar lugar a expresiones lingüísticas más complejas

como:

o x no es PEQUEÑO.

o La velocidad es RÁPIDA pero no muy RÁPIDA.

o El ganso es CLARO y muy ALEGRE.

Así, se pueden ir complicando las expresiones. Por ejemplo, la expresión "x no es

PEQUEÑO" puede calcularse a partir de la original calculando el complemento de la

siguiente forma:

µ_no_PEQUEÑA (x) = 1- µ_PEQUEÑO (x)

Tratando de esta forma los distintos modificadores lingüísticos (muy, poco, rápido, lento...)

pueden ir calculándose todas las expresiones anteriores. Para nuestro caso la lógica

difusa nos permite obtener un prediagnóstico del paciente.

Page 38: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Puerto Serie RS-232

38

1.6 EL PUERTO SERIE RS-232C

Los datos lógicos en los ordenadores están representados por bits (binary digits). El bit es

una construcción intelectual, representada en el ordenador por un voltaje determinado.

Cuando los bits deben enviarse dentro del propio ordenador o hacia el exterior, se

transmiten a través de cables como cualquier voltaje. Los bits se agrupan en unidades

determinadas que proporcionan un esquema lógico mayor. Por ejemplo, un byte (octeto)

está formado por una serie de ocho bits. Estos ocho bits pueden ser unos o ceros

indistintamente, son 28=256 combinaciones posibles.

En 1969 la EIA (Asociación de Industrias Electrónicas), conjuntamente con los

Laboratorios Bell y los fabricantes de equipos de comunicaciones, formularon el EIA RS-

232-C. El propósito inicial fue la conexión entre un Equipo Terminal de Datos (DTE, Data

Terminal Equipment) y un Equipo de Comunicación de Datos (DCE, Data

Communications Equipment), empleando un intercambio de datos binarios en serie

[Campbell 1988].

Actualmente, la conexión RS-232-C es el medio principal mediante el cual se puede

conectar equipos auxiliares a los ordenadores personales, a pesar de que este modelo

fue proyectado para resolver únicamente el problema de conexión entre módems (DCE) y

ordenadores (DTE). La mayoría de dificultades con este modelo provienen de su

utilización para tareas diferentes para las que fue diseñado.

El documento que establecía el estándar constaba de cuatro secciones:

• Características de la señal eléctrica. Definición de los voltajes que representan los

ceros y unos lógicos.

• Características mecánicas de la conexión. Establece que el DTE dispondrá de un

conector macho y el DCE un conector hembra. También se especifican la

asignación de números a las patillas. El tipo y las medidas del conector son

establecidas por la organización internacional de estándares (ISO). Los más

utilizados son los de 9 pines (DB-9) y los de 25 (DB-25).

Page 39: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Puerto Serie RS-232

39

• Descripción funcional de los circuitos de intercambio. En esta sección del

documento se define y da nombre a las señales que se utilizarán.

• Interfaces para configuraciones seleccionadas de sistemas de comunicación. Son

ejemplos de tipos comunes de conexión entre ordenador y módem.

Los tres circuitos principales utilizados para la comunicación son los siguientes:

• Línea 2 (TXD). Salida de datos del DTE.

• Línea 3 (RXD). Entrada de datos al DTE.

• Línea 7 (común). Circuito común, referencia para determinar la polaridad y voltaje

de las otras líneas.

El término salida se refiere a la transferencia de datos desde un ordenador a un

dispositivo externo. Recíprocamente, la transferencia de datos desde un dispositivo

externo al ordenador se conoce como entrada. Estos procesos reciben el nombre

genérico de entrada/salida (E/S). Hay que considerar el sentido físico correspondiente a

los conceptos de entrada y salida. La salida de datos se realiza cambiando la diferencia

de potencial entre la línea 2 y la 7.

Si disponemos de dos cables conectados respectivamente a las patillas 2 y 7 del

conector, esta diferencia de potencial se transmitirá a largo de ellos, ya que se trata de

materiales conductores. La entrada de datos corresponde al proceso inverso, generación

por una fuente externa de una serie de diferencias de potencial y detección de dichas

diferencias entre las patillas 3 y 7 del conector.

Los voltajes correspondientes a los niveles lógicos existentes en la conexión RS232 se

esquematizan en la figura 11.

Page 40: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Puerto Serie RS-232

40

Fig. 11. Definición de los voltajes de salida y entrada que representan los

niveles lógicos en el RS-232-C.

El puerto serie RS-232C, presente en todos los ordenadores actuales, es la forma mas

comúnmente usada para realizar transmisiones de datos entre ordenadores.

El RS-232C consiste en un conector tipo DB-25 de 25 pines, aunque es normal encontrar

la versión de 9 pines DB-9 (figura 12), mas barato e incluso mas extendido para cierto tipo

de periféricos (como el ratón serie del PC). En cualquier caso, los PCs no suelen emplear

más de 9 pines en el conector DB-25.

Las señales con las que trabaja este puerto serie son digitales, de +12V (0 lógico) y -12V

(1 lógico), para la entrada y salida de datos, y a la inversa en las señales de control. El

estado de reposo en la entrada y salida de datos es -12V.

Dependiendo de la velocidad de transmisión empleada, es posible tener cables de hasta

15 metros.

Cada pin puede ser de entrada o de salida, teniendo una función específica cada uno de

ellos. Las más importantes son:

Page 41: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Puerto Serie RS-232

41

Pin Función

TXD (Transmitir Datos)

RXD (Recibir Datos)

DTR (Terminal de Datos Listo)

DSR (Equipo de Datos Listo)

RTS (Solicitud de Envío)

CTS (Libre para Envío)

DCD (Detección de Portadora)

Las señales TXD, DTR y RTS son de salida, mientras que RXD, DSR, CTS y DCD son de

entrada. La masa de referencia para todas las señales es SG (Tierra de Señal).

Finalmente, existen otras señales como RI (Indicador de Llamada), y otras poco comunes

que no se explican en este documento por rebasar el alcance del mismo.

Numero de Pin Señal Descripción E/S

En DB-25 En DB-9

1 1 - Masa chasis -

2 3 TxD Transmit Data S

3 2 RxD Receive Data E

4 7 RTS Request To Send S

5 8 CTS Clear To Send E

6 6 DSR Data Set Ready E

7 5 SG Signal Ground -

8 1 CD/DCD (Data) Carrier Detect E

15 - TxC(*) Transmit Clock S

17 - RxC(*) Receive Clock E

20 4 DTR Data Terminal Ready S

22 9 RI Ring Indicator E

24 - RTxC(*) Transmit/Receive Clock S

(*) = Normalmente no conectados en el DB-25

Page 42: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Puerto Serie RS-232

42

Conector DB 9

Figura 12. Conector DB 9

El puerto serie en el PC

El ordenador controla el puerto serie mediante un circuito integrado específico, llamado

UART (Transmisor-Receptor-Asíncrono Universal).

Para controlar al puerto serie, la CPU emplea direcciones de puertos de E/S y líneas de

interrupción (IRQ). Mediante los puertos de E/S se pueden intercambiar datos, mientras

que las IRQ producen una interrupción para indicar a la CPU que ha ocurrido un evento

(por ejemplo, que ha llegado un dato, o que ha cambiado el estado de algunas señales de

entrada). La CPU debe responder a estas interrupciones lo mas rápido posible, para que

de tiempo a recoger el dato antes de que el siguiente lo sobrescriba.

El RS-232 puede transmitir los datos en grupos de 5, 6, 7 u 8 bits, a unas velocidades

determinadas (normalmente, 9600 bits por segundo o más). Después de la transmisión de

los datos, le sigue un bit opcional de paridad (indica si el número de bits transmitidos es

par o impar, para detectar fallos), y después 1 o 2 bits de Stop. Normalmente, el protocolo

utilizado ser 8N1 (que significa, 8 bits de datos, sin paridad y con 1 bit de Stop).

Una vez que ha comenzado la transmisión de un dato, los bits tienen que llegar uno

detrás de otro a una velocidad constante y en determinados instantes de tiempo. Por eso

se dice que el RS-232 es asíncrono por carácter y sincrono por bit. Los pines que portan

los datos son RXD y TXD. Las demás se encargan de otros trabajos: DTR indica que el

ordenador esta encendido, DSR que el aparato conectado a dicho puerto esta encendido,

RTS que el ordenador puede recibir datos (porque no esta ocupado), CTS que el aparato

Page 43: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

GENERALIDADES: Puerto Serie RS-232

43

conectado puede recibir datos, y DCD detecta que existe una comunicación, presencia de

datos.

Tanto el aparato a conectar como el ordenador (o el programa terminal) tienen que usar el

mismo protocolo serie para comunicarse entre si. Puesto que el estándar RS-232 no

permite indicar en que modo se esta trabajando, es el usuario quien tiene que decidirlo y

configurar ambas partes. Como ya se ha visto, los parámetros que hay que configurar

son: protocolo serie (8N1), velocidad del puerto serie, y protocolo de control de flujo. Este

ultimo puede ser por hardware (el que ya hemos visto, el handshaking RTS/CTS) o bien

por software (XON/XOFF, el cual no es muy recomendable ya que no se pueden realizar

transferencias binarias). La velocidad del puerto serie no tiene por que ser la misma que

la de transmisión de los datos, de hecho debe ser superior. Por ejemplo, para

transmisiones de 1200 baudios es recomendable usar 9600, y para 9600 baudios se

pueden usar 38400 (o 19200).

Page 44: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

44

METODOLOGÍA

1. Revisión Bibliográfica.

La recopilación de información es necesaria para obtener las bases teóricas del proyecto

y poder llevar a cabo la interfaz gráfica mediante programación.

a) Conocer la fisiología de la saturación de oxigeno del organismo para

comprender la importancia de su monitorización.

b) Conoce la programación del microcontrolador MSP430 ya que a través de

el se realizará la interfaz gráfica.

c) Poseer conocimiento acerca de la programación en la que nos basaremos

para la obtención de datos y visualización gráfica de los mismos.

2. Adquisición de habilidades para programación en microcontroladores de 16

bits.

El procesamiento de señales eléctricas obtenidos mediante la electrónica, se utilizarán los

amplificadores operacionales internos al dispositivo (ya sea con las ganancias internas

programables o con el cálculo de ganancias externas al encapsulado) para obtener un

amplificador de instrumentación y así procesarlas en el convertidor analógico digital del

microcontrolador.

a) Introducción a los MSP430.

b) Arquitectura del MSP430: CPU, Modos de Operación, Mapas de memoria.

c) EWB(Embedded workbench): Creación de proyectos, Compilador y Linker.

Para el desarrollo de proyectos en IAR es necesario conocer los comandos utilizados en

Lenguaje C y también en lenguaje ensamblador, incluso es posible combinar ambos

lenguajes para mejorar la lógica de programación.

d) Periféricos: Oscilador y sistema de reloj, Brownout y reset, Watchdog timer, IO

Digitales, USART, Timer_A y ADC12.

Page 45: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

45

Configuración del Amplificador operacional (OA)

Para la configuración de los amplificadores del MSP430 se configuran como salida los bits

OA00, OA10, OA11 y con registro de Control del Amplificador OACTL0 de los bits 7 y 6 se

configura la Terminal inversora del amplificador y de los bits 4 y 5 se configura la terminal

no inversora. Finalmente con el bit OAPM se selecciona el slew rate para el opam.

Configuración del USART

Del registro USART el pin para la transferencia de datos se selecciona como el bit 4 del

puerto 2, una vez configurada la salida, se habilita el bit UTXE0 del registro ME1 para

permitir la transferencia de datos. Del registro de control UCTL0 el bit 4 (CHAR) se pone

a uno para seleccionar que nuestros datos sean de 8 bits. Se configura el ACKL como

fuente de reloj a través del bit 4 y 5 del registro UTCTL0.

Configuración del Convertidor Analógico Digital (ADC) del MSP

Se inicia habilitando la conversión del ADC (ADC12ON). Los registros de control del son

el ADC12CTL0 y ADC12CTL1 y se describe a continuación la configuración de cada bit:

ADC12CTL0

Por medio de primer registro se habilitan el ADC (ADC12ON), el bit de muestreo múltiple y

conversión (MSC), el bit generador de referencia (REFON) y la selección de un voltaje de

referencia de 2.5V (REF2_5V).

Page 46: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

46

ADC12CTL1

Por medio de este registro se habilita la fuente de señal de muestreo (SHP) que permite

obtener la señal a partir de la toma de muestras temporizador, el bit (SHS) selecciona

esta fuente y para este proyecto en específico se selecciono el TIMER A.

La configuración de los bits de los controles anteriores (recuadro gris) se modifican

cuando el bit 1 del registro de control cero (ENC) permite la habilitación de la conversión.

ADC12MCTL0

A través de este registro se configuró el bit INCHx que nos permite seleccionar el primer

canal de entrada (A1) por lo que el voltaje de referencia se configuró con el bit SRFEx

fijándolo con los valores de VR+=Vref y VR-=AVSS. El registro ADC12CTL3 habilitó el

canal A3 quedando el mismo voltaje de referencia que el canal A1, además en este

registro el bit 7 (EOS) nos indica el fin de la secuencia de conversión. Por último se

habilita ADC12SC para iniciar la adquisición.

Para trabajar en la conversión analógica digital se configuro del control de registro del

Timer A, el bit 8 y 9 para seleccionar como fuente de reloj al ACLK y fijar la frecuencia de

muestreo en 512 muestras por segundo.

e) Interfase de programación: JTAG

f) Dominar el uso de un simulador ensamblador y herramientas para la depuración

de programas.

Page 47: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

47

g) Utilizar las ventajas de una simulación para realizar la inspección de variables y

resultados.

h) Efectuar una traza de variables en otros procesos conocidos como práctica.

i) Realizar la depuración de programas escritos en C. Compilar y ejecutar programas

ensambladores paso a paso y con puntos de quiebre (breakpoints) visualizando

los cambios en la ventana de registros y en las zonas de memoria.

3. Diseño del esquema de hardware alterno al dispositivo microcontrolador.

Describir la forma en que se realizará el sensado de las señales mediante dispositivos

electrónicos para obtener información y procesarla de forma digital.

a) Selección de los dispositivos optoelectrónicos que trabajarán dentro de las

longitudes de onda que serán emitidas y absorbidas, tomando en

consideración que la potencia será suministrada por el puente H.

La señal de se la SaO2 se obtuvo de dos sensores uno para adulto y uno pediátrico, para

el tratamiento de la señal primero se realizó un análisis de la conexión del sensor (Nellcor)

para saber como se realiza la polarización del led rojo e infrarrojo, para ello se utilizó un

conector DB9 hembra que es compatible con el conector del sensor.

Fig. 14. Sensor para Oximetría

para paciente Adulto

Para lograr la polaridad de ambos LED´s se utilizo un puente H, el C.I. L298N, la interfaz

puente H es básicamente un sistema de conmutación controlado por dos señales

digitales; cuando el sistema detecta un 1 digital en una de sus dos entradas de control y

un cero en la otra, este conecta el sensor a la fuente de alimentación con determinada

polaridad, si la señal de control que estaba en 1 pasa a cero y la de cero a uno el puente

Page 48: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

48

H conecta la fuente al sensor con la polaridad invertida facilitando así la función del

sensor, en la figura 15 se presenta diagrama de la estructura interna del C.I. L298N

conectado con el Sensor.

Fig. 15. Muestra la estructura interna del puente H (L298N) conectado al sensor.

b) Estudio del bus de transferencia de datos desde el sensor hasta

microcontrolador.

La etapa de Filtrado que se encuentra entre el sensor y el microcontrolador, se realizó

utilizando dos circuitos: un filtro pasa Banda de Banda Angosta en cascada con una

configuración de un inversor de los amplificadores operacionales, para obtener un filtro

rechaza banda a 60Hz y así poder eliminar el ruido proveniente de las líneas de alta

potencia y el inherente a los componentes electrónicos, en la figura 16 se muestra la

conexión antes mencionada.

Page 49: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

49

Fig. 16. Conexión de AD620 con el Filtro a 60Hz

Datos para el diseño del filtro:

Frecuencia de Resonancia Fr= 60Hz

Factor de Calidad Q=2

Para el cálculo de los componentes se utilizaron las siguientes ecuaciones:

Ancho de Banda: RC

B1595.0

= Ec. 10

Donde: Q

frB =

Por lo tanto el valor de B es 302

60===

Q

frB

Asignando el valor del capacitor 100nF podemos conocer el valor de la resistencia de la

ecuación 10. Despejando tenemos

Ω=== KnFBC

R 16.53100*30

1595.01595.0

La frecuencia de resonancia que da determinada por Rr a través de la siguiente ecuación

12 2 −=

Q

RRr

Page 50: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

50

Sustituyendo valores se tiene que:

Ω=−

Ω=

−= K

K

Q

RRr 57.7

1)2*2(

53

12 22

Y el valor de valor de la resistencia de retroalimentación (Rret) es dos veces el valos de R

tenemos:

Ω=Ω== KKRRret 10653*22 el valor comercial utilizado fue 100KΩ

Los valores de R y Rr se ajustaron con potenciómetro para poder obtener la frecuencia

resonante a 60Hz. La salida de este filtro se acolo a un inversor de ganancia unitaria para

obtener el rechaza banda a 60Hz.

c) Estudio del bus de transferencia de datos desde el microcontrolador hacia

la estación de trabajo, por medio del puerto serial, donde se realizará el

monitoreo.

d) Pruebas de conectividad y procesado.

4. Diseño del esquema en pseudo-código del programa para el

microcontrolador de 16 bits.

Este esquema se obtendrá mediante el estudio de la lógica de programación y diagramas

de flujo con los que observaremos cambios en los registros del microcontrolador al

procesar los datos obtenidos anteriormente.

a) Estructurar la diagramación en lenguaje ensamblador para el MSP430.

b) Utilizar las ventajas de una simulación para realizar la inspección de

variables y resultados.

c) Efectuar una traza de variables.

d) Realizar la depuración de programas escritos en C. Compilar y ejecutar

programas ensambladores paso a paso, visualizando los cambios en la

ventana de registros y en las zonas de memoria.

5. Programación del algoritmo de cálculo de la saturación de oxígeno en el

microcontrolador de 16 bits.

Dentro de la memoria ROM del controlador se grabará información necesaria para la

comparación y procesamiento de datos.

Page 51: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

51

a) Obtención bibliográfica o experimental de los valores que van a ser

introducidos en la tabla de memoria.

b) Desarrollar el algoritmo con el cuál se realizará el procesamiento de

información dentro del microcontrolador.

c) Adquisición de datos por los puertos de entrada del microcontrolador y

procesamiento mediante el algoritmo antes mencionado.

6. Diseño de la interfase por puerto serial para el equipo de cómputo.

Un puerto serie es una interfaz de comunicaciones entre ordenadores y periféricos en

donde la información es transmitida bit a bit enviando un solo bit a la vez, en contraste con

el puerto paralelo que envía varios bits a la vez. Como punto de entrada se utilizó el

puerto serie RS232, puesto que para la implementación de la adquisición de datos con

este dispositivo es necesario tener en cuenta un número de líneas menor y por tanto la

complejidad del circuito electrónico disminuye.

a) Conexión de los dispositivos y pruebas de comunicación.

En la intercomunicación de la PC con el microcontrolador MSP340 para transmitir y/o

recibir de la información, ya sea del oxímetro de pulso a la PC y veciversa, se utilizó el

puerto serie. Cabe mencionar que el MSP trabaja con niveles de voltaje TTL y el puerto

serie de la computadora trabaja con niveles de voltaje de acuerdo a la norma RS232, esto

es los niveles lógicos para RS232 los datos se transmiten con lógica negativa, es decir, un

voltaje positivo en la conexión representa un 0, mientras un voltaje negativo representa un

1. La definición lógica para las salidas un 0, es mantener una patilla de salida en un

voltaje entre +5 y +15 v. Similarmente para mantener un 1 garantizado debe estar entre –

5 v y –15v. La banda muerta entre +5 y –5 se conoce como la región de transición, donde

los niveles lógicos no están definidos. Con respecto a las definiciones lógicas para las

entradas el 0 lógico +15 v +3 v y un uno lógico el voltaje estará en -15 y -3V.

Para poder establecer dicha comunicación entre el puerto serie de una computadora se

utilizó el circuito integrado MAX232 que es capaz de convertir los niveles de voltaje de

RS232 a TTL para realizar una transmisión de datos (desde la computadora) y de TTL a

RS232 para realizar una recepción de datos (desde el microcontrolador) y sólo se

Page 52: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

52

necesita de cuatro capacitores electrolíticos y una fuente de alimentación de 5V. De

acuerdo a la figura 17.

Figura 17. Estructura interna del MAX232.

Internamente el MAX232 (IC1) tiene dos fuentes conmutadas, la primera de ellas en

conjunto con los capacitores electrolíticos C1 y C3 (según la imagen anterior) “adaptan” el

nivel de voltaje tomado de la alimentación de +5V a +10V, la segunda fuente conmutada y

los capacitores electrolíticos C2 y C4 invierten los niveles de voltaje para que se puedan

obtener -10V.

El circuito integrado MAX232 (IC1) (Figura 13) tiene dos terminales para conectar señales

con niveles de voltaje TTL que serán adaptadas en señales con niveles de voltaje RS232,

y otras dos terminales para conectar señales con niveles de voltaje RS232 que serán

adaptadas a señales con niveles lógicos TTL.

En el caso de la recepción de datos la señal con niveles de voltaje TTL, procedente del

MSP, entra por la terminal 11 del MAX232, en el MAX232 se adaptan los niveles de

voltaje de TTL a RS232 y la señal con niveles de voltaje RS232 sale por la terminal 14 del

MAX232, la cual se conecta a la terminal 2 del conector DB9 (Rx); en el caso de la

transmisión de datos, la señal de la terminal 3 del conector DB9 (Tx) con niveles de

Page 53: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

53

voltaje RS232 entra por la terminal 13 del MAX232, en el MAX232 se adaptan los niveles

de voltaje de RS232 a TTL y la señal con niveles de voltaje TTL sale por la terminal 12 del

MAX232, esta señal puede ser conectada a la terminal receptora de un microcontrolador

de acuerdo a la figura 18.

Figura 18. Conexión del MAX232.

La comunicación RS232 describe un método de comunicación donde la información se

envía bit a bit, en formato serie. La información debe ser descompuesta en palabras de

datos. La longitud de estas palabras es variable, en nuestro caso se configuró a 8 bits.

Para una transferencia adecuada, deben añadirse bits adicionales, para sincronización y

detección de errores. Es importante que tanto el transmisor como el receptor usen la

misma cantidad de bits, de otro modo los datos no serán debidamente interpretados.

Se debe proveer de una señal de clock, que indique la aparición de cada bit de datos. Los

bits de datos se envían a una frecuencia predeterminada y se seleccionó a 52 baudios.

Tanto el transmisor como el receptor deben estar programados para usar la misma

velocidad de transmisión.

Page 54: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

54

7. Programación y Diseño de pantallas e interfase gráfica para el desplegado de

la señal de saturación de oxígeno.

La graficación de las señales obtenidas mediante todo el proceso sucedido anteriormente

se llevará a cabo en Matlab, este software nos entrega las gráficas de los datos

adquiridos del puerto serial y una serie de datos que posteriormente pueden ser

almacenados para detectar anomalías.

a) Programación en Matlab de la interfaz del puerto serial para la adquisición

de datos.

b) Despliegue gráfico de resultados procesados y almacenamiento de datos.

Para el diseño de las pantallas se utilizó Matlab Guide es cual es un entorno de

programación visual que ofrece Matlab para poder realizar y ejecutar programas de

Simulación a medida de forma simple, tiene las características básicas de todos los

programas visuales como Visual Basic o Visual C++.

Desde la ventana de comando del Matlab se debe ejecutar el comando guide. Esto abre

la consola de edición de la parte grafica de la aplicación a implementar (.fig), es decir,

colocar botones, cuadros de dialogo, graficas, texto y otras opciones similares.

Figura 19. Pantalla de diseño gráfico.

Page 55: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

55

En esta pantalla (Figura 19) es posible arrastrar los diferentes comandos como push

button y edit text acorde al diseño de la pantalla. Cada uno de estos elementos tiene un

conjunto de propiedades a las cuales se puede acceder con el botón derecho del mouse

donde aparece el siguiente cuadro:

Figura 20. Edición de propiedades.

Para editar las propiedades de cada elemento seleccionamos la opción Inspector

Properties y se abre una consola (la cual variará según que elemento se este editando)

con todas las propiedades que podemos editar como color, posición, tamaño y font, como

se muestra en la figura anterior.

Una de las opciones de mayor interés es Edit Callback. Esta abre el archivo .m asociado

(ejecutable Matlab) y posiciona en la sección del programa que corresponde a la

subrutina que se ejecutara cuando se realice una determinada acción sobre el elemento

editado.

Guide consta de dos archivos uno .m (ejecutable) y otro. fig (la parte grafica). Las dos

partes están unidas a través de las subrutinas callback. Una vez que se graba los

archivos desde la consola de emisión (si salvamos la .fig automáticamente lo hace el .m

asociado) podemos ejecutar el programa en la ventana de comando de Matlab solamente

escribiendo el nombre del archivo.

Page 56: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

56

8. Programación y Diseño de la base de datos para resguardo de la información

obtenida para cada paciente.

Una de las formas en que el médico puede llevar un registro de estudios pasados de su

paciente es mediante una base de datos, esta puede ser consultada en cualquier equipo

de cómputo y estar almacenándolo.

a) Mediante los conocimientos obtenidos en programación de bases de datos,

se realizará el diseño de una base de datos que contenga la información

suficiente para el médico en Microsoft Access.

Es necesario dar de alta esta base de datos en el ordenador desde el panel de control de

Microsoft Windows, ingresando a Herramientas administrativas/ Orígenes de datos ODBC

y seleccionando el botón de agregar, se ingresa una base de dados de Microsoft Access

(.mdb) o Microsoft Access Driver.

b) Corrección de errores en el programa.

c) Obtener un ambiente gráfico amigable para el despliegue de nuestros

valores, esto será programado posteriormente.

9. Hacer la descripción del sistema difuso en Matlab necesario para el

prediagnóstico de trastornos respiratorios.

El pre-diagnóstico se realiza en base a la programación en Matlab del sistema difuso que

evalúa el nivel de saturación de oxígeno, y para ello se define lo siguiente:

a) Definir las variables a utilizar como entradas del sistema, en este caso,

saturación de oxígeno y el cambio de la saturación. Así como el número de

salidas del programa.

b) Definir el universo de discurso en el cual se moverán las funciones de

membresía asociadas a las entradas para valorarlas y obtener una salida

determinada de acuerdo a la siguiente gráfica de descripción del sistema

difuso:

Page 57: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

57

Fig. 21. Descripción del sistema difuso.

10. Programación y Diseño del protocolo de prueba del prototipo en seres

humanos.

La meta de este proyecto es la detección de los parámetros de estudio en seres

humanos, el diseño del protocolo de prueba constará de las modificaciones pertinentes

para el sistema de forma que podamos obtener datos veraces en seres humanos.

a) Modificación o creación de los sensores utilizados en seres humanos para

el registro de saturación de oxígeno en sangre.

b) Realizar las modificaciones adecuadas en la programación del prototipo

para poder ser utilizado en seres humanos.

11. Redacción del documento probatorio del protocolo de prueba del equipo en

seres humanos.

La documentación obtenida será reportada para validar los estudios realizados durante

este proyecto, especialmente los que se han hecho en humanos y registradas en las

bases de datos.

a) Documentación del proyecto en base a resultados en humanos.

b) Revisión del escrito por el asesor del proyecto.

c) Corrección del escrito.

Page 58: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

METODOLOGÍA:

58

12. Elaboración del reporte final.

Por último elaboraremos el reporte de la investigación, en ella se expondrán todos los

detalles de la elaboración, experimentación, programación y demás trabajo realizado

durante este proyecto.

a) Redacción y creación oportuna de tablas, gráficas, datos y demás

información que será reportada al asesor del proyecto y al evaluador del

mismo.

Page 59: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

59

RESULTADOS El diagrama a bloques del oxímetro diseñado es este:

Page 60: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

60

La creación del sistema difuso se creo en base a los siguientes diagramas de flujo.

ms = 0

fuzZ

z, z11, z12

z <= z11

mz = 1

si

no

z >= z12

si

no

mz = (z12 – z) / (z12 –z11)

FIN

Page 61: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

61

t > t11 & t <= t12

mt = (t – t11) / (t12 – t11)

no

si

mt = (t – t13) / (t12 – t13)

si

no

mt = 0

mt = 0

fuzT

t >= t13

si

no

FIN

t, t11, t12, t13

t <= t11

Page 62: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

62

MuA = fuzZ(u(1,j),z1(1,1),z1(1,2)) MuB = fuzT1(u(1,j),t11(1,1),t11(1,2),t11(1,3)) MuC = fuzT1(u(1,j),t12(1,1),t12(1,2),t12(1,3)) MuE = fuzS(u(1,j),s1(1,1),s1(1,2)) MuAA = fuzZ(u(2,j),z2(1,1),z2(1,2)) MuBB = fuzT1(u(2,j),t21(1,1),t21(1,2),t21(1,3)) MuCC = fuzT1(u(2,j),t22(1,1),t22(1,2),t22(1,3)) MuEE = fuzS(u(2,j),s2(1,1),s2(1,2))

Mu1 = [MuA MuB MuC MuE] Mu2 = [MuAA MuBB MuCC MuEE] FAM = [0 0 0 1;1 1 2 2;2 2 2 3;3 3 3 3;3 3 4 4]

A

j = 1:100

Inicio

u1, u2, In, num, den

z1 = [80 88] t11 = [84 90 95] t12 = [93 97 99] s1 = [98 100] z2 = [-17 -9] t21 = [-13 -7 -2] t22 = [-4 0 2] s2 = [1 3]

Page 63: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

63

y

A

In(h,i)=Mu1(h)*Mu2(i) den=In(h,i)+den num=In(h,i)*FAM(h,i)+num y=num/den

h = 1:4

i = 1:4

Page 64: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

64

ms = 1

fuzS

s, s11, s12

s <= s11

ms = 0

si

no

s >= s12

si

no

ms = (s – s11) / (s12 –s11)

FIN

Page 65: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

65

Al ejecutar el programa diseñado en Matlab desplegamos la siguiente portada antes de

cualquier actividad:

Fig. 22. Portada.

Las pantallas de trabajo obtenidas mediante la programación son las siguientes:

Fig. 23. Pantallas de interfaz gráfico principal.

Page 66: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

66

Fig. 24. Pantallas secundaria de interfaz gráfico.

Al diseñar las bases de datos en Access, crear el interfaz con Matlab y utilizar las

pantallas gráficas, obtenemos los siguientes datos en Access:

Figura 25. Base de datos.

Page 67: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

67

Estos datos provienen de la siguiente pantalla:

Figura 26. Ejemplo de la base de datos.

Lo cual comprueba que se tiene acceso de lectura y escritura en Access con los datos

del paciente.

En la programación del convertidor analógico digital del MSP403FG37 se configuraron

dos canales del puerto seis, P6.0 y P6.1 como entrada de la señal analógica ya filtrada

que proviene del sensor, y las salidas son P5.0 y P5.1 del puerto cinco, dicha salida nos

entrega la señal del sensor para poderla acoplar al MAX 232 para su comunicación con la

PC, para corroborar la conversión de este programa se realizó la conexión de las salidas

con dos LED’s y como entrada se coloco un potenciómetro el cuál al variarlo modificaba la

intensidad de la luz del LED (figuras 27 a y b) y reportando la medida del voltaje con el

multimetro.

Page 68: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

68

Figuras 27a. Luz de los LED´s tenue

Figuras 27b. Luz del los LED´s intensa

Como se comento en la metodología se requirió de un puente H para la polarización de

ambos LED´s, del sensor (figura 28) para corroborar la función de este circuito se coloco

el generador funciones a 1Hz de frecuencia de para polarizar los LDE´s obteniendo la

señal de salida de cada LED (figura 29 a y b).

Figura 31. Conexión del L298N con DB9 para el sensor

Page 69: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

RESULTADOS

69

Figura 29a. Señal del LED Infrarrojo Figura 29b. Señal del LED rojo.

Debido al comportamiento de la señal de salida en conjunto se requirió programar en el

MSP430FG37 dos señales moduladas por ancho de pulso, estas con un periodo de

700ms, ya que ambas señales de salida de los LED´s presentaron ese periodo, una vez

programado el MSP430 se acoplo dicha salida al sensor obteniendo la polaridad de cada

LED del sensor (figura 30).

Figura 30. Polarización LED Rojo e infrarrojo, respectivamente con el PMW del MSP

Page 70: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

CONCLUSIONES

70

CONCLUSIONES

• Se configuró en el MSP las diferentes etapas de procesamiento analógica y

digital de las señales a adquirir por medio de este microcontrolador.

• Se diseñó de un sistema difuso que realizará un prediagnóstico del estado de

salud del paciente de acuerdo a la descripción que se muestra en la

metodología.

• Se logró la interfaz gráfica como software del proyecto donde llama a cada

sub-pantalla correspondiente a las diferentes opciones que presenta nuestra

pantalla principal. De esta forma el usuario puede disponer de los datos

cuando sea necesario con fines de diagnóstico.

• Se obtuvo el enlace de la base de datos (diseñada en Microsoft Access) con

Matlab para acceder a esta desde una plataforma agradable de trabajo. Cabe

mencionar que estos datos son destinados al diagnóstico de padecimientos

respiratorios del paciente en tratamiento.

• La innovación tecnológica nos llevó a mejorar el desempeño en equipos

portátiles de monitoreo de saturación de oxígeno, ya que el consumo reducido

de corriente del microcontrolador prolonga la vida útil de la pila.

Page 71: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

BIBLIOGRAFÍA Y REFERENCIAS

71

BIBLIOGRAFÍA 1) Deitel H.M., Deitel P.J. Deitel, Como Programar en C++, 2ª Edición, Editorial Prentice

Hall, México 1990

2) Stein J.H., 1992, Enermedades Pulmonares, pp 563-573, Tomo 1, Medicina Interna, 3ª

Edición, Editorial Salvat, México

REFERENCIAS DE INTERNET

http://usuarios.vtr.net/~anestesi/clases/oximetria/oximetria.pdf

http://c.conclase.net/curso/index.php

http://72.14.253.104/search?q=cache:TzWnkkbvpCoJ:escuela.med.puc.cl/paginas/pub

licaciones/MedicinaIntensiva/Monitorizacion.html+antecedentes+de+oximetr%C3%AD

a+de+pulso&hl=es&ct=clnk&cd=2&gl=mx

http://72.14.253.104/search?q=cache:rga1IVTvRnsJ:www.socanestesia.cl/rev_anestes

ia/0312/01-

guias.asp+avances+tecnologicas+de+oximetr%C3%ADa+de+pulso&hl=es&ct=clnk&c

d=9&gl=mx

http://www.nib.fmed.edu.uy/laborde.pdf

http://www.herrera.unt.edu.ar/bioingenieria/sabi/cd_2005/pdf/035IC.pdf

http://eq3.uab.es/personal/baeza/comunicaciones/comunica.htm

http://209.85.173.104/search?q=cache:1F0RalOt0lQJ:www.prematuros.cl/webagosto0

5/enfermerianeonatal/oximetriapulso/oximetriapulso.htm+Los+coeficientes+de+extinci

%C3%B3n+de+las+cuatro+especies+de+hemoglobina.&hl=es&ct=clnk&cd=5&gl=mx

http://209.85.173.104/search?q=cache:SJQ-

dVjbxrEJ:www.docstoc.com/docs/377386/norma-

rs232+de+voltaje+de+acuerdo+a+la+norma+RS232&hl=es&ct=clnk&cd=1&gl=mx

Page 72: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

72

ANEXOS El pseudo-código utilizado para comunicar la base de datos con las pantallas gráficas se

describe a continuación.

1. Para ingresar datos a Access desde Matlab utilizamos la siguiente serie de

comandos:

conn=database('oximetro','','');

nom=get(handles.edit37,'String');

edad=get(handles.edit38,'String');

TALLA=get(handles.edit47,'String');

PESO=get(handles.edit48,'String');

SEXO=get(handles.edit49,'String');

DOMICILIO=get(handles.edit43,'String');

TELEFONO=get(handles.edit42,'String');

CLINICOS=get(handles.edit45,'String');

GABINETE=get(handles.edit46,'String');

DIAGNOSTICO=get(handles.edit36,'String');

exdata=nom,edad,TALLA,PESO,SEXO,DOMICILIO,TELEFONO,CLINICOS,GABINETE,

DIAGNOSTICO;

colnames='NOMBRE','EDAD','TALLA','PESO','SEXO','DOMICILIO','TELEFONO','CLINIC

OS','GABINETE','DIAGNOSTICO';

get(conn, 'AutoCommit');

insert(conn,'oximetro',colnames,exdata);

De acuerdo a este código, lo que hacemos es adquirir cada dato escrito en los campos

diseñados (por ejemplo: nombre, edad, peso y talla) para guardarlos en un vector que

será exportado posteriormente por el comando exdata.

2. Al consultar los datos resguardados en Access utilizamos los siguientes

comandos:

conn=database('oximetro','','');

ping(conn);

curs = exec(conn, 'select NOMBRE from oximetro');

Page 73: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

73

setdbprefs('DataReturnFormat','CELLARRAY');

curs = fetch(curs);

AA = curs.Data;

BUSCA=get(handles.edit44,'STRING');

B=size(AA);

C=B(1,1);

TF = strcmp(AA, BUSCA);

for i=1:C

indice=TF(i,1);

if indice==1

posicion=i;

BUSCANOM=AA(posicion,1);

end

end

set(handles.edit37,'String',BUSCANOM)

curs = exec(conn, 'select EDAD from oximetro');

setdbprefs('DataReturnFormat','NUMERIC');

curs = fetch(curs);

BB = curs.Data;

BUSCAEDAD=BB(posicion,1);

set(handles.edit38,'String',BUSCAEDAD)

curs = exec(conn, 'select TALLA from oximetro');

setdbprefs('DataReturnFormat','NUMERIC');

curs = fetch(curs);

CC = curs.Data;

BUSCATALLA=CC(posicion,1);

set(handles.edit47,'String',BUSCATALLA)

curs = exec(conn, 'select PESO from oximetro');

setdbprefs('DataReturnFormat','NUMERIC');

curs = fetch(curs);

DD = curs.Data;

Page 74: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

74

BUSCAPESO=DD(posicion,1);

set(handles.edit48,'String',BUSCAPESO)

curs = exec(conn, 'select SEXO from oximetro');

setdbprefs('DataReturnFormat','CELLARRAY');

curs = fetch(curs);

EE = curs.Data;

BUSCASEXO=EE(posicion,1);

set(handles.edit49,'String',BUSCASEXO)

curs = exec(conn, 'select DOMICILIO from oximetro');

setdbprefs('DataReturnFormat','CELLARRAY');

curs = fetch(curs);

FF = curs.Data;

BUSCADOMICILIO=FF(posicion,1);

set(handles.edit43,'String',BUSCADOMICILIO)

curs = exec(conn, 'select TELEFONO from oximetro');

setdbprefs('DataReturnFormat','NUMERIC');

curs = fetch(curs);

GG = curs.Data;

BUSCATELEFONO=GG(posicion,1);

BUSCATELEFONO=num2str(BUSCATELEFONO);

set(handles.edit42,'String',BUSCATELEFONO)

curs = exec(conn, 'select CLINICOS from oximetro');

setdbprefs('DataReturnFormat','CELLARRAY');

curs = fetch(curs);

HH = curs.Data;

BUSCACLINICOS=HH(posicion,1);

set(handles.edit45,'String',BUSCACLINICOS)

curs = exec(conn, 'select GABINETE from oximetro');

setdbprefs('DataReturnFormat','CELLARRAY');

Page 75: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

75

curs = fetch(curs);

II = curs.Data;

BUSCAGABINETE=II(posicion,1);

set(handles.edit46,'String',BUSCAGABINETE)

curs = exec(conn, 'select DIAGNOSTICO from oximetro');

setdbprefs('DataReturnFormat','CELLARRAY');

curs = fetch(curs);

JJ = curs.Data;

BUSCADIAGNOSTICO=JJ(posicion,1);

set(handles.edit36,'String',BUSCADIAGNOSTICO)

La forma de obtener estos datos es comparando los que están guardados con una

cadena introducida en un campo de búsqueda y desplegándolos es otro campo de la

pantalla gráfica.

Page 76: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

76

Page 77: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

77

Page 78: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

78

Page 79: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

79

Page 80: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

80

Page 81: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

81

Page 82: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

82

Page 83: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

83

Page 84: TÍTULO DEL TRABAJO: Diseño y Construcción de un Sistema …...del programa para el microcontrolador del MSP430. 6) Programación del algoritmo de cálculo de la saturación de oxígeno

ANEXOS

84

Programación del PWM (Modulación por Ancho Pulso).

Programa del ADC.