Manual de usuario del controlador de Linux STMicroelectronics UM2375

Logotipo de STMicroelectronics

Controlador Linux® para as interfaces NFC de alto rendemento ST25R3911B e ST25R3912/14/15

Introdución

O controlador STSW-ST25R009 Linux® permite que a Raspberry Pi 4 funcione co X-NUCLEO-NFC05A1, que contén o dispositivo universal NFC de alto rendemento ST25R3911B.

Este paquete leva a capa de abstracción de RF (RFAL) a unha plataforma Linux Raspberry Pi 4 para operar co firmware X-NUCLEO-NFC05A1. O paquete ofrece comoampaplicación que detecta diferentes tipos de NFC tags e teléfonos móbiles compatibles con P2P. O RFAL é o controlador estándar ST para os IC lectores ST25R NFC/RFID ST25R3911B, ST25R3912, ST25R3913, ST25R3914 e ST25R3915. Utilízase, por exemplo, polo firmware ST25R3911B-DISCO (STSW-ST25R002) e polo firmware X-NUCLEONFC05A1 (X-CUBE-NFC5).

STSW-ST25R009 admite todos os protocolos de capa inferior ST25R3911B e tamén algúns protocolos de capa superior para a comunicación. O RFAL está escrito de forma portátil, polo que pode executarse nunha ampla gama de dispositivos baseados en Linux®. Este documento describe como se pode usar a biblioteca RFAL nun sistema Linux estándar (neste caso o Raspberry Pi 4) para a comunicación NFC/RF. O código é altamente portátil e funciona con pequenos cambios en calquera plataforma Linux.

Figura 1. Biblioteca RFAL na plataforma Linux

Figura 1 Biblioteca RFAL na plataforma Linux

Acabadoview

