ImplementaciImplementacióónn dede MASMAS enen SistemasSistemas EmbebidosEmbebidos

Francisco Sivianes Castillo ÍÍndicendice

 Definiendo algunos términos

 Nuestro escenario de trabajo

 Niveles de sistemas de procesamiento

 Pruebas

 Conclusiones

02/07/2009 MAS en Sistemas Embebidos 2 DefiniendoDefiniendo algunosalgunos ttéérminosrminos

 Microprocesador – (RAE) 1. m. Fís. Circuito constituido por millares de transistores integrados en un chip, que realiza alguna determinada función de los computadores electrónicos digitales. – (María Moliner) m. Inform. Circuito Integrado que constituye la unidad central de procesamiento de un microordenador. • Microordenador m. Inform. Ordenador de pequeño tamaño que contiene un microprocesador.  Microcontrolador – (RAE) No existe entrada para este término. – (María Moliner) No existe entrada para este término.

02/07/2009 MAS en Sistemas Embebidos 3 DefiniendoDefiniendo algunosalgunos ttéérminosrminos

 Microprocesador – El microprocesador está unido al concepto lógico de CPU. Una CPU puede estar soportada por uno o varios microprocesadores, y un microprocesador puede soportar una o varias CPU. Un núcleo suele referirse a una porción del procesador que realiza todas las actividades de una CPU real. – El microprocesador está compuesto básicamente por: varios registros; una Unidad de control, una Unidad aritmético-lógica; y dependiendo del procesador, puede contener una unidad en coma flotante.  Microcontrolador – Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S.

02/07/2009 MAS en Sistemas Embebidos 4 DefiniendoDefiniendo algunosalgunos ttéérminosrminos

•Integrated DDR2 DRAM Controller with AMD Memory Optimizer Technology • A high-bandwidth, low-latency integrated DDR2 memory controller •Supports PC2-8500 (DDR2-1066); PC2-6400 (DDR2-800), PC2-5300 (DDR2-667), PC2-4200 (DDR2-533) or PC2-3200 (DDR2-400) SDRAM unbuffered DIMMs •Support for 64-bit DDR2 SDRAM memory •Up to 17.1GB/s memory bandwidth •Benefit: Quick access to system memory for better performance.

02/07/2009 MAS en Sistemas Embebidos 5 DefiniendoDefiniendo algunosalgunos ttéérminosrminos

 Embebido – (RAE). No aparece ninguna entrada – (María Moliner). Embutido en otra cosa.

02/07/2009 MAS en Sistemas Embebidos 6 DefiniendoDefiniendo algunosalgunos ttéérminosrminos

02/07/2009 MAS en Sistemas Embebidos 7 DefiniendoDefiniendo algunosalgunos ttéérminosrminos

Para Windows CE:

02/07/2009 MAS en Sistemas Embebidos 8 DefiniendoDefiniendo algunosalgunos ttéérminosrminos

 Sistema Hardware con recursos limitados

 Sistema Operativo empotrados

02/07/2009 MAS en Sistemas Embebidos 9 NuestroNuestro escenarioescenario dede trabajotrabajo

02/07/2009 MAS en Sistemas Embebidos 10 ImplementaciImplementacióónn MASMAS

 Microsoft Framework (Windows) – Visual C# – Visual Basic (Gambas – )  Java (Multiplataforma) – JADE

02/07/2009 MAS en Sistemas Embebidos 11 NivelesNiveles dede SistemasSistemas dede procesamientoprocesamiento

 Nivel 1. – Sensores / Actuadores  Nivel 2. – Equipos Embebidos móviles  Nivel 3. – Equipos Embebidos fijos  Nivel 4. – PC Control

02/07/2009 MAS en Sistemas Embebidos 12 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 11 ((SensoresSensores –– Actuadores)Actuadores)

 Recursos de computación muy limitados: – CPU • 8bits/16bits – MEMORIA • Flash 128Kbytes • EEPROM 4Kbytes • SRAM 4KBytes – Frecuencias • 8 MHz / 16MHz / 24 MHz

02/07/2009 MAS en Sistemas Embebidos 13 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 11 ((SensoresSensores –– Actuadores)Actuadores)

02/07/2009 MAS en Sistemas Embebidos 14 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 11 (Entornos(Entornos dede ProgramaciProgramacióón)n)

 AVR Studio 4 SDK – Compiladores cruzados  AVR 32 Studio 2.2 – IDE para construir y depurar código C/C++ – Está construido sobre Eclipse .

02/07/2009 MAS en Sistemas Embebidos 15 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 11 (Sistemas(Sistemas Operativos)Operativos)

 Sistemas Operativos de Motas – Bertha – Nut/OS – Contiki – CORMOS – eCos – EYESOS – MagnetOS – MANTIS – TinyOS – t-Kernel – LiteOS

02/07/2009 MAS en Sistemas Embebidos 16 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 11 (Lenguajes(Lenguajes dede ProgramaciProgramacióón)n)

 nesC: Network Embedded Systems C , y está directamente relacionado con TinyOS.

 Protothreads: específicamente diseñado para la programación concurrente, provee hilos de dos como base de funcionamiento.

 SNACK: facilita el diseño de componentes para redes de sensores.  c@t: iniciales que indican computación en un punto del espacio en el tiempo (Computation at a point in space (@) Time ).

 DCL: Lenguaje de composición distribuido (Distributed Compositional Language).

 galsC: diseñado para ser usado en TinyGALS, es un lenguaje programado mediante el modelo orientado a tarea, fácil de depurar, permite concurrencia y es compatible con los módulos nesc de TinyOS.  SQTL(Sensor Query and Tasking Language): como su nombre indica es una interesante herramienta para realizar consultas sobre redes de motas.

