Последний уровень раздела предыдущего изложения   Текущий уровень изложения предыдущего раздела   Текущий уровень изложения следующего раздела   Первый уровень изложения следующего раздела   Уровень:


Шестнадцатиразрядные микроконтроллеры серии MCS-96

Однокристальные микроконтроллеры Intel MCS-96.

Общая характеристика

В семейство MCS-96 фирмы Intel (иногда будет использоваться и название 80C196) входит более 30 разновидностей микроконтроллеров. Это 16-разрядные, быстродействующие ИС высокой степени интеграции, ориентированные на решение задач управления процессами в реальном масштабе времени. Типичные области применения для этих микроконтроллеров - управление двигателями, модемы, безъюзовые тормозные системы, контроллеры жестких дисков, медицинское оборудование.

История MCS-96 насчитывает более 12 лет. За это время специалисты фирмы Intel увеличили адресное пространство с 64 КБайт до 6 Мбайт, повысили тактовую частоту с 10 до 50 МГц, улучшили быстродействие в 16 раз и добились понижения цены на базовый кристалл примерно в 4 раза.

По сравнению с восьмиразрядными однокристальными микроконтроллерами, данное микроконтроллерное семействопозволяет существенно расширить область применения встраиваемых микроконтроллеров в первую очередь за счет более высокой скорости и точности вычислений, а также за счет использованиярасположенных на кристалле новых периферийных устройств, обеспечивающихболее высокую скорость обработки сигналов в управляющей системе и более высокую надежность функционирования системы.

Микроконтроллеры 80C196 фактически стали индустриальным стандартом для 16-разрядных встроенных систем управления, обеспечивая сочетание высоких технических показателей и экономической эффективности. Например, именно благодаря этим микроконтроллерам, установленным в системе управления зажиганием, специалистам концерна Ford удалось существенно снизить потребление топлива, уменьшить выбросы вредных веществ и одновременно повысить скоростные характеристики своих машин.

Структура микроконтроллера

Микроконтроллеры семейства MCS-96 являются микропроцессорными устройствами синхронного типа. Выполнение всех действий в микроконтроллере привязано во времени к тактовым сигналам, вырабатываемым внутренним генератором тактовых импульсов. Частота следования тактовых импульсов стабилизируется с помощью внешнего кварцевого резонатора. Высшее значение тактовой частоты (F max) у микроконтроллеров разных типов может иметь значение 10, 12, 16 и 20 Мгц.

Основными функциональными частями микроконтроллера являются процессор, память и периферия (набор периферийных устройств).

В состав процессора входят арифметико-логическое устройство (АЛУ, ALU) и регистровое оперативное запоминающее устройство (РОЗУ, RRAM).

АЛУ.В отличие от микроконтроллеров других семейств АЛУ микроконтроллера семейства MCS-96 не имеет регистра-аккумулятора. В качестве регистра-аккумулятора может использоваться любой регистр РОЗУ.

На частоте 16 МГц АЛУ выполняет 2 млн. оп/с при выполнении элементарных операций над знаковыми/беззнаковыми данными длиной 1 или 2 байт. Для этих чисел имеются также и операции умножения и деления (быстродействие: 580 тыс. умножений/сек, 330 тыс. делений/сек).

РОЗУу микроконтроллеров разных типов может содержать 232, 360, 488 или 1000 восьмиразрядных регистров. Регистры РОЗУ используются для хранения только данных.

Памятьпредставлена постоянным запоминающим устройством (ПЗУ, ROM). У микроконтроллеров некоторых типов в состав памяти входит оперативное запоминающее устройство (ОЗУ, RAM). Ячейки памяти в ОЗУ и ПЗУ могут использоваться для хранения данных и команд программы.

ПЗУу контроллеров разных типов может содержать 8К, 12К, 16К, 24К или 32К восьмиразрядных ячеек памяти. В ПЗУ имеется область, предназначенная для хранения специальных данных (векторы прерывания, ключ защиты ПЗУ и другие специальные коды).

