apuntes sobre el tema de sistemas embebidos PDF

Title apuntes sobre el tema de sistemas embebidos
Course Diseño de Sistemas Operativos
Institution Universidad Carlos III de Madrid
Pages 15
File Size 546.4 KB
File Type PDF
Total Downloads 39
Total Views 153

Summary

apuntes sobre el tema de sistemas embebidos en diseño de sistemas operativos. resumen del temario...


Description

TEMA 3. SISTEMAS OPERATIVOS EMBEBIDOS PARA DISPOSITIVOS IOT

SISTEMAS EMBEBIDOS Un sistema embebido es un sistema integrado en un sistema informático aplicado. 1. Los sistemas embebidos son más limitados en funcionalidad de hardware (limitaciones en el rendimiento de procesamiento, consumo de energía, memoria, funcionalidad...) y/o software (aplicaciones reducidas, menos aplicaciones...) que un PC. Parcialmente cierto, porque los PC han evolucionado mucho. 2. Un sistema embebido está diseñado para realizar una función específica. Ahora hay dispositivos como PDA que realizan una variedad de funciones primarias. 3. Un sistema embebido está diseñado por equipos pequeños con plazos ajustados. 4. Un sistema embebido es un sistema informático con requisitos de mayor calidad y confiabilidad que otros tipos de sistemas informáticos. Aunque no todos. El dispositivo IoT es capaz de ser accesible desde internet y puede enviar la información que registra, en tiempo real, a través de internet, a diferencia del sistema embebido. Todos los sistemas IoT son sistemas embebidos, pero no todos los sistemas embebidos son IoT. Los sistemas embebidos son capaces de interactuar con el usuario a través de una interfaz simple o a través de otra herramienta invisible para el usuario. Ejemplos de sistemas embebidos: báscula inteligente, pen drive, sistema antibloqueo de ruedas... En los sistemas embebidos la eficiencia es un factor clave para: (restricciones de eficiencia) -

La velocidad. El consumo de energía: ya que usualmente no están conectados a la corriente, tiene que tener un consumo mínimo. Uso de memoria. Precio.

Enfoque en cambios de programación --> En busca de la eficiencia Sistemas Embebidos (Restricciones): La Ley de Moore tiende a arreglar los problemas que pudiese tener los sistemas tradicionales. Por ejemplo, si algo no es eficiente hoy, el año que viene compro el nuevo (no hay preocupación por el rendimiento). En los sistemas embebidos no se puede pensar así por el coste (es crítico, cuanto más barato, mejor) y porque el sistema embebido no se puede estar cambiando continuamente.  Se dice que un sistema es en tiempo real si el tiempo de respuesta es crítico.  Es cierto que la mayoría de los sistemas informáticos están diseñados por equipo pequeños con plazos ajustados.  Un sistema en tiempo real se define como un sistema cuya correlación depende de la puntualidad de una respuesta.  Es cierto que un sistema integrado puede definirse como un sistema de control o un sistema informático diseñado para realizar una tarea específica.  Un microcontrolador es el corazón del sistema integrado.

SISTEMAS EMBEBIDOS VS ORDENADORES NORMALES -

Los sistemas embebidos tienden a ser propios de una aplicación realizan una tarea o un conjunto de tareas relacionadas (especificidad de la aplicación). Diseño focalizado: el diseño se centra en una aplicación a diferencia de sistemas de propósito general, por ej. un ordenador común (cuyas prestaciones son infrautilizadas), Un sistema embebido no es programable un ordenador sí. El software y el hardware a menudo se diseñan juntos. De esta forma es más eficiente (velocidad y capacidad de cómputo) y fiable en rendimiento (fallaría mucho menos). En los sistemas generales (ordenadores) utilizan hardware y software desarrollados por diferentes empresas.

Resumen:

-

