Arquitectura de Computadores II Facultad de Ingeniería Universidad de la República

Instituto de Computación

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 Características de CISC  

Gran número de instrucciones. Instrucciones útiles para el programador.

Arquitectura de Computadores II

Hardvard vs Princeton 

Princeton (Von Neumann) 





Memoria común para almacenar el programa y las variables. Permite la ejecución de código 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 instrucción, pues logra un paralelismo a nivel de instrucción mayor Cada palabra (datos e instrucción) tiene un tamaño 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 aplicación en particular. Los sistemas computadores de propósito general tienen muchas aplicaciones, según el software que se instale.

Arquitectura de Computadores II

Caracteristicas Es una combinación de hardware, software y elementos mecánicos.  Específicos para una tarea por lo que son optimizados para la misma. 

Arquitectura de Computadores II

Caracteristicas 

Interactuan con el entorno Directamente sensando y controlando señales sobre el cable.  Comunicándose con otros dispositivos. Interaccion con restricciones de tiempo real. Bajo consumo. 

 

Arquitectura de Computadores II

Los S.E en nuestras vidas 

Electrodomésticos, periféricos para computadora, control industrial, teléfonos celulares, GPS, routers, mp3, máquinas 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) Híbrido

Arquitectura de Computadores II

Microcontroladores

Arquitectura de Computadores II

Introducción 





(1/4)

Un microprocesador (µP) es una CPU en un solo circuito integrado. Un computador es una CPU, más memoria y puertos de E/S. Un sistema computador es un computador más periféricos. Arquitectura de Computadores II

Introducción

(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

Reset Control

Processor

Clocking

Clock & Timing

RAM

I/O Ports

Control Store

Power

Arquitectura de Computadores II

Input & Output Pins

Introducción 

(3/4)

Características    

Fáciles de utilizar. Bajo costo. Flexibles. Debido a su tamaño puede incluirse dentro del dispositivo que gobierna.

Arquitectura de Computadores II

Introducción 

(4/4)

Firmware 





Rutinas de software almacenadas en memoria ROM. Software que se encuentra embebido en un dispositivo de hardware. Es una combinación 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 señales digitales (DSP)

Arquitectura de Computadores II

Microcontroladores de 8 bits   

Todos los recursos necesarios están incluidos en el chip. Solo necesitan alimentación y reloj. Proporcionan control e interfaz con dispositivos externos de manera económica y programable.

Arquitectura de Computadores II

(1/3)

Microcontroladores de 8 bits 

Disponen de:      



Reset Reloj Procesador Memoria ROM para el programa e interfaz de programación Memoria RAM para variables. I/O Pins.

Adicionalmente pueden incluir:     

Capacidad de debugging Interrupciones I/O analógica Comunicación serial y/o paralela Interfaz con memoria Arquitectura de Computadores II

(2/3)

Microcontroladores de 8 bits     

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

Arquitectura de Computadores II

(3/3)

Procesador de señales digital  



Es una categoría relativamente nueva de microprocesadores. El objetivo de los DSP es tomar un señal analógica y calcular una respuesta apropiada. Ejecutan a gran velocidad para permitir el control en tiempo real.

Arquitectura de Computadores II

Fabricantes 

Intel   



Microchip 



PIC

Motorola  



8048 8051 (Intel y Otros) 80186, 80186 y 80386 EX.

68HC11 (Motorola y Toshiba) 683xx

Atmel 

AVR

Arquitectura de Computadores II

Registros de E/S  



Son los componentes más 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 están diseñados para ejecutar con poco soporte externo para el reloj del sistema. Los µCs corren en el entorno de las decenas de megahetz. Existen diversos métodos para proporcionarle el reloj al µC:    

Usando un cristal Resonador cerámico Oscilador RC Ninguno.

Arquitectura de Computadores II

Protección ante fallas 

Watch Dog Timer  





Es utilizado para prevenir caídas del software. En entornos con ruido eléctrico, 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.

Protección ante caídas en la alimentación.

Arquitectura de Computadores II

Alimentación  

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 aplicación. • 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 períodos de tiempo.

Arquitectura de Computadores II

E/S Digital   

La comunicación del µC con el mundo se da a través de sus pines de E/S. Estos pines son compartidos con módulos del µC. Pueden configurarse con entrada o salida.

Arquitectura de Computadores II

E/S Analógica  

En el mundo las cosas no son solo blancas y negras. Conversión 



ADC, es utilizado para procesar las entradas analógicas. El µC puede incluir convertidores y comparadores analógicos. DAC, es utilizado para generar salidas analógicas.

Arquitectura de Computadores II

Comunicación   

Serial o paralela. Síncrona o asíncrona. Redes de dispositivos.

Arquitectura de Computadores II

Arquitectura

Arquitectura de Computadores II

Desarrollo de software   

Herramientas y entornos de desarrollo Programación 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 abstracción Bibliotecas. Tipos de datos. Variables locales y globales. Estructuras de datos y punteros. Asignación 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. Comunicación entre procesos. Stack TCP/IP Ejemplos: Salvo, FreeRTOS, µC/OS, ...

Arquitectura de Computadores II

Evolución del hardware embebido: 

Cada vez hay más aplicaciones ya que pueden hacerse dispositivos que:   



Consuman menos por transistor Cuesten menos por transistor Sean más rápidos

Ley de Moore: Cada 2 años, 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 electrónico 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 alimentación, acondicionamientos de señales, conectores, y algun controlador adicional. Más pequeñas, energéticamente más 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 también 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 técnicas para “gastar”IIde 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 interconexión (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



Tensión: 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



Tensión: 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 Conexión 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 línea ARM Cortex AX es utilizada en muchos dispositivos comerciales: Ipad, archos5, pandora, Sony Ericsson Satio. Muy bajo consumo y alto rendimiento. No necesita disipación mecánica (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 disipación 2 puertos USB Ethernet onboard Muy adecuada para aplicaciones de control y robótica embebida.

Arquitectura de Computadores II

Puntos debiles FoxBoard G20     

Costo Ausencia de DSP Poca memoria Flash No esta diseñada 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 más 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 rediseño de la arquitectura para hacerlo fácilmente 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 mínimos 

Un CPU soportado por gcc y el Kernel Linux.  



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

Arquitectura de Computadores II

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

  

Reutilización de bibliotecas de software existente.  Nos permite centrarnos en dar valor agregado a una solución y no en “reinventar la rueda”.  Calidad. Uso de lenguajes de programación de mayor nivel de abstracción (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 tecnológica). Arquitectura de Computadores II

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

Extensiones para manejo de tiempo real. Mantenibilidad Puedo auditar el código fuente. Libertad de modificar el código fuente. Menor costo en licencias. Acceso más sencillo al software y a las herramientas. Permite hacer frente a los requerimientos cada vez más 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 opción de que distribución usar.  Puede ocurrir que ni siquiera exista una distribución (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 período de tiempo acotado (POSIX 1003.1b) Con el tiempo Linux fue incorporando parches RT, como los timers de alta resolución. 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 máxima 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 económicamente viable. El mercado le exige más requerimientos a los dispositivos embebidos.

Arquitectura de Computadores II

Estado actual de los S.E. 

  

Hoy en día los S.E. tienen más puntos en común con los sistemas de propósito general que en el pasado. Herramientas de desarrollo de mayor nivel de abstracción. Reutilización de software y periféricos 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 máquina de desarrollo, pero genera código para el sistema embebido. Bootloader: Iniciado por el hardware. Responsable de la inicialización básica, 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

Bibliografía     

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