2012/02/07

[nfc]DEPとLLCPとSNEP

ようやくここまで来た。
私が一番注目している、DEP関係だ。

あとこれ以外のネタとなると、RC-S620/Sの扱い方とかになってしまうのだが、これはどこまで書いていいのかよくわからない。
私としては一番書きやすいのだけど、書いていいのかどうかがそもそもわからないのだ。

当たり障りのないところから書く、という手もあるが、はてさて。


DEP

DEPは、Data Exchange Protocolの略。
データを交換するプロトコル、だ。

今までを思い出してほしいが、アクセスするのはカード相手だった。
なので、カードに書いたり、カードを読んだり。

しかしDEPは「交換」だ。
自分が送信したデータを相手が受けとり、相手が送信したデータを自分が受けとる。
カードにアクセスするだけと思っていたら、何と通信機器と化すのだ。
興奮する話ではないか!

 

・・・私だけか?


細かい話をすると、DEPには有名なところで2つの方式がある(私が知らないだけかもしれないが)。

1つは、NFC-DEP。
これは、ISO18092に由来するDEP方式である。

もう1つは、ISO-DEP。
これは、ISO14443に由来するDEP方式である。

残念なことに、私はISO14443のドキュメントを読んだことがないので、ISO-DEPなるものがどういう方式なのかは知らない。

しかし、NXPのPN533ドキュメントを読む限りでは、あまり深く知らなくても使えそうな気がする。
無線のプロトコルとしては、いろいろとコマンドがあったりパラメータが決まっていたりするのだが、有線のプロトコルではそこら辺をうまいことチップが吸収してくれている(と思う)。

私もPaSoRiとRC-S620/SでDEPしてみたが、案外あっさり動いた。
ただ、それがNFC-DEPで動いているのかISO-DEPで動いているのかと問われると、よくわからない。


LLCP

DEPは、単なるデータのやりとりをするしくみだ。
土管みたいなものである。

土管の両側に人がいて、相手に何かを渡したかったり受け取りたかったりしたら、いくつか確認したいことが出てくるだろう。

  • 今送ってもいい?
  • このくらいの大きさだけど、受け取れる?
  • それより、あんたは誰なの?

などなど。

こういったやりとりを行うために、DEPの上位層としてLLCPというものをNFC Forumでは置いている。
Logical Link Control Protocolの略である。

最近まで知らなかったのだが、インターネットみたいなやつにもLLCってのがあるみたい。
NFC専用の言葉ではなく、ネットワーク用語と思ってもいいのだろう。
IEEE802.2のLLC副層、というものらしい。

 

ともかく、LLCPはNFCに特化したNFC-DEP制御用のプロトコルである。
(そう、NFC ForumのLLCPは、NFC-DEPなのだ!)

これを使うことで、NFCのInitiatorとTargetでデータ交換をできるというものだ。


SNEP

しかし、それだけではまだだめだ。

もうちょっとアプリケーションよりの部分まで規定しないと、各自が勝手なルールを作ってしまい、プロトコルが乱立するのが目に見えている。

そう思ったのかどうかは知らないけれども、最近SNEPというプロトコルがNFC Forumで公開された。
Simple NDEF Exchange Protocolの略だ。
読んで文字の通り、シンプルにNDEFを交換するプロトコル、である。

これは、LLCPの上に載っかる。
LLCPの下には、DEPがいる。
そしてDEPが、相手のDEPと通信し、相手にもLLCPとSNEPがいる、という構造。

NFC ForumにSNEPのドキュメントがあるが、短い。
ページ数で20だし、本文は10ページちょっとだ。


おまけ

Android Beamってのがあるが、あれはSNEPを使っている。
SNEPで送信してみて、相手が受け取れなかったらNPPで送信している。

NPPってのは、NDEF Push Protocolの略。
手元にあるPDFには「Android NDEF Push Protocol」と書いてあるので、Android用なのだろう。

NPPもLLCPの上に載っかる。
おそらく、Android 2.3.4くらいにはこれだけが載っていて、最近の4.0にはSNEPを載せているんじゃなかろうか。
NPPは、おそらく静かに消えていくのだろう。


さて、ISO-DEPが気になるかもしれない。

これは、Android(すまん、Androidの情報しか持ってないのだ)では、APIとして存在する。
あれ、NFC-DEPは?と思うかもしれんが、こっちはAPIがない。

こういう言い方もできよう。
Androidではシステム側がNFC-DEPを使用し、ISO-DEPをユーザに公開している、と。


そんなわけで、私はNFC-DEPできる端末を探しているのであった。
Android端末もできるのだけど、携帯電話は壊れるまで買い替えたくないのだ。
(私は電話の類が、あまりお好きでない。。)

0 件のコメント:

コメントを投稿

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

注: コメントを投稿できるのは、このブログのメンバーだけです。