Você está na página 1de 13

UNIVERSIDAD

NACIONAL
AUTONOMA DE
HONDURAS
Sistemas Embebidos
Asignatura:
Sistemas Operativos II (IS-512)
Catedrtico:
Ing. Elmer Padilla
Grupo N1
Integrantes:
Tatiana Maradiaga

20121007691

Tomasa Meza

20131000142

Leonardo Serrano

20131001267

Marco Matute

20131008925

03-06-2016

INTRODUCCION
Si nos preguntamos por sistemas operativos para ordenadores personales,
muchos opinaramos de Windows, OS y de distribuciones de Linux. Pero... y
si nos preguntamos por cajeros automticos? O por lavadoras o microondas?
Al fin y al cabo, tambin son dispositivos electrnicos y llevan integradas ciertas
instrucciones y maneras de comunicarse con el usuario para saber qu quiere
hacer y cmo ofrecrselo.
Este informe tratara acerca de los sistemas operativos embebidos; aquellos
que controlan aparatos ms limitados pero que tambin gozan de un cerebro.
Definiremos lo que es un sistema embebido, caractersticas, estructuras,
plataformas todo aquello que est relacionado con este sistema operativo.

CONTENIDO

Definicin Sistemas Embebidos


Caractersticas
Plataformas
Estructura
Componentes
Arquitectura
Gestin de memoria
Memoria real
Gestin de entrada y salida
Sistemas operativos CE
Caractersticas

Plataforma
Ejemplos Sistemas Embebidos
Tipos de memoria Arduino

SISTEMAS OPERATIVOS EMBEBIDOS


Un sistema embebido es un sistema de computacin diseado para realizar
una o algunas pocas funciones dedicadas, frecuentemente en un sistema
de computacin en tiempo real. Por definicin, un sistema operativo embebido
es aquel que ha sido creado para un sistema de cmputo limitado a un nmero
fijo y escaso de tareas. Un sistema operativo embebido es aquel que est
integrado en los circuitos de los dispositivos electrnicos, entre estos
dispositivos se encuentra electrodomsticos, telfonos mviles, radios,
televisores, automviles, lectores de cdigos de barras, equipos mdicos,
asistentes digitales personales (PDA), etc. son un todo con las aplicaciones
que ejecutan, lo que quiere decir que en muchos casos no es posible instalar
en ellos ningn tipo de software adicional.
Los sistemas embebidos y los de tiempo real son tecnologas inmersas en el
diario vivir y generalmente no se identifican fciles y tampoco se definen los
sistemas operativos que hacen posible su manipulacin y que a la vez
administran los recursos de dichos dispositivos para maximizar el desempeo.
CARACTERISTICAS
Estos sistemas suelen tener algunas caractersticas de los sistemas de tiempo
real pero tambin tienen limitaciones de tamao, memoria y consumo de
electricidad que los hace especiales y no suelen ser visibles.
Fiabilidad y seguridad: Un fallo en un sistema de control puede hacer que el
sistema controlado se comporte de forma peligrosa o antieconmica. Es
importante asegurar que si el sistema de control falla lo haga de forma que el
sistema controlado quede en un estado seguro, hay que tener en cuenta los
posibles fallos o excepciones en el diseo
Eficiencia: Gran parte de los sistemas de control deben responder con gran
rapidez a los cambios en el sistema controlado
Interaccin con dispositivos fsicos: Los sistemas empotrados interaccionan
con su entorno mediante diversos tipos de dispositivos que normalmente no
son convencionales (teclados, impresoras): convertidores A/D y D/A, pwm,
entradas y salidas digitales paralelo y serie, (interfaces con sensores,
actuadores, perifricos especiales). Los componentes del software que
controlan el funcionamiento de estos dispositivos son, en general,

dependientes del sistema concreto.


Robustez: Embarcados en sistemas con movimiento o que pueden ser
transportados, sujetos a vibraciones e incluso impactos (coches, robots,
instrumentacin porttil). No siempre trabajan en condiciones ptimas de
temperatura, humedad, y limpieza.

