マイコン工作実験日記

Microcontroller を用いての工作、実験記録

カード検出してみる

2014-03-19 22:27:32 | Weblog
TRF7970をいじり始めましたが、こちらはちゃんとNFCについて勉強しないと使いこなすことができないようです。いちおう、サンプルのプログラムが用意されているので、それを改造してまずはカード検出ができることを確認してみることにしました。RF430CL330Hは ISO14443 Type Bのタグとしてしか機能しませんが、TRF7970では Type A, Type B, Type Cのカードを扱うことができるようになっています。RF430CL330Hを相手として扱えるようにしたいので、まずは Type Bの検出を試してみることにします。運転免許証が Type BのNFCだということなので、カミさんの免許証で実験してみました。



実際にやっていることはとっても単純で、ISO1443で定められている REQBというコマンドを繰り返し送信してやります。REQBとはRequest Command, Type Bの意味だそうで、Type Bのカードはこのコマンドを検出すると応答として ATQB (Answer to Request of Type B)を返してくれます。リーダの上に、何度か免許証をかざしてみると、次のようなログが採れました。



50で始まる12バイトが ATQB応答データです。ほんとはATQBは全部で14バイトなのですが、最後についているCRCはマイコンでは受信しない設定にしているので、表示していません。カンマのあとに表示されている1バイトの数値は、RSSIです。

というわけで、カードをかざせば、ちゃんとATQB応答を拾えることが確認できました。実際にカードのデータを読み取ろうと思うと、このあとはカードのアプリケーションに応じて必要な読み取り手順を踏まねばなりません。IC免許証のデータフォーマットは公開されているようなので、すこし勉強すれば内容の読み取りもできそうです。