NXPのPN533ユーザーズマニュアル[pdf]をときどき読んでいる。
英語だけど、NFC R/Wの雰囲気を味わう分には、そんなに読まなくても何とかなる。
個人的にNFC-DEPのInitiator側処理を調べているので、それに関するコマンドを見てみよう。
まあ、私の調べていることはいつも個人的なものしかないのだがね・・。
InJumpForDEP。
これが、ターゲットをactive communication modeかpassive communication modeとして起こすコマンドらしい。
「If a target is in the field, it will then be ready for DEP exchange.」と書いてある。
力強い限りだ。
このコマンド、R/Wコマンドとしてはパラメータが多い。
Targetになるコマンドも多いのだが、これもなかなかだ。
必須は、3つ。
- Active communication modeかPassive communication modeか
- Baud Rate (106kbps / 212kbps / 424kbps)
- オプションパラメータの有無
オプションが最大3つあるので、全部で6パラメータまであることになる。
コマンドの詳細は、ドキュメントを見ればわかるので割愛。
そのレスポンスが次のページに載っているが、これを見て何か気付かないだろうか?
そう、TgInitTargetコマンドのパラメータに似ているのだ。
ある人はこういうかもしれない、「ATR_REQ / ATR_RESに似ている」と。
ここまで材料が揃うと、このコマンドのやることが何となくわかってくる。
このコマンドは、Pollingをするだろう。
NFC-Bに対してはわからないけど、AとFのどちらかにはしそうだ。
どっちにするかは、Baud Rate設定で決まるだろうし、オプションパラメータ「PassiveInitiatorData」も関係するだろう。
Targetの捕捉はどうしても必要なのだ。
その応答を見てから、ATR_REQを送信するのだろう。
なぜなら、NFCID3iというオプションパラメータが212kbps/424kbps passiveでは使われず、POL_RESから取得したNFCID2tを使うと書いているからだ。
POL_RESは、NFC-FのPollingコマンドのこと。
NFC-Fの場合はNFCID3の10byte中、8byteはNFCID2(IDm)を使うことになっているので、自然な仕様だと思う。
Initiatorは要求をかける側なので、Targetが応答を返してきてから考えても遅くない。
だからTargetのようにGeneralBytesを別で渡すようなしくみはない。
というところだろう。
これとセットで使うのが、InDataExchangeだが、全部書くと面白くないだろうから、おしまい。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。