Emulación de una Unidad Central de Proceso (CPU) desarrollada en JAWT (Java Abstract Window Toolkit)
La simulación se ha convertido una herramienta indispensable en multitud de ámbitos de la ingeniería. En el caso particular que nos ocupa, una Unidad Central de Proceso virtual, pretendemos trabajar con una entidad abstracta compleja y que no tiene existencia en el mundo real, por lo tanto, la simulación se convierte en la única alternativa posible para experimentar con dicha entidad.
La edición y simulación de programas en lenguaje ensamblador o de bajo nivel, es uno de los contextos más apropiados para el uso de este tipo de herramientas, donde además de la edición, es factible comprobar, de forma casi inmediata, si estos funcionan correctamente. Como añadido, si la herramienta de simulación se ha implementado con las funcionalidades oportunas, se convertirá en el mejor recurso de aprendizaje para comprender el funcionamiento de la Unidad Central de Proceso que se está emulando.
La aplicación desarrollada en el Proyecto persigue esa finalidad, facilitar el entendimiento de qué elementos son necesarios para diseñar una sencilla Unidad Central de Proceso, cómo deben funcionar estos elementos en conjunción y, finalmente, permitir desarrollar programas en lenguaje ensamblador y su simulación posterior.
Side-Channel Attacks on Embedded Devices: A case Study
Este proyecto reproduce dos ataques side-channel publicados en [--l. Los ataques side-channel recuperan material criptográfico sensible de un dispositivo mediante el análisis estadístico del consumo instantáneo del mismo. El primer ataque está orientado a una implementación hardware y el segundo a una implementación software sobre un microcontrolador de 8 bits. El resultado de ambos ataques es satisfactorio. Este documento detalla las estrategias seguidas para la consecución del citado objetivo. Las técnica empleada es Differential Power Analysis, descrita en [15]. La implementación hardware corresponde a la familia de circuitos integrados HCS300. Capturando 30 trazas de consumo se recupera la clave de 64 bits del dispositivo con un tiempo de cálculo despreciable en una estación de trabajo convencional. Además, se ha comprobado que dichas trazas de consumo se pueden tomar con una sonda electromagnética de campo cercano. La implementación software se ejecuta en el microcontrolador PIC16F74-Con unas 1000 trazas el ataque tiene éxito. El tiempo de cálculo en una estación de trabajo convencional es de varios minutos. Se desarrollan algoritmos para la extracción de muestras relevantes (compresión de las trazas de consumo) y para el alineado de las trazas de consumo, lo que supone una mejora con respecto del número de trazas necesarias en [-].
KEYWORDS
Cryptography, side-channel attack, power analysis, Differential Power Analysis, embedded device, security.
Diseño de Estrategias de Gestión de Energía para redes inalámbricas de Área Personal
El proyecto presenta un análisis de diversas técnicas que nos permiten aumentar la autonomía de redes inalámbricas de sensores. Para ello se han tenido en cuenta tanto técnicas de disminución del consumo interno de la red, como técnicas de aprovechamiento de energía extema.
Con el fin de conocer los avances de estos dos aspectos en la actualidad, en la primera fase se han repasado las principales líneas de investigación sobre redes inalámbricas de sensores y sobre sus estrategias de disminución de consumo.
A continuación se han implementado diversas redes inalámbricas con dispositivos reales, con el fin de analizar su consumo. Para ello se han aplicado estrategias de consumo centradas en el aprovechamiento de energías extemas y en los protocolos de encaminamiento de los paquetes que fluyen por la red.
Por último se han extraído las conclusiones pertinentes, mostrando diversos ejemplos de consumo en función de las técnicas de disminución de consumo o de aprovechamiento de energía extema que se utilicen para cada red. Esto nos permite tener una estimación del tiempo de vida de las redes inalámbricas utilizadas en el proyecto.
PALABRAS CLAVE
Redes inalámbricas de sensores, dispositivos reales, bajo consumo, ZigBee TM, energy harvesting, modos de suspensión, protocolos de encaminamiento.
Desarrollo de una plataforma Distribuida para monitorización y Control de Redes Inalámbricas de sensores para ambientes inteligentes
Este proyecto fin de carrera ha desarrollado una plataforma de monitorización para la experimentación con redes inalámbricas de sensores. Esta plataforma distribuida, versátil, escalable, polivalente, adaptable y de bajo consumo, permite recopilar información importante de cada uno de los nodos de la red, sin obstruir el canal inalámbrico, ni afectar adversamente en los experimentos que se ejecutan.
Para lograr esta plataforma se ha desarrollado un hardware dividido en tres módulos: el módulo de control, el módulo de comunicaciones y el módulo de medidas.
® El módulo de control consiste en una placa elaborada en el marco de este proyecto. Esta placa se fundamenta en microcontrolador PIe que gestiona y controla todo el hardware. Se alimenta mediante un puerto USB y tiene dos conectores de expansión para conectar los otros dos módulos.
@) El módulo de comunicaciones se basa en una placa, desarrollada en el L51 antes de la realización del proyecto. Esta placa tiene un microcontrolador y un módulo de radiofrecuencia para establecer comunicaciones inalámbricas.
® El módulo de medida se puede conectar a la placa de control, sin embargo, esta misma placa incluye un sensor de corriente para medir el consumo de otras placas conectadas a los conectores de expansión.
Para la correcta ejecución de las tareas de cada módulo, se ha desarrollado un código a bajo nivel y que va empotrado en los microcontroladores. Este software está dividido en tarea: cargador de programa, envío de trazas de consumo, túnel USB-serie, monitor de la placa secundaria.
Añadido a estos componentes, se ha desarrollado un software en e++, que se ejecuta en Windows. Este programa está distribuido, pues se ejecuta en varios ordenadores: el servidor central donde interactúa el usuario y las estaciones de trabajo que tienen el hardware conectado por USB. La comunicación entre los distintos elementos se hace mediante objetos remotos a través de la red local.
El interfaz gráfico de usuario que se ejecuta en el servidor está dividido en pestañas, siendo cada una de ellas una actividad distinta de las que puede realizar la plataforma. De esta manera, mientras el dispositivo conectado a una estación de trabajo está enviando trazas de consumo, se puede ir cargando una nueva aplicación en el dispositivo que está conectado en otro ordenador diferente del1aboratorio.
Finalmente, se realizaron unos bancos de pruebas que permitieron verificar el correcto diseño del sistema. Estas pruebas fueron de unidad, donde cada elemento se probaba por separado; de integración, donde se juntaban varios elementos para ver que interactuaban correctamente y de verificación de que el sistema cumple con los requisitos.
Todo este desarrollo está enmarcado el entorno de los ambientes inteligentes, que nos rodeará y amplificará nuestras capacidades cognitivas y donde cada persona interacciona con una multitud de dispositivos programables.
Lista de palabras clave
Red de área personal inalámbrica, ambientes inteligentes, IEEE 802.15.4, protocolo, ZigBee®, microcontrolador, testbed, testbench, banco de pruebas, comunicaciones inalámbricas, plataforma de monitorización, monitorización, WSN, redes inalámbricas de sensores, PIe, entornos inteligentes.
Análisis y Diseño de Escenarios para Redes Cognitivas en una Plataforma Móvil
En el presente Proyecto Fin de Carrera se ha estudiado el concepto de radio cognitiva en el ámbito de los smartphones de la plataforma Android. En concreto, se han desarrollado estrategias enfocadas a convertir a estos terminales en nodos cognitivos válidos.
En primer lugar se han analizado de forma completa los smartphones de la plataforma Android, para descubrir las capacidades cognitivas que poseen y aquellas de las que carecen.
Tras esto, se ha llevado a cabo una fase de adición de ciertas capacidades cognitivas a estos smartphones. En concreto, se han diseñado métodos para dotar a los dispositivos de la capacidad de trabajar con redes Wi-Fi ad hoc, no disponible originalmente en Android.
Después, se han diseñado e implementado dos aplicaciones Android de demostración. Cada una de ellas está enfocada a probar una capacidad cognitiva en estudio, siempre en el contexto de una comunicación de datos. Las capacidades cognitivas analizadas han sido el cambio de parámetros fisicos de transmisión y el cambio de interfaz inalámbrica, centrándonos en las tecnologías Wi-Fi y Bluetooth.
Por último, se han realizado ciertas pruebas para evaluar el rendimiento de los smartphones como nodos cognitivos, haciendo uso de las dos aplicaciones desarrolladas.
PALABRAS CLAVE
Android, smartphones, radio cognitiva, nodo cognitivo, parámetros fisicos de transmisión, interfaz inalámbrica, ad hoc, Wi-Fi, Bluetooth.
Definición de un Mapa jerárquico de Indicadores para el Análisis de la Evolución de la e-Salud
En el presente Proyecto Fin de Carrera (PFC) se aborda un estudio sobre el impacto que está teniendo el uso de las Tecnologías de la Información y las Comunicaciones (TIC) en el Sistema Sanitario Público español, de cara a conocer las mejoras que se consiguen introducir en los procesos sanitarios, tanto clínicos como de gestión, para poder conseguir una Sanidad Pública más eficiente, y que preste un servicio de mayor calidad al ciudadano.
Para ello, en primer lugar se va a llevar a cabo un análisis de la organización del Sistema Nacional de Salud (SNS). Partiremos del concepto general de sistema sanitario, sus funciones y los tipos que existen, para posteriormente estudiar las particularidades del sistema español. Se hará especial hincapié en los problemas y retos que está afrontando en la actualidad el SNS, especialmente en el incremento continuo del gasto sanitario, que justifican la elaboración de este documento.
En el siguiente capítulo haremos un repaso de las iniciativas TIC para la salud, lo que se conoce con el nombre de e-Salud, que se están implantando en el Sistema Sanitario Español a partir de la aprobación de la Ley de Cohesión y Calidad del SNS (Ley 16/2003). Realizaremos un breve estudio sobre los proyectos que se están desarrollando para familiarizar al lector con la terminología que se emplea en este sector, y reflexionaremos sobre las necesidades y problemas que estas iniciativas están planteando.
Por último, propondremos un modelo de indicadores que permita analizar el impacto de la e-Salud a través de un conjunto de métricas. Este modelo estadístico también puede servir como una evaluación de las políticas TIC sanitarias llevadas a cabo por las Administraciones.
Además, dadas las peculiaridades del modelo sanitario español, en el que realmente coexisten 17 sistemas sanitarios autonómicos (una vez que se descentralizaron las competencias en materia sanitaria), se justificará la necesidad de diseñar una metodología para poder analizar los resultados que devuelva dicho conjunto de indicadores, a través de una desagregación de la información.
LISTA DE PALABRAS CLAVE :
Sistema Nacional de Salud, TIC, e-Salud, indicador, objetivo, calidad, proceso, recursos, usuarios, modelo, metodología, mapa de indicadores, desagregación.
Diseño e implementación de un sistema de localización e identificación de objetos y personas por radio frecuencia (RFID) integrado en un ambiente inteligente
En este proyecto se ha caracterizado un sistema de localización e identificación de objetos y personas. El sistema está basado en la tecnología RFID e implementado en un ambiente inteligente para conseguir la información necesaria para poder personalizar el entorno. Se ha pretendido observar la viabilidad del sistema en un entorno real de utilización, y la influencia de los materiales sobre los que se colocan las tatjetas o tags de identificación, y la orientación sobre ellos para una correcta identificación.
Este objetivo 10 hemos dividido en tres partes. En primer lugar un estudio de la tecnología RFID, y sus diferentes alternativas. Dentro de estas alternativas elegimos las más adecuadas a nuestras necesidades. En segundo lugar,
En la primera parte hemos estudiado la tecnología RFID. Hemos evaluado las características de los distintos tipos de RFID, fijándonos en la fuente de alimentación (activa, pasiva) y el tipo de acoplamiento electromagnético que se produce en las antenas. Estudiamos cada una de las frecuencias de uso, el alcance y las aplicaciones de cada una de esas frecuencias. A partir de este estudio, seleccionarnos la tecnología más adecuada a nuestras necesidades y nos centrarnos de forma exhaustiva en los sistemas comerciales, y los estándares que sigue esta alternativa.
La caracterización se basa en el diseño de pruebas para estudiar el comportamiento del sistema en un entorno real de trabajo. Obtenemos la influencia de uso del sistema en un entorno real. Conseguimos relacionar las potencias de emisión con la distancia máxima de lectura. Observarnos la red ucción del rango de lectura frente a entornos hostiles. Para realizar estas pruebas diseñamos un sistema automatizado de caracterización que permite la calibración del lector en un entorno real sin gran esfuerzo.
Para finalizar, hemos desarrollado una aplicación que nos permite demostrar la capacidad de localización en un entorno real. Consiste en una estimación de la localización de tatjetas con un único lector, que permite evaluar su potencial.
Palabras clave
Tarjetas sin contacto, RFID, UHF, tag, identificación, localización, radio frecuencia, EPC-Gen2.
Estudio e Implementación de Técnicas para la Inferencia de Estados Emocionales a partir de información contextual en Sistemas de Diálogo
Este proyecto ha consistido en estudiar la información contextual de W1 sistema de diálogo controlado a través de habla natural, con el objetivo de extraer información que nos permita inferir, en función de la evolución de la interacción, los posibles estados emocionales que está experimentando el usuario del sistema.
Para su desarrollo, se ha utilizado la información recogida automáticamente por el sistema de diálogo a partir de las interacciones de los usuarios, aprovechando ésta para extraer todos los datos que de forma directa o indirecta, puedan estar relacionados con estados emocionales que experimenta el usuario a lo largo de una interacción. También ha sido necesario llevar a cabo lm proceso de etiquetado de los datos disponibles para determinar la existencia de dichos estados emocionales, permitiendo así la inferencia de los mismos a partir de la información recopilada.
Un posible ejemplo de aplicación de los resultados aquí obtenidos a la modificación de la respuesta del sistema, se observa cuando el sistema es incapaz de reconocer una orden dada por el usuario, produciendo en este un estado de malestar debido al comportamiento errático del sistema, como consecuencia del error de reconocimiento. En esta situación, la respuesta del sistema podría consistir por ejemplo en disculparse, pidiendo al usuario en W1 tono de voz avergonzado que repita su petición de W1a forma más lenta o más precisa.
De esta forma, aportamos otra posibilidad más a las numerosas ya existentes, de intentar predecir los estados emocionales de los usuarios de sistemas de diálogo, con la ventaja de no necesitar interacción con elementos externos, como por ejemplo cámaras y sensores, sino utilizando la propia información de la que dispone el sistema para su realimentación.
PALABRAS CLAVE
Sistemas de diálogo, inferencia emocional, información contextual, emociones, métricas, evaluación de la satisfacción.
Implementación en FPGA de un acelerador numérico con arquitectura basada en procesador de tipo soft-core, coprocesador y memoria compartida.
Tradicionalmente existen dos alternativaS a la hora de implementar un cierto algoritmo: su ejecución en un procesador de propósito general o su realización en hardware a medida. La primera es muy barata y flexible, pero generalmente lenta, la segunda es de muy alto rendimiento, pero por su costo sólo se justifica en aplicaciones de uso masivo y generalmente no pennite flexibilidad. La lógica reconfigurable permite combinar estas dos soluciones y obtener velocidades hardware con flexibilidad software. La posibilidad de reutilización del hardware reconfigurable abarata su costo ya que puede utilizarse exactamente el mismo hardware para varias aplicaciones cambiando exclusivamente su programación interna.
Este proyecto describe la implementación de un acelerador numérico en una FPGA. Dicho acelerador está basado en arquitectura compuesta por un procesador softcore, un coprocesador en el que se corre un determinado algoritmo o función matemática y una memoria compartida.
El objetivo del proyecto es implementar el acelerador en la FPGA de una placa de desarrollo como fonna de aumentar la velocidad de ejecución de un algoritmo. Para ello, se utiliza como procesador con núcleo soft core el NlOS Il de Altera y como coprocesador se implementa un filtro Prewitt detector de bordes de una imagen.
La arquitectura hardware utilizada consta de una placa reconfigurable basada en FPGA y memoria dinámica. Además se desarrolla un programa software capaz de ser cargado en el procesador soft-core y se ejecutará de tal forma que una imagen cargada en la memoria dinámica sea procesada por el filtro y mostrada.
La idea básica es que un detenninado algoritmo, en este caso una detección de bordes de una imagen, sea realizado por la FPGA y el resultado almacenado en la memoria compartida Se utiliza el coprocesador para descargar al procesador soft-core de cualquier cálculo matemático. Se utiliza una arquitectura maestro/esclavo, en la que el procesador soft-core envía el trabajo al coprocesador. Esta arquitectura es idónea para aplicaciones de procesamiento masivo de datos como es el caso de las imágenes, donde el coprocesador ejecuta exactamente el mismo código y el procesador maestro es el encargado de repartir la tarea.
Por último, se intenta dar al acelerador numérico una cierta conectividad a través de un bus PCT Express.
Palabras clave
Acelerador numérico, procesador soft-core Nios TI, coprocesador matemático, memoria compartida, lógica programable, bus PCl Express.