Микроконтроллеры против систем на чипе. Что выбрать?

Введение

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

Чем отличается микропроцессор и микроконтроллер?

Для начала давайте рассмотрим разницу между микроконтроллером (MCU) и микропроцессором (MPU). Обычно микроконтроллер использует встроенную флэш память, в которой хранятся и выполняется его программа. Благодаря этому, микроконтроллер имеет очень короткое время запуска и может выполнять код очень быстро. Единственное ограничение при использовании встроенной памяти – это ее конечный объем. Большинство микроконтроллеров, доступных на рынке, имеют максимальный объем флэш памяти

2 мегабайта. Для некоторых приложений это может оказаться критическим фактором.

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

Другое отличие между микроконтроллером и микропроцессором – это система питания. Благодаря встроенному регулятору напряжения, микроконтроллеру необходимо только одно значение внешнего напряжения. Тогда как микропроцессору требуется несколько разных напряжений для ядра, периферии, портов ввода-вывода и т.д. О наличии этих напряжений на плате должен заботиться разработчик.

Что выбрать MPU или MCU?

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

Один из аспектов, которые сложно определить, это быстродействие, требуемое для работоспособности будущей системы. Количественно оценить этот критерий можно с помощью так называемой вычислительной мощности, которая измеряется в Dhrystone MIPS или DMIPS (Dhrystone – это синтетический тест производительности компьютеров, а MIPS – количество миллионов инструкций в секунду). Например, микроконтроллер Atmel SAM4 на базе ядра ARM Cortex-M4 обеспечивает 150 DMIPS, а микропроцессор на ядре ARM Cortex-A5, такой как Atmel SAM5AD3 может обеспечить до 850 DMIPS. Один из способов оценить требуемый DMIPS – это посмотреть какая производительность нужна для запуска части приложения. Запуск полноценной операционной системы (Linux, Android или Windows CE) для работы вашего приложения потребовал бы около 300 – 400 DMIPS. А если использовать для приложения RTOS, то достаточно всего 50 DMIPS. При использовании RTOS также требуется меньше памяти, поскольку ядро обычно занимает несколько килобайт. К сожалению полноценная операционная система требует для своего запуска блок управления памятью (MMU), что в свою очередь ограничивает тип процессорных ядер, которые могут быть использованы.

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

Серьезного обсуждения требует использование пользовательского интерфейса, будь то бытовая или промышленная электроника. Потребителям уже привычно пользоваться интуитивно понятными графическими интерфейсами, да и в промышленности все чаще используется этот метод взаимодействия с оператором.

