Está en la página 1de 16

“Software Embebido”

Curso:

- Ingeniería de Software

Profesor:

- Alarcón García, Roger Ernesto

Nombres y Apellidos:

- Aragón Guevara, Manuel Eduardo

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:

En el siguiente informe se hablará sobre los softwares embebidos, su arquitectura y


estructrura, su uso y los tipos de sistemas que existen, también que métodos de
implementación se usan para desarrollarlos y los lenguajes de programación usados.

2. Sistema embebido

2.1. Concepto general:

Un sistema embebido o empotrado (integrado, incrustado) es un sistema de


computación diseñado para realizar una o algunas pocas funciones dedicadas,
frecuentemente en un sistema de computación en tiempo real. Al contrario de lo que
ocurre con los ordenadores de propósito general (como por ejemplo una computadora
personal o PC) que están diseñados para cubrir un amplio rango de necesidades, los
sistemas embebidos se diseñan para cubrir necesidades específicas. En un sistema
embebido la mayoría de los componentes se encuentran incluidos en la placa base (tarjeta
de vídeo, audio, módem, etc.) y muchas veces los dispositivos resultantes no tienen el
aspecto de lo que se suele asociar a una computadora. Algunos ejemplos de sistemas
embebidos podrían ser dispositivos como un taxímetro, un sistema de control de acceso,
la electrónica que controla una máquina expendedora o el sistema de control de una
fotocopiadora entre otras múltiples aplicaciones.

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.

Por lo general, los Sistemas Embebidos se pueden programar directamente en el lenguaje


ensamblador del microcontrolador o microprocesador incorporado sobre el mismo, o
también, utilizando los compiladores específicos que utilizan lenguajes como C o C++ y
en algunos casos, cuando el tiempo de respuesta de la aplicación no es un factor
crítico, también pueden usarse lenguajes interpretados como Java.

3. Características de un Sistema Embebido:

3.1. Características básicas:


Las características básicas de los sistemas embebidos son las siguientes:
 Deben ser confiables, - La confiabilidad, en inglés reliability R(t), es la
probabilidad de que el sistema trabaje correctamente dado que está funcionando
en t=0.
 La mantenibilidad, en inglés Maintainability M(d), es la probabilidad de que el
sistema vuelva a trabajar correctamente d unidades de tiempo después de un fallo.
 La disponibilidad, en inglés Availability A(t), es la probabilidad de que el sistema
esté funcionando en el tiempo t. - La seguridad informática: consiste en disponer
de una comunicación confidencial y autentificada.
 La creación de un sistema confiable debe ser considerada desde un comienzo, no
como una consideración posterior.
 Deben ser eficientes en cuanto a la energía, al tamaño de código, al peso y al costo.
- Están dedicados a ciertas aplicaciones.
 Interfaces de usuario dedicadas (sin ratón, keyboard y pantalla)
 Muchos sistemas embebidos deben cumplir restricciones de tiempo real. Un
sistema de tiempo real debe reaccionar a estímulos del objeto controlado (u
operador) dentro de un intervalo definido por el ambiente.
3.2. Interfaces:

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.

Existen varias interfaces:

 Las interfaces de operador (Hombre-Máquina-HMI)


 monitores, interruptores, botones, indicadores, emisores individuales o grupales
de los diferentes tipos de señales, motores eléctricos, solenoides y otros. Se puede
aplicar en los trenes. Las características del software son las siguientes: robustez,
facilidad de uso, presentación clara de la información, diseño atractivo,
flexibilidad de proyecto.
 Las interfaces eléctricas (interfaces con otros componentes y dispositivos):
Interno
 I2C, SPI, ISA y otros. - Las interfaces Exteriores - RS232, TTY, Ethernet,
Centronics, FlexRay, CAN, LIN, RF y otros.
3.3. Plataforma de sistemas embebidos

3.3.1. Linux en sistemas embebidos

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.

3.3.2. Windows XP para sistemas embebidos


