NDEF(NFC Data Exchange Format)は、非接触ICカードにデータを保存するための規格です。
AndroidスマートフォンやWindows8が正式対応しており、カードをかざすだけで、URLを開いたり、アドレス帳への登録が可能です。
さてNFCといえは、FeliCa Lite(Type3)や、Mifare Ultralight(Type2)が一般的なわけですが、Mifare Classicが使えないわけでもありません。
Mifare Classicの特徴
FeliCa LiteやMifare Ultralightにはない、鍵付き領域があります。
鍵(6Byte)を設定する事で、不正な読み書きを防止可能です。
(読み書き、読込みのみ等、柔軟な設定が可能)
●NDEFを保存する
MAD(Mifare Application Directory)
第0セクターに、MAD(カード内容を表すヘッダー)を書き込みます。
MADには、第1〜第15セクター、それぞれの利用用途(AID=Application ID)を記載します。
NDEFを表すAIDは0x03E1です。
NDEFセクター
AIDを0x03e1としたセクターには、ひとつ以上のTLVブロックを保管します。
TLV=Type 、Length、Value
TYPE
NDEFメッセージを表すTypeは0x03です。
LENGTH
格納するデータが0〜0xFEまでであれば1byteで、0xFF以上であれば3Byte(0xFF 0xSIZE 0xSIZE)で格納します。
Value
NDEF Forumで定義されるNDEF Messageを格納します。
ターミネーターTLV
最後のTLVブロックは、ターミネーターTLVにします。
T=0xFE
Lなし
Vなし
このフォーマットでカードに書き込む事で、Androidが認識します。
MADにてNDEF以外を設定したセクターには、鍵を設定した任意のデータが保存可能です。
これは、Type1〜Type3タグには無いメリットです。
AndroidスマートフォンやWindows8が正式対応しており、カードをかざすだけで、URLを開いたり、アドレス帳への登録が可能です。
さてNFCといえは、FeliCa Lite(Type3)や、Mifare Ultralight(Type2)が一般的なわけですが、Mifare Classicが使えないわけでもありません。
Mifare Classicの特徴
FeliCa LiteやMifare Ultralightにはない、鍵付き領域があります。
鍵(6Byte)を設定する事で、不正な読み書きを防止可能です。
(読み書き、読込みのみ等、柔軟な設定が可能)
●NDEFを保存する
MAD(Mifare Application Directory)
第0セクターに、MAD(カード内容を表すヘッダー)を書き込みます。
MADには、第1〜第15セクター、それぞれの利用用途(AID=Application ID)を記載します。
NDEFを表すAIDは0x03E1です。
NDEFセクター
AIDを0x03e1としたセクターには、ひとつ以上のTLVブロックを保管します。
TLV=Type 、Length、Value
TYPE
NDEFメッセージを表すTypeは0x03です。
LENGTH
格納するデータが0〜0xFEまでであれば1byteで、0xFF以上であれば3Byte(0xFF 0xSIZE 0xSIZE)で格納します。
Value
NDEF Forumで定義されるNDEF Messageを格納します。
ターミネーターTLV
最後のTLVブロックは、ターミネーターTLVにします。
T=0xFE
Lなし
Vなし
このフォーマットでカードに書き込む事で、Androidが認識します。
MADにてNDEF以外を設定したセクターには、鍵を設定した任意のデータが保存可能です。
これは、Type1〜Type3タグには無いメリットです。
コメント
コメント一覧 (2)
お忙しいとこ申し訳ありません
カードライターのことで、あまりよくわかっていないのですが、Mifare Classic を使いたいので参考にさせていただいています。フォーマットはわかるのですが、どのライターでどう書き込みをすればできるようになりますか教えていただけないでしょうか?基礎的なことになりますがよろしくお願いいたします
連絡が遅れてしまいました
Windows用であればSony社のPaSoRi RCS380、やACS社のACR122Uで読み書きできることが確認できています。
Windows8のNFC-APIはMifareClassicに対応していないので注意が必要です。
世界的にシェアの高いMifareClassicに対応していないのは残念でなりませんね
Windows以外ではNexusシリーズのAndroidスマートフォン、タブレットでも読み書きできますよ