Komputery

Interface szeregowy TOKENBUS

W standardzie IEEE definiuje się kilka metod sterowania dostępem do łącza, które nazywane są “protokołami dostępu do łącza”. Najbardziej znane i najczęściej stosowane są dwa mechanizmy: CSMA/CD i przekazywanie tokena (Token Passing). Protokół dostępu określa sposób sterowania transmisją danych realizowany przez stacje podłączone do sieci lokalnej, tak aby stacje nie nadawały jednocześnie i nie przerywały sobie wzajemnie transmisji. CSMA/CD (Carrier Sense Multiple Access with Collision Detection) jest protokołem nakazującym stacji nasłuch łącza przed transmisją. Jeżeli łącze jest zajęte, to znaczy jeżeli stacja wykryje przesył danych w linii transmisyjnej, to musi zaczekać aż do zwolnienia łącza (zaniku sygnału w linii) zanim będzie mogła wysłać własne dane. Jeżeli dwie lub więcej stacji będzie próbowało nadawać w tej samej chwili (kolizja), wszystkie one muszą przerwać transmisję i odczekać przez pewien losowy odcinek czasu odmierzany w każdej stacji, zanim będą mogły ponowić próbę dostępu do łącza. Stacja, której czas powstrzymania transmisji będzie najkrótszy stwierdzi po jego upływie wolne łącze i przejmie nad nim kontrolę w celu wysłania danych. Przy dużym obciążeniu sieci lokalnej ruch w linii transmisyjnej jest ogromny, co powoduje, że wiele stacji nie może się dostać do łącza i traci czas na permanentne próby przejęcia nad nim kontroli. Powoduje to wydłużenie czasu odpowiedzi. Z tych względów protokół CSMA/CD nie; nadaje się do wykorzystania w sieciach sterowników przemysłowych, gdzie sterowanie procesem wymaga reakcji (odpowiedzi) w pewnym nieprzekraczalnym czasie. CSMA/CD jest natomiast dobrym protokołem dla sieci lokalnych do zastosowań biurowych. Na przykład popularna sieć Ethernet wykorzystuje właśnie tę regułę dostępu do łącza.

Alternatywą dla CSMA/CD jest protokół dostępu oparty na przekazywaniu uprawnienia do nadawania, co dalej nazywać będziemy “przekazywaniem tokena”. Protokół ten pierwotnie opracowano dla sieci o konfiguracji pierścieniowej, obecnie jednak z powodzeniem stosowany jest w sieciach o konfiguracji magistralowej. Magistralę systemu TOKENBUS [4] stanowi łącze szeregowe, do którego podłączone są stacje abonenckie. Stacje tworzą logiczny pierścień, co oznacza, że każdej z nich został przypisany numer oraz stworzona zamknięta sekwencja tych numerów, informująca o kolejności przekazywania uprawnienia do nadawania (dostępu do magistrali). Przez termin “zamknięta sekwencja” rozumiemy tu fakt, że ostatnia stacja w pierścieniu przekazuje prawo dostępu do łącza pierwszej stacji. Każda stacja zna adres następnego abonenta w logicznym pierścieniu. Kolejność fizyczna stacji na magistrali jest nieistotna i niezależna od kolejności logicznej. Stacje w pierścieniu logicznym przekazują sobie prawo do nadawania (token) według ustalonej kolejności. Stacja posiadająca token dysponuje ściśle określonym odcinkiem czasowym na przesłanie danych. Po upływie tego czasu stacja musi przerwać transmisję i przekazać token następnej stacji w pierścieniu bez względu na to, czy wysłała wszystkie dane, czy też zostały jej jeszcze jakieś informacje do przesłania. Stacje nie posiadające tokena mogą tylko nasłuchiwać łącze.

Przekazywanie tokena ma kilka zalet w porównaniu z CSMA/CD. Najważniejsze jest to, że gwarantuje pewien nieprzekraczalny czas odpowiedzi stacji, co rozszerza zastosowania sieci lokalnych o aplikacje związane ze sterowaniem procesami. Ponadto dostęp na zasadzie przekazywania tokena pozwala efektywniej wykorzystać pasmo, ponieważ w kablu nie dochodzi do kolizji. Skoro stacje nie muszą “martwić się” o kolizje, możliwa jest też transmisja na większe odległości niż w przypadku systemów CSMA/CD. Pewną wadą reguły dostępu opartej na przekazywaniu tokena jest bardziej złożony algorytm. Istnieją jednak specjalizowane kontrolery VLSI, które ułatwiają implementację protokołu.

W systemie TOKENBUS transmisja danych realizowana jest za pośrednictwem bloków zwanych ramkami. Ważną ramką sterującą jest “token frame” (żeton), która określa prawo dostępu do wspólnie wykorzystywanego (dzielonego) łącza. Stacja, która posiada token ma dostęp do łącza przez określony czas. Stacja, która przechwyciła “wolny” token może wykorzystać go do transmisji jednej lub więcej ramek oraz do odbioru odpowiedzi. Jeżeli nie ma ramek do transmisji lub wyczerpał się czas, następuje przekazanie tokena do następnej stacji w pierścieniu logicznym, która przejmuje w ten sposób prawo do transmisji. Normalne działanie systemu TOKENBUS odbywa się zatem w dwóch fazach: faza przesyłania danych i faza przesyłania tokena. Stacje, które nie wchodzą w skład pierścienia logicznego ale są podłączone do magistrali, mogą tylko odpowiadać na zdalne zapytania lub żądać potwierdzenia. Pracę systemu zapewniają następujące funkcje utrzymywania pierścienia logicznego:

inicjalizacja pierścienia logicznego,
włączanie nowej stacji do istniejącego pierścienia,
odtwarzanie zagubionego tokena,
ogólny nadzór pierścienia logicznego.

Funkcje utrzymywania pierścienia logicznego są zaimplementowane we wszystkich stacjach tworzących pierścień logiczny.

Pierścień logiczny

Przyjmijmy, że do systemu podłączono pewną ilość stacji, na przykład stacje A, B, C, D, E, F, G. Mogą one odbierać ramki i odpowiadać na zdalne zapytania lub żądania. Część stacji (w szczególnym przypadku nawet wszystkie) tworzy pierścień logiczny, którego członkowie mają prawo transmisji. Prawo to (tak zwany token) przekazywane jes t pomiędzy stacjami tworzącymi pierścień logiczny. Każda stacja w pierścieniu zna adres swojego poprzednika (stacji, od której dostaje token) i adres następnika (stacji, do której przekazuje token). Adresy stacji poprzedzającej oraz następnej są określane dynamicznie, co pozwala na dołączanie nowych stacji do pierścienia, jak również na usuwanie stacji z pierścienia.

