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つって何事やねん。めんどくさいやん。