ОЗУу контроллеров разных типов может иметь 128, 256 или 512 восьмиразрядных ячеек памяти. При использовании ОЗУ для размещения команд программы открывается возможность выполнять модификацию команд в процессе выполнения программы.

Процессор обращается к памяти через контроллер памяти (КП, МС). Через контроллер памяти осуществляется также обращение к внешней памяти, реализованной с помощью микросхем ОЗУ и ПЗУ. Контроллер памяти позволяет при одном обращении к памяти считывать или записывать как восьмиразрядные,так и шестнадцатиразрядные коды.

Максимальный суммарный объем внешней и внутренний памяти (без РОЗУ) у микроконтроллеров большинства типов составляет 64Кх8 бит. У микроконтроллеров подсемейства NT суммарный объем памяти может быть доведен до 1Мх8 бит. Микроконтроллеры, в обозначении типа которых на втором месте стоит цифра 0 (Х=0), не имеют внутреннего ПЗУ. Его функции реализуются с помощью микросхем ПЗУ, входящих в состав внешней памяти.


ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА МИКРОКОНТРОЛЛЕРАсемейства MCS-96 по выполняемым функциям могут быть отнесены к одной из шести групп:

  1. устройства ввода и вывода данных, представленных многоразрядными двоичными кодами;
  2. устройства ввода и вывода отдельных дискретных сигналов (включено-выключено);
  3. устройства ввода и вывода аналоговых сигналов;
  4. устройства обмена данными с другими микроконтроллерами и центральным процессором системы;
  5. устройства приема и обслуживания запросов прерывания;
  6. устройства контроля правильности функционирования микроконтроллера.

Работа периферийных устройств рассматривается в разделе 4. Для управления работой периферийных устройств и определения их состояния используются регистры специальных функций (Special Function Registers -SFR).

ТАЙМЕРЫ Два 16-разрядных таймера TIMER1 и TIMER2 обеспечивают синхронизацию работы устройства ввода-вывода импульсных сигналов (HSIO, High Speed In/Out unit) с реальным временем и внешними событиями. TIMER1 синхронизируется изнутри, тогда как TIMER2 синхронизируется снаружи.

CODE RAM Это дополнительное ОЗУ, в котором можно размещать исполняемый код. Этот код будет выполняться очень быстро, так как Code RAM имеет 16-разрядный интерфейс с нулевым циклом ожидания. Code RAM может принести существенную пользу в задачах, где требуется максимально быстрое выполнение только небольших фрагментов кода, позволяя при этом использовать сравнительно медленное и дешевое 8-битное ПЗУ для хранения остальной части программы. Конечно, эту память можно использовать и для размещения данных или стека.

ЭНЕРГОПОТРЕБЛЕНИЕ Общее потребление - не более 75 мА на частоте 16 МГц. Имеются режимы с пониженным энергопотреблением: IDLE (30 мА) и POWER DOWN (0,1 мА).

ТЕМПЕРАТУРНЫЙ ДИАПАЗОН, КОРПУСА Существует четыре разновидности по температурному диапазону работы: коммерческий (0...+70 градусов), расширенный (-40...+85), автомобильный (-40...+125) и военный. Кроме того, микроконтроллеры могут быть подвергнуты динамической электротермотренировке. ИС устанавливаются в корпуса типов: PLCC-68, QFP-80, керамический LCC-68, и керамический PGA-68.

Периферийные устройства

Устройства ввода и вывода данных

Ввод и вывод данных, представленных многоразрядными двоичными кодами, осуществляется через параллельные порты. В микроконтроллерах семейства MCS-96 используются восьмиразрядные и четырехразрядные порты. При этом микроконтроллер может иметь от четырех до восьми портов.

Два восьмиразрядных порта (РЗ и Р4) предназначены для подключения внешней памяти. Использование этих портов для ввода и вывода данных возможно лишь при ее отсутствии.

тип линии порта кол-во в порту 0 кол-во в порту 1 кол-во в порту 2 кол-во в портах 3 и 4 кол-во в порту HSIO всего
двунаправленная   8 2 16/0 2 28/12
только вход 8   4   2 14
только выход     2   4 6
        порты 3/4 заняты если используется внешняя шина   48/32

Отдельные выводы параллельных портов могут выполнять альтернативные функции (прием запросов прерывания, вывод сигналов управления и др.). Для перевода выводов портов в режим альтернативных функций необходимо заслать определенное управляющее слово в соответствующий регистр специальных функций.

Устройство ввода и вывода дискретных сигналов

Дискретные сигналы (включено-выключено) широко используются в системах управления.

Изменение значения дискретного сигнала называется событием.

В микроконтроллерах семейства MCS-96 для обработки входных и формирования выходных событий используется специальные периферийные устройства, осуществляющие быстрый ввод и быстрый вывод без непосредственного участия процессора.

Быстрый ввод заключается в обнаружении события определенного типа на определенном входе микроконтроллера и запоминание времени его наступления в заданной системе отсчета времени. Быстрый вывод заключается в формировании события определенного типа на заданном выходе микроконтроллера в заданный момент времени.

Для выполнения операций быстрого ввода и вывода в микроконтроллерах разных типов используются или блок быстрого ввода-вывода (HSIO), или блок процессоров событий (EPA).

В обоих блоках для формирования текущего значения времени используются шестнадцатиразрядные таймеры-счетчики, на счетные входы которых подаются сигналы времени от внутреннего генератора или от внешнего источника.

В блоке быстрого ввода-вывода (HSIO) для обработки входных событий и формирования выходных событий используются специализированные модули для ввода и для вывода, а в блоке процессоров событий (EPA) содержится набор универсальных модулей, каждый из которых при программировании настраивается на работу или в режиме быстрого ввода (capture-захвата) или в режиме быстрого вывода (compare-сравнения).

По результатам обработки входных событий могут вычисляться параметры импульсных последовательностей на входах микроконтроллера - период следования импульсов, их длительность, сдвиг во времени между импульсами на разных входах и другие параметры.

Блоки HSIO и EPA кроме операций быстрого ввода и вывода могут использоваться для формирования временных задержек (режим программного таймера) формирования сигналов специальной формы (например, сигнала с широтно-импульсной модуляцией), запуска аналого-цифрового преобразователя и выполнения некоторых других функций.

Устройства ввода и вывода аналоговых сигналов

У микроконтроллеров большинства типов в число периферийных устройств входит многоканальный аналого-цифровой преобразователь (ADC). Число каналов может быть равно 4, 6,8, 13 или 14. Входное напряжение в канале может изменяться в пределах от 0 до 5 (5,12)В. В результате преобразования формируется восьмиразрядный или десятиразрядный двоичный код.

Запуск преобразования в канале может производиться по команде в программе или по сигналу из блока HSIO или ЕРА в заранее заданное время. Некоторые преобразователи могут работать в режиме сканирования входов.

На частоте 16 МГц время преобразования - 19,5 мкс. Имеется схема выборки/хранения и отдельные входы опорного напряжения и аналоговой земли.

Преобразование цифровых данных в аналоговый сигнал выполняется с использованием широтно-импульсного модулятора (PWM). Широтно-импульсный модулятор формирует последовательность прямоугольных импульсов, следующих с постоянным периодом. Длительность импульса пропорциональна числу, преобразуемому в значение аналогового сигнала. Получаемая импульсная последовательность с выхода микроконтроллера с переменной скважностью подается на внешнюю интегрирующую схему, с выхода которой снимается аналоговый сигнал.

Диапазон изменения скважности импульсов - 256 градаций. Период импульсов может быть равен 256 или 512 тактам (31,25 или 15,625 кГц соответственно, для частоты 16 МГц).

В микроконтроллерах подсемейства МС кроме двух широтно-импульсных модуляторов имеется специальный блок содержащий три широтно-импульсных модулятора, работающих совместно. Этот блок, называемый генератором периодических колебаний (WG), имеет три пары выходов. Разность напряжений на выходах одной пары представляет собой синусоидоподобный ступенчатый сигнал. Сигналы, снимаемые с трех пар выходов, могут быть использованы для питания трехфазных индукционных двигателей переменного тока. Блок позволяет также формировать сигналы для управления вентильными двигателями постоянного тока, шаговыми двигателями и для некоторых других целей.