Un sistema embebido no necesita interacción humana para realizar tareas. Los ordenadores se pueden reprogramar para un nuevo propósito. Un sistema embebido necesita menos potencia operativa que un ordenador. Los ordenadores son más difíciles de usar, en comparación con un sistema embebido. Los ordenadores pueden realizar muchas tareas.

INTRODUCCIÓN A LA ARQUITECTURA DE LOS SISTEMAS EMBEBIDOS La arquitectura de un sistema embebido es una abstracción del dispositivo integrado, lo que significa que es una generalización del sistema que normalmente no muestra información detallada de implementación, como el código fuente del software o el diseño del circuito de hardware. Una arquitectura integrada incluye elementos del sistema embebido, elementos que interactúan con un sistema integrado, las propiedades de cada uno de los elementos individuales y las relaciones interactivas entre los elementos. La información a nivel de arquitectura se representa físicamente en forma de estructuras. Una estructura es una posible representación de la arquitectura, que contiene su propio conjunto de elementos representados, propiedades e información de interrelación. Todas las estructuras dentro de una arquitectura están intrínsecamente relacionadas entre sí, y es la suma de todas estas estructuras lo que constituye la arquitectura integrada de un dispositivo. -

Todo sistema embebido tiene una arquitectura, esté o no documentada, porque cada sistema embebido está compuesto por elementos que interactúan.

La siguiente imagen muestra una estructura genérica de un sistema embebido.

-

-

-

El microcontrolador es el componente del sistema embebido que ejecuta el programa. Circuito integrado que ejecuta un programa. Deberá constar por lo menos de CPU, RAM, ROM, puestos de E/S y temporizadores. o Mas lento que un microprocesador. o Menos memoria, menos funciones. o Estará conectado a otros componentes o Envía órdenes y recibe datos o Requiere ser programado (por ejemplo, en C), colocar el programa en la memoria del microcontrolador. o Los microprocesadores industriales o comerciales se programan de la siguiente manera:  Escribe el código en host - ordenador de sobremesa o laptop  Programar el microcontrolador – transferir el programa del host al microcontrolador. o Placa de desarrollo para microcontroladores, incluye hardware para programar microcontroladores. No es necesario cuando se trabaja con Arduino o Raspberry Pi. IP CORE: es un circuito integrado que desempeña una función. Barato a un volumen alto, muy útil para tareas comunes, necesita interactuar con el microcontrolador (considerar protocolo de comunicación). Ej. Un controlador de red, un controlador de wifi. o Procesadores de señales digitales (DSP): es un subconjunto de IP CORE especializados en procesamiento de distintos tipos de señales (audio y video)  Procesamiento de señal de audio  Comprensión de datos de audio  Comprensión de datos de video  Gráficos del ordenador  Procesamiento de imagen digital  Manipulación de fotos  Procesamiento y reconocimiento de voz  Más económicos que los procesadores generales, pero más limitados. FPGA - Matriz de puertas lógicas programable en campo – Fiel Programmable Gate Arrays: Es un circuito integrado diseñado para ser configurado por el cliente o por el diseñador tras la manufactura. o ¿Ventaja frente a los IP CORE (DSP)?  + Hardware puede ser reconfigurado vía RAM, para tener a funcionalidad que quiero.  + Más rápido que software  + No necesita fabricación  - Más lento que IP CORE

-

ADC/DAC: Un convertidor de analógico a digital es común en los sistemas integrados porque muchos sensores son analógicos mientras que el microcontrolador es digital. Sirven como la interfaz para los sensores analógicos.

EJEMPLO DE SISTEMA EMBEBIDO: ARDUINO Arduino es una plataforma de código abierto para construir proyectos de electrónica. Consta de una placa de circuito programable física (a menudo denominada microcontrolador) y una pieza de software, o IDE (entorno de desarrollo integrado) que se ejecuta en una computadora portátil o computadora personal utilizada para escribir y cargar código de computadora en la placa física. Arduino no necesita una pieza de hardware separada para cargar un nuevo código en la palca. El IDE de Arduino utiliza la versión simplificada de C++, lo que facilita el aprendizaje de la programación.

