前回までの記事ではSIMカードの中を覗いて、いろいろな番号が記録されていることを知ることができました。SIMカードの仕様は低位レベルはISO 7816に準拠しているわけですが、我々の身近には、他にも代表的な応用例があります。それが、キャッシュカードやクレジットカードです。ちょうど先月いっぱいで有効期限の切れたカードがあったので、こいつをマイコンにつないでみましょう。
![](https://blogimg.goo.ne.jp/user_image/68/0e/4107b8d4b09835995a7bea6fdf9a0ecd.jpg)
どうせハサミを入れて処分する予定だったカードです。チップ部分だけ切り取りました。これまで実験に使っていたSIMカードと並べてみると端子形状が同じでした。DNP製なのかな。ちゃんと標準SIMサイズに切り取ればSIMソケットに入ったかもしれません。
![](https://blogimg.goo.ne.jp/user_image/4c/9a/4da4c6e5ed7f85ab1a3c5926646f0c5c.jpg)
SIMの時と同じように変換基板を用意。なんか、チップをワイヤ・ボンディングしているみたい。
![](https://blogimg.goo.ne.jp/user_image/35/db/fd57aadde7d2061f63ee5c12b1fa333b.png)
Nucleo-F103RBとのつなぎ方は、SIMカードのつなぎ方と全く同じです。あらかじめNucleo側の基板にはピンソケットを用意しておいたので、SIMソケットと載せ替えるだけです。
![](https://blogimg.goo.ne.jp/user_image/1d/3a/d5fef70682e1d958dd44d8bf00d65f08.jpg)
リセットをかけて、カードからのATR応答を読み出してみました。
![](https://blogimg.goo.ne.jp/user_image/59/a2/75393ba19d97c13d01addc2e4a0944ed.png)
9バイトの応答がありました。こいつをATR parsingにかけてみると...
![](https://blogimg.goo.ne.jp/user_image/5e/4c/d6960a4af1d4f50e1b9de224b8367c64.png)
ちゃんとデーコードできたので、応答が正しく受信できていることがわかります。TDの結果をみるとプロトコルがT1となっています。ISO 7816ではT0とT1の2種類のプロトコルが定義されており、SIMカードではT0プロトコルが使われていました。今回の実験のベースとしてつかっているSTのサンプルもT0プロトコルをサポートしているのですが、残念ながらT1には対応していません。したがって、T1プロトコルをサポートするドライバを書き足してやらないと、この先のファイルアクセスはできません。
と、いうわけで、今回の実験はここまで。T1プロトコルをサポートするドライバを用意しても、クレジットカードのファイル構造やアクセスの仕方などを勉強しないといけないので、簡単にカード内容を確認できそうにはありません。
![](https://blogimg.goo.ne.jp/user_image/68/0e/4107b8d4b09835995a7bea6fdf9a0ecd.jpg)
どうせハサミを入れて処分する予定だったカードです。チップ部分だけ切り取りました。これまで実験に使っていたSIMカードと並べてみると端子形状が同じでした。DNP製なのかな。ちゃんと標準SIMサイズに切り取ればSIMソケットに入ったかもしれません。
![](https://blogimg.goo.ne.jp/user_image/4c/9a/4da4c6e5ed7f85ab1a3c5926646f0c5c.jpg)
SIMの時と同じように変換基板を用意。なんか、チップをワイヤ・ボンディングしているみたい。
![](https://blogimg.goo.ne.jp/user_image/35/db/fd57aadde7d2061f63ee5c12b1fa333b.png)
Nucleo-F103RBとのつなぎ方は、SIMカードのつなぎ方と全く同じです。あらかじめNucleo側の基板にはピンソケットを用意しておいたので、SIMソケットと載せ替えるだけです。
![](https://blogimg.goo.ne.jp/user_image/1d/3a/d5fef70682e1d958dd44d8bf00d65f08.jpg)
リセットをかけて、カードからのATR応答を読み出してみました。
![](https://blogimg.goo.ne.jp/user_image/59/a2/75393ba19d97c13d01addc2e4a0944ed.png)
9バイトの応答がありました。こいつをATR parsingにかけてみると...
![](https://blogimg.goo.ne.jp/user_image/5e/4c/d6960a4af1d4f50e1b9de224b8367c64.png)
ちゃんとデーコードできたので、応答が正しく受信できていることがわかります。TDの結果をみるとプロトコルがT1となっています。ISO 7816ではT0とT1の2種類のプロトコルが定義されており、SIMカードではT0プロトコルが使われていました。今回の実験のベースとしてつかっているSTのサンプルもT0プロトコルをサポートしているのですが、残念ながらT1には対応していません。したがって、T1プロトコルをサポートするドライバを書き足してやらないと、この先のファイルアクセスはできません。
と、いうわけで、今回の実験はここまで。T1プロトコルをサポートするドライバを用意しても、クレジットカードのファイル構造やアクセスの仕方などを勉強しないといけないので、簡単にカード内容を確認できそうにはありません。