Ovladač uživatelského prostoru pro Linux UM3078 ST25DVXXKC
Zavedení
Tento dokument ukazuje, jak používat softwarový balík STSW-ST25DV009 k ovládání dynamického NFC ST25DVXXKC. tag z platformy Linux®. Softwarový balíček STSW-ST25DV009 poskytuje ovladač uživatelského prostoru Linux® a některé exampsoubory, které lze nakonfigurovat tak, aby běžely na jakékoli platformě Linux®. ST25DVXXKC je dynamický NFC tag, který lze spravovat pomocí čtečky RFID nebo telefonu NFC, má také rozhraní I2C pro komunikaci s MCU nebo MPU. ST25DVXXKC je k dispozici napřample, na rozšiřující desce X-NUCLEO-NFC07A1. Informace a dokumentace týkající se komponent NFC, rozšiřující desky X-NUCLEO‑NFC07A1 a softwaru STSWST25DV009 jsou k dispozici na www.st.com.
Účel
ST25DVXXKC dynamické NFC/RFID tags jsou integrované obvody, které mohou komunikovat s oběma:
- Čtečky RFID a NFC telefony, založené na ISO/IEC 15693 a NFC Forum Type 5 tag specifikace.
- MCU nebo MPU využívající rozhraní I2C.
Tato zařízení lze použít na platformě Linux k umožnění bezdrátové komunikace, ke snadnému přenosu dat z platformy Linux do chytrého telefonu (například: URL, GPS souřadnice, data párování mimo pásmo atd.). Softwarový balíček STSW‑ST25DV009 poskytuje požadovaný kód pro ovládání zařízení ST25DVXXKC z uživatelského prostoru platformy Linux s řadičem I2C.
Struktura softwaru
Software STSW-ST25DV009 je rozdělen do několika vrstev:
- Ovladač komponenty ST25DVXXKC
- Balíček podpory desky
- Middleware knihovny NDEF
- Sample projektové kódy
Ovladač komponenty ST25DVXXKC
Ovladač součásti ST25DVXXKC poskytuje způsoby konfigurace a ovládání zařízení ST25DVXXKC. Tato část kódu je nezávislá na hardwaru a vyžaduje implementaci některých základních IO funkcí (viz část 2.2 Balíček podpory desky), jako je I2C čtení/zápis, ovládání gpio. Ovladač součásti ST25DVXXKC files jsou v adresáři Drivers/BSP/Components/ST25DVxxKC.
Balíček podpory desky
Balíček podpory desky implementuje dva různé aspekty:
- Nízkoúrovňové IO funkce volané ovladačem komponenty ST25DVXXKC
- API k metodám ovladače komponenty ST25DVXXKC
Balíček podpory desky files jsou v adresáři Drivers/BSP/Linux.
Nízkoúrovňové IO funkce
Nízkoúrovňová IO vrstva implementuje všechny nízkoúrovňové funkce požadované ovladačem ST25DVXXKC. Tato vrstva je implementována v adresáři Drivers/BSP/Linux s příponou fileje popsáno v tabulce 1.
Files | Popis |
Tyto files implementací funkcí: | |
st25dv-i2c_linux.c | • Konfigurace, čtení a zápis rozhraní I2C |
st25dv-i2c_linux.h | • Získejte milisekundový tik |
Tento kód se opírá o /dev/i2c-X file převzít kontrolu nad periferií I2C. | |
st25dv-i2c-gpo.c st25dv-i2c-gpo.h | Tyto files implementují funkce pro konfiguraci a příjem přerušení z GPO pinu ST25DVXXKC.
Tento kód používá /dev/gpiochipX file a vyhrazené vlákno pro hlasování o události na GPIO. |
st25dv-i2c-lpd.c st25dv-i2c-lpd.h |
Tyto files implementují funkce pro konfiguraci a ovládání nízkonapěťového pinu ST25DVXXKC. Tento kód používá následující filepro ovládání GPIO:
•/sys/class/gpio/export •/sys/class/gpio/gpioXX/direction • /sys/class/gpio/gpioXX/value. |
Tyto funkce jsou specifické pro použitou desku a musí být přizpůsobeny platformě, na které se používají (viz část 3 Jak nakonfigurovat desku).
API k metodám ovladače ST25DVXXKC
Toto rozhraní API je pouze obalem ovladače součásti ST25DVXXKC. Je implementován v Drivers/BSP/Linux/bsp_nfctag.ca Drivers/BSP/Linux/bsp_nfctag.h files.
Middleware knihovny NDEF
Fórum NFC definuje standardní formát, který se má použít při čtení/zápisu na zařízení NFC. Tento formát je známý jako
zprávy NDEF. Knihovna NDEF implementuje metody vysoké úrovně pro snadné formátování dat do formátu vyhovujícího NDEF
způsob. Tato knihovna STMicroelectronics je dodávána jako middleware, plně nezávislý na hardwaru a
přichází s rozhraním file implementovat pro cílovou platformu.
V softwarovém balíčku STSW-ST25DV009 tato rozhraní files jsou implementovány v:
- Projects\NDEF_URI\Src\lib_NDEF_config.c
- Projects\NDEF_BLUETOOTH\Src\lib_NDEF_config.c
Middleware knihovny NDEF files jsou v adresáři Middlewares/ST/lib_nfc
Sample projekty
V této sekci krátký konecview ze sampK dispozici jsou projekty zahrnuté v balíčku STSW-ST25DV009. Sampprojekty:
- musí být přizpůsobeno cílové platformě Linux (jak je vysvětleno v části 3 Jak nakonfigurovat desku)
- ukázat uživateli, jak používat API ke správné inicializaci a používání dynamického NFC/RFID tag IC (zařízení ST25DVxxKC)
Sampsoubory projektů jsou v adresáři ./Projects.
- NDEF_URI
Tato aplikace ukazuje, jak zapsat jednoduchou zprávu URI NDEF do EEPROM ST25DVXXKC pomocí middlewaru NDEF lib. Po úspěšném napsání zprávy se zobrazí zpráva. Ke čtení zprávy NDEF_URI lze použít chytrý telefon nebo čtečku NFC. - NDEF_BLUETOOTH
Tato aplikace ukazuje, jak zapsat zprávu Bluetooth® OOB NDEF do EEPROM ST25DVXXKC pomocí middlewaru NDEF lib. Po úspěšném napsání zprávy se zobrazí zpráva. Ke čtení zprávy NDEF_BLUETOOTH lze použít chytrý telefon nebo čtečku NFC. - GPO (univerzální výstup)
Tento example ukazuje, jak povolit a používat GPO. Po inicializaci je naprogramováno přerušení pro detekci změn pole v blízkosti ST25DVXXKC. Když je pole detekováno a když pole zmizí, zobrazí se zpráva. - I2CPROTECTION
Tento example ukazuje, jak vytvořit oblasti v ST25DVXXKC a jak je chránit. Text se zobrazí na konzole. - LPD (nízký výkon)
Tento example ukazuje, jak aktivovat kolík nízkého napájení (LPD). Zadáním „1“ nebo „0“ se LPD pin aktivuje nebo deaktivuje. Při aktivaci pinu LPD se ST25DVXXKC VCC odpojí, spotřeba energie je minimální a komunikace přes I2C není dostupná.
Poznámka: Tento test nelze spustit s rozšiřující deskou X-NUCLEO‑NFC07A1, protože deska takový kolík nepřipojuje. - Poštovní schránka
Tento example ukazuje, jak napsat zprávu do schránky a jak číst stavový registr schránky zařízení ST25DVXXKC. Zobrazí se text. - I2CCkanál
Tento example ukazuje, jak změnit I2C slave adresu a ukazuje, že zápis zprávy do mailboxu a čtení stavového registru mailboxu zařízení ST25DVXXKC fungují s novou slave adresou. Zobrazí se text a adresa I2C slave se vrátí na výchozí hodnotu.
Poznámka: Pokud uživatel zastaví aplikaci před jejím koncem, musí být pro následnou komunikaci s ST2DVXXKC použita příslušná I25C slave adresa. - I2CMode
Tento example ukazuje, jak změnit režim I2C slave (Normal/RF Off) a že s režimem I2C slave nastaveným na 'RFOFF' již není zpracovávána žádná komunikace NFC, zatímco s režimem I2C slave nastaveným na 'Normální' se zpracovává NFC komunikace.
Jak nakonfigurovat desku
Vrstva balíčku podpory desky musí být mírně přizpůsobena cílové platformě Linux, aby bylo možné vybrat periferii I2C, která bude komunikovat s ST25DVXXKC a GPIO je připojeno k pinům ST25DVXXKC GPO a LPD. Všechny požadované definice jsou uvedeny níže file: Drivers/BSP/Linux/hwconfig.h.
Tabulka 2. Definice konfigurace hardwaru:
Funkce | Definovat | Popis |
I2C | ST25DV_I2C_NR | Definuje číslo periferie I2C používané pro komunikaci s ST25DVXXKC.
Hodnota se používá k dokončení cesty k /dev/i2c-X file. |
GPO | ST25DV_GPO_GPIOCHIP | Definuje číslo GPIOCHIP připojené k GPO pinu ST25DVXXKC.
Hodnota se používá k dokončení cesty k /dev/gpiochipX file. |
ST25DV_GPO_PIN | Definuje číslo GPIO pinu GPIOCHIP připojeného k ST25DVXXKC GPO pinu. | |
LPD | ST25DV_LPD_PIN | Definuje globální číslo pinu GPIO připojeného k pinu ST25DVXXKC LPD. Slouží k exportu tohoto GPIO. |
ST25DV_LPD_DIRECTION | Definuje cestu k Linuxu file definování směru GPIO připojeného k pinu ST25DVXXKC LPD, jako například:
/sys/class/gpio/gpioXX/direction |
|
ST25DV_LPD_VALUE | Definuje cestu k Linuxu file definování hodnoty GPIO připojené k pinu ST25DVXXKC LPD, jako například:
/sys/class/gpio/gpioXX/value |
Nastavení hardwaru
Hardwarové požadavky:
- PC/Virtual-machine založené na Ubuntu verze 16.04 nebo vyšší
- Deska STM32MP157F-DK2 (discovery kit)
- X-NUCLEO-NFC07A1
- 8GB micro SD karta pro spuštění STM32MP157F-DK2
- Čtečka SD karet / LAN připojení
- USB kabel USB Type-A na Type-micro B (volitelný)
- Kabel USB typu A až typu C
- Napájecí zdroj 5V 3A kompatibilní s USB PD
PC/Virtual-machine tvoří platformu pro křížový vývoj pro vytvoření sample projektový kód aplikace. Hardware je připojen následovně:
- V závislosti na konfiguračním režimu I32C vyhledávací desky STM157MP2F-DK2 (normální, rychlý, rychlý+) lze pullup rezistory I07C rozšiřující desky X-NUCLEO-NFC1A2 (R5 a R6) zvýšit až na 10 kΩ.
- Zapojte rozšiřující desku X-NUCLEO-NFC07A1 do konektorů Arduino® na spodní straně vyhledávací desky STM32MP157F-DK2.
- V případě potřeby připojte programátor/ladicí program ST-LINK vestavěný na vyhledávací desce k hostitelskému počítači prostřednictvím portu USB micro B (CN11).
- Napájejte vyhledávací desku přes port USB typu C (CN6).
Kompilace a spuštění sample projekty
Každý STSW-ST25DV009 sample projekt přichází s makefile a lze je zkompilovat pomocí kompilátoru C, jako je GCC. Linuxová knihovna pthread se používá k vytvoření vlákna detekujícího událost na řádku GPO, tato knihovna je vyžadována pro správné propojení v době kompilace. Postupy kompilace a spuštění:
- Na hostiteli PC:
- zkopírujte celý strom ST25DVLinux files k PC/virtuálnímu počítači: scp -r :.
- Na PC/virtuálním počítači:
- křížově zkompilujte aplikaci (vygeneruje se staticky propojený spustitelný soubor file): cd ~//Projects/ make clean all
- kopírovat exe file na cílovou desku Linuxu (RPi, STM32MP157F-DK2, …): scp ~//Projects//st25dv-i2c_ root@:.
- Na desce STM32MP157F-DK2:
- spusťte zkopírovaný exe file: chmod +x st25dv-i2c_ ./st25dv-i2c_
Historie revizí
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í ST
produktů 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.
© 2022 STMicroelectronics – Všechna práva vyhrazena
Dokumenty / zdroje
![]() |
ST UM3078 ST25DVXXKC ovladač uživatelského prostoru pro Linux [pdfUživatelská příručka UM3078 ST25DVXXKC Linux User Space Driver, UM3078 ST25DVXXKC, UM3078, ST25DVXXKC, Linux User Space Driver, UM3078 Linux User Space Driver, ST25DVXXKC Linux User Space Driver, Linux User Driver, User Space Driver, Space Driver, Linux Driver, Driver |