Porty szeregowe(1)


  1. CEL ĆWICZENIA.

Celem ćwiczenia jest zapoznanie się z budową i zasadą działania portu szeregowego oraz poznanie budowy przewodu modemu zerowego, a także sposobów łączenia dwóch komputerów za pomocą łącza szeregowego w celu transmisji danych i stworzenia mini-sieci.

  1. PODSTAWY TEORETYCZNE.

Budowa i zasada działania portu szeregowego

RS-232C jest określeniem powstałego w USA standardu przesyłania informacji między urządzeniami za pośrednictwem łącza szeregowego. Standard ten definiuje parametry mechaniczne, elektryczne i logiczne łącza.

Standard RS-232C dotyczy wymiany danych pomiędzy tzw. terminalem (ang. DTE,

Data Terminal Equipment) a modemem (ang. DCE, Data Communication Equipment).

Powstał on dla potrzeb ujednolicenia komunikacji między końcówką komputerową,

a dużym komputerem (host) przy użyciu łącz telefonicznych i modemów. Pod pojęciem

DTE rozumiemy dziś jednak głównie komputery PC, w przypadku których ma miejsce implementacja zaleceń standardu CCITT (Coniité Consultatf International Télégraphi­que et Téléphonique — Międzynarodowy Komitet Konsultacyjny do Spraw Telefonii i Telegrafii) o nazwie V.24. Nie jest to jednak kompletne złącze V.24, a jedynie jego część, w której wykorzystywane są tylko niektóre sygnały. Zalecenie CCITT definiuje na jednym łączu dwa porty szeregowe (dwa wejścia i dwa wyjścia), natomiast w PC używany jest tylko jeden. Wykorzystana jest tu jedynie ogólna specyfikacja złącza V.24.

Połączenie interfejsów RS-232C od strony mechanicznej stanowi 25-żyłowy przewód zakończony zdefiniowanymi przez standard wtykami. Większość z 25 linii przeznaczo­na została dla potrzeb szeregowej transmisji synchronicznej. W standardzie IBM PC wykorzystywane jest tylko 9 z tych sygnałów, dlatego też często zamiast wtyku 25-końcówkowego (DB-25) stosuje się wtyk 9-końcówkowy DB-9. Ta liczba linii w zupełności wystarcza do obsłużenia transmisji asynchronicznej w standardzie RS-232C.

0x08 graphic
0x08 graphic

9 - pinowy wtyk DB - 9 25 - pinowy wtyk DB - 25

W poniższej tabeli zostały przedstawione ważniejsze wyprowadzenia wraz z ich opisami:

Pin
(gniazdo 25pin)

Pin
(gniazdo 9pin)

Nazwa

Typ

...znaczy...

2
3
4
5
6
8
20
22
1,7

3
2
7
8
6
1
4
9
5

TxD
RxD
RTS
CTS
DSR
DCD
DTR
RI
GND

OUT
IN
OUT
IN
IN
IN
OUT
IN
GND

dane nadawane
dane odbierane
żądanie nadawania
gotowość nadawania
gotowość wysyłania
carrier detect
terminal ready
ring indicator
masa

Łącze szeregowe może teoretycznie pracować w jednym z trzech trybów: simpleksowym, półdupleksowym i dupleksowym.

Tryb simpleksowy

Łącze skonfigurowane jest na stałe na jeden z możliwych kierunków transmisji: DTE DCE lub DCE DTE. Rozpatrzmy dla przykładu pierwszą z tych możliwości. DTE wykorzystuje wówczas wyłącznie linię TxD, zaś linia RxD nie jest podłączona. Modem (DCE) nie bierze pod uwagę stanu sygnału RTS, bądź też sygnał ten jest utrzymywany przez DTE stale w stanie aktywnym. Podobnie, komputer (DTE) nie uwzględnia sygnału CTS od modemu (DCE) lub tez modem utrzymuje ten sygnał na poziomie aktywnym przez cały czas trwania połączenia. Sygnał DCD modemu z założenia nigdy nie może być aktywny. Sygnał DSR jest albo stale aktywny, albo aktywowany w momencie na­wiązania kontaktu z korespondentem (drugim modemem). DTE (komputer) może przez sygnał DTR zgłaszać swoją gotowość modemowi (DCE); w rozwiązaniach praktycz­nych sygnał ten włącza i wyłącza modem. Linia RI z oczywistych względów nie ma tutaj znaczenia.