Format ramki w systemie TOKENBUS

Inicjalizacja pierścienia, sterowanie dostępem do łącza i transmisja danych realizowane są przez wysyłanie ramek pomiędzy stacjami. Każda ramka składa się z następujących pól:

Preambuła – trzy znaki jałowe z punktu widzenia przesyłanych danych, służące jedynie do synchronizacji generatora taktu odbiornika z taktem sygnału nadawanego (synchronizacja bitowa) oraz umożliwiające lokalizację pierwszego bitu części informacyjnej ramki.
Wskaźnik początku ramki (SD – Start Delimiter) – oznacza początek części informacyjnej ramki.
Pole sterujące (FC – Frame Control) – informuje o rodzaju ramki, tzn., czy jest ona ramką danych LLC3 lub jedną z ramek sterujących. Ramki sterujące realizują protokół komunikacyjny token bus. Przykładem jest ramka tokena.
Adres przeznaczenia (DA – Destination Address) – określa stację (lub stacje), dla której przeznaczona jest ramka. DA może być unikalnym adresem fizycznym stacji, adresem grupowym przeznaczonym dla kilku stacji lub adresem rozgłoszeniowym dla wszystkich stacji w sieci lokalnej.
Adres źródła (SA – Source Address) – określa stację, która wysyła ramkę.
Jednostka danych (DU – Data Unit) – przygotowana przez LLC dla komunikacji LLC – LLC4 lub przez MAC w celu sterowania i zarządzania.
LLC (Logical Link Control) i MAC (Medium Access Control) są podwarstwami warstwy łącza danych (Data Link) zgodnie ze standardem IEEE 802.2.
Komunikacja LLC – LLC oznacza wymianę danych pomiędzy podwarstwami LLC różnych stacji.
Suma kontrolna ramki (FCS – Frame Check Sequence) – 32-bitowe słowo zabezpieczające część informacyjną ramki, wypracowywane na podstawie wszystkich bitów ramki począwszy od FC.
Znacznik końca ramki (ED – End Delimiter)

Funkcje MAC w systemie TOKENBUS

Kontrolę wymiany tokena, zapewnienie obecności tylko jednego tokena w sieci, dołączanie i odłączanie stacji do/z pierścienia logicznego określa złożona procedura nazywana procedurą token bus. Można w niej wyróżnić cztery podstawowe funkcje:

Inicjalizacja pierścienia logicznego Po załączeniu napięcia zasilania, lub po rozpadzie pierścienia logicznego, konieczna jest jego reinicjalizacja. Algorytm inicjalizacji pierścienia logicznego wykorzystuje adresy fizyczne stacji do określenia, która stacja ma być pierwszą w pierścieniu, która drugą itd.
Dołączanie stacji do pierścienia logicznego. Co pewien czas, stacje spoza pierścienia muszą mieć szansę wejścia do niego. Zadanie to realizuje algorytm “określanie respondenta” (resolve responder).
Opuszczanie pierścienia logicznego. Każda stacja może opuścić pierścień poprzez “połączenie” swojego poprzednika z następnikiem, co wymaga jedynie zmiany adresów następnika i poprzednika w obu stacjach.
Zarządzanie systemem w przypadku wykrycia błędów. W systemie może wystąpić wiele różnych błędów, jak na przykład podwójne zaadresowanie (w konsekwencji dwie stacje mogą jednocześnie nadawać, co oznacza kolizję) lub przerwanie pierścienia (żadna stacja nie przejmuje tokena).

Inicjalizacja pierścienia logicznego

Potrzeba inicjalizacji pierścienia logicznego zachodzi w sytuacji, gdy zanika ruch ramek na magistrali przez czas dłuższy od dopuszczalnego czasu ciszy (tbi; – bus idle time). Czas ten odmierzany jest w każdej stacji przez specjalny układ czasowo-licznikowy nazywany TBI (Bus Idle Timer). Jeżeli jedna lub więcej stacji wykryje brak aktywności magistrali, co może być spowodowane wieloma przyczynami, jak włączenie napięcia zasilania w sieci lub zagubienie tokena przez stację, realizowana jest procedura inicjalizacji pierścienia logicznego. Jeżeli licznik odmierzający czas tbi; w stacji się przepełni, to stacja wysyła ramkę żądanie_tokena (claim token). Najgorszy przypadek ma miejsce jeżeli we wszystkich czterech stacjach przepełnienie l icznika TBI nastąpi w tej samej chwili. Każda ze stacji żądających tokena wysyła ramkę żądanie tokena, której długość jest parzystą wielokrotnością (0, 2, 4 lub 6) pewnej szczeliny czasowej t, (slot time). Wartość mnożnika zależy od dwóch najstarszych bitów adresu stacji i można ją przedstawić zależnością: mnożnik = (wartość -pary bitów adresu stacji) 2 Długość Tct, ramki żądanie tokena wynosi zatem: Tct = mnożnik t.

Po wysłaniu ramki każda ze stacji żądających tokena nasłuchuje łącze i jeżeli wykryje jakąś transmisję, to rezygnuje z rywalizacji o token. Sprawdzenie magistrali następuje po czasie tc od wysłania ostatniej ramki żądanie_tokena, który wyznaczany jest przez układ czasowo_ licznikowy TCT (Claim Token Timer). W takiej sytuacji procedura przydziału tokena (arbitraż) jest kontynuowana w oparciu o parę następnych bitów, których stan decyduje o wartości mnożnika. Proces nadawania ramki żądanie_tokena jest powtarzany, przy czym po każdej repetycji pozostają w arbitrażu tylko te stacje, które nadawały najdłużej podczas poprzedniej repetycji. Czas nadawania w kolejnym kroku określa mnożnik wyliczany w oparciu o następną parę bitów adresu stacji. Ze względu na unikalne adresy stacji procedura arbitrażowa zostanie rozstrzygnięta najpóźniej po wykorzystaniu ostatniej pary bitów adresowych. Zwycięzcą (posiadaczem tokena) staje się stacja o największym adresie. Może ona teraz przystąpić do odtworzenia pierścienia logicznego, co realizuje procedura żądanie_następcy (solicit successor procedure). Po wygenerowaniu ramek żądania tokena w oparciu o bity adresu stacji, rywalizacja o token nie może być rozstrzygnięta. Kolejne ramki nadawane przez obie stacje posiadają bowiem identyczni długość za względu na takie same adresy. Ostatecznie przydział tokena jest możliwy dzięki wysłaniu przez obie stacje dodatkowej ramki, której długość jest zależna od wartości losowej generowanej przez każdą stację. Tym razem długości ramek będą różne i token dostanie ta stacja, która nadaje dłuższą ramkę.

Dołączanie stacji do pierścienia logicznego

Każda stacja należąca do pierścienia ma obowiązek okresowo stwarzać możliwość wstępu nowej stacji do pierścienia. Zadanie to realizowane jest przez procedurę żądanie następcy (solicit successor procedure). Posiadacz tokena (na rysunku 4.4 stacja 80) wysyła ramkę sterującą żądanie następcy (solicit successor frame), która stanowi zaproszenie stacji posiadających adresy pomiędzy adresem tej stacji a adresem stacji następnej w pierścieniu, do wejścia do pierścienia. Stacja nadająca oczekuje następnie przez czas równy jednej szczelinie czasowej (tak zwane okno odpowiedzi) na odpowiedź. Może wystąpić jeden z czterech przypadków:

Brak odpowiedzi. żadna stacja nie chce wejść do pierścienia logicznego. Posiadacz tokena przekazuje go następnej stacji.
Jedna ważna odpowiedź. Jedna stacja jako odpowiedź wysyła ramkę sterującą wyznaczanie następcy.(set successor frame). Posiadacz tokena określa jako swojego nowego następcę stację żądającą wejścia do pierścienia i przekazuje jej token. Nowa stacja ustala swoje miejsce w pierścieniu (adresy poprzednika i następcy) i kontynuuje normalni pracę.
Nakładające się odpowiedzi z kilku stacji. Jeżeli więcej niż jedna stacja żąda wejścia do pierścienia (wysyła ramkę wyznaczanie_następcy), następuje kolizja. Konflikt jest rozwiązywany przez procedurę bazującą na indywidualnym adresie stacji.Posiadacz tokena wysyła ramkę sterującą rozstrzyganie sporu (resolve_contention frame) i czeka przez czas czterech okien, których długość równa jest czasowi trwania ramki wyznaczanie_następcy. Każda ze stacji domagających się wejścia do pierścienia może odpowiedzieć na ramkę rozstrzyganie sporu w jednym z tych czterech okien, w zależności od pierwszych dwóch bitów adresu. Jeżeli stacja chcąca wstąpić do pierścienia wykryje ramkę zanim nadejdzie przydzielone jej okno, rezygnuje z dalszego ubiegania się o wstęp do pierścienia. Jeżeli posiadacz tokena odbierze ważną ramkę wyznaczanie następcy, włączy stację, która wysłała tę ramkę do pierścienia Jeżeli nadal ramki wyznaczanie następcy, nadawane przez stacje ubiegające się o wejście do pierścienia, pokrywaj się, to posiadacz tokena kontynuuje próbę rozstrzygnięcia konfliktu wysyłając kolejną ramkę rozstrzygnięcie sporu. Teraz odpowiedzieć na nią mogą tylko te stacje, które odpowiedziały poprzednio, a okno czasowe na wysłanie odpowiedzi określone jest stanem kolejnych dwóch bitów adresu. Proces ten jest kontynuowany aż do odebrania ważnej ramki wyznaczanie następcy, stwierdzenia braku odpowiedzi lub wyczerpania zadanej ilości prób. W ostatnich dwóch przypadkach posiadacz tokena rezygnuje i przekazuje token swojemu poprzedniemu następcy.
Odebranie nieważnej odpowiedzi. Jeżeli posiadacz tokena odbierze ramkę różną od wyznaczanie następcy, to przyjmuje, że inna stacja posiada token i aby uniknąć konfliktu zawiesza aktywność lub nasłuchuje łącze.

Opuszczanie pierścienia logicznego

Opuszczenie pierścienia logicznego jest funkcji łatwą do realizacji. Jeżeli stacja C chce wystąpić z pierścienia, oczekuje na token ze stacji B, po czym wysyła ramkę wyznaczanie_następcy do swojego poprzednika (stacji B) zawierającą adres swojego następcy (stacji D). Tak więc niedawny następca stacji C, staje się nowym następcą stacji B, po opuszczeniu pierścienia przez stację C. Stacja opuszczająca pierścień, przekazuje następnie token do swojego następcy. W kolejnym obiegu tokena stacja B prześle token do stacji D. Za każdym razem, gdy staja otrzymuje token, automatycznie ustawia adres swojego poprzednika równy adresowi źródła odczytanemu z ramki tokena (w przykładzie D-B). W ten sposób stacja C zostaje wyłączona poza pierścień.

Zarządzanie błędami

Stacja posiadająca token jest zobowiązana reagować na różne sytuacje nieprawidłowe. I tak na przykład, podczas posiadania tokena, staja może odebrać ramkę świadczącą o tym, że inna stacja również ma token. Jeżeli tak, powinna ona natychmiast porzucić token poprzez przejście do nasłuchu łącza. W ten sposób ilość posiadaczy tokena zmniejsza się do 1 lub 0, co rozwiązuje problem wielokrotnego tokena (problem taki pojawia się w przypadku, gdy powtarza się adres którejś ze stacji). Może się też zdarzyć, że stacja wysyła token ale nie otrzymuje jego akceptacji przez adresata. Sytuację taką rozwiązuje mechanizm powtarzania transmisji tokena.

Ściśle określona musi być również reakcja na uszkodzenie stacji wykrywane przez jej poprzednika w pierścieniu podczas nieudanej próby przekazania tokena do tej stacji. Stacja przekazująca token zobowiązana jest w takiej sytuacji do zainicjowania procedury żądanie następcy (solicit successor procedure). Jeżeli odbiornik stacji posiadającej token ulegnie uszkodzeniu, stacja powinna zrezygnować z próby przekazania tokena i przejść do stanu pracy jałowej. Wreszcie, jeżeli zostanie stwierdzony brak tokena w pierścieniu, jedna lub kilka stacji rywalizuje o możliwość restartu pierścienia.

Przekazywanie tokena

Jeżeli nie ma ramki lub został przekroczony czas posiadania tokena, stacja posiadająca token przesyła go do swojego następcy. Następca natychmiast po odebraniu tokena, powinien wysłać ramkę danych lub przekazać token dalej. Po wysłaniu tokena, stacja która go nadała nasłuchuje łącze przez jedną szczelinę czasowi aby nabrać pewności, że jej następca jest aktywny (transmituje ramkę). Przy próbie przekazania tokena mogą zajść następujące przypadki:

Jeżeli następca jest aktywny, stacja która wysłała token odbierze ważni ramkę i pozostanie w trybie nasłuchiwania łącza.
Jeżeli posiadacz tokena odbiera sygnał zakłócony (jako skutek kolizji), przechodzi do stanu oczekiwania, który trwa przez cztery szczeliny czasowe. Jeżeli w tym czasie odbierze ważni ramkę, przyjmuje, że jego token został przekazany, jeżeli nie, ponownie wysyła token uznając, że poprzedni został zniekształcony.
Jeżeli stacja, która wysłała token nie stwierdza obecności ramk i w łączu, ponownie nadaje token do tego samego następcy.
Po dwukrotnej nieudanej próbie przekazania tokena, stacja przyjmuje, że jej następca uległ uszkodzeniu i wysyła ramkę kto następuje (who_follows), za pośrednictwem której zapytuje o następcę uszkodzonej stacji. Nadawca tokena powinien otrzymać w odpowiedzi ramkę wyznaczanie_następcy od następnej (za uszkodzoną) stacji w pierścieniu. Pozwala to nadawcy tokena na zmianę adresu następcy i przejście do stanu nasłuchu łącza.
Jeżeli nadawca tokena nie otrzyma odpowiedzi na ramkę kto następuje, ponawia próbę.
Jeżeli dwukrotne wysłanie ramki kto następuje nie przyniesie rezultatu, posiadacz tokena wysyła ramkę żądanie następcy z pełnym zakresem adresu (co oznacza, że każda stacja jest zapraszana do odpowiedzi). Jeżeli procedura żądanie następcy działa, zostaje utworzony pierścień logiczny składający się z dwóch stacji i operacje są kontynuowane.
Jeżeli zastosowanie procedury żądanie następcy zawiedzie, stacja przyjmuje, że wystąpił jakiś poważny błąd. Jeżeli ma ona jeszcze jakieś dane do przesłania, transmituje je, po czym próbuje ponownie przekazać token. W przeciwnym wypadku kończy nadawanie i przechodzi do nasłuchu magistrali.

Kontroler interfejsu TOKENBUS

Przykładem kontrolera interfejsu TOKENBUS (TBC) jest układ scalony SAB 82510 produkowany przez firmę Siemens [21], posiadający 68 wyprowadzeń. Protokół dostępu do łącza realizowany przez TBC jest zgodny ze standardem IEEE 802.4 TOKENBUS Standard, MAP Standard (manufacturing automation protocol) i PROWAY C Standard. Adresacja stacji sieci lokalnej (LAN) stosowana w TBC obejmuje adresy zapewnia adresy grupowe i rozgłoszeniowe, co upraszcza administrację adresami w sieciach wielosegmentowych. Układ przystosowany jest do współpracy z modemem SAB 82511, za pośrednictwem którego łączy się ze standardowym kablem koncentrycznym lub kablem koncentrycznym CATV. Wymianą danych w systemie odbywa się w trybie półdupleksowym. TBC przystosowano do pracy w systemie, który zawiera mikroprocesor oraz dwudostępną pamięć. Mikroprocesor steruje TBC za pośrednictwem rozkazów zapisywanych do pamięci wspólnej. Kontroler raz zainicjalizowany przez mikroprocesor, samodzielnie nadaje oraz odbiera ramki do/z sieci LAN. Transfer danych realizowany przez TBC odbywa się zawsze pomiędzy łączem fizycznym sieci a buforami w pamięci lokalnej (pamięć wspólna). W przypadku nadawania, TBC dokonuje konwersji danych z postaci równoległej na szeregowa w przypadku odbioru odwrotnie. Funkcje zarządzania pierścieniem logicznym, takie jak dołączanie lub usuwanie stacji, i rozpoznawanie błędów, są realizowane przez TBC za pośrednictwem rozkazów “logging” oraz “error detection”. Kontroler SAB 82510 można bezpośrednio podłączyć do lokalnej magistrali systemu mikroprocesorowego opartego na mikroprocesorach Intel 8086 (80186, 80286) lub Motorola 68000. Do wyboru odpowiedniego sterowania (dla systemu Intel lub Motorola) przewidziano oddzielne wyprowadzenie.

Odniesienie do standardu IEEE 802.4

Kontroler 82510 wraz z modemem 82511 reprezentują pełni implementację normy IEEE 802.4. Na rysunku 4.6 przedstawiono odniesienie pomiędzy IEEE 802.4 a jego realizacji sprzętową. SAB 82510 jest w istocie inteligentnym procesorem komunikacyjnym, który w całości zarządza procesem nadawania i odbioru ramek przez sieć TOKENBUS. Odciąża to procesor nadrzędny (host CPU) z zadań związanych z zarządzaniem komunikacji, takich jak kontrola dostępu do łącza oraz zarządzanie łańcuchem buforów. TOKENBUS kontroler efektywnie wykorzystuje poprzez łączenie danych w łańcuch bez interwencji CPU. TBC implementuje wszystkie funkcje warstwy MAC (Medium Access Control) zgodnie z normą IEEE 802.4. W tym rozwianiu, mikroprocesor nadrzędny jest wykorzystywany do przydziału transmitowanych ramek do jednej z 4 kolejek, zgodnie z przypisaną im klas dostępu do łącza. Kontroler TBC spełnia również pewne funkcje podwarstwy LLC związane z kontroli czasu realizacji polecenia “żądanie z odpowiedzi” (request with response), ponieważ realizacja tego zadania w mikroprocesorze nadrzędnym byłaby zbyt wolna. Interfejs pomiędzy warstwami opisywany jest przez tak zwane prymitywy obsługi (service primitives). Każda warstwa świadczy pewne usługi dla warstwy znajdującej się powyżej, dostępne za pośrednictwem prymitywów przekazywanych pomiędzy warstwami. Każde wydarzenie jest w modelu IEEE 802.4 opisywane jako proste przekazanie prymitywu obsługi przez interfejs. Zdefiniowano trzy rodzaje prymitywów

Żądanie (request primitive) – prymityw wystawiany przez warstwę N+1 (korzystając~ z usług warstwy N) wywołujący określoną procedurę warstwy niższej N.
Indykacja (indication primitive) – prymityw wystawiany przez warstwę niższą N (świadczącą usługi) informujący warstwę wyższą N+1 o tym, że pojawiło zapotrzebowanie na jej usługi zgłaszane przez warstwę N+2 innej stacji lub przez warstwę niższą N własnej stacji.
Potwierdzenie (confirmation primitive) – prymityw wystawiany przez warstwę niższą N i skierowany do warstwy wyższej N+1 potwierdzający zakończenie poprzednio zażądanej usługi. Potwierdzenie może być pozytywne (realizacja zadania zakończona sukcesem) lub negatywne (niemożliwość wykonania zadania – wystąpienie błędów).

Prymitywy pomiędzy warstwami LLC i MAC

MA Data.Kequest (żądanie transmisji ramki skierowane do MAC) – wystawiane jest przez mikroprocesor nadrzędny (LLC), który umieszcza je w jednym z transmitowanych łańcuchów. Priorytet jest częściowo zawarty w klasie dostępu przypisanej kolejce, w której znajduje się ramka, a bit IR w FCB określa, czy jest to żądanie bez odpowiedzi lub żądanie z odpowiedzi (natychmiastową). Transmisja ramki na “żądanie z o dpowiedzią” realizowana jest przez TBC bezpośrednio po wydaniu polecenia, tak że mikroprocesor nadrzędny nie jest angażowany w realizację tego zadania, za wyjątkiem obowiązku przygotowania bufora dla ramki odpowiedzi.
MA_Data.Indication (odebranie ramki przez MAC) – TBC umieszcza odebraną ramkę w buforze odbiorczym na określonym poziomie dostępu. Odbiór ramek połączony jest zatem z ich separacją zgodnie z przypisaną im klask dostępu. Ramki odpowiedzi (reakcja na “żądanie z odpowiedzi”) wprowadzane są do bufora odbiorczego znajdującego się bezpośrednio za buforem ramki nadawanej.
MA_Data.Confirmation (potwierdzenie poprawnej realizacji polecenia tub zgłoszenie błędu) – jest sygnalizowane mikroprocesorowi nadrzędnemu (LLC) poprzez wpisanie odpowiedniej informacji do słowa statusu bloku kontrolnego ramki (FCB). Dotyczy to również potwierdzenia (ACK) lub braku potwierdzenia (NACK) realizacji polecenia “żądanie z odpowiedzi”.

Prymitywy pomiędzy SM (Station Management) i MAC
MA_Initialize_Protocol.Request (zerowanie MAC, stacja poza pierścieniem logicznym) – prymityw implementowany przez zerowanie (reset) sprzętowe. Po zerowaniu TBC może realizować prosty protokół TOKENBUS nie obejmujący funkcji repitera. MA_Initializę Protocol.Confirmation (potwierdzenie wykonania zerowania) – prymityw wystawiany przez TBC. Jest to przerwanie do mikroprocesora nadrzędnego po wykonaniu pierwszego rozkazu po zerowaniu. MA Set_Value.Request (ustawienie wartości zmiennych MAC) – rozkaz confiQure (konfiguracja) ustawia długość adresu, długość preambuły, maksymalni ilość powtórzeń itp. Rozkaz addresses (adres) ustawia indywidualny adres stacji. Rozkaz tuner (układ czasowo-licznikowy) ustawia wszystkie żądane wartości układu czasowo-licznikowego. MA Set Value.Confirmation – TBC przerywa pracę mikroprocesora nadrzędnego po wykonaniu każdego rozkazu. W przypadku zablokowanego układu przerwań potwierdzenie jest niejawne (stanowi go brak błędów w raporcie TBC skierowanym do mikroprocesora nadrzędnego). MA_Read_Value.Request and Confirmation – wartość następnej stacji jest odczytywana rozkazem updata status; TBC zapisuje wartość do bloku statusowego. Poprzednik oraz liczba repetycji mogą być odczytane przez rozkaz TESTINF. MA Event.Indication – zgłoszenie przez TBC zmiany adresu następnika w pierścieniu poprzez przerwanie do mikroprocesora nadrzędnego, połączone z zapisem nowego adresu w bloku statusowym. MA Fault Report.Indication – prymityw realizowany poprzez zgłoszenie przez TBC przerwania skierowanego do mikroprocesora nadrzędnego i ustawienie odpowiedniego bitu w słowie informującym o wystąpieniu błędu i jego rodzaju. MA_Group Address.Request – prymityw realizowany przez rozkaz addres jest skierowany z mikroprocesora nadrzędnego do TBC. MA_CData – prymitywy implementowane w taki sam sposób jak odpowiadające im prymitywy MA_DATA.

Prymitywy pomiędzy warstwami MAC i PHY (Phisical layer – warstwa fizyczna)

PHY_Data.Request (przekazanie symbolu do modemu) realizowane poprzez wyprowadzanie zgodnie z taktem zegara, zakodowanych symboli z TBC do modemu przez trzy linie interfejsu TBC – modem przeznaczone do transmisji.
PHY_Data.Indication (odebranie symbolu z modemu) – realizowane poprzez wprowadzanie zgodnie z taktem zegara, zakodowanych symboli z modemu do TBC przez trzy linie interfejsu TBC – modem przeznaczone do odbioru.
PHY Mode.Request (inicjalizacja).
PHY_Notify.Request (poinformowanie PHY o odebraniu znacznika końca ramki) implementowane w TBC w sposób niejawny.

Schemat funkcjonalny TBC

TBC zawiera następujące bloki funkcjonalne: interfejs mikroprocesora nadrzędnego, RAM/F)FO, mikrokontroler, zespół jednostek czasowo-licznikowych, układ sterowania oraz interfejs TOKENBUS. Wymienione dwa zewnętrzne interfejsy służb odpowiednio do komunikacji z mikroprocesorem nadrzędnym (interfejs użytkownika) oraz z sieci lokalni TOKENBUS. Wewnątrz TBC znajduje się 16-bitowa magistrala danych i 8-bitowa magistrala adresów przeznaczone do wewnętrznej komunikacji. W trybie testowania możliwe jest zamknięcie wewnętrznej pętli sprzężenia zwrotnego w celu sprawdzenia poprawności generacji FCS w układzie nadajnika i jego kontroli w układzie odbiornika. Pozwala to również na sprawdzenie mikrokodu w pamięci ROM kontrolera. TBC zwraca wyniki testu poprzez ich zapis do bloku statusowego bezpośrednio po zakończeniu testu.

Interfejs TBC – mikroprocesor nadrzędny

