Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 30
Текст из файла (страница 30)
При этом в регистре 10С2 должно быть установлено значение бита 1.ОСК ЕЖА - 1, чтобы обеспечить многократное выполнение команд. При операциях таймерных прерываний модуль НБО вырабатывает запрос НБО 1НТ (1НТОБ), обеспечивая вызов соответствующей подпрограммы обслуживания в заданный момент времени, определяемый полем НБ1 Т1МЕ. Вызванная подпрограмма анализирует содержимое регистра 1051, определяя номер поступившей операции БТЧТЗ..О.
В зависимости от номера операции микропроцессор выполняет одну из четырех возможных процедур обслуживания таймерного прерывания. можно путем записи в этот регистр. После чтения содержимого 1052 все его биты принимают значение «0». миеРжонт»олле»ы семейстВА мсз-ВВ 14З При операциях сброса таймера 2 и запуска АЦП формируются соответствуТощие сигналы Т2 КЯТ или А1) ЯТАКТ и вырабатывается запрос прерывания НЯО 1ХТ.
Этот запрос может использоваться для вызова подпрограмм, определяющих реакцию микроконтроллера на изменение состояния таймера 2 или инициирующих обработку результатов аналого-цифрового преобразования. Если модуль НЯО не используется для формирования выходных сигналов, можно использовать выводы НЯОх для выдачи данных, записываемых в шесть младших разрядов регистра 1ОЯО. В этом случае данный регистр функционирует как дополнительный 6-разрядный порт вывода. 1.9.7.
Особенности реализации прерываний Микроконтроллер формирует запросы прерывания, которые обслуживатотся контроллером прерываний (КПР) или периферийным сервером (ПСР). Возможные причины запросов перечислены в табл. 1.41, где указаны также их приоритеты (Π— минимальный, 30 — максимальный) и векторы-адреса ячеек, где хранятся начальные адреса подпрограмм обработки. Запросы ХМ1, ЕХТ 1ХТ, ЕХТ 1ХТ1, ОЧК ТМК2, К1, Т1, АО 1ЭОХЕ аналогичны описанным в разделе 1.4 и п. 1.7.4 для микроконтроллеров 8ХС196ХР Х(1, ХТ. Формирование запросов ЯР 1ХТ, ОЧК ТМК, Т2 САР Г1РО Р()1.Ц НЯ1 Г1РО4, ЯЧТ, НЯ10, НЯО()Т, НЯ1 ПАЧ рассмотрено в пп. 1.8.4-6. При формировании запроса прерывания устанавливается значение «1» соответствующего бита в регистрах 1ХТ РЕХП (адрес 09Н), 1ХТ РЕХ1)1 (адрес 12Н), запись и считывание содержимого которых производится в любом из кадров О, 1 или 15 (рис.
1.57). Когда микроконтроллер обращается к вектору, начиная таким образом обслуживание запроса, соответствующий бит в регистре 1ХТ РЕХП или 1ХТ РЕХ1)1 принимает значение «О». Можно запретить (маскировать) обслуживание определенных запросов, установив значение «О» соответствующего бита в регистрах 1ХТ МАЯК (адрес 08Н), 1ХТ МАЯК1 (адрес 13Н), запись и считывание содержимого которых может выполняться в леобом из кадров О, 1 или 15. Например, если в регистре 1ХТ МАЯК1 значение бита Т2САР - О, то сигнал на выводе Р2.7 порта Р2 не вызывает формирования запроса прерывания Т2 САР поэтому данный вывод может использоваться для передачи данных.
Аналогичным образом путем установки значения битов ЕХТ 1ХТ, ЕХТ 1ХТ1, НЯ1.0 задается режим использования выводов Р2.2, Р0.7, НЯ1.0, которые могут служить входами внешних запросов прерывания или входами данных. Регистр 1ХТ МАЯК содержит младший байт слова состояния (РЯ'АЧ), поэтому команды Р()ЯНЕ Р()ЯНА заносят содержимое этого регистра в стек, а команды РОРР РОРА восстанавливают его содержимое из стека.
Содержимое регистра 1ХТ МАЯК1 заносится в стек и выбирается из него командами Р()ЯНА, РОРА (см. раздел 1.3). МИКРОКОНТРОЛЛЕРЫ: АРХИТЕКТУРА, ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС Табл. 1.41. Запросы прерывания в микроконтроллерах ЗХС196КС, КЮ, их векторы и приоритеты Ствндвртнос обсл извине Спепимизироввннос обсл извине Обозначение Причина прерывания и» П» номе векто иом векго 2012Н Н вз ешенный код комвиды 2010Н Команда ТКАР Внешний сигнал 30 ХМ1 ПЧТ15 203ЕН 14 РТБ 14 29 ПЧТ14 203СН 205СН Р!РО Н1КЬ Звполнсиие НРО ПЧТ13 13 РТБ 13 205АН 203АН 28 Внешний сигнал . вход Р2.2 ЕХТ 1МТ 1 12 РТБ 12 11 РТБ 11 27 ОЧКТМК2 Т2 САР !МТ12 2038Н 2058Н П полисные тайме в 2 Сигнал захвата, вход Р2.7 !МТ11 2036Н 2056Н Звполнение оки ьд НРО НБ! НРО 4 2034Н 10 РТБ 10 2054Н 1МТ10 24 2032Н 9 РТБ9 8 РТБ8 2052Н Последовательный ввод Последоввтельный вывод К1 ПЧТ09 гЗ 2030Н 2050Н 1ХТ08 Т! гг Внешний сигнал, входы Р2.2, 2.7 ЕХТ !МТ 1ХТ07 200ЕН 7 РТБ7 204ЕН !МТ06 200СН 6 РТБ6 204СН 21 Последовательный ввод-вывод БР ПЧТ 1ХТ05 200АН 5 РТБ5 4 РТБ4 204АН 20 Программное прсрыввние БТЧТ 3..0, Т2 КБТ, АО БТАК 19 2008Н 2048Н Внешний сигнал, вход НБ1.0 НБ1.0 3 РТБ3 2046Н 18 П лючение выводов НБО 5.,0 НБООТ 1МТОЗ ПЧТ02 2004Н 2 РТБ2 2044Н Д пность данных в Р!РО НБ10АЧ 1 РТБ! 0 РТБО 2042Н Звв шение АЦП А0 00МЕ !МТ01 2002Н 16 П полнение твйме в 1 или 2 ОЧК ТМК 2040Н 15 !МТОО 2000Н ') П вЂ” уровень приоритета обслуживания: 30 — максимальный, 0 — минимальный, е пересылка байта при РТЯ МОПЕ - 000; е пересылка блока при РТЯ МОПЕ - 100; е аналого-цифровое сканирование при РТ5 МО1ЭЕ = 110; е обслуживание модуля Н81 при РТЯ МОРЕ - 001; Е обслуживание модуля НЯО при !и!'8 МОРЕ - 011.
Обслуживание запроса с помощью ПСР выполняется, если в регистре РТЯ БЕЕ (рис. 1.58) установлено значение «1» соответствующего бита. Выполнение обслуживания производится так же, как это было описано в разделе 1А и п. 1.8.8. ПСР выбирает блок управля!ощих данных, начальный адрес которого хранится в.фиксированной ячейке памяти, указанной в табл. 1АО (вектор специализированного обслуживания). Когда ПСР завершает обслуживание запроса, соответствующий бит в регистре РТЯЯЕЕ принимает значение «О», а бит в регистре РТ8 ЯВУ значение «1», после чего реализуется процедура «конец спецобслуживания» с помощью специальной подпрограммы. ПСР может выполнять одну из пяти возможных процедур обслуживания, которые определяются содержимым байта РТ8 СО)х! (см.
Рис. 1.11,1АЗ) в блоке управляющих данных. Поле РТЯ МОПЕ в этом байте задает процедуру обслуживания: МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ.ВЕ 145 7 6 5 4 3 2 1 о ЕХТ 1ХТ ЯР 1ХТ ЯЮТ НЯ! 0 НЯО()Т НЯ1 1ТАЧ А1Т ВОХЕ ОЧЕ ТМЕ в) 1ХТ РЕХ(Т (адрес 09 Н), 1ХТ МАЯК (адрес 08Н) 3 2 1 0 ХМ! (резерв) ЕХТ1ХТ 1 Т2 САР НЯ1 Г1ГО 4 Ш Т! 6) 1ХТ РЕХ() 1 (адрес 12Н), 1ХТ МАЯК 1 (здрес !ЗН) Рис. 1.67. Форматы регистров !МТ РЕМ(з, !МТ РЕМ01, 1йТ МАЕК, !МТ МАЗК1 3 2 1 0 ЕХТ 1ХТ ЯР 1ХТ ЯЮТ НЯ 0 НЯООТ 15 14 13 12 !1 10 9 8 резерв Г1ГО ЕХТ ОТ7Е (ХМ1) Г()т т !ХТ 1 ТМЕ 2 Т2 САР НЯ! Г)ГО 4 к! Т! РТЯ ЯЕ1. (Вдрес 04Н), РТЯ ЯЕЧ (адрес 06Н) чтение и ззинс ь в кадре 1 Рис.1.88.
Форматы регистров РТЗ ЗЕЬ, РТЗ ЗЙЧ При обслуживании модуля НЯ! выполняется запись содержимого Г1ГО в таблицу, размещаемую во внешней или внутренней памяти. Содержимое байтов РТЯ ПЯТ в блоке управляющих данных задает старший (Н) и младший (!.) байты начального адреса Х(таблицы. После пересылки каждого байта значение РТЯ !ЭЯТ увеличивается на «1ь. Байт РТЯ ВАСК указывает число строк Г1ГО Хс = 1..7, пересылаемых в память в каждом цикле обслуживания. Одна строка Г!ГО заполняет в памяти четыре байта: младший байт Выполнение трех первых процедур описано выше, поэтому в данном разделе рассмотрены только процедуры обслуживания модулей БВВ (см. п. 1.8.6). Обслуживание производится с помощью обращения к блоку управляющих данных (рис.
1.59а, и рис. 1.60а), в котором первый байт РТЯ СО()ХТ задает число выполняемых циклов, а второй байт РТЯ СОХ определяет режим работы ПСР Формат и назначение битов РТЯ СОХ при обслуживании модулей БВВ такие же, как при сканировании АЦП. МИКРОКОНТРОЛЛЕРЫ: АРКИТЕКТУРА, ЛРОГРАММИРОЕАНИ ИНТЕРФЕЙС И6 Ч! Ч+! Ч1+2 ч!+з Ч1+4 Ч!+5 Ч!+б Ч1+7 а) б) Рис. 1.59. Блок управляющих данных при обслу1киввнии модулей НЗ! (в) и НЗО (б) Х1 Х!+2 Х!+4 Х!+6 Х!+8 Х1+!О а) б) Рис. 1.60.
Теблице обслуживания модулей НЗ! (в) и НЗО (б) занимает содержимое регистра НБ1 БТАТ()Б, следующий байт заполняется «1», в два старших байта заносится содержимое поля НБ1 Т1МЕ. На рис. 1.60а приведен пример размещения в памяти трех строк Р(ГО. Если в байте РТБСО)1( бит ()РОТ О, то после каждого цикла устанавливается начальное значение РТБ 1)БТ.
При этом в следующем цикле содержимое строк Р(ГО заносится в те же ячейки памяти, что и в предыдущем цикле, то есть выполняется обновление записи. Если бит 1)РОТ = 1, то после каждого цикла установившееся значение РТБ ПБТ сохраняется, и в новом цикле заполняются следующие ячейки памяти. При обслуживании модуля НБО выполняется обратная процедура — загрузка строк памяти САМ из таблицы, хранящейся во внешней нли внутренней памяти.
Начальный адрес этой таблицы Х1 задается содержимым байтов РТБ БЕС, а число заполняемых строк )т)с = 1..8 указывается в байте РТБ В).ОСК (рис. 1.59а). Из четырех последовательно адресуемых ячеек памяти выбирается содержимое, которое поступает в регистры НБО МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-ВВ 147 СОММАНП и НЯО Т1МЕ, а затем вводится в буферный регистр 1НК.
Если в САМ имеется пустая строка, то содержимое! НК заносится в строку САМ. Пример таблицы, обеспечивающей заполнение трех строк САМ, дан на рнс. 1.606. После выполнения цикла содержимое РТ8 КБС либо возвращается в начальное состояние (при УРПТ - 0), либо сохраняет установившееся в конце цикла значение (при ()Р!)Т = 0). Таким образом обеспечивается либо повторная запись в САМ уже вводившихся значений НЯО СОММА)т!!), НЯО Т1МЕ, либо загрузка новых значений из следующего раздела таблицы.
1.9.8. Подключение внешней памяти Применение внешней памяти позволяет расширить общий объем используемой памяти до 64 Кбайт. При обращении к внешней памяти производится мультиплексный обмен с использованием выводов А!) 15..0 для передачи адресов-данных. Обмен выполняется так же, как для микроконтроллера 8ХС196НТ (см. п. 1.8.9). При этом используются управляющие сигналы А!.Е (илн А!Утт№), ВНЕ№ (нли ЮКН№), !НЯТ, КЕА!УУ, ЕА№, В Р(т, К!)№, %К№ (или ЖКН№), поступатощие на соответствующие выводы микроконтроллера (см. Приложение ч). Назначение и условия формирования этих сигналов описаны в пп. 1.7.2, 1,8.9. Временные диаграммы циклов обмена с внешней памятью аналогичны приведенным на рис.
1А6, а (режим 3). Байт конфигурации ССК, формат которого совпадает с байтом ССКО в микроконтроллере 8ХС196НТ (см. рис. 1.29), содержит биты В РттО, )ЧК, А1.Е, 1КС1, О, 1ОС1, О, задающие протокол обмена. Эти биты имеют такое же функциональное назначение, как и в микроконтроллере 8ХС196НТ, за исключением битов В%0 и 1КС1, О. Бит В%0 указывает разрядность данных при обмене с внешней памятью. При значении В тЧО = 0 передаются 8-разрядные числа, при ВЖО = 1 разрядность задается значением сигнала, поступающего на вход В% микроконтроллера: если подан низкий потенциал Ч,Р то передаются 8-разрядные числа, если подан высокий потенциал ттн то 16-разрядные числа.
Таким образом, разрядность данных может динамически меняться в процессе работы с помощью сигнала В%К Значеньтя битов 1КС!, 0 определяют число тактов ожидания, выполняемых при обмене с внешней памятью в случае поступления сигнала КЕА!Ут' = 0 (неготовность). При 1КС1, 0 = 00 выполняется один такт ожидания, при 1КС1, 0 = 01 выполняются два такта, прн !КС1, 0 - 10 — три такта, при !КС1, 0 - 11 такты ожидания выполняются до поступления сигнала готовности КЕА!)У - 1. Данный микроконтроллер позволяет другому устройству произвести обращение к внешней памяти, выполнив захват шины, как зто описано в разделе 148 МИКРОКОНТРОЛЛЕРЫ АРКИТЕКТУРА, ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС 1.6 для моделей 8ХС196ХР Х(1. Захват шины разрешается, если в регистре ЧЧЯК установлено значение бита Н1.1)ЕХ = 1.