TRF7970をいじり始めましたが、こちらはちゃんとNFCについて勉強しないと使いこなすことができないようです。いちおう、サンプルのプログラムが用意されているので、それを改造してまずはカード検出ができることを確認してみることにしました。RF430CL330Hは ISO14443 Type Bのタグとしてしか機能しませんが、TRF7970では Type A, Type B, Type Cのカードを扱うことができるようになっています。RF430CL330Hを相手として扱えるようにしたいので、まずは Type Bの検出を試してみることにします。運転免許証が Type BのNFCだということなので、カミさんの免許証で実験してみました。
![](https://blogimg.goo.ne.jp/user_image/07/5f/79061901fd4ff25d41b76a7c36298d6b.jpg)
実際にやっていることはとっても単純で、ISO1443で定められている REQBというコマンドを繰り返し送信してやります。REQBとは
![](https://blogimg.goo.ne.jp/user_image/09/81/d94b2f7bc9bf0c5eaf172191ed7ec50c.png)
50で始まる12バイトが ATQB応答データです。ほんとはATQBは全部で14バイトなのですが、最後についているCRCはマイコンでは受信しない設定にしているので、表示していません。カンマのあとに表示されている1バイトの数値は、RSSIです。
というわけで、カードをかざせば、ちゃんとATQB応答を拾えることが確認できました。実際にカードのデータを読み取ろうと思うと、このあとはカードのアプリケーションに応じて必要な読み取り手順を踏まねばなりません。IC免許証のデータフォーマットは公開されているようなので、すこし勉強すれば内容の読み取りもできそうです。
![](https://blogimg.goo.ne.jp/user_image/07/5f/79061901fd4ff25d41b76a7c36298d6b.jpg)
実際にやっていることはとっても単純で、ISO1443で定められている REQBというコマンドを繰り返し送信してやります。REQBとは
Request Command, Type Bの意味だそうで、Type Bのカードはこのコマンドを検出すると応答として ATQB (Answer to Request of Type B)を返してくれます。リーダの上に、何度か免許証をかざしてみると、次のようなログが採れました。
![](https://blogimg.goo.ne.jp/user_image/09/81/d94b2f7bc9bf0c5eaf172191ed7ec50c.png)
50で始まる12バイトが ATQB応答データです。ほんとはATQBは全部で14バイトなのですが、最後についているCRCはマイコンでは受信しない設定にしているので、表示していません。カンマのあとに表示されている1バイトの数値は、RSSIです。
というわけで、カードをかざせば、ちゃんとATQB応答を拾えることが確認できました。実際にカードのデータを読み取ろうと思うと、このあとはカードのアプリケーションに応じて必要な読み取り手順を踏まねばなりません。IC免許証のデータフォーマットは公開されているようなので、すこし勉強すれば内容の読み取りもできそうです。