Лабораторная работа №1 (на укр.яз)
скачать (9.9 kb.)
Доступные файлы (1):
Лабораторна_робота _№1.doc | 79kb. | 04.02.2008 09:13 | ![]() |
содержание
- Смотрите также:
- №3 (на укр.яз) [ документ ]
- 01. Лабораторная работа 02. Лабораторная работа 03. Лабораторная работа 04 [ документ ]
- 01. Лабораторная работа 02. Лабораторная работа 03. Лабораторная работа 04 [ документ ]
- №5 (на укр.яз) [ лабораторная работа ]
- №2 (на укр.яз) [ документ ]
- №1 (на укр.яз) [ документ ]
- Проектирование режущего инструмента [ документ ]
- Лабораторные работы по метрологии, стандартизации сертификации [ документ ]
- №3 [ документ ]
- №3 (на укр.яз) [ документ ]
- на VHDL под САПР Active-HDL (на укр.яз.) [ документ ]
- №4 (на укр.яз) [ лабораторная работа ]
Лабораторна_робота _№1.doc
ЛАБОРАТОРНА РОБОТА №1Курс “Інтерфейси”
Тема: “Організація передачі даних за допомогою інтерфейсу “CENTRONICS” для ПЕОМ типу IBM PC”.
Мета роботи: Здійснити односторонній обмін даними між двома ЕОМ за допомогою спеціалізованої нуль-модемної шини.
Основні теоретичні відомості
Паралельний порт ЕОМ IBM PC (LPT-порт) фізично складається з набору регістрів, які в логічній моделі ЕОМ мають свої визначені адреси. Звичайно значення адрес можна одержати переглянувши BIOS системи, або, скориставшись за допомогою різноманітних тестових програм. Можна отримати таку інформацію й програмно. Для цього слід програмно прочитати таблицю базових адрес портів. Таблиця базових адрес портів знаходиться в області даних BIOS, починаючи з комірки 408h: LPT1- 0:408, LPT2-0:40A, LPT3:-0:40C. Якщо порт не встановлений, то у відповідній комірці записаний 0.
Однак для більшості випадків справедливим є наступний розподіл адрес:
Таблиця 1
^ | LPT1 | LPT2 |
Регістр даних: | 378 h | 278 h |
Регістр стану: | 379 h | 279 h |
Регістр управління: | 37А h | 27А h |
Паралельний порт може працювати в одному з наступних режимів: Normal, ECP, EPP. Для режиму Normal, швидкість передачі даних обмежена 150 кБайт/сек при відстані передачі до 3м.
Програмування паралельного порту полягає у записі нулів та одиничок у відповідні регістри при виводі інформації з ЕОМ, та їх зчитування з відповідних регістрів при вводі інформації в ЕОМ від зовнішніх пристроїв. При цьому слід пам'ятати, що виведена інформація залишається у відповідному регістрі порта до наступного виводу, а інформація, яка вводиться - не запам’ятовується в регістрі, і є активною (може бути зчитана) тільки протягом часу дії ввідного сигналу. Перевага застосувань паралельного порта полягає в його широкій розповсюдженості та уніфікації використання. Напрям обміну даними регістрів паралельного порта для режиму Normal наведені в Таблиці 2.
Таблиця 2.
Тип регістру | ^ |
Регістр даних: | Вивід з ЕОМ |
Регістр стану: | Ввід до ЕОМ |
Регістр управління: | Вивід з ЕОМ |
Розподіл, назва та номери виводів регістрів паралельного порта для режиму Normal наведені в Таблиці 3.
Таблиця 3.1
^ | Bіt7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
Назва | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
№ конт. | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
Таблиця 3.2
^ | Bіt7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
Назва | -busy | -ack | pe | slct | -error | 0 | 0 | 0 |
№ конт. | 11 | 10 | 12 | 13 | 15 | x | x | x |
Таблиця 3.3
^ | Bіt7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
Назва | 0 | 0 | 0 | irq en | slckt in | -init | auto lf | strobe |
№ конт. | x | x | x | x | 17 | 16 | 14 | 1 |
Прим. Знак “-“ означає інверсію сигналу. Знак “х” означає відсутність вихідного контакту. Знак “0” означає невикористання даного біту в регістрі.
Як видно з таблиці 3.2 для вводу інформації за допомогою паралельного порту можна використати тільки 5 ввідних ліній, тому байт даних для вводу доцільно розбивати на тетради, з організацією почергової їх передачі. Передачу даних можна організовувати асинхронно або з використанням синхронізуючих (стробуючих) сигналів. Швидкість передачі даних обмежується кількістю можливих записів в порт ( < 300 000 зап./сек.) та довжиною з’єднувальної шини. При невисокій обчислювальній спроможності ЕОМ (платформи на основі процесорів Intel 286, 386, 486) та складності алгоритму передачі/прийому інформації, швидкість передачі може обмежуватись і цими факторами. У випадку реалізації алгоритмів передачі, для забезпечення цілісності даних слід використовувати наступні (один з можливих, або їх комбінацію) прийоми:
Зменшення швидкості передачі даних до значення 100%-ї відсутності помилок передачі;
Організація по блокової передачі даних з передачею контрольної суми для кожного блоку і повтором передачі блоку у випадку неспівпадіння контрольної суми. Розмір блоку та алгоритм передачі вибирається розробником.
Використання надлишкового завадостійкого кодування (коди Хемінга, тощо).
Реалізація алгоритму здійснюється за допомогою будь-яких засобів програмування (Сі, Паскаль, Асемблер) - на вибір.
Слід зазначити, що програмування регістрів програмою користувача прямо допустимо тільки для операційних систем MS DOS, Microsoft Windows -95, -98, -ME. При використанні Microsoft Windows NT, 2000, XP програмування слід здійснювати шляхом викликів API функцій Windows. При передачі даних між двома ЕОМ, логічно, за способом генерації керуючих сигналів можна розглядати одну машину працюючою в ведучому режимі (A) а іншу – в веденому (B).
Перед реалізацією алгоритму слід провести логічний розподіл контактів за функціями. Наприклад, нехай контакти паралельного порту №1 машини А, 378.0…378.3 будуть передавати тетради даних. Для прийому даних виділимо контакти 379.3…379.6 паралельного порту №1 машини В. Строб-сигнал буде генеруватись машиною А (37А.0) і прийматись машиною В (379.7). Напрям передачі даних – від А до В. Приймання даних реалізоване програмно, що значно знижує швидкість обміну.
Один з можливих алгоритмів односторонньої передачі байта даних між двома ЕОМ в такому випадку за допомогою паралельного порту в режимі Normal:
Для машини А:
Розбити байт на старшу і молодшу тетраду.
Виставити на лінію строб-сигналу лог. 0 (можливо подвійної тривалості)
Виставити в канал передачі молодшу половину даних.
Виставити на лінію строб-сигналу лог. 1 (можливо подвійної тривалості)
Виставити на лінію строб-сигналу лог. 0 (можливо подвійної тривалості)
Виставити в канал передачі старшу половину даних.
Виставити на лінію строб-сигналу лог. 1 (можливо подвійної тривалості)
Перейти до пересилки наступного байта.
Для машини В:
Циклічно очікувати приходу лог.0 на лінії строб-сигналу
Циклічно очікувати приходу лог.1 на лінії строб-сигналу
Зчитати з каналу передачі молодшу половину даних.
Циклічно очікувати приходу лог.0 на лінії строб-сигналу
Циклічно очікувати приходу лог.1 на лінії строб-сигналу
Зчитати з каналу передачі старшу половину даних.
Об’єднати старшу і молодшу тетради даних.
Зберегти одержаний байт даних.
При розробці програми слід забезпечити індикацію кількості байтів, переданих по каналу. При цьому зручно користуватись комбінованими способами написання програм (мова високого рівня+вбудований асемблер). Наприклад в середовищі Borland Pascal v.7.0, фрагменти програми які реалізують передачу даних можуть бути реалізовані двоїсто:
// Передача даних
procedure WriteByte1(adr:word; b:byte);
begin
asm
mov dx,adr
mov al,b
out (dx),al
end;
end; // Такий спосіб допустимий і для DELPHI
procedure WriteByte2(adr:word; b:byte);
begin
PORT[adr]:=b;
end;
аналогічно фрагменти для вводу даних будуть мати вигляд:
……………..
asm
mov dx,adr
in al,(dx)
mov b,al
end;
…………… або просто b:=PORT[adr];
^
Варіанти виконання роботи вибираються згідно останньої цифри Q в номері залікової книжки у відповідності до Таблиці 4:
Таблиця 4
Q | Біти рег. даних 378h | Біти рег. прийм. 379h | Формування стробу (ЕОМ) |
1 | d3,d2,d1,d0 | b7,b6,b5,b4 | А |
2 | d0,d1,d2,d3 | b6,b5,b4,b3 | В |
3 | d4,d5,d6,d7 | b4,b5,b6,b7 | А |
4 | d7,d6,d5,d4 | b3,b4,b5,b6 | В |
5 | d6,d5,d4,d3 | b7,b6,b5,b4 | А |
6 | d5,d4,d3,d2 | b6,b5,b4,b3 | В |
7 | d1,d2,d3,d4 | b4,b5,b6,b7 | А |
8 | d2,d3,d4,d5 | b3,b4,b5,b6 | В |
9 | d3,d4,d5,d6 | b7,b6,b5,b4 | А |
10 | d3,d4,d5,d6 | b6,b5,b4,b3 | B |
^
Підготовка до виконання лабораторної роботи включає:
Вибір варіанту завдання у відповідності до Таблиці 4.
Розробку алгоритму передачі даних для машини-передавача (А) та машини приймача (В) даних.
Розподіл контактів паралельних портів для машин А і В.
^
Звіт повинен оформлятись на форматах А4 згідно до загальноприйнятих вимог. Допускається текстову та графічну частини виконувати вручну. Звіт повинен містити:
Вибраний варіант
Текстовий опис алгоритму функціонування програм
Друковану версію тексту програм передачі і прийому інформації.
Блок-схему алгоритму функціонування програм
Висновки
Контрольні питання
Які фактори впливають на швидкодію передачі даних через паралельний порт?
Яким чином збільшити завадостійкість прийому/передачі даних?
У випадку, якщо приймач організований апаратно, яким шляхом можна кардинально збільшити швидкість передачі даних ? (Розробіть спосіб)
Скачать файл (9.9 kb.)