(57)【要約】【課題】ＩＣカードとの通信状況を的確に把握できるようにする。【解決手段】送信部２７からＩＣカード１に送信されるデータを受信部２８で受信するようにデータ信号線を配線する。制御部２２は、受信部２８で受信したデータが送信部２７から送信された自己の送信データであるか否かを判断する。そして、自己の送信データでないと判断した場合にはガードタイマ３２を起動させて、受信ガード時間を確保する。これに対し、自己の送信データであると判断した場合にはガードタイマ３２を起動させない。これにより、ＩＣカード１からデータ送信エラー時に発生するデータ再送要求信号を受信できるようにする。【選択図】      図１
2006221260.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードとの接続部と、この接続部に接続されたＩＣカードに対してデータを送信する送信部と、前記ＩＣカードからデータを受信する受信部と、通信ガード時間を計時するガードタイマと、前記受信部を介してデータを受信したことに応じて前記ガードタイマを起動させ、このガードタイマがタイムアウトするまで次なるデータ通信を行わないように制御する制御部とを有し、前記ＩＣカードとの間で半二重通信方式によりデータの送受信を行うＩＣカード通信装置において、
前記送信部から前記ＩＣカードに送信されるデータを前記受信部で受信するようにデータ信号線を配線し、
前記制御部は、前記受信部で受信したデータが前記送信部から送信された自己の送信データであるか否かを判断するデータ判断手段と、このデータ判断手段により自己の送信データでないと判断した場合には前記ガードタイマを起動させ、自己の送信データであると判断した場合には前記ガードタイマを起動させないガードタイマ制御手段とを具備したことを特徴とするＩＣカード通信装置。
【請求項２】
前記受信部で受信した自己の送信データを記憶する自己送信データ記憶部を有し、
前記制御部は、前記ＩＣカードから送信データの再送要求を受信すると、前記自己送信データ記憶部に記憶されている送信データを解析してデータ異常の有無を判別する異常判別手段と、この異常判別手段による判別結果を出力する結果出力手段とをさらに具備したことを特徴とする請求項１記載のＩＣカード通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードと半二重通信方式によりデータの送受信を行うＩＣカード通信装置に関する。
【背景技術】
【０００２】
一般に、ＩＣカードとＩＣカードリーダライタ等のＩＣカード通信装置との間のプロトコルとしては、国際標準プロトコルにおいてＴ＝１と呼ばれる半二重同期ブロック伝送プロトコルと、Ｔ＝０と呼ばれる半二重キャラクタ伝送プロトコルとがある。そして、いずれのプロトコルであってもＩＣカードとデータの送受信を行うことができるＩＣカード通信装置は、既に知られている（例えば、特許文献１参照）。
【０００３】
また、ＩＣカードとＩＣカード通信装置との間のデータ通信には、半二重通信方式が利用されている。半二重とは、二つの通信機器（この場合にはＩＣカードとＩＣカード通信装置）の間でデータの伝送を交互に行い、双方向の伝送を可能にする通信方式である。すなわち、一方がデータを送信するときは他方はデータを受信することとなり、双方が同時にデータを送信することはできない。そこで、データの受信または送信開始からの経過時間を計時し、その経過時間が一定時間を経過してからでないと次のデータを送受信しないガードタイム機能が必要となる。
【０００４】
ここで、ＩＣカード通信装置からＩＣカードに半二重同期ブロック伝送プロトコルにてデータを送信する場合を考える。このプロトコルの場合、送信データにはパリティビットが付与される。これによりＩＣカード側では、受信したデータのパリティチェックを行い、エラーが生じていた場合には、データの再送要求信号をＩＣカード通信装置に送信する。この再送要求信号は、半二重キャラクタ伝送プロトコルにて送信される。この再送要求信号を受信すると、ＩＣカード通信装置は、同一のデータを再送する（例えば、特許文献２参照）。
【特許文献１】特開２００４−２５２４９９号公報
【特許文献２】特開２００２−４２０８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のこの種のＩＣカード通信装置においては、半二重同期ブロック伝送プロトコルに従いＩＣカードにデータを送信したが、該ＩＣカードからデータの再送要求信号を受信した場合には、直前のデータ送信に失敗したことを認識することはできるものの、その原因がデータそのものにあるのか、あるいはデータの伝送経路にあるのかというように、ＩＣカードとの通信状況を的確に把握することは困難であった。
【０００６】
本発明はこのような事情に基づいてなされたもので、その目的とするところは、ＩＣカードとの通信状況を的確に把握することができるＩＣカード通信装置を提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明のＩＣカード通信装置は、ＩＣカードとの接続部と、この接続部に接続されたＩＣカードに対してデータを送信する送信部と、ＩＣカードからデータを受信する受信部と、通信ガード時間を計時するガードタイマと、受信部を介してデータを受信したことに応じてガードタイマを起動させ、このガードタイマがタイムアウトするまで次なるデータ通信を行わないように制御する制御部とを有し、ＩＣカードとの間で半二重通信方式によりデータの送受信を行うものにおいて、送信部からＩＣカードに送信されるデータを受信部で受信するようにデータ信号線を配線する。そして制御部は、受信部で受信したデータが送信部から送信された自己の送信データであるか否かを判断するデータ判断手段と、このデータ判断手段により自己の送信データでないと判断した場合にはガードタイマを起動させ、自己の送信データであると判断した場合にはガードタイマを起動させないガードタイマ制御手段とを備えたものである。
【発明の効果】
【０００８】
かかる手段を講じた本発明によれば、自己の送信データを受信できるとともにこの送信データに対するＩＣカードからの再送要求信号も受信でき、データ送信エラー時には自己の送信データを解析しその原因を分析することでＩＣカードとの通信状況を正確に把握することを可能にしたＩＣカード通信装置を提供できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施するための最良の形態について、図面を用いて説明する。  
なお、この実施の形態は、コンピュータ等のホスト装置と接続され、このホスト装置からの命令に基づき動作して、接続されたＩＣカードとの間でデータの送受信を行うＩＣカードリーダライタに本発明を適用した場合である。
【００１０】
図１は本実施の形態の要部構成を示すブロック図であり、図中、符号１はＩＣカードを示し、２はＩＣカードリーダライタを示している。
【００１１】
ＩＣカード１は、ＣＰＵ，ＲＯＭ，ＲＡＭ等が組み込まれたＩＣモジュール１１と、このＩＣモジュール１１に接続された端子部１２とが、カード表面に設けられた接触タイプのものである。端子部１２には、ポート（ＰＯＲＴ），クロック（ＣＬＯＣＫ），リセット（ＲＥＳＥＴ）．電源（ＶＤＤ）及びグランド（ＧＮＤ）の各接点端子が配設されている。
【００１２】
ＩＣカードリーダライタ２には、ＩＣカード１における端子部１２の各接点端子に対応する接点端子を有するＩＣカード接続部２１と、主制御部を構成するＣＰＵ２２と、プログラム等が格納されたＲＯＭ２３と、各種データを書換え自在に記憶するＲＡＭ２４と、前記ホスト装置が接続される通信インターフェイス２５と、ＣＰＵ２２等を駆動するための電源２６が備えられている。
【００１３】
また、ＩＣカード接続部２１に接続されたＩＣカード１に対し、ＣＰＵ２２から与えられたデータを送信する送信部２７と、ＩＣカード接続部２１に接続されたＩＣカード１からデータを受信してＣＰＵ２２に供給する受信部２８とが、ＩＣカードリーダライタ２に備えている。ＲＯＭ２３，ＲＡＭ２４，通信インターフェイス２５，送信部２７及び受信部２８は、ＣＰＵ２２とバスラインで接続されている。
【００１４】
送信部２７の出力端子は、ゲート素子２９の負論理ゲート端子に接続されている。ゲート素子２９の入力端子はグランドレベルに接地されており、出力端子はＩＣカード接続部２１のポート（ＰＯＲＴ）端子に接続されている。ゲート素子２９の出力端子とＩＣカード接続部２１のポート（ＰＯＲＴ）端子とを結ぶ信号線には、プルアップ抵抗３０を介して電源２６が接続されるとともに、前記受信部２８の入力端子が接続されている。したがって、ＩＣカードリーダライタ２は、送信部２７からＩＣカード１に送信されるデータを受信部２８で受信するようにデータ信号線が配線されている。
【００１５】
ＩＣカード接続部２１のその他の接点端子、すなわちクロック（ＣＬＯＣＫ），リセット（ＲＥＳＥＴ）．電源（ＶＤＤ）及びグランド（ＧＮＤ）は、ＣＰＵ２２の該当する入出力端子に接続されている。
【００１６】
かかる構成のＩＣカードリーダライタ２は、ＣＰＵ２２に、送信ガード時間を計時するための送信ガードタイマ３１と、受信ガード時間を計時するための受信ガードタイマ３２とを備えている。送信ガード時間とは、送信部２７からデータを送信した後、次のデータ送信が許容されるまでの時間である。受信ガード時間とは、受信部２８にてデータを受信した後、次なるデータの送受信が許容されるまでの時間である。本実施の形態において、送信ガード時間のデフォルト値は１６etu(Element Time Unit)であり、受信ガード時間のデフォルト値は１２etuである。
【００１７】
図２はＩＣカードリーダライタ２におけるＣＰＵ２２の主要な制御手順を示す流れ図である。ＣＰＵ２２は、ＳＴ（ステップ）１としてＩＣカード接続部２１にＩＣカード１が接続されるのを待機している。ここで、ＩＣカード接続部２１の各接点端子にＩＣカード１の対応する各接点端子が接触し、電源（ＶＤＤ）及びグランド（ＧＮＤ）端子どうしが接続されると、ＩＣカード１のＩＣモジュール１１に電源が供給される。ＣＰＵ２２は、電源（ＶＤＤ）端子から電源供給が行われたことからＩＣカード１の接続有りを検知する。
【００１８】
ＩＣカード１が接続されたことを検知すると、ＣＰＵ２２は、ＳＴ２としてＩＣカード１を活性化する。具体的には、リセット（ＲＥＳＥＴ）端子を通じてリセット信号を出力し、続いてクロック（ＣＬＯＣＫ）端子を通じてクロック信号を出力する。これらのリセット信号及びクロック信号が入力されると、ＩＣカード１のＩＣモジュール１１が活性化される。これにより、半二重同期ブロック伝送プロトコルに従い、ＩＣモジュール１１から初期データ、すなわちＡＴＲデータが送信される。このＡＴＲデータは、ＩＣカード１における端子部１２のポート（ＰＯＲＴ）端子から、ＩＣカードリーダライタ２におけるＩＣカード接続部２１のポート（ＰＯＲＴ）端子を介して受信部２８に入力される。
【００１９】
そこでＣＰＵ２２は、ＳＴ３として受信部２８にてＡＴＲデータを受信したことを確認すると、ＳＴ４としてこのＡＴＲデータを解析し、通信規約の属性情報を取得する。この属性情報には、送信ガードタイマ３１及び受信ガードタイマ３２の追加ガード時間情報も含まれているので、この追加ガード時間を取得し、送信ガード時間及び受信ガード時間のデフォルト値を更新する。
【００２０】
次に、ＣＰＵ２２は、ＳＴ５として受信ガードタイマ３２が動作中か否かを判断する。そして、動作中の場合には、半二重同期ブロック伝送プロトコルに従ったデータの送受信を行えないので、ＣＰＵ２２は、受信ガードタイマ３２がタイムアウトするまで待機する。
【００２１】
ＳＴ５にて受信ガードタイマ３２が動作中でない場合、もしくはタイムアウトしたことを検知した場合には、ＣＰＵ２２は、ＳＴ６としてＩＣカード１に送信すべきデータの有無を判断する。そして送信すべきデータがあった場合には、ＣＰＵ２２は、ＳＴ７として送信ガードタイマ３１が動作中か否かを判断する。そして、送信ガードタイマ３１が動作中であった場合には、ＣＰＵ２２は、ＳＴ５の判断処理に戻る。
【００２２】
これに対し、送信ガードタイマ３１が動作中でなかった場合には、ＣＰＵ２２は、ＳＴ８として半二重同期ブロック伝送プロトコルに従い送信部２７からデータをＩＣカード１に送信する。また、ＳＴ９としてデータの送信開始に同期して送信ガードタイマ３１を起動させる。しかる後、ＣＰＵ２２は、ＳＴ５の判断処理に戻る。
【００２３】
ＳＴ６にてＩＣカード１に送信すべきデータがなかった場合には、ＣＰＵ２２は、ＳＴ１０として半二重同期ブロック伝送プロトコルに従ったデータの受信有無を判断する。ここで、半二重同期ブロック伝送プロトコルに従ったデータの受信がなかった場合には、ＣＰＵ２２は、ＳＴ１１として半二重キャラクタ伝送プロトコルに従ったデータの受信有無を判断する。ここで、半二重キャラクタ伝送プロトコルに従ったデータの受信もなかった場合には、ＣＰＵ２２は、ＳＴ１２としてＩＣカード接続部２１にＩＣカード１が接続されているか否かを判断する。ここで、ＩＣモジュール１１への電源供給が継続しており、ＩＣカード１が接続されていることを確認すると、ＣＰＵ２２は、ＳＴ５の判断処理に戻る。
【００２４】
ＳＴ１０にて半二重同期ブロック伝送プロトコルに従ったデータを受信部２８で受信したことを検知した場合には、ＣＰＵ２２は、ＳＴ１３としてその受信データが送信部２７から送信されている自己送信データか否かを判断する。この判断は、送信部２７からデータを送信中か否かを認識することによって可能である。つまり、送信部２７からデータを送信中は、受信データは自己送信データであり、送信部２７からデータを送信していないときは、受信データはＩＣカード１からの送信データである（データ判断手段）。
【００２５】
ここで、受信データが自己送信データでない場合には、ＣＰＵ２２は、ＳＴ１４として受信ガードタイマ３２を起動させる（ガードタイマ制御手段）。また、ＳＴ１５としてこの受信データを解析して、該当する処理を実行する。例えば、受信データがＩＣカードリーダライタ２内で処理すべきデータであれば処理し、ホスト装置に送信すべきデータであれば通信インターフェイス２５を介してホスト装置に送信する。しかる後、ＣＰＵ２２は、ＳＴ５の判断処理に戻る。
【００２６】
一方、受信データが自己送信データであった場合には、ＣＰＵ２２は、受信ガードタイマ３２を起動させない（ガードタイマ制御手段）。そして、ＳＴ１６としてこの受信データ（自己送信データ）をＲＡＭ２４の自己送信データ記憶部に記憶した後、ＳＴ５の判断処理に戻る。
【００２７】
ＳＴ１１にて半二重キャラクタ伝送プロトコルに従ったデータを受信部２８で受信したことを検知した場合には、ＣＰＵ２２は、ＳＴ１５としてこの受信データを解析して、該当する処理を実行する。例えば、データ再送要求信号を受信した場合には、直前に送信したデータの再送を処理する。しかる後、ＣＰＵ２２は、ＳＴ５の判断処理に戻る。
【００２８】
ＳＴ１２にてＩＣカード１が接続されていないことを確認した場合には、ＣＰＵ２２は、今回の制御処理を終了する。そして、再びＩＣカード１が接続されたことを検知した場合には、ＳＴ２以降の処理を繰り返すものとなっている。
【００２９】
今、図３に示すように、ＩＣカード接続部２１に接続されたＩＣカード１から半二重同期ブロック伝送プロトコルに従いデータＡが送信され、このデータＡをＩＣカードリーダライタ２の受信部２８が時点ｔ１にて受信したとする。そうすると、ＩＣカードリーダライタ２においては、受信ガードタイマ３２が起動する。そしてデータＡが解析され、例えばホスト装置に送信すべきデータであった場合には、通信インターフェイス２５を介してホスト装置に送信される。
【００３０】
次に、例えばホスト装置から半二重同期ブロック伝送プロトコルに従ったデータＢの送信要求があったとする。そうすると、ＩＣカードリーダライタ２においては、受信ガードタイマ３２の受信ガード時間Ｔ１が経過した後の時点ｔ２にて、送信部２７からデータＢの送信を行う。このデータＢは、ＩＣカード接続部２１のポート（ＰＯＲＴ）端子からＩＣカード１側のポート（ＰＯＲＴ）端子を経由してＩＣカード１のＩＣモジュール１１に送られる。また、それと同時に、ＩＣカードリーダライタ２の受信部２８でも受信される。
【００３１】
このとき、ＩＣカードリーダライタ２においては、送信ガードタイマ３１が起動する。また、受信部２８にてデータＢが受信されるので、本来ならば受信ガードタイマ３２も起動するはずである。しかし、受信データＢ′は自己の送信データＢであるので、ＣＰＵ２２の制御により受信ガードタイマ３２は起動されない。
【００３２】
データＢを受信したＩＣカード１においては、このデータＢのパリティチェックが行われる。その結果、パリティエラーが確認されたとすると、ＩＣカード１からデータの再送要求信号が出力される。この再送要求信号は、ＩＣカード１側のポート（ＰＯＲＴ）端子からＩＣカードリーダライタ２側のポート（ＰＯＲＴ）端子を経由してＩＣカードリーダライタ２の受信部２８にて受信される。このとき、受信ガードタイマ３２は起動されていないので、ＩＣカードリーダライタ２では再送要求信号の受信が確認される。これに応じて、送信ガードタイマ３１の送信ガード時間Ｔ２が経過した後、送信部２７からデータＢが再送される。
【００３３】
ところで、再送要求信号の受信を確認したＩＣカードリーダライタ２のＣＰＵ２２は、図４の流れ図に示すデータ再送要求受信処理を実行する。  
すなわち、ＳＴ１６の処理にてＲＡＭ２４の自己送信データ記憶部に記憶された直前の自己送信データを解析し、データの異常有無を判別する（異常判別手段）。そして、データの異常があると認識した場合には、データ異常エラーログを生成して、ＲＡＭ２４に記憶する（結果出力手段）。また、データの異常がないと確認した場合には、ＩＣカードリーダライタ２の送信部２７からＩＣカード接続部２１を結ぶデータ信号線に異常があるとみなすことができるので、結線異常エラーログを生成し、ＲＡＭ２４に記憶する（結果出力手段）。
【００３４】
こうして、ＲＡＭ２４に記憶されたエラーログは、通信インターフェイス２５を介して接続されたホスト装置に取り込まれる。そして、このホスト装置において分析される。これにより、通信エラーの原因がデータそのものにあるのか、あるいはデータの伝送経路にあるのかが把握される。
【００３５】
このように本実施の形態のＩＣカードリーダライタ２においては、送信部２７からＩＣカード１に送信されるデータを受信部２８で受信するようにデータ信号線が配線されている。また、ＣＰＵ２２では、受信部２８で受信したデータが送信部２７から送信された自己の送信データであるか否かが判断される。そして、自己の送信データでないと判断されたときには受信ガードタイマ３２が起動する。また、送信ガードタイマ３１は、データ送信に応動して起動されている。これにより、半二重通信方式に必要な受信ガード時間Ｔ２及び送信ガード時間Ｔ１が確保される。
【００３６】
これに対し、自己の送信データであると判断された場合には受信ガードタイマ３２は起動しない。これにより、自己の送信データを受信することができるとともに、この送信データに対するＩＣカード１からの再送要求信号も受信することができる。したがって、データ送信エラー時には自己の送信データを解析しその原因を分析することによって、データ送信に失敗した原因がデータそのものにあるのか、あるいはデータの伝送経路にあるのかというように、ＩＣカード１との通信状況を的確に把握することができる。
【００３７】
なお、前記実施の形態では、ＩＣカード通信装置の一態様としてＩＣカードリーダライタ２に本発明を適用した場合を示したが、ＩＣカード１と半二重通信方式によりデータの送受信を行う装置全般に適用できるものである。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施の形態であるＩＣカードリーダライタとＩＣカードの要部構成を示すブロック図。
【図２】同実施の形態において、ＩＣカードリーダライタのＣＰＵが実行する主要な制御手順を示す流れ図。
【図３】同実施の形態において、ＩＣカードからデータの再送要求信号が出力されたときを含むＩＣカードリーダライタにおける受信部及び送信部の入出力波形並びにガード時間管理状況を示すタイミング図。
【図４】同実施の形態において、ＩＣカードリーダライタのＣＰＵが実行する再送要求信号受信処理の要部を示す流れ図。
【符号の説明】
【００３９】
１…ＩＣカード、２…ＩＣカードリーダライタ（ＩＣカード通信装置）、１１…ＩＣモジュール、２１…ＩＣカード接続部、２２…ＣＰＵ、２３…ＲＯＭ、２４…ＲＡＭ、２５…通信インターフェイス、２７…送信部、２８…受信部。
【図１】
2006221260.tif 000003
【図２】
2006221260.tif 000004
【図３】
2006221260.tif 000005
【図４】
2006221260.tif 000006