RFIDで遊んでみたかった。

最近多いっすよね、カードをピッてかざす奴。PASMO的な。いわゆるRFID。 あれで色々遊びたかったのですが、上手くいかないのでとりあえず断念。

読みたいカードがどうやらマイナーな形式らしくて(多分TypeAかTypeB)、情報が見つからないのよね・・・。 んでも調べたものを放置するのも悲しいので、記録しておきます。俺の屍を越えてゆけ?

カードの種類

すべて同じ物と思うなかれ、実は色々種類があるようです。

ひとつ目が、日本で一番流通しているFeliCaってやつ。 PASMO、suicaにEdy、その他諸々。大体これみたい。

日本独自に近くて、ガラパゴスな感じ。 ISO/IEC 14443 Type-Cとして規格化しようとしていたものの、時間切れでダメだったらしい。 その後ISO/IEC 18092として規格化されました。

ふたつ目が、MIFARE(マイフェア)っていうの。 単価が安いらしくて、世界ではいっぱい出回ってる、らしい。 日本ではtaspoで使われているとか。 ISO/IEC 14443 Type-Aとして規格化されています。

みっつ目、ISO/IEC 14443 Type-B。なんと、名前(愛称?)がないっぽい。 格納できる情報量が多い、らしい。よく分からん。 運転免許証、住民基本台帳カード、パスポートなどなどに使われているあたり、セキュリティも強いのかもね。

PaSoRiで使う

SonyのPaSoRiを使っているのなら、これは比較的簡単。 Sonyさんが開発者向けにSDK for NFCというのを公開してくれているので、それを使えばおっけー。

ダウンロードはここからね。 個人で使う場合はSDK for NFC Starter Kitってのを使えばおっけーっす。

TypeA、TypeBともに対応しているらしいのだけれど、なんかうちの環境(RC-S330 / Windows XP)だと上手く行かなかった。 FeliCaなら問題なく。

ただ。ただね、めんどくさいんだ、これ。 なんかこう、これで開発しようとすると手間が多くてまどろっこしい。

そこで、有志の方が公開してくださっているfelicalibというのを使ってみる。 これは結構シンプル。しかもBSD Licenseなので、色々使える。素敵。 ただ、やはりTypeA、TypeBでの動作は確認できず。残念。

ACR120で使う

手持ちにリーダーがないので試せてないけれど、一応。 持ってる人は知ってるので、もしも借りれたら? 借りれる気がしないけれど。

なんか有料の高価なSDKもあるようですが、これじゃなくて英語サイトのdriversのページにあった**ACS Synchronous API Drivers (Proprietary Drivers)**ってのが使えそうな雰囲気。 開いてみると、x86版とx64版のdllファイルが入ってます。 これ使えば行けるんじゃないかな、きっと。

APIのマニュアル(pdf)もあるので、端末持ってる方はぜひ試してみてください。


とまあ、とりあえず調べたのはこんな感じ。 結局TypeAだかBだか分からない手元のカードは読めませんでしたとさ。がっかり。

RFIDってのはすごい楽しいものだと思うのだけれど、どうにもまだ情報が少ないよね。 そもそも同じ事するのに規格が3つって何事やねん。めんどくさいやん。