Beneficios de Arduino: -

Económico Multiplataforma Entorno de programación más simple y claro fuente abierta Prototipos rápidos IDE (Entorno de Desarrollo Integrado) Algunas placas Arduino tienen conectividad a Internet incorporada o pueden usar protectores externos para proporcionar conectividad por cable o WiFi.

El Arduino hoy en día, solo tiene tres usos reales à para la educación, por ocio y para prototipar software industrial que luego se vaya a implementar. Limitaciones del Arduino: limitación de capacidad de procesamiento (16 Mhz), coste, relación calidad/precio... EJEMPLO DE SISTEMA EMBEBIDO: RASPBERRY PI Las Raspberry Pi es una computadora de bajo costo del tamaño de una tarjeta de crédito que se conecta a un monitor de computadora o televisor y utiliza un teclado y un mouse estándar. La Raspberry Pi tiene una conexión GPIO (entrada/salida de uso general) de 40 pines, lo que facilita la conexión con el mundo exterior. ¿Cuáles de los siguientes No es un beneficio de usar un sistema operativo? A) Muchos programas pueden ejecutarse en el mismo procesador al mismo tiempo. B) La frecuencia del reloj del microcontrolador se puede aumentar significativamente

C) El sistema operativo proporciona una interfaz de programación conveniente para diversos tipos de hardware. D) El sistema operativo permite la separación en múltiples procesos

GPIO significa entrada/ salida de uso general. Estos pines son una interfaz física entre Raspberry Pi y el mundo exterior. El Pi puede recibir información de sensores y actuadores y controlar actuadores como LED, ejecutar motores y muchas otras cosas. Hay 40 pines y proporcionan varias funciones diferentes. Verdes: pines digitales, algunos admiten variar la frecuencia con la que emito voltaje. Pines Naranjas, ejemplos de dispositivos UART (Universal Asynchronous receiver-transmitter) --> RFID, Bluethooth, GPS, GSM, GPRS. Pines Amarillos y Azules, ejemplos de dispositivos que se pueden coordinar a través de I2C (Comunicación entre placas) --> LCD, Otra Raspberry Pi, un Arduino y un reloj de tiempo real. Pines SPI (Morados): permiten implementar otro mecanismo de comunicación, el SPI (Serial Periferial Interface), es la evolución del protocolo I2C, tiene como propósito comunicar elementos entre sí con un canal full dúplex (un canal para enviar, y otro para recibir). Ejemplos de dispositivos conectados a través de SPI --> SSD Card, IP Core para comunicaciones, Memoria Flash. EL MODELO DE SISTEMAS EMBEBIDOS

Lo que implica el modelo de sistemas embebidos es que todos los sistemas embebidos comparten una similitud al más alto nivel; es decir, todos tienen al menos una capa (hardware) o todas las capas (hardware, software del sistema y software de aplicación) en la que se encuentran todos los componentes. La capa hardware contiene todos los componentes físicos principales ubicados en una placa integrada, mientras que las capas de software del sistema y de la aplicación contiene todo el software ubicado en el sistema embebido y que está siendo procesado por él. LAS REGLAS DE ORO