Aunque Microsoft ha mantenido a los fabricantes de sistemas operativos alternativos a
Windows contra la pared en lo que se refiere a equipos de sobremesa, su posición en la
batalla por la supremacía en el terreno de los sistemas operativos para dispositivos que
no fueran PC era vulnerable. De ahí que Microsoft da un paso más en este sector, lanzando
la versión para dispositivos embebidos en la Conferencia para desarrolladores de este tipo
de sistemas que se celebra en Las Vegas. Esta decisión parece ir en consonancia con las
predicciones que apuntan a una progresiva inclusión de microprocesadores en casi
cualquier tipo de aparatos (frigoríficos, coches, etc). Además, con esta iniciativa
Microsoft hace frente a la competencia surgida por parte, por ejemplo, de Linux que,
según muchos analistas, permite reducir costes, ya que no carga el precio de los royalties.

3.3.3. Java también para sistemas embebidos

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.

3.3.4. Algunos ejemplos de Sistemas embebidos en distintas plataformas:

 Microprocesador (MP o ?P) y los microcontroladores (MCU), que tienen


menos poder de cómputo, pero varios periféricos
 Arquitecturas - Von Neumann y Harvard
 Las populares familias de procesadores RISC: ARC (ARC International), ARM
(ARM Holdings), AVR (Atmel), PIC (Microchip), MSP430 (TI) y otros
 CISC CPUs: Intel y Motorola
 Por lo general en el interior hay una memoria cache y procesamiento de la
canalización de instrucciones
 Memoria para datos e instrucciones: RAM, PROM - OTP (Programable de una
sola vez), EEPROM o memoria Flash
 Periféricos: Propósito general Entrada /Salida - GPIO, temporizadores, ADC,
DAC y más.
3.4. Comunicación:

 RS-232, RS-422, RS-485, UART / USART (Receptor / Transmisor universal


síncrono y asíncrono)
 I2C (Inter-Integrated Circuit - Circuito integrado), SPI (Serial Peripheral
Interface Bus – Bus de la interfaz de periféricos serie), SSC and ESSI (Enhanced
Synchronous Serial Interface – Interfaz mejorada serie síncrona), USB (Bus
Universal en serie)
 Protocolos de comunicación de red: Ethernet, CAN (Controller Area Network –
Controlador del área de red), LonWorks etc.
 Software: Popular OS - QNX4 RIOS, Linux embebido y Linux-based (Android,
etc.), iOS, Windows CE, etc.
3.5. Herramientas para probar y corregir (depuración):

 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. Componentes típicos de software embebido

Los componentes de un sistema embebido son los siguientes, en la parte central se


encuentra el microprocesador, microcontrolador, DSP, etc. La CPU o unidad que aporta
la capacidad de cómputo del sistema, pudiendo incluir memoria interna o externa, un
micro con arquitectura específica según los requisitos

Un ES estaría formando por un microprocesador y un software que se ejecute sobre éste.


Sin embargo, este software necesitará sin duda un lugar donde poder guardarse para luego
ser ejecutado por el procesador. Esto podría tomar la forma de memoria RAM o ROM.
Todo sistema embebido necesitará una cierta cantidad de memoria, la cual puede incluso
encontrarse dentro del mismo chip del procesador. También contará con una serie de
salidas y entradas necesarias para comunicarse con el mundo exterior. Debido a que las
tareas realizadas por sistemas embebidos son de relativa sencillez, los procesadores
comúnmente empleados cuentan con registros de 8 o 16 bits. En su memoria sólo reside
el programa destinado a gobernar una aplicación concreta. Sus líneas de entrada/salida
(I/O) soportan el conexionado de los sensores y actuadores del dispositivo a controlar y
todos los recursos complementarios disponibles tienen como finalidad atender a sus
requerimientos. Estas son las únicas características que tienen en común los sistemas
embebidos, todo lo demás será totalmente diferente para cada sistema embebido en
particular debido a la variedad de aplicaciones disponibles.

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á.

5. Arquitectura del software Embebido

Un PC embebido posee una arquitectura semejante a la de un PC. Brevemente


describiremos los elementos básicos:


