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

Розділ 5 інтерфейс пристроїв введення-виведення

5.1. Функції інтерфейсу введення-виведення

Одним з найважливіших завдань проектування МПС є організація взаємодії із зовнішніми пристроями — джерела­ми і приймачами даних. Прикладами пристроїв введення-виведення (ПВВ), що є як джерелами, так і приймачами інфор­мації, є накопичувачі на гнучких і твердих магнітних дисках. До пристроїв введення належать перемикачі, клавіатура, ана­лого-цифрові перетворювачі (АЦП), датчики двійкової інфор­мації, а до пристроїв виведення — індикатори, світлодіоди, дисплеї, друкувальні пристрої, цифроаналогові перетворювачі (ЦАП), транзисторні ключі, реле, комутатори. Пристрої вве­дення-виведення відрізняються розрядністю даних, швидко­дією, протоколами, тобто визначеним порядком обміну, керу­ючими сигналами. Дані у ПВВ змінюються у довільний або чітко визначений момент часу. З'єднання ПВВ з системною шиною МПС здійснюється за допомогою інтерфейсу введен­ня-виведення, який узгоджує ПВВ з системною шиною МПС. Як правило, інтерфейс складається з одного або кількох портів введення-виведення та схем керування ними.

Під час проектування інтерфейсу введення-виведення тре­ба забезпечити:

• зберігання інформації, яка надходить від ПВВ;

• доступ до інформації з боку МП;

• керування обміном;

• перетворення форматів даних.

Зберігання інформації і доступ до неї з боку МП. Вве­дення і виведення інформації виконується за допомогою портів введення-виведення, які є 8- або 16-розрядними регі­страми зі схемами вибірки та керування читанням-записом. Як порти можуть бути використані буферні регістри, наприк­лад і8282, і8285, КР580ИР82, КР589ИР12, КР580ВВ55. Використання регістра КР580ИР82 для з'єднання відповідно з пристроєм введення та пристроєм виведення показано на рис. 5.1, а і 6.

Рис. 5.1. Використання регістра КР580ИР82 для з'єднання: а - з пристроєм введення; б — з пристроєм виведення

Якщо регістр використовується як порт введення (рис. 5.1, а), то дані від пристрою введення надходять у регістр по лініях D17-D10 і записуються за стробом STB. Вихідні дані DO7DO0 порту надходять у МПС по шині даних. МП формує також сигнал керування читанням і вибіркою порту, який надходить на вхід . Якщо регістр використовується як порт виведення (див. рис. 5.1, б), то дані від МП надходять по шині даних на входи D17-D10 порту та супроводжуються сигналами керування записом і вибірки ВІС. Вихідні дані DO7DO0 порту надходять у пристрій виведення.

Введення або виведення даних можна здійснювати двома способами:

• з використанням окремого адресного простору ПВВ;

• з використанням спільного з пам'яттю адресного про­стору, тобто з відображенням на пам'ять.

У першому випадку введення і виведення даних виконуєть­ся за командами IN та OUT (див. табл. 2.11).

Приклад 5.1. Виконати виведення даних на 16-розрядний порт з адресою 1000Н.

Адреса порту займає два байти, тому для адресації порту слід вико­ристати непряму регістрову адресацію. Для цього треба адресу 1000Н занести у регістр DX, а потім виконати команду виведення:

MOV DX, 1000Н

Занести у DX число 1000Н

OUTDX,AX

Вивести вміст АХ на 16-розрядний порт виведення з адресою, яка знаходиться у DX, тобто АХPI6(DX).

Під час виконання команди OUT DX, АХ на лініях А15 — А0 шини адреси з'являється адреса порту:

А15

А14

А13

А12

А11

А10

А9

А8

А7

А6

А5

А4

А3

А2

А1

А0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

=1000Н

установлюється низький рівень сигналу запису введення-виведеня , і вміст акумулятора АХ передається на 16-розрядну шину даних. Для фіксації даних (умісту АХ) треба використати два 8-розрядних порти, один з яких з'єднаний з молодшою половиною шини даних, а другий — зі старшою. Сигнали керування записом і вибірки подаються пара­лельно на два порти.

Приклад 5.2. Виконати введення даних з 8-розрядного порту з адре­сою 32Н.

Введення даних здійснюється за командою введення:

IN AL, 32Н; AL- Р8(32Н).

Дії МП у цьому випадку аналогічні наведеним у прикладі 5.1. Відмінність полягає лише в тому, що активним стає сигнал читан­ня введення-виведення, і передавання інформації здійснюється від порту до МП по молодшій половині шини даних D7D0.

За другим способом адреси портів розташовуються у спільному з пам'яттю адресному просторі, і звернення до портів не відрізняється від звернення до комірки пам'яті.

Сигнали вибірки ВІС (див. рис. 5.1, б) конкретних портів форму­ються за допомогою дешифраторів. Адреса 16-розрядного порту Р16 має бути парною, щоб звернення до неї відбулося за один цикл шини. Адреси 8-розрядних портів введення-виведення Р8 можуть бути будь-якими (парними, непарними), але за парної адреси 8-розрядні порти слід з'єднати з молодшою половиною шини даних D1D0, а за непар­ної — зі старшою половиною D15 — D8.

Приклад 5.3. Розробити функціональну схему дешифратора (рис. 5.2) на ВІС К155ИД7 для адресації восьми 8-розрядних і восьми 16-розрядних портів, причому адреси 8-розрядних портів обрати не­парними, а адреси 16-розрядних — парними.

Схема містить два ВІС дешифраторів DC1 і DC2. Із виходів де­шифраторів сигнали надходять на входи відповідних портів. Тому ця схема (див. рис. 5.2) дає змогу адресувати 16 портів. Усі вихідні сигнали 0 — 7 ВІС мають Н-рівні, якщо не забезпечене надходження сигналів L-рівня на інверсні входи дозволу Е1 і Е2 та сигналу Н-рівня на вхід ЕЗ. Інакше сигнал на виході DC, двійковий код номера якого визначається кодом на інформаційних входах DC Х2, Х1, Х0, є актив ним, тобто має L-рівень. Сигнали на інших виходах мають Н-рівень. Цей принцип роботи DC дає змогу в будь-який момент роботи МП звер­нутися лише до одного з портів. Визначимо адреси портів.

Рис. 5.2. Функціональна схема дешифратора портів

Низькі рівні на виході DCX з'являються, якщо значення сигналів на адресних лініях А4=1, А0=0, і сигнал вибірки старшого банку . Сигнал на виході 0 DC1 буде активним (L-рівень) для адреси

А15

А14

А13

А12

А11

А10

А9

А8

А7

А6

А5

А4

А3

А2

А1

А0

х

х

х

х

х

х

х

х

х

х

х

0

0

0

0

0

=0010Н,

на виході 1 - для адреси

х

х

х

х

х

х

х

х

х

х

х

1

0

0

1

0

=0012Н,

на виході 2 - для адреси

х

х

х

х

х

х

х

х

х

х

х

1

0

1

0

0

=0014Н,

........................................................................................................................................................

на виході 7 - для адреси

х

х

х

х

х

х

х

х

х

х

х

0

0

0

1

1

=001ЕН

Низькі рівні на виході DC2 з’являються якщо А4=0, А4=1, . Сигнал на виході 0 DC2 буде активним (L-низикий рівень) для адреси

А15

А14

А13

А12

А11

А10

А9

А8

А7

А6

А5

А4

А3

А2

А1

А0

х

х

х

х

х

х

х

х

х

х

х

0

0

0

0

1

=0001Н,

на виході 1 - для адреси

х

х

х

х

х

х

х

х

х

х

х

0

0

0

1

1

=0003Н,

на виході 2 - для адреси

х

х

х

х

х

х

х

х

х

х

х

1

0

1

0

0

=0014Н,

........................................................................................................................................................

на виході 7 - для адреси

х

х

х

х

х

х

х

х

х

х

х

0

1

1

1

1

=001FН

Зазначимо, що 8-розрядні порти з непарними адресами мають бути з'єднаними зі старшою половиною шини даних D15D8.

Керування обміном. Відомо три способи керування обміном:

• програмний обмін;

• обмін з перериванням;

• обмін у режимі прямого доступу до пам'яті.

Програмний обмін ініціюється МП і здійснюється під

його керуванням. Розрізняють простий програмний обмін та програмний обмін за стробом готовності. За простого програмного обміну вважають, що ПВВ у будь-який момент готовий до обміну за командами IN або ОUT. Під час обміну за стробом готовності ПВВ сповіщає про свою готовність до обміну стробом. Наприклад, видача 8-розрядних даних супро­воджується дев'ятим бітом — стробом. У процесі такого обмі­ну схема інтерфейсу містить тригер або порт керування для зберігання інформації про готовність зовнішнього пристрою до обміну. Процесор опитує відповідний розряд порту керу­вання для визначення стану готовності зовнішнього пристрою.

Приклад 5.4. Розробити функціональну схему введення і виведен­ня 8-розрядних даних за стробом готовності. Адреса порту введен­ня — 02H, порту керування — 03H, порту виведення — 04H.

Функціональну схему обміну за стробом готовності зображено на рис. 5.3. Схема містить: пристрій введення, з'єднаний з портом введен­ня; пристрій виведення, з'єднаний з портом виведення; порт керування для зберігання сигналів готовності пристроїв введення і виведення. Пристрій введення має вісім інформаційних вихідних ліній та одну вихідну лінію стробу супроводження даних. Поява цього стробу сигна­лізує про те, що дані на інформаційних лініях є дійсними (коректни­ми). Пристрій виведення має вісім інформаційних вхідних ліній та одну вихідну лінію стробу підтвердження приймання даних. Поява цього стробу сигналізує про те, що дані прийняті пристроєм і МП може передавати нову порцію даних. Порт керування зберігає інфор­мацію про строби від двох пристроїв.

Програма введення за стробом готовності має такий вигляд:

М1:

IN AL, 03

AND AL, 00000001В ;

JZ M1

1N AL, 02 ;

AL порт керування (адреса 03)

Маскування всіх розрядів, крім D0

Якщо D0 = 0 (порт не готовий), то на М1,

інакше — введення інформації з порту введення (адреса 02)

Програма виведення за стробом готовності:

М2:

IN AL,03

AL порт керування (адреса 03)

AND AL, 00000010B

Маскування всіх розрядів, крім D1

JZ M2

Якщо D1=0 (порт не готовий), то на М2

OUT 04, AL

інакше — виведення інформації на порт ; виведення (адреса 04)

Рис. 5.3. Схема введення-виведення даних за стробом готовності

Якщо ПВВ має вбудований апаратний засіб для визначення готовності для обміну, то про стан пристрою свідчить прапо­рець готовності READY або прапорець готовності-зайнятості READY/BUSY. Інформація про готовність пристроїв нале­жить до статусної інформації і входить до складу слова стану пристрою. Іноді стан готовності та зайнятості ідентифікуєть­ся окремими прапорцями — READY і BUSY. Прапорець READY замінює біт порту керування (див. рис. 5.3).

Схему алгоритму програмного обміну даними за значен­ням прапорця READY наведено на рис. 5.4.

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

Рис. 5.4. Алго­ритм програм­ного введення

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

Обмін за перериванням ініціюється ПВВ і здійснюється під керуванням МП. У цьому разі сигнал готовності ПВВ до обміну використовується як запит переривання і надходить до програмованого контролера переривань (ПКП) (рис. 5.5). Введення або виведення здійснюється за підпрограмою об­роблення запиту переривання.

Пристрій введення-виведення формує сигнал готовності IRQ, коли він готовий до обміну. Програмований контролер переривання (див. рис. 5.5) здатний сприйняти 8 сигналів IRQ7IRQ0. На рис. 5.5 сигнал готовності ПВВ надходить на вхід IRQ6. Сигнал готовності ПВВ — це вихідний сигнал тригера, який фіксує стан готовності READY. На виході програмованого контролера переривань асинхронно з діями МП формується сигнал INT. Заздалегідь не відомо, в який мо­мент та які периферійні пристрої ініціюють переривання. Реагуючи на сигнал INT, МП перериває виконання програ­ми, ідентифікує пристрій, переходить до підпрограми обслуговування переривань роботи цього пристрою, а після її за­вершення відновлює виконання перерваної програми. За командою ІNT уміст програмованого лічильника та прапорців автоматично запам'ятовується у стеку. Вміст акумулятора та РЗП треба занести у стек за допомогою команди PUSH у підпрограмі обробки переривання.

У кожному МП реалізовано особливу структуру системи переривань. Однак загальна послідовність обміну за перери­ванням містить такі дії:

• ПВВ генерує сигнал готовності, який викликає появу сиг­налу переривання, що подається на вхід INT МП;

• МП завершує виконання поточної команди і, якщо пере­ривання дозволені (не замасковані), формує сигнал І NT A підтвердження переривання;

• МП здійснює запам'ятовування вмісту акумулятора, про­грамованого лічильника, РЗП у стеку;

• МП ідентифікує пристрій, що зумовив переривання, і ви­конує відповідну підпрограму обслуговування переривання;

• за допомогою команди POP відновлюється значення вмісту акумулятора та РЗП зі стеку;

• за командою повернення з переривання RET, що є остан­ньою командою підпрограми обслуговування переривання, відновлюються значення програмованого лічильника та пра­порців і триває виконання перерваної програми.

Рис. 5.5. Схема обміну за перериванням

Рис. 5.6. Схема обміну в режимі ПДП

Обмін за перериванням продуктивніший, ніж програмний обмін, оскільки не потребує часу для опитування стану готов­ності ПВВ до обміну.

Обмін у режимі прямого доступу до пам'яті іні­ціюється ПВВ, здійснюється під керуванням контролера пря­мого доступу до пам'яті (КПДП) без участі МП. За необхід­ності обміну між ПВВ і пам'яттю немає потреби у пересилан­ні даних через МП. Дані за допомогою КПДП пересилаються безпосередньо з ПВВ у пам'ять або навпаки. Прямий доступ до пам'яті під час виконання операцій введення-виведення дає змогу значно збільшити швидкість передавання даних і підви­щити ефективність використання засобів МП. Схему обміну в режимі ПДП зображено на рис. 5.6. Контролер прямого досту­пу приймає запит від ПВВ, формує сигнал запиту захоплення ший МП HOLD і, отримавши від МП дозвіл HLDA, формує адреси пам'яті та керуючі сигнали , у разі читання пам'яті, або , — у разі запису в па­м'ять.

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

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