Ramki UI protokołu AX.25

protokół danychAPRS jest swoistym rodzajem amatorskiego packet radio funkcjonującym, podobnie jak tradycyjne packet radio, w oparciu o protokół AX.25. Jednak APRS wykorzystuje z tego protokołu wyłącznie ramki UI (Unnumbered Information). Oznacza to, że APRS pracuje w trybie bez połączenia. Ramki UI protokołu AX.25 transmitowane są bez oczekiwania na potwierdzenie, w związku z tym ich odbiór przez pozostałe stacje nie jest gwarantowany.  Dane emitowane w APRS, jak beacony pozycji, dane telemetryczne, pogodowe, biuletyny, czy inne, są skierowane do wielu stacji. Dane charakterystyczne dla APRS znajdują się w polu informacji protokołu AX.25. Na początku pola informacji znajduje się identyfikator danych APRS określający sposób ich interpretacji.

Transmisja w APRS posługuje się ramkami UI protokołu AX.25, zawierającymi dziewięć pól danych:

AX.25 - Format ramek UI
  Flaga Adres przeznaczenia Adres źródła Adres digi Pole kontrolne (UI) Identyfikacja protokołu Pole informacji FCS Flaga
Adresat Nadawca Ścieżka
Liczba bajtów 1 7 7 0-56 1 1 1-256 2 n

Na terminalu naszej stacji zobaczymy ramki w postaci nieco odmiennej, jak np.:

SR3DPN>APN383,WIDE2-2:!5225.85NS01654.50E#PHG4480 SPn,W5 Poznan Digi

Możemy jednak odczytać następujące elementy:

SR3DPN - adres źródła (nadawca)
APN383 - adres przeznaczenia (adresat)
WIDE2-2 - adres digi (ścieżka)
!5225.85NS01654.50E#PHG4480 SPn,W5 Poznan Digi - pole informacji

Pole informacji

Pole informacji w ramkach APRS zawiera w sobie takie informacje, jak (wszystkie lub niektóre):

Pole informacji ramek wysyłanych w APRS
Identyfikator danych Dane Rozszerzenie danych Komentarz
Liczba bajtów 1 n 7 n

We wcześniej użytym przykładzie, pole informacji:

!5225.85NS01654.50E#PHG4480 SPn,W5 Poznan Digi

zawiera następujące elementy:

! - identyfikator
5225.85NS01654.50E# - dane APRS
PHG4480 - rozszerzenie danych
SPn,W5 Poznan Digi - komentarz

Identyfikator rodzaju danych APRS

Każda ramka wysyłana w APRS zawiera na początku pola informacji identyfikator, który określa, jakiego typu dane w nim się znajdują:

Identyfikator Rodzaj danych Data type
0x1c Obecnie używane dane Mic-E Current Mic-E Data (Rev 0 beta)
0x1d Dawniej używane dane Mic-E Old Mic-E Data (Rev 0 beta)
! Pozycja bez czasu (bez możliwości obsługi wiadomości) lub stacja pogodowa Ultimeter 2000 Position without timestamp (no APRS messaging), or Ultimeter 2000 WX Station
" Nie używane [Unused]
# Stacja pogodowa Peet Bros U-II Peet Bros U-II Weather Station
$ Szereg danych GPS lub Ultimeter 2000 Raw GPS data or Ultimeter 2000
% Namierzanie kierunkowe Agrelo DF Jr / MicroFinder
& Zarezerwowane [Reserved - Map Feature]
' Dawniej używane dane Mic-E, obecnie dane TM-D700 Old Mic-E Data (but Current data for TM-D700)
( Nie używane [Unused]
) Przedmiot Item
* Stacja pogodowa Peet Bros U-II Peet Bros U-II Weather Station
+ Zarezerwowane [Reserved - Shelter data with time]
, Dane niedostępne lub dane testowe Invalid data or test data
- Nie używane [Unused]
. Zarezerwowane [Reserved - Space weather]
/ Pozycja z czasem, stacja nie obsługuje wiadomości Position with timestamp (no APRS messaging)
0-9 Nie używane [Unused]
: Wiadomość Message
; Obiekt Object
< Zdolność stacji Station capabilities
= Pozycja bez czasu, stacja obsługuje wiadomości Position without timestamp (with APRS messaging)
> Status Status
? Zapytanie Query
@ Pozycja z czasem, stacja obsługuje wiadomości Position with timestamp (with APRS messaging)
A-S Nie używać [Do not use]
T Dane telemetryczne Telemetry data
U-Z Nie używać [Do not use]
[ Beacon lokatora (przestarzałe) Maidenhead grid locator beacon (obsolete)
\ Nie używane [Unused]
] Nie używane [Unused]
^ Nie używane [Unused]
_ Dane pogodowe bez pozycji Weather Report (without position)
` Obecnie używane dane Mic-E, z wyjątkiem TM-D700 Current Mic-E Data (not used in TM-D700)
a-z Nie używać [Do not use]
{ Format danych zdefiniowanych przez użytkownika APRS User-Defined APRS packet format
| Nie używać [Do not use]
} Dane od stacji trzeciej (np. dane od innej stacji emitowane przez bramkę internetową na RF) Third-party traffic
~ Nie używać [Do not use]

Dane APRS

Pozycja

Pozycja w standardowym formacie

Standardowe dane pozycji rozpoczynają się następującymi identyfikatorami:

  !    =    /    @ 

Szerokość i długość geograficzna zostają wyrażone poprzez stopnie, minuty i setne części minuty. Cyfry mogą być zastąpione odstępem, aby dokonać zaokrąglenia. Wraz z pozycją wpisany jest kod symbolu.
Dane pozycji umieszczone są w następującym porządku:

Przykładowe dane pozycji:

!5225.85NS01654.50E#

Oddzielając poszczególne elementy:

! - identyfikator
5225.85N - szerokość geograficzna
01654.50E - długość geograficzna
S# - kod symbolu

Identyfikatory pozycji bez podanego czasu:

  !      stacja bez obsługi wiadomości

  =      stacja z obsługą wiadomości

Identyfikatory pozycji z podanym czasem:

  /      stacja bez obsługi wiadomości

  @      stacja z obsługą wiadomości

Jeśli do pozycji dołączony jest czas, to zostaje on wstawiony po identyfikatorze, a przed pozycją i symbolem. Czas może być określony jako DHM (dzień, godzina, minuta) lub jako HMS (godzina, minuta, sekunda). Po dwie cyfry dla każdej wartości, czyli DDHHMM, lub HHMMSS. W przypadku DDHHMM może to być czas uniwersalny lub lokalny. Dla czasu uniwersalnego dodawana jest litera z (zulu), natomiast dla czasu lokalnego znak łamania /. Natomiast HHMMSS może być wyłącznie czasem uniwersalnym i dodawana jest litera h.

Przykładowe dane:

@072118/5225.85N/01654.50E>

Mamy w nich następujące elementy:

@ - identyfikator
072118/ - czas
5225.85N - szerokość geograficzna
01654.50E - długość geograficzna
/> - kod symbolu

Rozszerzenia danych pozycji

Dane pozycji mogą być rozszerzone o 7 bajtów wyrażających:

Przykładowe pozycje z rozszerzeniami:

=5225.85N/01654.50E>165/027
!5225.85N/01654.50E_296/005
!5225.85NS01654.50E#PHG4480
@072118z5225.85N/01654.50E-RNG0015
/072118/5225.85N/01654.50E\DFS2345
;ObszarREZ*5225.85N\01654.50El333/555

Base-91 - format skompresowany

Pozycja w standardowym formacie, rozpoczynająca się identyfikatorem: ! = / lub @, może zostać poddana kompresji typu Base-91. Kompresja obejmuje pozycję i jej rozszerzenie znajdujące się w polu informacji AX.25
Kompresja Base-91 zawiera 13 znaków:

  /YYYYXXXX$csT 

/ - pierwszy składnik symbolu
YYYY - skompresowana szerokość geograficzna wg ASCII
XXXX - skompresowana długość geograficzna wg ASCII
$ - drugi składnik symbolu
cs - skompresowane kierunek/prędkość
	albo skompresowany zasięg radiowy
	albo skompresowana wysokość
T - informacja o rodzaju kompresji

Mic-E - format skompresowany

Kompresja Mic-E obejmuje nie tylko dane w polu informacji, ale także adres przeznaczenia. Taki format zawiera jeden z następujących identyfikatorów na początku pola informacji:

  0x1c    0x1d    '    ` 

