(57)【要約】【課題】上位装置から一旦切断されたり、また、再接続されたデバイスを再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイスの構成に変更があった場合であってもアプリケーションの修正を不要とすること。【解決手段】デバイスを識別するデバイス識別子と、上位装置上または該上位装置の上位装置上で動作するアプリケーションに対して公開される仮想的な宛先を示す疑似宛先とを対応付けた対応情報を上位装置が取得し、ポートに接続されたデバイスからデバイス識別子を上位装置が取得し、取得されたデバイス識別子が対応情報に含まれる場合に、当該デバイス識別子の取得元となったポートを、対応情報において当該デバイス識別子と対応付けられている疑似宛先と上位装置が接続するようデバイス制御方法を構成する。【選択図】        図２
2011186857.tif 000002
【特許請求の範囲】
【請求項１】
デバイス接続用のポートへ接続されたデバイスと通信する上位装置であって、
前記デバイスを識別するデバイス識別子と、前記上位装置上または該上位装置の上位装置上で動作するアプリケーションに対して公開される仮想的な宛先を示す疑似宛先とを対応付けた対応情報を取得する対応情報取得部と、
前記ポートに接続された前記デバイスから前記デバイス識別子を取得する取得部と、
前記取得部によって取得された前記デバイス識別子が前記対応情報に含まれる場合に、当該デバイス識別子の取得元となった前記ポートを、前記対応情報において当該デバイス識別子と対応付けられている前記疑似宛先と接続する接続部と
を備えたことを特徴とする上位装置。
【請求項２】
前記接続部によって接続された前記ポートと前記疑似宛先との接続状態を接続情報として作成する接続情報作成部
をさらに備えたことを特徴とする請求項１に記載の上位装置。
【請求項３】
前記対応情報は、
接続する前記ポートが固定化されていない前記デバイスのみを含むことを特徴とする請求項１または２に記載の上位装置。
【請求項４】
前記接続情報作成部は、
前記ポートと前記デバイスとの接続が切断された場合に、当該ポートに関する前記接続情報を削除することを特徴とする請求項２または３に記載の上位装置。
【請求項５】
前記対応情報取得部は、
紙幣を処理する紙幣ユニットおよび硬貨を処理する硬貨ユニットについての前記対応情報を取得することを特徴とする請求項１〜４のいずれか一つに記載の上位装置。
【請求項６】
デバイス接続用のポートへ接続されたデバイスと通信する上位装置に適用されるデバイス制御方法であって、
上位装置が前記デバイスを識別するデバイス識別子と、前記上位装置上または該上位装置の上位装置上で動作するアプリケーションに対して公開される仮想的な宛先を示す疑似宛先とを対応付けた対応情報を取得する対応情報取得工程と、
上位装置が前記ポートに接続された前記デバイスから前記デバイス識別子を取得する取得工程と、
上位装置が前記取得部によって取得された前記デバイス識別子が前記対応情報に含まれる場合に、当該デバイス識別子の取得元となった前記ポートを、前記対応情報において当該デバイス識別子と対応付けられている前記疑似宛先と接続する接続工程と
を含んだことを特徴とするデバイス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、上位装置から一旦切断されたり、また、再接続されたデバイスを再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイスの構成に変更があった場合であってもアプリケーションの修正を不要とする上位装置およびデバイス制御方法に関する。
【背景技術】
【０００２】
従来から、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が搭載されており、ＯＳ上で動作するアプリケーションが組み込まれている装置（以下、「上位装置」と記載する）には、通信ケーブル等によって周辺機器であるデバイスが接続されている。
【０００３】
たとえば、パソコンを上位装置とした場合、パソコンには、ディスプレイ、キーボードおよびプリンタ等のデバイスが接続されており、ワープロや表計算のアプリケーションとデバイスとの間の通信を行っている。
【０００４】
近年では、通信ケーブルとして、上位装置の電源が入ったままでもケーブルの挿抜が可能であるホットプラグ機能を有するＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ケーブルが普及してきている。
【０００５】
そして、ＵＳＢケーブルで上位装置と接続されているデバイスとの通信が切断され、再び接続された場合に、上位装置は、デバイスを再認識するために、上位装置に備える所定の機能を再起動する等の復旧処理を行っていた。
【０００６】
たとえば、特許文献１には、上位装置とデバイスとの通信が切断され、再接続された際に、上位装置内のデバイスを制御する機能（以下、「デバイス制御モジュール」と記載する）を再起動して、デバイスとの通信の復旧を行う上位装置が開示されている。
【０００７】
また、上位装置内のアプリケーションが、接続されている全てのデバイスと再通信を行うことによって、いずれのデバイスが再接続されたのかを判断し、通信の復旧処理を行う上位装置もある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２７３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の上位装置は、一旦切断されたデバイスを再認識するには、デバイス制御モジュールを再起動し、初期処理を行う必要があるため、デバイスとの通信の復旧処理に時間がかかってしまうという問題があった。
【００１０】
また、アプリケーションが、再接続されたデバイスの再認識処理を行っている場合には、上位装置と接続されるデバイスの構成に変更があるたびにアプリケーション側も変更をする必要がある。すなわち、デバイスの構成の変更をアプリケーションにも反映させるために、アプリケーションプログラムの変更を行わなくてはならない。
【００１１】
アプリケーションの変更を行う場合には、アプリケーションの開発および再インストール作業等、作業負担がかかる。また、アプリケーションを利用する側にとってもデバイスの構成に変更があった場合、アプリケーションの変更が反映されるまでアプリケーションを利用できなくなることによって不便さを感じてしまう。
【００１２】
さらに、上位装置に接続されるデバイスが増えた場合には、従来の上位装置は、接続される全てのデバイスに対して通信状態を確認する必要があるため、デバイスの数が増えれば増えるほど再認識処理の時間がかかるという問題があった。
【００１３】
これらのことから、上位装置から一旦切断されたり、また、再接続されたデバイスを再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイスの構成に変更があった場合であってもアプリケーションの修正を不要とするデバイス制御方法をいかにして実現するかが大きな課題となっている。
【００１４】
本発明は、上述した従来技術による問題点を解消するためになされたものであって、上位装置から一旦切断されたり、また、再接続されたデバイスを再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイスの構成に変更があった場合であってもアプリケーションの修正を不要とするデバイス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するため、本発明は、デバイス接続用のポートへ接続されたデバイスと通信する上位装置であって、前記デバイスを識別するデバイス識別子と、前記上位装置上または該上位装置の上位装置上で動作するアプリケーションに対して公開される仮想的な宛先を示す疑似宛先とを対応付けた対応情報を取得する対応情報取得部と、前記ポートに接続された前記デバイスから前記デバイス識別子を取得する取得部と、前記取得部によって取得された前記デバイス識別子が前記対応情報に含まれる場合に、当該デバイス識別子の取得元となった前記ポートを、前記対応情報において当該デバイス識別子と対応付けられている前記疑似宛先と接続する接続部とを備えたことを特徴とする。このように、予め対応情報に記憶されるデバイス識別子に対して、かかるデバイス識別子と疑似宛先を接続することによって上位装置から一旦切断されたり、また、再接続されたデバイスを再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイスの構成に変更があった場合であってもアプリケーションの修正を不要とするという効果を奏する。
【００１６】
また、本発明は、上記の発明において、前記接続部によって接続された前記ポートと前記疑似宛先との接続状態を接続情報として作成する接続情報作成部をさらに備えたことを特徴とする。このように、接続状態を記憶することによって上位装置が接続状態を把握することができるとともに、誤送信することなくデバイスと疑似宛先との通信を中継することができるという効果を奏する。
【００１７】
また、本発明は、上記の発明において、前記対応情報は、接続する前記ポートが固定化されていない前記デバイスのみを含むことを特徴とする。このように、挿抜が可能なデバイス、すなわち動的デバイスのみに対して接続情報が作成されることによって上位装置の立ち上げ時に、固定的に接続されるデバイスに対しては接続情報を作成する必要がないので、起動時間を短縮することができるという効果を奏する。
【００１８】
また、本発明は、上記の発明において、前記接続情報作成部は、前記ポートと前記デバイスとの接続が切断された場合に、当該ポートに関する前記接続情報を削除することを特徴とする。このように、動的デバイスのみに対して接続状態の監視対象とすることによって上位装置は挿抜不可のデバイスに対してはデバイスファイルの更新を行わなくてよく、通信の復旧にかかる時間を短縮することができるという効果を奏する。
【００１９】
また、本発明は、上記の発明において、前記対応情報取得部は、紙幣を処理する紙幣ユニットおよび硬貨を処理する硬貨ユニットについての前記対応情報を取得することを特徴とする。このように、紙幣処理および貨幣処理を行うアプリケーションが組み込まれている貨幣処理機に適用することによって紙幣処理が硬貨ユニットへ出金指示を送信したり、紙幣ユニットからの入金結果を硬貨処理で受け付けるといった誤動作を防止することができるという効果を奏する。
【発明の効果】
【００２０】
本発明によれば、デバイス接続用のポートへ接続されたデバイスと通信する上位装置であって、デバイスを識別するデバイス識別子と、上位装置上または該上位装置の上位装置上で動作するアプリケーションに対して公開される仮想的な宛先を示す疑似宛先とを対応付けた対応情報を上位装置が取得し、ポートに接続されたデバイスからデバイス識別子を上位装置が取得し、取得されたデバイス識別子が対応情報に含まれる場合に、当該デバイス識別子の取得元となったポートを、対応情報において当該デバイス識別子と対応付けられている疑似宛先と上位装置が接続することとしたので、上位装置から一旦切断されたり、また、再接続されたデバイスを再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイスの構成に変更があった場合であってもアプリケーションの修正を不要とすることができるという効果を奏する。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明に係るデバイス制御手法の概要を示す図である。
【図２】図２は、本実施例に係る上位装置およびデバイスの構成を示すブロック図である。
【図３】図３は、エントリ情報の一例を示す図である。
【図４】図４は、デバイス対応情報の一例を示す図である。
【図５】図５は、デバイスファイルの一例を示す図である。
【図６】図６は、リンク情報の一例を示す図である。
【図７】図７は、動的デバイスを説明する図である。
【図８】図８は、リンク情報の更新例を示す図である。
【図９】図９は、上位装置が実行するデバイス起動処理手順を示すフローチャートである。
【図１０】図１０は、上位装置が実行するデバイス監視処理手順を示すフローチャートである。
【発明を実施するための形態】
【実施例】
【００２２】
以下に添付図面を参照して、本発明に係る上位装置およびデバイス制御方法の実施例を詳細に説明する。まず、実施例の詳細な説明に先立って、本発明に係るデバイス制御手法の概要について図１を用いて説明する。なお、上位装置には、紙幣ユニットおよび硬貨ユニットがＵＳＢケーブルによって接続されている貨幣処理機を一例に挙げて説明する。
【００２３】
図１は、本発明に係るデバイス制御手法の概要を示す図である。以下では、まず、同図の（Ａ）を用いて従来のデバイス制御手法の概要を説明し、同図の（Ｂ）を用いて本発明に係るデバイス制御手法の概要を説明する。
【００２４】
まず、図１の（Ａ）に示したように、従来のデバイス制御手法では、アプリケーションとデバイスとの間で通信を行う際、制御部では通信の節点であるデバイスノードおよびデバイスノードの物理宛先を管理していた。
【００２５】
ここで、紙幣処理を行うアプリケーション（以下、「紙幣アプリ」と記載する）とデバイスの一つである紙幣ユニットとは、デバイスノード０を介してホットプラグ機能を有するＵＳＢケーブルで接続されているとする(図１（Ａ−１)参照)。
【００２６】
また、硬貨処理を行うアプリケーション（以下、「硬貨アプリ」と記載する）と硬貨ユニットとは、デバイスノード１を介してＵＳＢケーブルで接続されているとする。図１の（Ａ−１)では、ＵＳＢケーブルの差し替えが行われる前の接続状態を、実線の矢印で示している。
【００２７】
この場合、従来のデバイス制御手法では、紙幣アプリは紙幣ユニットへデータの送信を行う際、デバイスノード０に対して送信指示を出し、硬貨アプリは硬貨ユニットへデータの送信を行う際、デバイスノード１に対して送信指示を出す。
【００２８】
ここで、ＵＳＢケーブルは上位装置の電源が入ったままでもケーブルの挿抜が可能である。そして、紙幣ユニットと硬貨ユニットとに接続されているＵＳＢケーブルが差し替えられたとする(図１（Ａ−２)参照)。この場合、破線の矢印で示したように、ＵＳＢケーブルの差し替え後は、デバイスノード０には硬貨ユニットが、デバイスノード１には紙幣ユニットが接続される場合がある。
【００２９】
この場合、紙幣アプリはデバイスノード０に対して紙幣ユニットへの送信指示を出されると、デバイスノード０には硬貨ユニットが接続されているので、硬貨ユニットへ誤送信されてしまう(図１（Ａ−３)参照)。
【００３０】
また、従来のデバイス制御手法では、アプリケーションが、デバイスノードとデバイスとの接続状態を確認しながら制御部へ送信指示を出す手法もあった。たとえば、アプリケーションが接続されている全てのデバイスノード（ここでは、デバイスノード０およびデバイスノード１）に対して接続状態の問合せを行い、送信処理を開始していた。しかし、接続される全てのデバイスに対して接続状態を確認する必要があるため、デバイスの数が増えれば増えるほど再認識処理が複雑になり時間がかかってしまう。
【００３１】
そこで、本発明に係るデバイス制御手法では、図１の（Ｂ）に示したように、デバイスごとに固定に設定された仮想的宛先として疑似ノードを設け、疑似ノードをアプリケーションに対して公開するようにした。そして、アプリケーション側が所望のデバイスへ送信指示を出す際には、仮想的宛先へ送信指示を出すことになる。
【００３２】
また、本発明に係るデバイス制御手法では、デバイスの接続が行われた際、デバイスノードに接続されているデバイスがいずれのユニットであるかを認識した上で、各疑似ノードに対応するデバイスに接続されるよう切換えることとした。
【００３３】
具体的には、図１（Ｂ−１）の実線の矢印で示したように、ＵＳＢケーブルの差し替えが行われる前の接続状態は、紙幣ユニットとデバイスノード０とが接続されており、硬貨ユニットとデバイスノード１とが接続されているとする。
【００３４】
また、図１（Ｂ−２）の実線の矢印で示したように、紙幣ユニットが接続されているデバイスノード０と疑似ノード０とを対応付けることによって疑似ノード０はデバイスノード０を介して紙幣ユニットに接続される。疑似ノード１も同様にデバイスノード１を介して硬貨ユニットに接続される。
【００３５】
ここで、紙幣ユニットと硬貨ユニットとに接続されているＵＳＢケーブルが差し替えられたとする(図１（Ｂ−３)参照)。この場合、破線の矢印で示したように、ＵＳＢケーブルの差し替え後は、デバイスノード０には硬貨ユニットが、デバイスノード１には紙幣ユニットが接続される。
【００３６】
そこで、本発明に係るデバイス制御手法では、各デバイスノードに接続されていたデバイスがケーブルの差し替えによって入れ替わったことを認識し、疑似ノード０には、紙幣ユニットが接続されているデバイスノード１へ対応付けるよう切換える(図１（Ｂ−４)参照)。これにより、本発明に係るデバイス制御手法では、常に疑似ノード０は紙幣ユニットに接続され、疑似ノード１は硬貨ユニットに接続されることとなる。
【００３７】
また、紙幣アプリは、紙幣ユニットへ送信指示を出す際には、常に紙幣ユニットの仮想的宛先である疑似ノード０に対して送信指示を出せばよく、紙幣ユニットが接続されているデバイスノードの物理宛先を認識する必要がない。
【００３８】
したがって、本発明に係るデバイス制御手法では、他のデバイスが増設され、接続されるデバイスの構成に変更があった場合であっても、アプリケーション側は、各デバイスに対応する仮想的宛先である疑似ノードさえ解っていればよい。そして、本発明に係るデバイス制御手法では、アプリケーションの変更を行うことなく、所望のデバイスへ送信指示が送信されることが担保される。
【００３９】
また、本発明に係るデバイス制御手法では、接続または切断されたデバイスに対して接続状態を確認し、アプリケーション側で接続される全てのデバイスに対して接続状態を確認する必要がない。アプリケーションからのデバイスノードの認識処理が不要となるので、アプリケーションが送信指示をデバイスへ送信するまでの処理時間を短縮することができる。
【００４０】
なお、本発明に係るデバイス制御手法は、上位装置内のデバイスノードに近い部分、たとえば、ＯＳの中核部分であるカーネルからのデバイスに関する情報を参照することで挿抜機能を有する紙幣ユニットや硬貨ユニット等の貨幣処理機に対し、信頼性の高い認識処理を提供することができる。
【００４１】
以下では、図１を用いて説明したデバイス制御手法を適用した上位装置についての実施例を詳細に説明する。まず、本実施例に係る上位装置１０およびデバイス２０の構成について図２を用いて説明する。
【００４２】
図２は、本実施例に係る上位装置１０およびデバイス２０の構成を示すブロック図である。なお、図２では、上位装置１０およびデバイス２０の特徴点を説明するために必要な構成要素のみを抜粋して示している。
【００４３】
まず、上位装置１０は、アプリケーション１１と、デバイスドライバ１２と、記憶部１３と、制御部１４とを備えている。また、記憶部１３は、エントリ情報１３ａと、デバイス対応情報１３ｂと、デバイスファイル１３ｃと、リンク情報１３ｄとを記憶し、制御部１４は、デバイス起動部１４ａと、デバイスファイル作成部１４ｂと、デバイス監視部１４ｃと、デバイスファイル更新部１４ｄと、中継部１４ｅとをさらに備えている。
【００４４】
アプリケーション１１は、ある特定の目的のために設計されたソフトウエアであり、たとえば、紙幣ユニット２０ａや硬貨ユニット２０ｂを統括するソフトウエアや画面表示を行うソフトウエアなどで構成される。
【００４５】
なお、アプリケーション１１は、上位装置１０に備えることとしたが、上位装置１０の上位装置を備える構成として、アプリケーション１１は、上位装置１０の上位装置に備えることとしてもよい。すなわち、上位装置１０とアプリケーション１１と紙幣ユニット２０ａや硬貨ユニット２０ｂとの間に介在する中間装置とする構成も可能である。
【００４６】
送受信部１１ａは、アプリケーション１１からデバイスドライバ１２を介してデバイス２０へ貨幣計数指示等の各処理指示を、アプリケーション１１に備える疑似ノード１１ｂに対して送信する処理を行う処理部である。なお、アプリケーション１１に備える疑似ノード１１ｂは、デバイス対応情報１３ｂで定義される疑似ノードと一致しているものとする。また、送受信部１１ａは、デバイス２０からの応答情報を受信する処理を併せて行う。
【００４７】
デバイスドライバ１２は、周辺機器であるデバイス２０との通信をつかさどるソフトウエアであり、アプリケーション１１が各デバイスを制御する際に、デバイスドライバ１２を介して行う。
【００４８】
記憶部１３は、不揮発性メモリやハードディスクドライブといった記憶デバイスであり、エントリ情報１３ａ、デバイス対応情報１３ｂ、デバイスファイル１３ｃおよびリンク情報１３ｄを記憶する。
【００４９】
エントリ情報１３ａは、デバイス対応情報１３ｂを記憶しているファイル名であり、また、挿抜が可能であるホットプラグ機能を有するＵＳＢケーブルで接続されているデバイス２０（以下、「動的デバイス」と記載する）と関連付けられるデバイスファイル１３ｃのファイル名であり、予め記憶させておく。
【００５０】
デバイス対応情報１３ｂは、デバイスの仮想的宛先である疑似ノード名と疑似ノードに対応する動的デバイスを一意に識別する識別子（以下、「デバイスＩＤ」と記載する）である。いずれの疑似ノードとデバイスＩＤとが接続されることを担保するかをデバイス対応情報１３ｂに予め記憶させておく。
【００５１】
デバイスファイル１３ｃは、上位装置１０に接続されるデバイス２０ごとに設定され、上位装置１０がデバイス２０を制御する際に必要とする詳細情報である。なお、デバイスファイル１３ｃの詳細な説明については後述することとする。
【００５２】
リンク情報１３ｄは、デバイスファイル名に対応するデバイスＩＤおよび疑似ノードである。具体的には、リンク情報１３ｄは、デバイス対応情報１３ｂに記憶されるデバイスＩＤとデバイス２０から取得したデバイスＩＤとを対応付けることで得られたデバイスファイル名と疑似ノードとの関係付けを表す情報である。
【００５３】
制御部１４は、上位装置１０の全体制御を行う制御部である。デバイス起動部１４ａは、エントリ情報１３ａとデバイス対応情報１３ｂとに基づいて接続されるデバイス２０を認識する処理を行う処理部である。
【００５４】
また、デバイス起動部１４ａは、動的デバイスのデバイスファイル１３ｃを作成するよう、デバイスファイル作成部１４ｂへデバイスファイル１３ｃの作成を指示する処理を併せて行う。
【００５５】
デバイス監視部１４ｃは、上位装置１０の電源が入った状態でケーブルが挿抜され、デバイス２０が切断または接続されたか否かを監視する処理を行う処理部である。具体的には、デバイス監視部１４ｃは、デバイス２０の接続状態の変化をデバイスドライバ１２を介して取得すると、いずれかのデバイス２０が切断または接続されたと判定する。
【００５６】
また、デバイス監視部１４ｃは、デバイス２０が切断または接続されたと判定した場合に、デバイスファイル更新部１４ｄへ、デバイスファイル１３ｃの更新を指示する処理を併せて行う。
【００５７】
デバイスファイル更新部１４ｄは、デバイス２０が切断または接続された旨をデバイス監視部１４ｃから受け付けると、接続状態に変化のあったデバイス２０のデバイスファイル１３ｃおよびリンク情報１３ｄを更新する。
【００５８】
中継部１４ｅは、送受信部１１ａから受け付けた疑似ノードに対する各処理指示を、リンク情報１３ｄに基づき、デバイスドライバ１２を介して疑似ノードに対応するデバイス２０へ送信する処理を行う処理部である。
【００５９】
また、中継部１４ｅは、リンク情報１３ｄに基づき、デバイスドライバ１２を介してデバイス２０から受け付けた応答情報をデバイス２０に対応する疑似ノードへ渡す処理を併せて行う。
【００６０】
つづいて、デバイス２０の構成について説明する。デバイス２０は、上位装置１０と接続される周辺機器であり、本実施例に係るデバイス２０は、紙幣ユニット２０ａと、硬貨ユニット２０ｂとから構成される。
【００６１】
紙幣ユニット２０ａは、アプリケーション１１から受信した処理指示に従って所定の紙幣を投出したり、挿入された紙幣を計数し、計数値を応答情報としてアプリケーション１１へ送信する等、紙幣に関する処理を行う周辺機器である。
【００６２】
硬貨ユニット２０ｂは、アプリケーション１１から受信した処理指示に従って所定の硬貨を投出したり、挿入された硬貨を計数し、計数値を応答情報としてアプリケーション１１へ送信する等、硬貨に関する処理を行う周辺機器である。
【００６３】
つぎに、記憶部１３に記憶されるエントリ情報１３ａ、デバイス対応情報１３ｂ、デバイスファイル１３ｃおよびリンク情報１３ｄの一例について図３〜図６を用いて説明する。図３は、エントリ情報１３ａの一例を示す図であり、図４は、デバイス対応情報１３ｂの一例を示す図であり、図５は、デバイスファイル１３ｃの一例を示す図であり、図６は、リンク情報１３ｄの一例を示す図である。
【００６４】
まず、図３に示すように、エントリ情報１３ａの１レコードには、動的デバイスの「デバイスファイル名」項目を含んでいる。エントリ情報１３ａには、デバイス２０（紙幣ユニット２０ａおよび硬貨ユニット２０ｂ）と対応付けられるデバイスファイル名を予め記憶させる。ここで、動的デバイスは紙幣ユニット２０ａおよび硬貨ユニット２０ｂであるので、それぞれの「デバイスファイル名」として、エントリ情報１３ａには、「ＤＥＶ＿０」と「ＤＥＶ＿１」との２レコード分を順不同で予め記憶させることとする。
【００６５】
つぎに、図４に示すように、デバイス対応情報１３ｂの１レコードには、「疑似ノード」項目と疑似ノードに対応付ける「デバイスＩＤ」項目とを含んでいる。デバイス対応情報１３ｂには、いずれの疑似ノードとデバイスＩＤとが接続されることを担保するかを予め記憶させる。ここでは、「ｆｉｘ＿紙幣」にはデバイスＩＤ「ｄＩＤ＿紙幣」が、「ｆｉｘ＿硬貨」にはデバイスＩＤ「ｄＩＤ＿硬貨」が接続されるよう対応付けておくこととする。
【００６６】
つぎに、図５に示すように、デバイスファイル１３ｃは、「デバイスファイル名」項目と、「メジャー番号」項目と、「マイナー番号」項目とを含んでいる。なお、同図で示す１行分が、１つのファイルとして構成される。
【００６７】
「メジャー番号」項目は、デバイスの種類で識別され、デバイスドライバ１２の種類に対応する番号である。また、「マイナー番号」項目は、同じメジャー番号のデバイス同士を識別するための番号である。
【００６８】
つぎに、図６に示すように、リンク情報１３ｄの１レコードには、「デバイスファイル名」項目と、デバイスファイル名に対応付けられた「デバイスＩＤ」項目と、デバイス対応情報１３ｂに基づいてデバイスＩＤに接続される「疑似ノード」項目とを含んでいる。
【００６９】
具体的に、デバイスファイル１３ｃおよびリンク情報１３ｄがどのように作成されるかを、以下に説明する。まず、デバイス起動部１４ａは、上位装置１０の電源が入れられた際に、エントリ情報１３ａとデバイス対応情報１３ｂとに基づいてＵＳＢケーブルに接続される２つのデバイス、ここでは、紙幣ユニット２０ａおよび硬貨ユニット２０ｂを認識する。デバイス起動部１４ａは、エントリ情報１３ａのデバイスファイル名（ここではＤＥＶ＿０とする）をキーとして制御部１４はデバイスの情報を検索し、このキーと対応付いているいずれかのデバイス（紙幣ユニット２０ａまたは硬貨ユニット２０ｂ）を一意に識別するデバイスＩＤ（ここではｄＩＤ＿紙幣とする）を取得する。
【００７０】
そして、デバイスファイル作成部１４ｂは、紙幣ユニット２０ａを認識する際に、デバイスファイル名が「ＤＥＶ＿０」であるデバイスファイル１３ｃを作成する（図５の１行目参照）。
【００７１】
ここでは、ＵＳＢケーブルで接続されるドライバの種類、すなわち、メジャー番号が「２」、接続されるマイナー番号が「０」の場合のデバイスファイル１３ｃを示した。
【００７２】
さらに、デバイスファイル作成部１４ｂは、リンク情報１３ｄに、デバイスＩＤとともに、デバイスＩＤが「ｄＩＤ＿紙幣」である紙幣ユニット２０ａに対応付けられるデバイスファイル名「ＤＥＶ＿０」を登録する（図６の１行目参照）。なお、リンク情報１３ｄの「デバイスＩＤ」項目はなくてもよく、「デバイスファイル名」項目とデバイスファイル名に対応付けられる「デバイスＩＤ」項目とを含む情報を別にもつこととしてもよい。
【００７３】
また、デバイスファイル作成部１４ｂは、デバイス起動部１４ａで取得されたデバイスＩＤ（ｄＩＤ＿紙幣）をキーとして予めデバイス対応情報１３ｂに登録されるデバイスＩＤに対応付けられる疑似ノードを取得する。
【００７４】
同時に、デバイスファイル作成部１４ｂは、リンク情報１３ｄに、デバイス対応情報１３ｂに基づいてデバイスＩＤが「ｄＩＤ＿紙幣」と接続される疑似ノード「ｆｉｘ＿紙幣」とがリンクされている情報として登録する（図６の１行目参照）。
【００７５】
このようにすることによって、中継部１４ｅでは、デバイスＩＤ、デバイスファイル１３ｃおよび疑似ノードに基づいて紙幣ユニット２０ａと疑似ノードとの情報の送受信を行うことができる。
【００７６】
なお、デバイス起動部１４ａは、エントリ情報１３ａに基づいてデバイス２０を認識し、アプリケーション１１の送受信部１１ａは、リンク情報１３ｄに登録された疑似ノードと一致する疑似ノード１１ｂに対して各処理指示を送信することとした。
【００７７】
つぎに、動的デバイスについて図７〜図８を用いて説明する。図７は、動的デバイスを説明する図であり、図８は、リンク情報１３ｄの更新例を示す図である。
【００７８】
まず、図７の（Ａ）に示すように、上位装置１０には、ディスプレイやキーボード等のように、電源が入った状態では挿抜しないケーブルで接続されるデバイス（以下、「静的デバイス」と記載する）が接続されているとする。
【００７９】
また、上位装置１０には、紙幣ユニット２０ａや硬貨ユニット２０ｂのように、ホットプラグ機能を有するケーブル、たとえばＵＳＢケーブルで接続されている動的デバイスが接続されているとする。
【００８０】
ここで、上位装置１０の電源が入れられた際に、静的デバイスについては、制御部１４は、予め作成されているデバイスファイルに基づいて接続されるデバイスを認識する（図７の（１）参照）。
【００８１】
一方、動的デバイスについては、上位装置１０の電源が入れられた際に、デバイスファイル作成部１４ｂは、上述してきたように、エントリ情報１３ａ、デバイス対応情報１３ｂおよびデバイス２０からの情報に基づいてデバイスファイル１３ｃおよびリンク情報１３ｄを新規に作成する（図７の（２）参照）。
【００８２】
ここで、デバイスファイル作成部１４ｂによって作成されたリンク情報１３ｄを、図８の（Ａ）に示す。デバイスＩＤが「ｄＩＤ＿紙幣」に対応するデバイスファイル名を「ＤＥＶ＿０」とすると、デバイスファイル名が「ＤＥＶ＿０」のデバイスファイル１３ｃが紙幣ユニット２０ａに対応付けられて作成されたことを示す。
【００８３】
そして、デバイス起動部１４ａは、デバイスファイル作成部１４ｂによって作成されたデバイスファイル１３ｃおよびリンク情報１３ｄに基づいて接続されるデバイス２０を認識する（図７の（３）参照）。ここで、図７の（Ｂ）に示すように、紙幣ユニット２０ａと硬貨ユニット２０ｂのＵＳＢケーブルが差し替えられた場合について説明する（図７の（４）参照）。
【００８４】
デバイス監視部１４ｃは、紙幣ユニット２０ａおよび硬貨ユニット２０ｂが再接続されたと判定し、デバイスファイル更新部１４ｄでは、紙幣ユニット２０ａと硬貨ユニット２０ｂに対応するデバイスファイル１３ｃおよびリンク情報１３ｄを更新する（図７の（５）参照）。
【００８５】
ここで、デバイスファイル更新部１４ｄによって更新されたリンク情報１３ｄを、図８の（Ｂ）に示す。デバイスＩＤが「ｄＩＤ＿硬貨」に対応するデバイスファイル名を「ＤＥＶ＿０」とすると、デバイスファイル名が「ＤＥＶ＿０」のデバイスファイル１３ｃが硬貨ユニット２０ｂに対応付けられて更新されたことを示す。
【００８６】
そして、デバイス監視部１４ｃは、デバイスファイル更新部１４ｄによって更新されたデバイスファイル１３ｃおよびリンク情報１３ｄに基づいて再接続されたデバイス２０を再認識する（図７の（６）参照）。
【００８７】
このように、静的デバイスについては、新たにデバイスファイルを作成することなくデバイスを認識することによって上位装置１０の起動時間を短縮することができる。また、デバイス監視部１４ｃは、リンク情報１３ｄに記憶される疑似ノード、すなわち、動的デバイスについてのみ監視すればよい。また、デバイス２０の構成に変更があった場合には、記憶部１３のエントリ情報１３ａおよびデバイス対応情報１３ｂに変更内容を記憶させておけばよい。
【００８８】
これにより、上位装置１０から一旦切断されたり、また、再接続されたデバイス２０を再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイス２０の構成に変更があった場合であってもアプリケーションの修正を不要とすることができる。
【００８９】
つぎに、上記した上位装置１０が実行する処理手順について図９〜図１０を用いて説明する。なお、図９ではデバイス起動処理手順について、図１０ではデバイス監視処理手順について、それぞれ説明する。
【００９０】
図９は、上位装置が実行するデバイス起動処理手順を示すフローチャートである。同図に示すように、上位装置１０に電源が入れられたならば、制御部１４は、リンク情報１３ｄを削除して初期化を行う（ステップＳ１０１）。
【００９１】
そして、デバイス起動部１４ａは、エントリ情報１３ａの最初のレコードの読み込みを行い（ステップＳ１０２）、ステップＳ１０２で読み込んだデバイスファイル名からデバイスＩＤを取得し、取得したデバイスＩＤに対応するデバイス対応情報１３ｂを取得する（ステップＳ１０３）。
【００９２】
つづいて、デバイスファイル作成部１４ｂは、ステップＳ１０３で取得したデバイス対応情報１３ｂのデバイスＩＤに対応するデバイスファイル１３ｃを作成するとともに（ステップＳ１０４）、かかるデバイスＩＤのリンク情報１３ｄを追加する（ステップＳ１０５）。
【００９３】
そして、デバイス起動部１４ａは、エントリ情報１３ａの次のレコードの読み込みを行い（ステップＳ１０６）、エントリ情報１３ａの次のレコードがあるか否かを判定する（ステップＳ１０７）。
【００９４】
そして、デバイス起動部１４ａによって次のエントリ情報１３ａありと判定された場合（ステップＳ１０７，Ｎｏ）、エントリ情報１３ａがなくなるまでステップＳ１０３〜ステップＳ１０６までの処理を繰り返す。一方、次のエントリ情報１３ａなしと判定された場合（ステップＳ１０７，Ｙｅｓ）、処理を終了する。つづいて、デバイス監視処理手順について図１０を用いて説明する。
【００９５】
図１０は、上位装置１０が実行するデバイス監視処理手順を示すフローチャートである。同図に示すように、デバイス監視部１４ｃは、上位装置１０の電源が入った状態でケーブルが挿抜され、デバイス２０が切断または接続されたか否かを監視している際に、いずれかのデバイス２０が切断されたか否かを判定する（ステップＳ２０１）。
【００９６】
デバイス２０が切断されたと判定された場合（ステップＳ２０１，Ｙｅｓ）、デバイス監視部１４ｃは、制御部１４からの情報伝達により切断されたデバイスＩＤを取得する（ステップＳ２０２）。
【００９７】
そして、デバイスファイル更新部１４ｄは、ステップＳ２０２で取得したデバイスＩＤのリンク情報１３ｄを削除するとともに（ステップＳ２０３）、かかるデバイスＩＤのデバイスファイル１３ｃを削除する（ステップＳ２０４）。そして、ステップＳ２０１へ移行し、デバイス監視部１４ｃは、デバイス２０の接続状態の監視を続ける。
【００９８】
一方、ステップＳ２０１でデバイス２０が切断されていないと判定された場合（ステップＳ２０１，Ｎｏ）、デバイス監視部１４ｃは、いずれかのデバイス２０が接続されたか否かを判定する（ステップＳ２０５）。
【００９９】
デバイス２０が接続されたと判定された場合（ステップＳ２０５，Ｙｅｓ）、デバイス監視部１４ｃは、制御部１４からの情報伝達により接続されたデバイスＩＤを取得する（ステップＳ２０６）。そして、デバイスファイル更新部１４ｄは、ステップＳ２０６で取得したデバイスＩＤに対応する疑似ノードをデバイス対応情報１３ｂから取得する（ステップＳ２０７）。
【０１００】
その後、デバイスファイル更新部１４ｄは、取得したデバイス対応情報１３ｂのデバイスＩＤに対応するデバイスファイル１３ｃを作成するとともに（ステップＳ２０８）、かかるデバイスＩＤのリンク情報１３ｄを追加する（ステップＳ２０９）。そして、ステップＳ２０１へ移行し、デバイス監視部１４ｃは、デバイス２０の接続状態の監視を続ける。
【０１０１】
一方、ステップＳ２０５でデバイス２０が接続されていないと判定された場合（ステップＳ２０５，Ｎｏ）、ステップＳ２０１へ移行し、デバイス監視部１４ｃは、デバイス２０の接続状態の監視を続ける。
【０１０２】
上述してきたように、本実施例では、上位装置１０の電源が入れられた際に、静的デバイスについては、予め作成されているデバイスファイルに基づいて接続されるデバイスを認識する。また、動的デバイスについては、制御部１４からの情報伝達を契機としてエントリ情報１３ａとデバイス対応情報１３ｂとに基づいて接続される動的デバイスを認識し、動的デバイスに対応するデバイスファイル１３ｃおよびリンク情報１３ｄを作成する。そして、デバイス２０の切断情報を受信するとリンク情報１３ｄに基づいて接続情報を削除する。つまり、デバイス２０の接続状態に基づいてデバイスファイル１３ｃおよびリンク情報１３ｄを更新する。また、アプリケーション１１およびデバイス２０との中継処理を、リンク情報１３ｄに基づいてデバイス２０に対応するデバイスファイル１３ｃからデバイスドライバ１２を介して中継することとした。
【０１０３】
したがって、本発明に係るデバイス制御方法では、上位装置から一旦切断されたり、また、再接続されたデバイスを再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイスの構成に変更があった場合であってもアプリケーションの修正を不要とすることができる。
【０１０４】
なお、本発明の請求項に記載の上位装置は上位装置１０、対応情報はエントリ情報１３ａおよびデバイス対応情報１３ｂ、対応情報取得部はデバイス起動部１４ａ、接続部はデバイスファイル作成部１４ｂ、接続情報はデバイスファイル１３ｃおよびリンク情報１３ｄ、接続情報作成部はデバイスファイル作成部１４ｂおよびデバイスファイル更新部１４ｄの一例として挙げられる。
【０１０５】
なお、上述した実施例では、デバイス２０を紙幣ユニットおよび硬貨ユニットに適用する例を説明したが、同一のメジャー番号に属する３つまたはそれ以上の周辺機器を対象とした場合にも同様に適用することができる。
【０１０６】
また、上述した実施例では、上位装置１０に接続されたデバイス２０を制御することとした。しかし、複数の上位装置１０と上位装置１０を管理する管理装置とがＬＡＮ（Local  Area  Network）等のネットワーク経由で接続されているような構成としてもよい。
【０１０７】
この場合、各上位装置１０に記憶されるリンク情報１３ｄを管理装置へ送信することで、管理装置によって各上位装置１０に接続されるデバイス２０の状態を一括して表示し、監視することができる。
【産業上の利用可能性】
【０１０８】
以上のように、本発明に係る上位装置は、上位装置から一旦切断されたり、また、再接続されたデバイスを再認識する際、通信の復旧にかかる時間を短縮するとともに、デバイスの構成に変更があった場合であってもアプリケーションの修正を不要とする場合に有用である。
【符号の説明】
【０１０９】
１０    上位装置
１１    アプリケーション
１１ａ  送受信部
１１ｂ  疑似ノード
１２    デバイスドライバ
１３    記憶部
１３ａ  エントリ情報
１３ｂ  デバイス対応情報
１３ｃ  デバイスファイル
１３ｄ  リンク情報
１４    制御部
１４ａ  デバイス起動部
１４ｂ  デバイスファイル作成部
１４ｃ  デバイス監視部
１４ｄ  デバイスファイル更新部
１４ｅ  中継部
２０    デバイス
２０ａ  紙幣ユニット
２０ｂ  硬貨ユニット
【図１】
2011186857.tif 000003
【図２】
2011186857.tif 000004
【図３】
2011186857.tif 000005
【図４】
2011186857.tif 000006
【図５】
2011186857.tif 000007
【図６】
2011186857.tif 000008
【図７】
2011186857.tif 000009
【図８】
2011186857.tif 000010
【図９】
2011186857.tif 000011
【図１０】
2011186857.tif 000012