Académique Documents
Professionnel Documents
Culture Documents
Curso:
- Ingeniería de Software
Profesor:
Nombres y Apellidos:
Ciclo:
- 2017 - II
Indice
Contenido
1. Introducccion: ........................................................................................................... 3
2. Sistema embebido ..................................................................................................... 3
2.1. Concepto general: .............................................................................................. 3
2.2. Construcción: ..................................................................................................... 3
3. Características de un Sistema Embebido: ................................................................. 3
3.1. Características básicas: ...................................................................................... 3
3.2. Interfaces: ........................................................................................................... 4
3.3. Plataforma de sistemas embebidos .................................................................... 4
3.3.1. Linux en sistemas embebidos ..................................................................... 4
3.3.2. Windows XP para sistemas embebidos ...................................................... 4
3.3.3. Java también para sistemas embebidos ...................................................... 5
3.3.4. Algunos ejemplos de Sistemas embebidos en distintas plataformas: ......... 5
3.4. Comunicación: ................................................................................................... 5
3.5. Herramientas para probar y corregir (depuración): ........................................... 6
4. Componentes típicos de software embebido ............................................................ 6
4.1. Middleware: ....................................................................................................... 6
5. Arquitectura del software Embebido ........................................................................ 7
6. Comparativa entre un SO tradicional y un EOS ....................................................... 9
7. Sistemas embebidos de tiempo Real ........................................................................ 9
7.1. Características de los sistemas de tiempo real ................................................... 9
7.2. Ejemplos de sistemas operativos embebidos y de tiempo real ........................ 10
7.2.1. Windows XP Embedded........................................................................... 10
7.2.2. RTLinux ................................................................................................... 10
7.2.3. ChorusOS ................................................................................................. 11
7.2.4. VxWorks................................................................................................... 12
7.2.5. QNX ......................................................................................................... 12
7.2.6. S. O. µlTRON ........................................................................................... 12
7.2.7. Windows Embedded CE........................................................................... 12
7.2.8. Freerto ....................................................................................................... 13
7.2.9. NetBSD ..................................................................................................... 13
7.2.10. OpenBSD .............................................................................................. 13
7.2.11. Linux empotrado (Embedded Linux) ................................................... 14
8. Arquitectura Prism en sistemas embebidos ............................................................ 14
8.1. Propiedades de Prism: ...................................................................................... 14
8.2. Beneficios de Prims: ........................................................................................ 14
1. Introducccion:
2. Sistema embebido
2.2. Construcción:
Los Sistemas Embebidos suelen tener en una de sus partes una computadora con
características especiales conocida como microcontrolador que viene a ser el cerebro del
sistema. Este no es más que un microprocesador que incluye interfaces de entrada/salida
en el mismo chip. Normalmente estos sistemas poseen una interfaz externa para efectuar
un monitoreo del estado y hacer un diagnóstico del sistema.
Los sistemas embebidos suelen tener en una de sus partes una computadora con
características especiales conocida como microcontrolador que viene a ser el cerebro del
sistema, el cual incluye interfaces de entrada/salida en el mismo chip. Normalmente estos
sistemas poseen un interfaz externo para efectuar un monitoreo del estado y hacer un
diagnóstico del sistema.
Linux está presente en muchas partes. Quizá aún no haya ganado la batalla en los
ordenadores personales, pero definitivamente es el número uno en el área de los sistemas
embebidos. Sin saberlo, nos rodean miles de dispositivos que funcionan con Linux Al
contrario de lo que pueda parecer, Embedded Linux no es una versión reducida de Linux.
El calificativo «embebido » realmente hace referencia a la funcionalidad de la aplicación,
no a la funcionalidad de Linux.La fiabilidad de Linux es consecuencia directa de esta
filosofía que lleva implícita la aportación altruista de miles de programadores de todo el
mundo observando el código, mejorándolo, cambiándolo y probándolo en miles de
configuraciones posibles del sistema.
La tecnología Java es cada vez más utilizada en sistemas embebidos avanzados, debido a
sus capacidades inherentes de soporte de red, optimización de dispositivos y procesado
de datos. La mayoría de las características de la plataforma Java SE pueden ser ahora
empleadas para el desarrollo embebido, gracias a la capacidad cada vez mayor del nuevo
hardware disponible en el mercado.
JTAG (Joint Test Action Group) - una interfaz especializada para la prueba
saturada PCB
ISP (In-System Programming) - Programación de circuito
ICSP (circuito de programación en serie) – un método para la programación
directa del microcontrolador, por ejemplo, de la serie PIC y AVR
BDM (Modo de depuración de fondo) - utilizado principalmente en productos de
Freescale
IDE (Integrated Development Environment- Entorno de desarrollo integrado) -
para el desarrollo de programas.
4.1. Middleware:
Middleware es software que se sitúa entre un sistema operativo y las aplicaciones que se
ejecutan en él. Básicamente, funciona como una capa de traducción oculta para permitir
la comunicación y la administración de datos en aplicaciones distribuidas. A veces, se le
denomina “plumbing” (tuberías), porque conecta dos aplicaciones para que se puedan
pasar fácilmente datos y bases de datos por una “canalización”. El uso de middleware
permite a los usuarios hacer solicitudes como el envío de formularios en un explorador
web o permitir que un servidor web devuelva páginas web dinámicas en función del perfil
de un usuario.
Algunos ejemplos comunes de middleware son el middleware de base de datos, el
middleware de servidor de aplicaciones, el middleware orientado a mensajes, el
middleware web y los monitores de procesamiento de transacciones. Cada programa suele
proporcionar servicios de mensajería para que aplicaciones diferentes puedan
comunicarse usando marcos de mensajería como el Protocolo simple de acceso a objetos
(SOAP), servicios web, transferencia de estado representacional (REST) y notación de
objetos JavaScript (JSON). Si bien todo el middleware desempeña funciones de
comunicación, el tipo que elige una compañía depende del servicio que se va a usar y del
tipo de información que debe comunicarse. Puede tratarse de autenticación de seguridad,
administración de transacciones, colas de mensajes, servidores de aplicaciones,
servidores web y directorios. El middleware se puede usar también para procesamiento
distribuido con acciones que ocurren en tiempo real en lugar de enviar los datos para allá
y para acá.
Existen varios tipos de arquitectura:
A pesar de que en los sistemas integrados con arquitectura Von Neumann la memoria esté
segregada, y existan diferencias con respecto a la definición tradicional de esta
arquitectura; los buses para acceder a ambos tipos de memoria son los mismos, del
procesador solamente salen el bus de datos, el de direcciones, y el de control. Como
conclusión, la arquitectura no ha sido alterada, porque la forma en que se conecta la
memoria al procesador sigue el mismo principio definido en la arquitectura básica.
La ventaja fundamental de esta arquitectura es que permite adecuar el tamaño de los buses
a las características de cada tipo de memoria; además, el procesador puede acceder a cada
una de ellas de forma simultánea, lo que se traduce en un aumento significativo de la
velocidad de procesamiento. Típicamente los sistemas con esta arquitectura pueden ser
dos veces más rápidos que sistemas similares con arquitectura Von Neumann.
La desventaja está en que consume muchas líneas de E/S del procesador; por lo que en
sistemas donde el procesador está ubicado en su propio encapsulado, solo se utiliza en
supercomputadoras. Sin embargo, en los microcontroladores y otros sistemas integrados,
donde usualmente la memoria de datos y programas comparten el mismo encapsulado
que el procesador, este inconveniente deja de ser un problema serio y es por ello que
encontramos la arquitectura Harvard en la mayoría de los microcontroladores.
Sistema operativo que ha sido desarrollado para aplicaciones de tiempo real con el fin de
garantizar el cumplimiento de forma adecuada de las tareas teniendo en cuenta las
restricciones de tiempo lo que hace necesario que el sistema sea determinista.
Es los SOTR no importa el usuario sino los procesos, generalmente se subutilizan los
recurso con el fin de estar disponibles y atentos a los procesos en el momento que este los
requiera, es utilizado en entornos donde se procesan gran cantidad de eventos.
Los tipos de sistemas embebidos en tiempo real son los siguientes:
Tiempo Real Estricto (Hard) – sistemas en los que es absolutamente imperativo que
las respuestas ocurran dentro del plazo requerido.
o Por ejemplo: Sistemas de control de vuelo.
Tiempo Real Flexible – sistemas en los que los plazos son importantes pero que
todavía funcionarán correctamente si se determinan plazos que ocasionalmente no se
cumplan.
o Por ejemplo: El Sistema de adquisición de datos.
Tiempo real (Real) – sistemas que son estrictos en tiempo real y su tiempo de
respuesta es muy corto.
o Por ejemplo: Sistema de guía de misiles
Tiempo real Firme (Firm)– sistemas que son en tiempo real flexible, pero en el que
no haya beneficio de una entrega tardía del servicio.
o Un solo Sistema puede tener todos los subsistemas de tiempo real estricto,
flexibles y reales.
o En realidad, muchos sistemas tendrán una función de coste asociada con el
incumplimiento de los plazos.
7.1. Características de los sistemas de tiempo real
Objetivo es proporcionar rápidos tiempos de respuesta y cambios de contexto.
Minimizar el tiempo en el que esta deshabilitadas las interrupciones.
Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
Proceso de mayor prioridad expropia recursos.
Generalmente se utiliza planificación expropiativa basada en prioridades.
Gestión de memoria menos exigente que tiempo compartido, usualmente procesos
son residentes permanentes en memoria.
Poco movimiento de programas entre almacenamiento secundario y memoria.
La gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente
del recurso.
Debe ser multihebrado y apropiativo.
Poseer un tamaño pequeño.
Debe existir mecanismos de sincronización predecibles y de herencia de prioridad.
Gestión de memoria que no afecte a la Predicibilidad.
Muchas aplicaciones de tiempo real son embebidas, pero no todas las aplicaciones
embebidas se desempeñan en tiempo real. Mientras que aplicaciones en tiempo real
siempre se adhieren a características estrictas en el tiempo, los sistemas embebidos no
son tan simples de categorizar.
Cajeros automáticos.
Impresoras y escáneres
Avanzada Set-Top Boxes
Industria robótica
Servidores de los medios de comunicación en red
Dispositivos médicos
7.2.2. RTLinux
7.2.3. ChorusOS
7.2.6. S. O. µlTRON
7.2.9. NetBSD
7.2.10. OpenBSD
Un nuevo conjunto de desafíos que ha surgido con la aparición del barato, pequeño y
heterogéneo, posiblemente integrado, altamente distribuido, así como las plataformas de
computación móviles. Nos referimos al desarrollo del software en programación a
pequeña escala programming-in-the-small-and-many (Prism).