- •Универсальный асинхронный приемо/передатчик 68681.
- •Структура уапп 68681. Внутренняя логика управления.
- •Логика таймера.
- •Логика прерываний.
- •Буфер шины данных.
- •Последовательные каналы обмена a и b.
- •Входной порт.
- •Выходной порт.
- •Расположение и назначение выводов 68681.
- •Регистры уапп.
- •Регистры управления каналами последовательного обмена. Регистр управления 1 (mr1a и mr1b).
- •Регистры управления прерываниями.
- •Регистры управления параллельными портами. Параллельный порт ввода.
- •Регистры таймера/счетчика.
Регистры управления прерываниями.
Форматы регистров управления прерываниями представлены на рис.9.
Регистр вектора прерывания (IVR).
В данный регистр пользователь записывает номер вектора, по которому будет происходить обработка прерывания. Байт записанный в IVR выставляется на шину данных при стробировании сигналом DTACK/ в ответ на установку сигнала подтверждения прерывания IACK/ процессором.
Регистр статуса прерываний (ISR).
В этом регистре находятся флаги запросов на прерывание. Считав содержимое регистра ISR пользователь может получить представление о том, какой блок УАПП произвел запрос на прерывание. Флаг ISR.0 (TxRDYA) устанавливается, если передатчик готов принять новый символ (т.е. если имеется хотя бы одно свободное место в буфере передатчика). Установка флага ISR.1 (RxRDYA/FFULLA) управляется битом MR1A.6 регистра управления 1: при MR1A.6=0 флаг ISR.1 устанавливается, если в буфере приемника имеется хотя бы один символ; при MR1A.6=1 флаг ISR.1 устанавливается, если буфер передатчика полностью заполнен. Флаг ISR.2 устанавливается при получении приемником канала A break-последовательности. Этим трем битам ответственным за прерывания от канала A соответствуют биты ISR.4, ISR.5 и ISR.6 канала B.
Флаг ISR.3 устанавливается в случае готовности таймера/счетчика. Последний флаг ISR.7 устанавливается в случае срабатывания хотя бы одного детектора перепада параллельного порта ввода.
Регистр маскирования прерываний (IMR).
Биты данного регистра соответствуют флагам регистра статуса прерываний. Если в бит, соответствующий данному источнику записан логический "0", то прерывание от него запрещено. При записи "1" прерывание разрешается.
Регистр вектора прерывания (IVR)
IVR.7
|
IVR.6
|
IVR.5
|
IVR.4
|
IVR.3
|
IVR.2
|
IVR.1
|
IVR.0
|
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
áèò 3
|
áèò 2
|
áèò 1
|
áèò 0
|
Регистр статуса прерывания (ISR) и регистр маскирования прерываний (IMR)
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
áèò 3
|
áèò 2
|
áèò 1
|
áèò 0
|
Перепад на входах IP0-IP3 порта ввода
|
Break-последовательность порта B
|
RxRDYB/FFULLB
|
TxRDYB
|
Готовность таймера/счетчика
|
Break-последовательность порта A
|
RxRDYA/FFULLA
|
TxRDYA
|
Рис.9 Регистры управления прерываниями 68681.
Регистры управления параллельными портами. Параллельный порт ввода.
Линии параллельного порта ввода (IP0-IP5) могут работать в качестве линий ввода общего назначения или выполнять функции специального назначения. Линии порта могут быть запрограммированы на обнаружение перепадов (устанавливается в регистре ACR), могут функционировать как входы синхронизации для таймера/счетчика или приемников и передатчиков последовательных портов обмена (устанавливается в регистрах CSRA, CSRB и ACR), а также в качестве входов разрешения передачи (CTS/). Рассмотрим более подробно последний случай. В качестве входов разрешения передачи используются два входа IP.0 (для последовательного канала A) и IP.1 (для канала B). Их программирование для данного режима осуществляется установкой в "1" бита регистра MR2A.4 для IP.0 и MR2B.4 для IP.1. При этом передача разрешается, если на соответствующем входе разрешения присутствует низкий уровень, и запрещается в обратном случае. Форматы регистров параллельного порта ввода представлены на рис.10.
Регистр состояния входного порта (IPCR).
Биты 4-7 данного регистра устанавливаются при регистрации перепада на соответствующем входе порта (IP0-IP3) при разрешенной работе соответствующего детектора перепада. Биты 0-3 регистра отображают текущее состояние линий IP0-IP3 соответственно.
Регистр входного порта.
Биты 0-5 хранят текущее состояние входов IP0-IP5 соответственно. При считывании регистра процессором, бит 7 читается как логическая "1", а бит 6 отображает текущее состояние входа IACK/ УАПП.
Регистр состояния входного порта (IPCR)
Детектор перепадов входа IP3
|
Детектор перепадов входа IP2
|
Детектор перепадов входа IP1
|
Детектор перепадов входа IP0
|
Уровень IP3
|
Уровень IP2
|
Уровень IP1
|
Уровень IP0
|
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
áèò 3
|
áèò 2
|
áèò 1
|
áèò 0
|
Регистр входного порта
*
|
**
|
IP5
|
IP4
|
IP3
|
IP2
|
IP1
|
IP0
|
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
áèò 3
|
áèò 2
|
áèò 1
|
áèò 0
|
Рис.10 Форматы регистров параллельного порта ввода.
Параллельный порт вывода.
Линии параллельного порта вывода также могут работать в качестве линий вывода общего назначения или выполнять специальные функции. Режим работы линий порта задается в регистре конфигурации параллельного порта вывода и в определенных битах регистров ACR, MR1A, MR2A, MR1B и MR2B. При работе в качестве простых линий вывода выходы порта могут быть индивидуально установлены или сброшены. Для записи информации в линии выходного порта, работающие в режиме общего назначения, используется регистр выходного порта OPR. Данные записанные в него инвертируются и поступают на соответствующие линии порта.
Режим специального назначения линий OP0, OP1 порта определяется битами MR1.7 и MR2.5 регистров управления каналов A и B, причем OP0 соответствует каналу A, а OP1 - каналу B. Если биты MR1.7, MR2.5 установлены в "0", соответствующие выводы порта работают к качестве линий общего назначения. Если, например, MR1A.7="1", то линия OP0 работает в качестве линии готовности приемника канала A (RxRTSA/) и устанавливается (в низкий уровень) если приемник готов принять новые данные. При MR2A.5=1, линия OP0 работает в качестве линии готовности передатчика (TxRTSA/) и сбрасывается (в высокий уровень), если буфер передатчика пуст. Функции специального назначения остальных линий параллельного порта вывода рассмотрены ниже. Форматы регистров параллельного порта вывода показаны на рис.11.
Регистр конфигурации параллельного порта вывода (OPCR).
Информация записанная в данный регистр определяет режим работы линий порта вывода: линии вывода общего назначения или линии специального назначения. Линии вывода в режиме специального назначения могут выполнять следующие функции, программируемые с помощью регистра конфигурации: выходы сигналов готовности от передатчиков каналов A и B - TxRDYA и TxRDYB, выходы сигналов готовности от приемников по наличию хотя бы одного символа в буфере (если MR1.6=0) или при полностью заполненном буфере (если MR1.6=1) - RxRDYA/FFULLA и RxRDYB/FFULLB, выход таймера/счетчика, выход частоты синхронизации приемников и передатчиков каналов последовательного обмена A и B (RxCA, TxCA, RxCB и TxCB).
Регистр выходного порта (OPR).
Данные хранящиеся в данном регистре поступают в инвертированном виде на выходные линии порта, которые запрограммированы на работу в качестве линий общего назначения. Регистра OPR представлен в виде двух доступных для пользователя ячеек УАПП: установки и сброса.
Регистр конфигурации параллельного порта вывода (OPCR)
OP7
|
OP6
|
OP5
|
OP4
|
OP3
|
|
|
OP2
|
|
| ||||
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
áèò 3
|
áèò 2
|
|
áèò 1
|
áèò 0
|
| ||||
|
|
|
|
0
|
0
|
=OPR.3
|
0
|
0
|
=OPR.2
| ||||
0=OPR.7
|
0=OPR.6
|
0=OPR.5
|
0=OPR.4
|
0
|
1
|
=выход т/с
|
0
|
1
|
=TxCA (16X)
| ||||
1=TxRDYB
|
1=TxRDYA
|
1=RxRDYB/
|
1=RxRDYA/
|
1
|
0
|
=TxCB (1X)
|
1
|
0
|
=TxCA (1X)
| ||||
|
|
FFULLB
|
FFULLA
|
1
|
1
|
=RxCB (1X)
|
1
|
1
|
=RxCA (1X)
|
Регистр выходного порта (OPR)
OPR7
|
OPR6
|
OPR5
|
OPR4
|
OPR3
|
OPR2
|
OPR1
|
OPR0
|
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
áèò 3
|
áèò 2
|
áèò 1
|
áèò 0
|
Рис.11 Форматы регистров параллельного порта вывода.