Placas basadas en ARM compactas, potentes, eficientes y rentables ofrecen opciones atractivas de hardware
Colaboración de Editores de DigiKey de América del Norte
2016-06-21
¿Cuál es la competencia de su núcleo? A simple vista, esta pregunta, que se formula pocas veces, podría parecer sencilla; sin embargo, su respuesta podría determinar la diferencia entre el fracaso y el éxito del mercado de su diseño. Dado que los chips se vuelven cada vez más integrados y mercantilizados, y las arquitecturas en las que están basadas se estandarizan más y más, puede dejar de tener sentido (si alguna vez lo tuvo) dedicar dólares, horas y personal de desarrollo precioso para diseñar su propia placa y otro hardware alrededor de ellos, en lugar de enfocar sus recursos en el software diferenciado de manera más fácil que se ejecuta en ese hardware.
Si ha decidido estandarizar una implementación del sistema basado en ARM®, las diversas opciones de la placa de Raspberry PI Foundation brindan una alternativa atractiva para el desarrollo de su propio hardware, especialmente para volúmenes de producción simples. Su entusiasta adopción a nivel mundial, junto a sus opciones de fuente múltiples, llevó a una sólida disponibilidad y precios rentables. Las variantes de las placas basadas en generaciones con varios núcleos de CPU están disponibles, además presentan dimensiones y pesos diferentes, especificaciones de consumo de energía, velocidades de reloj, conectividad, memoria y otras asignaciones periféricas. Los conectores y los protocolos de software del HAT (Hardware conectado en la parte superior) estandarizado de las placas brindan soporte de expansión periférica adicional, así como depuración y otro soporte de desarrollo. Además, cuando se pretenden volúmenes de envío del sistema incrementados, tiene sentido fiscal para usted hacerse cargo de la producción del hardware, las especificaciones de código abierto de las placas hacen que sea una transición sencilla.
La siguiente tabla brinda un resumen de las cuatro opciones de la placa Raspberry Pi abordadas con mayor detalle en el resto de este artículo. Dado que el rendimiento del procesador y otras capacidades serán un criterio principal (aunque no sea el único) de selección entre ellas, el artículo concluirá con las muestras del código de referencia y otra guía de evaluación.
| Modelo A+ de Raspberry Pi | Modelo B+ de Raspberry Pi* | Modelo B de Raspberry Pi 2 | Modelo B de Raspberry Pi 3 | |
|---|---|---|---|---|
| SoC | Broadcom BCM2835 | Broadcom BCM2836 | Broadcom BCM2837 | |
| CPU | ARM1176JZF-S de un solo núcleo (32 bits) de 700 MHz | ARM Cortex-A7 de cuatro núcleos (32 bits) de 900 MHz | ARM Cortex-A53 de cuatro núcleos de 64 bits y 1.2 GHz | |
| Memoria del sistema (compartida con el búfer de marco de GPU) |
256 megabytes | 512 megabytes | 1 gigabyte | |
| 2 puertos USB | 1 (de BMC2835) | 4 (de concentrador IC separado de múltiples puertos) | ||
| Red integrada | Ninguno | Ethernet de cable de 10/100 Mbps a través de un adaptador USB integrado | Ethernet de 10/100 Mbps Ethernet, Wi-Fi 802.11n, Bluetooth 4.1 | |
| Potencia de salida | 200 mA (1 W) | 600 mA (3 W) | 800 mA (4 W) | |
| Tamaño | 2,56 in x 2,22 in | 3,37 in x 2,224 in | ||
| Peso | 0.8 oz | 1.6 oz | ||
*Artículo antiguo
Tabla 1: Comparación de cuatro opciones de Raspberry Pi que muestran algunas opciones
Todas las cuatro tablas anteriores cuentan con las siguientes funciones en común:
- Entrada de video a través de un conector de interfaz de cámara MIPI CSI de 15 clavijas
- Dos opciones de salida de video HDMI (1.3 y 1.4) y video compuesto analógico (3,5 mm TRRS jack)
- Entrada de audio digitaI2S
- Tres opciones de salida de audio HDMI y I2S y analógico (3,5 mm TRRS jack)
- Almacenamiento no volátil a través de ranura Micro-SDHC
- 17 clavijas de entrada y salida de uso general, más el bus HAT ID
- Interfaz de consola a través de cable micro-USB o cable serial con conector de energía opcional GPIO
Raspberry Pi ("1")
El modelo A+ mostrado en este artículo (Figura 1) es un sucesor de costo reducido y tamaño reducido del modelo A, que había sido una variante de costo reducido (con otras funciones) del modelo B original. Las dimensiones del modelo A+, de 2,56 in x 2,22 in (65 mm x 56,5 mm), corresponden a las de las tarjetas de expansión adicional del HAT (Hardware conectado en la parte superior), las que son compatibles con las cuatro alternativas de placas de este artículo. Esta variante de placa especial incluye la mínima cantidad de SDRAM (256 megabytes) de cualquiera de las cuatro placas, junto con la oferta de un solo conector USB y sin soporte de red integrado (aunque ambos pueden ampliarse a través de periféricos basados en USB o HAT).
La otra opción Raspberry Pi "1" abordada aquí es el modelo B+ (este modelo ahora es antiguo, pero se abordará para fines de comparación con los otros modelos disponibles). El espacio de su placa de sistema, 3,37 in x 2,224 in (85,6 mm x 56,5 mm), es más grande que el del modelo A+ (e idéntico al de los productos Raspberry Pi 2 y Raspberry Pi 3 que se tratarán más adelante). Este espacio real ampliado va a un buen uso, con doble cantidad de memoria de sistema de 512 megabytes, cuádruple cantidad de puertos USB y soporte integrado de Ethernet con cable de 10/100 Mbps.
Aunque la CPU ARM11 de un solo núcleo de 700 MHz puede parecer interesante en la era moderna de los teléfonos inteligentes basados en una CPU de diez núcleos, tenga en cuenta que esta misma CPU brindó "bastante" potencia al iPhone® original de Apple y a su sucesor iPhone 3G. Si sus necesidades de rendimiento son más modestas, el Broadcom BCM2835 puede ser suficiente, lo que resulta en un menor consumo de energía que la opción de la placa del modelo A+ especialmente atractivo.


Figura 1: El diseño original Raspberry Pi está basado en el sistema en chip (SoC) BCM2835 de Broadcom, que integra una CPU ARM11 de un solo núcleo de 700 MHz. Viene en dos opciones de factor de forma (y conjunto de características): el modelo A+ más pequeño (parte superior) y el modelo B+ más grande (parte inferior). (Imágenes cortesía de Seeed Technology)
Raspberry Pi 2
El modelo B de Raspberry Pi 2, introducido el año después del despliegue del modelo A+ y el modelo B+ de Raspberry Pi, conserva las dimensiones de su antecesor más grande y es notable en dos aspectos clave desde una perspectiva de un conjunto de características evolutivas. En primer lugar, duplica la cantidad de la memoria del sistema frente al modelo B+ (y cuadriplica la asignación del modelo A+ SDRAM) a 1 gigabyte. En segundo lugar, e incluso de manera más significativa, migra de un BCM2835 a un BCM2836 de Broadcom, lo que se traduce en una elevación de velocidad de reloj de CPU de 200 MHz y una evolución de ARM11 de un solo núcleo a un ARM Cortex®-A7 de cuatro núcleos.
La GPU sigue siendo la misma, lo que significa que la Raspberry Pi 2 no controlará necesariamente velocidades más altas de marcos de videos y gráficos (salvo que la falta de "músculo" de procesamiento suficiente haya sido el obstáculo en el pasado). No obstante, hablando del "músculo" de procesamiento, esta vez la actualización de la CPU puede significar mejoras significativas en las velocidades del tiempo de ejecución de la aplicación, por razones que abordaré con mayor detalle en breve. Asimismo, repitiendo lo que mencioné anteriormente, no subestime automáticamente una CPU de 32 bits y cuatro núcleos incluso cuando los sucesores de 64 bits se encuentren cada vez más hasta en los teléfonos inteligentes más básicos. Después de todo, una implementación de dos núcleos con 800 MHz del ARM Cortex-A7 se usó en el iPhone 4S.

Figura 2: El modelo B de Raspberry Pi 2 conserva las dimensiones de su predecesor el modelo B+ de Raspberry Pi, pero actualiza el procesador de la aplicación a un Broadcom BCM2836 que contiene una CPU Cortex-A7 de cuatro núcleos y 900 MHz. (Imagen cortesía de Seeed Technology)
Raspberry Pi 3
Siguiendo los pasos de su precursor Raspberry Pi 2, que se introdujo un año después, elmodelo B de Raspberry Pi 3 evoluciona el procesador de la aplicación de Broadcom de BCM2836 a BCM2837, lo que se traduce en una evolución de un ARM Cortex-A7 de cuatro núcleos con 900 MHz y una CPU de 32 bits, a un ARM Cortex-A53 de cuatro núcleos de 1.2 GHz con capacidad de 64 bits. El núcleo de GPU dentro de BCM2837, VideoCore IV de Broadcom, sigue sin cambios funcionales, pero su velocidad del reloj se ha incrementado a 300 MHz para el procesamiento de gráficos 3D y a 400 MHz para el procesamiento de videos. El aumento del último rendimiento permite una codificación y decodificación completa para 1080 p 60 Hz de contenido de alto perfil de H.264 (MPEG-4 AVC). La mayor importancia de la GPU y, por tanto, su incremento de velocidad de reloj en esta generación de placas y SoC, se abordará más adelante.

