sistema telemetrico inalambrico para la medicion y analisis
Transcripción
sistema telemetrico inalambrico para la medicion y analisis
SECRETARIA DE EDUCACIÓN PÚBLICA DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA INSTITUTO TECNOLÓGICO DE MÉRIDA “SISTEMA TELEMÉTRICO INALÁMBRICO PARA LA MEDICIÓN Y ANÁLISIS DE POTENCIALES NEURONALES” OPCIÓN I TESIS PROFESIONAL PARA OPTAR AL TÍTULO DE: INGENIERO ELECTRÓNICO. PRESENTA: CESAR EDUARDO ELJURE ROSEL GERARDO ISMAEL LOPEZ ANCONA MÉRIDA, YUCATÁN, MÉXICO 2013 1 ÍNDICE GENERAL. INTRODUCCIÓN ............................................................................................................ 1 OBJETIVOS DE LA INVESTIGACIÓN ............................................................................ 2 HIPÓTESIS ..................................................................................................................... 2 LIMITACIONES Y DELIMITACIONES ............................................................................ 3 JUSTIFICACIÓN ............................................................................................................. 4 IMPACTO SOCIAL Y TECNOLÓGICO ........................................................................... 4 CRONOGRAMA .............................................................................................................. 5 CAPÍTULO I: ASPECTOS TEÓRICOS ........................................................................... 6 1.1 NEUROCIENCIA .................................................................................................... 6 1.1.1 NEUROFISIOLOGÍA ....................................................................................... 7 1.1.2 EL SISTEMA NERVIOSO Y LAS CÉLULAS ................................................... 7 1.1.3 POTENCIAL ELÉCTRICO EN LAS NEURONAS ............................................ 8 1.1.3.1 POTENCIAL DE ACCIÓN Y POTENCIAL EN REPOSO ..................... 9 1.2 SISTEMA DE TELEMETRÍA............................................................................. 10 1.2.1 COMPONENTES DE UN SISTEMA DE TELEMETRÍA................................. 11 1.2.2 DESCRIPCIÓN DE LAS PARTES DE UN NODO EN LA TELEMETRÍA ...... 12 1.2.2.1 CONVERTIDOR ANALÓGICO DIGITAL ........................................... 13 1.2.2.1.1 CONVERTIDOR DELTA-SIGMA ............................................... 14 1.2.2.2 COMUNICACIÓN INALÁMBRICA ..................................................... 16 1 1.2.2.2.1 ESTÁNDARES MÁS COMUNES EN LAS REDES INALÁMBRICAS DE CORTO ALCANCE ............................................................... 16 1.2.2.2.1 HOMERF ............................................................................ 17 1.2.2.2.1 BLUETOOTH ...................................................................... 17 1.2.2.2.1 WIFI(802.11) ....................................................................... 18 1.3 EL MICROCONTROLADOR ................................................................................ 19 CAPÍTULO II: ANTECEDENTES .................................................................................. 21 CAPÍTULO III: DISEÑO ELECTRÓNICO ...................................................................... 28 3.1 DEFINICION DEL PROBLEMA A RESOLVER .................................................... 28 3.2 DEFINICION DE LAS VARIABLES DE ENTRADA Y SALIDA ............................. 28 3.3 DISEÑO DEL FILTRADO, AMPLIFICACIÓN Y DIGITALIZACIÓN DE LA SEÑALES ELECTRICAS .......................................................................................... 30 3.4 MICROCONTROLADOR 16LF1823 .................................................................... 37 3.5 INTERFAZ SPI .................................................................................................... 39 3.6 MODULO TRANSCEPTOR DR3300 .................................................................. 41 3.7 MODULO TRANSCEPTOR HC-05 ..................................................................... 48 CAPÍTULO IV: RESULTADOS Y CONCLUSIONES ..................................................... 55 4.1 RESULTADOS .................................................................................................... 55 4.2 CONCLUSIONES ............................................................................................... 56 REFERENCIA BIBLIOGRAFICAS ............................................................................... 58 1 ANEXO 1: CÓDIGO DE PROGRAMACIÓN EN MATLAB PARA LA RECEPCIÓN DE DATOS POR PUERTO USB ......................................................................................... 60 ANEXO 2: CÓDIGO DE PROGRAMACIÓN PARA LA TRANSMISIÓN DE DATOS. .... 61 ANEXO 3: CÓDIGO DE PROGRAMACIÓN PARA LA RECEPCIÓN DE DATOS EN LA ESTACIÓN BASE. ................................................................................................... 62 ANEXO 4:DESCRIPCIÓN DE PINES DEL MICROCONTROLADOR PIC16LF1823.... 63 ANEXO 5 :CÓDIGO DE PROGRAMACIÓN DEL ADS1194 UTILIZANDO MPLAB. ..... 66 ÍNDICE DE FIGURAS. Fig. 1.1- Neurona típica ................................................................................................... 8 Fig. 1.2-Representación de la respuesta del axón ante diferentes estímulos internos. ... 9 Fig. 1.3-Potenciales eléctricos en los diferentes canales de sodio y potasio ................ 10 Fig. 1.4-Descripción de las partes de un nodo ............................................................. 11 Fig. 1.5-Esquema básico del Convertidor Analógico-Digital .......................................... 13 Fig. 1.6-Diagrama a bloques de un convertidor Delta-Sigma ........................................ 15 Fig. 1.7-Estructura típica de un microcontrolador ......................................................... 20 Fig. 2.1-Diagrama a bloques del sistema de registro y estimulación multicanal............ 24 Fig. 2.2: Modulo para la adquisición de un canal de EEG ............................................. 26 1 Fig. 2.3- Diagrama a boques del diseño de un Front-End ........................................... 26 Fig. 3.1-Definición de las variables de entrada y de salida del sistema ........................ 29 Fig. 3.2-Diagrama a bloques del sistema telemétrico inalámbrico completo ................. 30 Fig. 3.3-Encapsulado TQFP-64 del ADS1194 ............................................................... 31 Fig. 3.4-Diagrama de bloques del ADS1194 ................................................................. 32 Fig. 3.5-Diagrama a flujo para configuración del ADS1194 ........................................... 33 Fig. 3.6-Registro de configuración CONFIG 1 ............................................................... 34 Fig. 3.7- Registro de configuración CONFIG 3 .............................................................. 35 Fig. 3.8- Registro de configuración individual de los canales (CHnSET) ...................... 36 Fig. 3.9- Diseño de la tarjeta de evaluación del ADS1194 ............................................ 36 Fig. 3.10- Conexión del ADS1194 usando alimentación unipolar(+3V/+1.8V) ............. 37 Fig. 3.11-Diagrama de pines del PIC16LF1823 ............................................................ 38 Fig. 3.12- Diagrama esquemático de la conexión SPI................................................... 40 Fig. 3.13-Modulo transceptor de radiofrecuencia DR3300 ............................................ 41 Fig. 3.14- Diagrama esquemático del modulo transceptor DR3300 .............................. 42 Fig. 3.15- Salida de los pines del DR3300 .................................................................... 44 Fig. 3.16- Circuito de aplicación a 1Mbps ..................................................................... 45 Fig. 3.17- Circuito esquemático para la transmisión de datos ....................................... 45 Fig. 3.18- Circuito esquemático para la recepción de datos .......................................... 46 Fig. 3.19- Circuito para la transmisión de datos utilizando el DR3300 ......................... 47 1 Fig. 3.20- Circuito para la recepción de datos utilizando el DR3300 ............................ 47 Fig. 3.21- Modulo transceptor bluetooth HC-05............................................................. 48 Fig. 3.22- Diagrama de conexiones bluetooth-Arduino Uno .......................................... 51 Fig. 3.23- Configuración por comandos AT ................................................................... 53 Fig. 3.24-Diagrama esquemático de las conexiones Bluetooth-PIC16LF1823 para la recepción de datos enviados desde la estación base. .................................................. 54 Fig. 3.25- Conexión de Arduino UNO con el bluetooth para la configuración ............... 54 Fig. 4.1- Pruebas realizadas para la transmisión y recepción de datos a 1Mbps utilizando el DR3300 ..................................................................................................... 55 Fig. 4.2- Modulo de prueba para el ADS1194 ............................................................... 56 Fig. 4.3- Modulo de prueba para el transceptor DR3300 .............................................. 56 INDICE DE TABLAS Tabla 1-Velocidad y tiempos mínimos de transmisión ................................................. 22 Tabla 2-Algoritmo de lectura y escritura de los buffers ................................................. 23 Tabla 3-Descripcion de pines del DR3300 .................................................................... 43 Tabla 4- Descripción de pines del HC05 ....................................................................... 50 Tabla 5- Comandos AT para la configuración del Bluetooth HC-05 .............................. 52 1 INTRODUCCIÓN A lo largo de los años, muchos estudiosos de la medicina han analizado nuevas alternativas ante enfermedades neurológicas; con el objetivo de estudiar dichas enfermedades, se han realizado pruebas en animales que presentan una actividad neuronal semejante a la del ser humano. Sin embargo, dichos estudios no son totalmente confiables debido a factores o perturbaciones que se presentan durante el análisis. Uno de esos problemas es que el animal se encuentra sometido a dispositivos cableados que reducen la fluidez de su movilidad. El uso de nuevas tecnologías capaces de eliminar o reducir dichos factores proporcionará un avance tecnológico y social que permitirá a los estudiosos analizar los datos y/o las señales de manera inalámbrica, dando resultados más fieles. El sistema desarrollado cuenta con dos partes importantes: una es la que se encarga de adquirir los datos, procesarlos, amplificarlos y digitalizarlos y la otra se encarga de la recepción y transmisión inalámbrica de los datos utilizando dispositivos especiales. Con esto se simulará un sistema capaz de transmitir inalámbricamente datos provenientes de cualquier tipo de señal eléctrica permitiendo al usuario obtener mediciones correctas. 1 OBJETIVOS DE LA INVESTIGACIÓN OBJETIVO GENERAL: Diseñar e implementar un sistema telemétrico inalámbrico capaz de adquirir y transmitir señales neuronales para el desarrollo de nuevas alternativas en el área de la medicina. OBJETIVOS ESPECÍFICOS: Diseñar un módulo para la adquisición de señales eléctricas. Desarrollar e implementar un protocolo de comunicación inalámbrico para el envío y recepción de datos. Realizar un código de programación para los dispositivos a utilizar que sean capaces de controlar el encendido y apagado de dispositivos indicadores controlados por el usuario. HIPÓTESIS El desarrollo de un sistema capaz de adquirir potenciales neuronales y transmitirlos de manera inalámbrica otorgará mayor confiabilidad al momento de detectar anomalías en el sistema nervioso constriñendo la pérdida de datos al mínimo. Esto se logrará implementando dispositivos electrónicos y empleando nuevas tecnologías que permitan realizar la tarea de una manera más eficiente. 2 LIMITACIONES Este trabajo es un prototipo para la adquisición de señales neuronales del cerebro de una rata. Sin embargo, al no contar con la rata ni con los electrodos para tomar las muestras de las señales, éstas se simularán. Ya que no se cuenta con los micromotores para el reposicionamiento de los electrodos; únicamente se representará el encendido, apagado y sentido de estos a través de indicadores LED. DELIMITACIONES Este trabajo será presentado como un prototipo en placa de circuito impreso con componentes electrónicos, cuyo encapsulado se presenta en Dual in-line package (DIP) La adquisición de señales se realizará a través de 4 canales de manera pseudo-simultánea y se transmitirán inalámbricamente hacia un dispositivo receptor capaz de mostrar los datos obtenidos. El dispositivo de adquisición de datos tomará las señales eléctricas simuladas. En el diseño aún no se ha especificado el tipo de alimentación; por lo tanto, serán energizados con una fuente de voltaje regulada (encontrada en los laboratorios de electrónica). El usuario será capaz de controlar el encendido y apagado de 4 indicadores (led), dichos indicadores LED representarán el control de 2 motores. Estas 3 representaciones de los motores simularán el movimiento de 2 pares de electrodos; pudiendo estos ir hacia abajo o hacia arriba. JUSTIFICACIÓN A lo largo de los años han surgido enfermedades que atacan el sistema nervioso central. A través del tiempo se han creado fármacos para neutralizar estos padecimientos; y a la fecha, se siguen buscando soluciones para este tipo de afecciones. Sin embargo para que estos fármacos sean efectivos, se requiere hacer estudios y pruebas en animales. Desafortunadamente, actualmente solo existen sistemas alámbricos diseñados para estos estudios; consecuentemente, proporcionan incomodidad al sujeto en estudio y los datos obtenidos podrían no ser fidedignos. Por lo tanto, lo que se requiere es eliminar dichas perturbaciones para que los datos obtenidos sean más eficientes y precisos. Implementar un sistema telemétrico inalámbrico reduciría los diversos factores que ocasionan la adquisición de datos incorrectos. IMPACTO SOCIAL Este sistema facilitará el diagnóstico de enfermedades neuronales; de igual manera, proporcionará una alternativa en la creación de nuevos fármacos que combatan las enfermedades del sistema nervioso central. IMPACTO TECNOLÓGICO Este sistema, implementará un nuevo método para la adquisición y estudio de potenciales neuronales; empleando dispositivos electrónicos capaces de reducir los diversos factores que ocasionan la adquisición de datos incorrectos. 4 CRONOGRAMA DE ACTIVIDADES ACTIVIDAD DESCRIPCION DE ACTIVIDADES 1 Investigar acerca de diferentes dispositivos de transmisión inalámbrica que cumplan con las especificaciones requeridas. 2 Calcular la tasa de baudios necesaria para transmitir la información y calcular la frecuencia de muestreo del ADS1194 3 Filtrar, amplificar y digitalizar 4 señales eléctricas utilizando algún dispositivo de adquisición de datos. 4 Diseñar un protocolo de comunicación inalámbrica entre microcontroladores. 5 Acoplar el transmisor de radiofrecuencia al Microcontrolador a utilizar. 6 Añadir subrutinas que permitan reconfigurar ciertos parámetros del dispositivo que acondiciona las señales durante la ejecución de la rutina principal. 7 Diseñar y construir tarjetas de circuito impreso con tecnología Dual in-line package (DIP) 8 Elaboración del reporte final. ACTIVIDAD MES Enero Febrero Marzo Abril Mayo Junio 1 2 3 4 5 6 7 8 5 CAPÍTULO I: ASPECTOS TEÓRICOS En la actualidad existen diversas enfermedades que afectan al ser humano; por esta razón, médicos, biólogos y científicos buscan nuevas técnicas o tratamientos que prevengan o curen dichas enfermedades. Sin embargo, realizar pruebas en los seres humanos resulta una tarea complicada; ya que, es difícil prevenir los efectos secundarios que puede ocasionar el fármaco en estos. Además de que es muy complicado evaluar los resultados de las pruebas. Un método empleado en distintos laboratorios consiste en realizar pruebas o experimentos en animales que presenten un funcionamiento fisiológico similar al del ser humano; debido a esta similitud, se puede transpolar el comportamiento o los efectos secundarios de estos medicamentos al ser humano. La neurociencia se encarga de estas investigaciones. 1.1 Neurociencia El preguntarse por el origen de las sensaciones, la capacidad de moverse, de hablar, reír o llorar es una cuestión que el ser humano tiene por nacimiento. La relación de estos fenómenos con el sistema nervioso ha sufrido muchos cambios históricos hasta el surgimiento de una disciplina enfocada al esclarecimiento de la estructura y función del sistema nervioso: la Neurociencia [1]. Uno de los sistemas del ser humano que es seriamente afectado por distintas enfermedades es el sistema nervioso. La rama de la ciencia que estudia el funcionamiento del sistema nervioso es la “neurofisiología”. 6 1.1.1 Neurofisiología La Neurofisiología es la rama de la fisiología que estudia el sistema nervioso. En cualquier acción o conducta de todo organismo, está presente el sistema nervioso. Cualquier cambio en su desarrollo es resultado de modificaciones funcionales de dicho sistema. La neurofisiología se ocupa de revelar cómo funciona este complicado sistema y cómo produce la variedad de modelos o de conductas que manifiestan los organismos. Sin embargo, a pesar de los avances producidos en la investigación, sobre todo en los aspectos bioquímicos y eléctricos, se tiene la convicción de que es mucho más lo que se desconoce[2]. 1.1.2 El sistema nervioso y las células El sistema nervioso permite al organismo reaccionar frente a los continuos cambios que se producen en el medio ambiente y en el medio interno. Además, controla e integra las diversas actividades del organismo, como la circulación y la respiración. El sistema nervioso se divide: Estructuralmente, en sistema nervioso central (SNC), compuesto por el encéfalo y la medula espinal, y el sistema nervioso periférico (SNP), que son los nervios y neuronas que llevan los impulsos del cerebro a todo el cuerpo. El tejido nervioso se compone de dos tipos principales de células: neuronas (células nerviosas) y neuroglia (células de la glía), que sirven de soporte a las neuronas. 7 Para poder monitorear los resultados de las pruebas es muy importante el estudio de las neuronas; debido a que, son las responsables del cambio en la conducta motora y la actividad eléctrica. Las neuronas son las unidades estructurales y funcionales del sistema nervioso especializadas para una rápida comunicación. Una neurona se compone del cuerpo celular con prolongaciones denominadas dendritas y un axón, que lleva los impulsos hacia y desde el cuerpo celular, respectivamente [3]. Figura 1.1: Neurona típica 1.1.3 Potencial eléctrico en las neuronas. En esta tesis se estudiará ,sobre todo, el potencial electrico que tienen las neuronas; ya que, en base a éste se podrá realizar un análisis del comportamiento dependiendo del tipo de estímulo que se le aplique al sujeto en estudio. Se debe recalcar que la carga eléctrica interior de la neurona es diferente a la del exterior; esto crea un diferencial de potencial. Según el tipo de estímulo que recibe la neurona, la diferencia de potencial puede aumentar (hiper polarización): se hace más negativo el interior de la neurona. 8 Si el estímulo supera un umbral, la despolarización dispara el llamado “Potencial de acción “. Figura 1.2: Representación de la respuesta del axón ante diferentes estímulos internos. La ley del todo o nada indica que la neurona genera un impulso solo si se supera el umbral(“todo”); y no lo genera si no se supera(“nada”). 1.1.3.1 Potencial de acciòn y potencial en reposo. Es importante tener claros los conceptos de potencial de acción y potencial de reposo; ya que son los que se simularán en la presente tesis. El potencial de reposo existe cuando hay una distribución desigual de iones dentro y fuera de la neurona: la neurona está polarizada inversamente. Mientras que el potencial de acción se presenta cuando la neurona recibe un estímulo que cambia su distrubución de iones y su polaridad. Cuando se alcanza un potencial de acción se producen, de forma ordenada, movimientos de iones a través de la membrana de la neurona. Esto origina cambios transitorios de potencial.[5]. 9 Figura 1.3: Potenciales eléctricos en los diferentes canales de sodio y potasio 1.2 Sistema de telemetría. Una vez estudiado lo que es un potencial de acción y un potencial en reposo; es necesario medir y transmitir dichas señales. Para realizar este proceso deberán emplearse varios métodos; uno de estos es el sistema telemétrico. Se conoce como telemetría al proceso de recolección, concentración, señalización y envío de puntos discretos (alarmas, contactos secos) y puntos analógicos (voltajes) hacia un punto centralizado para su tratamiento. El punto donde se adquieren los datos es llamado nodo; éste se conforma por el medidor y el transmisor. Para poder realizar una medición de las señales obtenidas de las neuronas se requiere emplear algún método. Uno de los principales métodos empleados es el diseño de un sistema telemétrico. Los sistemas de telemetría son los encargados de realizar mediciones en un punto remoto para luego transmitirlo a un centro de control. El equipo utilizado en cualquier sistema de telemetría debe ser capaz de: medir una magnitud física, producir una señal que pueda modificarse de alguna manera 10 para transportar los datos medidos y transmitir esta señal codificada por algún tipo de canal de transmisión. La medición a distancia es, sin embargo, relativa; ya que, la telemetría también se utiliza para obtener información en lugares cercanos pero de acceso difícil, peligroso e incluso imposible [4]. 1.2.1 componentes del sistema de telemetría. Los sistemas de telemetría están compuestos por diferentes elementos, y varían dependiendo de la aplicación; pero en general su estructura está constituida por: nodos, los cuáles están encargados de hacer la medición de las variables físicas, y de un centro de monitoreo y control. En un nodo se encuentra básicamente lo siguiente: Sensor. Acondicionamiento de la señal generada por el sensor. Sistema de procesamiento y/o almacenamiento. Sistema de comunicación de datos Figura 1.4: Descripción de las partes de un nodo. 11 1.2.2 Descripción de las partes de un nodo en la telemetría Sensor: Se llama sensor al instrumento que produce una señal, usualmente eléctrica, que refleja el Valor de una propiedad mediante una correlación definida [4] ; un ejemplo serían los electrodos que reciben una señal eléctrica proveniente de las neuronas del animal en estudio. Ésta es la razón por la cuál en esta tesis el electrodo se encargará de extraer la señal eléctrica proveniente de las neuronas del animal en estudio. Acondicionamiento de la señal generada por el sensor: La señal producida por el sensor la mayoría de las veces está en unos rangos que no pueden ser directamente acoplados al sistema procesador o de almacenamiento; por lo que, se hace necesario adecuarlos a niveles apropiados antes de ser procesados. La manera de hacerlo es usando circuitos especiales para ponerlas en rango de trabajo [4]. En el acondicionamiento que se realizará a las señales eléctricas obtenidas de los electrodos es primordial: primero, una etapa de amplificación para el ajuste de la sensibilidad del sistema; segundo, una etapa de filtrado para minimizar el ruido en las señales debido a que las señales fisiológicas obtenidas se encuentran en el rango de microvolts o milivolts. Sistema de procesamiento y/o de almacenamiento: Es el encargado de recibir las señales provenientes de los sensores, previo acondicionamiento, y de realizar algún tipo de proceso para transmitirlo y/o almacenarlo, dependiendo de la aplicación o de las necesidades del sistema [4] . 12 1.2.2.1 Convertidor Analógico Digital (ADC) Hasta este momento el tipo de señales en el sistema telemétrico corresponde a señales analógicas. Por esta razón se requiere una etapa encargada del procesamiento digital; es decir, la conversión de la señal analógica a señal digital que requiere el uso del convertidor Analógico-Digital (ADC). El ADC posee un proceso de tres pasos; los cuales son: Figura 1.5: Esquema básico del Convertidor Analógico-Digital I.- Muestreo: Ésta es la conversión de una señal en tiempo continuo a una señal en tiempo discreto obtenida tomando muestras de la señal en tiempo continuo en instantes de tiempo discreto. Así xa(t) es la entrada al muestreador, la salida es xa(nT) ≡ x(n), donde el intervalo de muestreo se denomina T. II.- Cuantificación: Ésta es la conversión de una señal en tiempo discreto con valores continuos a una señal en tiempo discreto con valores discretos (señal digital). El valor de cada muestra de la señal se representa mediante un valor seleccionado de un conjunto finito de valores posibles. La diferencia entre la muestra sin cuantificar x(n) y la salida cuantificada xq(n) se denomina error de cuantificación. 13 III.- Codificación: En el proceso de codificación, cada valor discreto xq(n) se representa mediante una secuencia binaria de n bits [6]. 1.2.2.1.1 Convertidores Delta-Sigma Las señales obtenidas por los electrodos serán digitalizados en un ADC para luego ser enviado a una unidad de procesamiento. Los convertidores delta-sigma, hoy en día, son empleados en aplicaciones biomédicas donde es vital la obtención y amplificación de señales en el orden de mV. Los convertidores delta-sigma se destacan por su alta resolución y son ideales para la conversión de señales con un ancho de banda amplio (desde tensión continua hasta una frecuencia de algunos mega ciclos). Básicamente, en estos convertidores la señal de entrada es sobre muestreada (oversampling) por un modulador y luego filtrada y decimada por un filtro digital produciendo una conversión de muy alta resolución a tasas de muestreo relativamente bajas. La conversión propuesta por los convertidores delta-sigma permite que la resolución pueda ser negociada por velocidad o consumo. Estos dispositivos permiten que este comportamiento pueda ser programado. Entre las aplicaciones típicas se encuentran: el audio, los procesos de control industrial y los instrumentos médicos, entre otros. 14 Figure 1.6: Diagrama a bloques de un convertidor Delta-Sigma Prácticamente todos los convertidores delta-sigma tienen entradas diferenciales. Esto significa que, en realidad, la medición se toma por la diferencia de voltaje entre las 2 entradas en vez de la diferencia entre un voltaje y tierra [7]. Sistema de comunicación de datos: una vez procesadas las señales producidas por el sensor, éstas deben ser transmitidas por un canal que puede ser guiado, o no, hacia un centro de control para ejecutar una acción predeterminada. Para realizar el envío de datos debe usarse un protocolo que permita transmitir diferentes señales en el caso de existir varios nodos que quieran acceder al canal; eso dependerá de la arquitectura del sistema [4]. Este sistema pretende adquirir datos de cuatro señales diferentes por lo que necesitará un protocolo o una cabecera de comunicación para cada canal. 15 1.2.2.2 Comunicación inalámbrica Actualmente, uno de los inconvenientes que se han presentado al estudiar animales es que se encuentran en condiciones desfavorables. El estar conectados a algún dispositivo electrónico cableado afecta la comodidad del sujeto de estudio; por ende, proporcionaría datos incorrectos. Una forma de eliminar esta perturbación es utilizar una tecnología de comunicación inalámbrica reduciendo cualquier tipo de incomodidad y obteniendo datos fieles. El sistema presentado utilizará una comunicación inalámbrica para eliminar cualquier tipo de estrés o incomodidad en el sujeto de estudio. La comunicación inalámbrica o sin cables es aquella en la que los extremos de la comunicación (emisor/receptor) no se encuentran unidos por un medio de propagación físico; sino que, se utiliza la modulación de ondas electromagnéticas a través del espacio. La comunicación que se realiza a través de la tecnología inalámbrica utiliza ondas de radiofrecuencia de baja potencia y una banda específica, de uso libre o privada, para transmitir entre dispositivos; ésta facilita la operación en lugares donde el transmisor o el receptor no se encuentran en una ubicación fija 1.2.2.2.1 Estándares más Comunes en las Redes Inalámbricas de Corto Alcance. Existen varios estándares o topologías de comunicación inalámbrica; como pueden ser: HomeRF, bluetooth, ZigBee, RFID, y WiFi. En el trabajo se descartarán 16 los estándares ZigBee y RFID; ya que no son útiles para esta aplicación. En este apartado analizaremos las ventajas, desventajas y funciones de estos tres tipos de estándares: HomeRF, Bluetooth y WiFi. 1.2.2.2.1.1 HomeRF El estándar HomeRF es una especificación que permite la interconexión de dispositivos inalámbricos en un área pequeña. Con esta tecnología se puede acceder a la red de tu casa u oficina desde un teléfono celular y se puede controlar dispositivos o consultar a distancia los datos importantes para tu beneficio y acceder al internet con solo conectarte; esto en el caso de contar con una red casera o de oficina. HomeRF es la tecnología que compite directamente con los productos de la IEEE 802.11 y Bluetooth en la banda de 2.4 GHz. Entre las prestaciones que ofrece este estándar de comunicaciones se encuentran los siguientes puntos: Modulación FSK (modulación en frecuencia). Velocidad de datos variables entre 800 Kbps y 1.6 Mbps. Utiliza la banda de 2.4 GHz. 75 canales de 1 MHz para voz. 1.2.2.2.1.2 Bluetooth. El estándar Bluetooth permite al usuario conectar de manera simple y fácil una gran variedad de dispositivos de computación y de telecomunicaciones. Esta tecnología es ideal para comunicaciones de corto rango debido a que: posee la 17 habilidad de interactuar entre dispositivos en un ambiente lleno de ruido por interferencia, permite localizar y conectarse con otros dispositivos Bluetooth, requiere de una baja potencia para su uso y es de muy bajo costo. El estándar Bluetooth cuenta con la especificación de la industria de las telecomunicaciones para trabajar en la banda de 2.4 GHz; la cuál, al ser una banda sin necesidad de licencia, es muy útil para los dispositivos que utilizan la comunicación inalámbrica de corto rango. Sin embargo al utilizar la banda de 2.4 GHz, se puede tener interferencia de otros protocolos que utilizan el mismo espectro de frecuencia; como es el caso del protocolo IEEE 802.11 y HomeRF. La tecnología Bluetooth cuenta con las siguientes características: Los dispositivos Bluetooth son adaptables globalmente. Tienen un bajo consumo de potencia. Pueden interconectarse varios dispositivos al mismo tiempo. Utiliza un sistema de encriptación para la seguridad de envió de datos. 1.2.2.2.1.3 WiFi (IEEE 802.11) El estándar 802.11 es muy similar al 802.3 (Ethernet) con la diferencia que tiene que adaptar todos sus métodos al medio “No Guiado” de transmisión. En este estándar se encuentran las especificaciones tanto físicas como a nivel MAC. Una red de área local utiliza ondas electromagnéticas para enlazar los equipos conectados a la red en lugar de los cables coaxiales o de fibra óptica que se utilizan en las LAN convencionales cableadas. El atractivo fundamental de este tipo de redes 18 es la facilidad de instalación y el ahorro que supone la supresión del medio de transmisión cableado. Aun así sus prestaciones son menores en lo referente a la velocidad de transmisión que se sitúa entre los 2 y los 10 Mbps frente a los 10 y hasta 100 Mbps ofrecidos por una red convencional [1]. 1.3 El Microcontrolador Este sistema telemétrico inalámbrico necesitará un dispositivo que se encargue de la codificación, decodificación, configuración, inicialización, transmisión y recepción de las señales. Para que pueda ser de utilidad en la aplicación, se utilizará un Microcontrolador que cuente con ciertas características específicas Ciertas aplicaciones industriales requieren de determinados sistemas digitales programables que permiten un control relativamente fácil de dicha aplicación. Los microcontroladores son sistemas digitales inteligentes (programables). Estos incluyen en un mismo chip todos los componentes más importantes de un sistema basado en un microprocesador: CPU, memoria, puertos de E/S, etc. El Microcontrolador nació cuando las técnicas de integración progresaron lo suficiente como para incluir en un mismo chip un sistema programable completo. La estructura típica de un Microcontrolador dispone de los siguientes elementos: El CPU ejecuta y busca las instrucciones depositadas en memoria ROM. Además, recibe las señales de reloj y sincronización necesarias de la unidad de reloj y las peticiones de interrupción. La unidad de reloj o de oscilación genera la señal cuadrada de reloj a partir de un cristal de cuarzo externo. 19 El controlador de interrupciones puede aparecer como un bloque diferencial integrado en la propia CPU, el responsable de transmitir las peticiones internas o externas de interrupción hacia la CPU. Memoria ROM que almacena el programa y datos constantes. Memoria RAM que almacena variables modificables del sistema. Periféricos como: timers o contadores, puerto serie, puerto paralelo, etc. Cada fabricante define la estructura interna y juego de instrucciones ofertando una gran variedad de modelos en función de los componentes internos, tamaño de la memoria del programa, etc. [8]. Figura 1.7: Estructura típica de un microcontrolador 20 CAPÍTULO II: ANTECEDENTES. El trabajo presentado a continuación es respaldado por una serie de antecedentes en los cuáles se desarrolla un sistema telemétrico para la adquisición de diferentes tipos de potenciales. En los trabajos presentados anteriormente, surge el inconveniente de estudiar sujetos de manera alámbrica; es por esto que, muchos investigadores en las áreas de diseño electrónico, medicina, biomedicina, etc. han optado por utilizar sistemas capaces de transmitir y recibir señales fisiológicas de manera inalámbrica. Sin embargo, existen también trabajos que enriquecen con una gran cantidad de información la elaboración de la presente tesis, aunque estos utilicen métodos alámbricos. En la mayor parte de los estudios (Ainsworth, et al., 1977; Kubie, 1984; Jaeger, et al., 1990; Szabó, et al., 2001), los sistemas desarrollados se han basado en el uso de dispositivos capaces de detectar la actividad de varias unidades neuronales de manera simultánea, así como en reubicar manualmente el arreglo de microelectrodos en caso de pérdida de la señal. El inconveniente principal es que la información es transmitida de manera alámbrica (Mountcastle, et al., 1991), lo cuál impone ciertas restricciones al movimiento del animal en experimentación [1]. En la mayoría de los trabajos mencionados, la finalidad es medir varios potenciales eléctricos simultáneamente para su análisis e interpretación. Sin embargo, algunos dispositivos no cuentan con la posibilidad de realizar un eficiente estudio en las diferentes capas de las neuronas. El trabajo realizado por el Doctor en ciencias Francisco José Heredia López [9] presenta un sistema para el análisis de señales neuronales adquiridas mediante el uso de microelectrodos reposicionables, circuitos de amplificación, filtrado, 21 transmisión y recepción de señales que permite el análisis en una computadora; en la cual se otorga la posibilidad de realizar modificaciones en los parámetros de los circuitos de adquisición mencionados. Sin embargo, los datos que se adquirían pasaban por varios circuitos diseñados específicamente para realizar una determinada acción. En este trabajo se pretende utilizar dispositivos que cuenten con la capacidad de realizar todas estas operaciones en un sistema embebido. El Ing. Ayrton Estrella Alcocer [11] muestra una alternativa al sistema presentado por el Dr. Francisco José Heredia López. Aporta un trabajo denominado: “sistema para la adquisición de señales fisiológicas aplicable a la telemetría” El sistema estudiado a continuación realiza la adquisición de señales fisiológicas de manera embebida en un dispositivo capaz de realizar todas las etapas necesarias para el acondicionamiento de dichas señales. Este sistema realizaba la adquisición de 6 señales provenientes de las neuronas de una rata por medio de unos electrodos posicionados en el cerebro de dicho animal. Sin embargo, este sistema contaba con un inconveniente al realizar la transmisión; ya que al realizar la adquisición de 6 señales y utilizar 24 bits de resolución el sistema de transmisión/recepción quedaba en cierta forma “lento” en comparación con el muestreo de las señales. Entonces para poder compensar este tiempo necesitaba realizar distintos métodos que, en cierta forma, no eran factibles. Tiempos y velocidades UART SPI ADS1296 (mín @16kSPS) ADS1296 (mín @8kSPS) Velocidad (Mhz) 1 8 2.77 1.36 Período T (us) 1 0.125 0.361 0.735 Tiempo por cada paquete (us) 200 21 60.648 123.48 Tabla 1: Velocidades y tiempos mínimos de transmisión 22 DRDY 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Asumiento una frecuencia de muestreo de 16kSPS Tiempo transcurrido (us) Stored by SPI 0 60.648 Buffer 1 121.296 Buffer 2 181.944 Buffer 3 242.592 Buffer 4 303.24 Buffer 5 363.888 Buffer 6 424.536 Buffer 7 485.184 Buffer 8 545.832 Buffer 9 606.48 Buffer 10 667.128 Buffer 11 727.776 Buffer 12 788.424 Buffer 1 849.072 Buffer 2 909.72 Buffer 3 970.368 Buffer 4 1031.016 Buffer 5 1091.664 Buffer 6 UART Activity Buffer 1 Buffer 1/Buffer 2 Buffer 2 Buffer 2/Buffer 3 Buffer 3 Buffer 4 Buffer 4/Buffer 5 Buffer 5 Buffer 5/ Buffer 6 Buffer 6 Tabla 1: Algoritmo de lectura y escritura de los buffers Es por eso que, en este sistema únicamente se realizará la adquisición y transmisión de datos utilizando 4 canales con una resolución de 16 bits; lo que reduce considerablemente la velocidad de transmisión evitándose dichos inconvenientes. Además este sistema utiliza tecnología más económica y más sencilla; por lo tanto, es más accesible al usuario. Tomoya Yamamoto, et al (1984) reportan un sistema telemétrico implantable en monos hecho con componentes discretos, el cuál podía enviar los potenciales detectados por cuatro microelectrodos seleccionables mediante un interruptor mecánico. La transmisión es por medio de señales FM y éstas se recibían en un receptor comercial. P. Grohrock, U. Hdusler, U Jiirgens (1997) reportan un sistema telemétrico para monitorear actividad neuronal y sonidos en monos con un microdrive, el cuál permite la reubicación de los microelectrodos para localizar nuevas unidades. Sin embargo, el ajuste se hace de manera manual y la transmisión de la información detectada, tanto de las neuronas como de los aullidos, se transmite 23 por medio de modulación en frecuencia (FM). Para esto, se emplean receptores comerciales, de muy alta calidad y modificados, ubicados dentro de la caja Faraday donde se encuentra ubicado el animal en experimentación. Las señales entregadas por los receptores son grabadas en cintas de video [1]. Xuesong Ye, Peng Wang, et al [12] , presenta un sistema telemétrico portátil para estimulaciones cerebrales y actividades neuronales registrando el libre comportamiento de animales pequeños. Este sistema comprende tres módulos principales: un “backpack”, un “headstage” y un “asistente personal digital portable” (PDA). El headstage contiene amplificadores de instrumentación de precisión con impedancia de entrada alta. El backpack está comprendido por dos partes: la primera se encarga de ser el estimulador y registrador de la actividad neuronal mientras que la otra se encarga de la transmisión/recepción vía bluetooth con una velocidad de transmisión arriba de los 70kb/s. Se realiza el muestreo de las actividades neuronales en un comportamiento natural de una rata con 12 bits de resolución a 12000 muestras por segundo. Figura 2.1: Diagrama a bloques del sistema de registro y estimulación multicanal 24 Sin embargo, las señales que se adquieren son de una mínima parte del cerebro. En nuestro sistema pretendemos realizar el muestreo en los dos polos del cerebro. A través del uso de un par de electrodos en cada polo, se aumentará la velocidad de transmisión obteniéndose más bits de datos. Marcelo Haberman, et al [10] , expone el análisis de dos tendencias actuales en el diseño de amplificadores de señales de EEG (electroencefalograma) aplicados a la ICCs (interfaces cerebro-computadora). Hace uso de ADC de tecnología delta-sigma en cada canal que permite acoplar las señales en continua sin los perjuicios del offset de los electrodos. Además utiliza circuitos alimentados con fuentes simples de 5 o 3 V con tamaños reducidos y de montaje superficial, etc. Hace uso del diseño del front-end que se encarga de: Alimentación a baterías Componentes con fuente simple Tamaño reducido La alimentación a baterías es obligatoria si se requiere una ICC portátil. La alimentación de los componentes con fuente simple simplifica el diseño electrónico y el tamaño reducido facilita la portabilidad de la interfaz que puede situarse cerca de los electrodos. Este sistema utiliza un convertidor delta-sigma ADS1256 de la “Texas instruments” de 24 bits y entrada diferencial de ±5V. La señal es adquirida a una frecuencia de 480 muestras por segundo. 25 Figura 2.2: Modulo para la adquisición de un canal de EEG. El front- end amplifica la señal 12 veces para aprovechar el rango dinámico del ADC y conseguir una resolución de .05uV. Un Microcontrolador ADuC841 es el encargado de coordinar la conversión y transmitir las muestras al módulo inalámbrico; que en este caso, es el circuito bluetooth BR-SCN30 de Blue Radios. La alimentación proviene de una batería de 9V regulada a 5V para la sección analógica y a 3.3V para la sección digital [10]. Figura 2.3: Diagrama a boques del diseño de un Front-End Como se puede notar, este sistema tiene algunas similitudes al trabajo presentado en esta tesis. Sin embargo, las pruebas o experimentos se hacen a seres humanos lo que podría presentar un riesgo; es por eso que, en nuestro trabajo se requiere implementar un módulo similar pero a un nivel menor para poder realizar una transpolación de los efectos presentados. 26 Otra diferencia es la velocidad de transmisión; ya que en el trabajo que presentaremos, ésta es de 1mbps. De igual manera se realizará el muestreo de más canales con una menor resolución de bits, lo que nos permitirá realizar el estudio de una mayor parte del cerebro y se podrán obtener datos más completos. B.S. Soto Cruz, et al (2009) presenta un trabajo denominado “Monitor de Actividad Neuronal basado en la Innovación de Microelectrodos MEMS”, dicho trabajo se basa en la búsqueda de monitores miniaturizados que permitan la amplificación, visualización y el registro de las señales provenientes de una red neuronal in vitro o in vivo que surgen como propuesta para la creación de instrumentos portátiles de bajo costo. Las innovaciones en el campo de microelectrodos que mejoran dichas características es uno de los principales objetivos del diseño de monitores MEMS en aplicaciones biológicas [10]. 27 CAPITULO III: DISEÑO ELECTRONICO 3.1. Definición del problema a resolver Anteriormente se había estudiado la problemática que existe al realizar estudios en animales que se encuentran conectados de manera alámbrica a algún dispositivo que se encargue de realizar la medición de ciertas señales fisiológicas, realizar este tipo de estudio entrega datos que no son del todo correctos debido a los diversos factores de incomodidad que podría presentar el animal. El desarrollo de un sistema telemétrico inalámbrico reducirá considerablemente dichos factores para poder realizar un correcto análisis de las señales obtenidas. El sistema telemétrico inalámbrico a desarrollar cuenta con varias etapas que se comunican entre sí para obtener una lectura eficiente de las señales neuronales del animal en estudio. En nuestro sistema se pretende analizar diferentes capaz o niveles del área neuronal a través del reposicionamiento de los electrodos utilizando unos motores piezoeléctricos capaces de tener un grado mínimo de intrusión en el cerebro del animal. Para lograr que el sistema telemétrico inalámbrico sea eficiente y confiable es importante realizar una buena elección de dispositivo que cuente con la tecnología adecuada para cada proceso. 3.2. Definición de las Variables de Entrada y Salida El sistema telemétrico planteado cuenta con dos variables de entrada: la primera viene a ser el potencial de acción (impulsos eléctricos que se generan en el axón cuando la neurona responde a un estímulo) que es capturada por los 28 microelectrodos. El potencial de acción es un evento rápido que se mide en el orden de los ms, y puede tener amplitudes en el orden de los mV. La otra variable se encuentra en los datos que contienen la información necesaria para cambiar aquellos parámetros de ganancia e información para el reposicionamiento de los microelectrodos empleados durante las pruebas. Dicha variable viene desde una computadora portátil capaz de mandar dicha información. Las variables de salida para este sistema de igual manera son dos: en primera instancia tenemos la información digitalizada de los potenciales de acción, esta información será enviada de forma inalámbrica hacia la estación base de trabajo. Los datos son transmitidos en bytes de información a través de un transmisor inalámbrico. Otra variable de salida viene a ser el dato de control que contiene las instrucciones necesarias para el movimiento de los motores piezoeléctricos encargados del reposicionamiento de los microelectrodos y para modificar los registros que controlan las variables de amplificación de la ganancia de las señales eléctricas capturadas de la neurona. Figura 3.1: Definición de las variables de entrada y de salida del sistema 29 El sistema se divide en varias etapas, necesarias para poder realizar un satisfactorio análisis de las señales neuronales de un animal en estudio. La figura 3.2 muestra un diagrama a bloques de las etapas del sistema telemétrico inalámbrico descrito en este trabajo. Figura 3.2: Diagrama a bloques del sistema telemétrico inalámbrico completo 3.3 Diseño del filtrado, amplificación y digitalización de las señales eléctricas Para que los potenciales de acción sean transmitidos de manera inalámbricamente a la estación base, deberán ser tratados adecuadamente. Es debido a esta razón que la primera etapa consiste principalmente en el filtrado, la amplificación, y la digitalización de las señales eléctricas de los microelectrodos. En la actualidad existen circuitos integrados diseñados específicamente para la medición de potenciales y dentro de un solo encapsulado, realiza la función de filtrado, la amplificación y la digitalización de señales eléctricas de entrada, tal es el caso del dispositivo a utilizar en este proyecto: el ADS1194. 30 Figura 3.3: Encapsulado TQFP-64 del ADS1194 Las principales ventajas de emplear el circuito integrado ADS1194 es que los tres bloques principales (filtrado, amplificación y digitalización) se encuentran embebidos en un mismo dispositivo lo que permite ahorrar corriente eléctrica y disminuir el tamaño y peso de la unidad electrónica de la rata. El ADS1194 es un dispositivo para la medición de biopotenciales, es de bajo consumo, dispone de 4 canales para adquisición de señales eléctricas, cada canal posee un convertido analógico-digital de tipo delta-sigma (ΔΣ) con hasta un resolución de 16bit y un amplificador de ganancia programable (PGA). 31 La figura 3.3 muestra el bloque funcional del ADS1194, donde únicamente se usaran los bloques correspondientes al filtrado, la multiplexación de las entradas, los bloques de amplificación, digitalización y la interfaz SPI. Figura 3.4: Diagrama a bloques del ADS1194 32 En la figura 3.4 se muestra el diagrama a flujo que se utilizo para programar al ADS1194 el cual se encuentra en la hoja de datos del fabricante. Figura 3.5: Diagrama a flujo para la configuración del ADS1194 33 Para realizar la programación adecuada del ADS1194 fue necesario configurar los siguientes registros internos a través de un microcontrolador utilizando la interfaz SPI (Serial Peripheral Interface). REGISTRO DE CONFIGURACIÓN 1 (CONFIG1= 00000000) Figura 3.6: Registro de configuración CONFIG1 A través del registro CONFIG1 se deshabilito las salida de oscilación, y se selecciono la tasa de muestreo que corresponde a 8kSPS. Para determinar la tasa de muestreo requerida se cálculo de la siguiente manera, en base a estudios previos se determino que la duración de las bioseñales a medir son se alrededor de 2 ms, y que es necesario obtener 16 muestras de cada impulso para no perder información [9]. REGISTRO DE CONFIGURACIÓN 3 (CONFIG3= 11000000) Mediante este registro se habilito el voltaje de referencia interno y se configuro a 2.4V, cabe resaltar que cuando se utilizan alimentación de 3V el voltaje de 34 referencia debe ser 2.4V mientras que si empleamos fuentes para los circuitos analógicos de 5V el voltaje de referencia interno es 4V. Figura 3.7: Registro de configuración CONFIG3 REGISTRO DE CONFIGURACIÓN INDIVIDUAL DE LOS CANALES (CHnSET=00010000) El registro CHnSET es uno de los principales ya que a través de este se configura la ganancia programable y se determina el tipo de señal correspondiente a cada uno de los 4 canales disponibles. Durante las pruebas se utilizo ganancia unitaria y las señales de entrada fueron de electrodo normal. 35 Figura 3.8: Registro de configuración individual de los canales (CHnSET) En la figura 3.9 se muestra el diseño de evaluación del ADS1194 que se realizo para verificar el adecuado funcionamiento. Figura 3.9: Diseño de la tarjeta de evaluación del ADS1194 36 Durante las pruebas el ADS1194 se conecto como sugiere el fabricante, empleando una fuente de voltaje para los circuitos analógicos de +3V y una alimentación para los circuitos digitales de +1.8V. Como se puede apreciar en la figura 3.10 los capacitores de filtrados permiten tener una baja tolerancia al ruido inherente que se pueda presentar en las señales de entrada. Figura 3.10: Conexión del ADS1194 usando alimentación unipolar (+3V/+1.8V). 3.4 Microcontrolador 16LF1823 Se requiere de un dispositivo capaz de realizar el procesamiento de las señales digitales que manda el ADS1194, y que sea capaz de configurar a este. Para realizar la configuración del dispositivo de adquisición de datos es necesario modificar ciertos registros como se mencionó anteriormente en este capítulo, de igual manera requiere de un dispositivo que cuente con la interfaz SPI y que tenga un reloj interno capaz de realizar todo el proceso de adecuación de las señales sin ningún 37 inconveniente. Otro punto a analizar es que se requiere de un dispositivo con una interfaz serial RS-232 para poder conectar dispositivos transceptores. El dispositivo que se eligió fue el 16LF1823 del fabricante “Microchip”, ya que cuenta con características específicas y útiles para este sistema que serán descritas en breve. La tarea del Microcontrolador 16LF1823 es: configurar al ADS1194 utilizando el protocolo SPI, recibir y almacenar los datos adquiridos por dicho dispositivo, transmitirlos a una estación base de trabajo en donde otro Microcontrolador recibirá dichos datos, y estará pendiente de recibir alguna señal de control para el reposicionamiento de los microelectrodos. Entre las características útiles de este Microcontrolador podemos mencionar: Oscilador interno de 32MHz Rango de frecuencias seleccionable entre 31kHz y 32MHz Voltaje de operación de 1.8V-3.6V Oscilador TImer 1 Corriente de operación de 30uA/Mhz Convertidor analógico-digital de 10bits de resolución Convertidor digital-analógico de 5 bits de resolución Interfaz SPI, MSSP I2C y EUSART(RS-232) Figura 3.11: Diagrama de pines del PIC16LF1823 38 3.5 Interfaz SPI Una vez que el ADC ΔΣ finaliza el procesos de digitalización de la señal eléctrica, entonces es requerido un protocolo de comunicación serial para la transmisión de los datos. La interfaz SPI (Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de información entre circuitos integrados en equipos electrónicos. El bus de interfaz de periféricos serie o bus SPI es un estándar para controlar casi cualquier dispositivo electrónico digital que acepte un flujo de bits serie regulado por un reloj. Esta interfaz será la encargada de leer la conversión de los datos además de leer y escribir los registros de control del ADS1194. Esta interfaz serial consiste en 4 señales principales: CS, SCLK, SDI, SDO. La señal de salida DRDY negada del ADS119A es usada como una señal de estado que indica cuando los datos están listos, cuando el DRDY = 0 indica que nuevos datos están disponible. SCLK (Serial Clock): Controla cuando los datos son enviados y cuando son leídos. CS (Chip Select): Selecciona al ADS1194 para la comunicación SPI, durante la comunicación serial el CS debe mantenerse en estado bajo. SDI (Serial Data Input): Mediante este pin los datos de control ingresan al dispositivo. SDO (Serial Data Output): A través de este pin los datos son enviados fuera del dispositivo. 39 En la figura 3.11 se muestra la conexión del AD1194 con el PIC16LF1823 utilizando la interfaz SPI. Figura 3.12: Diagrama esquemático de la conexión SPI Para poder hablar acerca de la comunicación inalámbrica es necesario saber la velocidad mínima de transmisión de datos requerida para transmitir todos los datos de información que nos proporciona el dispositivo. El ADS1194 manda 16 bits de información en cada uno de sus canales + 3 bytes de cabecera, por lo tanto: 40 3.6 Modulo transceptor DR3300 Como se explicó anteriormente es necesario contar con un dispositivo capaz de transmitir información a una velocidad igual o mayor a la especificada anteriormente, de igual manera debe ser pequeño y presentar un bajo consumo. Figura 3.13: Modulo transceptor de radiofrecuencia DR3300 El modulo transceptor DR3300 es un dispositivo ideal para nuestra aplicación ya que cuenta con las especificaciones mencionadas de consumo y tamaño. Este módulo de radiofrecuencia utiliza el transceptor hibrido TR1100. El TR1100 es un transceptor ideal para transmisión inalámbrica de datos a corta distancia donde el espacio reducido, la potencia de consumo bajo y a un bajo costo. Emplea una arquitectura de amplificador de secuencia hibrida (ASH, amplifier-sequenced hybrid) para logra la mezcla única de sus características. El TR110 es optimizado para transmitir por radio frecuencia datos a velocidades de 256 kbps hasta 1Mbps usando una modulación de tipo ASK (Amplitude-shift keying). Este transceptor emplea un 41 filtrado de tipo sierra (SAW filter en inglés) para suprimir los harmónicos de salida. El TR1100 opera a una frecuencia fo de 916.50 MHz con una velocidad de transmisión de datos de 1 Mbps, el cual presenta un voltaje de alimentación unipolar (2.7 – 3.5 Vcc). El módulo DR330 incluye al dispositivo TR1100 y todos los componentes necesarios de configuración en un una tarjeta ensamblada de circuito impreso, el diagrama esquemático del DR3300 se muestra en la figura 3.14. Figura 3.14: Diagrama esquemático del módulo transceptor DR3300 La tabla 3 muestra la descripción de los pines necesarios que hay que tomar en cuenta para transmitir y recibir la información en este trabajo. 42 Nombre Pin 1 (AGC/VCC) Descripción. Para habilitar esta operación (requerida para una transmisión de tipo ASK) un capacitor externo debe ser colocado entre este pin y tierra. El capacitor establece el tiempo mínimo en el cual se mantendrá el control automático de ganancia una vez que es amarrado. Para un tiempo dado de tAGH, el valor del capacitor CAGC se obtiene de la siguiente fórmula: Para una operación con una velocidad de transmisión de 1Mbps, se coloca una un capacitor cerámico de 100pF en este pin. Pin 2 (PK DET) Este pin controla la operación de detección de pico. Un capacitor externo colocado entre este pin y tierra establece el tiempo de detección y decaimiento, el cual tiene un arreglo de 1:1000. Para una aplicación con una transmisión de 1Mbps, el tiempo de detección se establece en 0.024 µs con un capacitor de 100pF. Pin 4 (RX DATA) RX DATA es conectado directo al pin des salida de datos del transceptor Pin 5 (TX IN) El pin TX IN está conectado al pin TXMOD del transceptor a través de una resistencia de 4.7kΩ en la placa de circuito. Una resistencia adicional debe ser colocada en serie entre la fuente de modulación y el pin TX IN, dependiendo de la potencia de transmisión y el pico de voltaje de modulación. Para calcular la potencia de salida se tiene la siguiente ecuación: Donde Po esta en mW, el pico del voltaje de modulación VTXH está en volts y el resistor externo de modulación RM es en kilo ohms. PIN 6, PIN7 y PIN 10: Tierra PIN 9: VCC Pin 11 (CTR1) y PIN 12 (CTR0): Este pin se conecta a tierra Este pin se conecta a la fuente de voltaje positiva del circuito, el rango de operación es de 2.7 a 3.5 Vdc. También es posible usar el pin 1 como entrada de voltaje. CTR1 y CTR0 seleccionan el modo de operación del transceptor Si CTR1 y CTR0 están en un estado lógico alto entonces colocan al módulo en su modo de recepción. Si 43 Pin 13: RFIO Pin 14:RF GND CTR1 y CTR0 están ambos en un estado bajo lógico, establecen al módulo en su modo de bajo consumo de energía (sleep mode). Si CTR1 está en alto y CTR0 está en estado bajo, establecen al módulo en un modo de transmisión de tipo ASK. Si CTR1 está en un estado bajo y CTR0 está en estado alto entonces el modulo se pone en modo de transmisión de tipo OOK. Estos pines siempre deben estar en un estado lógico por lo cual se recomienda nunca dejar al aire alguno de los pines Es el pin de entrada/salida de radiofrecuencia. Es donde se coloca la antena Este pin es la tierra del RF usado en conjunto con el pin RFIO Tabla 3: Descripción de pines del DR3300 Figura 3.15: Salida de pines del DR3300 Para la transmisión se utilizara el diagrama de aplicación que muestra la hoja de datos que se muestra en la figura 3.16, La resistencia R M de 3.3 KΩ la cambiamos por una resistencia de 1KΩ ya que buscamos que el voltaje VTXH sea de aproximadamente 2.5 V y así tener pulsos de transmisión con una forma detalla que produzca que el Microcontrolador de la estación de trabajo pueda recibir la información de manera más detallada, ya que voltajes más bajos producidos con 44 resistencias más grandes provoca pulsos con un tipo de filtrado que provoca que la lectura de datos en la estación base no sea muy confiable. Figura 3.16: Circuito de aplicación a 1Mbps El circuito realizado para la transmisión se muestra en la figura 3.17: Se utilizó el Microcontrolador PIC16LF1823 utilizando la interfaz serial con la que cuenta dicho dispositivo, como se mencionó anteriormente la forma de configurar al DR3300 como transmisor o receptor depende de los pines CTR0 y CTR1(véase tabla X). Figura 3.17: Circuito esquemático para la transmisión de datos. 45 En cuanto al circuito de recepción de datos, se le agrego un disparador de Schmitt utilizando el comparador LM311 para elevar el nivel de voltaje, ya que el dato transmitido tiene un voltaje entre 2 y 3V lo que hace que entre en la zona de incertidumbre, ya que este no identifica entre un nivel lógico alto y uno bajo, es por eso que al utilizar el disparador a voltajes recibidos mayores a 0.7 que es el voltaje de ruptura del diodo el voltaje que entra por la terminal RX del PIC será de 5V y este lo reconocerá como un uno lógico. Y a voltajes menores de 0.7 el pic recibirá 0V equivalentes a un cero lógico. Como se muestra en la figura 3.18. Figura 3.18: Circuito esquemático para la recepción de datos. Para poder realizar pruebas se realizaron los circuitos en un protoboard para realizar la transmisión y recepción de los datos, se utilizó una tarjeta de desarrollo para poder visualizar la información recibida de igual manera se contó con la ayuda de un osciloscopio para observar y comparar los datos enviados y recibidos. 46 Figura 3.19: Circuito para la transmisión de datos utilizando el DR3300 Figura 3.20: Circuito para la recepción de datos utilizando el DR3300 47 3.7Modulo transceptor HC-05 Anteriormente se hablo acerca del DR3300 para poder transmitir la información de un Microcontrolador a una estación base de trabajo. Sin embargo, esta operación se realizara en todo momento y no será capaz de hacer una comunicación full dúplex, es decir, que solo puede trasmitir si no está recibiendo nada y viceversa, por esa razón es necesario un dispositivo eficiente y de fácil manejo que no interfiera con el DR3300, es por ello que se eligió el Bluetooth HC-05.debido a su bajo consumo, su fácil configuración y manejo. Figura 3.21: Modulo transceptor bluetooth HC-05 El núcleo de funcionamiento de este módulo es el chip de radiofrecuencia CSR BC417, en algunas hojas de datos es también llamado “CSR Bluecore 04-External”, el cual es un dispositivo semiconductor de tecnología CMOS. 48 Algunas de las características del CI (circuito integrado) son: Bajo consumo de potencia ya que cuenta con una potencia de salida de -4 a +6 dBm. Sensibilidad de -80 dBm. Un rango de bit EDR hasta 3Mbps. Interface de tipo UART. Voltaje de entradas y salidas de 1.8 V a 3.6 V. Consumo de corriente máximo de 40 mA. Cuenta con una memoria interna de 48 Kbyte de RAM. Soporta una Memoria flash de 8Mbit externa. Este módulo tiene la ventaja de contar con una antena integrada, cuenta con interfaz UART con Baud Rate programable desde 4800 hasta 1382400. Este dispositivo también tiene la cualidad de auto conexión con el último dispositivo con el cual fue vinculado la última vez que funcionaba y permite la paridad por medio de código. El módulo HC-05 tiene dos modos de trabajo el primero es el modo de ordenrespuesta, en el usuario puede programar los parámetros del dispositivo a través de comandos “AT”. El segundo es el modo de conexión automática en el cual el dispositivo funcionara con los valores iniciales para transmitir o recibir datos. También cuenta con tres roles de trabajo: Maestro, Esclavo y modo bucle. En rol Maestro el modulo tiene las cualidades para detectar, establecer conexión con los dispositivos Bluetooth cercanos y transferir y/o recibir datos. En rol esclavo el modulo tiene la cualidad pasivas, esto quiere decir que solo puede recibir datos. En el rol 49 Bucle el modulo puede realizar conexiones pasivas (solo con maestros), de tal manera que puede enviar y recibir datos al dispositivo maestro. La tabla 4 muestra la descripción de los pines necesarios que hay que tomar en cuenta para transmitir y recibir la información en este trabajo. Pin ID 1 TXD 2 RXD Descripción. UART_TXD, TTL/CMOS level. Pin de salida de datos UART_RXD, TTL/CMOS level. Pin de entrada de datos Pin de Reset, si se conecta a un nivel lógico bajo el 11 RESET dispositivo se reiniciara, cuando el modulo este en uso es mejor dejar el pin al aire. 12 Vcc Pin de Voltaje. 13 GND Pin de GND Este es un pin para conectar un LED externo, que funciona como indicador del modo de trabajo, así como 31 LED1 también como indicador de conexión con otro dispositivo. (dependiendo del modo de trabajo del HC05) Switch para el modo de trabajo. Cuando se encuentra en un nivel alto el modulo entrara al modo orden- 34 KEY respuesta. Si el pin está en un nivel bajo en suspendido en el aire, el modulo entrara en modo de trabajo de conexión automática. Tabla 4: Descripción de pines del modulo HC-05 50 En el presente trabajo se utilizó la tarjeta de desarrollo Arduino uno y el software SSCOM32 “Serial_port_test” para configurar al módulo HC-05. La conexión de la tarjeta Arduino con el modulo Bluetooth se muestra en la figura X, al conectar Rx del módulo con Rx de la tarjeta y TX con TX se podrá configurar al bluetooth simulando un puerto serie virtual a través del Arduino. Figura 3.22: Diagrama de conexiones bluetooth- Arduino Uno Como se mencionó anteriormente el bluetooth utiliza comandos AT para su configuración, en la tabla 3.3 se describirán los comandos a utilizar para la configuración de los módulos tanto esclavo como maestro, estos comandos se ingresaran al software SSCOM32 esperando la respectiva respuesta “OK”. 51 Comando “AT” AT AT+ADDR? AT+NAME=parámetro Parámetro OK, indica que ya entro en el modo AT Este comando te devuelve la dirección MAC del dispositivo, es la que le debes poner al otro dispositivo para comunicarlo. Con este comando le ingresas el nombre al bluetooth. Ejemplo AT+NAME=Maestro Este comando indica el rol del bluetooth, ya sea como esclavo, maestro o modo bucle. AT+ROLE=parámetro 0--- rol esclavo 1--- rol maestro 2--- rol bucle Este comando se utiliza para establecer una contraseña, si se requiere comunicar con otro bluetooth AT+PSWD=parámetro ambos deberán tener configurada la misma contraseña. Ejemplo AT+ PSWD=1234 Este comando establece la velocidad de transmisión, el parámetro 1 indica la velocidad en baudios y pueden ser los siguientes: 4800 9600 19200 38400 57600 115200 AT+UART=parametro1 23400 ,parametro2,parametr 460800 o3 921600 1382400 El parámetro 2 indica cuantos bits de parada tendrá: 0—1bit 1—2bits El parámetro 3 indica si tendrá bit de paridad. 0—ninguno AT+CMODE= parámetro AT+BIND= parámetro Ejemplo AT+UART=9600,0,0 0-indica que se conectara con una dirección especifica 1—indica que se conectara con cualquier dirección. En este comando se coloca la dirección MAC del otro dispositivo, al que se quiere conectar. Tabla 5: Comandos AT para la configuración del Bluetooth HC-05 52 Existen varias maneras para que el módulo HC-05 entre en modo de orden respuesta, en cualquiera de ellas se tiene la misma funcionalidad, la única diferencia se basa en el Baud Rate con el cual se programara al módulo (4800, 9600 o 38400) teniendo en cuenta siempre las siguientes condiciones para transmisión por la interfaz UART: 8 bits de datos, 1 bit de parada y sin bits de paridad y control de flujo. El más sencillo de todos es para el Baud Rate de 9600, para ello es necesario realizar los siguientes pasos: 1. Establecer el pin 34 (KEY) en un nivel lógico bajo. 2. Proveer de energía al módulo (Vcc y GND). 3. Establecer el pin 34 (KEY) en un nivel lógico Alto. Para verificar que el modulo entro en modo de programación el pin 31 (LED1) transmitirá una señal de 2 Hz, con el fin de que el LED externo parpadee rápidamente. Una vez que se ha entrado en el modo AT realizando dicha conexión es necesario ingresar los comandos en el orden que se muestra en la tabla 5, en el software SSCOM32 como se muestra en la figura 3.23. Figura 3.23: Configuración por comandos AT 53 Una vez configurado nuestro dispositivo, se puede conectar por puerto serial a nuestro Microcontrolador, el diagrama de conexiones se muestra en la figura 3.24. Figura 3.24: Diagrama esquemático de las conexiones Bluetooth- PIC16LF1823 para la recepción de datos enviados desde la estación base. Figura 3.25: Conexión de Arduino uno con el bluetooth para configuración. 54 CAPITULO IV RESULTADOS Y CONCLUSIONES 4.1 RESULTADOS Durante las pruebas realizadas se logró transmitir datos a una velocidad de 1 Mbps utilizando dispositivos de radiofrecuencia con el protocolo UART, además se desarrollo un programa en Matlab que permite visualizar los datos enviados; los datos fueron recibidos de manera confiable. Figura 4.1: Pruebas realizadas para la transmisión y recepción de datos a 1Mbps utilizando el DR3300 Se desarrolló un programa para realizar las tareas básicas de control y modificación de registros del dispositivo ADS1194, escrito completamente en lenguaje ensamblador para el PIC18LF1823, para la recepción se programo un Arduino UNO que enlaza el microcontrolador con la computadora. En la figura 4,2 se puede observar el módulo de prueba que se desarrollo para el dispositivo ADS1194. 55 Figura 4.2: Módulos de pruebas para el ADS1194 En la figura 4.3 se muestra el modulo de prueba del transceptor DR3300 que se realizo para hacer pruebas de transmisión y recepción. Tabla 4.3: Módulos de pruebas para el transceptor DR3300 4.2 CONCLUSIONES Aun se siguen realizadas pruebas con el dispositivo de adquisición de datos ADS1194 y se determinó que los módulos de radiofrecuencia DR3300 cumplen con las especificaciones de fabricante y que resultaron ideales para este proyecto. De igual manera se continúa trabajando en la reducción del tamaño de los circuitos requeridos, con el propósito de eliminar cualquier incomodidad en el roedor causadas por el peso de las PCB y de esta forma obtener mediciones confiables. Al realizar las pruebas con la trasmisión de datos se notó que el dispositivo bluetooth tenía una 56 mejor transmisión y recepción que el DR3300, sin embargo, este dispositivo no puede enviar continuamente datos por mucho tiempo ya que después de un rato pierde comunicación. El DR3300 tiene la ventaja de transmitir datos en todo momento al activarlo pero tenía mucha interferencia, es por ello que se decidió utilizar ambos dispositivos, uno para enviar en todo momento los datos (DR3300) y otro para recibir el dato de la estación base en cualquier momento (HC-05). 57 REFERENCIA BIBLIOGRÁFICA. [1].- Moguel Rodríguez, Luis Alonso, Comunicación inalámbrica para el monitoreo de señales bioelectrónicas Tesis. Instituto Tecnológico de Mérida ,2012 ,126 h. [2] Colaboradores de Wikipedia. Neurofisiología [en línea]. Wikipedia, La enciclopedia libre, 2013 [fecha de consulta: 15 de marzo del 2013].<http://es.wikipedia.org/w/index.php?title=Neurofisiolog%C3%ADa&oldid=6439 9339>. [3] Tortosa Moreno, Avelina, Sistema Nervioso: Anatomía [EN LINEA],< http://infermeravirtual.blob.core.windows.net/infermeravirtual-publish/invar/cd3812a2edbb-4723-be65-f17f277f2926> [CONSULTA: 15 DE MARZO 2013]. [4] Rodríguez Prada, Alban y Salazar Gonzalez, Gabriel Leonard, sistema de telemetría inalámbrica móvil de corto alcance aplicado a la medición de temperatura. Diseño y construcción. Tesis, Universidad Industrial de Santander facultad de ingenierías Físico-Mecanicas escuela de ingenierías Eléctrica, Electrónica y de telecomunicaciones BUCARAMANGA.2003 ,95 h. [5] Córdoba García, Francisco, Fundamentos biológicos del aprendizaje y la memoria.[EN LINEA], <http://www.uhu.es/francisco.cordoba/asignaturas/FBAM/TE MAS%20PDF/3-LA%20NEURONA.pdf>[CONSULTA: 15 DE MARZO 2013]. [6] Dr. Morales Mendoza Luis Javier. Teorema del Muestreo. [EN LÍNEA] <http://www.dicis.ugto.mx/profesores/ljavier/documentos/Lec01%20%20Teorema%20 de%20Muestreo.pdf > [CONSULTA: 06 MARZO 2013] [7] Delta-Sigma. [EN LÍNEA] <http://pablohoffman.com/cgi- bin/twiki/bin/view/Oscusb/DocCap04Hardware> [CONSULTA: 13 MARZO 2013]. 58 [8] Molina, Alberto, Tema 3: Microcontroladores. [EN LINEA]. < http://blearning.itmina.edu.mx/dep/sada/carreras/Ingenieria%20en%20Sistemas%20 Computacionales/5to%20Semestre/Arquitectura%20de%20Computadoras/Arki_Com p/microcontroladores.pdf> [consulta: Marzo 2013] [9] Heredia López, Francisco J. Un sistema telemétrico para la captura de potenciales de acción extracelulares, reposicionamiento de los microelectrodos y captura de la actividad motora en ratas. Tesis (Doctor en ciencias, mención en Ingeniería biomédica). Universidad Autónoma de Yucatán, 2009,191 h. [10] Marcelo A. Haberman, Pablo García, Enrique Spinelli, Comparación de dos amplificadores de EEG para interfaces Cerebro-Computadora, Memorias II jornadas sobre interfaces cerebro computadora, Paraná – Entre Ríos Argentina, Págs. 24-27, 23 y 24 de abril de 2009, resumen de conferencias. [11] Estrella Alcocer, Ayrton, Sistema para la adquisición de señales fisiológicas aplicable a la telemetría, Tesis, Instituto Tecnológico de Mérida, 2012, 60h [12] Xuesong Ye, Peng Wang, et al, A portable telemetry System for brain stimulation and neuronal activity recording in freely behaving small animals, Journal of Neuroscience Methods, Pags: 186-193, 02/07/2008, [RECURSO:EN LINEA], <www.elsevier.com/locate/jneumeth> 59 ANEXO1 Código de programación en Matlab para la recepción de datos por puerto USB function[x]=LecturaSerial1Mb %*************************************************************************% % RECIBE LAS SEÑALES DEL PIC %*************************************************************************% x=zeros(1,100); ***Inicializa y abre el puerto serial*** clc; disp('Initializing') SerialPIC = serial('COM5'); set(SerialPIC,'BaudRate',1000000,'DataBits',8,'Parity','none','StopBits',1, ... 'FlowControl','none','Timeout',500000,'InputBufferSize',1000000); %Cantidad de bytes que puede guardar el buffer fopen(SerialPIC); %Abre el puerto COM disp('Serial Port "SerialPIC" Initialized and Opened'); pause(2); %*************************************************************************% % ***Lee datos de señal fisiologica simulada*** %*************************************************************************% disp('Sending data request...'); disp('Reading serial bytes from buffer'); contador=1; disp('Waiting For the first byte...'); contador=0; posicion=1; while(SerialPIC.BytesAvailable == 0) end disp('Read succesfull!!!...') while(SerialPIC.BytesAvailable ~= 0 && posicion <= 10000) x(posicion)=fread(SerialPIC,1,'uint8'); posicion=posicion+1; if contador<255 contador=contador+1; else contador=1; end end %*************************************************************************% % ***CERRAR el puerto COM al finalizar*** %*************************************************************************% fclose(SerialPIC); delete(SerialPIC); clear SerialPIC; delete(instrfindall); %Forza a eliminar y cerrar todos los COM %Verifica si existen COM abiertos disp('Serial Port "SerialPIC" is Closed'); end 60 ANEXO2 Código de programación para la transmisión de datos. #INCLUDE <header_18F4550.c> #FUSES HSPLL,NOWDT,USBDIV,PLL5,CPUDIV1,VREGEN,NOMCLR #USE delay(clock=48000000) #USE rs232(UART1,BAUD=1000000,XMIT=PIN_C6,RCV=PIN_C7,BITS=8,PARITY=N,STOP=1) int8 variable=0; int8 incomingbyte; int1 bandera=0; void main() { while (true) { if(!input(pin_a1)|| bandera==1) { variable++; putc(variable); bandera=1; } if(kbhit()) //SI HAY ALGO EN EL BUFFER DE USB { incomingbyte=getc(); // EL DATO DEL BUFFER LO IGUALO A "INCOMINGBYTE" switch(incomingbyte) { case '1': output_toggle(pin_b1); break; case '2': output_toggle(pin_b2); break; case '3': output_toggle(pin_b3); break; case '4': output_toggle(pin_b4); } } } } 61 ANEXO3 Código de programación para la recepción de datos en la estación base. #INCLUDE <header_18F4550.c> #FUSES HSPLL,NOWDT,USBDIV,PLL5,CPUDIV1,VREGEN,NOMCLR #USE delay(clock=48000000) #include "usb/usb_cdc.h" #USE rs232(UART1,BAUD=1000000,XMIT=PIN_C6,RCV=PIN_C7,BITS=8,PARITY=N,STOP=1)// int8 incomingbyte; void main() { usb_init(); //inicializa puerto usb usb_wait_for_enumeration(); //espera a que este listo para comunicarse delay_ms(500); output_high(pin_d3); while (true) { if(kbhit()==TRUE) { usb_cdc_putc_fast(getc()); } if(usb_cdc_kbhit()) //SI HAY ALGO EN EL BUFFER DE USB { incomingbyte=usb_cdc_getc(); // EL DATO DEL BUFFER LO IGUALO A "INCOMINGBYTE" switch(incomingbyte) { case '1': putc('1'); break; case '2': putc('2'); break; case '3': putc('3'); break; case '4': putc('4'); break; } } } } 62 ANEXO 4 Descripción de pines del microcontrolador PIC16LF1823 Nombre Descripción RA0/AN0/CPS0/C1IN+/ DACOUT/TX(1)/CK(1)/ICSPDAT/ ICDDAT Propósito general I/O; canal analógico digital entrada 0;comparador entrada positiva; salida convertidor digital a analógico; transmisor USART ;reloj síncrono USART; datos I/O ICSP RA1/AN1/CPS1/C12IN0Propósito general I/O; canal analógico digital /VREF+/ entrada 1; comparador entrada negativa; A/D y SRI/RX(1)/DT(1)/ICSPCLK/ entrada de referencia positiva del convertidor ICDCLK Digital-analógico; receptor USART. Reloj de programación serial RA2/AN2/CPS2/T0CKI/INT/ Propósito general I/O; canal analógico digital C1OUT/SRQ/FLT0 entrada 2; entrada timer 0;interrupción externa ;salida comparador; RA3/SS(1)/T1G(1)/VPP/MCLR Entrada de propósito general, entrada TImer 1 voltaje de programación; Master Clear con pullup interno RA4/AN3/CPS3/OSC2/ Propósito general I/O; canal analógico digital CLKOUT/T1OSO/CLKR/SDO(1)/ entrada 3;resonador;salida Fosc/4 conexión T1G(1) oscilador TImer 1; salida de referencia del reloj; salida de datos del SPI ; entrada de timer1 RA5/CLKIN/OSC1/T1OSI/T1CKI Propósito general I/O; entrada de reloj externo; Timer 1; resonador RC0/AN4/CPS4/C2IN+/SCL/ Propósito general I/O; canal analógico digital SCK entrada 4;comparador entrada positiva RC1/AN5/CPS5/C12IN1-/SDA/ Propósito general I/O; canal analógico digital SDI entrada 5;comparador C1 o C2 de entrada negativa; entrada/ salida I2C; entrada de datos SPI; RC2/AN6/CPS6/C12IN2-/P1D/ Propósito general I/O; canal analógico digital SDO(1)/MDCIN1 entrada 6; entrada 6 del sensor capacitivo comparador C1 o C2 de entrada negativa; salida de PWM; salida de datos de SPI ; entrada 1 de modulador de portadora RC3/AN7/CPS7/C12IN3-/P1C/ Propósito general I/O; canal analógico digital SS(1)/MDMIN entrada 7; entrada 7 del sensor capacitivo 63 RC4/C2OUT/SRNQ/P1B/CK(1)/ TX(1)/MDOUT RC5/P1A/CCP1/DT(1)/RX(1)/ MDCIN2 VDD VSS comparador C1 o C2 de entrada negativa; salida de PWM; salida de datos de SPI ; entrada de fuente del modulador Propósito general I/O; salida de comparador C2; salida invertida del latch SR; salida PWM; reloj síncrono USART; trasmisor asíncrono USART; salida moduladora Propósito general I/O; salida PWM; captura/compara/pwm1;datos síncronos USART; receptor síncrono USART; modulador de entrada portadora 2 Fuente positiva Referencia de tierra 64 ANEXO5: Código de programación del ADS1194 utilizando MPLAB ;-----------------------------------------------------------------------------------------------------------;***************************************Transmisión_EUSART_2Mbps************************** ******************* ;-----------------------------------------------------------------------------------------------------------;PROGRAMA DISEÑADO PARA LEER DATOS DEL ADS1194 EN FORMATO SPI Y TRANSMITIRLOS EN FORMATO UART ;--------------------------------------------------------------------------------------------------------------;*************************************BITS DE CONFIGURACIÓN***************************************************** ;--------------------------------------------------------------------------------------------------------------__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF __CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_ON LIST P=16LF1823 INCLUDE <P16LF1823.INC> ;-----------------------------------------------------------------------------------------------------------;************************************VARIABLES DEL PROGRAMA************************************************** ;-----------------------------------------------------------------------------------------------------------CBLOCK 0X20 CONTADOR_AUX CONTADOR_BYTES DATO ;PRIMERA VARIABLE ENDC ;-----------------------------------------------------------------------------------------------------------;***********************************DEFINICION DE PUERTOS**************************************************** ;-----------------------------------------------------------------------------------------------------------#DEFINE UART_TX PORTA,0 #DEFINE UART_RX PORTA,1 #DEFINE DRDY PORTA,2 #DEFINE SPI_SCK PORTC,0 #DEFINE SPI_SDI PORTC,1 #DEFINE SPI_SDO PORTC,2 #DEFINE SPI_SS PORTC,3 ;-----------------------------------------------------------------------------------------------------------;******************************************DEFINICION DE CONSTANTES****************************************** ;-----------------------------------------------------------------------------------------------------------DUMMY EQU 0X0F RDATAC EQU 0X10 SDATAC EQU 0X11 RESETCMD EQU 0X06 WCONFIG1 EQU 0X41 WCONFIG3 EQU 0X43 WCHSET EQU 0X45 STARTCMD EQU 0X08 ;-------------------------------------------------------------------------------------------------------------;*****************************************CONFIGURACIÓN DE INTERFACES Y RECURSOS******************************* ;-------------------------------------------------------------------------------------------------------------ORG 0x00 GOTO Configura_Oscilador ORG 0x04 GOTO Servicio_Interrupcion Configura_Oscilador ;{ BANKSEL OSCCON BSF OSCCON,SPLLEN ;HABILITA 4XPLL Espera_4xPll ;{ 65 BTFSS GOTO OSCSTAT,PLLR Espera_4xPll ;4XPLL READY? ;NO, ESPERA. MOVLW MOVWF b'11110010' OSCCON ;CONFIGURA OSCILADOR ;INTERNO CON FRECUENCIA DE 32 OSCSTAT,HFIOFR Espera_Oscilador_Listo ;OSCILADOR LISTO? ;NO, ESPERA ;} Mhz. Espera_Oscilador_Listo ;{ BTFSS GOTO ;} ;} Configura_Pines ;{ BANKSEL BSF BSF BCF BCF BANKSEL CLRF BANKSEL CLRF BANKSEL CLRF BANKSEL MOVLW APFCON APFCON,RXDTSEL APFCON,TXCKSEL APFCON,SDOSEL APFCON,SSSEL PORTA PORTA LATA LATA ANSELA ANSELA TRISA b'00000110' ;RX=RA1 ;TX=RA0 ;SDO=RC2 ;SS=RC3 ;SDI=RC1 ;SCK=RC0 ; ;Init PORTA ;Data Latch ; ;Make RA<5:0> digital ;CONFIGURA LOS PINES COMO ENTRADA Y SALIDA MOVWF BANKSEL CLRF BANKSEL CLRF BANKSEL CLRF BANKSEL MOVLW TRISA TRISC b'00000010' ;CONFIGURA LOS PINES COMO ENTRADA Y MOVWF TRISC ;SS=S,SDO=S,SDI=E,SCK=S PORTC PORTC LATC LATC ;TX=S,RX=E,DRDY=E ; ;Init PORTC ;Data Latch ; ANSELC ANSELC ;Make RC<5:0> digital SALIDA ;} Configura_EUSART ;{ BANKSEL BCF BCF BSF CLRF CLRF INCF BSF BSF ;} Configura_SPI ;{ BANKSEL BCF BCF BANKSEL BCF BCF MOVLW XORWF BSF BAUDCON BAUDCON,BRG16 TXSTA,SYNC TXSTA,BRGH SPBRGH SPBRGL SPBRGL RCSTA,SPEN TXSTA,TXEN SSPSTAT SSPSTAT,SMP SSPSTAT,CKE SSP1CON1 SSP1CON1,WCOL SSP1CON1,CKE b'00000001' SSP1CON1 SSP1CON1,SSPEN ;TRANSFERENCIA 8 BITS ;ASINCRONO ;ALTA VELOCIDAD ;BAUD RATE DE ;1 Mbps ;HABILITA EL PUERTO ;HABILITA TX PARA TRANSMITIR ;MEDICION A LA MITAD DE LA ONDA ;TRANSMITIR EN EL CAMBIO DE "0" A "1" ;NO DETECCION DE COLISION ;SCK EN "0" CUANDO INACTIVO ;PUERTO SPI EN MODO MAESTRO ;CON BAUDRATE=FOSC/16. 66 ;} Configura_ADS ;{ ;---------------------------------------------------------------------------------------------------------------------;*************************************CONFIGURACIÓN DEL "INTERNAL REFERENCE BUFFER"************************************** ;---------------------------------------------------------------------------------------------------------------------;{ CALL Retardo_1s ;ESPERA 1S PARA INICIALIZAR EL ADS BANKSEL SSP1BUF MOVLW RESETCMD MOVWF SSP1BUF ;ENVIA EL COMANDO RESET CALL Espera_SPI CALL Retardo_10us BANKSEL SSP1BUF MOVLW SDATAC ;DESHABILITA LECTURA CONTINUA DE DATOS MOVWF SSP1BUF ;ENVIA EL COMANDO RESET CALL Espera_SPI MOVLW WCONFIG3 ;ESCRIBE 1 REGISTRO A MOVWF SSP1BUF CALL Espera_SPI MOVLW 0X00 ;PARTIR DE CONFIG3 MOVWF SSP1BUF CALL Espera_SPI MOVLW 0XC0 ;REFRENCIA INTERNA DE BUFFER MOVWF SSP1BUF CALL Espera_SPI CALL Retardo_160ms ;} ;--------------------------------------------------------------------------------------------------------------------------;*************************************CONFIGURACION DE LA RESOLUCION Y 8 ksps********************************************** ;-------------------------------------------------------------------------------------------------------------------------;{ BANKSEL SSP1BUF MOVLW WCONFIG1 MOVWF SSP1BUF CALL Espera_SPI MOVLW 0X00 MOVWF SSP1BUF CALL Espera_SPI MOVLW 0X00 MOVWF SSP1BUF CALL Espera_SPI ;} ;-------------------------------------------------------------------------------------------------------------------------;***************************CONFIG. DE LOS CANALES, CADA UNO A UNA ENTRADA, DIFERENCIALES, GAIN=1*********************************** ;-------------------------------------------------------------------------------------------------------------------------;{ MOVLW WCHSET MOVWF SSP1BUF CALL Espera_SPI MOVLW 0X03 MOVWF SSP1BUF CALL Espera_SPI MOVLW d'5' MOVWF CONTADOR_AUX Inicializa_Canal MOVLW 0X10 MOVWF SSP1BUF CALL Espera_SPI DECFSZ CONTADOR_AUX GOTO Inicializa_Canal ;} ;} Configura_Interrupciones ;{ 67 BANKSEL OPTION_REG ;INTERRUPCIONES POR EL FLANCO DE BAJADA DE DRDY BCF OPTION_REG,INTEDG BANKSEL INTCON ;HABILITA INTERRUPCIONES. BSF INTCON,INTE BSF INTCON,GIE ;} ;-------------------------------------------------------------------------------------------------------------------------;****************************************INICIA LECTURA CONTINUA DE DATOS************************************************** ;-------------------------------------------------------------------------------------------------------------------------;{ BANKSEL SSP1BUF MOVLW RDATAC MOVWF SSP1BUF CALL Espera_SPI MOVLW STARTCMD MOVWF SSP1BUF CALL Espera_SPI ;} ;-------------------------------------------------------------------------------------------------------------------------;*****************************************PROGRAMA PRINCIPAL AHORRO DE BATERIA********************************************* ;-------------------------------------------------------------------------------------------------------------------------Principal SLEEP GOTO Principal ;-------------------------------------------------------------------------------------------------------------------------;***************************************INTERRUPCION POR DRDY************************************************************** ;-------------------------------------------------------------------------------------------------------------------------Servicio_Interrupcion ;{ BANKSEL INTCON BTFSC INTCON,INTF CALL Lee_Dato Fin_Interrupcion BANKSEL INTCON BCF INTCON,INTF RETFIE ;} Lee_Dato ;{ MOVLW d'4' MOVWF CONTADOR_BYTES Lee_Status BANKSEL SSP1BUF MOVLW DUMMY MOVWF SSP1BUF CALL Espera_SPI DECFSZ CONTADOR_BYTES GOTO Lee_Status MOVLW d'3' MOVWF CONTADOR_BYTES BANKSEL TXREG MOVLW 'A' MOVWF TXREG Lee_Canal_1 BANKSEL SSP1BUF MOVLW DUMMY MOVWF SSP1BUF CALL Espera_SPI CALL Espera_TX BANKSEL SSP1BUF MOVF SSP1BUF,W MOVWF DATO BANKSEL TXREG MOVF DATO,W MOVWF TXREG DECFSZ CONTADOR_BYTES 68 GOTO Lee_Canal_1 MOVLW d'3' MOVWF CONTADOR_BYTES MOVLW 'B' MOVWF TXREG Lee_Canal_2 BANKSEL SSP1BUF MOVLW DUMMY MOVWF SSP1BUF CALL Espera_SPI CALL Espera_TX BANKSEL SSP1BUF MOVF SSP1BUF,W MOVWF DATO BANKSEL TXREG MOVF DATO,W MOVWF TXREG DECFSZ CONTADOR_BYTES GOTO Lee_Canal_2 MOVLW d'3' MOVWF CONTADOR_BYTES MOVLW 'C' MOVWF TXREG Lee_Canal_3 BANKSEL SSP1BUF MOVLW DUMMY MOVWF SSP1BUF CALL Espera_SPI CALL Espera_TX BANKSEL SSP1BUF MOVF SSP1BUF,W MOVWF DATO BANKSEL TXREG MOVF DATO,W MOVWF TXREG DECFSZ CONTADOR_BYTES GOTO Lee_Canal_3 MOVLW d'3' MOVWF CONTADOR_BYTES MOVLW 'D' MOVWF TXREG Lee_Canal_4 BANKSEL SSP1BUF MOVLW DUMMY MOVWF SSP1BUF CALL Espera_SPI CALL Espera_TX BANKSEL SSP1BUF MOVF SSP1BUF,W MOVWF DATO BANKSEL TXREG MOVF DATO,W MOVWF TXREG DECFSZ CONTADOR_BYTES GOTO Lee_Canal_4 CALL Espera_TX RETURN ;} ----------------SUBRUTINAS DE RETARDO******************************************************************** ;------------------------------------------------------------------------------------------------------------------------------------Retardo_1s ;{ MOVLW MOVWF Espera_1s CALL DECFSZ GOTO d'126' CONTADOR_AUX Retardo_8ms CONTADOR_AUX Espera_1s 69 RETURN ;} Retardo_160ms ;{ MOVLW MOVWF Espera_160ms CALL DECFSZ GOTO RETURN ;} Retardo_8ms ;{ BANKSEL MOVLW MOVWF BANKSEL MOVLW MOVWF BCF CALL RETURN ;} Retardo_1ms ;{ BANKSEL MOVLW MOVWF BANKSEL MOVLW MOVWF BCF CALL RETURN ;} Retardo_10us ;{ BANKSEL CLRF BANKSEL MOVLW MOVWF BCF CALL RETURN ;} Espera_TMR0 ;{ BANKSEL BTFSS GOTO RETURN ;} Espera_SPI ;{ BANKSEL BTFSS GOTO RETURN ;} Espera_TX ;{ BANKSEL BTFSS d'11' CONTADOR_AUX Retardo_8ms CONTADOR_AUX Espera_160ms OPTION_REG b'00000111' OPTION_REG TMR0 d'6' TMR0 INTCON,T0IF Espera_TMR0 OPTION_REG b'00000111' OPTION_REG TMR0 d'22' TMR0 INTCON,T0IF Espera_TMR0 OPTION_REG OPTION_REG TMR0 d'216' TMR0 INTCON,T0IF Espera_TMR0 INTCON INTCON,T0IF Espera_TMR0 SSP1STAT SSP1STAT,BF Espera_SPI PIR1 PIR1,TXIF ;LISTO PARA ENVIAR EL PRIMER Espera_TX ;NO, ESPERE. BYTE? GOTO RETURN ;} END 70