mgr Marian MENDEL Wojskowy Instytut Techniczny Uzbrojenia INTERFEJS KOMUNIKACJI KOMPUTERA POKŁADOWEGO Z SYSTEMEM NAWIGACJI LĄDOWEJ TALIN W artykule przedstawiono problem wymiany danych pomiędzy komputerem pokładowym i systemem nawigacji lądowej TALIN. Komputer pokładowy wozu bojowego z zainstalowanym oprogramowaniem jest narzędziem wspomagającym dowodzenie. Jednym z podstawowych źródeł informacji dla tego komputera jest system nawigacji, który ciągle przesyła dane nawigacyjne potrzebne oprogramowaniu zainstalowanemu na tym komputerze. W celu zapewnienia automatycznej komunikacji pomiędzy komputerem i systemem nawigacji zostało w WITU opracowane specjalne oprogramowanie spełniające rolę interfejsu, które łatwo się implementuje i jest bardzo proste w użyciu. 1. Wstęp Nawigacja - dział wiedzy zajmujący się określaniem bieżącego położenia oraz drogi do celu dla statków, pojazdów i innych przemieszczających się obiektów. Wiedza o położeniu przeciwnika (celów) i pozycji wozów wojsk własnych pozwala dowódcy na precyzyjne i szybkie zaplanowanie działań bojowych oraz udzielenia ewentualnego wsparcia. Obecnie na świecie realizowanych jest bardzo dużo operacji reagowania kryzysowego na obszarach i terenach, które są nie do końca rozpoznane. W takich warunkach systemy nawigacji są bardzo przydatne w realizacji postawionych zadań oraz podnoszą poziom bezpieczeństwa wojsk własnych. Patrole rozpoznawcze są często atakowane w wyniku czego narażone są na unieruchomienie a nawet na straty w ludziach i sprzęcie. Natychmiastowa pomoc w tych warunkach minimalizuje straty własne. Aby takiej pomocy udzielić trzeba znać dokładną pozycję patrolu potrzebującego tej pomocy. W wojskach lądowych obecnie stosuje się systemy inercyjnej nawigacji lądowej wyposażone dodatkowo w system nawigacji satelitarnej PLGR (Precision Lightweight GPS Receiver) jako wspomaganie. Systemy te realizują następujące zadania: bieżące określanie współrzędnych prostokątnych pozycji pojazdu (x,y,z) w ustalonym układzie współrzędnych, bieżące określanie ustawień: azymut, przechył i pochył pojazdu, planowanie drogi marszu poprzez wyznaczenie punktów kontrolnych na trasie tzw. waypionts, wspomaganie realizacji marszu poprzez zobrazowanie wymaganego kierunku jazdy i odległości do najbliższego punktu kontrolnego, 99
zliczanie przebytej drogi, wykonywanie wybranych obliczeń geodezyjnych pomiędzy dwoma wyznaczonymi punktami, wykrywanie wystrzałów z uzbrojenia pokładowego i zliczanie oddanych strzałów. Typowy system nawigacji lądowej składa się z: bloku nawigacji bezwładnościowej INU (Inertial Navigation Unit), pulpitu sterującego CDU (Control Display Unit), odometru VMS (Vehicle Motion Sensor), systemu nawigacji satelitarnej PLGR. KOMPUTER POKŁADOWY SYSTEM TALIN PROGRAM GŁÓWNY RS-422 RS-422 CDU INU RS-422 INTERFEJS PROGRAMOWY RS-422 VMS RS-422 PLGR Rys. 1. Schemat blokowy systemu nawigacji TALIN podłączonego do komputera pokładowego Podstawowy zestaw systemu nawigacji mimo bardzo dużej liczby realizowanych funkcji nie może być w pełni wykorzystany bo CDU ma ograniczone możliwości wyświetlania danych nawigacyjnych, które są przydatne dla kierowcy. Główny blok INU został wyposażony w 9 portów szeregowych RS-422, co umożliwia podłączenie dodatkowych urządzeń wspomagających dowodzenie. Wobec powszechnego stosowania w wozach bojowych komputerów pokładowych, które pracują w systemach dowodzenia, naturalnym jest podłączenie do takiego komputera systemu nawigacji i wykorzystanie w pełni możliwości tego systemu. Warunkiem koniecznym współpracy komputera pokładowego z systemem nawigacji jest zainstalowanie na tym komputerze odpowiedniego interfejsu realizującego protokół transmisji danych zaimplementowany w systemie TALIN. Taki interfejs został opracowany i przetestowany w WITU i w chwili obecnej jest gotowy do implementacji. 100
2. Interfejs programowy transmisji danych pomiędzy komputerem pokładowym i systemem nawigacji TALIN Przez interfejs programowy rozumiemy oprogramowanie współpracujące z oprogramowaniem głównym komputera i realizujące zadania w zakresie wymiany danych z systemem nawigacji. Podstawowe zadania realizowane przez interfejs, to: 1. Konfiguracja UART (Universal Asynchronous Receiver Transmitter) komputera tak, aby była zgodna z UART odpowiedniego portu bloku INU. 2. Rozpoznawanie ramek i kontrola poprawności odbieranych od INU wiadomości. 3. Zwracanie do programu głównego odebranych i rozpakowanych wiadomości. 4. Redagowanie ramek wysyłanych wiadomości zleconych przez program główny. 5. Reagowanie na powstałe w czasie transmisji błędy. 2.1. Konfiguracja UART UART jest to obwód zintegrowany używany do asynchronicznego wysyłania i odbierania danych poprzez port szeregowy. Aby praca tego układu była poprawna jego parametry muszą być takie same jak parametry UART w INU. W związku z tym przed rozpoczęciem przesyłania danych należy ustawić odpowiednie parametry UART portu szeregowego komputera, który jest połączony z portem szeregowym INU. Parametrami tymi są: prędkość transmisji: 38400[bit/s], liczba bitów danych w znaku: 8, bit do kontroli parzystości: None, rozmiar buforu nadania: 2048 (rozmiar musi być wystarczający, aby nie następowało nadpisywanie w czasie nadawania; rozmiar ten nie musi być zgodny z rozmiarem w UART INU), rozmiar buforu odbioru: 4096 (rozmiar musi być wystarczający, aby nie następowało nadpisywanie w czasie odbierania wiadomości; rozmiar ten nie musi być zgodny z rozmiarem w UART INU). Brak zgodności pierwszych trzech parametrów z parametrami UART INU powoduje uniemożliwienie transmisji danych. Zbyt małe wartości ostatnich dwóch parametrów może skutkować utratą przesyłanych wiadomości. 2.2. Rozpoznawanie ramek i kontrola poprawności odbieranych od INU wiadomości Transmisja danych urządzenia INU polega na przesyłaniu sformalizowanych komunikatów (wiadomości). Transmisja odbywa się w trybie asynchronicznym przez port RS-422. Ogólny format wiadomości jest następujący: <DLE> <STX> Msg ID Status Start/Stop Dane Suma kontrolna <DLE> <ETX> Protokół Ciało wiadomości Rys. 2. Struktura wiadomości (komunikatu) Protokół 101
2.2.1. Protokół Każda wiadomość rozpoczyna się i kończy ściśle zdefiniowanymi bajtami: <DLE> <STX> 02 hex, <ETX> 2.2.2. Suma kontrolna bajt o wartości 10 hex, bajt poprzedzający tekst wiadomości (start of text) o wartości bajt kończący wiadomość (end of text) o wartości 03 hex. Suma kontrolna stosowana jest do wykrywania przekłamań w transmitowanej wiadomości. Oblicza się ją sumując wszystkie bajty ciała wiadomości modulo 2 8. Przykład: Protokół: 10, 02 Msg ID: 56 Dane: Suma kontrolna: B5 Protokół: 10, 03 Obliczenie sumy kontrolnej: FE, 19, E3, 10, 10, F1, 34, 56, 82, DE -(56+FE+19+E3+10+10+F1+34+56+82+DE)=-(4B)=B5 2.2.3. Ciało wiadomości Ciało wiadomości ma zmienną strukturę. Zależy ona od identyfikatora wiadomości i kierunku transmisji. Struktury ciał wiadomości zostaną przedstawione w dalszej części. Na rys. 1.1. przedstawiono najbogatszą strukturę ciała wiadomości. 2.2.4. Identyfikator wiadomości Msg ID Identyfikator wiadomości zapisany jest na jednym bajcie i składa się z dwóch części (schemat poniżej). 0 1 2 3 4 5 6 7 Typ wiadomości Identyfikator danych Typ wiadomości jest zapisany na 2 bitach i ma następujące znaczenia: 00 01 wiadomość jest nadawana przez komputer do INU, wiadomość jest nadawana przez INU do komputera. Identyfikator pomocniczy jest zapisany na 6 bitach (przyjmuje wartości 0 63) i określa grupę wiadomości. 102
2.2.5. Status Status opisuje błędy transmisji od komputera do INU. Jest dopisywany do każdego komunikatu nadawanego przez INU. Zapisany jest na 16 kolejnych bitach (2 bajty), które po ustawieniu mają następujące znaczenie: Bit Znaczenie 0 Błędne żądanie, 1 Błędny typ (rodzaj) żądania, 2 Brak żądanych danych, 3 Błąd danych przesłanych do INU 4 Błąd komendy odebranej przez INU, 5 Odebrana komenda jest niezdefiniowana, 6,7 Nic nie znaczą (wolne) 8 Błędny protokół, 9 Błędna suma kontrolna, 10 15 Wolne 2.2.6. Start/Stop Element Start/Stop stosuje się wtedy, gdy żądamy (komputer) od INU przysyłania wybranych danych z określonej struktury danych. Żądane dane muszą sąsiadować ze sobą w strukturze. Podstawowym elementem struktury jest słowo (2 bajty). Element Start/Stop zapisany jest na 16 kolejnych bitach i składa się z 3 części. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Częstotliwość Nr pierwszego słowa danych w strukturze Nr ostatniego słowa danych w strukturze Częstotliwość określa częstotliwość przysyłania przez INU żądanych danych. Przyjmuje następujące wartości: Wartość Rzeczywista częstotliwość 0 Stop 1 Tylko raz 2 1Hz 3 6.25Hz 4 12.5Hz 5 50Hz 6 100Hz 7 200Hz 103
2.2.7. Dane Jest to 0 64 bajtów (32 słowa struktury danych) zawierających dane zgodne z odpowiednią strukturą. 2.3 Zwracanie do programu głównego odebranych i rozpakowanych wiadomości System nawigacji TALIN może przysłać do komputera pokładowego 16 różnych wiadomości. Ich struktury są opisane w specjalnej dokumentacji. Ze względu na dużą objętość tych opisów nie zamieszczę ich w tym artykule. Ograniczę się do podstawowych danych niezbędnych dla działania systemów dowodzenia. 2.3.1. Dane o pozycji Dane o pozycji mogą być przesyłane przez INU do komputera pokładowego maksymalnie 50 razy w ciągu sekundy. Częstotliwość przysyłania danych i ich zakres są określane przez komputer specjalną komendą. Pełny zestaw danych o pozycji zawiera: 1. Półkulę. 2. Numer strefy (1 60) i jej typ (normalna lub rozszerzona). 3. Poziom odniesienia wysokości (poziom morza lub powierzchnia geoidy). 4. System współrzędnych. Dostępnych jest 8 systemów. Zwykle stosowany jest UTM (Universal Transverse Mercator). 5. Współrzędne x, y, z. 6. Nazwę geoidy. Jest ich 120. W Europie Środkowej stosowana jest geoida WGD (World Geodetic System, 1984). 7. Długość przejechanej drogi w ramach wykonywanego planu marszu (od ostatniego wyzerowania). 8. Długość przejechanej drogi od włączenia systemu TALIN. W skład oprogramowania interfejsu wchodzą procedury rozpakowujące ww. dane i oddające te dane w jawnej postaci programowi głównemu. 2.3.2. Dane o ustawieniach ramy referencyjnej Poprzez ramę referencyjną rozumiemy ramę na pojeździe, na której zamontowano blok INU, Np. podwozie KTO, kołyska działa, itp. Ustawienia natomiast, to kąty nachylenia ramy referencyjnej w stosunku do odpowiednich płaszczyzn odniesienia i są to: pochył: przechył: azymut: jest to kąt zawarty pomiędzy przednią półosią podłużną ramy referencyjnej i poziomem; przyjmuje wartości dodatnie, gdy półoś znajduje się nad poziomem, a ujemne w przeciwnym wypadku; jest to kąt zawarty pomiędzy prawą półosią poprzeczną ramy referencyjnej i poziomem; przyjmuje wartości dodatnie, gdy półoś znajduje się poniżej poziomu, a ujemne w przeciwnym wypadku; jest to skierowany kąt poziomy z zakresu [0, 2π rad), mierzony zgodnie z ruchem wskazówek zegara pomiędzy kierunkiem północy topograficznej i rzutem prostopadłym przedniej podłużnej półosi ramy referencyjnej na płaszczyznę poziomą. 104
Dane o ustawieniach mogą być przesyłane przez INU do komputera pokładowego maksymalnie 200 razy w ciągu sekundy. Częstotliwość przysyłania danych i ich zakres są określane przez komputer specjalną komendą. Wyżej wymienione kąty wyrażone są w radianach. W skład oprogramowania interfejsu wchodzą procedury rozpakowujące ww. dane i oddające te dane w jawnej postaci programowi głównemu. 2.3.3. Planowanie drogi marszu i realizacja tego planu Planowanie drogi marszu polega na wybraniu charakterystycznych punktów na tej drodze tzw. punktów trasy (PT), nadaniu im numerów i nazw oraz wprowadzeniu ich pozycji do komputera pokładowego. Takich punktów może być maksymalnie 99. Realizacja tego planu polega na osiąganiu PT według ustalonego porządku. Protokół transmisji danych INU umożliwia pobranie lub zapisanie danych tylko jednego PT. Jednak ze względów praktycznych interfejs został opracowany tak, że program główny może pobrać lub zapisać dane o wszystkich PT jednocześnie. Z każdym punktem trasy związane są następujące dane: numer z zakresu 1 99, nazwa: do 10 znaków ASCII, współrzędne x, y, z, system współrzędnych: do 4 znaków ASCII, nr strefy z zakresu 1 60, nazwa geoidy: do 6 znaków ASCII. Wyżej wymienione dane dotyczą punktów trasy pobieranych z INU i zapisywanych do INU. Edycję danych o PT wykonuje program główny komputera pokładowego. Realizacja planu marszu Realizacja planu marszu odbywa się poprzez wybieranie kolejnych punktów trasy, które mają być osiągane. Po wyborze punktu trasy INU przesyła do komputera pokładowego dane o nawigowaniu na wybrany punkt trasy. Częstotliwość przysyłania tych danych wynosi maksymalnie 12,5Hz. Część danych przysyłanych przez INU przedstawiono na rys. 3. Pełny zestaw danych nawigacyjnych na wybrany punkt trasy przesyłany przez INU do komputera pokładowego zawiera: 1. Numer PT z zakresu 1 99. 2. Nazwę PT: do 10 znaków ASCII. 3. Azymut kierunku na PT (T PT ) z pozycji, na której wybrano PT. 4. Poziomą odległość do PT (D PT ) z bieżącej pozycji. 5. Azymut kierunku z bieżącej pozycji na PT (T wm ). 6. Pozioma odległość bieżącej pozycji od linii Start-PT (d). 7. Nachylona odległość pomiędzy bieżącą pozycją i PT. 8. Kąt położenia PT. 9. Różnica wysokości n.p.m. pomiędzy PT i bieżącej pozycji. 10. Pozioma składowa prędkości pojazdu. 11. Bieżący azymut marszu (prędkości) (T a ). 12. Czas potrzebny na osiągnięcie PT w linii prostej. 13. Kąt zmiany kierunku marszu (α) w celu osiągnięcia azymutu T wm. 105
Pn Pn Pn T a - aktualny azymut marszu Przejechana trasa do bieżącej pozycji Pn T wm - wymagany azymut marα - kąt skrętu na PT d - oddalenie od najkrótszej trasy D PT - odległość pozioma do PT PT T PT - azymut na PT ze startu Start Miejsce wyboru PT W Rys. 3. Przesyłane przez INU dane geometryczne na płaszczyźnie poziomej W skład oprogramowania interfejsu wchodzą procedury rozpakowujące ww. dane i oddające te dane w jawnej postaci programowi głównemu. 2.4. Reagowanie na błędy powstałe w czasie transmisji Każda wiadomość wysyłana przez INU zawiera słowo, tzw. status, opisujące stan transmisji odebranych wiadomości przez INU. Jeżeli status ma wartość zero, to znaczy, że nie ma żadnych błędów, a w przeciwnym wypadku wystąpiło jakieś nienormalne zdarzenie. Wykaz możliwych zdarzeń w transmisji danych pomiędzy komputerem pokładowym i INU Lp. Zdarzenie Interpretacja 1. Błędnie sformułowane żądanie przysłania wiadomości 2. Błędny typ wiadomości, której żąda komputer pokładowy Błąd ten nie występuje, bo interfejs dba o poprawność żądań. Błąd ten nie występuje, bo interfejs dba o poprawność żądań. 3. Brak żądanych danych Występuje wtedy, gdy żądanie dotyczy danych, których INU nie posiada, np. żądanie dotyczy PT nr 10, którego nie zapisano w INU. Interfejs zwraca do programu głównego informację o tej sytuacji. 106
4. Błąd danych przesłanych do INU Weryfikacja danych w INU nie powiodła się, np. liczba spoza dopuszczalnego zakresu. Interfejs zwraca do programu głównego informację o tej sytuacji. 5. Błąd komendy odebranej przez INU Takiej komendy INU nie może wykonać, np. błędne parametry komendy. Błąd ten nie występuje, bo interfejs dba o poprawność komend. 6. Odebrana komenda jest niezdefiniowana Takiej komendy INU nie może wykonać, bo nie jest zdefiniowana. Błąd ten nie występuje, bo interfejs dba o poprawność komend. 7. Błędny protokół W tej sytuacji interfejs ponowi nadania do INU. 8. Błędna suma kontrolna W tej sytuacji interfejs ponowi nadania do INU. 3. Wnioski Implementacja oprogramowania realizującego zadania interfejsu komputera pokładowego z systemem nawigacji TALIN zapewni: 1. Bezpośrednie pobieranie wszystkich danych nawigacyjnych do systemu dowodzenia KTO, co usprawni proces planowania działań bojowych i podejmowania decyzji. 2. Sterowanie systemem nawigacji w zakresie trybów pracy i typów danych nawigacyjnych potrzebnych w systemie dowodzenia. 3. Pełne monitorowanie poprawności pracy systemu nawigacji i w przypadku niesprawności natychmiastowe podejmowanie niezbędnych działań. 4. Konfigurowanie systemu nawigacji w celu dostosowania do bieżących warunków pracy (geoida, układ współrzędnych, ukompletowanie zestawu współpracujących urządzeń, przesunięcia i obroty układów współrzędnych brył, których dane nawigacyjne są wymagane w stosunku do układu współrzędnych INU, sposób mocowania INU na pojeździe i inne). Literatura [1] Software Version Description (SVD) for the Computer Software Configuration (CSCI) for the Honeywell Tctical Advaced Land Inertial Navigator (TALIN). [2] Priame Data Interface (PDI) commands and messages, dokumentacja TALIN. [3] Opracowanie zbiorowe: Analiza zadań interfejsu programowego w zakresie wymiany danych między systemem dowodzenia KTO i systemem nawigacji TALIN 3000 Oprogramowanie przykładowego interfejsu. Nr arch. WITU 6054/C/1. [4] J. Templeman, D. Vitter: Visual Studio.NET:.NET Framework. Czarna księga. [5] A. Troelsen: Język C# i Platforma.NET. [6] Microsoft Developer Network (MSDN) Library. 107
108