УСТРОЙСТВА ИНТЕРФЕЙСА МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА MCS-51 Архитектура Компьютеров2011
ОСНОВНЫЕ ТЕМЫ ЛЕКЦИИ ТАЙМЕРЫ МИКРОКОНТРОЛЛЕРОВ MCS-51 ПРЕРЫВАНИЯ МИКРОКОНТРОЛЛЕРОВ MCS-51 ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ МИКРО- КОНТРОЛЛЕРОВ MCS-51 Архитектура Компьютеров2011
ТАЙМЕРЫ / СЧЕТЧИКИ ВНЕШНИХ СОБЫТИЙ Два программируемых 16-ти битовых таймера/счетчика (Т/С 0 и Т/С 1) могут быть использованы в качестве таймеров или счетчиков внешних событий. При работе в качестве таймера содержимое Т/С инкрементируется в каждом машинном цикле, т. е. через каждые 12 периодов резонатора. При работе в качестве счетчика содержимое Т/С инкрементируется под воздействием перехода "1-0" внешнего входного сигнала, подаваемого на соответствующий вывод (Т0 или Т1). Максимальная входная частота счетчиков: Ft / 24.
РЕЖИМЫ РАБОТЫ Т/С определяются кодом, записанным в РЕГИСТР РЕЖИМОВ Т/С (TMOD): Прямой адрес TMOD: dir – 89h GATE 1C/ ~ T 1M 1.1M 0.1GATE 0C/ ~ T 0M 1.0M 0.0 C/ ~ T 0 C/ ~ T 1 Определяет работу отдельно для каждого счетчика в режиме : C/ ~ T = 0 – таймера; C/ ~ T = 1 – счетчика внешних событий. GATE 0 GATE 1 Разрешает управлять счетчиком от внешнего вывода ( ~ INT0 – для Т/С 0, ~ INT1 – для Т/С 1) : GATE = 0 – управление запрещено, GATE = 1 – управление разрешено.
РЕГИСТР УПРАВЛЕНИЯ/СТАТУСА T/C И ВНЕШНИМИ ПРЕРЫВАНИЯМИ (TCON) Прямой байтовый адрес TCON : dir – 88h. Допускается адресация отдельных бит TCON : bit – 88h_8Fh Fh8Eh8Dh8Ch8Bh8Ah89h88h TF 1TR 1TF 0TR 0IE 1IT 1IE 0IT 0 TF 0 TF 1 Флаги переполнения Т/С, устанавливаются аппаратно при переполнении соответствующего Т/С (переходе из состояния «все единицы» в состояние «все нули»). Если прерывание от соответствующего Т/С разрешено, то установка флага TF вызовет прерывание. Флаги TF 0 или TF 1 сбрасываются аппаратно при передаче управления подпрограмме обработки соответствующего прерывания
TR 0 TR 1 Разрешение счета отдельно для каждого Т/С : TR = 0 – счет остановлен, TR = 1 – разрешение счета. IE 0 IE 1 Флаги запроса внешних прерываний по входам ~ INT0 и ~ INT1 соответственно; устанавливаются аппаратно (от внешних устройств) или программно и вызывают подпрограмму обработки прерываний. IT 0 IT 1 Управление видом прерывания отдельно по входам ~ INT 0 или ~ INT 1 : IT = 0 – прерывание по уровню (низкому), IT = 1 – прерывание по фронту «1–0»
РЕЖИМ РАБОТЫ «0» (М0=0, М1=0) функцио- нально совместим с таймером/счетчиком микроконт- роллера MCS-48. Деление импульсов Машинных Циклов (МЦ) на 32 выполняют 5 младших разрядов регистров TL 0, TL 1. INT 0 T0 1 & & Кварцевый генератор : 12 Регистр TMOD GATE 0 C/T 0 1 & Регистр TCON TR 0 TF 0 TL 0 5 бит TH 0 8 бит
Логика работы в РЕЖИМЕ 0 на примере Т/C 0 показана на рис. Для Т/C 1 логика работы аналогична. Счет начинается при установке бита TR 0 регистра TCON в состояние «1». (Если бит TR = 0, то реги- стры соответствующих таймеров/ счетчиков TH и TL могут использоваться как дополнительные РОНы). Установка бита GATE в единичное состояние позволяет в режиме внутреннего таймера измерять длительность импульсного сигнала, подаваемого на вход внешнего прерывания ~ INT. РЕЖИМ РАБОТЫ «1» (М0=1, М1=0) аналогичен РЕЖИМУ «0». Отличие состоит в том, что таймерные регистры TL-TH - 16-ти разрядные.
РЕЖИМ РАБОТЫ «2» (М0=0, М1=1) представляет собой 8-ми разрядный делитель TL 0 (или TL 1) с переменным (программируемым) коэффициентом деления. INT 0 T0 1 & & Кварцевый генератор : 12 Регистр TMOD GATE 0 C/T 0 1 & Регистр TCON TR 0 TF 0 TL 0 8 бит & TH 0 8 бит
При каждом переполнении 8-ми разрядного счетчика TL 0 устанавливается флаг TF 0 и происходит перезагрузка счетчика TL 0 из регистра TH 0. Счетчик T/C 0 в РЕЖИМЕ «3» представляет собой два независимых 8-ми разрядных счетчика TL 0 и TH 0. TL 0 может работать в режиме таймера и в режиме счетчика. За ним сохраняются все биты управления T/C 0 и входные сигналы T0, ~INT0. TH 0 может работать только в режиме таймера, использует бит включения TR 1 и выставляет флаг переполнения TF 1. Этот режим позволяет реализовать два восьмибитовых таймера из Т/С 0, если Т/С 1 уже занят – формирует частоту обмена для последовательного интерфейса (последовательного порта).
TH 0 8 бит INT 0 T0 1 & & Кварцевый генератор : 12 Регистр TMOD GATE 0 C/T 0 1 & Регистр TCON TR 0 TF 0 TL 0 8 бит Регистр TCON TF 1 TR 1 &
РЕЖИМЫ ПРЕРЫВАНИЯ МИКРОКОНТРОЛЛЕРОВ MCS-51 Запросы от внешних прерываний ~ INT0, ~ INT1 фиксируются в триггерах IE0, IE1 Регистра Управления T/C и внешними прерываиями (TCON). Установка этих триггеров осуществляется низким уровнем на входах ~ INT0, ~ INT1 (если сброшены биты IT0 = 0, IT1 = 0 регистра TCON), или по фронту «1-0» (если биты установлены: IT 0 = 1, IT 1 = 1) Запросы прерываний от Таймеров/Счетчиков фиксируются в триггерах TF0, TF1 регистра управления TCON. Запрос прерывания последовательного порта вызывается установкой флага прерывания приемника RI или флага прерывания передатчика TI в регистре SCON.
В отличие от всех остальных флагов, RI и TI сбрасываются только программным путем (обычно в пределах подпрограммы обработки прерывания, где определяется: какому из флагов RI или TI соответствует прерывание). Все перечисленные флаги прерываний : IE0, IE1, TF0, TF1, RI, TI – могут быть установлены (или сброшены) программно и вызвать соответствующие прерывания. Прерывание по каждому из перечисленных источников может быть разрешено или запрещено установкой или сбросом соответствующего бита в РЕГИСТРЕ МАСКИ (Разрешения) ПРЕРЫВАНИЙ – (IE)
Прямой байтовый адрес IE: dir – 0A8h. Допускается адресация отдельных бит IE : bit – 0A8h_0AFh AFh0ACh0ABh0AAh0A9h0A8h EAESET 1EX 1ET 0EX 0 EA – управление всеми источниками прерываний; если EA = 0 – все прерывания запрещены; если EA = 1 – прерывания могут быть разрешены индивидуально : ES – разрешение прерывания от последовательного порта; ET 1 – разрешение прерывания от T/C 1; EX 1 – разрешение прерывания от внешнего источника ~ INT1; ET 0 – разрешение прерывания от T/C 0; EX 0 – разрешение прерывания от внешнего источника ~ INT0.
РЕГИСТР ПРИОРИТЕТОВ ПРЕРЫВАНИЙ – IP Прямой байтовый адрес IP: dir – 0B8h. Допускается адресация отдельных бит IP : bit – 0B8h_0BFh BCh0BBh0BAh0B9h0B8h PSPT 1PX 1PT 0PX 0 PS – установка уровня приоритета прерывания от последо- вательного порта; PT1 – установка уровня приоритета прерывания от T/C 1; PX1 – установка уровня приоритета прерывания от внешнего источника ~ INT1; PT0 – установка уровня приоритета прерывания от T/C 0; PX0 – установка уровня приоритета прерывания от внешнего источника ~ INT0.
Наличие в разряде регистра IP «1» устанавливает для соответствующего источника высокий уровень приоритета, а наличие «0» – низкий уровень приоритета. Программа обработки прерывания может быть прервана запросом прерывания с высоким уровнем приоритета, но не может быть прервана другим запросом прерывания с равным или меньшим уровнем приоритета. Если два запроса с разными уровнями приоритета приняты одновременно, сначала будет обслужен запрос с высоким уровнем приоритета.
Если одновременно приняты запросы с одинаковым уровнем приоритета, обработка их будет производиться в порядке, задаваемом последовательностью внутреннего опроса флагов прерываний. Таким образом, в пределах одного приоритетного уровня существует еще одна структура приоритетов Источник прерывания Приоритет внутри уровня Векторы прерываний Внешнее прерывание ~ INT 0 высший0003h Таймер/Счетчик Т/С 0 000Bh Внешнее прерывание ~ INT h Таймер/Счетчик Т/С 1 001Bh Последовательный порт низший0023h
При переходе по вектору на подпрограмму обработки прерывания аппаратно запрещаются все прерывания с уровнем приоритета, равным (или меньшим) уровню приоритета обслуживаемого прерывания. Подпрограмма обслуживания прерывания должна заканчиваться выполнением команды RETI, которая восстанавливает состояние логики прерывания и загружает из стека в счетчик команд (РС) адрес возврата в исходную программу. При использовании команды RET восстанавливается только счетчик команд (РС) из стека. Состояние логики прерывания команда RET не меняет, т. е. сохраняется запрет на прерывания с равным (или меньшим) приоритетом.
Через Универсальный Асинхронный Приемо- Передатчик (УАПП) осуществляется прием и передача информации, представленной последовательным кодом (младшими битами вперед), в полном дуплексном режиме обмена (как у СОМ-порта компьютера). В состав УАПП (или Последовательного Порта) входят : принимающий и передающий сдвигающие регистры, а также специальный буферный регистр (SBUF) приемопередатчика. ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС МИКРОКОНТРОЛЛЕРОВ MCS-51
Запись байта в буфер SBUF приводит к автоматической перезаписи байта в сдвигающий регистр передатчика и инициирует начало последовательной передачи байта. Наличие буферного регистра приемника SBUF позволяет совмещать операцию чтения ранее приня- того байта с последовательным приемом очередного байта. Если к моменту окончания приема байта предыдущий байт не был считан из SBUF, то он будет потерян. Управление режимами работы УАПП опреде- ляется кодом, записанным в РЕГИСТР УПРАВЛЕ- НИЯ/СТАТУСА ПОСЛЕДОВАТЕЛЬНОГО ПОРТА (SCON):
Прямой байтовый адрес SCON:dir – 98h. Допускается адресация отдельных бит SCON : bit – 98h_9Fh Fh9Eh9Dh9Ch9Bh9Ah99h98h SM0SM1SM2RENTB8RB8TIRI SM0, SM1 – определяют режимы работы УАПП SM2 – разрешение многопроцессорной работы; (в режимах 2 и 3 при SM2 = 1 бит прерывания R1 не устанавливается, если принятый девятый бит данных RB8 = 0);
REN – разрешение ПРИЕМА последовательных данных: REN = 1 – разрешение приема, REN = 0 – запрет приема; TB8 – девятый бит передаваемых данных в режимах 2 и 3; устанавливается и сбрасывается программно; RB8 – девятый бит принятых данных в режимах 2 и 3; TI – флаг прерывания передатчика; устанавливается аппаратно в конце выдачи 8-го бита в режиме 0 или в начале стоп-бита – в других режимах; сбрасывается программой; RI – флаг прерывания приемника; устанавливается аппаратно в конце приема 8-го бита в режиме 0 или в середине стоп-бита – в других режимах; сбрасывается программой.
SM0,SM1РежНаименование Скорость обмена 0 0 Передача и прием 8-ми битовых данных через двунаправленный вывод RxD ; через вывод TxD выдаются синхроимпульсы сдвига Ft / Передача (через вывод TxD) и прием (через вывод RxD): старт- бита (0), 8-ми битовых данных и стоп-бита (1) Fov / 16 (SMOD=1) Fov / 32 (SMOD=0) 1 02 Передача (через вывод TxD) и прием (через вывод RxD): старт- бита (0), 9-ми битовых данных и стоп-бита (1) Ft / 32 (SMOD=1) Ft / 64 (SMOD=0) 1 3 Передача (через вывод TxD) и прием (через вывод RxD): старт- бита (0), 9-ми битовых данных и стоп-бита (1) Fov / 16 (SMOD=1) Fov / 32 (SMOD=0)
Вопросы для экспресс-контроля Перечислите режимы работы таймеров Т/С Назовите особенности работы таймеров в режиме 3 Назовите основные отличия в работе таймеров микроконтроллера от таймера i8254 Сколько прерываний может обслужить микро- контроллер i8051? Зачем нужны приоритеты прерываний? В чем отличие команд: RET, RETI ? В чем сходство и отличия в работе последо- вательного порта МК от СОМ-порта? Чем определяется скорость обмена посл. порта?
Лекция окончена СПАСИБО ЗА ВНИМАНИЕ