2012/11/03

[nfc]復習しよう

ここ最近、本業が忙しくて記憶が無い。
NFCのことも記憶から遠ざかろうとしている。。。

DRAMと一緒で、定期的に記憶をリフレッシュしないといかんようだ。


NFCとは・・・・というのは、私はあまり気にしていない。
私にとってのNFCとは、SONYのPaSoRiでアクセスできるかどうか、という基準になっている。
(すまん、15693・・・)

 

用語定義はいろいろあるけれども、NFC Forumの仕様書で考えるようにしている。
でも、めんどうであれば、知っている用語でもいいことにする。
たとえば、NFCID2、じゃなくて、IDm、と呼ぶこともある、とか。


NFC Forumでは、まずNFCの本質に当たる部分を3つに分けている。

  • Technology・・・NFC-A, B, F
  • Platform・・・Type 1 Tag、Type 2 Tag、Type 3 Tag、Type 4A Tag、Type 4B Tag
  • Protocol・・・ISO-DEP、NFC-DEP

ときどき「NFCとFeliCaの違いは?」という文字を見かけるが、それは「米とコシヒカリの違いは?」と言っているようなものだと思う。

NFCの定義(というか、NFC Forumが定義するNFCの定義)からすると、FeliCaであれば、

  • Technology・・・NFC-F
  • Platform・・・Type 3 Tag

だし、MIFARE Ultralight(いっぱい種類があるから絞っておこう)であれば、

  • Technology・・・NFC-A
  • Platform・・・Type 2 Tag

となる。
(Protocolが出てこないのは、カードじゃなくて端末の機能だから。)

 

NFC、と呼んでいるものは、「定義」だと私は思っている。
あれはああだ、これはこうだ、という定義。
MIFARE UltralightとかFeliCaとかは、その定義を実現した製品、という位置づけだ。
たとえばMIFARE Ultralightだと、こんな(私の)イメージ。

仕様書にある定義を自分なりに解釈して実装した、というところ。
(まあ現実としては、MIFARE Ultralightという製品をリバースエンジニアリングして仕様書を起こした、ということになっているのだろうが。)

 

比較するなら、同じ次元でやらんとわからんので「NFC-AとNFC-Fの違いは?」とか、「MIFARE UltralightとFeliCaの違いは?」などとなるだろう。


先ほど、Technology、Platform、Protocol、と3つ書いたが、TechnologyとPlatformが出てきて、Protocolは出てきていない。

また、仕様書を読んだらわかるが、例えばPlatformのType 3 Tagだと「TechnologyとしてNFC-Fを使う」と書いてあるので、PlatformはTechnologyと密接な関係がある。

それに、ProtocolのISO-DEPはTechnologyのNFC-AとNFC-Bだけ、NFC-DEPはTechnologyのNFC-AとNFC-Fだけ、と偏りがある。

 

考え方としては、こう思っている。

まず、Technologyありき。
Technologyは、無線の通信方法などを含めて定義している。
無線というのは扱いが難しくて、読む方と書く方の両方が同じようにやらないと、うまくいかないのだ。
周波数だけでなく、データの送信方法、エラーの対処方法など、細かく決めておく。
この無線通信の土台となっているのが、Technology。

PlatformとProtocolは、Technologyという無線の土台を使ってどう通信するかを決めている部分。
さきほど、MIFARE Ultralight(Type 2 Tag)はNFC-Aと書いたが、Topazという製品(Type 1 Tag)もNFC-Aを使っている。
だからといって、MIFARE Ultralight用の通信ができればTopazにもアクセスできるかというと、そうではない。
Platformが異なると、やはりだめなのだ。
語族が同じだけど、言語が異なっている、みたいなものか。


NFC Forumでは、デバイス(カードではない方)について、これも3つ使い方を考えている。

  • リーダライタモード(カードを読み書き)
  • カードエミュレーションモード(カードとして振る舞う。オプション。)
  • Peer to Peerモード(データ交換)

 

NFC Forumの考え方としては、デバイスが複数あるPlatoformに対応する、ということでNFCの互換性を高めようとしている。
互換性、というのはなんか変な気もするので、汎用性、のほうがいいのかもしれん。

とにかく、NFCカードは、1つのPlatformしか実現できないので、じゃあデバイスでがんばろう、ということだ。

 

リーダライタモードは、NFCカードを読み取り、書き込むことができる。
Androidだと、画面がロックされていなければ、だいたいリーダライタモードだ。

カードエミュレーションは、NFCカードのふりをすること。
一番の用途は、ペイメント、お金の扱いだろう。

Peer to Peerはなんだかわかりにくいが、デバイス同士の通信、と言い換えるとわかりやすいだろう。
よく見るのは、Android Beamのように、片方がもう片方へデータを送信するやつだ。

 

最近の製品によくある、NFCスピーカやNFCマウスは、認証の部分だけをリーダライタモードなんかで済ませてしまい、あとはもう少し高速な通信を使って動作するようになっているらしい。


先にも書いたが、NFC Forumは「先に規格ありき」ではなく、「先に製品ありき」だった。
そこを、統一規格を作り出すのではなく、あえて共通要素を少しずつ切り出して規格化し、それぞれの製品を否定しないようにしていった、というところに苦労が忍ばれる。

ただのフォーマットだったら画像などのように乱立しただろうが、生活基盤に近いところだったので、否定しない方式をとったのだろう、と勝手に思っている。

 

などなど、どういうことがあったのかな、と考えながら仕様書を読むのも、無機質に読み進めるよりは楽しいものだ。
技術はともかく、規格としては比較的新しい部類になるので、まだまだ追加があるだろうし、もしかしたら消えてしまうかもしれない。
仕様、というと機械的なものと思いがちだが、結局は人間が使うシステムのためにあるので、そういった人間的な部分を見ようと思えば見えてくるものだな、と思った。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。