>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
C

Jak dotknąć fal radiowych od 1 MHz do 6 GHz dzięki projektom open-source

HackRF One

Większość programistów webowych jest przyzwyczajona do myślenia o sieciach w kategoriach gniazd i żądań HTTP. Ale gdy dane trafiają do powietrza przez Wi-Fi, Bluetooth lub pilot bramy, stają się zwykłą falą elektromagnetyczną. Przez długi czas eksploracja widma radiowego pozostawała domeną specjalistów z sprzętem kosztującym tysiące dolarów.

Sytuacja zmieniła się, gdy Michael Ossmann i zespół Great Scott Gadgets wydali HackRF. Stworzyli przystępną cenowo platformę SDR (Software Defined Radio) i w pełni udostępnili jej schematy, firmware i kod źródłowy jako open-source.

Co znajdziesz w repozytorium

Repozytorium greatscottgadgets/hackrf gromadzi całą pracę projektu. To jedno miejsce do pracy zarówno ze sprzętem, jak i oprogramowaniem.

W kodzie źródłowym znajdziesz:

  • Projekty PCB i schematy rozmieszczenia komponentów
  • Kod źródłowy firmware mikrokontrolera LPC43xx i wtyczek FPGA
  • Bibliotekę System C libhackrf
  • Zestaw narzędzi konsolowych do zarządzania urządzeniem
  • Pliki źródłowe dokumentacji w Sphinx

Projekt jest napisany w C. Dokumentację można zbudować lokalnie za pomocą Sphinx lub LaTeX, jeśli potrzebujesz gotowego pliku PDF.

Zanurzenie w kod i narzędzia

Część programowa projektu jest podzielona na dwa poziomy. Pierwszy poziom to biblioteka libhackrf. Obsługuje niskopoziomową komunikację USB i udostępnia czyste API w C do odbierania i nadawania próbek. Drugi poziom to narzędzia konsolowe, z których zwykle ludzie zaczynają.

Na przykład, aby przechwycić sygnał radiowy na częstotliwości 433,92 MHz, użyj narzędzia hackrf_transfer:

hackrf_transfer -r capture.raw -f 433920000 -s 8000000

To polecenie nagrywa fale radiowe z szybkością próbkowania 8 megapróbek na sekundę i zapisuje próbki kwadraturowe (I/Q) do pliku binarnego. Ten plik można następnie otworzyć w GNU Radio lub Universal Radio Hacker, aby przeanalizować protokół.

Jeśli musisz przeskanować częstotliwości i sprawdzić, które kanały są zajęte, przydatne jest narzędzie hackrf_sweep:

hackrf_sweep -f 2400:2500 -l 32 -g 20

Szybko przechodzi przez częstotliwości syntetyzatora i wyprowadza dane o mocy sygnału. Dzięki niemu możesz w kilka sekund zbudować spektrogram pomieszczenia.

Praktyczna wartość dla programisty

Dlaczego programista bez tła inżynierii radiowej powinien studiować repozytorium HackRF?

Po pierwsze, to praktyczny przykład architektury oprogramowania do komunikacji ze sprzętem przez USB. W kodzie biblioteki libhackrf możesz zobaczyć, jak obsługiwać strumienie danych w czasie rzeczywistym bez utraty próbek.

Po drugie, repozytorium otwiera drzwi do inżynierii wstecznej. Używając tej platformy, ludzie analizują, jak działają piloty radiowe, czujniki ciśnienia opon, tagi RFID i sygnały nawigacji satelitarnej.

Po trzecie, urządzenie pozwala pisać własne protokoły komunikacyjne od zera, używając gotowych bloków w GNU Radio lub własnego kodu w C.

Sprzęt i jego cechy

Płytka ma wyraźne ograniczenia techniczne. Tryb pracy to half-duplex. Oznacza to, że transceiver może w danym momencie albo odbierać, albo nadawać sygnał. Nie może robić obu tych rzeczy jednocześnie.

Rozdzielczość ADC to 8 bitów. Do głębokiej analizy złożonych zakłóceń to nie wystarczy, ale jest całkowicie wystarczająca do większości zadań inżynieryjnych. Natomiast zakres częstotliwości roboczej obejmuje od 1 MHz do 6 GHz bez konieczności wymiany modułów.

Od czego zacząć naukę

Jeśli chcesz zgłębić projekt, zacznij od oficjalnej dokumentacji na Read the Docs. Jeśli chcesz, możesz zbudować ją lokalnie z folderu docs:

cd docs
make html

Aby zbudować wersję PDF na Ubuntu, musisz zainstalować pakiety LaTeX:

sudo apt install latexmk texlive-latex-extra
cd docs
make latexpdf

Społeczność projektu żyje na Discordzie i listach mailingowych. Deweloperzy szczerze zaznaczają w README, że obsługa zgłoszeń może potrwać do dwóch tygodni. Jeśli znajdziesz błąd lub chcesz przyczynić się kodem, otwórz Issue na GitHubie.

HackRF pozostaje jedną z najbardziej dostępnych i otwartych baz dla tych, którzy chcą wykroczyć poza znane oprogramowanie i pracować bezpośrednio ze widmem radiowym.

Powiązane projekty