4.1. Trabajos Futuros Basados en el diseño realizado en la tesis, se plantearon varias ideas para realizar los siguientes proyectos: En el sistema embebido, implementar y comparar diversos protocolos de comunicación y transmisión de señales biomédicas, ya sean propios o utilizando los estándares internacionales que existen para la transmisión. De tal forma que permitan comparar el desempeño, eficiencia y calidad en la transmisión de la información. Realizar un análisis de la compresión, detección de errores y encriptación de las señales biomédicas, teniendo en cuenta los recursos de hardware y software disponible en el sistema embebido. Analizar la robustez y la seguridad eléctrica del sistema implementado en la tesis, con el fin de realizar las pruebas técnicas establecidas en la norma NTC 60601-1. Calcular el costo computacional de los programas ejecutados en el sistema embebido al realizar la comunicación con el sistema de información SARURO, con el fin de establecer la eficiencia del Software en el Sistema Embebido y de esta forma determinar las posibles mejoras que se le pueden realizar para optimizar el diseño. Explorar nuevas aplicaciones para el sistema embebido, como la detección de variables ambientales (temperatura, humedad, nivel de presión sonora) para la transmisión y control de las condiciones de un invernadero o para realizar sistemas de monitorización y control en una industria. Modificar las caracterı́sticas del hardware y software para la medición de otros parámetros que permitan la exploración de nuevos temas de estudio como los WSN (Wireless Sensor Networks). Trabajar en la implementación de protocolos de comunicación para sistemas embebidos con estas caracterı́sticas. 64 Apéndices 65 Apéndice A Productos A.1. Sistema Embebido El sistema embebido permite el almacenamiento, adaptación y transmisión al sistema de información SARURO [104], por redes WPAN, WLAN, LAN y redes celulares, de la información correspondiente a: nivel de saturación de oxı́geno, presión arterial, frecuencia cardiaca y electrocardiografı́a. A.2. Ponencia En el “IV Seminario Internacional de Procesamiento y Análisis de Imágenes Médicas”, llevado a cabo del 24 al 27 de noviembre del 2008, se realizó la ponencia Titulada “ Plataforma Web para Telemedicina basada en RIMHL7”, la cual se anexa en el CD con el respectivo certificado de presentación. En esta ponencia se presentó el dispositivo desarrollado en BioIngenium para la telemonitorización de señales biomédicas ( Es el primer equipo con estas caracterı́sticas integrado en Colombia, que se encuentra en proceso de certificación ante el INVIMA). A.3. Conferencias Se presentaron dos conferencias: En la Universidad Pedagógica Nacional (UPN) se desarrollo una conferencia titulada “Design and Implementation of an Embedded System”, la cual se anexa en el CD con la carta de agradecimiento por la participación en esta actividad. La conferencia se realizó en Septiembre 29 66 de 2009. Se expuso los conceptos fundamentales de los sistemas embebidos, entre los que se encuentran: la definición, las aplicaciones, los conceptos de Linux Embebidos, la arquitectura general, boards comerciales y herramientas de desarrollo. En la Universidad de San Buenaventura (USB), sede Bogotá, se dictó la conferencia titulada “Introducción a los Sistemas Embebidos”, la cual se anexa en el CD con la carta de agradecimiento por la participación en esta actividad. La conferencia se realizó en Septiembre 09 de 2010. Se presentó una introducción a las temáticas relacionadas con los sistemas embebidos, software libre, hardware libre, Linux Embebido, herramientas de desarrollo y el sistema diseñado en la tesis. A.4. Artı́culos En el 2009 se presento un abstract del proyecto titulado “Monitoreo Remoto De Señales Biomédicas Vı́a Celular ” al “Cartagena Telemedicine Conference 2009 ”, el cual se aprobó para presentarlo como ponencia, pero por dificultades de tiempo y económicas no se asistió al certamen. En el CD se anexa el artı́culo, el abstract y la carta de confirmación. A.4.1. Artı́culos en Edición Actualmente, se están preparando los siguientes artı́culos: Titulo: “Desing and Implementation of an Embedded System for Acquiring and Transmission of Biomedical Signals through Cellular Network”. Titulo: “Diseño de un sistema embebido como herramienta de comunicación para transmitir por redes inalámbricas”. Titulo: “Implementación de un dispositivo electrónico, basado en un sistema embebido, para aplicaciones médicas”. A.5. Reporte Técnico Se desarrolló el reporte técnico titulado: “MARCO LEGAL DE LOS DISPOSITIVOS MÉDICOS EN COLOMBIA”, en el cual se identifican las 67 normas y estándares técnicos que debe cumplir un equipo médico de telemonitorización de señales biomédicas en Colombia. 68 Apéndice B Conexiones de los FTDIs y del Hub TUSB En las Figuras B.1, B.2 y B.3 se presentas los esquemáticos diseñados para el módulo de comunicación y adquisición que se presentaron en la Sección 3.5. 69 Figura B.1: Diagramas de conexión de los FTDIs. 70 Figura B.2: Diagramas de conexión de los FTDIs. 71 Figura B.3: Diagrama de conexión del Hub TUSB2077A. 72 Apéndice C Arquitecturas de Procesadores En la Tabla C.1 se muestran las arquitecturas de procesadores usadas para la implementación de sistemas embebidos con su respectivo enlace. Arquitectura ARM AVR x86 MIPS Hitachi SuperH PowerPC Enlace Anotación http://www.arm.com/ Es una familia de procesadores RISC diseñado por Acorn Computers y desarrollado por Advanced RISC Machines Ltd. Es una familia de microprocesadores RICS de ATMEL. Introducido por Intel en 1985. http://www.atmel.com/ products/avr/ http://en.wikipedia. org/wiki/X86_ architecture http://www.mips. com/products/ architectures/ http://www.renesas. com/products/mpumcu/ superh/superh_landing. jsp http://www-03.ibm.com/ systems/p/hardware/ whitepapers/power/ppc_ arch.html 73 Recibe este nombre por las iniciales de “Microprocessor without Interlocked Pipeline Stages” corresponde a una familia de microprocesadores de arquitectura RISC desarrollados por MIPS Technologies. Introducido por Hitachi a principios de los 1990. Es un conjunto de microcontroladores y microprocesadores basados principalmente en una arquitectura RISC. También es conocido como PPC. Desarrollado por IBM, Motorola y Apple. Arquitectura Motorola 68000 Blackfin Enlace Anotación http://en.wikipedia. org/wiki/Motorola_ 68000 http://www. analog.com/en/ embedded-processing-dsp/ blackfin/processors/ index.html También se conoce como m68k, es un microprocesador desarrollado por Motorola y es el primero de la familia 68000. Es una familia de microprocesadores que incorpora las funciones de un DSP, es producido por Analog Devices. Tabla C.1: Principales arquitecturas de procesadores utilizadas en los Sistemas Embebidos. Arquitecturas ARM: el primer prototipo de estos procesadores fue el ARM1 desarrollado en 1985. En 1986 se construyó el primer procesador comercial ARM2 que tenı́a un bus de datos de 32 bits, con bajo consumo de energı́a y con un alto rendimiento para su época. Posteriormente se diseño el ARM3 que poseı́a una memoria caché de 4KB. En 1990 la empresa Acorn decidió dividir las funciones de fabricar y diseñar, creando la empresa Advanced RISC Machines Ltd. que se encargó de mantener y promover esta familia de procesadores, diseñando CPUs basadas en los núcleos ARM para los consumidores. Esto dio un gran impulso al uso de núcleos ARM en la fabricación de procesadores por parte de muchas empresas, entre las que se encuentran: Intel, Toshiba, Samsung, Freescale, IBM, Texas Instruments, Nintendo, Philips, Atmel y Sharp. En la Figura C.1 se muestra el diagrama del SoC AT91RM9200, utilizado en el diseño del TES ROv2.0. 74 Figura C.1: Diagrama de bloques de la arquitectura interna del AT91RM9200, extraı́do de la hoja de especificaciones. 75 Apéndice D Componentes de Software en el Sistema TES ROv2.0 En este Apéndice se describe los componentes de software utilizados en el sistema TES ROv2.0 y la adecuación que se realizó. D.1. Darrell’s Loader Es una pequeña aplicación basada en u-boot (ver sección D.2). Las actividades que permite realizar este programa son: configurar la memoria SDRAM externa, transferir aplicaciones por medio del protocolo XModem a esta memoria, configurar el puerto serie, controlar la memoria DataFlash y almacenar aplicaciones en ella [19, 31, 44]. El código fuente del programa se puede descargar con el siguiente comando: $svn co http://svn.arhuaco.org/svn/src/emqbit/ECB_AT91_V2/darrell-loader/ Para la instalación de esta aplicación se realiza la compilación cruzada del código fuente, esto genera un archivo binario denominado loader.bin que se transfiere a la tarjeta usando minicom1 con el protocolo XModem. El loader es ejecutado, inicialmente, desde la SRAM del SoC desplegando el menú con las siguientes opciones: 1. Upload Darrell’s loader to Dataflash 1 Minicom es un programa equivalente al Hiyper Terminal de Windows. Generalmente se utiliza para emular un terminar y establecer una consola serial remota [3]. En la página: http://wiki.emqbit.com/configureminicomtousetheserialconsole se especifica la configuración del minicom como consola serial. 76 2. Upload u-boot to Dataflash 3. Upload Kernel to Dataflash 4. Start u-boot 5. Upload Filesystem image 6. Memory test A continuación, se selecciona la opción 1 para almacenar el archivo binario en la memoria DataFlash, permitiendo que el sistema lo cargue y lo ejecute siempre que se reinicie la tarjeta. D.2. u-boot Es un gestor de arranque (Universal Bootloader [34]) para varias arquitecturas de procesadores, entre las que se encuentra ARM. Permite cargar archivos utilizando varios periféricos como: Ethernet, puertos seriales, memoria SD, Flash, NAND y NOR. Esta aplicación conduce la inicialización del hardware a bajo nivel para después arrancar la imagen de kernel de Linux y cederle el control. En el sistema embebido, el archivo binario del gestor (llamado u-boot.bin) se almacenado en la DataFlash seleccionando la opción 2 y se ejecuta seleccionando la opción 4 del Darrell’s Loader. D.3. Kernel El kernel es el componente fundamental del sistema embebido (Ver Sección 2.3.2), el cual necesita ser configurado para desarrollar una actividad y soportar una arquitectura de hardware especı́fica. La adaptación del kernel requiere de la ejecución de varios paso que permiten realizar su compilación e implementación en el sistema. A continuación se presentan los pasos realizados con los respectivos comandos ejecutados en consola2 (La imagen del kernel que se utilizó en el sistema fue la versión linux-2.6.30.5 ). 2 La consola o terminal es una herramienta muy usada en Linux para ejecutar comandos, similar a la ventana de DOS en Windows. Dos ejemplos de estas herramientas son: Terminal y Konsole. 77 1. Descargar la imagen del Kernel: $wget tar.bz2 http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.5. 2. Descomprimir la imagen: $tar xjf linux-2.6.30.5.tar.bz2 3. Descargar el parche para el kernel: ingresar a la carpeta que contiene la imagen del kernel usando el comando “cd linux-2.6.30.5/” y descargar el parche con: $wget http://maxim.org.za/AT91RM9200/2.6/2.6.30-at91.patch.gz 4. Aplicar el parche para el kernel: $zcat 2.6.30-at91.patch.gz — patch -p1 5. Adaptar el kernel: se deben comentar 2 lineas en el archivo at91 mci.c ubicado en drivers/mmc/host/, después de aplicar el parche al kernel, que corresponden a: if (host->bus_mode == MMC_BUSMODE_OPENDRAIN) cedro|=AT91_MCI_OPDCMD;zcat 2.6.30-at91.patch.gz | patch -p1 En este punto tenemos el kernel listo para realizar la compilación cruzada con las herramientas GNU3 y generar un archivo ejecutable para la arquitectura ARM. A continuación se identifican los pasos para la compilación del kernel. 6. Modificar la variable PATH: exportar al PATH la ubicación de los ejecutables de las herramientas usadas en la compilación cruzada4 . $export PATH=$PATH:/media/linuxdatos/oe/ecbat91/outAT91/cross/armv4t/bin/ Para reducir los comandos usados en la compilación se crea el alias: $alias crossmake=’make ARCH=arm CROSS COMPILE=arm-angstrom-linuxgnueabi- ’ 7. Crear una configuración por defecto: $crossmake ecbat91 defconfig Esto genera un archivo oculto .config que contiene la configuración del sistema embebido. 3 Para tener acceso a las herramientas de compilación cruzada para el ARM, primero se tienen que crear el toolchain o usar un entorno de desarrollo como OPENEMBEDDED (Ver Sección D.5. La creación del Toolchain se detalla en [19] o en el enlace http://wiki. emqbit.com/howtocross-compileforthearm 4 Para este proyecto se usa el entorno de desarrollo de linux embebido OPENEMBEDDED, el cual permite crear un toolchain apropiado para la arquitectura ARM. 78 8. Configurar el kernel para el sistema: $crossmake menuconfig En este punto se modifican la configuración del kernel. Ejemplo: Para el sistema embebido se necesita activar la opción eabi (embeddedapplication binary interface), eliminar la opción MMC debugging que se encuentra en el menú device drivers - MMC, adaptar los servicios de red (Ejemplo: dar soporte al protocolo PPP), activar las caracterı́sticas del kernel para poder integrar los dispositivos usados y establecer los módulos5 necesarios para prestar los servicios. El método escogido para realizar la configuración del kernel es mediante el uso de la interfaz gráfica en el terminal o método por menús. 9. Crear la imagen del kernel para el sistema embebido: $crossmake -j2 Con este comando se compila y se obtiene la imagen del kernel denominada vmlinux, con un tamaño aproximado de 4.8MB, la cual tiene las caracterı́sticas necesarias para funcionar en el sistema embebido6 . 10. Compresión del kernel: como el sistema embebido tiene un espacio aproximado a 1.7MB en la memoria DataFlash, donde se almacena la imagen del kernel, es necesario realizar una compresión. Además, se tiene que establecer la extensión .gz para la imagen, porque es la extensión compatible con el u-boot utilizado. A continuación se presentan las instrucciones usadas para comprimir el kernel y establecer la extensión adecuada. $arm-angstrom-linux-gnueabi-objcopy -O binary -R .note -R .comment -S arch/arm/boot/compressed/vmlinux linux.bin $gzip -c -9 linux.bin > linux.bin.gz Con la primera instrucción se comprime el archivo vmlinux, eliminando la información de depuración, y se obtiene el archivo linux.bin con tamaño de 1.776MB. En el segundo comando se usa la herramienta 5 “Los módulos son pequeñas piezas de código que pueden ser cargadas y descargadas en el kernel en el momento que sea necesario. Ellos extienden la funcionalidad del kernel, sin la necesidad de reiniciar el sistema y recompilar el kernel. Por ejemplo, un tipo de módulo es el controlador de dispositivo, el cual permite al kernel acceder a un dispositivo hardware conectado al sistema.” [19] 6 El 2 en el comando corresponde al número de procesadores que tiene el host. 79 gzip y se crea el archivo linux.bin.gz con un tamaño de 1.764MB, el cual tienen el tamaño adecuado y es compatible con el u-boot. Finalmente, para realizar la instalación de la imagen linux.bin.gz, primero se tiene que reiniciar la tarjeta y al momento de cargar el Darrell’s loader interrumpir el proceso oprimiendo cualquier tecla, de esta forma se puede escoger la opción 3 que transfiere la imagen a la memoria DataFlash, por medio del protocolo XModem. Posterior al almacenamiento de la imagen se debe esperar a que se despliegue el menú del Darrell’s XModem (Ver Sección D.1) y escoger la opción 4 para arrancar el u-boot, el cual se encarga de inicializar el kernel y le transfiere el control del sistema. Una vez se inicializa el kernel, este transfiere el control del sistema a un nivel independiente de la arquitectura, en el que se inicializa la abstracción de alto nivel, se monta el Root Filesystem y se ejecutar el primer proceso en el espacio de usuario llamado init process [19, 110]. Una de las actividades iniciales realizadas por el kernel consiste en establecer un dispositivo para la interacción con el usuario. Para esta plataforma corresponde a la consola serial (/dev/console). D.4. Root Filesystem El Root Filesystem esta almacenado en una microSD (Ver Figura 3.13), la cual trabaja con el sistema de archivos Ext3. El Root Filesystem esta compuesta por los siguientes directorios: /: es el directorio raı́z, tiene la jerarquı́a más alta. bin: contiene las aplicaciones binarias, las cuales son programas ejecutables que forman parte de linux. dev: contiene los archivos de los dispositivos que permiten establecer la comunicación con los distintos elementos de hardware. Ejemplo: discos duros-hda, Console y puertos USB-ttyUSB. home: almacena los directorios del usuario. mnt: es un directorio usado para los montaje temporales. sbin: contiene archivos binarios esenciales para el sistema. usr: contiene una replica de otros subdirectorios importantes. 80 boot: contiene la información necesaria para la inicialización del sistema. etc: contiene los archivos de configuración del sistema. lib: contiene las librerı́as y los módulos del kernel. media: punto de montaje para las unidades extraı́bles. srv: datos de servicios ofrecidos por el sistema. tmp: almacena los archivos temporales. var: contiene los archivos con información variable. D.5. Herramienta de Desarrollo Openembedded En el proceso de diseño e implementación de los sistemas embebidos se usan: compiladores, enlazadores (linkers), interpretes, herramientas y ambientes de desarrollo. Por este motivo, en la construcción de los componentes de software se utiliza un host o maquina huésped que alberga las herramientas que intervienen en la construcción del sistema (Ver Figura 3.13). Particularmente, en este proyecto se trabajo con un computador personal con sistema operativo linux, en donde se implementaron para el diseño del sistema embebido, dos herramientas principales que son: Openembedded(es un sistema de software para crear distribuciones de Linux destinadas principalmente a los sistema embebidos) y BitBake(es una herramienta para la ejecución de tareas y administrador de metadatos, similar a Make de GNU [60]) . Openembedded: [11, 31, 79] consiste en una colección de metadatos usados, principalmente, para desarrollar una cadena de herramientas (Toolchain) necesarias en la compilación cruzada y para desarrollar imágenes completas de varias distribuciones de linux, por ejemplo: OpenZaurus y Angstrom, los cuales constan de la construcción de Root Filesystem y del kernel7 . En este proyecto se usa el OE para crear el toolchain y el Root Filesystem. 7 La información necesaria para el uso de OE se puede consultar en http: //wiki.openembedded.net/index.php/Getting_started o en http://www.emqbit.com/ mediawiki/index.php/Main_Page/ecb_at91/OE. 81 El toolchain generado con el OE se presenta a continuación. Se destacan las herramienta gcc y g++ usadas en la compilación cruzada de programas en C y C++. nelson@nelson-laptop:/media/linuxdatos/aux_kernel/linux-2.6.27$ arm-angstrom -linux-gnueabiarm-angstrom-linux-gnueabi-addr2line arm-angstrom-linux-gnueabi-gfortran arm-angstrom-linux-gnueabi-ar arm-angstrom-linux-gnueabi-gprof arm-angstrom-linux-gnueabi-as arm-angstrom-linux-gnueabi-ld arm-angstrom-linux-gnueabi-c++ arm-angstrom-linux-gnueabi-nm arm-angstrom-linux-gnueabi-c++filt arm-angstrom-linux-gnueabi-objcopy arm-angstrom-linux-gnueabi-cpp arm-angstrom-linux-gnueabi-objdump arm-angstrom-linux-gnueabi-g++ arm-angstrom-linux-gnueabi-ranlib arm-angstrom-linux-gnueabi-gcc arm-angstrom-linux-gnueabi-readelf arm-angstrom-linux-gnueabi-gcc-4.2.4 arm-angstrom-linux-gnueabi-size arm-angstrom-linux-gnueabi-gccbug arm-angstrom-linux-gnueabi-strings arm-angstrom-linux-gnueabi-gcov arm-angstrom-linux-gnueabi-strip 82 Bibliografı́a [1] Analogy of Promising Wireless Technologies on Different Frequencies: Bluetooth, WiFi, and WiMAX, 2007. [2] Doug Abbott. Linux for Embedded and Real time Applications. Newnes, 2003. [3] Alioth.debian.org. minicom. https://alioth.debian.org/projects/minicom/. [4] ANSI/AAMI. Safe current limits for electromedical apparatus: American national standard: Ansi/aami es1’1993. Association for the Advancement of Medical Instrumentation, 1993. [5] ATMEL. Arm920ttm- based microcontroller at91rm9200. www.atmel.com/dyn/ resources/prod_documents/doc1768.pdf, 2005. [6] Andre E. Aubert, Frank Beckers, and Bart Verheyden. Wiley Encyclopedia of Biomedical Engineering, chapter Electrodes, pages 1318–1334. John Wiley & Sons, Inc., 2006. [7] J. J. Bailey, A.. S. Berson, A. Garson, L. G. Horan, P. W. Macfarlane, D. W. Mortara, and C. Zywietz. Recommendations for standardization and specifications in automated electrocardiography bandwidth and digital signal processing a report for health professionals by an ad hoc writing group of the committee on electrocardiography and cardiac electrophysiology of the Council on Clinical Cardiology, pages 730–739. American Heart Association., 1990. [8] BandaAncha.st. Huawei e156. http://wiki.bandaancha.st/Huawei_E156. [9] Roger C. Barr. The Biomedical Engineering HandBook, chapter 19 Basic Electrophysiology, pages 19–1–19–18. CRC Press, third edition, 2006. [10] Edward J. Berbari. The Biomedical Engineering Handbook, chapter 24 Principles of Electrocardiography, pages 24–1–24–11. CRC Press, third edition, 2006. [11] BerliOS. Project: Bitbake build tool - summary. http://developer.berlios.de/ projects/bitbake. [12] Richard P. Buck. The Biomedical Engineering HandBook, volume 1, chapter 51 Bioanalytic Sensors. CRC Press, second edition, 2000. [13] C. Camargo. Ecbot: Arquitectura abierta para robots móviles. IEEE Colombian Workshop on Circuits and Systems, 2007. [14] C. Camargo. Ecbot y ecb at91 plataformas abiertas para el diseño de sistemas embebidos y co-diseño hw/sw. VIII Jornadas de Computación Reconfigurable y Aplicaciones, Madrid España, 2008. 83 [15] C. Camargo. Hardware copyleft como herramienta para la enseñanza de sistemas embebidos. Congreso Argentino de Sistemas Embebidos CASE 2011, Buenos Aires Argentina, March 2011. [16] C. Camargo. Metodologı́a para la transferencia tecnológica en la industria electrónica basada en software libre y hardware copyleft. XVII Workshop de Iberchip, Bogotá Colombia, 2011. [17] C. Camargo. Sie: Plataforma hardware copyleft para la enseñanza de sistemas digitales. XVII Workshop de Iberchip, Bogotá Colombia, February 2011. [18] Carlos Ivan Camargo. Debian gnu linux on the ecb at91 single board computer. 2006. [19] Carlos Ivan Camargo. Técnicas de Auto Organización de Sistemas Paralelos Inspirados en la Naturaleza. PhD thesis, Universidad Nacional de Colombia, 2009. [20] John Catsoulis. Designing Embedded Hardware. O’Reilly Media, Inc., second edition, 2005. [21] Diego Fernando Urbano Chaves. Diseño del módulo de telecardiologı́a para el proyecto cubesat ud. Master’s thesis, Universidad Distrital Francisco José de Caldas, 2008. [22] Diego Méndez Chaves. Desarrollo de una plataforma para prototipaje flexible de aplicaciones wsn. Master’s thesis, Universidad de los Andes, 2007. [23] FTDI Chip. Future technology devices international ltd. http://www.ftdichip. com/. [24] Cisco. CCNA 1 and 2 Companion Guide. Cisco Press, 2004. [25] Arnon Cohen. The Biomedical Engineering HandBook, volume 1, chapter 52 Biomedical Signals: Origin and Dynamic Characteristics; Frequency-Domain Analysis. CRC Press, second edition, 2000. [26] M. Conti and D. Moretti. System level analysis of the bluetooth standard. pages 118–123 Vol. 3, 2005. [27] Centro de Información Cardiovascular. El sistema de conducción. texasheart.org/HIC/Anatomy_Esp/cond_sp.cfm. http:// [28] Sociedad Vasco Navarra de Pediatrı́a. Abc del electrocardiograma web page. http: //www.svnp.es/Documen/ecg.htm. [29] Max Domeika. Software Development for Embedded Multi core Systems. Newnes, 2008. [30] Encore Electronics. Enuwi-g2 adaptador usb 2.0 inalámbrico 802.11g. http://www. encore-usa.com/cl/product/ENUWI-G2. [31] EmQbit. emqbit linux powered devices company. http://www.emqbit.com/. [32] EmQbit. Debian gnu linux embebido en el ecb at91. http://www.emqbit.com/, 2006. [33] EmQbit. Introducción a los sistemas embebidos. 4 Congreso de Control, Electronica y Comunicaciones-UD, 2008. [34] DENX Software Engineering. U-boot. http://www.denx.de/wiki/U-Boot. [35] Roberto Espinosa Espinosa. Redes Telefónicas. Universidad Pedagógica Nacional, 2000. 84 [36] Ferato. Electrocardiograma. Electrocardiograma. http://www.ferato.com/wiki/index.php/ [37] Ross Flewelling. The Biomedical Engineering HandBook, chapter 86 Noninvasive Optical Monitoring. CRC Press, third edition, 2000. [38] Behrouz A. Forouzan. Transmisión de Datos y Redes de Comunicaciones. McGrawHill, 2002. [39] Behrouz A. Forouzan. Data Communications and Networking. McGraw-Hill, 2007. [40] Behrouz A. Forouzan. TCP/IP Protocol Suite. MCGraw-Hill, 2009. [41] Dimitris I. Fotiadis, Aristidis Likas, Lampros Michalis, and Costas Papaloukas. Wiley Encyclopedia of Biomedical Engineering, chapter Electrocardiogram (ECG): Automated Diagnosis, pages 1259–1275. John Wiley & Sons, Inc., 2006. [42] Ary L. Goldberger. Harrison’s Principles of Internal Medicine, volume II, chapter 210 Electrocardiography. McGraw-Hill Companies, Inc., 2006. [43] Centro de Telemedicina Grupo de Investigación BioIngenium. SARURO TELE CARE BOX (TCB-081) Dispositivo de Telemonitorización de Signos Vitales. Manual de Instalación, Operación y Mantenimiento., Octubre 2008. [44] Darrell Harmon. Darrell harmon’s homepage. http://dlharmon.com/. [45] Simon Haykin. Sistemas de Comunicación. Noriega, 2005. [46] Steve Heath. Embedded Systems Design, Second Edition. Newnes, second edition, 2002. [47] P.S. Henry and Hui Luo. Wifi: what’s next? Communications Magazine, IEEE, 40(12):66 – 72, dec 2002. [48] G. Patricia López Herranz. Oximetrı́a de pulso: A la vanguardia en la monitorización no invasiva de la oxigenación. Revista Médica del Hospital General de México, 66(3):160–169, Julio–Septiembre 2003. [49] Doan B. Hoang and Andrew J. Simmonds. Biomedical Information Technology, chapter Chapter 10 Data Communication and Network Infrastructure, pages 229– 248. Elsevier Inc., 2008. [50] Huawei. Huawei device. http://www.huaweidevice.com/worldwide/productInfo. do?pinfoId=2209&directoryId=2582&treeId=582. [51] ICONTEC. Instituto colombiano de normas técnicas y certificación web page. www. icontec.org. [52] IEEE. Ieee the world’s leading professional association for the advancement of technology. http://www.ieee.org/portal/site, 2009. [53] National Instruments. Labview for ecg signal processing. http://zone.ni.com/ devzone/cda/tut/p/id/6349. [54] INVIMA. Instituto nacional de vigilancia de medicamentos y alimentos web page. www.invima.gov.co/. [55] Armin Javanshir, Farzad Kamrani, and Pegman Serri. Platform independent computer simulator (armputer). Master’s thesis, Chalmers University of Technology and Götenborg University, 2004. [56] P. Johansson, M. Kazantzidis, R. Kapoor, and M. Gerla. Bluetooth: an enabler for personal area networking. Network, IEEE, 15(5):28–37, 2001. 85 [57] Mike Jones. Interfacing fast ethernet to processors. Micrel Inc. [58] Amal Jubran. Pulse oximetry. Critical Care, 3(2):R11–R17, 1999. [59] Christian Javier Cifuentes De la Portilla and José Tobı́as Fuentes Dı́az. Diseño e implementación de un módulo de oximetrı́a de propósito general. Pasantı́a realizada para optar al Titulo de Ingeniero Electrónico, 2008. [60] Michael Mickey Lauer. Building embedded linux distributions with bitbake and openembedded. http://fosdem.org/2010/, 2005. [61] William Lehr and Lee W. McKnight. Wireless internet access: 3g vs. wifi? Telecommunications Policy, 27(5-6):351 – 370, 2003. Compeitition in Wireless: Spectrum, Service and Technology Wars. [62] Qing Li and Caroline Yao. Real Time Concepts for Embedded Systems. CMP Books, 2003. [63] SUSE LINUX. Chapter 17. wireless communication / 17.2. bluetooth. http: //www-uxsup.csx.cam.ac.uk/pub/doc/suse/suse9.2/suselinux-adminguide_ en/ch17s02.html, 2009. [64] P. Mcdermott-Wells. What is bluetooth? Potentials, IEEE, 23(5):33–35, 2005. [65] medlab GmbH. medlab. http://www.medlab.eu/. [66] Steve Meek and Francis Morris. ABC of Clinical Electrocardiography, chapter 2 Introduction. II Basic terminology. BMJ Books, 2003. [67] Steve Meek and Francis Morris. ABC of Clinical Electrocardiography, chapter 1 Introduction. I Leads, rate, rhythm, and cardiac axis, pages 1–4. BMJ Books, 2003. [68] Yitzhak Mendelson. Pulse oximetry: Theory and applicationsfor noninvasive monitoring. Clinical Chemistry, 38(9), 1992. [69] MICREL. Micrel innovation trough technology. http://www.micrel.com/. [70] Luis M. Molinero. Métodos estadı́sticos en estudios de cronoterapia, una introducción. 2006. [71] John Moyle. Pulse Oximetry. BMJ Books, 2002. [72] Michael R. Neuman. The Biomedical Engineering HandBook, volume 1, chapter 48 Biopotential Electrodes, pages 889–900. CRC Press, second edition, 2000. [73] Newcardio. Ecg workhorse cardiac assessment tool. http://www.newcardio.com/ what-we-do-ecg-cardiac-assessment-tool.php. [74] L.D.M. Nokes, D. Jennings, T. Flint, and B.C.H. Turton. Introduction to Medical Electronics Applications. Butterworth-Heinemann, 1995. [75] Robert B. Northrop. Analysis and Application of Analog Electronic Circuits to BiomedicalInstrumentation. CRC PRESS, 2004. [76] Michael Opdenacker. Embedded linux kernel and driver development. http:// free-electrons.com/, 2004. [77] Michael Opdenacker and Thomas Petazzoni. Introduction to embedded linux. Free Electrons, 2010. [78] Michael Opdenacker and Thomas Petazzoni. Linux kernel introduction. Free Electrons, 2010. 86 [79] OpenEmbedded. Welcome to openembedded. http://wiki.openembedded.net/ index.php/Main_Page. [80] Thomas Petazzoni and Michael Opdenacker. Embedded linux system development. Free Electrons, 2009. [81] Huyu Qu, Jie Cheng, Qiang Cheng, and Le Yi Wang. Wifi-based telemedicine system: Signal accuracy and security. volume 2, pages 1081 –1085, aug. 2009. [82] P Raghavan, Amol Lad, and Sriram Neelakandan. Embedded Linux System Desing and Development. Auerbach Publications, 2005. [83] M. Rahnema. Overview of the gsm system and protocol architecture. Communications Magazine, IEEE, 31(4):92–100, 1993. [84] Marco Di Rienzo, Paolo Castiglioni, and Gianfranco Parati. Wiley Encyclopedia of Biomedical Engineering, chapter Arterial Blood Pressure Processing, pages 98–109. John Wiley & Sons, Inc., 2006. [85] Eduardo Romero and Alfonso Lozano. Manual de Telemedicina. SENA - Universidad Nacional de Colombia, 2009. [86] Nelson Felipe Rosas. Design and implementation of an embedded system for acquiring and transmission of biomedical signals through cellular network, 2009. [87] Nelson Felipe Rosas and Juan Camilo Sanchez. Monitoreo remoto de señales biomédicas vı́a celular. Trabajo de Grado para optar al Titulo de Ingeniero Electrónico, 2006. [88] Sairam, N. Gunasekaran, and S. R. Redd. Bluetooth in wireless communication. Communications Magazine, IEEE, 40(6):90–96, 2002. [89] Cesar Sanchez and Eduardo Romero. Hospital virtual universitario. [90] Mischa Schwartz. Telecommunication Networks: Protocols, Modeling and Analysis. Prentice Hall, 1988. [91] Mischa Schwartz. Mobile Wireless Communications. Cambridge University Press, 2005. [92] John W. Severinghaus. Takuo aoyagi: Discovery of pulse oximetry. [93] John W. Severinghaus and Yoshiyuki Honda. History of blood gas analysis. vii. pulse oximetry. Journal of Clinical Monitoring and Computing, 3(2):135–138, 2004. [94] J.W. Severinghaus. The history of clinical oxygen monitoring. International Congress Series, 1242:115–120, 2002. [95] Slackware. Bluetooth en slackware. http://www.slackware.cl/index.php?q=node/ 868. [96] William Stallings. Data and Computer Communications. Prentice Hall, 2006. [97] César Sánchez, Andrea Rueda, and Eduardo Romero. A granular prototype for telemedicine based on hl7 information model. Congreso Colombiano de Computación - CCC 2007 Pontificia Universidad Javeriana, Bogotá D.C., 2007. [98] Christopher Tacke and Tim Bassett. eMbedded Visual Basic: Windows CE and Pocket PC Mobile Applications. Sams, 2001. [99] Andrew S. Tanenbaum. Redes de Computadoras. Prentice Hall, 2003. [100] Andrew S. Tanenbaum. Modern Operating Systems. Prentice Hall, 2007. 87 [101] Xiao Fei Teng and Yuan Ting Zhang. Wiley Encyclopedia of Biomedical Engineering, chapter Blood Oxygen Saturation Measurements, pages 605–613. John Wiley & Sons, Inc., 2006. [102] Bruce C. Towe. Standar Handbook of Biomedical Engineering and Design, chapter 17 Bioelectricity and its Measurement. McGraw-Hill, 2004. [103] Neil Townsend and Michaelmas Term. Medical electronics: Pulse oximetry. 2001. [104] Unal. Sistema de información del centro de telemedicina saruro, grupo de investigación bioingenium universidad nacional de colombia. https://168.176.61.27/ TelemWeb/. [105] Dan Fitton-Lancaster University. lancs.ac.uk/java_bt.php, 2009. Java bluetooth howto. http://www.caside. [106] Carlos A. Vallecorsa. Las enfermedades cardiovasculares. http://www.gratisweb. com/cvallecor/Index.htm, 2004. [107] Anthony Varghese. The Biomedical Engineering HandBook, volume 1, chapter 11 Membrane Models. CRC Press, second edition, 2000. [108] M W Wukitsch, M T Petterson, D R Tobler, and J A Pologe. Pulse oximetry: analysis of theory, technology, and practice. Journal of clinical monitoring, 4(4):290–301, 1988. [109] Karim Yaghmour. Building Embedded Linux Systems. O’Reilly & Associates, Inc., 2003. [110] Karim Yaghmour, JonJason Brittain, Ian F. Darwin Masters, Gilad Ben Yossef, and Philippe Gerum. Building Embedded Linux Systems. O’Reilly Media, Inc., second edition, 2008. [111] Xiaofeng Zhang, Nadine Smith, and Andrew Webb. Biomedical Information Technology, chapter Chapter 1 Medical Imaging, pages 3–28. Elsevier Inc., 2008. 88