ТОП 10:

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



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

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

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 также возвращает управление прерванной основной программе, но при этом не снимут блокировку прерываний, что приводит к необходимости иметь программный механизм анализа окончания процедуры обслуживания данного прерывания.

Порты МК51

Четыре двунаправленных порта Р0...Р3 предназначены для обмена информацией MK51 с внешними устройствами. Каждый из портов содержит 8-разрядный регистр-защелку, имеющий байтовую и битовую адресацию для установки (сброса) разрядов программным способом.

Физические адреса регистров портов Р0...Р3 приведены в табл. 1.13.

Таблица 1.13

Номер порта Байтовая адресация Битовая адресация
Р0 80H 80H…87H
Р1 90H 90H…97H
Р2 0A0H 0A0H…0A7H
Р3 0B0H 0B0H…0B7H

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

Через порт Р0:

1. Выводится младший байт адреса А0...А7 при работе с ВПД и ВПП;

2. Выдается из МК51 и принимается в МК51 байт данных при работе с внешними памятью программ и данных, причем обмен данными и выдача адреса мультиплексированы во времени;

3. Задаются данные при программировании внутреннего ПЗУ и читается содержимое RPM.

Через порт Р1 задается младший байт адреса при программировании внутреннего ПЗУ и при чтении RPM.

Через порт Р2:

1. Выводится старший байт адреса А8...А15 при работе с ВПД и ВПП;

2. Задается старший байт (разряды А8...А14) адреса при программировании внутреннего ПЗУ и при чтении RPM.

Альтернативные функции линий порта Р3 приведены в табл. 1.14

 

Таблица 1.14

Номер линии Имя линии Альтернативная функция
Р3.0 RxD вход УАПП
Р3.1 TxD выход УАПП
Р3.2 нулевой вход внешнего запроса прерывания
Р3.3 первый вход внешнего запроса прерывания
Р3.4 T0 вход счетчика внешних событий Т/С0
Р3.5 T1 вход счетчика внешних событий Т/С1
Р3.6 WR строб записи в ВПД, сопровождающий вывод данных из порта Р0 при использовании команд MOVX@Ri, А или MOVX@DPTR, A
Р3.7 RD строб чтения из ВПД, сопровождающий ввод данных через порт Р0 при использовании команды MOVXA@Ri и MOVXA@DPTR

Альтернативная функция любой линии порта Р3 реализуется только в том случае, если в соответствующем этой линии разряде регистра-защелки записана 1.







Последнее изменение этой страницы: 2016-12-30; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.206.194.161 (0.009 с.)