NativeiOS・AndroidWEBAWSその他0120-614-750資料請求ご相談はこちら03-4566-3070資料請求ご相談はこちらホームWEB【Felica】Felicaの読取を実装する上で必要な基礎知識【ICカード】サイト管理者WEBその他FelicaICカードMifarePC/SCスマートカード【Felica】Felicaの読取を実装する上で必要な基礎知識【ICカード】WEB2022.05.26この記事は約6分で読めます。ICカードの読み取りが要件に入ることも少なくありません。今回は、ICカードの中でも日本での普及率が高い「Felica」の読み取りを実装するにあたって押さえておきたい基本的な知識を紹介します。全体の概要を掴むことができますので今後の設計や実装に役立ててください。ICカードには、多数の仕様があり、Felicaはその一つです。Sonyが開発・管理を行なっており、高いセキュリティが特徴です。日本においてはSuicaなど、交通系ICカードなどで採用されています。以下が広く普及しています。BFelica規格によって接続の方法が異なるため、まずは扱うカードがどの規格に相当するか確認することが重要です。カードの読み取りを行います。構成レスポンスAPDUを確認するバイト列の解読カードとの接続を解除するカードリーダとの接続を解除するカードリーダの検出と接続カードの読み取りには、当然ですがカードリーダとアプリケーションの実行端末を接続する必要があります。カードリーダによって、必要なSDKや通信方式が異なるため、ここも実は注意が必要です。最近はスマホ端末で読み取ることも、多いですね。BFelicaそれぞれ使用するICカードの規格に対応しているカードリーダを使用しましょう。カードの検出ICカードをカードリーダにかざすことで、リーダがカードを検出します。この時点ではまだアプリケーションの実行端末とカードは接続できていません。カードと接続アプリケーションとICカードを接続します。カードリーダとアプリケーションを接続した上で、カードともコネクションを確立する必要があります。Reset)の略です。これは例えば以下のような文字列で、カードの状態、プロトコル(先述のカード規格)等の情報を含んでいます。含むのか、疑問に思った方もいるかもしれません。ここで「リセット」と言っているのは、「ICカードが電気的に復旧した」という意味合いです。ICカードは、カードリーダに近接することで通電し、応答します。カードとの通信Felicaと接続できたら、ようやく通信を行うことができます。コマンドをリクエストとして送信することで、カードからレスポンスを得ることが可能です。ICカードとの通信に使われるコマンドの国際規格です。このAPDUコマンドを作成し、カードに送信することで通信を行います。以下はAPDUの例です。APDUコマンドを送信し、カードからレスポンスAPDUが返却された様子です。送信した文字列も返却された文字列も意味がまったくわからない人の顔IDmを取得するFelicaには「IDm」という他のカード規格にはない値があります。これはソニーが管理するカードの識別番号であり、カードのセキュリティに一役買っています。APDUは以下の通りです。IDmを含める必要があります。IDmを取得することから通信を開始するよ良いでしょう。作成し送信するここからはカードに送信したいリクエストに応じて、APDUを自身で構築する必要があります。カードの種類によって、受け付けるAPDUは異なるのでカードの仕様を確認する必要があります。構成APDUはおおむね以下のように構成されます。APDUは以下のような構成になっています。(指定なし)レスポンスAPDUを確認するAPDUをカードに送信することで、カードからレスポンスが返却されます。レスポンスにはステータスコードが必ず含まれるよう国際規格で定められています。00)がステータスコードです。ファイルが存在しないなど、さまざまあります。詳細は以下のリンク先にまとまっています。バイト列になっているため、人間が読めるようこれを変換する必要があります。レスポンス中の何バイト目に必要な情報が入っているか、あるいは何ビット目、という場合もあります。2進数に変換した上で、ビットを数える必要があります。いう2バイトをビットに直すと以下のようになります。必要な情報となり、さらにこれを必要な形式に変換して使用します。ビットとかバイトとか聞き慣れない場合は以下もご覧ください。半導体がなぜ必要か...ramble.impl.co.jp2021.12.02カードとの接続を解除する通信が完了したら、カードとの接続を解除します。複数のカードを連続して読み取る場合は、まず現在のカードを接続解除しておく必要があります。カードリーダからカードを離すだけで、カード側の通電はもちろん無くなりますが、アプリケーションの実装によってはまだ接続が終了していない場合があるためです。カードリーダとの接続を解除するアプリケーションを終了する際には、カードリーダとの接続も解除します。まとめICカードとの接続と読み取りのライフサイクルを紹介しました。タッチするだけで情報が流れてくるようなイメージがありますが、実際には複雑な仕様を理解して通信を行う必要があります。バイト列になっているため、人間が読めるようこれを変換する実装も必要です。「読み取るだけ...」と思うと大変だったりするので(書き込みはもっと大変)用心して臨むと良いでしょう。–こんな記事も読まれています関連記事は見つかりませんでした。