RFIDリーダー PaSoRi LabVIEWプログラム開発(PC/SC使用編)
PaSoRi(パソリ) RC-S300 リーダーLabVIEWプログラム開発
株式会社ペリテックが、PC/SCを使って、RFIDリーダーPaSoRi(パソリ) RC-S300をLabVIEWプログラムで開発した事例を紹介します。
PC/SC とは
PC/SC (Personal Computer/Smart Card)は、Windows環境でICカードを利用するための標準アプリケーションインターフェイスです。
標準規格に準拠したICカードとリーダーであれば、製造メーカーに関わらず、カードとリーダーの通信が可能です。
Microsoft社が無償で提供しているAPIであり、ライセンスなどの追加費用なしで使用することができます。
PaSoRi RC-S300 リーダー
PaSoRi(パソリ) RC-S300は、ソニー株式会社より2021年11月から販売しているUSB接続型のNFC/FeliCaリーダーです。
マイナンバーカード、おサイフケータイ、SuicaなどのICカードを読み込むことができます。
- Windows8.1、10、11対応
- PC/SC 2.0準拠
対応通信規格・対応カード
- FeliCa Standard
- FeliCa Lite-S
- FeliCa Link
- FeliCa Plug/NFC Dynamic Tag
- モバイルFeliCa対応端末(おサイフケータイ)
- ISO/IEC 14443 Type A / Type B
- ISO/IEC 15693
- NFC Forum Type 2 / 3 / 4A / 4B / 5 Tag
- MIFARE Classic
- MIFARE Ultralight、MIFARE Ultralight C
- MIFARE DESFire、MIFARE Plus
- マイナンバーカード
- IC運転免許証
- 税理士カード
- HPKIカード
- 在留カード
※ソニー株式会社 RC-S300 カタログより
LabVIEWプログラミング
LabVIEWでのプログラミングには、PC/SCの「WinSCard.dll」を使用します。
使用関数
サンプルコード(C++)を参考にリーダーでICカードのIDを取得するために必要な関数と実行順序を決めます。
- SCardEstablishContext:スマートカードリソースマネージャに接続
- SCardListReadersA:カードリーダーのデバイス名を列挙
- SCardConnectA:ICカードとの通信を接続
- SCardTransmit:ICカードとの通信を行い、ICカードの情報を読み込み
- SCardDisconnect:ICカードとの通信を切断
- SCardFreeMemor:カードリーダー名のメモリ領域を解放
- SCardReleaseContext:スマートカードリソースマネージャから切断
ライブラリ呼び出し
「WinSCard.dll」をLabVIEW関数の「ライブラリ呼び出しノード」で読み込みます。
WinSCardの構文説明を参考にパラメータを決めます。
Windows App Development 参照
https://docs.microsoft.com/en-us/windows/win32/api/winscard/
例:SCardEstablishContext 関数
SCardEstablishContext関数は、データベース操作が実行されるリソースマネージャーコンテキスト (スコープ) を確立します。
LONG SCardEstablishContext(
[in] DWORD dwScope,
[in] LPCVOID pvReserved1,
[in] LPCVOID pvReserved2,
[out] LPSCARDCONTEXT phContext
);
実行:ICカードのID読み込みテスト
作成したLabVIEWプログラムを実行して、ICカードのIDの読み込みができることを確認します。
LabVIEWプログラムで読み込んだIDとRFIDリーダー付属アプリケーションと読み込んだIDが同じ結果であることを確認します。
PaSoRiドライバVI
LabVIEWで作成したPaSoRiのプログラムを機能別に分類して、引数、戻り値を端子に設定、サブVI(サブルーチン)にします。
作成したサブVIを使って、ユーザー操作が可能なプログラムを作成します。