Блок последовательного интерфейса и прерываний

Блок последовательного интерфейса и прерываний (ПИП) предназначен для организации ввода/вывода информации по последовательному каналу и обработки прерываний.

В состав блока входят:

1. Буфер ПИП;

2. Логика управления ПИП;

3. Регистр управления (SCON);

4. Приемо/передатчик последовательного порта;

5. Регистр приоритетов прерываний;

6. Регистр разрешения прерываний;

7. Схема выработки вектора.

Буфер ПИП обеспечивает побитовый обмен информацией между внутренней шиной данных МП и шиной ПИП.

Логика управления ПИП предназначена для выработки сигналов управления последовательного порта задавая 1 из 4 возможных режимов его работы, и организации прерывания программ.

Последовательный порт МК51 может работать в одном из 4 режимов:

Режим 0. Информация передается и принимается через вход приемника RxD (вывод Р3.0). Через выход передатчика TxD (вывод Р3.1) выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки – 8 бит. Частота приема и передачи равна .

Режим 1. Информация передается через выход TxD, а принимается через вход приемника RxD. Формат посылки – 10 бит: старт-бит (ноль), восемь бит данных и стоп-бит (единица). Частота приема и передачи задается Т/С 1.

Режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки 11 бит: старт-бит (ноль), восемь бит данных, программируемый девятый бит и стоп-бит (единица). Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра специальных функций SCON. Бит ТВ8 в регистре SCON может быть программно установлен в 0 или в 1, или в него, к примеру, можно записать значение флага Р из регистра PSW для повышения достоверности принимаемой информации (контроль по четности). При приеме 9-ый бит принятой посылки записывается в бит RB8 регистра SCON. Частота приема и передачи в режиме 2 задается программно и может быть равна (SMOD=1) или (SMOD=0).

Режим 3 полностью идентичен режиму 2, за исключением того, что частота приема и передачи задается с помощью Т/С1.

Регистр управления (SCON) предназначен для приема и хранения 8-ми разрядного управляющего слова последовательным портом. Обозначение разрядов регистра, их символьные имена и назначения приведены в табл. 1.8.

Таблица 1.8. Назначение разрядов регистра SCON

Разряд Имя Назначение
SCON.7 SCON.6 SM0 SM1 Биты управления режимом работы УАПП (устанавливаются и сбрасываются программно)
SM0 SM1 Режим работы УАПП
Сдвиговый регистр
8 битовый приемопередатчик, изменяемая скорость передачи
9 битовый приемопередатчик. Фиксированная скорость передачи
9 битовый приемопередатчик, изменяемая скорость передачи
SCON.5 SM2 Бит управления режимом УАПП (разрешения многопроцессорной работы). В режимах 2 и 3 при SM2=1 флаг RI не активизируется, если девятый принятый бит данных равен «0». В режиме 1 при SM2=1 флаг RI не активен, если не принят стоп-бит, равный «1». В режиме «0» бит SM2 должен быть установлен в «0».
SCON.4 REN Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных
SCON.3 TB8 Девятый бит передаваемых данных в режиме 2 и 3. Установка/сброс программно
SCON.2 RB8 Девятый бит принятых данных в режиме 2 и 3. В режиме 1, если SM2=0, RB8 является принятым стоп-битом. В режиме 0 бит RB8 не используется.
SCON.1 TI Флаг прерывания передатчика. Устанавливается аппаратно в конце передачи восьмого бита в режиме 0 или в начале стоп-бита в других режимах, сбрасывается программно.
SCON.0 RI Флаг прерывания приемника. Устанавливается аппаратно в конце приема восьмого бита в режиме 0 или через половину интервала стоп-бита в режиме 1-3 при SM2=0. При SM2=1 смотри описание бита SM2.

Буферы приемника и передатчика (БПП) (на структурной схеме не показаны) предназначены для приема/передачи данных с внутренней шины данных в последовательный порт. При программном доступе имеют одинаковые символические имена (SBUF) и адрес (99H) . Если команда использует SBUF как регистр источника, то обращение происходит к буферу приемника. Если же команда использует SBUF как регистр-приемник, то обращение происходит к буферу передатчика.

Во всех 4-х режимах работы УАПП передача инициируется любой командой, которая использует SBUF как регистр-приемник. Прием в режиме 0 инициируется условием RI=0 и REN=1 . В остальных режимах прием инициируется приходом старт-бита, если REN=1 .

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

Скорость приема/передачи

Скорость приема/передачи в различных режимах работы УАПП определяется различными способами.

В режиме 0 частота передачи зависит только от частоты кварцевого резонатора и равна , т.е. за один машинный цикл последовательный порт передает 1 бит информации.

В режимах 1, 2, 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре управления PCON.

В режиме 2 частота передачи определяется согласно выражению:

Скорость последовательного обмена УАПП в режимах 1 и 3 определяется по формуле:

,

где - значение бита SMOD регистра управления мощностью PCON;

- частота синхронизации МК-51;

- десятичное значение содержимого регистра TH1.

Если необходим последовательный обмен с очень низкой скоростью, то можно использовать Т/С1 в режиме 16-ти разрядного таймера (режим 1), разрешив при этом прерывание от Т/С1 с целью перезагрузки TH1 и TL1 в подпрограмме обслуживания прерывания.

