とうとうmifareというタグが追加されてしまった。
FeliCaはfelicaで、MIFAREはnfcだと不公平というものだ。
さて、今はMIFARE Classic 1Kの読み書きをしようとしている。
読む方は、会社の社員証を使ってできることはわかった(中身と一致しているかどうかは知らんが)。
どうやって当時コマンドを調べたかというと、ACR122というR/W仕様がネットでダウンロードできたので、それをまねしたのだ。
なお、ACR122はPN532内蔵だ。
それではなんなので、自分で調べようとしたお話だ。
FeliCa Liteのときと同じように、カードコマンドがわかれば、それをInDataExchangeを使って投げればいいだろうと思っていた。
http://www.nxp.com/documents/data_sheet/MF1S50YYX.pdf
このドキュメントのp.22からがコマンドになっている。
見てみるとわかると、AuthenticationとWriteは2シーケンスに分かれている。
ACR122のドキュメントでは、これらも1コマンドで動作させているので、FeliCa Liteのようにシーケンスとコマンドが1対1になっていないようなのだ。
うーん、コマンドを見てもわからんということか。
PN533のドキュメントを見ると、InDataExchangeのところにMIFARE cardの説明があった。
渡すのは、コマンド、アドレス、最大16byteのデータ部、となっている。
これを渡すと、R/W側がうまいことシーケンスを作ってくれるのだろう。
Writeの場合は1ブロック分のデータだし、Authenticationの場合は6byteが鍵で、4byteがカードのシリアルナンバー。
シリアルナンバー?
UIDではないのか?
ACR122ではUIDになっているので、UIDが入るんだと思う。
思うが、4byte限定というのが気になる。
UIDには、7byteと10byteもあるのだ。
PN533のドキュメントには、そこ以外でSerial Numberを指すものは無かった。
やはりUIDなのだろうか。
厳密に言えば、4byteのUIDは、ユニークではない。
MIFARE 1Kのドキュメントでは、NUID(Non-Unique ID)と書いている。
Ultralightのドキュメントでは、unique 7byte serial number(UID)、って書いてある。
うーん・・・。
どうでもよくなってきた。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。