Figura 3: Además, la Raspberry Pi 3 amplía la compatibilidad del factor de forma de sus predecesores, pero con una actualización posterior de SoC a un BCM2837 basado en ARM Cortex-A53 de cuatro núcleos con 1.2 GHz (y 64 bits) de Broadcom. (Imagen cortesía de Seeed Technology)
El modelo B de Raspberry Pi 3 también realiza mejoras destacables en las opciones incluidas sobre tecnología de conectividad. De nuevo, se ofrece Ethernet con cable de 10/100 Mbps y, esta vez, está complementado con la cuadriplicación de capacidades de Wi_Fi 802.11n y Bluetooth con únicamente 2.4 GHz (las que requieren periféricos adicionales para soportarlas en las placas de la generación anterior).
Entonces, ¿qué procesador es el mejor?
Las velocidades de reloj de la CPU, los conteos de núcleos y las capacidades del conjunto de características son, como se destacaba en la primera parte de este artículo, un diferenciador clave entre las generaciones originales de Raspberry Pi, "2" y "3". El ARM11 dentro del modelo A+ y el modelo B+ de Raspberry Pi es un diseño relativamente sencillo de canalización de 8 etapas en orden, con soporte de culminación de instrucción limitada fuera de orden, y ejecuta el conjunto de instrucciones ARMv6. Aunque está especificado para ejecutar a 700 MHz como máximo, los usuarios informan que tuvieron buenos resultados en la sobreaceleración a 800 MHz, esta implementación de núcleo especial también incluye la unidad del punto flotante (FPU) opcional de la arquitectura.
El sucesor de ARM11, el ARM Cortex-A9 encontrado en el modelo B de Raspberry Pi 2 también es básicamente una arquitectura de 32 bits. Así como el BMC8285, el BMC3286 por lo general es estable en la sobreaceleración, esta vez desde 900 MHz hasta 1.1 GHz. La arquitectura de ARM Cortex-A9 es avanzada de forma destacable a partir del ARM11 y ofrece una canalización de ocho etapas superescalar, de cuestión especulativa y fuera de orden. El ARM Cortex-A9 ejecuta el conjunto de instrucciones del sucesor ARMv7-A. La implementación de núcleo encontrada en el BMC3286 también incluye el punto flotante opcional (mejorado frente a la versión encontrada en el ARM11) y los coprocesadores SIMD "NEON". Por supuesto, el BMC3286 integra cuatro núcleos de procesador frente a uno solo en el precursor BMC3285.
Finalmente, el ARM Cortex-A53 de cuatro núcleos encontrado en el modelo B de Raspberry Pi 3 también es un procesador canalizado de ocho etapas con una canalización de ejecución superescalar de dos vías, pero esta vez es una implementación completa de 64 bits que es compatible con el conjunto de instrucciones de ARMv8-A de última generación. Los coprocesadores de punto flotante y SIMD NEON (ambos mejorados de nuevo frente a las implementaciones encontradas en el ARM Cortex-A9) están disponibles para su uso. Además, a pesar de que el BMC3286 solo ejecuta hasta 1.1 GHz y solo en una configuración de sobreaceleración fuera de especificación, se garantiza que el BMC3287 opera a 1.2 GHz con una sobreaceleración estable a 1.4 GHz según los reportes de los usuarios.
¿Qué procesador debe elegir? La respuesta depende de la aplicación, por lo tanto es específica para el lector. Por un lado, usted no quiere seleccionar una CPU que sea muy lenta para sus requerimientos, especialmente si desea reservar un "margen de sobrecarga" de rendimiento para la inevitable futura evolución de los softwares. Por otro lado, no tiene sentido pagar mucho por más procesador del que requiere, tenga en cuenta que su elección no tendrá impacto únicamente en el precio sino también en el consumo de energía. Las CPU no son la única razón por la que deba seleccionar una placa Raspberry Pi en lugar de otra, deberá factorizar los requerimientos de memoria, las opciones de conectividad de redes y otros atributos.
Asimismo, las velocidades de reloj superiores pueden significar muy poco si su software pasa la mayoría del tiempo en bucles de inactividad esperando la entrada. Considere también que las características de arquitectura avanzada como soporte superescalar y fuera de orden únicamente conducirán a IPC (instrucciones por reloj) notablemente mayores solo si existe una dependencia baja de instrucción a instrucción en su software. De manera semejante, la carencia de independencia de hilos de ejecución conducirá a una ventaja de tasa de producción, limitada en el mejor de los casos, para una CPU de varios núcleos frente a la alternativa más simple de un solo núcleo, y las ventajas teóricas del conjunto de instrucciones de 64 bits podrían no funcionar en su aplicación particular (sin mencionar sus mayores demandas de espacio de memoria). Por el contrario, recuerde que es probable que las mejoras de AArch32 encontradas en el conjunto de instrucciones de ARMv8 incrementen el rendimiento incluso si el ARM Cortex-A53 está únicamente ejecutando un código de 32 bits.
Aumento de gráficos
Otra oportunidad de procesamiento en chip que está disponible complica más (o según su perspectiva, libera) su proceso de selección de SoC. De forma conceptual, puede considerar que un procesador de gráficos (o en este caso un núcleo de gráficos) es un "motor" de procesamiento paralelo de manera masiva, ideal para tareas de procesamiento de píxeles pero también para diversos procesamientos de señal digital más ancha y otras operaciones. La técnica, conocida como GPGPU (unidad de procesamiento de gráficos para fines generales), está ganando popularidad, pero requiere un soporte de software para desbloquear el hardware potencial.
Desafortunadamente, la GPU VideoCore® IV encontrada en todas las tres generaciones de SoC de Broadcom abordadas en este artículo no es compatible con OpenCL (al menos actualmente), un conjunto estándar abierto de lenguajes de programación y API para programación paralela heterogénea mantenida por Khronos Group (la compatibilidad existente de OpenCL en Raspberry Pi 2 y 3 está actualmente limitada al cableado de varios recursos de la CPU). Sin embargo, cuando Broadcom liberó todo el conjunto de especificaciones de VideoCore IV (PDF) en forma de código abierto en octubre de 2014, brindó un medio alternativo de acceso y cableado de la CPU para uso de fines generales.
Por ejemplo, el entusiasta de Raspberry Pi Pete Warden (también ingeniero de investigación de Google y antiguo fundador y director de tecnología de Jetpac, adquirida más tarde por Google) encontró la forma de usar la GPU para acelerar drásticamente las operaciones de reconocimiento de objetos usando el SDK de aprendizaje profundo de Deep Beliefde su antigua compañía junto con un ensamblador o desensamblador para las QPU (cuatro unidades de procesamiento SIMD) encontradas en VideoCore IV (visualice su solución aquí: https://petewarden.com/2014/08/07/how-to-optimize-raspberry-pi-code-using-its-gpu/). La comunidad de código abierto también ha encontrado la manera de usar las QPU para el procesamiento de FFT con un aumento de rendimiento. También existen muchos otros ejemplos de proyectos, a menudo incluidos los ejemplos de códigos abiertos hospedados en Github; sugiero que se usen búsquedas de palabras clave como las siguientes para descubrirlos:
- "Raspberry Pi GPGPU"
- "Broadcom VideoCore IV GPGPU"
- "Raspberry Pi OpenCL"
- "Broadcom VideoCore IV OpenCL"
Cámaras y conclusiones
Las capacidades de reconocimiento del patrón de aprendizaje profundo, tal y como lo resalta un reciente artículo de mi autoría (y el proyecto de Pete Warden lo ejemplifica), son aplicables de manera destacable para varias aplicaciones de análisis de imágenes. Pero, ¿cómo se consiguen estas imágenes en la placa? Una opción conocida es elmódulo de cámara Raspberry Pi basado en MIPI CSI (Figura 4), basado en el sensor de imágenes CMOS de 5 megapíxeles OV05647 de OmniVision Technologies. Recuerde que aunque el aprendizaje profundo no sea lo suyo, las placas Raspberry Pi son excelentes opciones para las aplicaciones de visión por computadora, especialmente considerando la entusiasta aceptación de la comunidad de la biblioteca de visión por computadora de código abierto OpenCV.

Figura 4: El módulo de cámara Raspberry Pi integra la interfaz MIPI SPI que es nativa para todas las placas del sistema de Raspberry Pi abordadas en este artículo; su resolución de 5 megapíxeles será suficiente para muchas tareas de visión por computadora.
De manera más general, existe una multitud de opciones de software para la adopción e incorporación de su código abierto; la lista extensa de entradas de Wikipedia es un gran punto de partida. De forma similar, a pesar de que la simulación de software puede proporcionar una perspectiva inicial sobre qué generación de SoC de Broadcom (por tanto, la generación de placas Raspberry Pi) podría elegir, las placas son tan económicas que podría comprar una de cada una y realizar evaluaciones prácticas. El modelo B+ de Raspberry Pi, el modelo B de Raspberry Pi 2 y el modelo B de Raspberry Pi 3 son especialmente dóciles para los intercambios de salida de hardware y las pruebas de selección de software.
Al final del día, ¡lo aliento a que no se olvide de divertirse! Aunque el tamaño de la comunidad, la diversidad y la energía de Raspberry Pi pueden producir un enorme volumen de salida, a veces, incluso un poco de investigación puede descubrir rápidamente valiosas "perlas" que llevarán su próximo diseño al mercado de manera rápida, sólida y rentable.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.



