
UM2548 Linux-ohjain
Linux® ajuri malleihin ST25R3916/ST25R3916B
Käyttöopas
UM2548 Linux-ohjain
Johdanto
STSW-ST25R013 Linux®-ohjain mahdollistaa Raspberry Pi® 4:n toiminnan X-NUCLEO-NFCO6A1- ja X-NUCLEO-NFCO8A1-levyjen kanssa, jotka sisältävät ST25R3916- ja ST25R3916B-laitteet.
Tämä paketti siirtää RF-abstraction-kerroksen (RFAL) Raspberry Pi 4 Linux -alustalle toimiakseen kortin laiteohjelmiston kanssa ja tarjoaaampsovellus, joka havaitsee erityyppisiä NFC:itä tags ja P2P:tä tukevat matkapuhelimet. RFAL on ST-standardiohjain ST25R3916:lle ja ST25R3916B:lle, korkean suorituskyvyn NFC-yleislaitteille / EMVCo-lukijoille. Sitä käyttävät esimerkiksi laiteohjelmisto ST25R3916-DISCO (STSW-ST25R010) ja laiteohjelmisto X-NUCLEO-NFCO06A1 (X-CUBE-NFC6).
STSW-ST25R013 tukee kaikkia ST25R3916/ST25R3916B alemman kerroksen ja joitain ylemmän kerroksen protokollia tiedonsiirtoon. RFAL on kirjoitettu kannettavalla tavalla, joten sitä voidaan käyttää monenlaisissa Linux-pohjaisissa laitteissa. Tässä asiakirjassa kuvataan, kuinka RFAL-kirjastoa voidaan käyttää tavallisessa Linux-järjestelmässä (tässä tapauksessa Raspberry Pi 4) NFC/RF-viestintään. Koodi on erittäin kannettava ja toimii pienillä muutoksilla millä tahansa Linux-alustalla.

Yliview
1.1 Ominaisuudet
- Täydellinen Linux-käyttötilan ohjain (RF-abstraktiokerros) NFC-yhteensopivien sovellusten rakentamiseen ST25R3916- ja ST25R3916B-laitteiden avulla
- Linux-isäntäviestintä ST25R3916/ST25R3916B:n kanssa SPI-liitännän avulla
- Täydellinen RF/NFC-abstraktio (RFAL) kaikille tärkeimmille teknologioille ja korkeamman kerroksen protokollille:
– NFC-A (ISO14443-A)
– NFC-B (ISO14443-B)
– NFC-F (FeliCa™)
– NFC-V (ISO15693)
– P2P (ISO18092)
– ISO-DEP (ISO-tiedonvaihtoprotokolla, ISO14443-4)
– NFC-DEP (NFC-tiedonsiirtoprotokolla, ISO18092)
– Omistusteknologiat, kuten Kovio, B', iClass, Calypso® - Samptoteutus saatavilla X-NUCLEO-NFC06A1- ja X-NUCLEO-NFC08A1-laajennuskorteilla, jotka on kytketty Raspberry Pi 4:ään
- Sample sovellus tunnistaa useita NFC tag tyypit ja matkapuhelimet, jotka tukevat P2P:tä
- Ilmaiset käyttäjäystävälliset lisenssiehdot
1.2 Ohjelmistoarkkitehtuuri
Kuva 2 esittää RFAL-kirjaston ohjelmistoarkkitehtuurin yksityiskohdat Linux-alustalla.
RFAL on helposti siirrettävissä muille alustoille mukauttamalla ns files.
Otsikko file rfal_platform.h sisältää makromääritykset, jotka alustan omistaja toimittaa ja toteuttaa.
Se tarjoaa alustakohtaisia asetuksia, kuten GPIO-määrityksen, järjestelmäresurssit, lukot ja IRQ:t, joita tarvitaan RFAL:n oikeaan toimintaan.
Tämä esittely toteuttaa alustan toiminnot ja tarjoaa RFAL-portin Linuxin käyttäjätilaan.
Jaettu kirjasto file on luotu, jota demonstroiva sovellus käyttää esittelemään RFAL-kerroksen tarjoamia toimintoja.
Linux-isäntä käyttää Linux-käyttötilasta saatavaa sysf-liitäntää SPI-viestinnän suorittamiseen laitteiden kanssa. Linux-ytimen sisällä SPI sysfs -rajapinta käyttää Linux-ytimen ajuria spidev lähettääkseen/vastaanottaakseen SPI-kehykset laitteille/laitteilta.
ST25R3916- ja ST25R3916B-laitteiden INT-linjan käsittelyyn ajuri käyttää libpiod sysfs -järjestelmää saadakseen ilmoituksen tämän rivin muutoksista.

Laitteiston asennus
2.1 Käytetty alusta
Raspberry Pi 4 -levyä, jossa on Raspberry Pi OS, käytetään Linux-alustana RFAL-kirjaston rakentamiseen ja vuorovaikutukseen ST25R3916/ST25R3916B:n kanssa SPI:n kautta.
Laitteet mahdollistavat Linux-alustalla olevan sovelluksen havaitsemaan NFC-laitteita ja kommunikoimaan niiden kanssa.
2.2 Laitteistovaatimukset
- Raspberry Pi 4
- 8 Gt:n micro SD -kortti Raspberry Pi OS:n käynnistämiseen (sen uusimmat vaatimukset)
- SD-kortin lukija
- X-NUCLEO-NFC06A1- tai X-NUCLEO-NFC08A1-levyt
- Silta levyn liittämiseen Raspberry Pi Arduino™ -sovittimella Raspberry Pi:lle (osanumero ARPI600)
2.2.1 Laitteistoliitännät
ARPI600 Raspberry Pi–Arduino -sovitinta käytetään liittämään levyt Raspberry Pi:hen. Sovitinkortin jumpperia on muutettava, jotta se voidaan liittää X-NUCLEO-NFC06A1- tai X-NUCLEO-NFC08A1-kortteihin.
Varoitus:
ARPI600 syöttää virheellisesti 5 V jännitettä Arduino IOREF -nastalle. Levyjen suoraan kiinnittäminen syöttää takaisin 5 V jännitettä joihinkin nastoihin, mikä voi vahingoittaa Raspberry Pi -levyä. On raportoitu tuhoutuneista levyistä (erityisesti Raspberry Pi 4B+).
Tämän välttämiseksi sovita ARPI600 (melko vaikea toiminto) tai X-NUCLEO-NFC06A1/X-NUCLEONFC08A1-kortti (helppo).
Helpoin korjaus on leikata CN6.2 (IOREF) -nasta X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1-korteista kuvan 3 mukaisesti.
Tämän tapin leikkaaminen ei vaikuta toimintaan yhdessä Nucleo-levyjen kanssa (kuten NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB).

Jumper-asetus
Kuvassa 5 näkyvät A4-, A3-, A2-, A1-, A0- ja A4-sillat on vaihdettava P25:ksi, P24:ksi, P23:ksi, P22:ksi, P21:ksi ja CE1:ksi. Tällä asetuksella Raspberryn GPIO-nastaa numero 7 käytetään keskeytyslinjana X-NUCLEONFC06A1/X-NUCLEO-NFC08A1:lle.

Tällä hetkellä tämä RFAL-kirjastoportti käyttää nastaa GPIO7 keskeytyslinjana (hyppyjälkiasetusten mukaan). Jos keskeytyslinja on vaihdettava GPIO7:stä toiseen GPIO:han, alustakohtainen koodi (kohdassa file pltf_gpio.h) on muokattava, jotta makron ST25R_INT_PIN määritelmä muutetaan arvosta 7 uudeksi GPIO-nastaksi, jotta sitä voidaan käyttää keskeytyslinjana.
Yllä olevilla jumpperiasetuksilla sovitinkorttia voidaan käyttää liittämään X-NUCLEO NFC06A1 ja X-NUCLEO-NFC08A1 Raspberry Pi -korttiin seuraavien kuvien mukaisesti.

