Instrukcja obsługi sterownika STMicroelectronics UM2548 dla systemu Linux

STMicroelectronics UM2548 Linux Driver - Featured Image

Logo STMicroelectronicsSterownik UM2548 dla systemu Linux
Linux
® sterownik dla ST25R3916/ST25R3916B
Instrukcja obsługi

Sterownik UM2548 dla systemu Linux

Wstęp
STSW-ST25R013 Sterownik Linux® umożliwia współpracę Raspberry Pi® 4 z płytami X-NUCLEO-NFCO6A1 i X-NUCLEO-NFCO8A1, które zawierają odpowiednio układy ST25R3916 i ST25R3916B.
Ten pakiet przenosi warstwę abstrakcji RF (RFAL) na platformę Raspberry Pi 4 Linux, aby działała z oprogramowaniem sprzętowym płyty głównej i zapewniaampaplikacja wykrywająca różne typy NFC tags i telefony komórkowe obsługujące P2P. RFAL to standardowy sterownik ST dla ST25R3916 i ST25R3916B, wysokowydajnych uniwersalnych urządzeń NFC / czytników EMVCo. Jest używany na przykład przez oprogramowanie układowe ST25R3916-DISCO (STSW-ST25R010) i oprogramowanie układowe X-NUCLEO-NFCO06A1 (X-CUBE-NFC6).
STSW-ST25R013 obsługuje wszystkie protokoły niższej warstwy ST25R3916/ST25R3916B i niektóre protokoły wyższej warstwy do komunikacji. RFAL jest napisany w sposób przenośny, dzięki czemu może działać na szerokiej gamie urządzeń opartych na systemie Linux. Ten dokument opisuje, w jaki sposób biblioteka RFAL może być używana w standardowym systemie Linux (w tym przypadku Raspberry Pi 4) do komunikacji NFC/RF. Kod jest wysoce przenośny i działa z niewielkimi zmianami na dowolnej platformie Linux.

STMicroelectronics UM2548 Linux Driver — platforma Linux

Nadview

1.1 Funkcje

  • Kompletny sterownik przestrzeni użytkownika systemu Linux (warstwa abstrakcji RF) do tworzenia aplikacji obsługujących NFC przy użyciu urządzeń ST25R3916 i ST25R3916B
  • Komunikacja hosta Linux z ST25R3916/ST25R3916B za pomocą interfejsu SPI
  • Pełna abstrakcja RF/NFC (RFAL) dla wszystkich głównych technologii i protokołów wyższych warstw:
    – NFC-A (ISO14443-A)
    – NFC-B (ISO14443-B)
    – NFC-F (FeliCa™)
    – NFC-V (ISO15693)
    – P2P (ISO18092)
    – ISO-DEP (protokół wymiany danych ISO, ISO14443-4)
    – NFC-DEP (protokół wymiany danych NFC, ISO18092)
    – Własne technologie, takie jak Kovio, B', iClass, Calypso®
  • Sampimplementacja pliku dostępna z kartami rozszerzeń X-NUCLEO-NFC06A1 i X-NUCLEO-NFC08A1, podłączonymi do Raspberry Pi 4
  • SampLe aplikacja do wykrywania kilku NFC tag typy i telefony komórkowe obsługujące P2P
  • Bezpłatne, przyjazne dla użytkownika warunki licencji

1.2 Architektura oprogramowania
Rysunek 2 przedstawia szczegóły architektury oprogramowania biblioteki RFAL na platformie Linux.
RFAL można łatwo przenosić na inne platformy, dostosowując tzw. platformę files.
Nagłówek file rfal_platform.h zawiera definicje makr, które muszą być dostarczone i zaimplementowane przez właściciela platformy.
Zapewnia ustawienia specyficzne dla platformy, takie jak przypisanie GPIO, zasoby systemowe, blokady i przerwania IRQ, które są wymagane do poprawnego działania RFAL.
Ta demonstracja implementuje funkcje platformy i zapewnia port RFAL do przestrzeni użytkownika systemu Linux.
Wspólna biblioteka file generowany jest plik, który jest używany przez demonstracyjną aplikację do zaprezentowania funkcjonalności zapewnianych przez warstwę RFAL.
Host Linux wykorzystuje interfejs sysfs dostępny z przestrzeni użytkownika Linux do realizacji komunikacji SPI z urządzeniami. Wewnątrz jądra Linuksa interfejs SPI sysfs używa sterownika jądra Linux spidev do wysyłania/odbierania ramek SPI do/z urządzeń.
Do obsługi linii INT urządzeń ST25R3916 i ST25R3916B sterownik używa libpiod sysfs do otrzymywania powiadomień o zmianach na tej linii.

