Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Параллельный інтерфейс: LPT-порт

РефератДопомога в написанніДізнатися вартістьмоєї роботи

На відміну від программно-управляемых режимів, описаних вище, зовнішні сигнали ЕРР-порта (як інформаційні, і сигнали квитирования) для кожного циклу обміну формуються апаратно за однією операції записи чи читання в регістр порту. Цикл записи даних складається з таких фаз: 1. Програма виконує цикл записи (IOWR#) до порту 4 (ЕРР Data Port). 2. Адаптер встановлює сигнал Writeff (низький рівень), і… Читати ще >

Параллельный інтерфейс: LPT-порт (реферат, курсова, диплом, контрольна)

Паралельний інтерфейс: LPT-порт Порт паралельного інтерфейсу був у PC для підключення принтера —LP «T-порт (Line PrinTer — порядковий принтер). Адаптер паралельного інтерфейсу є набір регістрів, розміщених у просторі ввода/вывода. Регістри порту адресуються щодо базового адреси порту, стандартними значеннями якого є 386h, 378h і 278h. Порт має зовнішню 8-битную шину даних, 5- битную шину сигналів гніву й 4-битную шину управляючих сигналів. BIOS підтримує чотирьох LPT-портов (LPT1-LPT4) своїм сервісом — перериванням INT 17h, які забезпечують них зв’язку з принтерами по інтерфейсу Centronics. Цим сервісом BIOS здійснює висновок символу, ініціалізацію інтерфейсу і принтера, і навіть опитування стану принтера. Інтерфейс Centronics Поняття Centronics належить як до набору сигналів і протоколу взаємодії, і до 36-контактному розніманню, встановлюваному на принтерах. Призначення сигналів наведено в табл. 1.

Таблиця 1.

Сигнали інтерфейсу Centronics.

|Сигна|I/O*|Контакт |Призначення | |л | | | | |Strob|I |1 |Строб даних. Дані фіксуються по низькому | |e | | |рівню сигналу | |Data |I |2−9 |Лінії даних. Data 0 (контакт 2) — молодший біт| |[0:7]| | | | |Actt |0 |10 |Acknowledge — імпульс підтвердження прийому | | | | |байта (запит приймання наступного). Може | | | | |використовуватися на формування запиту | | | | |переривання | |Busy |0 |11 |Зайнято. Прийом даних можлива лише при | | | | |низький рівень сигналу | |Paper|0 |12 |Високий рівень сигналізує про кінець папери | |End | | | | |Selec|0 |13 |Сигналізує включення принтера | |t | | | | |Auto |I |14 |Автоматичний переклад рядки. | |LF# | | | | |Еггог|0 |32 |Помилка: кінець папери, стан OFF-Line чи | |і | | |внутрішня помилка принтера | |Imt# |I |31 |Ініціалізація | |Slot |I |36 |Вибір принтера (низькому рівні). При високому | |In# | | |рівні принтер сприймати інші | | | | |сигнали інтерфейсу | |GND |- |19−30 33 |Загальний провід інтерфейсу | |* I/O|Зада|Направление|(вход/выход) стосовно принтеру. | | |ет | | |.

Інтерфейс Centronics підтримується більшістю принтерів з паралельним інтерфейсом, його вітчизняним аналогом є інтерфейс ИРПР-М.

Традиційний LPT-порт Традиційний порт SPP (Standard Parallel Port) є однонаправленим портом, з урахуванням якого програмно реалізується протокол обміну Centronics. Порт забезпечує можливість вырабатывания запиту апаратного переривання по імпульсу на вході АСК#. Сигнали порту виводяться на розняття DB-25S (розетка), встановлений безпосередньо на платі адаптера (чи системної платі) чи соединяемый із нею пласким шлейфом. Назва та призначення сигналів розняття порту (табл. 2) відповідають інтерфейсу Centronics.

Таблиця 2.

Розняття стандартного LPT-порта |Контакт |Провід |Призначення | |DB-25S |шлейфу | | | | |I/O* |Reg.Bit** |Сигнал | |1 |1 |0/1 |CR: 0 |Strobe# | |2 |3 |0(1) |DR:0 |Data 0 | |3 |5 |0(1) |DR: 1 |Data 1 | |4 |7 |0(1) |DR: 2 |Data 2 | |5 |9 |0(1) |DR:3 |Data 3 | |6 |11 |0(1) |DR: 4 |Data 4 | |7 |13 |0(1) |DR:5 |Data 5 | |8 |15 |0(1) |DR:6 |Data 6 | |9 |17 |0(1) |DR:7 |Data 7 | |10 |19 |I |SR: 6 |Ack# | |11 |21 |I |SR: 7 |Busy | |12 |23 |I |SR: 5 |PaperEnd | |13 |25 |I |SR: 4 |Select | |14 |2 |0/1 |CR: 1 |Auto LF# | |15 |4 |I |SR: 3 |Error# | |16 |6 |0/1 |CR: 2 |Init# | |17 |8 |0/1 |CR:3 |Select In# | |18−25 |10, 12, 14, |18, 20, 22, 24,|- |- | | |16 |26 | | |.

* I/O задає напрям передачі (вход/выход) сигналу порту; 0/I позначає вихідні лінії, статки зчитується під час читання з відповідних портів виведення. ** Символом «» відзначені инвертированные сигнали (1 в регістрі відповідає низького рівня лінії). *** Вхід Ack# з'єднаний резистором (10 кОм) з харчуванням +5 У. Стандартний порт має три 8-битных регістру, розташованих по сусіднім адресами до просторі ввода/вывода, починаючи з базового адреси порту (BASE). Data Register (DR) — регістр даних, адресу= BASE. Дані, записані цей порт, виводяться у вихідні лінії інтерфейсу. Дані, лічені від цього регістру, залежно від схемотехники адаптера відповідають або раніше записаним даним, або сигналам тих-таки лініях. Status Register (SR) — регістр стану, являє собою 5-битный порт введення сигналів стану принтера (біти SR.4-SR.7), адресу= BASE+1. Биток SR.7 інвертується — низького рівня сигналу відповідає одиничне значенням біта в регістрі, і навпаки. Призначення біт регістру стану (в дужках дано номери контактів розняття): SR.7—Busy — инверсные відображення стану лінії Busy (11); SR.6 —АСК (Acknowledge) — відображення стану лінії Ack# (10). SR.5 —РЄ (Paper End) — відображення стану лінії Paper End (12). SR.4—Select — відображення стану лінії Select (13). Одиничне значення відповідає cигналу включення принтера. SR.3—Error — відображення стану лінії Error (15). SR.2 — PIRQ — прапор переривання за сигналом Ack# (лише порту PS/2). Биток обнуляется, якщо сигнал Ack# викликав апаратне переривання. Одиничне значення встановлюється по апаратному скидання і після прочитання регістру стану. SR[1:0] — зарезервовані. Control Register (CR) — регістр управління, адрес=ВА5Е+2. Як це і регістр даних, цей 4-битный порт виведення допускає запис і читання (біти 0−3), але його вихідний буфер зазвичай має тип відкритий колектор. Це дозволяє більш коректно використовувати лінії даного регістру як вхідні при програмуванні в високий рівень. Біти Про, 1, 3 инвертируются — одиничному значенням в регістрі відповідає низький рівень сигналу, і навпаки. Призначення біт регістру управління: CR[7:6] — зарезервовані. CR.5 — Direction — біт управління напрямом передачі (лише портів PS/2). Запис одиниці переводить порт даних в режим введення. CR.4 —ACKINTEN (Ack Interrupt Enable) — одиничне значення дозволяє переривання по спаду сигналу на лінії Ackff — сигнал запиту наступного байта. CR.3 — Select In — одиничне значення біта відповідає низького рівня на виході Selecting (17) — сигналу, яке дозволяє роботу принтера по інтерфейсу Centronics. CR.2 — Init — нульовий значення біта відповідає низького рівня не вдома Imt# (16) — сигнал апаратного скидання принтера. CR.1 — Auto LF — одиничне значення біта відповідає низького рівня на виході Auto LF# (14) — сигналу на автоматичний переклад рядки (LF — Line Feed) з прийому байта повернення каретки (CR — Carriage Return). CR. O —Strobe — одиничне значення біта відповідає низького рівня на виході Strobeff (1) — сигналу стробирования вихідних даних. Запит апаратного переривання (зазвичай IRQ7 чи IRQ5) виробляється по негативному перепаду сигналу виведенні 10 розняття інтерфейсу (АСК#) при установці CR.4=1. Переривання виробляється, коли принтер підтверджує прийом попереднього байта. Процедура виведення байта по інтерфейсу Centronics через стандартний порт входять такі кроки (в дужках наведено необхідну кількість шинних операцій процесора): Висновок байта в регістр даних (1 цикл IOWR#). Введення з регістру гніву й перевірка готовності устрою (біт SR.7 — сигнал BUSY). По отриманні готовності виведенням у регістр управління встановлюється строб даних, а наступним висновком строб знімається (2 циклу lOWRff). Стандартний порт сильно асиметричний — за наявності 12 ліній (і біт), нормально працівників висновок, на введення працює лише п’ять ліній стану. Якщо необхідна симетрична двунаправленная зв’язок, усім стандартних портах працездатний режим полубайтного обміну — Nibble Mode. У цьому вся режимі, званим ще й Hewlett Packard Bitronics, одночасно передаються 4 біта даних, п’ята лінія використовується для квитирования.

Функції BIOS для LPT-порта BIOS забезпечує підтримку LPT-порта, необхідну організації виведення по інтерфейсу Centronics. У процесі початкового тестування POST BIOS перевіряє наявність паралельних портів за адресами ЗВСЬ, 378h і 278h й поміщає базові адреси виявлених портів в осередки BIOS DATA AREA 0:0408h, 040Ah, 040СП, 040ЕП. Ці осередки зберігають адреси портів з логічними іменами LPT1-LPT4. У осередки 0:0478, 0479, 047А, 047 В заносяться константи, що задають витримку тайм-ауту тих портів. Пошук портів зазвичай ведеться за базовому адресою. Якщо лічений байт збігся з записаним, вважається, що знайдено LPT-порт, та її адресу вміщують у осередок BIOS DATA AREA. Адреса порту LPT4 BIOS самостійно встановити неспроможна, що у списку стандартних адрес пошуку є лише три вищевказаних. Виявлені порти инициализируются — записом в регістр управління формується і знімається сигнал Initff, після чого записується значення 00h, відповідне вихідному стану сигналів інтерфейсу. Програмне переривання BIOS I NT 17h забезпечує такі функції підтримки LPT-порта: 00h — висновок символу з регістру AL за протоколом Centronics. Дані вкладаються у вихідний регістр і після готовності принтера формується строб. 01h — инициализаия інтерфейсу і принтера. 02h — опитування стану принтера. При виклик INT 17h номер функції поставив у регістрі АН, номер порту — в регістрі DX (0 — LPT1, 1 — LPT2…). За повернення після будь-який функції регістр АН містить код стану — біти регістру стану SR[7:3] (біти 6 і трьох інвертовані) і прапор тайм-ауту в бите 0. Прапор тайм-ауту встановлюється при невдалої спробі виведення символа.

Розширення паралельного порта Недостатки стандартного порту частково усувають нові типи портів, що з’явилися в комп’ютерах сімейства PS/2. Двунаправленный порт 1 (Typel parallel port) — інтерфейс, запроваджений із PS/2. Такий порт крім стандартного режиму може працювати у режимі введення чи двунаправленном. Протокол обміну формується програмно, а вказівки напрями передачі у регістр управління порту запроваджено спеціальний біт: при CR.5=0 буфер даних дбає про висновок, при CR.5=1 — на введення. Порт з прямим доступом до пам’яті (Type 3 DMA parallel port) застосовувався у PS/2 моделей 57, 90, 95. Цей тип запроваджено підвищення пропускної спроможністю і розвантаження процесора при виведення на принтер. Програмі, яка з даним портом, вимагалося тільки поставити блок даних у пам’яті, які підлягають висновку, та виведення за протоколом Centronics проводився й без участі процессора.

Фізичний і електричний интерфейс Стандарт IEEE 1284 визначає фізичні характеристики приймачів і передавачів сигналів. До передатчикам пред’являються такі вимоги: Рівні сигналів без навантаження нічого не винні виходити межі -0,5… +5,5 У. Рівні сигналів при струмі навантаження 14 мАЛО не бути нижче +2,4 У для високого рівня (voh) і вище +0,4 У для низького рівня (vol) на постійному струмі. Вихідний імпеданс ro, обмірюваний на разъеме, має становити 50(±)5 Ом на рівні voh-vol. Задля більшої заданого импеданса деяких випадках використовують послідовні резисторы в вихідних ланцюгах передавача. Узгодження импеданса передавача і кабелю знижує рівень імпульсних перешкод. Швидкість наростання (спаду) імпульсу повинна перебувати у межах 0,05−0,4 В/нс. Вимоги до приймачам: Допустимі пікові значення сигналів -2,0…+7,0. Пороги спрацьовування не бути вище 2,0 У (vih) для високого рівня життя та не нижче 0,8 У (vil) для низького. Приймач повинен мати гистерезис не більше 0,2−1,2 У. Вхідний струм мікросхеми ні перевищувати 20 мкА. Вхідні ємність має перевищувати 50 пФ. Стандарт IEEE 1284 визначає три типу використовуваних рознімань. Типи Л (DB- 25) і У (Centronics-36) використовують у традиційних кабелях підключення принтера, тип З — новий малогабаритний 36-контактный розняття. Інтерфейсні кабелі, традиційно використовувані для підключення принтерів, зазвичай мають від 18 до 25 провідників, залежно від кількості провідників ланцюга GND. Стандарт IEEE 1284 регламентує і їхні властивості кабелів: Усі сигнальні лінії повинні прагнути бути перевитими з окремими зворотними (загальними) проводами. Кожна пара повинен мати імпеданс 62(±)6 Ом в частотному діапазоні 4−16 МГц. Рівень перехресних перешкод між парами ні перевищувати 10%. Кабель повинен мати екран (фольгу), покриває щонайменше 85% зовнішньої поверхні. На кінцях кабелю екран може бути окольцован і з'єднаний із контактом розняття. Кабелі, задовольняють наведеним вимогам, маркуються написом IЕЕЕ Std 1284−1994 Compliant". Вони може мати довжину до 10 метров.

Режими передачі данных Стандарт IEEE 1284 визначає п’ять режимів обміну, одна з яких цілком відповідає традиційному стандартному программно-управляемому висновку за протоколом Centronics. Інші режими йдуть на розширення функціональних можливостей та підвищення продуктивності інтерфейсу. Стандарт визначає спосіб узгодження режиму, яким програмне забезпечення може режим, доступний і хосту (у нашій разі це PC), і периферійному влаштуванню. Режими нестандартних портів, що реалізують протокол обміну Centronics апаратно («Fast Centronics, «Parallel Port FIFO Mode»), можуть бути режимами IEE1284, попри його присутність серед них чорт ЕРР і ЕСР. При описі режимів обміну фігурують такі поняття: Хост — комп’ютер, у якого паралельним портом. ПУ — периферійне пристрій, подключаемое до цього порту (може опинитися і інший комп’ютер). позначеннях сигналів Ptr позначає передавальне периферійне пристрій. Прямий канал — канал виведення даних від хоста в ПУ. Зворотний канал канал введення даних в хост з ПУ.

Полубайтный режим введення — Nibble Mode Режим полубайтного обміну є найбільш загальним рішенням завдання двунаправленного обміну даними, оскільки не може працювати усім стандартних (традиційних) портах. Всі ці порти мають 5 ліній введення стану, використовуючи які периферійне пристрій може посилати в PC байт тетрадами (nibble — відкусування, 4 біта) протягом двох прийому. Призначення сигналів порту наведено в табл 4.

Таблиця 4.

Сигнали LPT-порта в полубайтном режимі введення |Конт|Сигнал |I/|Использование сигналу прийому даних в Nibble Mode| |акт |SPP |O | | |14 |AUTOFEE|0 |HostBusy — сигнал квитирования. Низький рівень | | |D# | |означає готовність до прийому тетрады, високий | | | | |підтверджує прийом тетрады | |17 |SELECTI|0 |Високий рівень свідчить про обмін як IEEE 1284| | |N" | |(як SPP рівень низький) | |10 |АСК# | «|PtrClk. Низький рівень означає дійсність | | | | |тетрады, перехід у високий — у відповідь сигнал HostBusy| |11 |BUSY |I |Прийом біта даних 3, потім біта 7 | |12 |РЄ |I |Прийом біта даних 2, потім біта 6 | |13 |SELECT |I |Прийом біта даних 1, потім біта 5 | |15 |ERRORS |I |Прийом біта даних 0, потім біта 4 |.

Прийом байта даних в полубайтном режимі складається з таких фаз: 1. Хост сигналізує про готовність прийому даних установкою низького рівня на лінії HostBusy. 2. ПУ у відповідь поміщає тетраду на вхідні лінії стану. 3. ПУ сигналізує про дійсності тетрады установкою низького рівня на лінії PtrClk. 4. Хост встановлює високий рівень на лінії HostBusy, нагадуючи про зайнятість прийомом і обробкою тетрады. 5. ПУ відповідає установкою високого рівня на лінії PtrCLk. 6. Кроки 1−5 повторюються для другий тетрады. Полубайтный режим дбає про всіх портах зі швидкістю обміну не вище 50 Кбайт/с. Його застосовують у тому випадку, коли прийом даних від устрою виробляється у незначних обсягах (наприклад, для зв’язки України із принтерами). Двунаправленный байтный режим Byte Mode.

Цей режим забезпечує прийом даних із використанням двунаправленного порту, яка має вихідний буфер даних може відключатися установкою біта CR.5=1. Як і стандартному й у полубайтном режимі, даний режим є программно-управляемым — все сигнали квитирования аналізуються і встановлюються програмним драйвером. Призначення сигналів порту наведено в табл. 5.

Таблиця 5.

Сигнали LPT-порта в байтном режимі ввода/вывода |Конт|Сигнал |Ім'я в Byte |I/O|Описание | |акт |SPP |Mode | | | |1 |STROBES|HostClk |0 |Імпульс (низького рівня) підтверджує | | | | | |прийом байта наприкінці кожного циклу | |14 |AUTOFEE|HostBusy |0 |Сигнал квитирования. Низький рівень | | |D# | | |означає готовність хоста прийняти байт,| | | | | |високий рівень встановлюється по | | | | | |прийому байта | |17 |SELECT-|1284Active |0 |Високий рівень свідчить про обмін в | | |IN" | | |режимі IEEE 1284. (У режимі SPP рівень| | | | | |низький) | |16 |INIT# |INIT# |0 |Не використовується, встановлено високий | | | | | |рівень | |10 |АСКй |Ptrtik | |Встановлюється в низький рівень для | | | | | |індикації дійсності даних на | | | | | |лініях DATA[7:0]. У низький рівень | | | | | |встановлюється у відповідь сигнал | | | | | |HostBusy | |11 |BUSY |PtrBusy |I |Стан зайнятості прямого каналу | |12 |РЄ |AckDataReq*|I |Встановлюється ПУ для свідчення про | | | | | |наявність зворотного каналу передачі* | |13 |SELECT |Xflag* |I |Прапор расширяемости* | |15 |ERRORS |DataAvau#* |I |Встановлюється ПУ для свідчення про | | | | | |наявність зворотного каналу передачі* | |2−9 |DATA[7:|DATA[7:0] |I/0|Двунаправленный (прямий і зворотний) | | |0] | | |канал даних |.

Прийом байта даних в байтном режимі складається з таких фаз: 1. Хост сигналізує про готовність прийому даних установкою низького рівня на лінії HostBusy. 2. ПУ у відповідь поміщає байт даних на лінії DATA[7:0]. 3. ПУ сигналізує про дійсності байта установкою низького рівня на лінії PtrClk. 4. Хост встановлює високий рівень на лінії HostBusy, нагадуючи про зайнятість прийомом і обробкою байта. 5. ПУ відповідає установкою високого рівня на лінії PtrClk. 6. Хост підтверджує прийом байта імпульсом HostClk. 7. Кроки 1−6 повторюються кожному за наступного байта. Побайтный режим дозволяє підняти швидкість зворотного каналу до швидкості прямого каналу в стандартному режимі. Проте працювати може лише з двунаправленных портах, що застосовуються лише на маловживаних машинах PS/2. Режим ЕРР Протокол ЕРР (Enhanced Parallel Port — поліпшений паралельний порт) призначений підвищення продуктивності обміну по рівнобіжному порту. ЕРР реалізували в чипсете Intel 386SL (мікросхема 82 360) і використовують як додатковий протокол паралельного порту. Протокол ЕРР забезпечує чотири типи циклів обміну: Цикл записи даних. Цикл читання даних. Цикл записи адреси. Цикл читання адреси. Адресні цикли можна використовувати передачі адресної, канальної і керуючої інформації. Цикли обміну даними явно від адресних циклів застосовуваними стробирующими сигналами. Призначення сигналів порту ЕРР та його зв’язку з сигналами SPP наведені у табл. 6.

Таблиця 6.

Сигнали LPT-порта як ввода/вывода ЕРР |Конта|Сигнал|Имя в |I/|Описание | |кт |SPP |ЕРР |O | | |1 |STROBE|WRITE" |0 |Низький рівень — ознака циклу записи, | | |" | | |високий — читання | |14 |AUTOFE|DATASTB#|0 |Строб даних. Низький рівень | | |EDff | | |встановлюється в циклах передачі | |17 |SELECT|ADDRSTB#|0 |Строб адреси. Низький рівень | | |ING | | |встановлюється в адресних циклах | |16 |INIT# |RESETS |0 |Скидання ПУ (низькому рівні) | |Конта|Сигнал|Имя в |I/|Описание | |кт |SPP |ЕРР |O | | |10 |АСК# |INTR# |I |Переривання від ПУ | |11 |BUSY |WAIT" |I |Сигнал квитирования. Низький рівень | | | | | |дозволяє початок циклу (установку строба в | | | | | |низький рівень), перехід у високий — | | | | | |дозволяє завершення циклу (зняття строба) | |2−9 |D[8:0]|AD[8:0] |I/|Двунаправленная шина адреса/данных | | | | |O | | |12 |РЄ |AckDataR|I |Використовується на розсуд розробника | | | |eq* | |периферії | |13 |SELECT|Xflag* |I |Використовується на розсуд розробника | | | | | |периферії | |15 |ERROR |DataAvai|I |Використовується на розсуд розробника | | | |W* | |периферії |.

ЕРР-порт має розширений набір регістрів (табл. 7), який посідає у просторі ввода/вывода 5−8 суміжних байт.

Таблиця 7.

Регістри ЕРР-порта |Ім'я |Смещен|Режи|R/W|Описание | |регистра|ие |м | | | |SPP Data|+0 |SPP/|W |Регістр даних стандартного порту | |Port | |EPP | | | |SPP |+1 |SPP/|R |Регістр стану стандартного порту | |Status | |EPP | | | |Port | | | | | |SPP |+2 |SPP/|W |Регістр управління стандартного порту | |Control | |EPP | | | |Port | | | | | |EPP |+3 |EPP |R/W|Регистр адреси ЕРР. Читання чи запис до нього | |Address | | | |генерує пов’язаний цикл читання чи записи | |Port | | | |адреси ЕРР | |EPP Data|+4 |EPP |R/W|Регистр даних ЕРР. Читання (запис) | |Port | | | |генерує пов’язаний цикл читання (записи) | | | | | |даних ЕРР | |Not |+5…+|EPP |N/A|В деяких контроллерах можна використовувати| |Defined |7 | | |для 16−32-битных операцій ввода/вывода |.

На відміну від программно-управляемых режимів, описаних вище, зовнішні сигнали ЕРР-порта (як інформаційні, і сигнали квитирования) для кожного циклу обміну формуються апаратно за однією операції записи чи читання в регістр порту. Цикл записи даних складається з таких фаз: 1. Програма виконує цикл записи (IOWR#) до порту 4 (ЕРР Data Port). 2. Адаптер встановлює сигнал Writeff (низький рівень), і такі поміщаються на вихідну шину LPT-порта. 3. При низький рівень WAIT# встановлюється строб даних. 4. Порт чекає підтвердження від ПУ (перекладу WAIT# в високий рівень). 5. Знімається строб даних — зовнішній ЕРР-цикл завершується. 6. Завершується процесорний цикл ввода/вывода. 7. ПУ встановлює низький рівень WAIT#, нагадуючи про можливість початку наступного циклу. Головною відмінністю ЕРР є виконання зовнішньої передачі в певний час самого процесорного циклу ввода/вывода. Це дозволяє досягати високих швидкостей обміну (0,5−2 Мбайт/с). Периферійне пристрій, залучена до рівнобіжному порту ЕРР, може працювати лише на рівні продуктивності устрою, подключаемого через слот ISA. Периферійне пристрій може регулювати тривалість всіх фаз обміну з допомогою всього лише сигналу WAIT#. Протокол автоматично підлаштовується й під довжину кабелю — внесені затримки лише приведуть до подовженню циклу. «ЗАВИСАННЯ» процесора на шинному циклі обміну перешкоджає механізм таймаутов PC, який примусово завершує будь-який цикл обміну, що триває більш 15 мкс. З програмної погляду контролер ЕРР-порта має досить просто (див. табл.7). До трьом регістрам стандартного порту, у яких усунення 0, 1 і 2 щодо базового адреси порту, додано два регістру (ЕРР Address Port і ЕРР Data Port), читання і запис у яких викликає генерацію пов’язаних зовнішніх циклів. Призначення регістрів стандартного порту збережено, що забезпечує сумісність ЕРР-порта з периферійними пристроями і програмним забезпеченням, розрахованими застосування программно-управляемого обміну. Оскільки сигнали квитирования адаптером виробляються апаратно, при запис у регістр управління CR біти 0, 1 і трьох, відповідні сигналам STROBES, AUTOFEEDS і SELECTING, повинен мати нульові значення. У протилежному разі програмне втручання може порушити послідовність квитирования. Деякі адаптери мають спеціальні засоби захисту (ЕРР Protect), включення яких програмна модифікація цих біт блокується. Використання регістру даних ЕРР дозволяє передавати блоку даних із допомогою однієї інструкції REP INSB чи REP OUTSB замість традиційних циклів з інтенсивними операціями ввода/вывода. Деякі адаптери допускають і 16/32-битное звернення до регістру даних ЕРР. Тоді 16- чи 32-битное звернення з адресою регістру даних ЕРР призведе до автоматичної генерації двох або чотирьох шинних циклів по наростаючим адресами, починаючи з усунення 4. Ці цикли робитиметься швидше, ніж те кількість одиночних циклів. Отже, за обміні даними і забезпечується продуктивність, сягала 2 Мбайт/с, цілком достатня й у адаптерів локальних мереж, зовнішніх дисків, стриммеров і CD-ROM. Адресні цикли БРР завжди виконуються лише у однобайтном режимі звернення. Важливою рисою ЕРР і те, що саме звернення процесора до периферійному влаштуванню ввозяться часі. Програмний драйвер завжди здатний спостерігати стан і подавати команди у точно відомі моменти часу. Цикли читання і запис можуть чергуватися в довільному порядку чи блоками. Такий тип обміну найкращий для регистроорієнтованої периферії чи периферії, яка працює часі — мережевих адаптерів, пристроїв збору інформації і управління, дискових пристроїв тощо. п.

Режим ЕСР Протокол ЕСР (Extended Capability Port — порт з розширеними можливостями) запропонували фірми Hewlett Packard і Microsoft як прогресивний режим зв’язки й з периферією типу принтерів і сканерів. Як це і ЕРР, даний протокол забезпечує високопродуктивну двунаправленный обмін даними хоста з периферійними пристроями. Протокол ЕСР в обох напрямках забезпечує два типу циклів: ••• Цикли запису і читання даних. Командні цикли запису і читання. Командні цикли поділяються на два типу: передача канальних адрес і лічильника RLC (Run-Length Count). На відміну від ЕРР разом із протоколом ЕСР відразу з’явився стандарт на програмну (регістрову) модель його реалізації адаптера, викладений в документі «The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard» компанії Microsoft. Документ визначає специфічні властивості реалізації протоколу, не задані стандартом IEEE 1284: компресія даних хост-адаптером методом RLE; ••• буферизация FIFO для прямого й протилежного каналів: застосування DMA і програмного ввода/вывода. Компресія у часі методом RLE (Run-Length Encoding) дозволяє досягти коефіцієнта стискування до 64:1 під час передачі растрових зображень. Канальна адресація ЕСР застосовується для адресації безлічі логічних пристроїв, які входять у одне фізичне. Наприклад, в комбінованому устрої факс/принтер/модем, подключаемом лише до однієї рівнобіжному порту, може бути одночасний прийом факсу і поставив печатку на принтері. Як і інших режимах 1284, протокол ЕСР переопределяет сигнали SPP (табл. 8).

Таблиця 8.

Сигнали LPT-порта як ввода/вывода ЕСР |Конта|Сигнал |Ім'я в ЕСР |I/|Описание | |кт |SPP | |O | | |1 |STROBE" |HortClk |0 |Використовується разом з PeriphAck для | | | | | |передачі у напрямку (висновок) | |14 |AUTOFEED|HostAck |0 |Индицирует тип команда/данные при | | |# | | |передачу напрямку. | | | | | |Використовується разом з PeriphClk для | | | | | |передачі у напрямку | |17 |SELECTIN|1284Active |Про |Високий рівень свідчить про обмін в | | |G | | |режимі IEEE 1284. (У режимі SPP | | | | | |рівень низький) | |16 |INIT# |ReverseRequ|О |Низький рівень переключає канал на | | | |est# | |передачу у напрямі | |10 |ACK# |PeriphClk |I |Використовується разом з HostAck для | | | | | |передачі у напрямку | |11 |BUSY |PeriphAck |1 |Використовується разом з HostClk для | | | | | |передачі у напрямку. | | | | | |Индицирует тип команда/ дані при | | | | | |передачу напрямку | |12 |PE |AckReverse#|I |Перекладається в низький рівень як | | | | | |підтвердження сигналу ReverseRequestff| |13 |SELECT |Xflag* |I |Прапор расширяемости Extensibility flag | |15 |ERROR" |PeriphReque|I |Встановлюється ПУ для свідчення про | | | |st#* | |доступність (наявність) зворотного каналу| | | | | |передачі* | |2−9 |Data[0:7|Data[0:7] |I/|Двунаправленный канал даних | | |] | |O | |.

* Сигнали діють у послідовності узгодження (див. нижче). Адаптер ЕСР теж генерує зовнішні протокольні сигнали квитирования апаратно. Пряма передача даних осіб на зовнішньому інтерфейсі складається з таких кроків: 1. Хост поміщає дані на шину каналу та встановлює ознака циклу даних (високий рівень) чи команди (низький рівень) на лінії HostAck. 2. Хост встановлює низький рівень на лінії HostClk, нагадуючи про дійсність даних. 3. ПУ відповідає установкою високого рівня на лінії PeriphAck. 4. Хост встановлює високий рівень лінії HostClk, і це перепад може використовуватися для фіксації даних в ПУ. 5. ПУ встановлює низький рівень на лінії PeriphAck для свідчення про готовність до прийому наступного байта. Оскільки передачі у ЕСР розділені FIFO-буферами, які можуть опинитися бути присутніми при обох боках інтерфейсу, важливо усвідомлювати, якою етапі дані можна вважати переданими. Дані вважається переданими на кроці 4, коли лінія HostClk перетворюється на високий рівень. Саме тоді модифікуються лічильники переданих і кількість прийнятих байт. Зворотний передача даних складається з таких кроків: 1. Хост затребувана зміна каналу, встановлюючи низький рівень на лінії ReverseRequestff. 2 ПУ дозволяє зміну напрями установкою низького рівня на лінії Ack-Reverse#. 3. ПУ поміщає дані на шину каналу та встановлює ознака циклу даних (високий рівень) чи команди (низький рівень) на лінії PeriphAck. 4. ПУ встановлює низький рівень на лінії PeriphClk, нагадуючи про дійсність даних. 5. Хост відповідає установкою високого рівня на лінії HostAck. 6. ПУ встановлює високий рівень лінії PeriphClk, і це перепад може використовуватися для фіксації даних хостом. 7. Хост встановлює низький рівень на лінії HostAck для свідчення про готовність до прийому наступного байта. Узгодження режимів IEEE 1284 Периферійні влаштування у стандарті IEEE 1284 звичайно вимагає від контролера реалізації всіх режимів, передбачених стандартом. Для визначення режимів і методів управління конкретним пристроєм стандарт передбачає послідовність узгодження (negotiation sequence) для установки необхідного режиму інтерфейсу. Під час фази узгодження контролер виставляє на лінії даних байт расширяемости (Extensibility byte), просячи підтвердження перевести інтерфейсу в необхідний режим чи прийом ідентифікатора периферійного устрою (табл. 11). Ідентифікатор передається контролеру в запрошенном режимі (будь-який режим зворотного каналу, крім ЕРР). ПУ використовує сигнал Xflag (Select в термінах SPP) на утвердження запитаного режиму зворотного каналу, крім полубайтного. Полубайтный режим підтримується усіма пристроями IEEE 1284. Биток Extensibility Link request закладено для механізму визначення додаткових режимів в майбутніх расширениях стандарта.

Таблиця. 11.

Значення біт байта расширяемости.

|Би|Описание |Допустимі комбінації біт| |т | |[7:0] | |7 |Request Extensibility Link — запит для |1000 0000 | | |майбутніх розширень | | |6 |Запит режиму ЕРР |0100 0000 | |5 |Запит режиму ЕСР з RLE |ООН 0000 | |4 |Запит режиму ЕСР Mode без RLE |0001 0000 | |3 |Резерв |0000 1000 | |2 |Запит ідентифікатора устрою з | | | |відповіддю як: | | | |Nibble Mode (полубайтный) |0000 0100 | | |Byte Mode (байтный) |0000 0101 | | |ЕСР без RLE |0001 0100 | | |ЕСР з RLE |0011 0100 | |1 |Резерв |0000 0010 | |0 |Запит Byte Mode |0000 0001 | |No|Запрос Nibble Mode |0000 0000 | |ne| | |.

Последовательность узгодження складається з таких кроків: 1. Хост виводить байт расширяемости на лінії даних. 2. Хост встановлює високий рівень сигналу Selecting і неприйнятно низький — AutoFeedft, що означає початок послідовності узгодження. 3. ПУ 1284 відповість установкою низького рівня сигналу Ackff і високого — Errorft, РЄ і Select. 4. Хост встановлює низький рівень сигналу Strobeff для записи байта расширяемости в ПУ. 5. Хост встановлює високий рівень сигналів Strobeff і AutoFeedff. 6. ПУ відповідає установкою в низький рівень сигналів РЄ і Errorff, коли вона має зворотний канал передачі. Якщо запитаний режим підтримується пристроєм, на лінії Select встановлюється високий рівень, а то й підтримується — низький. 7. ПУ встановлює високий рівень на лінії Ack# для свідчення про завершення послідовності узгодження, після чого контролер встановлює необхідний (і дозволений) режим работы.

Розвиток стандарту IEEE 1284 Крім основної стандарту IEEE 1284, які вже прийнято, нині на стадії доопрацювання перебувають нові стандарти, не що скасовують його, а що визначають додаткових можливостей. До них належать: IEEE P1284.1 «Standard for Information Technology for Transport Independent Printer/Scanner Interface (TIP/SI)». Цей стандарт розробляється для управління і обслуговування сканерів і принтерів з урахуванням протоколу NPAP (Network Printing Alliance Protocol). IEEE P1284.2 «Standard for Test, Measurement and Conformance to IEEE Std. 1284» — стандарт для тестування портів, кабелів і пристроїв на сумісність з IEEE 1284. IEEE P1284.3 «Standard for Interface and Protocol Extensions to IEEE Std- 1284 Compliant Peripheral and Host Adapter Ports» — стандарт на драйвери і використання пристроїв прикладних програмних забезпеченням. IEEE P1284.4 «Standard for Data Delivery and Logical Channels for IEEE Std. 1284 Interfaces». Цей стандарт спрямовано реалізацію пакетного протоколу достовірної передачі через паралельний порт. Вихідною точкою є протокол MLC (Multiple Logical Channels) фірми Hewlett-Packard.

Конфигурирование LPT-портов Управління паралельним портом поділяється на два етапу — попереднє конфигурирование (Setup) апаратних коштів порту і поточне (оперативне) переключення режимів роботи прикладним чи системним ПО. Оперативне переключення можна тільки не більше режимів, дозволених при конфигурировании. Отже забезпечується узгодження апаратури та програмного забезпечення і блокування хибних переключенні, викликаних некоректними діями програми. Спосіб й можливості конфигурирования LPT-портов залежить від її виконання та місця розташування. Порт, розташований на платі розширення (зазвичай на мультикарте), яка встановлюється в слот ISA чи ISA+VLB, зазвичай конфигурируется джамперами самісінькому платі. Порт, розташований на системної платі, зазвичай конфигурируется через BIOS Setup. Конфигурированию підлягають такі параметри: Базовий адресу, що мати значення 3BCh, 378h і 278h. При ініціалізації BIOS перевіряє наявність портів за адресами саме тут порядку і, привласнює виявлених портам логічні імена LPT1, LPT2, LPT3. Адреса 3BCh має адаптер порту, розташований на платі MDA чи HGC. Більшість портів за умовчанням конфигурируется на адресу 378h і може переключатися на 278h. Використовувана лінія запиту переривання: для LPT1 зазвичай використовується IRQ7, для LPT2 — IRQ5. Використання каналу DMA для режимів ЕСР і Fast Centronics — дозвіл номер каналу DMA.

Використання паралельних портов Наиболее поширеним застосуванням LPT-порта є, природно, підключення принтера. Практично всі принтери можуть працювати з портом в режимі SPP, але застосування розширених режимів дає додаткові переваги: Двунаправленный режим (Bi-Di) дає додаткових можливостей для повідомлення гніву й параметрів принтера. Швидкісні режими (Fast Centronics) роблять продуктивність практично будь-якого принтера (особливо лазерного), але можуть зажадати якіснішого кабелю. Режим ЕСР потенційно найефективніший, і вона має системну підтримку у всіх варіантах Windows. З поширених сімейств ЕСР підтримують принтери HP DeskJet моделей BXX, LaserJet починаючи з 4-го, сучасні моделі фірми Lexmark вимагають застосування кабелю по частотним властивостями відповідного IEEE 1284. Найпростіший варіант кабелю підключення принтера — 18-проводный кабель з неперевитыми проводами успішно можна використовувати до роботи порту режимі SPP. Ідеальним варіантом є кабелі, де всі сигнальні лінії перевиті зі спільними проводами і укладено у єдиний екран — те, що вимагає IEEE 1248. Такі кабелі гарантовано працюють на швидкостях до 2 Мбайт/с, і допускається їх довжина до 10 метрів. У табл. 12 наводиться розпаювання кабелю підключення принтера з розніманням XI типу A (DB-25P) із боку PC і Х2 типу У (Centronics-36) чи типу З (мініатюрний) із боку принтера. Таблиця 12. Кабель підключення принтера |XI, розняття PC |Сигнал |X2, |розняття PRN типу У X2, розняття | |типу, А | | |PRN типу З | |1 |-Strobe# |1 |15 | |2 |Data 0 |2 |6 | |3 |Datal |3 |7 | |4 |Data р |4 |8 | |5 |Data3 |5 |9 | |6 |Data 4 |6 |10 | |7 |Data 5 |7 |11 | |8 |Data 6 |8 |12 | |9 |Data 7 |9 |13 | |10 |AckS |10 |3 | |11 |Busy |11 |1 | |12 |PaperEnd |12 |5 | |13 |Select |13 |2 | |14 |Auto LF" |14 |17 | |15 |Error" |32 |4 | |16 |Imt# |31 |14 | |17 |Sict In# |36 |16 | |18 |GND (l) |19 |33 | |19 |GND (2 3) |20 21 |24 25 | |20 |GND (4 5) |22 23 |26 27 | |21 |GND (6 7) |24 25 |28 29 | |22 |GND (8 9) |26 27 |30 31 | |23 |GND (11 15) |29 |19 22 | |24 |GND (10 12 13) |28 |20 21 23 | |25 |GND (14 16 17) |30 |32 34 35 |.

Для зв’язку двох комп’ютерів по рівнобіжному інтерфейсу застосовуються різні варіанти кабелів, залежать від режимів використовуваних портів. Найбільш найпростіший спосіб (і повільний обмін) забезпечує режим полубайтного обміну Nibble Mode, працюючий усім (справних) портах. І тому режиму в кабелі достатньо лиш мати 10 сигнальних і тільки загальний провід. Високошвидкісна зв’язок двох комп’ютерів може виконуватися й у режимі ЕСР (режим ЕРР цих цілей незручний, оскільки вона вимагає синхронізації шинних циклів ввода/вывода двох комп’ютерів). У табл. 13 приведено розпаювання кабелю при цьому режиму. У ньому як допоміжної інформації наведено імена сигналів, які апаратно генеруються адаптерами портів. Той самий кабель можна використовувати й у зв’язку як Byte Mode (при наявності двунаправленных портів). Зв’язок комп’ютерів з допомогою такого кабелю підтримується Windows 95.

Таблиця 13.

Кабель зв’язку PC-PC як ЕСР і Byte Mode |Розняття XI |Розняття Х2 | |Контакт |Ім'я в ЕСР |Ім'я в ЕСР |Контакт | |1 |HostClk |PeriphClk |10 | |14 |HostAck |PeriphAck |11 | |17 |1284Active |+PeriphReques|15 | | | |t# | | |16 |Reverse |AckReverse# |12 | | |Request^ | | | |10 |PeriphClk |HostClk |1 | |11 |PeriphAck |HostAck |14 | |12 |AckReverse# |ReverseReques|16 | | | |t# | | |13 |Xflag |- |- | |15 |PeriphRequest|+284Active |17 | | |f" | | | |2−9 |Data[0:7] |Data [0:7] |2−9 |.

Підключення сканера до LPT-порту ефективно, лише коли порт забезпечує хоча б двунаправленный режим (Bi-Di), оскільки переважно тут використовується введення. Але від використовувати порт ECP, коли цей режим підтримується сканером. Підключення зовнішніх накопичувачів (lomega Zip Drive, CD-ROM), адаптерів ЛВС і інших симетричних пристроїв ввода/вывода має загальну специфіку. Більшість таких пристроїв здатне працювати у будь-якому з режимів порту (зазвичай виключаючи ECP), що забезпечує їх необмежене застосування на будь-яких компьютерах.

Несправності і тестування паралельних портов Тестирование паралельних портів доцільно розпочинати з перевірки їх наявності у системі. Список адрес встановлених портів з’являється в таблиці заставки, виведеної BIOS на екран перед завантаженням ОС. Крім цієї таблиці, список можна поглянути і з допомогою тестових програм або безпосередньо до в BIOS DATA AREA з допомогою будь-якого отладчика. Якщо BIOS виявляє менше портів, ніж встановлено фізично, скоріш всього, будь-яким двом портам присвоєно одну адресу. Програмне тестування порту без діагностичної заглушки (Loop Back) не покаже помилок, оскільки у своїй читаються дані вихідних регістрів, що в усіх конфліктуючих (по окремішності справних портів) збіжаться. Саме таке тестування і виробляє BIOS під час перевірки на наявність портів. Розбиратися з такою ситуацією можна буде послідовно встановлюючи порти і спостерігаючи за адресами, що з’являються у списку. Якщо фізично встановлено лише одне порт та її не виявляє BIOS, то або він відключений при конфигурировании, або ладу швидше за все зза порушень правил підключення. Тестування портів з допомогою діагностичних програм дозволяє перевірити їх вихідні регістри, а під час використання спеціальних заглушек — і вхідні лінії. Оскільки кількість вихідних ліній порту (12) і вхідних (5) різна, то повна перевірка порти допомогою пасивної заглушки принципово неможлива. Різні програми тестування вимагають застосування спеціально ними орієнтованих заглушек (рис. 1),.

[pic].

Рис. 1. Схема заглушки для тестування LPT-порта програмою Checkit Більшість неприємностей під час роботи з LPT-портами доставляють рознімання і кабелі. Для перевірки порту, кабелю і принтера можна скористатися спеціальними тестами з популярних діагностичних програм (Checkit, PCCheck тощо. п.), а можна вивести на принтер будь-якої символьний файл. Якщо висновок файла з погляду DOS проходить (копіювання файла на пристрій безпосередньо з ім'ям LPTn чи PRN швидко минає й успішно), а принтер (справний) не надрукував жодного символу — швидше за все, це обрив (неконтакт в разъеме) ланцюга STROBES. Якщо принтер зі свого індикатору перебуває у стані On Line, a з’являється повідомлення про його неготовності (Not Ready Error), то причину слід шукати в лінії Busy. Якщо принтер спотворює інформацію для друку, може бути обрив (чи замикання) ліній даних. І тут зручно скористатися файлом, що містить послідовність кодів всіх друкованих символів (може бути створити з допомогою простий програми, написаної навіть сухою мовою Basic, — її текст наведено нижче). 10 OPEN «bincod.chr «FOR OUTPUT AS #1 20 FORJ=2T015 30 FOR 1=0 ТЕ 15 40 PRINT#1, CHR$(16*J+I); 50 NEXT I 60 PRINT#1, 70 NEXTJ 80 CLOSE #1 90 END Файл BINCOD. CHR, створений даної програмою, є таблицю всіх друкованих символів (управляючі коди пропущені), розташованих по 16 символів в рядку. Якщо файл друкується з повтором деяких символів чи їх груп, по періодичності повтору можна легко обчислити обірваний провід даних інтерфейсу. Той самий файл зручно використовуватиме перевірки апаратної руссификации принтера. Якщо принтер, підключений на порт, в стандартному режимі (SPP) друкує нормально, а під час переходу на ЕСР починаються збої, слід перевірити кабель — чи він вимогам IEEE 1284. Кабелі з неперевитыми проводами нормально працюють на швидкостях 50−100 Кбайт/с, але за швидкості 1- 2 Мбайт/с, забезпечувана ЕСР, можуть не працювати, особливо в довжині більш 2 метрів. Якщо за установці драйвера РпР-принтера з’явилося повідомлення про потребу використання «двунаправленного кабелю», перевірте наявність зв’язку контакту 17 розняття DB-25 з контактом 36 розняття Centronics. Апаратні переривання від LPT-порта використовуються які завжди. Несправності, пов’язані з ланцюгом переривання від порту, виявляються нечасто. Проте по-справжньому многозадачные ОС (наприклад, сервер NetWare) намагаються працювати з портом саме з прерываниям. Тестувати лінію переривання можна, лише підключивши на порт периферійне пристрій чи спеціальну заглушку.

Паралельний порт і РпР Большинство сучасних периферійних пристроїв, подключаемых до LPT-порту, підтримує стандарт 1284 і функції РпР. Для підтримки цих функцій комп’ютером з апаратної погляду достатньо лиш мати контролер інтерфейсу, підтримуючий стандарт 1284. Робота РпР під'єднане пристрій повинна подати операційній системі всі дані про собі (ідентифікатори виробника, моделі й створили набір підтримуваних команд). Більше розгорнута інформація про побудову може містити ідентифікатор класу, докладний письмо речей та ідентифікатор устрою, з яким забезпечується совместимость.

Показати весь текст
Заповнити форму поточною роботою