OTROS
Suelen utilizar un par de KB de RAM y ROM.
Trabaja con procesadores poco potentes.
Son sistemas operativos tolerantes a fallos.
PLATAFORMAS
Entre las plataformas de los sistemas operativos embebidos tenemos:
QNX es un sistema operativo embebido desarrollado por QNX Software
Systems
Ltd,
para
aplicaciones
de
dispositivos
electrnicos,
telecomunicaciones, sistemas automotrices, etc.; que necesitan una gran
confiabilidad, desempeo, funcionalidades especficas, y una escalabilidad
masiva.
Linux embebido es un sistema Linux tpico del cual se han removido
programas de utilidad, herramientas, y otros servicios del sistema que no son
necesarios en un ambiente embebido. Linux para los dispositivos embebidos
comenz con el soporte del kernel y el compilador para los microprocesadores
ms populares de 32 bits: x86, ARM, PowerPC, MIPS y SH. Y luego continu
con la aparicin de diferentes distribuciones de Linux con soporte para
caractersticas especficas de los sistemas embebidos.
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 posicin en la batalla por la
supremaca en el terreno de los sistemas operativos para dispositivos que no
fueran PC era vulnerable. De ah que Microsoft da un paso ms en este sector,
lanzando la versin para dispositivos embebidos en la Conferencia para
desarrolladores de este tipo de sistemas que se celebra en Las Vegas. Esta
decisin parece ir en consonancia con las predicciones que apuntan a una
progresiva inclusin de microprocesadores en casi cualquier tipo de aparatos
(frigorficos, coches, etc.).
DOS est estrechamente ligado al progresivo desarrollo de los
microprocesadores de arquitectura x86 de Intel. Y es que es un sistema
operativo que hay que conocer porque sigue estando en vigor gracias a su
estabilidad ya que se desarrollaba en paralelo con la tecnologa de Intel e IBM
y porque es un sistema operativo muy simple, monousuario y monotarea. En
otras palabras, DOS slo ejecuta un programa cada vez
Java para sistemas embebidos. La tecnologa Java es cada vez ms utilizada
en sistemas embebidos avanzados, debido a sus capacidades inherentes de
soporte de red, optimizacin de dispositivos y procesado de datos. La mayora
de las caractersticas 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.

ESTRUCTURA DE UN SISTEMA EMBEBIDO


Las principales caractersticas de un sistema embebido son el bajo costo y
consumo de potencia. Dado que muchos sistemas embebidos son concebidos
para ser producidos en miles o millones de unidades, el costo por unidad es un
aspecto importante a tener en cuenta en la etapa de diseo. Generalmente, los
sistemas embebidos emplean procesadores muy bsicos, relativamente lentos
y memorias pequeas para minimizar los costos. En estos sistemas la
velocidad no solo est dada por la velocidad del reloj del procesador, sino que
el total la arquitectura se simplifica con el fin de reducir costos. Normalmente,
un sistema embebido emplea perifricos controlados por interfaces seriales
sincrnicos, las cuales son muchas veces ms lentas que los perifricos
empleados en un PC. Los sistemas embebidos debern reaccionar a estmulos
provenientes del ambiente, respondiendo con fuertes restricciones de tiempo
en muchos casos, por lo tanto, un sistema se dice que trabaja en tiempo real si
la informacin despus de la adquisicin y tratamiento es todava vigente. Es
decir, que en el caso de una informacin que llega de forma peridica, los
tiempos de adquisicin y tratamiento deben ser inferiores al perodo de
actualizacin de dicha informacin. Un sistema embebido puede o no ser de
tiempo de real dependiendo de los requerimientos especficos de la aplicacin
que se quiere implementar.
Los programas en estos sistemas se ejecutan minimizando los tiempos
muertos y enfrentando fuertes limitaciones de hardware, ya que usualmente no
tienen discos duros, ni teclados o monitores, una memoria flash reemplaza los
discos y algunos botones y una pantalla LCD normalmente reemplazan los
dispositivos de interfaz. El software que controla un dispositivo de hardware,
por ejemplo, en una memoria ROM, Flash o un circuito integrado se conoce
como Firmware. Tpicamente la programacin en estos dispositivos se realiza
en lenguaje ensamblador o en lenguaje C, actualmente se han desarrollado
algunas mquinas virtuales y otros compiladores que permiten el diseo de
programas ms complejos.
COMPONENTES DE UN SISTEMA EMBEBIDO
Un sistema embebido en principio estara formando por un microprocesador y
un software que se ejecute sobre este. Sin embargo, este software necesitara
sin duda un lugar donde poder guardarse para luego ser ejecutado por el
procesador. Esto podra tomar la forma de memoria RAM o ROM, todo sistema
embebido necesitara en alguna medida una cierta cantidad de memoria, la cual
puede incluso encontrarse dentro del mismo chip del procesador. Adems de
esto normalmente un sistema embebido contara 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 comnmente usados cuentan con registros de 8 o 16 bits. En su
memoria solo reside el programa destinado a gobernar una aplicacin
determinada. Sus lneas de entrada/salida soportan el conexionado de los
sensores y actuadores del dispositivo a controlar y todos los recursos
complementarios disponibles tienen como nica finalidad atender a sus
requerimientos. Estas son las nicas caractersticas que tienen en comn los
sistemas embebidos, todo lo dems ser totalmente diferente para cada

