Sunteți pe pagina 1din 69

Arquitectura de Computadores II

Facultad de Ingeniera Universidad de la Repblica

Instituto de Computacin

Temas

Repaso de conceptos Sistemas Embebidos Microcontroladores System on a Chip

Single Board Computers

Sistemas Operativos

Arquitectura de Computadores II

CISC vs RISC

CISC Complex Instruct Set Computers RISC Reduced Instruct Set Computers Caractersticas de CISC

Gran nmero de instrucciones. Instrucciones tiles para el programador.

Arquitectura de Computadores II

Hardvard vs Princeton

Princeton (Von Neumann)

Memoria comn para almacenar el programa y las variables. Permite la ejecucin de cdigo automodificable. Un nico bus entre la CPU y la memoria.

Arquitectura de Computadores II

Harvard vs Princeton

Harvard

Ejecuta las instrucciones en menor cantidad de ciclos por instruccin, pues logra un paralelismo a nivel de instruccin mayor Cada palabra (datos e instruccin) tiene un tamao adecuado.

Arquitectura de Computadores II

Sistemas Embebidos

Arquitectura de Computadores II

Qu es un Sistema Embebido?

Un sistema embebido (S.E) es un sistema computador destinado a una aplicacin en particular. Los sistemas computadores de propsito general tienen muchas aplicaciones, segn el software que se instale.

Arquitectura de Computadores II

Caracteristicas
Es una combinacin de hardware, software y elementos mecnicos. Especficos para una tarea por lo que son optimizados para la misma.

Arquitectura de Computadores II

Caracteristicas

Interactuan con el entorno


Directamente sensando y controlando seales sobre el cable. Comunicndose con otros dispositivos. Interaccion con restricciones de tiempo real. Bajo consumo.

Arquitectura de Computadores II

Los S.E en nuestras vidas

Electrodomsticos, perifricos para computadora, control industrial, telfonos celulares, GPS, routers, mp3, mquinas de fotos, consolas de videojuegos, equipos para medicina, canaleras para TV, DVD, autos, entre otros.

Arquitectura de Computadores II

Mayores exigencias Calidad


Disponibilidad Seguridad (safety)

Confiabilidad
Arquitectura de Computadores II

Formas de implementar S.E.


Basados en microcontroladores Basados en System on chip (SOC) / Single board computers (SBC) Hbrido

Arquitectura de Computadores II

Microcontroladores

Arquitectura de Computadores II

Introduccin

(1/4)

Un microprocesador (P) es una CPU en un solo circuito integrado. Un computador es una CPU, ms memoria y puertos de E/S. Un sistema computador es un computador ms perifricos.
Arquitectura de Computadores II

Introduccin

(2/4)

Un microcontrolador (C) es un sistema autocontenido donde el microprocesador, soporte, memoria y entrada/salida se presentan dentro de un mismo integrado.
Power Reset Clocking Power Reset Control Clock & Timing Control Store Processor RAM

Arquitectura de Computadores II

I/O Ports

Input & Output Pins

Introduccin

(3/4)

Caractersticas

Fciles de utilizar. Bajo costo. Flexibles. Debido a su tamao puede incluirse dentro del dispositivo que gobierna.

Arquitectura de Computadores II

Introduccin

(4/4)

Firmware

Rutinas de software almacenadas en memoria ROM. Software que se encuentra embebido en un dispositivo de hardware. Es una combinacin de software y hardware.

Arquitectura de Computadores II

Tipos de Microcontroladores

Los microcontroladores se pueden clasificar en:


Microcontroladores embebidos de 8 bits. Microcontroladores de 16-32 bits Procesadores de seales digitales (DSP)

Arquitectura de Computadores II

Microcontroladores de 8 bits

(1/3)

Todos los recursos necesarios estn incluidos en el chip. Solo necesitan alimentacin y reloj. Proporcionan control e interfaz con dispositivos externos de manera econmica y programable.

Arquitectura de Computadores II

Microcontroladores de 8 bits

(2/3)

Disponen de:

Reset Reloj Procesador Memoria ROM para el programa e interfaz de programacin Memoria RAM para variables. I/O Pins. Capacidad de debugging Interrupciones I/O analgica Comunicacin serial y/o paralela Interfaz con memoria
Arquitectura de Computadores II

Adicionalmente pueden incluir:


Microcontroladores de 8 bits

(3/3)

Muy poca RAM (decenas de KB). Muy poca velocidad de reloj (decenas de MHZ). Muy utilizados en aplicaciones de control. Bajo costo. Bajo consumo energtico (algunos A).

Arquitectura de Computadores II

Procesador de seales digital


