Pi of the Sky

Pi of the Sky – naukowy projekt badawczy powstały z inicjatywy prof. Bohdana Paczyńskiego służący do automatycznej obserwacji nieba w poszukiwaniu rozbłysków optycznych pochodzenia kosmicznego. Aparatura zainstalowana jest w obserwatorium Uniwersytetu Warszawskiego w Las Campanas Observatory na pustyni Atacama w Chile[1]. W realizacji projektu uczestniczy zespół naukowców i inżynierów z Instytutu Problemów Jądrowych im. Andrzeja Sołtana, Instytutu Fizyki Doświadczalnej UW, Instytutu Systemów Elektronicznych Politechniki Warszawskiej, Wydziału Fizyki Politechniki Warszawskiej, Centrum Fizyki Teoretycznej PAN i Centrum Badań Kosmicznych PAN. Program Pi of the Sky działa od 2004 roku.

NUDP

NUDP to protokół powstały w 2005[2] roku początkowo na potrzeby astrofizycznego projektu Pi of the Sky. Protokół ten służy do komunikacji komputerów z kamerami za pośrednictwem interfejsu Ethernet (LAN) w topologi master-slave. Jego zastosowanie to lokalne uproszczone sieci sensorowe (WSN).

Impulsem do powstania nowego protokołu było płynne przejście ze stosowanego w prototypie kamer CCD interfejsu USB. Z powodu ograniczonych zasobów platformy sprzętowej, opartej na mikrokontrolerze serii 8051 i układ FPGA, należało zaimplementować „lekki” stos sieciowy bez protokołu TCP, a więc tylko ARP, IP/ICMP oraz UDP.

Powszechnie znany protokół UDP zapewnia wsparcie przez wszystkie współczesne systemy operacyjne, jednak nie gwarantuje, że datagramy dotrą do odbiorcy we właściwej kolejności oraz że w ogóle dotrą i zostaną odebrane. Te wady koryguje właśnie protokół NUDP, który jest kapsułkowany w protokole UDP jako jego dane.

NUDP składa się z dwóch głównych pól: nagłówka oraz opcjonalnie danych (data). Nagłówek NUDP składa się z 8 bajtów. Rozmiar pola danych nie przekracza 1450 bajtów tak, aby wszystkie nagłówki (IP, UDP, NUDP) wraz z danymi zmieściły się w maksymalnym rozmiarze ramki Ethernet. Struktura pakietu NUDP prezentuje się następująco:

[FF 00 TY CH NU MB ER HI] [optional data]

  • FF 00 – ID, 2 bajty identyfikujące w zapisie szesnastkowym
  • TY – bajt type, którego bity reprezentują:
    • 7 – bit ACK, bit potwierdzenia, ustawiany tylko przez kamerę – slave (nigdy przez komputer – master)
    • 6..4 – wersja protokołu (dla obecnej implementacji są to zera)
    • 3..0 – typ pakietu (type of packet, top)
  • CH – checksum, suma kontrolna, przyjmuje taką wartość, aby suma 8 bajtów całego nagłówka liczone w słowie 8-bitowym wynosiła 0, inaczej jest to zanegowana 8-bitowa suma pozostałych 7 bajtów nagłówka
  • NU MB ER HI – 32-bitowe pole number, gdzie HI to najbardziej znaczący bajt MSB, może też być interpretowane jako 2 pola 16-bitowe

Typy pakietów (pole top):

  • 0 – wykonaj polecenie, pole number zawiera numer (kod) polecenia i opcjonalnie jego argumenty
  • 1 – RFU (zarezerowane)
  • 2 – ustaw wartość rejestru, numer rejestru w polu number (32-bitowa przestrzeń adresowa), wartość w polu data
  • 3 – odczytaj wartość rejestru, numer rejestru w polu number
  • 4 – ustaw wartość rejestru, numer rejestru w polu NU MB (16-bitowa przestrzeń adresowa), wartość w polu ER HI
  • 5 – odczytaj wartość rejestru, numer rejestru w polu NU MB
  • 6 – retransmisja pakietu danych RAW
  • 7 – dane RAW (typ ustawiany tylko przez kamerę)
  • 8...15 – RFU

Własności i zalety

  • kapsułkowany poprzez datagram UDP
  • pozwala zachować kolejność pakietów, numerując je
  • umożliwia retransmisję zagubionych pakietów
  • zapewnia dotarcie pakietów poprzez zastosowanie metody potwierdzania od strony kamery

Przypisy

  1. Mrugające światła kosmosu, artykuł w „Rzeczpospolitej” z 11 września 2008.
  2. J. Uzycki, G. Kasprowicz, M. Mankiewicz, K. Nawrocki, P. Sitek, M. Sokolowski, R. Sulej, W. Tlaczala, Data transmission protocol for “Pi of the Sky” cameras, XVII IEEE-SPIE Symposium on Photonics, Electronics and Web Engineering WILGA 2006, Proc. SPIE Vol. 6347, October 2006.

Linki zewnętrzne