Скачиваний:
55
Добавлен:
21.02.2014
Размер:
1.26 Mб
Скачать

2.4 Управление работой микроконтроллера

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

Синхронизация микроконтроллера. Опорную частоту синхронизации определяет или кварцевый резонатор (осциллятор), подключаемый к входам XI и Х2, или LC-цепь; X1 является входом, а Х2 - выходом генератора, способного работать в диапазоне частот от 1 до 6 МГц. На вход X1 может подаваться сигнал от источника внешней синхронизации. Схема синхронизации МК показана на рисунке 6 а. В нее входят два счетчика с модулями пересчета 3 и 5. Первый используется для формирования сигнала системной синхронизации, который может передаваться на вывод Т0 после команды ENT0 CLK. Этот же сигнал поступает на счетчик машинных циклов, на выходе которого через каждые пять сигналов синхронизации МК формируется сигнал САВП, идентифицирующий каждый машинный цикл и используемый в расширенных МК-системах для стробирования адреса внешней памяти. Временные диаграммы машинного цикла и цикла команды МК показаны на рисунке 6б.

Рисунок 6 – Схема синхронизации МК (а), временные диаграммы

машинного цикла и цикла команды (б).

Системный сброс. В обслуживаемых МК-системах для инициализации используется кнопка сброса, которая заземляет соответствующий вход после подачи электропитания. В необслуживаемых МК-системах на вход СБРОС подсоединяется конденсатор емкостью 1 мкФ, что обеспечивает подачу сигнала, близкого к потенциалу земли, длительностью не менее 50 мс, после того, как напряжение электропитания установится после включения (рисунок 6а).Сигнал СБРОС производит следующие действия: сбрасывает счетчик команд и указатель стека, устанавливает порт BUS в высокоимпедансное состояние, а порты Р1 и Р2 - на режим ввода; выбирает банк регистров RB0 и блок памяти MD0; запрещает прерывания; останавливает таймер и выдачу синхросигнала на вывод Т0; сбрасывает признак переполнения таймера FT и признаки пользователя F0 и F1.

Пошаговый режим работы. Схема запуска и временная диаграмма работы МК в пошаговом режиме показаны на рисунке 7 (части "а" и "б" соответственно). Этот режим используется на этапе отладки МК-системы и предоставляет разработчику возможность выполнить прикладную программу покомандно с выводом адреса очередной команды через порт BUS и младшую тетраду порта Р2.

Рисунок 7 – Схема сброса (а), пошагового режима работы (б) и временная

диаграмма (в).

Сигнал = 0 останавливает работу МК после окончания цикла текущей команды и выдает подтверждающий сигнал САВП. Для вывода МК из состояния останова необходимо подать сигнал = 1, на который МК откликается генерацией подтверждающего сигнала САВП=0. Для того, чтобы МК остановился на следующей команде, на вход вновь должен быть подан сигнал 0, как только сигнал САВП стал равен нулю. Переход от команды к команде осуществляется по нажатию кнопки ШАГ, запускающей буферный D-триггер по входу синхронизации. Сигнал на выходе D-триггера не приобретает значение 1 до тех пор, пока сигнал САВП не будет равен 1. Так как вход R* асинхронного сброса D-триггера эквивалентен трем ТТЛ-нагрузкам, то между выходом сигнала САВП и входом сброса D-триггера иеобходимо установить усилитель.

Счетчик команд и логика условных переходов. Только 10 младших разрядов счетчика команд используются для адресации 1 Кбайт резидентной памяти программ, а 2 старших разряда — для обращения к внешней памяти программ в расширенных МК-системах. При прерываниях или вызове подпрограмм все 12 разрядов счетчика команд загружаются в стек. Кроме того, в стек загружается часть слова состояния процессора, в состав которого входят признаки переноса, вспомогательного переноса, признак пользователя Р0 и признак банка регистров В5.

Логика условных переходов МК позволяет прикладной программе проверять не только внутренние признаки, но и условия, внешние по отношению к МК. По командам условного перехода в случае удовлетворения проверяемого условия в счетчик команд (разряды 0—7) из второго байта команды загружается адрес перехода. Логика переходов оперирует со следующим набором условий (таблица 1):

Таблица 1 – Логика условных переходов

Прерывание. Линия запроса прерывания от внешнего источника проверяется каждый машинный цикл во время действия сигнала САВП, но передача управления ячейке 3, где расположена команда ЛМР, выполняется только по завершении цикла команды. При обработке пре­рывания, как и при вызове подпрограммы, содержимое счетчика команд и части ССП сохраняется в стеке. К входу микроконтроллера через монтажное ИЛИ от схем с открытым коллектором могут быть подключены несколько источников прерывания. Система прерывания одноуровне­вая, так как после распознавания прерывания все после­дующие запросы прерывания игнорируются до тех пор, пока по команде возврата RETR вновь будет разрешена работа логики прерываний. Это справедливо и для внутрен­него прерывания, генерируемого признаком переполнения таймера.

На рисунке 8 показана схема системы прерываний МК.

Режим прерываний может быть запрещен или разрешен программой по командам DISI и ЕNI. Сигнал должен быть снят внешним устройством перед окончанием подпро­граммы обслуживания, т. е. до исполнения команды RETR. В том случае, если внешнее устройство не сбрасывает свой триггер запроса прерываний при обращении МК к его буферному регистру, одна из выходных линий МК используется подпрограммой обслуживания прерывания для сброса триггера запроса прерывания во внешнем устрой­стве.

Так как вход может быть проверен по команде ус­ловного перехода JNI, то при запрещенном режиме преры­вания вход может быть использован в качестве до­полнительного тестирующего входа подобно входам Т0 и Т1.

При необходимости в МК можно создать двухуровне­вую систему прерываний. Для этого надо разрешить прерывания от таймера, загрузить в него число FFi6 и пере­вести в режим подсчета внешних событий, фиксируемых на входе Т1. Переход сигнала на входе Т1 из состояния 1 в состояние 0 приведет к прерыванию по вектору в ячейке 7. В случае одновременного запроса прерываний от внешнего источника и запроса от признака переполнения таймера приоритет остается за источником, воздействующим на вход .

Рисунок 8 - Схема системы прерываний

При входе в подпрограммы обслуживания прерываний старший разряд счетчика команд СКи принудительно устанавливается в нуль. Следовательно, вся программа обработки прерывания должна быть размещена в блоке памяти 0. Выполнение команд SEL МВ в процедуре обработки прерывания нежелательно, так как по этим командам изменяется только содержимое триггера признака блока памяти, но остается неизменным до выхода из прерывания (RETR) содержимое СКи = 0.

Соседние файлы в папке МП К1816ВЕ4