Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Розділ 5.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.71 Mб
Скачать

5.5. Архітектура і функціональні можливості контролера прямого доступу до пам'яті

Контролер прямого доступу до пам'яті (КПДП) КР580ВТ57 призначений для організації швидкісного обміну даними між пам'яттю і зовнішніми пристроями, який ініціюється зовнішнім пристроєм (див. п. 5.1, рис. 5.5).

Структурну схему контролера зображено на рис. 5.45. Вона має:

• двоспрямований двостабільиий буфер даних BD, при­значений для обміну інформацією між МП і КПДП;

• схему керування читанням-записом RWCU, що адресує внутрішні регістри КПДП і керує обміном по шині D7D0;

• блок керування CU містить регістри режиму і стану КПДП та задає режими роботи КПДП;

• блок керування пріоритетами PCU забезпечує порядок обслуговування запитів зовнішніх пристроїв;

• чотири канали прямого доступу СНО—СНЗ; кожний з них містить регістр адреси комірки пам'яті, де починається обмін, лічильник циклів обміну, два старших розряди якого відведені для задання операцій обміну та схему формування запитів-підтвердження.

Рис. 5.45. Структурна схема КР580ВТ57

Призначення виводів ВІС наведено у табл. 5.11.

Кожний з чотирьох каналів ПДП забезпечує передавання блока даних ємністю до 16 Кбайт з довільною початковою адресою в діапазоні 0 — 64 Кбайт. Пріоритети каналів можуть бути фіксованими (канал 0 має найвищий пріоритет, канал 3 — найнижчий) або змінюватися циклічно. В остан­ньому випадку каналу, в якому відбулося обслуговування запиту ПДП, присвоюється нижчий пріоритет, а каналу з наступ­ним номером — вищий.

Схему підключення КПДП до системної шини зобра­жено на рис. 5.46.

Молодший байт адреси пам'яті видається по лініях A3 — А0 та A7 — А4, які безпосередньо підключені до шини адреси АВ. Старший байт адреси передається через шину D7D0, тому в схему підключено буферний регістр К589ИР12, який фіксує значення старшого байта за сигналом ADSTB, якщо AEN = 0. На вивід ВІС надходить сигнал з виходу де­шифратора адрес введення-виведення. Інші виводи КПДП під'єднуються до однойменних ліній шин МП системи.

Таблиця 5.11. Призначення виводів КПДП КР580ВТ57

Позначення

Номер виводу

Призначення

D7-D0

21; 22; 23; 36;

27; 28; 29; 30

Входи-виходи даних для обміну з МП

1

Читання введення-виведсння — двона-прямлений тристабільний вхід-вихід. Вхід­ний сигнал L -рівня дозволяє зчитування інформації з КПДП; а вихідний сигнал низького рівня — з ПВВ

2

Запис введення-виведення — двонапрямлений тристабільний вхід-вихід. Вхідний сигнал низького рівня дозволяє програмування КПДП, а вихідний сигнал низь­кого рівня — запис у ПВВ

CLK

12

Вхід тактових імпульсів

RESET

13

Вхідний сигнал скидання

АЗ0

35; 34; 33; 32

Двонапрямлені тристабільні адресні ви­води

CS

11

Вибірка ВІС

А74

40; 39; 38; 37

Тристабільні адресні виводи

READY

6

Вхідний сигнал готовності. H-рівень вка­зує на готовність КПДП до обміну

HOLD

10

Вихідний сигнал запиту захоплення. H-рівень вказує на запит захоплення КПДП системної шини

HLDA

7

Вхідний сигнал підтвердження захоплен­ня. Я-рівень вказує на дозвіл доступу до системної шини

3

Вихідний сигнал читання з пам'яті. Три­стабільний вихід, L-рівень дозволяє чи­тання комірки пам'яті, що адресується КПДП

4

Вихідний сигнал запису в пам'ять. Три­стабільний вихід. L-рівень дозволяє запис у комірку пам'яті, що адресується КПДП

9

Дозвіл адреси. H-рівень блокує шини адрeси-даних

ASTB

8

Строб адреси. H-рівснь вказує на знахо­дження на шині D7D0 старшого байта адреси ЗП

ТС

36

Кінець лічення. H-рівень вказує на вико­нання останнього циклу передавання бло­ку даних

MARK

5