Existen varios tipos de arquitectura:

 Arquitectura Von Neumann ( Tipo Princeton)


 memoria común, bus de datos e instrucción.
 Arquitectura Harvard – memorias separadas, buses de datos e instrucciones
 Arquitectura Super Harvard – memorias separate + CACHE para instrucciones +
controladores I/O (E/S).
La arquitectura Harvard es típica para microcontroladores y DSP. También se utiliza en
la organización de la memoria CACHE en los sistemas MP más complejos.

La arquitectura Von Neumann utiliza el mismo dispositivo de almacenamiento tanto para


las instrucciones como para los datos, siendo la que se utiliza en un ordenador personal
porque permite ahorrar una buena cantidad de líneas de E/S, que son bastante costosas,
sobre todo para aquellos sistemas donde el procesador se monta en algún tipo de zócalo
alojado en una placa madre. También esta organización les ahorra a los diseñadores de
placas madre una buena cantidad de problemas y reduce el costo de este tipo de sistemas.

En un ordenador personal, cuando se carga un programa en memoria, a éste se le asigna


un espacio de direcciones de la memoria que se divide en segmentos, de los cuales
típicamente tenderemos los siguientes: código (programa), datos y pila. Es por ello que
podemos hablar de la memoria como un todo, aunque existan distintos dispositivos físicos
en el sistema (disco duro, memoria RAM, memoria flash, unidad de disco óptico...).

En el caso de los microcontroladores, existen dos tipos de memoria bien definidas:


memoria de datos (típicamente algún tipo de SRAM) y memoria de programas (ROM,
PROM, EEPROM, flash u de otro tipo no volátil). En este caso la organización es distinta
a las del ordenador personal, porque hay circuitos distintos para cada memoria y
normalmente no se utilizan los registros de segmentos, sino que la memoria está
segregada y el acceso a cada tipo de memoria depende de las instrucciones del procesador.

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.

Algunas familias de microcontroladores como la Intel 8051 y la Z80 implementan este


tipo de arquitectura, fundamentalmente porque era la utilizada cuando aparecieron los
primeros microcontroladores.

La arquitectura Harvard, es la utilizada en supercomputadoras, en los microcontroladores,


y sistemas integrados en general. En este caso, además de la memoria, el procesador tiene
los buses segregados, de modo que cada tipo de memoria tiene un bus de datos, uno de
direcciones y uno de control.

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.

Por eso es importante recordar que un microcontrolador se puede configurar de diferentes


maneras, siempre y cuando se respete el tamaño de memoria que este requiera para su
correcto funcionamiento.

6. Comparativa entre un SO tradicional y un EOS

Tradicional OS Características deseadas para EOS


Grandes requerimientos de memoria Huella de memoria pequeña
Arquitectura multiamenazas Modelo I/O Computo eficiente
(entrada/salida) Protocolos de comunicación
Núcleo y separación de usuario Interfaz fácil de exponer datos
No hay restricciones de energía Apoyar el diseño de aplicaciones diversas
Amplios recursos disponibles Forma fácil de programar, actualizar y
depurar aplicaciones de red.

7. Sistemas embebidos de tiempo Real

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.

7.2. Ejemplos de sistemas operativos embebidos y de tiempo real

7.2.1. Windows XP Embedded

Es una versión de Windows XP recortada (componetizada) para dispositivos


móviles. Está pensado para arquitecturas tipo X86 y soporta practicamente
el mismo software y hardware que XP.
Sistema operativo y plataforma de desarrollo que permite a los
desarrolladores elegir entre más de 10000 componentes individualmente
para conseguir la máxima funcionalidad en una huella reducida.
Permite reducir el tiempo al mercado aprovechando un modelo de
programación familiares y un poderoso conjunto de herramientas.

Ejemplos de dispositivos construidos con Windows XP Embedded:

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

Es un sistema operativo en tiempo real que ejecuta Linux como un thread


