
UM2548 Linux ドライバー
リナックス® ST25R3916/ST25R3916B用ドライバー
ユーザーマニュアル
UM2548 Linux ドライバー
導入
STSW-ST25R013 Linux® ドライバーにより、Raspberry Pi® 4 は、それぞれ ST6R1 および ST8R1B デバイスを含む X-NUCLEO-NFCO25A3916 および X-NUCLEO-NFCO25A3916 ボードで動作できるようになります。
このパッケージは、RF抽象化レイヤー(RFAL)をRaspberry Pi 4 Linuxプラットフォームに移植し、ボードファームウェアで動作するようにし、次のような機能を提供します。ampさまざまな種類の NFC を検出するファイル アプリケーション tags P2P をサポートする携帯電話。RFAL は、高性能 NFC ユニバーサル デバイス / EMVCo リーダーである ST25R3916 および ST25R3916B 用の ST 標準ドライバーです。たとえば、ST25R3916-DISCO ファームウェア (STSW-ST25R010) や X-NUCLEO-NFCO06A1 ファームウェア (X-CUBE-NFC6) で使用されます。
STSW-ST25R013 通信用の ST25R3916/ST25R3916B のすべての下位層プロトコルと一部の上位層プロトコルをサポートしています。RFAL は移植可能な方法で記述されているため、Linux ベースのさまざまなデバイスで実行できます。このドキュメントでは、RFAL ライブラリを標準の Linux システム (この場合は Raspberry Pi 4) で NFC/RF 通信に使用する方法について説明します。コードは移植性が高く、わずかな変更を加えるだけでどの Linux プラットフォームでも動作します。

以上view
1.1 特徴
- ST25R3916 および ST25R3916B デバイスを使用して NFC 対応アプリケーションを構築するための完全な Linux ユーザー スペース ドライバー (RF 抽象化レイヤー)
- SPI インターフェースを使用した ST25R3916/ST25R3916B との Linux ホスト通信
- すべての主要なテクノロジーと上位層プロトコルの完全な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®などの独自のテクノロジー - SampX-NUCLEO-NFC06A1およびX-NUCLEO-NFC08A1拡張ボードで利用可能な実装は、Raspberry Pi 4に接続されています。
- Samp複数のNFCを検出するためのアプリケーション tag P2Pをサポートするタイプと携帯電話
- 無料のユーザーフレンドリーなライセンス条項
1.2 ソフトウェアアーキテクチャ
図 2 は、Linux プラットフォーム上の RFAL ライブラリのソフトウェア アーキテクチャの詳細を示しています。
RFAL は、いわゆるプラットフォームを適応させることで、他のプラットフォームに簡単に移植できます。 files.
ヘッダー file rfal_platform.h には、プラットフォーム所有者が提供および実装するマクロ定義が含まれています。
RFAL の正しい動作に必要な、GPIO 割り当て、システム リソース、ロック、IRQ などのプラットフォーム固有の設定を提供します。
このデモでは、プラットフォーム機能を実装し、RFAL を Linux のユーザー空間に移植します。
共有ライブラリ file 生成され、RFAL レイヤーによって提供される機能を紹介するデモンストレーション アプリケーションによって使用されます。
Linux ホストは、デバイスとの SPI 通信を実行するために、Linux ユーザー スペースから利用可能な sysfs インターフェイスを使用します。Linux カーネル内では、SPI sysfs インターフェイスは Linux カーネル ドライバー spidev を使用して、デバイスとの間で SPI フレームを送受信します。
ST25R3916 および ST25R3916B デバイスの INT 行を処理するために、ドライバーは libpiod sysfs を使用してこの行の変更を通知します。

