11 мифов о 8-разрядных микроконтроллерах
19.03.2018167

Остроумное эссе Вейна Фримена (Wayne Freeman) о преимуществах 8-битной архитектуры микроконтроллеров было опубликовано в авторитетном отраслевом издании ElectronicDesign и, даже не смотря на некоторую противоречивость, безусловно, стоит внимания разработчиков встраиваемых систем.

wayne-freeman-about-8-bit-systems-2

wayne-freeman-about-8-bit-systems-1>В этом году первому 8-разрядному микроконтроллеру исполняется 46 лет. Несмотря на солидный возраст и пестрый список проблем, эта архитектура даже сейчас находит свой путь во множество новых встраиваемых приложений. Безусловно, четыре последних десятилетия технологического прогресса породили более быстрые и мощные микроконтроллеры, постоянно угрожающие занять рыночную нишу 8-битных устройств.

Инженеры, которые достаточно молоды, чтобы уже не застать Берлинскую стену или Советский Союз, предпочитают отказываться от эффективной простоты 8-битных контроллеров в поисках обещанной бесконечной вычислительной мощности 32-битных приборов. Но, в самом ли деле 32-разрядные микроконтроллеры являются лучшим выбором для любого приложения? Давайте рассмотрим наиболее распространенные мифы и заблуждения, касающиеся старейшины ранка встраиваемых систем.

 

  1. 8-битные микроконтроллеры уходят прочь.

Хотите верьте, хотите нет – но это самое распространенное заблуждение, с которым мы сталкиваемся в области 8-разрядных встраиваемых устройств.

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

Давайте попробуем подкрепить наше обсуждение некоторыми конкретными данными. Согласно отчету исследовательской компании Gartner за 2015 год, объемы продаж 8- и 32-битных устройств в долларовом выражении были примерно равны и составляли около $6 млрд. С учетом разницы средних цен, эти цифры говорят о том, что в 2015 году на один встраиваемый 32-битный микроконтроллер приходилось три 8-битных. Так что же, они уходят прочь? Не так скоро.

 

  1. В 8-битных устройствах нет ничего нового. Никаких инноваций.

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

wayne-freeman-about-8-bit-systems-3

Например, линейки 8-битных микроконтроллеров PIC и AVR имеют независимую от ядра периферию (core independent peripherals – CIP), работающую без участия центрального процессора и способную обмениваться данными друг с другом (см. рисунок). Это помогает повысить эффективность и быстродействие системы при одновременном снижении энергопотребления. В сочетании с современными средствами ускорения разработки, такими как MPLAB Code Configurator и Atmel START, эти инновационные 8-битные приборы позволяют конструкторам пройти путь от прототипа до серийного производства за считанные месяцы.

 

  1. 8-битные процессоры очень сложно программировать на C и других языках высокого уровня.

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

В микроконтроллерах современного семейства PIC16 «F1» есть несколько инструкций, полностью посвященных устранению любых проблем, связанных со страницами и адресацией. Если этого недостаточно, то архитектуры PIC18 и AVR имеют большие пространства линейных адресов, специально созданные для компиляторов языков высокого уровня. Естественно, что современные интегрированные среды разработки все эти проблемы сделали несущественными.

 

  1. 8-битные микроконтроллеры можно использовать только в простых приложениях.

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

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

 

  1. Мощности 8-битных устройств недостаточно для устройств Интернета вещей.

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

 

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

 

  1. 8-битные процессоры слишком медленны, чтобы реагировать на критические системные события.

Помните об этом: время отклика на критические системные события связано с задержкой и детерминизмом.

Не секрет, что почти все 32-разрядные микроконтроллеры при работе на полной скорости превосходят 8-битные приборы на их максимальной тактовой частоте. Однако большинство приложений не располагает бюджетом мощности, достаточным для того, чтобы 100% времени поддерживать работу любого микроконтроллера на максимальной скорости. Поэтому общая практика проектирования заключается в том, чтобы использовать режим ожидания процессора для снижения энергопотребления, пока он не нужен, и разбудить его с помощью аппаратного прерывания, когда процессор понадобится вновь. Но такой подход порождает две самые большие проблемы, с которыми сталкиваются приложения во время работы: неопределенность времени запуска и задержки реакции на прерывание. Эти факторы должны обязательно приниматься во внимание при программировании приложения, так как в противном случае результаты могут быть катастрофическими.

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

 

  1. 32-битные микроконтроллеры более энергоэффективны, чем 8-битные.

Так же, как все знают, что 32-битные микроконтроллеры – самые быстрые во встраиваемых устройствах, точно также все понимают, что более быстрым 32-битникам требуется больше энергии. Тут спорить не очем, но некоторые инженерыпочему-то считают, что могут немного «обмануть систему». В основном, они исходят из того, что, ускоряя работу процессора, можно быстрее выполнять вычисления и на большее [оставшееся] время погружать процессор в спячку. При этом выходит, 3что 2-битные микроконтроллеры более энергоэффективны, чем 8-битные, правильно? Нет, не правильно.

