2. Инициализация канала DMA



9.1.2. Инициализация канала DMA

Для инициализации канала программа должна выполнить следующие шаги:

  • сбросить триггер байтов командой записи в регистр0Ch;
  • задать режим работы канала, выполнив запись по адресу 0Bh в регистр режима MR;
  • заслать младшие 16 битов 20-битового адреса области памяти, которая будет использована для передачи данных, в регистр базового адеса (адрес порта зависит от номера канала: 0 канал использует адрес 00h, 1 канал - 02h, 2 канал - 04h, 3 канал - 06h);
  • заслать номер страницы (старшие 4 бита 20-битового адреса) в регистр страниц 81h;
  • загрузить регистр циклов прямого доступа к памяти CWR значением, на 1 меньше требуемого количества передаваемых байтов (адреса этих портов для каналов 0...3, соответственно, 01h, 03h, 05h, 07h;
  • разрешить работу канала, выполнив запись в регистр маски каналов по адресу 0Ah.

Сразу после разрешения канал начинает передачу данных. После окончания передачи данных устройство обычно вырабатывает прерывание, которое служит признаком окончания передачи данных.



Содержание Назад Вперед