![]() ![]() ![]() ![]() |
|
|
![]() |
В семейство 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 по выполняемым функциям могут быть отнесены к одной из шести групп:
Работа периферийных устройств рассматривается в разделе 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 | 8К | 232 | нет | 2 | 8 | 48 | HSIO | 1 | нет | нет | 1 |
8XC196KB | 16/2 | 64К | 8К | 232 | нет | 2 | 8 | 48 | HSIO | 1 | нет | нет | 1 |
8XC198 | 16/2 | 64К | 8К | 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 |
Все 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 слов встроенной регистровой памяти.