sistema embebido en particular debido a la inmensa diversidad de aplicaciones


disponibles.
ARQUITECTURA
Para generar el kernel correcto es necesario conocer lo ms posible la
arquitectura subyacente. Si disponemos del manual o datasheet del dispositivo
podemos determinar los controladores necesarios. Si este no es nuestro caso,
podemos arrancar con una distribucin linux live (Ej. Ubuntu) y determinar que
controladores son los necesarios analizando los mdulos cargados y el rbol
de ficheros generados bajo /sys.
GESTIN DE MEMORIA
Cualquiera de las funcionalidades de los sistemas embebidos est compuestas
de tres aspectos: procesamiento, almacenamiento y comunicacin. El
procesamiento es la transformacin de los datos, el almacenamiento es la
retencin de los datos para su posterior uso, y la comunicacin es la
transferencia de los datos. Cada uno de estos aspectos debe ser
implementado. Se usan procesadores para el procesamiento, memoria para el
almacenamiento, y buses para la comunicacin
La mayora de los sistemas operativos modernos convencionales usan
memoria virtual paginada, donde la pgina es la unidad de proteccin y
asignacin de la memoria. El uso de procesos y proteccin de memoria en
sistemas embebidos es muy importante; si se utiliza un nico espacio de
direcciones para todas las aplicaciones, una falla de software de una aplicacin
puede resultar en la corrupcin de la memoria, ocasionando una falla de
sistema. La desventaja, sin embargo, es que la proteccin de memoria requiere
que el CPU soporte MMU (Memory Management Unit), lo cual resulta en un
CPU ms complejo.
A diferencia de los sistemas operativos convencionales, la mayora de los
sistemas operativos embebidos estn enfocados a un CPU simple, que
usualmente no tiene MMU. Adems, el resto del sistema tiene memoria
limitada, poco o ningn espacio en disco; as que usualmente no usan memoria
virtual.
Por ejemplo, los sistemas Linux embebido y QNX no soportan paginacin, esto
quiere decir que los datos, texto y pila comparten un espacio contiguo de
memoria. Esto implica que no existe proteccin a nivel de memoria, por
ejemplo, la pila podra crecer hasta ocupar el espacio de texto o datos; o un
proceso podra leer o escribir datos de otro proceso.

