
- •Универсальный асинхронный приемо/передатчик 68681.
- •Структура уапп 68681. Внутренняя логика управления.
- •Логика таймера.
- •Логика прерываний.
- •Буфер шины данных.
- •Последовательные каналы обмена a и b.
- •Входной порт.
- •Выходной порт.
- •Расположение и назначение выводов 68681.
- •Регистры уапп.
- •Регистры управления каналами последовательного обмена. Регистр управления 1 (mr1a и mr1b).
- •Регистры управления прерываниями.
- •Регистры управления параллельными портами. Параллельный порт ввода.
- •Регистры таймера/счетчика.
Регистры управления каналами последовательного обмена. Регистр управления 1 (mr1a и mr1b).
Формат регистров управления 1 каналов A и B представлен на рис.3 Биты 0, 1 регистра управления определяют количество бит в слове обмена последовательного канала (от 5 до 8). Следующие три бита (2-4) определяют режим контороля на четность передаваемой информации. Бит 6 служит для выбора режима прерывания от приемника последовательного канала: при MR1.6="0" прерывание происходит, если в буфере приемника находится по крайней мере один символ, при MR1.6="1" приемник генерит прерывание, если его буфер заполнен полностью. Бит 7 управляет режимом работы линий OP0, OP1 параллельного порта вывода (включение режима работы линий в качестве выходов готовности приемников) и будет рассмотрен при описании регистров параллельных портов.
управление RxRTS
|
выбор RxIRQ/
|
Режим ошибки
|
Режим контроля четности
|
|
|
тип четности
|
количество бит в символе
|
|
| ||||
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
áèò 3
|
|
áèò 2
|
áèò 1
|
áèò 0
|
| ||||
|
|
|
|
|
|
|
|
|
| ||||
|
|
|
|
|
|
контроль на
|
|
|
| ||||
|
|
|
|
|
|
четность
|
|
|
| ||||
|
|
|
|
|
|
0=четность
|
|
|
| ||||
|
|
|
0
|
0
|
=контроль на
|
1=нечетность
|
|
|
| ||||
|
|
|
|
|
четность
|
принудительная
|
|
|
| ||||
0=запрещен
|
0=RxRDY
|
0=символ
|
0
|
1
|
=принудительная
|
установка бита
|
0
|
0
|
=5
| ||||
1=разрешен
|
1=FFULL
|
1=áëîê
|
|
|
установка бита
|
четности
|
0
|
1
|
=6
| ||||
|
|
|
|
|
четности
|
0=низкий
|
1
|
0
|
=7
| ||||
|
|
|
1
|
0
|
=без контроля
|
уровень
|
1
|
1
|
=8
| ||||
|
|
|
|
|
на четность
|
1=высокий
|
|
|
| ||||
|
|
|
1
|
1
|
=Multidrop-
|
уровень
|
|
|
| ||||
|
|
|
|
|
режим
|
Multidrop-
|
|
|
| ||||
|
|
|
|
|
|
режим
|
|
|
| ||||
|
|
|
|
|
|
0=данные
|
|
|
| ||||
|
|
|
|
|
|
1=адрес
|
|
|
|
Рис.3 Формат регистров управления 1 каналов A и B (MR1A и MR1B).
Регистр управления 2 (MR2A и MR2B).
Формат регистров управления 2 представлен на рис.4. Первые четыре бита (0-3) регистра управления 2 определяют длину стоп-бита в слове данных передаваемом через последовательный порт. Следует иметь в виду, что при использовании внешней синхронизации без предделителя на 16, для определения длины используется только бит 3: при MR2.3=0 имеется один стоп-бит, а при MR2.3=1 - два стоп-бита. Биты 4 и 5 управляют режимом работы определенных линий параллельных портов ввода и вывода (бит 4 - включение режима работы линий в качестве входа разрешения передачи, бит 5 - включение режима работы линий в качестве выхода готовности передатчика) и будут рассмотрены при описании регистров параллельных портов. Режим работы каналов последовательного обмена устанавливается битами 6 и 7. В большинстве применений последовательных портов, каналы работают в нормальномрежиме.
режим работы канала
|
|
|
управление TxRTS
|
разрешение передатчика CTS
|
длина стоп-бита
|
|
|
|
|
| |||||||
áèò 7
|
áèò 6
|
|
áèò 5
|
áèò 4
|
áèò 3
|
áèò 2
|
áèò 1
|
áèò 0
|
|
| |||||||
|
|
|
|
|
|
|
|
|
6-8 бит на символ
|
5 бит на символ
| |||||||
|
|
|
|
|
|
|
|
|
|
| |||||||
|
|
|
|
|
0
|
0
|
0
|
0
|
0.563
|
1.063
| |||||||
|
|
|
|
|
0
|
0
|
0
|
1
|
0.625
|
1.125
| |||||||
|
|
|
|
|
0
|
0
|
1
|
0
|
0.688
|
1.188
| |||||||
|
|
|
|
|
0
|
0
|
1
|
1
|
0.750
|
1.250
| |||||||
0
|
0
|
нормальный
|
|
|
0
|
1
|
0
|
0
|
0.813
|
1.313
| |||||||
0
|
1
|
автоматическое
|
|
|
0
|
1
|
0
|
1
|
0.875
|
1.375
| |||||||
|
|
ýõî
|
0=запрещен
|
0=запрещен
|
0
|
1
|
1
|
0
|
0.938
|
1.438
| |||||||
1
|
0
|
местное
|
1=разрешен
|
1=разрешен
|
0
|
1
|
1
|
1
|
1.000
|
1.500
| |||||||
|
|
зацикливание
|
|
|
1
|
0
|
0
|
0
|
1.563
|
1.563
| |||||||
1
|
1
|
удаленное
|
|
|
1
|
0
|
0
|
1
|
1.625
|
1.625
| |||||||
|
|
зацикливание
|
|
|
1
|
0
|
1
|
0
|
1.688
|
1.688
| |||||||
|
|
|
|
|
1
|
0
|
1
|
1
|
1.750
|
1.750
| |||||||
|
|
|
|
|
1
|
1
|
0
|
0
|
1.813
|
1.813
| |||||||
|
|
|
|
|
1
|
1
|
0
|
1
|
1.875
|
1.875
| |||||||
|
|
|
|
|
1
|
1
|
1
|
0
|
1.938
|
1.938
| |||||||
|
|
|
|
|
1
|
1
|
1
|
1
|
2.000
|
2.000
|
Рис.4 Формат регистров управления 2 каналов A и B (MR2A и MR2B)
Вспомогательный регистр управления (ACR).
Является общим для обоих каналов A и B, его формат представлен на рис.5. Бит ACR.7 определяет одну из двух групп частот генератора скорости обмена Set1 и Set2 (программное изменение этого бита следует производить только после сброса и запрещения обоих каналов последовательного обмена), которые будут рассмотрены далее. Биты ACR4-ACR6 определяют режим работа таймера/счетчика (таймер или счетчик) и определяют источник его синхронизации (информация в этих битах должна устанавливаться только в случае, когда таймер/счетчик находится в нерабочем состоянии). Следует иметь в виду, что если вход IP2 используется в качестве входа синхронизации таймера, то он не может использоваться для синхронизации приемника канала B. Оставшиеся четыре бита ACR0-ACR3 разрешают или запрещают работу соответствующих детекторов перепадов параллельного порта ввода.
Выбор группы частот
|
Режим и источник синхронизации таймера/счетчика
|
|
|
|
|
Детектор перерадов IP3 IRQ/
|
Детектор перерадов IP2 IRQ/
|
Детектор перерадов IP1 IRQ/
|
Детектор перерадов IP0 IRQ/
| ||||
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
режим
|
источник синхронизации
|
áèò 3
|
áèò 2
|
áèò 1
|
áèò 0
| ||||
|
|
|
|
|
|
|
|
|
| ||||
|
0
|
0
|
0
|
счетчик
|
внешний (IP2)
|
|
|
|
| ||||
0=Set 1 1=Set 2
|
0
|
0
|
1
|
счетчик
|
TxCA-1X частота синхронизации передатчика канала A
|
0=запрещен 1=разрешен
|
0=запрещен 1=разрешен
|
0=запрещен 1=разрешен
|
0=запрещен 1=разрешен
| ||||
|
0
|
1
|
0
|
счетчик
|
TxBA-1X частота синхронизации передатчика канала B
|
|
|
|
| ||||
|
0
|
1
|
1
|
счетчик
|
кварцевый резонатор или внешняя синхронизация (X1/CLK) с предделителем на 16
|
|
|
|
| ||||
|
1
|
0
|
0
|
таймер
|
внешний (IP2)
|
|
|
|
| ||||
|
1
|
0
|
1
|
таймер
|
внешний (IP2) с предделителем на 16
|
|
|
|
| ||||
|
1
|
1
|
0
|
таймер
|
кварцевый резонатор или внешняя синхронизация (X1/CLK)
|
|
|
|
| ||||
|
1
|
1
|
1
|
таймер
|
кварцевый резонатор или внешняя синхронизация (X1/CLK) с предделителем на 16
|
|
|
|
|
Рис.5 Формат вспомогательного регистра управления (ACR).
Регистры выбора синхронизации (CSRA и CSRB).
Позволяют пользователю выбрать скорость обмена приемников и передатчиков каждого порта. Формат этих регистров представлен на рис.6. Фиксированные значения скоростей, приведенные здесь справедливы для кварцевого генератора, настроенного на частоту 3.6864 МГц. Эти частоты формируются генератором скорости обмена, о котором было сказано ранее. Частоты разбиты на две группы Set1 и Set2, выбор группы определяется состоянием бита ACR.7 вспомогательного регистра управления.
Синхронизация приемников и передатчиков портов может производится от таймера или от внешнего источника, что также устанавливается в регистрах выбора синхронизации. При выборе внешнего источника, сигнал синхронизации подается на входы параллельного порта IP4,IP3,IP2 и IP5 для приемника канала A, передатчика канала A, приемника канала B и передатчика канала B соответственно. Внешний сигнал может может поступать на схему синхронизации с предделителем на 16 (16X) или без него (1X). При использовании таймера/счетчика для синхронизации портов последовательного обмена, он должен быть установлен в режим таймера. Период синхронизации портов от таймера определяется 16-битовой величиной загружаемой в регистры таймера/счетчика (CTUR и CTLR). Значение этой величины декрементируется каждый период синхронизации таймера. После перехода содержимого регистров таймера в 0, происходит их автоматическая перезагрузка начальной величиной и процесс повторяется. Каждые два перехода содержимого регистров таймера в 0 определяют один период синхронизации последовательных портов и таким образом этот период можно выразить следующей формулой:
T=2*Ttim*N, где Ttim - период синхронизации таймера; N - значение величины, загружаемой в регистры таймера.
Следует иметь в виду, что при синхронизации от таймера работает предделитель на 16 для нахождения скорости обмена в этом случае можно воспользоваться формулой: V(бод)=1/16T(с).
Регистр выбора синхронизации канала A (CSRA)
Выбор скорости обмена (бод) или источника синхронизации приемника
|
|
|
|
|
|
Выбор скорости обмена (бод) или источника синхронизации передатчика
|
|
|
|
|
| ||||||||||
áèò7
|
áèò6
|
áèò5
|
áèò4
|
Set 1 ACR.7=0
|
Set 2 ACR.7=1
|
áèò3
|
áèò2
|
áèò1
|
áèò0
|
Set 1 ACR.7=0
|
Set 2 ACR.7=1
| ||||||||||
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||
0
|
0
|
0
|
0
|
50
|
75
|
0
|
0
|
0
|
0
|
50
|
75
| ||||||||||
0
|
0
|
0
|
1
|
110
|
110
|
0
|
0
|
0
|
1
|
110
|
110
| ||||||||||
0
|
0
|
1
|
0
|
134.5
|
134.5
|
0
|
0
|
1
|
0
|
134.5
|
134.5
| ||||||||||
0
|
0
|
1
|
1
|
200
|
150
|
0
|
0
|
1
|
1
|
200
|
150
| ||||||||||
0
|
1
|
0
|
0
|
300
|
300
|
0
|
1
|
0
|
0
|
300
|
300
| ||||||||||
0
|
1
|
0
|
1
|
600
|
600
|
0
|
1
|
0
|
1
|
600
|
600
| ||||||||||
0
|
1
|
1
|
0
|
1200
|
1200
|
0
|
1
|
1
|
0
|
1200
|
1200
| ||||||||||
0
|
1
|
1
|
1
|
1050
|
2000
|
0
|
1
|
1
|
1
|
1050
|
2000
| ||||||||||
1
|
0
|
0
|
0
|
2400
|
2400
|
1
|
0
|
0
|
0
|
2400
|
2400
| ||||||||||
1
|
0
|
0
|
1
|
4800
|
4800
|
1
|
0
|
0
|
1
|
4800
|
4800
| ||||||||||
1
|
0
|
1
|
0
|
7200
|
1800
|
1
|
0
|
1
|
0
|
7200
|
1800
| ||||||||||
1
|
0
|
1
|
1
|
9600
|
9600
|
1
|
0
|
1
|
1
|
9600
|
9600
| ||||||||||
1
|
1
|
0
|
0
|
38.4ê
|
19.2ê
|
1
|
1
|
0
|
0
|
38.4ê
|
19.2ê
| ||||||||||
1
|
1
|
0
|
1
|
таймер
|
таймер
|
1
|
1
|
0
|
1
|
таймер
|
таймер
| ||||||||||
1
|
1
|
1
|
0
|
IP4-16X
|
IP4-16X
|
1
|
1
|
1
|
0
|
IP3-16X
|
IP3-16X
| ||||||||||
1
|
1
|
1
|
1
|
IP4-1X
|
IP4-1X
|
1
|
1
|
1
|
1
|
IP3-1X
|
IP3-1X
|
Регистр выбора синхронизации канала B (CSRB)
Выбор скорости обмена (бод) или источника синхронизации приемника
|
|
|
|
|
|
Выбор скорости обмена (бод) или источника синхронизации передатчика
|
|
|
|
|
| ||||||||||
áèò7
|
áèò6
|
áèò5
|
áèò4
|
Set 1 ACR.7=0
|
Set 2 ACR.7=1
|
áèò3
|
áèò2
|
áèò1
|
áèò0
|
Set 1 ACR.7=0
|
Set 2 ACR.7=1
| ||||||||||
|
|
|
|
|
|
|
|
|
|
|
| ||||||||||
0
|
0
|
0
|
0
|
50
|
75
|
0
|
0
|
0
|
0
|
50
|
75
| ||||||||||
0
|
0
|
0
|
1
|
110
|
110
|
0
|
0
|
0
|
1
|
110
|
110
| ||||||||||
0
|
0
|
1
|
0
|
134.5
|
134.5
|
0
|
0
|
1
|
0
|
134.5
|
134.5
| ||||||||||
0
|
0
|
1
|
1
|
200
|
150
|
0
|
0
|
1
|
1
|
200
|
150
| ||||||||||
0
|
1
|
0
|
0
|
300
|
300
|
0
|
1
|
0
|
0
|
300
|
300
| ||||||||||
0
|
1
|
0
|
1
|
600
|
600
|
0
|
1
|
0
|
1
|
600
|
600
| ||||||||||
0
|
1
|
1
|
0
|
1200
|
1200
|
0
|
1
|
1
|
0
|
1200
|
1200
| ||||||||||
0
|
1
|
1
|
1
|
1050
|
2000
|
0
|
1
|
1
|
1
|
1050
|
2000
| ||||||||||
1
|
0
|
0
|
0
|
2400
|
2400
|
1
|
0
|
0
|
0
|
2400
|
2400
| ||||||||||
1
|
0
|
0
|
1
|
4800
|
4800
|
1
|
0
|
0
|
1
|
4800
|
4800
| ||||||||||
1
|
0
|
1
|
0
|
7200
|
1800
|
1
|
0
|
1
|
0
|
7200
|
1800
| ||||||||||
1
|
0
|
1
|
1
|
9600
|
9600
|
1
|
0
|
1
|
1
|
9600
|
9600
| ||||||||||
1
|
1
|
0
|
0
|
38.4ê
|
19.2ê
|
1
|
1
|
0
|
0
|
38.4ê
|
19.2ê
| ||||||||||
1
|
1
|
0
|
1
|
таймер
|
таймер
|
1
|
1
|
0
|
1
|
таймер
|
таймер
| ||||||||||
1
|
1
|
1
|
0
|
IP2-16X
|
IP2-16X
|
1
|
1
|
1
|
0
|
IP5-16X
|
IP5-16X
| ||||||||||
1
|
1
|
1
|
1
|
IP2-1X
|
IP2-1X
|
1
|
1
|
1
|
1
|
IP5-1X
|
IP5-1X
|
Рис.6 Формат регистров выбора синхронизации каналов A и B (CSRA и CSRB).
Регистры команд (CRA и CRB).
Позволяют пользователю индивидуально запретить или разрешить работу приемников или передатчиков соответствующего последовательного порта и выполнять определенный набор команд, таких как установка указателя на регистр MR1, сброс содержимого приемника или передатчика и некоторых других. Бит 7 регистра команд не используется может быть установлен в "0" или "1". Формат регистров команд представлен на рис.7.
не используется
|
Общие команды
|
|
|
|
Команды передатчика
|
|
|
Команды приемника
|
|
| |||||||
áèò7
|
áèò6
|
áèò5
|
áèò4
|
|
áèò3
|
áèò2
|
|
áèò1
|
áèò0
|
| |||||||
|
|
|
|
|
|
|
|
|
|
| |||||||
X
|
0
|
0
|
0
|
нет команды
|
0
|
0
|
без изменения
|
0
|
0
|
без изменения
| |||||||
|
0
|
0
|
1
|
сброс указателя MR на MR1
|
0
|
1
|
разрешение передатчика
|
0
|
1
|
разрешение приемника
| |||||||
|
0
|
1
|
0
|
сброс приемника
|
1
|
0
|
запрещение передатчика
|
1
|
0
|
запрещение приемника
| |||||||
|
0
|
1
|
1
|
сброс передатчика
|
1
|
1
|
не используется
|
1
|
1
|
не используется
| |||||||
|
1
|
0
|
0
|
сброс флагов ошибки
|
|
|
|
|
|
| |||||||
|
1
|
0
|
1
|
сброс прерывания по Break-последовательности
|
|
|
|
|
|
| |||||||
|
1
|
1
|
0
|
запуск Break-последовательности
|
|
|
|
|
|
| |||||||
|
1
|
1
|
1
|
останов Break-последовательности
|
|
|
|
|
|
|
Рис.7 Формат регистров команд каналов A и B (CRA и CRB).
Регистры статуса (SRA и SRB).
Формат этих регистров представлен на рис.8. Регистры статуса содержат в себе информацию, указывающую пользователю на состояние последовательных портов обмена. Бит статуса SRA.7 устанавливается после получения приемником порта A break-последовательности. Следующий бит SRA.6 устанавливается в случае ошибки кадрирования получаемой информации. Если в процессе приема происходит ошибка выявленная контролем по четности, устанавливается бит SRA.5. Эти три бита статуса относятся к определенному символу, находящемуся в буфере приемника и действительны только, если установлен бит RxRDY (SRA.2).
Бит SRA.4 является битом переполнения и устанавливается в случае приема нового символа в полностью заполненный буфер приемника или передатчика. Бит SRA.3 (TxEMT) указывает на то, что буфер передатчика пуст и находится в состоянии ожидания. В отличие от него бит SRA.2 (TxRDY) индицирует наличие хотя бы одного свободного места в буфере передатчика. Бит SRA.1 (FFULL) указывает на то, что заполненен буфер приемника (т.е. что в буфере имеется 4 несчитанных символа). SRA.0 (RxRDY) устанавливается, если в буфере приемника имеется хотя бы один символ.
áèò 7
|
áèò 6
|
áèò 5
|
áèò 4
|
áèò 3
|
áèò 2
|
áèò 1
|
áèò 0
|
получение Break-последовательности
|
ошибка кадрирования
|
ошибка четности
|
ошибка переполнения
|
TxEMT
|
TxRDY
|
FFULL
|
RxRDY
|
Рис.8 Формат регистров статуса каналов A и B (SRA и SRB).
Буферы данных каналов последовательного обмена.
К ним относятся буфер приемника канала A (RBA), буфер передатчика канала A (TBA), буфер приемника канала B (RBB) и буфер передатчика канала B (TBB). Буферы приемников доступны для чтения и хранят информацию, которая была принята по каналу последовательного обмена. Максимально буфер может хранить 4 принятых символа, считыванию в данный момент времени подлежит первый принятый символ из находящихся в буфере. После считывания символа его место освобождается для приема новой информации. В буферы передатчиков процессор записывает данные которые должны быть переданы по каналу последовательного обмена. Буфер передатчика может хранить до двух символов, после передачи символа его место в буфере освобождается. При наличии в буфере хотя бы одного свободного места, процессор может записывать в него новые данные.