Linux-ympäristön asetukset
3.1 Raspberry Pi:n käynnistys
Asenna Linux-ympäristö asentamalla ja käynnistämällä ensin Raspberry Pi Raspberry Pi OS -käyttöjärjestelmällä alla kuvatulla tavalla:
Vaihe 1
Lataa uusin Raspberry Pi OS -kuva osoitteesta https://www.raspberrypi.comja valitse sitten Raspberry Pi OS with desktop. Alla oleviin testeihin on käytetty versiota 2022-09-22-raspios-bullseye-armhf.img.xz (syyskuu 2022).
Vaihe 2
Pura Raspberry Pi OS -kuva ja kirjoita se SD-kortille noudattamalla "Kuvan kirjoittaminen SD-kortille" -osiossa olevia ohjeita.
Vaihe 3
Liitä laitteisto:
- Liitä Raspberry Pi 4 näyttöön tavallisella HDMI-kaapelilla.
- Liitä hiiri ja näppäimistö Raspberry Pi:n USB-portteihin.
Raspberry Pi:n kanssa on myös mahdollista työskennellä ssh:lla. Tässä tapauksessa. näyttöä, näppäimistöä ja hiirtä ei tarvitse liittää Raspberry Pi:hen. Ainoa vaatimus on, että ssh-tietokone on samassa verkossa kuin Raspberry Pi, ja määritä IP-osoite vastaavasti.
Vaihe 4
Käynnistä Raspberry Pi 4 SD-kortilla. Käynnistyksen jälkeen näyttöön tulee Debian-pohjainen Linux-työpöytä.
Huomautus:
Joskus Raspberry Pi OS:n käynnistämisen jälkeen jotkut näppäimistön näppäimet eivät toimi. Saat ne toimimaan avaamalla file /etc/default/keyboard ja aseta XKBLAYOUT=”us” ja käynnistä Raspberry Pi uudelleen.
3.2 Ota SPI käyttöön Raspberry Pi:ssä
Ytimen sisällä oleva SPI-ohjain kommunikoi X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1-korttien kanssa SPI:n kautta. On tärkeää tarkistaa, onko SPI jo käytössä Raspbian Pi OS -ytimen kokoonpanossa.
Tarkista, näkyykö /dev/spidev0.0 Raspberry Pi -ympäristössä. Jos se ei ole näkyvissä, ota SPI-liitäntä käyttöön "raspi-config" -apuohjelmalla noudattamalla alla kuvattuja vaiheita.
Vaihe 1
Avaa uusi pääte Raspberry Pi:ssä ja suorita komento "raspi-config" pääkäyttäjänä: sudo raspi-config
Tämä vaihe avaa graafisen käyttöliittymän.
Vaihe 2
Valitse graafisesta käyttöliittymästä vaihtoehto nimeltä "Liitäntäasetukset".
Vaihe 3
Tässä vaiheessa luetellaan erilaisia vaihtoehtoja.
Valitse vaihtoehto nimeltä "SPI".
Näkyviin tulee uusi ikkuna, jossa on seuraava teksti:
"Haluatko, että SPI-käyttöliittymä otetaan käyttöön?"
Vaihe 4
Valitse tässä ikkunassa ottaaksesi SPI käyttöön.
Vaihe 5
Käynnistä Raspberry Pi uudelleen.
Yllä olevat vaiheet mahdollistavat SPI-rajapinnan Raspberry Pi -ympäristössä uudelleenkäynnistyksen jälkeen.
Rakenna RFAL-kirjasto ja -sovellus
Linuxin RFAL-esittely on arkistossa, kuten ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz.
Voit rakentaa RFAL-kirjaston ja -sovelluksen Raspberry Pi:lle suorittamalla seuraavat vaiheet:
Vaihe 1
Pura paketti Raspberry Pi:ssä seuraavalla komennolla kotihakemistosta
tar -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
Vaihe 2
Asenna cmake (jos sitä ei ole tehty aiemmin) komennolla
apt-get install cmake
RFAL-kirjasto ja sovellusten rakennusjärjestelmä perustuvat cmakeen, tästä syystä paketin kääntämistä varten on asennettava cmake.
Vaihe 3
Voit rakentaa RFAL-kirjaston ja -sovelluksen siirtymällä rakennushakemistoon
cd ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
Suorita sieltä komento
cmake..
Yllä olevassa komennossa ".." osoittaa, että ylätason CMakeLists.txt on olemassa päähakemistossa
(ST25R3916_v2.8.0_Linux_demo_v1.0).
Tämä komento luo makenfile käytetään seuraavassa vaiheessa kirjaston ja sovelluksen rakentamiseen. Suorita sieltä seuraava komento luodaksesi esittelyn ST25R3916B:lle
cmake -DRFAL_VARIANT=st25r3916b ..
Vaihe 4
Suorita make-komento rakentaaksesi RFAL-kirjaston ja -sovelluksen:
tehdä
Tämä komento rakentaa ensin RFAL-kirjaston ja sitten sovelluksen sen päälle.
Kuinka käyttää sovellusta
Onnistunut kokoaminen luo suoritettavan tiedoston nimeltä "nfc_poller_st25r3916" tai "nfc_poller_st25r3916b" sijaintiin /build/demo.
Oletusarvoisesti sovellus on ajettava pääkäyttäjän oikeuksilla polusta ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/:
sudo ./nfc_demo_st25r3916
Sovellus alkaa äänestää NFC:tä tags ja matkapuhelimia, näyttää sitten löydetyt laitteet niiden UID-tunnuksella, kuten kuvassa 7.

Lopeta sovellus painamalla Ctrl + C.
Versiohistoria
Taulukko 1. Asiakirjan versiohistoria
| Päivämäärä | Tarkistus | Muutokset |
| 1-19-XNUMX | 1 | Alkuperäinen julkaisu. |
| 4. huhtikuuta 23 | 2 | Päivitetty asiakirjan otsikko, osion esittely, osion 1.1 ominaisuudet, Osa 1.2 Ohjelmistoarkkitehtuuri, Osa 2.1 Käytetty alusta, Osa 2.2 Laitteisto vaatimukset, Osa 2.2.1 Laitteistoliitännät, Osa 3.1 Raspberry Pi:n käynnistäminen, Osa 3.2 Ota SPI käyttöön Raspberry Pi:ssä, Osa 4 Rakenna RFAL-kirjasto ja -sovellus, ja Osa 5 Sovelluksen suorittaminen. Päivitetty Kuva 1. RFAL-kirjasto Linux-alustalla, Kuva 2. RFAL-ohjelmistoarkkitehtuuri Linuxissa ja Kuva 5. Laitteiston asennus alkuun view. Pienet tekstimuokkaukset koko asiakirjassa. |
TÄRKEÄ HUOMAUTUS – LUE HUOLELLISESTI
STMicroelectronics NV ja sen tytäryhtiöt ("ST") varaavat oikeuden tehdä muutoksia, korjauksia, parannuksia, muunnoksia ja parannuksia ST-tuotteisiin ja/tai tähän asiakirjaan milloin tahansa ilman erillistä ilmoitusta. Ostajien tulee saada viimeisimmät asiaankuuluvat tiedot ST-tuotteista ennen tilauksen tekemistä. ST-tuotteita myydään tilausvahvistushetkellä voimassa olevien ST:n myyntiehtojen mukaisesti.
Ostajat ovat yksin vastuussa ST-tuotteiden valinnasta, valinnasta ja käytöstä, eikä ST ota vastuuta sovellusavusta tai ostajien tuotteiden suunnittelusta.
ST ei myönnä tässä asiakirjassa mitään nimenomaista tai epäsuoraa lisenssiä millekään immateriaalioikeuksille.
ST-tuotteiden jälleenmyynti, jossa on poikkeavia ehtoja kuin tässä esitetyt tiedot, mitätöi kaikki ST:n kyseiselle tuotteelle myöntämät takuut.
ST ja ST-logo ovat ST:n tavaramerkkejä. Lisätietoja ST-tavaramerkeistä on kohdassa www.st.com/trademarks. Kaikki muut tuotteiden tai palveluiden nimet ovat omistajiensa omaisuutta.
Tämän asiakirjan tiedot korvaavat ja korvaavat tämän asiakirjan aiemmissa versioissa aiemmin annetut tiedot.
© 2023 STMicroelectronics – Kaikki oikeudet pidätetään
UM2548 – versio 2
Asiakirjat / Resurssit
![]() | UM2548 Linux-ohjain |
Viitteet
- raspberrypi.comwww.raspberrypi.com
- st.comwww.st.com
- st.com/en/product/stsw-st25r013?ecmp=tt9470_gl_link_feb2019&rt=um&id=UM2548www.st.com
- Käyttöopasmanual.tools