MEMORIA REAL
La memoria real o principal es en donde son ejecutados los programas y
procesos de una computadora y es el espacio real que existe en memoria para
que se ejecuten los procesos. Por lo general esta memoria es de mayor costo
que la memoria secundaria, pero el acceso a la informacin contenida en ella
es de ms rpido acceso. Solo la memoria cache es ms rpida que la
principal, pero su costo es a su vez mayor.
GESTIN DE ENTRADA Y SALIDA, DISPOSITIVOS QUE SOPORTA
Una de las principales funciones del sistema operativo es la gestin de los
recursos de la computadora y, en concreto, de los dispositivos perifricos. El
gestor de Entrada/Salida debe controlar el funcionamiento de todos los
dispositivos de Entrada/Salida para alcanzar los siguientes objetivos:
Facilitar el manejo de los dispositivos perifricos. Para ello ofrecer una
interfaz sencilla, uniforme y fcil de utilizar entre los dispositivos, y gestionar
los errores que se pueden producir en el acceso a los mismos.
Ofrecer mecanismos de proteccin que impidan a los usuarios acceder sin
control a los dispositivos perifricos.
Las rutinas que el sistema emplea para ejecutar operaciones de E/S estn
diseadas para eliminar las diferencias entre los dispositivos y los tipos de
acceso. No existe distincin entre acceso aleatorio y secuencial, ni hay un
tamao de registro lgico impuesto por el sistema.

El sistema mantiene una lista de reas de almacenamiento temporal (buffers),


asignadas a los dispositivos de bloques. El Kernel usa estos buffers con el
objeto de reducir el trfico de E/S. Cuando un programa solicita una
transferencia, se busca primero en los buffers internos para ver si el bloque que
se requiere ya se encuentra en la memoria principal (como resultado de una
operacin de lectura anterior).
SISTEMAS OPERATIVOS CE
Windows CE fue introducido en un conjunto de productos de PC de mano en el
ao 1996, pero posteriormente se transform en un sistema operativo
embebido altamente configurable. Entre sus ventajas se encuentran que
incluye un subconjunto del API Win32 enfocado a los servicios que
comnmente se necesitan, as como una optimizacin en el consumo de
energa. En este sistema cuando se habla de tamao, se refiere a la cantidad
de memoria y de almacenamiento necesario para albergar al sistema.
Mientras se desarrollaba Windows CE se le dio el nombre de Pegasus y junto a
l se estaba diseando un nuevo dispositivo que lo tendra ms tarde como
sistema operativo. A este dispositivo se le llam Handheld PC (HPC) o PC de

bolsillo. CE, adicionando un conjunto completo de herramientas de desarrollo


para la construccin de productos de diseo sofisticados, con aplicaciones
poderosas para rodar en el hardware ms actual.
Es un sistema operacional vigoroso, en tiempo real, para el desarrollo gil de
dispositivos de ltima generacin conectados, inteligente y compacto. ste
incluye el software necesario para crear dispositivos basados en el Windows
Caractersticas
Windows CE da un soporte bastante completo a las caractersticas ms
avanzadas que encontramos en computadores empotrados, tanto de los
procesadores como de otros elementos hardware.
Es muy modular
La API de Windows CE est pensada para facilitar la portabilidad con los
sistemas operativos Windows para SSPG.
Plataforma
Windows CE soporta ms de 160 modelos de procesadores, pertenecientes a 5
tipos de arquitecturas distintas: ARM, MIPS, PowerPC, SH y x86 (modo
protegido). Son procesadores con una serie de caractersticas esenciales para
este SO:
La cantidad de memoria necesaria para almacenar el sistema operativo
depende de los mdulos y funciones que necesite la plataforma. La versin
mnima del SO, que incluye el kernel y sistema de ficheros (servicios que
veremos en la siguiente seccin), ocupa unos 200 KB si se compila para un
x86 en versin Release (400 KB en versin Debug). Una configuracin con el
mximo nmero de mdulos puede llegar casi a los 30 MB en una compilacin
en modo debug para procesadores de la familia MIPS.
EJEMPLOS SISTEMAS EMBEBIDOS

OS/2
(eComStation)
Windows CE
Windows
Embedded
Automotive

OSEK

Est en desuso, pero en su


momento podas hacerlo en
cualquier cajero automtico.
Fue diseado con un ncleo
totalmente nuevo, distinto al
del resto de sus sistemas y
optimizado para dispositivos
con evidentes limitaciones
tcnicas.
Pensar en sistemas operativos
para automviles es cada vez
ms frecuente, pero a
Microsoft ya le vino esta idea
a mediados de los noventa,
cuando comenz a idear un
sistema derivado de Windows
CE que funcionara en los
paneles de navegacin de
todo tipo de vehculos.
Las siglas de OSEK hacen
referencia tanto a un
consorcio de empresas como
a un estndar abierto de
sistema operativo e interfaz de
comunicaciones bsicos que
rige ms de la mitad de la

