2011/08/31

[type3]Type 3 TagのAttribute Information Format

わからんわからんといっていた、FeiCa Liteに書かれたS_PAD0のデータ。
これはType3 Tagのドキュメントに書かれているところまではわかった。

わかったのだから、読んでみよう。


ドキュメント名は、「NFCForum-TS-Type-3-Tag_1.0.pdf」。
NFC Forumからダウンロードしたものだ。

 

Ver Nbr Nbw Nmaxb1 Nmaxb2 - - - - WriteF RW Flag Ln1 Ln2 Ln3 ChkSum1 ChkSum2

ならびは、ビッグエンディアンのようだ。

[0x00]Ver ... 1byte
Tagのバージョン。
4bitずつで表し、上位4bitが正の数、下位4bitが小数点以下、というところか。
今回は「NFCForum-TS-Type-3-Tag_1.0.pdf」なので、0x10。

※2011/09/04追記
Type3 Tagドキュメントのバージョン(T3VNo)と、デバイスに実装した(書き込んだ?)バージョン(NFCDevVNo)には、紐付けに4つのケースがある。
説明が面倒になるので、メジャーバージョンをX or x、マイナーバージョンをY or yとする。

NFCDevVNo : XY
T3VNo : xy

  1. X=x、Y>=y : デバイスはType3 Tagドキュメントに記載してある全てを満たす
  2. X=x、Y<y : Type3 Tagの全部にはアクセスできない。
  3. X<x : デバイスはType3 Tagデータを扱えない。
  4. X>x : デバイスはたぶん前のバージョンをサポートする。サポートしてないならType3 Tagを扱えない。

 

[0x01]Nbr ... 1byte
1回のコマンドで読み込むことができるブロック数。
FeliCa LiteのRead w/o Encryptionは4ブロック以下なので、0x04。

 

[0x02]Nbw ... 1byte
1回のコマンドで書き込むことができるブロック数。
FeliCa LiteのWrite w/o Encryptionは1ブロックなので、0x01。

 

[0x03, 0x04]Nmaxb ... 2byte
NDEFとして使用できるブロック数。
最小値は4。
FeliCa Liteでは、0x000dが取得できた。これはS_PAD1~S_PAD13に相当する。

 

[0x09]WriteF ... 1byte
書き込み中フラグみたいだ。
Type3 Tagに書き込み開始前に0x0Fを書き込み、書き込み終了時に0x00を書き込む。
なので、普通は0x00が読める。


[0x0A]RW Flag ... 1byte
読み込み専用かどうか。
読み込み専用であれば0x00を、そうでないなら0x01を書き込む。
ここが0x00だったら、技術的に書き込み可能であっても、読み込みのみと考えること。
デバイスはここの値を書き換えないこと。


[0x0B, 0x0C, 0x0D]Ln ... 3byte
実際に書き込まれているNDEFのサイズ。単位はバイト。
データ書き換えがあると、ここも更新すること。
S_PAD0の先頭から、NDEF Recordの最後のデータまでになっていた。
1ブロック16byteだから後ろに空きがあるかもしれないが、そこは含めない。


[0x0E, 0x0F]CheckSum ... 2byte
このブロックの[0x00]~[0x0D]までを1byteずつ加算。
[0x00]~[0x0D]のデータが書き換わったら、更新すること。

0 件のコメント:

コメントを投稿

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

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