Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системное программирование.doc
Скачиваний:
178
Добавлен:
19.03.2015
Размер:
1.96 Mб
Скачать

13.5. Стандартные средства программирования последовательного порта

Операционная система MS-DOS не содержит серьезной поддержки асинхронного адаптера. Функции прерывания INT 21h с номерами 3 и 4 предназначены для чтения и записи байтов через адаптер. Обе функции работают с COM1 и COM2. Функция 3 получает в регистр AL символ, принятый от адаптера, а функция 4 передает в адаптер символ, записанный в регистр DL.

Основной недостаток функций MS-DOS заключается в отсутствии их функциональной полноты. Например, используя только эти функции, нельзя проанализировать ошибочные ситуации и изменить режим работы адаптера.

Функции BIOS, определенные за прерыванием 14h, более разнообразны. Параметры вызова основных функций приведены в табл. 123. Байты состояния линии и модема, возвращаемые обработчиком INT 14h, полностью соответствуют регистру состояния линии и регистру состояния модема адаптера порта.

Табл. 123. Основные функции INT 14h.

Функция

Регистры при вызове

Регистры при возврате

Инициализация порта

AH = 00h

AL = параметры

инициализации порта

DX = номер порта (0-3)

AH = состояние линии

AL = состояние модема

Передать символ

AH = 01h

AL = код символа

DX = номер порта (0-3)

AH – бит 7 сброшен, если успешное выполнение и установлен в случае ошибки. Биты 6-0 – состояние порта

Принять символ

AH = 02h

DX = номер порта (0-3)

AH = состояние линии

AL = принятый символ,

если бит 7 сброшен

Состояние порта

AH = 03h

DX = номер порта (0-3)

AH = состояние линии

AL = состояние модема

Параметры инициализации порта приведены в табл. 124-127. Как видно, функциям BIOS также присущи недостатки: нельзя установить скорость передачи более 9600 бод, нет возможности узнать текущий режим работы адаптера, отсутствует поддержка модема. Поэтому для программирования асинхронного адаптера рекомендуется использовать порты ввода-вывода и работать на низком уровне.

Табл. 124. Формат байта инициализации порта.

Биты

7

6

5

4

3

2

1

0

Значение

Скорость передачи

Контроль

четности

Число

стоп-битов

Размер

слова

Табл. 125. Размер слова.

Слово (бит)

Код

5

00

6

01

7

10

8

11

Табл. 126. Коды четности.

Тип четности

Код

Нет

00

Нечетность

01

Нет

10

Четность

11

Табл. 127. Коды скорости.

Скорость (бод)

Код

110

000

150

001

300

010

600

011

1200

100

2400

101

4800

110

9600

111