Iniciando con Intel Galileo

Resumen del contenido


  En la presente entrada se realiza una introducción hacia Intel Galileo de primera generación, exponiendo las características básicas, formas de programación, estructura de hardware, sistemas operativos soportados, entre otros.


1. Sobre Intel Galileo

  Intel Galileo es una placa basada en el procesador Intel® Quark SoC X1000 con una arquitectura de 32-bit. Es la primera placa basada en la arquitectura Intel® diseñada para ser pin-compatible tanto en hardware como en software con los shields Arduino UNO. Posee 12 pines digitales de entrada/salida (numerados del 2 al 13), los pines digitales AREF y GND, 6 entradas analógicas, pines hembra para proveer alimentación (5V – 3.3V – GND), pines ICSP y los pines 0 y 1 del puerto UART.
  La tensión principal en la que opera Galileo es 3.3V sin embargo, un jumper en la placa habilita 5V (ver figura 1, indicador 20). Una de las características más llamativas de la placa es su compatibilidad con Arduino IDE permitiendo combinar la potencia de Galileo con la simpleza de Arduino.

2. Características de Hardware 

  En Fig. 1 se expone la placa Intel® Galileo con una señalización y explicación (tabla) de sus componentes de hardware, dentro de los cuales destacan la memoria RAM DDR3 de 256 MB, el puerto ethernet de 10/100, un slot para micro SD de hasta 32 GB, conexión SPI, un puerto serie RS-232 (ficha Jack 3.5 mm) y puertos USB Host y USB Client. 
 

Fig. 1: Señalización de elementos de Hardware de Intel Galileo


NúmeroComponenteDescripción
1Puerto EthernetConector 10/100 Ethernet
2Puerto serial RS-232Jack 3.5 mm de 3 pines (Tx, Rx, GND)
3MAX-3232
Transceptor RS-232
4USB 2.0 ClienteConector USB Cliente 2.0 tipo B. Uso típico, programación.
5USB 2.0 HostConector USB Host 2.0 tipo AB, soporta hasta 128 nodos.
6SPI FlashMemoria Flash SPI de 8MB usado para Firmware o bootloader.
7Puerto de programación
SPI Flash
Header de 7 pines para la programación por medio de la interface serial (SPI). 4 MHz para los shield de Arduino y soporta hasta 25 MHz.
8Interface ShieldCompatible con Shields de Arduino UNO Rev 3.
9ADC
Conversor Analógico Digital, AD7298.
10Intel® Quark SoC X1000
Procesador de 32-bit, 400 MHz con el set de instrucciones Pentium, compatible con arquitectura ISA.
·         16 Kbyte L1 cache
·         512 KBytes de SRAM embebida
·         RTC integrado (con pila de 3V externa)
11ICSPHeader de 6 pines para programación serial ICSP.
12RAM DDR3 de 256 MB256 Mbyte de RAM, habilitada por default por el Firmware.
13Interface ArduinoCompatible con Arduino UNO R3.
14Puerto de Debug JTAGHeader JTAG de 10 pines.
15Expansor GPIO
PWM provisto por un expansor I2C.
16Slot micro SDSoporta SD de hasta 32 GB.
175V - AlimentaciónEntrada de 5V y hasta 3ª (continua). Se recomienda utilizar el transformador provisto por el proveedor de la placa.
18Regulador de tensiónGenera 3.3V. Máxima corriente de 800 mA.
19Eth. PHYTransceptor de la capa física de ethernet.
205V-3V JumperJumper para cambiar la tensión de 5V a 3.3V.
Parte traseraConector mini-PCI-ExpressEn la parte trasera posee un conector mini PCI-Express.

3. Diagrama de conexión

  En Fig. 2 se expone un diagrama de la interconexión de los bloques más significativos de la placa Intel® Galileo. Cabe destacar que el diagrama es a modo informativo e ilustrativo, es decir no se muestra el esquemático real de la placa, sino un esquema a modo de interpretación general. Para descargar el esquemático de la placa, haga click aquí.
