Лого на STMicroelectronicsUM2548 Linux драйвер
Linux
® драйвер за ST25R3916/ST25R3916B
Ръководство за потребителя

UM2548 Linux драйвер

Въведение
STSW-ST25R013 Linux® драйверът позволява на Raspberry Pi® 4 да работи с платките X-NUCLEO-NFCO6A1 и X-NUCLEO-NFCO8A1, които съдържат съответно устройствата ST25R3916 и ST25R3916B.
Този пакет пренася слоя за RF абстракция (RFAL) към платформа Raspberry Pi 4 Linux, за да работи с фърмуера на платката и предоставя катоampLe приложение, откриващо различни видове NFC tags и мобилни телефони, поддържащи P2P. RFAL е ST стандартен драйвер за ST25R3916 и ST25R3916B, високоефективни NFC универсални устройства / EMVCo четци. Използва се, например, от фърмуера ST25R3916-DISCO (STSW-ST25R010) и от фърмуера X-NUCLEO-NFCO06A1 (X-CUBE-NFC6).
STSW-ST25R013 поддържа всички протоколи от по-нисък слой ST25R3916/ST25R3916B и някои протоколи от по-висок слой за комуникация. RFAL е написан по преносим начин, така че може да работи на широк набор от устройства, базирани на Linux. Този документ описва как библиотеката RFAL може да се използва на стандартна Linux система (в този случай Raspberry Pi 4) за NFC/RF комуникация. Кодът е много преносим и работи с малки промени на всяка Linux платформа.

STMicroelectronics UM2548 Linux драйвер - Linux платформа

крайview

1.1 функции

  • Пълен драйвер за потребителско пространство на Linux (RF абстракционен слой) за изграждане на приложения с NFC, използващи устройствата ST25R3916 и ST25R3916B
  • Linux хост комуникация със ST25R3916/ST25R3916B чрез SPI интерфейс
  • Пълна RF/NFC абстракция (RFAL) за всички основни технологии и протоколи от по-висок слой:
    – NFC-A (ISO14443-A)
    – NFC-B (ISO14443-B)
    – NFC-F (FeliCa™)
    – NFC-V (ISO15693)
    – P2P (ISO18092)
    – ISO-DEP (ISO протокол за обмен на данни, ISO14443-4)
    – NFC-DEP (NFC протокол за обмен на данни, ISO18092)
    – Собствени технологии, като Kovio, B', iClass, Calypso®
  • Sampналична реализация с разширителните платки X-NUCLEO-NFC06A1 и X-NUCLEO-NFC08A1, включени в Raspberry Pi 4
  • Sample приложение за откриване на няколко NFC tag видове и мобилни телефони, поддържащи P2P
  • Безплатни удобни за потребителя лицензионни условия

1.2 Софтуерна архитектура
Фигура 2 показва детайлите на софтуерната архитектура на библиотеката RFAL на Linux платформа.
RFAL е лесно преносим към други платформи чрез адаптиране на така наречената платформа files.
Заглавката file rfal_platform.h съдържа дефиниции на макроси, които трябва да бъдат предоставени и внедрени от собственика на платформата.
Той предоставя специфични за платформата настройки като присвояване на GPIO, системни ресурси, заключвания и IRQ, които са необходими за правилната работа на RFAL.
Тази демонстрация изпълнява функциите на платформата и осигурява порт на RFAL в потребителското пространство на Linux.
Споделена библиотека file се генерира, което се използва от демонстративно приложение за демонстриране на функционалностите, предоставени от RFAL слоя.
Хостът на Linux използва sysfs интерфейс, достъпен от потребителското пространство на Linux, за осъществяване на SPI комуникация с устройствата. Вътре в ядрото на Linux интерфейсът SPI sysfs използва spidev драйвера на ядрото на Linux за изпращане/получаване на SPI кадри към/от устройствата.
За обработка на линията INT на устройства ST25R3916 и ST25R3916B, драйверът използва sysfs на libpiod, за да бъде уведомен за промени в тази линия.

STMicroelectronics UM2548 Linux Driver - софтуерна архитектура

Хардуерна настройка

2.1 Използвана платформа
Платка Raspberry Pi 4 с Raspberry Pi OS се използва като Linux платформа за изграждане на RFAL библиотека и взаимодействие със ST25R3916/ST25R3916B през SPI.
Устройствата позволяват на приложение на Linux платформа да открива и комуникира с NFC устройства.

2.2 Хардуерни изисквания

  • Raspberry Pi 4
  • 8 GB micro SD карта за зареждане на Raspberry Pi OS (с най-новите изисквания)
  • Четец на SD карти
  • Платки X-NUCLEO-NFC06A1 или X-NUCLEO-NFC08A1
  • Мост за свързване на платката с адаптер Raspberry Pi Arduino™ за Raspberry Pi (номер на част ARPI600)

