Odbiór pakietów testowych (Zybo+CC1000)
W laboratorium działa nadajnik wzorcowy, który co 1 sekundę wysyła pakiety o następującej strukturze danych:
- 96 bitów preambuły
- SFD: Start of Frame Delimiter: 0xE39B
- SIZ: Packet Size (8 bitów) – rozmiar pakietu (w bajtach), razem z nagłówkiem, ale bez SDF.
- DST: Destination Address (8 bitów) – adres węzła docelowego lub 255 (= broadcast).
- SRC: Source Address (8 bitów) – adres węzła nadającego dane (0=węzeł wzorcowy).
- TYP: Data Type (8 bitów) – typ danych – do dowolnego wykorzystania.
- INF: Node informations (8 bitów) – informacje o węźle nadającym dane – do dowolnego wykorzystania.
- AUX: : Auxiliary Data (8 bitów) – do dowolnego wykorzystania.
- SEQ: Sequence Number (8 bitów) – kolejny numer nadanego pakietu.
- CRC: Suma kontrolna CRC8 całego pakietu (bez preambuły i SFD).
- DATA: Dane o długości (SIZ-7) x 8 bitów.
Należy napisać oprogramowanie, które umożliwi ciągły odbiór pakietów nadawanych przez węzeł wzorcowy. Na konsoli systemu (port RS232) należy wyświetlić wartości wszystkich pól odbieranych pakietów wraz z danymi. Do sygnalizacji faktu odbioru danych można wykorzystać diodę LED.
Przydatne funkcje (szczegóły w plikach źródłowych bloku IP core oraz sterowników):
Inicjalizacja transceivera:
void Init_CC1000(void)
Włączenie trybu odbioru danych
void TurnOn_RX(void)
Czekanie na odebrane dane (flaga RXTX_RX_DONE świadczy o odebraniu pakietu):
while(!(Rd_CC1000_Status() & RXTX_RX_DONE_MASK)) {}
Odczytanie 4 bajtów odebranych danych z FIFO odbiornika:
int Rd_CC1000_Data(uint32_t* dataFromCC100)
Funkcja zwraca: 0=OK, -1=timeout.
Należy odczytać pierwsze słowo (4 bajty) z FIFO odbiornika, aby odczytać warość polia SIZ (długość pakietu). Następnie należy dokonać odpowiedniej liczby (zależnej od SIZ) kolejnych odczytów po 4 bajty.
Obliczenie sumy kontrolnej:
Xuint8 GenerateCRC8(Xuint8 *Buf, Xuint8 Size)
Sprawdzanie poprawności CRC odebranego pakietu:
- zapamiętanie CRC z odebranego pakietu do zmiennej tymczasowej;
- wyzerować CRC w odebranym pakiecie;
- obliczyć CRC odebranego pakietu;
- porównać obliczone CRC z zapamiętaną wartością CRC, która przyszła w pakiecie.
Opracował: dr hab. inż. M. Wójcikowski, 2020 r.
Współpraca: mgr inż. B. Durski