Tryb półdupleksowy

W trybie tym zarówno DTE, jak i DCE mogą być stroną nadającą oraz odbierającą, jednak do dyspozycji jest tylko jeden logiczny kanał danych, który można naprzemien­nie wykorzystywać w obydwu kierunkach. Wyjścia TxD każdego z urządzeń połączone są z wejściami RxD partnera. Wybór aktualnego kierunku transmisji dokonywany jest za pomocą sygnałów RTS - CTS, a prawo tego wyboru przysługuje w jednakowym stopniu obydwu stronom. Przykładowo, DCE (modem) chcąc przesłać dane do DTE (PC) aktywuje swój sygnał RTS i czeka na potwierdzenie na linii CTS. Uzgodnienie to upo­ważnia w tym przypadku modem do wysyłania danych, a komputer do ich odbioru. Pozostałe sygnały zachowują. swoje naturalne znaczenie, tzn. modem może aktywować linię DCD chcąc przekazywać dane do komputera, DSR oznacza trwały kontakt z ko­respondentem (drugim modemem), zaś DTR może służyć do włączania i wyłączania modemu. Urządzenie DCE może też robić użytek z linii RI, sygnalizując nią chęć nawiązania kontaktu przez partnera modemu znajdującego się po drugiej stronie łącza (zwykle telefonicznego).

Tryb dupleksowy

Dane mogą być przekazywane pomiędzy DTE i DCE jednocześnie w obydwu kierun­kach. Większość nowoczesnych modemów może pracować w tym trybie. Nie jest wy­magane uzyskiwanie przez żadną ze stron zezwolenia na nadawanie. Kanał logiczny połączenia otwarty jest stale w obie strony, a sygnały RTS/CTS nie mają znaczenia; są one albo nie podłączone, albo stale aktywne. Stale aktywna jest też na ogół linia DSR, chyba, że sygnalizuje ona nawiązywanie połączenia z drugim modemem. Sygnał DCD aktywowany jest w naturalny sposób jako odpowiedź na wykrycie fali nośnej, a linią DTR można sterować włączaniem i wyłączaniem modemu.

Rysunek przedstawia klasyczny układ połączeń łącza szeregowego RS-232 pomiędzy urządzeniem DTE I DCE.

0x01 graphic

Układ połączeń między 25 - końcówkowymi gniazdami łącz szeregowych urządzeń DTE i DCE

Standard RS-232C powstał dla potrzeb ujednolicenia połączeń typu końcówka kompu­terowa - modem. W czasach jego opracowywania pod pojęciem końcówki komputerowej (terminala) rozumiano niewiele więcej niż klawiaturę i ekran, a często wręcz elektrome­chaniczny dalekopis. Standard ten przetrwał jednak do czasów dzisiejszych, a ponieważ miał ugruntowaną pozycję, został adaptowany do łączenia różnych innych urządzeń. Klasycznym przykładem jest wykorzystanie łącza szeregowego do realizacji połączenia z drukarką i ploterem. Sprawy komplikują się tutaj, gdyż chodzi tu o połączenie dwóch urządzeń klasy DTE, co na pierwszy rzut oka niewiele ma wspólnego ze standardem RS-232C. Schemat takiego połączenia przedstawia rysunek poniżej.

Jest to klasyczny przykład simpleksowego trybu pracy, bowiem dane przekazywane są tylko w jednym kierunku. Jest rzeczą oczywistą, że drukarka szeregowa znacznie różni się zachowaniem od modemu, niemniej jednak znaczenie pewnych sygnałów sterujących można zmienić i połączyć linie ze sobą tak, że patrząc na łącze od strony komputera, będziemy widzieć ,,coś”, co zachowuje się jak DCE.

Sygnał RTS pochodzący od komputera połączony jest z jego własnym wejściem CTS, co imituje natychmiastową zgodę drugiej strony na nadawanie. Drukarka ,,czuje się” również urządzeniem klasy DTE i oczekuje, zgodnie ze specyfikacją RS-232C, okreś­lonego zachowania swego partnera (DCE). Osiąga się to łącząc ze sobą jej linie RTS i CTS oraz wprowadzając własny sygnał DTR drukarki z powrotem na jej wejścia DCD i DSR. Aktywowanie sygnału DTR powoduje więc natychmiastową (fikcyjną) ,,odpo­wiedź drugiej strony” na liniach DSR i DCD.

Nawet najszybsza drukarka nie może drukować z prędkością taką, jaką gwarantuje prze­pustowość łącza szeregowego. Drukarka dysponuje na ogól pewnym buforem wejścio­wym, ale i ten zostanie wreszcie zapełniony. Dalsze wysyłane przez komputer znaki zostałyby w takiej sytuacji zignorowane. Aby temu zapobiec, należy przesłać do kom­putera sygnał nakazujący wstrzymanie transmisji. Do tego celu właśnie stworzona została linia DSR. Od strony drukarki korzysta się z jednej z linii obsługujących trans­misję synchroniczną (a więc w tym przypadku zbędnych). Końcówka 19 przekazuje więc sygnał zapełnienia bufora, utrzymując go w stanie aktywnym tak długo, jak długo drukarka jest w stanie odbierać dane. Przepełnienie bufora prowadzi natomiast w prostej linii do podania zera logicznego na wejście DSR komputera, a to oznacza wstrzymanie nadawania.

0x01 graphic

Układ połączeń między 25 - końcówkowymi gniazdami łącz szeregowych urządzeń DTE

Formy szeregowej transmisji danych

Transmisja synchroniczna - oprócz linii przekazujących dane, łącze musi dysponować dodatkowymi połączeniami przesyłającymi przebieg synchronizujący. Zaletą tego systemu jest umożliwienie dowol­nych zmian prędkości transmisji. Odbiornik dostosowuje się natychmiast do częstotli­wości nadajnika, o ile oczywiście nie zostanie przekroczona pewna prędkość graniczna.

Transmisja asynchroniczna - strumień danych musi nieść w sobie informacje o częstotliwości synchronizującej. Naturalnie nadajnik i odbiornik muszą pracować stale z tą samą uzgodnioną wcześniej prędkością. Ceną, którą płacimy za zredukowaną w tym trybie pracy liczbę linii łączą­cych korespondentów, jest komplikacja protokołu komunikacyjnego.

Asynchroniczna transmisja szeregowa

Łącza szeregowe, w które wyposażone są komputery klasy PC/XT i AT, przystosowane są do transmisji asynchronicznej. Przeznaczone do przesłania dane w formie szeregowej otrzymują pewien rodzaj ,,opakowania” — tzw. ramki (ang. frame), zwanej też SDU (ang. Serial Data Unit). Ramka właśnie, a nie pojedynczy bit danych, jest najmniejszą porcją przekazywanej jednorazowo przez łącze informacji. Jak widać na rysunku, na ramkę składają się, oprócz właściwych bitów danych, znacznik początku ramki (bit startu), bit kontroli parzystości i znacznik końca ramki (bit stopu). Czas trwania jednego bitu ramki, tj. okres wyimaginowanego przebiegu synchronizującego wynika ściś1e z uzgodnionej prędkości transmisji.

0x01 graphic

Struktura ramki danych

W ogólności ramka może zawierać 5, 6, 7 lub 8 bitów danych. Bit startu jest obowiąz­kowy, a liczba bitów stopu może wynosić 1 lub 2.

Bit kontroli parzystości jest elementarnym i bardzo mało efektywnym sposobem zabez­pieczenia danych przed przekłamaniami w trakcie przekazu. Może on oznaczać parzystą lub nieparzystą liczbę ustawionych bitów w polu danych, może być ustawiony na stałe lub na stałe wyzerowany, wreszcie może być w ogóle pominięty.

Wszystkie te charakterystyczne cechy ramki, tj. czas trwania (odpowiadający prędkości transmisji), liczba bitów danych, liczba bitów stopu i tryb kontroli parzystości są uzgad­niane między nadajnikiem i odbiornikiem jako format przekazywanych danych jeszcze przed nawiązaniem połączenia (ponieważ parametry transmisji nie są wówczas ustalone, uzgodnienia należy na ogół dokonać ,,ręcznie”, za pomocą programów konfigurują­cych). Tylko w ten sposób możliwe jest prawidłowe odczytanie napływających do od­biornika informacji. Generator odbiornika pracuje więc z założenia z taką samą często­tliwością z jaką pracował generator nadawczy, formujący dane do postaci szeregowej. Pozostaje jedynie synchronizacja fazy, tzn. uruchomienie układu dekodującego odbior­nika precyzyjnie na początku ramki.

