Фильтр по тематике

Сравнительный анализ плат Arduino

В статье проанализированы по своему составу популярные платы Arduino. Рассмотрена их эффективность, основанная на вычислении числа π методом статистического моделирования. Приведены результаты сравнительного анализа эффективности четырёх плат с разными микроконтроллерами фирмы Atmel.

Сравнительный анализ плат Arduino

Введение

Раньше, чтобы собрать программируемое устройство на микроконтроллере, необходимо было знать основы схемотехники, архитектуру и особенности работы конкретного микроконтроллера, уметь его программировать на ассемблере. Кроме того, требовался программатор, отладчик и другие вспомогательные устройства. В итоге без огромного объёма знаний и дорогостоящего оборудования было не обойтись. Сегодня, с появлением плат Arduino [1], дающих возможность работать с микроконтроллерами без наличия серьёзной материальной базы, всё изменилось.

Платы Arduino, а их выпускают уже в большом количестве и на разных микроконтроллерах, представляют со-
бой наборы, состоящие из готового электронного блока и программного обеспечения. Электронный блок – это печатная плата с установленным микроконтроллером и минимумом элементов, необходимых для его работы. Фактически, электронный блок Arduino является аналогом материнской платы современного компьютера. На нём имеются разъёмы для подключения внешних устройств, а также разъём для связи с компьютером, по которому и осуществляется программирование микроконтроллера.

Особенности используемых микроконтроллеров фирмы Atmel позволяют производить программирование без применения специальных программаторов. Всё, что нужно для создания нового программируемого устройства, – это плата Arduino, USB-кабель связи и компьютер c программным обеспечением, представляющим собой систему проектирования нового программируемого устройства. Система проектирования объединила в себе простейшую среду разработки и язык программирования – вариант языка С/С++ для микроконтроллеров. Поэтому для работы с Arduino достаточно знаний только основ программирования на С/С++.

Имеется для Arduino и множество готовых библиотек, содержащих код, работающий с различными внешними устройствами. О популярности плат Arduino говорит и такой факт: фирма MathWorks в MATLAB 15 выпустила приложение, позволяющее загружать программы из MATLAB в платы Arduino [2]. Не отстаёт в этом смысле и фирма Labcenter Electronics, которая в восьмой версии программного комплекса Proteus внесла в библиотеку моделируемых схем и платы Arduino [3].

Программа расчёта π

Обладая несомненными преимуществами, особенно в учебных целях, платы Arduino позволяют, как и при работе на современном компьютере, не задумываться о функционировании его отдельных частей, а просто запускать нужные программы и работать с ними. Нет надобности и в создании законченных плат и модулей. Можно воспользоваться готовыми платами расширения или просто напрямую подключить к разъёмам платы Arduino необходимые элементы. Все основные усилия направляются на разработку и отладку программы для микроконтроллера на языке высокого уровня. Наличие готовых модулей и библиотек программ позволяет в процессе обучения создавать новые работающие программируемые устройства для решения учебных задач. Варианты использования Arduino ограничены только возможностями микроконтроллера и имеющегося варианта платы, а также фантазией пользователя. И вот тут возникает главный вопрос, касающийся возможностей микроконтроллеров, используемых на платах Arduino с точки зрения их производительности. Поскольку сравнительная оценка производительности плат Arduino никем так и не была произведена, в данной статье предлагается восполнить этот пробел.

Применяемые в настоящее время способы оценки производительности цифровых процессоров обработки сигналов (ЦПОС) основаны, главным образом, на алгоритме быстрого преобразования Фурье (БПФ) с разным числом точек преобразования. Такие тесты не могут быть использованы для оценки производительности микроконтроллеров из-за их низкой производительности и ограниченной разрядной сетки по сравнению с ЦПОС. По этой причине для оценки производительности плат Arduino предлагается способ вероятностного свойства. В его основе лежит программа расчёта числа π методом статистического моделирования (метод Монте-Карло). Производительность же разных плат оценивается временем расчёта числа π при определённом одном и том же числе испытаний [4]. Данная методика была успешно применена при оценке производительности плат STAMP с ЦПОС Blackfin [5].

Задачи статистического моделирования требуют для получения точного результата достаточно большого числа статистических испытаний. Поэтому было выбрано 10 000 испытаний. Числовые случайные величины в процессе исполнения тестовой программы меняются в широком диапазоне значений, а выходные оценки производительности, в виде времени расчёта числа π при выполнении заданного числа испытаний, наиболее интегрально и полно характеризуют производительность микроконтроллеров, установленных на разных платах Arduino. Более того, по точности расчёта числа при большом количестве испытаний можно судить и о качестве применяемого программного обеспечения для компиляции и ассемблировании текста данной тестовой программы и об используемых библиотеках функций.

Несколько слов об алгоритме расчёта числа π. В его основе лежит формирование двух независимых случайных чисел x и y, распределённых равновероятно в диапазоне от –1 до +1. Существуют разные алгоритмы генерации случайных чисел. В нашем случае мы воспользуемся датчиком случайных чисел, который входит в систему проектирования плат Arduino. Полученная с по­мощью этого датчика каждая пара чисел в каждом испытании проверяется на попадание в круг единичного радиуса с центром в начале координат, то есть x2 + y2 ≤ 1. Таким образом, фактически рассчитывается площадь круга, которая, как известно, выражается через искомое число π. Программа расчёта числа π легко переносится на любые платы Arduino с разными микроконтроллерами, так как в ней использованы только стандартные библиотечные функции.

В листинге приведён программный код оценки производительности. Программа одинакова для всех плат, и после компиляции загружается в тестируемые платы. Результат работы программы выводится на двухстрочный жидкокристаллический дисплей. Для измерения времени расчёта π в миллисекундах используется функция millis().

Результаты тестирования плат Arduino

Рассмотрим оценку производительности следующих четырёх плат Arduino с разными микроконтроллерами, используя одну и ту же программу расчёта π:

  1. Плата Arduino Uno (см. рис. 1) c 8-разрядным AVR-микроконтроллером ATmega328 с RISC-архитектурой, который имеет 14 цифровых входов/выходов (6 из которых могут быть использованы как выходы для широтно-импульсной модуляции), 6 аналоговых входов, кварц на 16 МГц, USB-интерфейс, разъём питания и кнопку сброса.

  2. Плата Arduino Leonardo (см. рис. 2) c 8-разрядным AVR-микроконт­роллером ATmega32u4 с RISC-архи­тектурой, который имеет 20 цифровых входов/выходов (7 из которых могут быть использованы как выходы ШИМ), 12 аналоговых входов, кварц на 16 МГц, USB-интерфейс, разъём питания и кнопку сброса.

  3. Плата Arduino Mega (см. рис. 3) c 8-разрядным AVR-микроконтроллером ATmega2560 с RISC-архитектурой, который имеет 54 цифровых входов/выходов (15 из которых могут быть использованы как выходы для широтно-импульсной модуляции), 16 аналоговых входов, кварц на 16 МГц, USB-интерфейс, разъём питания и кнопку сброса.

  4. Плата Arduino Due (см. рис. 4) c ARM-микроконтроллером SAM3X8E Cor­tex-M3, который имеет 54 цифровых входов/выходов (12 из которых могут быть использованы как выходы для широтно-импульсной модуляции), 12 аналоговых входов, кварц на 84 МГц, USB-интерфейс, разъём питания и кнопку сброса. Это первая плата Arduino на базе 32-битного микроконтроллера c ARM-ядром.

Результаты оценки производительности четырёх плат показаны на рисунке 5.

Видно, что наибольшей производительностью обладает плата Arduino Due (см. рис. 6).

Затем следуют платы Arduino Leonardo и Arduino Uno. Они близки по производительности. Arduino Mega имеет самую низкую производительность, на порядок меньше, чем у платы Arduino Due.

Безусловно, за такую высокую производительность приходится платить – стоимость платы Arduino Due значительно превышает стоимость других рассмотренных плат, что несколько сужает область экспериментов с ней. Наибольший интерес, благодаря соотношению эффективность/стоимость, представляет Arduino Uno. На её базе можно построить большое количество разнообразных интеллектуальных устройств, схемы и программный код которых широко освещены в интернет-сообществе Arduino.

Литература

  1. Петин В.А. Проекты с использованием контроллера Arduino. 2014. СПб. БХВ-Петербург.
  2. Arduino Support from MATLAB. www.mathworks.com/hardware-support/arduino-matlab.html.
  3. Proteus VSM for Arduino AVR. www.labcenter.com/products/vsm/arduino.cfm.
  4. Бартенев В.Г., Бартенев М.В. Об оценке производительности плат Arduino. Сборник научных трудов II Международной научно-практической конференции «Актуальные проблемы и перспективы развития радиотехнических и инфокоммуникационных систем». РАДИОИНФОКОМ-2015. В 2 ч. Ч. 1. 2015. Москва. МГТУ МИРЭА.
  5. Бартенев В.Г., Бартенев М.В. Программируем ЦПОС Blackfin. Журнал «Современная электроника». 2008. №6.
Комментарии
Рекомендуем
Конструктивные особенности элементов РЭА, SSA и спутниковой навигации в космосе электроника

Конструктивные особенности элементов РЭА, SSA и спутниковой навигации в космосе

Космос и околоземная орбита специфичны, и к устройствам предъявляются особые требования по надёжности, управляемости и безопасности летательных аппаратов. Применение РЭА в космосе уже много лет является сферой приложения конструкторских идей разработчиков. Более того, ведущие мировые державы соревнуются в совершенствовании технологий и стараются использовать конкурентные преимущества. Впечатляют новейшие разработки в области солнечных батарей, различных модификаций эпитаксиальных структур, материаловедения, а также защищённых электронных модулей и дискретных компонентов. В статье рассматриваются особенности РЭА для космоса, инновационные решения сборки солнечных панелей и батарей (SSA) и проблемные вопросы обеспечения надёжности и безопасности РЭА в условиях повышенной солнечной активности, радиации, необходимости отвода тепла и механической стойкости конструкций в условиях невесомости.
21.11.2024 СЭ №9/2024 121 0
Разветвитель RS-485 с «Power over Ethernet» электроника

Разветвитель RS-485 с «Power over Ethernet»

Основное достоинство RS-485 заключается в повышенной помехоустойчивости при условии использования линии типа «шина», поскольку наведённая помеха компенсируется в витом кабеле. Однако на практике требуются «древовидные» и «звёздные» структуры линий, что вызывает проблему помехоустойчивости для интерфейса RS-485.  Общее решение для перехода к разным структурам линий состоит в том, что принято использовать разветвитель или повторитель RS-485 [1].  Предлагаемая конструкция выполняет разветвление RS-485, используя питание по кабелю по принципу «Power over Ethernet», в отличие от наиболее известных промышленных изделий. Разветвитель позволяет обеспечить помехоустойчивость при переходе от шинной структуры линии к древовидной структуре при расширении системы сбора данных термометрии.
21.11.2024 СЭ №9/2024 132 0

«ИнСАТ» ИНН 7734682230 erid = 2SDnjdsVbdM
«ИнСАТ» ИНН 7734682230 erid = 2SDnjeV5JPd