Координація взаємодії із зовнішніми пристроями
Зовнішні пристрої, як правило, працюють асинхронно відносно МП. Наприклад, термінал, що складається із клавіатури й друкувального пристрою, породжує дані при кожному натисканні кнопки й сприймає дані зі швидкістю, обумовленою конструкцією друкуючого механізму. При цьому виникає проблема узгодження моментів спрацьовування зовнішнього пристрою й МП. У протилежному випадку при вводі передача може відбутися в той момент, коли дані ще не готові, а при виводі – коли попередні дані ще не сприйняті пристроєм. Тому взаємодія між зовнішнім пристроєм і МП повина відбуватися за певними правилами, що називаються протоколом взаємодії.
Процес передачі даних між МП і УВВ складається із трьох операцій:
1. Запуск (ініціація) дії в пристрої;
2. Перевірка мікропроцесором готовності порту;
3. Власне передача даних.
Існує три методи організації вводу/виводу:
1. Пуск з боку програми;
2. Пуск з боку пристрою;
3. Загальна схема обміну.
Пуск з боку програми.
При цьому методі сигнали запуску посилаються від МП до пристрою вводу/виводу в моменти часу, які визначає програма. Пристрій реагує на ці сигнали видачею чергового слова в порт вводу або прийомом слова з порту виводу. Після того як пройде час, достатній для завершення дії в пристрої (визначається програмістом при вивченні схеми пристрою) програма може знову звертатися до порту.
На мал. 5.4 наведена схема формування сигналів пуску для МП. Установка тригерів здійснюється тими ж сигналами, які використовувалися на мал. 5.1 для керування передачею даних між МП і відповідним регістром порту.
Рис. 5.4. Схема формування сигналів пуску для МП |
Вихідний сигнал від кожного тригера надходить у пристрій і викликає в ньому виконання дії, наприклад запуск АЦП на перетворення аналогового сигналу. Після завершення дії пристрій подає сигнал скидання відповідного керуючого тригера. Цим забезпечується виконання дії в пристрої.
Пуск з боку пристрою.
При цьому методі організації вводу/виводу дія в пристрої з приводу кожного акту обміну даними ініціюється самим пристроєм. У цьому випадку програма повинна одержувати інформацію про завершення дії в пристрої й про готовність порту до чергової передачі даних. Для цього служить прапор готовності порту, що встановлюється пристроєм і періодично опитується програмою, яка очікує обміну з даним портом.
Для опитування стану одного або групи пристроїв встановлюється допоміжний порт вводу - порт станів. Розряди, що входять у цей порт, характеризують ті або інші умови, що ставляться до групи пристроїв, зокрема стану готовності їхніх портів.
Загальна схема обміну
Якщо об'єднати обидва розглянуті вище методи, то одержуємо загальну схему обміну. В цьому випадку програма ініціює дію в пристрої, і перевіряє готовність порту. На мал.5.5 спільно з мал.5.1 наведена схема загального інтерфейсу, що включає порт стану й порт керування.
Рис. 5.5. Схема порту стану й порту керування в ілюстративному мікропроцесорі |
Порт стану – це порт вводу, через який МП може одержати найбільш важливу інформацію про стан пристрою. Зокрема, неготовність ввідного порту даних визначається бітом «7» (Рис.5.5), а неготовність вивідного порту даних - бітом «0». Обидва ці біта надходять із виходів RS-тригерів. У кожному із цих тригерів встановлюється «1» на час виконання передачі даних між МП і портом, тобто на час, коли порт зайнятий. Цей же стан повідомляє пристрою про необхідність виконати відповідну дію, тобто видати нові дані у випадку порту вводу або прийняти дані у випадку порту виводу. Завершивши дію, пристрій скидає відповідний біт стану, і це говорить МП про готовність порту. Інші 6 бітів стану можуть характеризувати інші можливі ситуації в пристрої.
Порт керування – це вивідний порт, що служить для передачі команд пристрою від МП. Дві із цих команд відповідають бітам 0 і 7 і називаються «активація вводу» і «активація виводу». Призначення цих команд - читання або запис цілого блоку даних. Наприклад, при читанні магнітної стрічки біт «активація вводу» встановлюється в «1» на початку блоку даних і скидається в «0» після того, як під магнітними головками пройдуть всі слова блоку даних.
У пристрої значення цих командних бітів об’єднуються вентилем И с бітами неготовності портів (з виходами RS-тригерів) для того, щоб почати або продовжити виконання дій в пристрої, пов'язаних з актами передачі даних. Так, наприклад, рух стрічки й читання інформації з неї триває, тільки якщо обидва біти «активація вводу» і «неготовність порту» мають значення «1». 6 керуючих бітів, що залишилися, можна використовувати для виконання таких функцій, як «перемотування стрічки», «пропуск блоку», «скидання прапорів помилок» і т.д.
Дата добавления: 2022-02-05; просмотров: 265;