Ардуино — это одноплатный компьютер?

Во-первых, извините, если теги не отражают содержание

Во время просмотра видео об одноплатном компьютере (SBC) меня смутило то, что в нем не упоминается Arduino как SBC. Я всегда считал это SBC.

Покопавшись немного, я еще больше запутался. Кажется, что одноплатный компьютер — это процессор, память, ввод-вывод, все эти вещи построены на одной плате, а не на карте расширения, прикрепленной к плате (материнской плате). Согласно этому, Arduino не является SBC? Его процессор, память и хранилище находятся на одном ATMega32A (для Uno), подключенном к одной плате, которая обеспечивает несколько портов ввода-вывода (контакт ввода-вывода, USB, UART, I2C и т. д.).

Покопавшись, я узнал, что код Arduino работает на «голом железе», в отличие от SBC, такого как Rpi, и именно по этой причине он не является SBC. Это кажется странной причиной.

(1) Является ли Arduino SBC? Если (1) нет, то следующие вопросы:

(2) Является ли причина в том, что вы менее могущественны? Если да, где вы проводите черту?

(3) Причиной является отсутствие среды, размещенной на ОС для выполнения?

Если (3) — «Да»,

(4) В Arduino есть код загрузчика для загрузки программы через USB. Разве это не похоже на ОС, я признаю, что она не предоставляет хорошего API для использования оборудования, но это все?

Этот раздел комментариев по link как бы положил начало дебатам, но закончился без четкого ответа на мой вопрос.

, 👍1


3 ответа


Лучший ответ:

2

Возможно, невозможно провести четкую линию, разделяющую одну плату. компьютеры из плат микроконтроллера. Однако существует несколько атрибуты, которые могут помочь дифференцировать их и, в некотором смысле, нарисовать размытая линия. Если конкретная плата имеет большинство атрибутов SBC, это вероятно, с уверенностью можно назвать это SBC. То же самое и с платами MCU.

Вычислительная мощность может быть одним из таких атрибутов. Типичный SBC состоит из множества на несколько порядков мощнее обычного Arduino. Малина Например, у Pi в полмиллиона раз больше оперативной памяти, чем у Arduino Uno. Хотя можно найти микроконтроллеры в тысячу раз больше мощный, чем Uno, вы вряд ли найдете много SBC, которые являются одним в сто раз менее мощный, чем Raspberry Pi.

Операционная система также может иметь значение. SBC обычно предназначены для запускайте основные операционные системы: некоторые разновидности Linux, Windows или Android. С другой стороны, микроконтроллеры чаще всего запускают какой-то тип RTOS (ОС реального времени), специально разработанная для встроенного мира, если они вообще используют ОС.

Фактор, который еще не упоминался, — это возможности ввода-вывода. На SBC, вы обычно найдете порты ввода-вывода, которые распространены на настольные или портативные компьютеры, такие как HDMI, USB-хост или Ethernet. А микроконтроллер, с другой стороны, скорее всего, будет иметь аналоговые входы или выходы, поскольку они более полезны в мире «электроники», чем в «компьютерный» мир. Конечно, линии размыты: вы можете найти SPI, I2C и GPIO как на SBC, так и на MCU.

Ни один из этих факторов не может быть достаточным, чтобы отличить SBC от MCU. доска. Но вместе взятые, они позволяют вам сказать, что доска А явно SBC, плата B явно является платой MCU, а плата C где-то посередине, и его трудно классифицировать.

,

3

Arduino — это не компьютер. Это программируемый микропроцессор/микроконтроллер.

Обычно на компьютере можно запускать несколько приложений, тогда как большинство запрограммированных устройств, таких как Arduino, запускают только одну программу. Это не официальное определение, но это один из способов дифференциации.

Может быть сложно провести линию там, где одно, а другое нет.

(4) В Arduino есть код загрузчика для загрузки программы через USB. Разве это не похоже на ОС, я признаю, что она не дает хорошего API для аппаратного обеспечения. использование, но это все?

Нет, это не операционная система. По сравнению с компьютерной системой, Arduino не имеет настоящей операционной системы. А кто-то, имеющий возможность загрузить новую программу, просто меняет текущую единственную программу, которая может быть запущена.

Операционная система (ОС) — это системное программное обеспечение, которое управляет компьютером. аппаратные и программные ресурсы и предоставляет общие услуги компьютерные программы.

Я думаю, что множественное число программ является важным фактором, но это только мое мнение.

Единого определения не существует, поэтому вы услышите множество разных мнений. И большинство из них будет разумным.

,

1

Все зависит от вашего определения слова «компьютер». С точки зрения того, что Arduino представляет собой «полную по Тьюрингу» архитектуру с процессором, памятью, хранилищем, вводом-выводом и т. д., то да, это компьютер. Но это не тот «компьютер», который стоит у вас на столе.

Является ли мобильный телефон «компьютером»?

Если хотите, мы можем изменить определение в другом месте:

Как правило, под SBC понимается SoC, установленный на плате с вспомогательными компонентами. SoC — это «система на кристалле». Но теперь мы просто переместим определение в раздел «Что такое SoC?» – вопрос, который уже задавался много раз.

Не существует какой-то конкретной вещи, которая отличала бы SoC от микроконтроллера. Например:

  • "SoC запускает операционную систему, а микроконтроллер - нет" - за исключением того, что существуют микроконтроллеры, которые могут и действительно запускают операционные системы, и вам не необходимо запускать операционную систему на SoC.
  • «SoC использует внешнюю память, но в микроконтроллерах она встроена» - за исключением того, что существуют SoC со встроенной памятью и микроконтроллеры, которым для работы требуется внешняя память.

Список можно продолжать.

Мое определение того, что представляет собой «компьютер» в отличие от «встроенной системы», не имеет ничего общего с тем, что представляет собой устройство, а с тем, что вы с ним делаете .

Если плата используется с клавиатурой, мышью, экраном и т. д. для универсальных операций, то это компьютер. Если она запрограммирована для одной конкретной задачи, то это встроенная система. Одно и то же оборудование можно использовать обоими способами, и я бы назвал его компьютером, если бы на нем работало «общее» программное обеспечение (операционная система, веб-браузер, серверное программное обеспечение и т. д.), но я бы назвал его «встроенной системой», если он запускал только одну программу (с операционной системой или без нее), собирающую данные, отправляющую их в центральную систему и т. д.

Чтобы что-то можно было назвать «одноплатным компьютером», я бы сказал, что оно должно быть способным запускать общее программное обеспечение, предназначенное для работы на «традиционном» компьютере. Такие вещи, как Linux с Apache и т. д. или среда рабочего стола.

Помните, это только мое мнение, и поэтому оно будет отличаться от мнений других людей.

,