KNX dla profesjonalisty cz. 17 – Warstwa łącza danych – struktura ramki
WARSTWA ŁĄCZA DANYCH
Struktura ramki
Najmniejsza, niezależna porcja informacji w sieci nazywana jest ramką (często w literaturze określana z j. niem. telegramem). Wysyłana ona jest przez urządzenia magistralne w przypadku wystąpienia jakiegokolwiek zdarzenia w układzie. Ramka zbudowana jest z ośmiobitowych porcji informacji użytkowej – jest to struktura bajtowa. Każda porcja danych jest uzupełniana w bit startu („0” logiczne) na początku oraz bit kontrolny i bit stopu („1” logiczne) na końcu każdej porcji – razem 11 bitów. Ramka w KNX zawiera od 10 do 23 porcji (bajtów z dodatkowymi bitami) w zależności od wielkości pola z informacją użyteczną. Stanowi to od 110 do 253 bitów informacji. Bajty przesyłane są asynchronicznie. Zawartość ramki można podzielić na cztery pola funkcyjne. Jest to pole sterujące, pole adresowe, pole danych oraz pole kontrolne.
Pole sterujące zawiera informację dotyczącą priorytetu wysyłanej informacji. Jest to informacja dwubitowa. Priorytety od najwyższego do najniższego to: systemowy, alarmowy, wysoki i niski, przy czym w przypadku nie ustalania priorytetu wiadomości automatycznie wybierany jest tryb niski. Pole sterujące ma również informację o powtarzaniu wiadomości. W przypadku ponownego wysyłania tego samego komunikatu przez urządzenie bit powtarzania zmienia swoją wartość. Jest to zabezpieczenie przed zapętleniem się ramki na magistrali.
Na początku pola adresowego znajduje się dwubajtowa informacja o adresie fizycznym urządzenia nadającego Następnie wysyłany jest adres odbiorcy komunikatu. Może to być adres indywidualny urządzenia (wykorzystywany jedynie w przypadkach szczególnych np. przesyłanie informacji systemowych) lub adres grupowy. Informacja o sposobie adresowania odbiorcy zawarta jest w 17-tym bicie niejako wypożyczonym z następnego pola – pola danych. W przypadku, gdy ten bit równa się zeru adres docelowy jest adresem indywidualnym, w przeciwnym wypadku adresowana jest grupa funkcyjna.
Pole danych prócz informacji użytecznych zawiera na początku niepełny (7-bitowy) bajt specjalny. Pierwsze trzy bity są zarezerwowane na licznik przejść. Po każdym przejściu przez sprzęgło wartość zapisana w tych bitach zmniejsza się o jeden. Standardową początkową wartością wpisywaną w to pole jest 6. Po osiągnięciu wartości 0 ramka przestaje być przesyłana po magistrali. Ponadto w przypadku wprowadzenia liczby 7 sprzęgła nie będą zmieniać licznika przy przejściach. Przeznaczone jest to dla informacji szczególnie cennych, które muszą być przesłane do adresata, nawet kosztem zapętlenia na magistrali. Kolejne cztery bity stanowią opis obiektu grupowego przesyłanego w ramce czyli długość słowa jaka będzie odczytywana w następnej kolejności. Przykładowo dla funkcji załącz/wyłącz są to 2 bajty, zaś dla zadań przesyłania tekstu lub danych pomiarowych odpowiednio więcej. Największe obiekty grupowe składają się z 16 bajtów, zatem pole danych zajmuje w ramce 17 bajtów (przy czym jeden bit jest używany przez pole adresowe).
Ostatnim elementem jest pole kontrolne. Zajmuje ono jeden bajt w strukturze ramki i służy do sprawdzania poprawności przesłanej ramki. Dzięki zastosowaniu bajtu kontrolnego możliwe jest zastosowanie sprawdzianu krzyżowego. Na tej podstawie odbiorca może określić, czy informacja została przesłana poprawnie i zażądać ponownego wysłania komunikatu.
Maciej Turski