Для использования Т/С1 в качестве источника для задания частот и необходимо:

1. Запретить прерывания от Т/С1;

2. Запрограммировать работу Т/С1 в качестве таймера или счетчика, установив при этом для него один из режимов 0, 1 или 2;

3. Запустить Т/С1 на счет.

Обычно для установки скорости передачи данных через последовательный порт таймер Т/С1 включается в режим 2 (режим автозагрузки).

В табл.1.9 приведен ряд стандартных скоростей последовательного обмена и то, как они могут быть реализованы с помощью T/C1 в режимах 1 и 3 .

Таблица 1.9

Режим работы Скорость обмена, , МГц Бит SMOD Разряды TMOD Регистр ТН1 Примечание
УАПП Кбод     C/T М1 М0    
1,3 Макс 1000 Макс 375 62,5 19,2 9,6 4,8 2,4 1,2 0,1375 0,110 0,110 11,059 11,059 11,059 11,059 11,059 11,986 Х Х Х х х FFH FDH FDH FAH E4H E8H 18H 72H FEH     TL1=EBH

Регистр приоритетов прерываний (IP) предназначен для установки уровня приоритетов прерываний для каждого из пяти возможных источников прерываний. Обозначение, номер разряда и их назначение приведены в табл.1.10.

 

Таблица 1.10. Назначение разрядов регистра приоритетов прерываний IP

Разряд Имя Назначение
IP.7 IP.6 IP.5 - - - Не используются
IP.4 PS Бит приоритета УАПП. Установка/сброс программой для присваивания прерыванию от УАПП высшего/низшего приоритета.
IP.3 PT1 Бит приоритета Т/C1. Установка/сброс программой для присваивания прерыванию от Т/C1 высшего/низшего приоритета.
IP.2 PX1 Бит приоритета внешнего прерывания . Установка/сброс программой для присваивания прерыванию от высшего/ низшего приоритета.
IP.1 PT0 Бит приоритета Т/C0. Работает аналогично PT1.
IP.0 PX0 Бит приоритета внешнего прерывания . Работает аналогично PX1.

Регистр разрешения прерываний (IE) предназначен для разрешения или запрещения прерываний от соответствующих источников. Обозначение разрядов IE и их назначение приведено в табл.1.11.

Таблица 1.11. Назначение разрядов регистра разрешения прерываний IE

Разряд Имя Назначение
IE.7 EA Снятие блокировки прерываний. Сбрасывается программно для запрета всех прерываний независимо от состояний IE4…IE0 .
IE.6 IE.5 - - Не используются
IE.4 ES Управление прерыванием от УАПП. ES=1 - разрешено, ES=0 - запрещено .
IE.3 ET1 Управление прерыванием от Т/C1. EТ=1 - разрешено, ET=0 - запрещено .
IE.2 EX1 Управление прерыванием от внешнего источника . Работает аналогично ET1.
IE.1 ET0 Управление прерыванием от Т/C0. Работает аналогично ЕT1 .
IE.0 EX0 Управление прерыванием от внешнего источника . Работает аналогично ET1.

Логика обработки флагов прерываний осуществляет приоритетный выбор запроса прерывания в соответствии с рис.1.11, сброс его флага инициирует выработку аппаратно-реализованной команды перехода к программе обслуживания прерываний.

Рис. 1.11. Система прерываний МК51

Схема выработки вектора прерываний предназначена для формирования двухбайтового адреса подпрограммы обслуживания прерывания. Адреса подпрограмм и источники прерываний приведены в табл.1.12.

Таблица 1.12

Источник прерывания Вектор прерывания
Внешнее прерывание Таймер/счетчик 0 Внешнее прерывание Таймер/счетчик 1 УАПП 0003H 000BH 0013H 001BH 0023H

При выполнении подпрограммы прерывания система прерываний формирует аппаратный вызов (LCALL) соответствующей подпрограммы обслуживания, если она не заблокирована одним из следующих условий:

- в данный момент обслуживается запрос прерывания равного или высокого уровня приоритета;

- текущий машинный цикл – не последний в цикле выполняемой команды;

- выполняется команда RETI или любая команда, связанная с обращением к регистрам IЕ или IP.

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

По аппаратно сформированному коду LCALL система прерывания помещает в стек только содержимое счетчика команд (PC), а в него загружает адрес вектора соответствующей подпрограммы обслуживания. По адресу вектора должна быть расположена команда безусловной передачи управления (JMP) к начальному адресу подпрограммы обслуживания прерывания. В случае необходимости она должна начинаться командами записи в стек (PUSH) слова состояния программы (PSW), аккумулятора, расширителя, указателя данных и т.д. и должна заканчиваться командами восстановления из стека (POP). Подпрограммы обслуживания прерывания должны завершаться командой RETI, по которой в счетчик команд перезагружается из стека сохраненный адрес возврата в основную программу. Команда RET также возвращает управление прерванной основной программе, но при этом не снимут блокировку прерываний, что приводит к необходимости иметь программный механизм анализа окончания процедуры обслуживания данного прерывания.








Дата добавления: 2015-09-11; просмотров: 1253;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.012 сек.