2.2.1 Хардуерни връзки
Адаптерът ARPI600 Raspberry Pi към Arduino се използва за свързване на платките с Raspberry Pi. Джъмперите на адаптерната платка трябва да бъдат модифицирани, за да я свържете с платките X-NUCLEO-NFC06A1 или X-NUCLEO-NFC08A1.
Внимание:
ARPI600 подава неправилно 5 V към щифта IOREF на Arduino. Директното закрепване на платките връща 5 V на някои щифтове, това може да повреди платката Raspberry Pi. Има съобщения за унищожени платки (особено Raspberry Pi 4B+).
За да избегнете това, адаптирайте ARPI600 (доста трудна операция) или платката X-NUCLEO-NFC06A1/X-NUCLEONFC08A1 (по-лесно).
Най-лесното решение е да отрежете щифта CN6.2 (IOREF) на платките X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1, както е показано на фигура 3.
Изрязването на този щифт не засяга работата във връзка с Nucleo платки (като NUCLEO-L474RG, NUCLEO-F401RE, NUCLEO-8S208RB).

STMicroelectronics UM2548 Linux драйвер - Хардуерна връзка

Настройка на джъмпера
Джъмперите за A5, A4, A3, A2, A1 и A0, показани на фигура 4, трябва да бъдат променени съответно на P25, P24, P23, P22, P21 и CE1. С тази настройка GPIO пин номер 7 на Raspberry се използва като прекъсваща линия за X-NUCLEONFC06A1/X-NUCLEO-NFC08A1.

STMicroelectronics UM2548 Linux драйвер - адаптерна платка

Понастоящем този порт на библиотеката RFAL използва щифта GPIO7 като линия за прекъсване (според настройките на джъмпера). Ако има изискване за промяна на линията за прекъсване от GPIO7 на различен GPIO, специфичният за платформата код (в file pltf_gpio.h) трябва да бъде модифициран, за да промени дефиницията на макро ST25R_INT_PIN от 7 на новия GPIO щифт, който да се използва като линия за прекъсване.
С горните настройки на джъмпера адаптерната платка може да се използва за свързване на X-NUCLEO NFC06A1 и X-NUCLEO-NFC08A1 с Raspberry Pi платка, както е показано на следващите фигури.

STMicroelectronics UM2548 драйвер за Linux - Хардуерна настройка

Настройка на Linux среда

3.1 Стартиране на Raspberry Pi
За да настроите средата на Linux, първо инсталирайте и стартирайте Raspberry Pi с Raspberry Pi OS, както е обяснено по-долу:
Стъпка 1
Изтеглете най-новото изображение на Raspberry Pi OS от https://www.raspberrypi.com, след което изберете Raspberry Pi OS с десктоп. За тестовете по-долу е използвана версия 2022-09-22-raspios-bullseye-armhf.img.xz (септември 2022 г.).
Стъпка 2
Разархивирайте изображението на Raspberry Pi OS и го запишете на SD картата, като следвате инструкциите, налични в раздела, наречен „Записване на изображение на SD картата“.
Стъпка 3
Свържете хардуера:

  • Свържете Raspberry Pi 4 към монитор с помощта на стандартен HDMI кабел.
  • Свържете мишката и клавиатурата към USB портовете на Raspberry Pi.

Също така е възможно да работите с Raspberry Pi, като използвате ssh. В такъв случай. не е необходимо да свързвате монитора, клавиатурата и мишката с Raspberry Pi. Единственото изискване е компютърът с ssh да е в същата мрежа като Raspberry Pi и съответно да конфигурирате IP адреса.
Стъпка 4
Стартирайте Raspberry Pi 4 със SD карта. След зареждане, базиран на Debian Linux работен плот се появява на монитора.
Забележка:
Понякога, след зареждане на Raspberry Pi OS, някои клавиши на клавиатурата не работят. За да ги накарате да работят, отворете file /etc/default/keyboard и задайте XKBLAYOUT=”us”, и рестартирайте Raspberry Pi.
3.2 Активирайте SPI на Raspberry Pi
SPI драйверът в ядрото комуникира с платките X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 чрез SPI. Важно е да проверите дали SPI вече е активиран в конфигурацията на ядрото на Raspbian Pi OS.
Проверете дали /dev/spidev0.0 се вижда в средата на Raspberry Pi. Ако не се вижда, активирайте SPI интерфейса с помощта на помощната програма „raspi-config“, като следвате стъпките, описани по-долу.
Стъпка 1
Отворете нов терминал на Raspberry Pi и изпълнете командата „raspi-config“ като root: sudo raspi-config
Тази стъпка отваря графичен интерфейс.
Стъпка 2
Изберете в графичния интерфейс опцията, наречена „Опции за интерфейс“.
Стъпка 3
Тази стъпка изброява различни опции.
Изберете опцията с име „SPI“.
Появява се нов прозорец със следния текст:
„Искате ли SPI интерфейсът да бъде активиран?“
Стъпка 4
Изберете в този прозорец, за да активирате SPI.
Стъпка 5
Рестартирайте Raspberry Pi.
Горните стъпки ще активират SPI интерфейса в средата на Raspberry Pi след рестартиране.

Създайте RFAL библиотека и приложение

RFAL демонстрацията на Linux се предоставя в архив, като ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz.
За да създадете RFAL библиотека и приложение на Raspberry Pi, преминете през следните стъпки:
Стъпка 1
Разархивирайте пакета на Raspberry Pi, като използвате следната команда от началната директория
tar -xJvf ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz
Стъпка 2
Инсталирайте cmake (ако не е направено преди), като използвате командата
apt-get инсталирайте cmake
RFAL библиотеката и системата за изграждане на приложения са базирани на cmake, поради тази причина е необходимо да се инсталира cmake за компилиране на пакета.
Стъпка 3
За да изградите RFAL библиотека и приложение, отидете в директорията за компилация
cd ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build
Оттам изпълнете командата
cmake ..
В горната команда „..“ показва, че CMakeLists.txt от най-високо ниво съществува в родителската директория
(ST25R3916_v2.8.0_Linux_demo_v1.0).
Тази команда създава makefile използвани в следващата стъпка за изграждане на библиотеката и приложението. Оттам изпълнете следната команда, за да изградите демонстрацията за ST25R3916B
cmake -DRFAL_VARIANT=st25r3916b ..
Стъпка 4
Изпълнете командата make, за да изградите RFAL библиотеката и приложението:
направи
Тази команда първо изгражда RFAL библиотеката и след това приложението върху нея.

Как да стартирате приложението

Успешното изграждане генерира изпълним файл с име „nfc_poller_st25r3916“ или „nfc_poller_st25r3916b“ на място /build/demo.
По подразбиране приложението трябва да се стартира с root права от пътя ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/:
sudo ./nfc_demo_st25r3916
Приложението започва да анкетира за NFC tags и мобилни телефони, след това показва намерените устройства с техните UID, както е показано на Фигура 7.

STMicroelectronics UM2548 Linux драйвер - намерени устройства

За да прекратите приложението, натиснете Ctrl + C.

История на ревизиите
Таблица 1. История на ревизиите на документа

Дата Ревизия Промени
1-Мар-19 1 Първоначално издание.
4 април 23 г 2 Актуализирано заглавие на документа, раздел Въведение, раздел 1.1 Характеристики,
Раздел 1.2 Софтуерна архитектура, Раздел 2.1 Използвана платформа, Раздел 2.2 Хардуер
изисквания, раздел 2.2.1 Хардуерни връзки, раздел 3.1 Стартиране на Raspberry Pi,
Раздел 3.2 Активиране на SPI на Raspberry Pi, Раздел 4 Изграждане на RFAL библиотека и приложение,
и Раздел 5 Как да стартирате приложението.
Актуализирана Фигура 1. RFAL библиотека на Linux платформа, Фигура 2. RFAL софтуерна архитектура
на Linux и Фигура 5. Хардуерна настройка отгоре view.
Дребни текстови редакции в целия документ.

ВАЖНО СЪОБЩЕНИЕ – ПРОЧЕТЕТЕ ВНИМАТЕЛНО
STMicroelectronics NV и нейните дъщерни дружества („ST“) си запазват правото да правят промени, корекции, подобрения, модификации и подобрения на ST продуктите и/или на този документ по всяко време без предизвестие. Купувачите трябва да получат най-новата подходяща информация за продуктите на ST, преди да направят поръчки. Продуктите на ST се продават в съответствие с правилата и условията за продажба на ST в момента на потвърждаване на поръчката.
Купувачите са изцяло отговорни за избора, подбора и използването на продуктите на ST и ST не поема отговорност за помощ при прилагането или дизайна на продуктите на купувачите.
Никакъв лиценз, изричен или подразбиращ се, за права върху интелектуална собственост не се предоставя от ST тук.
Препродажбата на продукти на ST с условия, различни от информацията, посочена тук, анулира всяка гаранция, предоставена от ST за такъв продукт.
ST и логото на ST са търговски марки на ST. За допълнителна информация относно търговските марки ST вижте www.st.com/търговски марки. Всички други имена на продукти или услуги са собственост на съответните им собственици.
Информацията в този документ отменя и заменя информацията, предоставена преди това в предишни версии на този документ.
© 2023 STMicroelectronics – Всички права запазени

UM2548 – Ред. 2

Документи / Ресурси

STMicroelectronics UM2548 Linux драйвер [pdf] Ръководство за потребителя
UM2548 драйвер за Linux, UM2548, драйвер за Linux, драйвер

Референции

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са маркирани *