vxWorks

FreeBSD

ThreadX

Android

industria del automvil.


Desarrollado por la empresa
Wind River Systems, este
sistema operativo en tiempo
real (RTOS) ha sido llevado a
infinidad de dispositivos.
Incluso ha controlado el
cerebro de varios vehculos
espaciales como el Sojourner,
el rastreador enviado a Marte,
convirtindose en el SO que
ms lejos ha viajado en la
historia de la Informtica.
FreeBSD es un sistema
operativo completo, son varios
los proyectos que han
derivado para portarse a
sistemas embebidos. Como
curiosidad, cabe destacar que
es la base sobre la que se
apoya CellOS, el sistema que
rige Playstation 3 y su Cross
Media Bar (XMB).
Ha sido diseado
especficamente para trabajar
en condiciones de rpida
respuesta. Una de las
empresas que ha apostado
recientemente por su uso es
HP, que lo incluye para
gestionar la mayora de
modelos de sus impresoras de
tinta y lser.
Puede incrustarse en todo tipo
de electrodomsticos: desde
telfonos fijos a microondas y
lavadoras. As podrs saber
qu tiempo hace antes de
poner la colada.

Ejemplo:
Distribucin de memoria en Arduino:
Tipos de memoria en Arduino: Flash, SRAM y EEPROM
Existen tres tipos de memoria en los microcontroladores utilizados por las
placas Arduino (ATmega168, ATmega328, ATmega1280, etc.): memoria Flash,
memoria SRAM y memoria EEPROM. A continuacin, indicamos las diferencias
de cada una de ellas y el uso que Arduino puede darles.
Memoria Flash (espacio del programa) en Arduino
La memoria Flash (espacio del programa) es donde Arduino almacena el
sketch. Un sketch es el nombre que usa Arduino para un programa. Es la
unidad de cdigo que se sube y ejecuta en la placa Arduino. Esta memoria es
no voltil, si Arduino deja de ser alimentado elctricamente los datos que haya
en esta memoria permanecern.

El tamao de la memoria Flash de Arduino puede variar dependiendo del


microcontrolador, aunque no es muy grande. Por ejemplo, para el chip
ATmega168 el tamao de la memoria Flash es de 16 kilobytes, de los cuales 2
kilobytes son utilizados por el bootloader. Para el caso del microcontrolador
ATmega328 (como el que incorpora Arduino UNO) el tamao de la memoria
Flash es de 32KB, de los cuales el bootloader usa 0,5KB. Por lo que debemos
desarrollar los programas de forma muy optimizada, usando los tipos de
variables que menos memoria requieran, en la medida de lo posible. Tambin
debemos optimizar el cdigo fuente de la aplicacin para no repetir lneas de
cdigo.
Memoria SRAM (Static Random Access Memory memoria esttica de acceso
aleatorio) en Arduino
La memoria SRAM (Static Random Access Memory memoria esttica de
acceso aleatorio) es de tipo voltil, es el espacio donde los sketches
(programas) almacenan y manipulan variables al ejecutarse. La informacin
guardada en esta memoria ser eliminada cuando Arduino pierda la
alimentacin. Esta memoria es de uso exclusivo para el programa en ejecucin.
La memoria SRAM de Arduino es muy pequea, por lo que debemos optimizar
nuestros programas al mximo y no abusar de variables de tipo charmuy
grandes. Hay que tener en cuenta que cada carcter de una
variable char utiliza un byte. En el microcontrolador ATmega 168 el tamao de
la memoria SRAM es de 1024 bytes, para el caso de un chip ATmega328
(como el que incorpora Arduino UNO) el tamao es de 2KB (2048 bytes).
Si la SRAM se queda sin espacio, el programa de Arduino fallar de forma
imprevista, aunque se compile y se suba a Arduino correctamente la aplicacin
no se ejecutar o se ejecutara de manera extraa.