Bit startu przyjmuje zawsze wartość zero. Linia danych łącza w stanie spoczynku utrzy­mywana jest w stanie logicznym 1. Bit startu jest więc wyraźnie zaznaczonym począt­kiem transmisji. Bit stopu zamyka ramkę i łącze wraca do stanu początkowego lub realizuje transmisję następnej porcji danych.

W warunkach rzeczywistych nie występują oczywiście tak wyidealizowane przebiegi prostokątne jak przedstawione na rysunku. Przy dużych prędkościach transmisji zaczynają odgrywać rolę pojemności przewodów łączących. Od1egłość dzieląca nadaj­nik i odbiornik może dochodzić do 200 metrów, i to w warunkach przemysłowych. Wszystko to powoduje zniekształcenia zboczy sygnałów oraz nakładanie się na nie dodatkowych przebiegów zakłócających.

Przetwarzanie szeregowego strumienia danych napływających do odbiornika musi więc odbywać się w sposób bardziej skomplikowany. Odbiornik pracuje z częstotliwością, 16-krotnie większą niż wynikałoby to z ustalonej szybkości pracy łącza, a każdy bit ramki jest badany (próbkowany) 16 razy. Wynik pobrania tych 16 próbek jest uśrednia­ny, a na podstawie tej operacji zapada decyzja, czy badanemu wynikowi czasowemu przyporządkować niski czy wysoki poziom logiczny. Metoda ta podnosi znacznie od­porności łącza na zakłócenia impulsowe i eliminuje niekorzystny wpływ zniekształ­conych zboczy.

Funkcje BIOS obsługujące łącze szeregowe

Funkcja 00h

Działanie:

Funkcja 00h inicjalizuje wybrane łącze, ustalając parametry transmisji.

Parametry wejściowe:

AH 00h;

AL bajt okreś1ający parametry transmisji;

DX numer łącza:
0=COMI (AUX),
1= COM2,
2=COM3,
3=C0M4.

Wartości zwracane:

AH bajt statusu łącza;

AL bajt statusu linii modemu.

Funkcja 01h

Działanie:

Funkcja ta wysyła jeden znak do wybranego łącza szeregowego.

Parametry wejściowe:

AH 01h;

AL kod ASCII wysyłanego znaku;

DX numer łącza:
0=COM1 (AUX),
1=COM2,
2=COM3,
3=COM4.

Wartości zwracane:

AH bajt statusu łącza.

Funkcja 02h

Działanie:

Funkcja ta odbiera jeden znak z wybranego łącza szeregowego.

Parametry wejściowe:

AH 02h;

DX numer łącza:
0=COMI (AUX),
1=COM2,
2=COM3,
3=COM4.

Wartości zwracane:

AH bajt statusu łącza;

AL odebrany znak.

Funkcja 03h

Działanie:

Funkcja 03h określa status wybranego łącza szeregowego.

Parametry wejściowe:

AH 03h;

DX numer łącza:
0=COMI (AUX),
1=COM2,
2=COM3,
4=COM4.

Wartości zwracane:

AH bajt statusu łącza;

AL bajt statusu modemu.

  1. PRZEBIEG ĆWICZENIA.

Budowa kabla modemu zerowego (Null Modem)

Trudno byłoby osobie niedoświadczonej wyszukać odpowiedni przewód, a następnie prawidłowo go podłączyć. Z tego powodu producent zapewnia odpowiednie kable o różnej długości, odpowiadające indywidualnym potrzebom użytkowników. Są one gotowe do podłączenia, wyposażone w odpowiednie wtyczki na końcach i gwarantują prawidłowe działanie. Jest to niestandardowe wykorzystanie standardu RS-232. Pozwala ono na oszukanie urządzenia DTE, że jest ono przyłączone do urządzenia DCE. Ten prosty trick jest osiągnięty przez zmianę (skrzyżowanie) końcówek przewodów. Najprostszy układ wygląda tak: końcówki 2 i 3 są zamienione ( wobec tego komputer A transmituje dane, a komputer B odbiera je i odwrotnie). Końcówki 6 i 20 są zamienione miejscami, aby dać każdemu z komputerów możliwość powiadomienia drugiego o swojej gotowości do działania. Zadania wykonywane przez końcówki 4 i 5 pozostają bez zmian, tak jak zadania końcówki 7, która nadal dostarcza napięcie odniesienia. Pozostałe końcówki nie są wykorzystywane.

