Классификация микроконтроллеров

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

По функциональному назначению и по направлению развития микроконтроллеры можно разделить на следующие основные группы, принципиально отличающиеся друг от друга [2,3]:

- коммуникационные, содержащие коммуникационный процессор;

- промышленного управления содержат таймерный сопроцессор и применяются в промышленных системах управления и в автомобильных бортовых системах;

- общего назначения. Эти МК, иногда называемые интегрированными процессорами, содержат модуль центрального процессора, контроллер ПДП, последовательные интерфейсы, АЦП, параллельные порты, часы реального времени и т.д.

- сигнальные микроконтроллеры;

- нечеткие микроконтроллеры.

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

Все КМК имеют похожую структуру, включающую центральный процессор (CPU), осуществляющий общее управление; коммуникационный процессор (CPM), обрабатывающий последовательные данные; модуль системной интеграции (SIM), упрощающий подключение памяти и внешних устройств. В качестве примера КМК можно привести МК фирмы AMD Am186CC, Am186CH и микроконтроллеры фирмы Motorola МС68360, МС68302.

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

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

Коммуникационный микроконтроллер (КМК) МС68302 содержит встроенный коммуникационный процессор, самостоятельно выполняющий программы по обработке практически любого протокола связи. В ПЗУ микрокода изначально содержатся программы, поддерживающие наиболее распространенные протоколы: HDLC, BISYNC, UART, Transparent и другие. Кроме того, программы могут выполняться из двухпортового ОЗУ, что позволяет реализовать практически любой нестандартный протокол и делает данный КМК чрезвычайно универсальным. Три независимых коммуникационных контроллера (SCC) имеют индивидуальные каналы прямого доступа к памяти как на прием, так и на передачу. Взаимодействие со встроенным управляющим процессором 68000 осуществляется через двухпортовое ОЗУ емкостью 1152 байт, половина которого используется для указателей входных/выходных буферов, а вторая половина может использоваться для хранения данных или загрузки микрокода. Коммуникационный процессор обеспечивает одновременную работу всех трех каналов, причем каждый из них может обрабатывать любой из протоколов. Помимо поддержки логических протоколов, МС68302 имеет блок сопряжения с физическими интерфейсами: немультиплексируемый интерфейс с поддержкой модемных сигналов (NMSI) и интерфейсы с временным мультиплексированием, например, ИКМ или ISDN BRI (IDL и GCI). Производительность МС68302 позволяет обрабатывать потоки информации до 2 Мбит/с. Помимо основных последовательных каналов (SCC), МС68302 содержит два контроллера управления обменом SМС, поддерживающие работу с IDL или GCI , а также синхронный последовательный интерфейс SCP.

Управляющий процессор 68000 является базовой моделью широко распространенного семейства 680х0, что предоставляет в распоряжение пользователя огромный выбор апробированного программного обеспечения: от кросс-ассемблеров до операционных систем реального времени, а также готовых аппаратных и программных решений.

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

MC68PM302 является версией со встроенным контроллером PCMCIA. Изменения относительно базовой модели включают, помимо функций PCMCIA и универсального асинхронного последовательного интерфейса 16550, полностью статический процессор, таймер периодических прерываний, синтезатор частоты с ФАПЧ и дополнительные режимы пониженного потребления. МС68РМ302 выпускается в 144-выводном низкопрофильном корпусе TQFP и может устанавливаться в карты PCMCIA Type II.

 
 

МК для промышленного управления. Основной причиной успеха данного класса МК стал широкий набор встроенных функций (рис. 1.1) и, в особенности, наличие мощного таймерного сопроцессора TPU.

 

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

МК общего назначения. Эта группа МК представляет собой микропроцессор общего назначения, объединенный с наиболее распространенной универсальной периферией: модулем системной интеграции, последовательным интерфейсом, таймером и т.д. В силу своей универсальности интегрированные процессоры могут быть использованы практически в любом устройстве, требующем высокой производительности, высокой степени интеграции, гибкости и простоты подключения к внешним устройствам и памяти. Наиболее мощным интегрированным процессором семейства 68300 является МК МС68349 (рис. 1.2). Он разработан для бурно развивающегося рынка интеллектуальной массовой электроники: портативных вычислительных и коммуникационных персональных устройств, требующих высокой производительности при низком потреблении и умеренной цене.

