UM3078-LOGO

Ovladač uživatelského prostoru pro Linux UM3078 ST25DVXXKC

UM3078-ST25DVXXKC-Linux-User-Space-Driver-PRO

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ě:

  1. 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Ω.
    UM3078-ST25DVXXKC-Linux-User-Space-Driver-1
  2. Zapojte rozšiřující desku X-NUCLEO-NFC07A1 do konektorů Arduino® na spodní straně vyhledávací desky STM32MP157F-DK2.
    UM3078-ST25DVXXKC-Linux-User-Space-Driver-2
  3. 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).
  4. Napájejte vyhledávací desku přes port USB typu C (CN6).
    UM3078-ST25DVXXKC-Linux-User-Space-Driver-3

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í:

  1. Na hostiteli PC:
    • zkopírujte celý strom ST25DVLinux files k PC/virtuálnímu počítači: scp -r :.
  2. 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@:.
  3. 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

Reference

Zanechte komentář

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