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

 

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

· буфер ПИП, обеспечивающий побайтовый обмен информацией между внутренней магистралью данных и шиной ПИП;

· логика управления ПИП, предназначенная для выработки сигналов управления, обеспечивающих режимы работы последовательного интерфейса и организации прерывания программ;

· регистр управления (SCON), предназначенный для приема и хранения кода восьмибитового слова, управляющего последовательным интерфейсом;

· буфер передатчика, предназначен для приема с шины ПИП параллельной информации и выдачи её в виде последовательного потока символов на передатчик последовательного порта;

· буфер приёмника, предназначен для приема данных в виде последовательного потока символов с последовательного порта, преобразования их в параллельный вид, хранения и выдачи в параллельном виде на внутреннюю шину ПИП;

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

Последовательный интерфейс МК-51 может работать в следующих режимах:

·режим 0. Информация передается и принимается через вход приемника RxD. Через выход передатчика TxD выдаются импульсы синхронизации. Формат посылки-8 бит. Частота приема и передачи – fкв/12, где fкв– тактовая частота ОМЭВМ;

· режим 1. Информация передается через выход передатчика TxD, а принимается через вход приёмника RxD. Формат посылки – 10 бит. Частота приема/передачи задается таймером Т/С1;

· режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки – 11 бит. Частота приема/передачи задается программно и может быть равна fкв/32 или fкв/64;

· режим 3. Идентичен режиму 2 за исключением частоты приема/передачи, которая задается Т/С1.

Система прерывания имеет 5 источников прерывания (в скобках указывается адрес ПК, куда передается управление, когда возникает прерывание, т.е. адрес подпрограммы обслуживания):

· внешнее прерывание с входа INT0 (0003H);

· строенный таймер-счетчик 0 (000BH);

· внешнее прерывание с входа INT1 (00013H);

· встроенный таймер-счетчик 1 (0001BH);

· прерывание от последовательного порта (00023H).

Управление системой прерывания осуществляется с помощью регистров IE (адрес A8H) и IP (адрес B8H). В табл. 3. указаны значения этих битов управления. Регистр IE управляет разрешением прерывания от какого-либо источника, а IP – приоритетом прерывания при одновременном приходе запросов от нескольких источников. Различают 5 уровней приоритета от самого высшего (он указан первым в предыдущем списке источников), до самого низшего (самая последняя строка в списке). Кроме этих уровней регистр IP устанавливает высокий или низкий приоритет внутри каждого уровня в указанном списке. Дело в том, что текущее прерывание может быть прервано только запросом от источника, приоритет которого выше по списку и установлен битом в регистре IP в высокий уровень. При других условиях запрос игнорируется.

Таблица 3.

Регистр IE = A8H

EA ------- ------- ES ET1 EX1 ET0 EX0
Бит Наименование Назначение бита Доступ к биту
EX0 Бит разрешения/ запрещения прерывания 0. Устанавливается программно для разрешения прерывания по входу INT0. Програм-мно
ET0 Бит разрешения/ запрещения прерывания от таймера/счетчика. Устанавливается программно для разрешения прерывания от таймера/счетчика 0. Програм-мно
EX1 Бит разрешения/ запрещения прерывания 1. Устанавливается программно для разрешения прерывания по входу INT1. Програм-мно
ET1 Бит разрешения/ запрещения прерывания от таймера/счетчика. Устанавливается программно для разрешения прерывания от таймера/счетчика 1. Програм-мно
ES Бит разрешения/ запрещения прерывания от последовательного порта. Устанавливается программно для разрешения прерывания по флагам TI, RI. Програм-мно
EA Флаг разрешения/запрещения всех прерываний. При установке разрешает те прерывания, флаги которых в данном регистре установлены, при сбросе запрещает сразу все прерывания. Програм-мно

Регистр IP = B8H

------ ------- ------- PS PT1 PX1 PT0 PX0
Бит Наименование Назначение бита Доступ к биту
PX0 Бит приоритета прерывания 0. Устанавливается/сбрасывается программно для определения уровня приоритета ( высокий/низкий) по входу INT0 Програм-мно
PT0 Бит приоритета прерывания от таймера/счетчика 0 . Устанавливается/сбрасывается программно для определения уровня приоритета (высокий/низкий) прерывания от таймера/счетчика 0. Програм-мно
PX1 Бит приоритета прерывания 1. Устанавливается/сбрасывается программно для определения уровня приоритета ( высокий/низкий) по входу INT1 Програм-мно
PT1 Бит приоритета прерывания от таймера/счетчика 1. Устанавливается/сбрасыва-ется программно для определения уровня приоритета (высокий/низкий) прерывания от таймера/счетчика 1. Програм-мно
PS Бит приоритета прерывания от последовательного порта. Устанавливается/сбрасыва-ется программно для определения уровня приоритета (высокий/низкий) прерывания Програм-мно

Регистр состояния (PSW)

Регистр состояния программы (PSW) предназначен для хранения информации о состоянии АЛУ при выполнении программы. Обозначение разрядов регистра и их назначение приведены в таблицах 4 и 5.

Таблица 4

Таблица 5