Fig. 2: Diagrama de conexión Intel Galileo


4. Posibilidades de programación

  Hay varios programas y lenguajes con los cuales se puede programar la placa Galileo, esto va a depender mayormente de la versión del Firmware así como también de la finalidad que tenga el programa (si está destinado a páginas y servidores web, a sistemas embebidos, etc). Se puede programar en Java, Java Script, Node.JS, C, C++, Python, entre otros.
  Existen IDEs que facilitan la compilación de los códigos realizados en el lenguaje de programación elegido. Algunos de los IDEs disponibles son Intel-System-Studio-IOT-Edition, Intel-System-Studio-for-Microcontrollers, Intel XDK y Arduino. A continuación, se explican brevemente las características de cada uno de los IDEs.


  Intel-System-Studio-IOT-Edition: Este IDE basado en Eclipse para desarrollar en C, C++ y Java viene con la capacidad incorporada de integrar sensores a través de las bibliotecas UPM y MRAA. Se pueden obtener numerosas plantillas y otras herramientas para iniciar proyectos. Es ideal para proyectos dedicados a sistemas embebidos. 

  Intel-System-Studio-for-Microcontroller: Para usuarios más avanzados, este IDE está diseñado específicamente para habilitar a los desarrolladores de microcontroladores Intel® a diseñar sistemas inteligentes y rápidos. Tiene la capacidad de optimizar el código fuente para la eficiencia de energía y recursos del sistema. 

  Intel XDK: IDE desarrollado para la programación en HTML 5, JavaScript, Node.JS. Permite la creación de aplicaciones web y aplicación móviles ya sea para Android, iOS y/o Windows. Ideal para la programación en los lenguajes antes mencionados y para la creación de servidores web así como aplicaciones móviles o web. 

  Arduino: IDE basado en el entorno de processing y lenguaje de programación basado en Wiring, ideal para usuarios hobbistas que conocen Arduino pero prefieren la potencia que Galileo brinda y también para usuarios que están comenzando en el mundo de la programación y la creación de sistemas embebidos. No se recomienda para proyectos grandes y/o en los cuáles se requiera una optimización de recursos.  

5. Sistemas Operativos soportados

  Galileo está diseñada para correr dos sistemas operativos separados. El primero es una imagen de 8 MB que está situada en la memoria flash (también referenciada como la versión SPI-flash), que contiene los elementos básicos para correr programas de Arduino. Si se ejecuta un Sketch, no es posible bootear un sistema operativo desde la tarjeta SD.
  Por otra parte, en la tarjeta SD se pueden montar sistemas operativos diseñados para ser ejecutados por el procesador de Galileo (Quark SoC X1000, con arquitectura x86). Algunos de los sistemas disponibles son los siguientes.


  Linux Poky i585: Es una distribución de Linux que pertenece al proyecto YOCTO, de código abierto. La versión que ofrece Intel contiene las librerías UPM y MRAA para la programación a nivel de pines de la placa Galileo, así como también las librerías de Python, entre otras. Es una buena opción para la implementación de sistemas embebidos. 

  Linux Debian: Es la conocida distribución Debian, adaptada para el procesador de arquitectura x86 que contiene la placa Galileo. Se la suele utilizar con frecuencia para la creación de servidores web debido a su fiabilidad. Esta distribución no contiene las librerías MRAA y UPM, pero pueden ser instaladas. 

  Tiny Core Linux: No es una distribución oficial de Intel. Tiny Core Linux es un software libre de código abierto, bajo la licencia GNU GPLv2. Es una buena opción ya que posee bastante soporte, acompañado de más de 3200 extensiones (librerías, aplicaciones, etc), detalle que escapa a las distribuciones antes mencionadas ya que Intel está quitando soporte a Galileo primera generación. 

  FreeRTOS: Es posible ejecutar un RTOS en Galileo. Esto brinda independencia de cualquier sistema operativo (como los antes mencionados) y brinda la libertad de ejecutar sólo las acciones que el programador desee. Para más información, hacer click aquí.  

1 comentario: