Аппаратное обеспечение персонального компьютера

Инициализация канала 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.
  • Сразу после разрешения канал начинает передачу данных. После окончания передачи устройство обычно вырабатывает прерывание, которое служит признаком окончания операции ввода или вывода данных.



    Содержание раздела