(hilo de ejecución) de menos prioridad que las tareas de tiempo real. Con
este diseño, las tareas de tiempo real y los manejadores de interrupciones
nunca se ven retrasados por operaciones que no son de tiempo real.
La primera versión de RTLinux estaba diseñada para ejecutarse en la
plataforma x86 y proporcionaba una pequeña API y un pequeño entorno de
programación. La versión 2, que fue totalmente reescrita, fue diseñada para
el soporte de multiprocesamiento simétrico (SMP) y para ser ejecutada en
una amplia variedad de arquitecturas.
RTLinux proporciona la capacidad de ejecutar tareas de tiempo real y
manejadores de interrupciones en la misma máquina que el Linux estándar.
Estas tareas y los manejadores ejecutan cuando se necesitan en detrimento
de lo que estuviera ejecutando Linux. El peor caso de tiempo es entre que se
detecta la interrupción hardware y el procesador ejecuta la primera
instrucción del manejador de la interrupción. Este tiempo es del orden de los
10 microsegundos en la plataforma x86.

Características de los sistemas RTLinux

· Sistema operativo de tiempo real estricto.


· Extensiones para entorno multiprocesador SMP (x86).
· API "próximo" al de POSIX threads. Planificador expulsivo por
prioridades fijas, señales, sistema de archivos POSIX (open, close, etc.)
semáforos y variables condición.
· Depuración de código mediante GDB (GNU Debugger).
· Soporte para arquitecturas x86 y PPC.
· Acceso directo al hardware (puertos e interrupciones).
· Comunicación con procesos linux mediante memoria compartida y
"tubos".
· Estructura modular para crear sistemas pequeños.
· Eficiente gestión de tiempos. En el peor caso se dispone de una resolución
próxima al microsegundo (para un i486).
· Facilidades para incorporar nuevos componentes: relojes, dispositivos de
E/S y planificadores.

7.2.3. ChorusOS

ChorusOS es un sistema operativo para aplicaciones empotradas o en tiempo


real, desarrollado por la empresa Sun Microsystems. Actualmente está
liberado bajo código abierto.
Es sistema operativo altamente escalable y estable, sirve para sistemas
distribuidos, en red, empotrados o en tiempo real y se ha establecido como
un sistema operativo muy utilizado en hardware para comunicaciones, desde
móviles hasta switches. Pero también se encuentra en otras aplicaciones
empotradas, tales como impresoras, autómatas, etc.
Es de arquitectura basada en componentes (módulos), lo que le dota de una
alta configurabilidad y escalabilidad.
Este sistema operativo pertenece a la quinta generación de los sistemas
operativos.
7.2.4. VxWorks

VxWorks es un sistema operativo de tiempo real, basado en Unix, vendido


y fabricado por Wind River Systems. Las características distintivas de
VxWorks son:
· La compatibilidad con POSIX.
· El tratamiento de memoria.
· Las características de multi-procesador.

VxWorks se usa generalmente en sistemas empotrados.


7.2.5. QNX

QNX (pronunciado Q.N.X. o Q-nix) es un sistema operativo de tiempo real


basado en Unix que cumple con la norma POSIX. Es desarrollado
principalmente para su uso en dispositivos empotrados. Desarrollado por
QNX Software Systems empresa canadiense.
QNX está basado en una estructura de micronúcleo, que proporciona
características de estabilidad avanzadas frente a fallos de dispositivos,
aplicaciones, etc.
Está disponible para las siguientes arquitecturas: x86, MIPS, PowerPC, SH4
(incluida la videoconsola Dreamcast con una versión muy limitada de este),
ARM, StrongARM y xScale.

7.2.6. S. O. µlTRON

µMore es un sistema operativo en tiempo real para dispositivos móviles de


próxima generación que cumple las especificaciones de perfiles estándar
ulTRON 4.0. Entre sus prestaciones se incluye la función Easy Power Save
(ahorro de energía sencillo) y el módulo de red AVE-TCP (que cumple las
especificaciones IPv6). µMore puede implementarse independientemente o
en combinación con los navegadores ACCESS para la electrónica de
consumo, NetFront o Compact NetFront.