Существует несколько факторов относительно пользовательского интерфейса. Во-первых, это дополнительная вычислительная нагрузка. Для такой интерфейсной библиотеки как Qt, которая широко используется на Linux`e, дополнительно потребуется 80-100 DMIPS. Во-вторых – это сложность пользовательского интерфейса. Чем больше вы используете анимации, эффектов и мультимедийного содержимого, чем выше разрешение изображения, тем большая производительность и память вам потребуется. Поэтому вероятнее всего здесь подойдет микропроцессор. С другой стороны, простой пользовательский интерфейс со статическим изображением на дисплее низкого разрешения может быть реализован и на микроконтроллере.

Другой аргумент в пользу микропроцессора – это наличие встроенного TFT LCD контроллера. Мало микроконтроллеров имеют в своем составе такой модуль. Можно поставить внешний TFT LCD контроллер и какие-то другие драйверы к микроконтроллеру, но нужно учитывать получаемую в итоге себестоимость изделия.

На рынке сейчас появляются флэш микроконтроллеры с TFT LCD контроллерами, но все же должно быть достаточное количество встроенной оперативной памяти для управления дисплеем. Например, 16-цветный QVGA 320х240 требует 150 кБ оперативной памяти чтобы выдавать изображение и обновлять дисплей. Это довольно большой объем ОЗУ и может потребоваться внешняя память, что тоже скажется на себестоимости.

Более сложные графические пользовательские интерфейсы, особенно использующие дисплеи размером больше 4,3 дюйма, требуют применения микропроцессоров. Если микропроцессоры доминируют в приложениях, где используется пользовательский интерфейс с цветным TFT экраном, то микроконтроллеры – короли сегментных или точечно-матричных LCD и других экранов с последовательным интерфейсом.

С точки зрения коммуникаций, большинство микроконтроллеров и микропроцессоров имеют в своем составе наиболее популярные периферийные интерфейсы. Но высокоскоростные интерфейсы, такие как HS USB 2.0, 10/100 Мбит/с Ethernet порты или гигабитные Ethernet порты, обычно есть только у микропроцессоров, потому что они лучше приспособлены к обработке больших объемов данных. Ключевой вопрос здесь – это наличие подходящих каналов и полосы пропускания для обработки потока данных. Приложения, использующие высокоскоростные подключения и ориентированные на операционную систему, требуют применения микропроцессоров.

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

Заключительная часть нашего обсуждения будет касаться энергопотребления. Хотя у микропроцессора есть режимы пониженного энергопотребления, у типичного микроконтроллера их намного больше. Кроме того, внешнее аппаратное обеспечение микропроцессора осложняет его перевод в эти режимы. Фактическое потребление микроконтроллера значительно ниже, чем микропроцессора. Например, в режиме энергосбережения с сохранением регистров и оперативной памяти, микроконтроллер может потреблять в 10-100 раз меньше.

Заключение

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

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

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

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

Микроконтроллеры против ПЛК в промышленности

Микроконтроллеры против ПЛК: Есть явный победитель в битве за ваши промышленные приложения.


Мир одноплатных компьютеров и микроконтроллеров предлагает интересные и недорогие возможности для приложений автоматизации , но можно ли доверять этим компонентам в критически важных производственных приложениях, где традиционно используются ПЛК?
Ассортимент микроконтроллеров, появляющихся в мире, стремительно растет и нет признаков сокращения. Эти устройства — в том числе Arduino, BeagleBone, Raspberry Pi и другие-предлагают исключительные возможности. А также могут предложить целые экосистемы аксессуаров, и все это по очень низким ценам.
Bill Dehner, инженер по техническому маркетингу; и Tim Wheeler, технический маркетолог и преподаватель-разработчик в AutomationDirect; написали статью под названием микроконтроллеры против ПЛК: кто из них лидирует на вашем предприятии?, которая вышла в ноябре 2017 в издании Control Engineering. Они обсудили, как вырос интерес к этим продуктам, до такой степени, что некоторые рассматривают возможность использования этих микроконтроллеров для приложений промышленной автоматизации вместо ПЛК. Но разумно ли это?

Это естественный вопрос, но к ответу нужно подходить осторожно, потому что зачастую от такого решения зависит больше, чем может показаться на первый взгляд. Посмотрим ниже и увидим факторы, имеющие отношение к обсуждению.
После быстрого онлайн-обзора мы увидим, что есть около 80 различных плат, включая микроконтроллеры, платы FPGA и одноплатные компьютеры, с широким спектром возможностей. В любом случае, в этом блоге, всех их мы объединим вместе и назовем микроконтроллерами.
Аналогичным образом, даже несмотря на то, что ПЛК имеют широкий спектр возможностей, будем считать ПЛК неким общим и надежным контроллером, таким как AutomationDirect BRX.

Гипотетический пример

В статье рассматривается небольшой автоматизированный процесс, требующий двух-трех датчиков и привода. Система взаимодействует с большей системой управления, и программа должна быть написана для управления процессом. Это простая задача для любого малого ПЛК стоимостью около 200$, но хочется использовать гораздо более дешевый микроконтроллер.
Первым шагом является поиск ввода-вывода — не проблема с ПЛК, но, возможно, проблема для микроконтроллера.

«Некоторые (выходы микроконтроллера) сравнительно легко преобразовать, например, токовая петля 4-20 мА в 0-5 В. Другие являются более трудно преобразовываемыми, например аналоговый выход с использованием широтно-импульсной модуляции (ШИМ), это в целом для микроконтроллеров. Некоторые преобразователи сигналов доступны как стандартные продукты, но они добавляют общей стоимости. Инженер, практикующий в работе полный цикл «сделай сам», может попытаться создать конвертер внутренне, но такое начинание может быть сложным и требует большого времени на разработку.”

ПЛК работают практически с любым промышленным датчиком, и, как правило, не нуждаются в внешнем преобразовании, поскольку они сделаны для подключения к широкому спектру датчиков, приводов и других промышленных компонентов через их I/O. ПЛК легко монтируется, в то время как плата микроконтроллера с контактами и разъемами потребует немного работы.

Операционные системы

Dehner и Wheeler отмечают, что микроконтроллер представляет собой устройство-скелет с базовой операционной системой. «Ведь одноплатный компьютер, продающийся за 40$, не собирается иметь множество встроенных программных процедур. Поэтому пользователю остается кодировать все, кроме самых элементарных возможностей.”
В то время как приложение может быть простым, ПЛК имеет много встроенных возможностей. ПЛК делает события происходящие за кулисами незаметными и не требующими программирования пользователя, в отличие от ситуации когда используется микроконтроллер. У ПЛК есть программные сторожевые таймеры, чтобы следить за исполняемой программой, и аппаратные сторожевые таймеры, которые контролируют модули и устройства ввода-вывода. Эти проверки происходят на каждом цикле сканирования, с сигнализацией об ошибках или предупреждениях при возникновении проблемы.

«Теоретически, любая из этих возможностей может быть добавлена путем программирования микроконтроллера, но пользователю придется либо написать процедуры с нуля, либо найти существующие программные модули для повторного использования. Естественно, они должны быть протестированы и проверены для приложения, и нужно понимать важность такого тестирования, по крайней мере в первый раз. Инженер, пишущий несколько программ для одного контроллера, вероятно, может повторно использовать проверенные блоки кода. Но эти возможности уже включены в операционную систему практически для любого ПЛК.”

ПЛК это надежность производства

ПЛК предназначены для того, чтобы выдержать требования промышленной среды. Оборудование надежное, и оно сделано и испытано для того чтобы выдержать удар и вибрацию, электрический шум, коррозию и широкий диапазон температур. Иначе с микроконтроллерами.

«Микроконтроллеры редко проходят такое обширное тестирование и, как правило, включают только основные требования к конкретным рынкам, таким как оргтехника. Даже эти требования могут не соблюдаться в случае с неизвестным производителем платы. Универсальная плата, возможно, не была протестирована в той же степени, что и фирменная плата, даже если она кажется идентичной.”

Техническая поддержка

Множество промышленного оборудования безостановочно работает декады, поэтому контроллеры должны также функционировать бесперебойно. Как результат пользователям нужна долгосрочная поддержка.

«Производители оригинального оборудования должны смотреть на продукты, которые они используют на своих машинах, и должны быть готовы, когда клиент хочет купить запчасти для системы, установленной в 1990-х годах или даже раньше.
Компании, производящие микроконтроллеры, не могут сохранять эту связь истории. Если вам нужно заменить контроллер для проекта пять лет назад, найти детали, которые вам нужны, может оказаться проблемой.”

Большинство поставщиков ПЛК имеют отличные возможности поддержки, с некоторыми, как например AutomationDirect, предлагается бесплатная техническая поддержка. Однако конечные пользователи микроконтроллеров с открытым исходным кодом часто создают собственные группы технической поддержки. Ответы на вопросы часто можно найти в дискуссионных группах и тематических форумах с потребностями, похожими на ваши. Или нет.

Подведение итогов

«Микроконтроллеры и другие типы плат для разработки являются фантастическими в качестве учебных инструментов и для экспериментов. Они дешевые и делают сложные концепции программирования и автоматизации гораздо проще для изучения.” Если у вас есть время, то это замечательные инструменты.
«С другой стороны, если задача заключается в том, чтобы эффективно, рационально и безопасно функционировать на производстве, то ПЛК обеспечивают широкий спектр возможностей с надежностью, которая испытывалась и использовалась на протяжении десятилетий. Когда завод должен работать и продукция должна быть изготовлена, надежность и безопасность имеют большее значение, чем что-либо другое.”

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

  • Вычислительная техника
    • Микроконтроллеры микропроцессоры
    • ПЛИС
    • Мини-ПК
  • Силовая электроника
  • Датчики
  • Интерфейсы
  • Теория
    • Программирование
    • ТАУ и ЦОС
  • Перспективные технологии
    • 3D печать
    • Робототехника
    • Искусственный интеллект
    • Криптовалюты
Читайте также:  Скоро Радуница. Ограда на кладбище своими руками

Чтение RSS

Микроконтроллеры и одноплатные компьютеры против ПЛК в промышленности

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

Ассортимент микроконтроллеров и мини-ПК, появившихся в мире энтузиастов, быстро расширяется, без каких-либо причин ослабления. Эти компоненты, в том числе Arduino, и Raspberry Pi, предлагают необычные возможности, в том числе обширную экосистему, включающую интегрированную среду разработки, поддержку и аксессуары, при этом все очень дешево. Некоторые из инженеров в некоторых случаях предполагают возможность применения таких микроконтроллеров в устройствах промышленной автоматизации вместо программируемых логических контроллеров (ПЛК). Но разве это мудро?

Хороший вопрос, но не нужно спешить с ответом, поскольку зачастую есть решение, которое может быть очевидным с первого взгляда. Давайте посмотрим ниже поверхности и рассмотрим факторы, имеющие отношение к обсуждению. С помощью беглого обзора мы увидим, что сегодня на рынке доступно около восьмидесяти различных плат, в том числе платы с микроконтроллерами, платы с ПЛИС FPGA и мини-ПК с широким спектром возможностей. В этом материале все они будут условно называться микроконтроллерами. Аналогичным образом, несмотря на то, что ПЛК обладают широким спектром возможностей, в этом материале предполагается ПЛК с хорошо продуманным и надежным контроллером.

Рассмотрим небольшой промышленный процесс, требующий двух или трех датчиков и исполнительного механизма. Система связывается с более крупной системой управления, и для управления процессом необходимо написать программу. Это несложная задача для всякого небольшого ПЛК ценой примерно 200 долларов, но заманчиво задействовать значительно более дешевый микроконтроллер. При разработке сначала выполняется поиск периферии ввода-вывода, здесь нет никаких проблем с ПЛК, но, вероятно, это проблема для микроконтроллера.

Некоторые микроконтроллерные выходы относительно легко конвертируются, например, в интерфейс токовой петли 4-20 мА. Другие несколько сложнее преобразовать, например, аналоговый выход с широтно-импульсной модуляцией (ШИМ). Определенное количество преобразователей сигналов доступно в качестве стандартных продуктов, но они увеличивают общую стоимость. Инженер, настаивающий на полном самостоятельном производстве, может попробовать сделать преобразователь сам, но такое обязательство может быть непростым и потребует немалого времени на разработку.

ПЛК работают, можно сказать, с любым промышленным датчиком и в основном не требуют внешнего преобразования, поскольку они предназначены для подключения к огромному многообразию датчиков, исполнительных механизмов и прочих промышленных элементов посредством модулей ввода/вывода. ПЛК также легко монтируется, а плата микроконтроллера с контактами и разъемами требует некоторой работы по монтажу и согласованию.

Микроконтроллер – это «голое» устройство без операционной системы или с какой-либо простой операционной системой, которую нужно настраивать под конкретные нужды. В конце концов, одноплатный компьютер, продающий за $40 и имеющий Linux, вряд ли будет иметь много возможностей для встраиваемого программного обеспечения, поэтому пользователю остаётся кодировать все, кроме самых основных возможностей.

С другой стороны, хотя даже если приложение будет простым, ПЛК имеет множество встроенных возможностей, чтобы сделать многое «за кулисами», без использования специального программирования. ПЛК имеют программные сторожевые таймеры, чтобы следить за исполняемой программой и аппаратными устройствами. Эти проверки происходят при каждом сканировании с ошибками или предупреждениями, если возникает проблема.

В принципе, каждая из этих возможностей может быть внесена в микроконтроллер посредством программирования, но пользователь должен будет либо написать подпрограммы с нуля, либо найти уже имеющиеся программные блоки и библиотеки для повторного использования. Естественно, их необходимо проверить в условиях целевого приложения. Инженер, пишущий несколько программ для одного и того же контроллера, может повторно задействовать уже испытанные куски кода, но такие возможности имеются в операционной системе практически каждого ПЛК.

Помимо этого, ПЛК спроектированы так, чтобы выдерживать требования промышленной среды. ПЛК представляет собой прочный аппарат, он изготовлен и протестирован, чтобы выдерживать удар и вибрацию, электрический шум, коррозию и широкий диапазон температур. Зачастую такими преимуществами микроконтроллеры не обладают. Для микроконтроллеров редко проводят такую подробную и доскональную проверку, и обычно эти устройства будут включать лишь главные требования к определенным рынкам, такие как, например, управление бытовой техникой.

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

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

Микроконтроллеры против систем на чипе. Что выбрать?

Евросамоделки – только самые лучшие самоделки рунета! Как сделать самому, мастер-классы, фото, чертежи, инструкции, книги, видео.

  • Главная
  • Каталог самоделки
  • Дизайнерские идеи
  • Видео самоделки
  • Книги и журналы
  • Форум
  • Обратная связь
  • Лучшие самоделки
  • Самоделки для дачи
  • Самодельные приспособления
  • Автосамоделки, для гаража
  • Электронные самоделки
  • Самоделки для дома и быта
  • Альтернативная энергетика
  • Мебель своими руками
  • Строительство и ремонт
  • Самоделки для рыбалки
  • Поделки и рукоделие
  • Самоделки из материала
  • Самоделки для компьютера
  • Самодельные супергаджеты
  • Другие самоделки
  • Материалы партнеров

Микроконтроллеры против систем на чипе. Что выбрать?

Перевод статьи из блога Matthew Cashdollar

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

Частично к этому меня побудило появление в продаже Stellaris Launchpad и Arduino Due. Они оба основаны на 32-битных микроконтроллерах, и во многом, очень похожи. Я изучил спецификации (datasheet) к обоим, и хотя они прилично отличаются по цене, они рассчитаны на одну целевую аудиторию. Я задумывался о том, что возможно мне стоит перейти с MSP430 на Stellaris, а может быть даже пересесть на принципиально иную систему, использовать что-то вроде Raspberry Pi, вместо микроконтроллеров.

Оба, Stellaris Launchpad и Arduino Due, очень мощны, но не предназначены для запуска Linux. Они работают либо на исполняемом коде, написанном непосредственно для них, либо под управлением операционной системы реального времени (RTOS), – минималистичной ОС, с очень коротким временем реакции на внешние события. Так же они оба значительно сложнее, чем MSP430 или 8-битные AVR.

C другой стороны, в реальной жизни (за границами интернета), большинство, кого я знаю, используют Raspberry Pi или другие встраиваемые системы на Linux. Использование именно микроконтроллеров, довольно редкий случай, среди тех, кого я встречал. Даже Arduino, гораздо менее популярно, в моем окружении, чем встраиваемый Linux. Как я это понимаю, – зачем кому-то покупать Arduino, когда можно приобрести Raspberry Pi, который может гораздо больше, а стоит столько же или меньше? Под Linux есть огромное количество готового софта, и на нем можно программировать, используя простые скриптовые языки.

Лично для меня, причина, по которой я не желаю использовать Linux, это потому что я ежедневно использую его на работе, и возвращаясь домой, не испытываю удовольствия от необходимости опять работать на Linux-подобных системах. У меня нет проблем с использованием Linux, но его слишком много повсюду, он меня гнетет. Мне гораздо интересней работать с простыми электронными устройствами на 8-ми / 16-битных микрочипах.

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

В моем проекте умного дома, я реально столкнулся с этой проблемой. Я уже сделал драйвер локальной сети для системы контроля на MSP430, и все выглядит очень достойно. По сути, я могу сделать все, что необходимо для системы автоматизации на MSP430. Тем не менее, я задумываюсь, правильно ли то, как я это делаю? Не пытаюсь ли я, есть суп вилкой, когда есть ложка? Может быть, Linux более походящая система? Позвольте, я объясню.

Если остановиться и взглянуть на текущую ситуацию, по технологическим достижениям на ноябрь 2012 года. Я спрашиваю себя, достаточно ли хороши и актуальны микроконтроллеры, по сравнению с системами-на-чипе, использующими Linux?

Если перечислять проекты на встраиваемых системах, которые приходят мне в голову, это: дроны, роботы, домашняя автоматизация, контроллеры моторов, сенсоры, наручные часы, 3D-принтеры и т.п. В каких из этих случаев, встраиваемый Linux подходит больше, чем микроконтроллеры? И почему?

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

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

Например, для проекта умного дома, я могу разработать, дистанционно контролируемый выключатель. Он может включать/выключать свет или что-то еще. В тоже время, я могу пойти в местный магазин электротехники и купить то же самое за $20, произведенное в Китае. Смогу ли я когда-нибудь перебить эту цену, попытавшись продавать собственный выключатель? Не думаю, что это возможно.

Если задуматься, это относится и к множеству остальных вещей, необходимых для домашней автоматизации. Датчики температуры, дыма, движения и т.д., я вполне способен самостоятельно сделать такие же, но вряд ли, из этого можно извлечь финансовую выгоду. Кому интересно покупать такие вещи у меня за $75, когда они могут найти их за $20 в Хозтоварах?

Если размышлять об извлечении какой-то выгоды из своего хобби, то лучше обратить внимание на более дорогие и сложные продукты. Например, контроллер домашней автоматизации или термостат, обычно стоят более $100, и оставляют больше свободы для индивидуального творчества, можно построить один, продать своим соседям и даже заработать что-то на этом.

Но желание, добиться более выгодной цены окончательного устройства, не означает, что нужно использовать самый дешевый микроконтроллер на Земле. На самом деле, это плохая идея, т.к. время разработки то же имеет свою стоимость, как и используемые детали. Возможно, микроконтроллер дешев, но требует больше времени для написания управляющего кода. Время – деньги, и если вы работаете быстрее, вы успеете большего добиться.

Читайте также:  Пуфик из автомобильной покрышки своими руками

Все эти размышления, подводят меня к выводу, что выгодней разрабатывать систему умного дома на Linux, чем на микроконтроллерах, несмотря на мои личные предпочтения, не использовать Linux (мне нравится программирование низкого уровня больше чем скрипты, Linux нагоняет на меня скуку).

Если вернуться к теме топика, цена микроконтроллеров, это может быть важный фактор для крупных корпораций, собирающихся выпустить новый продукт, но на индивидуальном уровне, если пытаться вести бизнес в стиле Kickstarter, этот фактор уже не столь значим, по факту, быстрое время разработки, более важно, чем стоимость компонентов.

С другой стороны, микроконтроллеры могут быть лучшим выбором, чем системы-на-чипе, когда необходимо низкое потребление энергии. В таких системах есть два момента: низкое потребление самой схемы, во время работы, и короткое время старта. Типичным способом экономии батареи для мелких устройств, является само-отключение (shut off). Когда вы выключаете компьютер на Linux, ему нужно приличное время, что бы вернуться к работе, иногда до нескольких минут. Такое время не приемлемо для встраиваемых систем.

Если взять такой микроконтроллер, как MSP430, то он может годами работать от одной батарейки. Stellaris Launchpad и Arduino Due, в принципе то же на такое способны, они потребляют больше энергии чем MSP430, но все-равно очень мало, по сравнению с Raspberry Pi. Еще, MSP430, может моментально стартовать, после выключения.

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

В третьем случае, как я уже говорил, использование микроконтроллера более осмысленно, чем Linux, в операциях требующих моментальной реакции (realtime response). Я имею в виду такие устройства, как 3D-принтеры и станки ЧПУ, я знаю, о чем говорю, так как посвятил много времени их изучению. По своей природе, они требуют высокой точности в работе, которая чуть менее чем полностью зависит от времени реакции на команды.

Например, если у вас запущена циркулярная пила, которая отрезает в данный момент кусок дерева или метала, вы не можете остановить процесс, из-за того что компьютеру который ей управляет, понадобилась пауза, что бы скинуть данные из памяти на диск или что-то иное в том же духе. Любой, кто использовал ПК, знаком со случайными подвисаниями, периодически возникающими во время самой обычной работы. А теперь представьте себе, что у вас большой сверлильный станок, под управлением ПК, который вдруг начинает проверять обновления для Windows, во время работы, и дрель, сверлит насквозь стол, на котором стоит, т.к. компьютер потерял над ней контроль.

ПК и системы-на-чипе не предназначены для работы в реальном времени, хоть с Windows, хоть с Linux, но само собой они пытаются к этому приблизиться. Как пример, существует патч реального времени для ядра Linux, и специальный ЧПУ софт, созданный для работы такого рода. Я не достаточно знаком с этим патчем Linux, и не знаю, насколько он гибок, для полного контроля событий реального времени. Но думаю, что это лишь возможная альтернатива, т.к. Linux, какие бы патчи на него не навешали, никогда не побьет микроконтроллеры в этой области, благодаря наличию у них системы прерываний.
В заключение, хочу сказать, что потратил много времени, пытаясь найти области, где применение микроконтроллеров в моих проектах имеет преимущество. И все выглядит так, что пришла эпоха мирового доминирования Raspberry Pi и Beaglebones. Это текущая ситуация в DIY сообществе. В большинстве случаев, быстрее и легче разрабатывать на этих системах, так что зачастую это лучший выбор для большинства проектов.

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

Это не зависит от того, что микроконтроллеры могут казаться «веселее» чем ПК. Это то, с чем придется смириться.

микроконтроллер против системы на чипе

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

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

6 ответов

Микроконтроллер – это процессор, в который встроена встроенная программа и память данных. Эти микросхемы предназначены для небольших встроенных приложений управления, поэтому оставлять выводы для ввода-вывода и не требовать внешней шины памяти очень полезно. Некоторые микроконтроллеры имеют всего 6 контактов и могут делать полезные вещи. Сравните это с вычислительным процессором общего назначения, предназначенным для ПК. Эти вещи имеют 100 штырей в массиве и требуют обширной внешней схемы.

Что касается системы на чипе, это менее четко определенный термин. Кипр называет часть своих частей PSOC (Программируемая система на чипе). Это в основном микроконтроллер с небольшой FPGA на одном чипе. Вместо того, чтобы создавать встроенные периферийные устройства, вы можете делать все, что захотите, в доступных ресурсах FPGA.

В целом, я думаю, что система на чипе – это микроконтроллер с некоторой, предположительно, системной логикой, интегрированной с ним. Конечно, чем дальше вы пытаетесь войти в систему, тем меньше вероятность того, что какой-нибудь комплект дополнительного оборудования будет полезен, поэтому какая-то конфигурация очень полезна. Однако на данный момент «система на чипе» является скорее маркетинговым термином, чем чем-либо реальным.

Система на чипе (или SoC) – это всякая фраза, которую используют люди, использующие маркетинг, и на самом деле это не значит. Есть также много вариантов, таких как:

PSoC: программируемая система на чипе, Cypress Semiconductor.

SOPC: система на программируемом чипе от Altera

По сути, SOC – это единственный чип, который делает все, что используется для обработки нескольких фишек. Там нет ничего, что говорит о том, что он должен включать процессор или оперативную память. Таким образом, из-за того, что мы можем получить больше транзисторов на чипе, и мы получаем все больше и больше функциональности на наших чипах – почти все можно назвать SoC по сравнению с тем, что мы делали 10 или 20 лет назад !

Ухудшилось: есть много примеров того, как вещи называются SoC, которые по-прежнему требуют использования нескольких чипов. Часто у вас будет какая-то форма CPU + Peripherals, которая по-прежнему требует внешнего Flash, RAM и питания. Поэтому даже имя SoC вводит в заблуждение.

MCU, вероятно, является самым кратким примером того, что должен быть SoC, но это очень ограниченный пример.

В общем случае микроконтроллер воспринимается как встроенное устройство, которое внутренне запрограммировано для выполнения конкретной задачи. Существует минимальное взаимодействие с пользователем и небольшая гибкость или отсутствие. Микроконтроллер, как правило, довольно маломощный с небольшими объемами памяти и ПЗУ (flash).

И наоборот, System-on-Chip – это другой конец спектра. Он больше ориентирован на полную гибкость и взаимодействие с пользователем. Он часто включает в себя такие вещи, как драйверы ввода-вывода для более крупного оборудования (например, жесткие диски и т. Д.) И даже иногда графический адаптер. Система на чипе больше похожа на полную компьютерную систему, да, на чипе.

Между ними довольно много кроссовера – когда он перестает быть микроконтроллером и начинает быть Системой на чипе? Из-за чего возникает путаница.

В принципе, если он может делать то, что может сделать компьютер, то это система на чипе. Если он ориентирован, например, на офисный телефон, управляющий вашим списком контактов или в системе ввода с клавиатуры, или запуск двигателей на машине с ЧПУ, то это микроконтроллер.

p.s., не цитируйте меня на этом, поскольку я говорю, что между ними существует много кроссоверов.

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

Общая идея с системой на кристалле состоит в том, чтобы обеспечить схему с достаточным количеством мультиплексоров и других средств маршрутизации, так что сигналы могут маршрутизироваться через схемы, чтобы создать много полезных типов шаблонов стимулов /откликов без вмешательства процессора. Такая схема не может создавать шаблоны стимулов /откликов, которые находятся примерно так же быстро, как то, что может произвести процессор, но они во многих случаях могут быть на порядок быстрее, чем все, что может сделать процессор.

По моему мнению, SoC – это термин с множеством определений, которые на самом деле будут меняться со временем. С другой стороны, Microcontroller будет определяться таким же образом через десять лет, как сейчас. Когда вы говорите о микроконтроллере, он поставляется с некоторыми основными вещами на одном чипе, например: память, порты ввода-вывода, таймеры и счетчики и т. Д. Но когда вы говорите о SoC, у него нет какого-либо конкретного стандарта о том, что тип схемы, который он должен содержать. Например, основное приложение, в котором они пытаются подключить SoC, – это смартфон. В текущем сценарии смартфон должен содержать некоторые основные встроенные вещи, такие как

  1. NFC
  2. GPS
  3. Акселерометр и гироскоп
  4. WiFi
  5. Процессор и графический процессор

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

Да SoC – это в основном маркетинговый термин, используемый чаще всего. Существует устройство и терминология хоста. Хост – это крупные производители ПК, такие как Dell, HP, IBM и т. д. Они использовали встроенный в них процессор, как правило, от Intel, AMD и т. д. . Так что они в основном обеспечивают CPU или SoC на материнской плате (так называемый CPU), некоторые также обеспечивают CPU + SoC (для определенной цели – разгрузить активность периферийных устройств, например датчиков или устройства GPS, что в противном случае было бы очень когда они были подключены непосредственно к ЦП) .SoC также иногда называют Co-Processor, чья работа такая же, как и то, что я написал ранее. Теперь к MotherBoards подключены различные периферийные устройства (которые подключены в основном к процессору или SoC), эти периферийные устройства в основном либо подключены непосредственно к ним (SOC или CPU) через шину sum – i2c, SPI, USB, либо они обычно подключены к MicroControllers .SO либо микроконтроллер сопряжен с SoC, либо эти устройства подключаются непосредственно к шине. Теперь Qs – это то, почему периферийные устройства будут подключены к микроконтроллерам, а не к шине напрямую, хорошо, есть причина, если производители периферийных устройств также производители микроконтроллера, которые они намеренно попытаются подтолкнуть свои периферийные устройства вместе с микроконтроллерами не только к лучшей прибыли, но и к лучшим решениям, поскольку подвиги в микроконтроллере будут давать двойной импульс их решению. Имейте в виду, если они предоставляют bluetooth, но подключение его с микроконтроллером заставит их дать маломощное голодное, быстрое решение на базе микроконтроллера bluetooth. Это беспроигрышный решение для устройства (периферийных устройств, контроллеров), а также производителей ПК, поскольку они получают лучшие устройства (периферийные + микроконтроллеры). Итак, все дело в терминах микроконтроллера, который вы увидите чаще всего на стороне устройства (тот, который сопряжен с SoC (теперь вы знаете, что такое SOC? Dont you) и SoC на стороне хоста (сторона ПК ). Вы можете сказать, что процессор – это отец, делегирующий soem своей работы в SoC для улучшения возможностей питания устройств (микро + периферийные устройства). В основном у систем больше памяти для размещения микроконтроллеров OS-совместимых ОС, которые могут в наибольшей степени поддерживать RTO.

Читайте также:  Самодельный электрический фуганок своими руками

Микроконтроллеры против систем на чипе. Что выбрать?

Давайте разберемся, чем же на самом деле отличаются и в чем сходство этих двух типов цифровых радиоэлектронных устройств.

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

Что такое микропроцессор

Микропроцессор (в ангоязычной литературе MPU — Micro Processor Unit ) содержит функционал компьютерного центрального процессора, или ЦП (CPU — Central Processing Unit) на одном полупроводниковом кристалле (ИМС — интегральная микросхема или на западный манер — Integrated Circuit).

Графический процессор NVIDIA

По своей сути — это микрокомпьютер, который используется для выполнения арифметических и логических операций, управления системами, хранения данных и прочих.

Микропроцессор обрабатывает данные, поступающие с входных периферийных устройств и передает обработанные данные на выходные периферийные устройства.

Существует четыре основных типа процессоров, различающихся своей архитектурой.

Микропроцессоры с полным набором команд (Complex Instruction Set Computer, CISC -архитектура). Характеризуются нефиксированным значением длины команды, кодированием арифметических действий одной командой, небольшим числом регистров, выполняющих строго определённые функции. Примером такого типа процессоров служит семейство x86.

Микропроцессоры с сокращенным набором команд (Reduced Instruction Set Computer, RISC -архитектура). Обладают, как правило, повышенным быстродействием за счёт упрощения инструкций, что позволяет упростить процесс декодирования и, соответственно, сократить время их выполнения. Большинство графических процессоров разрабатываются, используя этот тип архитектуры.

Микропроцессоры с минимальным набором команд (Minimal Instruction Set Computer, MISC -архитектура). В отличие от RISC-архитектуры, в них используются длинные командные слова, что позволяет выполнять достаточно сложные действия за один цикл работы устройства. Формирование длинных «командных слов» стало возможным благодаря увеличению разрядности микропроцессорных устройств.

В суперскалярных процессорах ( Superscalar Processors ) и спользуются несколько декодеров команд , которые загружают работой множество исполнительных блоков . Планирование исполнения потока команд происходит динамически и осуществляется самим вычислительным ядром. Примером процессора с таким типом архитектуры является, например Cortex A8.

Отдельно хочу выделить микропроцессоры специального назначения ( ASIC — Application S pecific I ntegrated C ircuit). Как следует из названия, предназначены для решения конкретной задачи. В отличие от микропроцессоров общего назначения, применяются в конкретном устройстве и выполняют определенные функции, характерные только для данного устройства. Специализация на выполнении узкого класса функций приводит к увеличению скорости работы устройства и, как правило, позволяет снизить стоимость такой интегральной схемы. Примерами таких микропроцессоров может быть микросхема, разработанная исключительно для управления мобильным телефоном , микросхемы аппаратного кодирования и декодирования аудио- и видеосигналов – так называемые цифровые сигнальные процессоры (Digital Signal Processing, DSP multiprocessors). Могут быть реализованы в виде ПЛИС (программируемая логическая интегральная схема). При разработке таких процессоров для описания их функциональности используют языки описания аппаратных устройств (HDL — Hardware D escription L anguage) , такие как Verilog и VHDL .

Системы на основе микропроцессоров строят примерно следующим образом.

Система, основанная на микропроцессоре

Как видно, микропроцессор в этой системе имеет множество вспомогательных устройств , таких как постоянное запоминающее устройство, оперативная память, последовательный интерфейс, таймер, порты ввода/вывода и т.д. Все эти устройства обмениваются командами и данными с микропроцессором через системную шину. Все вспомогательные устройства в микропроцессорной системе являются внешними . Системная шина, в свою очередь, состоит из адресной шины, шины данных и шины управления.

Теперь, давайте, рассмотрим микроконтроллер.

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

Ниже представлена блок-схема микроконтроллера. Какого же его основное отличие от микропроцессора? Все опорные устройства, такие как постоянное запоминающее устройство, оперативная память, таймер, последовательный интерфейс, порты ввода/вывода являются встроенными. Поэтому не возникает необходимости создавать интерфейсы с этими вспомогательными устройствами, и это экономит много времени для разработчика системы.

Внутреннее устройство микроконтроллера

Микроконтроллер не что иное, как микропроцессорная система со всеми опорными устройствами, интегрированными в одном чипе. Если вы хотите создать устройство, взаимодействующее с внешней памятью или блоком ЦАП/АЦП, вам нужно только подключить соответствующий источник питания постоянного напряжения, цепь сброса и кристалл кварца (источник тактовой частоты). Их просто проблематично интегрировать в полупроводниковый кристалл.

Ядро микроконтроллера (центральный процессор), как правило строится на основе RISC-архитектуры.

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

Микроконтроллер или микропроцессор, что выбрать для проекта?

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

Для начала рассмотрим некоторые из главных различий между микроконтроллерами и микропроцессорами. В типичном случае МК использует встроенную флэш-память, где хранится и из которой исполняется его программа. При таком способе хранения программы микроконтроллер может сразу стартовать и очень быстро ее выполнить. Единственное практическое ограничение на использование встроенной памяти — ее суммарный объем. Объем памяти программ у большинства предлагаемых МК с флэш-памятью не превышает 2 Мбайт и в некоторых приложениях может стать ограничивающим фактором. У микропроцессоров такого ограничения нет, т.к. в них для программ и данных используется внешняя память. Как правило, программа хранится во флэш-памяти с параллельным (NAND)или последовательным доступом, а при запуске перегружается во внешнюю
память ОЗУ, из которой и выполняется. Это означает, что МП не может стартовать так же быстро, как микроконтроллер, но объемы подключаемой к процессору флэш-памяти и DRAM измеряются мегабайтами и даже гигабайтами в случае флэш-памяти NAND.
Другое отличие касается мощности. При собственном встроенном питании МК нуждается только в одном-единственном уровне питания. Для сравнения, микропроцессору требуется несколько разных уровней отдельно для ядра, интерфейса памяти и т.д., что влечет за собой необходимость в установке на плату дополнительных микросхем преобразователей.
На выбор устройства также могут повлиять некоторые аспекты спецификации разработки. Например, следует определить, не превышает ли число требуемых каналов периферийного интерфейса возможности микроконтроллера? Не станут ли невыполнимыми требования к пользовательскому интерфейсу из-за недостаточной производительности МК или объема встроенной памяти? Но даже если ответы на эти вопросы известны на начальном этапе проекта, их, скорее всего, не будет для последующих вариантов изделия. В этом случае более предпочтительной может стать разработка на основе единой платформы, которая оставит больше возможностей выбора уровней потребляемой мощности и интерфейсных функций при модификации изделия.
Для реализации заданной производительности конкретного решения она приводится к единицам DMIPS (Dhrystone MIPS). Например, производительность микроконтроллера SAM4 от Atmel на основе ядра ARM Cortex-M4 оценивается в 150 DMIPS, а производительность микропроцессора SAMA5D3 той же компании, выполненного на ARM Cortex-A5, достигает 850 DMIPS. Оценка требуемого значения DMIPS зависит от используемых компонентов приложения. Полновесные операционные системы (ОС), такие как Linux, Android или Windows CE, отнимут у приложения минимум 300–400 DMIPS, тогда как на работу простейшей операционной системы реального времени (ОСРВ), вполне достаточной для многих приложений, потребуется не более 50 DMIPS. Другое достоинство ОСРВ заключается в том, что она занимает сравнительно малый объем памяти, а размер ее стандартного ядра не превышает нескольких килобайт. Кроме того, полновесная ОС предполагает наличие диспетчера памяти, что ограничивает выбор процессорного ядра более мощными моделями.
Для приложений с интенсивными вычислениями необходимо зарезервировать соответствующее количество DMIPS поверх потребностей ОС и прочих коммуникационных и управленческих задач. В целом, чем интенсивнее предполагаются вычисления, тем предпочтительнее использование микропроцессора.
При разработке приложения для потребительской электроники или промышленной автоматизации предметом серьезного рассмотрения становится интуитивно понятный пользовательский интерфейс (User Interface, UI). Промышленные приложения все шире задействуют этот метод операторского взаимодействия, хотя операционное окружение может ограничить его оправданность множеством факторов. Во-первых, к ним относятся сопутствующие накладные расходы. Для такой широко используемой под Linux библиотеки UI как Qt накладные расходы составляют 80–100 DMIPS. Во-вторых, сложность UI. Чем в большей мере задействована анимация, различные эффекты и мультимедийный контент, тем больше требуется вычислительной мощности и объема памяти. Поскольку эти требования растут с увеличением разрешения экрана, в приложениях с UI, скорее всего, подойдут микропроцессоры. И, наоборот, в приложениях с более простыми пользовательскими интерфейсами с псевдостатическими образами и относительно скромными разрешениями в большей
мере уместны МК. Соответственно, еще одним аргументом в пользу применения микропроцессоров является то, что они, как правило, оснащены встроенными контроллерами TFT ЖКД. Лишь немногие МК могут похвастаться такой особенностью, а остальным требуются дополнительные внешние контроллер TFT ЖКД и усилители. В итоге, при выборе между МК и МП разработчик должен учесть все аспекты. Некоторые предлагаемые на рынке микроконтроллеры с флэш-памятью обладают встроенным контроллером TFT ЖКД, но помимо него для управления дисплеем необходима оперативная память. Например, для 16-цветного формата QVGA 320×240 требуется 150 Кбайт специально выделенной для дисплея памяти SRAM. Это
довольно-таки большой объем, для которого чаще всего используется только внешняя память, что в еще большей мере
сокращает разницу между решениями на основе МК и МП. Более сложные графические пользовательские интерфейсы, особенно для экранов с диагональю 4,3 дюйма и выше, склоняют выбор в пользу микропроцессора. Таким образом, МП будут доминировать при использовании графических пользовательских интерфейсов с цветными экранами TFT, а микроконтроллеры останутся вне конкуренции для сегментных или матричных ЖКД и прочих экранов с последовательными интерфейсами.
Большинство МК и МП оснащены всеми наиболее популярными периферийными интерфейсами. Однако высокоскоростные коммуникационные интерфейсы, такие как HS USB 2.0, множественные порты 10/100 или гигабитный Ethernet, как правило, присутствуют только в микропроцессорах, т.к. они лучше приспособлены для обработки больших объемов данных. При наличии каналов передачи данных с соответствующей пропускной способностью обработка трафика становится ключевой проблемой. Следует также учитывать объемы кодов от сторонних поставщиков в зависимости от протоколов связи. Приложения с высокоскоростными средствами подключения, использующие стеки протоколов какой-либо стандартной ОС, предполагают разработку на основе микропроцессоров.
Еще один ключевой аспект выбора между МК и МП — необходимость детерминистского поведения приложения в реальном времени. Благодаря тому, что в микроконтроллере используется процессорное ядро и встроенная флэш-память, а также за счет простоты программного обеспечения (ОСРВ, а то и «голый» Си) микроконтроллер, несомненно, имеет преимущество в этом аспекте и прекрасно подходит для приложений, критичных ко времени и требующих поведенческого детерминизма.
Наконец, следует учесть потребление энергии. хотя среди микропроцессоров имеются модели с малым потреблением, их не так много, а потребляют они больше, чем типовые МК. Кроме того, из-за дополнительного внешнего оборудования перевод МП в режим малого потребления может оказаться более сложным. В целом, действительное потребление энергии у МК в разы меньше, чем у МП; в режиме малого потребления с сохранением содержимого памяти и регистров можно
говорить о коэффициенте 10–100. Очевидно, это напрямую зависит от объема памяти, занимаемой ОС и потому требующей сохранения питания для немедленного возобновления работы. Таким образом, в числе многих факторов, учитываемых при выборе между МК и МП, оказываются производительность, функциональные возможности и перечень используемых элементов. В первом приближении, МК применяются в недорогих устройствах, где важны цена и потребление энергии. Область применения микропроцессоров — приложения с широкими функциональными возможностями и высокой производительностью. Микроконтроллеры предпочтительны в тех случаях, когда, в первую очередь, требуется обеспечить сверхмалое потребление энергии: в удаленном управлении, потребительской электронике и интеллектуальных измерительных приборах, где упор делается на время работы батарей при пользовательском интерфейсе с минимальным функционалом или даже полном его отсутствии. Они также применяются в тех случаях, когда необходимо обеспечить детерминистское поведение. Микропроцессоры идеальны для промышленных и потребительских приложений на основе ОС с интенсивными вычислениями, множеством высокоскоростных соединений и полнофункциональным пользовательским интерфейсом.

Журнал «Электронные компоненты» №08 2013

Ссылка на основную публикацию