Устройства обмена данными с другими микроконтроллерами и центральным процессором

Обмен данными с другими микроконтроллерами в управляющей системе, содержащей несколько совместно работающих микроконтроллеров, может осуществляться по последовательному каналу или путем совместного использования внешней памяти.

Обмен данными по последовательному каналу выполняется с использо-ванием последовательного порта (SP). Обмен производится путем посылки отдельных кадров, каждый из которых содержит стартовый бит, семь или восемь информационных битов и один стоповый бит. В состав кадра может быть включен дополнительный бит, который используется для контроля по четности правильности пересылки данных или для различения кадров, содержащих адреса абонентов, и кадров содержащих данные, при включении контроллера в простейшую локальную сеть.

Последовательный порт может также осуществлять последовательный ввод или вывод байтов с использованием внешних сдвигающих регистров, которые в этом случае выполняют функции дополнительных параллельных портов ввода или вывода.

У микроконтроллеров некоторых типов в число периферийных устройств входит второй последовательный порт (SSIO), с помощью которого осуществляется непосредственный обмен байтами между двумя микроконтроллерами путем последовательной передачи байта и сопровождающей серии импульсов сдвига. Порт SSIO содержит два последовательных канала, каждый из которых может работать в режиме передачи или в режиме приема. Максимальная скорость обмена (на частоте 16 МГц): в асинхронном режиме - 1 Мбод; в синхронном режиме - 4 Мбод.

Микроконтроллеры почти всех модификаций имеют аппаратные средства, обеспечивающие совместное использование внешней памяти несколькими микроконтроллерами. Согласование работы микроконтроллеров при обращении к внешней памяти реализуется с помощью сигналов НОLD, HLDA, BREQ и дополнительной внешней аппаратуры.

У микроконтроллеров некоторых типов имеется "подчиненный" порт (Slave Port), предназначенный для обмена данными с центральным процессором в иерархической управляющей системе. Через "подчиненный" порт микроконтроллер подключается непосредственно к системной магистрали микропроцессорной системы. Обмен данными происходит под управлением центрального процессора, который обращается к микроконтроллеру, как к собственному порту ввода и вывода. При появлении необходимости передать данные в центральный процессор микроконтроллер посылает запрос прерывания.

Устройства приема и обслуживания запросов прерывания

Запросы прерывания текущей программы могут поступать от внешних источников или формироваться внутри микроконтроллера в различных периферийных устройствах. Общее число источников запросов прерывания у микроконтроллеров разных типов может быть 21, 28 или 37.

Запросы прерывания могут маскироваться путем посылки кодов маски в соответствующие регистры специальных функций. В микроконтроллерах всех типов имеется программный контроллер прерываний (PIC). Обслуживание запроса прерывания с использованием PIC заключается в переходе от выполнения текущей программы к выполнению другой определенной программы, составленной разработчиком программного обеспечения.

Адрес первой команды каждой прерывающей программы (вектор прерывания) хранится в определенной паре ячеек ПЗУ в области памяти, отведенной для хранения специальных данных. После завершения выполнения прерывающей программы происходит возврат к прерванной программе.

Прерывающая программа в свою очередь может быть прервана при поступлении любого незамаскированного запроса прерывания вне зависимости от соотношения приоритетов запроса, вызвавшего переход к данной программе, и нового запроса прерывания.

В микроконтроллерах некоторых типов кроме программного контроллера прерываний имеется микропрограммный контроллер прерываний (PTS). Любой запрос прерывания, кроме нескольких особых запросов, может быть направлен для обслуживания или в PIC или в PTS.