Маркер. H-рівень вказує, що до кінця пе­редавання блока треба виконати кількість циклів обміну, що кратна 128

DRQ3-DRQ0

16; 17; 18; 19

Запити прямого доступу до пам'яті кана­лів СH3 — СH0. H-рівень вказує на запит від ПВВ

15; 14; 24; 25

Підтвердження запитів прямого доступу до пам'яті каналів СH3—СH0. L-рівень вказує на дозвіл обміну

Ucc

31

Напруга живлення +5 В

GND

20

Спільний вивід

Рис. 5.46. Схема з'єднання КПДП із системною шиною з використан­ням буферного регістра

Під час програмування КПДП задають режим роботи каналів, напрям обміну інформацією між пам'яттю та при­строєм введення-виведення, початкову адресу та довжину масиву пам'яті.

Значення адресних розрядів A3 — А0 і сигналу під час запису та читання регістрів ВІС наведено в табл. 5.12. Запис інформації у 16-розрядні регістри здійснюється двома ко­мандами, спочатку записується молодший байт, а потім — старший.

Режим роботи каналів задається керуючим словом, формат якого наведено на рис. 5.47. Розряди D3D0 (EN3 EN0) дозволяють (за одиничного значення) або забороня­ють (за нуля) обмін у відповідному каналі.

Розряд D4 (RP) встановлює порядок обслуговування за­питів від каналів. За D4 = 0 задається фіксований пріоритет каналів, а за D4 = 1 встановлюється режим циклічного пріоритету. Циклічний зсув пріоритетів відбувається після кож­ного циклу прямого доступу.

Встановлення розряду D5(EW) у стан логічної одиниці задає режим розширеного запису, за якого тривалість сиг­налів і , що генеруються КПДП, збільшується за рахунок зсуву переднього фронту. Це дозволяє ПВВ, що формує сигнал READY по фронту сигналу запису, змен­шити або збільшити швидкість обміну.

Таблиця 5.12. Адресація внутрішніх регістрів КПДП

Регістр

CS

A3

А2

А1

А0

RQ0

0

0

0

0

0

СТО

0

0

0

0

1

RQI

0

0

0

1

0

СТ\

0

0

0

1

1

RQ2

0

0

1

0

0

СТ2

0

0

1

0

1

RQ3

0

0

1

1

0

СТЗ

0

0

1

1

1

Регістр режиму (запис)

0

1

0

0

0

Регістр стану (читання)

0

1

0

0

1

Відключення КПДП від шини даних

1

x

x

x

x

D7

D6

D5

D4

D3

D2

D1

D0

AL

TCS

EW

RP

EN3

EN2

EN1

EN0

Автонавантаження

Відключення каналу

Розширений запит

Циклічний пріорітет

CH3

CH2

CH1

CH0

Дозвіл

Рис. 5.47. Формат керуючого слова

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

UF

TC3

TC2

TC1

TC0

Прапорець відновлення

CH3

CH2

CH1

CH0

Дозвіл

Рис. 5.48. Слово стану каналів

За D6(TCS) = 1 поява сигналу ТС в одному з каналів скидає відповідний розряд D3 —D0, внаслідок чого канал від'єднується і його подальша робота можлива після перезавантаження регістра режиму. Якщо D6(TCS) = 0, то поява сигналу ТС не впливає на розряд дозволу роботи каналу і закінчувати передавання має ПВВ припиненням вироблення сигналу DRQ.

Одиничне значення розряду D7(AL) задає режим автозавантаження, в якому працює лише другий канал, використо­вуючи вміст своїх внутрішніх регістрів та внутрішніх регістрів третього каналу. Після передавання даних відповідно до параметрів регістрів другого каналу з появою сигналу ТС вміст регістрів третього каналу автоматично завантажується у регістри другого каналу. При цьому в регістрі стану ка­налів (рис. 5.48) встановлюється у стан логічної одиниці розряд D4(UF) прапорець відновлення. Потім переда­вання даних триває відповідно до нових параметрів регістрів другого каналу, а наприкінці першого циклу прямого досту­пу з новими параметрами прапорець відновлення скидаєть­ся. Режим автозавантаження дає змогу організовувати пов­торні пересилання блоків даних з однаковими або з'єднува­ти кілька блоків з різними параметрами.

