(57)【特許請求の範囲】
【請求項１】
ブロック伝送プロトコル及びキャラクタ伝送プロトコルを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置におけるデータ伝送方法であって、
接続された最下位装置の通信プロトコルを判定し、
前記上位装置から伝送されたデータに含まれる先頭バイトが通信制御装置に対するものか否かを判定し、
前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、
前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものであると判定された場合、前記上位装置から伝送されたデータを当該通信制御装置におけるコマンドとして処理し、
前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、
前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、先頭バイトが通信制御装置に対するものであると判定された場合、上位装置からのデータを一時的に通信制御装置内に蓄積し、上位装置から伝送されたデータの２バイト目以降について、通信制御装置のコマンドであるか否かを判定し、通信制御装置のコマンドではないと判定された時点において、前記一時的に蓄積されたデータの最下位装置への伝送を開始すると共に、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる一方、
前記上位装置から伝送されたデータの２バイト目以降が通信制御装置のコマンドと判定され、しかも、受信されたデータのバイト数が所定以上であると判定された場合、前記一時的に蓄積されたデータの最下位装置への伝送を行い、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめ、
前記上位装置から伝送されたデータの２バイト目以降が通信制御装置のコマンドと判定され、しかも、受信されたデータのバイト数が所定内であると判定された場合、通信制御装置のコマンドとして処理することを特徴とするデータ伝送方法。
【請求項２】
ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置におけるデータ伝送方法であって、
接続された最下位装置の通信プロトコルを判定し、
前記上位装置から伝送されたデータに含まれる先頭バイトが通信制御装置に対するものか否かを判定し、
前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、
前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものであると判定された場合、前記上位装置から伝送されたデータを当該通信制御装置におけるコマンドとして処理し、
前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、
前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、先頭バイトが通信制御装置に対するものであると判定された場合、上位装置からのデータを一時的に通信制御装置内に蓄積し、上位装置から伝送されたデータの２バイト目以降について、通信制御装置のコマンドであるか否かを判定し、通信制御装置のコマンドではないと判定された時点において、前記一時的に蓄積されたデータの最下位装置への伝送を開始すると共に、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる一方、
前記上位装置から伝送されたデータの２バイト目以降が通信制御装置のコマンドと判定され、しかも、受信されたデータのバイト数が所定以上であると判定された場合、前記一時的に蓄積されたデータの最下位装置への伝送を行い、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめ、
前記上位装置から伝送されたデータの２バイト目以降が通信制御装置のコマンドと判定され、しかも、受信されたデータのバイト数が所定内であると判定された場合、通信制御装置のコマンドとして処理することを特徴とするデータ伝送方法。
【請求項３】
通信制御装置は、ＩＣカードリーダライタであり、最下位装置は、ＩＣカードであることを特徴とする請求項１または２記載のデータ伝送方法。
【請求項４】
ブロック伝送プロトコル及びキャラクタ伝送プロトコルを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置であって、
当該通信制御装置は、
接続された最下位装置の通信プロトコルを判定するプロトコル判定手段と、
前記上位装置から伝送されたデータに含まれる先頭バイトが通信制御装置に対するものか否かを判定するアドレス判定手段と、
外部入力されたデータを一時的に蓄積し、制御信号の入力に応じて外部へ出力するデータ蓄積手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめる第１のデータ通過制御手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、前記上位装置から伝送されたデータを当該通信制御装置におけるコマンドとして処理する第１のコマンド処理手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめる第２のデータ通過制御手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、上位装置からのデータを前記データ蓄積手段に蓄積させるバファリング制御手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、上位装置から伝送されたデータの２バイト目以降について、通信制御装置のコマンドであるか否かを判定するコマンド判定手段と、
前記コマンド判定手段により、上位装置から伝送されたデータの何れかのバイトが通信制御装置のコマンドではないと判定された場合、前記データ蓄積手段のデータを前記最下位装置へ伝送すると共に、それ以後、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる第３のデータ通過制御手段と、
前記コマンド判定手段により、上位装置から伝送されたデータの何れのバイトも通信制御装置のコマンドであると判定された場合において、前記上位装置から伝送されたデータのバイト数が所定以上か否かを判定するバイト数判定手段と、
前記バイト数判定手段により、前記上位装置から伝送されたデータのバイト数が所定以上であると判定された場合、前記データ蓄積手段のデータを前記最下位装置へ伝送すると共に、それ以後、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる第４のデータ通過制御手段と、
前記バイト数判定手段により、前記上位装置から伝送されたデータのバイト数が所定内であると判定された場合、前記データを当該通信制御装置におけるコマンドとして処理する第２のコマンド処理手段と、
を具備してなることを特徴とする通信制御装置。
【請求項５】
ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置であって、
当該通信制御装置は、
接続された最下位装置の通信プロトコルを判定するプロトコル判定手段と、
前記上位装置から伝送されたデータに含まれる先頭バイトが通信制御装置に対するものか否かを判定するアドレス判定手段と、
外部入力されたデータを一時的に蓄積し、制御信号の入力に応じて外部へ出力するデータ蓄積手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめる第１のデータ通過制御手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、前記上位装置から伝送されたデータを当該通信制御装置におけるコマンドとして処理する第１のコマンド処理手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめる第２のデータ通過制御手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、上位装置からのデータを前記データ蓄積手段に蓄積させるバファリング制御手段と、
前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、上位装置から伝送されたデータの２バイト目以降について、通信制御装置のコマンドであるか否かを判定するコマンド判定手段と、
前記コマンド判定手段により、上位装置から伝送されたデータの何れかのバイトが通信制御装置のコマンドではないと判定された場合、前記データ蓄積手段のデータを前記最下位装置へ伝送すると共に、それ以後、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる第３のデータ通過制御手段と、
前記コマンド判定手段により、上位装置から伝送されたデータの何れのバイトも通信制御装置のコマンドであると判定された場合において、前記上位装置から伝送されたデータのバイト数が所定以上か否かを判定するバイト数判定手段と、
前記バイト数判定手段により、前記上位装置から伝送されたデータのバイト数が所定以上であると判定された場合、前記データ蓄積手段のデータを前記最下位装置へ伝送すると共に、それ以後、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる第４のデータ通過制御手段と、
前記バイト数判定手段により、前記上位装置から伝送されたデータのバイト数が所定内であると判定された場合、前記データを当該通信制御装置におけるコマンドとして処理する第２のコマンド処理手段と、
を具備してなることを特徴とする通信制御装置。
【請求項６】
通信制御装置は、ＩＣカードリーダライタであり、最下位装置は、ＩＣカードであることを特徴とする請求項４または５記載の通信制御装置。
【請求項７】
ブロック伝送プロトコル及びキャラクタ伝送プロトコルを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、コンピュータを用いてなり、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置における前記コンピュータに実行させるデータ伝送処理プログラムを記録した記録媒体であって、
当該データ伝送処理プログラムはコンピュータに、接続された最下位装置の通信プロトコルを判定させ、
前記上位装置から伝送されたデータに含まれる先頭バイトが当該コンピュータに対するものか否かを判定させ、
前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、
前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものであると判定された場合、前記上位装置から伝送されたデータを当該コンピュータにおけるコマンドとして処理させ、
前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、
前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、先頭バイトが当該コンピュータに対するものであると判定された場合、上位装置からのデータを一時的に蓄積させ、上位装置から伝送されたデータの２バイト目以降について、当該コンピュータにおけるコマンドであるか否かを判定させ、当該コンピュータにおけるコマンドではないと判定された時点において、前記一時的に蓄積されたデータの最下位装置への伝送を開始させると共に、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる一方、
前記上位装置から伝送されたデータの２バイト目以降が当該コンピュータにおけるコマンドと判定され、しかも、受信されたデータのバイト数が所定以上であると判定された場合、前記一時的に蓄積されたデータの最下位装置への伝送を行わしめ、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめ、
前記上位装置から伝送されたデータの２バイト目以降が当該コンピュータにおけるコマンドと判定され、しかも、受信されたデータのバイト数が所定内であると判定された場合、当該コンピュータにおけるコマンドとして処理させることを特徴とするデータ伝送プログラムを記録した記録媒体。
【請求項８】
ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、コンピュータを用いてなり、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置における前記コンピュータに実行させるデータ伝送処理プログラムを記録した記録媒体であって、
当該データ伝送処理プログラムはコンピュータに、接続された最下位装置の通信プロトコルを判定させ、
前記上位装置から伝送されたデータに含まれる先頭バイトが当該コンピュータに対するものか否かを判定させ、
前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、
前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものであると判定された場合、前記上位装置から伝送されたデータを当該コンピュータにおけるコマンドとして処理させ、
前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、
前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、先頭バイトが当該コンピュータに対するものであると判定された場合、上位装置からのデータを一時的に蓄積させ、上位装置から伝送されたデータの２バイト目以降について、当該コンピュータにおけるコマンドであるか否かを判定させ、当該コンピュータにおけるコマンドではないと判定された時点において、前記一時的に蓄積されたデータの最下位装置への伝送を開始させると共に、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる一方、
前記上位装置から伝送されたデータの２バイト目以降が当該コンピュータにおけるコマンドと判定され、しかも、受信されたデータのバイト数が所定以上であると判定された場合、前記一時的に蓄積されたデータの最下位装置への伝送を行わしめ、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめ、
前記上位装置から伝送されたデータの２バイト目以降が当該コンピュータにおけるコマンドと判定され、しかも、受信されたデータのバイト数が所定内であると判定された場合、当該コンピュータにおけるコマンドとして処理させることを特徴とするデータ伝送プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２つの電子機器相互のデータの授受を仲介、制御する通信制御装置に係り、特に、外部からデータの読み出し／書き込みが可能ないわゆるＩＣカードと、このＩＣカードとのデータの授受を行うホスト装置との間に用いられるデータの伝送方法及び通信制御装置並びにデータ伝送プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来、この種の装置としては、例えば、特開平８−３１５０９０号公報に示されたように、いわゆるＩＣカードとホスト装置間のデータの授受等を行うＩＣカードリーダライタにおいて、ＩＣカードのプロトコルの種類を判別する判別手段と、プロトコル変換手段とを設け、ＩＣカードのプロトコルがホスト装置とＩＣカードリーダライタとの間のプロトコルと異なるものであると判定された場合に、プロトコル変換手段によりプロトコル変換を行ってＩＣカードとホスト装置とのデータの授受を行えるようにしてなるものが公知・周知となっている。
【０００３】
【発明が解決しようとする課題】
しかしながら、かかる従来装置においては、ＩＣカードのプロトコルが所定の形式以外であると判定された場合、ＩＣカードからホスト装置へのデータ及びホスト装置からＩＣカードへのデータが、ＩＣカードリーダライタ内において、プロトコル変換手段によりプロトコルの変換、換言すればデータ変換がなされるため、プロトコルが所定の場合に比してデータの秘匿性が低下するという問題がある。すなわち、ＩＣカードのプロトコルが所定の形式である場合、ＩＣカードからホスト装置へのデータ及びホスト装置からＩＣカードへのデータは、ＩＣカードリーダライタにおいてデータ変換が施されることなくいわゆるスルー状態で、ＩＣカードとホスト装置間で直接授受されることとなるため、ＩＣカードリーダライタにおけるデータの秘匿性が十分高いものとすることができる。これに対して、上述のようにＩＣカードリーダライタ内でプロトコル変換を行う場合には、ホスト装置からＩＣカードへのデータ及びＩＣカードからホスト装置へのデータが、ＩＣカードリーダライタにおいて一旦が展開されるため、何らかの方策を施さない限り必然的にデータの秘匿性は低下することとなる。
【０００４】
また、プロトコル変換を行うため、ホスト装置からＩＣカードへのデータ及びＩＣカードからホスト装置へのデータを一時的に蓄積するためのいわゆるバッファメモリが必要となり、しかもそのメモリ容量は、少なくともＩＣカードが有するデータバイト分程度は必要となるため、ＩＣカードリーダライトのハードウェアの負担が増し、高価格化を招くという問題がある。さらに、ＩＣカードのプロトコルが所定の形式以外の場合には、プロトコル変換を行い、ホスト装置とＩＣカード間でのデータの授受がなされるので、ＩＣカードとホスト装置間のデータの授受に時間を要するという問題があった。
【０００５】
本発明は、上記実状に鑑みてなされたもので、プロトコル変換を行うことなくプロトコルの異なるＩＣカードに対応可能なうえに、メモリ容量が必要最小限で済み、低価格化を図ることのできるデータ伝送方法及び通信制御装置並びにデータ伝送プログラムを記録した記録媒体を提供することにある。
【０００６】
【課題を解決するための手段】
本発明のデータ伝送方法は、ブロック伝送プロトコル及びキャラクタ伝送プロトコルを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置におけるデータ伝送方法であって、接続された最下位装置の通信プロトコルを判定し、前記上位装置から伝送されたデータに含まれる先頭バイトが通信制御装置に対するものか否かを判定し、前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものであると判定された場合、前記上位装置から伝送されたデータを当該通信制御装置におけるコマンドとして処理し、前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、先頭バイトが通信制御装置に対するものであると判定された場合、上位装置からのデータを一時的に通信制御装置内に蓄積し、上位装置から伝送されたデータの２バイト目以降について、通信制御装置のコマンドであるか否かを判定し、通信制御装置のコマンドではないと判定された時点において、前記一時的に蓄積されたデータの最下位装置への伝送を開始すると共に、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる一方、前記上位装置から伝送されたデータの２バイト目以降が通信制御装置のコマンドと判定され、しかも、受信されたデータのバイト数が所定以上であると判定された場合、前記一時的に蓄積されたデータの最下位装置への伝送を行い、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめ、前記上位装置から伝送されたデータの２バイト目以降が通信制御装置のコマンドと判定され、しかも、受信されたデータのバイト数が所定内であると判定された場合、通信制御装置のコマンドとして処理するものである。
【０００７】
また、本発明の通信制御装置は、ブロック伝送プロトコル及びキャラクタ伝送プロトコルを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置であって、当該通信制御装置は、接続された最下位装置の通信プロトコルを判定するプロトコル判定手段と、前記上位装置から伝送されたデータに含まれる先頭バイトが通信制御装置に対するものか否かを判定するアドレス判定手段と、外部入力されたデータを一時的に蓄積し、制御信号の入力に応じて外部へ出力するデータ蓄積手段と、前記プロトコル判定手段により、最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめる第１のデータ通過制御手段と、前記プロトコル判定手段により、最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、前記上位装置から伝送されたデータを当該通信制御装置におけるコマンドとして処理する第１のコマンド処理手段と、前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめる第２のデータ通過制御手段と、前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、上位装置からのデータを前記データ蓄積手段に蓄積させるバファリング制御手段と、前記プロトコル判定手段により、最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記アドレス判定手段により、前記先頭バイトが通信制御装置に対するものであると判定された場合、上位装置から伝送されたデータの２バイト目以降について、通信制御装置のコマンドであるか否かを判定するコマンド判定手段と、前記コマンド判定手段により、上位装置から伝送されたデータの何れかのバイトが通信制御装置のコマンドではないと判定された場合、前記データ蓄積手段のデータを前記最下位装置へ伝送すると共に、それ以後、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる第３のデータ通過制御手段と、前記コマンド判定手段により、上位装置から伝送されたデータの何れのバイトも通信制御装置のコマンドであると判定された場合において、前記上位装置から伝送されたデータのバイト数が所定以上か否かを判定するバイト数判定手段と、前記バイト数判定手段により、前記上位装置から伝送されたデータのバイト数が所定以上であると判定された場合、前記データ蓄積手段のデータを前記最下位装置へ伝送すると共に、それ以後、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる第４のデータ通過制御手段と前記バイト数判定手段により、前記上位装置から伝送されたデータのバイト数が所定内であると判定された場合、前記データを当該通信制御装置におけるコマンドとして処理する第２のコマンド処理手段とを具備してなるものである。
【０００８】
また、本発明のデータ伝送プログラムを記録した記録媒体は、ブロック伝送プロトコル及びキャラクタ伝送プロトコルを有してなる上位装置と、ブロック伝送プロトコルまたはキャラクタ伝送プロトコルのいずれか一つの通信プロトコルに基づいてデータの読み出し及び書き込みが可能に構成されてなる最下位装置との間に設けられ、コンピュータを用いてなり、前記上位装置と前記最下位装置の通信の仲介、制御を行う通信制御装置における前記コンピュータに実行させるデータ伝送処理プログラムを記録した記録媒体であって、当該データ伝送処理プログラムはコンピュータに、接続された最下位装置の通信プロトコルを判定させ、前記上位装置から伝送されたデータに含まれる先頭バイトが当該コンピュータに対するものか否かを判定させ、前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、前記最下位装置の通信プロトコルがブロック伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものであると判定された場合、前記上位装置から伝送されたデータを当該コンピュータにおけるコマンドとして処理させ、前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、前記先頭バイトが当該コンピュータに対するものではないと判定された場合、前記上位装置から伝送されたデータを前記最下位装置へ通過せしめる一方、前記最下位装置から伝送されたデータを前記上位装置へ通過せしめ、前記最下位装置の通信プロトコルがキャラクタ伝送プロトコルと判定された場合にあって、先頭バイトが当該コンピュータに対するものであると判定された場合、上位装置からのデータを一時的に蓄積させ、上位装置から伝送されたデータの２バイト目以降について、当該コンピュータにおけるコマンドであるか否かを判定させ、当該コンピュータにおけるコマンドではないと判定された時点において、前記一時的に蓄積されたデータの最下位装置への伝送を開始させると共に、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめる一方、前記上位装置から伝送されたデータの２バイト目以降が当該コンピュータにおけるコマンドと判定され、しかも、受信されたデータのバイト数が所定以上であると判定された場合、前記一時的に蓄積されたデータの最下位装置への伝送を行わしめ、それ以降、上位装置からのデータを最下位装置へ通過せしめると共に最下位装置からのデータを上位装置へ通過せしめ、前記上位装置から伝送されたデータの２バイト目以降が当該コンピュータにおけるコマンドと判定され、しかも、受信されたデータのバイト数が所定内であると判定された場合、当該コンピュータにおけるコマンドとして処理させるものである。
【０００９】
かかる構成は、特に、最下位装置がＩＣカードであり、通信制御装置がいわゆるＩＣカードリーダライタとした場合に好適なものである。かかる構成により、ＩＣカードの通信プロトコルに関わらず、ＩＣカードと上位装置間のデータの授受が、ＩＣカードリーダライタ内で何等データの加工を行うことなく可能となるので、ＩＣカードリーダライタにおけるデータの高い秘匿性を維持しつつ、迅速なデータの授受を実現することができることとなるものである。
【００１０】
なお、上位装置は、必ずしもブロック伝送プロトコル及びキャラクタ伝送プロトコルの２種類の通信プロトコルを有してなるものである必要はなく、いずれか一方のプロトコルを有してなるものであってもよいものである。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態について、図１乃至図１３を参照しつつ説明する。
【００１２】
なお、以下に説明する部材、配置等は本発明を限定するものではなく、本発明の趣旨の範囲内で種々改変することができるものである。
【００１３】
最初に、この発明の実施の形態における通信制御装置としてのＩＣカードリーダライタ１が用いられるシステム構成について図１を参照しつつ説明する。
【００１４】
ＩＣカードリーダライタ（図１においては「Ｒ／Ｗ」と表記）１は、最下位装置として、外部からデータの読み出し／書き込みが可能ないわゆるＩＣカード３と、上位装置としてのホスト装置２とのデータの授受を仲介する機能を果たすもので、ホスト装置２とは所定のインターフェイス（例えばRS-232C等）により接続される一方、ＩＣカード３の挿入、取り出しが可能に構成されてなるものである（図１参照）。
【００１５】
この発明の実施の形態におけるホスト装置２は、現在ＩＣカード３のプロトコルとして使用されている２つのプロトコル、すなわち、国際標準プロトコルＴ＝１（半二重調歩同期ブロック伝送プロトコル）と、Ｔ＝０（調歩式半二重キャラクタ伝送プロトコル）の双方に対応できるようになっているものである。
【００１６】
一方、ＩＣカードリーダライタ１は、図２に示されたように、いわゆるＣＰＵ４を主としてなり、この他に、ホスト装置２とのインターフェイスのための通信インターフェイス回路５と、ＩＣカード３とのインターフェイスのためのカードインターフェイス回路６と、ＲＡＭ７と、ＲＯＭ８とを具備して構成されたものとなっている。
【００１７】
ＲＯＭ(Read Only Memory)８には、後述するようなＩＣカード３とホスト装置２との間のデータの授受のための処理を行うためのプログラムが記憶されており、ＣＰＵ４は、そのプログラムを読み込んで実行するようになっている。
【００１８】
通信インターフェイス回路５は、ホスト装置２とＩＣカードリーダライタ１との間のインターフェイスを図るもので、例えばRS-232C等の公知・周知のインターフェイス規格に基づいて、ＩＣカード３とホスト装置２との通信ができるようになっているものである。
【００１９】
カードインターフェイス回路６は、ＩＣカード３との接続部分を介してＩＣカード３へ電源電圧を供給し、また、ＩＣカード３へ対するＣＰＵ４からの制御信号やデータ等を所定の電圧レベルで出力する一方、ＩＣカード３から読み出されたデータを所定のレベルに変換する等の処理を行いＣＰＵ４へ送る等のＩＣカード３とのインターフェイスを図るものである。
【００２０】
ＲＡＭ(Random Access Memory)７は、公知・周知のいわゆるＩＣメモリであり、後述するバッファリング処理等において一時的にデータを蓄積するなどに利用されるようになっているものである。
【００２１】
次に、かかる構成において、ホスト装置２、ＩＣカードリーダライタ１及びＩＣカード３の三者における相互の通信が如何なる形態であるかについて、図３の説明図を参照しつつ説明する。
【００２２】
まず、ホスト装置２とＩＣカードリーダライタ１間の通信について説明すれば、最初に、ＩＣカードリーダライタ１の動作に関するコマンドのホスト装置２と授受については、半二重調歩同期ブロック伝送プロトコル（以下「ブロック伝送プロトコル」と言う）に基づいて行われるようになっている（図３の「ホスト−Ｒ／Ｗ間プロトコル」と表記された列において左欄が「Ｒ／Ｗコマンド通信」と表記された行の部分参照）。
【００２３】
また、ＩＣカード３がブロック伝送プロトコル仕様に準拠したものである場合、ＩＣカードリーダライタ１とホスト装置２との通信は、ブロック伝送プロトコルにより行われるようになっている（図３の「ホスト−Ｒ／Ｗ間プロトコル」と表記された列において左欄が「ブロック伝送プロトコル仕様ＩＣカード通信」と表記された行の部分参照）。
【００２４】
さらに、ＩＣカード３が調歩式半二重キャラクタ伝送プロトコル（以下「キャラクタ伝送プロトコル」と言う）仕様に準拠したものである場合、ＩＣカードリーダライタ１とホスト装置２との通信は、キャラクタ伝送プロトコルにより行われるようになっている（図３の「ホスト−Ｒ／Ｗ間プロトコル」と表記された列において左欄が「キャラクタ伝送プロトコル仕様ＩＣカード通信」と表記された行の部分参照）。
【００２５】
次に、ＩＣカードリーダライタ１とＩＣカード３間の通信について説明すれば、まず、ＩＣカード３がブロック伝送プロトコル仕様に準拠したものである場合、ＩＣカード３とＩＣカードリーダライタ１間の通信は、ブロック伝送プロトコルにしたがって行われることとなる（図３の「Ｒ／Ｗ−ＩＣカード間プロトコル」と表記された列において左欄が「ブロック伝送プロトコル仕様ＩＣカード通信」と表記された行の部分参照）。
【００２６】
また、ＩＣカード３がキャラクタ伝送プロトコル仕様に準拠したものである場合には、ＩＣカード３とＩＣカードリーダライタ１間の通信は、キャラクタ伝送プロトコルにしたがって行われることとなる（図３の「Ｒ／Ｗ−ＩＣカード間プロトコル」と表記された列において左欄が「キャラクタ伝送プロトコル仕様ＩＣカード通信」と表記された行の部分参照）。
【００２７】
次に、ＩＣカードリーダライタ１における内部処理について言えば、ＩＣカードリーダライタ１における独自のコマンド等の処理については、所定のプログラムによるＩＣカードリーダライタコマンド処理がなされるようになっている（図３の「Ｒ／Ｗ内部処理」と表記された列において左欄が「Ｒ／Ｗコマンド通信」と表記された行の部分参照）。
【００２８】
また、ブロック伝送プロトコル仕様に準拠したＩＣカード３に関するＩＣカードリーダライタ１の内部処理については、直接データ転送が行われ（図３の「Ｒ／Ｗ内部処理」と表記された列において左欄が「ブロック伝送プロトコル仕様ＩＣカード通信」と表記された行の部分参照）、さらに、キャラクタ伝送プロトコル仕様に準拠したＩＣカード３に関するＩＣカードリーダライタ１の内部処理については、ＩＣカードリーダライタコマンドでないことが確定された後に直接データ転送が行われるようになっている（図３の「Ｒ／Ｗ内部処理」と表記された列において左欄が「キャラクタ伝送プロトコル仕様ＩＣカード通信」と表記された行の部分参照）。
【００２９】
次に、ＩＣカードリーダライタ１による通信制御処理のより具体的な手順について図３乃至図１３を参照しつつ説明することとする。
【００３０】
最初に、図４を参照しつつ全体的な通信制御処理の流れについて説明すれば、まず、ＩＣカード３がＩＣカードリーダライタ１の所定の箇所に挿入されると、ＩＣカード３への電源電圧の供給、初期設定等のいわゆるＩＣカードの活性化がＩＣカードリーダライタ１により行われる（図４のステップ100参照）。
【００３１】
次いで、ＩＣカードの活性化に応じてＩＣカード３からＩＣカードリーダライタ１へ対してアンサー・ツー・リセット(ＡＴＲ)と称される初期応答データが伝送され、ＩＣカードリーダライタ１において、その解析が行われることとなる（図４のステップ200参照）。
【００３２】
そして、この初期応答データ中に含まれるＩＣカード３のプロトコルタイプを示すデータにより、ＩＣカード３のプロトコル判定が行われる（図４のステップ300参照）。
【００３３】
このプロトコル判定により、ＩＣカード３のプロトコルが、ブロック伝送プロトコルであると判定された場合には、ブロック伝送プロトコル仕様のＩＣカード３との通信制御サブルーチンである第１の通信制御サブルーチンが実行され、ＩＣカードリーダライタ１及びホスト装置２とＩＣカード３との間の通信が行われることとなる（図４のステップ400参照）。
【００３４】
一方、プロトコル判定により、ＩＣカード３のプロトコルが、キャラクタ伝送プロトコルであると判定された場合には、キャラクタ伝送プロトコル仕様のＩＣカード３との通信制御サブルーチンである第２の通信制御サブルーチンが実行され、ＩＣカードリーダライタ１及びホスト装置２とＩＣカード３との間の通信が行われることとなる（図４のステップ500参照）。
【００３５】
なお、ここで、図４に示されたＩＣカード活性化処理（図４のステップ100参照）からプロトコル判定処理（図４のステップ300参照）に至るまでの処理は、公知・周知の技術であり、実際に標準化されているものであるので、ここでの詳細な説明は省略することとする。
【００３６】
次に、ＩＣカード３がブロック伝送プロトコル仕様に準拠したものであると判定された場合に実行される第１の通信制御処理の具体的な内容について図５乃至図８を参照しつつ説明する。
【００３７】
ＩＣカードリーダライタ１によりＩＣカード３がブロック伝送プロトコル仕様に準拠したものであると判定されると、ホスト装置２からは、ブロック伝送プロトコルに基づいて、ＩＣカード３に対するデータまたはＩＣカードリーダライタ１に対するデータの伝送が開始される。それに伴いＩＣカードリーダライタ１においては、ホスト装置２からブロック伝送された信号の先頭バイトについて判定が行われる（図５のステップ410参照）。
【００３８】
すなわち、いわゆるノードアドレスがＩＣカードリーダライタ１に対するものか、ＩＣカード３に対するものであるかが判定されることとなる。
【００３９】
ここで、ブロック伝送の際に用いられるデータ構成を示せば、例えば、図６に示されたように、ブロック伝送におけるデータのブロックは、先頭から順に、先頭フィールド（PROLOG）、情報フィールド（INFORMATION）、最終フィールド（EPILOG）の３つに大別されてなり、これらが一体のデータとして、すなわちブロックとして伝送されるものである。このブロックの構成は、国際標準規格として定められているものであり、国内においては、「ＪＩＳＸ６３０４」に規定されているものである。
【００４０】
そして、ノードアドレス（図６においては「ＮＡＤ」と表記）は、先頭フィールドの一構成要素であって、ブロックの送信元及び受信元のアドレスが表される部分となっているものである。なお、図６に示されたブロックの個々のデータの詳細についての説明は省略することとする。
【００４１】
このノードアドレスがＩＣカードリーダライタ１に対するものか、ＩＣカード３に対するものかの判定は、例えば、この発明の実施の形態においては、その値が所定の範囲にあるか否かで判定するようにしてある。すなわち、例えば、ノードアドレスが、１６進法で「１０」乃至「１Ｆ」の範囲の値にないと判定された場合には、その受信ブロックについては、ＩＣカード３のコマンドであるとしてスルーモード状態となる（図５のステップ420参照）。すなわち、その受信ブロックは、ブロック伝送プロトコルに基づいて、そのままＩＣカード３へ伝送される一方、ＩＣカード３からホスト装置２へ対して伝送されるデータがある場合には、ＩＣカードリーダライタ１を介してそのままホスト装置２へ伝送されることとなる（図５のステップ420参照）。
【００４２】
図７には、このスルーモードを概念的に表した図が示されている。
【００４３】
すなわち、スルーモードにおいては、ＩＣカードリーダライタ１を介してのホスト装置２とＩＣカード３との相互のデータの授受は、ブロック伝送により行われることとなり、ＩＣカードリーダライタ１に入力されたホスト装置２からのＩＣカード３へのデータは、例えばカードインターフェイス回路６内に設けられたいわゆるＦＩＦＯ（先入先出レジスタ）6aを介してＩＣカード３へ伝送される一方、ＩＣカード３からホスト装置２へのデータは、ＩＣカードリーダライタ１の通信インターフェイス回路５内に設けられたＦＩＦＯ5aを介してホスト装置２へ伝送されるようになっていることが表されている（図７の実線矢印部分参照）。
【００４４】
なお、図７において、ＩＣカード３の部分に表記された「Ｔ＝１４」は、国際標準に基づかないブロック伝送プロトコルを意味する。このプロトコルもブロック伝送という点ではＴ＝０のプロトコルと共通し、本発明による通信制御を用いることができるため、ＩＣカード３は、Ｔ＝０またはＴ＝１４のいずれの通信プロトコルを用いるものであってもよいものである。
【００４５】
一方、ホスト装置２から送信された受信ブロックのノードアドレスが、１６進法で「１０」乃至「１Ｆ」の範囲の値であると判定された場合には、その受信ブロックは、ＩＣカードリーダライタ１のコマンド、すなわちリーダライタコマンドであるとして、リーダライタコマンド処理が実行されるリーダライタコマンドモードとなる（図５のステップ430参照）。すなわち、受信されたブロックのインフォメーションのデータに応じて定まる所定の処理が行われるものである。具体的に如何なる処理を行うかは、個々のＩＣカードリーダライタ１において設定されるコマンドの種類や内容によって定まるものであり、ここでの詳細な説明は省略することとする。
【００４６】
そして、このリーダライタコマンド処理において、ホスト装置２へ対してＩＣカードリーダライタ１からデータを伝送する場合には、ブロック伝送プロトコル仕様に基づいたデータの伝送が行われるようになっている（図５のステップ440参照）。
【００４７】
上述のリーダライタコマンドモードを概念的に表した図が図８に示されている。
【００４８】
すなわち、図８においては、ホスト装置２から伝送されたデータの先頭アドレスがＩＣカードリーダライタ１のノードアドレスと判定された場合、バッファリングされたデータは、ＲＡＭ７に蓄積（バッファリング）されて、リーダライタコマンドとして必要な処理がなされ、この場合、ホスト装置２とＩＣカードリーダライタ１間のデータの授受は、ブロック伝送により行われることが表されている（図８の実線矢印部分参照）。
【００４９】
次に、先の図４に示されたステップ300におけるプロトコル判定において、ＩＣカード３がキャラクタ伝送プロトコル仕様に準拠したものであると判定された場合に実行される第２の通信制御処理の具体的な内容について図９乃至図１３を参照しつつ説明する。
【００５０】
まず、ＩＣカードリーダライタ１によりＩＣカード３がキャラクタ伝送プロトコル仕様に準拠したものであると判定されると、ホスト装置２からデータの伝送が開始される。それに伴いＩＣカードリーダライタ１においては、ホスト装置２から伝送されたデータの先頭バイトについて判定が行われる（図９のステップ502参照）。
【００５１】
すなわち、データの先頭バイトが、ＩＣカードリーダライタ１のノードアドレスか否かが判定され、ＩＣカードリーダライタ１のノードアドレスではないと判定された場合には、ホスト装置２からのデータは、ＩＣカード３に対するものであるとして、ホスト装置２からのデータをそのままＩＣカード３へ伝送すると共に、ＩＣカード３からホスト装置２へ対して出力されたデータは、ＩＣカードリーダライタ１を介してそのままホスト装置２へ伝送する状態、すなわち、スルーモード状態となる（図９のステップ504参照）。
【００５２】
この場合、ホスト装置２とＩＣカード３間のデータの授受は、キャラクタ伝送プロトコルに基づいて行われることとなる。
【００５３】
ここで、キャラクタ伝送におけるデータ構成は、先のブロック伝送におけると同様に「ＪＩＳＸ６３０４」の規定に基づくものであり、図１０を参照しつつ概略的に説明すれば、キャラクタ伝送にけるデータは、コマンド、手続バイト、データ、ステータス毎に別個のデータブロックとして伝送されるようになっている。そして、これら伝送順序は、特に規定されておらず、先頭がいずれのものとなるかは不定である。
【００５４】
上述のスルーモードを概念的に表した図が図１１に示されている。
【００５５】
すなわち、上述したように、スルーモードにおいて、ＩＣカードリーダライタ１を介してのホスト装置２とＩＣカード３との相互のデータの授受は、キャラクタ伝送により行われることが図１１において表されている（同図の実線矢印部分参照）。そして、ＩＣカードリーダライタ１に入力されたホスト装置２からのＩＣカード３へのデータは、例えばカードインターフェイス回路６内に設けられたいわゆるＦＩＦＯ（先入先出レジスタ）6aを介してＩＣカード３へ伝送される一方、ＩＣカード３からホスト装置２へのデータは、ＩＣカードリーダライタ１の通信インターフェイス回路５内に設けられたＦＩＦＯ5aを介してホスト装置２へ伝送されるようになっている。
【００５６】
一方、ホスト装置２から伝送されたデータの先頭バイトが、ＩＣカードリーダライタ１のノードアドレスと一致すると判定された場合には、その受信データに対して仮バッファリングが実行されるバッファリングモードとなる（図９のステップ506参照）。すなわち、ホスト装置２からのデータは、一旦、ＲＡＭ７の所定の領域に蓄積されることとなる。
【００５７】
次いで、受信されたデータの２バイト目がリーダライタコマンドか否かが判定され（図９のステップ508参照）、２バイト目がリーダライタコマンドではないと判定された場合には、仮バッファリングにより受信されたホスト装置２からのデータは、そのままＩＣカード３へキャラクタ伝送により転送されることとなる（図９のステップ518参照）。
【００５８】
一方、ステップ508において、２バイト目がリーダライタコマンドであると判定された場合には、３バイト目以降のバイトがリーダライタコマンド以外のものがないか否かが判定されることとなる（図９のステップ510参照）。
【００５９】
そして、３バイト目以降の何れかのバイトが、リーダライタコマンドではないと判定された場合には、その時点まで仮バッファリングにより受信されたホスト装置２からのデータは、そのままＩＣカード３へキャラクタ伝送により転送されるいわばバッファリングモードとなる（図９のステップ518参照）。
【００６０】
また一方、ステップ510において、３バイト目以降の何れのバイトにおいても、リーダライタコマンドではないと判定されることがなかった場合、受信されたバイト数がリーダライタコマンドに予め規定された所定のバイト数を越えたか否かが判定されることとなる（図９のステップ512参照）。
【００６１】
そして、受信されたバイト数がリーダライタコマンドに予め規定された所定のバイト数を越えたと判定された場合（ＮＧの場合）には、このホスト装置２から伝送されたデータは、ＩＣカード３向けのものであるとして、それまで仮バッファリングによりＲＡＭ７に一時的に蓄積されたデータは、ＩＣカード３へキャラクタ伝送により転送されることとなる（図９のステップ518参照）。
【００６２】
また、ステップ512において、受信されたバイト数がリーダライタコマンドに予め規定された所定のバイト数を越えていないと判定された場合（ＯＫの場合）には、受信されたデータは、最終的にリーダライタコマンドであるとして、リーダライタコマンド処理へ進むこととなる（図９のステップ514参照）。
【００６３】
ここで、ステップ506、510、512のいずれかからステップ518へ進みデータ転送がなされる状態を、便宜上、バッファリングモードと称することとする。
【００６４】
このバッファリングモードを概念的に表した図が図１２に示されている。
【００６５】
すなわち、図１２においては、ホスト装置２から伝送されたデータが、リーダライタコマンドではないと判定された場合、仮バッファリングされたデータは、例えばカードインターフェイス回路６内に設けられたいわゆるＦＩＦＯ（先入先出レジスタ）6aを介してＩＣカード３へキャラクタ伝送により伝送される一方、ＩＣカード３からホスト装置２へのデータは、ＩＣカードリーダライタ１の通信インターフェイス回路５内に設けられたＦＩＦＯ5aを介してホスト装置２へキャラクタ伝送により伝送されるようになっていることが表されている（図１２の実線矢印部分参照）。
【００６６】
なお、このバッファリングモードにおいては、ＩＣカードリーダライタ１に必要とされるＲＡＭ７の容量としては、最大でＩＣカードリーダライタ１のコマンドの最大バイト数分であればよく、従来と異なり、ＩＣカード３のデータバイト数分を必要とすることはない。
【００６７】
さらに、ホスト装置２とＩＣカード３とのデータの授受が開始されるまで、ＩＣカードリーダライタ１で費やされる時間は、最大でもＩＣカードリーダライタ１のコマンドの最大バイト数分の受信時間に略匹敵する時間で済む。
【００６８】
リーダライタコマンド処理（図９のステップ514参照）においては、受信したデータが最終的にリーダライタコマンドであると確定されたことに伴い、コマンドの内容に応じた必要な処理が行われるリーダライタコマンドモードとなるものである。このリーダライタコマンドモードにおいては、ＩＣカードリーダライタ１からホスト装置２へデータの伝送が必要な場合には、ブロック伝送により行われるようになっている（図９のステップ516参照）。
【００６９】
このリーダライタコマンドモード概念的に表した図が図１３に示されている。
【００７０】
すなわち、図１３においては、ホスト装置２から伝送されたデータが、リーダライタコマンドであると確定された場合、仮バッファリングされたデータは、リーダライタコマンドとして必要な処理がなされ、この場合、ホスト装置２とＩＣカードリーダライタ１間のデータの授受は、ブロック伝送により行われることが表されている（図１３の実線矢印部分参照）。
【００７１】
上述の例においては、ホスト装置２が、ブロック伝送プロトコル及びキャラクタ伝送プロトコルを備えてなるものであるとの前提の下で説明を行ったが、ホスト装置２は、常時これら２種類のプロトコルに対応可能なものでなければならないものではなく、いずれか一方のプロトコルに対応できる構成のものであっても、上述した構成のＩＣカードリーダライタ１を介してＩＣカード３とのデータの授受が同様に可能であることは勿論のことである。
【００７２】
上述の説明においては、請求項５におけるアドレス判定手段は、ＣＰＵ４によるステップ410、502の実行により、データ通過制御手段は、ＣＰＵ４によるステップ420、504、508、510、512、518の実行により、コマンド処理手段は、ＣＰＵ４によるステップ430、440、508、510、512、514、516の実行により、それぞれ実現されたものとなっている。
【００７３】
また、請求項６及び請求項７におけるアドレス判定手段は、ＣＰＵ４によるステップ410、502の実行により、データ蓄積手段は、ＲＡＭ７により、第１のデータ通過制御手段は、ＣＰＵ４によるステップ420の実行により、第１のコマンド処理手段は、ＣＰＵ４によるステップ430、440の実行により、それぞれ実現されたものとなっている。さらに、請求項６及び請求項７における第２のデータ通過制御手段は、ステップ504の実行により、バファリング制御手段は、ＣＰＵ４によるステップ506の実行により、コマンド判定手段は、ＣＰＵ４によるステップ508、510の実行により、バイト数判定手段は、ＣＰＵ４によるステップ512の実行により、第３のデータ通過制御手段及び第４のデータ通過制御手段は、ＣＰＵ４によるステップ518の実行により、第２のコマンド処理手段は、ＣＰＵ４によるステップ514、516の実行により、それぞれ実現されたものとなっている。
【００７４】
なお、上述の説明においては、ＣＰＵ４により実行されるデータ伝送プログラムがＲＯＭ８に予め記憶されているとの前提の下で、上述のような通信制御が行われるとして説明したが、このプログラムは必ずしもＲＯＭ８に予め記憶されている必要はないものである。すなわち、公知・周知の外部の記憶媒体に記憶させておき、起動制御の実行の際に、この記憶媒体からＣＰＵ４へ読み込まれるようにしてもよいものである。
【００７５】
すなわち、例えば、このような記憶媒体としては、フロッピィー・ディスク、ハード・ディスク、磁気テープ等に代表されるいわゆる磁気記録媒体のようなものや、光ディスクのようなものを挙げることができる。勿論、このような記録媒体を用いる場合には、それぞれに適した読み取り装置（フロッピィー・ディスクドライブやハード・ディスクドライブ等）が必要となることは言うまでもないことである。
【００７６】
また、上述の発明の実施の形態においては、好適な例として、通信制御装置が、ＩＣカードリーダライタであり、最下位装置がＩＣカードである場合について説明したが、通信制御装置、最下位装置は、勿論このようなものに限定される必要はないものである。
【００７７】
【発明の効果】
本発明によれば、通信制御装置へデータが入力されつつある場合において、通信制御装置のコマンドであるか否かの判定をバイト単位で逐次行い、当該入力データが所定のバイト数の範囲であって、全て通信制御装置のコマンドであると判定された以外は、上位装置と最下位装置間で授受されるべきデータであるとして当該データに何等加工を加えることなく通過せしめるようにしたので、従来に比してデータを一時的に蓄積するメモリ容量が必要最小限で済み、より回路の簡素化が図れ、装置の低価格化を実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態におけるＩＣカードリーダライタシステムの構成例を示す構成図である。
【図２】ＩＣカードリーダライタの構成例を示す構成図である。
【図３】本発明の実施の形態のＩＣカードリーダライタシステムにおける通信プロトコルを説明する説明図である。
【図４】ＩＣカードリーダライタにおける動作制御の全体的な流れを説明するメインフローチャートである。
【図５】第１の通信制御における制御手順を示すサブルーチンフローチャートである。
【図６】ブロック伝送プロトコルにおけるデータ構成を示す説明図である。
【図７】第１の通信制御におけるスルーモードを概念的に表した概念図である。
【図８】第１の通信制御におけるリーダライタコマンドモードを概念的に表した概念図である。
【図９】第２の通信制御における制御手順を示すサブルーチンフローチャートである。
【図１０】キャラクタ伝送プロトコルにおけるデータ構成を説明する説明図である。
【図１１】第２の通信制御におけるスルーモードを概念的に表した概念図である。
【図１２】第２の通信制御におけるバッファリングモードを概念的に表した概念図である。
【図１３】第２の通信制御におけるリーダライタコマンドモードを概念的に表した概念図である。
【符号の説明】
１    ＩＣカードリーダライタ
２    ホスト装置
３    ＩＣカード
４    ＣＰＵ
５    通信インターフェイス回路
６    カードインターフェイス回路
７    ＲＡＭ
８    ＲＯＭ
【図１】
0003710940.tif 000002
【図２】
0003710940.tif 000003
【図３】
0003710940.tif 000004
【図４】
0003710940.tif 000005
【図５】
0003710940.tif 000006
【図６】
0003710940.tif 000007
【図７】
0003710940.tif 000008
【図８】
0003710940.tif 000009
【図９】
0003710940.tif 000010
【図１０】
0003710940.tif 000011
【図１１】
0003710940.tif 000012
【図１２】
0003710940.tif 000013
【図１３】
0003710940.tif 000014