TBC został zaprojektowany do połączenia z 16-bitowymi mikroprocesorami firmy Intel (8086, 80126, 80286) lub Motorola (68000). Podstawowa różnica leży tu w protokole wymiany danych oraz w organizacji czasowej sygnałów sterujących. Mikroprocesor nadrzędny i TBC komunikują się przy wykorzystaniu sygnałów Channel Attention (CA) i przerwania (Ih1TR). Kiedy mikroprocesor nadrzędny ma rozkaz do wykonania przez TBC, wystawia CA. Gdy TBC zapisał (uaktualnił) blok statusowy, wysyła przerwanie aby poinformować mikroprocesor o konieczności odczytu bloku statusowego. Cała pozostała komunikacja pomiędzy mikroprocesorem nadrzędnym a TBC odbywa się przez obszar wspólny pamięci RAM. Pierwszym zadaniem, które musi wykonać projektant systemu, jest określenie położenia wskaźnika konfiguracji systemu (SCP – system configuration p ointer), co odbywa się przez ustawienie poziomu logicznego na dwóch przeznaczonych do tego wejściach kontrolera TBC. W ten sposób dokonuje się wyboru jednego z czterech wskaźników, które przechowywane są w pamięci ROM kontrolera. Podczas normalnego działania, po załączeniu napięcia zasilającego, TBC przechodzi do stanu “master reset”. W stanie tym skuje na ustawienie CA` przez mikroprocesor nadrzędny, po czym odczytuje wskaźnik ´ z pamięci ROM oraz wskaźnik do statusowego bloku inicjalizacyjnego (ISBP) upięci RAM, gdzie zapisał go mikroprocesor nadrzędny. Zanim mikroprocesor nadrzędny wystawi CA po raz pierwszy po zerowaniu, musi zapisać wskaźnik konfiguracji systemu (SCP), wskaźnik ISBP, blok statusowy (łącznie ze wskaźnikiem do pierwszego bloku rozkazowego) oraz conajmniej jeden blok rozkazowy do cięci RAM. Jest to konieczne, ponieważ TBC korzysta ze wskaźników do pierwszego bloku rozkazowego, którego rozkazy wykonuje bezpośrednio po odbiorze CA z mikroprocesora nadrzędnego. Mikroprocesor nadrzędny może dodać więcej bloków rozkazowych na końcu łańcucha poprzez wpisanie “wskaźnika do następnego bloku” do ostatniego bloku łańcuchu. Wskaźnik ten adresuje pierwszy z grupy nowych bloków. Jeżeli dołącza się jej niż jeden blok, wskaźniki do kolejnych bloków muszą być ustawione zanim wspomniane nowe bloki zostaną dodane. Mikroprocesor nadrzędny musi przygotować ponadto blok kontrolny ramki (FCB- Frane Control Block), deskryptory buforów danych oraz bufory danych, zanim TBC pocznie odbierać ramki z sieci. W taki sam sposób, zanim do TBC zostanie wysłane cenie transmisji ramki, mikroprocesor nadrzędny musi przygotować blok adresowy, i FCB ramek nadawanych, bufor deskryptorów i bufory) danych nadawanych.

Struktura bloku statusowego i rozkazowego kontrolera TBC

Koncepcja współpracy pomiędzy TBC i mikroprocesorem nadrzędnym polega na stworzeniu “skrytki pocztowej”, którą stanowi struktura bloków w pamięci. Mikroprocesor nadrzędny nigdy bezpośrednio nie czyta z lub zapisuje do TBC, lecz tylko z/do bloków statusowego i rozkazowego w pamięci. Zarówno normalny status jak i sygnalizacja błędów jest tam raportowana, i TBC przerywa pracę mikroprocesora nadrzędnego po każdym uaktualnieniu buforów w pamięci. Mikroprocesor nadrzędny wykorzystuje blok statusowy do przekazania połączenia do bloków rozkazowych jak również do sygnalizacji TBC, że obsłużył jego przerwanie. Dla celów testowania, mikroprocesor nadrzędny może bezpośrednio odczytać i zapisać rejestry TBC, ale wymaga to dwóch cykli magistrali mikroproce-sora przy każdym dostępie. TBC ma dostęp tylko do tej części pamięci, gdzie znajduje się blok statusowy, bloki rozkazowe, jak również blok adresowy, FCB i bufory danych.

Opis bloku statusowego

TBC zapisuje informacje statusowe oraz dane statystyczne sieci do bloku statusowego, skąd mogą być następnie odczytane przez mikroprocesor nadrzędny. W bloku statusowym raportowany jest zarówno normalny status, jak i błędy. Po każdym uaktualnieniu bloku TBC wystawia przerwanie. Mikroprocesor nadrzędny wykorzystuje blok statusowy do przekazania połączenia do bloku rozkazowego oraz do powiadomienia TBC, że obsłużył jego przerwanie.

Opis bloku rozkazowego

Mikroprocesor nadrzędny zapisuje łańcuch bloków rozkazowych wraz z zaznaczeniem typu rozkazu i wszystkimi informacjami odpowiadającymi poszczególnym rozkazom. TBC odczytuje każdy blok i wykonuje rozkazy. Pierwsze dwa słowa w każdym bloku stanowią wskaźnik do następnego bloku rozkazowego w łańcuchu. W trzecim słowie występuje ważny znacznik CE ustawiany przez mikroprocesor nadrzędny, który sygnalizuje ostatni blok w łańcuchu. TBC wykonuje następujące typy rozkazów:

NOP
TEST – sprawdzenie konfiguracji oraz poprawności wykonania,
ADDRESSES – stacji i grupowy,
TIMERS – ustawienie parametrów jednostek czasowo-licznikowych,
UPDATE STATUS – uaktualnienie statusu,
IDLE – praca jałowa,
OUT OF RING – opuszczenie pierścienia logicznego,
IN RING – włączenie stacji do pierścienia logicznego,
RECEIVE
TRANS MIT RECEIVE I RANSMIT MONITOR – odbiór wszystkich ramek, normalne nadawanie i odbiór wyłączone.

Struktura bloku adresowego ramek nadawanych

Blok adresowy ramek nadawanych przechowuje wskaźniki do łańcuchów bloków danych nadawanych o czterech priorytetach (najwyższy, 4, 2 i 0). Mikroprocesor nadrzędny na początku zapisuje adres bloku FCB pierwszej ramki w kolejce ramek o określonym priorytecie. Jeżeli w kolejce o danym priorytecie nie ma ramek do transmisji, wskaźnik do bloku FCB pierwszej ramki jest ustawiany na 0. Kiedy TBC odczytuje blok FCB ramki, zapisuje adres bloku FCB kolejnej ramki (w łańcuchu o tym samym poziomie dostępu) do bloku wskaźników FCB w miejsce przewidziane dla połączenia z pierwszym FCB. Wskaźnik do bloku FCB poprzedniej, wysłanej już przecież ramki, nie jest potrzebny, a konieczne jest zapewnienie połączenia do następnej ramki. Po odczytaniu ostatniego bloku FCB w łańcuchu, TBC zapisuje 0 do bloku adresowego.

Struktura bufora ramek nadawanych

Każdej ramce przypisany jest blok kontrolny ramki (FCB). Zamiast przypisania ramce jednego bufora danych, ramkę podzielono na części, które zostają zapisane do buforów danych o niewielkiej długości. Duże amki wymagaj więcej buforów. Takie postępowanie zapewnia efektywne wykorzystanie pamięci i zapobiega marnowaniu jej dużych obszarów przy przechowywaniu krótkich ramek. Każdy bufor danych ma swój deskryptor, w którym znajdują się podstawowe informacje organizacyjne, takie jak: długość bufora danych oraz wskaźnik do bufora danych. Deskryptor zawiera również wskaźnik do deskryptora następnego bufora danych w łańcuchu. Tak więc łańcuchowy bufor danych opisywany jest przez łańcuchowy bufor deskryptorów. Blok kontrolny ramki zawiera wskaźnik do pierwszego deskryptora w łańcuchowym buforze deskryptorów. Deskryptor ten z kolei wskazuje na pierwszy bufor danych w łańcuchowym buforze danych.

Struktura bufora ramek odbieranych

TBC zaprojektowano do odbioru ramek bez interwencji mikroprocesora nadrzędnego. Podczas inicjalizacji mikroprocesor nadrzędny organizuje łańcuchowy bufor ramek odebranych. Wykorzystuje się cztery łańcuchy, po jednym dla każdej klasy dostępu. Kontroler TBC umieszcza dane we właściwym łańcuchu podczas odbioru ramki. Łańcuch odbiorczy składa listy bloków kontrolnych (FCB) ramek odebranych, przy czym jeden blok przyporządkowany jest każdej ramce. Ponieważ nieznana jest długość nadchodzących ramek, kontroler przechowuje ramki w sekwencji małych buforów danych, które są ze sobą echowo połączone aż do zakończenia ramek. Bufory danych są łączone przez bufor deskryptora, który wskazuje na bufor danych. Po odbiorze ramki, TBC uaktualnia status i i zapisuje informację o jej długości do bloku kontrolnego ramki. TBC ponadto uaktualnia deskryptor ramki i bufor deskryptora t ak, aby zawsze wskazywał na następny FCB.

Natychmiastowa odpowiedź

Opcja natychmiastowej odpowiedzi pozwala na krótką komunikację z nową stacją bez przekazania jej tokena, co realizowane jest za pośrednictwem funkcji “żądanie z odpowiedzią”. Polega to na wyznaczeniu nowej stacji do nadawania jedynie na czas przesłania ramki odpowiedzi. Żądanie (request) zostaje umieszczone w jednym z łańcuchów bufora ramek nadawanych. Ponadto mikroprocesor nadrzędny uaktywnia znacznik IR (Immediate Response) w FCB, który informuje TBC, że oczekiwana jest odpowiedź po transmisji tej ramki. TBC zapisuje dane lub odpowiedź potwierdzającą z odległej stacji, w jednym lub więcej buforach dołączanych na końcu ostatniego bufora ramki polecenia. Długość odpowiedzi jest zapisywana do bloku kontrolnego FCB na pole “długość ramki”. Podczas zapisu odpowiedzi do łańcucha buforów danych; TBC może sprawdzać stan znacznika BE (ostatni bufor) w każdym deskryptorze bufora danych, aby nie wyjść poza obszar pamięci przypisanej przez mikroprocesor nadrzędny dla odebranej ramki. Odpowiedź o długości większej od rozmiaru bufora odbiorczego powoduje błąd. Odległa stacja, która wysyła natychmiastowi odpowiedź musi mieć bufor zawierający ramkę odpowiedzi i musi zapewnić krótki czas jej przekazania. Krótkie odpowiedzi potwierdzające typu ACK lub NACK nie wymagaj zewnętrznego bufora i mogą pochodzić ;pośrednio z kontrolera TBC odległej stacji.

Organizacja stacji TOKENBUS

Wymiana komunikatów pomiędzy TBC i mikroprocesorem nadrzędnym odbywa się za pośrednictwem dwudostępnej pamięci RAM.

Modem

Typy modemów pracujących w paśmie podstawowym

Modemy pracujące w paśmie podstawowym (baseband) można podzielić na dwie grupy: o modemy z przełączaniem częstotliwości (FSK – f requency shift keying) przy zachowaniu ciągłości fazy (phase continous), oraz modemy z przełączaniem częstotliwości przy zachowaniu koherencji fazowej.

FSK jest techniką modulacji polegającą na reprezentowaniu informacji przez częstotliwość sygnału nadawanego, przy czym do dyspozycji pozostaje tylko kilka (najczęściej dwie lub trzy) wartości częstotliwości , które przełączane są zgodnie z wysyłani informacją.

FSK z zachowaniem ciągłości fazy jest szczególnym rodzajem FSK, w którym zmiany pomiędzy częstotliwościami nośnika są dokonywane przy zachowaniu ciągłości fazy (w odróżnieniu od nieciągłego zastąpienia jednej częstotliwości przez drugi, jak to na przykład ma miejsce przy prostym kluczowaniu).

FSK z zachowaniem koherencji fazowej jest szczególnym rodzajem FSK, w którym wartości dwóch częstotliwości sygnału nośnego są całkowitą wielokrotnością (lub podwielokrotnością) szybkości modulacji stosowanej w systemie i przełączenia pomiędzy dwoma częstotliwościami dokonywane są w chwili przejścia sygnału przez zero.

TOKENBUS modem SAB 82511

TOKENBUS modem SAB 82511 [22] jest układem pracującym w paśmie podstawowym należącym do grupy fazowo-koherentnych modemów z przełączaną częstotliwości. Może być stosowany do pracy z częstotliwości modulacji 5 lub 10 Mbitów/s i spełnia wszystkie wymagania standardów IEEE 802.4, PROWAY C i MAP. Układ zamknięty jest w obudowie zawierającej 28 wyprowadzeń i umożliwia podłączenie kontrolera TBC do kabla transmisyjnego.

Interfejs do kontrolera TBC

Komunikacja pomiędzy kontrolerem TBC (podwarstwa MAC) a modemem (warstwa PHY) realizowana jest za pośrednictwem dwóch prymitywów: Phy_Data.Request (kierunek nadawania) oraz Phy_Data.Indication (kierunek odbioru). TBC generuje 5 symboli do zakodowania w modemie w celu ich nadania: Zero (Zero), One (Jeden), Pad Idle (Stan Jałowy), Silence (Cisza) i Non-Data (Brak Danych). Są one przekazywane do modemu za pośrednictwem 3 linii nadawczych TxSYM2, TxSYMI i TxSYMO oraz z modemu (do TBC) liniami RxSYM2, RxSYMI, RxSYMO. Modem sygnalizuje dodatkowo wykrycie nieznanego sygnału “Niewłaściwy Sygnał” (Bad Signal). W celu zminimalizowania ilości linii sygnałowych, funkcje zarządzania stacji wymagane przez warstwę fizyczną wykorzystują wspomniane linie łącznie. Wśród wyprowadzeń modemu są dwie dodatkowe linie (TxSYM3, RxSYM3 nazywane również SMRQ i SMIND) pozwalające na wybór jednego z dwóch t rybów: tryb SM (zarządzanie) oraz tryb MAC. Schemat kodowania w trybie MAC przedstawiaj tablice 1 i 2, a w trybie SM tablice 3 i 4.

Tablica 1. Kodowanie symboli przesyłanych z MAC do modemu (tryb MAC, nadawanie)

  TxSYM2 TxSYM1 TxData
Silence 1 1 x
Pad Idle 0 1 x
Non-Data 1 0 x
Zero 0 0 0
One 0 0 1

Tablica 2. Kodowanie symboli przesyłanych z modemu do MAC (tryb MAC, odbiór)

  RxSYM2 I RxSYM1 RxData
Silence 1 1 x
Non-Data 1 0 x
Z8r0      
One 0 0 1
Bad Signal* 0 1 x

* informacja o odebraniu niewłaściwego sygnału

Tablica 3. Kodowanie informacji kontrolnych przesyłanych z modemu do SM (tryb SM, RxSYM3=0, indicationl confirmation)

  RxSYM2 . I RxSYM1 RxData
Silence 1 1 x
Non-Data 1 0 x
Z8r0      
One 0 0 1
Bad Signal* 0 1 x
  RxSYM2 RxSYM 1 I RxSYMO
NAK (brak potwierdzenia) 1 0 1
ACK (potwierdzenie) 0 1 1
IDL 0 0 1
Błąd warstwy fizycznej 1 1 1

Tablica 4. Kodowanie informacji kontrolnych przesyłanych z SM do modemu (tryb SM, TxSYM3=0, managenent request)

  TxSYM2 TxSYMi TxSYMO
Zerowanie (Renet) 1 1 1
Wyłączenie pętli sprzężenia zwrotnego
Załączenie nadajnika
1

0

0

1

1

1

Oczekiwanie MAC/Dane szeregowe p 0 1

Oczekiwanie MAC/Dane szeregowe p 0 1

Interfejs kabla transmisyjnego

Kodowanie symboli

Układ spełniający funkcje warstwy fizycznej wprowadza do kabla transmisyjnego symbole przekazywane mu przez podwarstwę MAC podczas nadawania. Możliwymi symbolami z MAC są: Zero (Zero), Jeden (One), Nie-Dane (Non-Data), Symbol Jałowy (Pad Idle) i Cisza (Silence). Każdy z wymienionych symboli MAC jest zamieniany w parę symboli warstwy fizycznej (PHY symbols), utworzoną z symboli (H), (L), (off) trój-elementowego kodu. Zasady kodowania są następujące:

Silence – każdy symbol reprezentujący ciszę jest kodowany jako sekwencja (off off).
Pad idle – symbole jałowe kodowane (LL, HH).
Zero – każdy symbol zero jest kodowany jako sekwencja (HH).
One – każdy symbol jeden jest kodowany jako sekwencja (LL).
Non-data – symbole non-data są transmitowane przez podwarstwę MAC w parach. Każda para symboli non-data jest kodowana jako sekwencja (HL)(LH). Symbole te wykorzystywane są w znacznikach początku i końca r amki.

Zgodnie z przedstawiono regułą kodowania symboli, sekwencja reprezentująca znacznik początku ramki (start frame delimiter) Non-Data Non-data Zero Non-Data Non-Data Zero zostanie zamieniona w sekwencję (HL) (LH) (HH) (HL) (LH) (HH) a sekwencja kończąca ramkę (and frame delimiter Noa-Data Non-Data Zero Noa-Data Non-Data Zero zostanie zakodowana w sekwencję (HL) (LH) (LL) (HL) (LH) (LL)

Sygnał linii

Symbole generowane przez warstwę fizyczną (PHY symbols) są bezpośrednio przetwarzane na sygnał w linii transmisyjnej zgodnie z zasadą działania modemu FSK z zachowaniem koherencji fazowej.

Reprezentacja symboli PHY (H, L i off) w kablu jest następująca

Symbol (H) jest reprezentowany jednym pełnym cyklem sygnału o okresie równym połowie czasu trwania kodowanego symbolu MAC. Poziom sygnału na początku i na końcu wynosi zero.
Symbol (L) jest reprezentowany połowi cyklu sygnału o okresie równym czasowi trwania kodowanego symbolu MAC. Poziom sygnału na p oczątki i na końcu wynosi zero. Faza połówki cyklu zmienia się przy każdym kolejnym symbolu L.
Symbol (off jest reprezentowany brakiem sygnału przez czas równy połowie czasu trwania symbolu MAC.

W tablicy 5 przedstawiono częstotliwości sygnału w linii przy dwóch szybkościach modulacji.

Tablica 5. Częstotliwość sygnału w zależności od szybkości transmisji

Szybkość transmisji danych [Mbitówls] Częstotliwość niższego tonu [MHz] Częstotliwość wyższego tonu [MHz]
5 5.0 10.0
10 10.0 20.0

Dekodowanie symboli

Po demodulacji i wydzieleniu poszczególnych symboli PHY są one następnie dekodowane na symbole MAC w procesie odwrotnym jak przy nadawaniu. Dopuszcza się dekodowanie przez odbiornik symboli pad-idle jako “one”.

System z nadmiarowąc linię transmisyjną

Nadmiarową linię transmisyjną stosuje się w celu podniesienia niezawodności systemu. Kabel (warstwa 0) i modem (warstwa fizyczna) zostają zwielokrotnione i współpracuj z jednym kontrolerem TOKENBUS (podwarstwa MAC) przez selektor linii ALS (Auto Line Selector).

Zasada pracy takiego systemu jest następująca:

Transmisja:

Nadawanie odbywa się przez wszystkie dostępne kable.
Zarządzanie SM jest możliwe dla każdego kabla oddzielnie.

odbiór:

Ciągły nasłuch wszystkich kabli.
ALS wybiera kabel, w którym po okresie ciszy może być ważny sygnał.
Zarządzanie stacji powinno sprawdzać zgłoszenie “sygnał ważny” z każdego kabla.
Zarządzanie stacji powinno wybrać jedną z linii zgłaszającą “dane ważne”.