Автоматизированные системы контроля и управления РЭС, конспект лекций, страница 21

5. Регистр команд (CR) (Command Reg.); один байт.

Управляет работой контроллера. Этот регистр программируется при загрузке системы.

Значения некоторых разрядов:

Бит 3 - короткий цикл (1) / норма (0);

Бит 4 - циклический сдвиг (1) / фиксация приоритетов (0).

Программирование В/В в режиме ПДП.

Программирование включает: инициализацию ИФ; установку частоты дискретизации; подготовка данных для вывода.

Ввиду сложности, программирование КПДП осуществляется как правило, с помощью стандартных asm-процедур, а именно:

- инициализацию (программирование) КПДП; разрешение формирования запросов ПДП;

- анализ завершения ПДП (по прерыванию Т/С или опросу SR);

- обработка данных (при вводе); повторение В/В или выход.

Общая ГСА ввода (вывода) в режиме ПДП (рис. 3.16).

1. Процедура инициализации КПДП.

dma_setup Proc uses ds bx cx dx si di f

arg channel: word; Buffer: dword, Length, word, Mode: byte

Формальные параметры процедуры (передаются через стек):

Channel - номер канала (0…7);

Buffer - начальный адрес памяти (SEG: OFFSET);

Length - число передаваемых слов;

Mode - режим канала.

2. Процедура маскирование канала:

prevent_dma Proc uses ds, ax

arg channel: word

Запрещает прием запросов ПДП путем маскирования канала.

3. Процедура демаскирования канала

allow_dma Proc uses ds, ax

arg channel: word

Разрешает обслуживание запросов ПДП. Обычно 2 последние процедуры являются вложенными в процедуру dma_setup. Вызовом процедуры allow инициируется начало передачи данных.

Рис.3.16.

Анализ завершения ПДП при передаче блока выполняется либо по прерыванию Т/С, либо путем программного опроса регистра состояния КПДП.

Варианты завершения ПДП при передаче одного блока без AINIT:

1. Путем запроса прерывания по сигналу Т/С (Terminal Count).

2. Путем программного опроса регистра состояния КПДП:

mov dx, 0d0h; адрес SR

mov cl, Mask; код маски канала.

ТС:          in al, dx

                and al, cl