Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
la_para.DOC
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
88.58 Кб
Скачать

2.4. Організація вводу/виводу для паралельного інтерфейсу

Всі режими стандарту 1284 забезпечують організацію вводу/виводу даних з використанням “рукопотискання”. Протокол “рукопотискання” в інтерфейсі передбачає, що прийом кожної зміни сигналу керування адаптера підтверджується зміною відповідного сигналу стану контроллера і навпаки. Це дає можливість периферійним пристроям керувати часом, потрібним для виконання операції вводу/виводу (синхронізація вводу/виводу), а також формувати цикл стійкої прийомопередачі незалежно від довжини кабеля, яка впливає на час встановлення сигналів.

Реалізація “рукопотискання” забезпечується циклічним виконанням такої послідовності кроків:

Байт, що виводиться, заноситься в регістр даних адаптера.

Перевіряється стан принтера (сигнал Busy) і після встановлення сигналу “Принтер вільний” адаптером встановлюється активне значення сигналу стробу, яке дозволяє прийом нового байта даних контроллером принтера.

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

Після чого адаптер переходить до першого кроку для виводу нового байта даних.

При реалізації такого протоколу синхронний ввід/вивід здійснюється під керуванням центрального процесора, який є ініціатором обміну. При низькій швидкодії периферійних пристроїв це приводить до нераціонального використання процесорного часу (процесор простоює, очікуючи завершення роботи периферійного пристрою). Для усунення цього недоліку використовується асинхронний ввід/вивід в режимі переривання. При цьому процесор ініціює вивід першого байта і переходить до виконання якої-небудь іншої задачі (наприклад обчислення нових значень). По завершенню обробки прийнятого байта контроллер периферійного пристрою встановлює активне значення сигналу Ask, яке викликає апаратне переривання процесора. Процесор переходить у підпрограму обробки переривань і формує сигнали для виводу наступного байта. Таким чином у цьому режимі ініціатором обміну (крім першого байта) є периферійний пристрій.

2.5. Реалізація обміну інформацією між еом за допомогою паралельного інтерфесу в режимі тетради

При вирішенні багатьох задач виникає необхідність забезпечення двонаправленого обміну інформацією з використанням паралельного інтерфейсу. В даній лабораторній роботі розглядається варіант організації двонаправленого обміну між ПЕОМ з використанням паралельного інтерфейсу в режимі тетради. Для цього використовується кабельне з’єднання роз’ємів паралельного інтерфейсу у відповідності з рис.1. При передачі, байт, що виводиться заноситься потетрадно в молодші розряди регістру даних (D0-D3), а прийом тетрад забезпечується входами інтерфейсу, які забезпечують отримання слова стану (Ask, Paper,Select, Error). Передача байта здійснюється півбайтами з використаннням мультиплексування. Сигнали Strobe та Busy використовуються для керування обміном. Прийомопередача здійснюється в напівдуплексному режимі (одна ПЕОМ передає, інша приймає, а потім вони міняються). Фрагмент програми, який ілюструє можливий варіант реалізації передачі даних, приведений на рис. 2.

D7

D6

D5

D4

D3

D2

D1

D0

D3

D2

D1

D0

Ask

Paper

Select

Error

Strobe

Busy

Рис. 1. Кабельне з’єднання роз’ємів паралельного інтерфейсу для режиму тетради.

mov si,0

mov ax,40h ; занесення адреси LPT1 в регістр dx

mov es,ax

mov dx,es:[8]

c1: mov al,buf[si]

out dx,al ; занесення байта в регістр даних

inc dx

inc dx

mov al,13 ; формування строба (вивід керуючого слова)

out dx,al

dec al

out dx,al

dec dx ; ввід і аналіз слова стану

c2: in al,dx

test al,01000b

jz error

test al,80h

jz c2

inc si

dec dx

jmp c1

Рис.2. Фрагмент програми передачі даних.

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