2012/06/03

DEP initiator側の記載は、ない

朝っぱらから何を調べていることやら・・・。

ともかく、DEP調査の続きだ。


RC-S620/Sコマンドリファレンスマニュアル<簡易版>を読んでいたが、ようやく確信できた。
このドキュメントには、DEPのTarget側になるための記載はあるが、Initiator側になるための記載がない。
がーん。

 

NFCIP-1を読んで、そのままNFC-DEPを実装すればいいのだけど、けっこうめんどくさい。
そのめんどくさい部分を、RC-S956なんかがうまいこと吸収してくれている。
少なくとも、ドキュメントを読む限りではTargetについてはかなりやってくれる。

例えば、NFC-DEPを開始する際にはこんなやりとりをしなくてはならない。

  1. InitiatorがSDD
  2. TargetがSDDに応答
  3. InitiatorがATR_REQ送信(NFCID3はSDD応答の結果を使う)
  4. TargetがATR_RES返信(タイムアウト時間なんかを返す)
  5. 必要があればPSL_REQ / PSL_RES
  6. DEP_REQ / DEP_RESでやりとり
    ・DEPのPDU種別(INF, ACK, NACK, ATT, RTOX)によってパラメータが変わる
    ・シーケンス番号代わりにPNIを管理

あー、めんどくさい。
このめんどくさい処理の大半を、おそらくPCDチップはさばいてくれるのだ。
Targetがここまでやるのなら、Initiatorもやってくれように思う。

 

試しに、CommunicateThruEXでATR_REQパケットを投げたら、DEP待ちにしたTargetは反応した。
だから、素のエアプロトコルでやりとりすることは、少なくとも可能なのだ。
とはいえ・・・そこまでやるほどNFC好きじゃないのだ。


nfc-smart-tagではどうやってんのかな、と思ってソースを眺めたが、やはりTargetの部分しかなかった。
たしかに、ここの図を見ても、LLCPはTargetってことになっている。
うーん、秘密なのか-。

とはいえ、Targetがここまでやる、ということがわかったので、Initiatorも同等のことをやってくれるだろう、という期待はできる。
それに、DEPのInitiatorについては実験済みなので、できないことはないと思う。
あとは、気力だな。

0 件のコメント:

コメントを投稿

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

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