Даже если на обеих архитектурах вы выполняете примерно эквивалентные подпрограммы, гораздо более низкое потребление энергии в активном режиме 8-битного микроконтроллера гарантирует больший срок службы крошечной батареи. Добавьте к этому тот факт, что большинство современных 8-битных микроконтроллеров имеют лучший баланс периферийных функций, чем 32-разрядные устройства сопоставимой стоимости. Это позволяет «менее мощным» микроконтроллерам выполнять больше задач на аппаратном уровне, оставляя центральному процессору больше времени для спящего режима. В некоторых распространенных приложениях, использующих новые 8-битные микроконтроллеры PIC и AVR, время активного состояния центрального процессора почти равно нулю.

 

  1. 32-битные стоят столько же, но имеют удвоенную производительность.

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

Современные 8-битные микроконтроллеры оснащены интеллектуальными аналоговыми периферийными устройствами, способными без вмешательства центрального процессора автоматизировать задачи анализа сигналов, предоставлять корректирующую информацию широтно-импульсным модуляторам (ШИМ) и обеспечивать автоматическое отключение. Эти 8-битные устройства могут значить сократить количество внешних компонентов и, таким образом, сократить стоимость встраиваемого устройства. Лучший совет – посмотреть на реальные потребности всего приложения и выбрать микроконтроллер, который сможет решить задачу при минимальной стоимости системы. Тогда вы никогда не ошибетесь при выборе оптимальной конфигурации своей системы.

 

  1. У 8-битных решений нет перспективы.

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

Выбор «самой подходящей» архитектуры для любого проекта основан на пожеланиях и требованиях, которые должны быть определены на начальном этапе проектирования. Такой подход позволит сократить стоимость разработки программ и аппаратуры до минимума. 8-битные микроконтроллеры PIC или AVR часто помогают снизить общую стоимость аппаратного оборудования, а встроенные в «железо» функции могут значительно снизить затраты на программирование в течение всего срока службы устройства.

 

  1. 32-битные микроконтроллеры сокращают время разработки программ.

Написать программный код несложно. Намного сложнее написать работающий код. Люди, поддерживающие миф №10, обычно недооценивают количество времени и усилий, необходимых для тестирования, отладки и проверки их кода в рабочем приложении. Или же все они гении программирования. Один день кодирования может вылиться в месяцы проверки (см. иллюстрацию).

wayne-freeman-about-8-bit-systems-4

Приложения, использующие 32-разрядные микроконтроллеры, как правило, ориентированы на программное обеспечение. Это означает, что вся необходимая функциональность реализуется в подпрограммах, поэтому эффективного способа избежать цикла отладки не существует. Современные 8-битные микроконтроллеры PIC и AVR предназначены для более эффективного использования своих периферийных устройств, чтобы сократить количество строк кода, необходимых для реализации общих функций. Это ускоряет процесс разработки, поскольку программирование становится простым, а функциональность аппаратной части проверена на заводе (см. рисунок).

wayne-freeman-about-8-bit-systems-5

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

 

  1. Миграция с 8-битных микропроцессоров невозможна.

Возможность миграции зависит в большей степени от используемой среды разработки, чем от какого-либо конкретного микроконтроллера или части оборудования. Если миграция является ключевой проблемой, то лучше всего использовать микроконтроллеры производителя, предлагающего «полную линейку» 8-, 16- и 32-битных приборов, поддерживаемых совместимой экосистемой разработки. В наши дни именно среда разработки, а не оборудование, определяет легкость перехода от одного микроконтроллера к другому. Хорошо продуманная среда разработки, такая как MPLAB X или Atmel START, позволяет пользователям реализовать свои идеи на любом микроконтроллере конкретного производителя.

Если вы проектируете очередной Linux-суперкомпьютер, который будет носиться на запястье, то имеет смысл начинать и заканчивать поиск микроконтроллера среди новейших и лучших 32-битных устройств. Но если вы, как и все остальные, добавляете в обычные повседневные системы интеллект, управляемость и детерминизм, вы совершили бы большую ошибку, если бы не включили в свой список новые 8-битные микроконтроллеры. Вы получите наименьшую мощность потребления, невероятно полезные периферийные устройства и исключительную простоту разработки. Что вам в этом не нравится?


vd-mais-professional-distributorЗа консультациями по применению современной компонентной базы для производства электронных приборов обращайтесь в отдел электронных компонентов фирмы VD MAIS — профессионального дистрибьютора электронных компонентов от ведущих мировых производителей для различных отраслей промышленности Украины.