Сигнальные микроконтроллеры (Digital signal processorDSP). В конце 70-х годов появились первые специализированные процессоры, предназначенные для цифровой обработки сигналов (ЦОС) в реальном масштабе времени. Часто в литературе такие процессоры называются сигнальными микропроцессорами (СМП) или цифровыми процессорами обработки сигналов (ЦПОС).

 
 

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

Сигнальные процессоры [4,5] обладают высокой степенью специализации. В них широко используются методы сокращения длительности командного цикла, характерные и для универсальных RISC-процессоров, такие как конвейеризация на уровне отдельных микроинструкций и инструкций, размещение операндов большинства команд в регистрах, использование теневых регистров для сохранения состояния вычислений при переключении контекста, разделение шин команд и данных (Гарвардская архитектура). В то же время для сигнальных процессоров характерным является наличие аппаратного умножителя, позволяющего выполнять умножение двух чисел за один командный такт. В универсальных процессорах умножение обычно реализуется за несколько тактов, как последовательность операций сдвига и сложения. Другой особенностью сигнальных процессоров является включение в систему команд таких операций, как умножение с накоплением MAC (С:=А*В+С с указанным в команде числом выполнения в цикле и с правилом изменения индексов используемых элементов массивов А и В), инверсия бит адреса, разнообразные битовые операции. В сигнальных процессорах реализуется аппаратная поддержка программных циклов, кольцевых буферов. Один или несколько операндов извлекаются из памяти в цикле исполнения команды.

Области применения:

· Коммуникационное оборудование:

- уплотнение каналов передачи данных;

- кодирование аудио- и видеопотоков;

· Системы гидро- и радиолокации;

· Распознавание речи и изображений;

· Речевые и музыкальные синтезаторы;

· Анализаторы спектра;

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

Лучшие современные ЦСП можно характеризовать следующими параметрами:

· Тактовая частота - 1 ГГц и выше;

· Многоядерность;

· Наличие двухуровневого кеша;

· Встроенные многоканальные контроллеры прямого доступа к памяти;

· Быстродействие порядка нескольких тысяч MIPS и MFLOPS;

· Выполнение до 8 параллельных инструкций за такт;

· Совместимость со стандартными шинами (PCI и др.).

Нечеткие микроконтроллеры. Идея построения процессоров с нечеткой логикой (fuzzy logic) основывается на нечеткой математике. Математическая теория нечетких множеств, предложенная проф. Л.А. Заде [19], являясь предметом интенсивных исследований, открывает все большие возможности перед системными аналитиками. Основанные на этой теории различные компьютерные системы, в свою очередь, существенно расширяют область применения нечеткой логики.

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

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

Согласно знаменитой теореме FAT (Fuzzy Approximation Theorem), доказанной Коско, любая математическая система может быть аппроксимирована системой, основанной на нечеткой логике. Свое второе рождение теория нечеткой логики пережила в начале восьмидесятых годов, когда сразу несколько групп исследователей (в основном в США, Японии и СССР) всерьез занялись созданием нечетких систем управления различного применения, использующих нечеткие управляющие алгоритмы [21] и аппаратных средств поддержки нечетких систем [22, 23]. Используя преимущества нечеткой логики, заключающиеся в простоте содержательного представления, можно упростить проблему, представить ее в более доступном виде и повысить производительность системы.

Рис. 1.3. Структура нечеткого процессора

(МНВ - механизм нечеткого вывода).

 

Оказалось возможным создание нечеткого процессора (рис. 1.3), позволяющего выполнять различные нечеткие операции и приближенные рассуждения (нечеткий вывод) в соответствии с правилами логического вывода. В начале 80-ых годов в СССР (Ленинград, Таганрог) велись исследования по разработке нечетких процессоров управления [20, 22], а в 1986 году в AT&T Bell Labs создавались процессоры с “прошитой” нечеткой логикой обработки информации. В начале 90-х компания Adaptive Logic из США выпустила кристалл, сделанный по аналогово-цифровой технологии. Он позволит сократить сроки конструирования многих встроенных систем управления реального времени, заменив собой традиционные схемы нечетких микроконтроллеров. Аппаратный процессор нечеткой логики второго поколения принимает аналоговые сигналы, переводит их в нечеткий формат, затем, применяя соответствующие правила, преобразует результаты в формат обычной логики и далее – в аналоговый сигнал. Все это осуществляется без внешних запоминающих устройств, преобразователей и какого бы ни было программного обеспечения нечеткой логики. Этот процессор относительно прост по сравнению с громоздкими программными обеспечениями. Но так как его основу составляет комбинированный цифровой/аналоговый кристалл, он функционирует на очень высоких скоростях (частота отсчетов входного сигнала – 10 кГц, а скорость расчета – 500 тыс. правил/с), что во многих случаях приводит к лучшим результатам в системах управления по сравнению с более сложными, но медлительными программами.

В Европе и США ведутся интенсивные работы по интеграции fuzzy команд в ассемблеры промышленных контроллеров встроенных устройств (чипы Motorola 68HC11/12/21). Такие аппаратные средства позволяют в несколько раз увеличить скорость выполнения приложений и компактность кода по сравнению с реализацией на обычном ядре. Кроме того, разрабатываются различные варианты fuzzy- сопроцессоров, которые контактируют с центральный процессор через общую шину данных, концентрируют свои усилия на размывании/ уплотнении информации и оптимизации использования правил (продукты Siemens Nixdorf).

Идеи нечеткой логики не являются панацеей и не смогут совершить переворот в компьютерном мире. Нечеткая логика не решит тех задач, которые не решаются на основе логики двоичной, но во многих случаях она удобнее, производительнее и дешевле. Разработанные на ее основе специализированные аппаратные решения (fuzzy-вычислители) позволят получить реальные преимущества в быстродействии. Если каскадировать fuzzy-вычислители, мы получим один из вариантов нейропроцессора или нейронной сети. Во многих случаях эти понятия просто объединяют, называя общим термином «neuro-fuzzy logic».

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

По архитектуресуществует два основных принципа построения микроконтроллеров:

- Гарвардская архитектура

- Архитектура Фон-Неймана

В Гарвардской архитектуре принципиально различаются два вида памяти: память программ и память данных.

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

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

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

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

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

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

По разрядности данных МК можно разделить на следующие основные типы: встраиваемые (embedded) 8-разрядные МК и 16/32-разрядные МК.

Восьмиразрядные МК для встраиваемых систем выпускаются многими Atmel, Motorola, Microchip, AMD, NEC, Hitachi и др.

Разрабатывая идеологию семейства 8-разрядных RISC микроконтроллеров фирма Atmel стремилась предоставить пользователю возможность оптимизировать соотношение «производительность-энергопотребление-стоимость».

Специалисты фирмы Atmel заявляют, что объемы потребления микроконтроллеров семейства AVR и, следовательно, их производства растут. Можно согласиться с тем, что объединив на одном кристалле 8-разрядное RISC CPU с внутрисистемно самопрограммируемой Flash памятью, фирма создала семейство мощных микроконтроллеров, ставших де-факто промышленным стандартом начала нового столетия и являющихся гибким и недорогим решением для большого количества самых разнообразных встраиваемых применений.

С точки зрения внутреннего обмена информацией, взаимодействия процессора с памятью, AVR микроконтроллеры построены по Гарвардской архитектуре с раздельными шинами адресов и данных, раздельными пространствами памяти программ и данных. Важной особенностью процессора AVR микроконтроллеров являются 32 8-разрядных рабочих регистра общего назначения, причем у ряда микроконтроллеров до шести регистров могут быть объединены попарно в 16-разрядные регистры-указатели косвенной адресации пространства памяти (обозначаемые символами X, Y и Z). Все 32 регистра напрямую подсоединены к АЛУ (ALU), обеспечивая взаимодействие команды, выполняемой за один тактовый цикл, с двумя независимыми регистрами или регистром и некоторой константой. Результатом такой архитектуры стала высокая эффективность кодов, обеспечивающая десятикратное повышение производительности, по сравнению с традиционными CISC микроконтроллерами, работающими с той же тактовой частотой.

В отличии от фирмы Atmel восьмиразрядные МК семейства M68HC08 фирма Motorola разрабатывает в соответствии со стратегией проектирования интегральных схем по заданию заказчика (customer-specified integrated circuit - CSIC), в основе которой хорошо отработанное процессорное ядро, под которое наработано большое количество апробированных программных средств и имеются испытанные средства проектирования, и библиотеки модулей встраиваемых периферийных устройств, позволяющие "собрать" на одном кристалле все средства, которые необходимы и достаточны для реализации практически законченной системы. Примером такого, выполненного под конкретный заказ (задачу), прибора может служить микроконтроллер MC68HC908W32 предназначенный для применения в беспроводной телефонии и позволяющий реализовать практически все, за исключением RF, функции, необходимые для реализации беспроводного телефона.