Características
  • Controlador de espazo de usuario completo de Linux (capa de abstracción de RF) para crear aplicacións habilitadas para NFC usando as interfaces NFC de alto rendemento ST25R3911B/ST25R391x con potencia de saída de ata 1.4 W
  • Comunicación do host Linux co ST25R3911B/ST25R391x mediante a interface SPI
  • Abstracción completa de RF/NFC (RFAL) para todas as tecnoloxías principais e protocolos de capa superior:
    • NFC-A (ISO14443-A)
    • NFC-B (ISO14443-B)
    • NFC-F (FeliCa™)
    • NFC-V (ISO15693)
    • P2P (ISO 18092)
    • ISO-DEP (protocolo de intercambio de datos ISO, ISO14443-4)
    • NFC-DEP (protocolo de intercambio de datos NFC, ISO18092)
    • Tecnoloxías propietarias (Kovio, B', iClass, Calypso®, …)
  • Sampimplementación de le dispoñible coa placa de expansión X-NUCLEO-NFC05A1, conectada a un Raspberry Pi 4
  • Sample para detectar varios NFC tag tipos e teléfonos móbiles compatibles con P2P
  • Condicións de licenza gratuítas fáciles de usar
Arquitectura de software

A Figura 2 mostra os detalles da arquitectura do software da biblioteca RFAL nunha plataforma Linux®.

O RFAL é facilmente portátil a outras plataformas adaptando a chamada plataforma files.

A cabeceira file rfal_platform.h contén definicións de macro, que deben ser proporcionadas e implementadas polo propietario da plataforma. Ademais, ofrece configuracións específicas da plataforma como a asignación de GPIO, recursos do sistema, bloqueos e IRQ, que son necesarios para o correcto funcionamento do RFAL.

Esta demostración implementa as funcións da plataforma e proporciona un porto da biblioteca RFAL ao espazo de usuario de Linux®. Unha biblioteca compartida file xérase, que é usado pola aplicación de demostración para mostrar as funcionalidades proporcionadas pola capa RFAL.

O host Linux® usa a interface sysfs dispoñible no espazo de usuario de Linux® para habilitar a comunicación SPI co dispositivo ST25R3911B. Dentro do núcleo Linux®, a interface SPI sysfs usa o controlador do núcleo Linux® spidev para enviar/recibir tramas SPI a/desde ST25R3911B.

Para xestionar a liña de interrupción de ST25R3911B, o controlador usa o libgpiod para recibir notificacións dos cambios nesta liña.

Figura 2. Arquitectura de software RFAL en Linux

Figura 2 Arquitectura de software RFAL en Linux

Configuración de hardware

Plataforma utilizada

Unha placa Raspberry Pi 4 con Raspberry Pi OS úsase como plataforma Linux para construír a biblioteca RFAL e interactuar con ST25R3911B a través de SPI.
ST25R3911B permite que unha aplicación na plataforma Linux detecte e se comunique con dispositivos NFC.

Requisitos de hardware
  • Raspberry Pi 4
  • Tarxeta micro SD de 8 GBytes para iniciar o sistema operativo Raspberry Pi
  • Lector de tarxetas SD
  • Placa de puente para conectar X-NUCLEO-NFC05A1 con adaptador Arduino Raspberry Pi para Raspberry Pi, número de pieza ARPI600.
  • X-NUCLEO-NFC05A1. Consulte os últimos requisitos do sistema operativo Raspberry Pi.

Conexións de hardware

A placa adaptadora ARPI600 Raspberry Pi a Arduino úsase para conectar o X-NUCLEO-NFC05A1 co Raspberry Pi. É necesario modificar os puentes da placa adaptadora para conectala co X-NUCLEO-NFC05A1.

Atención: O ARPI600 proporciona incorrectamente 5 V ao pin IOREF de Arduino. Ao conectar directamente o X-NUCLEO-NFC05A1 retroalimenta 5 V nalgúns pinos, isto pode danar a placa Raspberry Pi. Hai informes sobre todo de que Raspberry Pi 4B+ foi realmente destruído. Para evitar esta situación, adapte o ARPI600 (unha operación bastante difícil) ou o X-NUCLEO-NFC05A1 (operación máis sinxela).

A solución máis sinxela é cortar o pin CN6.2 (IOREF) no X-NUCLEO-NFC05A1 como se mostra na Figura 3.

O corte deste pin non afecta o funcionamento en conxunto coas placas Nucleo (NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB, etc.).

Figura 3. Corrección de conexión de hardware

Figura 3 Solución de conexión de hardware

Configuración do puente

Os puentes para A5, A4, A3, A2, A1 e A0 mostrados na Figura 4 deben cambiarse por P23, P22, P21 e CE1. Con esta configuración de puente, o pin GPIO número 7 de Raspberry úsase como liña de interrupción para X-NUCLEO-NFC05A1.

Figura 4. Posición dos puentes A5, A4, A3, A2, A1 e A0 na tarxeta adaptadora

Figura 4 Posición dos puentes

Actualmente, este porto de biblioteca RFAL usa o pin GPIO7 como liña de interrupción, segundo a configuración do puente. Se hai un requisito para cambiar a liña de interrupción de GPIO7 a un GPIO diferente, o código específico da plataforma (en file pltf_gpio.h) debe modificarse para cambiar a definición da macro "ST25R_INT_PIN" de 7 ao novo pin GPIO, que se utilizará como liña de interrupción.

Coa configuración do puente anterior, a placa adaptadora pódese usar para conectar X-NUCLEO-NFC05A1 coa placa Raspberry Pi, como se mostra na Figura 5.

Figura 5. Parte superior de configuración de hardware view

Figura 5 Configuración de hardware superior view

Figura 6. Lado de configuración de hardware view

Figura 6 Lado de configuración do hardware view

Configuración do entorno Linux

Arranque de Raspberry Pi

Para configurar o ambiente Linux, o primeiro paso é instalar e iniciar o Raspberry Pi 4 co sistema operativo Raspberry Pi como se explica a continuación:

Paso 1

Descarga a última imaxe do sistema operativo Raspberry Pi desde a ligazón:

Escolla o sistema operativo Raspberry Pi con escritorio. Para as probas seguintes utilizouse a seguinte versión: setembro de 2022 (2022-09-22-raspios-bullseye-armhf.img.xz).

Paso 2

Descomprime a imaxe de Raspberry Pi e escríbea na tarxeta SD seguindo as instrucións dispoñibles na sección "Escribindo unha imaxe na tarxeta SD".

Paso 3

Conecta o hardware:

  • Conecte o Raspberry Pi a un monitor usando un cable HDMI estándar.
  • Conecte o rato e o teclado aos portos USB de Raspberry Pi.

Tamén é posible traballar con Raspberry Pi usando ssh. Nese caso non é necesario conectar o monitor, o teclado e o rato con Raspberry Pi. O único requisito é ter o PC con ssh dentro da mesma rede que o Raspberry Pi e configurar o enderezo IP en consecuencia.

Paso 4

Arranque o Raspberry Pi cunha tarxeta SD.

Despois do arranque, aparece un escritorio Linux baseado en Debian no monitor.

Nota: Ás veces, obsérvase que despois de iniciar Raspberry Pi, algunhas teclas do teclado non funcionan. Para facelos funcionar, abra o file /etc/default/keyboard e configure XKBLAYOUT="us" e reinicie o Raspberry Pi.

Activar SPI en Raspberry Pi

O controlador SPI dentro do núcleo comunícase con X-NUCLEO-NFC05A1 a través de SPI. É importante comprobar se SPI xa está activado na configuración do sistema operativo/núcleo de Raspberry Pi.
Comproba se /dev/spidev0.0 está visible no ambiente Raspberry Pi. Se non está visible, active a interface SPI mediante a utilidade "raspi-config" seguindo os pasos descritos a continuación.

Paso 1

Abre un novo terminal no Raspberry Pi e executa o comando "raspi-config" como root:

sudo raspi-config

Este paso abre unha interface gráfica.

Paso 2

Seleccione na interface gráfica a opción denominada "Opcións de interface".

Paso 3

Este paso enumera varias opcións.
Seleccione a opción chamada "SPI".
Aparece unha nova xanela co seguinte texto:
"Quere activar a interface SPI?"

Paso 4

Seleccione nesta xanela para activar SPI.

Paso 5

Reiniciar Raspberry Pi.
Os pasos anteriores habilitarán a interface SPI no ambiente Raspberry Pi despois dun reinicio.

Creación da biblioteca e aplicación RFAL

A demostración RFAL de Linux ofrécese nun arquivo. Supoñamos que o seu nome é:
ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz.
Para crear a biblioteca e a aplicación RFAL en Raspberry Pi, siga os seguintes pasos:

Paso 1

Descomprime o paquete en Raspberry Pi usando o seguinte comando desde o directorio de inicio:

tar -xJvf ST25R3911B_v2.8.0_Linux_demo_v1.0.tar.xz

Paso 2

Se non se fixo antes, instale cmake, usando o seguinte comando:

apt-get install cmake

A biblioteca RFAL e o sistema de compilación de aplicacións baséanse en cmake, por iso é necesario instalar cmake para a compilación do paquete.

Paso 3

Para construír a biblioteca e a aplicación RFAL, vaia ao directorio "build":

cd ST25R3911B_v2.8.0_Linux_demo_v1.0/Linux_demo/build

e executa o seguinte comando desde alí:

facer..

No comando anterior “..” indica que CMakeLists.txt de nivel superior existe no directorio pai, é dicir
ST25R3911B_v2.8.0_Linux_demo_v1.0.

O comando cmake crea o makefile que se usa no seguinte paso para construír a biblioteca e a aplicación.

Paso 4

Execute o comando "make" para construír a biblioteca e a aplicación RFAL:

facer

O comando "make" primeiro constrúe a biblioteca RFAL e despois constrúe a aplicación encima dela.

Como executar a aplicación

A compilación exitosa xera un executable chamado "nfc_demo_st25r3911b" na seguinte localización:
/build/applications.

Por defecto, a aplicación debe executarse con dereitos de root desde a ruta: ST25R3911B_v2.8.0_Linux_demo_v1.0/linux_demo/build:

sudo ./demo/nfc_demo_st25r3911b

A aplicación comeza a buscar NFC tags e teléfonos móbiles. Mostra os dispositivos atopados co seu UID como se mostra na Figura 7.

Figura 7. Visualización dos dispositivos atopados

Figura 7 Visualización dos dispositivos atopados

Para finalizar a aplicación, prema Ctrl + C.

Historial de revisións

Táboa 1. Historial de revisións de documentos

Táboa 1 Historial de revisión do documento

Lista de táboas

Táboa 1. Historial de revisións de documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Lista de figuras

Figura 1. Biblioteca RFAL na plataforma Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Figura 2. Arquitectura de software RFAL en Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figura 3. Corrección de conexión de hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figura 4. Posición dos puentes A5, A4, A3, A2, A1 e A0 na tarxeta adaptadora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Figura 5. Parte superior de configuración de hardware view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figura 6. Lado de configuración de hardware view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figura 7. Visualización de dispositivos atopados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

AVISO IMPORTANTE - LEA ATENTAMENTE

STMicroelectronics NV e as súas subsidiarias (“ST”) resérvanse o dereito de realizar cambios, correccións, melloras, modificacións e melloras nos produtos ST e/ou neste documento en calquera momento sen previo aviso. Os compradores deben obter a información relevante máis recente sobre produtos ST antes de facer pedidos. Os produtos ST véndense de acordo cos termos e condicións de venda de ST existentes no momento do recoñecemento da orde.

Os compradores son os únicos responsables da elección, selección e uso dos produtos ST e ST non asume ningunha responsabilidade pola asistencia á aplicación ou o deseño dos produtos dos compradores.

ST non concede ningunha licenza, expresa ou implícita, a ningún dereito de propiedade intelectual.

A revenda de produtos ST con disposicións diferentes da información aquí establecida anulará calquera garantía concedida por ST para tal produto.

ST e o logotipo de ST son marcas comerciais de ST. Para obter información adicional sobre as marcas rexistradas ST, consulte www.st.com/trademarks. Todos os outros nomes de produtos ou servizos son propiedade dos seus respectivos propietarios.

A información deste documento substitúe e substitúe a información proporcionada anteriormente en calquera versión anterior deste documento.

© 2023 STMicroelectronics – Todos os dereitos reservados

Documentos/Recursos

Controlador Linux STMicroelectronics UM2375 [pdfManual do usuario
Controlador UM2375 Linux, UM2375, Controlador Linux, Controlador

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *