Сигналы контроллера ПДП i8237А
обозначение | тип | Функциональное назначение |
RESET READY HLDA DREQn D0 – D7 -IOR -IOW -EOP A0 – A3 A4 – A7 HRQ -DACKn AEN ADSTB -MEMR -MEMW PIN5 T/C -CS CLK | Вход Вход Вход Входы Вх/вых Вх/вых Вх/вых Вх/вых Вх/вых Выход Выход Выход Выход Выход Выход Выход Вход Выход Вход Вход | Сброс состояния Готовность контроллера к ПДП Подтверждение захвата шины Запрос DMA периферийными устр-вами n Шина данных Сопровождение чтения порта (активен низким уровнем) Запись в порт (активен низким уровнем) Завершение процесса ПДП Младшая часть адреса ОЗУ Старшая часть адреса ОЗУ Запрос на захват шины данных контроллером ПДП Подтверждение запроса DMA периферийному устройству Разрешение адреса Строб адреса Сопровождение чтение памяти (активен низким уровнем) Сопровождение записи в память (активен низким уровнем) Контроль питания Бит завершения передачи Выбор кристалла (каскада) Сигнал синхронизации от генератора |
Порты ввода-вывода основного контроллера ПДП i8237А
|
|
Порт | Режим | Назначение порта |
0h 2h 4h 6h 0h 2h 4h 6h 1h 3h 5h 7h 1h 3h 5h 7h | запись запись запись запись чтение чтение чтение чтение запись запись запись запись чтение чтение чтение чтение | Запись начального адреса в регистр начального адреса и регистр текущего адреса канала 0 то же для канала 1 то же для канала 2 то же для канала 3 Чтение начального адреса из регистра начального адреса канала 0 то же для канала 1 то же для канала 2 то же для канала 3 Запись в регистр начального счетчика циклов в регистр текущего счетчика циклов канала 0 то же для канала 1 то же для канала 2 то же для канала 3 Чтение текущего значения из регистра текущего счетчика циклов канала 0 то же для канала 1 то же для канала 2 то же для канала 3 |
Порты ввода-вывода основного контроллера ПДП i8237А
Порт | Режим | Назначение порта |
8h 8h 9h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 0Dh/0Fh | запись чтение запись запись запись запись запись запись запись чтение | Запись регистра команд ПДП Чтение регистра состояния ПДП Запись в регистр запросов ПДП Запись бита маски для одного из каналов ПДП Запись регистра режимов для одного из каналов ПДП Очистка (сброс) триггера-защелки (триггера первого/последнего) Программный сброс контроллера Очистка битов масок всех 4-х каналов Запись регистра масок для всех 4-х каналов Чтение рабочего регистра ПДП |
81h 82h 83h 87h | запись запись запись запись | Задание номера страницы для канала 2 то же для канала 3 то же для канала 1 то же для канала 0 |
Аналогично распределены портовые адреса для каскадируемого контроллера ПДП:
|
|
0С0h - 0ССh, 89h – 8Fh, 0D0 – 0DAh
Программирование контроллера ПДП i8237А
В работе ПДП различаются 2 главных цикла: цикл ожидания (Idle cycle) и активный цикл (Active cycle). Каждый цикл подразделяется на ряд состоя-ний, занимающих по времени один период часов (тактовый интервал).
Из цикла ожидания контроллер может быть переведен в состояние прог-раммирования (Program Condition) путем подачи на вход RESET сигнала высокого уровня, длительностью не менее 300 нc и следующей за ним подачи сигнала низкого уровня (уровня 0) на вывод CS (Chip Select).
В состоянии программирования контроллер будет находится до тех пор, пока на выводе CS сохранится сигнал низкого уровня.
В процессе программирования контроллеру задаются:
- начальный адрес памяти для обмена;
- уменьшенное на единицу число передаваемых байтов;
- направление обмена,
а также устанавливаются требуемые режимы работы (разрешить или запре-тить циклическое изменение приоритетов, автоинициализацию, задать направление изменения адреса при обмене и т. д.).
Загрузка 16-разрядных регистров контроллера осуществляется через 8-разрядные порты ввода-вывода. Перед загрузкой первого (младшего) байта должен быть сброшен (очищен) триггер-защелка (триггер первый/последний, First/Last flip-flop), который изменяет свое состояние после вывода в порт первого байта и таким образом дает возможность следующей командой вывода в тот же порт загрузить старший байт соответствующего регистра.