Изменить стиль страницы

Все универсальные 8-разрядные МК содержат в разных вариантах примерно один и тот же набор встроенных периферийных модулей: это 8-ми и 16-разрядные счетчики-таймеры; параллельные порты ввода-вывода (с индивидуальным управлением каждым выводом); последовательные порты UART, SPI, иногда двухпроводный I2C; аналогово-цифровые преобразователи (рис. 1). Все современные МК могут функционировать в режиме ожидания с пониженным (до нескольких мкА) энергопотреблением.

Большинство МК имеет гарвардскую (а не фоннеймановскую, как у "обычных" компьютеров) архитектуру памяти, когда области хранения программ и данных разделены (исключения все же есть - например, некоторые МК фирмы Fujitsu). Такое построение вытекает из самого принципа устройства МК, где программы обычно хранятся в энергонезависимой памяти (ранее - в "прожигаемой", либо УФ-стираемой, сейчас около трех четвертей рынка занимают контроллеры с флэш-памятью), тогда, как данные - в быстродействующей SRAM, которая иногда может наращиваться с помощью внешних модулей. Для долговременного хранения данных в МК обычно встраивают отдельный небольшой массив EEPROM-ячеек или применяют внешние ППЗУ.

Однако различия между семействами все же имеются, и при построении систем их приходится учитывать. Давайте рассмотрим подробнее универсальные МК на примере трех наиболее популярных семейств - это упоминавшийся x51, и кроме того, PIC фирмы Microchip и AVR фирмы Atmel.

Семейство x51

Патриарх i8051 совершил в свое время переворот прежде всего тем, что это был первый computer-on-chip, содержащий на кристалле практически все, что требуется для автономного функционирования: встроенную память программ, четыре восьмиразрядных параллельных порта ввода-вывода, два 16-разрядных таймера-счетчика, универсальный последовательный интерфейс, и систему внутренних и внешних прерываний. В дальнейшем он породил большое число подражаний самого разнообразной структуры и назначения; в том числе выпускались (а может, даже и продолжают выпускаться - в продаже, во всяком случае, имеются) его клоны и в нашей стране в виде серий 1816 и 1830.

Система команд x51 основана на работе АЛУ с единственным регистром-аккумулятором, плюс еще один вспомогательный регистр, который штатно используется для команд аппаратного умножения и деления, но годится и для хранения какой-нибудь переменной. Такая конструкция подразумевает широкое использование стека. Для программных переменных предполагается расположение в памяти данных, которая может иметь самую разнообразную конфигурацию (если учесть возможность подключения внешней памяти до 64 кбайт), поэтому в архитектуре х51 имеется огромное количество однотипных инструкций, различающихся только способом адресации.

Хотя все МК x51 давно делаются по КМОП-технологии, с электрической точки зрения все выходные линии портов х51 совместимы с TTL-уровнями, и часть из них имеет выходы с "открытым коллектором". Достоинством архитектуры может считаться наличие упомянутых аппаратных инструкций умножения и деления и важной для электронных устройств операции десятичной коррекции. Однако канонический х51 имеет один крупнейший недостаток: длительность выполнения команд у него кратна машинному циклу, который занимает целых 12 тактов. Т. е. устройство с тактовой частотой 12 МГц будет иметь быстродействие всего 1 миллион простых инструкций в секунду (MIPS). Значительное число более современных модификаций х51 может выполнять инструкции быстрее: для примера можно привести серию фирмы Atmel под названием 89LP, где машинный цикл равен всего одному такту.

Семейство PIC

В отличие от x51, имеющих CISC-подобную архитектуру, МК семейства PIC фирмы Microchip, впервые появившиеся в конце 1980-х годов, имеют RISC-архитектуру с действительно "сокращенным набором команд": их всего 33-35 штук. Команда здесь выполняется за 4 такта, а не за 12, в архитектуре имеется набор оперативных регистров, позволяющих хранить переменные без обращения к памяти (правда, без регистра-аккумулятора тут не обошлось). В PIC-контроллерах впервые были опробованы такие инновации, как встроенное многоканальное АЦП, широкий диапазон напряжения питания (от 2 В), ШИМ-режим работы таймера (который годится, например, для синтеза звука или управления шаговыми двигателями) и прочие штучки, которые ныне уже стали стандартными для универсальных контроллеров.

Электрически порты PIC совместимы с портами х51. В принципе архитектура PIC (пусть на меня ее приверженцы не обижаются) есть довольно половинчатая и компромиссная попытка улучшить архитектуру х51: так, ревностное следование концепции RISC в микроконтроллерах совершенно необязательно и набором всего из 33 команд пользоваться не всегда удобно. Но PIC появились крайне вовремя, когда кроме штампованных клонов 8051 и его предшественника 8048, по сути, никто ничего не предлагал. По этой причине (а также из-за демократической торговой и ценовой политики Microchip) "пики" и сейчас занимают не менее 14% такого консервативного рынка, как производство 8-разрядных МК.

Семейство AVR

Фирма Atmel сыграла в электронной промышленности роль, в некотором роде сравнимую с ролью Apple в производстве ПК: она не находится на первых ролях, но всегда отличалась передовыми инновациями. Сейчас на рынке 8-разрядных МК она имеет около 6%. Фирму основал в начале 1980-х Джордж Перлегос, известный тем, что руководил в Intel направлением энергонезависимой памяти: при его непосредственном участии были разработаны первые типы электрически стираемых кристаллов EEPROM. В 80-е годы Atmel попыталась занять ведущее место на этом быстрорастущем рынке, и остается до сих пор одним из ведущих производителей flash- и EEPROM-чипов для установки в схемы различных устройств (например, нередко можно встретить Flash BIOS на чипах Atmel).

В конце 1980 х Atmel в числе других оказалась втянута в патентные разборки с энергонезависимой памятью, инициированные Intel, из которых вышла даже с некоторой прибылью, оказавшись обладателем лицензии на производство х51-совместимых МК, в каковой области и поныне является одной из ведущих. В 1993 году Atmel стала инициатором переворота в отрасли, начав производство МК AT89C51 со встроенной flash-памятью программ, что оказалось значительно удобнее одноразовых "прожигаемых" кристаллов или УФ-стираемых, требующих длительной "ручной" процедуры очистки.