9 pin(DB9)

25 pin(DB25)

Kierunek przepływu danych:

25 pin(DB25)

9 pin(DB9)

pin 5

pin 7

Ground <--> Ground

pin 7

pin 5

pin 3

pin 2

Transmit(TxD)-->Receive(RxD)

pin 3

pin 2

pin 7

pin 4

RTS --> CTS

pin 5

pin 8

pin 6

pin 6

DSR <-- DTR

pin 20

pin 4

pin 2

pin 3

Receive(RxD) <-- Transmit(TxD)

pin 2

pin 3

pin 8

pin 5

CTS <-- RTS

pin 4

pin 7

pin 4

pin 20

DTR --> DSR

pin 6

pin 6

Układ połączeń w standardowym kablu null-modem

Do przesyłania danych w jedną stronę wystarczą nawet 2 żyły! Można się o tym przekonać wykonując kabel wg. poniższego schematu i odpalając programy terminalowe na obu komputerach. W obu programach ustalamy taką samą prędkość. Na terminalu komputera "nadawanie" wprowadzamy znaki, które powinny być wyświetlane na ekranie terminala komputera "odbiór".

0x01 graphic

Dwużyłowy kabel Null Modem

Możliwe jest także stosowanie 3-żyłowego kabla do transmisji w obie strony. Oprócz terminali potrafią z niego korzystać takie programy jak NC, INTERSVR, LapLink, gry w rodzaju DOOMa itd. Najlepiej wykonać go wykorzystując zwykły ekranowany kabel stereo (2 żyły w ekranie). Ekran łączymy wtedy z masą (5).

0x01 graphic

Trójżyłowy kabel Null Modem

Jest jeszcze wersja, bardziej zaawansowana, kabla 3-żyłowego, polegająca na wykonaniu kilku zwor we wtykach. Zwory RTS(7) z CTS(8) oraz DCD(1),DSR(6) z DTR(4) przydają się przy oszukiwaniu funkcji DOSa związanych z COMami (np. praca zdalna) oraz oszukiwaniem np. DialUp Networking pod Windows. Uwaga: są gry i programy, które nie dadzą się oszukać i potrafią chodzić tylko na kablu 7-żyłowym.

0x01 graphic

Zaawansowana wersja kabla trójżyłowego

Połączenie dwóch komputerów kablem szeregowym

Najprostszym i jednocześnie najwolniejszym sposobem transmisji danych między komputerami jest wykorzystanie kabla szeregowego RS-232. Wszystkie komputery są wyposażone w porty szeregowe, połączenie komputerów nie powinno więc stanowić żadnego problemu. Możemy nim połączyć komputery oddalone od siebie nie więcej niż o 20 metrów. Przeciętny kabel szeregowy, który można kupić w sklepie, ma długość około 5 metrów. Szybkość transmisji nie jest wprawdzie oszałamiająca, gdyż wynosi 115 Kb/s. Kopiowanie dużych porcji danych może być więc na dłuższą metę dość frustrujące. Do dokonania transferu potrzeba odpowiedniego oprogramowania. Jednym z rozwiązań jest korzystanie z mechanizmów wbudowanych w Windows. W obu komputerach należy wówczas uruchomić opcję Start | Programy | Akcesoria | Komunikacja | Bezpośrednie połączenie kablowe. Wybierz opcję HOST w komputerze, w którym chcesz udostępniać pliki. W drugim komputerze wybierz opcje GOŚĆ. Następnie należy podać port, do którego podłączony jest kabel. W tym przypadku należy wybrać port COM1 lub COM2. Najczęściej na COM1 jest myszka więc bezpieczniej jest ustawić COM2!. Jeżeli komputer był ustawiony jako Gość teraz nastąpi łączenie za pomocą kabla jeżeli natomiast komputer pracuje jako Host kreator spyta Cię czy chcesz udostępnić swoje pliki lub drukarki. Jeżeli klikniesz tę opcję pokaże się okno przedstawiające jakie są zarejestrowane protokoły transmisji, jakie jest logowanie oraz opcje udostępniania plików i drukarek. Jeśli klikniemy na tą opcję ukazuje się proste menu: jest to okno, w którym wybrać można które zasoby ma udostępnić komputer - Host. Klikając OK zatwierdzamy wybór. Po zatwierdzeniu kreator przystąpi do nasłuchiwania czy chce się z nim połączyć komputer - Gość. Pojawi się okno oczekiwania na uzyskanie połączenia. Po uzyskaniu połączenia należy potwierdzić dokonanie czynności.

Kabel do transmisji szeregowej

9-pinowe złącze typu D damskie

0x01 graphic

0x01 graphic

komputer 1

komputer 2

dane odbierane

2

3

dane wysyłane

dane wysyłane

3

2

dane odbierane

DTR

4

6+1

DSR

masa

5

5

masa

DSR

6+1

4

DTR

żądanie wysyłania

7

8

gotowość do wysyłania

gotowość do wysyłania

8

7

żądanie wysyłania

Schemat połączenia szeregowego dwóch komputerów

DTR (ang. Data Terminal Ready) - gotowość to transmisji danych, to sygnał używany w komunikacji seryjnej wysyłanej np. z komputera do modemu. Jego zadaniem jest zasygnalizowanie, że komputer jest gotowy do zaakceptowania przychodzącej transmisji. DTR jest jedną z linii interfejsu RS-232-C. W przypadku asynchronicznych połączeń modemowych najczęściej używana do przerywania połączenia, a czasem również do jego nawiązywania.

DSR (ang. Data Set Ready) - gotowość zestawu danych, to sygnał używany w komunikacji seryjnej wysyłanej np. modemu do komputera. Jego zadaniem jest zasygnalizowanie, że urządzenie jest gotowe do działania DSR jest jedną z linii interfejsu RS-232-C. Przy transmisji asynchronicznej DSR jest rzadko używana, najczęściej praktycznie dubluje DCD. Sygnały te mogą mieć nieco inne momenty przejścia w stan aktywny, np. DSR - po wykryciu nośnej, DCD - po nawiązaniu połączenia.

DCD (ang. Data Carrier Detected) - wykryty nośnik danych, to sygnał w komunikacji seryjnej, który modem wysyła do komputera w celu przekazania mu informacji że jest gotowy do transmisji. DCD jest jedną z linii interfejsu RS-232 sygnalizującą obecność nośnej modemu, czyli istnienie połączenia logicznego. Termin ten określany może być również jako RLSD (Received Line Signal Detected) - wykrycie otrzymanego sygnału linii.

Transmisja szeregowa za pośrednictwem programu Norton Commander

Norton Commander umożliwia dostęp do zasobów dyskowych drugiego komputera. Można skopiować, przenieść lub usunąć dowolny plik/katalog. Widoczne są wszystkie dyski komputera pracującego w trybie biernym.

  1. Na obu komputerach wybieramy opcję połącz.

0x08 graphic

  1. Informujemy komputer, do którego portu podłączony jest kabel. Wybieramy tryb pracy (na jednym komputerze aktywny, na drugim bierny).

0x08 graphic

  1. Pojawia się okienko informujące o oczekiwaniu na połączenie..., a po nim kolejno na komputerze "aktywny":

0x08 graphic

na komputerze "bierny":

0x08 graphic

  1. Jeśli po oczekiwaniu na połączenie pojawi się poniższy komunikat, wtedy trzeba sprawdzić kable, zresetować komputer, wypróbować inne porty (do wyboru mamy zazwyczaj 2), przetestować wszystkie warianty, sprawdzić przy pomocy np. starej myszki działanie portów, sprawdzić poprawność połączeń śledzia z kartą I/O (albo płytą główną), zobaczyć, co na temat COMów ma do powiedzenia jakiś program diagnostyczny np. MSD itd.. Co prawda NC jakoś działa pod Windows, ale zalecane jest uruchamianie go pod DOS-em - w czasie startu systemu: F8 i "wiersz poleceń" (w przypadku takich programów jak NC, Windows ma swoje kaprysy i nie zawsze pozwala manipulować COM-ami).

0x08 graphic

Transmisja szeregowa za pośrednictwem programu Term95

  1. Uruchamiamy program komendą: term95 lub w NC naciskamy kolejno:F9,o,t. W programie Term95 przechodzimy do menu "Ustawienia" i wybieramy opcję "Łącze". Można to zrobić myszką lub sekwencją Alt+P. Ustawiamy parametry transmisji.

