Mifareとは、Philips社が開発した、FeliCaと同じ13.56MHz非接触型のRFID通信技術。(ISO-14443A)
専用のリーダ・ライタモジュールから出力される電磁波を介して、タグと呼ばれるICチップと近距離無線通信を行う技術の一つである。
タグは各々がユニークなシリアル番号とメモリ領域を所持している。

FeliCaもMifareと同じ13.56MHz周波数帯の非接触型RFID通信技術である(ISO-14443C)。
しかしこれらは無線通信の規格が同じだけであり、制御基板やタグの構造は全くの別物である。

FeliCaはアジア近辺のみで普及しているが、欧米欧州ではMifareが主流である。
Mifareは日本国内ではまず見かけることのない技術であるが、モジュールは世界中に広く普及しているため、国外通販で比較的安価で・容易に入手することができる。
ハードウェアレベルにおいても、FeliCaより圧倒的に使い勝手が良い。
その分、暗号化や認証などセキュリティ面でFeliCaより甘い部分はある。


以降の項目で、Mifareの通信概要についてと、Mifare内部のメモリ構造について説明する。


通信の概要

Mifareモジュールとの応答は、パケット通信で行われる。
コントロールプログラムから送られたコマンドパケットに対し、コマンドが正しければMifareモジュールはレスポンスを返す。
SM130 Mifareモジュールの場合、コマンドが正しくなければレスポンスは返らない。
パッシブなRFIDタグはリーダ・ライタからの電磁波から起電力を得ているため、タグから自発的に通信を行うことはない。

つまり、こっちが制御してやんないとモジュールは何もしないということである。


タグの外観と種類

Mifareタグは、Mifare Ultra Light、Mifare 1k TAG、Mifare 4k TAGの3種類がある。
タグの種類によってメモリ容量や構造が大きく異なり、通信の際には各々のフォーマットに合った手段を用いなければならない。
最も使われているのはMifare 4k TAGであり、以降ではこのタグについて説明する。
下図がMifare 4k TAGを使ったICカードである。

Mifare 4k card


メモリ構造

Mifareタグのメモリストレージは基本的にFeliCaと似通っており、1ブロック16バイトで構成される。

Mifare 4kタグのメモリ構造

上図がMifare 4kタグのメモリ構造を示すが、3ブロックのデータ部と1ブロックのシリアルトレーラーが交互に整列していることが見て取れる。
シリアルトレーラー部分は読み込むことができるが、任意のデータを書き込むことはできない。
タグに任意のデータを書き込む場合には、シリアルトレーラーを除いた、(4n+3)番目のブロック以外と通信することになる。

また、0〜2番目のブロックも書き込むことができない
(恐らく、モバイルFeliCaチップみたいに、シリアル番号か何かが詰まってんじゃないかと。)