Rozdział 7. ♦ Przykładowe konwertery protokołów 143
Procedura inicjalizacji konwertera wykonywana jest automatycznie po włączeniu zasilania lub wskutek wyzerowania układu. Procedura ta obejmuje:
♦ wyzerowanie pamięci danych,
♦ wyzerowanie i zaprogramowanie układu USART,
♦ zaprogramowanie wewnętrznego portu szeregowego,
♦ zaprogramowanie układu czasowo-licznikowego,
♦ zaprogramowanie układu przerwań.
Obsługę łącza przewodowego można podzielić na:
♦ obsługę linii danych,
♦ obsługę linii sterujących.
Obsługa linii sterujących sprowadza się do cyklicznego sprawdzania stanu linii wejściowych portu równoległego i porównywania ze stanem poprzednim. W przypadku wykrycia zmiany stanu, procedura konwersji protokołów otrzymuje informację o konieczności przygotowania odpowiedniej ramki sterującej. Mechanizm ten działa także w drugą stronę, tzn. jeśli od procedury konwersji protokołów nadejdzie informacja o nadejściu ramki sterującej, odpowiednio zmieniany jest stan linii wyjściowych portu.
Obsługa linii danych zrealizowana jest na zasadzie przerwań. Po przyjęciu przerwania od wewnętrznego portu szeregowego następuje sprawdzenie przyczyny przerwania. Jeżeli pochodzi ono od odbiornika, odebrany znak jest wczytywany i umieszczany w buforze cyklicznym w pamięci. Przerwanie pochodzące od nadajnika sygnalizuje możliwość wysłania kolejnego znaku.
W przypadku wykrycia znacznego zapełnienia pamięci, do komputera wysyłany jest znak XOFF, oznaczający konieczność wstrzymania wysyłania danych. Przywrócenie wysyłania danych sygnalizowane jest znakiem XON, wysyłanym, jeśli zapełnienie pamięci buforowej ulegnie zmniejszeniu.
Obsługa łącza bezprzewodowego ma za zadanie nadawać i odbierać ramki sterujące i danych, zgodnie ze zdefiniowanym protokołem komunikacyjnym.
Ramki wysyłane są po przygotowaniu ich przez procedurę konwersji protokołów. Po wysłaniu każdej ramki następuje oczekiwanie na przyjście ramki potwierdzającej poprawny odbiór. Jeśli takie potwierdzenie nie nadejdzie w czasie 1 s, ramka jest re-transmitowana. Retransmisja następuje także wtedy, kiedy nadejdzie potwierdzenie negatywne, tzn. ramka sygnalizująca błąd transmisji. Możliwe jest także nadejście ramki odrzucającej, sygnalizującej poprawną transmisję i niemożność zrealizowania