Розряди D3D0 слова стану (див. рис. 5.48) встановлю­ються одночасно з появою сигналу ТС відповідного каналу і скидаються сигналом RESET під час читання вмісту регістра станів. Прапорець відновлення UF може бути скинутий, якщо записати логічний нуль у розряді D1 регістра режиму (див. рис. 5.47).

Початкова адреса ОЗП задається записом двох байтів у регістри каналів RG0RG3-

Довжина масиву пам'яті та напрям обміну інфор­мацією між пам'яттю і пристроєм введення-виведеиня задаєть­ся записом двох байтів у лічильники СТ0-СТ3 циклів. Два старших розряди лічильника циклів визначають напрям об­міну в такий спосіб: запис у пам'ять — 01, зчитування з пам'яті — 10, контроль — 00. Комбінація 11 є забороненою.

Інші розряди лічильника ви­значають кількість байтів, що будуть переслані.

Якщо два старших розря­ди лічильника циклів ка­налів установлюють режим контролю VERIFY, то пере­давання даних не відбуваєть­ся, оскільки не генеруються сигнали керування записом і читанням, усі інші функції прямого доступу зберігають­ся. Цей режим може вико­ристовуватися ПВВ для кон­тролю прийнятих даних.

Рис. 5.49. Діаграма станів робо­ти КПДП

Рис. 5.50. Часові діаграми основних сигналів

Роботу КПДП пояснює діаграма станів (рис. 5.49) та часові діаграми основних сигналів (рис. 5.50). Після запису слова режиму в ре­гістр керуючого слова КПДП переходить у холостий стан 51, який триває доти, доки на один з входів КПДП не надійде запит DRQ від зовнішнього пристрою на прямий доступ до пам'яті. Переходячи у етап S0, він виробляє сигнал HRQ і очікує надходження від МП сигналу HLDA. Після надходження сигналу підтвердження HLDA починається цикл обміну. У стані S1 формується сиг­нал AEN для блокування інших пристроїв системи від шин даних і керування, видається код молодших розрядів на ви­ходи А7—А0, а код старших розрядів — на виходи D7 D0. Видавання старших розрядів адреси супроводжується стробом ADSTB для запису їх у зовнішній буферний регістр. У стані S2 формуються сигнали , або , , які визначають напрям обміну та сигнал DACK, що вказує на початок обміну. У стані S3 здійснюється переда­вання даних у ЗП або ПВВ.

Стан S4 завершує цикл прямого доступу. В цьому стані під час передавання останнього байта блока видається сигнал ТС, а після закінчення — сигнал MARK. За потреби узгодження швидкодії ЗП і ПВВ за допомогою сигналу READY між станами S3 і S4 вводиться необхідна кількість станів очікування SW. У режимі контролю перехід у стан SW не дозволяється.

Приклад 5.15. Запрограмувати канал 1 КПДП на режим з фіксова­ними пріоритетами, з від'єднанням каналу після передавання, без автозавантаження і розширеного запису для пересилання по каналу 1 контролера 10 байт із ОЗП з початковою адресою 0000:0700H у пристрій введення. Вхід CS КПДП з'єднати з адресною лінією А4.

Визначимо адреси КПДП. Згідно з даними табл. 5.11, адреса ре­гістра 1 каналу буде 02H, лічильника — 03H, регістра режиму — 08H.

Керуюче слово режиму визначимо відповідно до рис. 5.47.

Програма матиме такий вигляд:

MOV

OUT

MOV

OUT

MOV

OUT

MOV

OUT

MOV

OUT

AL, 42H

08H, AL

AL, 00

02H, AL

AL, 07H

02H, AL

AL, 0AH 03H, AL

AL, 80H

03H, AL

Формування керуючого слова режиму

Запис його в регістр керуючого слова

Молодший байт адреси ОЗП

переслати в регістр каналу 1

Старший байт адреси ОЗП

переслати в регістр каналу 1

Молодший байт числа циклів

переслати в лічильник 1

Задати напрям передавання

читання пам'яті

Стан КПДП можна контролювати читанням вмісту RGA, СТ і 8-роз-рядного регістра стану, спільного для всіх каналів, за допомогою коман­ди IN. Для читання вмісту 16-розрядного регістра використовуються дві команди IN з тією самою адресною частиною, причому спочатку відбувається зчитування молодшого байта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]