STMicroelectronics UM2375 Linux Driver User Manual
Linux® ovladač pro vysoce výkonná rozhraní NFC ST25R3911B a ST25R3912/14/15
Zavedení
Ovladač STSW-ST25R009 Linux® umožňuje Raspberry Pi 4 pracovat s X-NUCLEO-NFC05A1, který obsahuje vysoce výkonné univerzální zařízení NFC ST25R3911B.
Tento balíček portuje RF abstraction layer (RFAL) na platformu Raspberry Pi 4 Linux pro provoz s firmwarem X-NUCLEO-NFC05A1. Balíček poskytuje jakoampaplikace detekující různé typy NFC tags a mobilní telefony podporující P2P. RFAL je standardní ovladač ST pro ST25R NFC/RFID Reader IC ST25R3911B, ST25R3912, ST25R3913, ST25R3914 a ST25R3915. Používá jej například firmware ST25R3911B-DISCO (STSW-ST25R002) a firmware X-NUCLEONFC05A1 (X-CUBE-NFC5).
STSW-ST25R009 podporuje všechny protokoly nižší vrstvy ST25R3911B a také některé protokoly vyšší vrstvy pro komunikaci. RFAL je napsán přenosným způsobem, takže může běžet na široké škále zařízení založených na Linuxu®. Tento dokument popisuje, jak lze knihovnu RFAL použít na standardním systému Linux (v tomto případě Raspberry Pi 4) pro komunikaci NFC/RF. Kód je vysoce přenosný a funguje s malými změnami na jakékoli platformě Linux.
Obrázek 1. Knihovna RFAL na platformě Linux
Nadview
Vlastnosti
- Kompletní ovladač uživatelského prostoru pro Linux (RF abstraction layer) pro vytváření aplikací s podporou NFC pomocí vysoce výkonných rozhraní NFC ST25R3911B/ST25R391x s výstupním výkonem až 1.4 W
- Komunikace hostitele Linuxu s ST25R3911B/ST25R391x pomocí rozhraní SPI
- Kompletní RF/NFC abstrakce (RFAL) pro všechny hlavní technologie a protokoly vyšších vrstev:
- NFC-A (ISO14443-A)
- NFC-B (ISO14443-B)
- NFC-F (FeliCa™)
- NFC-V (ISO15693)
- P2P (ISO18092)
- ISO-DEP (protokol výměny dat ISO, ISO14443-4)
- NFC-DEP (protokol výměny dat NFC, ISO18092)
- Proprietární technologie (Kovio, B', iClass, Calypso®, …)
- SampImplementace dostupná s rozšiřující deskou X-NUCLEO-NFC05A1, zapojenou do Raspberry Pi 4
- Sampaplikace pro detekci několika NFC tag typy a mobilní telefony podporující P2P
- Bezplatné uživatelsky přívětivé licenční podmínky
Softwarová architektura
Obrázek 2 ukazuje detaily softwarové architektury knihovny RFAL na platformě Linux®.
RFAL je snadno přenosný na jiné platformy přizpůsobením tzv. platformy files.
Hlavička file rfal_platform.h obsahuje definice maker, které musí poskytnout a implementovat vlastník platformy. Kromě toho poskytuje nastavení specifická pro platformu, jako je přiřazení GPIO, systémové prostředky, zámky a IRQ, které jsou nutné pro správnou funkci RFAL.
Tato ukázka implementuje funkce platformy a poskytuje port knihovny RFAL do uživatelského prostoru Linux®. Sdílená knihovna file je generován, který používá demo aplikace k předvedení funkcí poskytovaných vrstvou RFAL.
Hostitel Linux® používá rozhraní sysfs dostupné z uživatelského prostoru Linux® pro umožnění komunikace SPI se zařízením ST25R3911B. Uvnitř jádra Linux® rozhraní SPI sysfs používá ovladač spidev jádra Linux® k odesílání/přijímání rámců SPI do/z ST25R3911B.
Pro zpracování přerušovací linky ST25R3911B používá ovladač libgpiod k upozornění na změny na této lince.
Obrázek 2. Architektura softwaru RFAL v systému Linux
Nastavení hardwaru
Použitá platforma
Deska Raspberry Pi 4 s OS Raspberry Pi se používá jako platforma Linux k sestavení knihovny RFAL a interakci s ST25R3911B přes SPI.
ST25R3911B umožňuje aplikaci na platformě Linux detekovat a komunikovat s NFC zařízeními.
Hardwarové požadavky
- Raspberry Pi 4
- 8GB micro SD karta pro zavedení operačního systému Raspberry Pi
- čtečka SD karet
- Přemosťovací deska pro připojení X-NUCLEO-NFC05A1 s Raspberry Pi Arduino adaptérem pro Raspberry Pi, číslo dílu ARPI600.
- X-NUCLEO-NFC05A1. Viz nejnovější požadavky na operační systém Raspberry Pi.
Hardwarové připojení
Adaptérová deska ARPI600 Raspberry Pi to Arduino se používá k propojení X-NUCLEO-NFC05A1 s Raspberry Pi. Pro připojení k X-NUCLEO-NFC05A1 je nutné upravit propojky adaptérové desky.
Pozor: ARPI600 nesprávně dodává 5 V na pin Arduino IOREF. Přímé připojení X-NUCLEO-NFC05A1 dodává zpět 5 V na některé kolíky, což může poškodit desku Raspberry Pi. Existují zprávy zejména o tom, že Raspberry Pi 4B+ je skutečně zničeno. Abyste se vyhnuli této situaci, přizpůsobte buď ARPI600 (poměrně obtížná operace) nebo X-NUCLEO-NFC05A1 (snazší obsluha).
Nejjednodušší opravou je odříznout kolík CN6.2 (IOREF) na X-NUCLEO-NFC05A1, jak je znázorněno na obrázku 3.
Vyříznutí tohoto kolíku neovlivní provoz ve spojení s deskami Nucleo (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB atd.).
Obrázek 3. Oprava hardwarového připojení
Nastavení jumperu
Propojky pro A5, A4, A3, A2, A1 a A0 zobrazené na obrázku 4 je třeba změnit na P23, P22, P21 a CE1. S tímto nastavením propojky je GPIO pin číslo 7 Raspberry použit jako přerušovací linka pro X-NUCLEO-NFC05A1.
Obrázek 4. Umístění propojek A5, A4, A3, A2, A1 a A0 na desce adaptéru
V současné době tento port knihovny RFAL používá jako přerušovací linku pin GPIO7, podle nastavení propojky. Pokud existuje požadavek na změnu linky přerušení z GPIO7 na jinou GPIO, kód specifický pro platformu (v file pltf_gpio.h) je třeba upravit, aby se změnila definice makra „ST25R_INT_PIN“ ze 7 na nový pin GPIO, který má být použit jako přerušovací linka.
S výše uvedeným nastavením propojek lze desku adaptéru použít k propojení X-NUCLEO-NFC05A1 s deskou Raspberry Pi, jak je znázorněno na obrázku 5.
Obrázek 5. Horní nastavení hardwaru view
Obrázek 6. Strana nastavení hardwaru view
Nastavení prostředí Linux
Bootování Raspberry Pi
Chcete-li nastavit prostředí Linuxu, prvním krokem je instalace a spuštění Raspberry Pi 4 s OS Raspberry Pi, jak je vysvětleno níže:
Krok 1
Stáhněte si nejnovější obraz Raspberry Pi OS z odkazu:
Vyberte si Raspberry Pi OS s desktopem. Pro níže uvedené testy byla použita následující verze: září 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).
Krok 2
Rozbalte obraz Raspberry Pi a zapište jej na kartu SD podle pokynů v části „Zápis obrázku na kartu SD“.
Krok 3
Připojte hardware:
- Připojte Raspberry Pi k monitoru pomocí standardního kabelu HDMI.
- Připojte myš a klávesnici k USB portům Raspberry Pi.
S Raspberry Pi je také možné pracovat pomocí ssh. V takovém případě není nutné k Raspberry Pi připojovat monitor, klávesnici a myš. Jediným požadavkem je mít počítač s ssh ve stejné síti jako Raspberry Pi a podle toho nakonfigurovat IP adresu.
Krok 4
Spusťte Raspberry Pi pomocí SD karty.
Po nabootování se na monitoru objeví pracovní plocha Linuxu založená na Debianu.
Poznámka: Někdy lze pozorovat, že po spuštění Raspberry Pi některé klávesy na klávesnici nefungují. Aby fungovaly, otevřete file /etc/default/keyboard a nastavte XKBLAYOUT=”us” a restartujte Raspberry Pi.
Povolte SPI na Raspberry Pi
Ovladač SPI uvnitř jádra komunikuje s X-NUCLEO-NFC05A1 přes SPI. Je důležité zkontrolovat, zda je SPI již povoleno v konfiguraci OS/kernelu Raspberry Pi.
Zkontrolujte, zda je /dev/spidev0.0 viditelný v prostředí Raspberry Pi. Pokud není vidět, povolte rozhraní SPI pomocí nástroje „raspi-config“ podle níže popsaných kroků.
Krok 1
Otevřete nový terminál na Raspberry Pi a spusťte příkaz „raspi-config“ jako root:
sudo raspi-config
Tento krok otevře grafické rozhraní.
Krok 2
Vyberte v grafickém rozhraní možnost s názvem „Možnosti rozhraní“.
Krok 3
Tento krok uvádí různé možnosti.
Vyberte možnost s názvem „SPI“.
Objeví se nové okno s následujícím textem:
"Chtěli byste povolit rozhraní SPI?"
Krok 4
Vybrat v tomto okně povolte SPI.
Krok 5
Restartujte Raspberry Pi.
Výše uvedené kroky povolí rozhraní SPI v prostředí Raspberry Pi po restartu.
Sestavení knihovny a aplikace RFAL
Demo RFAL Linuxu je k dispozici v archivu. Předpokládejme, že se jmenuje:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Chcete-li vytvořit knihovnu a aplikaci RFAL na Raspberry Pi, postupujte takto:
Krok 1
Rozbalte balíček na Raspberry Pi pomocí níže uvedeného příkazu z domovského adresáře:
tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz
Krok 2
Pokud jste tak neučinili dříve, nainstalujte cmake pomocí níže uvedeného příkazu:
apt-get install cmake
Systém sestavování knihovny a aplikací RFAL je založen na cmake, z tohoto důvodu je nutné pro kompilaci balíčku nainstalovat cmake.
Krok 3
Chcete-li sestavit knihovnu a aplikaci RFAL, přejděte do adresáře „build“:
cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build
a odtud spusťte níže uvedený příkaz:
cmake..
Ve výše uvedeném příkazu „..“ označuje, že v nadřazeném adresáři existuje soubor CMakeLists.txt nejvyšší úrovně, tzn.
ST25R3911B_v2.8.0_Linux_demo_v1.0.
Příkaz cmake vytvoří makefile který se použije v dalším kroku k sestavení knihovny a aplikace.
Krok 4
Spusťte příkaz „make“ pro vytvoření knihovny a aplikace RFAL:
udělat
Příkaz „make“ nejprve sestaví knihovnu RFAL a poté na ni sestaví aplikaci.
Jak spustit aplikaci
Úspěšné sestavení vygeneruje spustitelný soubor s názvem „nfc_demo_st25r3911b“ v následujícím umístění:
/build/applications.
Ve výchozím nastavení musí být aplikace spuštěna s právy root z cesty: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:
sudo ./demo/nfc_demo_st25r3911b
Aplikace spustí dotaz na NFC tags a mobilní telefony. Zobrazuje nalezená zařízení s jejich UID, jak je znázorněno na obrázku 7.
Obrázek 7. Zobrazení nalezených zařízení
Chcete-li aplikaci ukončit, stiskněte Ctrl + C.
Historie revizí
Tabulka 1. Historie revizí dokumentu
Seznam tabulek
Tabulka 1. Historie revizí dokumentu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Seznam figur
Obrázek 1. Knihovna RFAL na platformě Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Obrázek 2. Architektura softwaru RFAL v systému Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Obrázek 3. Oprava hardwarového připojení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Obrázek 4. Umístění propojek A5, A4, A3, A2, A1 a A0 na desce adaptéru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Obrázek 5. Horní nastavení hardwaru view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Obrázek 6. Strana nastavení hardwaru view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Obrázek 7. Zobrazení nalezených zařízení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
DŮLEŽITÉ UPOZORNĚNÍ – ČTĚTE POZORNĚ
STMicroelectronics NV a její dceřiné společnosti (“ST”) si vyhrazují právo provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a/nebo tohoto dokumentu kdykoli bez upozornění. Kupující by měli před zadáním objednávky získat nejnovější relevantní informace o produktech ST. Produkty ST jsou prodávány v souladu s prodejními podmínkami ST platnými v době potvrzení objednávky.
Kupující jsou výhradně odpovědní za výběr, výběr a použití produktů ST a ST nepřebírá žádnou odpovědnost za pomoc s aplikací nebo design produktů kupujících.
Společnost ST zde neuděluje žádnou výslovnou ani předpokládanou licenci k právu duševního vlastnictví.
Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší jakoukoli záruku poskytnutou společností ST na takový produkt.
ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST viz www.st.com/trademarks. Všechny ostatní názvy produktů nebo služeb jsou majetkem jejich příslušných vlastníků.
Informace v tomto dokumentu nahrazují a nahrazují informace dříve uvedené v předchozích verzích tohoto dokumentu.
© 2023 STMicroelectronics – Všechna práva vyhrazena
Dokumenty / zdroje
![]() |
Ovladač STMicroelectronics UM2375 Linux [pdfUživatelská příručka UM2375 Linux Driver, UM2375, Linux Driver, Driver |