8-разрядные микроконтроллеры.
Видимо, не столь далек тот день, когда количество выпущенных 8-разрядных микроконтроллеров сравнится с числом людей, проживающих на нашей планете. Вполне вероятно, что большая часть этих МК будет произведена компаниями, выпустившими свои первые микроконтроллеры еще в 70-80-х годах. Что поделать! Консервативность потребителей, миллиарды долларов, вложенные в программное обеспечение, постоянный upgrade выпускаемых семейств позволяют этим компаниям до сих пор доминировать на мировом микроконтроллерном рынке.
Настоящий обзор представляет собой попытку свести воедино информацию по наиболее известным микроконтроллерным семействам американских и европейских производителей 8-разрядных МК.
ST-Microelectronics. ST6, ST7, ST9
Микроконтроллеры ST, выпускаемые франко-итальянским концерном ST-Microelectronics, противостоящего засилию американских компаний-производителей МК на европейском рынке, включают в себя три 8-разрядных семейства ST6, ST7 и ST9. Для всех микроконтроллеров ST, благодаря введению схем входной фильтрации и шумовой режекции, характерна высокая устойчивость к внешним электромагнитным помехам.
ST6
Статические микроконтроллеры ST6 предназначены для относительно простых применений, связанных с контролем и обработкой аналоговых сигналов.
Процессорное ядро, построенное на гарвардской архитектуре, содержит регистр аккумулятор, два 8-разрядных регистра косвенной адресации, два 8-разрядных регистра общего назначения и аппаратный 6-уровневый стек. Счетчик команд непосредственно адресует 2 Кбайт памяти программ и до 20 Кбайт в расширенном режиме.
Система команд содержит всего 40 инструкций, требующих для своего выполнения от 2 до 5 машинных циклов. Микроконтроллеры ST6 демонстрируют рекордно низкую производительность, стандартный машинный цикл занимает 1,625 мкс при тактовой частоте 8 МГц. Команды битовых операций включают инструкции установки и сброса бита в любой ячейке ОЗУ.
Почти все микроконтроллеры ST6 (23 модели из 25) имеют встроенный аналогово-цифровой преобразователь с разрядностью 8 бит и числом каналов от 4 до 16. Цикл преобразования АЦП длится 70 мкс и завершается запросом прерывания.
Таймерный блок содержит 1 или 2 8-разрядных таймера с программируемым делителем. МК ST6 используют 8-разрядный таймер, реализующий функции выходного сравнения, входного захвата, перезагрузки таймера при поступлении внешнего события, ШИМ с автоперезагрузкой. В простых версиях микроконтроллеров он заменяется несложным 8-разрядным таймером с возможностью внешнего тактирования и измерения периода внешнего сигнала.
Интересной особенностью параллельных портов ввода/вывода является то, что любая линия ввода/вывода может служить источником внешнего прерывания.
Большинство микроконтроллеров не требуют применения внешних супервизорных схем и даже вообще внешних компонентов. На кристалле реализованы схема сброса по включению и понижению напряжения питания, сторожевой таймер и внутренний тактовый генератор частотой 400 кГц, который также может исполнять роль вспомогательного генератора при пропадании внешней тактовой частоты.
Системы последовательных интерфейсов представлены у некоторых версий МК синхронным SPI и асинхронным UART.
Емкость памяти программ ST6 составляет от 1 до 8 Кбайт, емкость ОЗУ от 64 до 128 байт у МК общего назначения и до 320 байт у микроконтроллеров со встроенными контроллерами LCD-модулей. Ряд МК имеет EEPROM данных объемом 64 и 128 байт.
Микроконтроллеры ST6 выпускаются в дешевых 16/20/28-корпусах, за исключением МК, предназначенных для работы с ЖК-дисплеями.
Стандартный диапазон питания от 3 до 6 В.
ST7
Микроконтроллеры семейства ST7 имеют некоторое сходство с MC68HC05/08 фирмы MOTOROLA и могут быть ориентированы на те же области применения. Недаром ST-Microelectronics сравнивает свои МК с продукцией MOTOROLA, подчеркивая, что ST7 успешно конкурируют с MC68HC08 и уж точно работают в 4 раза быстрее, чем HC05.
Процессор ST7 содержит регистр-аккумулятор, два индексных регистра X и Y, регистр состояния процессора, счетчик команд, адресующий 64 Кбайт памяти, 16-разрядный указатель стека, в котором доступен почему-то только младший байт (остальные 8 бит аппаратно установлены в "1", надо полагать, для будущего расширения). В зависимости от версии микроконтроллера, максимальный размер стека составляет 64 или 256 байт.
Система команд включает в себя 63 инструкции длиной от 1 до 4 байт. Специальный префиксный байт, употребляемый в некоторых командах, служит для расширения стандартной 256-байт сетки команд 8-разрядных МК. Минимальное время исполнения 1-байт команды составляет 250 нс при внутренней тактовой частоте 8 МГц. В систему команд входят битовые операции и операция беззнакового умножения 8*8.
ST7 является самым многочисленным семейством и насчитывает по меньшей мере 50 представителей, которых можно разделить на следующие группы:
- базовые микроконтроллеры общего применения с 1 или 2 таймерными модулями, SPI и SCI;
- микроконтроллеры, предназначенные для обработки аналоговых сигналов, которые добавляют ко всему вышеперечисленному 8-разрядный АЦП с количеством каналов от 6 до 8, со временем преобразования 64 машинных цикла. Ряд моделей содержит встроенное EEPROM данных;
- группы МК, имеющие в своем составе, кроме SPI и SCI, дополнительные последовательные интерфейсы: IIC (скорость передачи данных до 400 Кбит/c) и CAN (до 1 Мбит/c, USB со скоростью 1,5 Мбит/c);
- специализированные микроконтроллеры.
Емкость однократно программируемого или FLASH ПЗУ составляет от 4 до 60 Кбайт, емкость ОЗУ от 256 байт до 2 Кбайт. Версии с FLASH ПЗУ имеют возможность внутрисхемного программирования. Большинство микроконтроллеров выпускается в пластиковых корпусах с количеством выводов 28/32/42. В зависимости от модели, часть или все линии параллельных портов ввода/вывода могут программироваться как источники внешних прерываний.
Таймерный модуль строится на основе 16-разрядного, так называемого "free-running" таймера (таймер без опции останова/запуска, включающийся после рестарта МК, в дальнейшем его состояние можно только считать, а содержимое только сбросить) с программируемым предделителем. Таймерный модуль может работать в одном из трех режимов: ШИМ, выходное сравнение (2 канала), входной захват (2 канала), формирование на внешнем выводе импульса заданной длины при наступлении внешнего события.
Как и младшее семейство ST6, большинство микроконтроллеров ST7 не требует применения внешних супервизорных схем, интегрируя на кристалле сторожевой таймер, схему сброса по включению и понижению питания, вспомогательный внутренний тактовый генератор.
Микроконтроллеры ST7 работают в диапазоне напряжений питания 3-5 В.
ST9
ST9 самое высокопроизводительное семейство 8-разрядных микроконтроллеров ST-Microelectronics, насчитывающее сегодня 10 представителей. Гарвардское процессорное ядро имеет раздельные адресные шины для памяти программ, данных и регистрового файла. Регистровый файл, заменивший прежнюю аккумуляторную структуру, состоит из 256 регистров, разделенных на 16 банков, включая 202 рабочих и 16 системных регистров, в том числе и 16-разрядный указатель стека. Каждый рабочий регистр или регистровая пара может работать как аккумулятор, 816-разрядный регистр общего назначения или как косвенный указатель адреса. При адресации регистрового файла используются длинная (до 256 регистров) и короткая (до 16 регистров) адресации, позволяющие оптимизировать длину команды. Для каждого периферийного устройства отведены блоки из 16 регистров, располагающиеся в одном адресном пространстве и доступные в страничном режиме. Кроме основного системного стека реализован также дополнительный стек пользователя.
Модуль управления памятью адресует по 22-разрядной адресной шине до 4 Мбайт линейных памяти программ и данных.
Для работы с операндами используются 14 способов адресации, в том числе, индексная с предекрементом, индексная с постинкрементом, задание в адресном поле команды адреса источников операндов и адреса сохранения результата, а также битовая адресация для локализации бита в любом регистре или ячейке ОЗУ.
Система команд состоит из 94 инструкций, имеющих длину от 1 до 5 байт и выполняющихся за 416 машинных тактов. В зависимости от версии микроконтроллера, внутренняя тактовая частота может составлять 16 или 24 МГц, с машинным циклом процессора 62 и 41 нс, соответственно. Многие команды поддерживают 16-бит операции, такие как пересылка 16-разрядных слов, арифметические, логические и сдвиговые операции с 16-разрядными операндами, в том числе, операции деления 16/8 и 32/16. Заслуживают внимания специальные команды, заменяющие сразу несколько стековых операций, используемых Си-компилятором.
Периферийные устройства включают в себя:
- 8-разрядный АЦП с числом каналов от 8 до 16 и функцией выборки/хранения. Преобразование выполняется за 138 машинных циклов;
- 2 аналоговых сторожевых блока, которые отслеживают изменения напряжения на внешних выводах и формируют сигнал прерывания при выходе входного напряжения за предельные величины, запрограммированные заранее;
- многофункциональный таймерный блок, построенный на основе 16-разрядного таймера, имеет два 16-разрядных регистра сравнения, два 16-разрядных регистра захвата/перезагрузки и может работать в 12 различных режимах, включая широтно-импульсную модуляцию, измерение внешней частоты, входной захват и выходное сравнение, автодискриминатор (подсчет фазового сдвига между двумя входными сигналами) и так далее. В некоторых моделях микроконтроллеров может быть до двух многофункциональных таймерных блоков и до двух более простых таймерных модулей на основе 16-разрядного таймера-счетчика с предделителем;
- сторожевой таймер, сформированный на основе дополнительного 16-разрядного таймера, который также может использоваться в обычном режиме;
- последовательные интерфейсы: SCI, IIC со скоро-стью передачи до 400 Кбод, синхронный SPI, а также, для некоторых версий, USB-интерфейс;
- контроллер прямого доступа к памяти ПДП включает по два канала обмена данными с системой последовательного интерфейса (приемник, передатчик) и по два канала с каждым многофункциональным таймером (захват, сравнение). Контроллер ПДП обеспечивает пересылку данных между периферийными устройствами и памятью блоками до 64 Кбайт и регистровым файлом блоками до 208 байт;
- блок аппаратных прерываний поддерживает до 8 внешних прерываний. Ряд моделей использует 14 дополнительных внешних источников прерываний с функцией wake-up.
Кроме стандартного "спящего" режима и останова, для уменьшения энергопотребления микроконтроллеры ST9 реализуют также режим программного снижения тактовой частоты. Используемый тактовый блок может не только программно делить внешнюю частоту, но также и умножать ее для получения внутренней тактовой частоты 1624 МГц от внешнего кварцевого резонатора, работающего на частоте 35 МГц.
Микроконтроллеры ST9 имеют объем внутреннего ПЗУ от 16 до 128 Кбайт и ОЗУ от 512 до 2 Кбайт. МК ST92F120V1 имеет встроенный EEPROM данных емкостью 1 Кбайт. За исключением одной модели, все микроконтроллеры ST9 выпускаются в многовыводных корпусах типа QFP с числом выводов от 80 до 156.
Отладочные средства представлены стандартным набором ассемблеров, Си-компиляторов, а также рядом программаторов и эмуляторов, поддерживаемых третьими фирмами.