マイコン工作実験日記

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

SIMカードを読んでみる -- マイコン接続編

2015-10-04 09:52:49 | Weblog
近頃のマイコンには、UARTの機能としてSmart card対応機能をもった機種がいくつもあります。そんな中から、今回は積み基板となっていたNucleo-F103RBを初めて使ってみました。

結論から先に書いてしまうと、つなぎ方は次のとおりです。

Nucleo-F103RBDirectionSIM Socket
PinFunctionPin
PB5GPIO Output-->C1 (Vcc)
PB9GPIO Output-->C2 (Reset)
PB10USART3 TX<--->C7 (I/O)
PB12USART3 CK-->C3 (Clock)
GNDGND---C5 (GND)


SIMソケットは8ピンですが、実際には5ピンを使うだけでつなぐことができます。USARTで使うのはTXとCKの2つの信号線だけです。TXの端子を送信/受信動作で切り替えて使う半2重でデータを送受します。C1端子は、SIMカードのVCCですが、今回はGPIOを使って電源のON/OFFをしています。SIMカードの電気的インターフェイスはISO/IEC 7816-3で定められていますが、その仕様ではVCC電圧は、カードのクラスに応じて5V, 3V, 1.8Vの3種類となっています。今回つかうNucleoは3.3V動作ですので、GPIOのHレベルもほぼ3.3Vとなり、その電圧がSIMカードに加わってしまう事になりますが、まぁ問題はないでしょう。

ISO/IEC7816ではC6端子は、Vpp (Programming Voltage)となっており、書き込み時の電圧を供給する端子となっていますが、一般的なSIMカードではVCC端子電圧を使っての書き込みが可能であり、Vpp端子は使う必要は無いようです。SIMカードの基本仕様となっているETSIのGSM 11.11では、GNDにはつなぐなと書かれています。使用したSIMソケットにはカード挿入を検出するための端子が用意されていますので、カード挿入を検出してからVccを加えるというような処理も可能ですが、今回の実験では同端子は使用していません。

実はSTM32F103の場合にはST社からもSIMカードのつなぎ方を説明したアプリケーション・ノート(AN2598)が出されています。このAPノートではST8024というドライバICを使ってSIMカードを使う例が示されていますが、電圧に問題がなければ直接つないでしまって構わないようです。同様にATMELのSAM3Sシリーズの場合にもSAM3S-EKを使用したアプリケーション・ノート(AT02410)が出ています。こちらの説明ではドライバICを使わずにマイコンを直結していますので、ドライバはなくても良さそうと判断した次第です。



このようにしてSIMカードのつなぎ方がわかったので、Nucleo-F103RBとSIMをブレッドボードをつかってジャンパで接続してみました。手頃な大きさのボードを持っていないので、無用にデカイです。




慣れ親しんだEclipse+Jlinkで開発している都合で、ST-Linkは使わずにJ-Linkで書き込み/デバックをしています。ST-Link部分は電源供給のためにのみ使用。次回の記事では、実際のSIMカードの読み取り結果について報告します。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。