Проектирование устройств сопряжения (1083567), страница 26
Текст из файла (страница 26)
Контроллер параллельного обмена (универсальный асинхронный приемопередатчик, УАПП), входящий в состав персонального компьютера, реализует следующие функции:
- преобразование параллельного кода в последовательный при передаче и обратное преобразование при приеме;
- формирование стартового, стопового битов и бита четности при передаче и контроль их правильности при приеме;
- прием и передача данных на заданной скорости;
- формирование и контроль состояния сигналов интерфейса RS-232C.
УАПП может быть выполнен на специальной микросхеме (обычно 18250 или 16550А) или входить в состав БИС вместе с другими контроллерами, но все форматы обмена с ним сохраняются неизменными.
Обычно в состав компьютера входят два последовательных порта, обозначаемых СОМ1 (адреса 3F8 ... 3FFh, прерывание IRQ4) и COM2 (адреса 2F8 ... 2FFh, прерывание IRQ3).
Рассмотрим назначение отдельных битов, записываемых по этим адресам и читаемых из этих адресов. Но сначала отметим, что назначение битов портов 3F8 и 3F9 зависит от значения специального бита управления, записываемого в 7 разряде в порт 3FB (здесь и далее рассматриваем СОМ1, имея в виду, что для COM2 все делается аналогично).
Порт 3F8
При нулевом значении управляющего бита этот порт служит Для записи в него передаваемого байта данных и чтения из него принимаемого байта. При единичном значении управляющего бита этот порт используется для записи в него младшего байта кода делителя частоты тактового генератора, определяющего скорость передачи и приема. Связь этого кода и скорости передачи следующая:
Шестнадцатиричный код частоты | Скорость передачи, бит/с | Шестнадцатиричный код частоты | Скорость передачи, бит/с |
0410 | 110 | 0018 | 4800 |
0300 | 150 | 000С | 9600 |
0180 | 300 | 0006 | 19200 |
00С0 | 600 | 0003 | 38400 |
0060 | 1200 | 0002 | 57600 |
0030 | 2400 | 0001 | 115200 |
Порт 3F9
При значении управляющего бита, равном единице, этот порт используется для записи старшего байта кода делителя частоты. При нулевом значении управляющего бита этот порт используется для управления прерываниями. При этом он имеет следующий формат:
Номер бита | Назначение бита |
0 | 1 — разрешение прерывания по окончании приема данных, 0 — запрещение прерывания |
1 | 1 — разрешение прерывания по окончании передачи данных, 0 — запрещение прерывания |
2 | 1 — разрешение прерывания при обнаружении сбоя на линии, 0 — запрещение прерывания |
3 | 1 — разрешение прерывания по изменению входных управляющих сигналов RS-232C, 0 — запрещение прерывания |
4,5,6,7 | не используются |
Порт 3FA
Это регистр идентификации прерывания. Используется только для чтения. Его содержимое указывает на причину прерывания, формат регистра следующий:
Номер бита | Назначение бита |
0 | 1 — нет прерываний, требующих обслуживания, 0 — есть прерывания |
1,2 | 00 — переполнение приемника, ошибка четности или формата данных при приеме, сброс — по чтению из 3FD; 01 — данные переданы, сброс — по записи в 3F8; 10 — данные приняты и доступны для чтения, сброс — по чтению из 3F8; 11 — изменение состояния входных управляющих сигналов RS-232C, сброс — по чтению из 3FE |
3 ... 7 | не используются |
Порт ЗFВ
Это управляющий регистр, доступный по чтению и записи. Его формат следующий:
Номер бита | Назначение бита |
0, 1 | Количество бит передаваемых данных: 00-5 бит, 10-6 бит, 01-7 бит, 11 - 8 бит |
2 | Количество стоповых битов: 0 — 1 бит, 1 — 2 бита |
3, 4 | Контроль четности: 0Х — контроль четности не используется, 10 — контроль на нечетность, 11 — контроль на четность |
5 | Задание контрольного бита: 1 — контрольный бит всегда равен 0 (если выбран контроль на четность) или всегда равен 1 (если выбран контроль на нечетность) |
6 | 1 — постоянная передача нуля, 0 — нормальная передача символов |
7 | Управляющий бит для выбора назначения портов 3F8 и 3F9 |
Порт 3FC
Данный порт используется для управления модемом. Управляет состоянием управляющих линий интерфейса RS-232C. Применяется довольно редко. Его формат следующий:
Номер бита | Назначение бита |
0 | Состояние линии DTR |
1 | Состояние линии RTS |
2 | Состояние выходного сигнала OUT1 УАПП |
3 | Состояние выходного сигнала OUT2 УАПП |
4 | Режим работы УАПП:0 — рабочий, 1 — диагностический |
5,6,7 | Не используются |
Порт ЗFD
Это регистр состояния линии. Его формат следующий:
Номер бита | Назначение бита |
0 | 1 — данные получены и готовы для чтения, флаг сбрасывается при чтении данных |
1 | 1 — ошибка переполнения при приеме (принят новый байт раньше, чем прочитан предыдущий, предыдущий байт теряется) |
2 | 1 — ошибка четности при приеме |
3 | 1 — ошибка синхронизации (не принята стоповая посылка) |
4 | 1 — обнаружен запрос на прерывание передачи (постоянная передача нуля) |
5 | 1 — буферный регистр передачи пуст можно записывать следующий передаваемый байт |
6 | 1 — регистр сдвига передатчика пуст, передача закончена |
7 | 1 — тайм-аут |
Порт 3FE
Это регистр состояния модема. Используется редко. Его формат следующий:
Номер бита | Назначение бита |
0 | Линия CTS изменила состояние после предыдущего чтения из регистра состояния модема |
1 | Линия DSR изменила состояние |
2 | Линия RI изменила состояние |
3 | Линия DCD изменила состояние |
4 | Состояние линии CTS |
5 | Состояние линии DSR |
6 | Состояние линии RI |
7 | Состояние линии DCD |
Для передачи данных необходимо записать их по адресу 3F8 (предварительно надо убедиться, что буферный регистр передатчика пуст). Принятые данные читаются из адреса 3F8 (предварительно надо убедиться, что данные приняты). УАПП обеспечивает дуплексный обмен данными, то есть возможно одновременно передавать и принимать данные. Но все параметры обмена (скорость, формат знака и т.д.) для приема и для передачи должны быть одинаковыми.
Для инициализации УАПП необходимо проделать следующее:
- записать по адресу 3FB управляющий байт с единицей в 7 бите;
- записать код делителя частоты по адресам 3F8 и 3F9;
- записать по адресу 3FB управляющий байт с нулем в 7 бите и с требуемыми значениями остальных битов;
- записать управляющий байт по адресу 3F9; - записать управляющий байт по адресу 3FC.
ЛИТЕРАТУРА
1. Голенкова, А.В. Заблоцкий, М.Л. Мархасин и др. Руководство по архитектуре IBM PC AT / Ж.К.
Под ред. М.Л. Мархасина.
– Мн.: ООО "Консул", 1992 - 949 с.: ил.
2. Блохнин С.М. Шина ISA персонального компьютера IBM PC/AT.
– М.: ПК "Сплайн", 1992 - 76 с.
3. Бычков Е.А. Архитектуры и интерфейсы персональных компьютеров.
– М.: Центр "СКС", 1993 - 152 с.: ил.
4. Фролов А.В., Фролов Г.В. Аппаратное обеспечение IBM PC: В 2-х ч.
- М.: "ДИАЛОГ - МИФИ", 1992.
5. А.А Мячев, В.Н. Степанов, В.К. Щербо. Интерфейсы систем обработки данных: Справочник /
Под ред. А.А. Мячева.
– М.: Радио и связь, 1989 — 416 с.: ил.
6. Мячев А.А. Персональные ЭВМ: Краткий энциклопедический справочник.
- М.: Финансы и статистика, 1992 — 380 с.
7. Шевкопляс Б.В. Микропроцессорные структуры. Инженерные решения: Справочник. — 2-е изд. перераб. и доп.
- М. Радио и связь, 1990 — 512 с.: ил.
8. Сопряжение датчиков и устройств ввода данных с компьютерами IBM PC:
Пер. с англ./ Под ред. У. Томпкинса, Дж Уэбстера. - М.: Мир, 1992 - 592 с.: ил.
9. И.И. Петровский, А.В. Прибыльский, А.А. Троян, B.C. Чувелев: Логические ИС КР1533, КР1554: Справочник В 2-х ч.
- М.: ТОО "Бином", 1993.
10. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT:
Пер. с англ./ Предисл. Н.В. Гайского.
- М.: Финансы и статистика, 1991 — 544 с.: ил.
11. Уильяме Г.Б. Отладка микропроцессорных систем: Пер. с англ.
- М.: Энергоатомиздат, 1988 — 253 с.: ил.
12. Нортон П. Программно-аппаратная организация IBM PC: Пер. с англ.
- М.: Радио и связь, 1991 — 416 с.: ил.