7.2.7. Windows Embedded CE

Es una versión distinta de Windows pensada para dispositivos móviles


solamente y construida desde cero para este fin. Es más pequeña que XP
Embeded llegando a tener como mínimo 300KB (vs 40MB de XPe) y con
700 componentes que se pueden escoger (como un lego tambien).
El release 5 fue el que hasta ahora se ha incluido en diversos dispositivos
como thin clients, equipo médico, cámaras digitales, teléfonos VOIP y otros,
con la versión 6 se anuncia el inicio de una nueva generación (incluyendo un
nuevo kernel que seria el 3o) de versiones especializadas de CE. Está
pensado para diversas arquitecturas además de la x86 como ARM, MIPS.
7.2.8. Freerto

Sistema operativo de tiempo real para los sistemas empotrados pequeños.


Los programas preconfigurados de la demostración son incluidos para varias
arquitecturas del microcontrolador - ARM7, CORTEZA M3, 8051, AVR
(MegaAVR), x86, PIC (PicMicro PIC18), HCS12, H8S, RDC del BRAZO.

7.2.9. NetBSD

Es un sistema operativo de la familia Unix (en sí no se le puede llamar "un


Unix", ya que esta es una marca comercial de AT&T, pero se denomina
como "sistema de tipo UNIX" o "derivado de UNIX"), open source y libre,
y, a noviembre de 2006, disponible para más de 50 plataformas hardware.
Su diseño y sus características avanzadas lo hacen ideal para multitud de
aplicaciones. NetBSD ha surgido como resultado del esfuerzo de un gran
número de personas que tienen como meta producir un sistema operativo
tipo Unix accesible y libremente distribuible.
Es utilizado en varios dispositivos empotrados y no ha requerido de software
de desarrollo adicional más que el juego de herramientas.
Características de los sistemas NetBSD:
Actualmente NetBSD se centra en ofrecer un sistema operativo estable,
multiplataforma, seguro y orientado a la investigación.
Está diseñado teniendo como prioridad escribir código de calidad y bien
organizado, y teniendo muy en cuenta también el cumplimiento de
estándares (POSIX, X/Open y otros más relevantes): prueba de este buen
diseño es su amplia portabilidad, actualmente a 56 plataformas.
Se trata de un sistema operativo maduro, producto de años de desarrollo (los
orígenes de BSD están sobre el año 1977), y partiendo del sistema UNIX
sexta edición.

7.2.10. OpenBSD

Sistema operativo libre tipo Unix, multiplataforma, basado en 4.4BSD. Es


un descendiente de NetBSD, con un foco especial en la seguridad y la
criptografía.
Este sistema operativo, se concentra en la portabilidad, cumplimiento de
normas y regulaciones, corrección, seguridad proactiva y criptografía
integrada.
Se distribuye bajo la licencia BSD, aprobada por la OSI.
Características
· Sistema operativo tipo UNIX.
· Se distingue de Linux por sus fuentes y su licencia.
· Libre, Funcional, Seguro.
· Base de desarrollo en Calgary.
· Nueva versión cada 6 meses.
· Acceso CVS al código fuente.
· Actualmente esta en la versión 3.6.

7.2.11. Linux empotrado (Embedded Linux)

Se refiere al uso del sistema operativo Linux en un sistema embebido, como


por ejemplo PDA's, teléfonos móviles, robots, enrutadores / servidores,
dispositivos electrónicos y aplicaciones industriales con microcontroladores
y microprocesadores.
El núcleo de Linux, combinado con un conjunto de algunas otras utilidades
de Software Libre, puede ajustarse dentro del limitado espacio de hardware
de los sistemas embedidos. Una instalación típica de un Linux empotrado
ocupa en promedio 2 MB.
Linux Empotrado tiene algunas ventajas en relación a otros sistemas
operativos empotrados, como pueden ser el Código abierto, pequeño
(Windows CE ocupa 21 MB comparado con los 2 MB para Linux
Empotrado), puede no tener costos por derechos, maduro y estable (Más de
10 años de edad y utilizado en muchos dispositivos) y con respaldado.

