- •1. Паралельний і послідовний порти
- •Лабораторна робота №1 Тема: Управління об’ктами за допомогою lpt порта пк.
- •1.1. Паралельний порт
- •1.1.2. Внутрішній пристрій
- •Група даних
- •Група управління
- •Група стану
- •1.1.3. Програмне управління Отримання базової адреси паралельного порту
- •Ввід/вивід даних через паралельний порт
- •Команди принтера і процедури переривань bios
- •Безпосередній доступ до регістрів порту
- •Вага біта
- •Лабораторна робота №2 Тема: Управління об’ктами за допомогою сом порта пк.
- •1.2. Послідовний інтерфейс rs232
- •1.2.1. Послідовна передача даних
- •1.2.2. Роз'єм і кабель порту rs232
- •1.2.3. Внутрішня апаратна конструкція
- •Перетворювачі напруги
- •Базові адреси сом-портів
- •1.2.4. Програмне управління Отримання базової адреси послідовного порту
- •Ініціалізація сом-порта
- •Передача і приймання послідовних даних
- •Передача даних по лініях взаємодії
- •2.4. Експериментальні плати паралельного, послідовного та ігрового портів
- •2.4.1. Експериментальна плата паралельного порту
- •2.4.2. Експериментальна плата послідовного порту
- •3. Програми управління експериментальними платами
- •3.1. Програмне забезпечення для експериментальної плати паралельного порту
- •3.1.1. Опис програми centexp.Pas
- •Текст програми centexp.Pas
- •3.2. Програмне забезпечення для експериментальної плати послідовного порту
- •3.2.1. Опис програми rs232exp.Pas
- •Текст програми rs232exrpas
- •Лабораторна робота №3 Тема: Управління об’ктами за допомогою usb порта пк.
- •Функція
- •Механізм передачі даних
1.1.2. Внутрішній пристрій
Загальна схема паралельного порту всередині ПК наведена на рис. 2.
Восьмибітові дані заносяться в DD1 під час запису в регістр за адресою (базова адреса + 0).
Операція здійснюється командою WRITE_DATA.
Рис. 2. Загальна схема паралельного порту
Ці дані утворюють групу. Вони зчитуються комп'ютером з того ж регістра через DD2 за допомогою команди READ_DATA. Під час читання вихід DD1 повинен мати високий рівень опору, що досягається подачею на контакт 1 (вихід дозволений) DD1 високого рівня напруги. Шестибітове управляюче слово записується в DD3 через регістр за адресою (базова адреса + 2) за допомогою команди WRITE_CONTROL. Біти з 0 по 3 подаються на вихід роз'єму і утворюють групу управління. Деякі біти інвертуються мікросхемами з відкритими колекторами на виході (DD6 і DD7). Всі вихідні лінії підключені до живлення +5 В через резистори 4,7 кОм. Стан цих ліній зчитується через регістр за адресою (базова адреса + 2) через DD4 за допомогою команди READ_CONТROL. Четвертий біт управляючого байта вирішує переривання, а п'ятий біт відкриває або закриває вихід DD1. Стан п'яти контактів роз'єму порта (група стану) комп'ютер зчитує через DD4 за допомогою команди READ_STATUS через регістр за адресою (базова адреса + 1). Входи лінії підключені до живлення +5 В через резистори 4,7 кОм, два входи інвертуються.
У перших моделях IBM РС контакт «вихід дозволений» DD1 з'єднувався з «землею» для постійного відкриття виходів. Це була однонаправлена версія паралельного порту. Починаючи з IBM PS/2, вказаний контакт з'єднали з п'ятим бітом регістра управління DD3 (рис. 2), і порт став двонаправленим. Слід зазначити, що багато паралельних портів, що поставляються з вбудованими картами вводу/виводу, двонаправлені. Для будь-якого контакту слід уникати короткого замикання і/або з'єднання з шиною живлення. Швидкість передачі даних через паралельний порт не перевищує 1 Мб/с.
Контакти паралельного порту утворюють три групи; даних, управління і стану. На рис. 3 наведена логічна структура паралельного порту.
Рис. 3. Логічна структура паралельного порту
Група даних
Посилає дані від ПК на зовнішні пристрої. Має вісім вихідних ліній і асоціюється з байтом в адресному просторі вводу/виводу процесорів х86.
Адреса: базова адреса.
Група управління
Контролює зовнішній пристрій. Має чотири інвертовані вихідні лінії (STROBE, LF/CR, SUN і INITIALIZE).
Адреса групи управління: базова адреса + 2.
Група стану
Група може використовуватися комп'ютером для отримання поточнекучого стану зовнішнього пристрою, її адреса: базова адреса + 1.
Має п'ять ліній (ERROR, SLCT, РЕ, АСК і BUSY). Лінії ERROR і АСК інвертовані, інші - ні.
Призначення регістрів паралельного порту наведені в таблиці 2.
Таблиця 2.
Призначення регістрів паралельного порту
Група даних | |
Біти 0-7 |
Біти від 0 до 7, біт 0 - молодший |
Група управління | |
Біт 0 (STROBE) |
Строб-імпульс даних. Дані фіксуються по низькому рівню сигналу |
Біт 1 (LF/CR) |
Автоматичне переведення рядка. При низькому рівні принтер, отримавши символ CR (Carriage Return - повернення каретки), автоматично виконує і функцію LF (Line Feed - переведення рядка) |
Біт 2 (INITIALIZE) |
Ініціалізація принтера. При низькому рівні відновлюються параметри, прийняті за замовчуванням, каретка повертається на початок рядка |
Біт 3 (SUN) |
Вибір принтера. При високому рівні принтер нечутливий до решти сигналів інтерфейсу |
Біт 4 (IRQ) |
Дозвіл апаратних переривань. При високому рівні дозволяється переривання по спаданню сигналу на лінії (АСК) - сигналу запиту наступного байта |
Біт 5 (Data I/O) |
Управління напрямом передачі (для PS/2 і вище). Запис одиниці переводить порт в режим вводу. При читанні стан біта не визначений |
Біти 6, 7 |
Не використовуються |
Група стану | |
Біти 0-2 |
Не використовуються |
Біт 4 (SLCT) |
Помилка. Низький рівень свідчить про те, що папір закінчився, про стан off-line або про внутрішню помилку принтера |
Біт 5(РЕ) |
Вибір принтера. Високий рівень показує, що принтер ввімкнений і готовий до роботи |
Біт 6 (АСК) |
Немає паперу. Високий рівень означає, що папір закінчився |
Біт 7 (BUSY) |
Імпульс підтвердження приймання байта (низьким рівнем) і запит на приймання наступного. Може використовуватися для формування запиту на переривання |
Біти 0-2 |
Принтер зайнятий. Приймання даних можливе лише при низькому рівні сигналу |
Базові адреси портів LPT1 і LPT2 наступні:
LPT1: 956 (3BCh) або 888 (378h)
LPT2: 632 (278h)
Базова адреса для LPT1 залежить від конфігурації обладнання комп'ютера.
Існує два способи отримання базової адреси: перевірка конфігурації обладнання комп'ютера або знаходження адреси безпосередньо з призначених для користувача програм за допомогою засобів, що пропонуються базовою системою вводу/виводу (BIOS) комп'ютера. При ввімкненні або перезавантаженні комп'ютера BIOS перевіряє наявність паралельних портів. Якщо вони виявляються, їх базові адреси (двобайтові слова) поміщаються в певні елементи пам'яті ОЗП. Для LPT1 це комірки 0000h:0408h і 0000h:0409h. Перша містить молодший, друга - старший байт адреси. Базову адресу LPT1 можна отримати, прочитавши вміст цих комірок. Елементи пам'яті для портів LPT1 - LPT4 наведені нижче:
LPT1: 0000:0408h - 0000:0409h
LPT2: 0000:040Ah - 0000:040Bh
LPT3: 0000:040Ch - 0000:040Dh
LPT4: 0000:040Eh - 0000:040Fh
Крім того, використовується ще один елемент пам'яті: 0000:4011h. Він містить зведення про загальну кількість паралельних портів, що встановлені на комп'ютері. Ця інформація зберігається в бітах 6 і 7:
біт 7 = 0, біт 6 = 0 паралельних портів не встановлено
біт 7 = 0, біт 6=1 встановлений один паралельний порт
біт 7=1, біт 6 = 0 встановлено два паралельні порти
біт 7=1, біт 6 = 1 встановлено три паралельні порти