Чтение онлайн

ЖАНРЫ

Журнал "Компьютерра" №728
Шрифт:
Универсальные МК

Для решения общих задач выпускают универсальные МК, которые отличаются наличием развитой встроенной периферии - это то самое, что называется 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.

Семейство 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-памятью программ, что оказалось значительно удобнее одноразовых "прожигаемых" кристаллов или УФ-стираемых, требующих длительной "ручной" процедуры очистки.

В 1995 году два норвежских студента из г. Тронхейма, Альф Боген и Вегард Воллен, выдвинули идею 8-разрядного RISC-ядра, которую предложили руководству Atmel. Ядро это, названное AVR по именам разработчиков (Alf - Vergard - RISC), было разработано без оглядок на существовавшие решения, и вполне заслуживает название революционного. В AVR-ядре типовые инструкции выполняются за один такт, причем в обеспечение этого имеется элементарный конвейер с одновременным выполнением инструкции и выборкой следующей (потому команды ветвления выполняются за два такта - конвейер "тупо" полагает, что условие ветвления не выполнится). Первоначальное ядро состояло всего из 32 тысяч транзисторов.

Поделиться с друзьями: