В данной статье описываются особенности применения микроконтроллеров в автономных устройствах. Рассматриваются такие характеристики микроконтроллеров как: диапазоны питания, производительность, режимы пониженного энергопотребления, наборы инструкций, ПЗУ, ОЗУ, интерфейсы микроконтроллеров фирм Motorola, Atmel, Microchip.
![](https://kazus.ru/nuke/objects/articles/68/image/choice_pic.gif)
Рис.1
Микроконтроллеры являются основной частью для большинства современных автономных устройств. Он может выполнять как функции управления, так и служить промежуточным звеном между исследуемым объектом и устройством верхнего уровня. На рис.1 представлена обобщенная функциональная схема автономного измерительного устройства. Сигналы с датчиков D1-Dn поступают на преобразователи сигнала П1-Пn, после чего оцифровываются в АЦП1-АЦПn и через порты ввода/вывода попадают непосредственно в микроконтроллер. Блок АЦП нужен не всегда, например, если встроенное АЦП микроконтроллера удовлетворяет техническим требованиям, то можно им воспользоваться.
Полученная информация может храниться в ОЗУ микроконтроллера, во встроенном ППЗУ (перепрограммируемое постоянное запоминающее устройство), а если объема памяти недостаточно, то данные могут храниться во внешнем ППЗУ, либо по интерфейсу передаваться в устройство верхнего уровня. С помощью микроконтроллера намного легче организовывать различные функциональные узлы, что приводит к минимизации затрат времени и денег. Это объясняется тем, что в нем помимо микропроцессорного блока существуют и ряд периферийных модулей, которые могут заменять дополнительные схемы. Так, цифровой порт ввода/вывода может служить для управления какими-либо устройствами, и, одновременно принимать от них дискретные сигналы. Аналоговый порт/ввода вывода предназначен для тех же целей, только с аналоговыми сигналами. Последовательный порт незаменим для организации связи с другими микросхемами или устройствами. Но, в отличие от ряда других функциональных узлов, отказ микроконтроллера приводит к отказу всей системы. Поэтому при разработке устройств, выбору микроконтроллера уделяется особое внимание.
Требования, предъявляемые к микроконтроллерам в автономных устройствах, несколько отличаются от стандартных требований. Тогда как в стационарных устройствах требования к пониженному энергопотреблению микроконтроллеров не являются определяющими, в автономных устройствах они выходят на передней план. Также следует не забывать и про надежность микроконтроллеров, а, следовательно, и всей системы, ведь зачастую, автономная аппаратура вынуждена работать в полевых условиях. Есть еще ряд причин, которые позволяют отделить выбор микроконтроллера для автономных устройств от выбора микроконтроллера для стационарных систем.
Зачастую автономные устройства это системы с автономным питанием, то есть с питанием от батареек или аккумуляторов. В данном случае, желательно использовать микроконтроллер с расширенным либо с пониженном диапазоном питания. Микроконтроллеры с расширенным диапазоном питания относительно неприхотливы к напряжению питания и подходят как для устройств с сетевым, так и с автономным питанием. Микроконтроллеры с пониженным диапазоном питания предназначены для изделий с автономным питанием, т.к. их ток потребления в несколько раз меньше тока потребления других микросхем. В то же время следует помнить, что микроконтроллеры с пониженным диапазоном питания обычно имеют меньшую максимальную частоту тактирования. Поэтому сначала надо рассчитать требуемую тактовую частоту микроконтроллера, а только затем выбирать его тип.
Для микроконтроллеров, которые питаются от автономного источника напряжения, обязательна функция сброса по снижению напряжения питания. Если напряжение микроконтроллера опускается ниже определенного значения на заданное время, то происходит сброс. Также следует не забывать про режимы пониженного энергопотребления микроконтроллера. В данных режимах микроконтроллер не выполняет часть своих функций, однако потребляет намного меньше тока. У каждого типа микроконтроллера существуют свои особенности в построении, которые зачастую существенно отличаются друг от друга. Наиболее распространенными являются восьмиразрядные микроконтроллеры, поэтому рассмотрим особенности построения средних семейств восьмиразрядных микроконтроллеров ведущих фирм, таких как Microchip (PIC-контроллеры), Motorola и Atmel (AVR), применительно к автономным устройствам.
Микроконтроллеры фирмы Motorola семейства HC08 имеют 2 режима пониженного энергопотребления. В режиме ожидания (Wait mode) останавливается тактовый генератор центрального процессора, однако продолжается тактирование периферийных модулей и разрешаются прерывания. Также существует возможность программно отключать неиспользуемые периферийные модули, что приводит к меньшему энергопотреблению. Выход из этого режима может быть осуществлен по сигналу внешнего сброса, по переполнению сторожевого таймера, по запросу внешних прерываний и прерываний от периферийных модулей. В режиме останова (Stop mode) прекращается тактирование всей схемы микроконтроллера, и разрешаются прерывания. Выход из этого режима также может быть осуществлен по сигналу внешнего сброса и по запросу внешних прерываний.
У микроконтроллеров фирмы Microchip среднего семейства существует один режим энергосбережения – Sleep mode. В данном режиме выключается тактовый генератор микроконтроллера, сбрасывается сторожевой таймер, порты ввода/вывода свое состояние не изменяют. Выход из режима Sleep mode происходит при подачи сигнала внешнего сброса, при переполнении сторожевого таймера (если он разрешен) и при периферийном прерывании.
Для микроконтроллеров семейства Classic AVR предусмотрено 2 режима пониженного энергопотребления. При работе микроконтроллера в режиме холостого хода (Idle mode) центральный процессор останавливается, но продолжается тактирование таймеров/счетчиков и сторожевого таймера. Если прерывание от аналогового компаратора не требуется, то он может быть программно отключен. Выход из режима холостого хода происходит как от внешних прерываний, так и по переполнению таймеров/счетчиков или по сбросу сторожевого таймера. Когда микроконтроллер работает в экономичном режиме (Power Down Mode) останавливается генератор тактовых импульсов. Если разрешена работа сторожевого таймера, то выход из экономичного режима может произойти при его переполнении. В противном случае, выход произойдет только по сигналу внешнего сброса или внешнего прерывания.
Для микроконтроллеров семейства Classic AVR предусмотрено 2 режима пониженного энергопотребления. При работе микроконтроллера в режиме холостого хода (Idle mode) центральный процессор останавливается, но продолжается тактирование таймеров/счетчиков и сторожевого таймера. Если прерывание от аналогового компаратора не требуется, то он может быть программно отключен. Выход из режима холостого хода происходит как от внешних прерываний, так и по переполнению таймеров/счетчиков или по сбросу сторожевого таймера. Когда микроконтроллер работает в экономичном режиме (Power Down Mode) останавливается генератор тактовых импульсов. Если разрешена работа сторожевого таймера, то выход из экономичного режима может произойти при его переполнении. В противном случае, выход произойдет только по сигналу внешнего сброса или внешнего прерывания.
Из всего вышесказанного можно сделать вывод, что с точки зрения пониженного энергопотребления, микроконтроллеры фирм Motorola и AVR являются более предпочтительными, чем PIC-контроллеры. Это обусловлено наличием у данных микроконтроллеров двух режимов пониженного энергопотребления, тогда как у PIC-контроллеров он только один.
Основной целью выбора микроконтроллера является нахождение такой микросхемы, которая полностью бы удовлетворяла техническому заданию на устройство, но в тоже время была бы наименее дорогой. Прежде всего, следует определиться какой набор функций должен выполнять микроконтроллер. Как правило, микроконтроллер представляет собой законченную микропроцессорную систему, выполненную на одном кристалле, которая содержит основные функциональные блоки микропроцессорной системы (центральный процессор, постоянное запоминающее устройство, оперативное запоминающее устройство и периферийные устройства для ввода и вывода информации). В настоящее время всеми ведущими компаниями широко используется модульный принцип построения микроконтроллеров. При таком способе построения, у микроконтроллеров одного семейства есть базовый функциональный блок (процессорное ядро), который одинаковый для всех микроконтроллеров семейства, и изменяемый функциональный блок, который отличает микроконтроллеры разных моделей в приделах одного семейства. В изменяемый функциональный блок входят модули различных типов памяти, модули встроенных генераторов синхронизации, модули периферийных устройств и некоторые другие модули.
Как для автономных, так и для стационарных систем, одним из основных критериев выбора микроконтроллера является его производительность, которая напрямую зависит от производительности процессорного ядра. В настоящее время применяются 2 принципа построения ядра: с полной системой команд (CISC) и с сокращенной системой команд (RISC). По первому принципу построены микроконтроллеры таких производителей, как Motorola, Philips, Dallas, часть продукции Atmel. Микроконтроллеры с RISC архитектурой производятся фирмами Microchip, Scenix, Atmel.
Для процессора с CISC архитектурой применяется однобайтовый, двухбайтовый, трехбайтовый или четырехбайтовый формат команды. Выборка команды из памяти осуществляется в течение нескольких циклов синхронизации. Формат команд для RISC-процессоров может быть произвольным, например 14 или 16 байт, а выборка осуществляется за 1 цикл синхронизации, поэтому микроконтроллеры с RISC архитектурой имеют более высокую производительность по сравнению с CISC-контроллерами. Однако, следует учесть и внутреннее изменение тактовой частоты, так в PIC-контроллерах (Microchip) частота делится на 4, в микроконтроллерах AVR (Atmel) частота не изменяется, а в микроконтроллерах фирмы Motorola - увеличивается. Кроме того, у каждого типа микроконтроллера существует свой набор команд: семейство Classic AVR насчитывают 120 команд; система команд микроконтроллеров Motorola семейства HC08 включает 90 инструкций; среднее семейство PIC-контроллеров содержит 35 инструкций. Чем больше инструкций «понимает» процессор, тем меньше получается размер программы, а, следовательно, экономится память программ и увеличивается быстродействие. Также следует учесть, что производительность зависит от выполняемой программы. Так, в автономных измерительных устройствах редко используются сложные математические алгоритмы, поэтому наличие в системе таких инструкций, как деление и умножение не является определяющим. Автономные устройства часто используются для сбора различных данных, а для их хранения требуется формировать таблицы. В данном случае будут полезны команды ветвления и переходов, а также различные способы адресации. Исходя из этого, микроконтроллеры фирмы Motorola и AVR обладают наибольшем количеством требуемых инструкций, однако нельзя однозначно сказать, что их производительность выше, чем у PIC-контроллеров. Производительность микроконтроллера следует определять для каждого конкретного случая.
Практически все современные микроконтроллеры имеют закрытую архитектуру, т.е. не используют внешние микросхемы для хранения памяти программ. Как правило, для автономных устройств не требуется большой объем памяти программ, так что рассмотрим только ею технологию изготовления. В настоящие время широко применяются 2 типа памяти программ – однократно программируемое пользователем ПЗУ (OTPROM) и Flash память. OTPROM уже давно используется в микроконтроллерах и является конкурентоспособной благодаря достаточно небольшой цене. Flash память стоит несколько дороже, однако имеет ряд несомненных преимуществ перед OTPROM. В отличие от OTPROM, Flash память многократно программируемая, причем имеет достаточно большое число циклов стирания/программирования. Это может оказаться полезным при модернизации устройств. Если микроконтроллер с OTPROM придется заменить, то в микроконтроллер с Flash памятью надо всего лишь записать новую программу. Причем у большинства современных микроконтроллеров есть режим внутрисхемного (низковольтного) программирования, который позволяет записывать программу в память микроконтроллера непосредственно на плате изделия. Также Flash память программ очень удобна при разработке программы, когда приходиться много раз перепрограммировать контроллер.
Для микроконтроллеров фирмы Motorola семейства HC08 гарантированное число циклов стирания/записи составляет 105, информация хранится на протяжении 10 лет и имеется низковольтный режим программирования. Flash память микроконтроллеров AVR и среднего семейства PIC-контроллеров может перепрограммироваться 1000 раз, также имеется низковольтный режим программирования. Видно, что у рассматриваемых микроконтроллеров, характеристики Flash памяти программ у изделий фирмы Motorola наиболее лучшие.
Рассмотрим оперативную память микроконтроллеров фирм Microcip, Atmel, Motorola. ОЗУ микроконтроллеров первых двух компаний сделано по Гарвардской архитектуре, а у микроконтроллеров фирмы Motorola общее адресное пространство памяти программ и памяти данных. Автономные устройства часто работают без возможности самостоятельной передачи данных пользователю, поэтому необходимо место для хранения информации. Одним из решений является хранение данных в ОЗУ, следовательно, чем больше объем ОЗУ, тем больше данных может в нем храниться.
У микроконтроллеров AVR (семейство Classic AVR) максимальный объем ОЗУ составляет 512 байт, у микроконтроллеров Motorola семейства HC08 – 2КБ, а у PIC-контроллеров 368 байт. Кроме того, для автономных систем, очень важен такой параметр как напряжение хранения информации. Если напряжение питания снижается ниже минимально допустимого уровня, но выше напряжения хранения информации, то программа не выполняется, а данные в ОЗУ сохраняются. Напряжение хранения информации в микроконтроллерах фирмы Motorola, PIC и AVR составляет порядка 1-1,5В. Объем ОЗУ у микроконтроллеров фирмы Motorola семейства HC08 в несколько раз больше, чем у PIC-контроллерах или AVR, следовательно они могут хранить набольшее количество информации в ОЗУ.
Одной из важнейших особенностей микроконтроллера в автономном устройстве является наличие интерфейса. Интерфейс служит для двух целей: первая это организация связи автономного устройства с другими устройствами (с компьютером или интеллектуальным датчиком), а вторая – связь микроконтроллера с другими микросхемами на плате. Разумеется, часто случается, что автономное устройство работает вне какой-либо системы, и не требуется передачи или прием данных от другого устройства, тогда интерфейс нужен лишь для связи микроконтроллера с другими микросхемами. В настоящее время, большое количество интегральных микросхем имеют интерфейсы для обмена данными, например, микросхемы памяти, АЦП, ЦАП. Это значительно упрощает схемотехнику платы, и что особенно важно для автономных устройств - уменьшает ее размер. В основном, для данных целей применяются последовательные интерфейсы, так как, по сравнению с параллельными, требуется малое число проводов связи или малое число дорожек платы. Интерфейсы можно разделить на периферийные и приборные. Первые являются уже стандартными и общепринятыми интерфейсами, а вторые созданными специально для конкретного случая. Рассмотрим характеристики основных периферийных интерфейсов в средних семействах микроконтроллеров фирм Motorola, Atmel, Microchip.
В семействе микроконтроллеров HC08 фирмы Motorola существуют три модуля последовательных интерфейсов: SPI08, SCI08, msCAN08. Первый модуль реализует интерфейс SPI. SPI-шина представлена тремя общими линиями связи и линией выбора ведомого устройства. Только одно из устройств может быть ведущим, а остальные должны быть определены как ведомые. Для микроконтроллеров семейства HC08 модуль SPI08 обладает следующими характеристиками: поддерживает 2 режима работы (ведущий и ведомый); максимальная скорость обмена в ведущем режиме составляет 4 Мбит/с, а в ведомом – 8 Мбит/с; возможность программной настройки частоты обмена; генерирует запросы на прерывания с разными векторами; генерирует 2 флага нарушения работы. Модуль SCI08 служит для реализации последовательного асинхронного интерфейса SCI и предназначен для обмена с устройствами верхнего уровня. Этот модуль обладает следующими параметрами: дуплексный стандартный асинхронный режим обмена; программная настройка частоты; максимальная скорость обмена равна 131 кбит/с; генерирует запросы на прерывания с разными векторами; генерирует 4 флага нарушения работы. Модуль последовательного интерфейса msCAN08 формирует обмен данными по протоколам CAN2.0A и CAN2.0B. Данный модуль использует 2 вывода микроконтроллера, для подключения к CAN-шине требуется специализированная микросхема. Модуль msCAN08 обладает следующими характеристиками: максимальная скорость передачи - 1 Мбит/с; поддержка запросов данных от других устройств; двойная буферизация принимаемых кадров; тройная буферизация передаваемых кадров.
Часть микроконтроллеров AVR также поддерживают интерфейс SPI. Кроме того, в их состав входит встроенный универсальный асинхронный приемопередатчик UART. Основные характеристики данного модуля: генерация произвольных значений скорости; высокая скорость при низких тактовых частотах; фильтрация шума; определение переполнения; детектирование ошибок кадра; раздельные вектора прерывания.
В состав PIC-контроллеров входят модуль ведущего синхронного последовательного порта (MSSP) и универсальный синхронно-асинхронный приемопередатчик (USART). Модуль MSSP может работать в двух режимах: SPI и Inter-Integrated Circuit (I2C). В режиме SPI микроконтроллер может работать как в качестве ведущего, так и в качестве ведомого устройства. Существует возможность выбора: полярности тактового сигнала; фазы выборки входных данных; активного фронта тактового сигнала; частоты тактового сигнала. Также можно выбрать один из следующих режимов I2C: ведомый режим I2C с 7-разрядной адресацией; ведомый режим I2C с 10-разрядной адресацией; ведущий режим I2C; программная поддержка ведущего режима I2C. Модуль USART может работать в трех режимах: асинхронный полнодуплексный; ведущий синхронный полудуплексный; ведомый синхронный полудуплексный.
В настоящие время наиболее часто используемыми являются интерфейсы SPI и I2C, поэтому PIC-контроллеры являются наиболее предпочтительными в плане реализации связи с другими устройствами.
Таким образом, из всего вышесказанного можно сделать вывод, что микроконтроллеры фирмы Motorola семейства HC08 наиболее предпочтительны для использования в автономных устройствах. Кроме того, данные микроконтроллеры являются одними из самых надежных в мире, за что и были отмечены большим количеством наград. Однако, недостатком этих микроконтроллеров является отсутствие интерфейса I2C, что позволяет PIC-контроллерам в некоторых случаях быть предпочтительней.