Szeregowa transmisja danych.pdf

(391 KB) Pobierz
Transmisja szeregowa
Szeregowa transmisja danych
Autor: Grzegorz Żółtek IV FDS
1
STRESZCZENIE
W pracy na temat „ Transmisja szeregowa danych” opisałem takie zagadnienia jak:
- transmisja szeregowa poprzez magistralę RS–232 – jest to podstawowa i
najpopularniejsza transmisja danych w sposób szeregowy
- transmisja w systemie Windows – opis sposobu dostępu do portów COM w systemie
Windows
- transmisja w systemie Linux – w tym rozdziale opisałem również sposób dostępu do
portów szeregowych lecz w przypadku systemów Unixowych
- transmisjapoprzezłącze USB – w opisie tego zagadnienia zostały poruszone problemy
zalet takiego rozwiązania oraz ewentualnych wad z niego wynikających
- szeregowa transmisja danych w sposób synchroniczny oraz asynchroniczny – opisy tych
transmisji dotyczą przede wszystkim sposoby synchronizacji zegarów w przypadku
transmisji synchronicznej oraz przesyłania danych w sposób asynchroniczny
- zabezpieczenie danych w transmisji szeregowej – poruszony został problem błędów przy
przesyłaniu szeregowym
- szybkość transmisji szeregowej – chodzi tutaj przede wszystkim o taką samą szybkość
przesyłu danych przez nadawcę i odbiorcę – by zsynchronizować przesył, oraz szybkość
przesyłania danych
Politechnika Rzeszowska im. Ignacego Łukasiewicza
Zakład Systemów Rozproszonych
Rzeszów 2002
2
SPIS TREŚCI
Politechnika Rzeszowska im. Ignacego Łukasiewicza
Zakład Systemów Rozproszonych
Rzeszów 2002
 
3
1. Transmisja szeregowa
Transmisja szeregowa jest to jeden z najtańszych sposobów na przesyłanie danych między
dwoma stacjami komputerowymi PC. Jedną z zalet transmisji szeregowej jest to, iż nie
potrzebuje ona żadnych specjalnych urządzeń do jej realizacji, a oprogramowanie dzięki
któremu jest ona realizowana jest dostępne bez żadnych komplikacji.
Stosowane są trzy podstawowe typy transmisji, są to:
SIMPLEX – jest to transmisja realizowana w jednym kierunku
HALFDUPLEX – jest to transmisja realizowana w obu kierunkach ale nie jednocześnie ,
dane mogą być przesyłane w jednym kierunku a następnie w drugim
FUL-DUPLEX (half-duplex) – jest to transmisja w obu kierunkach. Transmisja duplexowa,
może być realizowana poprzez zastosowanie oddzielnej pary przewodów dla każdego z
kierunków, bądź poprzez wydzielenie niezależnych kanałów transmisyjnych w ramach tego
samego medium. [8]
1.1 Protokoły transmisji szeregowej
Jednym z najpopularniejszych protokołów transmisji szeregowej jest protokół
„XMODEM”Jest to bardzo prosty protokół , który służy do przesyłania plików. Dzięki temu
że jest bardzo prosty , oraz jego implementacja jest bardzo łatwa jest on najczęściej
stosowanym protokołem do komunikowania się dwóch pecetów. Protokół ten przesyła dane w
postaci bloków danych.
Każdy taki blok składa się z :
- Nagłówka
- Danych - 128Bajtów
- Sumy kontrolnej – 1 Bajt
Nagłówek bloku danych pokazuje poniższa tabela:
Tabela 1.
Offset
Długość
Znaczenie
00h
BYTE
Znak początku nagłówka
SOH
01h
BYTE
Numer bloku
02h
BYTE
Dopełnienie numeru bloku
Zasada działania protokołu XMODEM
Pierwszy blok który jest transmitowany jest oznaczony numerem 1, po osiągnięciu jednak
wartości 0FFh kolejny blok ma numer 0, a dopełnieniem numeru bloku jest numer 255. Suma
kontrolna to jednobajtowa suma wszystkich 128 bajtów bez przeniesień. Przed wysłaniem
danych komputer oczekuje na sygnał NAK (Negative Acknowledgment ) od komputera
odbierającego dane , wysyła on ten sygnał co pewien czas , jeśli dane nie są odbierane.
Komputer który wysyła dane po otrzymaniu sygnału NAK powinien zacząć wysyłanie
pierwszego bloku.
Po każdym odebraniu bloku danych komputer odbierający powinien wysyłać sygnały ACK –
jeśli suma kontrolna zgadza się , lub sygnał NAK , gdy się ona nie zgadza. Po wysłaniu całej
Politechnika Rzeszowska im. Ignacego Łukasiewicza
Zakład Systemów Rozproszonych
Rzeszów 2002
168842505.002.png
4
wiadomości (wszystkich bloków) nadajnik wysyła sygnał EOT aż do otrzymaniu
potwierdzenia sygnałem ACK.
Kolejnym protokołem służącym do transmisji szeregowej jest protokół YMODEM , jest to
unowocześniona wersja protokołu XMODEM o takie elementy jak:
- kontrolabłędów CRC-16
- długość bloku 128 – po wysłaniu sygnału SOH lub 1024 bajty – po wysłaniu sygnału STX
na początku nagłówka transmitowanego bloku
- powysłaniu dwóch następujących po sobie sygnałów CAN spowoduje przerwanie
transmisji
- przesyłanie kilku plików w jednej sesji
- przesyłanie nazwy pliku
Następnym protokołem jest YMODEM-g.
Jest on wykorzystywany podczas bezpośrednich połączeniach kablowych w celu zwiększania
szybkości transmisji. Protokół YMODEM-g różni się od swojego poprzednika YMODEM
takimi szczegółami jak:
- odbiornik nie wysyła sygnału ACK jeśli wykryje błąd , lecz przerywa transmisję dwoma
sygnałami CAN
- nadajnik nie oczekuje na potwierdzenie odebrania bloku , lecz po jego wysłaniu wysyła
następny
Protokół ZMODEM to kolejna modyfikacja protokołu YMODEM. Zmiany które zostały tam
zamieszczone polegają na tym iż można przesyłać ośmiobitowe słowa przez łącza o
szerokości siedmiu bitów. Jest to możliwe dzięki specjalnym kodom: [1]
Niektóre kody specjalne wykorzystywane w transmisji szeregowej danych:
Tabela 2
NUUL
00h
Kod pusty
SOH
01h
Początek nagłówka danych
STX
01h
Początek tekstu
ETX
03h
Koniec tekstu
EOT
04h
Koniec transmisji
ENQ
05h
Zapytanie
ACK
06h
Potwierdzenie
BS
08h
Klawisz BACKSPACE
LF
0Ah
Przejście do następnego
wiersza
FF
0Ch
Następna strona
CR
0Dh
Powrót kursora
SO
0Eh
Początek zaznaczania
SI
0Fh
Koniec zaznaczania
DLE
10h
Działanie zbliżone do
klawisza Esc
DC1
11h
Kod rezerwowy
NAK
15h
Potwierdzenie negatywne
SYN
16h
Synchronizacja urządzeń
ETB
17h
Koniec bloku danych
Politechnika Rzeszowska im. Ignacego Łukasiewicza
Zakład Systemów Rozproszonych
Rzeszów 2002
168842505.003.png 168842505.004.png 168842505.001.png
Zgłoś jeśli naruszono regulamin