Mic-E zawiera pozycję bez czasu, rozszerzenie CSE/SPD (kurs/prędkość), parametr A (wysokość npm) oraz jeden z 15-tu statusów lub w jego miejsce dane telemetryczne.

Ramka w standardowym formacie:

SP3LYR>APRS,WIDE2-2:!5224.78N/01653.52E>125/015

Ramka po przekształceniu na Mic-E (zawiera identyczne informacje, jak ramka powyżej oraz status 'Enroute'):

SP3LYR>UR2T78,WIDE2-2:`,QPm?5=/

Pozycja w formatach NMEA

  $GPRMC    $GPGGA    $GPGLL 

W przypadku szeregów NMEA 0183, wysyłanych przez trackery bez ich przetworzenia na format APRS, dane pozycji będą zaczynać się jako: $GPRMC, $GPGGA lub $GPGLL. Format jest w surowej postaci, jaka podawana jest przez odbiornik GPS. Nie ma tam danych o symbolu, kodowanie symbolu musi zawierać się w adresie przeznaczenia. Nie ma również możliwości wstawienia komentarza do pola informacji. Zaletą takiego formatu danych jest precyzja współrzędnych z dokładnością do tysięcznych części minuty.

Pozycja według QRA Lokatora

  [XXnnyy]    [XXnn] 

Jeśli nie znamy współrzędnych naszego położenia, możemy podać naszą pozycję za pomocą QRA Lokatora. Umiejscowienie na mapie w oparciu o taki raport będzie następowało w środku kwadratu. Dane mogą zawierać sześć znaków lokatora, albo tylko cztery. Taki format dla beaconów pozycji, jest przestarzały.
Natomiast ciągle aktualnym sposobem wyrażenia pozycji za pomocą QRA Lokatora jest wstawienie go do ramki ze statusem stacji:

  >XXnnyy$/    >XXnn$/ 

Identyfikatorem statusu jest >. Lokator zostaje wpisany jako sześcioznakowy lub czteroznakowy, a następnie kod symbolu. Dalej może być umieszczony komentarz.
Pole informacji dla ramki statusu z QRA Lokatorem, będzie wyglądało następująco:

>JO82kj/-
lub
>JO82/G

Wiadomości

Wiadomości

Wiadomości są jedynym rodzajem informacji APRS, gdzie następuje potwierdzenie, a w razie potrzeby ponowienie. Wiadomości dopuszczają konkretnego adresata. Pomimo to, są ramkami UI i w sensie protokołu AX.25 są zaadresowane na jeden z ogólnych adresów przeznaczenia. Stacja, do której skierowana jest wiadomość określona jest w polu informacji ramki UI protokołu AX.25.
Identyfikator wiadomości:

  : 

Po identyfikatorze następuje adresat wiadomości - 9 znaków (w razie potrzeby spacje), dziesiątym znakiem jest dwukropek, po nim tekst wiadomości - maksymalnie 67 znaków.
Przykładowa ramka z wiadomością:

SP3LYR>APRS,WIDE2-2::AB9FX    :test{1

Stacja SP3LYR wysyła do stacji AB9FX wiadomość o treści test.

Wiadomości mogą mieć swój kolejny numer poprzedzony { znajdujący się za tekstem. Na wiadomość z numerem 1 zostanie wysłane potwierdzenie ack1 (acknowledgement):

AB9FX>APRS,WIDE2-2::SP3LYR   :ack1

W przypadku odrzucenia wiadomości przez adresata, zostanie wysłane rej1 (rejection):

AB9FX>APRS,WIDE2-2::SP3LYR   :rej1

Numer wiadomości może zawierać do pięciu znaków alfanumerycznych bez spacji.
Biuletyny, komunikaty, wiadomości z konfiguracją parametrów telemetrycznych, wiadomości z automatyczną odpowiedzią, czy inne wiadomości, które nie zawierają na końcu numeru, nie są potwierdzane przez ack, czy rej.