Микроконтроллеры MCS51Особенности систем прерываний МК.

Базовая конфигурация микроконт­роллеров семейства

MCS–51

поддерживает пять векторов прерываний с двумя уровнями приоритетов. Введение в микросхемы других групп МК таймера/счет­чика T/C2, матриц программируемых счетчиков, АЦП, дополнительных портов, регистров приоритета, разрешения/запрещения прерываний и других аппарат­ных средств позволило увеличить число векторов прерываний до пятнадцати и уровней приоритета прерываний до четырех.

В табл. 7.2.19 приведены основные сведения о системах прерываний микро­контроллеров различных групп семейства

MCS–51.

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

Как видно из табл. 7.2.19:

● первые пять векторов прерываний поддерживают все микросхемы

MCS–51;

● шестой вектор — микросхемы 2–й, 4–й, 5–й и 6–й групп, в которых имеется таймер/счетчик 2;

● седьмой вектор прерываний — микросхемы 5–й и 6–й групп, располагающие матрицей программируемых счетчиков РСА;

● пятнадцать векторов прерываний — только микросхемы 6–й группы. Пять из восьми дополнительных прерываний являются прерываниями от внешних со­бытий

INT2–INT6;

по одному от второй программируемой матрицы РСA1, АЦП и порта расширения последовательных каналов

SEP

.

Флаг–источник, активизирующие прерывания, выставляются в фазе

S

5P2 ма­шинного цикла за исключением таймера/счетчика T/C2, флаг Т

F

2 которого вы­ставляется в фазе

S

2P2.

Разрешение/запрещение прерываний.


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

IE

(табл. 7.2.20) или

IEA

(табл. 7.2.21). табл. 7.2.20 табл. 7.2.21

Следует отметить, что:

● биты ЕT2 и ЕРС имеются только в регистрах

IE

тех микросхем, которые рас­полагают T/C2 и РСА;

● регистр

IEA

имеется только в микроконтроллерах 6–й группы.

Управление приоритетами прерываний.

Как уже отмечалось выше базовая микросхема микроконтроллеров МС

S

–51, располагает двумя уровнями приори­тета. Высокий или низкий уровни приоритета обеспечиваются соответственно установкой или сбросом бита регистра приоритетов

IP

(табл. 7.1.8), обсу­живающего одно из пяти прерываний. Некоторые серии микросхем, начиная с третьей группы (см. табл. 7.2.1), имеют систему прерываний с четырьмя уровнями приоритета. Рассмотрим организацию такой системы на примере мик­росхемы 87С51. Для увеличения числа уровней приоритета в микросхему введен дополнительный регистр приоритетов прерываний

IPH

.

Покажем, как совместное использование реги­стров приоритетов

IP

и

IPH

(табл. 7.2.22) позволит получить четыре уровня приоритета.

Уровень приоритета (УП) для микросхемы 87С51 определяется совокупностью бит регист­ров

IPH

и

IP

(табл. 7.2.23). табл. 7.2.22 табл. 7.2.23

Для получения четырех уровней приоритета в микросхемах:

● четвертой и пятой групп МК также используются регистры

IPH

и

IP

, однако в них задействованы пятая и шестая позиции для прерываний от T/C2 и РСА (см. табл. 7.2.20);

● шестой группы введены два дополнительных регистра

IPHA

и

IP

А (табл. 7.2.21).

Внешние прерывания.


Внешние прерывания

INT

0 и

INT

1 для всех микро­контроллеров могут в зависимости от состояния бит

IT0

и

IT1

регистра управ­ления

TCON

фиксироваться как по уровню, так и по отрицательному перепаду (см. рис. 7.1.21). Внешние прерывания по запросам

INT2

и

INT3

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

IT2, IT3

регистра


EXICON

(табл. 7.2.24). Внешние события

INT4...INT6

фиксируются только по положительному фронту. табл. 7.2.24

Все внешние прерывания могут быть инициированы соответствующими аппаратно установленными флагами:

● для

INT

0,

INT

1 — флаги (биты)

IE0,

IE

1 регистра

TCON

;

● для

INT

2–

INT

6 — флаги (биты)

IE

2–

IE

6 регистра

EXICON

.

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

INT

0,

INT

1 не очищает флаги

IE0,

IE

1.

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

INT

0–

INT

6 один цикл должны находится в состоянии высокого уровня и один цикл — низкого.

Защита внутренней памяти программ.

Микросхемы 87ХХХ с УФРПЗУ и 83ХХХ с ПЗУ (см. табл. 7.2.1) имеют два механизма защиты от несанкцио­нированного доступа к внутренней памяти программ: шифровальную (кодировочную) таблицу и биты защиты памяти (биты секретности).

Шифровальная таблица.


Эта таблица представляет собой область внут­ренней памяти программ (УФРПЗУ или ПЗУ) емкостью 64 байта (в ранних версиях кристаллов 32 байта), программируемая пользователем или предприятием изго­товителем. В исходном состоянии ячейки памяти этой области заполнены едини­цами. При программировании (см. ниже) часть из них заполняется нулями, благо­даря чему происходит шифрование байтов внутренней памяти программ. В режи­ме верификации (проверки содержимого) внутренней памяти программ при вы­воде затребованного байта шесть (или пять) бит в адресе всегда используются для обращения к шифровальной таблице. При выводе выполняется логическая операция исключающее ИЛИ–НЕ над затребованным байтом программной памя­ти и байтом, выбранным из шифровальной таблицы. Располагая содержимым шифровальной таблицы, можно выполнить дешифрацию и получить истинное со­держимое внутренней памяти программ.

Следует отметить, что при незашифрованной таблице в режиме верификации будет выводится истинное содержимое УФРПЗУ или ПЗУ.

Биты защиты памяти программ.


Кодировочная таблица не является со­вершенно надежным средством защиты. Поэтому в микросхемах имеется от од­ного до трех битов секретности (см. табл. 7.2.1). В табл. 7.2.25 приведе­ны функции битов секретности для всех трех случаев. табл. 7.2.25

Программирование и верификация УФРПЗУ.

Репрограммируемые ПЗУ с ультрафиолетовым стиранием (УФРПЗУ) содержат контроллеры с двумя первы­ми цифрами 87 в обозначении микросхем. Особенности программирования и ве­рификации УФРПЗУ рассмотрим на примере микросхемы 8751Н, содержащей УФРПЗУ емкостью 4 Кбайт и бит секретности, предназначенный для защиты па­мяти программ от несанкционированного доступа с целью прочтения ее содер­жимого.

В табл. 7.2.26 приведены данные для режимов программирования (ПП) и ве­рификации (ВП) памяти, A также для программирования бита секретности (ПБС). табл. 7.2.26

Режим программирования памяти.


Для адресации ячейки памяти, в которую производится запись данных, используются порты P1,

P

2, причем младшие разряды адреса A0...

A

7 выставляются на выводы P1.0 ...P1.7 порта P1, A старшие разряды А8...A11 — на выводы P2.0...P2.3 порта P2. Байт данных пода­ется на выводы порта

P

0. напряжения на других выводах микросхемы приведены в таблице. напряжение 21 ± 0,5

B

на выводе ЕА должно поддерживаться только во время записи; данных, когда в течение 50 мс действует импульс

ALE

= 0. После этого напряжения на выводе ЕА следует понизить до уровня логической единицы (+5 В).

Режим программирования бита секретности.


Отличительная осо­бенность этого режима от режима программирования памяти (см. табл. 7.2.26) состоит в том, что на вывод P2.6 порта P2 подается напряжение, соответствующее уровню логической единицы. Порты

P0

и P1, A также выводы P2.0...P2.5 порта P2 могут быть в любом состоянии. После программирования бита секрет­ности запрещается допрограммирование внешнего ПЗУ и чтение содержимого всей памяти программ. Действия бита секретности устраняется стиранием всей информации УФРПЗУ.

Режим верификации.


Если бит секретности не установлен, этот режим позволяет проверить правильность занесенной в УФРПЗУ информации. Режим верификации может быть реализован как в процессе программирования памяти, так после его окончания. В первом случае на вывод P2.7 подается строб чтения, во втором — постоянное напряжение с нулевым логическим уровнем. Для адре­сации к ячейкам памяти используется порт P1 и выводы P2.0...P2.3 порта P2, для вывода данных — порт

P0.

Уровни других сигналов приведены в таблице.

Стирание УФРПЗУ.


Удаление информации из УФРПЗУ производится путем воздействия на окно микросхемы ультрафиолетового света с длиной волны 2537 ангстрем.

