Режимы пониженного энергопотребления — КиберПедия 

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Режимы пониженного энергопотребления

2017-12-13 465
Режимы пониженного энергопотребления 0.00 из 5.00 0 оценок
Заказать работу

 

Для применений, где потребление энергии критично, например, при питании от батарей, МК51 имеет два режима пониженного энергопотребления: режим ожидания Idle (холостого хода) и режим микропотребления PD (Power Down). Для активизации этих режимов требуется установить соответствующие биты PCON.0 (IDL) или PCON.1 (PD) (таблица 4.9)

Режим ожидания. При поступлении команды, которая установит бит IDL, МК переходит в режим ожидания (холостого хода). В контроллере работает внутренний тактовый генератор, работает схема прерываний, таймеры и последовательный порт. Останавливается процесс выборки команд, сохраняются данные в регистрах и на разрядах портов.

Для выхода из режима ожидания можно воспользоваться одним из двух способов:

1. аппаратный сброс. Используется сигнал сброса . При этом переопределяются многие регистры блока специальных функций, но сохраняется содержимое РПД;

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

Режим пониженной мощности. При выполнении команды, которая установит бит PD, МК перейдет в режим низкого потребления Power Down. В этом режиме выключается работа тактового генератора, все функции МК замораживаются, но РПД и блок регистров специальных функций сохраняют свои значения. Напряжение питания схемы при этом можно понизить до +2 В. Важно не понижать напряжение до самого момента включения режима Power Down, иначе может произойти аппаратный сброс.

Для выхода из данного режима можно использовать аппаратный сброс, или разрешенное прерывание от внешнего источника. Перед выходом из режима необходимо восстановить нормальный уровень питания и удержать его не менее 10-3 с. В этом случае успеет запуститься тактовый генератор, и его частота станет стабильной к моменту активизации МК.

 

Система прерываний

 

Источники прерываний

 

МК51 имеет пять источников прерываний (внешние прерывания , , прерывания от таймеров Т0, Т1 и прерывания от последовательного порта).

Внешние прерывания. Прерывания и могут быть вызваны либо уровнем, либо отрицательным перепадом на одноименных входах МК. Выбор определяется состоянием программно изменяемых бит IT0 и IT1 регистра TCON (TCON.0, TCON.2). При значении соответствующего бита «1», данное внешнее прерывание вызывается отрицательным перепадом.

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

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

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

Прерывания таймеров. Прерывания вызываются флагами TF0 и TF1 регистра TCON (TCON.5, TCON.7). Флаги устанавливаются при переполнении соответствующего таймера/счетчика. Флаги сбрасываются аппаратно при вызове программы прерывания.

Прерывания последовательного порта. Прерывание от последовательного порта вызывается при единичном значении одного из флагов RI или TI регистра SCON (SCON.0, SCON.1). Значения флагов проверяются по логическому условию ИЛИ. Программа обслуживания прерывания от последовательного порта должна сама определить флаг, вызвавший прерывание, и сбросить его программно.

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

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

 

Таблица 4.10 - Адреса векторов прерываний

Источник прерывания Бит запроса прерывания Сбрасывается аппаратно Адрес вектора
INT0 IE0 Нет (уровень) Да (переход) 0003H
Таймер 0 TF0 Да 000BH
INT1 IE1 Нет (уровень) Да (переход) 0013H
Таймер 1 TF1 Да 001BH
Последователь-ный порт RI, TI Нет 0023H

 

В системе прерываний МК51 имеется возможность индивидуально разрешать и запрещать реакцию системы на любое прерывание. Кроме этого имеется возможность группового запрета всех прерываний, независимо от индивидуального разрешения/запрета.

Для управления процессом разрешения и запрета используется специальный регистр масок прерываний IE (таблица 4.11).

При разрешении некоторого прерывания требуется отменить запрет всех прерываний (EA=1), и установить нужный бит. Если сбросить бит (EA=0), все прерывания запрещаются, независимо от индивидуального разрешения.

 

Таблица 4.11 - Регистр IE

Такой способ группового запрета позволяет быстро и просто на заданное время сделать систему нечувствительной к запросам прерываний (например, для выполнения важной процедуры, чувствительной к времени выполнения).

 

Приоритеты прерываний

 

Есть возможность индивидуально управлять приоритетом источников прерываний при помощи регистра приоритетов IP (таблица 4.12).

Таблица 4.12 - Регистр IP

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

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

Если два или более запросов с разными уровнями приоритетов принимаются одновременно, запрос высокого уровня приоритета обслуживается первым.

Если одновременно принимаются запросы с одинаковыми уровнями приоритета, то порядок обслуживания определяется внутренней последовательностью опроса. Если все прерывания имеют одинаковый приоритет, то обслуживание запросов предполагает следующий порядок: , Т0, , Т1, TI+RI. Данный порядок соблюдается внутри каждой группы запросов с одинаковым приоритетом.

 

Процесс прерывания

 

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

Если один из флагов прерывания равен «1», система аппаратно генерирует команду вызова подпрограммы по фиксированному адресу вектора прерывания. При этом в стек загружается адрес следующей команды, после текущей, а в программный счетчик грузится вектор прерываний (адрес программы обслуживания).

Вызов подпрограммы может быть блокирован одним из условий:

1. В данный момент обслуживается прерывание равного или более высокого уровня приоритета.

2. Текущий цикл опроса не является последним циклом выполняемой команды.

3. Выполняется любая команда записи в регистр масок IE или регистр приоритетов IP.

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

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

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


Поделиться с друзьями:

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

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

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.019 с.