Arduino против микропроцессора против микроконтроллера

11

В чем разница между Arduino, микропроцессором и микроконтроллером? Я пытаюсь определить, что лучше всего использовать дешевый резистивный сенсорный экран.

Мартин Марино
источник

Ответы:

21

Микропроцессор:

обычно находится в настольном ПК или ноутбуке и содержит процессор и интерфейс внешней памяти, а также различные шины ввода-вывода для подключения к внешнему миру, такие как SPI, I2C, UART, USB, LCD и другие. Микропроцессоры также будут иметь внешний кристалл для обеспечения часов.

Большинство микропроцессоров не имеют постоянной памяти на чипе; вместо этого на материнской плате есть внешний чип, на котором расположен начальный загрузочный код. На ПК на базе Intel это называется Базовая система ввода / вывода (BIOS), а также содержит процедуры ввода-вывода в дополнение к начальному загрузочному коду. Запускается загрузочный код, выполнив команду Power-On Self Test (POST) , а затем смотрит , чтобы увидеть , где загрузить следующую стадию загрузочного кода - с жесткого диска, CD (или в старину) дискету. Эта загрузка второго уровня затем загружает операционную систему. (В некоторых системах может быть даже три уровня загрузочного кода.)

Некоторые микропроцессоры (обычно предназначенные для смартфонов и планшетов, которые имеют ограниченные параметры загрузки) имеют небольшой объем постоянной памяти, содержащей начальный загрузочный код.

Я называю загрузочный код доступным только для чтения; на самом деле в некоторых системах его можно обновить. Однако это довольно рискованно; если что-то пойдет не так, система может больше не загружаться.

В отличие от микроконтроллеров, которые выполняют свои программы из памяти только для чтения, после загрузки микропроцессоры загружают свои программы во внешнюю память и выполняют ее оттуда.

Микроконтроллер:

с другой стороны, это отдельная микросхема с одним чипом, которая содержит ЦП, постоянную память для хранения программы, оперативную память для хранения переменных, используемых при выполнении программы, и различные шины ввода-вывода для подключения к внешнему миру, например как SPI, I2C, UART и другие. Сам по себе он не может выполнять какие-либо программы без программирования через внешний интерфейс для ПК. Микроконтроллеру может также потребоваться внешний кристалл для обеспечения часов, однако у некоторых есть внутренние часы.

Некоторые микроконтроллеры (такие как PIC32 от Microchip) имеют две секции флеш-памяти; один для хранения кода инициализации (загрузки), а другой для хранения приложения. Это облегчает обновление кода приложения на месте.

Для вашей цели вы хотели бы использовать микроконтроллер, а не микропроцессор. Чтобы использовать микроконтроллер, вы должны либо спроектировать свою собственную плату, либо купить какую-нибудь плату для разработки.

Ардуино:

Это такая плата и содержит микроконтроллер, типичный для 8-разрядного AVR, такого как ATmega8, ATmega168, ATmega328, ATmega1280 и ATmega2560, а также блоки питания, кристалл и гнездовые разъемы для взаимодействия с различными периферийными платами.

Эти периферийные платы называются экранами и предназначены для укладки друг на друга (на нижней части плат имеются штыревые контакты для подключения к самому Arduino или другому щиту, а верхние штыревые разъемы для подключения штыревых контактов). щит сложен поверх него).

Примерами экранов являются платы управления двигателем, общие платы ввода / вывода, платы реле, платы Ethernet и ЖК-дисплеи, обычно с сенсорным экраном. Однако я не знаю ни одного резистивного сенсорного экрана, который был бы использован только для обнаружения (без ЖК-дисплея).

В дополнение к описанному выше оборудованию Arduino также поставляется с кроссплатформенной интегрированной средой разработки (IDE), написанной на Java. Он был разработан для того, чтобы представить программистов художникам и другим начинающим, так же как и язык BASIC 50 лет назад. Программа для Arduino называется скетч .

Программы Arduino написаны на C или C ++, однако многие детали скрыты от пользователя: необходимо определить только две функции (вызываемые системой), чтобы создать программу, которая постоянно выполняет циклы (как правило, для встроенных программ).

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

IDE поставляется с библиотекой программного обеспечения под названием «Wiring», которую можно использовать для обычных операций ввода / вывода.

tcrosley
источник
После 25 лет работы я больше не занимаюсь разработкой оборудования, но я не знаю ни одного процессора для настольных компьютеров, который бы содержал только постоянную память, а тем более такую ​​память, которая может загружать компьютер.
Роб
@Rob Вы правы, что все настольные ПК, о которых я знаю, используют внешний загрузочный чип. Но архитектура TI OMAP3 является примером микропроцессора с внутренним загрузочным ПЗУ. В приведенном здесь описании перезагрузки Linux первая строка гласит: «При включении питания устройство OMAP3 начинает загрузку с внутреннего загрузочного ПЗУ. Этот код исправлен в процессе производства и не может быть изменен. Загрузочное ПЗУ считывает контакты конфигурации загрузки (SW4). на OMAP3 EVM), который сообщает загрузочному ПЗУ, где искать первый внешний загрузчик. " Я обновил свой ответ.
tcrosley
10

Arduino

Arduino - это печатная плата, содержащая микроконтроллер Atmel AVR и обычно обеспечивающая набор разъемов в стандартном порядке. Микроконтроллер обычно предварительно запрограммирован программой «загрузчик», которая позволяет программе (называемой «эскиз») загружаться в микроконтроллер через последовательное соединение TTY (или виртуальное последовательное соединение через USB) с ПК.

Микропроцессор

Микропроцессор - это ИС, которая содержит только центральный процессор (ЦП). Микросхема не содержит ОЗУ, ПЗУ или других периферийных устройств. ИС может содержать кэш-память, но она не предназначена для использования без внешней памяти.

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

Обычно он находится в персональном компьютере.

микроконтроллер

Микроконтроллер - это микросхема, которая содержит ЦП, а также некоторое количество ОЗУ, ПЗУ и другие периферийные устройства. Микроконтроллеры могут функционировать без внешней памяти или хранилища.

Обычно микроконтроллеры либо программируются перед пайкой на печатную плату, либо программируются с использованием разъемов внутрисистемного программирования (ISP или ICSP) через специальное «программирующее» устройство, подключенное к персональному компьютеру.

Типичные микроконтроллеры намного проще и медленнее, чем типичные микропроцессоры, но я полагаю, что в основном это различие в масштабах и применении.

Его можно найти, например, в простых приборах, таких как обычные стиральные машины.

RedGrittyBrick
источник
2

«Arduino» - это среда разработки программного обеспечения и любая из нескольких плат микроконтроллеров, для которых программная среда может разрабатывать программы. Большинство плат используют микроконтроллеры Atmel AVR.

Питер Беннетт
источник
2

Arduino - основанная на микроконтроллерах платформа (ATMEGA 328 для UNO). В целом, микроконтроллер лучше, чем микропроцессор, подходит для любых задач, требующих обнаружения входов. Это связано с тем, что микроконтроллеры, такие как ATMEGA 328, имеют аналого-цифровые преобразователи (АЦП) для измерения напряжения, а также имеют ШИМ-выходы и цифровые входы / выходы.

С Arduino у вас также есть система Arduino Dev, которую легче программировать для новичков, и у вас есть хорошее сообщество для поддержки и библиотек.

Резистивный сенсорный экран ведет себя как потенциометр; один для х и один для у. Таким образом, вы можете поместить их в аналоговые входы Arduino. Смотрите здесь для деталей .

Другой вариант - конвертировать в SPI или I2C с чем-то вроде этого и читать с Arduino.

В любом случае, я думаю, что Arduino - хороший выбор.

akellyirl
источник
@tcrosley или любой другой давний участник .. какой-нибудь совет новому участнику как я, чтобы избежать отрицательного голосования как этот? Мои ответы точны, отвечают на вопрос и предоставляют дополнительную информацию для взаимодействия с резистивным сенсорным экраном. Что-нибудь еще должно было быть включено?
akellyirl
3
Не принимайте отрицательное голосование слишком серьезно. Я думаю, что ваше первое предложение немного неточно. Arduino больше похож на платформу, состоящую из аппаратного и программного обеспечения. А плата Arduino - это не микроконтроллер, а плата, созданная вокруг микроконтроллера.
Rev.1.0
1
Как Rev1.0 говорит: «Arduino - это микроконтроллер» - это не правда. Arduino - это SBC (одноплатный компьютер).
флюп
1

Arduino состоит из микроконтроллера (ATmega328 в версии UNO). Таким образом, Arduino - это печатная плата с четко разделенными выводами микроконтроллера, poweruply, кристаллом и FTDI для соединения USB с встроенной микропрограммой, так что вы можете легко программировать ее с помощью собственной IDE. Вот список компонентов Arduino: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

kimliv
источник