4.4. TRYB KISS
Szczegóły dotyczące
trybu KISS są przewidziane dla bardziej zaawansowanych czytelników - początkujący operatorzy
stacji pakiet radio i TCP/IP mogą zapoznać się z nimi w późniejszym terminie.
Rola kontrolera TNC w trybie KISS sprowadza sie zasadniczo do roli
modemu i do przekodowywania danych z protokółu KISS na pakiety w formacie HDLC (AX.25) lub
odwrotnie oraz do sterowania nadajnikiem. Dodatkowo kontroler oblicza też sumę kontrolną
CRC zawartą w pakietach (lub sprawdza jej prawidłowość).
Bloki KISS ograniczone są na początku i na końcu za pomocą znaków
FEND o wartości szesnastkowej 0xC0 (192 dziesiętnie). Występujący wewnątrz bloku znak FEND
zastępowany jest, dla uniknięcia nieporozumień, po stronie nadawczej, przez kombinację
znaków FESC-TFEND (odpowiednio znaków o wartości szesnastkowej 0xDB i 0xDC). Po stronie
odbiorczej przywracany jest stan oryginalny. Analogicznie znak FESC zastępowany jest na
czas transmisji przez kombinację FESC-TFESC (odpowiednio przez znaki 0xDB i 0xDD). Długość
bloków KISS nie jest z góry określona ani nie zawierają one też żadnej informacji na ten
temat. Oznaczeniem ich końca jest jedynie znak FEND. Wystąpienie dwóch kolejnych znaków
FEND nie jest interpretowane jako odbiór pustego bloku tylko jako błąd. Struktura bloku
KISS przedstawiona jest na rysunku 4.2b.
[rys. 4_02]
W trybie KISS stosowane są znaki ośmiobitowe bez bitu parzystości
i z pojedyńczym bitem stop (oznaczenie 8N1). Sygnały synchronizujące CTS/DTR nie są
stosowane, do połączenia kontrolera z komputerem wystarczy więc zwykły kabel trójżyłowy.
Nie jest stosowany także protokół XON/XOFF, co przy transmisji dłuższych zbiorów może
doprowadzić do przepełnienia wewnętrznego bufora w kontrolerze i straty danych oraz
zawieszenia się kontrolera. Kontrolery TNC2 wyposażone w 32 kB pamięci RAM dysponują
w trybie KISS około 28 kB pojemności bufora, wyposażone w 16 kB pamięci RAM - około
12 kB (dotyczy to oprogramowania TAPR, oprogramowanie TF pozostawia około 25 kB wolnej
pamięci RAM w kontrolerach wyposażonych w 32 kB). Ewentualne mechanizmy zabezpieczające
przed stratą danych muszą być zawarte w programie sterującym (np. NOS).
Jedynymi istotnymi parametrami kontrolera są parametry mające
związek ze sterowaniem nadajnikiem: TXDELAY, PERSISTENCE, SLOTTIME, TXTAIL i FULLDUPLEX.
Pozostałe parametry protokółu AX.25 muszą być ustalone w programie sterującym.
Odpowiednio rozróżniane są więc następujące typy bloków KISS:
- bloki których drugi oktet ma wartość zero są blokami informacyjnymi, są to jedyne bloki
wymieniane w obie strony. Ich transmisja sygnalizowana jest za pomocą wskaźników CON i STA
w kontrolerze TNC. Pozostałe bloki zawierające parametry mogą być transmitowane jedynie z
komputera do kontrolera, odpytanie wartości wprowadzonych parametrów nie jest możliwe.
W razie potrzeby wartości te muszą być zapamiętane przez program sterujący;
- bloki o drugim oktecie równym 1 zawierają parametr TXDELAY w postaci wielokrotności
10 ms, wartością początkową jest 50 (tzn. 500 ms). Parametr TXDELAY ustala odstęp czasu
między włączeniem nadajnika i rozpoczęciem nadawania pakietu. Przed rozpoczęciem nadawania
pakietu transmitowane są pola synchronizujące;
- bloki typu 2 zawierają parametr PERSISTENCE, wartością początkową jest 63 tzn. 25 %,
a dopuszczalnym zakresem wartości 0 (wyłączenie) do 255. Przed przejściem na nadawanie
kontroler generuje liczbę losową leżącą w zakresie od 0 do 255. Jeżeli jej wartość jest
większa od wartości progowej (parametru PERSISTENCE) kontroler odczekuje odcinek czasu
ustalony za pomocą parametru SLOT TIME, i jeżeli kanał jest w dalszym ciągu wolny
generuje następną liczbę losową. Procedura powtarzana jest aż do przejścia na nadawanie.
Algorytm ten przyczynia się do zmniejszenia liczby kolizji pakietów i jest stosowany
także w oprogramowaniu TF dla kontrolerów TNC2 i TNC3;
- bloki typu 3 zawierają czas oczekiwania (ang. SLOT TIME) dla algorytmu progowego
w postaci wielokrotności 10 ms, wartością początkową jest 10 (tzn. 100 ms);
- bloki typu 4 zawierają parametr TXTAIL również postaci wielokrotności 10 ms. Parametr
TXTAIL określa czas włączenia nadajnika po zakończeniu pakietu;
- wartość 0 w bloku typu 5 oznacza pracę półdupleksową (jest to wartość domyślna), 1 -
pracę pełnodupleksową w kanale radiowym. W pracy pełnodupleksowej kontroler przechodzi
na nadawanie bez sprawdzania zajętości kanału. Pełny dupleks stosowany jest obecnie
jedynie w łącznościach satelitarnych i w niektórych łączach sieci.
Opuszczenie trybu KISS i przejście do pracy w normalnym trybie
TAPR lub WA8DED (TF) dokonywane jest za pomocą bloku, którego drugi oktet ma wartość 255
(0xFF szesnastkowo). Tak więc blok przełączający składa się jedynie z trzech znaków o
wartościach: 0xC0, 0xFF, 0xC0. Jeżeli wykorzystywany program terminalowy nie pozwala na
wyłączenie trybu KISS (np. program SP), można blok ten nadać za pomocą dowolnego programu
telefonicznego terminalowego, jak PROCOMM (na komputerach klasy PC uzyskiwane są one
przez naciśnięcie klawisza ALT i wprowadzenie odpowiedniej wartości cyfrowej na bocznej
klawiaturze numerycznej, byłyby to więc kolejno ALT-192, ALT-255 i ALT-192). Programy
grupy TCP/IP, jak NOS lub NET, nadają ten blok po podaniu rozkazu "param ax0 255"
(ax0 jest przyjętą w tym przykładzie nazwą złącza szeregowego i może się różnić w
zależności od przyjętej konfiguracji). Analogicznie pozostałe parametry nadawane są
za pomocą rozkazów "param ax0 1 ..." lub podobnych.
Jak widać protokół KISS nie zawiera żadnych zabezpieczeń przed
przekłamaniami i dlatego powinien być stosowany jedynie na krótkich połączeniach pomiędzy
kontrolerem i komputerem, w przeciwnym przypadku może się okazać najsłabszym ogniwem
całego łącza pakiet radio.
Oprócz współpracy z programami TCP/IP tryb KISS pozwala także
na wykorzystanie kontrolerów wyposażonych w oprogramowanie TAPR z programami terminalowymi
przeznaczonymi dla trybu podporządkowanego (SP, GP). Ze względu na fakt, że nowsze wersje
sterowników KISS pozwalają na pracę w protokóle DAMA daje to możliwość korzystania z
niego także przez użytkowników, którzy z różnych względów nie chcą zrezygnować z
oprogramowania TAPR (nie pozwala ono narazie na korzystanie z protokółu DAMA). Jednym
z powodów pozostawania przy wersji TAPR jest zainstalowana tam i pracująca samodzielnie
skrzynka elektroniczna, innym może być chęć odbioru map pogody w standardzie WEFAX.
W tryb KISS wyposażony jest także węzeł X1J dzięki czemu może on być wykorzystywany
przez operatora do prowadzenia równoległych łączności AX.25 albo TCP/IP.
Odmianą protokółu KISS jest protokół SMACK. Bloki informacyjne
w tym protokółe oznaczone są za pomocą znaku 0x80 zamiast 0x00 w drugim oktecie bloku
i zawierają na końcu sumę kontrolną CRC-16 w kolejności bajt niższy, bajt wyższy.
Pozostałe bloki rozkazowe nie są zabezpieczone za pomocą sumy kontrolnej. Zachowana
została tu ogólna struktura bloków i zasada wtrącania znaków wprowadzających.
Oprogramowanie TF począwszy od wersji 2.7 dla kontrolerów TNC2 i nowsze wersje
sterowników (TFKISS) mogą automatycznie rozpoznać możliwość pracy w protokółe
SMACK i dokonać odpowiedniego wyboru. Pojawienie się wersji oprogramowania TCP/IP
pracującej w protokółe SMACK jest jedynie kwestią czasu.
Podobnej klasy uproszczonymi protokółami są RXBLOCK (TAPR),
protokół używany przez oprogramowanie WA8DED (TF) w trybie podporządkowanym i protokół
wymiany danych pomiędzy kontrolerami pracującymi jako węzły NET/ROM/TheNet - protokół
NRS - w przypadku sprzężenia większej ich liczby w jeden węzeł.