- Особенности систем прерываний МК.
- Разрешение/запрещение прерываний
- Управление приоритетами прерываний.
- Внешние прерывания.
- Внешние события INT4.
- Шифровальная таблица.
- Биты защиты памяти программ.
- Программирование и верификация УФРПЗУ.
- Режим программирования памяти.
- Режим программирования бита секретности.
- Режим верификации.
- Стирание УФРПЗУ.
- Режим холостого хода (XX).
- Режим микропотребления.
- Определение рестарта по флагу POF.
- Аппаратный сторожевой таймер HWDT.
- Обнаружение сбоя тактового генератора.
Особенности систем прерываний МК.
Базовая конфигурация микроконтроллеров семейства MCS–51 поддерживает пять векторов прерываний с двумя уровнями приоритетов.
Введение в микросхемы других групп МК таймера/счетчика T/C2, матриц программируемых счетчиков, АЦП, дополнительных портов, регистров приоритета, разрешения/запрещения прерываний и других аппаратных средств позволило увеличить число векторов прерываний до пятнадцати и уровней приоритета прерываний до четырех.
В табл.7.2.19 приведены основные сведения о системах прерываний микроконтроллеров различных групп семейства MCS–51.
В графах 1–6 отражена очередность опроса флагов прерываний при получении нескольких запросов на прерывания одновременно, если запросы имеют одинаковый уровень приоритета.
Запрос на прерывание, флаг которого опрашивается первым, имеет более высокий приоритет.
Пустые клетки в графах 1–6 таблицы свидетельствуют об отсутствии прерывания для данной группы микросхем.
Как видно из табл.7.2.19:
? первые пять векторов прерываний поддерживают все микросхемы MCS–51;
? шестой вектор — микросхемы 2–й, 4–й, 5–й и 6–й групп, в которых имеется таймер/счетчик 2;
? седьмой вектор прерываний — микросхемы 5–й и 6–й групп, располагающие матрицей программируемых счетчиков РСА;
? пятнадцать векторов прерываний — только микросхемы 6–й группы.
Пять из восьми дополнительных прерываний являются прерываниями от внешних событий INT2–INT6; по одному от второй программируемой матрицы РСA1, АЦП и порта расширения последовательных каналов SEP.
Флаг–источник, активизирующие прерывания, выставляются в фазе S5P2 машинного цикла за исключением таймера/счетчика T/C2, флаг ТF2 которого выставляется в фазе S2P2.
Разрешение/запрещение прерываний
Любое из приведенных в табл.7.2.19 прерываний может быть разрешено или запрещено путем установки или сброса соответствующего бита регистров IE (табл.7.2.20) или IEA (табл.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).
Для получения четырех уровней приоритета в микросхемах:
? четвертой и пятой групп МК также используются регистры IPH и IP, однако в них задействованы пятая и шестая позиции для прерываний от T/C2 и РСА (см.табл.7.2.20);
? шестой группы введены два дополнительных регистра IPHA и IPА (табл.7.2.21).
Внешние прерывания.
Внешние прерывания INT0 и INT1 для всех микроконтроллеров могут в зависимости от состояния бит IT0 и IT1 регистра управления TCON фиксироваться как по уровню, так и по отрицательному перепаду (см.рис.7.1.21).
Внешние прерывания по запросам INT2 и INT3 могут фиксироваться как на положительный, так и на отрицательный перепады этих сигналов.
Для этого используются биты IT2, IT3 регистра EXICON (табл.7.2.24).
Внешние события INT4.
INT6 фиксируются только по положительному фронту.
Все внешние прерывания могут быть инициированы соответствующими аппаратно установленными флагами:
? для INT0, INT1 — флаги (биты) IE0, IE1 регистра TCON;
? для INT2–INT6 — флаги (биты) IE2–IE6 регистра EXICON.
Все флаги очищаются аппаратно по переходу на подпрограмму обработки прерывания.
Однако уровневые прерывания по входам INT0, INT1 не очищает флаги IE0, IE1.
Так как все выводы внешних прерываний опрашиваются один раз за каждый машинный цикл, для обнаружения перепада сигналы INT0–INT6 один цикл должны находится в состоянии высокого уровня и один цикл — низкого.
Защита внутренней памяти программ.
Микросхемы 87ХХХ с УФРПЗУ и 83ХХХ с ПЗУ (см.табл.7.2.1) имеют два механизма защиты от несанкционированного доступа к внутренней памяти программ: шифровальную (кодировочную) таблицу и биты защиты памяти (биты секретности).
Шифровальная таблица.
Эта таблица представляет собой область внутренней памяти программ (УФРПЗУ или ПЗУ) емкостью 64 байта (в ранних версиях кристаллов 32 байта), программируемая пользователем или предприятием изготовителем.
В исходном состоянии ячейки памяти этой области заполнены единицами.
При программировании (см.ниже) часть из них заполняется нулями, благодаря чему происходит шифрование байтов внутренней памяти программ.
В режиме верификации (проверки содержимого) внутренней памяти программ при выводе затребованного байта шесть (или пять) бит в адресе всегда используются для обращения к шифровальной таблице.
При выводе выполняется логическая операция исключающее ИЛИ–НЕ над затребованным байтом программной памяти и байтом, выбранным из шифровальной таблицы.
Располагая содержимым шифровальной таблицы, можно выполнить дешифрацию и получить истинное содержимое внутренней памяти программ.
Следует отметить, что при незашифрованной таблице в режиме верификации будет выводится истинное содержимое УФРПЗУ или ПЗУ.
Биты защиты памяти программ.
Кодировочная таблица не является совершенно надежным средством защиты. Поэтому в микросхемах имеется от одного до трех битов секретности (см.табл.7.2.1).В табл.7.2.25 приведены функции битов секретности для всех трех случаев.
Программирование и верификация УФРПЗУ.
Репрограммируемые ПЗУ с ультрафиолетовым стиранием (УФРПЗУ) содержат контроллеры с двумя первыми цифрами 87 в обозначении микросхем.
Особенности программирования и верификации УФРПЗУ рассмотрим на примере микросхемы 8751Н, содержащей УФРПЗУ емкостью 4 Кбайт и бит секретности, предназначенный для защиты памяти программ от несанкционированного доступа с целью прочтения ее содержимого.
В табл.7.2.26 приведены данные для режимов программирования (ПП) и верификации (ВП) памяти, A также для программирования бита секретности (ПБС).
Режим программирования памяти.
Для адресации ячейки памяти, в которую производится запись данных, используются порты P1, P2, причем младшие разряды адреса A0.
A7 выставляются на выводы P1.0P1.7 порта P1, A старшие разряды А8..A11 — на выводы P2.0..P2.3 порта P2. Байт данных подается на выводы порта P0. напряжения на других выводах микросхемы приведены в таблице. напряжение 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 приведены состояния выводов МК в режимах пониженного энергопотребления.
Другие структурно–функциональные особенности МК.
Этот режим позволяет производить тестирование и отладку разрабатываемой системы без удаления кристаллов 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 последовательно записывать два байта со значениями 1Eh, E1h. Это обстоятельство должно учитываться при составлении пользовательских программ. Регистр WDTRST доступен только для записи по адресу А6h. Доступа к счетчику не имеется.
При переходе микросхемы в режим микропотребления происходит останов таймера, так как прекращает работу тактовый генератор.
Возможны два способа выхода из этого режима:
? сбросом микросхемы, при котором счетчик обнуляется;
? подачей на вход микросхемы сигнала внешнего прерывания, длительность которого должна быть достаточна для возобновления работы тактового генератора.
В режиме холостого хода тактовый генератор активен.
Чтобы не допустить сброса микроконтроллера работающим таймером, используют тай мерное прерывание, по которому будет происходить выход их этого режима, обнуление счетчика и возвращение в исходный режим.
Таймер используется как средство для предотвращения зависании и зацикливания при исполнении программы.
Обнаружение сбоя тактового генератора.
В МК предусмотрена цепь обнаружения сбоя тактового генератора (OFD), предназначенная для сброса микроконтроллера при понижении частоты тактового генератора ниже предусмотренной нормы.