LoginSignup
29
23

More than 3 years have passed since last update.

勝手にNFCに入門してみる

Posted at

NFC についてはド素人ですが、さくっと調べる機会があったので、ちょっとだけまとめておきます

主にこの 4 つの記事、スライドをまとめた形です

NFC とは

これが一番難しいのではないかとおもいます笑
NFC は Near Field Communication の略なのだが、使われる文脈で指す範囲が少しずつ異なっているようです

調べていく中で、だいたいこの 4 つの文脈でNFCという言葉が使われる事が多いようでした

文脈 使われた際の意味
狭義の NFC ISO18092(NFC IP1) が定める 通信規格 を指す
狭義+α の NFC ISO21481(NFC IP2; IP1の拡張) が定める 通信規格 を指す
NFCフォーラム仕様の NFC NFCフォーラムの定める 通信規格 + デバイスが満たすべき機能など まるっと含めた実装規格 を指す
日常で言われる NFC スマホとかでピッとやるとデータ通信するっぽい なにか

NFC の規格を鳥瞰してみる

通信規格や、デバイスも含めた規格があるのですが、一旦図におさめてみました

矢印の先にある要素が、元にある要素を包含ないしは使用するという関係性です

NFC入門 (1).png

難しい。。。ちょっとずつ分けてみます

狭義の NFC

まずは狭義の NFC です
「ISO18092(NFC IP1) が定める 通信規格 を指す」
と言うように通信規格を定めています

通信規格というように、定めているのはデバイス等ではなく基本的にはどのような変調方式で、データをやり取りするかということを定めています

NFC入門 (3).png

ISO の規格との対応は以下

NFC入門 (2).png

ここで言う Type-A, Type-F は変調方式の種類です
それぞれ変調方式、符号化の方法、伝達速度など波としての性質の違いがあります。

狭義の NFC はおもに 2 つの変調方式を包含しています

スクリーンショット 2020-06-23 0.03.18.png
NTT技術ジャーナル 技術基礎講座非接触 ICカード技術 表1

狭義+α の NFC

正式な言葉ではないですが、狭義+α の NFC は「ISO21481(NFC IP2; IP1の拡張) が定める 通信規格」をさします

狭義の NFC の上記規格で、NFC IP-1 に加えて Type-B, Type-V を包含しています

Type-B はマイナンバーカードなど、Type−V は物流のタグなどに使用されている

NFC入門 (4).png

NFCフォーラム仕様の NFC

「NFCフォーラムの定める 通信規格 + デバイスが満たすべき機能など まるっと含めた実装規格 を指す」

通信規格だけをさしてない。。。この NFC はかなり広い範囲をさしています。

歴史的な背景はありますが、この NFC フォーラム仕様は

  • いろんな通信規格でつかえる(Type-A,B,F)
  • いろんなデバイス形状でつかえる(カード、タグ、デバイス etc)

を目指した結果、広範囲を指すことになりました

NFCフォーラム仕様
SONY NFCの定義

規格についても、Type-A,B,F の通信規格に加えて、デバイスの実装規格なども定義されています

NFC入門 (5).png

NFC デバイス

NFC フォーラム仕様の中には、NFC デバイス なる概念があります

NFC デバイスは以下の 3 つのモードをのうち、P2P、リーダー/ライター を備えるものに NFCフォーラムから与えられる呼称です。

モード名 動作内容 NFCデバイスの要件
P2P NFC デバイス同士でやりとり 必須
リーダー/ライター IC カードなどを NFC 通信規格を通して読み書きする 必須
カードエミュレーション IC カードのようにふるまい、リーダーからNFC 通信規格で読みとらせられる 必須ではない

モードの動作を図に表すとこのような形です

NFC入門 (6).png

NFC デバイスを名乗っている場合は、P2P、リーダー/ライターは厳格に定められた方式に従うが、カードエミュレーションはその限りではない
がポイントになります。

なお NFCデバイスを名乗る以上は
Type-A,B,F の通信規格を利用した通信そのものには対応しています

NFCデバイスのスマホとカードエミュレーション

ここで具体ではありますが、身近なスマホを考えてみます。

多くのスマホがこの NFCデバイス であることが多いです。
そして駅の改札のリーダーは Type-F の通信規格を使用しています。

ここからいけそうなのものですが、Suica として使用できない NFC デバイスのスマホ(NFCデバイスなのにカードエミュレーション)が多々あります。
iPhone 6 などもそうでした。

これはなぜかと言うと、ICカードをエミュレーションするには通信規格以外の要素も再現する必要があるが、その要素(特にICチップの挙動)については NFC デバイスを名乗るさいの厳格な要件がないからです。

Suica は FeliCa という Type-F の通信規格を使用した独自の IC カードの実装方式に準拠していて、Suica にうめこまれた IC チップで処理を行っています。

image.png

FeliCaの実装
FeliCaの仕組み

この IC チップの挙動を再現できないために、NFC デバイスだけれども FeliCa 対応の IC カードを再現できないのが、Suica として使用できない NFC デバイスのスマホなのです。

ハードで IC カードを再現する

じゃあ「FeliCa 対応のスマホ」 はどのようになっているかと言うと、FeliCa の ICチップの動きを再現できる セキュアエレメント(SE)という IC チップを物理的にスマホに積んでいます

Android デベロッパー ホストベースのカード エミュレーションの概要
Android デベロッパー ホストベースのカード エミュレーションの概要

日本に進出したい スマホメーカーにとってはこれは、悩ましいところと推察します

正直 FeliCa は SONY の独自規格で日本がメインのものです。

  • FeliCa 対応 SE を全機種に積めばコストは上がる
  • FeliCa 対応 SE を積まなければお財布ケータイ、モバイル Suica などは対応できない機種になってユーザー層が限定される
  • FeliCa 対応 SEを積む機種と積まない機種(海外向け)を作ったら、生産ラインが増えて1つあたりのコストがやっぱり上がる

最近こそ、iPhone や Pixel は Type-A/B向けSE と FeliCa SE の両方を積んでいますが、iPhone 6 以前や海外向け Android スマホなどではそもそも FeliCa SE をつまないものもあります。

やっぱソフトで IC カードを再現したい

Google さんは黙っておりません。
Android では ホスト側で IC カードの動作を再現するように HCE(Host-based Card Emulation) を提供しています

  • HCE-A/B(Type-A/B 対応) : android 4.4 ~ 7未満
  • HCE-A/B/F(Type−A/B/F対応) : android 7 以降

Android デベロッパー ホストベースのカード エミュレーションの概要
Android デベロッパー ホストベースのカード エミュレーションの概要

しかし今現在 HCE はあくまでも通信部分の規格を再現しているにすぎず、FeliCa IC カードのエミュレーションするための FeliCa のふるまいなども含めた実装はまだなされていません
Android スマホでは HCE 限定ではなく、SE との併用もできます。

デバイス, OS をすべて自社コントロールする apple と、OS をオープンにしてデバイスも様々なメーカーがつくる google の戦略の差がここにも垣間見えますね

29
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
23