(57)【要約】【課題】  通信用インターフェイス毎に異なるプログラムの管理を不要とし、尚かつ各プログラムを修正し検証する場合の手間と時間とコストを削減する。機器のコストアップと大型化を防ぐ。【解決手段】  情報処理システムの上位装置との間で通信を行う下位装置のコンピュータは、当該下位装置に備え付けられた通信用インターフェイスを制御する制御部を介して当該通信用インターフェイスの種別を判別する機能と、これら通信用インターフェイスを介して上位装置との間で通信を行う機能と、上位装置から送信されたコマンドを各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析する機能と、解析した後のコマンドに応じ、通信用インターフェイスに依存しない単一のモジュールを利用して当該下位装置の動作を制御する機能とを実現する動作制御プログラムを備えている。【選択図】        図１
2006127128.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムの上位装置との間で通信を行うとともに状況に応じた処理を実施して当該上位装置に対し現在の状態と処理結果を送信する情報処理システムの下位装置において、当該下位装置のコンピュータは状況に応じた処理を実施するために当該下位装置の動作を制御するプログラムを備えており、尚かつこのプログラムにより、当該下位装置に備え付けられた通信用インターフェイスを制御する制御部を介して当該通信用インターフェイスの種別を判別する機能と、これら通信用インターフェイスを介して前記上位装置との間で通信を行う機能と、前記上位装置から送信されたコマンドを前記各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析する機能と、解析した後のコマンドに応じ、前記通信用インターフェイスに依存しない単一のモジュールを利用して当該下位装置の動作を制御する機能とを備えていることを特徴とする情報処理システムの下位装置。
【請求項２】
電源立ち上げ時またはリセット時に前記通信用インターフェイスの種別の判別を行う機能を備えていることを特徴とする請求項１記載の情報処理システムの下位装置。
【請求項３】
前記通信用インターフェイス用の通信ポートを１つのみ備えることを特徴とする請求項１記載の情報処理システムの下位装置。
【請求項４】
前記通信用インターフェイスがＵＳＢとＲＳ２３２Ｃのいずれかであり、前記通信用インターフェイスの種別を判別する機能は、前記通信用インターフェイスがＵＳＢの場合に前記下位装置に内蔵されるＵＳＢコントローラＩＣ内部の特定のレジスタが割り当てられるアドレスの値を参照し、得られた値に基づき前記通信用インターフェイスの種別の判別を行うものであることを特徴とする請求項１記載の情報処理システムの下位装置。
【請求項５】
前記レジスタとして、予め初期値に特徴的な値を示すレジスタを選定しておくことを特徴とする請求項４記載の情報処理システムの下位装置。
【請求項６】
前記特徴的な値を示すレジスタが複数設置されていることを特徴とする請求項５記載の情報処理システムの下位装置。
【請求項７】
当該下位装置がカードリーダであることを特徴とする請求項１から６のいずれかひとつに記載の情報処理システムの下位装置。
【請求項８】
情報処理システムの下位装置に設けられたコンピュータに、上位装置との間で通信を行わせるとともに状況に応じた処理を実施させて当該上位装置に対し現在の状態と処理結果を送信させる情報処理システムの下位装置用動作制御プログラムにおいて、当該下位装置に備え付けられた通信用インターフェイスを制御する制御部を介して当該通信用インターフェイスの種別を判別する機能と、これら通信用インターフェイスを介して前記上位装置との間で通信を行う機能と、前記上位装置から送信されたコマンドを前記各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析する機能と、この解析した後のコマンドに応じ、前記通信用インターフェイスに依存しない単一のモジュールを利用して当該下位装置の動作を制御する機能とを実現させるための情報処理システムの下位装置用動作制御プログラム。
【請求項９】
情報処理システムの下位装置に設けられたコンピュータにより、上位装置との間で通信を行うとともに状況に応じた処理を実施して当該上位装置に対し現在の状態と処理結果を送信する情報処理システムの下位装置用動作制御方法において、当該下位装置に備え付けられた通信用インターフェイスを制御する制御部を介して当該通信用インターフェイスの種別を判別し、これら通信用インターフェイスを介して前記上位装置との間で通信を行い、前記上位装置から送信されたコマンドを前記各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析し、この解析した後のコマンドに応じ、前記通信用インターフェイスに依存しない単一のモジュールを利用して当該下位装置の動作を制御することを特徴とする情報処理システムの下位装置用動作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムの下位装置、下位装置用動作制御プログラムおよび下位装置用動作制御方法に関する。さらに詳述すると、本発明は、情報処理システムにおける動作制御の改良に関する。
【背景技術】
【０００２】
上位装置と、この上位装置との間で通信を行って、状況に応じた処理を実施して現在の状態と処理結果を送信する下位装置の組み合わせとしては、例えばホスト（上位装置）とカードリーダ（下位装置）とが組み合わされたシステムを挙げることができる。このようなカードリーダには、データ処理機能は全く同じだが、通信用インターフェイス（入出力インターフェイス）が例えば一方がＲＳ２３２Ｃ、他方がＵＳＢというように異なる２機種のものが存在する場合があり、このような場合、従来はプログラムをそれぞれ独立して管理することがあった。
【０００３】
このように、上位装置（例えばカードリーダに接続されているホストコンピュータのこと、あるいはコンピュータに内蔵されている制御装置や演算装置といった処理装置のこと）との通信を行うカードリーダにおいて、ＲＳ２３２ＣやＵＳＢのように異なる通信用インターフェイスが用いられれば、データの処理内容が同じであっても通信用インターフェイス毎に異なるプログラムを組み込まなければならないことがあった（例えば、特許文献１参照）。つまり、上位装置からのコマンドを実行する機能が同一であり汎用できる場合であっても、コマンドデータ受信機能、コマンド解析機能、レスポンス送信機能といった各機能がＵＳＢ専用あるいはＲＳ２３２Ｃ専用というように汎用性のないものであれば、通信用インターフェイス毎に異なるプログラムを組み込むこととなっていた（図１２参照）。要するに、実体的な内容は同じだが通信の仕様が異なる複数のプログラムを用意していた。
【０００４】
また、上位装置との通信を行うために、ＲＳ２３２Ｃ用、ＵＳＢ用、ＬＡＮ用という３つの異なる通信用インターフェイスを備えたカードリーダが開示されている（例えば、特許文献２参照）。このカードリーダでは、電子マネーに関するデータはＵＳＢ用の通信用インターフェイスを用いて上位装置からの信号を受け、クレジットカードに関するデータはＲＳ２３２Ｃ用の通信用インターフェイスを用いて別の上位装置からの信号を受けてデータのやり取りを行っている。
【０００５】
【特許文献１】特開平８−２８８９７９号公報
【特許文献２】特開２００３−１８７１９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のように通信用インターフェイス毎に異なるプログラムの管理をしていると、例えば共通機能など、通信部に関する機能以外の部分について修正が必要となった場合、各プログラムをそれぞれ修正する必要が生じるため修正に手間と時間がかかるという問題があった。しかも、通信用インターフェイスの異なるそれぞれのカードリーダについて、修正後のプログラムが問題なく機能するか検証を行う必要もあるために開発期間が長くなるという更なる問題もあった。
【０００７】
また、上位装置との通信を行うために例えば３種類の異なる通信用インターフェイスを備えたカードリーダにおいても同様の問題があった。すなわち、各通信用インターフェイスが処理を行う上位装置と１対１に設定されている場合には（例えば特許文献２参照）、上位装置からの指令に基づいて上述したＲＳ２３２Ｃ用やＵＳＢ用などのプログラムをそれぞれ独立して管理する手法に基づいていることから、各プログラムに対応して共通機能を修正しなければならないという問題があった。
【０００８】
さらに、特許文献２に記載のカードリーダにおいても、電子マネーに関する通信を、ＵＳＢ用の通信用インターフェイスではなく、ＲＳ２３２Ｃ用に変更したシステムを組み込もうとした場合、やはり、電子マネーに関する通信として、ＵＳＢ用の通信用インターフェイスを組み込んだプログラムとは別に、ＲＳ２３２Ｃ用の通信用のインターフェイスを組み込んだプログラムを独立して管理することになる。このため、組み込まれたプログラムは、不具合を直したり、またはセキュリティを高めるなどのために、そのたびごとに、複数のプログラムをそれぞれ修正しなければならない。さらに、修正したプログラムが正常に動作するかどうかの検証も行わなければならず、手間及び時間がかかるという問題があった。
【０００９】
そこで、本発明は、通信用インターフェイス毎に異なるプログラムの管理を不要とし、尚かつ各プログラムを修正し検証する場合の手間と時間とコストを削減し、さらには機器のコストアップと大型化を防ぐことのできる情報処理システムの下位装置、下位装置用動作制御プログラムおよび下位装置用動作制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
かかる目的を達成するため、本発明者は従来技術の内容などについて鋭意検討し、例えば特許文献２の場合、目的別のＤＢ（データベース）へアクセスする際に、電子マネーＤＢに関してはＵＳＢを使い、クレジットＤＢに関してはＲＳ２３２Ｃを使うというように機能別に固定的な通信用インターフェイスを切り換えるだけであることに着目した。この点についてさらに検討を重ねると、従来技術は、通信用インターフェイスの種別を判別して通信を行うというようなものではないとの知見が得られた。つまり、電子マネーＤＢにＲＳ２３２Ｃを経由してアクセスするのか、あるいは別の通信用インターフェイスを使用するのかを判別する方法等に関する特徴的な技術は特に開示されていないという結論が得られた。
【００１１】
本発明はかかる知見に基づくものであり、請求項１記載の発明は、情報処理システムの上位装置との間で通信を行うとともに状況に応じた処理を実施して当該上位装置に対し現在の状態と処理結果を送信する情報処理システムの下位装置において、当該下位装置のコンピュータは状況に応じた処理を実施するために当該下位装置の動作を制御するプログラムを備えており、尚かつこのプログラムにより、当該下位装置に備え付けられた通信用インターフェイスを制御する制御部を介して当該通信用インターフェイスの種別を判別する機能と、これら通信用インターフェイスを介して上位装置との間で通信を行う機能と、上位装置から送信されたコマンドを各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析する機能と、解析した後のコマンドに応じ、通信用インターフェイスに依存しない単一のモジュールを利用して当該下位装置の動作を制御する機能とを備えているというものである。
【００１２】
上述した知見に基づき、本発明者は、情報処理システムの下位装置（例えばカードリーダなど）が通信インターフェイスのみが異なり実体的な内容は同じ別々の機種であっても、同一のプログラムを各下位装置に設けられたコンピュータに組み込み、そのプログラムにより、通信用インターフェイスを制御する制御部を介してその通信用インターフェイス（およびこのインターフェイスに準拠した通信方法）を判別する機能、及び、判別した通信用インターフェイス（および通信方法）を用いて通信を行える機能に着目し、これを作成して検討した。このようにソフトウエア上で判別処理を実施するようにすれば、通信インターフェイスのみが異なり実体的な内容は同じ別々の機種であっても一つのプログラムにより対応することが可能となるため、仮に修正が必要になった場合であっても当該１つのプログラムを修正するだけで済むし、修正後の検証も１回で済む。
【００１３】
上述した情報処理システムの下位装置は、請求項２記載のように、電源立ち上げ時またはリセット時に通信用インターフェイスの種別の判別を自動的に行う機能を備えていることが好ましい。
【００１４】
また、請求項３記載のように、通信用インターフェイス用の通信ポートを１つのみ備えることも好ましい。
【００１５】
また、請求項４記載の発明は、請求項１記載の情報処理システムの下位装置において、通信用インターフェイスがＵＳＢとＲＳ２３２Ｃのいずれかであり、通信用インターフェイスの種別を判別する機能は、通信用インターフェイスがＵＳＢの場合に下位装置に内蔵されるＵＳＢコントローラＩＣ内部の特定のレジスタが割り当てられるアドレスの値を参照し、得られた値に基づき通信用インターフェイスの種別の判別を行うというものである。
【００１６】
この場合、レジスタとしては、請求項５記載のように予め初期値に特徴的な値を示すレジスタを選定しておくことが好ましい。
【００１７】
また、請求項６記載のように、特徴的な値を示すレジスタが複数設置されていることも好ましい。
【００１８】
請求項７記載の発明は、請求項１から６のいずれかひとつに記載の情報処理システムの下位装置がカードリーダであるというものである。
【００１９】
さらに、請求項８記載の発明は、情報処理システムの下位装置に設けられたコンピュータに、上位装置との間で通信を行わせるとともに状況に応じた処理を実施させて当該上位装置に対し現在の状態と処理結果を送信させる情報処理システムの下位装置用動作制御プログラムにおいて、当該下位装置に備え付けられた通信用インターフェイスを制御する制御部を介して当該通信用インターフェイスの種別を判別する機能と、これら通信用インターフェイスを介して上位装置との間で通信を行う機能と、上位装置から送信されたコマンドを各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析する機能と、この解析した後のコマンドに応じ、通信用インターフェイスに依存しない単一のモジュールを利用して当該下位装置の動作を制御する機能とを実現させるというものである。
【００２０】
さらに請求項９記載の発明は、情報処理システムの下位装置に設けられたコンピュータにより、上位装置との間で通信を行うとともに状況に応じた処理を実施して当該上位装置に対し現在の状態と処理結果を送信する情報処理システムの下位装置用動作制御方法において、当該下位装置に備え付けられた通信用インターフェイスを制御する制御部を介して当該通信用インターフェイスの種別を判別し、これら通信用インターフェイスを介して上位装置との間で通信を行い、上位装置から送信されたコマンドを各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析し、この解析した後のコマンドに応じ、通信用インターフェイスに依存しない単一のモジュールを利用して当該下位装置の動作を制御するというものである。
【発明の効果】
【００２１】
請求項１記載の情報処理システムの下位装置によると、プログラムを一元管理することが可能となり、従来のように通信用インターフェイス毎に異なるプログラムを管理する必要がなくなる。このため、ソフト上の修正が必要となった場合であっても従来より手間や時間がかからず、尚かつ検証も１回で済むようになることから、システム管理上の手間と時間とコストを大幅に削減することが可能となる。このように、１つのプログラムで複数の通信用インターフェイスに対応するという汎用性を備えれば開発コストや開発期間といった面でも効率的となり、この結果として開発効率を大幅に改善することにつながる。
【００２２】
請求項２記載の情報処理システムの下位装置によると、電源立ち上げ時またはリセット時に通信用インターフェイスの種別判別が行われることになり、電源立ち上げ時またはリセットのたびに通信用インターフェイスの判別をしあるいはその確認をすることができる。
【００２３】
請求項３記載の情報処理システムの下位装置によると、通信用インターフェイス用の通信ポートを１つのみ備えることとしているので、コスト削減と装置の小型化に有利となる。また、通信ポートが１つのみであるので、間違って他の通信ポートにつなげてしまうという問題も起こらない。さらに、使用していない通信ポートを使用して盗聴されることもなく、セキュリティ性が高まる。
【００２４】
請求項４記載の情報処理システムの下位装置は、通信用インターフェイスがＵＳＢとＲＳ２３２ＣのいずれかであるというシステムにおいてこれらＵＳＢとＲＳ２３２Ｃを判別することができる。また、通信用インターフェイスがＵＳＢの場合に下位装置に内蔵されるＵＳＢコントローラＩＣ内部の特定のレジスタが割り当てられるアドレスの値を参照し、得られた値に基づき通信用インターフェイスの種別の判別を行うことによってこれらＵＳＢとＲＳ２３２Ｃを判別することができる。
【００２５】
請求項５記載の情報処理システムの下位装置によると、レジスタとして予め初期値に特徴的な値を示すものを選定しておき、この値を参照して通信用インターフェイスの種別を判別することができる。
【００２６】
請求項６記載の情報処理システムの下位装置によると、特徴的な値を示す複数のレジスタ値を参照して通信用インターフェイスの種別を判別することができる。
【００２７】
請求項７記載の発明によると、情報処理システムを構成しているカードリーダにおいて通信用インターフェイスの種別の判別を行うことができる。
【００２８】
また、請求項８記載の情報処理システムの下位装置用動作制御プログラムによれば、当該プログラムを一元管理することが可能となり、従来のように通信用インターフェイス毎に異なるプログラムを管理する必要がなくなる。このため、ソフト上の修正が必要となった場合であっても従来より手間や時間がかからず、尚かつ検証も１回で済むようになることから、システム管理上の手間と時間とコストを大幅に削減することが可能となる。このように、１つのプログラムで複数の通信用インターフェイスに対応するという汎用性を備えれば開発コストや開発期間といった面でも効率的となり、この結果として開発効率を大幅に改善することにつながる。
【００２９】
さらに、請求項９記載の情報処理システムの下位装置用動作制御方法によっても、プログラムを一元管理することが可能となり、従来のように通信用インターフェイス毎に異なるプログラムを管理する必要がなくなる。このため、ソフト上の修正が必要となった場合であっても従来より手間や時間がかからず、尚かつ検証も１回で済むようになることから、システム管理上の手間と時間とコストを大幅に削減することが可能となる。このように、１つのプログラムで複数の通信用インターフェイスに対応するという汎用性を備えれば開発コストや開発期間といった面でも効率的となり、この結果として開発効率を大幅に改善することにつながる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の構成を図面に示す実施の形態に基づいて詳細に説明する。
【００３１】
図１〜図１１に本発明を適用した実施形態を示す。本発明にかかる情報処理システムの下位装置１は、情報処理システムの上位装置２との間で通信を行うとともにこの上位装置２から受信したコマンドに応じた処理を実施して当該上位装置２に対し現在の状態と処理結果を送信するというものである。さらに本実施形態における下位装置１の場合、当該下位装置１のコンピュータは上位装置２からのコマンドに応じて当該下位装置１の動作を制御するプログラムを備えており、尚かつこのプログラムにより、当該下位装置に備え付けられた通信用インターフェイスを制御する制御部を介して当該通信用インターフェイスの種別を判別する機能と、これら通信用インターフェイスを介して上位装置２との間で通信を行う機能と、上位装置２から送信されたコマンドを各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析する機能と、解析した後のコマンドに応じ、通信用インターフェイスに依存しない単一のモジュールを利用して当該下位装置１の動作を制御する機能とを備えている。
【００３２】
以下では、情報処理システムの下位装置１の一例として、カードに記録された情報を読み取りさらには必要に応じて新たな情報の書き込みを行う装置カードリーダに本発明を適用した場合について説明する（以下、「カードリーダ１」として説明する）。ちなみに、本発明における「上位装置」は例えばホストコンピュータ、あるいはコンピュータに内蔵されている制御装置や演算装置といった処理装置のことであり、下位装置がカードリーダ１である本実施形態であれば例えば当該カードリーダ１に接続されているホストコンピュータがこの上位装置の一例となる（以下、「ホストコンピュータ２」として説明する）。
【００３３】
本実施形態のカードリーダ１は、通信方法を判別する機能、つまり、どの通信用インターフェイス（入出力インターフェイス）が有効なのかを判別して通信を行う機能を備えている。もう少し具体的に説明すると、当該カードリーダ１とホストコンピュータ（上位装置）２との間においてどの通信用インターフェイスが有効なのかを、通信用インターフェイスを制御する制御部を介してカードリーダ１のＣＰＵ（中央処理装置）によって判別するようにしている（図３〜図５参照）。この場合の通信方法、すなわちどの通信用インターフェイスとそれに基づくコマンドが利用されているかについては、カードリーダ１およびホストコンピュータ２がどれを用いるか（用いる可能性があるか）に応じて対象が変わりうる。本実施形態では、種々の通信用インターフェイスのうち比較的広く普及した（あるいは広く普及しつつある）ＲＳ２３２Ｃ(Recommendation Standard-232C)およびＵＳＢ(Universal Serial Bus)の２つを取り上げ、これら両インターフェイスのいずれも使われる可能性がある場合を例示して以下に説明することにする（図３等参照）。
【００３４】
まず、カードリーダ１およびホストコンピュータ２の全体構成をブロック図として説明しておく（図３〜図５参照）。これらカードリーダ１およびホストコンピュータ２がＵＳＢ通信機種である場合、ホストコンピュータ２と制御部としてのＵＳＢコントローラＩＣ（図３および図４において符号３で示す）とがＵＳＢケーブル４を介して電気的に接続されることになる（図３参照）。ＵＳＢコントローラＩＣ３はカードリーダ１に内蔵された集積回路で、例えば本実施形態のＵＳＢコントローラＩＣ３は内部にレジスタを備えている。ＵＳＢコントローラＩＣ３が備えるこれら各種レジスタは各アドレスに割り当てられている（図３参照）。そして、これらのレジスタの中から予め初期値に特徴的な値を示すものを選定しておくが好ましい。こうした場合、特徴的な値を参照して通信用インターフェイスが例えばＵＳＢがあるいはそうでないかを精度よく判別できる。さらには、この場合においては特徴的な値を示すレジスタを複数設置することも好ましい。こうした場合には、特徴的なレジスタ値であって各々値が異なるものをその数の分だけ参照することが可能となる。
【００３５】
このＵＳＢコントローラＩＣ３とＣＰＵとの間においては、アドレス番号がアドレスバスによってＣＰＵからＵＳＢコントローラＩＣ３へと転送され、データがデータバスによって双方向に転送される（図３参照）。このような構成を含むカードリーダ１とホストコンピュータ２との間においては、まずＣＰＵにおいてデータを必要に応じて実効アドレスに変換し、ＵＳＢコントローラＩＣ３へと転送し、特定のレジスタのアドレスを指定する（図４参照）。ＵＳＢコントローラＩＣ３はこのアドレス値に該当するデータをＣＰＵに転送する。ＣＰＵはこのデータを参照する。このような処理構成を利用して、ＣＰＵはＵＳＢコントローラＩＣ３内部の特定のレジスタの値を参照し、これによって得られた値に基づき通信用インターフェイスの種別を判別する。
【００３６】
次に、カードリーダ１およびホストコンピュータ２の全体構成として、これらカードリーダ１およびホストコンピュータ２がＲＳ２３２Ｃ通信機種である場合について説明する（図５参照）。この場合のＣＰＵは例えばＲＳ２３２Ｃ通信ポート５を備え、このポート５にＲＳ２３２ＣドライバＩＣ６が電気的に接続された構成となっている。ＲＳ２３２ＣドライバＩＣ６とホストコンピュータ２とはＲＳ２３２Ｃケーブル（クロスケーブル）７によって接続される（図５参照）。
【００３７】
続いて、このカードリーダ１に格納されている動作制御プログラムおよびこの動作制御プログラムによって実現される動作制御の内容についてフローチャートを使って説明する（図１参照）。この動作制御プログラムは、カードリーダ１のコンピュータに対し、ホストコンピュータ２との間で通信を行わせるとともにこのホストコンピュータ２から受信したコマンドに応じた処理を実施させて当該ホストコンピュータ２に対し現在の状態と処理結果を送信させるというものであり、また、判別した通信用インターフェイスに準拠したプロトコルによって当該コンピュータにホストコンピュータ（上位装置）２との通信を行わせるようになっている。本実施形態の動作制御プログラムが有する種々の特有の機能については、図１中のフローの中で順次説明することにする。
【００３８】
図１に、この動作制御プログラムによってカードリーダ１の動作を制御する際の処理フロー例を示す。図１においては、この動作制御プログラムによって実現可能な「インターフェイスの判別機能」、「上位装置との通信機能」、「コマンド解析機能」、「下位装置を動作させる機能」のそれぞれを破線で囲むことによって示している。
【００３９】
まず、「インターフェイスの判別機能」について説明する（図１のステップ１〜ステップ８形態であれば上述したようにＵＳＢとＲＳ２３２Ｃのいずれの種別なのかを、通信用インターフェイス、ステップ１２参照）。これは、カードリーダ１に備え付けられた通信用インターフェイスの種別を通信用インターフェイスを制御する制御部を介して判別するという機能で、例えば本実施がＵＳＢの場合に内蔵されるコントローラＩＣ３が割り当てられるアドレスを参照して判別する。ステップに沿った処理内容を説明すると、まずカードリーダ１の電源をＯＮにし（ステップ１）、ＣＰＵを初期化し（ステップ２）、その後、３つのアドレスのデータを参照する。すなわち、ＣＰＵでアドレスＡ１のアドレス値を読み込み、この値がＵＳＢコントローラＩＣ３のレジスタ１の初期値と合致するかどうかを判断する（ステップ３）。合致している場合には、同様の処理、すなわちアドレスＡ２のアドレス値とレジスタ２の初期値とが合致するかどうかの判断（ステップ４）、およびアドレスＡ３のアドレス値とレジスタ２の初期値とが合致するかどうかの判断（ステップ５）を行う。いずれも合致した場合には、当該情報処理システム（あるいはカードリーダ１）にＵＳＢコントローラ（ＩＣを含む）が搭載されていると判断する（ステップ６）。逆に、ステップ３〜５において１回でも値が合致しなければ当該情報処理システム（あるいはカードリーダ１）はＲＳ２３２Ｃ通信の機種であると判断し、ＲＳ２３２Ｃ通信の機種としての処理を開始する（ステップ１２）。ステップ６でＵＳＢコントローラ（ＩＣを含む）が搭載されていると判断したら、ＵＳＢのEnumerationが完了するのを待つ（ステップ７）。Enumerationは、一般には情報処理システムに登録されているユーザ・アカウントやＩＰアドレス、ホスト名などの一覧を取得するための「列挙」などと呼ばれる動作のことであり、例えばこのステップ７のようにＵＳＢが行う場合であれば、Plug and Play 動作つまり他の装置と自動的に機器認識する動作ないしその機能が該当する。このＵＳＢのEnumerationが完了したら（ステップ８）、次のステップ９へと進む。このステップ８あるいは上述のステップ１２で「インターフェイスの判別機能」が終了する。
【００４０】
次に「上位装置との通信機能」について説明する（図１のステップ９〜１０、ステップ１３〜１４参照）。この機能は、通信用インターフェイス（ＵＳＢまたはＲＳ２３２Ｃ）を介してホストコンピュータ２との間で通信を行うというものであり、本実施形態であれば、ステップ８においてＵＳＢのEnumerationが完了した後にＵＳＢコントローラ（ＩＣを含む）からのコマンドを受信するのを待ち（ステップ９）、さらに受信したコマンドを処理するまでのステップ（ステップ１０）が該当する（図１参照）。コマンドを受信することができれば、すなわち上位装置（この場合、ホストコンピュータ２）との通信が行えたことになる。また、通信用インターフェイスがＲＳ２３２Ｃである場合にも以上の機能ないし処理は同様となる。すなわち、ＲＳ２３２Ｃ通信ポート５からのコマンドを受信するのを待ち（ステップ１３）、コマンドを受信したらこれを処理する（ステップ１４）。
【００４１】
続いては「コマンド解析機能」である（図１のステップ１１、ステップ１５参照）。この機能は、ホストコンピュータ２から送信されたコマンドを各通信用インターフェイスごとに対応した処理を行うモジュールを利用して解析するというものであり、例えば本実施形態であればステップ１０またはステップ１４にて受信し処理したコマンドを解析処理し、現在、コマンドを実行できるか否かのチェックなど（ステップ１１）、さらには、ＲＳ２３２Ｃの場合はＣＲＣチェック（巡回冗長検査）など（ステップ１５）、を行う。
【００４２】
続いては、「下位装置を動作させる機能」である（図１のステップ１６参照）。この機能は、「コマンド解析機能」によって解析した後のコマンドに応じ、通信用インターフェイスに依存しない単一のモジュールを利用して当該カードリーダ１の動作を制御するというものである。ここでは「通信用インターフェイスに依存しない単一のモジュール」という表現を用いているが、これは通信用インターフェイスがＵＳＢとＲＳ２３２Ｃのいずれであっても利用可能な汎用性のあるモジュールのことを意味している。具体例を挙げてもう少し詳しく説明すると、例えば従来であればコマンドデータ受信機能、コマンド解析機能、レスポンス送信機能といった各機能が汎用性のないものとなっていたのに対し（図１２参照）、本実施形態の場合にはこれら各機能のいずれとも汎用性のあるものとして、通信用インターフェイスがＵＳＢとＲＳ２３２Ｃのいずれである場合にもそのまま利用できるプログラムを構築している（図２参照）。つまり、このプログラムは汎用性あるコマンド実行機能を有する点では従来と変わらないが、このことに加え、コマンドデータ受信機能、コマンド解析機能、レスポンス送信機能といった各機能として判別結果に基づきＲＳ２３２Ｃ／ＵＳＢのいずれかの処理を実施できる汎用性のあるものを有することにより、通信用インターフェイスの種別にかかわらず利用可能な汎用プログラムとして成立している（図２参照）。
【００４３】
ここまで動作制御プログラムおよびこの動作制御プログラムによって実現される動作制御の内容についてフローチャートを使って説明したが、さらに、通信コマンドの具体例についても併せて説明しておく（図６〜図１１参照）。まず、ＵＳＢ通信である場合のデバイス受信コマンドの一例を図６に示す。この場合、カードリーダ１はあるフィールドのデータがＣのコマンドを受信したことになる（ステップ９，１０）。カードリーダ１はこのコマンドを解析処理し、実行可能であればこれを実行処理する（ステップ１１，１６）。この結果、コマンド成功時にはホストコンピュータ２に対して例えばあるフィールドのデータがＰのレスポンスデータを送信する（図７参照）。逆に、コマンドを失敗した時であればホストコンピュータ２に対し例えばあるフィールドのデータがＮのレスポンスデータを送信する（図８参照）。なお、ここまでの説明で明らかなように、コマンドおよびレスポンスのうちコアとなるデータ部分はほぼ共通する。
【００４４】
次にＲＳ２３２Ｃ通信である場合について、デバイス受信コマンドの一例を図９に示す。この場合、カードリーダ１はあるフィールドのデータがＣのコマンドを受信したことになる（ステップ１３，１４）。カードリーダ１はこのコマンドを解析処理し、実行可能であればこれを実行処理する（ステップ１５，１６）。この結果、コマンド成功時にはホストコンピュータ２に対して例えばあるフィールドのデータがＰのレスポンスデータを送信する（図１０参照）。逆に、コマンドを失敗した時であればホストコンピュータ２に対し例えばあるフィールドのデータがＮのレスポンスデータを送信する（図１１参照）。
【００４５】
以下では、さらに具体例を挙げて本実施形態の説明をする。ＵＳＢ機に関しては例えば沖電気工業株式会社製のＵＳＢコントローラＩＣ３（ML60851Dor 2A）が搭載された構成などとすることができる。また、カードリーダ１に組み込まれた動作制御プログラムは、電源立ち上げ（又はリセット）時に同ＵＳＢコントローラＩＣ３（ML60851Dor 2A）が搭載されているか否かを判別する機能を備えていることも好ましい。この場合、ＵＳＢコントローラＩＣ３（ML60851Dor 2A）が搭載されていることが確認できたらＵＳＢ機、搭載されていなければＲＳ２３２Ｃ機と判断し、以後その判別結果に基づき、いずれかの通信方法で予め決められた通信プロトコルで上位装置（ホストコンピュータ２）との通信を行いカードリーダ１としての処理を実施する。また、ＵＳＢコントローラＩＣ３（ML60851Dor 2A）のレジスタの中には、そのＩＣ自身にリセットがかけられた直後に初期値が設定されているものがある。例えば、予め初期値が特徴的な値を示すレジスタを選定しておくこととすれば、当該動作制御プログラムは電源立ち上げ（又はリセット）時にそれらの特徴的な値を示すレジスタのアドレスを参照することになる。参照の結果、判断基準となる特徴的な値と異なる値が読み出されたのであれば、沖電気工業株式会社製のＵＳＢコントローラＩＣ３（ML60851Dor 2A）が搭載されていないものと判断する。
【００４６】
以上説明したように、本実施形態にかかるカードリーダ１によれば、２以上の通信用インターフェイスのうちのいずれもが利用される可能性のある情報処理システムにおいて、１つのプログラムのみによって有効な通信用インターフェイスを判別し、システムに適した通信手段を選択して正常な通信を行うことが可能となっている。このように、本実施形態にかかる情報処理システムによれば、従来ならば別々に用意されていた通信用インターフェイス別のプログラムを一元管理することが可能となるし、またソフトウエア上でのバグといった不具合の修正が必要となった場合にも当該１つのプログラムの修正・検証だけで済むので開発効率を大幅に改善することも可能となる。
【００４７】
なお、上述の実施形態は本発明の好適な実施の一例ではあるがこれに限定されるものではなく本発明の要旨を逸脱しない範囲において種々変形実施可能である。例えば、本実施形態においては具体例として沖電気工業株式会社製のＵＳＢコントローラＩＣ３を例示したがこれは一例に過ぎず、これ以外のＵＳＢコントローラＩＣ３であっても構わないのはいうまでもない。この場合、電源立ち上げ（又はリセット）時にそのコントローラＩＣ３が搭載されていることが判別できれば上に例示したのと同様の構成とすることも可能である。
【００４８】
また、電源立ち上げ（又はリセット）時に通信用インターフェイスの種別の判別を行うことが好ましいことを説明したが、これに関してさらに説明を加えると、初めての電源立ち上げ時にはＵＳＢまたはＲＳ２３２Ｃのいずれなのかを判別し、その結果情報をコンピュータの不揮発性メモリ等に記憶させておくことも好ましい（図２参照）。こうした場合には、それ以降その情報に基づいて通信方法を決定することも可能となる。
【００４９】
さらに、本実施形態においてはカードリーダ１の電源をＯＮにし（ステップ１）、ＣＰＵを初期化し（ステップ２）、Ａ１，Ａ２，Ａ３という３つのアドレスのデータを参照したがこれも一例にすぎず、情報処理システムやそこに含まれるカードリーダ（下位装置）１の態様などに応じてアドレスや参照箇所は適宜変更して構わない。ただ、通信用インターフェイスの種別判断（例えば、ＵＳＢなのかＲＳ２３２Ｃなのか）の精度をより高めるという観点からすれば、レジスタとしては、予め初期値に特徴的な値を示すレジスタを選定しておくことが好ましいし、さらには、複数のレジスタを設定しておきアドレス参照を複数回実施することが好ましい。
【００５０】
また、本実施形態においては通信用インターフェイスとしてＲＳ２３２ＣとＵＳＢの２つを例示して説明したがこれも例示に過ぎない。例えば上述したカードリーダ１等からなる情報処理システムにおいてこれら以外のインターフェイスを使った通信方法が採用されている場合であっても、当該通信用コントローラの有無を認識する構成とすれば本実施形態と同様に判別を行うことができる。
【００５１】
加えて、本実施形態では下位装置がカードリーダ１であり上位装置がホストコンピュータ２である情報処理システムを例示して説明したがこれも一例に過ぎない。要は、上位装置と下位装置との間で通信が行われ、上位装置から受信したコマンドに応じて下位装置が処理を実施し、当該上位装置に対し現在の状態と処理結果を送信する情報処理システムを対象として本発明を適用することが可能である。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施形態を示す図で、情報処理システムの下位装置用動作制御プログラムにより実現される処理内容を表したフローチャートである。
【図２】本発明にかかる動作制御プログラムの機能を従来との対比で違いを解りやすく示した概略図である。
【図３】通信用インターフェイスがＵＳＢである場合のＣＰＵからホストコンピュータまでの全体構成を簡単に示したブロック図である。
【図４】図３に示したＣＰＵとＵＳＢコントローラＩＣとの間のデータの送受信の様子を簡単に示した図である。
【図５】通信用インターフェイスがＲＳ２３２Ｃである場合のＣＰＵからホストコンピュータまでの全体構成を簡単に示したブロック図である。
【図６】ＵＳＢ通信コマンドのうちデバイス受信コマンドの一例を示した図である。
【図７】ＵＳＢ通信コマンドのうちコマンド成功時におけるレスポンスの一例を示した図である。
【図８】ＵＳＢ通信コマンドのうちコマンド失敗時におけるレスポンスの一例を示した図である。
【図９】ＲＳ２３２Ｃ通信コマンドのうちデバイス受信コマンドの一例を示した図である。
【図１０】ＲＳ２３２Ｃ通信コマンドのうちコマンド成功時におけるレスポンスの一例を示した図である。
【図１１】ＲＳ２３２Ｃ通信コマンドのうちコマンド失敗時におけるレスポンスの一例を示した図である。
【図１２】従来の動作制御プログラムの機能を解りやすく示した概略図である。
【符号の説明】
【００５３】
１  カードリーダ（下位装置）
２  ホストコンピュータ（上位装置）
３  ＵＳＢコントローラＩＣ
【図１】
2006127128.tif 000003
【図２】
2006127128.tif 000004
【図３】
2006127128.tif 000005
【図４】
2006127128.tif 000006
【図５】
2006127128.tif 000007
【図６】
2006127128.tif 000008
【図７】
2006127128.tif 000009
【図８】
2006127128.tif 000010
【図９】
2006127128.tif 000011
【図１０】
2006127128.tif 000012
【図１１】
2006127128.tif 000013
【図１２】
2006127128.tif 000014