Читаем Журнал `Компьютерра` №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 имеется огромное количество однотипных инструкций, различающихся только способом адресации.

Перейти на страницу:

Все книги серии Компьютерра

Нет соединения с сервером, попробуйте зайти чуть позже