Protokół komunikacyjny systemu KNX/EIB
Na ilustracjach pokazano, jaka jest struktura stosu komunikacyjnego KNX/EIB w
odniesieniu do siedmiowarstwowego modelu OSI (Open Systems Interconnections) opracowanego
w 1984 roku przez ISO (International Standard Organisation). Model ten stał się
podstawą do opisywania systemów komunikacji, głównie komputerowej. Stosuje się go
również do sieci przemysłowych.
Model OSI podzielony jest na siedem warstw. Każda z nich definiuje zbiór usług i
związanych z nimi protokółów (zasad komunikacji), manipulowania informacja na poziomie
danej warstwy. Każda warstwa otrzymuje informacje z bezpośrednio niższej warstwy i
przekazuje ją do bezpośrednio wyższej lub na odwrót. Ponieważ w każdej warstwie
zdefiniowano wiele różnorodnych czynności, model ten może być dopasowany do szerokiej
gamy sprzętu i programowania sieciowego. Takie warstwowe ułożenie funkcji i
protokołów daje podstawę komunikacji pomiędzy odmiennymi typami sprzętu i
oprogramowania sieciowego.
Warstwa fizyczna - odpowiada za fizyczny transport bitów, zapewnia fizyczne
dołączenie (okablowanie) do przepływu danych pomiędzy urządzeniami sieci. Definiuje
elektryczne i mechaniczne połączenia (złącza) z systemem okablowania sieci oraz
funkcje zajmujące się właściwą transmisją bitów danych pomiędzy urządzeniami
sieci.
Warstwa łącza - odpowiada za dzielenie telegramów na pakiety i odpowiednie ich
zabezpieczenie. Warstwa łącza określa podstawowe jednostki informacji (zwane pakietami)
oraz metody tworzenia, wysyłania i odbierania tych pakietów. Warstwa ta ma zapewnić
bezbłędna komunikację pomiędzy urządzeniami sieciowymi.
Komunikacja w KNX/EIB w odniesieniu do referencyjnego modelu OSI:
Warstwa fizyczna i warstwa łącza danych zależą oczywiście od cech fizycznego
medium.
Do kontroli dostępu do mediów zastosowano protokół CSMA (Carrier Sense Multiple
Access) z zoptymalizowanym unikaniem kolizji OCA (Optimised Collision Avoidance). KNX/EIB
umożliwia optymalizację mechanizmów dla określonych mediów. Wszystkie elementy
magistrali nadsłuchują, ale reagują tylko aktory, pod których adres telegramy są
skierowane. Jeśli element magistrali (sensor) chce nadać telegram, musi najpierw
"wysłuchać" magistrali i poczekać, aż żaden inny element już nie będzie
nadawał (Carrier Sense). Jeśli magistrala jest wolna, proces nadawania może rozpocząć
każdy z elementów magistralo (Multiple Access). Jeśli nadawanie rozpoczynają
równocześnie dwa elementy magistrali, na magistralę przebije się bez opóźnień ten z
wyższym priorytetem (Collision Avoidance). Drugi z nich wstrzymuje się i kontynuuje
proces przesyłu w dalszym punkcie czasowym. Jeśli oba elementy mają priorytet
jednakowy, pierwszy przebije się ten, który ma mniejszy tzw. adres fizyczny. Znacznik
DAF (Destination Address Flag) określa czy telegram (wiadomość) jest przeznaczony dla
urządzenia (Device Oriented) czy dla grupy urządzeń (Group Oriented).
Warstwa sieciowa - określa, w jaki sposób dane są kierowane z jednego
urządzenia do drugiego. Może również ukrywać niższe warstwy przed wyższymi,
umożliwiając temu samemu oprogramowaniu górno-warstwowemu wykorzystanie różnych
rodzajów sprzętu sieciowego. Ponadto w tej warstwie dane mogą być kierowane z jednego
sprzętu sieciowego do innego. W przypadku KNX/EIB warstwa sieciowa kontroluje zliczanie
skoków poprzez strukturę NPCI (Network Protokol Control Information). Dla urządzeń
innych niż routery i bridge jest to zadanie dość proste.
Warstwa transportowa - określa procedury rozpoznawania błędów, korekcji ich
oraz wymagania dotyczące powtórzeń informacji.
Warstwa sesji - koordynuje współdziałanie między funkcjami i programami
użytkowymi wykonywanymi na różnych urządzeniach sieciowych
Warstwa prezentacji - określa konwersje kodu i dopasowania formatów danych dla
programów użytkowych.
Dla wszystkich usług warstwy sesji i prezentacji są przeźroczyste.
Warstwa aplikacji - zajmuje się usługami sieciowymi i komunikacją użytkownika z
siecią (interfejs użytkownika). W przypadku KNX/EIB warstwa aplikacji implementuje API dla
zarządzenia typu klient-serwer w sieci. Warstwa aplikacji grupowych zajmuje się
przydzielaniem cr_id (Communication_Reference_ID) do lokalnej instancji obiektu
komunikacji grupowej (Group Communication Object) lub współdzielonej zmiennej, co
umożliwia otrzymywanie wiadomości typu 1-do-N i wysyłanie 1-do-1. Dla większej wygody,
zarówno obiekty komunikacji grupowej jak i obiekty rozproszone zamknięte są w warstwie
użytkownika stosu KNX/EIB, która przejmuje zadania warstwy aplikacyjnej dotyczące
aplikacji. Warstwa użytkownika pełni także rolę domyślnej aplikacji - serwera
zarządzania.
Ramki PDU (Protokol Data Unit) mogą przenosić formaty danych aplikacji o
rozmiarach do 14 bajtów (aktualnie rozważane jest rozszerzenie do 230 bajtów).
mgr inż. Wojciech Wiśniewski
Politechnika Łódzka
Za mało wiedzy? Znacznie więcej znajdziesz w poradnikach. Kliknij tu i poznaj je!
Chcesz wiedzieć więcej o nowoczesnych instalacjach? Zapisz się na darmowy poradnik.
Dodaj komentarz:
Komentarze: