ethernet,
[ Pobierz całość w formacie PDF ]
Politechnika Gdańska
WYDZIAŁ ELEKTRONIKI
TELEKOMUNIKACJI I
INFORMATYKI
Katedra Systemów Informacyjnych
Symulator warstwy fizycznej Ethernet
Autorzy:
Konsultacje naukowe:
Kamil Ratajczak
Sebastian Rosenkiewicz
Łukasz Wąsowski
Paweł Wojnarowicz
dr inż. Krzysztof Nowicki
mgr inż. Wojciech Gumiński
1.
Wstęp
s)); algorytmów
kodowania: Manchester, 4B5B, MLT3, PAM5 oraz parametrów i charakterystyk
kanału: tłumienie, przesłuchy, echo (zadawane charakterystykami
częstotliwościowymi w zakresie do 100MHz). Wynikiem symulacji jest graficzna
reprezentacja sygnałów obecnych w różnych momentach transmisji (ciągi wejściowe,
kodowe, na wyjściu kanału, itd.) oraz analiza błędów (rozkład błędów, dystrybuanta,
bitowa stopa błędów).
Parametry sygnałów wejściowych oraz kanału mogą być zmieniane przez
użytkownika w celu dostosowania do pożądanych warunków symulacji.
m
2.
Algorytmy kodowania
2.1.
Manchester
Zasada działania kodu Manchester polega na zmianie poziomu sygnału w środku
każdego bitu sygnału wejściowego. Bitowi „1” odpowiada zmiana poziomu od
wyższego do niższego, a „0” - od niższego do wyższego:
Naturalny kod binarny
Manchester
t
Przejście między poziomami sygnału występują przy każdym bicie, w związku z czym
możliwa jest ciągła kontrola synchronizacji detektora ze strumieniem danych, nawet w
przypadku nadawania długiej sekwencji zer lub jedynek. Fakt ten może być również
wykorzystywany do detekcji błędów – brak oczekiwanej zmiany poziomu sygnału
oznacza przekłamanie. Kod Manchester wymaga impulsów dwukrotnie krótszych niż
kod NRZ. Oznacza to dwukrotne zwiększenie szybkości modulacji, a więc i
dwukrotny wzrost wymaganego pasma transmisyjnego przy tej samej szybkości
transmisji danych. Korzystną cechą sygnału przesyłanego w kodzie Manchester jest
fakt, że jego wartość średnia jest równa zero.
2.2.
4B/5B
Kodowanie 4B/5B zostało zaprojektowane oryginalnie na potrzeby sieci FDDI,
Program
EtherSim
umożliwia przeprowadzenie symulacji warstwy fizycznej sieci
Ethernet w standardach 10BaseT, 100BaseTX oraz 1000BaseT z uwzględnieniem
parametrów sygnałów wejściowych: szybkość (domyślnie odpowiednio 10, 100 i
1000Mb/s), nachylenie zbocza impulsu (domyślnie 40, 50 i 50dB (V/
gdzie pozwoliło na 80% wykorzystanie przepustowości łącza. Zaadaptowano je do
standardu 100BaseTX, gdzie służy jako wstępny skrambler danych przed kodowaniem
MLT-3. Zabieg ten ma na celu zapobieganie powstawaniu długich ciągów logicznych
zer, co skutkowałoby utratą synchronizacji (patrz kodowanie MLT-3). Kodowanie
zostało zmienione jedynie w nieznacznym stopniu w stosunku do wersji FDDI, w celu
uwzględnienia kontroli ramek Ethernet.
W kodowaniu 4B/5B ciągi czterobitowe kodowane są pięciobitowymi symbolami.
Do każdych czterech bitów dodawany jest piąty – za pomocą 4 bitów można utworzyć
2
4
= 16 ciągów, natomiast pięć bitów daje ich już 2
5
= 32. Analizując zamieszczoną
tabelę kodową można zauważyć, że uzyskana w ten sposób nadmiarowość umożliwia
takie zakodowanie sygnału, że nawet ciąg samych zer będzie zawierał jedynkę (i
analogicznie ciąg samych jedynek będzie zawierał zero), co zapewnia utrzymanie
synchronizacji. Poniższa tabela przedstawia wszystkie możliwe ciągi zer i jedynek
wraz z ich interpretacją:
W nadawanej sekwencji znaków nigdy nie wystąpi ciąg dłuższy niż 8 jedynek. Piąty
bit w niewielkim zakresie umożliwia ponadto wykrywanie błędów. Wadą tego
kodowania, np. w stosunku do 8B/10B, jest brak zrównoważenia wystąpień sygnałów
0 i 1, w związku z czym wymagana do zakodowania energia będzie większa w
przypadku wysyłania większej liczby 1 niż 0. Należy zauważyć, że 25%
nadmiarowość oznacza konieczność użycia zegara o odpowiednio wyższej
częstotliwości, np. 125MHz przy 100Mb/s. Kod ten używany jest min. w standardach
Fast Ethernet, FDDI czy HIPPI-6400
2.3.
5B/6B
Zasada działania jest taka sama jak w przypadku kodowania 4B/5B. Dodatkowo
wprowadzona została zasada równoważenia składowej stałej w celu zapobiegania
polaryzacji sygnału (3 zera i 3 jedynki w każdej grupie sześciu bitów). Umożliwia to
także prostsze wykrywanie błędów – niepoprawny jest każdy ciąg, w którym
występuje więcej niż 3 zera lub 3 jedynki pod rząd.
Nadmiarowość wynosi tu 20% (co pięć bitów dodawany jeden dodatkowy). Oznacza
to, że przy prędkości transmisji 100Mb/s, stosowany jest zegar o częstotliwości 120
MHz. Używany m.in. w 100VGAnyLAN.
2.4.
8B/6T
Kodowanie 8B/6T zaprojektowane zostało w celu wykorzystania skrętki kategorii
3 do transmisji sygnału 100Mb/s. Kodowanie przebiega w ten sposób, że każdej
sekwencji ośmiu bitów ze strumienia danych wejściowych przyporządkowany zostaje
ciąg sześciu symboli trzystanowych (o trzech możliwych poziomach napięć: –V, 0,
+V). Możliwych jest więc 3
6
= 729 ciągów, z czego wykorzystywanych jest 2
8
=256
ciągów. Ciągi kodowe zostały tak dobrane, aby zapewnić możliwość dobrej detekcji
błędów, zmniejszyć efekty wysokoczęstotliwościowe oraz wyeliminować składową
stałą. Przyjęto założenie, że w każdym ciągu muszą wystąpić co najmniej dwa
poziomy napięć (niezbędne do celów synchronizacji). Ponadto mogą być używane
specjalne ciągi kodowe, np. jako znaczniki.
Kodowanie wielopoziomowe umożliwia zakodowanie więcej niż jednego bitu
informacji w pojedynczej zmianie poziomu – tym sposobem sygnał o częstotliwości
12,5MHz przenosi strumień danych o szybkości 33,3Mb/s. Każdy cykl sygnału
12,5MHz zawiera dwa poziomy, co daje 25 milionów zmian poziomów na sekundę na
pojedynczej parze skrętki. Na trzech parach sumarycznie daje to 75 milionów zmian w
każdej sekundzie. Dzieląc przez 6 symboli w każdym ciągu kodowym, otrzymujemy
12,5 miliona ciągów kodowych na sekundę, z których każdy odpowiada ośmiu bitom
danych – daje to sygnał o szybkości 100Mb/s. Warto zauważyć, że częstotliwość
12,5MHz mieści się w limicie 16MHz dla skrętki kategorii 3.
Przykładowo, osiem bitów danych
01011110
zostanie zakodowane jako następujące
sześć symboli:
-
-
+
+
+
0 co zostało zilustrowane poniżej:
2.5.
8B/10B
Aby możliwe było wiarygodne przesyłanie danych z prędkościami gigabitowymi i
większymi (standardy Gigabit Ethernet czy 10 Gigabit Ethernet), konieczna jest
kolejna zmiana w metodzie kodowania danych. Strumień napływających danych
dzielony jest na bloki ośmiobitowe (kolejne bity oznaczone są
HGFEDCBA
, gdzie H –
najbardziej znaczący bit, A – najmniej znaczący bit), do których następnie dodawane
są dwa nadmiarowe bity w celu otrzymania dziesięciobitowego ciągu kodowego.
Ponadto założono istnienie tzw. zmiennej sterującej (bit sterowania) – blok
ośmiobitowy zawiera dane jeżeli zmienna ta ma wartość
D
, lub jest bajtem kontrolnym
jeżeli ma wartość
K
. Kodowanie przebiega w ten sposób, że najpierw każde 8 bitów
dzielone jest na 3 najbardziej znaczące bity (
HGF
) oraz 5 najmniej znaczących bitów
(
EDCBA
). Następnie osiem bitów przekształcanych jest na dziesięć bitów o postaci
abcdeifghj
. 10-cio bitowe ciągi kodowe zostają tak dobrane, aby zawierały:
-
5 jedynek i 5 zer lub
-
4 jedynki i 6 zer lub
-
6 jedynek i 4 zera
Zapobiega to występowaniu dłuższych sekwencji takich samych bitów co ułatwia
synchronizację. Kolejne bloki ośmiobitowe kodowane są w ten sposób, aby pierwszy
miał więcej bitów 1, następny więcej bitów 0, itd. Proces kodowania przedstawia
poniższy schemat:
[ Pobierz całość w formacie PDF ]