8. Arquitectura Prism en sistemas embebidos

Durante las últimas décadas los investigadores de software y profesionales han


propuesto diversos enfoques, técnicas y herramientas para el desarrollo de sistemas de
software a gran escala. Los resultados de estos esfuerzos han sido caracterizados como
de programación a gran escala programming-in-the-large (PitL).

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).

 Prism está caracterizado por la compañía OS’s (Palm, Symbian)


 Prism está relacionado con la arquitectura del Software (arquitectura basada
en el desarrollo)
8.1. Propiedades de Prism:
 Recursos muy limitados
 Potencia limitada
 Ancho de banda bajo
 Velocidad de la CPU lenta, memoria limitada
 Tampaño pequeño del display
8.2. Beneficios de Prims:
 Flexibilidad
 Eficiencia (Tamaño, velocidad, sobrecarga)
 Escalabilidad (Número de componentes, conectores, eventos, hilos,
dispositivos de hardware)
 Extensibilidad (Soporte relativo a los nuevos desarrollos)

9. . Programación de Sistemas embebidos


Normalmente se tiene que ser mucho más consciente de los recursos que se consumen en
la programación de sistemas embebidos que los que son necesarios en los programas
ordinarios
 Tiempo
 Espacio
 Canales de comunicación
 Archivos
 ROM (Read-Only Memory)
 Memoria Flash
Se debe tomar el tiempo para aprender acerca de la forma en que las características
del lenguaje de programación se implementan para una plataforma en particular.
 Hardware
 Sistema operativo
 Librería .
Una gran cantidad de éste tipo de programación es:
 Mirar con atención las características especializadas de un RTOS (Sistema
Operativo en Tiempo Real)
 El uso de un “entorno non-hosted” (que es una forma de decir “ un lenguaje
de programación justo en lo alto (right on top) del hardware sin un Sistema
operativo”)
 Incluye (a veces complejas) arquitecturas de controladores de dispositivos El
trato directo con interfaces de dispositivos hardware

10. Lenguajes de programación de sistemas embebidos


Lenguajes Hardware Verilog y VHDL son los lenguajes más populares para la
descripción del hardware y su modelización.

10.1. Lenguajes de Software


Describen secuencias de instrucciones para un proceso a ejecutar. Por lo tanto, las listas
de la mayoría de las instrucciones imperativas se ejecutan para comunicar a través de la
memoria: un array de almacenamiento de localizaciones que mantienen
sus valores hasta que son modificados. Los lenguajes más populares son: Lenguaje
ensamblador, C, C++ y Java. Las características de estos lenguajes se muestran en la
tabla de abajo.

 C++ se extiende C con los mecanismos de estructuración para grandes


programas: los tipos de datos indefinidos, una manera de reutilizer código
con tipos diferentes, espacios de nombres a los grupos de objetos y
evitar conflictos de nombres accidentales cuando se ensamblan las piezas del
programa, y las excepciones para manejar errores. La librería standard C++
incluye una colección de datos polimórficos eficientes, tales como arrays
(matrices), árboles, cadenas para las que el compilador genera
implementaciones personalizadas.
 Lenguaje Java Sun se asemeja al C++ pero es incompatible. Al igual que C +
+, Java está orientado a objetos, que proporciona clases y herencia. Es un
lenguaje de más alto nivel que C++, ya que utiliza las referencias a objetos,
matrices y cadenas en lugar de punteros. La recogida automática
de basura de Java libera al programador de la gestión de memoria. Java
proporciona subprocesos simultáneos.
 Otro tipo de lenguaje de Sistemas Embebidos son languages de flujo de
datos y languajes Híbridos. Los lenguajes de flujo de datos son un
complemento perfecto para los algoritmos de procesamiento de señales, que
utilizan grandes cantidades de aritmética derivada de la teoría de sistemas
lineales de decodificación, comprimen o filtran corrientes de datos que
representan muestras periódicas de los valores continuamente cambiantes,
como el sonido o el video.

También podría gustarte