Logotip de STMicroelectronicsControlador de Linux UM2548
Linux
® controlador per a ST25R3916/ST25R3916B
Manual d'usuari

Controlador de Linux UM2548

Introducció
STSW-ST25R013 El controlador Linux® permet que el Raspberry Pi® 4 funcioni amb les plaques X-NUCLEO-NFCO6A1 i X-NUCLEO-NFCO8A1, que contenen, respectivament, els dispositius ST25R3916 i ST25R3916B.
Aquest paquet porta la capa d'abstracció de RF (RFAL) a una plataforma Linux Raspberry Pi 4, per funcionar amb el microprogramari de la placa i proporciona comampl'aplicació que detecta diferents tipus de NFC tags i telèfons mòbils compatibles amb P2P. El RFAL és el controlador estàndard ST per a ST25R3916 i ST25R3916B, dispositius universals NFC d'alt rendiment / lectors EMVCo. S'utilitza, per exemple, pel microprogramari ST25R3916-DISCO (STSW-ST25R010) i pel microprogramari X-NUCLEO-NFCO06A1 (X-CUBE-NFC6).
STSW-ST25R013 Admet tots els protocols de la capa inferior ST25R3916/ST25R3916B i alguns protocols de capa superior per a la comunicació. El RFAL està escrit de manera portàtil, de manera que es pot executar en una àmplia gamma de dispositius basats en Linux. Aquest document descriu com es pot utilitzar la biblioteca RFAL en un sistema Linux estàndard (en aquest cas el Raspberry Pi 4) per a la comunicació NFC/RF. El codi és altament portàtil i funciona amb canvis menors a qualsevol plataforma Linux.

STMicroelectronics UM2548 Linux Driver - Plataforma Linux

Acabatview

1.1 Característiques

  • Controlador complet d'espai d'usuari de Linux (capa d'abstracció de RF) per crear aplicacions habilitades per NFC mitjançant els dispositius ST25R3916 i ST25R3916B
  • Comunicació de l'amfitrió Linux amb el ST25R3916/ST25R3916B mitjançant la interfície SPI
  • Abstracció completa de RF/NFC (RFAL) per a totes les tecnologies principals i protocols de capa superior:
    – NFC-A (ISO14443-A)
    – NFC-B (ISO14443-B)
    - NFC-F (FeliCa™)
    - NFC-V (ISO15693)
    – P2P (ISO18092)
    – ISO-DEP (protocol d'intercanvi de dades ISO, ISO14443-4)
    – NFC-DEP (protocol d'intercanvi de dades NFC, ISO18092)
    – Tecnologies pròpies, com ara Kovio, B', iClass, Calypso®
  • Sampimplementació disponible amb les plaques d'expansió X-NUCLEO-NFC06A1 i X-NUCLEO-NFC08A1, connectades a un Raspberry Pi 4
  • Sampl'aplicació per detectar diversos NFC tag tipus i telèfons mòbils compatibles amb P2P
  • Condicions de llicència gratuïtes fàcils d'utilitzar

1.2 Arquitectura del programari
La figura 2 mostra els detalls de l'arquitectura del programari de la biblioteca RFAL en una plataforma Linux.
El RFAL és fàcilment portàtil a altres plataformes adaptant l'anomenada plataforma files.
La capçalera file rfal_platform.h conté definicions de macros, que seran proporcionades i implementades pel propietari de la plataforma.
Proporciona configuracions específiques de la plataforma com l'assignació de GPIO, els recursos del sistema, els bloquejos i les IRQ, que són necessaris per al correcte funcionament del RFAL.
Aquesta demostració implementa les funcions de la plataforma i proporciona un port del RFAL a l'espai d'usuari de Linux.
Una biblioteca compartida file es genera, que és utilitzat per una aplicació demostrativa per mostrar les funcionalitats proporcionades per la capa RFAL.
L'amfitrió de Linux utilitza la interfície sysfs disponible a l'espai d'usuari de Linux per realitzar la comunicació SPI amb els dispositius. Dins del nucli de Linux, la interfície SPI sysfs utilitza el controlador del nucli de Linux spidev per enviar/rebre els marcs SPI cap a/des dels dispositius.
Per gestionar la línia INT dels dispositius ST25R3916 i ST25R3916B, el controlador utilitza el sysfs libpiod per rebre notificacions dels canvis en aquesta línia.

STMicroelectronics UM2548 Linux Driver: arquitectura de programari

Configuració del maquinari

2.1 Plataforma utilitzada
Una placa Raspberry Pi 4 amb el sistema operatiu Raspberry Pi s'utilitza com a plataforma Linux per crear la biblioteca RFAL i interactuar amb l'ST25R3916/ST25R3916B a través de SPI.
Els dispositius permeten que una aplicació a la plataforma Linux detecti i es comuniqui amb dispositius NFC.

2.2 Requisits de maquinari

  • Raspberry Pi 4
  • Targeta micro SD de 8 GB per arrencar el sistema operatiu Raspberry Pi (amb els seus últims requisits)
  • Lector de targetes SD
  • Plaques X-NUCLEO-NFC06A1 o X-NUCLEO-NFC08A1
  • Pont per connectar la placa amb l'adaptador Arduino™ de Raspberry Pi per a Raspberry Pi (número de peça ARPI600)

2.2.1 Connexions de maquinari
L'adaptador ARPI600 Raspberry Pi a Arduino s'utilitza per connectar les plaques amb el Raspberry Pi. S'han de modificar els ponts de la placa adaptadora per connectar-la amb les plaques X-NUCLEO-NFC06A1 o X-NUCLEO-NFC08A1.
Precaució:
L'ARPI600 subministra incorrectament 5 V al pin Arduino IOREF. En connectar directament els taulers es retroalimenta 5 V en alguns pins, això pot danyar la placa Raspberry Pi. Hi ha informes de taulers destruïts (especialment Raspberry Pi 4B+).
Per evitar-ho, adapteu l'ARPI600 (operació força difícil), o la placa X-NUCLEO-NFC06A1/X-NUCLEONFC08A1 (més fàcil).
La solució més fàcil és tallar el pin CN6.2 (IOREF) a les plaques X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1, tal com es mostra a la figura 3.
Tallar aquest pin no afecta el funcionament conjuntament amb les plaques Nucleo (com ara NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB).

STMicroelectronics UM2548 Linux Driver - Connexió de maquinari

Configuració del pont
Els ponts per a A5, A4, A3, A2, A1 i A0 que es mostren a la figura 4 s'han de canviar, respectivament, per P25, P24, P23, P22, P21 i CE1. Amb aquesta configuració, el pin GPIO número 7 de Raspberry s'utilitza com a línia d'interrupció per a X-NUCLEONFC06A1/X-NUCLEO-NFC08A1.

STMicroelectronics UM2548 Linux Driver - placa adaptadora

Actualment, aquest port de biblioteca RFAL utilitza el pin GPIO7 com a línia d'interrupció (segons la configuració del pont). Si hi ha un requisit per canviar la línia d'interrupció de GPIO7 a un GPIO diferent, el codi específic de la plataforma (en file pltf_gpio.h) s'ha de modificar per canviar la definició de la macro ST25R_INT_PIN de 7 al nou pin GPIO, per utilitzar-lo com a línia d'interrupció.
Amb la configuració del pont anterior, la placa adaptadora es pot utilitzar per connectar X-NUCLEO NFC06A1 i X-NUCLEO-NFC08A1 amb la placa Raspberry Pi, tal com es mostra a les figures següents.

Controlador de STMicroelectronics UM2548 Linux - Configuració del maquinari

Configuració de l'entorn Linux

3.1 Arrencada de Raspberry Pi
Per configurar l'entorn Linux, primer instal·leu i arrenqueu el Raspberry Pi amb el sistema operatiu Raspberry Pi, tal com s'explica a continuació:
Pas 1
Baixeu la darrera imatge del sistema operatiu Raspberry Pi de https://www.raspberrypi.comi, a continuació, trieu el sistema operatiu Raspberry Pi amb escriptori. Per a les proves següents s'ha utilitzat la versió 2022-09-22-raspios-bullseye-armhf.img.xz (setembre de 2022).
Pas 2
Descomprimiu la imatge del sistema operatiu Raspberry Pi i escriviu-la a la targeta SD seguint les instruccions disponibles a la secció anomenada "Escriure una imatge a la targeta SD".
Pas 3
Connecteu el maquinari:

  • Connecteu el Raspberry Pi 4 a un monitor mitjançant un cable HDMI estàndard.
  • Connecteu el ratolí i el teclat als ports USB de Raspberry Pi.

També és possible treballar amb Raspberry Pi mitjançant ssh. En aquest cas. no és necessari connectar el monitor, el teclat i el ratolí amb Raspberry Pi. L'únic requisit és tenir el PC amb ssh dins de la mateixa xarxa que el Raspberry Pi i configurar l'adreça IP en conseqüència.
Pas 4
Inicieu el Raspberry Pi 4 amb una targeta SD. Després d'arrencar, apareix un escriptori Linux basat en Debian al monitor.
Nota:
De vegades, després d'arrencar el sistema operatiu Raspberry Pi, algunes tecles del teclat no funcionen. Perquè funcionin, obriu file /etc/default/keyboard i configureu XKBLAYOUT="us", i reinicieu el Raspberry Pi.
3.2 Habiliteu SPI a Raspberry Pi
El controlador SPI dins del nucli es comunica amb les plaques X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 mitjançant SPI. És important comprovar si SPI ja està habilitat a la configuració del nucli del sistema operatiu Raspbian Pi.
Comproveu si /dev/spidev0.0 és visible a l'entorn Raspberry Pi. Si no és visible, activeu la interfície SPI mitjançant la utilitat "raspi-config" seguint els passos que es descriuen a continuació.
Pas 1
Obriu un nou terminal al Raspberry Pi i executeu l'ordre "raspi-config" com a root: sudo raspi-config
Aquest pas obre una interfície gràfica.
Pas 2
Seleccioneu a la interfície gràfica l'opció anomenada "Opcions d'interfície".
Pas 3
Aquest pas enumera diverses opcions.
Seleccioneu l'opció anomenada "SPI".
Apareix una nova finestra amb el text següent:
"Voleu que la interfície SPI estigui habilitada?"
Pas 4
Seleccioneu en aquesta finestra per habilitar SPI.
Pas 5
Reinicieu Raspberry Pi.
Els passos anteriors habilitaran la interfície SPI a l'entorn Raspberry Pi després d'un reinici.

Creeu la biblioteca i l'aplicació RFAL

La demostració RFAL de Linux es proporciona en un arxiu, com ara ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz.
Per crear la biblioteca i l'aplicació RFAL a Raspberry Pi, seguiu els passos següents:
Pas 1
Descomprimiu el paquet a Raspberry Pi amb l'ordre següent del directori d'inici
tar -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
Pas 2
Instal·leu cmake (si no s'ha fet abans) mitjançant l'ordre
apt-get install cmake
La biblioteca RFAL i el sistema de creació d'aplicacions es basen en cmake, per aquest motiu cal instal·lar cmake per compilar el paquet.
Pas 3
Per crear la biblioteca i l'aplicació RFAL, aneu al directori de compilació
cd ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
A partir d'aquí, executeu l'ordre
fes..
A l'ordre anterior ".." indica que CMakeLists.txt de nivell superior existeix al directori principal
(ST25R3916_v2.8.0_Linux_demo_v1.0).
Aquesta ordre crea el makefile utilitzat en el següent pas per crear la biblioteca i l'aplicació. A partir d'aquí, executeu l'ordre següent per crear la demostració per a ST25R3916B
cmake -DRFAL_VARIANT=st25r3916b ..
Pas 4
Executeu l'ordre make per crear la biblioteca i l'aplicació RFAL:
fer
Aquesta ordre crea primer la biblioteca RFAL i després l'aplicació a sobre.

Com executar l'aplicació

Una compilació correcta genera un executable anomenat "nfc_poller_st25r3916" o "nfc_poller_st25r3916b" a la ubicació /build/demo.
Per defecte, l'aplicació s'ha d'executar amb drets d'arrel des del camí ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/:
sudo ./nfc_demo_st25r3916
L'aplicació comença a enquestar NFC tags i telèfons mòbils, després mostra els dispositius trobats amb el seu UID, tal com es mostra a la figura 7.

Controlador de STMicroelectronics UM2548 Linux: dispositius trobats

Per finalitzar l'aplicació, premeu Ctrl + C.

Historial de revisions
Taula 1. Historial de revisions de documents

Data Revisió Canvis
1-mar-19 1 Alliberament inicial.
4-Abr-23 2 Títol del document actualitzat, Secció Introducció, Secció 1.1 Característiques,
Secció 1.2 Arquitectura del programari, Secció 2.1 Plataforma utilitzada, Secció 2.2 Maquinari
requisits, Secció 2.2.1 Connexions de maquinari, Secció 3.1 Arrencada de Raspberry Pi,
Secció 3.2 Habilita SPI a Raspberry Pi, Secció 4 Construeix una biblioteca i una aplicació RFAL,
i Secció 5 Com executar l'aplicació.
Actualitzada Figura 1. Biblioteca RFAL a la plataforma Linux, Figura 2. Arquitectura del programari RFAL
a Linux, i Figura 5. Configuració del maquinari superior view.
Modificacions menors de text a tot el document.

AVÍS IMPORTANT - LLEGIU ATENCIÓ
STMicroelectronics NV i les seves filials ("ST") es reserven el dret de fer canvis, correccions, millores, modificacions i millores als productes ST i/o a aquest document en qualsevol moment sense previ avís. Els compradors haurien d'obtenir la informació rellevant més recent sobre els productes ST abans de fer comandes. Els productes ST es venen d'acord amb els termes i condicions de venda de ST vigents en el moment del reconeixement de la comanda.
Els compradors són els únics responsables de l'elecció, selecció i ús dels productes ST i ST no assumeix cap responsabilitat per l'assistència a l'aplicació o el disseny dels productes dels compradors.
ST no concedeix cap llicència, expressa o implícita, a cap dret de propietat intel·lectual.
La revenda de productes ST amb disposicions diferents de la informació que s'estableix aquí anul·larà qualsevol garantia concedida per ST per a aquest producte.
ST i el logotip de ST són marques comercials de ST. Per obtenir informació addicional sobre les marques comercials ST, consulteu www.st.com/trademarks. Tots els altres noms de productes o serveis són propietat dels seus respectius propietaris.
La informació d'aquest document substitueix i substitueix la informació proporcionada anteriorment en qualsevol versió anterior d'aquest document.
© 2023 STMicroelectronics – Tots els drets reservats

UM2548 - Rev 2

Documents/Recursos

Controlador de Linux STMicroelectronics UM2548 [pdfManual d'usuari
Controlador de Linux UM2548, UM2548, Controlador de Linux, Controlador

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *