最初に断っておくが、これはNXPからダウンロードしたPN533のユーザーズマニュアルを読んだ感想だ。
他のR/Wについてはまったく関係がありません。
PN533をターゲットとして起動するのは、TgInitAsTargetというコマンド。
コマンド構成はドキュメントを見てもらうとして、ここにGtとTkというパラメータがある。
これが説明を読んでも、なんか煮え切らない。
JIS X5211を読んでいると、略語にGtがあった。
「ターゲットの任意選択情報フィールド」らしい。イニシエータだと、Gi。
PN533のGtは、このことなのか?
ユーザーズマニュアルには「ATR_RESで使用するgeneral bytesとある。
general bytesっていわれてもねぇ。。。
英語のユーザーズマニュアルで検索しても、length、ばかりヒットして見つからんし。
ATRも略語に載っていた。属性、Attributeのことらしい。
(なんか、略しすぎ。ATTRくらいであってほしい。)
ATR_RESはATR_REQの応答。
GtはInJumpForDEPコマンドの応答にも出てきた。
このコマンドは、ホスト(ここではPN533)がターゲットをActive/Passive Communication Modeで起動させるためのコマンドらしい。
おお、Active/Passiveは偶然にも調べていたな。
ともかく、Gtはターゲットが「私はこんな属性ですよ」という意味を持った値なのだろう。
10章にプロトコルの流れが書いてある。
対象になっているのはNFCIP-1デバイスらしいが、これはカード側のことだろうか?
PN533はR/W用なので、デフォルトだとイニシエータだと思う。
あるいは、それも含めてNFCIP-1デバイスなのだろうか。
なぜそんなことを書くかというと、「いかなるNFCIP-1デバイスも、初期状態は、ターゲットモードでなければならない」とあるからだ。
その後に「アプリケーションの要望に応じる場合には、イニシエータモードに切り替わってもよい」とある。
R/Wの動きは、この部分まで実行していると考えていいのかなぁ。
11.2 受動通信モード
11.2.1 106kb/s
11.2.2 212kb/s or 424kb/s
11.3 能動通信モード
となっているので、NFC-AかNFC-Fかは、ポーリングコマンドとかそんなのではなく、通信速度で決まるようだ。
最初にやりとりするのは、ATR-REQ→ATR_RESらしい。
ATR-REQに出てくるのが、NFCID3。NFC-DEP用のIDだ。
そして応答のATR-RESを見ると、Gtが出てくる。
が、説明は「汎用バイト」。しかも、汎用バイトを使用するかどうかのビットまである。
ってことは、TgInitAsTargetでのGtも同じことか。。。
プロトコル仕様として決められているのかと思って読み進めたんだがなぁ。。。
TgInitAsTargetのもう一つのパラメータ、Tkはさらに不明だ。
historical bytes。
general bytesが「汎用バイト」なら、こちらは「歴史バイト」か?
お前の歴史なんぞ、知ったことかー!
と思っていたが、最近libnfcの実装を見て、RC-S956はPN533とここらは違うんじゃないかと考えている。
返信削除Diagnoseもちょっと違うみたい。