ハードウェアのセットアップ
2.1 使用されるプラットフォーム
Raspberry Pi OS を搭載した Raspberry Pi 4 ボードは、RFAL ライブラリを構築し、SPI 経由で ST25R3916/ST25R3916B と対話するための Linux プラットフォームとして使用されます。
これらのデバイスにより、Linux プラットフォーム上のアプリケーションは NFC デバイスを検出し、通信できるようになります。
2.2ハードウェア要件
- ラズベリーパイ4
- Raspberry Pi OS を起動するための 8 GB のマイクロ SD カード (最新の要件を満たすもの)
- SDカードリーダー
- X-NUCLEO-NFC06A1 または X-NUCLEO-NFC08A1 ボード
- ボードを Raspberry Pi に接続するためのブリッジ Raspberry Pi 用 Arduino™ アダプター (部品番号 ARPI600)
2.2.1 ハードウェア接続
ARPI600 Raspberry Pi から Arduino へのアダプタは、ボードを Raspberry Pi に接続するために使用されます。アダプタ ボードのジャンパーを変更して、X-NUCLEO-NFC06A1 または X-NUCLEO-NFC08A1 ボードに接続する必要があります。
注意:
ARPI600 は、Arduino IOREF ピンに 5 V を誤って供給します。ボードを直接接続すると、一部のピンに 5 V がフィードバックされ、Raspberry Pi ボードが損傷する可能性があります。ボードが破損したという報告があります (特に Raspberry Pi 4B+)。
これを回避するには、ARPI600(かなり難しい操作)または X-NUCLEO-NFC06A1/X-NUCLEONFC08A1 ボード(より簡単)を適応させます。
最も簡単な修正方法は、図 6.2 に示すように、X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 ボード上の CN3 (IOREF) ピンを切断することです。
このピンを切断しても、Nucleo ボード (NUCLEO-L474RG、NUCLEO-F401RE、NUCLEO-8S208RB など) と連動した動作には影響しません。

ジャンパー設定
図 5 に示す A4、A3、A2、A1、A0、A4 のジャンパーをそれぞれ P25、P24、P23、P22、P21、CE1 に変更する必要があります。この設定により、Raspberry の GPIO ピン番号 7 が X-NUCLEONFC06A1/X-NUCLEO-NFC08A1 の割り込みラインとして使用されます。

現在、このRFALライブラリポートは、ジャンパー設定に従ってピンGPIO7を割り込みラインとして使用しています。割り込みラインをGPIO7から別のGPIOに変更する必要がある場合は、プラットフォーム固有のコード( file pltf_gpio.h) を変更して、マクロ ST25R_INT_PIN の定義を 7 から新しい GPIO ピンに変更し、割り込みラインとして使用する必要があります。
上記のジャンパー設定により、次の図に示すように、アダプタ ボードを使用して X-NUCLEO NFC06A1 および X-NUCLEO-NFC08A1 を Raspberry Pi ボードに接続できます。