Memoria EEPROM en Arduino


EEPROM es un espacio de memoria que puede ser utilizado por los
programadores para almacenar informacin a largo plazo. Este tipo de
memoria es no voltil, por lo que los datos guardados en ella permanecern,
aunque Arduino pierda la alimentacin. Esta memoria puede ser usada para
guardar valores si es necesario.
El tamao de la EEPROM para un chip ATmega128 es de 512 bytes, para un
chip ATmega328 es de 1KB (1024 bytes). Hay que tener en cuenta que el
tamao de la memoria EEPROM interna de Arduino es "pequeo" pero Arduino
admite aadir mdulos de memoria EEPROM externa de mayor tamao.
A continuacin, mostramos un sencillo ejemplo para escribir 1024 valores en la
memoria EEPROM de Arduino UNO:
#include
void setup()
{
//usamos un bucle que se ejecutar 1024 veces
//en la posicin i de la memoria EEPROM
//guardaremos el valor de i
for (int i = 0; i < 1024; i++)
if (i <= 255)
{

EEPROM.write(i, i);
}
else
{
EEPROM.write(i, i - 255);
}
}
void loop()
{
}
El ejemplo anterior se ejecutar una sola vez (no hemos usado "loop"). El
bucle for se ejecutar 1024 veces y guardar en cada posicin de la memoria
el valor actual de i, teniendo en cuenta que el valor mximo que se puede
guardar en una posicin de memoria es de 255, por ello cuando llegamos a 255
guardamos el valor de i menos 255.
Leer valores de la memoria EEPROM de Arduino
A continuacin, mostramos un sencillo ejemplo que lee y enva por el puerto
serie de Arduino todos los valores guardados en la memoria EEPROM (de un
Arduino UNO, que tiene 1024 valores):
#include
int posicionActual = 0;
int valorLeido;
void setup(){
Serial.begin(9600);}
void loop()
{
//obtenemos el valor de la posicin "posicionActual" de la EEPROM
valorLeido = EEPROM.read(posicionActual)
//enviamos por el puerto serie la posicin leda
Serial.print(posicionActual);
Serial.print("
");
//enviamos por el puerto serie el valor ledo de la posicin
Serial.print(valorLeido);
Serial.println();
//incrementamos la posicin actual, puesto que el programa se
//ejecuta indefinidamente leeremos todas las posiciones de memoria
EEPROM
posicionActual = posicionActual + 1;
//puesto que el programa se ejecuta indefinidamente
//para evitar que d error cuando nos excedamos de la ltima posicin
//de la EEPROM, cuando lleguemos al mximo 1024 empezaremos de nuevo
if (posicionActual == 1024)
posicionActual = 0;
//esperamos un segundo
delay(1000);
}
En ambos casos usamos la librera EEPROM.h, necesaria para acceso a la
memoria EEPROM de Arduino.

CONCLUSIONES
Los sistemas embebidos estn inmersos en nuestra vida cotidiana,
desde los aparatos domsticos, produccin industrial, etc. Y poseen
caractersticas que les permiten maximizar su hardware para alcanzar
un mayor desempeo. Linux embebido es como cualquier otra
distribucin con la diferencia de que se eliminan procesos y tareas que
no son necesarios en un entorno embebido.
La mayora de los sistemas operativos embebidos requieren soporte a
tiempo real.
Los sistemas operativos embebidos se han convertido en parte
fundamental de nuestra vida cotidiana automatizando tareas especficas
y optimizando los recursos para su realizacin que a las personas nos
costara ms, por lo que su desarrollo es de suma importancia para que
se brinden soluciones eficaces a algunos de los problemas que ataen
nuestra sociedad.

Bibliografa:

https://aprendiendoarduino.wordpress.com/2015/03/29/microcontroladorvs-microprocesador/
http://www.semanticwebbuilder.org.mx/es_mx/swb/Sistemas_Embebidos
_Innovando_hacia_los_Sistemas_Inteligentes_
http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=571
http://synnick.blogspot.com/2012/02/sistemas-embebidos-yejemplos.html

Você também pode gostar