Es una categora relativamente nueva de microprocesadores. El objetivo de los DSP es tomar un seal analgica y calcular una respuesta apropiada. Ejecutan a gran velocidad para permitir el control en tiempo real.

Arquitectura de Computadores II

Fabricantes

Intel

8048 8051 (Intel y Otros) 80186, 80186 y 80386 EX. PIC 68HC11 (Motorola y Toshiba) 683xx AVR

Microchip

Motorola

Atmel

Arquitectura de Computadores II

Registros de E/S

Son los componentes ms utilizados del microcontroladores . Los microcontroladores disponen de registros para controlar los dispositivos de E/S. Espacios

E/S mapeada en memoria. Mapa E/S y mapa de memoria.

Arquitectura de Computadores II

Reset

Permite llevar al microcontrolador a un estado conocido. Inicializando todos los componentes del C. Power on reset (POR). Brown out reset (BOR).

Arquitectura de Computadores II

Reloj del sistema


Los C estn diseados para ejecutar con poco soporte externo para el reloj del sistema. Los Cs corren en el entorno de las decenas de megahetz. Existen diversos mtodos para proporcionarle el reloj al C:

Usando un cristal Resonador cermico Oscilador RC Ninguno.

Arquitectura de Computadores II

Proteccin ante fallas

Watch Dog Timer


Es utilizado para prevenir cadas del software. En entornos con ruido elctrico, puede ocurrir que el PC del C se vea afectado y ste comience a ejecutar en un lugar indeterminado. El circuito WDT se encarga de resetear el C si el registro WD se desborda.

Proteccin ante cadas en la alimentacin.

Arquitectura de Computadores II

Alimentacin

Minimizar el consumo de corriente es un tema a tener en cuenta. Hay que tener en cuenta el consumo:

Del microcontrolador en modo normal.


Depende de la frecuencia y del voltaje proporcionado.

Del microcontrolador en modo sleep. Del los dispositivos conectados a la E/S.


Particular de cada aplicacin. Pueden gestionarse adecuadamente los dispositivos.

Arquitectura de Computadores II

Timers

Se utiliza para trabajar con eventos de tiempo. Contadores: cuentan acontecimientos que suceden en el exterior. Temporizadores: controlan perodos de tiempo.

Arquitectura de Computadores II

E/S Digital

La comunicacin del C con el mundo se da a travs de sus pines de E/S. Estos pines son compartidos con mdulos del C. Pueden configurarse con entrada o salida.

Arquitectura de Computadores II

E/S Analgica

En el mundo las cosas no son solo blancas y negras. Conversin

ADC, es utilizado para procesar las entradas analgicas. El C puede incluir convertidores y comparadores analgicos. DAC, es utilizado para generar salidas analgicas.

Arquitectura de Computadores II

Comunicacin

Serial o paralela. Sncrona o asncrona. Redes de dispositivos.

Arquitectura de Computadores II

Arquitectura

Arquitectura de Computadores II

Desarrollo de software

Herramientas y entornos de desarrollo Programacin Debug

Arquitectura de Computadores II

Herramientas y entornos de desarrollo


(1/4)

Editor Compilador Ensamblador Simulador Emulador Programador

IDE

Arquitectura de Computadores II

Herramientas y entornos de desarrollo


(2/4)

Assembler

Instrucciones assembler. Directivas Debe estar bien comentado

Arquitectura de Computadores II

Herramientas y entornos de desarrollo


(3/4)

Lenguaje de alto nivel


C, C++, Basic, Forth, JavaMe. Proporcionan


Mayor nivel de abstraccin Bibliotecas. Tipos de datos. Variables locales y globales. Estructuras de datos y punteros. Asignacin de memoria para datos. Acceso a registros.

Decrementa el tiempo de desarrollo.

Arquitectura de Computadores II

Herramientas y entornos de desarrollo


(4/4)

Real Time Operating System (RTOS)


Multitasking Scheduling Context Switching Respuestas en tiempo a eventos del mundo. Comunicacin entre procesos. Stack TCP/IP Ejemplos: Salvo, FreeRTOS, C/OS, ...

Arquitectura de Computadores II

Evolucin del hardware embebido:

Cada vez hay ms aplicaciones ya que pueden hacerse dispositivos que:


Consuman menos por transistor Cuesten menos por transistor Sean ms rpidos

Ley de Moore: Cada 2 aos, el doble de transistores


Arquitectura de Computadores II

System on chip (SOC)

Se refiere a integrar todos los componentes de un computador u otro dispositivo electrnico en un chip. La principal diferencia con un C es la memoria disponible. En general, los SOC corren sistemas operativos (S.O) tradicionales.