1. Construir un sistema embebido y llevarlo a la producción requiere más que solo tecnología. 2. Los miembros del equipo deben tener la disciplina para seguir los procesos de desarrollo y las mejores prácticas. Existen varios modelos de procesos diferentes, pero los más destacados son: - Big-bang: proyectos esencialmente sin planificación, requisitos específicos o procesos de implementados antes y durante el desarrollo de un sistema. - Code-and-fix: proyectos sin procesos formales antes del inicio del desarrollo, pero en los que se definen los requisitos del producto. - XP (programación extrema) y TDD (desarrollo impulsado por pruebas): proyectos impulsados por reingeniería y pruebas ad-hoc de código una y otra vez hasta que el equipo lo hace bien o el proyecto se queda sin dinero/tiempo. - Cascada: proyectos donde el proceso para desarrollar un sistema ocurre en pasos y donde los resultados de un paso fluyen al siguiente. - Espiral híbrida: proyectos en los que el sistema se desarrolla en pasos, se obtiene retroalimentación y se vuelve a incorporar al proyecto en cada paso del proceso. - Modelos iterativos híbridos: como el RUP, que es un marco que permite adaptar diferentes procesos para diferentes etapas de los proyectos. - Scrum: otro marco para adaptar diferentes procesos para diferentes etapas, además de permitir que los miembros del equipo desempeñen varios roles a lo largo del proyecto. Scrum incorpora plazos más cortos y estrictos y una comunicación continua entre los miembros del equipo. 3. Trabajo en equipo 4. Alineación detrás de liderazgo 5. Fuerte ética e integridad entre todos y cada uno de los miembros del equipo SISTEMAS OPERATIVOS EMBEBIDOS Un sistema operativo (SO) es una parte opcional de la pila de software del sistema de un dispositivo, lo que significa que no todos los sistemas integrados tienen uno. En nuestro caso, un sistema operativo tiene como propósito proporcionar una capa de abstracción, común para el software sobre el sistema operativo para que el desarrollo de middleware y aplicaciones sea más fácil y, además, debe ser capaz de administrar los diversos recursos de hardware y software del sistema para garantizar que todo el sistema funcione de manera eficiente y confiable. Un sistema operativo diferencia entre un programa y la ejecución de un programa. Un programa es simplemente una secuencia pasiva y estática de instrucciones que podrían representar los recursos de hardware y software de un sistema. La ejecución real de un programa es un evento activo y dinámico en el que varias propiedades cambian en relación con el tiempo y la instrucción que se está ejecutando. Un proceso (comúnmente denominado tarea en muchos sistemas operativos integrados) es creado por un sistema operativo para encapsular toda la información que está involucrada en la ejecución de un programa (pila, PC, código fuente, datos, etc.). Esto significa que un programa es solo una parte de una tarea Algunos nombres de sistemas operativos embebidos son: Windows IOT, Nucleus, ROT, Contiki , RTOS (real time operation system), TinyOS, ARMmbed, Zephyr, Micrium, VxWorks, MicroEj, Threadx, freeRTOS, Mynewt, Mongoose OS, Snappy.

REQUISITOS DE UN SISTEMA OPERATIVO EMBEBIDO 





Hardware o Requisitos de memoria: recordar que los dispositivos IOT típicos no tienen mucha memoria. La memoria que va a tener que gestionar el SO es muy pequeña. o Requisitos de CPU: la complejidad de las operaciones debe ser muy baja. Normalmente un sistema operativo embebido funciona a ciclos de reloj muy bajos. o Características limitadas o Soporte a Plataformas Autonomía o Eficiencia energética o Stack de Red Adaptativo o Fiabilidad: cuanta más fiabilidad, más durabilidad y por lo tanto más autonomía Programabilidad o Interfaz estándar programable, API (ej posix) o Lenguajes de programación estándar

MODELO GENERAL DE UN SISTEMA OPERATIVO EMBEBIDO

Si bien los sistemas operativos integrados varían en cuanto a los componentes que poseen, todos los sistemas operativos tienen un kernel como mínimo. El kernel es un componente que contiene la funcionalidad principal del SO, específicamente todas o algunas combinaciones de características y sus interdependencias. Fuera del kernel, los subsistemas de administración de memoria y administración de E / S dependen de los controladores de dispositivo y viceversa para acceder al hardware.



