М. Ахметов
"...новый микроконтроллер со схемой
сброса по выключению питания"
Шутка недели
Видимо, не столь далек тот день, когда количество выпущенных 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.
Отладочные средства представлены стандартным набором ассемблеров, Си-компиляторов, а также рядом программаторов и эмуляторов, поддерживаемых третьими фирмами.
MOTOROLA. 68HC05, 68HC08, 68HC11
История развития семейств MC68HC05/08/11 начинается с базового микропроцессора MC6800, выпущенного еще в 1974 году. Первые микроконтроллеры HC05 представляли собой типичные микропроцессоры 6800 с модифицированной архитектурой, пересаженные на "микроконтроллерную" почву.
Последующее продвижение MOTOROLA происходило в направлении совершенствования процессорного ядра "дедушки" (семейство HC11, основанное на микропроцессорной архитектуре II поколения MC6809, и семейство HC08 с усовершенствованным процессорным ядром МС6800) и ускорения работы самого процессора (семейство HC11 и, особенно, HC08).
MC68HC05
Основанный на Неймановской архитектуре, простой, по сегодняшним понятиям, процессор с классической аккумуляторной архитектурой и индексным регистром адресует до 64 Кбайт памяти и имеет укороченную систему команд микропроцессора 6800, состоящую в общей сложности из 65 инструкций. Определенным минусом, безусловно, является отсутствие регистров общего назначения для быстрых регистровых операций и соответственно работающих с ними команд.
Длительность исполнения большинства команд составляет от 2 до 6 машинных циклов или от 1 до 3 мкс при внутренней тактовой частоте 2 МГц. Исключением являются несколько команд, таких как, к примеру, команда умножения 8х8, занимающая 11 машинных циклов, и команды, связанные с обработкой прерываний.
Из системы команд заслуживают упоминания команды битовых операций, установка и сброс бита во внутреннем ОЗУ и команды перехода по состоянию бита.
Семейство HC05 в основном формировалось крупными потребителями микроконтроллеров MOTOROLA, заказывавшим разработку МК под свою конкретную продукцию (термин "заказное" семейство). В большинстве своем, это микроконтроллеры с масочным ПЗУ, и было бы, наверное, не очень интересно про них говорить, если бы MOTOROLA не повернулась лицом к мелкосерийному потребителю и не сформировала программу "No Excuses". Эта программа, начавшая реализовываться в 1998 году, включает в себя снижение цен на МК HC705, сокращение сроков поставки и самое главное расширение поставок ряда MC68HC705 с однократно программируемым ПЗУ!
В итоге потребители получили серию дешевых (отпускные цены от 50 центов) микроконтроллеров для несложных применений.
Номенклатура периферийных устройств зависит от выпускаемой серии, обозначаемой специальной литерой в названии микроконтроллера. В базовых моделях применяется простой 15-разрядный без опций запуска/останова таймер с блоком периодических прерываний, на основе которого также реализуется сторожевой таймер. Во многих моделях микроконтроллеров таймерный модуль строится на основе 16-разрядного free-running таймера и имеет также дополнительные каналы входного захвата и выходного сравнения. Важной особенностью является аппаратная поддержка внешних запросов прерываний. Даже самые простые и недорогие микроконтроллеры обеспечивают поддержку до пяти внешних прерываний, использующих, правда, один и тот же вектор прерывания.
В рамках программы "No Excuses" поставляются микроконтроллеры серий B, С, J, K, L, P.
Микроконтроллеры серии С общего назначения содержат таймер, 4 параллельных порта, SCI и SPI.
Дешевые МК серии J и K с минимальной периферией выпускаются в 16- и 20-выводном исполнении. Микроконтроллеры серии P, производимые в 28-выводных корпусах, добавляют к этому последовательный порт, а также 8-разрядный АЦП.
Серия B обладает полным набором периферийных устройств многоканальный АЦП, ШИМ, последовательный порт SCI.
Микроконтроллеры с литерой L предназначены для работы с ЖК-дисплеями.
Основной объем внутренней памяти занимает однократно программируемое ПЗУ емкостью от 1232 байт до 16 Кбайт с опцией защиты от чтения. Емкость внутреннего ОЗУ, в зависимости от модели, составляет от 64 до 512 байт. Микроконтроллеры серии B имеют в дополнение к этому EEPROM емкостью 256 байт. К сожалению, МК HC705, имея схему сброса по включению питания, не имеют таковой схемы по понижению напряжения питания, что требует применения внешних супервизорных схем во избежание повреждения данных EEPROM.
Стандартный диапазон напряжения питания микроконтроллеров HC05 составляет 35 В. Для обеспечения пониженного энергопотребления реализована возможность программного перехода в режим ожидания и останова.
Для поставляемых микроконтроллеров HC705 предлагаются специальные наборы, содержащие программатор и внутрисхемный симулятор по отпускной цене MOTOROLA от 99$.
MC68HC08
Это семейство, первые представители которого появились в 1994 году, представляет собой эволюционное продолжение 68HC05 с полностью статической архитектурой, повышенной производительностью и расширенными функциональными возможностями.
Некоторые изменения коснулись процессорного модуля. Разрядность регистра стека и индексного регистра увеличена до 16 бит, в регистр состояния введен дополнительный разряд флаг переполнения. Процессор работает на увеличенной до 8 МГц внутренней тактовой частоте машинный цикл 125 нс! Для повышения производительности в процессорное ядро введен специальный регистр с романтичным названием "LookAhead", в который заносится операционный код следующей команды во время исполнения текущей (одноуровневый конвейер), что позволяет экономить лишний машинный цикл.
По сравнению с HC05, появились новые способы адресации, такие как адресация с постинкрементом и адресация памятьпамять, значительно повысившие эффективность работы с массивами данных.
Также претерпела изменения система команд. Были введены специальные команды для работы со стеком (PUSH, POP), которых так не хватало в базовом HC05. Появились дополнительные арифметические команды: деление, десятичная коррекция, суммирование операндов с содержимым индексного регистра и стека, команды управления: ветвление по расширенному условию, а также новые команды пересылки. В итоге набор команд расширился, по сравнению с HC05, с 65 до 90 инструкций. Некоторые команды стали выполняться быстрее, в частности, длительность выполнения команды умножения сократилась с 11 до 6 машинных циклов.
Появился ряд новых периферийных устройств:
- контроллер прямого доступа к памяти ПДП с тремя независимыми каналами, реализующий обмен блоками данных между памятью и внешними устройствами без участия процессора;
- 12-разрядный 6-канальный ШИМ-контроллер;
- модуль расширения адресации внешней памяти до 16 Мбайт.
Таймерный блок в основе своей аналогичен существующему в HC05, но обладает также рядом дополнительных функций, таких как реализация режима широтно-импульсной модуляции и возможность тактирования таймера внешним сигналом. Наконец-то появилась возможность программного включения/выключения таймера для подстройки временной базы.
Модуль системной интеграции обеспечивает расширенные возможности по контролю функционирования МК. Сброс микроконтроллера производится по включению питания, сигналу от сторожевого таймера, поступлении неправильного кода команды, формировании некорректного адреса и, что очень важно, при снижении напряжения питания ниже допустимого уровня.
Модули встроенной памяти микроконтроллеров семейства MC68HC08 содержат ПЗУ или ППЗУ емкостью от 16 до 56 Кбайт, ОЗУ емкостью от 128 до 1024 байт и EEPROM емкостью 512 байт.
В настоящее время поставляются микроконтроллеры серий MC68HC908JL3/JK3/JK1 со встроенным FLASH ПЗУ емкостью от 1536 байт до 4 Кбайт.
MC68C11
MC68C11 полностью статические 8-разрядные микроконтроллеры, программно совместимые с 6800 и являющиеся связующим звеном (совместимость по исходному коду) между 8-бит МК MOTOROLA и их более мощными 16-разрядными родственниками MC68C16.
Основные отличия процессорного модуля HC11 от HC05 присутствие двух 8-разрядных регистров-аккумуляторов (работающих отдельно или как совместная регистровая пара) и двух 16-разрядных индексных регистров. В зависимости от модели, используемая внутренняя частота процессора составляет от 2 до 4 МГц. Система команд состоит из 108 инструкций длиной от 1 до 4 байт. Многие команды аналогичны существующим командам HC05, основные отличия связаны с появлением дополнительных рабочих регистров процессора. Наиболее интересны команды 16-бит арифметических операций: сложение, вычитание, целочисленное и дробное деление, инкремент, сдвиг 16-разрядных операндов, а также расширенные команды битовых операций с возможностью установки, сброса и тестирования сразу нескольких битов.
Микроконтроллеры HC11 позволяют адресовать как внутреннюю память (однокристальный режим), так и внешнюю (расширенный режим). Некоторые версии позволяют адресовать до 1 Мбайт внешней памяти, используя страничную адресацию.
Семейство HC11 отличается большим разнообразием периферийных устройств. Таймерный блок, используемый в МК HC11, по своей структуре и функциям также аналогичен таймерному модулю HC05, но имеет дополнительные черты, такие как вспомогательный 8-бит таймер-счетчик с опцией программного включения/выключения, увеличенное число каналов захвата/сравнения, возможность вывода заранее запрограммированного кода на линии параллельного порта ввода/вывода в определенные моменты времени.
Почти все микроконтроллеры имеют в своем составе встроенный 8-разрядный АЦП последовательных приближений. Время полного преобразования 8-разрядного АЦП занимает 32 машинных цикла на один канал.
Система последовательного ввода/вывода включает в себя асинхронный SCI и синхронный SPI.
Из прочих периферийных устройств, имеющихся в составе ряда микроконтроллеров HC11, можно выделить 4-канальный ПДП, арифметический сопроцессор, обеспечивающий десятикратное ускорение операций деления и умножения, 6-канальный ШИМ.
Объем внутреннего ПЗУ (масочного или OTP), в зависимости от версии, составляет от 4 до 48 Кбайт, ОЗУ от 256 до 1278 байт. Некоторые версии содержат EEPROM емкостью до 2 Кбайт.
Стандартное напряжение питания микроконтроллеров составляет 5 В, доступны также версии с пониженным напряжением питания. В большинстве своем, МК HC11 выпускаются в корпусах PLCC и QFP (из-за увеличенного числа линий ввода/вывода). Недостатками микроконтроллеров HC11 можно считать большое энергопотребление (до 150300 МВт) и относительно невысокую на сегодняшний день производительность для универсального МК.
Для семейств MC68HC05/08/11 предлагается большое количество ПО, включающее интегрированные отладочные среды, ассемблеры, Си-компиляторы, отладчики, программные симуляторы от множества третьих поставщиков (правда, в большинстве своем, ПО платное).
На сегодняшний день, в ряде крупных городов России сформировано более десяти учебно-методических и консультационных центров MOTOROLA, где можно получить исчерпывающую техническую информациию относительно продукции компании.
National Semiconductor. COP8
Полностью статические микроконтроллеры семейства COP8 компании National Semiconductors основываются на Гарвардской архитектуре с раздельными адресными шинами для памяти программ и данных. Процессор адресует до 32 Кбайт внутренней памяти и включает стандартный набор регистров как-то: 8-разрядный регистр-аккумулятор, 16-разрядный указатель стека, 15-разрядный счетчик команд, два 8-разрядных индексных регистра с возможностью постинкремента и постдекремента, регистр состояния, а также не совсем обычный 8-разрядный регистр адресного расширения для внутреннего ОЗУ, позволяющий адресовать до 32 Кбайт памяти данных.
16 байт ОЗУ рассматриваются как "псевдорегистры", использующие короткие команды загрузки и работающие с командой DRSZ (декремент и пропуск, если ноль).
Довольно простая система команд, состоящая из 51 инструкции, требует для выполнения большинства команд (77%) только одного машинного цикла стандартной длительностью 1 мкс. Правда, декларируя подобную производительность, NSC несколько лукавит. Большинство команд действительно выполняется за один цикл, но только в том случае, если используемый операнд адресуется индексным регистром. Но ведь индексный регистр требует еще и загрузки!
Команды для битовых операций позволяют установить, сбросить и проверить любой бит в любой ячейке ОЗУ. Некоторые версии МК имеют встроенный блок аппаратного умножения 8*16 и деления 24/16, требующий на выполнение данных операций, соответственно, 1 и 2 машинных цикла.
В настоящее время NSC выпускает 5 семейств с однократно программируемой памятью, ориентированных на мелкосерийного потребителя:
- COP87Lxx базовое и самое многочисленное семейство, в состав которого входят микроконтроллеры с емкостью ПЗУ от 4 до 32 Кбайт, ОЗУ от 64 до 512 байт и различной периферией, включающей многофункциональные 16-разрядные таймеры, аналоговые компараторы, блок аналоговой обработки, 8-канальный 8-разрядный АЦП с временем преобразования до 7,2 мкс и три типа последовательных интерфейсов;
- COP8SGx7 дальнейшее развитие базовых микроконтроллеров COP87L88xG;
- COP8Sax7 семейство недорогих МК (цены от 0,7$) с малым количеством выводов с объемом ПЗУ от 1 до 4 Кбайт, ОЗУ от 64 до 128 байт, схемой сброса по включению питания и не требующих внешних компонентов;
- COP8Acx7 микроконтроллеры, имеющие в своем составе аналоговый блок для построения 6-канального интегрирующего АЦП с разрядностью до 16 бит и при этом требующего всего один навесной элемент конденсатор.
МК COP8 содержат от 1 до 3 многофункциональных таймеров, с которыми просто приятно работать. 16разрядный таймерный блок имеет два 16-разрядных регистра перезагрузки/захвата и может работать в одном из трех режимов: ШИМ с автоматической перезагрузкой, счет внешних событий и режим входного захвата. Все это с генерацией соответствующих прерываний.
На основе отдельного таймерного модуля реализуются функции сторожевого таймера и выхода из "спящего" режима.
Аналоговый блок для построения 16-разрядного интегрирующего АЦП содержит 7-канальный аналоговый мультиплексор, компаратор, выход которого соединен с таймерным модулем, источник референтного напряжения и тока, управляющие регистры.
Блок аппаратных прерываний поддерживает до 9 внешних прерываний с функцией "wake-up" (вывод микроконтроллера из "спящего" режима).
Система последовательного интерфейса у ряда МК COP8 представлена CAN-интерфейсом (скорость передачи данных до 250 Кбод), UART и USART. Все микроконт-роллеры COP8 имеют в своем составе 3-х проводной последовательный синхронный интерфейс MICROWIRE, известный нам по микросхемам серий 93Сxx.
Микроконтроллеры COP8 отвечают повышенному стандарту электромагнитной совместимости, требуемой во многих применениях, в частности, связанных с регистрацией и обработкой аналоговых сигналов.
NSC разработала и запатентовала технологию, позволяющую снизить выходные пульсации микроконтроллера в 10 раз за счет применения тактовых схем с пониженным излучением, специальных схем подавления, оптимизированной разводки соединений. Кроме этого, МК COP8 имеют входную защиту (ESD protection) от электростатического разряда напряжением до 5 кВ.
Большинство MK COP8 работают при напряжении питания в диапазоне 2,75 В.
NSC свободно распространяет ассемблер, программный симулятор и библиотеки прикладных программ. За невысокую, по "их" понятиям, стоимость (меньше 100 $) можно найти Си-компиляторы, интегрированные отладочные среды и тому подобное ПО. Ряд третьих фирм выпускает программаторы и аппаратные отладочные средства.
К числу недостатков микроконтроллеров COP8 можно отнести невозможность последовательного программирования, отсутствие в большинстве микроконтроллеров схем, реализующих сброс по включению и понижению питания, отсутствие битов секретности на ПЗУ.
Fairchild Semiconductor. ACE
В 1997 году корпорация NSC объявила о продаже принадлежащего ей отделения Fairchild Semi-conductors. Через два года, в январе 1999, уже новая компания Fairchild Semiconductor, вернувшая себе свое славное имя, анонсировала первый микроконтроллер семейства ACE (Arithmetic Controller Engine). В настоящее время известны пока лишь два первых представителя ACE1101 и ACE1202.
Полностью статические микроконтроллеры ACE ориентированы на применение в портативных или автономных системах с батарейным питанием, где ключевыми факторами являются производительность, миниатюрные размеры и невысокая стоимость.
В то же время, семейство ACE сохраняет определенную преемственность с микроконтроллерами COP8, производимыми NSC. Прослеживается сходство в архитектуре процессора, системе команд, в составе периферийных устройств.
Процессор ACE содержит 5 регистров: 8-разрядный аккумулятор, 11-разрядный индексный регистр, 10-разрядный счетчик команд, адресующий 1 Кбайт памяти программ, 4-разрядный стековый регистр и регистр состояния. ACE используют модифицированную гарвард-скую архитектуру, которая позволяет адресовать через индексный регистр как память программ, так и память данных.
Система команд содержит всего 36 основных инструкций размером от 1 до 3 байт. Большинство команд выполняются за 12 машинных циклов, команды управления могут требовать до 5 циклов процессора.
Микроконтроллеры ACE не требуют для своей работы никаких внешних компонентов. Надежность работы микроконтроллера обеспечивают внутренние супервизорные схемы: дополнительный таймер для реализации функции watchdog, схема сброса по включению и понижению напряжения питания ниже допустимого уровня и программируемый детектор понижения питающего напряжения. Внутренний тактовый генератор частотой 2 МГц обеспечивает длительность машинного цикла 1 мкс.
Периферийные устройства включают в себя таймерный модуль, аналогичный COP8, но только с одним регистром перезагрузки/захвата, блок поддержки внешних прерываний, 6 линий ввода/вывода, каждая из которых может быть сконфигурирована как источник внешнего прерывания с функцией wake-up.
В ACE1202 таймерный блок имеет дополнительный режим работы захват временной разницы между двумя фронтами входного сигнала.
МК ACE1101 содержит 1 Кбайт электрически перепрограммируемого ПЗУ с опцией защиты и возможно-стью внутрисхемного программирования, 64 байт ОЗУ и 64 байт EEPROM данных. ACE1202 добавляет к этому еще 1 Кбайт ППЗУ и две линии ввода/вывода (у версий с 14 выводами).
В микроконтроллерах семейства предусмотрены возможность перехода в режимы пониженного потребления (потребляемый ток 250 нА) и останова (ток меньше 100 нА). В обычном режиме ток потребления МК не превышает 0,51 мА.
Микроконтроллеры ACE выпускаются в 8- или 14-выводных SO-корпусах и работают в диапазоне напряжений питания от 2 до 5 В.
С интернет-страницы Fairchild Semiconductors доступны кросс-ассемблер, программный симулятор, примеры программ.
Z8 microcontrollers ZiLOG
История семейства универсальных микроконтроллеров Z8 начинается с легендарного микропроцессора Z80. Именно его процессорное ядро легло в основу новых (по тем временам) микроконтроллеров.
Процессор Z8 адресует три независимых области памяти: регистровый файл, память программ, память данных.
Регистровый файл может содержать до 256 8-разрядных регистров, из них до 239 универсальных рабочих регистров, каждый из которых может использоваться как аккумулятор, указатель адреса, индексный регистр, регистр данных или стека. Регистры специального назначения и периферийные регистры также доступны через регистровый файл. 16-разрядный регистр указателя стека может размещаться либо в регистровом файле, либо во внешнем ОЗУ (при его наличии). Адресное пространство рабочих регистров делится на банки по 16 регистров. Специальный регистровый указатель определяет текущую активную группу рабочих регистров. Это позволяет существенно сократить длину команд, использующих рабочие регистры.
50 базовых команд требуют для своего исполнения различного количества машинных тактов, от 6 (регистровые операции) до 20 (команды перехода).
Внутренняя частота процессора Z8 может варьироваться от 4 до 8 МГц, в зависимости от модели. Соответственно, для самых быстрых версий минимальная длительность выполнения команд, таких как регистровые операции, составляет 0,75 мкс, а максимальная (команды управления) 2,5 мкс.
В дополнение к регистровому файлу, некоторые члены семейства имеют в своем составе расширенный регистровый файл для управления дополнительными периферийными устройствами и портами ввода/вывода.
Для повышения производительности процессор Z8 использует одноуровневую конвейеризацию команд. Правда, необходимо отметить, что из-за разной длины инструкций конвейер работает не самым оптимальным образом.
Z8 адресует до 64 Кбайт внешнего ОЗУ памяти данных и 64 Кбайт внешнего ПЗУ памяти программ. При отключении или отсутствии внутреннего ПЗУ, микроконтроллеры Z8 общаются с внешним миром через мультиплексированную шину адрес/данные.
В рамках одной архитектуры, микроконтроллеры Z8 можно разделить на три группы, выпускаемые в виде версий с масочным или однократно программируемым ПЗУ или, что встречается редко, без ПЗУ вовсе.
1 Z8 CCP ряд низкостоимостных и малопотреблящих микроконтроллеров в 18- и 28-выводном исполнении с внутренним ПЗУ 0,52 Кбайт и ОЗУ 61125 байт, с минимальной периферией:
- два 8-разрядных таймера-счетчика с 6-бит предделителем (Z86C02 имеет один таймер);
- два аналоговых компаратора;
- от 14 до 24 линий ввода/вывода;
- обслуживание 6 внешних прерываний.
Микроконтроллеры с расширенным набором функций с увеличенной встроенной памятью программ до 16, 32 и 64 Кбайт. Дополнительная периферия может включать в себя:
- последовательные интерфейсы UART и SPI;
- блок таймеров-счетчиков с функциями захвата (Z86C93);
- 8-канальный 8-разрядный АЦП (Z86X83/84) и два 8-разрядных ЦАП (Z86X84);
- увеличенное количество линий ввода/вывода;
- блок аппаратного умножения 16╢16 и деления 32/16 (Z86C93).
Отдельно помещается микроконтроллер Z86C95, объединяющий на одном кристалле ядро Z8 и 16-разрядный DSP. ZiLOG выпускает в составе семейства Z89 цифровых сигнальных процессоров целый ряд подобных кристаллов (но называются они уже как DSP со встроенным Z8, а не Z8 со встроенным DSP). Вообще, такое слияние довольно интересный феномен, отражающий тенденции последнего времени по сближению двух миров, цифровых сигнальных процессоров и современных скоростных микроконтроллеров (см. онлайновую статью "Microcontrollers and DSPs Will the Two Worlds Ever Intersect?", William A. Glovino, на странице www.microcontroller.com).
Диапазон напряжения питания, в зависимости от версии микроконтроллера (MASK ROM, OTP, ROMless, индустриальный или коммерческий диапазон температур), составляет в среднем 3,05,0 В. Однократно программируемые микроконтроллеры начинают работать при более высоком значении напряжения питания. Выпускаются также версии с пониженным напряжением питания от 2 В. Такие МК имеют в названии литеру L.
Интригующей особенностью некоторых МК Z8 является отсутствие внешнего вывода RESET. Микроконтроллеры Z8 имеют в своем составе схему сброса по включению питания, сторожевой таймер, два режима энергосбережения. Почти все микроконтроллеры семейства имеют схему сброса по снижению напряжения питания и могут устанавливать защиту от чтения внутренней памяти.
Z8 Plus
Микроконтроллеры Z8Plus являются дальнейшим развитием Z8 для низкостоимостных применений и насчитывают сейчас 4 версии. Сохранив программную совместимость с первым семейством, МК Z8Plus обладают более высокой производительностью. За счет сокращения длительности машинного цикла и использования команд фиксированной длины, новые микроконтроллеры работают в 1,5 раза быстрее, чем аналогичные версии Z8. Все команды процессора Z8Plus выполняются за 1 мкс при тактовой частоте 10 МГц.
Микроконтроллеры содержат однократно программируемое ПЗУ программ от 0,5 до 1 Кбайт, ОЗУ от 32 до 64 байт и выпускаются в 18- и 20-выводных корпусах.
Программно-аппаратные средства отладки
ZiLOG предлагает очень интересный и относительно недорогой (290$) программатор-эмулятор Z8CCP00ZEM для микроконтроллеров Z8 группы CCP, позволяющий проводить полный процесс отладки, а затем программировать микроконтроллеры с однократным ПЗУ. Кроме этого, распространяются бесплатный ассемблер и программный симулятор. Существуют также версии Си-компиляторов.
Texas Instruments. TMS370
8-разрядные микроконтроллеры от Texas Instruments представлены двумя семействами TMS7000 и TMS370. Происхождение TMS7000 уже скрыто во тьме веков, и отыскать технические данные на эти микроконтроллеры сейчас, пожалуй, так же сложно, как найти, к примеру, описание на первый микропроцессор 4004. Семейство TMS370, выпускаемое в настоящее время Texas Instruments, является дальнейшим развитием TMS7000. К сожалению, несмотря на большие объемы продаж 8-разрядных микроконтроллеров (по цитируемому всюду примеру из DATA QUEST за 1995 год, Texas Instruments занимала 6 место в общемировом выпуске 8-разрядных МК), компания не собирается далее развивать микроконтроллеры TMS370, ограничившись производством уже существующих типов МК.
Между тем, семейство TMS370 представляет вполне конкурентоспособные изделия по отношению к продукции других фирм.
Компания TI одной из первых применила в своих микроконтроллерах концепцию регистрового файла (до 256 регистров) взамен традиционной аккумуляторной архитектуры. Неймановский процессор обращается к регистрам файла, как к регистрам или как к ОЗУ, и может адресовать до 64 Кбайт памяти. Любой из регистров общего назначения регистрового файла может работать как аккумулятор, источник операнда или получатель результата операции. Регистр R1 может использоваться при индексной адресации. Также любая регистровая пара может работать как 16-разрядный регистр косвенной адресации или косвенной адресации со смещением. Для обслуживания периферийных устройств введен периферийный регистровый файл размером 256 байт, где каждому из 16 периферийных устройств назначен блок из 16 регистров.
Система команд включает в себя 73 основные инструкции. Большинство команд выполняется за 611 системных циклов, за исключением команд управления, команд деления 16/8 и умножения 8╢8, требующих соответственно до 63 и 47 циклов. Стандартная длительность системного цикла составляет 200 нс при тактовой частоте 5 МГц. Можно выделить команды для 16-бит операций, включающие команды инкремента, загрузки/сохранения и обмена 16-разрядными операндами.
Микроконтроллеры TMS370, выпускаемые Texas Instruments, насчитывают 14 подсемейств, и в общей сложности, более 60 представителей, различающихся размером памяти, присутствующими периферийными устройствами и исполнением.
Номенклатура периферийных устройств включает в себя:
- два таймерных модуля T1 и Т2, имеющих между собой некоторые различия. Модуль Т2 содержит 16-разрядный таймер-счетчик и может работать в режимах счета внешних событий, сравнения, входного захвата, широтно-импульсной модуляции, измерения длительности входного сигнала с формированием соответствующих прерываний. Модуль T1 добавляет к этому входной предделитель и дополнительный сторожевой таймер;
- PACT (Programmable Acquisition and Control Timer) таймерный сопроцессор. Имеется в наличии только у серий TMS370Cx32 и TMS370Cx36. Довольно сложное устройство, предназначенное для сбора временной информации и контроля выходных сигналов с минимальным участием процессора;
- аналогово-цифровой 8-бит преобразователь со временем преобразования, занимающим 164 машинных цикла. В зависимости от версии, микроконтроллеры TMS370 могут комплектоваться АЦП с 4, 8 и 15 каналами;
- система последовательного интерфейса представлена 3-проводным интерфейсом SCI1 (скорость передачи в асинхронном режиме до 156 Кбит/с и в синхронном 2,5 Мбит/c), 2-проводным асинхронным SCI2 и 3-проводным синхронным SPI;
- микроконтроллеры TMS370 могут содержать однократно программируемое ПЗУ емкостью от 2 до 48 Кбайт, ОЗУ объемом от 128 до 3584 байт. Все МК TMS370 содержат EEPROM данных 256 или 512 байт, за исключением серий TMS370CxAx и TMS370xCx. Микроконтроллеры выпускаются в пластиковых или керамических (windowed) корпусах с 28, 40, 44, 64, 68 выводами.
МК TMS370Cx5x и TMS370x6x могут адресовать внешнюю память, используя при этом немультиплексированные шины адреса и данных.
Texas instruments предлагает за 99$ стартовый набор, в который входят: программный симулятор, ассемблер, линковщик, а также плата для программирования микроконтроллеров с внутренним ПЗУ. Программные средства включают также Си-компилятор.
E-mail: misha@planar.nsk.ru
Ваш комментарий к статье | ||||