NTAG210とNTAG212ですが仕様書を見るとサイズの違いだけのようです。NTAG210は80byte、NTAG212は164byteです。自由に書込みできる容量だけみると、NTAG210はMifareUltralightと同じ48byte、NTAG212はNTAG203より少し少ない128byteになっています。
こちらがNTAG210のBullsEyeです。
中身を見てみます。
Page3の1バイト目が 0xE1 になってますのでNDEFフォーマットされています。データは 0x03 0x00 0xFE で空のNDEFが確かに入っていますね。
まずここにタグのUIDをパラメータとするURLを書きます。
書きました。UIDの部分は 00 00 00 00 00 00 00 にしています。
ここでタグに細工をするとこのUIDの部分にタグ自身のUIDがコピーされるようになります。
正確には上書きされるのではなくて、タグ読み込み時に置き換えられるようです。
細工はNTAG210の場合Page16に行います。Page16の構造は仕様書によりますと、
Page 16 MIRROR_BYTE RFUI MIRROR_PAGE AUTH0
となっています。MIRROR_BYTEとMIRROR_PAGEで、何ページの何バイト目にミラーするかを指定します。ですので、UIDをミラーしたい開始のページ(4~15)とバイト(0~3)を書き込むわけです。
MIRROR_PAGEには開始ページをそのまま書けばいいですが、MIRROR_BYTEの方は特殊で上位3ビット目と4ビット目の2ビットを使って0~3を指定するようです。
ではやってみましょう。先ほど書き込んだタグのデータを見てみると、
Page10の2バイト目から 0x30 (ASCIIで数字の0)が続いているので、ここにミラーすればいいようです。というわけで MIRROR_PAGE には 0x0A(Page10)、MIRROR_BYTE には2進数で 0001 0000(16進数で 0x10)を書込みます。
書き込んだあと、もう一度NDEF読み込みをしてみると、
ちゃんとUIDのところにタグのUIDが表示されています!便利ですねー。
ネットと連携させる場合、ほとんどの場合タグのUIDをパラメータとするURLを使用します。そうするとタグごとにエンコードする内容が異なることになります。しかしこの機能を利用すればエンコードする内容はすべてのタグで同じにできるわけですね。なるほど。
0 件のコメント:
コメントを投稿