2011/02/20

[nfc][dep]予想とシーケンスが違う

予想というわけではないな。想定、くらいか。

PN533のユーザーズマニュアルを見ながら、NFC-DEPができるかどうかのテストをしている。
(DEPなんて、そんなにセキュリティと関わるところでもないように思うから、公開してくれないかなぁ。)

PN533では、InJumpForDEPなるコマンドを投げると、相手のターゲットが反応したら応答が返る、というようなシーケンス図が描かれていた。
では、とコマンドを送信してみると・・・状態がエラーで返ってくる。
なんだ?

何度やってもだめなので、ターゲットがRC-S620/Sではよくないのかと、nimocaをかざしてみたが、だめ。
携帯電話を当ててもだめ。
というよりも、かざす前にエラーになっている。
ん? もしかして・・・。

かざす前にターゲットを置いてからやると、うまくいった。
待ってくれないのか!
別のページのシーケンスを見ると、先にターゲットが立ち上がってて、そこに対してInJumpForDEPするシーケンスになっていた。。。
図の間違いなのか、待てるようにもできるのか。。。


実際の運用を考えてみよう。

データのやりとりをするというよりも、相手にデータを送るか、相手からデータをもらうか、そのどちらかになるはずだ。
そりゃ、NFC-DEPでチャットもやろうと思えばできるんだろうけど、向かい合ってるんだから話せよ!と思う。

Half-duplexなので、どちらかが親、どちらかが子になる。
その親子決めで、コマンドのどちらを誰が使うかが決まるはずだ。
うちの携帯電話(P906i)を見てみよう。

送る場合だが、「向かい合わせてください」とダイアログが出てきて、OKすると送信状態になった。

受信する場合は・・・IrDAと違ってユーザ操作がないようだ。
三者間通信と同じで、相手からの送信をトリガとして動作するように見える。

つまり、送信側がトリガを出さなくてはならない。
InJumpForDEPはPN533だとPOL_REQなりATR_REQなりを出すらしいから、それだな。
受信側は、POL_REQを受けて、急いでターゲットになるのかな。

試してみると、携帯電話に対してInJumpForDEPを受動モードで送信したときに、携帯電話が反応を示しているようだ。
能動と受動・・・。
親子だけでなく、そこもちゃんと考えんといかんですな。
ああ、めんどくさい。。。

0 件のコメント:

コメントを投稿

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