02/07/2009 MAS en Sistemas Embebidos 17 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 11 (Nodo(Nodo SensorSensor))

02/07/2009 MAS en Sistemas Embebidos 18 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 11 ((DispDisp.. UltimaUltima generacigeneracióón)n)

 SunSPOT – Hardware • Cada Sun SPOT tiene un core a 180MHz 32- bit ARM920T con 512K RAM y 4M Flash. – Software (Entorno de desarrollo) • Squawk. Una implementación de Java ME, que soporta CLDC 1.1 y MIDP 1.0, más funcionalidad básica del SO. Todos los drivers de dispositivos están también escritas en Java.

02/07/2009 MAS en Sistemas Embebidos 19 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 22 (Equipos(Equipos EmbebidosEmbebidos MMóóviles)viles)

 Recursos de computación “limitados”: – CPU • 32bits – MEMORIA • ROM 128/256/512MB • RAM 256/512/1024MB • Adaptadores para memoria flash – Frecuencias • 300 - 500 MHz

02/07/2009 MAS en Sistemas Embebidos 20 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 22 (Equipos(Equipos EmbebidosEmbebidos MMóóviles)viles)

 HTC Magic – Processor: Qualcomm MSM7201, a 528 MHz – Platform: Android – Memory: ROM: 512 MB RAM: 192 MB – Display: 3.2-inch TFT-LCD flat touch- sensitive screen with 320x480 HVGA resolution

02/07/2009 MAS en Sistemas Embebidos 21 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 22 ((S.OS.O.. -- SDK)SDK)

 Microsoft – Windows Mobile 6.5 (SDK)  Android – Android 1.5 SDK, Release 2  Apple – Iphone Developer program  Otros – Blackberry

02/07/2009 MAS en Sistemas Embebidos 22 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 22 (Sistema(Sistema dede Desarrollo)Desarrollo)

 Android – Android es una pila sotfware para dispositivos moviles que incluye un sistema operativo, middleware y aplicaciones patrones. Android SDK proporciona las herramientas y APIs necesarios para comenzar a realizar aplicaciones en las plataformas Android usando Java como lenguaje de programación.

02/07/2009 MAS en Sistemas Embebidos 23 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 22 (Sistema(Sistema dede Desarrollo)Desarrollo)

02/07/2009 MAS en Sistemas Embebidos 24 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 33 (Equipos(Equipos EmbebidosEmbebidos Fijos)Fijos)

 Recursos de computación medio: – CPU • 32bits – MEMORIA • ROM 512MB • RAM 256/512/1024MB/2048MB • Adaptadores para memoria flash – Frecuencias • 500 MHz – 1GHz

02/07/2009 MAS en Sistemas Embebidos 25 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 33 (Equipos(Equipos EmbebidosEmbebidos Fijos)Fijos)

 CPU:433 (LX700) ó 500 MHz (LX800) AMD Geode LX CPU - cache = 64KB instruction + 64KB data + 128KB L2.  DRAM:128 ó 256 MB DDR SDRAM (333 or 400 MHz clock).  Sistema Operativo y Aplicaciones almacenadas en tarjetas CompactFlash.

02/07/2009 MAS en Sistemas Embebidos 26 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 33 (Equipos(Equipos EmbebidosEmbebidos Fijos)Fijos)

http://www.pcengines.ch/alix.htm 02/07/2009 MAS en Sistemas Embebidos 27 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 33 (Sistemas(Sistemas Operativos)Operativos)

 Software: Sistemas Operativos  FreeBSD – Fr eeBSD – Mono wall (FreeBSD based) – pfSense (FreeBSD based) – STYX (FreeBSD based Secure Internet Appliances, in German)  Linux – iMedia ALIX Linux - highly recommended for a quick start - fits nicely on a 512MB CF card. – DD-WRT – OS 3 Gadgets – fli4l one disk (in German) – LEAF Linux Embedded Appliance Firewall – Meshlium (wireless mesh system based on Voyage) – OpenWRT (working with Kamikaze version) – Voyage Linux (slimmed down ) – Linux (customer reported success with 8.04). – Zeroshell  NetBSD – NetBSD (versions 4, 5)  OpenBSD – OpenBSD (X11 and audio support in 4.3-current) – Fla shdist OpenBSD installer  Commercial – Ikarus OS – Emb ed-it (OpenBSD based) – XP – Mikrotik RouterOS

02/07/2009 MAS en Sistemas Embebidos 28 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 33 (Equipos(Equipos EmbebidosEmbebidos Fijos)Fijos)

02/07/2009 MAS en Sistemas Embebidos 29 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 33 (Equipos(Equipos EmbebidosEmbebidos Fijos)Fijos)

02/07/2009 MAS en Sistemas Embebidos 30 NivelesNiveles segsegúúnn recursosrecursos dede computacicomputacióónn NivelNivel 33 (Entornos(Entornos dede ProgramaciProgramacióón)n)

 Windows XP SP3 – Visual Studio 2005 – Visual Basic 2005 – Visual C# 2005  9.04 Desktop – Gambas • Código Adaptado Visual Basic  Java – JADE

02/07/2009 MAS en Sistemas Embebidos 31 ConclusionesConclusiones

 La evolución hard – soft es muy rápida.  Existen muchas plataformas.

 Aplicar un sistema multiagente no es fácil.  ¿Qué paradigma de programación MAS podemos utilizar en cada caso?

02/07/2009 MAS en Sistemas Embebidos 32 MultiagentesMultiagentes enen SistemasSistemas EmbebidosEmbebidos

Francisco Sivianes Castillo