Linux環境のセットアップ
3.1 Raspberry Piの起動
Linux 環境をセットアップするには、まず、以下の説明に従って、Raspberry Pi OS を搭載した Raspberry Pi をインストールして起動します。
ステップ1
最新のRaspberry Pi OSイメージを以下からダウンロードしてください。 https://www.raspberrypi.com、次にデスクトップ版の Raspberry Pi OS を選択します。以下のテストでは、バージョン 2022-09-22-raspios-bullseye-armhf.img.xz (2022 年 XNUMX 月) が使用されています。
ステップ2
Raspberry Pi OS イメージを解凍し、「SD カードへのイメージの書き込み」セクションの手順に従って SD カードに書き込みます。
ステップ3
ハードウェアを接続します。
- 標準の HDMI ケーブルを使用して、Raspberry Pi 4 をモニターに接続します。
- マウスとキーボードを Raspberry Pi の USB ポートに接続します。
SSH を使用して Raspberry Pi を操作することもできます。この場合、モニター、キーボード、マウスを Raspberry Pi に接続する必要はありません。必要なのは、SSH を備えた PC を Raspberry Pi と同じネットワーク内に置き、それに応じて IP アドレスを構成することだけです。
ステップ4
SD カードを使用して Raspberry Pi 4 を起動します。起動後、モニターに Debian ベースの Linux デスクトップが表示されます。
注記:
Raspberry Pi OSを起動した後、キーボードの一部のキーが機能しないことがあります。機能させるには、 file /etc/default/keyboard で XKBLAYOUT=”us” を設定し、Raspberry Pi を再起動します。
3.2 Raspberry PiでSPIを有効にする
カーネル内の SPI ドライバーは、SPI を介して X-NUCLEO-NFC06A1/X-NUCLEO-NFC08A1 ボードと通信します。Raspbian Pi OS カーネル構成で SPI がすでに有効になっているかどうかを確認することが重要です。
/dev/spidev0.0 が Raspberry Pi 環境に表示されるかどうかを確認します。 表示されない場合は、以下で説明する手順に従って、ユーティリティ「raspi-config」を使用して SPI インターフェイスを有効にします。
ステップ1
Raspberry Piで新しいターミナルを開き、rootとして「raspi-config」コマンドを実行します: sudo raspi-config
このステップにより、グラフィカル インターフェイスが開きます。
ステップ2
グラフィカルインターフェイスで「インターフェイスオプション」という名前のオプションを選択します。
ステップ3
このステップでは、さまざまなオプションをリストします。
「SPI」という名前のオプションを選択します。
新しいウィンドウに次のテキストが表示されます。
「SPI インターフェースを有効にしますか?」
ステップ4
選択するこのウィンドウで SPI を有効にします。
ステップ5
ラズベリーパイを再起動します。
上記の手順により、再起動後に Raspberry Pi 環境で SPI インターフェイスが有効になります。
RFALライブラリとアプリケーションを構築する
Linux の RFAL デモは、ST25R3916_v2.8.0_Linux_demo_v1.0.tar.xz などのアーカイブで提供されます。
Raspberry Pi で RFAL ライブラリとアプリケーションを構築するには、次の手順を実行します。
ステップ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/ビルド
そこからコマンドを実行します
.. のcmakeです。
上記のコマンドの「..」は、トップレベルのCMakeLists.txtが親ディレクトリに存在することを示します。
(ST25R3916_v2.8.0_Linux_demo_v1.0)。
このコマンドはmakeを作成しますfile 次のステップでライブラリとアプリケーションをビルドするために使用されます。そこから、次のコマンドを実行してST25R3916Bのデモをビルドします。
cmake -DRFAL_VARIANT=st25r3916b ..
ステップ4
make コマンドを実行して、RFAL ライブラリとアプリケーションをビルドします。
作る
このコマンドは、最初に RFAL ライブラリを構築し、次にその上にアプリケーションを構築します。
アプリケーションの実行方法
ビルドが成功すると、/build/demo の場所に「nfc_poller_st25r3916」または「nfc_poller_st25r3916b」という名前の実行可能ファイルが生成されます。
デフォルトでは、アプリケーションはパス ST25R3916_v2.8.0_Linux_demo_v1.0/linux_demo/build/demo/ からルート権限で実行する必要があります。
sudo ./nfc_demo_st25r3916
アプリケーションが NFC のポーリングを開始します tags および携帯電話では、図 7 に示すように、見つかったデバイスとその UID が表示されます。

アプリケーションを終了するには、Ctrl + C を押します。
改訂履歴
表1. 文書の改訂履歴
| 日付 | リビジョン | 変更点 |
| 1年19月XNUMX日 | 1 | 初回リリース。 |
| 4年23月XNUMX日 | 2 | 更新された文書タイトル、セクションの概要、セクション1.1 機能、 セクション 1.2 ソフトウェア アーキテクチャ、セクション 2.1 使用プラットフォーム、セクション 2.2 ハードウェア 要件、セクション2.2.1 ハードウェア接続、セクション3.1 Raspberry Piの起動、 セクション3.2 Raspberry PiでSPIを有効にする、セクション4 RFALライブラリとアプリケーションを構築する、 セクション 5 アプリケーションの実行方法。 更新された図 1. Linux プラットフォーム上の RFAL ライブラリ、図 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 STマイクロエレクトロニクス – 無断転載を禁じます
UM2548 –改訂2
ドキュメント / リソース
![]() | UM2548 Linux ドライバー |
参考文献
- ラズベリーパイ.comwww.raspberrypi.com
- st.com詳しくはこちら
- st.com/trademarks詳しくはこちら
- st.com/en/product/stsw-st25r013?ecmp=tt9470_gl_link_feb2019&rt=um&id=UM2548詳しくはこちら
- ユーザーマニュアルmanual.tools
