Інститут менеджменту та економіки „Галицька Академія”
КУРСОВИЙ ПРОЕКТ
з дисципліни “Системне програмування та операційні системи”
Тема – Розробити програму роботи з паралельним портом, яка дозволяє передати та прийняти через lpt1: текстовий файл (назва файлу та напрям руху даних вказуються в командному як параметри при запуску програми).
Анотація
В курсовому проекті розроблено програму роботи з паралельним портом, яка дозволяє передати та прийняти через LPT1 текстовий файл, назва якого вказується в командному рядку як параметр.
Annotation
The program of work with parallel port, which allows to pass and accept through LPT1 a text file the name of which is specified in a command line as a parameter, is developed in a course project.
Зміст
1. Опис апаратної частини LPT-портів та основних функцій керування ними……..…………………………………………………………………..……5
2. Розробка структури та алгоритмів програмного забезпечення для з’єднання двох комп’ютерів за допомогою LPT-портів………………………………………………………………………………..11
3. Текст програми передачі файлу через LPT-порт……………………………………………………………..……………………....18
Висновки…………………………………………………………………………26
Література………………………………………………………………………..27
Опис апаратної частини LPT-портів та основних функцій керування ними
Нинішні паралельні порти відповідають стандарту IEEE 1284, прийнятому в 94-му році. Він визначає п'ять самостійних режимів роботи: Режим сумісності (Compability Mode) - відповідає режиму SPP. Полубайтний режим (Nibble Mode) - введення байта в два цикли по лініях стану. Працює як і SPP на всіх адаптерах. Байтний режим (Byte Mode) - введення байта цілком по лінії даних. Працює тільки на портах Bi-Di (Bi-Directional) і PS/2 Type 2. Режим EPP (Enchanced Paralel Port) - двонаправлений обмін даними. Сигнали, що управляють, генеруються апаратні під час циклу звернення до порту. Ефективний для підключення пристроїв зовнішньої пам'яті і адаптерів ЛВС.
Режим ECP (Extended Capability Port) - двонаправлений обмін даними з можливістю апаратного стиснення по методу RLE і використання FIFO-буферів і DMA. Сигнали, що управляють, генеруються апаратний. Найбільш ефективний для принтерів і сканерів. Сучасні материнські плати підтримують всі ці режими, тому краще вибирати в BIOS режим ECP+EPP – це повинно забезпечити сумісність зі всіма ПУ, в т.ч. завдяки можливості перемикання режимів в режимі ECP (напр. по запису значення режиму 100 порт перейде в режим EPP, при записі 000 в режим SPP і т.д.).
З’єднання двох ПК через LPT
Підходить для наступних з'єднань: MS-DOS v6.0 InterLink from Microsoft Windows 95 Direct Cable connection from Microsoft Norton Commander v4.0 & v5.0 from Symantec Швидкість роботи в Windows95/98 приблизно 50 Kb/sec
Функціональною відмінністю LPT порту від COM порту є відсутність яких-небудь схем для організації обміну даними. Так, COM порт управляється універсальним асинхронним приемо-передавачем (UART), який виробляє всі необхідні сигнали інтерфейсу при записі в даних в регістр передачі. При роботі з LPT портом в режимі SPP програміст винен сам піклуватися про формування тих або інших сигналів інтерфейсу. Проте LPT порт забезпечує істотно велику швидкість передачі даних в порівнянні з COM портом (у режимі SPP близько 150 Кбит/с).
У режимі SPP зазвичай забезпечується обмін даними між комп'ютером і принтером по інтерфейсу Centronics. У цьому режимі паралельний порт є однонаправленим, тобто для передачі і прийому даних використовуються різні лінії фізичного інтерфейсу. У режимі SPP можлива організація обміну даними півбайтами, тобто за одиницю часу може бути передано 4 бита даних, а посилка 1 байта вимагає двох циклів обміну. Примітка: далі всі номери регістрів відповідають порту LPT1.
Апаратна організація LPT порту
LPT порт має три регістри, за допомогою яких можлива організація обміну даними і управління портом. Регістр передачі (378h) - при записі даних в цей регістр на лініях інтерфейсу Centronics з'являються сигнали, відповідні записаним даним. Приймальний регістр (регістр стану) (379h) служить для прочитування прийнятих даних, а якщо обмін даними організовується з принтером, то цей регістр використовується для отримання стану принтера (відсутність паперу, дозвіл передачі даних, готовність і т.д.). Регістр управління (37Ah) в основному призначений для дозволу і заборони переривань від LPT порту
МАЛ. 1. Розпайка стандартного LPT-LPT кабеля
Стандартний кабель LPT-LPT має распайку, показану на мал. 1 (справа підписані назви ліній для інтерфейсу Centronics). Для передачі даних в регістрі передачі (378h) використовуються біти 0, 1, 2 і 4 (D0, D1, D2, D4). Битий 3 (D3) використовується для підтвердження прийому даних (див. нижчий). У приймальному регістрі битий 7 (D7) є інвертованим значенням бита 4 (D4) регістри передачі. Таким чином можлива організація обміну півбайтами з підтвердженням прийому. При організації обміну даними між двома комп'ютерами схема на мал. 1 ідентична для обох комп'ютерів.
2. Розробка структури та алгоритмів програмного забезпечення для з’єднання двох комп’ютерів за допомогою LPT-портів
Алгоритм обміну даними
Розглянемо алгоритм обміну даними між двома комп'ютерами з підтвердженням. Цей процес показаний у вигляді діаграми на мал. 2. Хай перший комп'ютер буде таким, що передає, а другий - що приймає.
Мал. 2. Схема обміну.
У момент часу t0 (початок передачі) комп'ютер (передавач), що передає, виставляє дані для передачі (записує їх в порт 378h). Причому в кожному циклі обміну записується один півбайт в регістр передачі 378h, битий 3 повинен бути скинутий (= 0). Таким чином значення бітів 0, 1, 2, 3 дані півбайти записуються в біти 0, 1, 2, 4 регістри передачі, а битий 3 регістри передачі рівний 0. У момент часу t1 передавач виставляє сигнал готовності (ACK1), який означає, що дані передані і приймаючий комп'ютер (приймач) може їх рахувати з приймального регістра 379h. Щоб виставити сигнал готовності потрібно в біт