Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Адаптеры и контроллеры ЭВМ.docx
Скачиваний:
13
Добавлен:
01.04.2025
Размер:
844.13 Кб
Скачать

Irq11, для com2 и com4 — irq3 или irq10. В принципе номер прерывания можно назначать в

произвольных сочетаниях с базовым адресом (номером порта), но некоторые программы и драйверы (например, драйверы последовательной мыши) настроены на стандартные сочетания. Каждому порту, нуждающемуся в аппаратном прерывании, назначают отдельную линию, не совпадающую с линиями запроса прерываний других устройств. Прерывания необходимы для портов, к которым подключаются устройства ввода, UPS (источники бесперебойного питания) или модемы. При подключении принтера или плоттера прерываниями пользуются только многозадачные ОС (не всегда), и этот дефицитный ресурс PC можно сэкономить. Также прерывания обычно не задействуют при связи двух компьютеров нуль-модемным кабелем. Возможность разделяемого использования одной линии запроса несколькими портами (или ее разделения с другими устройствами) зависит от реализации аппаратного подключения и ПО. При использовании портов, установленных на шину ISA, разделяемые прерывания обычно не работают.

• Канал DMA (для микросхем UART 16450/16550, расположенных на системной плате) — разрешение использования и номер канала DMA. Режим DMA при работе с СОМ портами используют редко. Программа 1(Comp1.txt), представленная в листинге 1, реализует установку режима работы

контроллера порта COM 1 со следующими параметрами:

- длина слова - 6 бит;

- контроль четности запрещен;

- 2 стоповых бита;

- скорость передачи - 2400 бод;

- генерация сигнала прерывания запрещена;

- прерывания по всем событиям в контроллере запрещены;

- диагностический режим запрещен.

После установки режимов программа переходит к выполнению передачи константы 05h в линию данных порта без контроля сигналов квитирования и управления потоком. Число передаваемых байт задается содержимым регистра ВХ.

На рис.11 представлена временная диаграмма процесса передачи шестиразрядного кода 05h, наблюдаемая на выводе 03 разъема последовательного порта СОМ 1. Согласно правилам интерфейса RS-232C передача битов данных производится двуполярным потенциальным кодом с использованием стартового и стоповых битов. Нулевым битам соответствует высокий уровень сигнала (10 В в нашем случае), единичным - низкий уровень (-10 В в нашем случае).

Рис. 11. Передача кода 05h, реализуемая программой 1: 1 - битовый интервал = 0,417мс; 2 – деления масштабной сетки по времени - 1 мс/деление; 3 - деления масштабной сетки по амплитуде - 5 В/деление.

Листинг 1. Инициализация СОМ 1 и передача в линию константы 05h.

2BF9:0100 BBFF2F MOV BX,2FFF ;Число циклов передач

2BF9:0103 BAFB03 MOV DX,03FB ;В регистре LCR устанавливается разряд D7

2BF9:0106 B080 MOV AL,80 ;(DLAB), разрешающий обмен с регистрами

2BF9:0108 EE OUT DX,AL ;делителя(DLL и DLM).

2BF9:0109 B030 MOV AL,30 ;константу 30h заносим в DLL,

2BF9:010B BAF803 MOV DX,03F8 ;и константу 00h - в MLB,

2BF9:010E EE OUT DX,AL ;задавая скорость

2BF9:010F B000 MOV AL,00 ;передачи

2BF9:0111 BAF903 MOV DX,03F9 ;величиной 2400 бод (см.

2BF9:0114 EE OUT DX,AL ;таблицу 4 пункта 3.2).

2BF9:0115 BAFB03 MOV DX,03FB ;05h заносится в LCR, устанавливая:

2BF9:0118 B005 MOV AL,05 размер посылки - 6 бит, 2 стоп-бита и

2BF9:011A EE OUT DX,AL ;запрет контроля четности.

2BF9:011B B000 MOV AL,00 ;Занесением 00h в IER запрещаем

2BF9:011D BAF903 MOV DX,03F9 ;прерывания по всем событиям, могущим

2BF9:0120 EE OUT DX,AL ;вызвать прерывание

2BF9:0121 BAFC03 MOV DX,03FC ;Занесением 00h в IER запрещаем сигнал

2BF9:0124 EE OUT DX,AL ;прерывания и режим диагностики

2BF9:0125 BAFD03 MOV DX,03FD ;Чтение LSR и проверка: пусты ли регистры

2BF9:0128 EC IN AL,DX ;передатчика

2BF9:0129 A840 TEST AL,40 ;если передача не закончена (D6=0), то

2BF9:012B 74F8 JZ 0125 ;на новый цикл проверки.

2BF9:012D BAF803 MOV DX,03F8 ;В регистр передатчика заносится

2BF9:0130 B005 MOV AL,05 ;константа 05h, передаваемая

2BF9:0132 EE OUT DX,AL ;затем в линию.

2BF9:0133 B90200 MOV CX,0002 ;Вложенные циклы программной

2BF9:0136 51 PUSH CX ;задержки, позволяющие

2BF9:0137 B92000 MOV CX,0020 ;устанавливать временные

2BF9:013A E2FE LOOP 013A ;промежутки между

2BF9:013C 59 POP CX ;передаваемыми

2BF9:013D E2F7 LOOP 0136 ;байтами

2BF9:013F 4B DEC BX ;Декремент счетчика передаваемых байт.

2BF9:0140 75E3 JNZ 0125 ;Если не ноль, то очередная передача

2BF9:0142 CC INT3 ;Передача управления отладчику.

Программа 2 (123.txt). Осуществляет обмен ПК-ПК через COM-порт.

Листинг 2:

1ECF:0100 BAFB03 MOV DX,03FB

1ECF:0103 B080 MOV AL,80

1ECF:0105 EE OUT DX,AL

1ECF:0106 B030 MOV AL,30

1ECF:0108 BAF803 MOV DX,03F8

1ECF:010B EE OUT DX,AL

1ECF:010C B000 MOV AL,00

1ECF:010E BAF903 MOV DX,03F9

1ECF:0111 EE OUT DX,AL

1ECF:0112 BAFB03 MOV DX,03FB

1ECF:0115 B01F MOV AL,1F

1ECF:0117 EE OUT DX,AL

1ECF:0118 BF0000 MOV DI,0000

1ECF:011B BB0000 MOV BX,0000

1ECF:011E 90 NOP

1ECF:011F 90 NOP

1ECF:0120 90 NOP

1ECF:0121 90 NOP

1ECF:0122 BAFD03 MOV DX,03FD

1ECF:0125 EC IN AL,DX

1ECF:0126 A840 TEST AL,40

1ECF:0128 74F8 JZ 0122

1ECF:012A BAF803 MOV DX,03F8

1ECF:012D 88D8 MOV AL,BL

1ECF:012F EE OUT DX,AL

1ECF:0130 BAFD03 MOV DX,03FD

1ECF:0133 EC IN AL,DX

1ECF:0134 A801 TEST AL,01

1ECF:0136 74FB JZ 0133

1ECF:0138 BAF803 MOV DX,03F8

1ECF:013B EC IN AL,DX

1ECF:013C 268805 MOV ES:[DI],AL

1ECF:013F 47 INC DI

1ECF:0140 43 INC BX

1ECF:0141 83FB20 CMP BX,0020

1ECF:0144 75DC JNZ 0122

1ECF:0146 CC INT3

Программа 3 (1234.txt). Осуществляет обмен ПК-ПК через COM-порт посредством функции int 14 .

Листинг 3:

MOV DI, 0000

MOV BX, 0000

MOV AH, 0000

MOV AL, A7

MOV DX, 0000

INT 14

A1: MOV AH, 03

INT 14

TEST AH, 40

JZ A1

MOV AH, 01

MOV AL, BL

INT 14

A2: MOV AH, 03

INT 14

TEST AH, 01

JZ A2

MOV AH, 02

INT 14

MOV ES:[DI], AL

INC DI

INC BX

CMP DX, 05

JNZ A1

INT3

При обмене данными компьютера «сам с собой» увеличение начальной скорости 2400 бод в 16 раз не приводит к ошибкам, битовый интервал уменьшается в 16 раз.

При проведении исследования, скорость обмена данными изменялась только на компьютере-передатчике, на компьютере-приемнике скорость обмена оставалась величиной постоянной. В ходе исследования, было выяснено, что корректный обмен данными между ПК невозможен на скоростях больше 2400 бод и меньше 2351 бод.

10. Вопрос: Охарактеризуйте поддержку видео подсистемы ПК на уровне BIOS

Ответ:

Как уже отмечалось, все операции по модификации содержимого видеопамяти и регистров

видеоадаптера VGA выполняет центральный процессор. Реализация любой графической операции (смена

видеорежима, чтение/запись информации в кадровый буфер, управление курсором и т. п.) требует от

центрального процессора выполнения весьма длинной последовательности элементарных команд (чтение/

запись, перемещение данных в регистрах и др.). Кроме того, во время этих действий в регистры

видеоадаптера заносятся константы, значения которых для различных моделей VGA-совместимых адаптеров

могут различаться. С целью упрощения процедуры программирования видеоадаптера, а также для

обеспечения совместимости аппаратного и программного обеспечения все наборы команд (подпрограммы)

CPU, реализующие графические функции, помещаются в специальное ПЗУ, расположенное на плате

видеоадаптера VGA. Эти подпрограммы образуют так называемое расширение базовой системы

ввода/вывода (BIOS extension) для решения задач вывода изображения на экран монитора и называются Video

BIOS.

Фактически Video BIOS — это набор подпрограмм, написанных в кодах команд центрального

процессора и предназначенных для реализации основных функций видеосистемы. Набор этих функций

принято называть видеосервисом. Кроме того, Video BIOS содержит множество данных (констант),

необходимых для работы в различных видеорежимах, а также сведения о производителе, модели и

возможностях видеоадаптера.