STMicroelectronics UM2548 Linux Driver - architektura oprogramowania

Konfiguracja sprzętu

2.1 Używana platforma
Płytka Raspberry Pi 4 z systemem operacyjnym Raspberry Pi jest używana jako platforma Linux do budowy biblioteki RFAL i interakcji z ST25R3916/ST25R3916B przez SPI.
Urządzenia umożliwiają aplikacji na platformę Linux wykrywanie urządzeń NFC i komunikację z nimi.

2.2 Wymagania sprzętowe

  • Raspberry Pi 4
  • Karta micro SD 8 GB do uruchomienia systemu operacyjnego Raspberry Pi (z najnowszymi wymaganiami)
  • Czytnik kart SD
  • Płyty X-NUCLEO-NFC06A1 lub X-NUCLEO-NFC08A1
  • Mostek do połączenia płytki z adapterem Raspberry Pi Arduino™ do Raspberry Pi (numer części ARPI600)

2.2.1 Połączenia sprzętowe
Adapter ARPI600 Raspberry Pi na Arduino służy do łączenia płytek z Raspberry Pi. Zworki karty adaptera muszą zostać zmodyfikowane, aby połączyć ją z płytami X-NUCLEO-NFC06A1 lub X-NUCLEO-NFC08A1.
Ostrożność:
ARPI600 nieprawidłowo dostarcza 5 V do pinu Arduino IOREF. Bezpośrednie podłączenie płytek powoduje cofanie się 5 V na niektórych pinach, co może uszkodzić płytkę Raspberry Pi. Pojawiają się doniesienia o zniszczonych płytach głównych (zwłaszcza Raspberry Pi 4B+).
Aby tego uniknąć, dostosuj ARPI600 (raczej trudna operacja) lub płytkę X-NUCLEO-NFC06A1/X-NUCLEONFC08A1 (łatwiej).
Najprostszym rozwiązaniem jest wycięcie pinu CN6.2 (IOREF) na płytach X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1, jak pokazano na rysunku 3.
Odcięcie tego pinu nie wpływa na działanie w połączeniu z płytkami Nucleo (takimi jak NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB).

STMicroelectronics UM2548 Linux Driver — połączenie sprzętowe

Ustawienie zworki
Zworki dla A5, A4, A3, A2, A1 i A0 pokazane na rysunku 4 należy odpowiednio zmienić na P25, P24, P23, P22, P21 i CE1. Przy tym ustawieniu pin GPIO Raspberry nr 7 jest używany jako linia przerwań dla X-NUCLEONFC06A1/X-NUCLEO-NFC08A1.

STMicroelectronics UM2548 Linux Driver - płytka adaptera

Obecnie ten port biblioteki RFAL wykorzystuje pin GPIO7 jako linię przerwania (zgodnie z ustawieniami zworki). W przypadku konieczności zmiany linii przerwań z GPIO7 na inne GPIO, kod specyficzny dla platformy (w file pltf_gpio.h) musi zostać zmodyfikowany, aby zmienić definicję makra ST25R_INT_PIN z 7 na nowy pin GPIO, który ma być używany jako linia przerwań.
Przy powyższych ustawieniach zworek, płytka adaptera może być użyta do połączenia X-NUCLEO NFC06A1 i X-NUCLEO-NFC08A1 z płytką Raspberry Pi, jak pokazano na poniższych rysunkach.

STMicroelectronics UM2548 Linux Driver — konfiguracja sprzętu

Konfiguracja środowiska Linux