Требуемая суммарная доза облучения должна составлять 15 Вт.с/см2. Для полной очистки достаточно облучения УФРПЗУ под ультрафиолетовой лампой с потоком 1200 мкВT/Cм2 с расстояния 2,5 см в течение 30 мин. После стирания все ячейки памяти принимают состояние логической 1, A бит защиты памяти пе­реходит в незапрограммируемое состояние. Так как воздействие солнечного све­та и ламп дневного света приводит к стиранию информации, рекомендуется окно корпуса микросхемы УФРПЗУ защитить непрозрачной наклейкой.

Режимы работы с пониженным энергопотреблением.

Рассмотрим два ре­жима с пониженным энергопотреблением, которые реализуются в КМОП (с бук­вой

C

в середине обозначения) версиях

MCS–51

и активизируются программной установкой бит

IDL

(позиция

PCON.0)

и

PD

(позиция

PCON.1)

регистра

PCON.

Режим холостого хода (XX).


При переходе в этот режим

(IDL

= 1) блоки­руется действие импульсов, поступающих на центральный процессор. Приоста­навливается исполнение программы. Тактовые импульсы продолжают поступать на систему прерываний, в последовательный порт и таймеры–счетчики, так как задающий генератор

OSC

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

PC

и внутреннее ОЗУ сохра­няют свое содержимое, A выводы портов — уровни, зафиксированные до перехо­да в режим XX.

Возможно два способа выхода из режима XX. Один из них состоит в вызове прерывания, приводящему к аппаратному стиранию бита

IDL.

После завершения (командой

RETI)

обслуживания прерывания приостановленная программа возоб­новит работу. Другой способ выхода из режима XX реализуется аппаратным сбросом процессора по сигналу

RESET

длительностью не менее 2–х машинных циклов.

Режим микропотребления.


При переходе в режим микропотребления

(PD

= 1) задающий генератор выключается, прекращая работу всех узлов МК51. В этом режиме сохраняется лишь содержимое ОЗУ. Выход из режима осуществ­ляется через аппаратный сброс подачей сигнала

RESET

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

При одновременной подаче сигналов

PD

= 1,

IDL

= 1 приоритет имеет сигнал

PD.



В табл. 7.2.27 приведены состояния выводов МК в режимах пониженного энергопотребления. табл. 7.2.27

Другие структурно–функциональные особенности МК.

Режим эмуля­ции

«ONCE»


.

Этот режим позволяет производить тестирование и отладку разра­батываемой системы без удаления кристаллов 8751/80С51ВН/87С51ВН/8031ВН с платы. Для активизации режима эмуляции необходимо в состоянии сброса

(RESET

= 1) при ¯

PSEN

подать на вывод

ALE

сигнал

ALE

= 0 и удерживать его в та­ком состоянии до прекращения действия сигнала

RESET,

после чего снять нуле­вой уровень с вывода

ALE.

Выход из режима осуществляется общим сбросом.

В режиме эмуляции линии порта

P0

имеют высокоомное состояние, линии ос­тальных портов, выводы

ALE,

¯

PSEN

— уровень логической единицы. Ресурсами платы могут управлять аппаратный эмулятор, тестовый процессор или образцо­вый контроллер.

Определение рестарта по флагу


POF.




Флаг

POF (PCON.4

регистра потребления) позволяет определить тип рестарта МК: «холодный» — при подаче на микросхему питания

(POF =

11) или «теплый» — по сигналу

RST (POF

= 0). Сброс флага в 0 происходит только тогда, когда напряжение питания на выводе

VCC

ста­новится менее 3 В. Флаг может быть установлен и сброшен программно.

Аппаратный сторожевой таймер


HWDT.




Таймер

HWDT

состоит из 14–битного счетчика и регистра вспомогательных функций

WDTRST.

Таймер все­гда активен и средств на запрет его работы нет. С каждым машинным циклом со­держимое счетчика увеличивается на единицу. После переполнения счетчика происходит сброс микроконтроллера. Для нормального функционирования мик­роконтроллера через каждые 16383 (или меньше) машинных цикла необходимо в регистр

WDTRST

последовательно записывать два байта со значениями 1

Eh, E1h.

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

WDTRST

доступен только для записи по адресу А6

h

. Доступа к счетчику не имеется.

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

● сбросом микросхемы, при котором счетчик обнуляется;

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

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

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

Обнаружение сбоя тактового генератора.


В МК предусмотрена цепь обнаружения сбоя тактового генератора (

OFD

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



Рекомендуйте эту статью другим!