Паралельна передача даних - вчися як на парах!

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

У простому контролері ВУ, що забезпечує побайтное передачу даних на зовнішній пристрій (рис. 3.5), в шині зв'язку з ВУ використовуються всього два керуючих сигналу: "Вихідні дані готові" і "Дані прийняті".

Мал. 3.5. Простий паралельний контролер виводу.

ВУ, прийнявши байт даних, керуючим сигналом "Дані прийняті" обнуляє регістр стану контролера. При цьому формуються керуючий сигнал системного інтерфейсу "Готовність ВУ" і ознака готовності ВУ до обміну, що передається в процесор по одній з ліній шини даних системного інтерфейсу за допомогою стандартної операції введення при реалізації програми асинхронного обміну.

Розглянемо на прикладі, яким чином контролер ВУ забезпечує паралельну передачу даних в ВУ під керуванням програми асинхронного обміну. Алгоритм асинхронного обміну в даному випадку передачі простий.

1. Процесор мікроЕОМ перевіряє готовність ВУ до прийому даних.

2. Якщо ВУ готове до прийому даних (в даному випадку це логічний 0 в нульовому розряді регістра А2), то дані передаються з шини даних системного інтерфейсу в регістр даних А1 контролера і далі в ВУ. Інакше повторюється п. 1.

Приклад 2.1. Фрагмент програми передачі байта даних в асинхронному режимі з використанням паралельного контролера ВУ (рис. 3.5). Для написання програми асинхронноїпередачі скористаємося командами процесора 8086.

Вміст регістра AX передаємо в порт A1

Команда в третьому рядку призводить до наступних дій. Процесор перевіряє значення відповідного розряду прийнятих даних. Нуль в цьому розряді вказує на неготовність ВУ до прийому даних і, отже, на необхідність повернення до перевірки вмісту А2, т. Е. Процесор, виконуючи три перші команди, очікує готовності ВУ до прийому даних. Одиниця в цьому розряді підтверджує готовність ВУ і, отже, можливість передачі байта даних.

Блок-схема простого контролера ВУ, що забезпечує побайтное прийом даних з ВУ, наведена на рис. 3.6. У цьому контролері при взаємодії із зовнішнім пристроєм також використовуються два керуючих сигналу: "Дані від ВУ готові" і "Дані прийняті".

Мал. 3.6. Простий паралельний контролер введення

Зовнішній пристрій записує в регістр даних контролера А1 черговий байт даних і керуючим сигналом "Дані від ВУ готові" встановлює в одиницю регістр стану і управління А2.

При цьому формуються: керуючий сигнал системного інтерфейсу "Готовність ВУ"; ознака готовності ВУ до обміну, що передається в процесор по одній з ліній шини даних системного інтерфейсу за допомогою операції введення при реалізації програми асинхронного обміну.

Тим самим контролер сповіщає процесор про готовність даних в регістрі А1. Процесор, виконуючи програму асинхронного обміну, читає байт даних з регістра даних контролера і обнуляє регістр стану і управління А2. При цьому формується керуючий сигнал "Дані прийняті" в шині зв'язку із зовнішнім пристроєм.

Логіка управління контролера і приймачі шин системного інтерфейсу виконують ті ж функції, що і в контролері виведення (див. Рис. 3.5),

Розглянемо роботу паралельного інтерфейсу введення при реалізації програми асинхронного обміну. Алгоритм асинхронного введення так само простий, як і асинхронного виведення.

1. Процесор перевіряє наявність даних в регістрі даних контролера А1.

2. Якщо дані готові (логічна 1 в регістрі А2), то вони передаються з регістра даних А1 на шину даних системного інтерфейсу і далі в регістр процесора або елемент пам'яті мікрокомп'ютера. Інакше повторюється п. 1.

Приклад 2.2. Фрагмент програми прийому байта даних в асинхронному режимі з використанням паралельного інтерфейсу (контролер ВУ, рис. 3.6):

У третьому рядку виконується перевірка вмісту регістра А2, т. Е. Ознаки наявності даних в регістрі даних А1. Команда виконується точно так же, як і в прикладі 2.1. Одиниця в нульовому розряді (вміст регістра А2) підтверджує, що дані від ВУ записані в регістр даних контролера і необхідно переслати їх на шину даних. Нуль в знаковому розряді вказує на неготовність даних від ВУ і, отже, на необхідність повернутися до перевірки готовності.

Як видно з розглянутих прикладів, для прийому або передачі одного байта даних процесору необхідно виконати всього кілька команд, час виконання яких і визначає максимально досяжну швидкість обміну даними при паралельній передачі. Таким чином, при паралельній передачі забезпечується досить висока швидкість обміну даними, яка обмежується тільки швидкодією ВУ.

Записи по темі

Схожі статті