3.1 Uruchamianie Raspberry Pi
Aby skonfigurować środowisko Linux, najpierw zainstaluj i uruchom Raspberry Pi z systemem operacyjnym Raspberry Pi, jak wyjaśniono poniżej:
Krok 1
Pobierz najnowszy obraz systemu operacyjnego Raspberry Pi z https://www.raspberrypi.com, a następnie wybierz Raspberry Pi OS z pulpitem. Do poniższych testów została wykorzystana wersja 2022-09-22-raspios-bulseye-armhf.img.xz (wrzesień 2022).
Krok 2
Rozpakuj obraz Raspberry Pi OS i zapisz go na karcie SD, postępując zgodnie z instrukcjami dostępnymi w sekcji „Zapisywanie obrazu na kartę SD”.
Krok 3
Podłącz sprzęt:

  • Podłącz Raspberry Pi 4 do monitora za pomocą standardowego kabla HDMI.
  • Podłącz mysz i klawiaturę do portów USB Raspberry Pi.

Możliwa jest również praca z Raspberry Pi przy użyciu ssh. W tym przypadku. nie jest wymagane podłączenie monitora, klawiatury i myszki do Raspberry Pi. Jedynym wymaganiem jest posiadanie komputera z ssh w tej samej sieci co Raspberry Pi i odpowiednie skonfigurowanie adresu IP.
Krok 4
Uruchom Raspberry Pi 4 za pomocą karty SD. Po uruchomieniu na monitorze pojawia się pulpit systemu Linux oparty na Debianie.
Notatka:
Czasami po uruchomieniu systemu Raspberry Pi OS niektóre klawisze klawiatury nie działają. Aby działały, otwórz plik file /etc/default/keyboard i ustaw XKBLAYOUT=”us” i zrestartuj Raspberry Pi.
3.2 Włącz SPI na Raspberry Pi
Sterownik SPI wewnątrz jądra komunikuje się z płytami X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 przez SPI. Ważne jest, aby sprawdzić, czy SPI jest już włączone w konfiguracji jądra Raspbian Pi OS.
Sprawdź, czy /dev/spidev0.0 jest widoczny w środowisku Raspberry Pi. Jeśli nie jest widoczny, włącz interfejs SPI za pomocą narzędzia „raspi-config”, wykonując czynności opisane poniżej.
Krok 1
Otwórz nowy terminal na Raspberry Pi i uruchom polecenie „raspi-config” jako root: sudo raspi-config
Ten krok otwiera interfejs graficzny.
Krok 2
Wybierz w interfejsie graficznym opcję o nazwie „Opcje interfejsu”.
Krok 3
Ten krok zawiera listę różnych opcji.
Wybierz opcję o nazwie „SPI”.
Pojawi się nowe okno z następującym tekstem:
„Czy chcesz włączyć interfejs SPI?”
Krok 4
Wybierać w tym oknie, aby włączyć SPI.
Krok 5
Uruchom ponownie Raspberry Pi.
Powyższe kroki umożliwią włączenie interfejsu SPI w środowisku Raspberry Pi po restarcie.

Zbuduj bibliotekę i aplikację RFAL

Demonstracja RFAL systemu Linux jest dostępna w archiwum, takim jak ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz.
Aby zbudować bibliotekę i aplikację RFAL na Raspberry Pi, wykonaj następujące kroki:
Krok 1
Rozpakuj pakiet na Raspberry Pi za pomocą następującego polecenia z katalogu domowego
tar -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
Krok 2
Zainstaluj cmake (jeśli nie zrobiono tego wcześniej) za pomocą polecenia
apt-get zainstaluj cmake
Biblioteka RFAL oraz system budowania aplikacji są oparte na cmake, dlatego do skompilowania pakietu wymagane jest zainstalowanie cmake.
Krok 3
Aby zbudować bibliotekę i aplikację RFAL, przejdź do katalogu build
cd ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
Stamtąd uruchom polecenie
zrób ..
W powyższym poleceniu „..” wskazuje, że plik CMakeLists.txt najwyższego poziomu istnieje w katalogu nadrzędnym
(ST25R3916_v2.8.0_Linux_demo_v1.0).
To polecenie tworzy markęfile użyte w następnym kroku do zbudowania biblioteki i aplikacji. Stamtąd uruchom następujące polecenie, aby zbudować demonstrację dla ST25R3916B
cmake -DRFAL_VARIANT=st25r3916b ..
Krok 4
Uruchom polecenie make, aby zbudować bibliotekę i aplikację RFAL:
robić
To polecenie najpierw buduje bibliotekę RFAL, a następnie aplikację na niej.