Обслуживание запроса прерывания с использованием PTS заключается в выполнении типовой микропрограммы, при этом выполнение операций по микропрограмме совмещается во времени с выполнением команд текущей программы. Микропрограммы PTS охватывают, в основном, пересылки данных. Прерывания, обслуживаемые PTS, отрабатываются быстрее, чем те, которые обслуживаются обычным способом. Однако, программировать PTS непросто, а отлаживать еще сложнее.

Устройства контроля правильности функционирования микроконтроллера.

Все микроконтроллеры семейства MCS-96 имеют сторожевой таймер (WDT). Сторожевой таймер по прошествии определенного интервала времени переводят микроконтроллер в состояние сброса. Правильно работающая программа должна предотвращать сброс микроконтроллера от WDT путем периодического сброса в нулевое состояние самого WDT. При сбое в ходе программы сторожевой таймер своевременно не сбрасывается, и при его переполнении микроконтроллер переводится в состояние сброса, что предотвращает появление и развитие опасных ситуаций в системе управления.

Микроконтроллеры некоторых типов имеют схему обнаружения падения частоты генератора тактовых импульсов (OFD). При снижении частоты ниже определенного уровня OFD вырабатывает сигнал сброса и переводит микроконтроллер в состояние сброса. Это предотвращает появление опасных комбинаций сигналов на выходах микроконтроллера, которые могут возникнуть при остановке генератора тактовых импульсов в произвольный момент време-ни в процессе выполнения программы.

Характеристики микроконтроллеров подсемейств

К числу основных функциональных характеристик микроконтроллера относятся:

Основные функциональные характеристики базовых микроконтроллеров подсемейств приведены в табл. 2.

Емкость запоминающих устройств указана в байтах.

По значению тактовой частоты мажет быть определено быстродействие микроконтроллера. У микроконтроллеров подсемейства 8X9Y команды коротких операций выполняются за 12 периодов тактовой частоты. При тактовой частоте 12 Мгц микроконтроллеры данного подсемейства имеют быстродействие 1000000 коротких операций в секунду. У микроконтроллеров остальных подсемейств команды коротких операций выполняются за 8 периодов тактовой частоты, и при тактовой частоте 16 Мгц обеспечивается быстродействие 2000000 коротких операций в секунду.

При этом следует иметь в виду, что короткие операции в микроконтроллере семейства MCS-96 по своему содержанию существенно отличаются от коротких операций в микроконтроллере с регистром-аккумулятором. Так, например, одной короткой операции "сложение" в микроконтроллере семейства MCS-96 при представлении данных в формате "байт" соответствует последовательность из трех коротких операции в микроконтроллере семейства MCS-51, а при представлении данных в формате "слово" - соответствует последовательность из шести коротких операций.

Кроме того, в систему команд микроконтроллеров семейства MCS-96 входят команды умножения и деления чисел в формате "слово" В микроконтроллерах других семейств такие операции выполняются по подпрограммам, что резко увеличивает время их выполнения.

Отмеченные особенности существенно сокращают время вычислений в микроконтроллерах семейства MCS-96 по сравнению с микроконтроллерами других семейств.

В систему команд микроконтроллеров, изготавливаемых по КМДП технологии, входят различные дополнительные команды, в числе которых имеется команда перевода микроконтроллера в энергосберегающие режимы - режим холостого хода и режим пониженного энергопотребления. В режиме холостого хода программа не выполняется, но функционируют все периферийные устройства, при этом потребление энергии от источника питания уменьшается на 60%. В режиме пониженного энергопотребления прекращаются все процессы в микроконтроллере, но сохраняются данные в РОЗУ и ОЗУ. При этом ток потребления составляет единицы микроампер.

С появлением на рынке цифровых интегральных схем микроконтроллеров семейства MCS-96 фирмы Intel перед разработчиками систем, содержащих встроенные микроконтроллеры, открываются новые большие возможности по созданию высоко совершенных, малогабаритных, экономичных и надежных систем, приборов и устройств различного назначения.

