1
AK
Ćw. 9
Przesyłanie równoległe
Cel: Poznanie zasad obsługi urządzenia wejścia-wyjścia na przykładzie łącza równoległego
Sprzęt i oprogramowanie: Komputer PC, układ TLPT, analizator stanów logicznych,
program Vmware Player + obraz dysku z systemem DOS i programem AFD
lub dyskietka z systemem DOS i programem AFD
Zagadnienia:
Przesyłanie równoległe z dwustronnym potwierdzeniem
Łącze LPT
Urządzenia wejścia-wyjścia w systemie operacyjnym
Rozkazy OUT, IN
Kontroler urządzenia wejścia-wyjścia
Literatura
1.
K. Bucholc, Podstawy przesyłania równoległego – dostępne w pliku PDF
2.
P. Metzger, Anatomia PC, Helion, dowolne wydanie, opis łącza LPT
Polecenia
1.
Zapoznaj się z opisem portu równoległego komputera PC.
a.
W jakich trybach może działać łącze LPT?
b.
Uzupełnij rysunek umieszczając na nim brakujące informacje. Przyjmij, że łącze pracuje w trybie
SPP (zwanym także trybem Centronix).
Rys. 1. Połączenie z użyciem LPT
a – wpisz liczbę przesyłanych równolegle bitów i zaznacz kierunek przesyłania
b –wpisz nazwę sygnału, którym komputer wpisuje dane do bufora drukarki
c – wpisz nazwę sygnału, który wskazuje gotowość (lub brak gotowości) drukarki do przyjęcia kolejnego
znaku.
MASA (GND)
DANE (
a
........)
( d ........)
Komputer
Drukarka
lub
inne
urządzenie
( b ........)
( c ........)
2
d – dorysuj i opisz sygnały informujące o stanie drukarki, które Twoim zdaniem są niezbędne do
poprawnego działania układu.
2.
Która para sygnałów pozwala poprawnie sterować przesyłaniem? Czy jest tylko jedna możliwość?
3.
Zaprojektuj układ wyjścia podłączany do portu LPT. Powinien on zawierać rejestr do zapamiętania
danych przychodzących od komputera oraz diody święcące pokazujące stan tego rejestru. Urządzenie
powinno także dostarczać sygnały, których komputer oczekuje od drukarki.
4.
Podłącz do komputera zestaw laboratoryjny do ćwiczeń z łączem równoległym. Czy zawiera on
wszystkie sygnały, które Twoim zdaniem są niezbędne do tego, by urządzenie było widziane przez
komputer jako drukarka?
5.
Ustaw górny i dolny przełącznik w zestawie laboratoryjnym w prawym położeniu.
6.
Ustaw środkowe przełączniki w dolnym położeniu.
7.
Wyślij ciąg znaków z klawiatury komputera do urządzenia korzystając z polecenia copy (wpisanego w
wierszu poleceń).
Np. copy con lpt1
............(tekst)^Z (znak CTRL-Z jest symbolem końca pliku)
Czy wysyłanie powiodło się? Co może być przyczyną złego działania układu?
8.
Ustaw środkowe przełączniki w położeniach oznaczających gotowość urządzenia do odbioru danych.
9.
Wyślij ponownie ciąg znaków z klawiatury komputera do urządzenia.
Czy urządzenie działa zgodnie z oczekiwaniami? Korzystając z tabeli kodu ASCII sprawdź, jaki znak
jest widoczny na wyświetlaczu diodowym.
10.
Poeksperymentuj z urządzeniem wysyłając do niego pojedyncze znaki i całe pliki.
11.
Który z sygnałów można wykorzystać do sygnalizacji niegotowości urządzenia i w ten sposób
wstrzymać wysyłanie do niego kolejnych znaków? Wypróbuj działanie tego sygnału.
12.
Zaprojektuj układ, który po przesłaniu każdego znaku ustawi na czas 1 sekundy sygnał braku gotowości
spowalniając w ten sposób przesyłanie danych.
Wykorzystaj do tego celu przerzutnik monostabilny.
Rys. 2. Przerzutnik monostabilny
Zasadę działania przerzutnika monostabilnego pokazano na rysunku. Sygnał wyzwalający podany na
wejście (np. zmiana stanu z 0 na 1) powoduje wysłanie impulsu na wyjściu. Czas trwania tego impulsu
można regulować dołączając zewnętrzne rezystory i kondensatory.
13.
Przestaw przełączniki górny i dolny w lewe położenie i wypróbuj działanie układu opóźniającego
zastosowanego w zestawie laboratoryjnym.
14.
Zaobserwuj przebiegi w łączu równoległym komputera PC zarejestrowane przy użyciu analizatora
stanów logicznych zapisane w pliku BMP. Wybierz plik, którego nazwa odpowiada ostatniej cyfrze
Twojego numeru indeksu. Korzystając z tabeli kodu ASCII ustal, jakie znaki wysyłał komputer.
Q
A
t
3
Zakładając, ze podziałka (widoczna w postaci cienkich pionowych linii) wynosi 10 mikrosekund zmierz
czas trwania sygnału STR/, czas przesłania jednego znaku i oblicz szybkość transmisji.
15.
Korzystając z analizatora stanów logicznych zaobserwuj przebiegi w łączu.
a.
Skopiuj plik portLTP_0.LPF do katalogu w którym masz prawo pisania
b.
Uruchom analizator
c.
Wczytaj plik portLTP_0.LPF
Rys. 3. Okno analizatora
Powinien pojawić się obraz widoczny na rys.3.
Zwrócimy uwagę na 2 istotne elementy związane z obsługą analizatora
Rys. 4. Sterowanie wyzwalaniem rejestratora
Klikając w kolumnie Edge A można wybrać przy którym zboczu sygnału zostanie wyzwolony rejestrator – rys.4.
Rys. 5. Sterowanie rejestracją
Przyciski pokazane na rys. 5 umożliwiają wybranie jednokrotnego wyzwolenia lub pracy ciągłej.
Wybierz jednokrotne wyzwolenie.
d.
Ustaw przełączniki na płytce TLPT w następujący sposób:
górny i dolny w prawo
BUSY – L, ACK/ - L, PAP –L, ONOF – H, ERR/ -H
e.
Wyślij kilka znaków i zaobserwuj przebiegi
f.
Zmierz odstęp między znakami i oblicz szybkość przesyłania
w tym celu: kliknij w odpowiednim miejscu na ekranie prawym przyciskiem myszy (okno
analizatora) wybierz Place Cursor A, w drugim punkcie pomiaru Place Cursor B.
Wyzwalanie opadającym zboczem sygnału STR/
Jednokrotne
wyzwolenie
Cykliczne
Stop
4
W prawym dolnym rogu ekranu odczytaj zmierzony czas Interval A->B:
g.
Zmień ustawienie górnego przełącznika – Lewo
h.
Wyślij kilka znaków do łącza i zaobserwuj przebiegi na liniach STR/ i BUSY.
Kontroler łącza LPT składa się z 3 rejestrów, do których mamy dostęp przy użyciu rozkazów OUT (zapisywanie)
i IN (czytanie).
Składnia tych rozkazów jest następująca:
OUT DX, AL Do DX wpisujemy adres portu, a do AL 8-bitową daną, którą chcemy wysłać (Rozkaz OUT może
też wysyłać 16-bitowy argument. Wtedy używamy AX. Ale to nie dotyczy portu LPT).
IN AL, DX Do DX wpisujemy adres portu. W AL pojawi się odczytana wartość. Zwróć uwagę, że (nie wiadomo
po co) kolejność argumentów w rozkazach OUT i IN jest różna.
Kontroler urządzenia wejścia-wyjścia zawiera zwykle kilka rejestrów. Za pośrednictwem tych rejestrów
komputer: wysyła i odbiera dane, dowiaduje się o stanie urządzenia, wysyła sygnały sterujące.
Kontroler łącza LPT zawiera 3 rejestry (cały czas pracujemy w trybie SPP): DANYCH, STANU i STERUJĄCY.
Dla łącza LPT1 ich adresy wynoszą odpowiednio 378H, 379H i 37AH.
16.
Korzystając z programu AFD (bez znaczenia wersja 1 lub 2) napisz program, który wysyła do rejestru
danych łącza LPT1 kody ASCII znaków odpowiadające Twoim inicjałom. Zaobserwuj działanie
programu.
17.
Napisz program odczytujący rejestr stanu łącza LPT1 i zinterpretuj odczytany wynik.
18.
Zmień ustawienia przełączników na płytce TLPT i ponownie odczytaj rejestr stanu.
19.
Napisz program wysyłający 1 znak do łącza LPT1. Należy sterować linią STR/. W przypadku
wysokiego stanu na linii BUSY program powinien czekać na gotowość.