Arquitectura de Computadores II

Single Board Computers (SBC)

Una SBC es un sistema computacional completo realizado en una sola placa que utiliza un SOC. Un SOC por si solo no puede funcionar, necesita de alimentacin, acondicionamientos de seales, conectores, y algun controlador adicional. Ms pequeas, energticamente ms eficientes, y con mayores posibilidades de E/S que un sistema tradicional.

Arquitectura de Computadores II

Hardware Embebido basado en SBC


(1/2)

La arquitectura de hardware para los sistemas embebidos por lo general difiere a la de los sistemas de escritorio.
ARM, MIPS o PowerPC son muy utilizados por su bajo consumo y buena performance. X86 no es tan frecuente, pero tambin es utilizado. Almacenamiento en flash Tengo que tener en cuenta que los ciclos de borrado son limitados, para alargar la vida til de la memoria. Existen tcnicas para gastarIIde forma Arquitectura de Computadores

Hardware Embebido basado en SBC


(2/2)

Cantidad de RAM limitada (desde unos pocos MB a varias decenas de MB) Velocidad de CPU inferior a sistemas de escritorio. Varios buses de interconexin (I2C, SPI, USB, serial) y puertos de E/S.

Arquitectura de Computadores II

Arquitecturas utilizadas en S.E.

Extraido de: http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Snapshot-of-the-embedded-Linux-market-April-2007/

Arquitectura de Computadores II

SBC FoxBoard G20


(1/3)

Procesador: Atmel AT91SAM9G20 ARM9 CPU Frecuencia de reloj: 400Mhz RAM: 64 MB Flash: 8 MB USB host: 2 USB device: 1 UART: 4 GPIO: 80 A/D: 4ch 10 bits I2C: 2 SPI: 2 Tensin: 5V Corriente: ~70 mA Costo: 139 euros
Arquitectura de Computadores II

SBC FoxBoard G20


(2/3)

Ethernet Conector para pantalla touch screen Serial port (debug) Slot mini-sd RTC 1 Switch y 1 Led

Arquitectura de Computadores II

SBC FoxBoard G20

(3/3)

Sistemas Operativos Soportados:


OpenEmbedded Debian Gentoo OpenWRT

Arquitectura de Computadores II

SBC BeagleBoard C4

(1/3)

Procesador: OMAP3530DCBB72 ARM Cortex-A8 Frecuencia de reloj: 720 MHZ RAM: 256 MB Flash: 256 MB USB host: 1 + 1OTG GPIO: 28 I2C: 1 SPI: 1 Tensin: 5V Corriente:350 mA Costo: 149 dolares

Arquitectura de Computadores II

SBC BeagleBoard C4

(2/3)

Salida HDMI Entrada/Salida audio Salida Super Video DSP Conector JTAG RS232 header Slot SD/MMC Conexin para LCD GPU con soporte para OpenGL
Arquitectura de Computadores II

SBC BeagleBoard C4

(3/3)

Sistemas operativos soportados: Angstrom Symbian Debian Ubuntu Android QNX WinCE Gentoo
Arquitectura de Computadores II

Puntos Fuertes Beagleboard C4


Esta orientada a aplicaciones multimedia donde puede ser sacado provecho al DSP. Posee una cantidad de RAM considerable, lo que posibilita ejecutar un manejador de ventanas (X server). La lnea ARM Cortex AX es utilizada en muchos dispositivos comerciales: Ipad, archos5, pandora, Sony Ericsson Satio. Muy bajo consumo y alto rendimiento. No necesita disipacin mecnica (coolers).
Arquitectura de Computadores II

Puntos Debiles Beagleboard C4


Pocos puertos de E/S. No posee Ethernet onboard. No posee UART No posee Wifi onboard

Arquitectura de Computadores II

Puntos fuertes FoxBoard G20


Muchos puertos de E/S RTC Bajo consumo/No necesita disipacin 2 puertos USB Ethernet onboard Muy adecuada para aplicaciones de control y robtica embebida.

Arquitectura de Computadores II

Puntos debiles FoxBoard G20


Costo Ausencia de DSP Poca memoria Flash No esta diseada para multimedia No posee wifi onboard

Arquitectura de Computadores II

Tendencias en S.O. para embebidos

Extraido de: Arquitectura de Computadores II http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Snapshot-of-the-embedded-Linux-market-April-2007/

GNU/Linux para S.E.

GNU/Linux: Sistema operativo libre compuesto por el kernel (Linux) y herramientas del sistema GNU. El Kernel es el componente del S.O. que nos abstrae del hardware y nos facilita su uso. Actualmente es el sistema operativo de uso general ms utilizado en sistemas embebidos.
Arquitectura de Computadores II

