49131 (Средства машинной коммуникации персонального компьютера)
Описание файла
Документ из архива "Средства машинной коммуникации персонального компьютера", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "49131"
Текст из документа "49131"
Средства машинной коммуникации ПК
Стандарт RS-232. Универсальный асинхронный приемо-передатчик (UART), микросхема 8250.
Структура UART
CU – Control Unit (устройство управления)
BF – Buffer (буфер)
T – Transmit
R – Receive
M – Modem
D – Data (данные)
Состав UART
D – буфер данных – служит для обмена данными между микросхемами и процессором
DUCU – блок управления чтением и записью
MCU – блок управления модемом
TCU – блок управления передатчиком
TBF – буфер
RBF – буфер приемника
RCU – блок управления приемником
Таблица контактов разъема DB9
№контакта | Назначение | Обозначение | Тип |
1 | Детектор принимаемого сигнала | DCD | Вход |
2 | Принимаемые данные | RD | Вход |
3 | Передаваемые данные | TD | Выход |
4 | Готовность данных | DTR | Выход |
5 | Сигнальное заземление | SG | |
6 | Готовность данных | DSR | Вход |
7 | Запрос для передачи | RTS | Выход |
8 | Сброс для передачи | CTC | Вход |
9 | Индикатор вызова | RI | Вход |
Программно-доступные регистры UART
UART имеет десять программно-доступных регистров. Доступ к ним осуществляется по 8 адресам.
Регистры
THR – буфер передатчика
RBR – буфер приемника
ICR – управления прерыванием
IIR – идентификация прерывания
MCR – управление модемом
LSR – состояние линии
MSR – состояние модема
BAUD0 – делитель частоты (младший байт)
BAUD1 – делитель частоты (старший байт)
LCR – управление линией
Функции регистров
Регистр данных (DLAB)
Зависит от 7 бита регистра управления линией (управляет адресацией регистра данных). Должен находится в состоянии 0.
Адресация регистров
А0 | А1 | А2 | Доступные регистры |
0 | 0 | 0 | DLAB=0 Передача: регистр данных передатчика. Запись в порт. Прием: Регистр данных приемника. Чтение из порта. DLAB=1 Делитель частоты (младший байт) |
0 | 0 | 1 | DLAB=0 Регистр управления прерыванием. DLAB=1 Делитель частоты (старший байт) |
0 | 1 | 0 | Регистр идентификации прерывания |
1 | 0 | 0 | Регистр управления модемом |
1 | 0 | 1 | Регистр состояния линии |
1 | 1 | 0 | Регистр состояния модема |
А1, А2, А3 – младшие разряды адреса порта
Регистры данных
Адресуется адресом 000. Прием/передача DLAB=0.
З апись в порт регистр данных передатчика сдвиговый регистр
М ладший бит Sout.
Ч тение порта последний принятый байт данных.
Регистр делителя частоты (DLAB=1). Адреса 000, 001.
Частота передачи данных (в бодах).
CLK – частота кварца 1,8432 МГц (8250), N – делитель частоты.
Бод – количество бит в секунду.
Частота передачи | Делитель |
115 200 бит/с | 1 |
57 600 бит/с | 2 |
38 400 бит/с | 3 |
Регистр управления линией.
Служит для задания формата слова данных.
Биты регистра | Длина слова | ||||
D1 | D0 | 00 – 5 бит 01 – 6 бит 10 – 7 бит 11 – 8 бит | |||
D2 – число стоповых битов | 0 – 1 стоп-бит 1 – 2 стоп-бита | ||||
D5 * 0 0 1 1 | D4 * 0 1 0 1 | D3 0 1 1 1 1 | Способ контроля по паритету Отсутствие бита контроля Бит контроля по четности Бит контроля по нечетности Бит контроля равен 1 Бит контроля равен 0 | ||
D6 – выбор режима работы | 0 – обычный режим 1 – установить низкий уровень на линии SOUT (обрыв линии) | ||||
D7 – бит определения адреса (DLAB) |
Регистр управления модемом
Определяет уровень сигнала на четырех линиях: DTR, OUT1, OUT2, RTS.
D7, D6, D5 – не используются
D0 – дополнение сигнала DTR
D1 - дополнение сигнала RTS
D2 - дополнение сигнала OUT1
D3 - дополнение сигнала OUT2
D4 – выбор обратной связи для тестирования UART.
Тестирование:
SOUT – сигнал высокого уровня
Вход SIN отсоединяется
Регистр передачи –> регистр приема
соединение:
DTR –> DSR
RTS –> CTS
OUT1 –> RI
OUT2 –> RLS0
Регистр состояния линии
D0=1 | При загрузке данных в буферный регистр приемника |
D1=1 | Обнаружена ошибка переполнения |
D2=1 | Обнаружена ошибка четности |
D3=1 | Обнаружена ошибка кадра |
D4=1 | На линии SIN разрыв |
D5=1 | THR –> сдвиговый регистр передачи |
D6=1 | Сдвиговый регистр передатчика пуст |
D7=0 | Всегда |
Бит D0 сбрасывается в 0, когда процессор прочитает содержимое буфера приема. D5 – процессор пишет в буфер передачи очередной байт. D1 – D4 – читает содержимое регистра статуса линии. D6 – устанавливается в 1, когда регистр передачи пуст.
Регистр состояния модема
D0 | Изменение состояния на линии | CTS |
D1 | Изменение состояния на линии | DSR |
D2 | Изменение состояния на линии | RI |
D3 | Изменение состояния на линии | DCD |
D4 | Сигнал на линии | CTS |
D5 | Сигнал на линии | DSR |
D6 | Сигнал на линии | RI |
D7 | Сигнал на линии | DCD |
4 старших бита показывают уровень напряжения на линии, а 4 младших – наличие изменения уровня. Любое чтение регистра обнуляет младшие биты этого регистра.
Регистры прерывания
регистры управления прерыванием (001)
регистры идентификации (010)
Существует 10 условий возникновения запроса на прерывание (INTRPT) на линии UART.
Высокий приоритет:
Ошибка: переполнения, четности, кадра, разрыв линии.
Доступны принятые данные
Буфер передатчика пуст
Изменение на входах управления модемом.
Назначение млдаших битов регистра управления прерыванием
00 – готовы принятые данные
01 – буфер передатчика пуст
02 – разрыв линии или наличие ошибки
03 – изменение уровня сигналов RIS0, RI, DSR, CTS.
Нуль – модем
Соединение передатчика и приемника через кабель. RS – 232 стандартизирует обмен между двумя устройствами.
Нуль – модем (9 pin)
С помощью такого можно реализовать более сложные протоколы.
Программирование последовательного порта
СОМ1: 0040: 00003F8H – базовый адрес
СОМ2: 0040: 00022F8H – базовый адрес
СОМ3: 3E8H
СОМ4: 2E8H
Адреса регистров:
Смещение от базы | Регистр |
0, OUT | DLAB=0, регистр хранения передатчика |
0, IN | DLAB=0, регистр данных приемника |
0, OUT | DLAB=1, делитель скорости обмена, младший байт |
1, OUT | DLAB=1, делитель скорости обмена, старший байт |
1, OUT | DLAB=0, регистр разрешения прерывания |
3, OUT | DLAB=0, регитср управления линией |
4, OUT | Регистр управления модемом |
5, IN | Регистр статуса линии |
6, IN | Регистр статуса модема |
Скорость обмена
Делитель | Делитель HEX | Скорость бод |
1040 | 600 | 110 |
768 | 300 | 150 |
384 | 180 | 300 |
192 | С0 | 600 |
96 | 60 | 1200 |
48 | 30 | 2400 |
24 | 18 | 4800 |
12 | С | 9600 |
Пример простейшей коммуникационной программы (см. рисунок ниже)