2012/06/21

[nfc]カードのサイズ

サイズというか、容量ですかね。

どこかで、NDEFフォーマット前にカードの容量はわからんかね、というようなことが書かれていた。

 

記憶を頼りに書くが、カード自体にはカードサイズを取得するコマンドはない。
FeliCa Standardにはあったと思うが、プロプライエタリなコマンドだ。

なので、けっこうめんどくさい。

 

さらに憶測になるが、まあいいや。

Type 2 Tag、つまりMIFARE UltralightやMIFARE Ultralight Cは64byteタイプがメジャーだ(と思う)けど、それ以外のサイズもある。
Ultralightとかだと、ポーリングに相当するコマンドを投げると、SAKというデータが返ってくる。
これを見て、まず大きく種別を把握することになる。

http://www.nxp.com/documents/application_note/130830.pdf

これの7ページあたりを見るとよかろう。
昔、記事に書いたような気もするが、記憶がないので書いてないかも。

 

これがわかったとしても、カードの種類くらいしかわからない。
MIFARE Classicは1Kと4Kの区別が付くのだけど、それ以外は特にないのだ。
むー。

ではどうやるかというと、実際に読むコマンドを投げる!だ。
読むときにはメモリアドレスみたいなものを指定するので、指定したアドレスに対して応答が返ってこなければ、そのアドレスはない、みたいな判別方法になる。

・・・だったと思う。
これも記事に書いたことがあるような気がする。
検索ページから削ってしまったのが悔やまれるのは、こういうときだ。

あった。libnfcの人がそういってたんだった。
http://hiro99ma.blogspot.jp/2012/02/mifareultralight-c.html

 

FeliCa LiteとLite-Sも同じようになるんじゃないかな。
まあ、あれはシステムブロック数が違うだけで、ユーザメモリは同じだったはず。

0 件のコメント:

コメントを投稿

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