Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Asesores: PhD. Ing. José Fernando Valencia Murillo, Ing. Daniel Felipe Valencia
Vargas
2017
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 1
PREGRABADAS EN UNA BASE DE DATOS
Nicola Tesla
AGRADECIMIENTOS
A mi familia por todo el amor paciencia y apoyo mas que necesarios, para obtener el
titulo en Ingenieria Electronica, de la Universidad de san Buenaventura Cali.
A mis excelentes, comprometidos y muy queridos profesores que han sabido inculcar el
gran espiritu de trabajo duro y estudio comprometido, en especial a mi director y amigo
Ing. Jose Fernando Valencia Murillo Ph.D, quien siempre ayudo con sus consejos a ser
una mejor persona y codirector Ing. Daniel Felipe Valencia, grandes valuartes de la
ingenieria que han enseñado con dedicacion y esfuerzo los principios de la electronica y
las directrices de un ingeniero integral. A el director de carrera Ing. Edgar Felipe
Echeverry que es una persona verdaderamente comprometida con el bienestar de los
alumnos. Y gracias a la facultad de Ingenieria Electronica de la universidad de
SanBuenaventura Cali, en general a su personal y profesosres.
TABLA DE CONTENIDO
RESUMEN ..................................................................................................................... 12
I. INTRODUCCION .................................................................................................. 13
A. Descripción del problema………………………………………………………13
B. Justificación…………………………………………………………………….14
C. Objetivos………………………………………………………………………..15
1) Objetivo general ............................................................................................... 15
2) Objetivos específicos ....................................................................................... 15
II. MARCO DE REFERENCIA .................................................................................. 16
A. Antecedentes…………………………………………………………………..16
1) El electroencefalograma (EEG) ...................................................................... 17
2) Programas que ayudan en el proyecto ............................................................ 22
3) Normalización de Formatos de Bioseñales . .................................................... 22
4) Formato para EEG .......................................................................................... 23
5) Estructura formato EBS (Formato de bioseñal extendido) .............................. 23
6) Formato .SDEEG ............................................................................................ 24
7) Bases de Datos Disponibles de Señales . ......................................................... 24
B. Marco teórico…………………………………………………………………..26
1) Conversores DAC (digital-análogo) ................................................................ 26
2) Parámetros cuantitativos y técnicos de los conversores DAC ......................... 28
4) Factor de ruido en PCB .................................................................................... 39
5) Protocolo SPI ................................................................................................... 42
6) Arduino ............................................................................................................ 49
7) Sketch de Arduino ........................................................................................... 50
III. PROPUESTA Y MODELO TEORICO .................................................................. 53
A. Concepción esquemática del proyecto………………………………………... 53
B. Estructura del proyecto ……………………………………………………….. 56
1) Sistema de hipótesis ......................................................................................... 56
2) Variables involucradas en el sistema ............................................................... 58
C. Definición de dispositivos para el proyecto…………………………………… 58
1) Unidad de almacenamiento tarjeta de memoria MMC/SD .............................. 59
2) Selección de conversor digital analógico DAC ............................................... 63
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 4
PREGRABADAS EN UNA BASE DE DATOS
INDICE DE TABLAS
INDICE DE FIGURAS
GLOSARIO DE TÉRMINOS
TÉRMINOS BIOMÉDICOS
BCI Brain computer interface. Interface cerebro computadora.
ECG Electrocardiograma
ECG Electrocardiography. Electrocardiografía (también aparece como EKG).
ECoG Electrocorticograma
EDF Extensión de archivo biomédico del tipo EEG
E-EEG Estéreo Electroencefalograma
EEG Electroencephalograpy. Electroencefalografía.
EGG Electrogastrograma
EMG Electromiografía
EMG Electromiography. Electromiografía.
ENG Electroneurografía
EOG Electrooculografia
EPA Estatuto de regularización.
FFT Transformada rápida de Fourier
Fpz-Cz Zona Frontal
IRDA Intermittent rhythmic delta Activity. Actividad delta rítmica intermitente.
JPEG Algoritmo para comprensión de imágenes
LDA Localized-delta activity. Actividad delta localizada
PDS Procesamiento digital de señales
PSG Polisomogramas
Pz-Oz. Zona de electrodo con standard 10-20 parietal occipital
TDF Transformada de Fourier
TÉRMINOS INFORMÁTICOS
ADC Analog-digital conversor. Conversor análogo digital.
ADOBE FLASH Programa visualizador de archivos
ANSI American national standards institute. Instituto americano de normalizacion
API Application Programming Interface. Interface de programación de aplicación.
ARM Tipo de arquitectura en procesadores AVR
ASCII American Standard Code for Information Interchange. Código Americano
Estándar para el intercambio de información.
AVR Arquitectura de microprocesadores RISC.
CAN Controller area network. Área de control de red
CEN Comité Europeo de Normalización
CGRAM Character generator RAM. Generador de caracteres RAM
CGROM Character generator ROM. Generador de caracteres RAM
CI Circuito integrado
CISC Complex Instruction Set Computer. Equipo conjunto de instrucciones complejas.
CLK Pin de reloj SD
SECTOR Conjunto contiguo de sectores que componen la unidad más pequeña de
almacenamiento en un disco.
CPHA La fase del reloj
CPOL La polaridad de reloj se especifica mediante el bit de control
CPU Central processing unit. Unidad central de proceso
CRC Bit de respuesta para corrección de errores SD
CS Selección de Integrado
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 10
PREGRABADAS EN UNA BASE DE DATOS
RESUMEN
En las salas de cirugía es útil contar con un sistema electrónico para reproducir (de
forma exacta) señales bioeléctricas, como el electroencefalograma (EEG). El objetivo
de este proyecto es desarrollar un sistema embebido para la reproducción de señales
bioeléctricas, específicamente se enfoca en la reproducción de señales EEG. La primera
fase del proyecto se basa en una etapa investigativa, con lo cual se obtuvo la
información para definir los criterios de diseño y construcción apropiados en el
proyecto. Consecuente con esto se seleccionó entre diferentes dispositivos que podría
cumplir los criterios de diseño y construcción definidos en la etapa anterior. Para lo cual
se escogió un conversor digital análogo de bajo ruido con protocolo de comunicación
SPI, además se desarrolló una interfaz de usuario con el objetivo de que el operador del
dispositivo seleccione y reproduzca las señales almacenadas en el sistema embebido.
Finalmente, se diseñó una etapa de adecuación de la señal, todo ello controlado por una
tarjeta Arduino Mega con procesador ATmega 2560. Los valores esperados para el
conversor digital análogo fueron verificados por medio de un diseño experimental,
donde se varían los datos de entrada y se mide el voltaje en la salida del conversor,
tomando 56 muestras y encontrando que los resultados teóricos y experimentales
coinciden en un 99%.
ABSTRACT
I. INTRODUCCION
B. Justificación
En el ajuste, comprobación y control de calidad de dispositivos medidores EEG, resulta
útil tener un patrón de señal EEG que mejore la repetitividad y trazabilidad de las
pruebas realizadas a los dispositivos. Es decir, poseer una base de datos seleccionable y
modificable de señales típicas conocidas y en las cuales variables como: amplitud,
frecuencia y periodicidad son bien referenciadas. Con un patrón de medida podremos
analizar y determinar la exactitud de monitores clínicos, sin la necesidad de aplicar el
complejo procedimiento de ajuste y puesta a punto en salas de cirugía o quirófanos, por
todos los inconvenientes que de él se derivan, ofreciendo así grandes ventajas como:
costos, tiempo, comodidad, seguridad, brindando más calidad y confiabilidad en el
ajuste, sin la necesidad de contar con un paciente en sitio que nos facilite poder obtener
estas señales, o pacientes con alguna determinada patología a la cual se deba graduar,
recordando que la electroencefalografía todavía es un tema en estudio y se desconocen
el comportamiento de ciertos tipos de señales del EEG. Es entonces una herramienta
que servirá también de apoyo, en la calificación de la exactitud de los niveles de medida
de los diferentes monitores clínicos. Para esto se verificará entonces que el resultado de
la medida sea idéntico o muy aproximado en características y parámetros físicos de la
señal patrón o señal en estudio. Entonces se lograría estandarizar los niveles de medida
en los dispositivos de medición o monitores clínicos EEG, proporcionando un nivel de
calidad del dispositivo con respecto a otros, en la exactitud de la medición de la señal
real y sus niveles, sirviendo de apoyo para un análisis y un dictamen médico más
certero.
Se integra también la posibilidad de sumar algún tipo de ruido a la señal que está sujeta
al análisis, para observar la respuesta ante señales contaminadas en los distintos
monitores clínicos y poder mejorar el efecto de inmunidad al ruido.
Otras ventajas de contar con la ayuda de un reproductor de señales biomédicas están en
el ámbito médico investigativo y la docencia ofreciendo una visualización realista de
algunas señales generadas en el cuerpo humano sin la necesidad de realizar mediciones
“in situ”, reproduciendo señales biomédicas complejas para su análisis sin la necesidad
de contar con un paciente y teniendo una base de datos modificable de señales
auténticas EEG con las diversas patologías o estados de conciencia. Esto facilitará poder
estudiar el comportamiento de los monitores clínicos en situaciones donde las señales
biomédicas son tomadas sobre pacientes con enfermedades como epilepsia, alzhéimer,
apnea del sueño, envejecimiento, etc., todas ellas con implicaciones importantes para la
salud pública.
Teniendo en cuenta esta premisa de que la Ingeniería Electrónica influye cada día más
de manera sustancial y positiva en el ámbito médico, se podría plantear la posibilidad de
reproducir otros tipos de señales médicas para los mismos fines descritos anteriormente.
Los aportes por parte de la Ingeniería Electrónica son trascendentes y pueden
transformar el campo clínico de manera positiva, sistematizando procesos vitales o
eliminación de errores humanos. En el área específica del análisis de señales del tipo
EEG se necesitan dispositivos electrónicos más detallados, exactos en la medida y que
sean capaces de eliminar distorsiones de todo tipo.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 15
PREGRABADAS EN UNA BASE DE DATOS
Tal como se indica en [1] “el advenimiento de las computadoras y las tecnologías
asociadas a las señales EEG han hecho que sea posible aplicar eficazmente una gran
cantidad de métodos para cuantificar cambios en los registros EEG”.
El área de procesamiento de señales biomédicas debe abordar una gran diversidad de
temas. Unos de los más habituales es la eliminación de artefactos en las señales
biomédicas, la adecuada clasificación, el análisis estadístico, entre otros. Por lo tanto, se
necesitan procesos más autónomos y estandarizados en la toma de señales biomédicas
para una medición que minimicen los errores y dispositivos más completos enfocados
en exactitud e inmunidad a distorsiones de señales clínicas. Es una tarea pendiente la
continua implementación de la ingeniería biomédica a través de herramientas que
satisfagan las necesidades médicas. El análisis de señales bioeléctricas continúa
recibiendo amplia atención en la investigación así como comercialmente porque las
técnicas de procesamiento de señales han ayudado a descubrir información valiosa para
mejorar el diagnóstico y la terapia de una amplia gama de problemas clínicos y en
aplicaciones cardíacas y neurológicas, dos áreas "peso pesado" en el procesamiento de
señales biomédicas [2].
C. Objetivos
1) Objetivo general
Construir un sistema electrónico para la reproducción de señales biomédicas
pregrabadas, que se puedan utilizar en la puesta a punto de sistemas de adquisición de
biopotenciales.
2) Objetivos específicos
Caracterizar la señal del electroencefalograma en cuanto a parámetros eléctricos de
amplitud y frecuencia, que deben ser considerados en las especificaciones técnicas
del sistema a desarrollar.
Realizar una búsqueda y recopilación de bases de datos suficientemente variadas
que contengan señales EEG que puedan ser utilizadas en el proyecto y llevar a cabo
un estudio experimental, determinando los formatos de grabación y clasificándolas
según las patologías o formas de onda específicas.
Definir las especificaciones técnicas y requerimientos del sistema en esquema
circuital del reproductor de señales biomédicas pregrabadas, teniendo presente la
información obtenida en los objetivos anteriores.
Sintetizar técnicas de diseño y construcción en circuitos electrónicos para el
desarrollo de un circuito impreso que cumpla con los requerimientos del proyecto.
Implementar el prototipo de reproductor de señales biomédicas acorde con el
esquema circuital propuesto con las características deseadas.
Evaluación del funcionamiento del prototipo en función de las características de las
señales detalladas para el proyecto.
Divulgar los resultados obtenidos y problemáticas durante el trabajo de grado en un
artículo científico.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 16
PREGRABADAS EN UNA BASE DE DATOS
A. Antecedentes
Con tan solo alrededor de mil trescientos gramos en un adulto, el cerebro humano es la
materia orgánica más compleja conocida, y como es lógico, ha sido objeto de
investigación exhaustiva y minuciosa. Su complejidad ha estimulado la investigación
multifacética en la que se explora la funcionalidad del cerebro a partir de las
propiedades químicas y moleculares de bajo nivel en las neuronas individuales y
microtobulos, a aspectos de alto nivel, como la capacidad cognitiva, memoria y el
aprendizaje. [3]. En un descubrimiento temprano (1786), se estableció que el cerebro
está asociado con la generación de actividad eléctrica, lo cual abriría todo un campo de
investigación.
La propiedad inherente a la electricidad se encuentra presente en muchas formas en la
naturaleza y el cosmos, de tal modo que el cuerpo humano no es la excepción, en él
podemos encontrar pequeños y variados impulsos eléctricos, mediante los cuales se
llevan a cabo funciones cruciales y vitales del organismo como: el latir del corazón,
respirar, pensar, mirar, oler, ver, entre otros.
Las funciones realizadas por el cuerpo humano son llevadas a cabo a través de impulsos
eléctricos, estos impulsos son el resultado de la acción electroquímica de ciertos tipos
de células en especial la membrana celular, las cuales generan la diferencia de potencial
mediante partículas ionizadas tales como iones de potasio, calcio, así como la
despolarización de las membranas celulares. Muchos de estos intercambios de
potenciales tienen lugar en el cerebro, el cerebro envía la orden en forma de impulsos
electicos, siendo transportados a otra parte del cuerpo a través de los nervios. [2] La
unidad estructural básica del sistema nervioso es la neurona; la neurona es una célula
especializada en recibir y transmitir impulsos eléctricos denominados potenciales de
acción o potenciales evocados, estas descargas eléctricas viajan a través de la membrana
celular y es el primordial medio de comunicación entre tejidos y células dentro del
organismo.
El principal proponente del EEG, Hans Berger (1873-1941) empezó sus estudios sobre
electroencefalografía en humanos en 1920. [4]. El procedimiento EEG permite la
medición de posibles cambios en el tiempo entre un electrodo de señal y un electrodo de
referencia, registrando la actividad neuronal espontanea en el cerebro y sus potenciales
evocados [1].
La reproducción y procesamiento de bioseñales están sometidas a factores que pueden
transformar o distorsionar su información como el ruido eléctrico, que se producen
debido a campos magnéticos oscilatorios alrededor que puede verse aumentado por la
temperatura. La prueba de dispositivos electrónicos está sometida o regulada por
patrones de medición y exactitud que determinan la calidad y fiabilidad de la medida.
En la tabla 1, se muestran algunas de las señales médicas más usuales con sus
características físicas de amplitud y frecuencia en sus respectivos rangos de
visualización, como se puede apreciar sus valores son muy bajos en voltaje comparado
con los rangos de equipos electrónicos comunes
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 17
PREGRABADAS EN UNA BASE DE DATOS
(0-600)
Pneumotacografia Medida del flujo respiratorio (DC – 40) Hz
litros/minuto
Potencial característico de
Potencial acción 100 mV 2 KHz
diferentes tipos de células
[5]
1) El electroencefalograma (EEG)
Berger hizo la interesante observación que las ondas cerebrales difieren no sólo entre
sujetos sanos y sujetos con ciertas patologías neurológicas, si no que las ondas eran
igualmente dependientes del estado mental general del sujeto o de la conciencia de sí
mismo, por ejemplo, si el sujeto se encontraba en un estado de atención, relajación o
sueño [1].
La interpretación clínica del EEG se ha convertido en una disciplina por derecho propio,
en el que el lector o intérprete tiene el reto de emitir acertadas conclusiones basadas en
frecuencia, amplitud, morfología distribución espacial de las ondas cerebrales o su
espectro de potencia. Hasta el momento, no se ha presentado ningún modelo biológico o
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 18
PREGRABADAS EN UNA BASE DE DATOS
[2]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 19
PREGRABADAS EN UNA BASE DE DATOS
En el espectro de potencia del EEG (ver figura 2), se reconocen distintas áreas, las
cuales determinan las características de la señal. A estos patrones de señal que se
manifiestan ante eventos o comportamientos específicos se denominan ritmos, los
cuales se clasifican así según [7]:
[8]
Ritmo mu (µ):
Se manifiesta en la banda de (8 a 13) Hz y su amplitud es menor a 50 µV. Si bien sus
características de frecuencia y amplitud son similares a los del ritmo α, presenta
características topográficas y fisiológicas claramente diferentes. El ritmo µ se detecta en
la corteza motora primaria, bloqueándose por la realización de movimientos
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 20
PREGRABADAS EN UNA BASE DE DATOS
Tabla 2 Errores estándar en la medida de señales EEG con sus respectivas ubicaciones en el sistema 10-20.
Bandas espectrales del EEG
Regiones Fase Alpha Theta Delta Beta
Control 86.50 ±12.98 95.90 ± 14.43 126.60 ± 19.12 73.20 ± 9.00
Frontal Inicial 64.90 ± 11.08 39.70 ± 15.00 95.70 ± 19.30 55.70 ± 7.08
izquierdo
Intermedio 32.00 ± 3.04 15.20 ± 5.74 52.10 ± 7.27 35.40 ± 4.25
Final 57.90 ± 5.18 16.70 ± 6.33 92.50 ± 11.94 51.10 ± 3.50
Control 84.40 ±15.96 93.00 ± 17.40 126.00 ± 23.98 70.20 ± 10.92
Frontal Inicial 64.00 ±12.89 74.90 ± 15.50 97.50 ± 22.66 55.70 ± 9.00
Derecho
Intermedio 30.60 ± 4.74 35.70 ± 5.29 56.30 ± 9.54 36.80 ± 5.95
Final 52.20 ± 7.64 61.40 ± 9.56 91.80 ± 18.26 44.50 ± 3.84
Control 36.90 ± 3.65 49.70 ± 6.87 57.14 ± 11.00 35.85 ± 2.79
Parietal Inicial 33.20 ± 4.16 48.20 ± 7.69 54.73 ± 9.14 35.12 ± 3.60
izquierdo
Intermedio 21.50 ± 3.43 29.00 ± 5.04 31.50 ± 7.28 27.71 ± 3.65
Final 29.60 ± 2.83 40.70 ± 3.66 47.14 ± 7.55 32.72 ± 3.22
Control 38.00 ± 8.84 55.40 ± 12.20 65.40 ± 18.11 39.20 ± 5.45
Parietal Inicial 32.40 ± 6.11 51.90 ± 9.62 41.50 ± 15.67 36.40 ± 3.07
Derecho
Intermedio 18.20 ± 1.84 31.00 ± 3.31 29.40 ± 4.37 28.70 ± 0.93
Final 27.70 ± 4.47 42.60 ± 6.28 42.20 ± 7.37 35.00 ± 3.22
[4]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 22
PREGRABADAS EN UNA BASE DE DATOS
MATLAB
Es un lenguaje de alto nivel e interactivo el cual permite la exploración, visualización de
ideas y modelamiento. Incluye una librería especial en señales biomédicas
electroencefalograficas denominado EEGlab para su análisis y procesamiento.
Proteus 8.5
Es un programa para diseño y simulación de circuitos electrónicos, el cual proporciona
visualización y modelado de sistemas.
Eagle 7.1
Programa empleado en el diseño de circuitos impresos o PCB. Programa gratuito y de
código libre
Desde el año 2000 se ha venido presentando una creciente actividad relacionada con los
esfuerzos para la normalización en el formato de almacenamiento e intercambio de
bioseñales por algunas instituciones internacionales, principalmente en EE.UU, como el
IEEE, y Europa [9]. El Comité Europeo de Normalización (CEN), posee un Comité
Técnico (TC) 251, éste es un grupo de trabajo dentro de la Unión Europea que se ocupa
de la normalización o estandarización en el campo de las tecnologías de la Información
y las Comunicaciones (TIC) en la salud. El objetivo es lograr la compatibilidad y la
interoperabilidad entre los sistemas independientes y permitir la modularidad de la
historia clínica electrónica. Un trabajo parecido, también fue realizado por el IEEE con
la familia de normas 1073. Su objetivo principal: “Proveer comunicaciones a sistemas
abiertos en aplicaciones del cuidado de salud, principalmente a dispositivos médicos de
cabecera y sistemas de información de cuidado de pacientes, optimizados para el
entorno de cuidado agudo”. [1] Finalmente las normas que se adoptaron como estándar
se basan en el protocolo X73, las cuales conforman un conjunto de estándares y normas
creadas y adoptadas por todos los países para conectividad de dispositivos médicos, que
aportan gran interoperabilidad, conexión enchufar y usar, transparencia, facilidad de
empleo y configuración de los mismos.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 23
PREGRABADAS EN UNA BASE DE DATOS
En la figura 3, se puede observar la absorción de capas del modelo OSI por parte de
algunos estándares, en su implementación, es así como la capa X73-3x del estándar
X73, absorbe las capas: física, de enlace de datos, de red y de transporte en una sola y
las de sesión y presentación en la X73-2x, la capa de aplicación se conserva [5].
[10]
El formato EBS (formato de bioseñal extendido) fue desarrollado por un grupo formado
por el centro de epilepsia Elangen, junto con la universidad de Elangen de Núremberg
(Alemania), en 1993. Este formato fue diseñado para soportar bioseñales multicanal
(por ejemplo: EEG, ECG, magneto encefalogramas, magneto cardiogramas, registros de
audio, etc…). La idea principal en el desarrollo del formato EBS era proporcionar un
formato simple con pocos parámetros obligatorios y que sea posible una extensibilidad
arbitraria, permitir la modificación de la cabecera sin necesidad de copiar el archivo
completo y poder acceder a los datos durante la grabación en sistemas multitarea. EBS
es un formato orientado a sesiones sobre registros de información binaria [5].
Figura 4 Estructura final EBS. Los números entre paréntesis indican el tamaño en
bytes
[5]
Formato .SDEEG
Es un standard de formato (.edf + binario) de 24 bits, diseñado para el intercambio y
almacenamiento de datos neuronales eléctricos (EEG), permite la apertura desde
lectores de datos FED es decir lectores biométricos. El formato .edf posee 16 bits de
cuantificación, para evitar la distorsión de la señal, se incluye una etapa de filtrado de
paso alto de la señal a 0.1Hz y un recorte de la señal en los rangos de voltaje de
(-32.767mV, 32.767mV). [9]
B. Marco teórico
[17]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 27
PREGRABADAS EN UNA BASE DE DATOS
[18]
Rf a 0 a 1 an−1
V(t) = (2n−1 + 2n−2 + ⋯+ ) Ecuación 1
R 20
[18]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 28
PREGRABADAS EN UNA BASE DE DATOS
𝐴
𝐶𝑀𝑅𝑅 = 20 𝑙𝑜𝑔10 ( 𝐴𝑑 ) Ecuación 2
𝑠
𝑃𝑖𝑛
𝑆𝑁𝑅 = 10𝑙𝑜𝑔10 (𝑃𝑜𝑢𝑡) Ecuación 4
Donde la fracción representa la relación entre la potencia de entrada y de salida.
Otra característica importante de los conversores DAC, es el rango dinámico libre de
distorsión SFDR, el cual se define como la energía de la señal fundamental en relación
con la señal espuria o armónico predominante en la salida.
El valor RMS o valor cuadrático medio de una onda define el valor eficaz de una
corriente variable, es decir el define el valor constante de dicha corriente la cual produce
siempre los mismos efectos caloríficos al pasar por una determinada impedancia. El
valor RMS de una onda se calcula con la fórmula:
∑ 𝑃𝑜𝑡𝑒𝑛𝑐𝑖𝑎 𝑎𝑟𝑚𝑜𝑛𝑖𝑐𝑜𝑠
𝑇𝐻𝐷 = Ecuación 8
𝑃𝑜𝑡𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑙𝑎 𝑓𝑟𝑒𝑐.𝑓𝑢𝑛𝑑𝑎𝑚.
[19]
Rango dinámico
También se denomina margen dinámico, es una medida de la diferencia entre los
valores mínimos y máximos de codificación de la señal en un DAC, que se expresan en
decibelios (dB), se relaciona con la proporción señal a ruido en el margen entre el nivel
de referencia y el ruido de fondo de un determinado sistema. Para determinarse a
plenitud debe ir acompañado de la curva de ponderación y el nivel de referencia
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 30
PREGRABADAS EN UNA BASE DE DATOS
[20]
Resolución:
Siendo estrictamente técnicos, la salida de un DAC no es una señal análoga, puesto que
solo puede tomar valores discretos específicos como se muestra en la figura 10, en este
sentido la señal resulta ser digital, sin embargo mediante el incremento del número de
bits es decir la resolución del conversor, se reduce la diferencia entre valores
consecutivos, lo que resulta en el incremento de valores en la salida y una
reconstrucción más fiel de la señal continua, en otras palabras la salida de un DAC se
considera una señal seudoanalogica o una aproximación de una señal analógica pura. La
resolución está dada por el número de bits de conversión, entre más alto sea el número
de bits será mayor la resolución, pero esto involucra un mayor consumo de memoria y
coste del dispositivo. El error de resolución establece el número máximo de
permutaciones digitales (2𝑛 ), esto se muestra en la figura 11, este es mejor entre más se
aproxime a cero y se establece con la ecuación:
La señal se reconstruye con el número de bits disponibles para dicho fin, por lo tanto si
queremos reconstruir la señal de forma idéntica o tomar cada punto infinitesimal de
esta, el número de bits para su reconstrucción será muy grande, lo cual es muy difícil y
costoso, además existen características de diferentes señales como periodicidad lo cual
hace que no sea necesario reconstruir toda la señal para obtener la información
contenida en esta.
Figura 10. Error de resolución
[17]
Para una reconstrucción más fiel de la señal se debe incrementar el número de bits de
resolución o conversión acompañado de otros factores como una buena velocidad de
subida con un margen de escala bajo.
Debido que los componentes electrónicos no se comportan idealmente por su
construcción y los materiales de los que están compuestos, presentan un nivel de
condiciones parasitas las cuales involucran ruido a diferentes frecuencias y potenciales.
Figura 11. Exactitud en la resolución de una señal
[21]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 32
PREGRABADAS EN UNA BASE DE DATOS
Exactitud:
Se entiende como la máxima desviación permitida respecto a una línea recta, que define
los valores ideales de la señal original, es expresado en unidad de LSB (bit menos
significante), lo que indica que se usa un salto mínimo nominal como patrón, se puede
expresar también como porcentaje del valor máximo nominal.
[17]
Error de escala:
Se debe en general a errores de ganancia, por valores de voltaje de referencia, u
ocasionados por la red resistiva. Este se calcula a fondo de escala con respecto al valor
ideal y se expresa en LSB, el valor ideal sería de 0 LSB. Se expresa también en
porcentaje como el FSR% (Rango de escala de fuentes) y los valores típicos son de (10-
90) %.
[17]
1
𝐿𝑆𝐵 = Ecuación 11
2𝑛
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 33
PREGRABADAS EN UNA BASE DE DATOS
Error de offset:
Es un valor obtenido a la salida del conversor con entrada nula, se calcula con la
formula siguiente, evaluada en cero.
No linealidad (INL):
Esta indica la máxima separación o desviación de la línea recta luego de eliminar error
de escala y offset, cada paso analógico tiene un tamaño de 1 LSB, es decir cada salida
analógica se diferencia de las adyacentes por 1 LSB. En la , se puede apreciar la
separación en el voltaje conforme la digitalización de la señal se incrementa.
[18]
Monotonía:
La monotonía es una cualidad importante en los conversores, esta genera códigos
crecientes acordes a los códigos de entrada en incremento, es decir su salida aumenta
proporcionalmente con la entrada, por tanto, la función de transferencia del conversor
solo contiene una constante. La consecuencia de un conversor sin monotonía es la
perdida de información como en la figura 15. Esto se puede deber a una inadecuada
codificación de la señal.
[18]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 34
PREGRABADAS EN UNA BASE DE DATOS
Tiempo de establecimiento:
[21]
[18]
Sobrepico y fallo:
Es la respuesta subamortiguada en el OP-AMP, en la figura 18, se puede apreciar el
error por conmutación “. El fallo es una consecuencia parecida a lo que en la lógica se
denomina “aleatorio”, la cual consiste en que las llaves no conmutan instantáneamente
ni paralelamente. Así mismo en un DAC de 8 bits, al pasar en la entrada, del código 127
al 128 podría haber un momento en que todas las llaves conducen (en otras palabras,
que se encienda la llave que corresponda al MSB antes de que se apaguen las llaves
restantes), o inversamente. El producto es un pico de corriente corto (de un u otro
signo), pero con gran amplitud (figura 18). Este pico podría atenuarse por la velocidad
de subida del amplificador de salida. El fallo puede eliminarse con un dispositivo para
fallos, circuito que consiste esencialmente en un muestreo y retención, que ratifica el
dato convertido, un tiempo después del cambio. [22]
[22]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 36
PREGRABADAS EN UNA BASE DE DATOS
[23]
El fenómeno de aliasing, se debe que las muestras se unen para formar una onda de
frecuencia más baja, que es totalmente diferente a la señal original, para evitar este
fenómeno en la reconstrucción de la señal se introduce un filtro anti-aliasing el cual es
un filtro pasa bajo analógico.
[25]
Se establecerá especial cuidado a estos factores acorde con el diseño y a las tablas que
caracterizan el proyecto como tabla 5, tabla 6 y tabla 8, definen el proyecto que se desea
implementar, en el cual la atenuación de ruido es el factor primordial. En un cuadro
tabla 12, comparativo se detallaran los valores encontrados para conversores disponibles
en el mercado. puesto que la descripción y especificaciones de cada conversor
señaladas en las hojas de características, no es un modelo estándar, por el cual se rijan
los fabricantes, se dificulta su análisis y comparación, además algunos fabricantes
detallan características, y valores de pruebas realizadas que otros no, por ende en
algunos casos se dificulta aún más la comparación y selección de los dispositivos,
comparando solo un parámetro eléctrico de estos como puede ser el rechazo en modo
común o CMRR.
3) Ruido eléctrico
Existen varias formas de reducir la EMI, algunas de las cuales son según [4]:
1. Prevenir de la mejor forma, la posibilidad de interferencias al inicio de la etapa de
diseño, en lugar de lograr solucionarlas cuando se produzcan (es más rápido y
menos costoso). Durante la fase de diseño, la primera solución (la menos
compleja y costosa) suele ser reubicar los componentes del mismo, buscando
conexiones más cortas, de menor resistencia y un mejor diseño de la tierra del
circuito.
2. Añadir nuevos componentes como filtros, condensadores de desacoplo, cuentas de
ferrita, transformadores de aislamiento, fibras ópticas, amplificadores
operacionales de aislamiento u opto acopladores.
3. Mermar la velocidad de trabajo en algunos sistemas electrónicos de alta
frecuencia. Esto puede exigir una reprogramación.
4. Blindar y proteger los dispositivos, o bien reubicarlos donde no den problemas
(opción sencilla pero costosa).
5. Intercambiar los componentes problemáticos por otros más robustos y confiables.
[27]
[27]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 41
PREGRABADAS EN UNA BASE DE DATOS
[27]
[28]
las líneas de transmisión y recepción, lo que produce que se generen valores equívocos
en la memoria volátil.
Ruido conducido:
Se propagan por conducción galvánica entre la fuente de ruido y el dispositivo
interferido.
El ruido eléctrico interno de un circuito se puede producir por efecto de conducción o
radiación como se muestra en la tabla 3.
5) Protocolo SPI
A. Comunicación con protocolo SPI:
SPI (Interfaz de Periféricos en Serie), es un protocolo estándar de comunicación para
dispositivos electrónicos, rápido, fácil de usar, que abarca varias tecnologías de
fabricación como microprocesadores de la familia 17F y procesadores AVR. Se ajusta
de forma práctica, con los criterios de fabricación y necesidades del proyecto, en el cual
necesitaremos establecer una comunicación entre los dispositivos que se conjugan en el
prototipo. SPI, se caracteriza por: i) es un protocolo de pocos hilos de comunicación; ii)
es un modo o bus de comunicaciones serial entre dos o más dispositivos; iii) es estándar
de comunicación de corta distancia para sistemas embebidos; iv) permite una
comunicación efectiva uniendo los dispositivos de forma síncrona y mediante un enlace
serial que trabaja en modo full dúplex. Se considera como un estándar de facto pues no
está aceptado por un organismo de regulación internacional como la ISO o la IEEE,
debido a su incuestionable sencillez o simplicidad de protocolo. El hardware de
recepción puede ser tan básico como un simple registro de desplazamiento, lo que es
mucho más simple y económico que una UART (Transmisor receptor asincrónico
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 43
PREGRABADAS EN UNA BASE DE DATOS
[31]
siguiente, y así sucesivamente en tubería o pipeline en inglés, hasta que la salida MISO
del último esclavo se conecta directamente a la entrada MISO del maestro. De este
modo, los datos se mueven entre dispositivos esclavos con cada ciclo de reloj, hasta
alcanzar al maestro. [32]
La entrada de selección de esclavo (SS), compartida por todos los dispositivos,
activándose todos simultáneamente, genera problemas de transmisión debido a que tan
sólo el primero y el último de los dispositivos esclavos se comunican directamente con
el maestro. [32]
F. Transmisión SPI:
Para iniciar una conexión, el maestro configura el reloj a una frecuencia menor o igual a
la máxima frecuencia soportada por el dispositivo esclavo. En el caso de las tarjetas SD,
esta es de 25 MHz, y para tarjetas de alta velocidad de 50 MHz. Seguido se pone la
línea de selección de esclavo en nivel bajo (0V), y se inicia la transmisión. Esta
transmisión se compone típicamente de dos eventos. El maestro envía un bit por la línea
MOSI y el esclavo la recibe, la lee y la procesa, mientras que paralelamente el esclavo
envía otro bit por la línea MISO, para que sea recibido por el maestro. En la situación
más simple de un único dispositivo maestro y un esclavo, la configuración típica de
hardware para intercambiar datos, son dos registros de desplazamiento de un tamaño de
palabra determinado, por ejemplo 8 bits, que forman una especie de espacio temporal de
memoria circular, como se muestra en la figura 26.
[33]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 46
PREGRABADAS EN UNA BASE DE DATOS
El maestro envía los datos por medio de un registro de desplazamiento gobernado por
un reloj, es decir con cada cambio de reloj se actualiza la información, como se muestra
en la figura 27.
Figura 27. Transmisión gobernada por el reloj maestro
[33]
El pin SS (pin habilitación de esclavo) activa y desactiva los esclavos acorde con el
esquema de transmisión del programa.
[32]
Si dos esclavos se activan al mismo tiempo puede causar que no se activen los pestillos.
Lo cual debe ser evitado mediante la implementación de resistencias de (1 a 10) KΩ en
serie con los pines del SPI, para evitar que el sistema entre en enclavamiento. Sin
embargo, esto afecta a la velocidad de datos, máxima utilizable, dependiendo de la
capacitancia de carga en los pines SPI. Dispositivos SPI unidireccionales requieren sólo
la línea de reloj y una de las líneas de datos, si el dispositivo utiliza la línea MISO o la
línea MOSI depende del propósito de la implementación.
SPI posee cuatro modos de funcionamiento, 0 a 3. Estos modos esencialmente controlan
la forma de recepción de los datos. La configuración se realiza por dos bits en el registro
de control de SPI (PEACC). La polaridad de reloj se especifica mediante el bit de
control CPOL, que selecciona el flanco de activación. La fase del reloj (CPHA),
selecciona uno de los dos formatos de transferencia. Para asegurar una correcta
comunicación entre el maestro y el esclavo, ambos dispositivos tienen que funcionar en
el mismo modo. Esto puede requerir una reconfiguración del maestro para que coincida
con los requisitos de los diferentes periféricos esclavos. [32]
Los ajustes de CPOL y CPHA especifican los diferentes modos SPI, que se muestran en
la figura 29.
[32]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 48
PREGRABADAS EN UNA BASE DE DATOS
[31]
La fórmula para calcular la serie de reloj, viene dada por:
𝐼𝐶𝐿𝐾
𝑆𝐶𝐿𝐾 = 𝑝𝑟𝑒𝑠𝑐𝑎𝑙𝑒(𝑚𝑖𝑛=2) Ecuación 13 [35]
Dado que las líneas del maestro, MOSI y MISO del esclavo están conectados
directamente entre sí, los temporizadores de ambos dispositivos, master y el esclavo se
sincronizan entre sí como se muestra en la figura 31. La línea de SS es la entrada de
selección de esclavos. También se muestran las líneas de comunicación con su
respectiva dirección de flujo.
[32]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 49
PREGRABADAS EN UNA BASE DE DATOS
La configuración de los modos es autónoma para cada uno de los esclavos, esto
significa que cada esclavo puede tener una configuración de modo CPOL y CPHA
diferente a la de otros esclavos, o incluso una frecuencia de trabajo distinta y entonces
para esto, el maestro tendrá que acoplarse a la configuración de cada uno de los
esclavos. La manera en la cual estos dispositivos se conectan, pueden ser de dos tipos:
encadenado o paralelo. El de tipo encadenado, todos los relojes de los dispositivos
esclavos se conectan al reloj del maestro, el pin MOSI del maestro se conecta solamente
a la entrada MOSI del primer esclavo y este a su vez se conecta por medio del MISO al
MOSI del segundo esclavo, y este a su vez por el MISO se conecta con el MOSI del
siguiente y así sucesivamente se conectan los esclavos que se vayan a configurar.
Además, se utiliza un único bit de selección de esclavo proveniente del maestro en
forma paralela hacia cada esclavo ver tipo encadenado en la figura 32. Por otro lado, en
el tipo paralelo se utiliza un único pin MOSI del maestro en forma paralela hacia cada
esclavo. Además, se adiciona una línea de selección de esclavo proveniente del maestro
por cada esclavo que exista en el sistema, tal como muestra la figura 32.
[31]
6) Arduino
y existen compatibles de Arduino Nano y Pro, en las que se puede conmutar el voltaje.
[37]
Arduino puede tomar información del entorno a través de sus entradas analógicas y
digitales, puede controlar luces, motores y otros muchos actuadores e interfaces. Los
proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un
ordenador. El código se puede descargar gratuitamente de su página oficial que ya
incluye los drivers de todas las tarjetas disponibles lo que hace más fácil la carga de
códigos. Distribuciones libres están disponibles y pueden ser modificadas y
redistribuidas bajo la GNU (GPL). [36]
7) Sketch de Arduino
Arduino cuenta con su propio lenguaje sintetizado de lenguaje C++, aunque también
entiende lenguaje C. Las hojas de programación o sketch de Arduino, se compone de
tres partes en las cuales se escriben las diferentes componentes del programa.
En la primera parte (figura 33), se invocan las librerías necesarias para el proyecto, se
declaran variables globales y de definen parámetros del programa. [38]
(Autor)
En la, segunda parte del sketch, dentro de la función setup (), se configuran los puertos,
velocidades de comunicación y protocolos SPI, I2C, Serial, etc... Figura 33.
En la tercera parte se escribe el código de programa el cual ejecutara el algoritmo del
diseño planteado, esta función se ejecuta de forma infinita. Figura 33.
La mayor parte de la complejidad interna del Arduino queda enmascarada por las
funciones disponibles en las diferentes librerías escritas en C++. Una librería está
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 51
PREGRABADAS EN UNA BASE DE DATOS
constituida por al menos una clase C++. Una clase consiste en dos ficheros: un fichero
cabecera (header con una extensión .h) y un fichero con una extensión .cpp (C++). [37]
El fichero de cabecera (extensión .h) es una especie de mapa de la librería: declara las
funciones de la librería y la descripción de la clase utilizada. El fichero con extensión
.cpp contiene el detalle de la librería: el código de las funciones y las variables
declaradas en el fichero cabecera (.h) que son de tipo “publico” o de libre uso y
desarrollo. [39]
Estructura de programación:
La estructura básica del lenguaje de codificación de Arduino, se compone de al menos
dos partes. Estas dos partes, o funciones, contienen bloques que incluyen declaraciones,
estamentos o instrucciones. [37]
Funciones en Arduino:
La función comprende un bloque de código que posee nombre y un conjunto de
instrucciones que son ejecutadas cuando se llama a dicha función. Las funciones de
usuario pueden ser escritas para realizar tareas repetitivas y para reducir el tamaño de un
programa. Las funciones se declaran asociadas a un tipo de valor “type”. Este valor será
el que devolverá la función, por ejemplo 'int' se utilizará cuando la función devuelve un
dato numérico de tipo entero. Si la función no devuelve ningún valor entonces se
colocará delante la palabra “void”, que significa “función vacía”. Después de declarar el
tipo de dato que devuelve la función, se debe escribir el nombre de la función y entre
paréntesis se escribirán, si es necesario, los parámetros que se deben pasar a la función
para que se ejecute.
Sintaxis de función
type nombreFunción (parámetros)
{
Instrucciones;
}
Las funciones siempre van entre llaves {}, estas sirven para definir el principio y fin de
un bloque de instrucciones. Se utilizan para los bloques de programación setup(), loop(),
if (), etc. “;” punto y coma, se utiliza para separar instrucciones en el lenguaje de
programación de Arduino. También se utiliza para separar elementos en una instrucción
de tipo “for”.
Casting
Aunque no es posible cambiar el tipo de variable declarada, esta se puede cambiar “al
vuelo” indicando el tipo de valor que contienen en un momento dado, a esto se
denomina casting. Ejemplo para Char (), byte (), int (), word (), float (), long ().
[38]
La adición de librerías en el programa, proporciona facilidad, eficiencia y precisión al
poseer diferentes y variadas funciones que ayudan a la evolución del código o
algoritmo.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 53
PREGRABADAS EN UNA BASE DE DATOS
Previo estudio y análisis del estado del arte de dispositivos electrónicos que cumplen en
parte con las necesidades y que pueden en parte dar solución a la problemática del
proyecto, el cual se basa en la reproducción de señales biomédicas, se enfatiza en las
características técnicas que resaltan los fabricantes de estos equipos como por ejemplo
portabilidad, resolución, arquitectura y tipo de tecnología de fabricación entre otros.
En esta sección se da forma y estructura al proyecto de acuerdo con las características
de diseño especificadas en tabla 6 y tabla 7, empezando con una investigación que
involucre los aspectos relacionados al proyecto como la descripción y características de
algunas señales biomédicas y su correcta reproducción, seguido por la selección de
componentes, condensado en un diseño electrónico con su respectiva programación
enfocada al funcionamiento final. Posteriormente se realiza un seguimiento donde se
obtienen mediciones y se ejerce un control sobre el dispositivo en construcción, para
realizar una comparación de la evolución real con la prevista y se actuara en
consecuencia, obteniendo el porcentaje de error, estableciendo correcciones y
extrayendo conclusiones de los problemas encontrados, que servirán en futuros
proyectos. Las fases de evolución y desarrollo, se subdividen en otras actividades con
carácter cronológico.
Para establecer que los resultados obtenidos son acordes al proyecto se realizaran
pruebas en las etapas de construcción del prototipo y realizaran ajustes de ser necesario,
hasta cumplir con los parámetros de fabricación y objetivos del proyecto.
Para el desarrollo del proyecto se sigue con el esquema de desarrollo propuesto por Juan
Camilo Montoya Cardona en la tesis “sistema de adquisición de biopotenciales para
entornos académicos”, de la facultad de ingeniería biomédica de la Escuela de
Ingeniería de Antioquia.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 54
PREGRABADAS EN UNA BASE DE DATOS
La ejecución y desarrollo del proyecto se define por pautas las cuales otorgan
importancia a las características de este, por lo tanto, se da un peso y valor porcentual a
cada una de ellas, para que sean bases de diseño y construcción.
Exactitud 40%
Desempeño 20%
Costo 20%
Portabilidad 10%
Multicanal 10%
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 56
PREGRABADAS EN UNA BASE DE DATOS
[40]
1) Sistema de hipótesis
Interfaz de
Salida
usuario
(Autor)
Unidad de Conversión: Esta es la unidad de DAC, la cual convierte una serie de datos
digitales en una señal análoga acorde con el valor de los datos y su resolución. Se busca
un conversor con la más alta inmunidad al ruido, siguiendo paramentos y criterios de
construcción establecidos.
El esquema funcional del proyecto se puede apreciar en la figura 37. En él, las líneas
que unen cada dispositivo corresponden a las líneas de conexión o buses de cada uno de
estos, los cuales se explicara a medida que se estudie cada unidad.
(Autor)
[41]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 60
PREGRABADAS EN UNA BASE DE DATOS
[42]
El protocolo SPI cuyo socio propietario es MMC/SD, fue extendido para utilizar
transferencias de cuatro bits en SD y MMC y ocho bits sólo para MMC, con el objetivo
de lograr mayor velocidad, en tanto que la mayor parte de la industria de la informática,
está pasando para canales más estrechos a una velocidad más alta [42]. El protocolo SPI
se habría podido trabajar con frecuencias de transferencia de datos altas, por ejemplo
133 MHz para poder registrar un rendimiento más alto que el ofrecido por el SD. Esto
dio origen y soporte a parte de las instrucciones del antiguo protocolo MMC de un bit y
añadió soporte para comandos adicionales relacionados con la protección de
transcripción. [43]
[39]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 61
PREGRABADAS EN UNA BASE DE DATOS
[33]
La tarjeta reconoce los comandos, porque el primer byte de estos comienza por 01,
véase la figura 42. Los demás bits del primer byte contienen el número de comando
codificado en binario. Así el primer byte correspondiente a la instrucción 0 (CMD0)
será: 01000000, o el primer byte correspondiente a la instrucción 20 (CMD20) es:
01010100 y en forma alterna para los demás comandos. Los posteriores 4 bytes del 2 al
5 contienen los argumentos de la instrucción. Los comandos que no requieren
argumentos son cero. El byte 7 es el último y contiene el CRC, para la verificación de
errores, pero como se anota, en la comunicación SPI no lo utiliza. La comunicación
entre la tarjeta y controlador se realiza conforme orden de transferencia (MSB First), el
bit más significante primero.
[44]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 62
PREGRABADAS EN UNA BASE DE DATOS
Encendido de la tarjeta:
Cuando la tensión de alimentación alcanza 2,2 voltios, se da una espera de un
milisegundo por lo menos.
Se ajusta la velocidad del reloj SPI entre 100 kHz y 400 kHz. (Fs=Fosc/64)
Reinicio de programa
Para hacer el reinicio de la tarjeta y prepararla para trabajar en modo SPI hay que seguir
la siguiente secuencia:
* Dar mínimo 74 ciclos de reloj, enviando alrededor de 10 bytes por el bus SPI, aunque
aún no se ha configurado.
* Activar la señal, poniendo en bajo el chip de selección (CS=0).
* Enviar la instrucción 0 (CMD0) con el CRC, ya que aún no se encuentra en modo SPI,
por lo que se considera el CRC. La secuencia de la instrucción o comando 0 siempre es
igual a: 0x40, 0x00, 0x00, 0x00, 0x00, 0x95
* Se espera el byte de respuesta que es igual a 00000001 (la tarjeta se encuentra en
modo idle). [33]
Para el proyecto se utilizará una tarjeta microSD del tipo HC de tipo standard MMC de
2Gb en la cual se guardarán los archivos de señales EEG digitalizadas. Esta posee
puerto de comunicación serial SPI en modo esclavo, y se configura en forma
convencional, con los comandos propios de MMC/SD.
Inicialización de tarjetas de alta capacidad
Mediante un conjunto de comandos propios de la tarjeta MMC se realiza la
comunicación de la siguiente forma:
1. Habilitar el módulo SPCR del AVR configurando los registros principales.
2. Por medio de los registros se selecciona el reloj del módulo SPI, con 3 posibilidades
distintas de frecuencias, según como se configuren los bits (Fosc/64, Fosc/16,
Fosc/4).
3. En este caso se utiliza un cristal de 16Mhz, para que al seleccionar el divisor de
frecuencia (Fosc/ 64), se pueda obtener una frecuencia de reloj de aproximadamente
312KHz. Esta es la frecuencia necesaria para inicializar la memoria SD/MMC.
4. Luego de configurar el tipo de polaridad del reloj (flanco ascendente), se empieza a
enviar la trama de datos, en grupos de 16 u 8 bits.
5. Finalmente, ya se ha inicializado el módulo MSSP del microcontrolador, poniendo a
“1” el bit correspondiente a esta comunicación, y se sigue la posterior secuencia de
datos e instrucciones a enviar a la tarjeta.
la parte inicial del programa la comunicación SPI para que se monte el directorio de la
tarjeta, en el espacio temporal de memoria del procesador, lo cual solo se hace una vez
al inicio del programa.
Para reconstruir una señal analógica desde una señal digital, se utiliza un conversor
digital/analógico (DAC). Estos son comúnmente mucho más económicos que el ADC
conversor análogo/digital. Esto se deriva de las necesidades del proyecto, puesto que las
señales a reproducir se encuentran en un formato digital. El tipo de conversor a utilizar
será un DAC multiplicador, debido a que se debe convertir el digito binario, a una
escala de voltajes predeterminados por el código. Según como realizan la conversión
existen dos tipos principales de DAC, que son:
DAC Multiplicador:
El valor digital de la entrada activa la selección de fuentes de corrientes con los valores
apropiados para cada dígito binario. Las fuentes de corrientes se suman y la corriente
resultante se extrae directamente o se convierte a un voltaje de salida determinado por el
código. Alternativamente, algunos DAC utilizan un conjunto de resistores escalados y
una fuente de voltaje de referencia. Los resistores se conectan a tierra o a la fuente
dependiendo del valor del bit correspondiente de la señal, y se genera una salida
proporcional a la suma de los voltajes. Los DAC multiplicadores son comúnmente
usados, y tienen la ventaja de ser rápidos. La salida será una forma de onda escalonada
que se suaviza con un filtro de reconstrucción para eliminar las altas frecuencias. La
desventaja de los DAC multiplicadores es, que el voltaje o la corriente generada para el
bit más significativo (MSB) debe ser muy exacta, lo cual es extremadamente
complicado en la práctica. [16]
DAC Bitstream:
Un DAC bitstream convierte bit a bit, y el resultado es la suma total de las
aproximaciones de los valores codificados, este concepto describe el funcionamiento
para el ADC sigma delta, el cual funciona con un número más pequeño de bits de salida
para una frecuencia de muestreo mucho más alta, esto se basa en el concepto de
frecuencia de Nyquist, con lo que el DAC bitstream puede ser implementado
principalmente en el dominio digital. [25]
Comercialmente se encuentra un amplio rango de dispositivos conversores, el tipo de
conversión y la tecnología de fabricación definen el rendimiento y actuación del DAC
además de sus características de resolución, velocidad y coste. La selección de un
conversor DAC, depende de la aplicación que se va a implementar, para nuestro caso
necesitaremos un conversor que ofrezca determinadas características de sensibilidad,
resolución, exactitud, tiempo de conversión y velocidad de procesamiento todo esto
basado en las necesidades y especificaciones técnicas que se expusieron en la
concepción del proyecto.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 64
PREGRABADAS EN UNA BASE DE DATOS
Se debe analizar el cómo repercute cada una de las características en las demás, de
modo que es muy difícil que un conversor se acople de forma óptima en todas sus
variables, tal como se muestra en la tabla 11.
[23]
[23]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 67
PREGRABADAS EN UNA BASE DE DATOS
de integrado CS. El DAC funciona como esclavo en SPI. El maestro de bus genera el
reloj de sincronización SCLK, e inicia la transmisión. Cuando CS está en alto, el DAC
no se accede, el SCLK (reloj) es descartado y los datos de entrada serie SDI (MOSI) son
ignorados. El maestro accede al DAC con el pin CS en bajo. En la transición de CS, los
datos de entrada de serie en el pin SDI se desplazan desde el maestro en forma
sincrónica con en el flanco ascendente de SCLK en el registro de desplazamiento de
entrada, con un orden de MSB, primero el bit más significativo. La transición de CS de
bajo-alto, transfiere el contenido del registro de desplazamiento al registro de entrada.
Todos los registros de datos son de 16 bits. Se tardará entonces 16 ciclos de SCLK para
transferir una palabra de datos. CS debe poner en alto, inmediatamente después de los
16 SCLKs correspondientes. Si se aplican más de 16 SCLKs mientras el /CS este en
bajo, es decir el DAC este habilitado, los últimos 16 bits se corromperán. En este caso,
se vuelve a cargar una nueva palabra de 16 bits y la salida DAC se actualizará al mismo
tiempo. El DAC8831 tiene un pin LDAC para permitir la actualización de forma
asíncrona al ponerse el pin LDAC en bajo, después de poner a CS en alto, como se
indica en la figura 43. En este caso, LDAC debe mantenerse en alto, mientras que CS
está en bajo. Si LDAC está permanentemente en bajo, el pin de salida del DAC se
actualizará inmediatamente después de cargar el registro de entrada (causada por la
transición de bajo a alto de CS). Como se indica en la figura 43.
[23]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 69
PREGRABADAS EN UNA BASE DE DATOS
Donde el voltaje de salida del circuito de la figura 46. Está dado por la ecuación de
salida:
[(𝑉𝑜𝑢𝑡𝑢𝑛𝑖 +𝑉𝑜𝑠)(2+𝑅𝐷)−𝑉𝑟𝑒𝑓(1+𝑅𝐷)]
𝑉𝑜𝑢𝑡𝑏𝑖𝑝𝑜𝑙𝑎𝑟 = 2+𝑅𝐷 Ecuación 15
1+( )
𝐴
[23]
El voltaje de una señal del tipo EEG varía entre los valores (0.5 a 300) uV. De la
ecuación de voltaje de salida bipolar, ecuación 16. Con el código mayor, obtenemos el
voltaje de referencia necesario para una señal de salida con voltaje de 0.5uV.
32767
0.5𝑢𝑉 = ±𝑉𝑟𝑒𝑓 ∗ 32768
0.5𝑢𝑉
±𝑉𝑟𝑒𝑓 = ≅ 0.5𝑢𝑉
0.999
Obtenemos que el voltaje de referencia necesario con el que se obtiene una señal de
amplitud de 0.5uV es aproximadamente igual al voltaje mínimo de la señal EEG. El
voltaje de referencia mínimo aceptado por el conversor es de 1.25V, por lo cual no es
posible aplicar este voltaje de referencia.
A medida que aumente el voltaje de referencia, el error en la señal de salida será mayor,
pero aumentara la precisión del conversor debido a la división del rango en el número
de pasos de resolución.
El paso o el cambio para cada valor del código seria de:
1.25
≈ 38.14𝑢𝑉
32768
[23]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 71
PREGRABADAS EN UNA BASE DE DATOS
Se escogió el amplificador operacional OPA827A, por su bajo nivel de ruido, alto factor de rechazo al modo común CMRR y
recomendación del fabricante Texas Instruments posee un paquete para soldadura superficial 8SOIC, niveles de alimentación de (0.5 a 5)
V y una corriente de alimentación de 10mA.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 73
PREGRABADAS EN UNA BASE DE DATOS
Referencia y tierra
El DAC8831 opera con un voltaje de referencia que comprende desde 1,25 V al valor de
la fuente de alimentación (5V). Pero las bajas referencias como la de 1.25 V pueden
reducir la precisión. El voltaje de referencia determina la escala de tensión de la salida
del DAC. Para un rendimiento preciso de alta resolución, se recomienda que los pines
de referencia y de alimentación se conecten con un condensador de tantalio de 10uF en
paralelo con un condensador cerámico 0,1uF. [23]
Un ejemplo del esquema de la conexión SPI con el conversor se muestra en la figura 48,
en el cual el conversor se conecta mediante las líneas MOSI, CLK y CS del procesador
TMS470 como se indica. En este el pin /LDAC se pone a tierra.
[46]
Circuito de operación de conversor DAC8831 en modo unipolar, conectado en su salida
con un operacional, como se puede observar en la figura 49.
[35]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 74
PREGRABADAS EN UNA BASE DE DATOS
[30]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 75
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
No se eligió este prototipo por poseer un procesador con escasos pines (20) para
implementar las distintas funciones del reproductor y las posibles adiciones al diseño,
además de la complejidad de programación por el elevado nivel de líneas de código para
programar las distintas funciones del prototipo.
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 78
PREGRABADAS EN UNA BASE DE DATOS
[32]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 81
PREGRABADAS EN UNA BASE DE DATOS
[48]
Se puede observar cómo se conectan los pines exteriores de la tarjeta con los puertos del
microcontrolador.
[37]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 82
PREGRABADAS EN UNA BASE DE DATOS
[37]
Esta unidad se plantea para el manejo y fácil uso de archivos por parte del usuario, la
cual se compone por funciones típicas de un reproductor, y una etapa de visualización
de archivos mediante una pantalla de cristal líquido LCD de 16x2.
Pulsadores (5):
Los pulsadores se conectan con una resistencia de 10KΩ, a la fuente de voltaje de 5V,
para activar las interrupciones concernientes a cada función.
(Autor)
[50]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 84
PREGRABADAS EN UNA BASE DE DATOS
[51]
[53]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 85
PREGRABADAS EN UNA BASE DE DATOS
[53]
mientras que los demás pueden quedarse desconectados. Cada dato se envía al LCD en
dos pasos: primero se envían 4 bits más altos (normalmente por las líneas D4- D7), y
luego los 4 bits más bajos. La inicialización habilita el LCD para que interprete
correctamente los bits recibidos.
[54]
Pocas veces se leen los datos del LCD (por lo general se transmiten del
microcontrolador al LCD) así que, con frecuencia, es posible guardar un pin de E/S de
sobra. Simplemente, basta con conectar el pin RW a Tierra. Esto ocasiona que los
mensajes se visualicen normalmente, pero no será posible leer la bandera de ocupado ya
que tampoco es posible leer los datos del visualizador. Una solución simple consiste en
que después de enviar un carácter o un comando es importante dar al LCD suficiente
tiempo para hacer su tarea. Debido al hecho de que la ejecución de un comando puede
durar aproximadamente 1.64mS, el LCD tarda como máximo 2mS en realizar su tarea.
[54]
En el caso de trabajar con Arduino, solo será necesario montar la librería del LCD, en el
programa y utilizar las diferentes funciones de esta, para su control.
Hay dos algoritmos de inicialización. Cuál se utilizará varia de si la conexión al
microcontrolador se realiza por el bus de datos de 4 o 8 bits. En nuestro caso
utilizaremos la configuración de 4 bits. En ambos casos, después de inicialización sólo
queda especificar los comandos básicos y visualizar los mensajes. [54]
Hasta aquí se ha realizado una selección de los principales componentes o unidades del
sistema reproductor, como unidad de memoria, procesamiento y control, en una
posterior selección se verificarán componentes como reguladores u otros, que se
acoplen de manera congruente las unidades ya seleccionadas.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 87
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
El compendio de la figura 63, sobre el esquema funcional del circuito del proyecto se
realiza en Proteus 7.1, y describe las conexiones a realizar entre los diferentes
componentes y unidades del circuito, como lo es la conexión entre la unidad de
procesamiento y la unidad de interfaz de usuario para el control del prototipo por parte
del usuario final, junto con la unidad de visualización del directorio (LCD). La conexión
entre el procesador y la tarjeta SD, para el almacenamiento de los diferentes archivos a
reproducir, y la parte del tratamiento de la señal como lo es el conversor con la etapa de
ajuste de la señal que la componen dos amplificadores operacionales y un divisor de
voltaje en la salida.
aplicación con conexión al DAC (figura 48). Por otra parte el CI LTC1983, el cual es un
inversor que está disponible para voltajes de 3 y 5 V, de los cuales se escogió el
integrado LTC1983-5, el cual invierte este voltaje proporcionando -5V con una corriente
de salida de 100mA. Este voltaje sirve de entrada al integrado TPS7A3301 el cual
elimina el ruido proveniente del inversor con una medida de ruido de 16uVrms para un
voltaje de -36V y un PSRR de 72dB en la frecuencia de trabajo (10Hz a 10MHz),
proporcionando una corriente máxima de 1A. [23] En la salida del regulador
TPS7A3301, 2 resistencias formando un divisor de voltaje, en paralelo con un
condensador de 10nF y a su vez esto en paralelo con un condensador de 47uF, para
proporcionar el voltaje negativo a los operacionales. La etapa de salida está compuesta
por dos operacionales IC1 operacional 1 OPA827A (véase circuito figura 64), el cual
compone el circuito típico del DAC e IC2 (operacional 2 OPA827A) en configuración
como seguidor de voltaje. Para proporcionar el voltaje deseado de salida (190uV) para
el dato de 40000, se configura un divisor de voltaje para dicho fin, con resistencias de
montaje superficial y baja tolerancia (0,01% aproximadamente dependiendo de
existencia al realizar la compra). Para poder visualizar y medir las señales en un
osciloscopio se realizará un segundo divisor de voltaje para el rango de 160mV, para el
mismo dato de 40000. Para lo cual se provee un interruptor del tipo deslizante para
poder definir una de las dos opciones de atenuación.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 90
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
Para la elaboración del circuito, se escogieron los siguientes componentes por sus
características tanto de bajo ruido y eliminación del mismo, como también del tipo de
empaquetado, para soldadura superficial y un costo razonable.
En la tabla 20, se muestran las corrientes máximas y voltajes que los dispositivos
reguladores, de la tarjeta pueden suministrar a los componentes que alimentan, de la
siguiente forma el dc/dc conversor R1SE-0505, proporciona la alimentación al
regulador TPS7A4701, al LTC1983 y a los demás componentes de la fila
correspondiente a este dispositivo, sumando así aproximadamente 6mA. Siendo más
que suficiente la corriente de 200mA que proporciona el conversor DC/DC. De igual
manera los dispositivos de la primera columna, alimentaran la columna de cada
dispositivo.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 92
PREGRABADAS EN UNA BASE DE DATOS
DAC8831:
Conversor Digital-Analógico bipolar. Tipo de empaque SO14 el cual ya se explicó
anteriormente, en la sección 2.5.2 Selección de conversor DAC.
Figura 66 DAC8831
[24]
[24]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 94
PREGRABADAS EN UNA BASE DE DATOS
[56]
Se escogió R1SE0505 DC/DC conversor, por la sencillez del circuito y su empaquetado
superficial.
Para la selección del dispositivo que provee el voltaje regulado positivo, se creó una
tabla con los diferentes dispositivos de distintas casas fabricantes con algunas
características eléctricas como ruido, PSRR entre otras y características físicas como el
tipo de encapsulado, que podrían cumplir la función de regulación de 5V.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 95
PREGRABADAS EN UNA BASE DE DATOS
TPS7A4701:
Regulador programable de voltaje de bajo ruido, construido por Texas Instruments, con
tipo de empaque VQFN20, ofrece una alta precisión. TPS7A47 es una familia de voltaje
positivo de hasta (+36 V), con ultra bajo ruido (4uVrms), esta familia son reguladores
lineales de baja caída (LDO) capaces de manejar una carga de hasta 1A. Las tensiones
programables de salida de esta familia de integrados TPS7A47 son típicas para el diseño
de la placa de circuito impreso (PCB) sin la necesidad de resistencias de
retroalimentación externa. TPS7A47 está diseñado con tecnología bipolar
principalmente para precisión, como aplicaciones de instrumentación de alta exactitud,
donde los carriles de tensión o pistas son críticos para maximizar el rendimiento del
sistema. Esta característica hace que el dispositivo sea ideal para la alimentación de
amplificadores operacionales, convertidores analógico-digitales, convertidores (ADC),
digital a analógico, conversores (DAC), y otras circuiterías analógicas de alto
rendimiento en aplicaciones críticas, tales como, radiofrecuencia médica (RF), prueba y
medición. Además, el integrado TPS7A47 es ideal para la regulación del convertidor
DC-DC posteriores. Al filtrar el rizado de la tensión de salida inherente a la
conmutación de las conversiones de DC-DC, se garantiza un máximo rendimiento en
sistemas de instrumentación sensible, prueba y medición, audio y aplicaciones de RF.
[57]
[24]
Para aplicaciones donde se requieren pistas de bajo ruido positivo y negativo, se
recomienda la familia TPS7A33 de Texas Instruments, que también son reguladores
lineales ultra bajo ruido.
[23]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 97
PREGRABADAS EN UNA BASE DE DATOS
[57]
Para la selección del dispositivo que proporciona un voltaje regulado de (-5V), para la
alimentación de dos amplificadores operacionales se creó una tabla con los diferentes
dispositivos de distintas casas fabricantes con algunas características eléctricas como
corriente de salida, ruido, PSRR entre otras y físicas como el tipo de encapsulado, que
podrían cumplir la tarea. [23]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 98
PREGRABADAS EN UNA BASE DE DATOS
TPS7A3301:
Es un regulador de ultra bajo ruido construido con tecnología CMOS para voltajes
negativos de hasta (-36V), con un PSRR de 72dB y un factor de ruido de 10uVrms, son
reguladores lineales capaces de manejar una carga máxima de 1 A. La familia TPS7A33
incluye un semiconductor complementario de óxido metálico (CMOS) utilizado para
configuraciones programadas por el usuario. Otras características disponibles incluyen
una función de límite de corriente y de apagado térmico para proteger el dispositivo y el
sistema durante condiciones de falla. La familia TPS7A33 se diseñó utilizando
tecnología bipolar principalmente para garantizar alta precisión, en aplicaciones de
instrumentación, en líneas de tensión son críticos para maximizar el rendimiento del
sistema. Esta característica lo hace ideal para alimentar los amplificadores
operacionales, analógico-digital (ADC) convertidores, convertidores de digital a
analógico (DAC), y otros circuitos analógicos de alto rendimiento. Además, la familia
de reguladores lineales TPS7A33 es adecuado para conversión DC-DC después de la
regulación del conversor. Al filtrar el rizado de la tensión de salida inherente a la
conversión de conmutación DC-DC, se garantiza el máximo rendimiento del sistema,
especial para instrumentación sensible, ámbito médico, prueba y medición, audio y
aplicaciones de RF. [27]
[24]
Posee un encapsulado del tipo 20VQFN, con una chapa metálica en su inferior para
disipar calor que se debe soldar al cobre de la placa del circuito, la configuración y
orden de los pines del QFN TS3301 se observa en la figura 73.
[27]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 100
PREGRABADAS EN UNA BASE DE DATOS
[57]
Para la definición de dispositivos que puedan cumplir con los requerimientos necesarios
para este componente se crea una tabla con las características eléctricas predominantes
según la aplicación tabla 19.
Para la selección del dispositivo que brinda el voltaje de referencia se creó una tabla con
los diferentes dispositivos de distintas casas fabricantes con algunas características
eléctricas y físicas como el tipo de encapsulado, que podrían cumplir la tarea.
LTC1983-5:
Es un regulador e inversor, está disponible para voltajes de 3V LTC1983-3 y 5V
LTC1983-5, producen salidas reguladas negativas. Se requieren sólo tres pequeños
condensadores externos y pueden proporcionar hasta 100mA de corriente de salida. Los
dispositivos pueden funcionar en modo de bucle abierto o el modo de salida regulada en
función de la tensión de alimentación de entrada y la corriente de salida. LTC1983-3 /
LTC1983-5 tiene muchas funciones útiles para aplicaciones portátiles, incluyendo muy
baja corriente de reposo (25μA típica) y un modo de apagado de la corriente,
programado a través del pin SHDN.
El LTC1983-3 / LTC1983-5 son integrados protegidos contra sobrecalentamiento y
cortocircuito. Las piezas están disponibles en un paquete ThinSOT de 6 pines de bajo
perfil (1 mm). Para la mejor selección se crea la tabla 18.
[24]
El dispositivo es de soldadura superficial y posee un encapsulado 6-TSOT23, el cual es
de medidas pequeñas como se observa en la figura 76.
[58]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 102
PREGRABADAS EN UNA BASE DE DATOS
Para la selección del dispositivo que brinda el voltaje de referencia se creó una tabla con
los diferentes dispositivos de distintas casas fabricantes con algunas características
eléctricas y físicas como el tipo de encapsulado, que podrían cumplir la tarea.
ISL21090-12:
Es un integrado para voltaje de referencia de 1,25V de ultra bajo ruido con una
precisión de ±0,03%, tipo de paquete 8LD SOIC. El ISL21090 es de ruido
extremadamente bajo (1.0μV P-P). El ISL21090 utiliza la nueva tecnología bipolar
avanzada de Intersil para lograr la opción de 1,25 V. El ISL21090 ofrece voltajes de
salida de: 1,25 V, 2,5 V y 5,0V con coeficiente de temperatura 7 ppm / ° C, también
proporciona una excelente línea de regulación de carga. El ISL21090 es ideal para
instrumentación de alta gama, adquisición de datos y aplicaciones de procesamiento que
requieren alta precisión DC, donde el rendimiento de bajo ruido es exigente.
[59]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 103
PREGRABADAS EN UNA BASE DE DATOS
[59]
Se seleccionó el ISL21090-12, inversor por sus características de bajo ruido.
Para considerar no utilizar un divisor de voltaje, pues las resistencias intrínsecamente
posen un ruido debido a los materiales de construcción, se verificará mediante
ecuaciones si es posible conseguir la atenuación necesaria solo con operacionales. Para
el cálculo de la atenuación en la salida del circuito, con los operacionales, en
configuración como inversor, tenemos que:
Necesitaremos una señal de salida con un voltaje de 190uV para un dato de 65.535, el
cual con un voltaje de referencia de 1,25, calculamos un valor de 1,250, tenemos
entonces:
𝑉𝑜𝑢𝑡 190𝜇
𝛽= = = 0,000152
𝑉𝑖𝑛 1,25
𝑅1 𝑅1 𝑅1
0,00152 = 1 + 𝑅2 = 0,00152 − 1 = 𝑅2 = −0,9999 = 𝑅2
−0,9999𝑅2 = 𝑅1
V. PROGRAMACION
A. Librerías
La programación se desarrolla, por medio de la plataforma de Arduino, la cual
simplifica el trabajo de programación, por la sencillez de su programación, información
extensa y clara, uso de librerías anexadas, herramienta de libre desarrollo y un lenguaje
modular basado en C. Se utilizarán las siguientes librerías de Arduino, las cuales
facilitan mucho la programación.
1) Librería SD.h
La biblioteca SD permite la lectura y escritura en tarjetas del tipo SD. Está construida
sobre la librería sdfatlib de William Greiman. La librería soporta sistemas de archivos
tipo FAT16 y FAT32 en tarjetas estándar SD y tarjetas SDHC. Los nombres de los
archivos, en las funciones de biblioteca SD pueden incluir rutas separadas por barras, /,
por ejemplo, "directorio / nombre de archivo.txt". Se presenta de esta forma debido a
que el directorio de trabajo, es siempre la raíz de información de la tarjeta SD. La
sintaxis para invocar archivos es el nombre y extensión por ejemplo: "/file.txt" y es
equivalente a "archivo.txt". Desde la versión 1.0, la librería admite la apertura de
múltiples archivos. [37]
La comunicación entre el microcontrolador y la tarjeta SD utiliza SPI, tiene lugar en los
pines digitales para la configuración de SPI, pines 50, 51 y 52 (Arduino Mega) o puerto
ICSP el cual también comparte la distribución de pines para SPI. Además, otro pin debe
ser utilizado para seleccionar la tarjeta SD. Esto puede ser el pin SS pin 53 (en la
Mega), u otro pin especificado con la llamada a SD.begin (). Si no se utiliza el pin SS,
debe dejarse como una salida o la librería SD no funcionará. [37]
2) Librería LiquidCristal.h
Esta biblioteca permite a una placa Arduino, controlar LCDs, como el procesador
Hitachi HD44780 (o compatible), que se encuentra en la mayoría LCDs, basados en
texto. La biblioteca trabaja tanto en el modo de 4 u 8 bits (es decir, utilizando 4 u 8
líneas de datos, además de rs, habilitar y, opcionalmente, las líneas de control rw).
3) Librería SPI.h
[37]
Todas las placas base AVR tienen un pin SS que es útil cuando actúan como un esclavo
controlado por un maestro externo. Dado que esta librería es compatible con el modo
único maestro, este pin debe establecerse siempre como SALIDA de lo contrario la
interfaz SPI podría ponerse automáticamente en modo esclavo por el hardware, lo que
hace la librería inoperante. Sin embargo, es posible utilizar cualquier pin como el pin de
selección de esclavo (SS) para los dispositivos. [37]
4) Puerto serial
1
La función de atraso de archivos (retroceder), no se puede realizar debido a como se acomodan los datos
en la pila del procesador.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 107
PREGRABADAS EN UNA BASE DE DATOS
INCIALIZACIONES
LIBRERIAS (SD, SPI, LCD, DAC)
Declaraciones de variables globales
Configuración de interrupciones.
Serial.available()
Listar archivos de la SD
Mostrar archivos en LCD
NO
SI
INT. PARAR 1.) Volver a cargar
archivos de la SD.
NO 2.) Para envió de datos al
DAC.
3.) Imprime en el LCD
el primer archivo listado
en la SD.
SI
INT. PAUSAR 1.) Pausa envío de
datos al DAC
LOOP NO
SI
INT. ADELANTO 1.) Selecciona el siguiente
archivo en la lista de la SD
2.) Para el envió de datos
NO al DAC.
3.) Imprime el siguiente
archivo de la lista SD en el
LCD.
FIN
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 108
PREGRABADAS EN UNA BASE DE DATOS
VI. PRUEBAS
Al realizar pruebas, se observa que el conversor funciona de forma correcta, pudiendo
así tomar las mediciones en la salida del conversor y comparándolas con los datos
teóricos o calculados con la ecuación del voltaje de salida del conversor:
Los datos de la tabla 26, fueron tomados con un voltaje de alimentación dual de +5.0V,
para el potencial positivo, un potencial negativo de -4,9V y un voltaje de referencia de
+1,25V, suministrado por el circuito integrado ISL21090-12. Se observa una precisión
mayor al 99%, comparado los 56, datos medidos con los datos teóricos.
Al empezar a reproducir las señales del tipo seno, primero se probó con un archivo
cargado directamente en el programa que se compila y se percibió que la velocidad de
reproducción se mantiene inalterada, es decir, el cambio de frecuencia sintonizado por
el temporizador 1 de la placa Arduino Mega2560, mantiene su velocidad, problema que
se logró solucionar, cambiando los valores de los registros internos del procesador que
corresponden a los diferentes temporizadores, en este caso el temporizador 1.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 110
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 111
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
Se observa que la señal reproducida a 300Hz (figura 82), se ajusta de mejor forma a la
señal seno, siendo menores las imperfecciones producidas. Por lo tanto se procede a
revisar los relojes de SPI de la transmisión de datos al DAC y de la tarjeta SD. Se
observa que el reloj de SPI de transmisión al DAC, funciona a la velocidad correcta, por
ello al compilar un programa que contiene los datos de la señal en el código introducido,
esta no presenta imperfecciones. El fallo radica entonces, en el reloj SPI de la tarjeta
SD, el cual trabaja con una frecuencia de 248KHz, por defecto o de fabricación. Para
resolver el problema debemos cambiar la frecuencia de trabajo de la tarjeta, la cual
viene por defecto con dicha velocidad y no es posible cambiarla directamente desde el
código de Arduino, para modificar dicha frecuencia debemos modificar la librería SD.h
que compila las funciones de Arduino para la tarjeta SD, según como se muestra en la
Figura 83 Modificación de velocidad en la librería SPI.
(Autor)
En la línea 345 de la librería cambiamos SPI_HALF_SPEED, (mitad de la velocidad
SPI), el cual viene por defecto, por SPI_FULL_SPEED (velocidad SPI completa). Lo
cual aumentara la velocidad de transmisión y recepción de datos de la tarjeta SD,
mejorando así la reproducción de la señal pues los datos se leerán más rápidamente.
Después de haber modificado la librería se procede a revisar la frecuencia de reloj de la
tarjeta SD, en lo cual se observa que la señal del reloj SPI de la tarjeta SD, es mucho
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 112
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 113
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
A continuación, se procede a tomar una señal EEG real, en el autor, para ser
reproducida con el dispositivo y comparar el nivel de similitud.
Figura 87. Posición electrodos
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 114
PREGRABADAS EN UNA BASE DE DATOS
VII. RESULTADOS
La señal se obtiene con el programa qCON, en este se aprecian los índices que
componen la señal, los cuales son los niveles de medida de diferentes parámetros
como conciencia, dolor, burst supression y otros. El proyecto no se centra en un
análisis cuantitativo de los índices, sin embargo, los usa para realizar una análisis
comparativo visual de las señales. Este programa nos permite guardar la señal EEG
adquirida en un archivo tipo .bin, que se procesa en Matlab obteniendo un análisis
más completo de la señal en graficas donde se puede apreciar los armónicos de la
señal en su transformada de Fourier, sus componentes y características de tipo
espectral. A continuación, se explican brevemente estos índices.
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 115
PREGRABADAS EN UNA BASE DE DATOS
Al final del proceso Matlab arroja la señal, vista en la figura 89, en la cual se observa la
señal EEG capturada y sus valores de voltaje.
(Autor)
Ahora se reproduce la señal obtenida, desde un archivo de texto creado en Matlab a
partir del archivo .bin de la señal EEG capturada y leída desde la tarjeta SD.
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 116
PREGRABADAS EN UNA BASE DE DATOS
En las señales que muestran los índices se presenta una caída en toma de la señal, que es
producida por la desconexión de las impedancias de entrada reales. El programa al
detectar una descompensación en las impedancias muestra como si se hubiese
desconectado los electrodos electroencefalograficos y muestra un nivel de cero.
En la figura 90, se observa que los índices de la señal reproducida se aproximan a la
señal real, ahora la analizaremos con Matlab y veremos cómo se aproxima a la gráfica
de la señal real.
(Autor)
En las pruebas realizadas se dejó reproduciendo una señal durante el lapso de 20 horas y
no se observó anomalía sobre el dispositivo.
De esta prueba se obtienen dos señales grabadas con el programa qCON una corta de
40.617KB y otra larga de 215.175KB, se procesan en Matlab, la corta no presenta
problema, provee un análisis de la señal que se observa en la figura 92.
Figura 92 Señal EEG de 40KB parte inferior, índices de la señal parte superior.
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 117
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 118
PREGRABADAS EN UNA BASE DE DATOS
(Autor)
(Autor)
Al tiempo de medición de la señal se suman factores de tiempo de retardo, que son
difíciles de controlar, sin una automatización del proceso de captura y
reproducción, como se observa en la figura 96.
(Autor)
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 121
PREGRABADAS EN UNA BASE DE DATOS
VIII. CONCLUSIONES
El tamaño del archivo depende del tipo de variable en el que se carga, así si es
de tipo entero “int” el valor máximo que puede tener el archivo será de
aproximadamente de 32K, si la variable es del tipo “long int”, el valor máximo
del tamaño del archivo será de aproximadamente 2G.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 123
PREGRABADAS EN UNA BASE DE DATOS
REFERENCIAS
[1] J. Bronzino, Biomedical Engineering, Boca Raton: IEEE press, CRC press, 2000.
[11] H. Begleiter, "UCI Machine database data set," 2005. [Online]. Available:
http://archive.ics.uci.edu/ml/datasets/EEG+Database.
nonrandomness-nonlinear-dependence-and.
[17] J. S. Brull, "Conversores D/A A/D," Universidad Nacional del Rosario, Riobamba
Arg., 2006.
[26] muRata, "Application Manual for power supply noise suppression and decoupling
for digital ICs," 2010.
[28] muRata, "Application Manual for Power Supply Noise Suppression and
Decoupling for Digital ICs," 2010.
http://www.tolaemon.com/docs/mmcard.htm.
ANEXOS
ANEXO 1. Código de programa
lcd.print("!!!READY!!!!!");
delayMicroseconds(5000); //tiempo de interfaz
lcd.clear();
}
root = SD.open("/"); //Abre el directorio raíz de SD y lo pone en root
if (Serial.available()) { //Espera que lleguen datos validos al puerto serial
//delay(100); //da tiempo a leer la data de SD
lcd.clear();
while (Serial.available() > 0) { //Lee la data valida
Serial.println(Serial.read()); //Imprime por el puerto serial con salto de línea
}//TERMINA WHILE
}//TERMINA IF
printDirectory(root,0); //Función que imprime el directorio tiene parámetro root
(Print.root)
Serial.println(" done!");
} // TERMINA EL SET UP
//////////////////// FUNCION PARA EL TIMER ///////////////////////////////////
ISR(TIMER1_COMPA_vect) {
Tf=1; //se reinicia a cero cada que envia un dato
}
/* -------- FUNCION QUE IMPRIME EL NOMBRE DE LOS ARCHIVOS DE UNO
EN UNO CON SU .EXT.-------------------------------*/
void printDirectory(File dir, int numTabs) {
entry = dir.openNextFile(); //abre el siguiente archivo con cada interrupt next y queda
en entry //
//fileCount= entry; //para retroceder archivos
if (! entry) { //Si no hay datos en el directorio vuelve al inicio
dir.rewindDirectory(); //Se devuelve al inicio del directorio
// fileCount=0; //Para contar archivos
} //
Serial.println(entry.name()); //imprime el nombre del archivo por el puerto serial
lenFile=entry.size(); //Mira si el archivo es válido con el tamaño en bytes
lcd.clear();
lcd.println(entry.name()); //Imprime en LCD el nombre del archivo valido
// fileCount ++;
lcd.home();
entry.close(); //Cierra el directorio
}
/*------------------------- INTERFAZ ------------------------------------------*/
//La interfaz se compone de 5 interrupciones para el manejo y reproducción de archivos
/*------- PULSO PLAY ----------------------------*/
void REPRODUCIR () {
lcd.clear();
lcd.println(" !!!PLAY");
estado=1; //reproduce en estado=1 en el loop
}
/*-------------- PULSO NEXT ------------------------------------*/
void ADELANTAR(){
fileCount ++;
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 132
PREGRABADAS EN UNA BASE DE DATOS
delayMicroseconds(5000);
bool P =digitalRead(NEXT);
if (P==0){
printDirectory(root,0);
}
}
////////////////// PULSO PAUSE ////////////////////////////////////////////
void PAUSAR(){
delayMicroseconds(5000);
estate1=1;
siga=1;
lcd.clear();
lcd.println(" !!! PAUSE");
}
/////////////////////// PULSO STOP /////////////////////////////////////
void PARAR (){
delayMicroseconds(5000);
lcd.clear();
lcd.println(" !!!STOP");
estate2=1;
}
/*---------------- PULSO ATRAZAR ------------------------------------------*/
void ATRAZAR (){
delay (50);
bool P =digitalRead(PREV);
fileCount--;
Serial.println();
lcd.println();
}
////////////////////////////////LOOP////////////////////////////////////////////////////
void loop(){
if (estado==1){ //SE PULSO PLAY????????
if (lenFile>0) { //lenFile determina si es un archivo valido para leer si
(lenFile.available>0) se ejecuta lo que esta abajo
File dataFile =SD.open(entry.name()); //Se abre el nombre del archivo
if (dataFile){ //está el dato en el buffer
while (dataFile.available()) { //Si el archivo es válido se lee byte a byte
///////////// se organizan los datos en valores de 5 cifras para ser enviado al dac de forma
correcta valores de 0 a 65535 //////////////////
if(flagtemp==1){ //flag para detener el if hasta que se cumpla el timer
int vec[5]; //se crea un vector de 5 datos y 6 posiciones
int cont=0; //índice del vector
for(cont=0; cont<=6; cont++){ //llena 6 posiciones en la
ultima pone basura de carry y sobreflujo
dato = datafile.read()- 48; //lec. guarda el dato en decimal
if(dato>=0 && dato<10 ) { // si hay números validos de 0
a 9 se organizan en el vector
vec[cont]=dato; //el índice del vector es cont este contara
de 0 a 6 dejando 2 para acumular basura
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 133
PREGRABADAS EN UNA BASE DE DATOS
}
}
dato = ( ((vec[0])*10000) + ((vec[1])*1000) + ((vec[2])*100) +
((vec[3])*10)+ (vec[4]) ); //organiza las posiciones de los datos por su potencia
//Serial.println(dato);
///////////////////////////////////////////////////////////////////TIMER/////////////////////////////////////////////////
flagtemp=0; // Se reinicia con el timer
}
if(Tf==1) { //Timer
envio(dato);
flagtemp=1; //Control timer
Tf=0; //Timer reinicia
}
/////////////////////// FIN DE LA CONVERSION DEL DATO ////////////////////////////////////////
if (estate2==1){ //SE PULSO STOP ????
delayMicroseconds(5000);
lcd.println(entry.name());
delayMicroseconds(5000);
lcd.clear();
estate2=0; //Clarea STOP
estado=0; //termina la reproducción
Serial.println(entry.name());
lcd.println(entry.name());
}
else{
if (estate1==1){ //PULSO PAUSE ???????
Serial.peek(); //lee el byte sin avanzar al siguiente
unsigned long tam =entry.size(); //Lee el tamaño del
archivo para saber dónde continua
// entry.position(tam); //Guardar la posición que está
leyendo
delay(100000);
if(siga==1){ //bandera que solo se activa si está en pause y
presiona otra vez pause para volver a reproducir
}
}
else{
}
}
} //Cierra while
dataFile.close(); //Siempre asegurar cerrar archivo
estado=0; //clarea play termina la reproducción condiciones para leer nuevo
archivo
lcd.clear();
lcd.print(" !!END FILE!!");
delayMicroseconds(5000);
lcd.clear();
delayMicroseconds(500);
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 134
PREGRABADAS EN UNA BASE DE DATOS
}
/////////////////////////////////// END //////////////////////////////////////
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 135
PREGRABADAS EN UNA BASE DE DATOS
ANEXO 2. Revisión del estado del arte para proyecto simulador de bioseñales
EEG.
PRODUCTOS EN MERCADO
1. Simulador de 32 canales marca: Natus
Dispositivo usado en electroencefalografía de 32 canales con la norma 10-20,
Memoria EPROM para un bucle de 1 min. De duración
Frecuencia de muestreo: 120Hz
Consumo: ± 2,5mA
Cable de transición MCB-21408 conector hembra 25 pines.
[60]
[61]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 136
PREGRABADAS EN UNA BASE DE DATOS
[62]
[63]
[64]
[65]
7. TruScan 32 EEG
Sistema portátil de 32 canales EEG
Software qEEG/Neurofeedback para comunicación con PC
Eficiencia energética graba más de 120 horas
Suite se software TruScan y capacidad de hacer backup
Foto-estimulación de hasta 60Hz; Compatibilidad con MATLAB
Configurable hasta 128 canales de grabación y visualización
Configurable en red para varias estaciones
[66]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 138
PREGRABADAS EN UNA BASE DE DATOS
[67]
[68]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 139
PREGRABADAS EN UNA BASE DE DATOS
Marca Canales Frecuencia Voltaje Voltaje Consumo Comunicación Memoria Resolución Software Norma CMRR
(Hz) IN OUT (AH) (bits) (dB)
Natus 32 120 Hz 5 ̃(u-m)V ±2,5mAH NCB-21408 EPROM cada 64s Neurotrac III ISO 9001
(1')
Netechet 12 α-β, ABR 9 uV uC EEG simulator ISO
/IEC17025
Minisim 12 (0.1-60)Hz, 9 (10u- EEG simulator ISO
330 ABR 2,5m)V /IEC17025
21 (ECG,EEG ̃(u-m)V ISO 9001
Jena simulator (α,β,ϴ,∆))
g-MOBIlab 8 256Hz 5 ̃(u-m)V Bluetooth flash 2GB 16 bits SIMULINK IEC660601
-1
3 (ECG,EEG 5 ̃(u-m)V Bluetooth 16 bits ISO 9001
NCC- Electronic (α,β,ϴ,∆))
TruScan 32(128 EEG 5 ̃(u-m)V qEEG / ISO 9001
Config) (α,β,ϴ,∆) Pcc paralelo Neudofeedback
The Grateful 16 EEG 5 ̃(u-m)V CD The Grateful ISO 9001
M400 (α,β,ϴ,∆) Pcc paralelo Head
Scientech 12 30* EEG 120Vac ̃(u-m)V Online Scientech ISO 9001 >80
(α,β,ϴ,∆) 60Hz TechBooks
2
2
La presentación de los productos y de sus características por parte de los fabricantes no se rige por estándares internacionales por ende algunos enfatizan en
características que otros no detallan, por lo tanto se dificulta una comparativa minuciosa.
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 140
PREGRABADAS EN UNA BASE DE DATOS
EL CEREBRO VIRTUAL
Emerge como una respuesta a la necesidad del estudio y conocimiento del cerebro y sus
características congénitas.
[77]
SISTEMA ELECTRONICO PARA REPRODUCIR SEÑALES BIOMEDICAS 141
PREGRABADAS EN UNA BASE DE DATOS