Робота в режимі обміну

Після того, як КПДП запрограмовано, він перебуває в холостому стані й очікує надходження запиту на захоплення шин. Як тільки такий запит надійде від будь-якого зовнішнього пристрою (наприклад, DRQ N = 1, тобто від N-того ЗП), контролер виробляє запит на захоплення шин HRQ і надсилає його до мікропроцесора. Той зупиняє свою роботу й відповідає сигналом згоди HLDA. Контролер пересилає сигнал згоди (DACK N 0) М-тому зовнішньому пристрою, котрий надсилав запит, і той приступає до обміну.

Трохи раніше за сигнал DACK контролер виставляє адресу вказаної в програмі першої комірки пам'яті. Молодший байт адреси надходить до ОЗП із виходів А7 - АО звичайним шляхом по шині адреси. Що ж до старшого байта, то він видається з. тходів D7 - DO і потрапляє на ПІД. Щоб вивести його на ША використовується буферний регістр-фіксатор (наприклад, КР580ИР82). Старший байт адреси надходить по ШД на його інформаційні входи та записується за допомогою адресного строба ADSTB, що його виставляє КПДП. Сигналом AEN записана адреса виводиться на інформаційні виходи регістра-фіксатора й по "'ніях А15 - А8 подається на ОЗП1. Одночасно сигналом AEN блокується системний контролер (по його входу BUSEN), щоб той не заважав роботі КПДП.

Одночасно з формуванням адреси контролером виробляються сигнали І/OR і MEMW (при запису із зовнішнього пристрою в пам'ять) або I/OW і MEMR (при запису з пам'яті в зовнішній

1 Звичайно, ця інформація попередньо закладається користувачем у основну програму.

1 Строб AEN подається навіть трохи раніше від ADSTB, щоб заздалегідь відкрити виходи регістра-фіксатора. AEN підтримується на рівні 1 весь час обміну.

пристрій). Якщо ОЗП і ЗП готові до обміну (READY = ]), то відбувається обмін одним байтом. Обмін іде поза мікропроцесором і КПДП безпосередньо по ПІД, до якої підключені як ОЗП. так і ЗП. Цим забезпечується швидкість обміну.

По закінченні обміну байтом лічильник адреси комірки пам'яті інкрементується, а вміст лічильника кількості актів обміну декрементується й акт обміну байтом повторюється. Коли вміст лічильника КПДП стає рівним нулю, видається сигнал закінчення обміну (ТС = 1) і робота КПДП припиняється.

Наступний запит на захоплення шин відновлює процес обміну за тією самою програмою, котра була закладена в контролер при його попередньому програмуванні. Якщо ж бажано щось змінити в програмі, то КПДП слід програмувати знову.

Програмування КПДП

Щоб розпочати програмування, слід подати та зняти сигнал RESET = 1 і подати CS = 0. Цісля цього КПДП входить у режим програмування. При програмуванні керуючими словами має бути надіслана до КПДП така інформація (окремо для кожного каналу):

- початкова адреса масиву в ОЗП;

- об'єм масиву;

- напрямок передачі;

- пріоритети обслуговування каналів;

- ще деяка службова інформація.

Для цього КПДП програмується трьома керуючими словами: словом початкової адреси, масиву та словом режиму.

Початкова адреса масиву є 16-розрядним передається частинами: спочатку молодший байт, потім старший. Запис адреси масиву відбувається за адресою відповідного каналу КПДП. Старші розряди цієї адреси А7 - А4 фіксовані (ними КПДП активізується через дешифратор), молодші задані для відповідного каналу в першій частині табл. 10.2. Так, наприклад, для каналу з нульовим номером КО запис адреси масиву проводиться за адресою A3 - АО = 0000; для К1 A3 - АО = 0010.

однобайтовими словом об'єму

числом. Воно

Таблиця 10.2.

Початкова адреса масива в ОЗП Об'єм масиву
  A3 А2 А1 АО   A3 А2 А1 АО
КО         КО        
К1         К1        
К2         К2        
КЗ         КЗ        

Приклад: Нехай старший напівбайт адреси КПДП А7-А4 = 1111. Треба записати в канал КО початкову адре­су масиву 0415Н. Програма матиме такий вигляд:

MVI А, 15; молодший байт адреси масиву OUT FO; адреса першого керуючого слова КО MVI А,04; старший байт адреси масиву OUT FO; адреса першого керуючого слова КО Об'єм масиву може складати до 16 кбайт. Тому його розмір

описується 14-розрядним числом. Два надлишкових старших біти

використовуються для визначення напрямку передачі: 01-у пам'ять

із ЗП; Ю-з пам'яті до ЗП. Одержане 16-розрядне число також

передається по окремих байтах за адресами, які вказані в другій

частині табл. 10.2.

Необхідно спеціально відмітити, що при запису об'єму масиву

треба вказувати число на одиницю менше за реалі тій об'єм масиву.

Так, наприклад, для запису в ОЗП масиву з п'яти ч*Ісел слід скласти

таку програму:

MVI A.04; молодший байт величини об 'ему OUT F1; адреса другого керуючого слова КО MVI А,40; молодший байт величини об 'ему OUT F1; адреса другого керуючого слова КО Керуюче слово режиму утретє керуюче слово) має таку структуру: DO - D3 - дозвіл на обслуговування запитів на ПДП по каналах.

Одиниця у N-тому розряді означає, що відповідний N-тий канал

задіяний. Якщо ж стоїть нуль, то цей канал не працює, він, як то

кажуть, замаскованний.

D4 визначає пріоритет каналів. При D4 = 0 пріоритети фіксовані

(КО має найвищий пріоритет); при D4 = 1 пріоритети циклічно

змінюються.

D5 = 1 визначає, що тривалість сигналів І/OR та I/OW збільшена для узгодження зі швидкодією зовнішніх пристроїв;

D6 = 1 забороняє роботу каналу по закінченні обміну;

D7 = 1 визначає режим автозавантаження.

Третє керуюче слово записується за адресою A3 - АО = 1000; за цією ж адресою можна прочитати слово стану КПДП. Біти А7 - А4 фіксовані (як і в попередніх випадках).

Так, наприклад, при роботі тільки по каналах КО та К1 (інші канали замасковані), з фіксованими пріоритетами, із забороною роботи по закінченні обміну керуюче слово режиму матиме вигляд 0100 0011-43Н.

Отже, програма запису цього слова буде така:

MVIA,43 OUT F8

Після запису керуючих слів КПДП переходить у холостий стан і очікує на запит на захоплення шин. Одержавши такий запит він переходить у режим обміну (якщо тільки при попередньому обміні його не було заблоковано бітом D6 = 1 керуючого слова режиму).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: