Програмування паралельного інтерфейсу.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи
Група:
КН-24

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра САПР Лабораторна робота № 5 з курсу “Системне програмування та операційні системи” на тему: “ Програмування паралельного інтерфейсу ” Виконав: ст. гр. КН-24 Перевірив: Колесник К. К. Львів 2007 МЕТА РОБОТИ Мета роботи – засвоїти основи організації обміну інформацією між ЕОМ і отримати практичнi навики програмування вводу-виводу через паралельний інтерфейс. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Зовнішні інтерфейси ЕОМ В процесі функціонування інформаційно-обчислювальних систем значне місце посідають операції обміну інформацією між ЕОМ та між ЕОМ і зовнішними пристроями. Важливо відмітити, що обмін інформацією між ЕОМ та зовнішними пристроями у більшості випадків зводиться до обміну інформацією між ЕОМ та керуючою ЕОМ (контроллером) зовнішнього пристрою. Тому в лабораторній роботі розглядається узагальнена задача організації і реалізації обміну інформацією між ЕОМ через паралельний інтерфейс. Обмін інформацією між між ЕОМ та зовнішніми пристроями передбачає наявність одного з можливих зовнішніх інтерфейсів – засобів взаємодії. Для ПЕОМ найбільш поширеними є послідовний (RS-232 C) і паралельний інтерфейси, а також USB та SCSI. Зв’язок між внутрішньою системною шиною комп’ютера (PCI, ISA) та входом./виходом зовнішнього інтерфейсу забезпечується за допомогою адаптера – пристрою, який реалізує протокол обміну. Протокол обміну – це сукупність правил та домовленостей (стандартів), які описують та регламентують процедуру обміну інформацією між взаємодіючими об’єктами. Фактично протокол обміну – це сукупність протоколів, які згруповані по певних признаках в багаторівневу ієрахічну структуру. Найбільш повно ця структура представлена семирівневою еталонною моделлю протоколів обміну даними (ISO) [1], яка буде вивчатись у інших курсах. В даній лабораторній роботі охоплюються лише кілька рівнів цієї моделі, які визначають фізичну реалізацію та логічну організацію обміну інформацією. Фізична реалізація зовнішнього інтерфейсу визначає конструктивне виконання роз’ємів, рівні та значення електричних сигналів. Логічна організація визначає відповідність сигналів приймача та передавача, послідовність операцій та сигналів для встановлення зв’язку та обміну інформацією. В сучасних ПЕОМ адаптери послідовного і паралельного інтерфейсів часто інтегровані в системну плату і реалізовані за допомогою контроллера “Південний міст”, який входить до складу чіпсета. Режими адаптера паралельного інтерфейсу Сучасні адаптери паралельного інтерфейсу відповідають вимогам стандарту IEEE 1284 – “Стандартний метод передачі сигналів для двонаправленого паралельного периферійного інтерфейсу для персональних комп’ютерів”. Він забезпечує високу швидкість передачі інформації і зворотню сумісність з більш ранніми версіями та режимами адаптерів паралельного інтерфейсу. Паралельний інтерфейс передбачає використання 25 ліній, які поділяються на лінії даних, лінії стану та лінії керування. Лінії даних використовуються для однонаправленого чи двонаправленого обміну даними. Лінії стану призначені для передачі контроллером присторою в адаптер сигналів, що характеризують стан пристрою. Лінії керування використовуються для передачі контроллеру пристрою керуючих сигналів адаптера. Існує п’ять режимів роботи адаптера паралельного інтерфейсу: Режим сумісності (Centronics, SPP) – стандартний однонаправлений режим передачі восьми бітів даних від ПК до периферійного пристрою з швидкістю до 150 Кб/с (по лініях даних). Режим тетради - двонаправлений напівдуплексний чотирьохбітовий режим обміну з використаннням чотирьох ліній даних для передачі і чотирьох ліній стану для прийому даних (з швидкістю до 80 Кб/с). Режим байта – двонаправлений режим з напівдуплексним використанням восьми ліній даних для передачі і прийому даних (з швидкістю до 150 Кб/с). EPP – режим - вдосконалений паралельний інтерфейс з апаратурно реалізованим швидкісним двонаправленим обміном даними (до 2 Мб/с) на основі “рукопотискання” в межах одного циклу вводу/виводу. ECP – режим – розширений паралельний інтерфейс з апаратурно реалізованим швидкісним двонаправленим обміном даними на основі “рукопотискання” в межах одного циклу вводу/виводу, або з використанням каналу прямого доступу до пам’яті (DMA) без використання прямих операцій вводу/виводу. Цей режим також використовує стиснення даних на основі алгоритму RLE. Сигнали адаптера паралельного інтерфейсу Для з’єднання адаптера паралельного інтерфейсу і периферійних пристроїв використовується три види роз’ємів: 1284 Тип А – 25-контактиний роз’єм (встановлюється на адаптері); 1284 Тип В – 36-контактний роз’єм Centronics (використовується у принтерах); 1284 Тип С – 36-контактний роз’єм аналогічний Centronics, але меншого розміру. Електричні інформаційні та керуючі сигнали на входах/виходах паралельного інтерфейсу відповідають стандартам TTL логіки. Навантажувальна здатність виходів переважно не перевищує одного TTL входу. Для збільшення навантажувальної здатності використовуються буферні мікросхеми. Відповідність сигналів інтерфейсу і контактів роз’ємів для режиму сумісності відображена у таблиці 1. Сукупність ліній інтерфейсу приєднується до певних адресованих програмно доступних апаратних регістрів адаптера які називаються портом. Біти цих регістрів відповідають певним значенням сигналів кожної з ліній. В ПЕОМ може бути до трьох адаптерів паралельного інтерфейсу, кожен з яких містить регістр даних, регістр стану (статусу) і регістр керування. Адаптери позначаються LPT1-LPT3 і адресуються базовою адресою, яка співпадає з адресою регістру даних в операціях вводу/виводу. Зазвичай LPT1 відповідає базова адреса 378h, LPT2 – 278H, LPT3 – 3DCH. Враховуючи те, що базові адреси можуть мінятись, в області даних BIOS записані фактичні базові адреси портів LPT1-LPT3. Базова адреса LPT1 записана в комірці 0040:0008, базова адреса LPT2 - в комірці 0040:000A, а базова адреса LPT3 – в комірці 0040:000С. Адреса регістру стану рівна базовій адресі+1, а адреса регістру керування – базовій адресі+2. В вихідні сигнали на виводах 2-9 відповідають логічним значенням бітів 0-7 регістру даних. Відповіднисть вхідних сигналів на виводах роз’єму і бітів регістру стану відображена у таблиці 2, а відповідність вихідних сигналів на виводах роз’єму і бітів регістру керування – у таблиці 3. Таблиця 1 № виводу адаптера № виводу Centronics Назва сигналу (при обміні з принтером) Напрям Регістр  1 1 Strobe – строб Вихід* Керування  2 2 Data0 – дані, біт 0 Вихід Даних  3 3 Data1 – дані, біт 1 Вихід Даних  4 4 Data2 –дані, біт 2 Вихід Даних  5 5 Data3 – дані, біт 3 Вихід Даних  6 6 Data4 – дані, біт 4 Вихід Даних  7 7 Data5 – дані, біт 5 Вихід Даних  8 8 Data6 – дані, біт 6 Вихід Даних  9 9 Data 7 – дані, біт 7 Вихід Даних  10 10 Ask –прийом байта принтером завершений Вхід Стану  11 11 Busy – зайнято – принтер приймає дані Вхід* Стану  12 12 Paper – відсутність паперу Вхід Стану  13 13 Select – підтвердження вибору принтером Вхід Стану  14 14 Auto line feed – автоматичн.перевід стрічки Вихід* Керування  15 32 Error – помилка Вхід Стану  16 31 Init – іниціація контроллера принтера Вихід Керування  17 36 Select – вибір принтера адаптером Вихід* Керування  18-25 19-30 Ground – земля    - апаратна інвесія сигналу. Таблиця 2 № виводу адаптера № біта регістра Значення активного сигналу   0 Зарезервоване   1 Зарезервоване   2 IRQ  15 3 Error (0 – помилка)  13 4 Select (1 – принтер on-line)  12 5 Paper (1 – відсутність паперу)  10 6 Ask (0 – підтвердження прийому байта)  11 7 Busy (0 – принтер зайнятий)   Таблиця 3 № виводу адаптера № біта регістра Значення активного сигналу   0 Strobe (1 – вивід байта даних)   1 Auto Line Feed (1- автоматичний перевід стрічки)   2 Init (0 – ініціація контроллера принтера)   3 Select (0 – відміна вибору принтера адаптером)   4 Interrupt (1 – переривання від принтера дозволено)   5 Doubly linked I/O (1 – дозвіл двонаправленого режиму)   6 Не використовується   7 Не використовується  Організація вводу/виводу для паралельного інтерфейсу Всі режими стандарту 1284 забезпечують організацію вводу/виводу даних з використанням “рукопотискання”. Протокол “рукопотискання” в інтерфейсі передбачає, що прийом кожної зміни сигналу керування адаптера підтверджується зміною відповідного сигналу стану контроллера і навпаки. Це дає можливість периферійним пристроям керувати часом, потрібним для виконання операції вводу/виводу (синхронізація вводу/виводу), а також формувати цикл стійкої прийомопередачі незалежно від довжини кабеля, яка впливає на час встановлення сигналів. Реалізація “рукопотискання” забезпечується циклічним виконанням такої послідовності кроків: Байт, що виводиться, заноситься в регістр даних адаптера. Перевіряється стан принтера (сигнал Busy) і після встановлення сигналу “Принтер вільний” адаптером встановлюється активне значення сигналу стробу, яке дозволяє прийом нового байта даних контроллером принтера. По закінченню прийому байта, контроллером встановлюється відповідне значення сигналу Ask (прийом байта завершений), прийом якого відтверджується адаптером скиданням активного значення сигналу стробу. Після чого адаптер переходить до першого кроку для виводу нового байта даних. При реалізації такого протоколу синхронний ввід/вивід здійснюється під керуванням центрального процесора, який є ініціатором обміну. При низькій швидкодії периферійних пристроїв це приводить до нераціонального використання процесорного часу (процесор простоює, очікуючи завершення роботи периферійного пристрою). Для усунення цього недоліку використовується асинхронний ввід/вивід в режимі переривання. При цьому процесор ініціює вивід першого байта і переходить до виконання якої-небудь іншої задачі (наприклад обчислення нових значень). По завершенню обробки прийнятого байта контроллер периферійного пристрою встановлює активне значення сигналу Ask, яке викликає апаратне переривання процесора. Процесор переходить у підпрограму обробки переривань і формує сигнали для виводу наступного байта. Таким чином у цьому режимі ініціатором обміну (крім першого байта) є периферійний пристрій. Реалізація обміну інформацією між ЕОМ за допомогою паралельного інтерфесу в режимі тетради При вирішенні багатьох задач виникає необхідність забезпечення двонаправленого обміну інформацією з використанням паралельного інтерфейсу. В даній лабораторній роботі розглядається варіант організації двонаправленого обміну між ПЕОМ з використанням паралельного інтерфейсу в режимі тетради. Для цього використовується кабельне з’єднання роз’ємів паралельного інтерфейсу у відповідності з рис.1. При передачі, байт, що виводиться заноситься потетрадно в молодші розряди регістру даних (D0-D3), а прийом тетрад забезпечується входами інтерфейсу, які забезпечують отримання слова стану (Ask, Paper,Select, Error). Передача байта здійснюється півбайтами з використаннням мультиплексування. Сигнали Strobe та Busy використовуються для керування обміном. Прийомопередача здійснюється в напівдуплексному режимі (одна ПЕОМ передає, інша приймає, а потім вони міняються). Фрагмент програми, який ілюструє можливий варіант реалізації передачі даних, приведений на рис. 2. ЛАБОРАТОРНЕ ЗАВДАННЯ Ознайомтесь з сигналами адаптера паралельного інтерфейсу і організацією обміну даними. Встановіть відповідність сигналів на роз’ємах та значень бітів у регістрах портів. Проведіть ідентифікацію сигналів інтерфейсу. Розробіть протокол обміну інформацією між ПЕОМ через паралельний інтерфейс у режимі тетради. Напишіть програми передачі та прийому даних через паралельний інтерфейс. Відлагодьте програми і проведіть дослідження процесу обміну інформацією. Зробіть висновки щодо особливостей організації обміну даними через паралельний інтерфейс у режимі тетради. Програма відправник: title sender dseg segment buf db 00000010b dseg ends sseg segment stack db 1024 dup(?) sseg ends cseg segment assume ds:dseg,cs:cseg,ss:sseg start: jmp main main: mov ax,dseg mov ds,ax mov ax,40h mov es,ax mov dx,es:[8] call nulreg mov al,buf out dx,al inc dx inc dx mov al,1 out dx,al dec dx l1: in al,dx test al,10000000b jz l1 inc dx mov al,0 out dx,al dec dx l2: in al,dx test al,10000000b jnz l2 call nulreg exit: mov ax,4c00h int 21h nulreg proc near push dx push ax mov ax,0h out dx,ax inc dx out dx,ax inc dx out dx,ax pop ax pop dx ret nulreg endp cseg ends end start Програма прийомник: title receiver dseg segment error db 'error $' turn db ? buf db ? dseg ends sseg segment stack db 256 dup(?) sseg ends cseg segment assume ds:dseg,cs:cseg,ss:sseg start: jmp main main: mov ax,dseg mov ds,ax mov ax,40h mov es,ax mov turn,0 mov dx,es:[8] inc dx in al,dx test al,10000000b jnz l1 inc dx mov al,00000001b out dx,al dec dx in al,dx and al,01111000b shr al,1 shr al,1 shr al,1 call show inc dx mov al,0 out dx,al jmp l1 ; jmp exit exit: mov ax,4c00h int 21h show proc near mov ah,02h mov dl,al int 21h pop ax ret show endp cseg ends end start Висновок На цій лабораторній роботі я засвоїв основи організації обміну інформацією між ЕОМ і отримав практичнi навики програмування вводу-виводу через паралельний інтерфейс.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!