Интерфейсы микропроцессорных систем. Воробьева Г.С - 7 стр.

UptoLike

3FBh (Регистр управления линией)
D7
D6
D5
D4
D3
D2
D1
D0
бит 7: DLABустановки режима работы регистров 3F8h и 3F9h:
1 = Регистры 3F8h и 3F9h служат для установки делителя скорости
передачи;
0 = 3F8h – для передающего/приемного буфера,
3F9h – для установки прерываний.
бит 6: Set Break устанавливается для введения разрыва линии:
1 = На выходе TxD устанавливается 0, независимо от активности
передатчика
0 = Передача данных
бит 5: Stick Parityзадание контрольного бита:
1 = Контрольный бит равен 0 (если выбран контроль на четность)
0 = Контрольный бит равен 1 (если выбран контроль на нечетность)
бит 4: Even Parity Selectпроверка на четность или на нечетность
1 = Контроль на четность
0 = Контроль на нечетность
бит 3: Parity Enableвключить проверку на чет/нечет
1 = проверка включена
0 = проверка выключена
бит 2: Number of Stop Bitsколичество стоп-битов:
1 = 2 стоп-бита (длина данных 6,7,8 бит); 1.5 стоп-бит (длина
данных 5 бит)
0 = 1 стоп-бит (при любой длине данных)
биты 1,0: Word Length Select:1, Word Length Select:0 настройка длины
передаваемого слова данных:
D1 D0 Количество бит данных в фрейме
0 0 5 бит данных
0 1 6 бит данных
1 0 7 бит данных
1 1 8 бит данных
Скорость передачи программируется так: на генератор тактовых
сигналов для 8250 поступают импульсы с частотой 1.8432 МГц. Эта частота
может делиться программируемым делителем на величину от 1 до 2
16
раз.
Поэтому величина, заносимая в делитель для установки нужной скорости,
вычисляется по формуле:
16_
108432.1
6
=
передачискорость
NUM
Для программирования скорости надо:
1. Выставить бит DLAB (регистр управления линией) в 1;
2. Занести младшие 8 бит вычисленного значения делителя в
регистр по адресу 3F8h, а старшие в 3F9h.
Значения делителя (NUM) для стандартных скоростей передачи
представлены в таблице 2.3.
Таблица 2.3 Значения делителя (NUM) для стандартных скоростей передачи.
NUM (значение
делителя)
NUM (значение
делителя)
Скорость
передачи,
бод
DEC HEX
Скорость
передачи,
бод
DEC HEX
50 2304 0x900 1800 64 0x40
70 1536 0x600 2000 58 0x3A
110 1047 0x417 2400 48 0x30
135 857 0x359 3600 32 0x20
150 768 0x300 4800 24 0x18
300 384 0x180 7200 16 0x10
600 192 0xC0 9600 12 0x0C
1200 96 0x60
115200 1 0х01
Как уже было отмечено, формат асинхронной посылки позволяет
выявить возможные ошибки передачи:
Если принят перепад, сигнализирующий о начале посылки, а по
стробу старт-бита зафиксирован уровень логической единицы, старт-бит
считается ложным и приемник снова переходит в состояние ожидания.
Если под время, отведенное под стоп-бит(ы), обнаружен уровень
логической единицы, фиксируется ошибка стоп-бита.
Если применяется контроль четности (паритета), то после посылки
бит данных (перед стоп-битом) передается контрольный бит. Этот бит
дополняет количество единичных бит данных до четного или нечетного в
зависимости от настройки. Прием байта с неверным значением
контрольного бита при включенном контроле паритета приводит к
фиксации ошибки принятых данных.