В то же время, фирма разработала и продолжает разрабатывать ориентированные на определенные области применения, но достаточно универсальные микроконтроллеры. Среди них микроконтроллеры, ориентированные на применение в автомобильных и производственных сетях (оснащенные встроенным контроллером CAN), ориентированные на управление электродвигателями (с расширенными возможностями PWM), ориентированные на использование в периферийных устройствах (оснащенные встроенным контроллером USB) и недорогие универсальные микроконтроллеры в малогабаритных корпусах с малым количеством выводов. Во всех этих микроконтроллерах семейства использовано 8-разрядное центральное процессорное устройство (CPU08), обрамленное различными дополнительными модулями встроенной периферии, памятью различной емкости и типов.

До настоящего времени самыми популярными во встраиваемых системах оставались 8-разрядные микроконтроллеры являются МК компании Atmel, которые по показателю цeна/функциональность были вне конкуренции. От существовавших 32-разрядных микроконтроллеров 8-разрядные отличались рядом преимуществ [6]:

- низкой ценой;

- низким потреблением энергии;

- относительной доступностью качественных средств разработки и отладки.

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

Согласно данным маркетингового анализа компании Semico в 2006 г. объём продаж 32-разрядных микроконтроллеров превысил продажи 8 и 16-разрядных микросхем. Анализ показывает, что развитие 16-раз рядных микроконтроллеров идёт существенно более медленными темпами, чем 32-разрядных. Это лишний раз говорит о том, что при принятии решения о смене 8-разрядного микроконтроллера на более мощный в качестве основной стратегической перспективы имеет смысл рассматривать, в первую очередь, сразу 32-разрядные микросхемы, минуя 16-разрядные, за исключением особых случаев.

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

Хотя в своей основе ядро ARM отталкивается от идеологии RISC архитектуры (ограниченный набор команд, очередь выборки инструкций, активное использование регистров и ограниченный доступ к памяти), оно не является «чистым» представителем RISC.

Не все инструкции ARM выполняются за один цикл. Например, есть инструкции, позволяющие переслать между памятью и регистрами 16 слов по 32 разряда. Поскольку подобные операции активно используются компиляторами при каждом вызове и возврате из функций, введение таких инструкций существенно ускоряет работу программы и минимизируют размер кода.

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

Дополнительно к ARM архитектуре могут интегрироваться несколько расширений [6, 7]:

- Thumb – 16-разрядный набор инструкций, улучшающий эффективность использования памяти программ;

- DSP – набор арифметических инструкций для цифровой обработки сигналов;

- Jazelle™ – расширение для аппаратного непосредственного исполнения Java инструкций;

- Media – расширение для 2…4 кратного увеличения скорости обработки аудио и видеосигналов.

Клиентами ARM являются свыше 60 производителей, среди которых можно выделить такие известные компании, как Atmel (выпускает более 20 МК с архитектурой ARM, например- AT91SAM7A1, AT91SAM7SE256), NXP (бывшая Philips) выпускает более 30 МК, например -LPC2294 LPC2146), Analog Devices, Freescale (Motorola) и др.

В настоящее время архитектура ARM занимает лидирующие позиции и охватывает 75% рынка 32-разрядных встраиваемых RISC процессоров.

В качестве примера 16-разрядных микроконтроллеров можно привести высокопроизводительные 16-разрядные МК семейства PIC24F и PIC24H, которые были разработаны компанией Microchip для расширения существующей линейки микроконтроллеров. Предоставляя пользователю хорошие вычислительные возможности и значительно переработанные периферийные модули, семейства PIC24 позволяют увеличить функциональность разрабатываемых устройств. С другой стороны, микроконтроллеры PIC24 разработаны таким образом, чтобы сделать переход пользователя с существующих семейств на новые более легким.

Большое количество 16/32-разрядных МК выпускает и компания Motorola. Так, 16-битовое семейство 68HC16 так же, как 32-битовое семейство 68300 и новое 16-битовое семейство 68HC12 разработаны с использованием расширенной библиотеки периферийных модулей, которые взаимодействуют через сходные интерфейсные шины. Эта методология модульного проектирования обеспечивает возможность быстрого развития новых производных семейства для специфических применений или потребителей.