(57)【特許請求の範囲】
【請求項１】
共通のデータバスを介して複数のデバイスを接続されうる処理装置が該デバイスの接続状態を認識する方法であって、
該処理装置の製造時に、該データバスを成す複数のデータ信号線の一部もしくは全部において、各データ信号線に一つの該デバイスを割り当て、割り当てられた該デバイスの接続状態に応じて、該データ信号線を予め、プルアップ抵抗を介して高電位に接続、もしくは、プルダウン抵抗を介して低電位に接続しておき、
該処理装置が、該デバイスとして、前記処理装置に接続されうる該複数のデバイスの接続状態を示す情報を設定された構成情報レジスタを所定アドレスに保持するプログラム格納用外部記憶部が接続されているか否かを、該プログラム格納用外部記憶部が割り当てられた該データ信号線の該プルアップ抵抗／該プルダウン抵抗により生成される高電位状態／低電位状態に基づいて認識し、
該プログラム格納用外部記憶部が接続されている場合には、該処理装置が、該プログラム格納用外部記憶部に格納されているプログラムを起動するとともに、該処理装置に接続された該デバイスに対応したデバイス制御プログラムのみを起動させるべく、該プログラム格納用外部記憶部の前記所定アドレスに対してアクセスすることにより該構成情報レジスタの該情報を読み出し、読み出された該構成情報レジスタの該情報に基づいて該デバイスの接続状態を認識する一方、  
該プログラム格納用外部記憶部が接続されていない場合には、該処理装置が、該処理装置に接続された該デバイスに対応したデバイス制御プログラムのみを起動させるべく、該複数のデータ信号線の一部もしくは全部において該プルアップ抵抗／該プルダウン抵抗により生成される高電位状態／低電位状態を構成情報データとして読み取り、読み取られた該構成情報データに基づいて、該デバイスの接続状態を認識することを特徴とする、デバイス接続状態認識方法。
【請求項２】
共通のデータバスを介して複数のデバイスを接続されうる処理装置であって、
該データバスを成す複数のデータ信号線の一部もしくは全部において、各データ信号線に一つの該デバイスを割り当て、割り当てられた該デバイスの接続状態に応じて、該データ信号線が、製造時に予め、プルアップ抵抗を介して高電位に接続、もしくは、プルダウン抵抗を介して低電位に接続されており、
該デバイスとして、前記処理装置に接続されうる該複数のデバイスの接続状態を示す情報を設定された構成情報レジスタを所定アドレスに保持するプログラム格納用外部記憶部が接続されているか否かを、該プログラム格納用外部記憶部が割り当てられた該データ信号線の該プルアップ抵抗／該プルダウン抵抗により生成される高電位状態／低電位状態に基づいて認識する認識部をそなえ、
該認識部が、該プログラム格納用外部記憶部が接続されていることを認識すると、該プログラム格納用外部記憶部に格納されているプログラムを起動させるとともに、該プログラム格納用外部記憶部の前記所定アドレスに対してアクセスすることにより該構成情報レジスタの該情報を読み出し、読み出された該構成情報レジスタの該情報に基づいて該デバイスの接続状態を認識し、該処理装置に接続された該デバイスに対応したデバイス制御プログラムのみを起動する一方、
該認識部が、該プログラム格納用外部記憶部が接続されていないことを認識すると、該複数のデータ信号線の該プルアップ抵抗／該プルダウン抵抗により生成される高電位状態／低電位状態を構成情報データとして読み取り、読み取られた該構成情報データに基づいて該デバイスの接続状態を認識し、該認識部が接続されていることを認識した該デバイスに対応したデバイス制御プログラムのみを起動することを特徴とする、デバイス接続状態認識機能を有する処理装置。
【発明の詳細な説明】
【０００１】
（目次）
発明の属する技術分野
従来の技術（図２８，図２９）
発明が解決しようとする課題（図３０〜図３２）
課題を解決するための手段（図１）
発明の実施の形態
〔１〕本実施形態の電子マネー制御用集積回路（プロトコルコントローラ）の説明（図２〜図１３）
〔２〕本実施形態のプロトコルコントローラにおけるデバイス接続状態認識手法の説明（図１４〜図１９）
〔３〕本実施形態におけるプロトコルコントローラとＩＣカードとの間のデータ転送制御手法の説明（図２０〜図２７）
〔４〕その他
発明の効果
【０００２】
【発明の属する技術分野】
本発明は、共通のデータバスを介して複数のデバイスを接続されこれらのデバイスを制御したりこれらのデバイスを用いて制御動作を行なったりする処理装置がデバイスの接続状態を認識するための方法に関するとともに、この方法を適用された、デバイス接続状態認識機能を有する処理装置に関する。
【０００３】
【従来の技術】
図２８は、一般的な処理装置に複数のデバイスを接続してなるシステムの構成例を示すブロック図であり、この図２８に示す処理装置１００には、複数のデバイスとして、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）１２１，ＲＡＭ１２２およびＲＯＭ１２３が接続されている。これらのＬＣＤ１２１，ＲＡＭ１２２およびＲＯＭ１２３と処理装置１００との間は、８ビットのデータ信号線ＤＴ０〜ＤＴ７からなる共通のデータバス１１０により接続されるとともに、ＬＣＤ１２１，ＲＡＭ１２２およびＲＯＭ１２３は、それぞれ、アドレス信号や制御信号等をやり取りするための信号線１１１ａ，１１１ｂ，１１１ｃを介して処理装置１００に接続されている。
【０００４】
そして、処理装置１００は、信号線１１１ａを介してＬＣＤ１２１に対し表示制御信号を送るとともに、データバス１１０を介してＬＣＤ１２１に表示データを送ることにより、ＬＣＤ１２１での表示制御を行なう。また、処理装置１００は、信号線１１１ｂを介してＲＡＭ１２２に対しアドレス信号や書込／読出指示信号を送ることにより、データバス１１０を介して、ＲＡＭ１２２へのデータ書込やＲＡＭ１２２からのデータ読出を制御する。さらに、処理装置１００は、信号線１１１ｃを介してＲＯＭ１２３に対しアドレス信号や読出指示信号を送ることにより、データバス１１０を介して、ＲＯＭ１２３からのデータ読出を制御する。
【０００５】
ところで、図２９に示すシステムは、例えば図２８に示すシステムからＲＯＭ１２３を取り除いたもので、処理装置１００に、デバイスとしてＬＣＤ１２１およびＲＡＭ１２２を接続した構成を有している。
図２８に示すシステムと図２９に示すシステムとでは、処理装置１００に対するデバイスの接続状態が異なっているが、このようなデバイスの接続状態の差異（つまり処理装置１００に接続されているデバイス）を検出し認識する手段を、通常、処理装置１００は有していない。
【０００６】
そこで、処理装置１００に、デバイスの接続の有無を検出する手段をもたせるために、検出専用の信号線を設けることも考えられる。
【０００７】
【発明が解決しようとする課題】
しかし、検出専用の信号線を設けてデバイスの接続状態を認識する手法では、処理装置に接続されるデバイスの数が増大するとその数に応じて検出専用の信号線の本数も増大することになり、例えば処理装置が集積回路である場合、チップ上における信号線が増大するため、信号線を高密度に配線しなければならず高コスト化を招いている。従って、検出専用の信号線を追加することなく、デバイスの接続状態を認識できるようにすることが望まれている。
【０００８】
一方、通常、各種用途で利用されるコンピュータシステムには、その用途に応じて複数のデバイスがそなえられ、これらのデバイスが処理装置（制御用の集積回路等）によって制御される。このようなシステムでは、各種デバイスを制御するために、接続されたデバイスに応じたドライバ／ハンドラ（デバイス制御プログラム）がＲＯＭに予め格納されており、処理装置を成すＣＰＵは、システムの起動時に、ドライバ／ハンドラをＲＯＭから読み出して起動させている。
【０００９】
例えば図３０（ａ）に示すように、４つのデバイスＤ１，Ｄ３，Ｄ４，Ｄ８を有するハードウェア２００には、これらのデバイスＤ１，Ｄ３，Ｄ４，Ｄ８をそれぞれ制御する４つのドライバ／ハンドラ（デバイス制御プログラム）を予め搭載したＲＯＭ２１０が内蔵されている。この場合、システム起動時に、ハードウェア２００内のＣＰＵは、図３０（ｂ）に示すように、４つのデバイスＤ１，Ｄ３，Ｄ４，Ｄ８のドライバ／ハンドラを、順次、ＲＯＭ２１０から読み出して起動させる（ステップＡ１１〜Ａ１４参照）。
【００１０】
また、図３１（ａ）に示すように、６つのデバイスＤ１，Ｄ２，Ｄ３，Ｄ４，Ｄ７，Ｄ８を有するハードウェア２０１には、これらのデバイスＤ１〜Ｄ４，Ｄ７，Ｄ８をそれぞれ制御する６つのドライバ／ハンドラ（デバイス制御プログラム）を予め搭載したＲＯＭ２１１が内蔵されている。この場合、システム起動時に、ハードウェア２０１内のＣＰＵは、図３１（ｂ）に示すように、６つのデバイスＤ１〜Ｄ４，Ｄ７，Ｄ８のドライバ／ハンドラを、順次、ＲＯＭ２１１から読み出して起動させる（ステップＡ２１〜Ａ２６参照）。
【００１１】
同様に、図３２（ａ）に示すように、２つのデバイスＤ７，Ｄ１０を有するハードウェア２０２には、これらのデバイスＤ７，Ｄ１０をそれぞれ制御する２つのドライバ／ハンドラ（デバイス制御プログラム）を予め搭載したＲＯＭ２１２が内蔵されている。この場合、システム起動時に、ハードウェア２０２内のＣＰＵは、図３２（ｂ）に示すように、２つのデバイスＤ７，Ｄ１０のドライバ／ハンドラを、順次、ＲＯＭ２１２から読み出して起動させる（ステップＡ３１，Ａ３２参照）。
【００１２】
このように、コンピュータシステム毎に、接続されているデバイスが異なる場合、各コンピュータシステムのデバイスに対応したＲＯＭを準備しなければならない。
一般に、各種コンピュータシステムに接続されるデバイスは、用途毎に全く異なるわけではなく、共通して用いられるものが多くある。例えば、前述したようなＬＣＤ，ＲＡＭ，ＲＯＭのほか、キーボード，プリンタ，ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カードなど、何種類かのものに限られている。つまり、これらのデバイスの中から幾つかが選択されて接続されている。
【００１３】
そこで、コンピュータシステムに接続される可能性のある全てのデバイスのドライバ／ハンドラ（デバイス制御プログラム）を予め搭載した汎用ＲＯＭを準備し、システム起動時には、そのシステムに接続されているデバイスを認識し、認識されたデバイスのドライバ／ハンドラ（デバイス制御プログラム）を汎用ＲＯＭから読み出して起動させることも考えられる。例えば、図３０〜図３２に示した例について言えば、デバイスＤ１〜Ｄ１０のドライバ／ハンドラ（デバイス制御プログラム）を全て搭載した汎用ＲＯＭを準備する。このようにすれば、コンピュータシステム毎に異なるＲＯＭを準備する必要がなくなり、ＲＯＭへのプログラム搭載に要する手間を省けるとともに部品管理を簡略化できるので、システム製造に要するコストを削減することができる。
【００１４】
しかし、従来、前述したように、処理装置は、この処理装置に接続されているデバイスを認識する手段を有していないので、ＲＯＭを汎用化しても、必要なドライバ／ハンドラ（デバイス制御プログラム）のみを読み出して起動させることができない。
また、汎用ＲＯＭを利用可能にすべく、デバイスの接続状態を認識するための検出専用の信号線を設けると、前述した通り、チップ上の信号線の増大／高密度化ひいては高コスト化を招くことになってしまう。従って、検出専用の信号線を追加することなくデバイスの接続状態を認識できるようにすることが、より強く望まれている。
【００１５】
本発明は、このような状況に鑑み創案されたもので、検出専用の信号線を追加することなく、デバイスの接続状態を認識できるようにした、デバイス接続状態認識方法およびデバイス接続状態認識機能を有する処理装置を提供することを目的とする。
【００１６】
【課題を解決するための手段】
図１は本発明の原理説明図であり、この図１に示すように、本発明のデバイス接続状態認識方法（請求項１）は、共通のデータバス１１０を介して複数のデバイス１２０−０〜１２０−ｎを接続されうる処理装置１００が、これらのデバイス１２０−０〜１２０−ｎの接続状態を認識する方法である。なお、図１では、少なくとも４つのデバイス１２０−２，１２０−３，１２０−４，１２０−ｎを処理装置１００に接続した状態が図示されており、デバイス１２０−０，１２０−１，１２０−５〜１２０−（ｎ−１）  の図示は省略されている。
【００１７】
処理装置１００とデバイス群１２０との間は、データバス１１０，制御線（CRTL Line)１１１およびアドレスバス１１２により接続されている。ここで、データバス１１０はｎ＋１本のデータ信号線ＤＴ０〜ＤＴｎから構成されている。
本発明のデバイス接続状態認識方法（請求項１）では、処理装置１００の製造時に、これらのデータ信号線ＤＴ０〜ＤＴｎの一部もしくは全部を、デバイス１２０−０〜１２０−ｎの接続状態に応じて、予め、プルアップ抵抗１１３を介して高電位（＋Ｖ）に接続、もしくは、プルダウン抵抗１１４を介して低電位（グラウンド：ＧＮＤ）に接続しておき、処理装置１００が、デバイスとして、処理装置１００に接続されうる複数のデバイス１２０−０〜１２０−ｎの接続状態を示す情報を設定された構成情報レジスタを所定アドレスに保持するプログラム格納用外部記憶部が接続されているか否かを、このプログラム格納用外部記憶部が割り当てられたデータ信号線のプルアップ抵抗１１３／プルダウン抵抗１１４により生成される高電位状態／低電位状態に基づいて認識し、プログラム格納用外部記憶部が接続されている場合には、処理装置１００が、プログラム格納用外部記憶部に格納されているプログラムを起動するとともに、処理装置１００に接続されたデバイス１２０−０〜１２０−ｎに対応したデバイス制御プログラムのみを起動させるべく、プログラム格納用外部記憶部の前記所定アドレスに対してアクセスすることにより構成情報レジスタの情報を読み出し、読み出された構成情報レジスタの情報に基づいてデバイス１２０−０〜１２０−ｎの接続状態を認識する一方、プログラム格納用外部記憶部が接続されていない場合には、処理装置１００が、この処理装置１００に接続されたデバイス１２０−０〜１２０−ｎに対応したデバイス制御プログラムのみを起動させるべく、複数のデータ信号線ＤＴ０〜ＤＴｎの一部もしくは全部においてプルアップ抵抗１１３／プルダウン抵抗１１４により生成される高電位状態／低電位状態を構成情報データとして読み取り、読み取られたその構成情報データに基づいて、デバイス１２０−０〜１２０−ｎの接続状態（これらのデバイス１２０−０〜１２０−ｎのうちどのデバイスが接続されているか）を認識している。
【００１８】
そして、請求項２に記載された本発明のデバイス接続状態認識機能を有する処理装置１００は、上述したプルアップ抵抗１１３／プルダウン抵抗１１４を有しているほか、デバイスとして、処理装置１００に接続されうる複数のデバイス１２０−０〜１２０−ｎの接続状態を示す情報を設定された構成情報レジスタを所定アドレスに保持するプログラム格納用外部記憶部が接続されているか否かを、このプログラム格納用外部記憶部が割り当てられたデータ信号線のプルアップ抵抗／プルダウン抵抗により生成される高電位状態／低電位状態に基づいて認識する認識部をそなえ、この認識部が、プログラム格納用外部記憶部が接続されていることを認識すると、プログラム格納用外部記憶部に格納されているプログラムを起動させるとともに、プログラム格納用外部記憶部の前記所定アドレスに対してアクセスすることにより構成情報レジスタの情報を読み出し、読み出された構成情報レジスタの情報に基づいてデバイス１２０−０〜１２０−ｎの接続状態を認識し、処理装置１００に接続されたデバイスに対応したデバイス制御プログラムのみを起動する一方、認識部が、プログラム格納用外部記憶部が接続されていないことを認識すると、複数のデータ信号線ＤＴ０〜ＤＴｎのプルアップ抵抗／プルダウン抵抗により生成される高電位状態／低電位状態を構成情報データとして読み取り、読み取られた構成情報データに基づいてデバイス１２０−０〜１２０−ｎの接続状態を認識し、認識部が接続されていることを認識したデバイス１２０−０〜１２０−ｎに対応したデバイス制御プログラムのみを起動するように構成されている。
【００１９】
例えば図１に示す処理装置１００には、ｎ＋１個のデバイス１２０−０〜１２０−ｎが接続される可能性があり、これらのデバイス１２０−０〜１２０−ｎのうちデバイス１２０−ｉが処理装置１００に接続されている場合には、データバス１１０のデータ信号線ＤＴｉを、プルダウン抵抗１１４を介して低電位（グラウンド：ＧＮＤ）に接続する。一方、これらのデバイス１２０−０〜１２０−ｎのうちデバイス１２０−ｊが処理装置１００に接続されていない場合には、データバス１１０のデータ信号線ＤＴｊを、プルアップ抵抗１１３を介して高電位（＋Ｖ）に接続する。
【００２０】
より具体的に、図１に示す処理装置１００には、少なくとも４つのデバイス１２０−２，１２０−３，１２０−４，１２０−ｎが接続されているので、データ信号線ＤＴ２，ＤＴ３，ＤＴ４，ＤＴｎはプルダウン抵抗１１４を介して低電位に接続されている。また、データ信号線ＤＴ０，ＤＴ１，ＤＴｎ−１  がプルアップ抵抗１１３を介して高電位に接続されているので、図１に示す処理装置１００に少なくともデバイス１２０−０，１２０−１，１２０−（ｎ−１）  は接続されていない。さらに、データ信号線ＤＴｎ−２  がプルダウン抵抗１１４を介して低電位に接続されているので、図１に示す処理装置１００にはデバイス１２０−（ｎ−２）  が接続されている。
【００２１】
なお、上述とは逆に、デバイス１２０−ｉが処理装置１００に接続されている場合、データバス１１０のデータ信号線ＤＴｉを、プルアップ抵抗１１３を介して高電位に接続する一方、デバイス１２０−ｊが処理装置１００に接続されていない場合、データバス１１０のデータ信号線ＤＴｊを、プルダウン抵抗１１４を介して低電位に接続してもよい。
【００２２】
これにより、処理装置（認識部）１００は、データ信号線ＤＴ０〜ＤＴｎにおいてプルアップ抵抗１１３／プルダウン抵抗１１４により生成される高電位状態（１）／低電位状態（０）を構成情報データとして読み取るだけで、その構成情報データに基づいて、デバイス１２０−０〜１２０−ｎのうちどのデバイスが接続されているかという接続情報を認識することができる。
【００２４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
〔１〕本実施形態の電子マネー制御用集積回路（プロトコルコントローラ）の説明図２は本発明を適用される電子マネー制御用集積回路（プロトコルコントローラ）の構成を模式的に示す図である。
【００２５】
この図２に示す本実施形態の電子マネー制御用集積回路（以下、プロトコルコントローラという）２０は、通貨の電子的象徴として定義される電子マネーを取り扱う取引装置、例えばＡＴＭ（Ａｕｔｏｍａｔｉｃ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ），ＥＣＲ（Ｅｌｅｃｔｒｉｃ  Ｃａｓｈ  Ｒｅｇｉｓｔｅｒ），電子マネーロード端末，電子財布，ＰＯＳ（Ｐｏｉｎｔ  Ｏｆ  Ｓａｌｅｓ：販売時点情報管理）システムを成すＰＯＳ端末／携帯ＰＯＳ端末（ハンディＰＯＳ）／ＰＯＳサーバなどに組み込まれて、共通に利用されるように構成されたものである。その詳細な構成について図２を参照しながら説明する。
【００２６】
プロトコルコントローラ２０は、ＣＰＵ２１，ＲＯＭ２２，ＲＡＭ２３，アドレスバス２４，データバス２５およびインターフェース回路３とともに、後述する周辺制御回路としての回路２６，２７，２９，３１〜３５，３６Ａ，３６Ｂ，３８，４２，４３を一つのチップ上に集積して構成されている。
ＲＯＭ（記憶部）２２は、複数の異なる方式の電子マネー用プロトコルに対応して作成された制御プログラム５Ａもしくは５Ｂ（図４もしくは図６参照）を格納したものである。制御プログラム５Ａ，５Ｂの詳細な構成については、それぞれ図４，図６を参照しながら後述する。
【００２７】
なお、本実施形態では、２種類の方式の電子マネーを第１電子マネーおよび第２電子マネーとして取り扱うべく、制御プログラム５Ａ，５Ｂは、各電子マネーのプロトコルに対応して作成されている。
また、ＲＯＭ２２とプロトコルコントローラ２０の外部接続端子との間は論理的に遮断されており、制御プログラム５Ａ，５Ｂは、プロトコルコントローラ２０の製造時点で書き込まれている。つまり、本実施形態のプロトコルコントローラ２０におけるＲＯＭ２２は、マスクＲＯＭとして構成されている。
【００２８】
ＣＰＵ（処理部）２１は、ＲＯＭ２２に格納された制御プログラム５Ａもしくは５Ｂを実行することにより、プロトコルコントローラ２０に搭載された各種周辺制御回路の動作を制御して第１電子マネーおよび第２電子マネーの取扱を制御するものである。
ＲＡＭ２３は、ＣＰＵ２１のワーキングエリア等として用いられるものである。
【００２９】
インタフェース回路３は、外部処理部や外部メモリ（外部記憶部）５４などの外部回路に接続され、この外部回路とＣＰＵ２１との間のインタフェース機能を果たすものである。図２では、外部メモリ５４を外部回路としてプロトコルコントローラ２０に接続した場合が図示されている。ここで、外部メモリ５４としては、例えば外付ＲＯＭ５４ａ，外付ＲＡＭ５４ｂ，ＦＲＯＭ（ＦＬＡＳＨ  ＲＯＭ）５４ｃなどが接続される（図１４参照）。なお、外付ＲＯＭ５４ａは、例えばＯＳ等のプログラムを格納するためのプログラム格納用外部記憶部として用いられる。
【００３０】
アドレスバス２４およびデータバス２５は、ＣＰＵ２１，ＲＯＭ２２，ＲＡＭ２３，インタフェース回路３，後述する回路２６，２７，２９，３１〜３５，３６Ａ，３６Ｂ，３８，４２，４３の相互間を接続して、アドレス／データのやり取りを行なうものである。
本実施形態のプロトコルコントローラ２０にそなえられた周辺制御回路は、いずれも電子マネーの処理に関連する制御機能を果たすもので、具体的には以下のような回路２６，２７，２９，３１〜３５，３６Ａ，３６Ｂ，３８，４２，４３が、周辺制御回路としてそなえられている。
【００３１】
シリアル送受信制御回路（通信制御回路）２６は、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、外部装置（例えばホストシステム５１，サブシステム５２，プリンタ５３等）との通信を制御するものである。本実施形態のプロトコルコントローラ２０には、３つの通信用ポート（図８のＰ０，Ｐ１，Ｐ２参照）がそなえられ、各ポートに対応して３つのシリアル送受信制御回路（Ｓｅｒｉａｌ  Ｔｒ／Ｒｖ）２６がそなえられている。
【００３２】
なお、シリアル送受信制御回路２６と３つの外部装置（ホストシステム５１，サブシステム５２，プリンタ５３）とは、それぞれＲＳ２３２Ｃドライバ５０ａ〜５０ｃを介して、送受信を行なう。また、ホストシステム５１は例えばＡＴＭやＰＯＳ端末などであり、サブシステム５２は例えば他のＩＣカードリーダ／ライタなどであり、プリンタ５３は、例えばレシートを印刷するものである。さらに、シリアル送受信制御回路２６を制御するためのプログラム（デバイス制御プログラム，通信制御プログラム）としては、制御プログラム５Ａまたは５Ｂにおける、プリンタハンドラ５３１Ａ，ＨＯＳＴ手順ハンドラ５３２Ａ，ＲＳ２３２Ｃドライバ５３１Ｂ／５３２Ｂ，５３７Ｂが用いられる（図４または図６参照）。
【００３３】
メモリパリティ生成／チェック回路（Ｍｅｍｏｒｙ  Ｐａｒｉｔｙ  Ｇｅｎｅｒａｔｏｒ  Ｃｈｅｃｋｅｒ）２７は、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、プロトコルコントローラ２０に接続された外部メモリ５４（ＲＡＭ４３ｂ）のパリティチェックを行なうためのものである。
ＬＣＤ制御回路（表示制御回路）２９は、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、プロトコルコントローラ２０に接続された表示装置としてのコントローラ内蔵型ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）５６を制御するものである。このＬＣＤ制御回路２９を制御するためのプログラム（デバイス制御プログラム）としては、制御プログラム５Ａまたは５Ｂにおける、ＬＣＤハンドラ５３３ＡおよびＬＣＤドライバ５３３Ｂが用いられる（図４または図６参照）。
【００３４】
キーボード制御回路（入力制御回路）３１は、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、バス制御回路５９を介し入力装置としてのキーボード（ＫＢ）６０からの信号の入力処理を行なうものである。このキーボード制御回路３１を制御するためのプログラム（デバイス制御プログラム）としては、制御プログラム５Ａまたは５Ｂにおける、ＫＢハンドラ５３４ＡおよびＫＢドライバ５３４Ｂが用いられる（図４または図６参照）。
【００３５】
グリーンボタン制御回路（入力制御回路）３２は、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、プロトコルコントローラ２０に接続される入力装置としてのグリーンボタン（ＧＢ）６１からの信号の入力処理を行なうとともに、このグリーンボタン６１の点灯／消灯等の制御も行なうものである。このグリーンボタン制御回路３２を制御するためのプログラム（デバイス制御プログラム）としては、制御プログラム５Ａまたは５Ｂにおける、ＧＢハンドラ５３５ＡおよびＧＢドライバ５３５Ｂが用いられる（図４または図６参照）。なお、グリーンボタン６１は、実際には２つのボタン６１ａ，６１ｂからなり、利用者が電子マネー等を利用した支払いを行なう意志があるか否かを確認するためのもので、利用者に操作を促す際に緑色に点灯制御されるようになっている。
【００３６】
パルス生成回路（表示制御回路）３３は、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、プロトコルコントローラ２０に接続される表示装置としてのブザー６２を鳴動させるためのパルス信号を生成して、このブザー６２の鳴動動作を制御するものである。
ＭＳシリアル入力制御回路３４は、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、プロトコルコントローラ２０に接続される入力装置としての磁気ストライプリーダ（ＭＳリーダ）６３からの信号の入力処理を行なうもので、本実施形態のプロトコルコントローラ２０には、４トラック分のＭＳ読取データに同時に対応できるように４つのＭＳシリアル入力制御回路３４がそなえられている。
【００３７】
カード搬送制御回路３５は、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、プロトコルコントローラ２０に接続されるカードコンベヤ６４の動作を制御するものである。なお、カードコンベヤ６４は、例えばＩＣカードリーダ／ライタにおいてＩＣカード３３０を搬送駆動するためのものである。
ＩＣカード制御回路（媒体制御回路）３６Ａ，３６Ｂは、ＣＰＵ２１および制御プログラム５Ａ，５Ｂにより制御され、電子マネーを格納したＩＣカード（可搬型媒体）３３０に対する制御を行なうものである。本実施形態のプロトコルコントローラ２０においては、直接的には２枚のＩＣカード３３０に対応できるように２つのポートＡおよびＢがそなえられており、これらのポートＡおよびＢに対応して２つのＩＣカード制御回路３６Ａおよび３６Ｂがそなえられている。これらのＩＣカード制御回路３６Ａおよび３６Ｂを制御するためのプログラム（デバイス制御プログラム）としては、制御プログラム５Ａまたは５Ｂにおける、ＩＣカードハンドラ５３６ＡおよびＩＣカードドライバ５３６Ｂが用いられる（図４または図６参照）。なお、ＩＣカードとしては、例えばＩＳＯ７８１６に準拠するものが用いられる。
【００３８】
これらのＩＣカード制御回路３６Ａおよび３６Ｂの各々は、カード用リセット制御回路３９，カード用Ｃ４／Ｃ８制御回路４０およびカード用データ入出力制御回路４１から構成されている。
プロトコルコントローラ２０における２つのポートＡおよびＢには、データ転送用信号線としてデータ線，Ｃ４信号線，Ｃ８信号線，リセット信号線（各１本）がそなえられている。カード用リセット制御回路３９は、前記リセット信号線を介してＩＣカード３３０へ出力するリセット信号を制御するものであり、カード用Ｃ４／Ｃ８制御回路４０は、前記のＣ４信号線やＣ８信号線を介して、ＩＣカード３３０へのＣ４／Ｃ８信号の出力制御、および、ＩＣカード３３０からのＣ４／Ｃ８信号の入力制御を行なうものであり、カード用データ入出力制御回路４１は、前記データ線を介して、ＩＣカード３３０へのデータのシリアル出力制御、および、ＩＣカード３３０からのデータのシリアル入力制御を行なうものである。
【００３９】
また、本実施形態では、プロトコルコントローラ２０とＩＣカード３３０との間にデマルチプレクサ３４０を介装することにより、プロトコルコントローラ２０は、２つのポートＡおよびＢ、つまり２つのＩＣカード制御回路３６Ａおよび３６Ｂを用いて、最大６枚のＩＣカード３３０に対する制御を行なえるように構成されている。なお、図４において、６枚のＩＣカード３３０は、それぞれＩＣＣ０〜ＩＣＣ５として表記されており、ＩＣＣ０〜ＩＣＣ５は、それぞれ、ポート番号０〜５を付与された実際のカードポート（以下、ポート０〜５と記す）に装着される。
【００４０】
デマルチプレクサ３４０は、６枚のＩＣカード３３０とプロトコルコントローラ２０のＩＣカード制御回路３６Ａ，３６Ｂ（ポートＡ，Ｂ）との間を適宜接続し、これらの間でのデータ転送を制御するデータ転送制御装置（カード切替器）として機能し、プロトコルコントローラ２０のアクセス対象となる２枚のＩＣカード３３０と、ポートＡおよびＢとを選択的に切り替えて接続するものである。
【００４１】
また、デマルチプレクサ３４０には、プロトコルコントローラ２０のアクセス対象とならないＩＣカード３３０（非アクセス対象）に対する信号（データ，Ｃ４／Ｃ８信号，リセット信号）の状態をラッチするためのラッチ回路３４３−０〜３４３−５，３４８−０〜３４８−５（図２０，図２１参照）がそなえられている。なお、デマルチプレクサ３４０の詳細かつ具体的な構成については、図２０〜図２２を参照しながら後述する。
【００４２】
そして、プロトコルコントローラ２０には、デマルチプレクサ３４０に対して、各ポートＡ，Ｂに接続すべきＩＣカード３３０をアクセス対象として選択・指定するセレクト信号を供給し、このデマルチプレクサ３４０を切替動作させるためのカード選択回路４３がそなえられている。このカード選択回路４３からのセレクト信号により選択されないＩＣカード３３０は非アクセス対象として扱われ、非アクセス対象のＩＣカード３３０に対する信号状態は、デマルチプレクサ３４０のラッチ回路３４３−０〜３４３−５，３４８−０〜３４８−５において、非アクセス状態への遷移直前でラッチされるようになっている。
【００４３】
なお、カード選択回路４３は、ＩＣカードポート割当レジスタ（図２４参照）を用いてセレクト信号を設定し、そのセレクト信号をデマルチプレクサ３４０へ出力するように構成されている。セレクト信号の詳細については、図２４および図２５を参照しながら後述する。また、セレクト信号によるデマルチプレクサ３４０の具体的な切替動作については、図２６および図２７を参照しながら後述する。
【００４４】
カード用クロック生成回路３８は、本実施形態のプロトコルコントローラ２０に対して接続されうる最大６枚のＩＣカード３３０のそれぞれに対し、クロック信号線３５０を通じて供給すべきクロック信号（制御クロック）を生成するもので、装着されうるＩＣカード３３０の最大枚数と同じ数（つまり６）だけそなえられている。
【００４５】
このように、本実施形態においては、各ＩＣカード３３０で用いられるクロック信号は、プロトコルコントローラ２０から、ＩＣカード３３０と同数（６本）のクロック信号線３５０を通じて、各ＩＣカード３３０に供給される一方、６枚のＩＣカード３３０が、デマルチプレクサ３４０を介して、プロトコルコントローラ２０の２つのポートＡ，Ｂに設けられたデータ転送用信号線（データ線，Ｃ４信号線，Ｃ８信号線，リセット信号線など）を共用するようになっている。
【００４６】
さらに、本実施形態において、各ＩＣカード３３０への電源供給は、電圧セレクタ３６０およびパワーレギュレータ（電源調節器）３７０を用いて行なわれるようになっている。ここで、パワーレギュレータ３７０は、３Ｖと５Ｖの２種類の電圧を生成・出力するもので、電圧セレクタ３６０は、デマルチプレクサ３４０からの指示に応じて、３Ｖまたは５Ｖの電圧を選択して各ＩＣカード３３０に印加・供給するものである。この電圧セレクタ３６０を含む電源供給系の詳細構成については、図２３を参照しながら後述する。
【００４７】
そして、プロトコルコントローラ２０には、ＩＣカード３３０に対して供給すべき電圧３Ｖ／５Ｖを指定するための信号をそれぞれ生成してデマルチプレクサ３４０に出力する２つのカード用電源制御回路４２がそなえられている。各カード用電源制御回路４２からの信号は、デマルチプレクサ３４０を経由して電圧セレクタ３６０へ送られ、この電圧セレクタ３６０がその信号に応じた電圧切替動作を行なうようになっている。また、電圧セレクタ３６０は、何らかの要因により各ＩＣカード３３０に対する電源供給に異常が生じた場合にはその旨（Ｐｏｗｅｒ  Ｆａｉｌ）をカード用電源制御回路４２へ通知するようになっている。
【００４８】
なお、図２では図示しないが、プロトコルコントローラ２０のポートＡ，ＢとＩＣカード３３０用のポート０〜５との間にはＩＣカード装着通知線がそなえられている。図２２にて後述するごとく、ポート０〜５のそれぞれにＩＣカード（ＩＣＣ０〜ＩＣＣ５）３３０が装着されているか否かの情報が、そのＩＣカード装着通知線およびデマルチプレクサ３４０を介して、ＩＣカード制御回路３６Ａ，３６Ｂへ通知されるようになっている。
【００４９】
上述した周辺制御回路２６，２７，２９，３１〜３５，３６Ａ，３６Ｂ，３８，４２，４３は、符号５１〜５４，５６，５９〜６４を付して説明した各種機器等に常に接続されてこれらの機器を制御するわけではなく、必要に応じてこれらの機器を制御できるようにプロトコルコントローラ２０に予め組み込まれている。これにより、本実施形態のプロトコルコントローラ２０の汎用性は極めて高いものとなっている。
【００５０】
〔１−１〕本実施形態のアドレス空間の説明
なお、本実施形態のプロトコルコントローラ２０は、図３に示すような構成のアドレス空間を有している。即ち、本実施形態におけるアドレス空間は、内蔵ＲＯＭ２２，内蔵ＲＡＭ２３，外付ＲＯＭ５４ａ，外付ＲＡＭ５４ｂ，外付ＦＲＯＭ５４ｃに対して割り当てられている。特に、本実施形態のプロトコルコントローラ２０では、外付ＲＯＭ５４ａに対して例えばアドレスＣ０００００〜ＥＤＦＦＦＦが割り当てられている。
【００５１】
〔１−２〕制御プログラムの構造の説明
次に、本実施形態のプロトコルコントローラ２０における制御プログラム構造について、図４を参照しながら説明する。
この図４に示すように、ＲＯＭ２２に格納される制御プログラム５Ａは、ブートプログラム（ＢＯＯＴ）５２０，ＯＳ（オペレーティングシステム）５２１，アプリケーションプログラム５２２，第１電子マネー用プロトコル制御プログラム５２３−１，第２電子マネー用プロトコル制御プログラム５２３−２およびデバイス制御プログラム群５３０を有して構成されている。
【００５２】
ＢＯＯＴ５２０は、制御プログラム５Ａを起動するために最初に起動されるもので、このＢＯＯＴ５２０によりＯＳ５２１が起動されるようになっている。
デバイス制御プログラム群５３０は、インタフェース回路３に接続された外部回路や図２で前述した周辺制御回路をデバイスとして制御する複数のデバイス制御プログラムであり、通常、一対のハンドラおよびドライバにより一つのデバイス制御プログラムが構成される。本実施形態では、デバイス制御プログラムとして、前述したハンドラ５３１Ａ〜５３６Ａおよびドライバ５３１Ｂ〜５３７Ｂがそなえられている。
【００５３】
第１電子マネー用プロトコル制御プログラム５２３−１および第２電子マネー用プロトコル制御プログラム５２３−２は、２種類の方式の電子マネーのそれぞれに対応してデバイス制御プログラム群５３０に属するプログラムを制御するものである。
アプリケーションプログラム５２２は、デバイス制御プログラム群５３０に属するプログラムや、２種類のプロトコル制御プログラム５２３−１および５２３−２を制御するものである。
【００５４】
〔１−３〕制御電文の説明
次に、本実施形態のプロトコルコントローラ２０において用いられる制御電文１３０の構成について、図５を参照しながら説明する。
本実施形態の制御プログラム５Ａにおけるアプリケーションプログラム５２２は、例えばホストシステム５１等の外部装置からシリアル送受信制御回路２６を介して図５に示す制御電文１３０を受けることによって、その制御電文１３０の内容に応じて、デバイス制御プログラム群５３０に属するプログラムや、２種類のプロトコル制御プログラム５２３−１および５２３−２を制御する。
【００５５】
ここで、図５に示すように、制御電文１３０は、Ｎバイトのデータフィールド１３６を有し、このデータフィールド１３６にデータを格納して転送するためのものである。その転送データには、１バイトのデータヘッダＤＨ１および１バイトのデータヘッダＤＨ２とともに、転送するデータフィールド１３６に格納されたデータ長Ｌを指示するデータ長フィールド１３５が付与される。
【００５６】
そして、本実施形態の制御電文１３０では、データヘッダＤＨ１が、電子マネー種別フィールド１３１もしくはデバイス種別フィールド１３３として用いられるとともに、データヘッダＤＨ２が、取引種別フィールド１３２もしくは命令フィールド１３４として用いられる。
このとき、データヘッダＤＨ１を電子マネー種別フィールド１３１として用いる際の指定データとデータヘッダＤＨ１をデバイス種別フィールド１３３として用いる際の指定データとは、互いに排他の値となっており、データヘッダＤＨ１が電子マネー種別フィールド１３１として用いられる場合、データヘッダＤＨ２は取引種別フィールド１３２として機能する一方、データヘッダＤＨ１がデバイス種別フィールド１３３として用いられる場合、データヘッダＤＨ２は命令フィールド１３４として機能する。
【００５７】
より具体的に説明すると、図５に示すように、データヘッダＤＨ１には、例えば、１バイトのデータ“０ｘ０１”，“０ｘ０２”，“０ｘ８１”，“０ｘ８２”，“０ｘ８３”，“０ｘ８４”，“０ｘ８５”が書き込まれる。
これらのうち“０ｘ０１”および“０ｘ０２”はそれぞれ電子マネー種別を指定するもので、“０ｘ０１”は第１電子マネーを指定し、“０ｘ０２”は第２電子マネーを指定する。従って、データヘッダＤＨ１に“０ｘ０１”または“０ｘ０２”が書き込まれた場合、データヘッダＤＨ１は電子マネー種別フィールド１３１として機能することになる。
【００５８】
これに対し、“０ｘ８１”〜“０ｘ８５”は、それぞれ、デバイスの種別として、ＩＣカード，ＧＢ（グリーンボタン），ＫＢ（キーボード），ＬＣＤ，ＲＳ２３２Ｃを指定する。従って、データヘッダＤＨ１に“０ｘ８１”〜“０ｘ８５”のいずれかが書き込まれた場合、データヘッダＤＨ２はデバイス種別フィールド１３３として機能することになる。
【００５９】
データヘッダＤＨ１に“０ｘ０１”または“０ｘ０２”が書き込まれている場合、データヘッダＤＨ２には、指定された電子マネーによって行なうべき取引の種別を指定する１バイトのデータとして、例えば“０ｘ０１”〜“０ｘ０４”が書き込まれる。これらのデータ“０ｘ０１”〜“０ｘ０４”により、支払い，払い戻し，引出し，預入といった取引種別がそれぞれ指定される。
【００６０】
また、データヘッダＤＨ１に“０ｘ８１”〜“０ｘ８５”のいずれかが書き込まれている場合、データヘッダＤＨ２には、指定されたデバイスに対する命令を指定する１バイトのデータとして、例えば“０ｘ０１”〜“０ｘ０７”が書き込まれる。これらのデータ“０ｘ０１”〜“０ｘ０７”により、状態リード，電源制御，吸入，排出，データ転送，カードセット待ち，カード抜き取り待ちといった命令がそれぞれ指定される。
【００６１】
そして、アプリケーションプログラム５２２は、受け取った制御電文１３０のデータヘッダＤＨ１およびデータヘッダＤＨ２がそれぞれ電子マネー種別フィールド１３１および取引種別フィールド１３２として用いられている場合には、電子マネー種別フィールド１３１で指定された電子マネーに対応するプロトコル制御プログラム５２３−１または５２３−２により、取引種別フィールド１３２で指定された取引を行なわせる。
【００６２】
また、アプリケーションプログラム５２２は、受け取った制御電文１３０のデータヘッダＤＨ１およびデータヘッダＤＨ２がそれぞれデバイス種別フィールド１３３および命令フィールド１３４として用いられている場合には、デバイス種別フィールド１３３で指定されたデバイスを制御するためのデバイス制御プログラム（デバイス制御プログラム群５３０内の一対のハンドラ／ドライバ）に、命令フィールド１３４に記述された命令を通知して命令を実行させ、その命令に対するデバイス制御プログラムからの応答を応答電文として命令の発行元（つまり制御電文１３０の発行元；例えばホストシステム５１）へシリアル送受信制御回路２６を介して送信する。
【００６３】
〔１−４〕制御プログラムの他の構造の説明
次に、本実施形態のプロトコルコントローラ２０における制御プログラム構造の他例について、図６を参照しながら説明する。
この図６に示すように、ＲＯＭ２２に格納される制御プログラム５Ｂは、図４にて前述した制御プログラム５Ａに、さらに、デバイスルータ（経路制御プログラム）５４０およびテーブル５５０を追加したものである。図６中、既述の符号と同一の符号は同一もしくはほぼ同一のものを示しているので、その説明は省略する。
【００６４】
なお、以下では、デバイス制御プログラム群５３０に属するプログラムや、アプリケーションプログラム５２２，プロトコル制御プログラム５２３−１，５２３−２を、モジュールと称する場合がある。
デバイスルータ（経路制御プログラム）５４０は、前記モジュールの相互間を接続しうるインタフェース機能を提供するものである。ここで説明する制御プログラム５Ｂを用いる場合、前記モジュールのそれぞれには、固有のモジュール識別子が予め付与されており、デバイスルータ５４０は、接続要求元モジュールのモジュール識別子と接続相手先モジュールのモジュール識別子とをパラメータとして用いてモジュール相互間を接続し、これらのモジュール相互間で前述したような制御電文１３０のやり取りを実行させる。
【００６５】
その際、接続相手先モジュールがプロトコルコントローラ２０の通信用ポートＰ０〜Ｐ２を介して接続された外部装置（ホストシステム５１等）に属している場合、デバイスルータ５４０は、通信制御プログラムとしてのＨＯＳＴ手順ハンドラ５３２ＡやＲＳ２３２Ｃドライバ５３１Ｂ／５３２Ｂ，５３７Ｂにシリアル送受信制御回路２６を制御させて、プロトコルコントローラ２０における接続要求元モジュールと外部装置における接続相手先モジュールとを接続する。
【００６６】
ここで、プロトコルコントローラ２０に接続され通信対象となる外部装置は、図８に示すように、本実施形態のプロトコルコントローラ２０と同一の機能を有する処理装置（例えばパーソナルコンピュータ）であってもよいし、取引装置内に組み込まれた、本実施形態のプロトコルコントローラ２０と同一の構成（機能）を有する他のプロトコルコントローラ２０であってもよい。
【００６７】
また、図８に示すように、プロトコルコントローラ２０の３つの通信用ポートＰ０〜Ｐ２を用いて、複数のプロトコルコントローラ２０を、ＰＯＳ／ＥＣＲ／ＡＴＭ等のホストシステム５１からカスケード状に接続した場合、これらのプロトコルコントローラ２０やホストシステム５１の相互間でも、デバイスルータ５４０のインタフェース機能により通信を行なうことが可能になる。
【００６８】
プロトコルコントローラ２０がモジュールを有する外部装置（処理装置や他のプロトコルコントローラ２０）と通信可能に接続されている場合、外部装置に属し通信対象になりうるモジュールにも、固有のモジュール識別子が予め付与されるとともに、プロトコルコントローラ２０や外部装置にもデバイスルータ５４０がそなえられそれぞれ固有の経路識別子（接続相手先モジュールを識別しうるもの）が予め付与されており、デバイスルータ５４０は、接続要求元モジュールのモジュール識別子と、接続相手先モジュールのモジュール識別子と、接続相手先モジュールの属する装置の経路識別子とをパラメータとして用いてモジュール相互間を接続する。
【００６９】
上述のようにモジュール識別子および経路識別子を用いてモジュール間接続を行なうために、本実施形態の制御プログラム５Ｂには、モジュール識別子とそのモジュール識別子を付与されたモジュールの属する装置を示す経路識別子との対応関係を保持するテーブル５５０がそなえられている。このテーブル５５０の内容は、プロトコルコントローラ２０を組み込まれるハードウェア（システム）の構成によって決まるもので、そのシステムにおいて相互に通信可能に接続されデバイスルータ５４０を組み込まれている全ての装置（プロトコルコントローラ２０や処理装置）には、同じ内容を保持するテーブル５５０がそなえられている。
【００７０】
このテーブル５５０の具体的な内容を、図７（ａ）および図７（ｂ）に示す。
図８に示したように複数のプロトコルコントローラがカスケード状に接続されている場合、図７（ａ）に示すように、各プロトコルコントローラの経路識別子と、そのプロトコルコントローラが接続されている上位のプロトコルコントローラの経路識別子および通信用ポート番号との対応関係（プロトコルコントローラ構成の定義）が、テーブル５５０に保持される。
【００７１】
図７（ａ）に示すテーブル５５０の内容から、経路識別子＃９０のプロトコルコントローラがルート（ＲＯＯＴ）であり、経路識別子＃０１のプロトコルコントローラは経路識別子＃９０のプロトコルコントローラにおけるポート＃１に接続され、経路識別子＃０２のプロトコルコントローラは経路識別子＃０１のプロトコルコントローラにおけるポート＃１に接続され、経路識別子＃０３のプロトコルコントローラは経路識別子＃０１のプロトコルコントローラにおけるポート＃２に接続され、経路識別子＃０４のプロトコルコントローラは経路識別子＃０２のプロトコルコントローラにおけるポート＃１に接続され、経路識別子＃０５のプロトコルコントローラは経路識別子＃０２のプロトコルコントローラにおけるポート＃２に接続されていることが分かる。
【００７２】
また、図７（ｂ）に示すように、複数のプロトコルコントローラが有する全てのモジュールに付与されたモジュール識別子と、そのモジュールの属するプロトコルコントローラの経路識別子との対応関係〔モジュール識別子（デバイス番号）の定義〕が、そのモジュール名（もしくはそのモジュールによって制御されるデバイス名）とともに、テーブル５５０に保持される。
【００７３】
図７（ｂ）に示すテーブル５５０の内容から、モジュール識別子＃０１のモジュールは経路識別子＃０１のプロトコルコントローラに属し、モジュール識別子＃０２のモジュール（デバイス名ＩＣＣＲＷ０１）は経路識別子＃０２のプロトコルコントローラに属し、モジュール識別子＃０３のモジュール（デバイス名ＩＣＣＲＷ０２）は経路識別子＃０２のプロトコルコントローラに属し、モジュール識別子＃２０のモジュール（デバイス名ＬＣＤ）は経路識別子＃０１のプロトコルコントローラに属し、モジュール識別子＃２１のモジュール（デバイス名ＫＥＹ）は経路識別子＃０１のプロトコルコントローラに属していることが分かる。
【００７４】
このようなテーブル５５０に保持される内容（前記対応関係）は、シリアル送受信制御回路２６で受信した電文に基づいてＣＰＵ２１により設定／変更することができるようになっている。また、テーブル５５０を、制御プログラム５Ｂ内ではなく、インタフェース回路３を介して接続された外部メモリ５４に格納しておくこともできる。
【００７５】
本実施形態のデバイスルータ５４０は、モジュール相互間を接続する場合、接続相手先モジュールのモジュール識別子によりテーブル５５０の内容〔ここでは図７（ｂ）に示す内容〕を検索し、接続相手先モジュールのモジュール識別子に対応する経路識別子を得る。
検索で得られた経路識別子が自分に付与された経路識別子と一致する場合、接続要求元モジュールと接続相手先モジュールとは同じプロトコルコントローラ２０に属しているので、デバイスルータ５４０は、プロトコルコントローラ２０内においてこれらのモジュール相互間を接続する。一方、検索で得られた経路識別子が自分に付与された経路識別子と一致しない場合、デバイスルータ５４０は、接続相手先モジュールが他のプロトコルコントローラに属するものと判断し、その経路識別子によりテーブル５５０の内容〔ここでは図７（ａ）に示す内容〕を検索して他のプロトコルコントローラの接続関係を把握してから、ＨＯＳＴ手順ハンドラ５３２ＡやＲＳ２３２Ｃドライバ５３１Ｂ／５３２Ｂ，５３７Ｂにシリアル送受信制御回路２６を制御させて、プロトコルコントローラ２０における接続要求元モジュールと他のプロトコルコントローラにおける接続相手先モジュールとを接続する。
【００７６】
なお、本実施形態のプロトコルコントローラ２０に、下記ような構成を有する、パーソナルコンピュータ等の処理装置（ａ），（ｂ）を外部装置として接続することにより、これらの処理装置（ａ），（ｂ）とプロトコルコントローラ２０との間で通信を行なうことができるようになっている。
処理装置（ａ）は、ＣＰＵと、前述と同様の制御プログラム５Ｂを格納するためのメモリと、外部装置（ここではプロトコルコントローラ２０）との通信を制御する通信制御回路とを有し、制御プログラム５Ｂが、少なくとも、通信制御回路を制御する通信制御プログラム（前述したＨＯＳＴ手順ハンドラ５３２ＡやＲＳ２３２Ｃドライバ５３１Ｂ／５３２Ｂ，５３７Ｂと同様のもの）と、固有の経路識別子を有する経路制御プログラム（前述したデバイスルータ５４０と同様のもの）と、固有のモジュール識別子を有するモジュール（アプリケーションプログラム，プロトコル制御プログラム，デバイス制御プログラム等）とを有している。このような処理装置（ａ）をプロトコルコントローラ２０に接続した場合、処理装置（ａ）とプロトコルコントローラ２０との間の通信は、２つのプロトコルコントローラ２０の相互間の通信と全く同様に行なわれる。
【００７７】
処理装置（ｂ）は、ＣＰＵと、プログラム５を格納するためのメモリと、外部装置（ここではプロトコルコントローラ２０）との通信を制御する通信制御回路とを有し、そのメモリに、少なくとも、通信制御回路を制御する通信制御プログラムと、通信制御回路に接続されているプロトコルコントローラ２０内の各種モジュールに対する接続要求をプロトコルコントローラ２０内のデバイスルータ５４０に対して発行しうるアプリケーションプログラムとが格納されている。このような処理装置（ｂ）をプロトコルコントローラ２０に接続した場合、プロトコルコントローラ２０のデバイスルータ５４０は、処理装置（ｂ）からの接続要求を受けると、プロトコルコントローラ２０における該当モジュールと処理装置（ｂ）とを接続する。
【００７８】
〔１−５〕プロトコルコントローラによる取引処理例の説明
次に、図９および図１０を参照しながら、本実施形態のプロトコルコントローラ２０を用いた取引処理例について説明する。
図９に示す例では、取引装置である電子マネー（ＩＣカード）対応ユニット７０においては、プロトコルコントローラ２０が組み込まれ、このプロトコルコントローラ２０を制御するプロトコルコントローラアプリケーションと、このプロトコルコントローラアプリケーションを制御すべく上位処理部（ＣＰＵ）７２で実行される上位アプリケーションとがそなえられている。
【００７９】
そして、２枚のＩＣカード（可搬型媒体）３３０−１，３３０−２をプロトコルコントローラ２０に対して接続した状態で、上位処理部７２が一方のＩＣカード３３０−１から他方のＩＣカード３３０−２への電子マネー転送をプロトコルコントローラ２０に要求すると（矢印▲１▼参照）、プロトコルコントローラ２０により実際の電子マネーの転送処理が行なわれ（矢印▲２▼参照）、その処理結果がプロトコルコントローラ２０から上位処理部７２へ通知される（矢印▲３▼参照）。
【００８０】
つまり、上位処理部７２（上位アプリケーション）は、方式によって異なる電子マネーのプロトコルについて何も意識することなく、単に電子マネーについての取引要求を発行するだけで、複数の異なる方式の電子マネーを取り扱うことができるのである。
図１０に示す例では、上述した電子マネー対応ユニット７０を２組そなえ、これらのユニット７０，７０相互間をネットワーク７１により相互に通信可能に接続したシステムを想定し、これら２つのユニット７０，７０のプロトコルコントローラ２０，２０にそれぞれＩＣカード３３０−１，３３０−２を接続した状態で、ＩＣカード３３０−１と３３０−２との間での電子マネー転送を行なっている。
【００８１】
この場合、まず、２つのユニット７０，７０における上位処理部７２，７２の相互間で通信パスを確立してから（矢印▲１▼参照）、一方のユニット７０の上位処理部７２が、一方のＩＣカード３３０−１から他方のＩＣカード３３０−２への電子マネー転送をプロトコルコントローラ２０に対して要求する（矢印▲２▼参照）。この要求に応じて、ネットワーク７１上の通信パスを経由しながら２つのプロトコルコントローラ２０，２０の間で実際の電子マネーの転送処理が行なわれる（矢印▲３▼参照）。この後、その処理結果がプロトコルコントローラ２０から上位処理部７２へ通知され（矢印▲４▼参照）、通信パスが切断される（矢印▲５▼参照）。
【００８２】
つまり、この場合も、２つのユニット７０，７０における上位処理部７２，７２は、方式によって異なる電子マネーのプロトコルについて何も意識することなく、単に電子マネーについての取引要求を発行するだけで、ネットワーク７１を介しながら複数の異なる方式の電子マネーを取り扱うことができるのである。
〔１−６〕プロトコルコントローラの具体的な利用例の説明
次に、図１１〜図１３を参照しながら、本実施形態のプロトコルコントローラ２０の具体的な利用例（各種取引装置への組込み例）について説明する。
【００８３】
図１１は、本実施形態のプロトコルコントローラ２０を組み込んだＡＴＭ（Ａｕｔｏｍａｔｉｃ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ）８０の構成例を示すブロック図であり、この図１１に示すように、ＡＴＭ８０は、制御回路（Ｃｏｎｔｒｏｌｌｅｒ）８１，スクリーン／タッチパネル（Ｓｃｒｅｅｎ＋Ｔｏｕｃｈ  Ｐａｎｅｌ）８２，プリンタ８３，カードリーダ／ライタ（Ｃａｒｄ  Ｒ／Ｗ）８４およびプロトコルコントローラブロック８８を有して構成され、ホスト８９に接続されている。
【００８４】
そして、プロトコルコントローラブロック８８には、本実施形態のプロトコルコントローラ２０がそなえられるとともに、このプロトコルコントローラ２０に、外付ＲＡＭ５４ｂが接続されるとともに、ＰＩＮ（Ｐｅｒｓｏｎａｌ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒｓ）を入力するためのＰＩＮパッド８８ａがデバイスとして接続されている。
【００８５】
ここで、制御回路８１は、ホスト８９やスクリーン／タッチパネル８２からの信号等に従ってプリンタ８３，カードリーダ／ライタ８４，プロトコルコントローラ２０を制御するものである。また、カードリーダ／ライタ８４は、ＩＣカード３３０に対する書込／読出アクセスを行なうほか、カードに形成されたエンボス部８６を読み取ったり、カード上の磁気ストライプ部（ＭＳ）８７の磁気情報を読み取ったりする機能を有している。
【００８６】
このようなＡＴＭ８０は、多種多様な機能を有しており、極めて複雑なＩＣカード３３０等のハンドリングを行なうもので、その機能全てをプロトコルコントローラ２０で行なうことは不可能である。そこで、ＡＴＭ８０では、例えば、各種電子マネーのプロトコルに係る処理（矢印▲１▼参照）やＰＩＮの暗号化に係る処理（矢印▲２▼参照）を実行する際にプロトコルコントローラ２０の機能を利用し、それ以外の全てのＩ／Ｏ制御（例えば、ＩＣカード３３０のハンドリング，金額入力，画面表示，印字出力など）は制御回路８１により行なう。
【００８７】
例えば、実際のカードリーダ／ライタ８４に対するＩ／Ｏ制御は、上述のごとく制御回路８１により行なうが、そのＩ／Ｏ制御のうち電子マネーのプロトコルに係る部分の処理は、矢印▲１▼で示すように、制御回路８１からプロトコルコントローラ２０に依頼し、このプロトコルコントローラ２０において、処理対象の電子マネーの方式に応じたプロトコル制御プログラムを用いて実行される。
【００８８】
また、電子マネーのプロトコルによってはＰＩＮを暗号化しなければならない場合がある。このような電子マネーを取り扱う場合、制御回路８１は、ＰＩＮパッド８８ａから入力されたＰＩＮの暗号化処理や、暗号化されたＰＩＮの解読処理を、矢印▲２▼で示すようにプロトコルコントローラ２０に実行させる。
このように制御回路８１によりプロトコルコントローラ２０を用いて処理を行なう際、前述した制御電文１３０による動作要求機能やデバイスルータ５４０による経路制御機能が有効に用いられることになる。
【００８９】
図１２は、本実施形態のプロトコルコントローラ２０を組み込んだＰＯＳシステム９０および外部カードリーダ／ライタ１５０の構成例を示すブロック図であり、この図１２に示すように、ＰＯＳシステム９０は、メインボード９１，ディスプレイ９２，プリンタ９３，ＭＳリーダ９４，キーボード（ＫＢ）９５，ドロア（引出）９６およびリーダ／ライタインタフェースアダプタ（Ｒ／Ｗ  Ｉ／Ｆ  Ａｄａｐｔｅｒ）９７を有して構成され、外部カードリーダライタ１５０に接続されている。
【００９０】
ＰＯＳシステム９０のリーダ／ライタインタフェースアダプタ９７には、本実施形態のプロトコルコントローラ２０がそなえられるとともに、このプロトコルコントローラ２０には、シリアルドライバ／レシーバ５０ｄおよび５０ｅを介してメインボード９１および外部カードリーダ／ライタ１５０が接続されるとともに、デマルチプレクサ３４０（図１２では図示省略）を介して、４個のＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）３３１と、マーチャントカードとして機能するＩＣカード３３０とが接続されている。ここで、メインボード９１は、ＭＳリーダ９４やキーボード（ＫＢ）９５からの信号を受け、ディスプレイ９２，プリンタ９３，ドロア（引出）９６の動作を制御するものである。
【００９１】
外部カードリーダ／ライタ１５０には、本実施形態のプロトコルコントローラ２０がそなえられるとともに、このプロトコルコントローラ２０には、シリアルドライバ／レシーバ５０ｆを介してＰＯＳシステム９０が接続されるとともに、ＬＣＤ５６，キーボード６０，グリーンボタン６１，ブザー（Ｂｚ）６２およびＩＣカード３３０がデバイスとして接続されている。
【００９２】
ＰＯＳシステム９０は、例えば店舗でレジスタとして用いられるもので、このＰＯＳシステム９０には、上述した外部カードリーダ／ライタ１５０が接続されており、顧客は、電子マネーによる支払いを行なう際、ＩＣカード３３０を外部カードリーダ／ライタ１５０に装着し、ＬＣＤ５６の表示を参照しながらキーボード６０やグリーンボタン６１を操作し、ＩＣカード３３０から電子マネーによる所定金額の支払いを行なう。このとき、２つのプロトコルコントローラ２０，２０はメインボード９１の配下でカスケード状に接続されており、これらのプロトコルコントローラ２０，２０を介して、ＰＯＳシステム９０側のＩＣカード（マーチャントカード）３３０と外部カードリーダ／ライタ１５０における顧客のＩＣカード３３０との間で電子マネーの転送処理が行なわれることになる。
【００９３】
図１３は、本実施形態のプロトコルコントローラ２０を組み込んだ携帯ＰＯＳ端末（ハンディＰＯＳ）１６０の構成例を示すブロック図であり、この図１３に示すように、携帯ＰＯＳ端末１６０は、メインボード１６１，ディスプレイ１６２，タッチパネル１６３，キーボード（ＫＢ）１６４，ブザー（Ｂｚ）１６５，プリンタ１６６，ＰＣカードインタフェース（ＰＣＭＣＩＡ）１６６，無線通信部（ＳＳＲＦ）１６７，スキャナ１６８，シリアルドライバ／レシーバ１７０およびプロトコルコントローラブロック１７１を有して構成されている。
【００９４】
そして、プロトコルコントローラブロック１７１には、本実施形態のプロトコルコントローラ２０がそなえられるとともに、このプロトコルコントローラ２０に、シリアルドライバ／レシーバ５０ｇおよび１７０を介してメインボード１６１が接続されるとともに、ＭＳリーダ６３，ＩＣカード３３０および４個のＳＩＭ３３１が接続されている。
【００９５】
ここで、メインボード１６１は、シリアルドライバ／レシーバ１７０を介してスキャナ１６８に接続されるとともに、ＰＣカードインタフェース（ＰＣＭＣＩＡ）１６６および無線通信部（ＳＳＲＦ）１６７を介してホスト１６９にも接続される。また、メインボード１６１は、タッチパネル１６３やキーボード１６４からの信号を受け、ディスプレイ１６２，ブザー（Ｂｚ）１６５およびプリンタ１６６の動作を制御するものである。
【００９６】
携帯ＰＯＳ端末１６０は、支払いを行なう顧客が、レジスタ（ＰＯＳ端末）の所まで行くことなく、レストラン等であれば着席したままで精算を行なう際に用いられるもので、電子マネーによる支払いを行なう際、顧客のＩＣカード３３０を携帯ＰＯＳ端末１６０に装着した状態、タッチパネル１６３やキーボード１６４が操作され、所定の精算が行なわれる。精算についての情報（支払い金額等）は、ホスト１６９から携帯ＰＯＳ端末１６０へ無線で通知されるとともに、ＩＣカード３３０から引き出された電子マネーの情報は、携帯ＰＯＳ端末１６０からホスト１６９へ無線で通知される。携帯ＰＯＳ端末１６０のプロトコルコントローラ２０は、上述のごとく電子マネーをＩＣカード３３０から引き出して精算処理を行なうために使用される。
【００９７】
〔１−７〕暗号鍵の説明
なお、本実施形態のプロトコルコントローラ２０におけるＲＯＭ２２は、前述のごとくマスクＲＯＭとして構成されているので、このＲＯＭ２２に、複数の暗号鍵または暗号鍵集合を予め格納しておき、これらの暗号鍵または暗号鍵集合のうちの一つを選択して制御プログラム５Ａまたは５Ｂで使用するように構成してもよい。
【００９８】
この場合、プロトコルコントローラ２０内において、シリアル送受信制御回路２６により外部から受信した電文により複数の暗号鍵または暗号鍵集合のうちの一つを指定できるように構成する。また、インタフェース回路を介して接続された外部記憶部（例えば外付ＲＯＭ５４ａ）により複数の暗号鍵または暗号鍵集合のうちの一つを指定できるように構成してもよい。
【００９９】
このように、プロトコルコントローラ２０内のＲＯＭ２２に複数の暗号鍵または暗号鍵集合を予め格納しておき、プロトコルコントローラ２０の外部から暗号鍵または暗号鍵集合を選択して切り替えることにより、暗号鍵のセキュリティを確保しながら、複数の暗号鍵または暗号鍵集合に対応することができる。
〔１−８〕本実施形態のプロトコルコントローラによる効果の説明
このように、本発明の一実施形態としてのプロトコルコントローラ２０によれば、１つのプロトコルコントローラ２０により複数の異なる方式の電子マネーの取扱が可能になるとともに、そのプロトコルコントローラ２０を電子マネー対応の各種取引装置（例えば、前述したＡＴＭ８０，ＰＯＳシステム９０，外部カードリーダ／ライタ１５０，携帯ＰＯＳ端末１６０）で共通に利用することができる。このとき、プロトコルコントローラ２０に各種周辺制御回路を内蔵（集積化）することにより、各種取引装置で共通する部分をより拡大することができる。
【０１００】
また、プロトコルコントローラ２０内の制御プログラム５Ａまたは５Ｂを格納するＲＯＭ２２をマスクＲＯＭとして構成しているので、プロトコルコントローラ２０の外部から制御プログラム５Ａまたは５Ｂへのアクセスを禁止でき、セキュリティを確保することができるほか、プロトコルコントローラ２０に外付ＲＯＭ５４ａをプログラム格納用外部記憶部として接続可能とすることにより、プロトコルコントローラ２０の拡張性をより高めることができる。
【０１０１】
さらに、制御電文１３０を用いることにより、プロトコルコントローラ２０の外部から、使用する電子マネーの種別（プロトコル制御プログラム）を指定できるほか、プロトコルコントローラ２０に内蔵された各種周辺制御回路を外部から直接制御したりすることができるので、各種電子マネーに対する処理以外の処理（電子マネーの処理とは無関係に例えばＩＣカードリーダ／ライタを使用する処理）を実行することができる。
【０１０２】
またさらに、プロトコルコントローラ２０を単体で取引装置等に組み込んで利用できるほか、図８に示したように、ホストシステム５１にプロトコルコントローラ２０を接続したり、ホストシステム５１に複数のプロトコルコントローラ２０をカスケード状に接続したりすることもできるので、プロトコルコントローラ２０を用いて極めて柔軟にシステムを構築することができる。
【０１０３】
このように、本実施形態のプロトコルコントローラ２０の汎用性は極めて高く、プロトコルコントローラ２０を電子マネー対応の各種取引装置で共通に利用することができる。これにより、プロトコルコントローラ２０について認定を受けておけば、このプロトコルコントローラ２０を組み込んで構築された各種取引装置については、プロトコルコントローラ２０以外の装置独自の部分についてのみ認定を受ければよく、複数の異なる方式の電子マネー毎に認定を受ける必要もなくなる。従って、各種取引装置の設計・開発工数を大幅に削減でき、認定機関等による認定工数（認定を受けるための検証工数）も大幅に削減できるとともに、信頼性の向上および高いセキュリティ性能を実現することができる。
【０１０４】
〔２〕本実施形態のプロトコルコントローラにおけるデバイス接続状態認識手法の説明
さて、次に、図１４〜図１９を参照しながら、上述した本実施形態のプロトコルコントローラ２０に適用されるデバイス接続状態認識手法について説明する。本実施形態のプロトコルコントローラ２０のＣＰＵ２１は、以下に説明するデバイス接続状態認識機能をそなえている。このデバイス接続状態認識機能を用いることにより、外付ＲＯＭ５４ａ以外の各種デバイスの接続／非接続（接続状態）についても認識することができるようになる。
【０１０５】
図１４および図１５では、プロトコルコントローラ２０におけるＣＰＵ２１，アドレスバス２４およびデータバス２５を抽出して図示し、その他の構成回路等の図示は省略している。また、図１４では、デバイスとして外付ＲＯＭ５４ａ，外付ＲＡＭ５４ｂおよびＦＲＯＭ（ＦＬＡＳＨ）５４ｃが接続されるプロトコルコントローラ２０の回路構成が示され、図１５では、デバイスとして外付ＲＡＭ５４ｂおよびＦＲＯＭ（ＦＬＡＳＨ）５４ｃが接続されるプロトコルコントローラ２０の回路構成が示されている。なお、本実施形態では、データバス２５としては、前述した通り１６ビットのものが用いられている。つまり、データバス２５は、１６本のデータ信号線ＤＴ０〜ＤＴ１５から構成されている。
【０１０６】
プロトコルコントローラ２０の設計時には、そのプロトコルコントローラ２０が組み込まれる取引装置の種類によって、プロトコルコントローラ２０にどのようなデバイスが外付けされるかが判明している。そこで、本実施形態では、プロトコルコントローラ２０の製造時に、このプロトコルコントローラ２０に接続されるデバイスの種類に応じて、データバス２５のデータ信号線ＤＴ０〜ＤＴ１５を、それぞれ、プルアップ抵抗１１３を介して高電位（＋Ｖ）に接続、もしくは、プルダウン抵抗１１４を介して低電位（グラウンド：ＧＮＤ）に接続しておく。
【０１０７】
そして、プロトコルコントローラ２０のＣＰＵ２１は、システム起動時等に、アドレスバス２４にて、所定の論理アドレス、本実施形態では外付ＲＯＭ５４ａの先頭アドレスＣ０００００（図３参照）を指定し、データ信号線ＤＴ０〜ＤＴ１５を通じてデータを読み取る。
本実施形態において、プロトコルコントローラ２０に外付ＲＯＭ５４ａが接続される場合、その外付ＲＯＭ５４ａの先頭アドレスＣ０００００（図３の斜線部分参照）に、そのプロトコルコントローラ２０に接続されるデバイスについての情報が、図１７に示すような１６ビットの構成情報レジスタ（ＨＷＳＴＲ：Ｈａｒｄｗａｒｅ  Ｓｔｒｕｃｔｕｒｅ  Ｒｅｇｉｓｔｅｒ）として予め設定されるようになっている。
【０１０８】
従って、外付ＲＯＭ５４ａがプロトコルコントローラ２０に接続されている場合、アドレスＣ０００００を指定すると、ＣＰＵ２１は、データバス２５を通じて構成情報レジスタ（ＨＷＳＴＲ）の情報を読み出すことができる。
これに対し、外付ＲＯＭ５４ａがプロトコルコントローラ２０に接続されていない場合、アドレスＣ０００００を指定すると、ＣＰＵ２１は、データ信号線ＤＴ０〜ＤＴ１５においてプルアップ抵抗１１３／プルダウン抵抗１１４により生成される高電位状態／低電位状態〔１（Ｈｉｇｈ）／０（Ｌｏｗ）〕を構成情報データとして読み取ることになる。
【０１０９】
ここで、プルアップ抵抗１１３およびプルダウン抵抗１１４により設定される１６ビット分の構成情報データは、外付ＲＯＭ５４ａの先頭アドレスＣ０００００に設定されうる１６ビットの構成情報レジスタ（ＨＷＳＴＲ）のデータと全く同じになるように設定される。
構成情報レジスタ（ＨＷＳＴＲ）のデータについて、つまり、プルアップ抵抗１１３およびプルダウン抵抗１１４による構成情報データの設定の仕方について図１７〜図１９を参照しながら説明する。
【０１１０】
なお、構成情報レジスタ（ＨＷＳＴＲ）のビット番号０〜１５と、データバス２５のデータ信号線ＤＴ０〜ＤＴ１５とがそれぞれ対応する。つまり、構成情報レジスタ（ＨＷＳＴＲ）のビット番号ｉ（ｉ＝０〜１５）が０であれば、データ信号線ＤＴｉはプルダウン抵抗１１４を介して低電位（ＧＮＤ）に接続される一方、構成情報レジスタ（ＨＷＳＴＲ）のビット番号ｉが１であれば、データ信号線ＤＴｉはプルアップ抵抗１１３を介して高電位（＋Ｖ）に接続される。
【０１１１】
図１７および図１８に示すように、ビット番号０つまりデータ信号線ＤＴ０で拡張Ｉ／Ｏの接続（０）／非接続（１）が設定され、ビット番号１つまりデータ信号線ＤＴ１で拡張バスの接続（０）／非接続（１）が設定され、ビット番号５つまりデータ信号線ＤＴ５でカード切替器（デマルチプレクサ３４０）の接続（０）／非接続（１）が設定される。
【０１１２】
そして、図１７〜図１９に示すように、ビット番号２〜４つまりデータ信号線ＤＴ２〜ＤＴ４で、このプロトコルコントローラ２０に接続されるＩＣカード３３０の枚数（０〜６枚）が設定される。
また、ビット番号６つまりデータ信号線ＤＴ６で搬送機（カードコンベヤ６４）の接続（０）／非接続（１）が設定され、ビット番号７つまりデータ信号線ＤＴ７でＭＳリーダ６３の接続（０）／非接続（１）が設定され、ビット番号８つまりデータ信号線ＤＴ８でブザー６２の接続（０）／非接続（１）が設定され、ビット番号９つまりデータ信号線ＤＴ９でグリーンボタン６１の接続（０）／非接続（１）が設定され、ビット番号１０つまりデータ信号線ＤＴ１０でキーボード６０の接続（０）／非接続（１）が設定される。
【０１１３】
同様に、ビット番号１１つまりデータ信号線ＤＴ１１で外付ＲＡＭ５４ｂの接続（０）／非接続（１）が設定され、ビット番号１２つまりデータ信号線ＤＴ１２で外付ＦＬＡＳＨ５４ｃの接続（０）／非接続（１）が設定され、ビット番号１３つまりデータ信号線ＤＴ１３で外付ＲＯＭ５４ａの接続（０）／非接続（１）が設定され、ビット番号１４つまりデータ信号線ＤＴ１４で下位装置（例えばサブシステム５２）の接続（０）／非接続（１）が設定され、ビット番号１５つまりデータ信号線ＤＴ１５で上位装置（例えばホストシステム５１）の接続（０）／非接続（１）が設定される。
【０１１４】
例えば図１４に示す例では、少なくとも外付ＲＯＭ５４ａ，外付ＲＡＭ５４ｂおよびＦＲＯＭ（ＦＬＡＳＨ）５４ｃがデバイスとして接続されるので、これらに対応して、プロトコルコントローラ２０におけるデータ信号線ＤＴ１３，ＤＴ１１，ＤＴ１２はプルダウン抵抗１１３を介して低電位（ＧＮＤ）に接続されている。
【０１１５】
また、図１５に示す例では、少なくとも外付ＲＡＭ５４ｂおよびＦＲＯＭ（ＦＬＡＳＨ）５４ｃがデバイスとして接続されるので、これらに対応して、プロトコルコントローラ２０におけるデータ信号線ＤＴ１１，ＤＴ１２はプルダウン抵抗１１３を介して低電位（ＧＮＤ）に接続されている。
なお、図１４および図１５に示す例では、データ信号線ＤＴ０，ＤＴ１が、プルダウン抵抗１１３を介して低電位（ＧＮＤ）に接続されているので、図１４や図１５中には図示しないが、拡張Ｉ／Ｏおよび拡張バスも接続されていることになる。
【０１１６】
そして、ＣＰＵ２１は、論理アドレスＣ０００００を指定することにより得られた構成情報データに基づいて、自分の属するプロトコルコントローラ２０に接続されているデバイスの接続状態（図１８に示した各種デバイスのうちどのデバイスが接続されているか）を認識する認識部として機能することになる。
なお、上述とは逆に、デバイスがプロトコルコントローラ２０に接続されている場合、データバス２５のデータ信号線ＤＴｉを、プルアップ抵抗１１３を介して高電位に接続する一方、デバイスがプロトコルコントローラ２０に接続されていない場合、データバス２５のデータ信号線ＤＴｉを、プルダウン抵抗１１４を介して低電位に接続してもよい。
【０１１７】
さて、次に、図１６に示すフローチャート（ステップＳ１〜Ｓ９）に従って、本実施形態のプロトコルコントローラ２０のＣＰＵ２１におけるデバイス接続状態認識手順について説明する。なお、本実施形態では、ＣＰＵ２１によりデバイスの接続／非接続を認識しながら、接続されているデバイスのドライバ／ハンドラ（デバイス制御プログラム）も起動させている。
【０１１８】
システム起動時等において、ＣＰＵ２１は、まず、外付ＲＯＭ５４ａの先頭アドレスとして割り当てられている論理アドレスＣ０００００をアドレスバス２４により指定して、データバス２５を通じて１６ビットの構成情報データを獲得し、データ信号線ＤＴ１３により得られたデータが“０”か否かを判断する（ステップＳ１）。つまり、ＣＰＵ２１は、一番最初に、外付ＲＯＭ５４ａが接続されているか否かを認識する。
【０１１９】
そのデータが“０”である場合（ステップＳ１のＹＥＳルート）、ＣＰＵ２１は、外付ＲＯＭ５４ａが搭載されているものと判断し、この外付ＲＯＭ５４ａ上のＯＳ５２１（図４，図６参照）を起動する（ステップＳ２）。一方、ステップＳ１でデータ信号線ＤＴ１３のデータが“０”でない即ち“１”であると判断された場合（ステップＳ１のＮＯルート）、ＣＰＵ２１は、外付ＲＯＭ５４ａが未搭載であると判断し、内蔵ＲＯＭ２２上のＯＳ５２１を起動する（ステップＳ３）。
【０１２０】
ＯＳ５２１を起動した後、ＣＰＵ２１は、データ信号線ＤＴ１３以外のデータ信号線０〜１２および１４，１５のデータを、順次チェックしてゆく。つまり、ビット番号ｘとして“０”を設定してから（ステップＳ４）、データ信号線ＤＴｘ（ｘ＝０〜１２，１４，１５）により得られたデータが“１”か否かを判断する（ステップＳ５）。
そのデータが“１”でない場合、即ち“０”である場合（ステップＳ５のＮＯルート）、ＣＰＵ２１は、ビット番号ｘに対応するデバイスＤｘのドライバ／ハンドラをデバイス制御プログラム群５３０（図４，図６参照）の中から読み出して起動してから（ステップＳ６）、後述のステップＳ７へ移行する。
【０１２１】
一方、ステップＳ５でデータ信号線ＤＴｘのデータが“１”であると判断された場合（ステップＳ５のＹＥＳルート）、ＣＰＵ２１は、デバイスＤｘが未搭載であると判断し、ビット番号ｘに１を加算し（ステップＳ７）、新たなビット番号ｘが既に判断済のビット番号１３であれば、ビット番号ｘにさらに１を加算する（ステップＳ８）。
【０１２２】
そして、ＣＰＵ２１は、新たなビット番号ｘが“１６”であるか否かを判断し（ステップＳ９）、ｘ＝１６であれば（ＹＥＳルート）、処理を終了する一方、ｘ≠１６であれば（ＮＯルート）、ステップＳ５に戻り、同様の処理を繰り返し行なう。
このように、本実施形態のプロトコルコントローラ２０におけるデバイス接続状態認識手法によれば、ＣＰＵ２１は、データ信号線ＤＴ０〜ＤＴ１５においてプルアップ抵抗１１３／プルダウン抵抗１１４により生成される高電位状態（１）／低電位状態（０）を構成情報データとして読み取るだけで、検出専用の信号線等を追加することなく、その構成情報データに基づいてデバイスの接続状態を認識し、そのデバイスに対応したドライバ／ハンドラ（デバイス制御プログラム）のみを起動させることができる。
【０１２３】
本実施形態のプロトコルコントローラ２０に搭載されるＲＯＭ２２や外付ＲＯＭ５４ａは、プロトコルコントローラ２０に接続されうる全てのデバイスのためのドライバ／ハンドラ（デバイス制御プログラム）を有する制御プログラム５Ａまたは５Ｂを格納することにより汎用化されているが、このような汎用化されたＲＯＭ２２，５４ａを用いた場合でも、ＣＰＵ２１は、上述のごとくデバイスを認識できるので、接続されたデバイスについてのドライバ／ハンドラ（デバイス制御プログラム）だけを起動させることができる。
【０１２４】
従って、プロトコルコントローラ２０を組み込む取引装置（コンピュータシステム）毎に異なる制御プログラムを格納したＲＯＭを準備する必要がなくなり、ＲＯＭへのプログラム搭載に要する手間を省けるとともに部品管理を簡略化できるので、各種取引装置（システム）の製造に要するコストを大幅に削減することができる。
【０１２５】
〔３〕本実施形態におけるプロトコルコントローラとＩＣカードとの間のデータ転送制御手法の説明
図２を参照しながら前述した通り、本実施形態においては、プロトコルコントローラ２０とこのプロトコルコントローラ２０に装着されうる最大６枚のＩＣカード３３０との間にはデマルチプレクサ３４０が介装されている。
【０１２６】
つまり、本実施形態では、プロトコルコントローラ２０とＩＣカード３３０との間にデマルチプレクサ３４０を介装することにより、プロトコルコントローラ２０は、２つのポートＡおよびＢ、つまり２つのＩＣカード制御回路３６Ａおよび３６Ｂを用いて、最大６枚のＩＣカード３３０に対する制御を行なえるように構成されている。
【０１２７】
このデマルチプレクサ３４０は、６枚のＩＣカード３３０とプロトコルコントローラ２０のＩＣカード制御回路３６Ａ，３６Ｂ（ポートＡ，Ｂ）との間を適宜接続し、これらの間でのデータ転送を制御するデータ転送制御装置（カード切替器）として機能し、プロトコルコントローラ２０のアクセス対象となる２枚のＩＣカード３３０と、ポートＡおよびＢとを選択的に切り替えて接続するものである。
【０１２８】
以下に、デマルチプレクサ３４０の詳細かつ具体的な構成について、図２０〜図２２を参照しながら説明する。
なお、図２０には、デマルチプレクサ３４０のうち、プロトコルコントローラ２０とＩＣカード３３０との間で双方向通信される信号（データおよびＣ４／Ｃ８信号）のための切替回路の構成が示され、図２１には、デマルチプレクサ３４０のうち、プロトコルコントローラ２０からＩＣカード３３０へ単方向で通信される信号（リセット信号）のための切替回路の構成が示され、図２２には、デマルチプレクサ３４０のうち、ＩＣカード３３０からプロトコルコントローラ２０へ単方向で通信される信号（ＩＣカード装着通知信号）のための切替回路の構成が示されている。また、図２と同様、図２０〜図２２において、６枚のＩＣカード３３０（ＩＣＣ０〜ＩＣＣ５）は、それぞれ、ポート番号０〜５を付与された実際のカードポート（以下、ポート０〜５と記す）に装着される。
【０１２９】
図２０〜図２２に示すように、本実施形態のデマルチプレクサ３４０は、ゲートコントローラ３４１と、２入力１出力のセレクタ３４２−０〜３４２−５，３４７−０〜３４７−５と、６入力１出力のセレクタ３４５Ａ，３４５Ｂ，３５１Ａ，３５１Ｂと、ラッチ回路３４３−０〜３４３−５，３４８−０〜３４８−５と、３ステート入出力ポート３４４−０〜３４４−５，３４６Ａ，３４６Ｂ，３４９−０〜３４９−５と、をそなえて構成されている。
【０１３０】
ゲートコントローラ３４１は、システムクロックの供給を受けて動作するとともに、プロトコルコントローラ２０のカード選択回路４３からのセレクト信号ＣＤＳＥＬ［０：４］に応じて、セレクタ３４２−０〜３４２−５，３４７−０〜３４７−５，セレクタ３４５Ａ，３４５Ｂ，３５１Ａ，３５１Ｂと、ラッチ回路３４３−０〜３４３−５，３４８−０〜３４８−５と、３ステート入出力ポート３４４−０〜３４４−５，３４６Ａ，３４６Ｂ，３４９−０〜３４９−５との動作を制御するものである。なお、セレクト信号ＣＤＳＥＬ［０：４］の詳細については、図２４および図２５を参照しながら後述する。
【０１３１】
図２０に示すように、デマルチプレクサ３４０において、プロトコルコントローラ２０とＩＣカード３３０との間で双方向通信される信号（データおよびＣ４／Ｃ８信号）のための切替回路には、セレクタ３４２−０〜３４２−５，３４５Ａ，３４５Ｂ，ラッチ回路３４３−０〜３４３−５，３ステート入出力ポート３４４−０〜３４４−５および３ステート入出力ポート３４６Ａ，３４６Ｂがそなえられている。
【０１３２】
ここで、セレクタ３４２−０〜３４２−５は、ゲートコントローラ３４１により制御され、プロトコルコントローラ２０の２つのポートＡ，Ｂから出力されたデータ（もしくはＣ４／Ｃ８信号）のうちのいずれか一方を選択的に切り替えて、６枚のＩＣカード３３０（ＩＣＣ０〜ＩＣＣ５）側へそれぞれ出力するものである。
【０１３３】
ラッチ回路３４３−０〜３４３−５は、ゲートコントローラ３４１により制御され、それぞれ、ＩＣＣ０〜ＩＣＣ５が非アクセス対象である場合に非アクセス状態へ遷移する直前にセレクタ３４２−０〜３４２−５から出力された信号をラッチするものである。
３ステート入出力ポート３４４−０〜３４４−５は、それぞれ、ＩＣＣ０〜ＩＣＣ５が非アクセス対象である場合もしくはＩＣＣ０〜ＩＣＣ５に対して出力すべき信号が“１”つまりＨｉｇｈ状態である場合に、ハイインピーダンス状態となるようにゲートコントローラ３４１により制御されるものである。
【０１３４】
セレクタ３４５Ａ，３４５Ｂは、ゲートコントローラ３４１により制御され、６枚のＩＣカード３３０から出力されたデータ（もしくはＣ４／Ｃ８信号）のうちのいずれか一つを選択的に切り替えてプロトコルコントローラ２０のポートＡ，Ｂに出力するものである。
上述の構成により、プロトコルコントローラ２０のポートＡに接続されるべきＩＣカード３３０からのデータやＣ４／Ｃ８信号は、セレクタ３４５Ａにより選択されてプロトコルコントローラ２０のポートＡに入力され、プロトコルコントローラ２０のポートＢに接続されるべきＩＣカード３３０からのデータやＣ４／Ｃ８信号は、セレクタ３４５Ｂにより選択されてプロトコルコントローラ２０のポートＢに入力される。また、ＩＣＣｉ（ｉ＝０〜５）に接続されるべきプロトコルコントローラ２０のポートＡまたはＢからのデータやＣ４／Ｃ８信号は、セレクタ３４２−ｉにより選択され、ラッチ回路３４３−ｉおよび３ステート入出力ポート３４４−ｉを介して、ＩＣＣｉに出力される。
【０１３５】
図２１に示すように、デマルチプレクサ３４０において、プロトコルコントローラ２０からＩＣカード３３０へ単方向で通信される信号（リセット信号）のための切替回路には、セレクタ３４７−０〜３４７−５，ラッチ回路３４８−０〜３４８−５および３ステート入出力ポート３４９−０〜３４９−５がそなえられている。
【０１３６】
セレクタ３４７−０〜３４７−５は、ゲートコントローラ３４１により制御され、プロトコルコントローラ２０の２つのポートＡ，Ｂから出力されたリセット信号のうちのいずれか一方を選択的に切り替えて６枚のＩＣカード３３０（ＩＣＣ０〜ＩＣＣ５）側へそれぞれ出力するものである。
ラッチ回路３４８−０〜３４８−５は、ゲートコントローラ３４１により制御され、それぞれ、ＩＣＣ０〜ＩＣＣ５が非アクセス対象である場合に非アクセス状態へ遷移する直前にセレクタ３４２−０〜３４２−５から出力されたリセット信号をラッチするものである。
【０１３７】
３ステート入出力ポート３４９−０〜３４９−５は、それぞれ、ＩＣＣ０〜ＩＣＣ５が非アクセス対象である場合もしくはＩＣＣ０〜ＩＣＣ５に対して出力すべき信号が“１”つまりＨｉｇｈ状態である場合に、ハイインピーダンス状態となるようにゲートコントローラ３４１により制御されるものである。
上述の構成により、ＩＣＣｉ（ｉ＝０〜５）に接続されるべきプロトコルコントローラ２０のポートＡまたはＢからのリセット信号は、セレクタ３４７−ｉにより選択され、ラッチ回路３４８−ｉおよび３ステート入出力ポート３４９−ｉを介して、ＩＣＣｉに出力される。
【０１３８】
図２２に示すように、デマルチプレクサ３４０において、ＩＣカード３３０からプロトコルコントローラ２０へ単方向で通信される信号（ＩＣカード装着通知信号）のための切替回路には、セレクタ３５１Ａ，３５１Ｂがそなえられている。
前述した通り、プロトコルコントローラ２０のポートＡ，ＢとＩＣカード３３０用のポート０〜５との間にはＩＣカード装着通知線がそなえられており、ポート０〜５のそれぞれにＩＣカード（ＩＣＣ０〜ＩＣＣ５）３３０が装着されているか否かの情報（ＩＣカード装着通知信号）が、プロトコルコントローラ２０のポートＡ，Ｂ（ＩＣカード制御回路３６Ａ，３６Ｂ）へ単方向で通知されるようになっている。
【０１３９】
そして、セレクタ３５１Ａ，３５１Ｂは、ゲートコントローラ３４１により制御され、６枚のＩＣカード３３０から出力されたＩＣカード装着通知信号のうちのいずれか一つを選択的に切り替えてプロトコルコントローラ２０のポートＡ，Ｂに出力するものである。
上述の構成により、プロトコルコントローラ２０のポートＡに接続されるべきＩＣカード３３０からのＩＣカード装着通知信号は、セレクタ３４５Ａにより選択されてプロトコルコントローラ２０のポートＡに入力され、プロトコルコントローラ２０のポートＢに接続されるべきＩＣカード３３０からのＩＣカード装着通知信号は、セレクタ３４５Ｂにより選択されてプロトコルコントローラ２０のポートＢに入力される。
【０１４０】
図２３は、本実施形態のプロトコルコントローラ２０に接続される最大６枚のＩＣカード３３０への電源供給系の構成を示すものである。なお、この図２３においても、６枚のＩＣカード３３０（ＩＣＣ０〜ＩＣＣ５）は、それぞれ、ポート番号０〜５を付与された実際のカードポート（以下、ポート０〜５と記す）に装着される。
【０１４１】
図２３に示すように、本実施形態の電源供給系は、図２を参照しながら前述した通り、デマルチプレクサ３４０，電圧セレクタ３６０およびパワーレギュレータ（電源調節器）３７０により構成されている。
ここで、前述したように、パワーレギュレータ３７０は、３Ｖと５Ｖの２種類の電圧を生成・出力するもので、電圧セレクタ３６０は、デマルチプレクサ３４０からの指示に応じて、３Ｖまたは５Ｖの電圧を選択して各ＩＣカード３３０に印加・供給するものである。
【０１４２】
そして、電圧セレクタ３６０は、２入力１出力のセレクタ３６１−０〜３６１−５をそなえて構成される。これらのセレクタ３６１−０〜３６１−５は、デマルチプレクサ３４０（ゲートコントローラ３４１）により制御され、それぞれ、ＩＣＣ０〜ＩＣＣ５が装着されている場合、常時、パワーレギュレータ３７０からの２種類の電圧３Ｖ，５Ｖのうちのいずれか一方を選択的に切り替えて６枚のＩＣカード３３０（ＩＣＣ０〜ＩＣＣ５）に電源として供給するものである。
【０１４３】
このとき、デマルチプレクサ３４０（ゲートコントローラ３４１）は、プロトコルコントローラ２０のカード用電源制御回路４２（図２参照）からの信号に応じて、電圧セレクタ３６０のセレクタ３６１−０〜３６１−５を制御する。
上述の構成により、ＩＣＣｉ（ｉ＝０〜５）に供給すべき電源電圧が３Ｖである場合には、パワーレギュレータ３７０からの電圧３Ｖの電源がセレクタ３６１−ｉにより選択されてＩＣＣｉに供給される一方、ＩＣＣｉ（ｉ＝０〜５）に供給すべき電源電圧が５Ｖである場合には、パワーレギュレータ３７０からの電圧５Ｖの電源がセレクタ３６１−ｉにより選択されてＩＣＣｉに供給される。
【０１４４】
なお、図２に示した通り、本実施形態のプロトコルコントローラ２０に対して接続されうる最大６枚のＩＣカード３３０のそれぞれに対しては、プロトコルコントローラ２０における６つのカード用クロック生成回路３８からクロック信号線３５０を通じて供給すべきクロック信号（制御クロック）がそれぞれ供給される。つまり、本実施形態においては、各ＩＣカード３３０で用いられるクロック信号は、プロトコルコントローラ２０から、ＩＣカード３３０と同数（６本）のクロック信号線３５０を通じて、各ＩＣカード３３０に供給される一方、６枚のＩＣカード３３０が、デマルチプレクサ３４０を介して、プロトコルコントローラ２０の２つのポートＡ，Ｂに設けられたデータ転送用信号線（データ線，Ｃ４信号線，Ｃ８信号線，リセット信号線など）を共用する。
【０１４５】
次に、プロトコルコントローラ２０のカード選択回路４３からデマルチプレクサ３４０へのセレクト信号ＣＤＳＥＬ［０：４］について、図２４および図２５を参照しながら説明する。なお、図２４は、本実施形態のプロトコルコントローラ２０において、デマルチプレクサ３４０へセレクト信号ＣＤＳＥＬ［０：４］を出力する際に用いられるＩＣカードポート割当レジスタ（ＣＤＳＥＬ）の構成を示す図であり、図２５はそのＩＣカードポート割当レジスタの各ビットの意味を説明するための図である。
【０１４６】
図２４に示すように、ＩＣカードポート割当レジスタ（ＣＤＳＥＬ）は、例えば論理アドレス００２０８０に設定される１バイトデータで、その下位５ビット（ビット番号０〜４）が用いられる。
このような５ビットのセレクト信号ＣＤＳＥＬ［０：４］を図２５に示すように設定することにより、プロトコルコントローラ２０のポートＡに接続すべきＩＣカード３３０（ＩＣＣ０〜ＩＣＣ５のうちのいずれか一つ）と、プロトコルコントローラ２０のポートＢに接続すべきＩＣカード３３０（ポートＡに接続されるＩＣカード３３０以外のもの）とが選択される。
【０１４７】
ただし、図２５に示すように、セレクト信号ＣＤＳＥＬ［０：４］の５ビットを全て“０”とした場合には、このセレクト信号ＣＤＳＥＬ［０：４］は、デマルチプレクサ３４０（ラッチ回路３４３−０〜３４３−５，３４８−０〜３４８−５を含む）のリセット指示信号として用いられる。また、セレクト信号ＣＤＳＥＬ［０：４］の５ビットを全て“１”とした場合には、このセレクト信号ＣＤＳＥＬ［０：４］は、ＩＣカード３３０に対す全ての出力信号をラッチ回路３４３−０〜３４３−５，３４８−０〜３４８−５によりラッチするためのラッチ指示信号として用いられる。
【０１４８】
次に、セレクト信号ＣＤＳＥＬ［０：４］によるデマルチプレクサ３４０の具体的な切替動作については、図２６および図２７を参照しながら後述する。なお、図２６および図２７は、いずれも、本実施形態におけるデマルチプレクサ３４０の切替動作を説明するためのタイムチャートである。
図２６では、プロトコルコントローラ２０が、２つのポートＡ，Ｂから一定周期の方形波を常時出力している状態でセレクト信号ＣＤＳＥＬ［０：４］によりデマルチプレクサ３４０を制御してポートＡ，Ｂと接続されるＩＣカード３３０（ＩＣＣ０〜ＩＣＣ６）を切り替えた場合について、デマルチプレクサ３４０から各ＩＣカード３３０（ＩＣＣ０〜ＩＣＣ６）へ出力される信号波形が示されている。
【０１４９】
図２７では、ＩＣカード３３０（ＩＣＣ０〜ＩＣＣ６）が一定周期の方形波を常時出力している状態で、プロトコルコントローラ２０がセレクト信号ＣＤＳＥＬ［０：４］によりデマルチプレクサ３４０を制御してポートＡ，Ｂと接続されるＩＣカード３３０（ＩＣＣ０〜ＩＣＣ６）を切り替えた場合について、デマルチプレクサ３４０からプロトコルコントローラ２０のポートＡ，Ｂへ入力される信号波形が示されている。
【０１５０】
これらの図２６および図２７において、時刻ｔ０〜ｔ１では、セレクト信号ＣＤＳＥＬ［０：４］が“１１１０１”でポートＡにはＩＣＣ５が接続されるとともにポートＢにはＩＣＣ３が接続される。同様に、時刻ｔ２〜ｔ３では、セレクト信号ＣＤＳＥＬ［０：４］が“１１１１０”でポートＡにはＩＣＣ５が接続されるとともにポートＢにはＩＣＣ４が接続され、時刻ｔ８〜ｔ９では、セレクト信号ＣＤＳＥＬ［０：４］が“００００１”でポートＡにはＩＣＣ０が接続されるとともにポートＢにはＩＣＣ１が接続され、時刻ｔ１０〜ｔ１１では、セレクト信号ＣＤＳＥＬ［０：４］が“０００１０”でポートＡにはＩＣＣ０が接続されるとともにポートＢにはＩＣＣ２が接続され、時刻ｔ１２〜ｔ１３では、セレクト信号ＣＤＳＥＬ［０：４］が“０００１１”でポートＡにはＩＣＣ０が接続されるとともにポートＢにはＩＣＣ３が接続される。また、時刻ｔ４〜ｔ５およびｔ６〜ｔ７では、セレクト信号ＣＤＳＥＬ［０：４］が“０００００”であるため、前述した通り、リセット信号ＸＲＳＴ（ローアクティブ）が生成されている。
【０１５１】
図２６に示すように、デマルチプレクサ３４０から各ＩＣカード３３０（ＩＣＣ０〜ＩＣＣ６）へ出力される信号は、セレクト信号ＣＤＳＥＬ［０：４］により接続先のＩＣカード３３０が切り替わる度にラッチされ、切替直前の状態が保持されている。そして、選択されたＩＣカード３３０には、対応するポートＡまたはＢからの信号が出力される。
【０１５２】
図２７に示すように、各ＩＣカード３３０（ＩＣＣ０〜ＩＣＣ６）からデマルチプレクサ３４０へ入力された信号は、セレクト信号ＣＤＳＥＬ［０：４］に応じて、対応するポートＡまたはＢからへ切替・出力される。
図２を参照しながら前述した通り、プロトコルコントローラ２０においてはポートＡ，Ｂ毎にＩＣカード制御回路３６Ａ，３６Ｂがそなえられており、各ＩＣカード制御回路３６Ａ，３６Ｂが、プロトコルコントローラ２０内のＣＰＵ２１からの指示を受けて動作することにより、プロトコルコントローラ２０から各ＩＣカード３３０に対するアクセスが行なわれることになる。
【０１５３】
また、通信中の各ＩＣカード３３０は、各ＩＣカード制御回路３６Ａ，３６Ｂからのコマンドを受信すると、そのコマンドに応じたレスポンスを各ＩＣカード制御回路３６Ａ，３６Ｂへ送信する。通信中以外（非アクセス対象）のＩＣカード３３０は、クロック信号線３５０によりクロック信号を供給されるとともに電圧セレクタ３６０およびパワーレギュレータ３７０により所定電圧（３Ｖ／５Ｖ）の電源供給を受け、コマンド待ち状態となっており、いつでも各ＩＣカード制御回路３６Ａ，３６Ｂからのコマンドを受信できるようになっている。
【０１５４】
そして、プロトコルコントローラ２０に複数のＩＣカード３３０を接続した状態で、プロトコルコントローラ２０のＣＰＵ２１からの指示を受けた２つのＩＣカード制御回路３６Ａ，３６Ｂが同時に動作することにより、２つのポートＡ，Ｂに、デマルチプレクサ３４０を介して接続された２つの可搬型媒体３３０に対するアクセスが行なわれている。このようにして２つの可搬型媒体３３０に対するアクセスを同時に行なうことにより、処理装置３００は、２つの可搬型媒体３３０と３３０との間でデータ転送処理を行なっている。
【０１５５】
このように、本実施形態におけるデータ転送制御手法によれば、デマルチプレクサ３４０を用いて２つのポートＡ，Ｂと６枚のＩＣカード３３０との間の接続状態の切替を行なうことにより、プロトコルコントローラ２０側におけるポートの数よりも多くのＩＣカード３３０に対してアクセスすることができるので、プロトコルコントローラ２０によって制御すべきＩＣカード３３０の数を増加させる場合に、プロトコルコントローラ２０側のポートやＩＣカード制御回路を増加させる必要がなくなる。
【０１５６】
従って、プロトコルコントローラ２０の製造コストを増大させることなく、制御対象のＩＣカード３３０の数を増やすことができる。特に、本実施形態のように、集積化されたプロトコルコントローラ２０では、制御対象のＩＣカード３３０の数を増やしても、多数本のラインやＩＣカード制御回路を高密度で集積する必要がなくなり、製造コストや回路規模の削減に著しく寄与する。
【０１５７】
また、非アクセス対象のＩＣカード３３０に対する信号状態をラッチしておくことにより、そのＩＣカード３３０が非アクセス対象からアクセス対象に切り替わった直後にそのＩＣカード３３０に対する信号状態がばたついて不安定になるのを確実に防止することができる。
さらに、プロトコルコントローラ２０からのセレクト信号ＣＤＳＥＬ［０：４］を用いて、デマルチプレクサ３４０による切替動作およびラッチ回路３４３−０〜３４３−５，３４８−０〜３４８−５のラッチ動作をリセットしたり、複数のＩＣカード３３０に対する全ての出力信号をラッチ回路３４３−０〜３４３−５，３４８−０〜３４８−５でラッチしたりすることができるので、様々な状況に対応して、デマルチプレクサ３４０の動作状態やラッチの状態を容易に制御することができる。
【０１５８】
なお、プロトコルコントローラ２０に接続されるＩＣカード３３０の枚数が２枚以下である場合には、外部のデマルチプレクサ３４０を用いずに、プロトコルコントローラ２０の２つのポートＡ，Ｂから直接的にＩＣカード３３０を制御してもよい。
また、本実施形態では、デマルチプレクサ３４０をプロトコルコントローラ２０とは別体としているが、デマルチプレクサ３４０をプロトコルコントローラ２０と同じチップ上に集積してプロトコルコントローラ２０と一体化してもよい。
【０１５９】
さらに、本実施形態では、プロトコルコントローラ２０のポート数が２、プロトコルコントローラ２０に接続されるＩＣカード３３０の最大枚数が６である場合について説明しているが、本発明はこれらの数に限定されるものではない。
〔４〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【０１６０】
例えば、上述した実施形態では、可搬型媒体がＩＣカードである場合について説明しているが、本発明は、これに限定されるものではなく、例えば光カード，無線カード等の可搬型媒体にも同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
また、上述した実施形態では、電子マネーが２種類である場合について説明したが、本発明は、これに限定されず、３種類以上の電子マネーを取り扱う場合であれば、各電子マネーのプロトコルに対応したプロトコル制御プログラムをそなえて制御プログラム５Ａや５Ｂを構成することにより、上述した実施形態と同様の作用効果を得ることができる。
【０１６１】
さらに、上述した実施形態では、プロトコルコントローラ２０のＣＰＵ２１を処理装置とし、このＣＰＵ２１がデバイス接続状態を認識する場合について説明したが、本発明は、これに限定されるものではなく、各種処理装置においてデバイス接続状態を認識する際に上述と同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
【０１６２】
【発明の効果】
以上詳述したように、本発明のデバイス接続状態認識方法（請求項１）およびデバイス接続状態認識機能を有する処理装置（請求項２）によれば、データバスを成す複数のデータ信号線においてプルアップ抵抗／プルダウン抵抗により生成される高電位状態／低電位状態を構成情報データとして読み取ることにより、検出専用の信号線を追加することなくデバイスの接続状態を認識することができ、つまりは、検出専用の信号線を追加することなく、前述したような汎用ＲＯＭを利用できるようになる。従って、コンピュータシステム毎に異なるＲＯＭを準備する必要がなくなり、ＲＯＭへのプログラム搭載に要する手間を省けるとともに部品管理を簡略化できるので、システム製造に要するコストを削減することができる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】本発明を適用される電子マネー制御用集積回路（プロトコルコントローラ）の構成例を模式的に示す図である。
【図３】本実施形態のプロトコルコントローラにおけるメモリ空間構成を示す図である。
【図４】本実施形態のプロトコルコントローラにおける制御プログラムの構造を示すブロック図である。
【図５】本実施形態のプロトコルコントローラにおいて用いられる制御電文の構成を説明するための図である。
【図６】本実施形態のプロトコルコントローラにおける制御プログラムの構造の他例を示すブロック図である。
【図７】（ａ），（ｂ）は、いずれも、本実施形態において、モジュール識別子と経路識別子との対応関係を保持するテーブルの内容を説明するための図である。
【図８】本実施形態のプロトコルコントローラのカスケード接続例を示す図である。
【図９】本実施形態のプロトコルコントローラを用いた取引処理の一例を説明するための図である。
【図１０】本実施形態のプロトコルコントローラを用いた取引処理の他例を説明するための図である。
【図１１】本実施形態のプロトコルコントローラを適用したＡＴＭの構成例を示すブロック図である。
【図１２】本実施形態のプロトコルコントローラを適用したＰＯＳシステムおよび外部カードリーダ／ライタの構成例を示すブロック図である。
【図１３】本実施形態のプロトコルコントローラを適用した携帯ＰＯＳ端末の構成例を示すブロック図である。
【図１４】本実施形態のプロトコルコントローラにおけるデバイス接続状態認識手法を説明するための回路図である。
【図１５】本実施形態のプロトコルコントローラにおけるデバイス接続状態認識手法を説明するための回路図である。
【図１６】本実施形態のプロトコルコントローラにおけるデバイス接続状態認識手順を説明するためのフローチャートである。
【図１７】本実施形態のプロトコルコントローラにおける構成情報レジスタ（ＨＷＳＴＲ）の構成を示す図である。
【図１８】本実施形態のプロトコルコントローラにおける構成情報レジスタの各ビットの意味を説明するための図である。
【図１９】本実施形態のプロトコルコントローラにおける構成情報レジスタの各ビットの意味を説明するための図である。
【図２０】本実施形態においてプロトコルコントローラとＩＣカードとの間にそなえられたデマルチプレクサ（データ転送制御装置）の構成を示すブロック図である。
【図２１】本実施形態においてプロトコルコントローラとＩＣカードとの間にそなえられたデマルチプレクサ（データ転送制御装置）の構成を示すブロック図である。
【図２２】本実施形態においてプロトコルコントローラとＩＣカードとの間にそなえられたデマルチプレクサ（データ転送制御装置）の構成を示すブロック図である。
【図２３】本実施形態のプロトコルコントローラに接続されるＩＣカードへの電源供給系の構成を示すブロック図である。
【図２４】本実施形態のプロトコルコントローラにおいてデマルチプレクサへセレクト信号を出力する際に用いるＩＣカードポート割当レジスタ（ＣＤＳＥＬ）の構成を示す図である。
【図２５】本実施形態のプロトコルコントローラにおけるＩＣカードポート割当レジスタの各ビットの意味を説明するための図である。
【図２６】本実施形態におけるデマルチプレクサの動作を説明するためのタイムチャートである。
【図２７】本実施形態におけるデマルチプレクサの動作を説明するためのタイムチャートである。
【図２８】一般的な処理装置に複数のデバイスを接続してなるシステムの構成例を示すブロック図である。
【図２９】図２７に示すシステムからＲＯＭを取り除いた状態を示すブロック図である。
【図３０】（ａ）は４種類のデバイスを有するハードウェアを示す図、（ｂ）は（ａ）に示すハードウェアのシステム起動時の動作を説明するためのフローチャートである。
【図３１】（ａ）は６種類のデバイスを有するハードウェアを示す図、（ｂ）は（ａ）に示すハードウェアのシステム起動時の動作を説明するためのフローチャートである。
【図３２】（ａ）は２種類のデバイスを有するハードウェアを示す図、（ｂ）は（ａ）に示すハードウェアのシステム起動時の動作を説明するためのフローチャートである。
【符号の説明】
３  インタフェース回路
５Ａ，５Ｂ  制御プログラム
２０  電子マネー制御用集積回路（プロトコルコントローラ）
２１  ＣＰＵ（処理部，処理装置）
２２  ＲＯＭ（記憶部，マスクＲＯＭ）
２３  ＲＡＭ
２４  アドレスバス
２５  データバス
２６  シリアル送受信制御回路（通信制御回路）
２７  メモリパリティ生成／チェック回路
２９  ＬＣＤ制御回路（表示制御回路）
３１  キーボード制御回路（入力制御回路）
３２  グリーンボタン制御回路（入力／表示制御回路）
３３  パルス生成回路（表示制御回路）
３４  ＭＳシリアル入力制御回路
３５  カード搬送制御回路
３６Ａ，３６Ｂ  ＩＣカード制御回路（媒体制御回路）
３７  カードＩ／Ｏモード制御回路
３８  カード用クロック生成回路
３９  カード用リセット制御回路（ＩＣカード制御回路，媒体制御回路）
４０  カード用Ｃ４／Ｃ８制御回路（ＩＣカード制御回路，媒体制御回路）
４１  カード用データ入出力制御回路（ＩＣカード制御回路，媒体制御回路）
４２  カード用電源制御回路
４３  カード選択回路
５０ａ〜５０ｃ  ＲＳ２３２Ｃドライバ
５０ｄ〜５０ｇ  シリアルドライバ／レシーバ
５１  ホストシステム（外部装置）
５２  サブシステム（外部装置）
５３  プリンタ（外部装置）
５４  外部メモリ（外部記憶部）
５４ａ  ＲＯＭ（外付ＲＯＭ，プログラム格納用外部記憶部）
５４ｂ  ＲＡＭ（外付ＲＡＭ，外部記憶部）
５４ｃ  ＦＬＡＳＨ  ＲＯＭ（外部記憶部）
５６  ＬＣＤ
５９  バス制御回路
６０  キーボード（ＫＢ）
６１，６１ａ，６１ｂ  グリーンボタン（ＧＢ）
６２  ブザー
６３  ＭＳリーダ
６４  カードコンベヤ
７０  電子マネー（ＩＣカード）対応ユニット
７１  ネットワーク
７２  上位処理部（ＣＰＵ）
８０  ＡＴＭ（Ａｕｔｏｍａｔｉｃ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ）
８１  制御回路
８２  スクリーン／タッチパネル
８３  プリンタ
８４  カードリーダ／ライタ
８６  エンボス部
８７  磁気ストライプ部（ＭＳ）
８８  プロトコルコントローラブロック
８８ａ  ＰＩＮパッド
９０  ＰＯＳシステム
９１  メインボード
９２  ディスプレイ
９３  プリンタ
９４  ＭＳリーダ
９５  キーボード（ＫＢ）
９６  ドロア（引出）
９７  リーダ／ライタインタフェースアダプタ
１００  処理装置
１１０  データバス
１１１  制御線
１１２  アドレスバス
１１３  プルアップ抵抗
１１４  プルダウン抵抗
１２０  デバイス群
１２０−０〜１２０−ｎ  デバイス
１３０  制御電文
１３１  電子マネー種別フィールド
１３２  取引種別フィールド
１３３  デバイス種別フィールド
１３４  命令フィールド
１３５  データ長フィールド
１３６  データフィールド
１５０  外部カードリーダ／ライタ
１６０  携帯ＰＯＳ端末
１６１  メインボード
１６２  ディスプレイ
１６３  タッチパネル
１６４  キーボード（ＫＢ）
１６５  ブザー（Ｂｚ）
１６６  プリンタ
１６６  ＰＣカードインタフェース（ＰＣＭＣＩＡ）
１６７  無線通信部（ＳＳＲＦ）
１６８  スキャナ
１６９  ホスト
１７０  シリアルドライバ／レシーバ
１７１  プロトコルコントローラブロック
３３０，３３０−１，３３０−２  ＩＣカード（可搬型媒体）
３３１  ＳＩＭ
３４０  デマルチプレクサ（データ転送制御装置，カード切替器）
３４１  ゲートコントローラ
３４２−０〜３４２−５  セレクタ
３４３−０〜３４３−５  ラッチ回路
３４４−０〜３４４−５  ３ステート入出力ポート
３４５Ａ，３４５Ｂ  セレクタ
３４６Ａ，３４６Ｂ  ３ステート入出力ポート
３４７−０〜３４７−５  セレクタ
３４８−０〜３４８−５  ラッチ回路
３４９−０〜３４９−５  ３ステート入出力ポート
３５０  クロック信号線
３５１Ａ，３５１Ｂ  セレクタ
３６０  電圧セレクタ
３６１−０〜３６１−５  セレクタ
３７０  パワーレギュレータ（電源調節器）
５０１  デバイス制御プログラム
５０２  プロトコル制御プログラム
５０３  アプリケーションプログラム
５０４  経路制御プログラム
５０５  通信制御プログラム
５０６  テーブル
５１０  モジュール群
５２０  ブートプログラム（ＢＯＯＴ）
５２１  ＯＳ（オペレーティングシステム）
５２２  アプリケーションプログラム
５２３−１  第１電子マネー用プロトコル制御プログラム
５２３−２  第２電子マネー用プロトコル制御プログラム
５３０  デバイス制御プログラム群
５３１Ａ  プリンタハンドラ
５３２Ａ  ＨＯＳＴ手順ハンドラ（デバイス制御プログラム，通信制御プログラム）
５３１Ｂ／５３２Ｂ  ＲＳ２３２Ｃドライバ（デバイス制御プログラム，通信制御プログラム）
５３３Ａ  ＬＣＤハンドラ（デバイス制御プログラム）
５３３Ｂ  ＬＣＤドライバ（デバイス制御プログラム）
５３４Ａ  ＫＢハンドラ（デバイス制御プログラム）
５３４Ｂ  ＫＢドライバ（デバイス制御プログラム）
５３５Ａ  ＧＢハンドラ（デバイス制御プログラム）
５３５Ｂ  ＧＢドライバ（デバイス制御プログラム）
５３６Ａ  ＩＣハンドラ（デバイス制御プログラム）
５３６Ｂ  ＩＣドライバ（デバイス制御プログラム）
５３７Ｂ  ＲＳ２３２Ｃドライバ（デバイス制御プログラム，通信制御プログラム）
５４０  デバイスルータ（経路制御プログラム）
５５０  テーブル
【図１】
0003626023.tif 000002
【図２】
0003626023.tif 000003
【図３】
0003626023.tif 000004
【図４】
0003626023.tif 000005
【図５】
0003626023.tif 000006
【図６】
0003626023.tif 000007
【図７】
0003626023.tif 000008
【図８】
0003626023.tif 000009
【図９】
0003626023.tif 000010
【図１０】
0003626023.tif 000011
【図１１】
0003626023.tif 000012
【図１２】
0003626023.tif 000013
【図１３】
0003626023.tif 000014
【図１４】
0003626023.tif 000015
【図１５】
0003626023.tif 000016
【図１６】
0003626023.tif 000017
【図１７】
0003626023.tif 000018
【図１８】
0003626023.tif 000019
【図１９】
0003626023.tif 000020
【図２０】
0003626023.tif 000021
【図２１】
0003626023.tif 000022
【図２２】
0003626023.tif 000023
【図２３】
0003626023.tif 000024
【図２４】
0003626023.tif 000025
【図２５】
0003626023.tif 000026
【図２６】
0003626023.tif 000027
【図２７】
0003626023.tif 000028
【図２８】
0003626023.tif 000029
【図２９】
0003626023.tif 000030
【図３０】
0003626023.tif 000031
【図３１】
0003626023.tif 000032
【図３２】
0003626023.tif 000033