ПДП-контролер обчислювальних систем PC AT реалізований на двох
каскадно увімкнених ВІС i8237A (багатофункціональний контролер прямого дос-
тупу), регістра старшої адреси ПДП та регістрів сторінок ПДП. Контролери забезпечують 7 каналів ПДП як по одному байту за цикл ПДП, так і по два байти
за цикл.
Для здійснення ПДП контролер повинен виконати ряд послідовних операцій:
· прийняти запит (DREQ) від пристрою вводу/виводу;
· сформувати запит (HRQ) у процесор на захоплення шини;
· прийняти сигнал (HLDA), що підтверджує захоплення шини;
· сформувати сигнал (DACK), що повідомляє пристрій про початок обміну даними;
· видати адресу комірки пам’яті, призначеної для обміну;
· сформувати сигнали (MEMR, IOW або MEMW, IOR), що забезпечують керування обміном;
· після закінчення циклу ПДП або повторити цикл ПДП, змінивши адресу, або перервати цикл.
Контролери ПДП забезпечують формування лише 16 молодших розрядів
адреси пам’яті. Причому старша частина адреси (A15 – A8 для ПДП1 або A16 –
A9 для ПДП2) під час циклу ПДП по шині даних поступає в регістр старшої адреси ПДП та далі на шину адреси, а молодша частина адреси (A7 – A0 для
ПДП1 або A8 – A1 для ПДП2) видається на шину безпосередньо з контролера.
Розряд A16 з регістра сторінок ПДП забороняється, коли вибрано ПДП2. Розряд A0 не з’єднаний з ПДП2 і завжди містить нуль при передачі слова. Це означає, що розмір блока даних, який може бути переданий або адресований, вимірюється не
байтами (8 біт), а словами (16 біт); слова завжди повинні бути розміщені на
парній межі.
Старші 8 адресних розрядів (A23 – A16) зберігаються у формувачі розширен- ня адреси на базі мікросхеми 74LS612, у так званому регістрів сторінки, який разом з контролерами i8237A визначає повну (24-розрядну) адресу для кожного каналу.
Таблиця 1 – Адреси портів вводу/виводу регістрів сторінок
Канал ПДП | Адреса порту |
087h | |
083h | |
081h | |
082h | |
Hi | |
08Bh | |
089h | |
08Ah | |
Refresh | 08Fh |
Для каналів 0 – 3 молодші розряди адреси пам’яті (A0 – A15) формуються контролером 1, а старші (A16 – A23) – регістром сторінки (74LS612). Для каналів
5 – 7 принцип формування адреси інший: розряд A0 встановлюється на нульовому рівні, розряди A1 –A16 формуються контролером 2, а розряди A17 – A23 –
регістром сторінки.
При формуванні адреси пам’яті необхідно дотримуватись таких правил:
· адреса слова, що передається, завжди повинна бути парною;
· максимальний розмір блока даних, який може пересилатись або адресува- тись при 16-розрдних передачах, удвічі перевищує розмір блока при байтових передачах;
· швидкість 16-розрядних ПДП-передач у два рази вища порівняно з передачею тієї самої інформації байтами в блочному режимі.
Призначення та формати регістрів КПДП
У складі контролера є спільні регістри команд (керування), стану та
тимчасового зберігання, а також регістри, що належать каналам: кожен з чотирьох каналів має свій регістр режиму, регістри базової та поточної адреси, регістри- лічильники базових та поточних слів, а також прапорці запиту та маски.
Регістр станів (STAT)
Вміст регістра станів може бути прочитаний мікропроцесором. Регістр
містить інформацію про стан каналів у даний момент часу. Розряди 0 – 3 регістра встановлюються кожного разу, коли процес ПДП завершений. Розряди 4 –7
встановлюються кожного разу, коли відповідний канал потребує обслуговування.
Таблиця 2 – Формат регістра стану
Біт | Призначення |
D0 | 1 – ПДП каналу 0 завершений |
D1 | 1 – ПДП каналу 1 завершений |
D2 | 1 – ПДП каналу 2 завершений |
D3 | 1 – ПДП каналу 3 завершений |
D4 | 1 – незадоволений запит каналу 0 |
D5 | 1 – незадоволений запит каналу 1 |
D6 | 1 – незадоволений запит каналу 2 |
D7 | 1 – незадоволений запит каналу 3 |
Регістр команд (CR)
Регістр керує операціями контролера ПДП, програмується мікропроцесором.
Регістр недоступний для читання.
Таблиця 3 – Формат регістра команд
Біт | Призначення |
D0 | 0 – дозвіл режиму П – П 1 – заборона режиму П – П |
D1 | 0 – заборона захвачення адреси каналу 0 1 – дозвіл захвачення адреси каналу 0 ´– якщо розряд 0 містить 0 |
D2 | 0 – дозвіл контролера ПДП 1 – блокування контролера ПДП |
D3 | 0 – нормальна синхронізація 1 – стиснена синхронізація ´– якщо розряд 0 містить 1 |
D4 | 0 – фіксований пріоритет 1 – циклічний пріоритет |
D5 | 0 – вкорочений імпульс запису MEMW 1 – подовжений імпульс запису MEMW ´– якщо розряд 3 містить 1 |
Продовження таблиці 3
D6 | 0 – DREQ активний низьким 1 – DREQ активний високим |
D7 | 0 – DACK активний низьким 1 – DACK активний високим |
Регістр режиму (MOD)
Цей регістр є в кожному каналі. Розряди 0, 1 вказують, у регістр режиму
якого каналу треба здійснити запис, а розряди 2 – 7 – інформацію безпосередньо для відповідного регістра режиму. Для регістра режиму дозволений лише запис
інформації.
Таблиця 4 – Формат регістра режиму
Біт | Призначення |
D1, D0 | Адреса каналу: 00 – канал 0 01 – канал 1 10 – канал 2 11 – канал 3 |
D3, D2 | Тип циклу ПДП: 00 – перевірка 01 – запис у пам’ять 10 – читання з пам’яті 11 – заборонена комбінація ´– якщо розряди 6, 7 дорівнюють 11 |
D4 | Автоініціалізація: 1 – є 0 – немає |
D5 | Принцип зміни адреси: 0 – збільшення адреси 1 – зменшення адреси |
D7, D6 | Режим обслуговування: 00 – режим за вимогою 01 – одиничний режим 10 – блочний режим 11 – каскадний режим |
Регістр маски (MASK)
Кожен канал має свій розряд у 4-розрядному регістрі маски, який може бути
встановлений, щоб заблокувати DREQ, що приходить. Кожен розряд 4- розрядного регістра маски може бути встановлений бо скинений під керуванням програми. Регістр маски не може бути зчитаний мікропроцесором.
Таблиця 5 – Формат байта встановлення або скидання одного розряду маски
Біт | Призначення |
D1, D0 | Адреса каналу: 00 – канал 0 01 – канал 1 10 – канал 2 11 – канал 3 |
D2 | 1 – встановити маску 0 – скинути маску |
D3 – D7 | Не використовуються |
Таблиця 6 – Формат байта для запису інформації у всі розряди маски
Біт | Призначення |
D0 | 1 – встановити маску каналу 0 0 – скинути маску каналу 0 |
D1 | 1 – встановити маску каналу 1 0 – скинути маску каналу 1 |
D2 | 1 – встановити маску каналу 2 0 – скинути маску каналу 2 |
D3 | 1 – встановити маску каналу 3 0 – скинути маску каналу 3 |
D4 – D7 | Не використовуються |
Регістр запиту (REQ)
Контролер ПДП може реагувати на запити по обслуговуванню ПДП, які
будуть ініціюватися програмно, як і при DREQ. Кожен канал має свій розряд у 4-
розрядному регістрі запиту. Ці розряди немасковані, пріоритет їх встановлюється шифратором пріоритетів. Регістр запиту не може бути прочитаний мікропроцесо- ром.
Таблиця 7 – Формат регістра запитів
Біт | Призначення |
D1, D0 | Адреса каналу: 00 – канал 0 01 – канал 1 10 – канал 2 11 – канал 3 |
D2 | 1 – встановити запит 0 – скинути запит |
D3 – D7 | Не використовуються |