Журнал "Компьютерра" №728
Шрифт:
Лидирует в мире по выпуску МК фирма Motorola, но ее продукция всегда была в большей степени рассчитана на корпоративных заказчиков, и в отечественных магазинах "Чип и Дип" ее контроллеров вы, скорее всего, не встретите. Хотя, кроме широкого спектра специализированных и "заказных" МК, Motorola выпускает и универсальные (68HC05, 68HC08, 68HC11), фирма долго не предоставляла средств, облегчающих освоение ее продукции, и потому в нашей стране она непопулярна.
Огромное количество МК производится под конкретную задачу: это, например, контроллеры дисплеев, электродвигателей, зарядных устройств для аккумуляторов, и пр. Сюда же можно отнести и так называемые DSP - Digital Signal Processor, специальные контроллеры для скоростного аналого-цифрового преобразования и различной обработки
Для решения общих задач выпускают универсальные МК, которые отличаются наличием развитой встроенной периферии - это то самое, что называется computer-on-chip, однокристальный компьютер. Если любой процессор для ПК, начиная с i8086 и заканчивая последними двух-четырехъядерными моделями, без внешнего чипсета абсолютно беспомощен, то универсальный МК содержит в себе все функциональные узлы, необходимые для полноценной работы. На таком МК в принципе можно построить работающий компьютер с добавлением лишь клавиатуры и дисплея, без каких-либо других существенных компонентов.
Принадлежность к тому или иному семейству характеризуется ядром, главная из характеристик которого, естественно, разрядность. Тем не менее существуют, например, совместимые 16-разрядные версии 8-разрядных процессоров (чему начало положила, несомненно, Intel со своими 8086/88). Кроме разрядности, ядро характеризуется архитектурой. Абсолютно универсальных архитектур, естественно, не бывает, и хотя в принципе все универсальные МК могут делать одно и то же, архитектурные войны среди микроконтроллерщиков кипят ничуть не с меньшим накалом, чем среди приверженцев Windows/Linux или ATI/nVidia. Как и в этих случаях, войны являются уделом в основном любителей: но и профессионалы нередко питают слабость к той или иной конкретной архитектуре. В отношении МК положение облегчается тем, что для пользователя конечной продукции (а в принципе даже и для самого разработчика) выбор той или иной архитектуры по большей части не имеет ровным счетом никакого значения, и влияния на конечный результат не оказывает. А такие системы, как универсальная среда Embedded Workbench фирмы IAR Systems для программирования на языке С более чем двадцати семейств МК, вообще сводят различия к минимуму (см. врезку).
Все универсальные 8-разрядные МК содержат в разных вариантах примерно один и тот же набор встроенных периферийных модулей: это 8-ми и 16-разрядные счетчики-таймеры; параллельные порты ввода-вывода (с индивидуальным управлением каждым выводом); последовательные порты UART, SPI, иногда двухпроводный I2C; аналогово-цифровые преобразователи (рис. 1). Все современные МК могут функционировать в режиме ожидания с пониженным (до нескольких мкА) энергопотреблением.
Большинство МК имеет гарвардскую (а не фоннеймановскую, как у "обычных" компьютеров) архитектуру памяти, когда области хранения программ и данных разделены (исключения все же есть - например, некоторые МК фирмы Fujitsu). Такое построение вытекает из самого принципа устройства МК, где программы обычно хранятся в энергонезависимой памяти (ранее - в "прожигаемой", либо УФ-стираемой, сейчас около трех четвертей рынка занимают контроллеры с флэш-памятью), тогда, как данные - в быстродействующей SRAM, которая иногда может наращиваться с помощью внешних модулей. Для долговременного хранения данных в МК обычно встраивают отдельный небольшой массив EEPROM-ячеек или применяют внешние ППЗУ.
Однако различия между семействами все же имеются, и при построении систем их приходится учитывать. Давайте рассмотрим подробнее универсальные МК на примере трех наиболее популярных семейств - это упоминавшийся x51, и кроме того, PIC фирмы Microchip и AVR фирмы Atmel.
Патриарх i8051 совершил в свое время переворот прежде всего тем, что это был первый computer-on-chip, содержащий на кристалле практически все, что требуется для автономного функционирования: встроенную память программ, четыре восьмиразрядных параллельных
Система команд x51 основана на работе АЛУ с единственным регистром-аккумулятором, плюс еще один вспомогательный регистр, который штатно используется для команд аппаратного умножения и деления, но годится и для хранения какой-нибудь переменной. Такая конструкция подразумевает широкое использование стека. Для программных переменных предполагается расположение в памяти данных, которая может иметь самую разнообразную конфигурацию (если учесть возможность подключения внешней памяти до 64 кбайт), поэтому в архитектуре х51 имеется огромное количество однотипных инструкций, различающихся только способом адресации.
Хотя все МК x51 давно делаются по КМОП-технологии, с электрической точки зрения все выходные линии портов х51 совместимы с TTL-уровнями, и часть из них имеет выходы с "открытым коллектором". Достоинством архитектуры может считаться наличие упомянутых аппаратных инструкций умножения и деления и важной для электронных устройств операции десятичной коррекции. Однако канонический х51 имеет один крупнейший недостаток: длительность выполнения команд у него кратна машинному циклу, который занимает целых 12 тактов. Т. е. устройство с тактовой частотой 12 МГц будет иметь быстродействие всего 1 миллион простых инструкций в секунду (MIPS). Значительное число более современных модификаций х51 может выполнять инструкции быстрее: для примера можно привести серию фирмы Atmel под названием 89LP, где машинный цикл равен всего одному такту.
В отличие от x51, имеющих CISC-подобную архитектуру, МК семейства PIC фирмы Microchip, впервые появившиеся в конце 1980-х годов, имеют RISC-архитектуру с действительно "сокращенным набором команд": их всего 33-35 штук. Команда здесь выполняется за 4 такта, а не за 12, в архитектуре имеется набор оперативных регистров, позволяющих хранить переменные без обращения к памяти (правда, без регистра-аккумулятора тут не обошлось). В PIC-контроллерах впервые были опробованы такие инновации, как встроенное многоканальное АЦП, широкий диапазон напряжения питания (от 2 В), ШИМ-режим работы таймера (который годится, например, для синтеза звука или управления шаговыми двигателями) и прочие штучки, которые ныне уже стали стандартными для универсальных контроллеров.
Электрически порты PIC совместимы с портами х51. В принципе архитектура PIC (пусть на меня ее приверженцы не обижаются) есть довольно половинчатая и компромиссная попытка улучшить архитектуру х51: так, ревностное следование концепции RISC в микроконтроллерах совершенно необязательно и набором всего из 33 команд пользоваться не всегда удобно. Но PIC появились крайне вовремя, когда кроме штампованных клонов 8051 и его предшественника 8048, по сути, никто ничего не предлагал. По этой причине (а также из-за демократической торговой и ценовой политики Microchip) "пики" и сейчас занимают не менее 14% такого консервативного рынка, как производство 8-разрядных МК.
Фирма Atmel сыграла в электронной промышленности роль, в некотором роде сравнимую с ролью Apple в производстве ПК: она не находится на первых ролях, но всегда отличалась передовыми инновациями. Сейчас на рынке 8-разрядных МК она имеет около 6%. Фирму основал в начале 1980-х Джордж Перлегос, известный тем, что руководил в Intel направлением энергонезависимой памяти: при его непосредственном участии были разработаны первые типы электрически стираемых кристаллов EEPROM. В 80-е годы Atmel попыталась занять ведущее место на этом быстрорастущем рынке, и остается до сих пор одним из ведущих производителей flash- и EEPROM-чипов для установки в схемы различных устройств (например, нередко можно встретить Flash BIOS на чипах Atmel).