Logo STMicroelectronicsLinuxový ovladač UM2548
Linux
® ovladač pro ST25R3916/ST25R3916B
Uživatelská příručka

Linuxový ovladač UM2548

Zavedení
STSW-ST25R013 Ovladač Linux® umožňuje Raspberry Pi® 4 pracovat s deskami X-NUCLEO-NFCO6A1 a X-NUCLEO-NFCO8A1, které obsahují zařízení ST25R3916 a ST25R3916B.
Tento balíček portuje RF abstraction layer (RFAL) na platformu Raspberry Pi 4 Linux, aby fungovala s firmwarem desky, a poskytuje jakoampaplikace detekující různé typy NFC tags a mobilní telefony podporující P2P. RFAL je standardní ovladač ST pro ST25R3916 a ST25R3916B, vysoce výkonná univerzální zařízení NFC / čtečky EMVCo. Používá jej například firmware ST25R3916-DISCO (STSW-ST25R010) a firmware X-NUCLEO-NFCO06A1 (X-CUBE-NFC6).
STSW-ST25R013 podporuje všechny protokoly nižší vrstvy ST25R3916/ST25R3916B a 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 NFC/RF komunikaci. Kód je vysoce přenosný a funguje s malými změnami na jakékoli platformě Linux.

STMicroelectronics UM2548 Linux Driver - platforma Linux

Nadview

1.1 Vlastnosti

  • Kompletní ovladač uživatelského prostoru pro Linux (RF abstraction layer) pro vytváření aplikací podporujících NFC pomocí zařízení ST25R3916 a ST25R3916B
  • Komunikace hostitele Linuxu s ST25R3916/ST25R3916B 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)
    – Vlastní technologie, jako jsou Kovio, B', iClass, Calypso®
  • SampImplementace dostupná s rozšiřujícími deskami X-NUCLEO-NFC06A1 a X-NUCLEO-NFC08A1 zapojenými 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

1.2 Architektura softwaru
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é má poskytnout a implementovat vlastník platformy.
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 RFAL do uživatelského prostoru Linuxu.
Sdílená knihovna file je generován, který je používán demonstrativní aplikací k předvedení funkcí poskytovaných vrstvou RFAL.
Hostitel Linux používá rozhraní sysfs dostupné z uživatelského prostoru Linuxu pro provádění SPI komunikace se zařízeními. Uvnitř linuxového jádra používá rozhraní SPI sysfs ovladač linuxového jádra spidev k odesílání/přijímání rámců SPI do/ze zařízení.
Pro manipulaci s INT linkou zařízení ST25R3916 a ST25R3916B ovladač používá libpiod sysfs k upozornění na změny na této lince.

STMicroelectronics UM2548 Linux Driver - softwarová architektura

Nastavení hardwaru

2.1 Použitá platforma
Deska Raspberry Pi 4 s OS Raspberry Pi se používá jako linuxová platforma k sestavení knihovny RFAL a interakci s ST25R3916/ST25R3916B přes SPI.
Zařízení umožňují aplikaci na platformě Linux detekovat a komunikovat s NFC zařízeními.

2.2 Hardwarové požadavky

  • Raspberry Pi 4
  • 8GB micro SD karta pro spouštění operačního systému Raspberry Pi (s nejnovějšími požadavky)
  • čtečka SD karet
  • Desky X-NUCLEO-NFC06A1 nebo X-NUCLEO-NFC08A1
  • Most pro připojení desky s adaptérem Raspberry Pi Arduino™ pro Raspberry Pi (číslo dílu ARPI600)

2.2.1 Hardwarové připojení
K propojení desek s Raspberry Pi slouží adaptér ARPI600 Raspberry Pi to Arduino. Propojky desky adaptéru musí být upraveny tak, aby ji bylo možné připojit k deskám X-NUCLEO-NFC06A1 nebo X-NUCLEO-NFC08A1.
Pozor:
ARPI600 nesprávně dodává 5 V na pin Arduino IOREF. Přímé připojení desek dodává zpět 5 V na některé kolíky, což může poškodit desku Raspberry Pi. Objevují se zprávy o zničených deskách (zejména Raspberry Pi 4B+).
Abyste tomu zabránili, přizpůsobte ARPI600 (poměrně obtížná operace) nebo desku X-NUCLEO-NFC06A1/X-NUCLEONFC08A1 (snazší).
Nejjednodušší opravou je vyříznout kolík CN6.2 (IOREF) na deskách X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1, jak je znázorněno na obrázku 3.
Vyříznutí tohoto kolíku neovlivní provoz ve spojení s deskami Nucleo (jako jsou NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB).

STMicroelectronics UM2548 Linux Driver - Hardwarové připojení

Nastavení jumperu
Propojky pro A5, A4, A3, A2, A1 a A0 zobrazené na obrázku 4 musí být změněny na P25, P24, P23, P22, P21 a CE1. S tímto nastavením je GPIO pin číslo 7 Raspberry použit jako přerušovací linka pro X-NUCLEONFC06A1/X-NUCLEO-NFC08A1.

STMicroelectronics UM2548 Linux Driver - deska 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) musí být upraven, 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 NFC06A1 a X-NUCLEO-NFC08A1 s deskou Raspberry Pi, jak je znázorněno na následujících obrázcích.

Ovladač STMicroelectronics UM2548 Linux – nastavení hardwaru

Nastavení prostředí Linux

3.1 Bootování Raspberry Pi
Chcete-li nastavit prostředí Linux, nejprve nainstalujte a spusťte Raspberry Pi s OS Raspberry Pi, jak je vysvětleno níže:
Krok 1
Stáhněte si nejnovější bitovou kopii operačního systému Raspberry Pi z https://www.raspberrypi.coma poté vyberte Raspberry Pi OS s desktopem. Pro níže uvedené testy byla použita verze 2022-09-22-raspios-bullseye-armhf.img.xz (září 2022).
Krok 2
Rozbalte obraz Raspberry Pi OS a zapište jej na SD kartu podle pokynů v části „Zápis obrazu na SD kartu“.
Krok 3
Připojte hardware:

  • Připojte Raspberry Pi 4 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 tomto případě. k Raspberry Pi není nutné 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 4 pomocí SD karty. Po nabootování se na monitoru objeví pracovní plocha Linuxu založená na Debianu.
Poznámka:
Někdy po spuštění systému Raspberry Pi OS nefungují některé klávesy klávesnice. Aby fungovaly, otevřete file /etc/default/keyboard a nastavte XKBLAYOUT=”us” a restartujte Raspberry Pi.
3.2 Povolte SPI na Raspberry Pi
Ovladač SPI uvnitř jádra komunikuje s deskami X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 prostřednictvím SPI. Je důležité zkontrolovat, zda je SPI již povoleno v konfiguraci jádra OS Raspbian 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.

Sestavte knihovnu a aplikaci RFAL

Ukázka RFAL Linuxu je k dispozici v archivu, jako je ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz.
Chcete-li vytvořit knihovnu a aplikaci RFAL na Raspberry Pi, proveďte následující kroky:
Krok 1
Rozbalte balíček na Raspberry Pi pomocí následujícího příkazu z domovského adresáře
tar -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
Krok 2
Nainstalujte cmake (pokud jste tak neučinili dříve) pomocí příkazu
apt-get install cmake
Knihovna RFAL a systém sestavení aplikace jsou založeny na cmake, z tohoto důvodu je nutné nainstalovat cmake pro kompilaci balíčku.
Krok 3
Chcete-li sestavit knihovnu a aplikaci RFAL, přejděte do adresáře sestavení
cd ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
Odtud spusťte 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ě
(ST25R3916_v2.8.0_Linux_demo_v1.0).
Tento příkaz vytvoří značkufile použit v dalším kroku k sestavení knihovny a aplikace. Odtud spusťte následující příkaz k vytvoření ukázky pro ST25R3916B
cmake -DRFAL_VARIANT=st25r3916b ..
Krok 4
Spusťte příkaz make pro vytvoření knihovny a aplikace RFAL:
udělat
Tento příkaz nejprve vytvoří knihovnu RFAL a poté nad ní aplikaci.

Jak spustit aplikaci

Úspěšné sestavení vygeneruje spustitelný soubor s názvem „nfc_poller_st25r3916“ nebo „nfc_poller_st25r3916b“ v umístění /build/demo.
Ve výchozím nastavení musí být aplikace spuštěna s právy root z cesty ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/:
sudo ./nfc_demo_st25r3916
Aplikace spustí dotaz na NFC tags a mobilních telefonů, poté zobrazí nalezená zařízení s jejich UID, jak je znázorněno na obrázku 7.

STMicroelectronics UM2548 Linux Driver – nalezená zařízení

Chcete-li aplikaci ukončit, stiskněte Ctrl + C.

Historie revizí
Tabulka 1. Historie revizí dokumentu

Datum Revize Změny
1-března-19 1 Počáteční vydání.
4-dub-23 2 Aktualizovaný název dokumentu, sekce Úvod, sekce 1.1 Funkce,
Oddíl 1.2 Architektura softwaru, Oddíl 2.1 Použitá platforma, Oddíl 2.2 Hardware
požadavky, Část 2.2.1 Hardwarová připojení, Část 3.1 Zavedení Raspberry Pi,
Část 3.2 Povolení SPI na Raspberry Pi, Část 4 Sestavení knihovny a aplikace RFAL,
a Část 5 Jak spustit aplikaci.
Aktualizováno Obrázek 1. Knihovna RFAL na platformě Linux, Obrázek 2. Architektura softwaru RFAL
v systému Linux a Obrázek 5. Nastavení hardwaru nahoře view.
Drobné úpravy textu v celém dokumentu.

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

UM2548 – Rev 2

Dokumenty / zdroje

Ovladač STMicroelectronics UM2548 Linux [pdfUživatelská příručka
UM2548 Linux Driver, UM2548, Linux Driver, Driver

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *