Реферат: Використання інтерфейсу Centronics для керування зовнішніми пристроями
1. Порядок обміну даними через порт принтера (інтерфейсу Centronics)
Для багатьох практичних задач потрібно зв’язати комп’ютер із зовнішніми пристроями. Без цього неможлива ні автоматизація фізичного експерименту, ні комп’ютерне управління технологічними процесами. Зовнішні пристрої можуть бути як стандартними (принтер), так і нестандартними (пристрої для наукових досліджень, крокові двигуни, роботи-маніпулятори). Основне призначення Centronics (аналог ИРПР-М) – це під’єднання до комп’ютера принтерів різних типів. Тому розміщення контактів роз’єму, призначення сигналів та програмні засоби орієнтовані на це застосування. В той же час через Centronics можна керувати й нестандартними зовнішніми пристроями. Перевагами Centronics є стандартність, простота та паралельність (рис.1) та низька ймовірність вивести комп’ютер з ладу (порівняно з ISA). Для зв’язку комп’ютера із зовнішніми пристроями служать порти. Одні порти служать для вводу даних в комп’ютер, а інші - для виводу. Дані в порт записуються і зчитуються по шині даних D0-D7 (8 біт), а для вибору конкретного порту використовується шина адреси A0-A15 (16 біт).
Кабель (25/DB-25S/ - 36)
Рис.1. Ввід-вивід даних через паралельний порт
Фактично паралельний порт складається з трьох 8-бітних портів/ регіcтрів:
1) DR – Data Register, 8 – бітний регістр даних (вивід з комп.)
2) SR - Status Register, 5-бітний регістр стану (ввід)
3) CR – Control Register , 4-бітний регістр контролю (вивід, але можливо ввід)
при цьому DR, CR служать для виводу даних з комп’ютера, а SR – для вводу (табл.1). Кожному біту (розряду) порту принтера фізично відповідає один контакт в роз’ємні. Використовується такі адреси портів принтера: LPT1 ($00378), LPT2 ($00278) і LPT3($003BC). Для більшості комп’ютерів адреси портів принтера (LPT1) в шістнадцятковій системі наступні: DR ($00378); SR ($00379), CR ($0037А), тобто адреса наступного регістра на 1 більша від попереднього, проте адреса першого порта може бути різною. Визначити адресу – в BIOS. Логічній одиниці на розряді паралельного порту відповідає напруга +5В, а логічному нулю – 0 В. Проте, якщо розряд інверсний, то логічній одиниці відповідає 0 В, а логічному нулю – 5В. SR дозволяє зчитувати дані із зовнішніх пристроїв, наприклад цифрові сигнали з різноманітних датчиків. Для SR не використовуються всі розряди, тому розряди вхідних сигналів DI звичайно зчитуються по 4 біти зі зсувом вліво на 3 біти (табл.1). Відповідно після зчитування потрібно програмно зсунути розряди SR7-SR3 вправо на 3 біти (поділити на 8). (рис. DI4-0 – SR7-3 – D4-0)
Таблиця 1. Розряди паралельного порту (піни).
Позначення розрядів (для комп’ютера) | Позначення розрядів (для порту принтера) | Контакт роз’єму на комп’ютері | Контакт роз’єму на принтері |
Ввід (1) / вивід (0); і–інверсія | Розряди вхідних сигналів | |
Port1 | DR0 | D0 | 2 | 2 | 0 | |
DR1 | D1 | 3 | 3 | 0 | ||
DR2 | D2 | 4 | 4 | 0 | ||
DR3 | D3 | 5 | 5 | 0 | ||
DR4 | D4 | 6 | 6 | 0 | ||
DR5 | D5 | 7 | 7 | 0 | ||
DR6 | D6 | 8 | 8 | 0 | ||
DR7 | D7 | 9 | 9 | 0 | ||
Port2 | SR3 | Error | 15 | 32 | 1 | DI0 |
SR4 | Slct | 13 | 13 | 1 | DI1 | |
SR5 | Pe | 12 | 12 | 1 | DI2 | |
SR6 | Ask | 10 | 10 | 1 | DI3 | |
SR7 | Busy | 11 | 11 | 1 / і | DI4 | |
Port3 | CR0 | Strobe | 1 | 1 | 0 / i | |
CR1 | Auto fd | 14 | 14 | 0 / i | ||
CR2 | Init | 16 | 31 | 0 | ||
CR3 | Scltin | 17 | 36 | 0 / i | ||
Земля | Gnd | Gnd | 18 – 25 | 16,17,19-30,33 |
Решту розрядів – заземлення.
Немає сигналів живлення – як перевага.
Непід’єднані контакти – високий рівень
Призначення розрядів порту принтера:
Регістр DR
D0-D7 : 8 – розрядна шина даних, служить для передачі даних з комп’ютера в принтер.
Регістр SR
Error : Помилка
SLCT : Сигнал готовності принтера
PE : Сигнал закінчення паперу
Ask : Підтвердження принтера про прийом даних
Busy : Сигнал зайнятості принтера
Регістр CR
Strobe : Сигнал стробування даних (дозвіл приймати дані, які вже встановлені на шині та виконувати певні дії; передача даних або підготовка – строб (команда на виконання) – пасивний стан)
Auto fd : Сигнал переходу на новий рядок
Init : Ініціалізація принтера (очищення його буфера)
SLCT In : Сигнал принтеру про початок передачі даних
--> ЧИТАТЬ ПОЛНОСТЬЮ <--