Jak uruchomić aplikację

Pomyślna kompilacja generuje plik wykonywalny o nazwie „nfc_poller_st25r3916” lub „nfc_poller_st25r3916b” w lokalizacji /build/demo.
Domyślnie aplikacja musi być uruchomiona z prawami roota ze ścieżki ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/:
Sudo ./nfc_demo_st25r3916
Aplikacja rozpocznie odpytywanie o NFC tags i telefony komórkowe, a następnie wyświetla znalezione urządzenia wraz z ich identyfikatorami UID, jak pokazano na rysunku 7.

STMicroelectronics UM2548 Linux Driver - znalezione urządzenia

Aby zakończyć aplikację, naciśnij Ctrl + C.

Historia rewizji
Tabela 1. Historia zmian dokumentu

Data Rewizja Zmiany
1-marca-19 1 Pierwsze wydanie.
4-kwietnia-23 2 Zaktualizowany tytuł dokumentu, wprowadzenie do sekcji, sekcja 1.1 Funkcje,
Sekcja 1.2 Architektura oprogramowania, Sekcja 2.1 Używana platforma, Sekcja 2.2 Sprzęt
wymagania, Rozdział 2.2.1 Połączenia sprzętowe, Rozdział 3.1 Uruchamianie Raspberry Pi,
Sekcja 3.2 Włączanie SPI na Raspberry Pi, Sekcja 4 Tworzenie biblioteki i aplikacji RFAL,
oraz Sekcja 5 Jak uruchomić aplikację.
Zaktualizowano Rysunek 1. Biblioteka RFAL na platformie Linux, Rysunek 2. Architektura oprogramowania RFAL
w systemie Linux i Rysunek 5. Góra konfiguracji sprzętu view.
Drobne zmiany tekstu w całym dokumencie.

WAŻNA INFORMACJA – PRZECZYTAJ UWAŻNIE
STMicroelectronics NV i jej spółki zależne („ST”) zastrzegają sobie prawo do wprowadzania zmian, poprawek, ulepszeń, modyfikacji i udoskonaleń produktów ST i/lub niniejszego dokumentu w dowolnym momencie bez powiadomienia. Nabywcy powinni uzyskać najnowsze istotne informacje o produktach ST przed złożeniem zamówienia. Produkty ST są sprzedawane zgodnie z warunkami sprzedaży ST obowiązującymi w momencie potwierdzenia zamówienia.
Nabywcy ponoszą wyłączną odpowiedzialność za wybór, selekcję i użytkowanie produktów ST. ST nie ponosi żadnej odpowiedzialności za pomoc w stosowaniu ani za konstrukcję produktów nabywców.
ST nie udziela żadnej licencji, wyraźnej ani dorozumianej, na jakiekolwiek prawa własności intelektualnej.
Odsprzedaż produktów ST z postanowieniami różniącymi się od informacji zawartych w niniejszym dokumencie powoduje unieważnienie gwarancji udzielonej przez ST na taki produkt.
ST i logo ST są znakami towarowymi ST. Aby uzyskać dodatkowe informacje o znakach towarowych ST, zapoznaj się z www.st.com/trademarks. Wszystkie inne nazwy produktów lub usług są własnością ich odpowiednich właścicieli.
Informacje zawarte w niniejszym dokumencie zastępują informacje podane wcześniej w jakiejkolwiek poprzedniej wersji tego dokumentu.
© 2023 STMicroelectronics – Wszelkie prawa zastrzeżone

UM2548 – wersja 2

Dokumenty / Zasoby

PDF thumbnailSterownik UM2548 dla systemu Linux
User Manual · UM2548 Linux Driver, UM2548, Linux Driver, Driver

Zadaj pytanie

Use this section to ask about setup, compatibility, troubleshooting, or anything missing from this manual.

Zadaj pytanie

Ask about setup, compatibility, troubleshooting, or anything missing from this manual. Name and email are optional.