(57)【特許請求の範囲】
【請求項１】
カード挿入口より挿入されたＩＣカードに対して、ＩＣ接点を介して情報の記録又は再生を行うＩＣカードリーダにおいて、
上位装置から受けたコマンドに基づき、前記上位装置と通信を行いながら前記ＩＣカードに対する処理を行うＣＰＵと、
該ＣＰＵと前記ＩＣカードとの間に配置されて、前記ＩＣカードとの通信を行う上で必要となるハードウェア制御を行なうインタフェースＩＣと、
接続された前記インタフェースＩＣを判別するインタフェースＩＣ判別手段と、
を備え、
接続されたインタフェースＩＣを判別するとともに、判別されたインタフェースＩＣに用いる制御信号の関数群を設定することを特徴とするＩＣカードリーダ。
【請求項２】
前記関数群が予め記憶され、前記ＩＣカードとの通信制御を行う通信制御部を備え、
前記ＣＰＵは、予め記憶された関数群の中から判別されたインタフェースＩＣに用いる関数群を設定することを特徴とする請求項１記載のＩＣカードリーダ。
【請求項３】
カード挿入口より挿入されたＩＣカードに対して、ＩＣ接点を介して情報の記録又は再生を行うＩＣカードリーダに用いられるインタフェースＩＣを判別するインタフェースＩＣ判別方法であって、
ＩＣカードリーダは、接続されたインタフェースＩＣを判別するとともに、判別されたインタフェースＩＣに用いる制御信号の関数群を設定することを特徴とするインタフェースＩＣ判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カード挿入口より挿入されたＩＣカードに対して、ＩＣ接点を介して情報の記録又は再生を行うＩＣカードリーダ及びインタフェースＩＣ判別方法に関する。
【背景技術】
【０００２】
従来、ＩＣカードリーダは、例えば、金融機関等で用いられる現金処理装置に組み込まれ、利用客により挿入されたＩＣカードに記憶された各種情報を再生し、そのＩＣカードリーダに上位装置として接続されている現金処理装置本体に再生した情報を送り、ここで各種処理が施され、また、装置本体からの情報をＩＣカードリーダにおいてＩＣカードに記録するようになっている。このように、金融機関などで使用され、キャッシュレスや個人認証などを実現するＩＣカードとして、プラスチック基板内部に集積回路チップ（ＩＣチップ）が埋没されると共に、表面にＩＣ端子が配置された接触式のＩＣカードがある。このようなＩＣカードは、例えば国際規格ＩＳＯ／ＩＥＣ７８１６−３準拠のカードであり、このＩＣカードに対する情報の記録又は再生は、ＩＣ接点を備えたＩＣカードリーダ（「ＩＣカードリーダライタ」も含む）によって行われ、このＩＣカードと通信を行うためのＩＣカードリーダが知られている（図７参照）。  
【０００３】
図７は、接触式のＩＣカード２１２と通信を行うＩＣカードリーダライタ２００の電気的構成を示すブロック図である。図７において、ＩＣカードリーダライタ２００は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、７８１６−３ＩＣＣＤｒｉｖｅｒ（以下、「インタフェースＩＣ」と言う）２０４と、ＵＳＢコネクタ２０５と、ＩＣ接点２０６と、から構成され、ＵＳＢ通信回線２１１を介してホストコンピュータ２１０と電気的に接続されている。ＣＰＵ２０１では、ＩＳＯ／ＩＥＣ７８１６−３に準拠したプロトコル解析が行われ、ホストコンピュータ２１０からのコマンドをＩＳＯ／ＩＥＣ７８１６−３で定義されたプロトコルに変換し、インタフェースＩＣ１０４では、電気特性の変換が行われ、ＩＣカード２１２と通信を行う。なお、ＩＳＯ／ＩＥＣ７８１６−３で定義されたプロトコルには、Ｔ＝０プロトコルやＴ＝１プロトコルなどが存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２５７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、電気特性の変換が行なわれるインタフェースＩＣは、製造メーカーごとにＣＰＵからのコマンドデータが異なるので、インタフェースＩＣを変更する場合に、製造メーカーの異なるインタフェースＩＣには互換性がなく、使用するインタフェースＩＣに応じた回路基板設計やファームウェア設計が必要となる。そのため、使用していたインタフェースＩＣが製造中止となり他社のインタフェースＩＣに変更する場合等、それぞれのインタフェースＩＣに応じた製品を再設計しなければならない。  
【０００６】
本発明は、このような点に鑑みてなされたものであり、その目的は、様々なインタフェースＩＣに対応可能なＩＣカードリーダ及びインタフェースＩＣ判別方法を提供することにある。
【課題を解決するための手段】
【０００７】
以上のような課題を解決するために、本発明は、以下のものを提供する。  
【０００８】
（１）  カード挿入口より挿入されたＩＣカードに対して、ＩＣ接点を介して情報の記録又は再生を行うＩＣカードリーダにおいて、上位装置から受けたコマンドに基づき、前記上位装置と通信を行いながら前記ＩＣカードに対する処理を行うＣＰＵと、該ＣＰＵと前記ＩＣカードとの間に配置されて、前記ＩＣカードとの通信を行う上で必要となるハードウェア制御を行なうインタフェースＩＣと、接続された前記インタフェースＩＣを判別するインタフェースＩＣ判別手段と、を備え、接続されたインタフェースＩＣを判別するとともに、判別されたインタフェースＩＣに用いる制御信号の関数群を設定することを特徴とするＩＣカードリーダ。  
【０００９】
本発明によれば、接続するインタフェースＩＣを変更しても、変更後のインタフェースＩＣをＣＰＵが判別し、判別されたインタフェースＩＣに用いる制御信号の関数群を設定することから、判別されたインタフェースＩＣに対応した関数群によってＩＣカードリーダの機能を容易に実現することができる。  
【００１０】
（２）  前記関数群が予め記憶され、前記ＩＣカードとの通信制御を行う通信制御部を備え、前記ＣＰＵは、予め記憶された関数群の中から判別されたインタフェースＩＣに用いる関数群を設定することを特徴とするＩＣカードリーダ。  
【００１１】
本発明によれば、通信制御部には関数群が予め記憶されており、ＣＰＵは、予め記憶された関数群の中から判別されたインタフェースＩＣに用いる関数群を設定することから、判別されたインタフェースＩＣに対応した関数群によってＩＣカードリーダの機能を容易に実現することができる。  
【００１２】
（３）  カード挿入口より挿入されたＩＣカードに対して、ＩＣ接点を介して情報の記録又は再生を行うＩＣカードリーダに用いられるインタフェースＩＣを判別するインタフェースＩＣ判別方法であって、ＩＣカードリーダは、接続されたインタフェースＩＣを判別するとともに、判別されたインタフェースＩＣに用いる制御信号の関数群を設定することを特徴とするインタフェースＩＣ判別方法。  
【００１３】
本発明によれば、ＩＣカードリーダは、接続されたインタフェースＩＣを判別するとともに、判別されたインタフェースＩＣに用いる制御信号の関数群を設定することができることから、どのインタフェースＩＣが接続されても、容易に接続されたインタフェースＩＣを判別することができる。さらに、判別されたインタフェースＩＣに対応した関数群によってＩＣカードリーダの機能を容易に実現することができる。
【発明の効果】
【００１４】
本発明に係るＩＣカードリーダは、接続するインタフェースＩＣを変更しても、変更後のインタフェースＩＣをＣＰＵが判別し、判別されたインタフェースＩＣに用いる制御信号の関数群を設定することから、判別されたインタフェースＩＣに対応した関数群によってＩＣカードリーダの機能を容易に実現することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第一実施の形態に係るＩＣカードリーダの電気的構成を示すブロック図である。
【図２】本発明の第二実施の形態に係るＩＣカードリーダに設けられたインタフェースＩＣとＩＣカードとの接続概念図である。
【図３】本発明の第一及び第二実施の形態に係るＩＣカードリーダのファームウェア構造を示す図である。
【図４】図３に示すＩＣカード通信制御部の関数群を示す図である。
【図５】本発明の第一及び第二実施の形態に係るＩＣカードリーダに用いるインタフェースＩＣ判別方法を示す判別フロー図である。
【図６】接触式のＩＣカードにおける各ＩＣ端子の配置と名称を示す図である。
【図７】従来のＩＣカードリーダの電気的構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。  
【００１７】
（全体構成）  図１は、本発明の第一実施の形態に係るＩＣカードリーダの電気的構成を示すブロック図である。第一実施の形態に係るＩＣカードリーダ１の特徴は、インタフェースＩＣ判別手段をハードウェアで構成したことであり、具体的には、インタフェースＩＣ判別回路としての選択スイッチ１６１と、インタフェースＩＣ判別部としてのＣＰＵ１０で構成している。  
【００１８】
図１に示すように、ＩＣカードリーダ１は、上位装置２に通信回線３を介して接続されている。ＩＣカードリーダ１は、ＩＣカード４が挿入されることにより、そのＩＣカード４を受入れて、ＩＣカード４上に配置された８つのＩＣ端子Ｃ１〜Ｃ８にＩＣ接点（以下、ＩＣ接点という）１５を接触させて情報の読出しや書込みなどを行なうようになっている。さらに、ＩＣカード４との通信の結果を上位装置２に送信するようになっている。  
【００１９】
また、上位装置２は、ＩＣカードリーダ１に対して制御、動作指示等に係るコマンドを送信する装置であって、例えば、金融取引端末やＩＤ認証端末などホストコンピュータなどである。  
【００２０】
ＩＣカードリーダ１の電気的構成は、ＩＣカードリーダ１全体を統合的に制御するＣＰＵ１０と、ＩＣカードリーダ１の動作プログラムや初期値、パラメータなどを格納するＲＯＭ１１と、ＣＰＵ１０のワーキングエリアとして機能するＲＡＭ１２と、ＩＣカードリーダ１に動作を指示する上位装置２から受信したコマンドに対してＩＳＯ／ＩＥＣ７８１６−３で定義された電気的特性の変換を行うインタフェースＩＣ１３と、上位装置２と通信回線３によって電気的に接続された上位装置インタフェース１４と、接触式ＩＣカード４上に配置されたＩＣ端子に当接させるＩＣ接点１５と、インタフェースＩＣ１３を判別するインタフェースＩＣ判別手段としての選択スイッチ１６１と、から構成されている。  
【００２１】
上位装置インタフェース１４は、上位装置２からＩＣカードリーダライタ１へ送られた信号を電圧レベル（例えばＴＴＬレベル）の信号に変換し、それをＣＰＵ１０に転送する機能を有する。また、ＣＰＵ１０からの信号を逆変換して、上位装置２へ転送する。なお、上位装置２とＩＣカードリーダライタ１の間の通信は、ＵＳＢやＲＳ２３２Ｃ等が一般的である。  
【００２２】
ＩＣ接点１５は、接触式のＩＣカード４上に配置された全８個（Ｃ１〜Ｃ８）のＩＣ端子と接触できるようになっている。具体的には、ＩＣ接点１５は、図１に示すように、ＩＣカード４の全８個のＩＣ端子と、一対一で対応するために８個の接点を有している。これら８個の接点には、インタフェースＩＣ１３とそれぞれ１本づつ信号線が接続されている。なお、各接点の機能については、図６に示すＩＣカードのＩＣ端子を使って説明する。  
【００２３】
図６は、接触式のＩＣカード４がＩＣカードリーダ１と実際に通信で使用する各ＩＣ端子の配置と名称を示す図である。  
【００２４】
ＩＣカード４上に配置されたＩＣ端子Ｃ１〜Ｃ８の全８個は、図６に示すとおり、ＩＳＯ／ＩＥＣ７８１６−３の規格に基づき配置されている。また、各ＩＣ端子Ｃ１〜Ｃ８の機能についても、規格でＣ１（ＶＣＣ；供給電圧）、Ｃ２（ＲＳＴ；リセット信号）、Ｃ３（ＣＬＫ；クロック信号）、Ｃ５（ＧＮＤ；接地）、Ｃ６（ＳＰＵ；プログラム等の可変供給電圧）、Ｃ７（Ｉ／Ｏ；データ入出力）とされている。なお、Ｃ４とＣ８はＩＳＯ／ＩＥＣ７８１６−３では使用されておらず、ＩＳＯ／ＩＥＣ７８１６の他のパートで使用されている(ＩＳＯ／ＩＥＣ７８１６−１０、ＩＳＯ／ＩＥＣ７８１６−１２)。  
【００２５】
より具体的には、ＶＣＣ端子Ｃ１は、ＩＣカード４に回路電圧ＶＣＣを供給するための電源供給端子である。ＲＳＴ端子Ｃ２は、リセット信号の供給端子である。このＲＳＴ端子Ｃ２に供給するリセット信号の論理レベルに応じて、ＩＣカード４をリセット状態または動作状態に制御できる。ＣＬＫ端子Ｃ３は、ＩＣカード４に内蔵されているＣＰＵ（図示せず）を動作させるためのクロック信号の供給端子である。このＣＬＫ端子Ｃ３から供給されたクロック信号は、ＩＣカード４内の分周回路で分周され、非同期通信を行なうためのビットクロックとしても利用される。ＧＮＤ端子Ｃ５は、グランド端子である。ＳＰＵ端子Ｃ６は、標準又は個別利用のため、入力及び／又は出力として使用する。Ｉ／Ｏ端子Ｃ７は、データ入出力用のものであり、ＩＣカード４とこのＩＣカード４を装着したＩＣカードリーダ１との間で、データ伝送を行なうために使用される。  
【００２６】
上述したように、２つの端子（Ｃ４とＣ８）は、ＩＳＯ／ＩＥＣ７８１６−３では、使用されない。本実施形態では、Ｃ４、Ｃ６、Ｃ８を除く５個のＩＣ端子でデータ転送を行うようにしている。すなわち、ＩＣカードリーダ１とＩＣカード
４との間では、５本の信号線（ＶＣＣ，ＲＳＴ，ＣＬＫ，Ｉ／Ｏ，ＧＮＤ）によって動作用電源電圧供給、ＧＮＤ接続、クロック信号供給、リセット信号供給、データ転送が行なわれる。  
【００２７】
インタフェースＩＣ１３は、上位装置２（ＣＰＵ１０）からのコマンドを、ＩＣカード４に応じた電圧や通信速度等に変換し、ＩＣカード４に送信する。また、ＩＣカード４から受信した信号を電圧レベル（例えばＴＴＬレベル）の信号に変換し、それをＣＰＵ１０に伝える機能を有する。ＩＣカードリーダ１とＩＣカード４間の通信は、電圧レベル（例えばＴＴＬレベル）等が一般的である。  
【００２８】
インタフェースＩＣ１３は、ＩＣカード４と通信を行う上で必要となるハードウェア制御（例えば電圧設定、過電流や電源低下の検知等）を行う。  
【００２９】
具体的には、インタフェースＩＣ１３には、ＩＣ接点１５に形成された各端子に対応するように端子が形成されており、インタフェースＩＣ１３は、ＩＣ接点１５を介してＩＳＯ７８１６−３の規格による制御方法にしたがってＩＣカード４を制御する。本実施形態では、インタフェースＩＣ１３は、インタフェースＩＣ１３ＡとインタフェースＩＣ１３Ｂのいずれか一方が取り付けられている。インタフェースＩＣ１３Ａは、Ａ社製のインタフェースＩＣであり、もう一方のインタフェースＩＣ１３Ｂは、Ｂ社製のインタフェースＩＣである。具体的には、図４に示すような関数群に基づいて制御、実行される。  
【００３０】
選択スイッチ１６１は、ＩＣカードリーダ１に設けられたインタフェースＩＣ１３を判別するインタフェースＩＣ判別手段として機能している。本実施形態では、選択スイッチ１６１及びインタフェースＩＣ判別部としてのＣＰＵ１０とから構成されている。すなわち、第一実施の形態では、インタフェースＩＣ判別手段として、選択スイッチ１６１の設定によるハードウェア的手法を用いている。  
【００３１】
選択スイッチ１６１は、ハードウェアで構成されたインタフェースＩＣ判別回路として機能し、選択スイッチ１６１の位置により、インタフェースＩＣ１３を予め固定的に選択している。選択スイッチ１６１は、図１に示すように、ＣＰＵ１０の端子に接続されている。ＣＰＵ１０は、選択スイッチ１６１からの信号を検出し、ＣＰＵ１０内のインタフェースＩＣ判別部に送信されて、選択スイッチ１６１の位置を検出する。本実施の形態では、選択スイッチ１６１は、Ａ社製のインタフェースＩＣ１３ＡとＢ社製のインタフェースＩＣ１３Ｂと判別するように切り替えている。すなわち、選択スイッチ１６１を"Ｈｉｇｈ"レベル又は"Ｌｏｗ"レベルに切り替えて、インタフェースＩＣ１３Ａを使用する場合は"Ｈｉｇｈ"レベル、インタフェースＩＣ１３Ｂを使用する場合"Ｌｏｗ"レベルの２つの位置に切り替わるようになっている。  
【００３２】
つぎに、本発明の第二実施の形態に係るＩＣカードリーダについて説明する。図２は、本発明の第二実施の形態に係るＩＣカードリーダに設けられたインタフェースＩＣとＩＣカードとの接続概念図である。  
【００３３】
第二実施の形態では、インタフェースＩＣ判別手段として、図１に示す選択スイッチ１６１の設定によるハードウェア的手法ではなく、Ｉ２Ｃバス通信仕様のインタフェースＩＣとの通信によるソフトウェア的手法を用いている。具体的には、第二実施の形態では、図２に示すように、インタフェースＩＣ１３'とＣＰＵ１０'との間に、Ｉ２Ｃバス通信用の２本の通信線ＳＤＡ１６２、ＳＣＬ１６３が接続されており、この２本の通信線ＳＤＡ１６２、ＳＣＬ１６３及びインタフェースＩＣ判別部としてのＣＰＵ１０'とから構成されている。なお、図２において、図１に示す構成と同じものには同じ符号を付している。  
【００３４】
ＩＣカードリーダ１'に設けられたインタフェースＩＣ１３'がＩ２Ｃバス仕様である場合、すなわち、図１に示すような選択スイッチ１６１（インタフェース判別回路としての）を備えていない場合、図２に示すように、ＣＰＵ１０'には、Ｉ２Ｃバス通信に用いる２本の通信線ＳＤＡ１６２、ＳＣＬ１６３用の２つの端子が設けられている。同様に、インタフェースＩＣ１３'には、２本の通信線ＳＤＡ１６２及びＳＣＬ１６３用の端子が設けられている。インタフェースＩＣ判別部としてのＣＰＵ１０'は、これらＳＤＡ１６２、ＳＣＬ１６３の通信線を介してアドレスを指定する。例えば、本実施の形態では、インタフェースＩＣ１３Ａ'がＩ２Ｃバス通信仕様のインタフェースＩＣと設定されており、インタフェースＩ１３Ａ'は、ＣＰＵ１０'との通信を可能にするためのアドレスが割り当てられている。例えば、アドレス"００００００１"が割り当てられており、このアドレスに、アドレス信号を送信し、接続されているインタフェースＩＣがインタフェースＩＣ１３Ａ'であれば、応答信号が送信されるようになっており、この応答信号を受信するかどうかで、インタフェースＩＣ１３Ａ'かインタフェースＩＣ１３Ｂ'かを判別する。  
【００３５】
ここで、Ｉ２Ｃバスとは、Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略であり、データ通信用バスである。本実施形態では、図２に示すように、ＩＣカードリーダ１'のＣＰＵ１０'とインタフェースＩＣ１３'とは、Ｉ２Ｃバスを介して接続され、シリアルインタフェースを通じて互いにシリアル通信を行う。具体的には、Ｉ２Ｃバスは、２本の信号線、ＳＤＡ（Ｓｅｒｉａｌ  Ｄａｔａ  Ｌｉｎｅ）１６２とＳＣＬ（Ｓｅｒｉａｌ  Ｃｌｏｃｋ  Ｌｉｎｅ）１６３の信号線で構成されている。このＩ２Ｃバスによって、ＣＰＵ１０'は、Ｉ２Ｃバス通信における予め定められたアドレスを宛先として制御信号を送信し、インタフェースＩＣ１３Ａ'は、状態情報や、固有情報などの情報をＣＰＵ１０'に送信する。  
【００３６】
（ファームウェアの階層構造）  図３は、本発明の実施形態に係るＩＣカードリーダ１（１'）のファームウェア構造を示す図である。  
【００３７】
上述したＩＣカードリーダ１（１'）の基本的な動作を制御するために組み込まれているファームウェアは、コマンド制御部１０１、ＩＳＯ７８１６・ＥＭＶ制御部１０２、接触式ＩＣカード通信制御部１０３、インタフェースＩＣ制御部１０４とそれぞれ独立して構成され、図３に示すような階層構造となっている。なお、コマンド制御部１０１、ＩＳＯ７８１６・ＥＭＶ制御部１０２、接触式ＩＣカード通信制御部１０３、インタフェースＩＣ制御部１０４は、ＩＣカードリーダ１（１'）内のＲＯＭ１２に格納され、ＣＰＵ１０（１０'）によって制御される。  
【００３８】
コマンド制御部１０１は、上位装置２から受けたＩＣカードリーダ１（１'）に対する各種コマンドを解析して、それら各種コマンドに従って各種処理（動作指示、制御、アプリケーションプログラム等）を実行する。また、受信したコマンドがＩＣカード４に対する処理を実行するコマンドであれば、ＩＳＯ７８１６・ＥＭＶ制御部１０２に送信する。  
【００３９】
ＩＳＯ７８１６・ＥＭＶ制御部１０２は、接触式のＩＣカード４に対する処理を実行するため、接触式のＩＣカード４との通信プロトコルに沿った形式（のデータ）に変換する。例えば、ＩＣカード４からの初期応答データ（Answer-to-Reset：ＡＴＲ）の解析を実行し、また、ＩＳＯ／ＩＥＣ７８１６−３，ＥＭＶ規格に沿ったアルゴリズム、例えばＴ＝０プロトコル通信やＴ＝１プロトコル通信のアルゴリズムを実行する。  
【００４０】
なお、ＩＳＯ７８１６規格とＥＭＶ規格（金融決済系規格の一種）は、若干、通信プロトコルの仕様が異なる。細部で異なる通信プロトコルの仕様であるが、本実施形態では、上述したＥＭＶ規格の通信プロトコルとＩＳＯ７８１６規格の通信プロトコルと、２つの通信プロトコルのプログラムコードすべてをメモリ（例えばＲＯＭ１１、Read Only Memory）に実装されており、実行可能となっている。  
【００４１】
ＩＣカード通信制御部１０３は、ＩＣカード４へのハードウェア制御を実行する。具体的には、本実施形態では、ＩＣカード４に対する活性化、非活性化を実行し、ＩＣカード４上に配置されているＩＣ端子Ｃ１〜Ｃ８上において設定された所定のＩＣ端子に供給電圧、クロック周波数の設定といった機能を実行する。  
【００４２】
第一及び第二実施の形態では、ＩＣカード通信制御部１０３は、インタフェースＩＣの種類に関係なく動作することができるように処理を抽象化させており、例えば、図４に示す関数群１０３ａによって諸機能を実行する。関数群１０３ａは、ＩＣカードリーダ１（１'）が実行する機能と関数名を対応させたものであり、Ａ社製のインタフェースＩＣ１３Ａ（１３Ａ'）とＢ社製のインタフェースＩＣ１３Ｂ（１３Ｂ'）とで共通して使用可能な関数群とどちらかを単独で使用可能な関数群とを有している。具体的には、図４において、インタフェースＩＣ１３Ａ（１３Ａ'）または１３Ｂ（１３Ｂ'）を使用して、各機能を実行する関数名には、○印が付記し、─線は使用していない関数名である。  
【００４３】
なお、本実施形態では、インタフェースＩＣ１３Ａ及びインタフェースＩＣ１３Ｂは、図１に示す選択スイッチ１６１の設定によるハードウェア的手法で判別可能となっている。一方、インタフェースＩＣ１３Ａ'及びインタフェースＩＣ１３Ｂ'は、Ｉ２Ｃバス通信仕様のインタフェースＩＣとの通信によるソフトウェア的手法で判別可能となっている。インタフェースＩＣ１３Ａ'はＩ２Ｃバス通信仕様のインタフェースＩＣであるが、インタフェースＩＣ１３Ｂ'はＩ２Ｃバス通信仕様ではないインタフェースＩＣである。  
【００４４】
インタフェースＩＣ制御部１０４は、ＩＣカードリーダ１（１'）内に配置されたインタフェースＩＣ毎に関数群１０３ａを設定し、インタフェースＩＣの種類に応じた制御を実行する。本実施形態では、図４に示すように、Ａ社製のインタフェースＩＣ１３Ａ（Ａ'）に用いる関数群と、Ｂ社製のインタフェースＩＣ１３Ｂ（Ｂ'）に用いる関数群とに設定される。すなわち、ＩＣカードリーダ１（１'）にＡ社製のインタフェースＩＣ１３Ａ（Ａ'）が接続されている場合には、図４に示すＡ社製のインタフェースＩＣ１３Ａ（Ａ'）に用いる関数群が設定されたインタフェースＩＣ制御部１０４ａが選択される（有効となる）。一方、Ｂ社製のインタフェースＩＣ１３Ｂ（Ｂ'）が接続されている場合には、図４に示すＢ社製のインタフェースＩＣ１３Ｂ（Ｂ'）に用いる関数群が設定されたインタフェースＩＣ制御部１０４ｂが選択される（有効となる）。  
【００４５】
（本実施形態の動作）  図５は、本発明の実施の形態に係るＩＣカードリーダ１（１'）に用いるインタフェースＩＣ判別方法を示す判別フロー図である。  
【００４６】
（インタフェースＩＣ判別方法について）  ＩＣカードリーダ１（１'）は、上位装置２に組み込まれた際、初期設定動作を開始する。このとき、ＩＣカードリーダ1（１'）内部では、設置されたインタフェースＩＣが図４に示す関数群１０３ａのＡ社製のインタフェースＩＣ１３Ａ（１３Ａ'）であるか、Ｂ社製のインタフェースＩＣ１３Ｂ（１３Ｂ'）であるかを判別する。  
【００４７】
まず、ステップＳ１からステップＳ４までは、図１、２に示すＩＣカードリーダ１（１'）内に設けられたＣＰＵ１０（１０'）がハードウェアでインタフェースＩＣを判別する。すなわち、ＣＰＵ１０（１０'）がＩＣカードリーダ１（１'）内に選択スイッチ１６１を検出することで、図１に示す選択スイッチ１６１が接続されているかどうかを確認する。確認できた場合、選択スイッチ１６１により、インタフェースＩＣ１３ＡまたはインタフェースＩＣ１３Ｂを判別している。具体的には、つぎのとおりである。  
【００４８】
ステップＳ１：  ＩＣカードリーダ１が立ち上がると、まず、ＣＰＵ１０は、インタフェースＩＣの判別を実行する。具体的には、ハードウェアのインタフェースＩＣ判別回路上で予めイ
ンタフェースＩＣ１３ＡとインタフェースＩＣ１３Ｂの区別がつくようにインタフェースＩＣ判別回路を有するか否かを判断する（ステップＳ１）。本実施形態では、インタフェースＩＣ判別回路としての、図１に示すような選択スイッチ１６１がＣＰＵ１０（１０'）に接続されているかどうかを判断する。  
【００４９】
ステップＳ２：ステップＳ１でＣＰＵ１０が選択スイッチ１６１を接続していると判別すれば、選択スイッチ１６１が設定されている位置のチェックを行う（ステップＳ２）。具体的には、インタフェースＩＣ判別部としてのＣＰＵ１０に接続された選択スイッチ１６１を"Ｈｉｇｈ"レベルまたは"Ｌｏｗ"レベルに設定されているかどうかを確認する。第一実施の形態では、選択スイッチ１６１が設定されている位置が"Ｈｉｇｈ"レベルを示す位置であるか、"Ｌｏｗ"レベルを示す位置であるかを読み取る。  
【００５０】
ステップＳ３：  選択スイッチ１６１が"Ｈｉｇｈ"レベルを示す位置であればＡ社製のインタフェースＩＣ１３Ａが接続されていると判別する（ステップＳ３）。  
【００５１】
ステップＳ４：  ステップＳ２において、選択スイッチ１６１が"Ｌｏｗ"レベルを示す位置であればＢ社製のインタフェースＩＣ１３Ｂが接続されていると判別する（ステップＳ４）。  
【００５２】
一方、ステップＳ１において、インタフェースＩＣ判別回路としての選択スイッチ１６１がＣＰＵ１０に設けられていない場合には、ステップＳ５からステップＳ８に示すように、Ｉ２Ｃバス通信を利用してインタフェースＩＣの判別を行う。第二実施形態では、インタフェースＩＣ１３Ａ'がＡ社製のインタフェースＩＣであってＩ２Ｃバス通信仕様のインタフェースＩＣであるが、インタフェースＩＣ１３Ｂ'がＢ社製のインタフェースＩＣであってＩ２Ｃバス通信仕様でないインタフェースＩＣである場合である。  
【００５３】
ステップＳ５：  ステップＳ１で、ＣＰＵ１０に選択スイッチ１６１を接続していない場合に、ＣＰＵ１０'（１０）は、インタフェースＩＣ１３Ａ'のアドレスを指定してＩ２Ｃバス通信を行う（ステップＳ５）。  具体的には、ＣＰＵのＩ２Ｃバス通信用の２本の通信線ＳＤＡ１６２、ＳＣＬ１６３からアドレスを指定する。例えば、アドレス"００００００１"にインタフェースアドレス信号を送信する。  
【００５４】
ステップＳ６：ＣＰＵ１０は、Ｉ２Ｃバス通信の通信線ＳＤＡ１６２、ＳＣＬ１６３からアドレス"００００００１"を指定し、インタフェースアドレス信号を送信し、接続されているインタフェースＩＣ１３Ａ'から応答信号を受信した場合には、Ｉ２Ｃバス通信が正常終了したと判断する（ステップＳ６）。  
【００５５】
ステップＳ７：応答信号を受信した場合はインタフェースＩＣ１３Ａ'が接続されていると判別し（ステップＳ７）、すなわち、接続されているインタフェースＩＣ１３Ａ'がＩ２Ｃバス通信仕様で制御するインタフェースＩＣであると判別する。  
【００５６】
ステップＳ８：一方、インタフェースＩＣ１３Ｂ'が設置されている場合には、インタフェースＩＣ１３Ｂ'からの返答がなく、Ｉ２Ｃバス通信が正常終了していないと判別すれば（ステップＳ６）、Ｉ２Ｃバス通信仕様でないインタフェースＩＣ１３Ｂ'が接続されていると判別する（ステップＳ８）。  
【００５７】
上述したインタフェースＩＣ判別方法で判別されたインタフェースＩＣについて、接触式ＩＣカード通信制御部１０３で設定される。すなわち、図４に示す関数群１０３ａは、ＩＣカードリーダ１が実行する機能と関数名を対応させて、ＩＣカード４へのハードウェア制御（例えば電圧設定、過電流や電源低下の検知等）を実行する。  
【００５８】
このように構成されたＩＣカードリーダライタ１（１'）は、上位装置インタフェース１４を介して上位装置２と電気的に接続されているとともに、インタフェースＩＣ１３Ａ、１３Ｂ（１３Ａ'、１３Ｂ'）及びＩＣ接点１５を介してＩＣカード４と通信可能となるように構成されている。ＩＣカードリーダライタ１（１'）は、上位装置２との間の通信規約に沿ったコマンドに基づき動作するとともに、ＩＣカード４との間の通信規約に沿った形式（のデータ）で送受信を行う機能を有する。  
【００５９】
上述したように、ＩＣカードリーダ１（１'）は、設けられたインタフェースＩＣを判別した後、通常の動作モードに変換される。  この通常の動作モードでは、図３に示すファームウェアの階層構造にしたがってＩＣカードリーダ１（１'）とＩＣカード４と通信を行う。具体的には、ＩＣカードリーダ１（１'）において、ＣＰＵ１０（１０'）内のコマンド制御部１０１に、上位装置２との間の通信規約（例えばＵＳＢ）に沿ったコマンドが送信される。送信されたコマンドがＩＣカード４との通信に関するものであれば、送付されたコマンドはＩＳＯ７８１６・ＥＭＶ制御部１０２に送信される。ＩＳＯ７８１６・ＥＭＶ制御部１０２では、送付されたコマンドをＩＣカード４との間の通信規約に沿った形式（のデータ）に変換し、変換したデータをＩＣカード通信制御部１０３に送信する。ＩＣカード制御部１０３では、上述した判別方法で設定されたインタフェースＩＣ１３に用いる関数群１０３ａが予め設定されているので、設定された関数群１０３ａ、例えば、インタフェースＩＣ１３Ａが接続されているとすると、インタフェースＩＣ１３Ａに対応する関数群にしたがって、変換したデータの機能（図４に示す関数群１０３ａの右欄のいずかの機能）に対応する関数名を設定する。ＩＣカード通信制御部１０３は、設定した関数をインタフェースＩＣとの通信に使用する。  
【００６０】
このようにして、ＣＰＵ１０（１０'）は、上位装置２からのコマンドを、ＩＣカード４との通信プロトコルに沿った形式（のデータ）に変換し、変換された形式（のデータ）は、インタフェースＩＣ１３やＩＣ接点１５を通じてＩＣカード４に送信される。同様にして、ＩＣカード４からのレスポンス受信時には、ＣＰＵ１０（１０'）は、ＩＣカード４との通信プロトコルに沿った形式（のデータ）をレスポンス（データ）に変換する。変換されたレスポンス（データ）は、上位装置インタフェース１４を通じて上位装置２に転送される。  
【００６１】
（本実施形態の主な効果）  本実施形態に示すＩＣカードリーダ１（１'）によれば、接続するインタフェースＩＣ１３Ａ（Ａ'）または１３Ｂ（Ｂ'）を変更しても、変更後のインタフェースＩＣ１３Ａ（Ａ'）または１３Ｂ（Ｂ'）を、インタフェースＩＣ判別部としてのＣＰＵ１０（１０'）が判別し、判別されたインタフェースＩＣ１３Ａ（Ａ'）または１３Ｂ（Ｂ'）に用いる制御信号の関数群１０３ａを設定することから、判別されたインタフェース１３Ａ（Ａ'）または１３Ｂ（Ｂ'）に対応した関数群１０３ａによってＩＣカードリーダ１（１'）の機能を容易に実現することができる。  
【００６２】
また、ＩＣカードリーダ１（１'）によれば、インタフェースＩＣ判別手段としての選択スイッチ１６１の設定によるハードウェア的手法、又はＩ２Ｃバス通信仕様のインタフェースＩＣとの通信によるソフトウェア的手法によって、接続されたインタフェースＩＣ１３Ａ（Ａ'）または１３Ｂ（Ｂ'）を判別することができる。このため、どのインタフェースＩＣ１３Ａ（Ａ'）または１３Ｂ（Ｂ'）が接続されても、容易に接続されたインタフェースＩＣを判別することができる。  
【００６３】
また、ＩＣカードリーダ１によれば、ＩＣカード通信制御部１０３には図４に示すような関数群１０３ａが予め記憶されており、ＣＰＵ１０（１０'）は、予め記憶された関数群１０３ａの中から判別されたインタフェースＩＣ１３Ａ（Ａ'）または１３Ｂ（Ｂ'）に用いる関数群１０３ａを設定することから、判別されたインタフェースＩＣ１３Ａ（Ａ'）または１３Ｂ（Ｂ'）に対応した関数群１０３ａによってＩＣカードリーダ１の機能を容易に実現することができる。  
【００６４】
また、ハードウェアも複数のインタフェースＩＣに応じた設計としておくことで、回路基板を変更することなく複数のインタフェースＩＣの種類を区別することができる。  
【００６５】
以上、本実施形態においては、コマンド制御部１０１、ＩＳＯ７８１６・ＥＭＶ制御部１０２、接触ＩＣカード通信制御部１０３、インタフェースＩＣ制御部１０４からなるＩＣカードリーダ１において、インタフェースＩＣを変更してもインタフェースＩＣ制御部１０４を変更すればよく、コマンド制御部１０１やＩＳＯ７８１６・ＥＭＶ制御部１０２に影響を与えないことから、インタフェースＩＣの変更に対する影響が限定的となり、開発期間の短縮となる。  
【００６６】
また、インタフェースＩＣの種類を判別することにより、搭載するインタフェースＩＣを変更しても共通のファームウェアとすることができることから、製品変更が不要になる。  
【００６７】
（他の実施形態）  上述した形態は、本発明の好適な形態の一例ではあるが、これに限定されるものではなく本発明の要旨を変更しない範囲において種々変形実施が可能である。  
【００６８】
例えば、上述した実施形態では、インタフェースＩＣ判別回路として選択スイッチ１６１を用いたが、これに限定されるものではない。  
【００６９】
また、インタフェースＩＣ制御部１０４を２つとしたが、本発明では３つ又はそれ以上に対応することが可能である。例えば、本実施形態では、切替スイッチＳＷ１を使用して判別したが、切替スイッチＳＷ１に、同様に、切替スイッチＳＷ２を追加し、切替スイッチＳＷ１，ＳＷ２を"Ｈｉｇｈ"レベル又は"Ｌｏｗ"レベルに設定することによって判別をする場合には、"Ｈｉｇｈ−Ｈｉｇｈ"，"Ｈｉｇｈ−Ｌｏｗ"，"Ｌｏｗ−Ｈｉｇｈ"，"Ｌｏｗ−Ｌｏｗ"の４つのレベルの組み合わせをとることができるため、最大４つのインタフェースＩＣの種類を区別することができる。  
【００７０】
また、本実施形態では、インタフェースＩＣ１３Ａ'がＩ２Ｃバス通信仕様のインタフェースＩＣであり、インタフェースＩＣ１３Ｂ'がＩ２Ｃバス通信仕様でないインタフェースＩＣとしたが、これに限定されるものではない。  
【００７１】
例えば、インタフェースＩＣ１３Ａ'及び１３Ｂ'の両者をＩ２Ｃバス通信仕様のインタフェースＩＣに対応することが可能である。この場合において、ステップＳ５にてインタフェースＩＣ１３Ａ'のアドレスを指定してＩ２Ｃバス通信を行い、インタフェースＩＣ１３Ａ'から応答信号を受信するかどうかで、インタフェースＩＣ１３Ａ'またはインタフェースＩＣ１３Ｂ'を判別することができる。また、インタフェースＩＣ１３Ｂ'のアドレスを指定してＩ２Ｃバス通信を行い、インタフェースＩＣ１３Ｂ'から応答信号を受信するかどうかで判別するようにしてもよい。
【産業上の利用可能性】
【００７２】
本発明に係るＩＣカードリーダ及びインタフェースＩＣ判別方法は、既存のモジュールに影響を与えずに容易にインタフェースＩＣを変更することができ、変更後のインタフェースＩＣに適応した制御を行い得るものとして有用である。
【符号の説明】
【００７３】
１、１'  ＩＣカードリーダ      ２  上位装置      ３  通信回線  ４  ＩＣカード      １０、１０'  ＣＰＵ      １１  ＲＯＭ  １２  ＲＡＭ  １３Ａ、１３Ｂ、１３Ａ'、１３Ｂ'  インタフェースＩＣ  １４  上位装置インタフェース      １５  ＩＣカード接点（ＩＣ接点）  １６１  選択スイッチ      １６２  Ｉ２Ｃバス通信用ＳＤＡ  １６３  Ｉ２Ｃバス通信用ＳＣＬ
【図１】
0005884106.tif 000002
【図２】
0005884106.tif 000003
【図３】
0005884106.tif 000004
【図４】
0005884106.tif 000005
【図５】
0005884106.tif 000006
【図６】
0005884106.tif 000007
【図７】
0005884106.tif 000008