Full text
Proyecto Fin de Carrera Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073 Autor: Sergio Beltrán Nuez Directores: Antonio Aragües Ruiz Álvaro Marco Marco Escuela de ingeniería y arquitectura Ingeniería de telecomunicaciones Septiembre 2013
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 2
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 3 AGRADECIMIENTOS Me gustaría agradecer a Álvaro y Antonio así como al resto de compañeros su ayuda y disponibilidad. También me gustaría agradecer especialmente a mis padres y hermanos que nunca me haya faltado su apoyo. Y como no a Carlota por su paciencia ilimitada.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 4
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 5 RESUMEN DEL PROYECTO FIN DE CARRERA RESUMEN DEL PROYECTO FIN DE CARRERA “Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” Realizado por: Sergio Beltrán Nuez Dirigido por: Álvaro Marco Una situación muy usual que podemos encontrar en un hospital es el hecho de que un paciente este sujeto a una monitorización permanente de medidas como la presión arterial, la saturación del oxígeno en sangre o la temperatura. Todas estas medidas van conectadas a una interfaz de monitorización por medio de cables, lo que conlleva una serie de problemas relacionados con la movilidad del paciente, tanto para el propio paciente como para el personal sanitario. Este Proyecto Fin de Carrera (PFC) plantea construir un entorno de telemonitorización inalámbrica utilizando tecnología ZigBee y con el fin de trabajar de acuerdo a los estándares del Comité Europeo de Normalización (CEN) implantar el estándar ISO/IEEE 11073. Para establecer la comunicación entre un manager y un agente médico. Este proyecto se apoya en dos tecnologías como son ZigBee y X73, la parte correspondiente a ZigBee se va a desarrollar en el laboratorio del grupo Howlab, un grupo de investigación de la universidad de Zaragoza y contando con el asesoramiento del profesor Álvaro Marco. Por otro lado en lo que corresponde a la implantación del estándar médico se va a llevar a cabo dentro de la empresa Goodday Solutions S.L, trabajando bajo la supervisión del director tecnológico Antonio Aragües. El PFC comenzará con el estudio de la tecnología ZigBee, para conseguir un software que de un modo automático cree y gestione una red ZigBee, además de llevar a cabo una configuración específica de los módulos que la componen. Por otro lado implementaremos el perfil médico ZigBee Health Care (ZHC) a ambos extremos de la comunicación el cual nos permite establecer un canal sobre el que establecer el protocolo de comunicación ISO/IEEE 11073, que será el encargado de realizar los pasos necesarios para acabar estableciendo una conexión entre un agente y un manager de un modo seguro, con el fin de transmitir un dato clínico. Para gestionar correctamente cada nivel de la comunicación también será necesario el encapsulado y desencapsulado de los datos dentro de tramas ZCL, ZHC y APDU en ambos extremos. Para llevar a cabo el proyecto se dispondrá de dos dispositivos ZigBee de Telegesis, uno de estos módulos haremos que se comporte como el manager, mientras que el otro módulo junto con el sensor emularán el comportamiento del dispositivo médico. El proyecto se desarrollara en un entorno Java y siguiendo la especificación OSGi, para lo que se utilizará como entorno de ejecución Karaf (http://karaf.apache.org), donde también se implementará una interfaz gráfica para poder seguir todo el proceso de comunicación. De manera general, este PFC busca la implementación de una arquitectura y un modo sistemático de trabajo para poder extrapolarlo en un futuro a una monitorización completa del paciente con todo tipo de sensores en un entorno ZigBee.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 6
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 7 Índice de contenidos Índice de contenidos RESUMEN DEL PROYECTO FIN DE CARRERA ...................................... 5 INDICE DE CONTENIDOS ................................................................................ 7 ÍNDICE DE FIGURAS ........................................................................................ 9 ÍNDICE DE TABLAS ........................................................................................ 10 ACRÓNIMOS Y SIGLAS.................................................................................. 11 1 INTRODUCCIÓN Y OBJETIVOS .............................................................. 13 1.1 INTRODUCCIÓN ........................................................................................ 13 1.2 ANTECEDENTES ....................................................................................... 14 1.3 MOTIVACIÓN ............................................................................................ 14 1.4 OBJETIVOS .............................................................................................. 15 1.5 ESTRUCTURA DE LA MEMORIA .................................................................... 17 2 ESTADO DEL ARTE ................................................................................. 19 2.1 TELEMEDICINA Y ESTANDARIZACIÓN ........................................................... 19 2.2 ZIGBEE Y ZIGBEE CLUSTER LIBRARY ......................................................... 20 2.3 PROTOCOLO X73 ..................................................................................... 22 3 MATERIALES Y MÉTODOS ..................................................................... 25 3.1 ZIGBEE ..................................................................................................... 25 3.1.1 Arquitectura de ZigBee ..................................................................... 25 3.1.2 Tipos de dispositivos ........................................................................ 26 Figura 3.2 Dispositivos dentro de una red Zigbee ................................. 27 3.1.3 Endpoints y clusters ......................................................................... 27 3.1.3.4 Endpoints ................................................................................... 27 3.1.3.4 Clusters...................................................................................... 28 3.1.3 Características y comparativa ......................................................... 28 3.1.4 Zigbee Cluster Library (ZCL) ............................................................ 29 3.1.4 Zigbee Health Care (ZHC)............................................................... 29 3.2 NORMA ISO/IEEE 11073........................................................................... 30 3.3 MATERIAL UTILIZADO .................................................................................. 31 3.3.1 Modulo ETRX2 ................................................................................. 32 3.3.2 Sensor de temperatura ..................................................................... 33 4 ANÁLISIS Y DISEÑO................................................................................ 35 4.1 ANÁLISIS ................................................................................................... 35 4.1.1Arquitectura ZigBee ........................................................................... 37 4.1.1.1 Configuración de registros ......................................................... 37 4.1.1.2 Automatización de la gestión de red .......................................... 37 4.1.2 Implementación del perfil ZHC ......................................................... 39 4.1.3 Implementación del protocolo 11073 ................................................ 42 5 DESARROLLO E IMPLEMENTACIÓN .................................................... 45 5.1 ENTORNO DE TRABAJO Y DESARROLLO PREVIO............................................ 45
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 8 Índice de contenidos 5.2 ESTRUCTURA DEL CÓDIGO ........................................................................ 47 5.2.1 Coordinador...................................................................................... 48 5.2.2 Router .............................................................................................. 51 5.2.3 X73API Manager y X73APIAgente ................................................... 55 6 RESULTADOS .......................................................................................... 57 6.1 PRUEBAS DE SOFTWARE ........................................................................... 57 7 CONCLUSIONES Y LÍNEAS FUTURAS .................................................. 63 7.1 CONCLUSIONES ....................................................................................... 63 7.2 LÍNEAS FUTURAS ..................................................................................... 64 8 BIBLIOGRAFIA ........................................................................................ 65 A1ANEXO 1: CRONOGRAMA DE IMPLANTACIÓN .................................... 69 ANEXO1.1 CRONOGRAMA DE IMPLEMENTACIÓN.................................................. 69 ANEXO1.2 DIAGRAMA DE GANTT ...................................................................... 70 A2ANEXO 2: CONFIGURACIÓN DE REGISTROS ...................................... 71 A3ANEXO 3: INTERFAZ GRÁFICA .............................................................. 73 A4ANEXO 4: EMULACIÓN DEL AGENTE ................................................... 75
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 9 Índice de Figuras Índice de Figuras Figura 1.1 Resumen gráfico del proyecto ......................................................... 16 Figura 2.1Dispositivos que soportan el ZHC .................................................. 21 Figura 2.2 – Dispositivos Certificados por Continua Alliance............................ 21 Figura 2.3. Evolución de la pila de protocolos de X73PoC a X73PHD. ............ 22 Figura 2.4 Dispositivos médicos con la normas X73 certificados por Continua Helth Alliance .................................................................................................... 23 Figura 2.5 Productos que soportan 11073 certificados por Continua ............... 23 Figura 3.1 Capas arquitectura Zigbee .............................................................. 26 Figura 3.2 Dispositivos dentro de una red Zigbee ............................................ 27 Figura 3.3 Esquema de la comunicación MD-CE ............................................. 31 Figura 4.1Esquema del montaje..................................................................... 35 Figura 4.3Esquema de la comunicación inalámbrica ..................................... 38 Figura 4.4 Diagrama de flujo de la arquitectura Zigbee utilizada ...................... 39 Figura 4.3 Formato General de una trama ZCL ............................................... 40 Figura 4.4 Frame control .................................................................................. 40 Figura 4.5 Establecimiento del canal ZHC ....................................................... 41 Figura 4.6 Formato de la petición de conexión ................................................. 41 Figura 4.7 Formato de trama de la petición de desconexión ............................ 42 Figura 4.8 – Estados de protocolo 11073 ......................................................... 43 Figura 4.9 Diagrama del protocol tunel............................................................. 44 Figura 4.10 Formato del dato transmitido ......................................................... 44 Figura 5.1.Consola Karaf.................................................................................. 45 Figura 5.2.Interfaz gráfica serial gui desconectado y conectado ...................... 46 Figura 5.3 Dos instancias de Karaf................................................................... 46 Figura 5.3 Modelo de proyecto Maven: OSGi bundle ....................................... 47 Figura 5.4 Esquema del modulo del coordinador ............................................. 48 Figura 5.5 Procedimiento al encontrar un nodo nuevo ..................................... 49 Figura 5.6 Gestión de una trama en el cluster 0614 ......................................... 50 Figura 5.8 Esquema del modulo del router....................................................... 52 Figura 5.9 Petición de conexión del canal ZHC ................................................ 53 Figura 5.10Petición de asociación protocolo 11073 ....................................... 53 Figura 5.11 Proceso de encapsulado del dato de temperatura ........................ 54 Figura 5.12 Composición correspondiente al Router y al Coordinador. ........... 55 Figura 5.13Procesamiento de una trama APDU dentro del estado Asociando ......................................................................................................................... 56 Figura 6.1Bundles utilizados en cada instancia. ............................................ 58 Figura 6.2 Interfaz del Serial GUI ..................................................................... 58 Figura 6.3 Establecimiento del canal ZHC ....................................................... 59 Figura 6.4Solicitud de asociación ................................................................... 60 Figura 6.5 Evaluación de la solicitud de asociación ......................................... 60 Figura 6.6 Respuesta a la configuración .......................................................... 60 Figura 6.7 Dato de temperatura ....................................................................... 61 Figura 6.8 Interfaz grafica en estado operando ................................................ 62 Figura A1.1Diagrama de Gantt ....................................................................... 70 Figura A4.1 Interfaz del router recibiendo un mensaje del sensor .................... 75 Figura A4.2 Código que obtiene el dato de temperatura .................................. 76
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 16 Introducción y objetivos un módulo ZigBee, aunque no tendría por qué tratarse obligatoriamente de un dispositivo ZigBee ya que su única función es transmitirle el dato de temperatura. A lo largo del proyecto nos vamos a centrar en establecer la comunicación entre el manager y el agente, no obstante en el anexo 4 se puede observar como se ha desarrollado el bloque que emula el agente, en la Figura 1.1 encontramos un análisis gráfico de la estructura final que tendrá el proyecto, donde se muestra la parte del manager y la correspondiente a la emulación del agente. El proyecto se compondrá de tres fases, en primer lugar la parte correspondiente a la tecnología ZigBee, que comprenderá un estudio detallado de la tecnología para poder llevar a cabo la gestión y creación de la red, aportando la comunicación necesaria entre todos los dispositivos a través de la red y además se realiza un estudio de la configuración necesaria en cada dispositivo. Esta configuración comprenderá por un lado la configuración de los registros para que cada uno cumpla su función dentro de la red y por otro lado para que sea capaz de soportar el perfil público que nos proporciona ZigBee Alliance [6] para tratar con dispositivos médicos como es el ZigBee Health Care [7]. La implantación y el estudio de este perfil conformarán el segundo bloque del PFC, una vez conectado el manager con el agente se pasará a establecer entre ellos un canal de comunicaciones sobre el que trabajará el protocolo 11073. Figura 1.1 Resumen gráfico del proyecto
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 17 Introducción y objetivos Finalmente, una vez establecido el canal se pondrá en funcionamiento una máquina de estados, en ambos extremos, encargada de implementar todos los pasos correspondientes al protocolo 11073, para finalmente transmitir el dato de temperatura de un modo seguro. A parte de todo lo anterior parar poder desarrollar el proceso de un modo correcto, también será necesario enviar los datos de acuerdo al tipo de trama correspondiente a cada nivel, ya que la comunicación a nivel de 11073 se lleva a cabo mediante tramas APDU, y para tratar con un perfil público de ZigBee Alliance es necesario gestionarlo a través de las tramas correspondientes al ZCL (ZigBee Cluster Librery) [8]. De este modo una vez finalizado el proyecto quedará definida toda la lógica necesaria para que se pueda implementar un agente y un manager que trabajen por sí solos dentro de una entorno médico y estaremos en disposición de trasladar todo el software de gestión del agente al propio sensor. Todo lo expuesto anteriormente se gestionará por medio de una serie de bloques de programación, encargados de gestionar las funciones correspondientes tanto al manager como al agente, realizando todo el sistema de un modo automático, a través de un entorno Java. De un modo paralelo se desarrollará una interfaz gráfica que se implementará en el extremo correspondiente al coordinador y mostrará por pantalla todas las fases del proyecto, creación de la red, creación del canal ZHC y los estados del protocolo X73, para finalmente mostrar el dato de temperatura proveniente del sensor. Por último, ya que todo el PFC se desarrolla en un entorno de código abierto, se tratará de que una vez finalizado el sistema quede completamente público para que se pueda integrar con otras implementaciones de software libre. 1.5 Estructura de la memoria Esta memoria ha sido estructurada en ocho apartados y cuatro anexos, como se explica a continuación: - 1. Introducción: Se trata del apartado en el que nos encontramos y busca presentar el proyecto, el lugar de donde se parte, así como descubrir los objetivos que se pretender alcanzar. - 2. Estado del arte: En este apartado se realiza un estudio de cuál es la situación actual de todas las tecnologías empleadas en el proyecto, el análisis se lleva a cabo tanto a nivel tecnológico, como social o legislativo presentando los organismos que regulan la estandarización. También se muestran el tipo de dispositivos que podemos encontrar actualmente en el mercado. - 3. Materiales y métodos: Este apartado será el encargado de mostrar una visión técnica de todas las tecnologías que se van a emplear, así como los protocolos que se van a implementar y finalmente una descripción de los dispositivos utilizados a lo largo del PFC.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 18 Introducción y objetivos - 4. Análisis y diseño: Aquí es donde se va presentar la solución aportada, la arquitectura utilizada para llevar a cabo el proyecto, centrándonos en los tres grandes bloques que lo componen que son la tecnología ZigBee, el perfil ZHC y el protocolo 11073. - 5. Desarrollo e implementación: En este capítulo se va presentar todo el entorno de trabajo donde se ha llevado a cabo el proyecto y se van a presentar las partes principales que componen el software que se ha desarrollado. - 6. Resultados: En este apartado se muestran los resultados obtenidos una vez finalizado el proyecto. - 7. Conclusiones y líneas futuras: En este apartado realizamos un análisis de las conclusiones obtenidas una vez finalizado el PFC, asi como las posibles líneas de trabajo que nos quedan abiertas una vez acabado. - 8. Bibliografía: Se recoge toda la documentación utilizada para llevar a cabo el proyecto. - A1. Anexo 1Cronograma de implantación: En este apartado se presentan los tiempos que se han empleado para desarrollar cada parte del proyecto. - A2. Anexo Configuración de registros: Se recoge en dos tablas los valores que toman cada uno de los registros que configuran los módulos de Telegesis. - A3. Anexo 2 Interfaz Gráfica: Se explica el funcionamiento de la interfaz gráfica diseñada cuyo objetivo es mostrar el funcionamiento del manager y la medida del dato de temperatura. - A4. Anexo 4 Emulado del agente: Se expone de un modo breve el proceso que se ha seguido para conseguir combinar uno de los módulos de Telegesis y el sensor de temperatura para que funcionen como un agente.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 19 Estado del arte 2 Estado del arte En este apartado nos vamos a centrar en realizar un estudio del panorama actual en lo referente a la telemedicina y la tecnología ZigBee así como un análisis de la situación actual de las tecnologías empleadas, además de todos los avances desarrollados en los últimos años que atañen a este proyecto. 2.1 Telemedicina y estandarización Uno de los grandes retos de este siglo es el poner al alcance de todo el mundo un sistema de control de la salud de calidad. Una tarea que puede resultar difícil o quizás imposible si tenemos en cuenta el incremento en la población mundial, el aumento del envejecimiento o la aparición de nuevas enfermedades. No obstante también hay que tener en cuenta los avances de la tecnología ya que aquí se encuentra la solución para dicho reto y esto es algo que se han dado cuenta los gobiernos, lo que se ha traducido en una fuerte inversión en el sector de la telemedicina a nivel internacional con el objetivo de modernizar el sistema.[9] En un artículo publicado en El País en agosto de 2012 basado en un informe de la BBC Research [10], se afirmaba que la telemedicina y el negocio de la e-salud iba a triplicar sus servicios en un plazo de seis años. Otro informe reciente elaborado por Pike & Fischer [11], estima que los gastos en telemedicina alcanzarán los 3.600 millones de dólares estadounidenses anualmente para el año 2014. Además de esto, en el año 2009 en EEUU se creó un plan de recuperación y reinversión que incluyó 20.000 millones de dólares estadounidenses para la tecnología de información sanitaria, con un enfoque en los registros médicos electrónicos y la telemedicina, el cual viene recogido en el de American Recovery and Reinvestment Act de 2009 [12]. Por último, otro ejemplo de la inversión que se está llevando a cabo en los últimos años en la telemedicina lo podemos encontrar en el Reino Unido, donde el gobierno se ha centrado en incluir la telemedicina como una estrategia del gobierno para mejorar el servicio nacional de salud (NHS). Por otro lado, tenemos que todos los desarrollos de aplicaciones vienen marcados por la estandarización del producto, con el fin de buscar un entorno normalizado de trabajo y ofreciendo una opción para que se puedan crear diferentes líneas de desarrollo independientes a los fabricantes. Así pues antes de meternos a analizar el estándar que vamos a utilizar, puede resultar de utilidad conocer que organismos son los encargados de regular estas normas, los podemos encontrar tanto a nivel nacional como internacional. En el caso de los dispositivos biomédicos, los organismos que regulan estas normas son AENOR (Asociación Español de Normalización y Certificación) en el ámbito nacional y el CEN (Comité Europeo de Normalización) a nivel internacional, desde la década de los 90. Otro de los organismos de regulación que nació tras la Segunda Guerra Mundial, con el nombre de ISO (Organización Internacional de Normalización) y es el la encargada de promover el desarrollo de normas internacionales de fabricación [13]. En cuanto a los estándares que rigen el intercambio de información en procesos de telemedicina destacan HL7 [14], que se trata de una organización que ha lanzado una serie de estándares para facilitar el intercambio de información en salud, los cuales han sido aprobados por la ANSI (American
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 20 Estado del arte National Standar Institute ). Por lo tanto debido al alto número de estándares y con el fin de que se cumplan todos ellos y exista una interoperabilidad total entre dispositivos, nace Continua Health Alliance [15] que se trata de una asociación sin ánimo de lucro formada por un conjunto de más de 230 empresas, cuya misión es establecer un ecosistema de interoperabilidad entre dispositivos médicos. 2.2 ZigBee y ZigBee Cluster Library ZigBee se trata de una tecnología relativamente nueva promovida por ZigBee Alliance [6], un conjunto de más de 100 empresas sin ánimo de lucro entre las que destacan empresas como Invensys, Mitsubishi, Honeywell, Philips o Motorola entre otras [16]. Si hacemos un pequeño repaso por la historia de la tecnología ZigBee vemos como comenzó a desarrollarse en 1999 cuando se dieron cuenta de que las tecnologías Bluetooth y Wi-fi no resultaban prácticas en determinados escenarios. Más tarde en mayo de 2003 se publicó el estándar IEEE 802.15.4 [17] un estándar que define el nivel físico y el control de acceso al medio de redes inalámbricas con tasas bajas de transmisión de datos. No obstante, no fue hasta junio de 2005 cuando se puso la tecnología ZigBee al alcance del público. Posteriormente en 2007 se hizo pública la aplicación ZigBee Home Automation de un modo gratuito y posteriormente se han ido publicando nuevos perfiles compuestos por conjuntos de bloques comunes que vienen recogidos en la ZigBee Cluster Library [8] , actualmente los que se encuentran disponibles son: o ZigBee Home Automation o ZigBee Smart Energy 1.0 o ZigBee Telecommunication Services o ZigBee Health Care o ZigBee RF4CE – Remote Control o ZigBee RF4CE – Input Device o ZigBee Light Link También existen algunas especificaciones en desarrollo como son: o ZigBee Smart Energy 2.0 o ZigBee Building Automation A día de hoy se prevé, que la tecnología ZigBee sea adoptada en todo el mundo como la principal tecnología inalámbrica estándar de sensores y controles en la energía de consumo, especialmente en el caso de la domótica y la telemedicina. Esto viene apoyado por importantes acuerdos como el que existe en la actualidad entre ZigBee Alliance y ATA (American Telemedicine Asociation) que trata la formación tanto de profesionales como de los propios consumidores [18]. Ya que este PFC está pensado para un ámbito médico vamos a implementar el perfil para controlar dispositivos médicos que nos proporciona ZigBee Alliance, este perfil es el ZigBee Health Care [7], el cual, en Junio de 2009, recibió el respaldo por parte de Continua Health Alliance [15] como el estándar para redes de área local de bajo consumo en el estándar Continua 2010 Design Guidelines [19], aunque no fue hasta abril de 2010 cuando se ZigBee Alliance lo público como estándar global que permite la monitorización y gestión segura de datos no críticos.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 21 Estado del arte Así pues podemos concluir que si la tecnología ZigBee es nueva, el perfil médico que la rige todavía más y esto hace que se trate de un campo donde todavía queda mucho por desarrollar, no obstante en la actualidad podemos encontrar algunos proyectos que ya han desarrollado dispositivos con el ZHC integrado, como los desarrollados por la universidad de Brunel (Reino Unido) que podemos observar en la figura 2.1. y que podemos consultar a través de la propia página de ZigBee Alliance [6]. Figura 2.1Dispositivos que soportan el ZHC Además si realizamos una rápida búsqueda por la página de Continua [15] con el objetivo de encontrar los dispositivos que han sido certificados en los últimos años, obtenemos que solo se han registrado ocho en los últimos dos años, la mayoría por parte de la ya mencionada universidad de Brunel, y uno por InfoSolutions, que se trata de una compañía italiana. Lo que nos dice que es un mercado que se encuentra en vías de desarrollo y todavía por explotar. Figura 2.2 – Dispositivos Certificados por Continua Alliance
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 22 Estado del arte 2.3 Protocolo X73 Uno de los graves problemas de los dispositivos médicos es la variedad de protocolos de comunicaciones establecidos por los proveedores. Este es el motivo por el que surge la familia de estándares X73 Medical / Health Device Communication Standards, la cual pretende estandarizar las comunicaciones de dispositivos médicos, abstrayéndolos del canal de comunicaciones establecido y permitiendo la interoperabilidad de los mismos, ofreciendo de este modo una solución a dichos problemas de interoperabilidad. El proyecto se inició en el año 2000 como un nuevo proyecto común en un intento por crear un solo estándar, esta vez de categoría ISO y el trabajo culminó en 2004 con la publicación de la primera serie de la familia CEN/ISO/IEEE 11073 Health Informatics – Point ‐ of ‐ Care Medical Device Communication (X73PoC). Más adelante en 2008, una nueva versión de X73 para un contexto de aplicación de salud más personalizado es publicada bajo la denominación de ISO/IEEE 11073 Health Informatics – Personal Health Device Communication (X73PHD), siendo esta la versión más reciente. Un esquema de pilas de protocolos de ambas versiones y su arquitectura de modelo/servicio se muestra en la Figura 2.2 [20]. Figura 2.3. Evolución de la pila de protocolos de X73PoC a X73PHD. En la actualidad podemos encontrar diferentes tipos de dispositivos médicos que han recibido la certificación por Continua Health Care y trabajan bajo el estándar 11073. En la figura 2.3 se muestran dos ejemplos de dispositivos médicos que además de realizar la medida del dato clínico, establecen una comunicación con el usuario a través de tecnología Bluetooth y basando su comunicación en la norma X73, ambos dispositivos han recibido la certificación por parte de Continua Health Alliance.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 23 Estado del arte Figura 2.4 Dispositivos médicos con la normas X73 certificados por Continua Health Alliance De un mismo modo que en el caso de la tecnología ZigBee si realizamos una búsqueda en la página de Continua, vemos existe un amplio catálogo de dispositivos registrados que soportan el protocolo 11073, aunque la mayoría de ellos a excepción de los mostrados en la figura 2.2 no trabajan con la tecnología ZigBee. Figura 2.5 Productos que soportan 11073 certificados por Continua
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 24 Estado del arte
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 25 Materiales y métodos 3 Materiales y métodos En este apartado se muestran unas orientaciones teóricas respecto a las diferentes tecnologías que se han empleado, así como los diferentes materiales manejados, con el fin poder comprender de una mejor manera el análisis del proyecto. 3.1 ZigBee Se trata del pilar fundamental del proyecto, el hecho de haber escogido este tipo de comunicación inalámbrica y no otra se debe a que resulta idónea para el envío de datos provenientes de sensores, es más, ZigBee fue específicamente diseñada pensando en la proliferación de sensores individuales que se estaban comercializando. La finalidad de la comunicación ZigBee es presentar una tecnología de bajo coste, siendo un estándar para redes de pequeños paquetes de información, seguro, fiable y de bajo consumo que se traduce en la maximización de la vida útil de las baterías. En los siguientes puntos vamos a presentar las características principales que engloban esta tecnología. 3.1.1 Arquitectura de ZigBee ZigBee presenta una arquitectura basada en el modelo de referencia OSI compuesta por diferentes capas como se observa en la figura 3.1. Las dos capas más bajas de la comunicación son, la capa física y la capa de control de acceso al medio (MAC). La capa física (PHY) trabaja a unas frecuencias de 2.4 GHz en todo el mundo, 868 MHz en Europa y 915 MHz en Estados Unido, está compuesta por hasta 16 canales, con un ancho de banda de 5MHz cada uno y junto con la capa de control de acceso al medio nos proporcionan los servicios de la comunicación inalámbrica. El rango puede variar de 10 a 100 metros en función de las potencias utilizadas y el entorno en el que nos encontremos. Mientras que la capa de control de acceso al medio nos proporciona los servicios necesarios para permitir una comunicación directa entre dispositivos, la capa de red resulta necesaria para ofrecer servicios a la capa inmediatamente superior, la capa de Aplicación, y que su vez permitan realizar operaciones sobre la capa inmediatamente inferior a la misma, la capa de MAC. Es decir, la capa de red hace de interfaz entre la capa de Aplicación y la de MAC. También existe otra capa antes de llegar a la capa de aplicación que se denomina GOF y es la encargada de cubrir las tareas correspondientes a los modos de direccionamiento. Por último en la capa de aplicación encontramos el punto de interconexión entre el nodo ZigBee y los usuarios y será sobre esta capa donde centremos el trabajo de este PFC [21].
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 32 Materiales y métodos 3.3.1 Modulo ETRX2 Para realizar la función del coordinador y router se han utilizado dos módulos de la empresa Telegesis, más concretamente el producto ETRX2USB que podemos ver en la figura 3.5 (en [25] y [26] se encuentran las especificaciones del producto y el manual de utilización respectivamente mientras que los drivers del dispositivo se pueden descargar de la página de Telegesis: www.telegesis.com). El ETRX2 trabaja a 2.4 GHz, por lo tanto cumple con el estándar 802.15.4 y tiene la posibilidad de configurarlos como Coordinador, Router o End Device, también nos permite el acceso a conjunto de registros para gestionar su configuración. Han sido necesarios los dos dispositivos para llevar a cabo el proyecto ya que uno lo configuraremos como el coordinador de la red mientras que el otro dispositivo además de actuar como un router será el encargado de junto con el sensor de temperatura emular el comportamiento de un agente médico, como se explica en el anexo 4. En la tabla 3.5 se muestra un resumen de las principales características del dispositivo de Telegesis. Figura 3.6 Modulo ETRX2 Psalidamáxima 250Kbps Alcance>150m Tasadedatos250Kbps Tensiónde alimentación2,1‐3,6V Frecuencia2,4GHz Temperatura‐40ºC+85ºC DimensionesL82mmxW26mmxH8.5mm Coste 27€ Tabla 3.5Características del módulo ETRX2 Cada uno de los dispositivos dispone de 79 registros que van desde del S00 al S4F, los cuales pueden ser configurados en función de las funciones que se quiere que realicen. El comportamiento de los dispositivos se controla a través de los comandos AT [27], como por ejemplo en el caso de la formación de la red (AT+EN) o unirse a la red (AT+JN). A parte en el caso de enviar los mensajes podemos hacerlo de dos maneras, por un lado mensajes broadcast, mediante el comando AT+BCAST donde envía la información a todos los dispositivos de la red, y por otro lado mediante el comando AT+UCAST: <dirección>, que envía la información a un dispositivo concreto.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 33 Materiales y métodos 3.3.2 Sensor de temperatura Como dispositivo final se va a utilizar un módulo facilitado por el grupo de investigación Howlab (Figura 3.6). El hardware que compone el sensor está compuesto por compuesto por un microcontrolador PIC18F26J11, un sensor de temperatura y humedad, así como un módulo ZigBee. Será el encargado de tomar la medida de la temperatura y transmitirla por medio del módulo ZigBee hasta uno de los módulos ETRX2 (Anexo 4). Una información más detallada acerca del sensor se puede consultar en la página de openlab.unizar bajo el nombre del proyecto ZetaMotaAmbi. [28]. Figura3.7 Sensor ZetaMotaAmbi
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 34 Análisis y diseño
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 35 Análisis y diseño 4 Análisis y diseño Una vez explicada toda la tecnología y el material utilizado, en este apartado pasamos a dar una visión más global del sistema, y explicar de un modo detallado todos los pasos que se han seguido para llevar a cabo el proyecto. 4.1 Análisis Lo que se pretende conseguir con este PFC es el establecer una plataforma de trabajo, donde se pueda conectar un dispositivo médico, en nuestro caso un sensor de temperatura, que actuará como un agente, con un dispositivo central que cumpla la funcionalidad de manager. Todo esto a través de una red de comunicación inalámbrica ZigBee. Para poder desarrollar el proyecto de un modo correcto, ya que no disponemos de un dispositivo médico homologado se ha optado por la opción de emular dicho agente mediante la combinación de uno de los dispositivos ETRX2 [25] de Telegesis y el sensor de temperatura [28] como se muestra en la figura 4.1. Figura 4.1Esquema del montaje De este modo obtendremos por un lado un dispositivo capaz de crear y gestionar una red ZigBee, y que a su vez que pueda soportar el protocolo X73. Mientras que por otro lado obtenemos la arquitectura necesaria para poder implementar un agente médico, pensando que en una segunda versión del proyecto, una vez obtenido el modo de trabajo y todos los ajustes necesarios, se traslade la configuración del router al propio sensor para que éste pueda trabajar de un modo individual como un agente médico. Así pues el diseño que se ha decidido seguir se presenta en la figura 4.2, donde se muestra cuáles son los niveles que implementará cada dispositivo, vemos como el sensor solo se encarga de tomar y enviar la temperatura al router y éste es el encargado de establecer el canal de comunicación con el coordinador y sobre este transmitirle el dato de temperatura, mientras que el coordinador además de crear la red y establecer la comunicación con el router, va a disponer de una interfaz gráfica que nos va a mostrar desde el proceso de asociación hasta el dato de temperatura (Anexo 3).
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 36 Análisis y diseño Figura 4.2 Arquitectura del modelo Una vez que ha quedado clara la función de cada uno de los dispositivos dentro de la red pasamos a analizar el trabajo que se ha llevado a cabo en cada una de las capas. En primer lugar en la capa correspondiente a ZigBee tenemos que estudiar una configuración de los dispositivos ETRX2 para que cada uno actúe de acuerdo a la función que le corresponde, luego pasaremos a desarrollar un software que generé el proceso de creación y gestión de la red de un modo automático, para lo que nos apoyaremos en el Zeta Project [29], un proyecto de código abierto que nos proporciona las herramientas necesarias para mandar las instrucciones a los módulos ZigBee. Por otro lado para implementar el perfil ZHC, también será necesaria la configuración de determinados registros, así como desarrollar sobre la capa anterior un sistema que sea capaz de implementar a ambos lados de la comunicación los clusters que componen el perfil ZHC. Por último, el sistema será capaz de desarrollar sobre el canal ZHC, todo el protocolo de comunicación correspondiente a la norma X73 gestionando una máquina de estados finita que implemente todas las fases de la comunicación. En los siguientes apartados se explica de un modo más detallado cada uno de los bloques que componen el proyecto.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 37 Análisis y diseño 4.1.1Arquitectura ZigBee Para llevar a cabo el desarrollo de esta primera fase del proyecto, fue necesario en primer lugar realizar diferentes pruebas para comprender el funcionamiento tanto de los dispositivos en particular como de la tecnología ZigBee en general. Una vez comprendido el funcionamiento de la tecnología ZigBee se pasó a implementar la automatización del sistema, además como ya se ha explicado en el apartado de materiales y métodos, fue necesaria realizar una configuración de cada uno de los registros que posee el dispositivo y configurarlos para que soporte el perfil ZHC. 4.1.1.1 Configuración de registros Para que la comunicación se pueda dar de acuerdo a la arquitectura expuesta, ha habido que realizar un estudio de cada uno de los registros S para configurarlos de acuerdo al cometido que van a tomar en la red y poder aplicarle estos cambios cuando sea preciso, por lo tanto existe una configuración diferente para cada uno de los dispositivos. En este apartado se detallan los cambios más significativos, no obstante, para una mayor información viene recogida en el anexo 2 la configuración completa de todos ellos y en el manual facilitado por Telegesis [27] se puede consultar la funcionalidad de cada registro S. Entre los cambios que hemos ejecutado está el permitir en ambos dispositivos que puedan recibir mensajes de endpoints diferentes a los proporcionados por Telegesis. Poder configurar la tasa de transmisión a la que queremos trabajar, en nuestro caso lo fijaremos en 115200 baudios. También podemos configurar a través de los registros S40, S42 y S44 la dirección a la que queremos que se envíe un mensaje, determinando los endpoint de salida y entrada, el ClusterID y el ProfileID respectivamente [30]. Además será necesario indicar que el dispositivo soporta tanto el perfil médico como todos los clusters que lo componen a través de los registros del S48 al S4C, como explicamos en el apartado 3.1.4. Por otro lado, en cuanto a las configuraciones individuales, tenemos que configurar el router para que pueda actuar como un sumidero para los datos del sensor. También es importante definir qué tipo de dispositivo se trata el agente, en nuestro caso un termómetro (1008) en el registro S49. Mientras que en el caso del coordinador, le tenemos que indicar que actúe como un coordinador dándole valores tanto a la dirección de la red (PAN ID) como una contraseña a dicha red. Además de estas configuraciones existen otros cambios más técnicos que se pueden encontrar en el anexo 2. 4.1.1.2 Automatización de la gestión de red Una vez llevadas a cabo todas las configuraciones de los registros pasamos a estudiar cómo se gestionan las acciones dentro de una red ZigBee. En primer lugar recogemos un informe de todo el proceso que hay que seguir establecer la comunicación, para ello se utilizó una interfaz gráfica y otras herramientas derivadas del Zeta Project [29] que nos permiten gestionar los comandos AT. Una vez que quedo claro el camino a seguir se pasó a desarrollar un
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 38 Análisis y diseño software que gestionara todo el proceso de un modo automático y establece la comunicación entre los diferentes endpoints de los dispositivos dejando la red preparada para soportar los intercambios de tramas en los niveles superiores. El diagrama de flujo del sistema se presenta en la figura 4.4 y se comporta de la siguiente forma. En primer lugar se conecta el dispositivo y se abre el puerto de este modo queda publicado un driver a partir del cual comenzaremos a trabajar. Acto seguido comprobamos de qué dispositivo se trata, ya que puede ser el dispositivo que implemente el router o el coordinador, en ambos casos la primera acción que se llevará a cabo será escribir todos los registros que se indican en el punto anterior en función del dispositivo que sea. En el caso de que se trate del coordinador comenzará con la creación de la red y un sistema de escaneo constante para que nuevos dispositivos puedan unirse a ella. Posteriormente, para cada nuevo dispositivo analizaremos sus endpoints buscando que alguno contenga el perfil público ZHC. Si alguno de los dispositivos contiene dicho perfil se registra como un agente y además se establece un sistema de escucha para gestionar los mensajes recibidos de dicho perfil. A partir de un identificador que posee cada agente, podremos saber de qué tipo de dispositivo médico se trata, en nuestro caso tendrá el valor 1008 correspondiente a un termómetro. Por otro lado, en el sistema que gestiona el router también analizaremos los endpoints que componen los dispositivos ZigBee que se unen a la red con el fin de establecer la comunicación con los mensajes provenientes del coordinador ya que más adelante éste implementará el manager. En este punto también se establece la comunicación con el sensor para implementar el agente pero esto resulta menos relevante en el desarrollo del proyecto (Anexo 4). Además se establecerá un sistema que envíe un mensaje de prueba cada cierto tiempo para comprobar que la comunicación con el manager se mantiene. Finalmente quedará un esquema de comunicación como el que se recoge en la figura 4.3. Figura 4.3Esquema de la comunicación inalámbrica
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 39 Análisis y diseño Figura 4.4 Diagrama de flujo de la arquitectura ZigBee utilizada 4.1.2 Implementación del perfil ZHC Una vez establecidas las conexiones entre los diferentes dispositivos, como se muestra en la figura 4.3, ya estamos en disposición de gestionar los mensajes provenientes del perfil ZHC en ambos dispositivos y a su vez esta implementado el emulador del agente. El siguiente paso es llevar a cabo todo el desarrollo necesario para implementar el perfil médico ZHC en ambos extremos de la comunicación. Por lo tanto deberemos de tener en cuenta que al tratarse de un perfil público el envío de tramas tiene que hacerse de acuerdo a las especificaciones recogidas en la ZCL [8], permitiéndonos así el incluir junto el mensaje, el perfil y el cluster al que va dirigido u otra información como un sistema de control, o el comando que va a emplear dentro del cluster. Este tipo de tramas están compuesta por una cabecera y una secuencia de datos, como se puede observar en las figuras 4.3 y 4.4 y todos ellas van dirigidas a diferentes clusters del perfil 0108.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 40 Análisis y diseño Figura 4.3 Formato General de una trama ZCL Figura 4.4 Frame control Tanto en el apartado 3.4 como en la especificación del perfil [1] se explican que clusters se deben de soportar a ambos lados de la comunicación. Vamos a prestar especial atención en el 11073 Protocol Tunnel [7] ya que nos proporciona los atributos necesarios para poder establecer un canal donde se puedan realizar un intercambio de tramas a nivel X73, los tipos de tramas necesarios en este perfil se recogen en la tabla 4.3. Mientras que el procedimiento a seguir para establecer la comunicación es el siguiente, en primer lugar el agente envía solicitudes de conexión al manager periódicamente hasta que recibe una respuesta indicándole que este dispositivo está autorizado para establecer la comunicación y cuando este la recibe ya puede comenzar con la transmisión de las tramas APDU que son las que establezcan la comunicación al nivel del X73, finalmente cuando la comunicación se cierre, se cerrará también el canal enviando una solicitud de desconexión, este proceso queda plasmado en el diagrama de la figura 4.5. Tabla 4.3Comandos del perfil ZHC
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 41 Análisis y diseño Figura 4.5 Establecimiento del canal ZHC En el caso de la petición de conexión se compone por el identificador de red, el Idle timeout que nos indica el tiempo que pasa hasta que repetimos otra petición de conexión y el número de endpoint de donde procede la petición, como se muestra en la figura 4.6. Figura 4.6 Formato de la petición de conexión
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 48 Desarrollo e implementación 5.2.1 Coordinador En primer lugar vamos a explicar cómo se ha desarrollado el módulo que gestiona el coordinador, en la figura 5.4 se muestra un esquema de los bloques que lo componen quedando su funciones definidas en cuatro bloques que son por un lado las funciones que desempeña dentro de la red ZigBee, por otro lado la implantación tanto del perfil ZHC como del protocolo X73 esta última apoyada como indicamos en el apartado anterior en otro bloque llamado X73API MANAGER y de un modo paralelo a los anteriores, se desarrolla la interfaz gráfica para mostrar al usuario en todo momento lo que está ocurriendo además de mostrar por pantalla el dato de temperatura obtenido por el sensor. Figura 5.4 Esquema del módulo del coordinador En primer lugar las funciones que desempeña a nivel de ZigBee comienzan con la configuración de todos los registros indicados en el punto 4.1.1.1, posteriormente pasa a la creación de la red y a escanear periódicamente dicha red con el objetivo de detectar si algún nuevo nodo se ha unido a la red, en cuanto descubre un nuevo nodo pasa a analizar sus endpoints y los compara con el perfil médico (0108), en el caso de que alguno de ellos lo contenga, lo almacena e n una lista de agentes. Posteriormente de dicha lista de agentes, localizamos el que su identificador Device ID tome el valor 1008 ya que esto nos indicará que se trata de un termómetro, es entonces cuando se establece un sistema de escucha para poder gestionar los mensajes recibidos desde dicho endpoint. Llegados a este punto se podría decir que la comunicación a nivel ZigBee que va desde el agente al manager
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 49 Desarrollo e implementación ya está establecida. Una parte del código que gestiona el descubrimiento de un nuevo nodo lo encontramos en la figura 5.5. Para poder procesar los mensajes procedentes del agente dirigidos al perfil ZHC, el dispositivo que implementa el manager, tendrá que ser capaz de en primer lugar desencapsular una trama ZCL obteniendo los diferentes campos que la componen (figura 4.3), y tramitarlo en función del cluster al que vaya dirigido. Al implementar el lado correspondiente al cliente, solo será necesario que implemente el ProtocolTunel 11073 ="0614” como se ha indicado en la Tabla 3.4. Figura 5.5 Procedimiento al encontrar un nodo nuevo Ya que nuestro agente está programado para establecer el tunel ZHC una vez que localice al manager. El manager tiene que estar preparado para llevar a cabo un intercambio de tramas con el agente y tramitarlas en función del comando que las acompañe (Tabla 4.3), en la figura 5.6 se muestra un fragmento del código encargado de analizar los mensajes dirigidos al cluster 0614. Así pues una vez que el canal se halla establecido correctamente, se pondrá en funcionamiento la máquina de estados que controla el protocolo X73 y se comenzará a implementar el intercambio de tramas APDU hasta que ambos dispositivos realicen todos los ajustes necesarios, como son la asociación de los dispositivos, el envío de solicitudes o el envío de la configuración, para finalmente alcanzar el estado operando [17].
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 50 Desarrollo e implementación Finalmente al alcanzar el estado operando en ambos extremos de la comunicación, el agente pasará a transmitir de manera periódica el dato de temperatura encapsulado y decodificado dentro del campo PRST de una trama APDU, mientras que en el manager se llevará a cabo el proceso inverso para acabar almacenando dicho dato clínico junto con la fecha y hora en que ha sido tomado en un vector de medidas, para poder efectuar un correcto seguimiento del paciente. Figura 5.6 Gestión de una trama en el cluster 0614 Una vez alcanzado el estado operando se continuará con el intercambio de tramas de un modo periódico, hasta que se cierre el canal de comunicación ya sea de un modo voluntario o involuntario, en este caso el estado del manager pasaría a ser desconectado y canal ZHC se cerraría. De un modo paralelo a todo este proceso se llevará a cabo el desarrollo de una interfaz gráfica que presenta el aspecto de la figura 5.7. Ya que el funcionamiento del sistema trabaja de un modo automático una vez que se abre el puerto, no existe ningún botón de inicio, el programa comenzará a correr, mostrándonos la fase del proceso en la que se encuentra, los nodos que se han registrado y el estado del protocolo X73, para finalmente acabar mostrando el dato de temperatura recogido por el sensor. Además tendremos la posibilidad de observar los datos de temperatura recogidos, para poder llevar a cabo un seguimiento más preciso del paciente. En el Anexo 2 se encuentra una explicación detallada de cada uno de los bloques que componen esta interfaz.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 51 Desarrollo e implementación ` Figura 5.7 Interfaz gráfica 5.2.2 Router Del mismo modo que hemos explicado el funcionamiento del bloque que gestiona el coordinador vamos a pasar a explicar cómo se ha desarrollado el bloque que implementa el agente, al igual que el coordinador también se puede dividir en varios bloques como se muestra en el esquema de la figura 5.8. Por un lado tenemos la parte que gestiona la conectividad dentro de la red ZigBee y la encargada de crear las conexiones inalámbricas entre los dispositivos y por otro lado al igual que en el coordinador, existen dos bloques encargados de implementar tanto el perfil ZHC como el protocolo 11073, este último apoyándose en el módulo X73API AGENTE. En este caso tenemos que tener en cuenta que el agente será el encargado de realizar todos los trámites necesarios para iniciar el protocolo de comunicaciones, estableciendo en primer lugar el canal ZHC y una vez creado iniciar el protocolo X73. La parte correspondiente a la gestión del bloque ZigBee tiene una arquitectura similar al caso del coordinador ya que lo primero que hace es configurar el dispositivo ETRX2, escribiendo los registros indicados en el Anexo 2 y posteriormente iniciar los procesos correspondientes a la capa ZigBee. Una vez que se encuentra dentro de la red pasará a analizar los dispositivos que la componen con el objetivo de localizar el coordinador de la red o el manager en el nivel de X73. Por otro lado, y de un modo ajeno al intercambio de datos médicos, también establece comunicación con el sensor para poder recibir los datos de temperatura y emular de este modo el comportamiento de un agente (Anexo 4).
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 52 Desarrollo e implementación Figura 5.8 Esquema del módulo del router Una vez localizado el manager, pasará a localizar el endpoint que implemente el manager, que será el que contenga el perfil 0108 y será con este con quien se iniciará de un modo automático el establecimiento del canal ZHC. Por tanto el canal se creará entre el endpoint que implemente el perfil médico dentro del router y el perfil médico del coordinador. El proceso comenzará enviando una solicitud de asociación dentro de una trama ZCL, con el comando 01 (la forma que se crea esta solicitud se puede comprobar en la figura 5.9) por lo que será necesario implementar el perfil ZHC del modo que se explica en el apartado 3.1.4 y de este modo será capaz de gestionar los datos dirigidos a los siguientes clusters: o Basic = "0000" o Identify ="0003" o GenericTunnel ="0600" o ProtocolTunel 11073 ="0614" A su vez también tiene la capacidad de encapsular y desencapsular las tramas ZCL. Una vez que haya recibido la respuesta aceptando la conexión entrará en funcionamiento el último bloque correspondiente a la norma X73, donde apoyándose en el módulo correspondiente al X73 API AGENTE, gestionará el intercambio de tramas APDU con el manager.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 53 Desarrollo e implementación Figura 5.9 Petición de conexión del canal ZHC El proceso correspondiente al protocolo X73 comenzará enviando una solicitud de asociación [1], codificando una trama APDU dentro de una trama ZCL, como se puede ver en la figura 5.10. De este modo alcanzará el nivel asociado y si el manager lo requiere éste pasará a enviarle su configuración y si es aceptada, ambos dispositivos alcanzarán el estado operando. Es aquí cuando se comenzará a enviar los datos de temperatura encapsulados dentro de una trama APDU y codificados a través del protocolo MDER. Estos datos tendrán que ser enviados a través del canal ZHC, al perfil, clusters y endpoint adecuados, finalmente el dato tendrá un formato como se muestra en la figura 5.11. Por último, si en cualquier momento ya sea de un modo voluntario o involuntario se cortase la comunicación, ambos dispositivos pasarían a un estado desconectado y se cerraría el canal ZHC. Figura 5.10Petición de asociación protocolo 11073
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 54 Desarrollo e implementación Así pues a modo de resumen, la decisión final de diseño que se decidido implementar es por un lado todo el desarrollo correspondiente a la gestión del manager en un endpoint dentro un módulo ETRX2 y por otro lado toda la implementación de la arquitectura que compone el agente. El dato de temperatura se lo proporcionamos a través de un sensor dotado de un módulo ZigBee aunque este dato de temperatura podría provenir de cualquier otro sensor ya que el grueso del proyecto se encuentra en la implantación de la lógica de gestión que gestiona tanto el agente como el manager, la emulación de cómo se ha formado el agente se explica en el anexo 4. Una vez que se ha implementado toda la parte correspondiente al agente estaríamos en disposición de trasladar el software diseñado al hardware de un sensor ZigBee para que este pueda actuar por si solo como un agente médico. Figura 5.11 Proceso de encapsulado del dato de temperatura Para la gestión de todo lo expuesto a lo largo de este punto, se ha llevado a cabo a través de dos bloques uno correspondiente a la implementación del manager y otro a la implementación del agente, a su vez cada uno de estos bloques están compuestos por un conjunto de clases y métodos que interactúan entre sí como podemos encontrar en la figura 5.12.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 55 Desarrollo e implementación Figura 5.12 Composición correspondiente al Router y al Coordinador. 5.2.3 X73API Manager y X73APIAgente Estos dos bloques se tratan de los bloques donde se apoyan el coordinador y router respectivamente, para gestionar las herramientas correspondientes al protocolo 11073. Ambos bloques Implementan el código necesario para llevar a cabo tanto la codificación como la decodificación MDER, los estados, definiciones, así como todos los estados de la máquina de estados que implementa el protocolo X73 (Figura 4.8). En la figura 5.13 se muestra un ejemplo de cómo procesa una trama APDU dentro cuando nos encontramos dentro del estado asociando. No vamos a entrar a detallar estos bloques en detalle ya que como ya hemos explicado no han sido desarrollados para este proyecto y se trata de un sistema correspondiente a otro PFC, aunque sí que es cierto que ha habido que emplear mucho tiempo en modificar el código para que pudiera ser compatible con nuestro sistema. Las principales modificaciones que se han llevado a cabo han sido por un lado, adaptar todas las partes que hacían referencia a programación android para ajustarla al lenguaje Java y por otro lado también ha sido necesario cambiar toda la parte del envío de mensajes ya que este proyecto fue diseñado para trabajar con tecnología Bluetooth en lugar de tecnología ZigBee.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 56 Desarrollo e implementación Figura 5.13Procesamiento de una trama APDU dentro del estado Asociando
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 57 Resultados 6 Resultados En este apartado se explican los pasos seguidos para comprobar el correcto funcionamiento del sistema. Se comprueba que se respeten todas fases del proceso de establecimiento del canal, así como comprobar que los datos se envíen correctamente encapsulados en las tramas que les corresponde. A su vez nos cercioramos de que el resultado final resulta satisfactorio y exponemos determinados problemas con los que nos hemos enfrentado. 6.1 Pruebas de software A lo largo del todo el proyecto se han ido realizando las comprobaciones de que cada fase se completaba satisfactoriamente, tanto la parte correspondiente a la tecnología ZigBee, la implementación del perfil ZHC y finalmente la parte correspondiente a la gestión del protocolo 11073. Finalmente hemos obtenido un sistema capaz de gestionarse de un modo automático en ambos extremos de la comunicación, capaz de crear un canal ZHC sobre una red ZigBee e implementar sobre dicho canal el protocolo 11073 con el fin de transmitir el dato clínico de acuerdo a los estándares médicos. Para realizar las comprobaciones necesarias, resulta indispensable contar con dos puntos de acceso. En nuestro caso, como se explica en el apartado 5.1, en lugar de contar con un punto de conexión en ordenadores diferentes, crearemos la plataforma en el mismo ordenador, ya que Karaf nos proporciona la posibilidad de abrir dos instancias completamente independientes entre sí. Para llevar a cabo el control de todas las acciones que se dan a lo largo del proceso tendremos por un lado la parte correspondiente al manager que la evaluaremos a partir de la interfaz gráfica, y por otro lado la parte del router que se evaluará a través de salidas por pantalla que podremos visualizar a través de la consola de Karaf. Una vez definidas las instancias será necesario en primer lugar instalar todos los bundles necesarios para poder abrir el puerto del dispositivo de Telegesis (apartado 5.1) y posteriormente en un punto de conexión colocar tanto el bundle encargado de gestionar el coordinador y el X73API Manager que es el encargado de suministrarle las herramientas necesarias para gestionar el protocolo X73, mientras que en la otra instancia habrá que hacer lo propio con el router. Los bundles empleados en cada instancia los podemos comprobar en la figura 6.1. Para abrir el puerto utilizaremos el Serial Gui (Figura 6.2) que nos ofrece la posibilidad de elegir la velocidad a la que queremos que trabaje, en nuestro caso lo iniciaremos con una tasa de baudios de 115200, ya que lo hemos configurado para que trabaje a esta velocidad, aunque sería posible cambiarlo, a través de esta pantalla también es posible comprobar las instrucciones que se envían al módulo ZigBee en todo momento. Así pues una vez presentados los pasos previos a iniciar el proceso, pasamos a describir cómo funciona finalmente el sistema que hemos desarrollado.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 64 Conclusiones y líneas futuras constructivo ya que me ha ofrecido la oportunidad de continuar con mi formación, familiarizándome con un nuevo entorno de trabajo y aprendiendo a desenvolverme en un entorno Java, que se trata de uno de los lenguajes más comunes en el mundo de la programación. Este proyecto también me ha ofrecido la oportunidad de estudiar y trabajar con una nueva tecnología, que prácticamente era desconocida para mi hace un año, como es la tecnología ZigBee y además implementar sobre ella un protocolo de comunicación como es el protocolo IEEE 11073. Por último destacar que ha resultado una motivación extra el hecho de diseñar una plataforma de trabajo que pueda ser utilizada como base para futuros proyectos en un campo tan interesante como es la telemedicina obteniendo finalmente un desarrollo tangible y de utilidad. 7.2 Líneas Futuras Una vez finalizado el proyecto son muchas las líneas de trabajo que quedan abiertas. El primer paso a tomar, es poner la plataforma en funcionamiento dentro de un entorno real para comprobar que todo se ha desarrollado correctamente. Para ello es necesario obtener un dispositivo médico que trabaje con tecnología ZigBee, soporte el protocolo 11073 y además estén certificados por Continua Alliance. Para adquirir estos dispositivos reales será necesario ponernos en contacto con la universidad de Brunnel, que como se explica en el estado del arte han conseguido la certificación de algunos de sus dispositivos o bien en la página acute technology [38], donde nos presenta un catálogo de diferentes dispositivos que soportan la norma X73 y el perfil ZHC. Por otro lado, otra de las líneas de trabajo que se van a tomar se da en la parte correspondiente al sensor de temperatura, ya que una vez desarrollada toda la arquitectura a seguir, sería conveniente trasladar el software directamente sobre el hardware del sensor para que éste actúe por si solo como un agente médico, de este modo se podría optar a obtener en un futuro la homologación del producto por parte de Continua Health Alliance. Una vez comprobado que el sistema funciona correctamente en un entorno real, se pasará a realizar los ajustes necesarios para que además de trabajar con un sensor de temperatura pueda soportar otros dispositivos médicos como puede ser un glucómetro o un tensiómetro entre otros, ya que esa es la finalidad que se busca para este proyecto, el hecho de que pueda trabajar en un entorno real con varios dispositivos. Además gracias a la modularización de los bloques que componen el software que gestiona el proyecto siempre está sujeto a nuevos cambios y actualizaciones. Así pues con la finalización de este PFC queda definida una estructura central capaz de operar en un entorno médico, sobre la cual se pueden desarrollar un amplio número de aplicaciones.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 65 Bibliografía 8 Bibliografía [1] Estándar del protocolo 1107 Health informatics — Personal health device communication — Part 20601:Application profile Optimized exchange protocol http://standards.ieee.org/findstds/standard/11073-20601-2008.html [2] Howlab http://howlab.unizar.es/ [3] Goodday Solutions S.L. http://www.goodday.es/ [4] X73Spain Group http://www.x73spain.com [5] Telegesis http://www.telegesis.com/ [6] ZigBee Alliance http://www.zigbee.org/ [7] Estándar ZigBee Health Care http://www.zigbee.org/Standards/ZigBeeHealthCare/Overview.aspx [8] ZigBee Cluster Library Specification (ZCL) ZigBee Document 075123r04ZB, May 29, 2012 [9] R. Wooton, J. Craig, “Introduction to Telemedicine” Book Distributors, 2nd Edition, 2006. [10] Fernando Barciela “La telemedicina ya está aquí” Articulo publicado en EL PAIS, agosto de 2012 http://economia.elpais.com/economia/2012/08/24/actualidad/134582 9355_158913.html [11] Comunicado publicado en europapress,5 de abril de 2010 “El recientemente aprobado ZigBee Health Care Profile está disponible para descarga” http://www.europapress.es/economia/noticia-comunicado-recientementeaprobado-zigbee-health-care-profile-disponible-descarga20100405150337.html [12] American Recovery and Reinvestment Act de 2009 http://www.recovery.gov/About/Pages/The_Act.aspx
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 66 Bibliografía [13] Ignacio Martínez Ruiz,¿el hospital en casa? dispositivos médicos personales [14] HL7 http://www.hl7.org/ [15] Continua Health Alliance http://www.zigbee.org/ [16] ZigBee Alliance http://www.zigbee.org/ [17] Estándar IEEE 802.15.4 Ieee802.org. Retrieved 2012-10-18. http://www.ieee802.org/15/pub/TG4.html [18] Comunicado conjunto de ZigBee Alliance y The American Telemedicine “The ZigBee alliance and the american telemedicine association to collaborate on advancing use of telehealth solutions” [19] Documento de ZigBee Alliance “ZigBee seleccionada por continua health alliance para las normas directivas de la próxima generación “ [20] Tesis doctoral Javier Escayola Calvo, “Contribuciones a estándares y tecnologías de comunicación en dispositivos médicos para e ‐ Salud” [21] Victor Kwong, Agosto 2011 “ZigBee Health Care Aplication Development Kit” Freescale technology forum. [22] Sergio R.Caprile, Editores GAE-2009 “Equisbí: Desarrollo de aplicaciones con comunicación remota basadas en ZigBee y 802.15.4” [23] P. Del Valle García, J.D. Trigo Vilaseca,I. Martínez Ruiz, J. Escayola Calvo,M. Martínez-Espronceda Cámara, L. Serrano Arriezu, J. García Moros “Interoperabilidad de dispositivos médicos mediante el estándar ISO/IEEE 11073 sobre tecnología Bluetooth”. [24] D.Tejada, R.Achig, J.Fernandez, I. Martinez, M.Galárraga, L. Serrano, P. de Toledo”Evolución de la interoperabilidad de dispositivos médicos y adaptación a la norma x73: casos de uso y diseño de implementación”
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 67 Bibliografía [25] ETRX2USB ZigBee™ Wireless Mesh Networking USB Stick (Especificaciones del dispositivo ETRX2-USB) http://www.telegesis.com/downloads/general/ETRX2USB%20Product %20Brief.pdf [26] ETRX2USB and ETRX2USB-PA USB STICK PRODUCT MANUAL (Manual del dispositivo ETRX2-USB) http://www.telegesis.com/downloads/general/TG-ETRX2USB-PM-004105.pdf [27] ETRX2 and ETRX3 Series ZigBee Modules AT-Command Dictionary http://www.telegesis.com/downloads/general/TG-ETRXn-R305Commands.pdf [28] Proyecto ZMota Ambi, (Especificaciones del sensor de temperatura) http://openlab.unizar.es/index.php/projects/zeta/zetas/ambi [29] HOWlab: Zeta Project http://openlab.unizar.es/site/es.unizar.howlab.core.io.serial/faq.html [30] ETRX2 and ETRX35x ZigBee MODULES Application Note-R3xx Interoperability, Telegesis [31] Martínez, J. Escayola, I. Fernández de Bobadilla,M. MartínezEspronceda, L. Serrano, J. Trigo, S. Led, y J. García “Optimización de una Plataforma Telemática para Monitorización de Pacientes orientada a u-Salud, y basada en Estándares y Plug-and-Play” [32] Pedro Funes Salas Proyecto fin de carrera , Julio 2010 “Implementación de una plataforma de telemonitorización de pacientes estándar, open source y ubicua basada en ISO/IEEE 11073-PHD sobre Android.” [33] Osgi alliance http://www.osgi.org [34] Apache Felix http://felix.apache.org/ [35] Karaf http://karaf.apache.org/ [36] Openlab-Project ZetaDevice Zeta Kit http://openlab.unizar.es/index.php/projects/zeta/software/zeta-devkit [37] Apache MAVEN http://maven.apache.org/
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 68 Bibliografía [38] Acute technology http://www.acutetechnology.com/ [39] THK SENSOR http://openlab.unizar.es/site/es.unizar.howlab.projects.renaissance/re naissance-thk-sensor/ [40] RENAISSANCE Project http://www.renaissance-project.eu/?lang=es [41] Programa de Postgrado en Ingenierías Transversales Ingeniería Biomédica · Mención de Calidad. Autor Antonio Aragüés Ruiz Director Dr. Ignacio Martínez Ruiz. Diciembre 2010. “Contribuciones en el diseño, implementación e integración de nuevas tecnologías y perfiles médicos recomendados para entornos de e-Salud basados en el estándar ISO/IEEE 11073”
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 69 A1 - Anexo 1: Cronograma de implantación A1 - Anexo 1: Cronograma de implantación En este apartado se presenta un seguimiento temporal de cómo se ha elaborado el PFC, quedando resumido gráficamente en un diagrama de Gantt en el apartado dos. Anexo 1.1 Cronograma de implementación La duración del proyecto se divide más o menos a partes iguales entre la parte correspondiente a la tecnología ZigBee y la implantación del protocolo 11073, la primera parte se llevó a cabo en los laboratorios del grupo de investigación Howlab, desde octubre de 2011 hasta finales de febrero y la parte final en las oficinas de la empresa Goodday Solutions. En primer lugar se realizó un trabajo de investigación acerca de la tecnología ZigBee y todo el entorno de trabajo que se iba a utilizar a lo largo del proyecto. Para comenzar a familiarizarnos con el entorno se realizaron una serie de tutoriales de la página de Apache Felix [18], para comprender el contexto Maven y el lenguaje Java en general. El siguiente paso fue comenzar a realizar algunas pruebas a nivel de Zigbee como puede ser la formación de la red, o el envío de mensajes entre dispositivos, en primer lugar de un modo manual y posteriormente poco a poco se comenzó a elaborar el software que lo gestionase de un modo automático. Además se realizaron pruebas con el sensor de temperatura como se explica en el Anexo 4 y para ello se tomó como referencia un subproyecto desarrollado por el grupo Howlab con el nombre de THK-Sensor [31], que a su vez es otro subproyecto del proyecto Reinassance [32.] Posteriormente se paso a realizar un estudio detallado de todos los registros que componen los módulos de Telegesis, para poder finalmente alcanzar la configuración presentada en el apartado 4.1.1 (Anexo 2). Una vez que se consiguió que la formación de la red y el análisis de los dispositivos que la componían de un modo automático por medio de dos bundles, uno encargado de gestionar el coordinador y otro encargado de la gestión del router, se pasó al estudio del perfil público ZHC que nos proporciona Zigbee Alliance para la gestión de dispositivos médicos, para en primer lugar configurar el dispositivo para poder soportar dicho perfil en uno de los endpoint del dispositivo ZigBee y en segundo desarrollar el software capaz de crear un canal entre un manager y un agente de un modo automático como se indica en el apartado 4.1.2. El último paso fue toda la parte correspondiente a la implantación de la norma X73 sobre nuestro sistema, se paso a trabajar del mismo modo que con las partes anteriores un primer periodo de aprendizaje hasta que se pudo pasar trabjar con el protocolo. Para finalmente implementarlo en el sistema fue necesario adaptar unos códigos facilitados por Goodday que nos daban las herramientas necesarias para implementar la máquina de estados capaz de gestionar las fases del protocolo 11073. Los últimos meses se utilizaron para desarrollar la interfaz gráfica y realizar las pruebas necesarias para comprobar el correcto funcionamiento del sistema.
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 70 A1 - Anexo 1: Cronograma de implantación Anexo 1.2 Diagrama de Gantt Figura A1.1Diagrama de Gant
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 71 A2 - Anexo 2: Configuración de registros A2 - Anexo 2: Configuración de registros RegistroDescripciónValorCOOValorFFD S00ChannelMask0200FFFF S01TransmitPowerLevel011 S02PreferredPANID*56565656 S03PreferedExtendedPANID00000000000000000000000000000000 S04LocalEUI000D6F0000945A5B 000D6F0000F0F675 S05LocalNodeID0000 C44C S06Parent´sEUI00000000000000000000000000000000 S07Parent´sNODEIDFFFF FFFF S08NetworkKey*defaultdefault S09LinkKey*defaultdefault S0AMainFunction181C0D14 S0BUserReadableNameTelegesisTelegesis S0CPasswordpasswordpassword S0DDeviceInformationETRX2R305X ETRX2R305X S0EPromtEnable1*80008000 S0FPromtEnable2*01040104 S10ExtendedFunction159A 14CA S11DeviceSpecific03000300 S12UARTSetup0C10 0C10 S13Pull‐upenable0000 0 S14Pull‐downenable0000 0000 S15I/OConfiguration0000 0000 S16DataDirectionofI/OPort00F800F8 S17InitialValueofS16 00F8 00F8 S18OutputBufferofI/Oport00F000F0 S19InitialValueofS18 00F0 00F0 S1AInputBufferofI/Oport0FF70FF7 S1BSpecialFunctionpin1 3A983A98 S1CInitialValueofS1B3A983A98 S1DSpecialFunctionpin2 1D4C 1D4C S1EInitialValueofS1D1D4C 1D4C S1FA/D1(ETRX3:ADC0) 0262025D S20A/D2(ETRX3:ADC1) 262025E S21A/D3(ETRX3:ADC2) 0001 1 S22A/D4(ETRX3:ADC3)00011 S23ImmediatefunctionalityatIRQ000011 S24ImmediatefunctionalityatIRQ100000 S25ImmediatefunctionalityatIRQ20000 0000 S26ImmediatefunctionalityatIRQ300000000 S27Functionally1atBoot‐up00000000 Tabla A2. 1Registros S00S27
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 72 A2 - Anexo 2: Configuración de registros RegistroDescripciónValorCOOValorFFD S28FunctionalityatNetworkJoin00000000 S29Timer/Counter044 S2AFunctionalityforTimer/Counter080108010 S2BTimer/Counter100F000F0 S2CFunctionalityforTimer/Counter1821E821E S2DTimer/Counter200F400F4 S2EFunctionalityforTimer/Counter280148014 S2FTimer/Counter300F2 00F2 S30FunctionalityforTimer/Counter380158015 S31Timer/Counter400000 S32FunctionalityforTimer/Counter400000 S33Timer/Counter500000 S34FunctionalityforTimer/Counter500000 S35Timer/Counter600000 S36FunctionalityforTimer/Counter60000 0 S37Timer/Counter70000 0 S38FunctionalityforTimer/Counter70000 0 S39PowerMode(volatile)0000 0000 S3AInitialPowermode 0000 0 S3BStart‐upFuncitonallyPlaintextABUTTON3 BUTTON3 S3CStart‐upFuncitonallyPlaintextBBUTTON4 BUTTON4 S3DSupplyVoltaje3432 3344 S3EMulticastTableEntry000000 0 S3FMulticastTableEntry010000 0 S40SourceandDestinationEndpointforxCASTs* 202202 S41InitialValueofS40 0101 101 S42ClusterIDforxCASTs(volatile)*0000 0 S43InitialvalueofS420000 0 S44ProfileIDforxCASTs(volatile)0108 108 S45InitialvalueofS44C091 C091 S46Start‐upFunctionally32bitnumer(volatile)00 S47PowerdescriptorC110C110 S48Endpoint2ProfileID*0108 108 S49Endpoint2DeviceID*0000 1008 S4AEnpoint2Deviceversión*0000 0 S4BEnpoint2InputClusterList*0000000306000614 614 S4CEnpoint2OutputClusterList*06140000000306000614 S4DMobileEndDevicePollTimeout 100014 S4EEndDevicePollTimeout0EFF 605 S4FMACTimeoutF000 0BB8 Tabla A2.2 – Registros S28-S4F
“Desarrollo de un termómetro inalámbrico basado en ISO/IEEE 11073” 73 A3 - Anexo 3: Interfaz gráfica A3 - Anexo 3: Interfaz gráfica