Controladores de dispositivos: Son distintas bibliotecas de software que inicializan el hardware y administran el acceso al mismo mediante capas superiores de software. Los controladores de dispositivo son el enlace entre el hardware y el sistema operativo, el middleware y las capas de la aplicación. Los tipos de componentes de hardware que necesitan el soporte de controladores de dispositivos varían de una placa a otra, pero pueden clasificarse de acuerdo con el enfoque del modelo de Von Neumann. El modelo de Von Neumann se puede utilizar como modelo de software y también como modelo de hardware para determinar qué controladores de dispositivo se requieren dentro de una plataforma en particular. Específicamente, esto puede incluir controladores para la funcionalidad específica de la arquitectura del procesador maestro, controladores de administración de memoria y memoria, controladores de transacción e inicialización de bus, y controladores de control e inicialización de E / S

(entrada / salida, dispositivos de almacenamiento o E / S de depuración) tanto a nivel de placa como de CPU. Los controladores de dispositivos generalmente se consideran genéricos o específicos de la arquitectura. 



Un controlador de dispositivo que es específico de la arquitectura administra el hardware que está integrado en el procesador maestro (la arquitectura). Los ejemplos de controladores específicos de la arquitectura que inicializan y habilitan componentes dentro de un procesador maestro incluyen memoria en chip, administradores de memoria integrados (unidades de administración de memoria (MMU)) y hardware de punto flotante. Un controlador de dispositivo genérico administra el hardware que se encuentra en la placa y no está integrado en el procesador maestro. En un controlador genérico, normalmente hay partes de código fuente específicas de la arquitectura, porque el procesador es la unidad de control central y para obtener acceso a cualquier cosa en la placa generalmente significa pasar por el procesador.

Funcionalidades que tiene que tener un Device Driver: o o o o o o o o

Hardware Startup: Inicialización del hardware tras el encendido o el restablecimiento. Hardware Shutdown: Configurando el hardware en su estado PowerOFF Hardware Disable: Permitir que otro software desactive el hardware sobre la marcha. Hardware Acquire: Permitir que otro software obtenga acceso singular (bloqueo) al hardware. Hardware Write: Permitir que otro software escriba datos en el hardware Hardware Install: Permitir que otro software instale nuevo hardware sobre la marcha. Hardware Release: Permitir que otro software libere (desbloquee) hardware Hardware Unmapping: Permitiendo eliminar bloques de datos de dispositivos de almacenamiento de hardware.

Estas funciones se basan en la percepción implícita del hardware por parte del software, que es que el hardware se encuentra en uno de los tres estados en un momento dado: inactivo, ocupado o terminado. El hardware en estado inactivo se interpreta como desconectado. El hardware que está en estado de ocupado está procesando activamente algún tipo de datos y no está inactivo, por lo que puede requerir algún tipo de mecanismo de liberación. El hardware que se encuentra en el estado terminado está en un estado inactivo, lo que luego permite solicitudes de adquisición, lectura o escritura, por ejemplo. Dependiendo del procesador maestro, se pueden ejecutar diferentes tipos de software en diferentes modos, siendo los más comunes los modos de supervisión y usuario. Estos modos difieren esencialmente en términos de los componentes del sistema a los que se permite el acceso del software, y el software que se ejecuta en modo de supervisión tiene más acceso (privilegios) que el software que se ejecuta en modo de usuario. El código del controlador del dispositivo normalmente se ejecuta en modo de supervisión.



Gestión de procesos: Cómo el sistema operativo administra y ve otro software en el sistema embebido. Una subfunción que normalmente se encuentra dentro de la gestión de procesos

es la gestión de detección de interrupciones y errores. Las múltiples interrupciones y / o trampas generadas por los diversos procesos deben gestionarse de manera eficiente, de modo que se manejen correctamente y los procesos que las desencadenan se rastreen adecuadamente. Función Hilos

Semáforos Programación Prioritaria Extensión de señal en tiempo real Temporizadores

IPC

Definición Funcionalidad para soportar múltiples flujos o control dentro de un proceso. Estos flujos de controlse llaman hilos y comparten su direcciónespacio y la mayoría de los recursos y atributos. Las áreas específicas de funcionalidad incluidas en los subprocesos son: - Gestión del hilo - Sincronización p...


Similar Free PDFs