Кристалл Частота (МГц)/ быстродействие (MIPS) Адресное пр-во ПЗУ Регистры Доп. ОЗУ Таймеры Каналы АЦП Линии в/в HSIO/ EPA Унив. посл. порты Cинхр. посл. порты PTS ШИМ
Device Clock (Mhz)/ Speed (MIPS) Address Space ROM Registers Code RAM Timers A/D Channels I/O Pins HSIO/ EPA UARTs SSIO PTS PWM
8X96BH 12/1 64K 232 нет 2 8 48 HSIO 1 нет нет 1
8XC196KB 16/2 64К 232 нет 2 8 48 HSIO 1 нет нет 1
8XC198 16/2 64К 232 нет 2 4 48 HSIO 1 нет нет 1
8XС196KC 20/2.5 64К 16К 488 нет 2 8 48 HSIO 1 нет да 3
8XC196KD 20/2.5 64К 32К 1000 нет 2 8 48 HSIO 1 нет да 3
8XC196KR/KQ 16/2 64K 16K/12K 488/360 256/128 2 8 56 10 EPA 1 1 да нет
8XC196JR/JQ 16/2 64K 16K/12K 488/360 256/128 2 6 41 EPA 1 1 да нет
8XC196KT/KS 16/2 64K 32K/24K 1000 512/256 2 8 56 10 EPA 1 1 да нет
8XC196JT/JS 16/2 64K 32K/24K 1000 512/256 2 6 41 EPA 1 1 да нет
8XC196JV 20/2.5 64K 48K 1.5K 512 2 6 41 EPA 1 1 да нет
8XC196MC 16/2 64К 16К 488 нет 2 13 53 EPA нет нет да нет
8XC196MD 16/2 64K 16K 488 нет 2 14 64 EPA нет нет да нет
8XC196MH 16/2 64K 32K 744 нет 2 8 50 EPA 2 нет да нет
8XC196CA 20/2.5 64K 32K 1000 256 2 6 44 EPA 1 1 да нет
8XC196NT 20/2.5 1M 32K 1000 512 2 4 56 10 EPA 1 1 да нет
8XC196CB 20/2.5 1M 56K 1.5K 512 2 8 56 10 EPA 1 1 да нет
8XC196NP 25/3 1M   1000 нет 2 нет 32 EPA 1 нет да 3
80C196NU 50/6 1M нет 1000 нет 2 нет 32 EPA 1 нет да 3
8XC296SA 50/16 6M 2K 512 2K 2 нет 32 EPA 1 нет нет 3

Почему 80C196 быстрее, чем 8051?

Все 232 внутренних регистра 80C196 имеют статус " аккумуляторов " - к ним можно непосредственно применять все необходимые арифметические и логические операции. У 8051 для достижения тех же результатов зачастую необходимо выполнять дополнительные пересылки в аккумулятор и из него.

У 80C196 можно использовать 16-разрядную внешнюю шину. Кроме того, цикл шины 80C196 в 3-4 раза короче, чем у 8051. В результате, 80C196 в 6-8 раз быстрее работает с внешней памятью. Отметим, что, для того, чтобы снизить стоимость изделий, можно вводить в шину циклы ожидания и сократить ее ширину до 8-ми бит; но даже в этом случае 80C196 будет иметь преимущество в 2-3 раза.

В задачах, требующих 16- и 32-разрядных вычислений, 80C196 примерно на порядок быстрее, поскольку имеет полноценный набор 16-разрядных арифметических инструкций.

Одним из самых эффективных способов сокращения времени разработки программ для микроконтроллеров является применение языка Си. Язык Си базируется на широком использовании стека и указателей. Однако для 8051 использование Си затруднено и ведет к большим накладным расходам, и вот почему. Поскольку 8051 имеет небольшой стек, Си-компиляторы для 8051 генерируют дополнительный код, эмулирующий большой стек во внешней памяти данных. Вдобавок 8051 имеет всего один 16-разрядный указатель - DPTR, и компиляторам также приходится генерировать дополнительный код, чтобы компенсировать этот недостаток. Все это приводит к замедлению программ и увеличению их размера. У 80C196 таких проблем нет - стек имеет размер до 64 КБайт, а в качестве указателя можно использовать любое из 116 слов встроенной регистровой памяти.