Как показывают тенденции рынка микроконтроллеров, растет популярность не только 32-разрядных устройств. По совокупному среднегодовому темпу роста им почти не уступают 8-разрядные микроконтроллеры: 6,4% против 6,9%. В статье предпринимается попытка проанализировать причины такого положения дел.
Существенные различия
Основные различия между 8- и 32-разрядными микроконтроллерами – в стоимости, производительности процессорного ядра, функциональных возможностях и энергопотреблении в статическом режиме. Начиная новый проект, разработчики должны тщательно оценить требования к микроконтроллеру в части мощности процессорного ядра, наличия интерфейсов и – для устройств с питанием от батарей – величины энергопотребления. Несомненно, у 32-разрядных микроконтроллеров более высокая производительность по сравнению с 8-разрядными, но инженеры сталкиваются с традиционной проблемой выбора между тем, что доступно на рынке и тем, что действительно необходимо для их приложений. Целесообразно выбирать устройство, наиболее подходящее для приложения, и не задумываться о том, какое процессорное ядро – 8- или 32-разрядное – предпочтительнее.
Разумеется, такой выбор будет оказывать значительное влияние на себестоимость конечного изделия. Если сравнить стоимость 8- и 32-разрядных микроконтроллеров ведущих производителей со схожими объемом флеш-памяти, числом выводов и др., то окажется, что 8-разрядные устройства примерно на 20% дешевле. Но это только один из факторов, которые необходимо учитывать. Другой аспект – удобство разработки нового изделия.
Удобство разработки
Поставщики микроконтроллеров стремятся добавить больше функций в свои 32-разрядные устройства, чем в 8-разрядные. Но в более сложном устройстве приходится иметь дело с большим количеством возможных настроек. И хотя некоторые 32-разрядные микроконтроллеры могут работать с ограниченным набором функций, аналогичным 8-разрядным устройствам, такой режим неприменим, если нужно использовать дополнительные возможности более мощных устройств. Например, типичный 32-разрядный микроконтроллер на базе ARM-процессора будет иметь независимые настройки синхросигналов для самого ядра, шин AHB и APB. Все они могут функционировать на различных частотах.
С 8-разрядными микроконтроллерами ситуация проще. В них внутренние регистры, периферийные устройства и SRAM-память используют одну и ту же шину данных. Периферия и процессорное ядро, как правило, работают на одной частоте, поэтому разработчики могут не заботиться о задержках, возникающих при синхронизации передачи данных между различными частотными доменами.
Производительность
Когда речь заходит о требуемой производительности микроконтроллера, инженер должен рассмотреть все случаи его использования. Реальность такова, что во многих приложениях для встраиваемых систем не нужна высокая производительность. Часто выполняется очень мало операций с данными, поэтому важно выбрать правильный баланс между необходимой для этого производительностью и другими требованиями – энергопотреблением и набором интерфейсов. Например, простая система с термостатом большую часть времени находится в спящем режиме. Время от времени она пробуждается, измеряет температуру, а затем принимает решение о включении/выключении реле либо отправке команды центральному контроллеру. И после этого снова переходит в спящий режим. Вычислительные потребности такой системы малы, так же как и многих других приложений: пожарных датчиков, расходомеров и др.
Эффективность аппаратных функций
Многие современные микроконтроллеры включают аппаратные функции, которые помогают процессорному ядру работать максимально эффективно. В случае Atmel, как 8-разрядные AVR, так и 32-разрядные ARM-семейства оснащены так называемой периферийной системой событий (Peripheral Event System). Это набор аппаратных функций, которые позволяют периферийным устройствам взаимодействовать без вмешательства процессорного ядра. Таким образом периферийные модули могут посылать сигналы непосредственно другим модулям, гарантируя короткое и на 100% предсказуемое время отклика. При полном задействовании возможностей системы событий можно конфигурировать микросхему для выполнения комплексных операций при минимальном участии процессорного ядра, экономя как память программ, так и время вычислений.
При наступлении аппаратного события нужно передать управление соответствующей программе обработки прерываний (interrupt service routine, ISR). В такой ситуации скорость процессорного ядра – не единственный определяющий фактор. Вопрос и в том, как много времени, в терминах циклов, потребуется, чтобы отреагировать на прерывание, запустить ISR и вернуться в исходное состояние. 8-разрядные устройства во многих случаях требуют гораздо меньше циклов, чем 32-разрядные. Например, если сравнить процедуру получения одного байта через интерфейс SPI с помощью двух микроконтроллеров компании Atmel: 8-разрядного AVR и 32-разрядного на базе ядра ARM Cortex M0+, то оказывается, что в первом случае может быть достаточно 12 циклов, а во втором потребуется 33 цикла.
Требуемый объем памяти также различается у 8- и 32-разрядных устройств. Например, для выполнения одного и того же 8-разрядного приложения на 32-разрядном микроконтроллере нужно от полутора до трех раз больше SRAM, чем на 8-разрядном.
Энергопотребление
В статье о микроконтроллерах нельзя обойти вниманием их энергопотребление. Само по себе это может быть ключевым фактором при выборе между 8- или 32-разрядным устройством, особенно для приложений с батарейным питанием. Проиллюстрируем разницу в энергопотреблении различных микроконтроллеров как в статическом, так и в динамическом (активном) режимах (табл.2). Следует отметить, что энергопотребление сильно возрастает по мере увеличения температуры, что часто не учитывают при проектировании потребительских устройств. А ведь мобильные телефоны и личные медиаплееры берут с собой повсюду и, как мы знаем по собственному опыту, температура летом внутри автомобиля может превышать 40°C.
Значительное влияние на увеличение потребляемой устройством энергии оказывает время, которое микроконтроллер проводит в активном режиме. Разумеется, соотношение между работой в активном и статическом режимах будет зависеть от требований приложения. Для приведенного выше примера с прерыванием при пропускной способности SPI-интерфейса 80 Кбайт/c 8-разрядное процессорное ядро будет находиться в активном режиме 1,2% времени, а 32-разрядное – 3,3%, что, соответственно, скажется на их энергопотреблении (табл.3).
Таким образом, не всегда мощные микроконтроллеры являются оптимальным выбором. Есть ряд 8-разрядных устройств, которые удовлетворяют потребностям многих задач, в том числе при реализации беспроводных решений в приложениях Интернета вещей.
Основные различия между 8- и 32-разрядными микроконтроллерами – в стоимости, производительности процессорного ядра, функциональных возможностях и энергопотреблении в статическом режиме. Начиная новый проект, разработчики должны тщательно оценить требования к микроконтроллеру в части мощности процессорного ядра, наличия интерфейсов и – для устройств с питанием от батарей – величины энергопотребления. Несомненно, у 32-разрядных микроконтроллеров более высокая производительность по сравнению с 8-разрядными, но инженеры сталкиваются с традиционной проблемой выбора между тем, что доступно на рынке и тем, что действительно необходимо для их приложений. Целесообразно выбирать устройство, наиболее подходящее для приложения, и не задумываться о том, какое процессорное ядро – 8- или 32-разрядное – предпочтительнее.
Разумеется, такой выбор будет оказывать значительное влияние на себестоимость конечного изделия. Если сравнить стоимость 8- и 32-разрядных микроконтроллеров ведущих производителей со схожими объемом флеш-памяти, числом выводов и др., то окажется, что 8-разрядные устройства примерно на 20% дешевле. Но это только один из факторов, которые необходимо учитывать. Другой аспект – удобство разработки нового изделия.
Удобство разработки
Поставщики микроконтроллеров стремятся добавить больше функций в свои 32-разрядные устройства, чем в 8-разрядные. Но в более сложном устройстве приходится иметь дело с большим количеством возможных настроек. И хотя некоторые 32-разрядные микроконтроллеры могут работать с ограниченным набором функций, аналогичным 8-разрядным устройствам, такой режим неприменим, если нужно использовать дополнительные возможности более мощных устройств. Например, типичный 32-разрядный микроконтроллер на базе ARM-процессора будет иметь независимые настройки синхросигналов для самого ядра, шин AHB и APB. Все они могут функционировать на различных частотах.
С 8-разрядными микроконтроллерами ситуация проще. В них внутренние регистры, периферийные устройства и SRAM-память используют одну и ту же шину данных. Периферия и процессорное ядро, как правило, работают на одной частоте, поэтому разработчики могут не заботиться о задержках, возникающих при синхронизации передачи данных между различными частотными доменами.
Производительность
Когда речь заходит о требуемой производительности микроконтроллера, инженер должен рассмотреть все случаи его использования. Реальность такова, что во многих приложениях для встраиваемых систем не нужна высокая производительность. Часто выполняется очень мало операций с данными, поэтому важно выбрать правильный баланс между необходимой для этого производительностью и другими требованиями – энергопотреблением и набором интерфейсов. Например, простая система с термостатом большую часть времени находится в спящем режиме. Время от времени она пробуждается, измеряет температуру, а затем принимает решение о включении/выключении реле либо отправке команды центральному контроллеру. И после этого снова переходит в спящий режим. Вычислительные потребности такой системы малы, так же как и многих других приложений: пожарных датчиков, расходомеров и др.
Эффективность аппаратных функций
Многие современные микроконтроллеры включают аппаратные функции, которые помогают процессорному ядру работать максимально эффективно. В случае Atmel, как 8-разрядные AVR, так и 32-разрядные ARM-семейства оснащены так называемой периферийной системой событий (Peripheral Event System). Это набор аппаратных функций, которые позволяют периферийным устройствам взаимодействовать без вмешательства процессорного ядра. Таким образом периферийные модули могут посылать сигналы непосредственно другим модулям, гарантируя короткое и на 100% предсказуемое время отклика. При полном задействовании возможностей системы событий можно конфигурировать микросхему для выполнения комплексных операций при минимальном участии процессорного ядра, экономя как память программ, так и время вычислений.
При наступлении аппаратного события нужно передать управление соответствующей программе обработки прерываний (interrupt service routine, ISR). В такой ситуации скорость процессорного ядра – не единственный определяющий фактор. Вопрос и в том, как много времени, в терминах циклов, потребуется, чтобы отреагировать на прерывание, запустить ISR и вернуться в исходное состояние. 8-разрядные устройства во многих случаях требуют гораздо меньше циклов, чем 32-разрядные. Например, если сравнить процедуру получения одного байта через интерфейс SPI с помощью двух микроконтроллеров компании Atmel: 8-разрядного AVR и 32-разрядного на базе ядра ARM Cortex M0+, то оказывается, что в первом случае может быть достаточно 12 циклов, а во втором потребуется 33 цикла.
Требуемый объем памяти также различается у 8- и 32-разрядных устройств. Например, для выполнения одного и того же 8-разрядного приложения на 32-разрядном микроконтроллере нужно от полутора до трех раз больше SRAM, чем на 8-разрядном.
Энергопотребление
В статье о микроконтроллерах нельзя обойти вниманием их энергопотребление. Само по себе это может быть ключевым фактором при выборе между 8- или 32-разрядным устройством, особенно для приложений с батарейным питанием. Проиллюстрируем разницу в энергопотреблении различных микроконтроллеров как в статическом, так и в динамическом (активном) режимах (табл.2). Следует отметить, что энергопотребление сильно возрастает по мере увеличения температуры, что часто не учитывают при проектировании потребительских устройств. А ведь мобильные телефоны и личные медиаплееры берут с собой повсюду и, как мы знаем по собственному опыту, температура летом внутри автомобиля может превышать 40°C.
Значительное влияние на увеличение потребляемой устройством энергии оказывает время, которое микроконтроллер проводит в активном режиме. Разумеется, соотношение между работой в активном и статическом режимах будет зависеть от требований приложения. Для приведенного выше примера с прерыванием при пропускной способности SPI-интерфейса 80 Кбайт/c 8-разрядное процессорное ядро будет находиться в активном режиме 1,2% времени, а 32-разрядное – 3,3%, что, соответственно, скажется на их энергопотреблении (табл.3).
Таким образом, не всегда мощные микроконтроллеры являются оптимальным выбором. Есть ряд 8-разрядных устройств, которые удовлетворяют потребностям многих задач, в том числе при реализации беспроводных решений в приложениях Интернета вещей.
Отзывы читателей