Raspberry Pi, Beaglebone Black, Arduino Yun и Intel Galileo - какая из них оптимально подойдет для вашего проекта?
На сегодняшний день многие знают о существовании компактных отладочных плат на ОС Linux, таких как Raspberry Pi или Beaglebone Black, но не многие смогут выбрать оптимальный вариант, соответствующий разрабатываемому приложению. В статье мы в сравнении подробно рассмотрим технические характеристики, производительность, энергопотребление и практическую возможность использования в качестве платформы разработки четырех популярных Linux-плат, что в дальнейшем поможет вам сделать правильный выбор.
В обзоре мы будем сравнивать следующие Linux-платформы:
- Arduino Yun
- Beaglebone Black
- Intel Galileo
- Raspberry Pi
Все выводы сделаны с акцентом на функционал и возможности для разработчика электронных устройств. Все платы работают под управлением определенной версии ОС Linux и прекрасно подходят для подключения различных датчиков, исполнительных устройств и других аппаратных модулей сферы Интернета вещей. Тем не менее, вы увидите, что есть немало важных отличий, как в аппаратной реализации, так и в функциональных возможностях, что может оказаться решающим фактором при выборе той или иной платы для конкретного приложения.
Спецификация
Начнем с общих сведений и наглядного сравнения спецификаций и периферии ввода/вывода отладочных плат. Данные, приведенные в Таблицах 1 и 2, в комментариях не нуждаются.
Таблица 1. Сравнение параметров спецификации Linux-платформ
Таблица 2. Периферия и подсистема ввода/вывода (I/O)
Arduino Yun | BeagleBone Black | Intel Galileo | Raspberry Pi | |
Цифровые линии ввода/вывода |
20 | 65 | 14 | 17 |
Питание цифровой части |
5 В | 3.3 В | 3.3 В или 5 В (переключается перемычкой) |
3.3 В |
Аналоговые входы |
12 с 10-битным АЦП, 0 – 5 В (возможность использования внешнего опорного напряжения) |
7 с 12-битным АЦП, 0 - 1.8 В ( встроенный источник опорного напряжения) |
6 с 12-битным АЦП, 0 – 5 В (встроенный источник опорного напряжения) |
Нет |
Выходы ШИМ | 7 | 8 | 6 (ограничения в скорости ШИМ) |
1 |
Порт UART | 2 (1 для AR9331) | 4 | 2 (1 доступен через 3.5 мм разъем) |
1 |
Порт SPI | 1 | 2 | 1 | 2 |
Порт I2C | 1 | 2 | 1 | 1 |
USB Host | 1, разъем standard A (AR9331) |
1, разъем standard A | 1, разъем micro AB | 1 (Model A) или 2 (Model B), разъем standard A |
USB Client | 1, разъем micro B (ATmega) | 1, разъем mini B | 1, разъем micro B | Нет |
Видео выход | Нет | Micro HDMI | Нет | HDMI, Composite RCA, DSI |
Видео вход | Нет | Нет | Нет | CSI (камера) |
Аудио выход | Нет | Micro HDMI | Нет | HDMI, 3.5 мм разъем |
Выходные шины питания |
3.3 В до 50 мА, 5 В |
3.3 В до 250 мА, 5 В до 1 А |
3.3 В до 800 мА, 5 В до 800 мА |
3.3 В до 50 мА, 5 В до 300-500 мА |
Дополнительные сведения |
• Все линии I/O подключены к процессору ATmega. • Аппаратная совместимость со многими платами расширения Arduino Leonardo. |
• Поддержка работы в реальном времени с помощью программируемых модулей реального времени. • Многие линии I/O имеют альтернативные функции, например I2S аудио, шина CAN и др. |
• Слот Mini-PCI Express. • Часы реального времени с резервным источником питания. • Неполная совместимость с платами расширения Arduino. |
Производительность
Чтобы выявить лидера по производительности (Benchmark) мы использовали давно известный программный инструмент nbench, который изначально был создан для определения производительности компьютеров Pentium-класса. При работе программы выполняется серия тестов, имитирующих реальную вычислительную нагрузку, как, например, при сжатии данных. Все результаты тестов объединяются для построения количественного показателя (оценки) эффективности работы памяти, модулей целочисленных вычислений и вычислений с плавающей точкой для каждой платформы.
![]() |
|
Рисунок 1. | Сравнительная диаграмма результатов выполнения теста производительности nbench на Linux-платах. |
Для оценки производительности Linux-плат утилита nbench была скомпилирована с использованием GCC 4.7.1 на мимнимальных настройках оптимизации, ведь наша основная цель – сравнение плат, а не повышение скорости работы. Диаграмма результатов тестирования изображена на Рисунке 1, подробные результаты приведены в Таблице 3.
Таблица 3. Результаты выполнения теста производительности nbench
Arduino Yun | Beaglebone Black | Intel Galileo | Raspberry Pi Model A |
Raspberry Pi Model B |
|
Память | 1.104 | 5.661 | 0.669 | 2.509 | 2.570 |
Целочисленные вычисления | 1.840 | 6.032 | 1.198 | 3.305 | 3.291 |
Вычисления с плавающей точкой | 0.038 | 1.591 | 0.621 | 2.064 | 2.002 |
Взгляните на результаты: плата Beglebone Black является лидером по производительности памяти и при выполнении целочисленных операций. Тем не менее, она уступает Raspberry Pi в вычислениях с плавающей точкой. Такой результат объясняется тем, что процессор ARM Cortex-A8 на плате Beaglebone Black снабжен модулем вычислений с плавающей точкой (FPU) «VFPLite», который не так быстр, как FPU других процессоров ARM. Если в вашем приложении необходима производительность и нет больших объемов вычислений с плавающей точкой, то Beglebone Black является оптимальным вариантом.
Еще один интересный пример сравнения – это Arduino Yun и Intel Galileo. Обе платы работают на тактовой частоте 400 МГц, но очевидно, что архитектура MIPS (Arduino Yun) несколько производительнее архитектуры процессора Intel Quark (Galileo). Производительность при выполнении операций с плавающей точкой платы Arduino Yun очень низка, что объясняется отсутствием аппаратного модуля FPU, из-за чего все операции выполняются программно.
Одноплатные компьютеры Raspberry Pi Model A и Model B практически идентичны по производительности. Это ожидаемый результат, ведь платы выполнены на одном и том же процессоре. По сравнению с Model A, Raspberry Pi Model B имеет только увеличенный объем памяти и дополнительную периферию. С точки зрения соотношения цена-производительность плата Raspberry Pi Model A по цене $25, несомненно, впечатляет.
Часть 2 – Энергопотребление, температурный режим, средства для разработки приложений