0x01 graphic

  1. Po ustawieniu pokazanych na rysunku parametrów pojawia się okno dialogowe umożliwiające komunikację między połączonymi komputerami. Poniżej przedstawiono sposób formatowania dyskietki 5,25 ” znajdującej się w komputerze ”biernym”. Komenda została wydana na komputerze ”aktywnym”.

0x01 graphic

Transmisja szeregowa za pośrednictwem programu Hyper Terminal

  1. 0x08 graphic
    Odpalamy skrót do folderu HyperTerminal: start/programy /akcesoria/ komunikacja /HyperTerminal, a następnie program HyperTrm. Wpisujemy nazwę połączenia i wybieramy mu ikonkę, po czym naciskamy OK.

  1. Wybieramy port (do którego podłączony jest kabel) na liście "połącz używając".

  1. 0x08 graphic
    Ustalamy parametry transmisji: prędkość wg. uznania (np. do pracy zdalnej pod DOSem max 9600), bity danych 8, brak parzystości i bity stopu 1. Sterowanie przepływem w przypadku 3-żyłowego kabla nie może być ustawione na sprzęt lub RTS/CTS (term95) - wysyłanie/odbiór nie będzie wtedy możliwy.

  1. Rezultat końcowy: na drugim komputerze w linii poleceń została wydana komenda: ver > com2.

0x08 graphic

0x08 graphic

Przykładowe programy

Program do wysyłania i odbierania danych.

program komunikacja;

uses crt,dos;

type st30=stnng[30];

var

rejestry:registers;

T:array[1..30000] of byte;

i,j, rozmiar:integer;

nazwapliku:st30;

status,kierunek:byte;

f:text;

a:char;

procedure bip;

begin

sound(200);

delay(200);

nosound;

end;

begin

clrscr;

writeln(Transmisja RS232);

writeln;

repeat

writeln(`1. Wysylanie 2. Odbieranie);

readln(kierunek);

if (kierunek <>1) and (kierunek <> 2) then bip;

until (kierunek = 1) or (kierunek = 2);

if kierunek=1 then

begin

repeat

write(Nazwa wysylanego pliku:');

readln(nazwapliku);

I.=0;

assign(f,nazwapliku);

{$I-};

reset(f);

status: =ioresult;

if (status <> 0) then bip;

{$I+};

until (status = 0);

writeln(Transmisja trwa…');

while not eof(f) do

begin

inc(1);

read(f,a);

t[1]:=ord(a);

end;

close(f);

for j: = 1 to I do with rejestry do

begin

ah:=$01;

dx:=$00;

al:=t[j];

intr($14,rejestry);

end;

writeln(Transmisja zakonczona);

end;

else;

begin

write(Rozrniar pliku odbieranego:');

readln(rozmiar);

rozmiar:=rozmiar-1;

write(Nazwa pliku:');

readln(nazwapliku);

writeln(`Czekam na dane...');

repeat

with rejestry do

begin

ah:=$02;

dx:=$00;

Intr($14,rejestry);

end;

until (rejestry.ah=0) and (rejestry.al <> 46);

I:=1;

t[i]:=rejestry.al;

repeat

with rejestry do

begin

ah:= $02;

dx:=$00;

intr($ 14,rejestry);

inc(i);

t[i]:=al;

end;

until (i=rozmiar);

writeln('Transmisja zakonczona');

assign(f, nazwapliku);

rewrite(f);

for i:=1 to rozmiar do write(f,chr(t[i] ));

close(f);

end;

end.

15



Wyszukiwarka

Podobne podstrony:
Porty Szeregowe
Szeregi Fouriera
WYKŁAD 7 Szeregowy regulacja hamowanie
Analiza matematyczna, lista analiza 2008 6 szeregi
Badanie szeregowego polaczenia RLC
Porty morskie i żegluga morska w Polsce w latach 1999 2001
Microsoft Word W14 Szeregi Fouriera
całki, szeregi zadania z kolosa wykład 21 03 2009
3, Inzynieria Materiałowa, I semestr, Elektrotechnika, elektrotechnika, 3.4 silnik szeregowy
Wykłady 24.10, porty i terminale
Szeregi homologiczne węglowodorów
Silnik szeregowo bocznikowy
Szereg Bowena
szeregowe do oddania?z wykresó
Projektory, myszki, porty, skanery

więcej podobnych podstron