Архитектура микроконтроллеров MCS-48
Архитектура семейства MCS-48 в значительной мере предопределяется ее назначением - построение компактных и дешевых цифровых устройств. Все функции микроЭВМ реализуются с помощью единственной микросхемы. В состав семейства MCS-48 входит целый ряд микросхем отличающихся друг от друга внутренним составом. Поэтому часто выделяют отдельно неизменную часть, которая присутствует во всех микросхемах семейства. Эту часть называют ядром. кроме ядра в состав каждой микросхемы входят части, которыми микросхемы отличаются друг от друга. Эту часть микросхемы называют периферией. Микроконтроллеры семейства MCS-48 позволяют выполнять как задачи управления различными устройствами, так и реализовывать отдельные узлы аналоговой схемы. Все микросхемы этого семейства работают с одной и той же системой команд, в одинаковых корпусах с совпадающей цоколевкой (нумерация ножек для корпуса). Это позволяет использовать для разработанного устройства микросхемы разных фирм - производителей без переделки принципиальной схемы устройства и программы.
Рисунок 1. Структурная схема контроллера К1816ВЕ48
Структурная схема контроллера представлена на рис.1. Основу микроконтроллера составляет системная шина, которая связывает между собой все основные функциональные узлы микросхемы: блок управления, арифметико-логического устройство, блока таймеров/счетчиков, блока последовательного интерфейса и прерываний, программного счетчика, памяти данных и памяти программ. Двусторонний обмен осуществляется с помощью внутренней 8-разрядной магистрали данных. По такой схеме построены все представители семейства MCS-48. Различные микросхемы этого семейства различаются только объЈмом внутренней памяти. Система команд всех контроллеров семейства MCS-48 содержит 96 базовых команд с форматом 1 или 2 байта и не изменяется при переходе от одной микросхемы к другой. Это обеспечивает прекрасную переносимость программ с одного типа микросхем на другой. Рассмотрим подробнее назначение каждого блока.
Блок управления и синхронизации
Блок управления и синхронизации предназначен для выработки синхронизирующих и управляющих сигналов, обеспечивающих координацию совместной работы блоков микроконтроллера во всех режимах работы. В состав блока управления входят:
- устройство формирования временных интервалов,
- логика ввода-вывода,
- регистр команд,
- дешифратор команд, логика управления ЭВМ.
Устройство формирования временных интервалов предназначено для формирования и выдачи внутренних синхросигналов фаз, тактов и циклов. Количество машинных циклов определяет продолжительность выполнения команд. Генератор построен на внутреннем инверторе и внешнем кварцевом или LC резонаторе. Допустимая частота кварцевого резонатора от 1 до 6 МГц. Схемы задающих генераторов тактовой частоты с использованием внутренней и внешней синхронизации приведены на рисунке 2.
Рисунок 2. Схемы генераторов тактовой частоты.
Нужно отметить, что запуск задающего генератора этого микроконтроллера был затруднЈнным (жЈсткий режим самовозбуждения), поэтому для надЈжного запуска задающего генератора следовало использовать либо внешний генератор, либо шунтировать ножки XTAL1 и XTAL2 внешним резистором.
Практически все команды микроконтроллера выполняются за один или два машинных цикла. Обозначим частоту задающего генератора через Fг. Тогда длительность машинного цикла равна 15/Fг или составляет 15 периодов сигнала задающего генератора. Именно с такой частотой выдаЈтся сигнал стробирования адреса ALE. Логика ввода - вывода предназначена для приема и выдачи сигналов, обеспечивающих обмен информации с внешними устройствами через порты ввода вывода и системную шину микроконтроллера.
Сброс микроконтроллера можно осуществить при помощи конденсатора, подключенного к ножке сброса RESET, как показано на рисунке 3. Минимальное время сброса контроллера 50 мс. В настоящее время для этой цели лучше бы подошла микросхема супервизора питания ADM809. После сброса микроконтроллера обнуляется содержимое счЈтчика команд PC, указателя стека в составе регистра PSW, выбираются 0 банк регистров и нулевой банк памяти программ. Запрещаются прерывания.
Рисунок 3. Схемы сброса микропроцессора.
Регистр команд предназначен для записи и хранения 8-ми разрядного кода операции выполняемой команды. Код операции, с помощью дешифратора команд и логики управления ЭВМ, преобразуется в микропрограмму выполнения команды, считанной из ПЗУ.
Арифметико-логический блок представляет собой параллельное восьмиразрядное устройство, обеспечивающее выполнение арифметических и логических операций. АЛБ состоит из:
- регистров временного хранения TMP1 и TMP2,
- аккумулятора (ACC),
- ПЗУ констант,
- арифметико-логического устройства,
- регистра состояния программ (PSW).
Регистры временного хранения - восьмиразрядные регистры, предназначенные для приема и хранения операндов на время выполнения операций над ними. Регистры временного хранения информации программно не доступны.
Аккумулятор - восьмиразрядный регистр, предназначенный для приема и хранения результата, полученного при выполнении арифметико-логических операций или операций сдвига
ПЗУ констант обеспечивает выработку корректирующего кода при двоично-десятичном представлении данных, кода маски при битовых операциях и кода констант.
Арифметико-логическое устройство представляет собой схему комбинационного типа с последовательным переносом, предназначенную для выполнения арифметических операций сложения, вычитания и логических операций И, ИЛИ, исключающего ИЛИ инкремент, декремент, инверсию, циклический сдвиг вправо и влево, десятичную коррекцию содержимого аккумулятора.
При выполнении операций обработки данных в АЛУ вырабатываются флаги, которые сохраняются в регистре состояния программы PSW.
Кроме того, вырабатываются флаги, по которым осуществляется переход в командах условного перехода, такие как флаг нулевого содержимого аккумулятора и флаг наличия единицы в выбранном бите аккумулятора.
Блок обработки прерываний предназначен для организации ввода - вывода последовательных потоков информации и организации системы прерывания программ. Опрос входа запроса прерывания INT производится во время выдачи сигнала ALE. Передача управления на вектор прерывания 3 произойдЈт только по завершению цикла команды. При обработке прерывания содержимое счЈтчика команд и старшей тетрады слова состояния программы сохраняется в стеке. При обработке прерывания запросы прерываний игнорируются до выхода из подпрограммы обработки прерывания по команде RETR. Прерывания могут быть запрещены командой DIS и разрешены командой EN. Приоритет от внешнего прерывания выше приритета прерывания от внутреннего таймера, то есть если эти прерывания возникнут одновременно, то будет осуществлЈн переход на вектор прерывания 3
Счетчик команд (Program Counter) предназначен для формирования текущего 11-разрядного адреса памяти программ. В состав счетчика команд входят 11-разрядные буфер РС, регистр РС и схема инкремента (увеличения содержимого на 1). Кроме того, под управлением команд SEL MB0 и SEL MB1 могут переключаться страницы памяти программ.
Память данных (RAM) предназначена для временного хранения информации, используемой в процессе выполнения программы.
Порты P1 и P2 являются квазидвунаправленными портами ввода - вывода и предназначены для обеспечения обмена информацией микроконтроллера с внешними устройствами, образуя 16 линий ввода- вывода.
Регистр состояния программы (PSW) предназначен для хранения информации о состоянии АЛУ при выполнении программы. Формат регистра PSW приведЈн ниже:
Номер бита | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Имя флага | C | AC | F0 | BS | - | S2 | S1 | S0 |
C - флаг переноса, формируемый АЛУ, AC - флаг вспомогательного переноса между тетрадами, формируемого при десятичных вычислениях. F0 - флаг (битовая переменная), используемый пользователем в своих целях BS - флаг переключения регистровых банков, S0...S2 - биты указателя стека.
Память программ предназначена для хранения программ и представляет собой постоянное запоминающее устройство (ПЗУ). В разных микросхемах семейства применяются ПЗУ различного объЈма. В микросхеме 1816ВЕ35 внутренняя память программ отсутствует вовсе.
[ Назад] [ Содержание] [ Вперёд]