El Kernel Linux

Originalmente no fue pensando como un sistema operativo embebido. Escrito originalmente para la arquitectura IA-32, portado por primera vez a procesadores Motorola. El proceso fue costoso, lo que implic un rediseo de la arquitectura para hacerlo fcilmente portable. Este cambio abri la puerta para ser portado a otras arquitecturas.
Arquitectura de Computadores II

El Kernel Linux

Soporta numerosas arquitecturas (2.6.33): alpha, blackfin, h8300, m32r, microblaze, parisc, score, um, arm, cris, ia64, m68k, mips, powerpc, sh, x86, avr32, frv, m68knommu, mn10300, s390, sparc, xtensa.

Arquitectura de Computadores II

Requerimientos mnimos

Un CPU soportado por gcc y el Kernel Linux.


CPU de 32 bits CPU's sin MMU son tambin soportados mediante el proyecto uClinux. 4 MB RAM

Arquitectura de Computadores II

Ventajas en el uso de GNU/Linux en S.E

Reutilizacin de bibliotecas de software existente. Nos permite centrarnos en dar valor agregado a una solucin y no en reinventar la rueda. Calidad. Uso de lenguajes de programacin de mayor nivel de abstraccin (Java, Python, Lua). Posibilidad de prototipar y debugear en un PC muchos de los componentes del sistema. Brinda portabilidad de mi sistema a otras arquitecturas (independecia tecnolgica).
Arquitectura de Computadores II

Ventajas en el uso de GNU/Linux en S.E


Extensiones para manejo de tiempo real. Mantenibilidad Puedo auditar el cdigo fuente. Libertad de modificar el cdigo fuente. Menor costo en licencias. Acceso ms sencillo al software y a las herramientas. Permite hacer frente a los requerimientos cada vez ms complejos impuestos por el mercado. Herramientas de desarrollo independientes de la plataforma
Arquitectura de Computadores II

Desventajas de GNU/Linux en S.E

Algunos drivers propietarios solo existen para versiones viejas del kernel y el fabricante no publica sus fuentes. Algunos Sistemas Embebidos basados en GNU/Linux toman un fork del kernel vainilla y nunca integran sus cambios. Muchas veces no tengo opcin de que distribucin usar. Puede ocurrir que ni siquiera exista una distribucin (usar Buildroot, OpenEmbedded).

Arquitectura de Computadores II

Linux y el tiempo real

RTOS: S.O con la habilidad de brindar el nivel requerido de servicio en un perodo de tiempo acotado (POSIX 1003.1b) Con el tiempo Linux fue incorporando parches RT, como los timers de alta resolucin. Es raro tener restricciones de tiempo blandas que un Kernel Vanilla no pueda proveer (Latencia de peor caso 1ms). Si se necesita menor latencia usar parches para el Kernel: PREEMPT_RT Ofrece una latencia mxima de 100us
Arquitectura de Computadores II

Estado actual de los S.E

Cada vez se dispone de hardware con mayores prestaciones, que incluso permite ejecutar un S.O de proposito general con RT y seguir siendo econmicamente viable. El mercado le exige ms requerimientos a los dispositivos embebidos.

Arquitectura de Computadores II

Estado actual de los S.E.

Hoy en da los S.E. tienen ms puntos en comn con los sistemas de propsito general que en el pasado. Herramientas de desarrollo de mayor nivel de abstraccin. Reutilizacin de software y perifricos utilizados en sistemas de proposito general Es necesario contar con equipos interdisciplinarios.

Arquitectura de Computadores II

Linux Embebido en nuestras vidas

Arquitectura de Computadores II

Componentes de Software

Cross-toolchain: Compilador que corre en la mquina de desarrollo, pero genera cdigo para el sistema embebido. Bootloader: Iniciado por el hardware. Responsable de la inicializacin bsica, cargar y ejecutar el kernel. Kernel Linux: Contiene el manejo de los procesos, memoria, red, drivers y provee servicios para las aplicaciones de usuario. Biblioteca de C: Interfaz entre el Kernel y las aplicaciones (glibc, Clibc). Bibliotecas y aplicaciones: reutilizadas o desarrolladas por nosotros.
Arquitectura de Computadores II

Bibliografa

http://www.linuxfordevices.com/ http://free-electrons.com/ http://beagleboard.org http://eshop.acmesystems.it Embedded Linux System Design and Development (Auerbach, 2006)

Arquitectura de Computadores II

Preguntas

Arquitectura de Computadores II

S-ar putea să vă placă și