(57)【要約】【課題】ＯＳで認識されているＵＳＢデバイスを、アプリケーションが使用することができない状態からの復旧に要する時間を短縮し、運用効率の向上を図ったホスト装置を提供する。【解決手段】ＵＳＢインタフェース１４に接続されているＵＳＢデバイス３について、切断、接続が連続して検知された場合、ＯＳがＵＳＢデバイス制御モジュールを再起動する。これにより、ＵＳＢデバイス３について、ＯＳが管理しているハンドルと、ＵＳＢデバイス制御モジュールが保持しているハンドルと、が一致していないために、アプリケーションがＵＳＢデバイス３を使用できない状態からの復旧にかかる時間の短縮が図れ、運用効率が向上できる。【選択図】図１
2008027379.tif 000002
【特許請求の範囲】
【請求項１】
データ通信を接続されているデバイスとの間で行う通信手段と、
前記通信手段に対するデバイスの接続、およびデバイスの切断を検知する検知手段と、
前記検知手段により接続が検知されたデバイスを認識するとともに、このデバイスのハンドルを生成する認識手段と、
前記認識手段により生成されたハンドルを取得し、このハンドルを用いてデバイスを制御するデバイス制御モジュールを再起動する再起動手段と、を備え、
前記再起動手段は、前記検知手段により前記通信手段に対するデバイスの切断が検知された後に、続けてデバイスの接続が検知された場合に、デバイス制御モジュールを再起動する手段である、ホスト装置。
【請求項２】
デバイス毎に、そのデバイスを制御するデバイス制御モジュールを対応づけたデバイステーブルを記憶する記憶手段を備え、
前記再起動手段は、前記記憶手段が記憶する前記デバイステーブルを用いて、今回接続が検知されたデバイスに対応づけられているデバイス制御モジュールを再起動する、請求項１に記載のホスト装置。
【請求項３】
前記再起動手段がデバイス制御モジュールの再起動を実行しているとき、その旨を出力する出力手段を備えた、請求項１または２に記載のホスト装置。
【請求項４】
前記再起動手段は、デバイス制御モジュールの再起動が完了したときに、該当するデバイスが使用可能であるかどうかを確認し、使用可能でなければ、再度、デバイス制御モジュールの再起動を実行する、請求項１〜３のいずれかに記載のホスト装置。
【請求項５】
前記再起動手段がデバイス制御モジュールの再起動を予め定められた回数繰り返しても、該当するデバイスが使用可能にならなければ、このデバイスの使用を制限する制限手段を備えた、請求項４に記載のホスト装置。
【請求項６】
前記通信手段は、ＵＳＢインタフェースで接続されたデバイスとデータ通信を行う、請求項１〜５のいずれかに記載のホスト装置。
【請求項７】
データ通信を接続されているデバイスとの間で行う通信手段と、
前記通信手段に対するデバイスの接続、およびデバイスの切断を検知する検知手段と、
前記検知手段により接続が検知されたデバイスを認識するとともに、このデバイスのハンドルを生成する認識手段と、
前記認識手段により生成されたハンドルを取得し、このハンドルを用いてデバイスを制御するデバイス制御モジュールに対して、ハンドルの更新を行わせる更新手段と、を備え、
前記更新手段は、前記検知手段により前記通信手段に対するデバイスの切断が検知された後に、続けてデバイスの接続が検知された場合に、ハンドルの更新をデバイス制御モジュールに行わせる手段である、ホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＵＳＢインタフェース等で接続されたデバイスを制御するホスト装置に関する。
【背景技術】
【０００２】
従来、ホスト装置と、周辺デバイスと、を接続するインタフェースとして、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースがある。宝くじ発券装置や、ＡＴＭ等では、ＵＳＢインタフェースで入出力デバイスをホスト装置に接続し、構成したものがある。ＵＳＢは、１つのホスト装置に複数のＵＳＢデバイスを接続することができ、また電源を入れたまま接続、および切断が行えるホットプラグ機能（プラグアンドプレイ機能）を備えている。ホスト装置のＯＳは、ＵＳＢインタフェースにＵＳＢデバイスが接続されたことが検知されると、デバイスドライバ等を使用して、接続されたＵＳＢデバイスの認識や、ホスト装置内でのアドレスの割り当て等にかかる処理を行う。また、ホスト装置のＯＳは、ＵＳＢデバイスが切断されたことが検知されると、デバイスドライバ等を使用して、切断されたＵＳＢデバイスとの通信の切断や、このＵＳＢデバイスに割り当てていたアドレスの解放等にかかる処理を行う。
【０００３】
宝くじ発券装置や、ＡＴＭ等の装置において、宝くじの発券や入出金取引等にかかる特定処理を実行するアプリケーションプログラム（以下、単にアプリケーションと言う。）は、ＵＳＢデバイス制御モジュールを介して、接続されているＵＳＢデバイスを使用する。ＵＳＢデバイス制御モジュールは、アプリケーションと、ＯＳとの間に位置するミドルウェアである。アプリケーションは、ＵＳＢデバイスを使用するとき、ＵＳＢデバイス制御モジュールに対して処理を依頼する。ＵＳＢデバイス制御モジュールは、アプリケーションから依頼された処理を実行させるＵＳＢデバイスを判断する。そして、ここで判断したＵＳＢデバイスのハンドルをすでに取得しているかどうかを判断し、ハンドルを取得していなければＯＳからハンドルを取得するオープン処理を行う。このハンドルは、ＵＳＢデバイスに対してアドレスを割り当てたときに生成されている。ＯＳは、ＵＳＢデバイス毎にハンドルと、アドレスと、を対応づけて管理している。ＵＳＢデバイス制御モジュールは、ＯＳから取得したハンドルを、そのＵＳＢデバイスに対応づけて保持する。ＵＳＢデバイス制御モジュールは、アプリケーションから依頼された処理内容と、その処理を行わせるＵＳＢデバイスのハンドルと、をＯＳに通知する。ＯＳは、ＵＳＢデバイス制御モジュールから通知されたハンドルから、処理を実行させるＵＳＢデバイスのアドレスを判断し、対応するデバイスドライバを使用して処理の実行を指示する。これにより、アプリケーションが依頼した処理が、ＵＳＢデバイスで実行される。
【０００４】
また、ＵＳＢデバイスは、ハングアップし、ＯＳに認識されていない状態になった場合、ＵＳＢデバイスをホスト装置から一旦切断し、ホスト装置に再接続することで、ＵＳＢデバイスをＯＳに再認識させることができる。ホスト装置と、ＵＳＢデバイスとを接続するコネクタが筐体内部にあったり、固定されていて容易に抜き差しが行えない構成の装置について、ホスト装置と、ＵＳＢデバイスとの通信に別途設けた専用インタフェース回路を使用し、ＵＳＢデバイスに対してＵＳＢインタフェース回路の再起動を指示することで、ハングアップしたＵＳＢデバイスをＯＳに再認識させる技術が提案されている（特許文献１参照）。
【特許文献１】特開２００３−１３１９５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、宝くじ発券装置や、ＡＴＭ等の装置は、アプリケーションが接続されているＵＳＢデバイスを使用するとき、実行する処理をＵＳＢデバイス制御モジュールに依頼する。ＵＳＢデバイス制御モジュールは、上述したように、アプリケーションから依頼された処理内容と、その処理を実行させるＵＳＢデバイスのハンドルをＯＳに通知する。一方、ホスト装置とＵＳＢデバイスとが、静電ノイズの発生等によって一時的に切断した場合、ＯＳは、この一時的な切断の解消後に、再接続されたＵＳＢデバイスを再認識する。このとき、再接続されたＵＳＢデバイスに対して、アドレスの割り当てや、ハンドルの生成を行う。したがって、今回瞬断が生じたＵＳＢデバイスについて、ＵＳＢデバイス制御モジュールが保持しているハンドルと、ＯＳが管理しているハンドルと、が相違する。このため、ＵＳＢデバイス制御モジュールが、アプリケーションから依頼された処理をＯＳに通知しても、ＯＳ側では適正なＵＳＢデバイスのアドレスを判断することができず、その処理をＵＳＢデバイスに実行させることができない。すなわち、アプリケーションが再接続されたＵＳＢデバイスを使用することができない。
【０００６】
従来の宝くじ発券装置や、ＡＴＭ等の装置は、この状態を解消するために、一旦電源をオフし、本体を再起動していた。このため、ＵＳＢデバイスの一時的な切断にともなう障害状態からの復旧に要する時間が長く、運用効率が良くないという問題があった。
【０００７】
なお、特許文献１は、ＯＳが認識できない状態になったＵＳＢデバイスを、ＯＳに再認識させるための提案であり、ＯＳが再認識したＵＳＢデバイスをアプリケーションが使用できるようにすることについて提案しているものではない。
【０００８】
この発明の目的は、ＯＳで認識されているＵＳＢデバイスを、アプリケーションが使用することができない状態からの復旧に要する時間を短縮し、運用効率の向上を図ったホスト装置を提供することにある。
【課題を解決するための手段】
【０００９】
この発明のホスト装置は、上記課題を解決するために以下の構成を備えている。
【００１０】
（１）データ通信を接続されているデバイスとの間で行う通信手段と、
前記通信手段に対するデバイスの接続、およびデバイスの切断を検知する検知手段と、
前記検知手段により接続が検知されたデバイスを認識するとともに、このデバイスのハンドルを生成する認識手段と、
前記認識手段により生成されたハンドルを取得し、このハンドルを用いてデバイスを制御するデバイス制御モジュールを再起動する再起動手段と、を備え、
前記再起動手段は、前記検知手段により前記通信手段に対するデバイスの切断が検知された後に、続けてデバイスの接続が検知された場合に、デバイス制御モジュールを再起動する手段である。
【００１１】
この構成では、検知手段により、デバイスの切断、接続が、この順番に続けて検知された場合、デバイス制御モジュールが再起動される。デバイスの切断、接続が、この順番に続けて検知される状況の殆どが、静電ノイズ等の発生により、一時的にデバイスとの通信が途切れた場合である。認識手段は、検知手段により接続が検知されたデバイスを認識し、ハンドルを生成する。すなわち、デバイスの切断、接続が、この順番に続けて検知されたデバイスについても認識し、ハンドルを生成する。デバイス制御モジュールは、上述したように、デバイスの切断、接続が、この順番に続けて検知されると、再起動手段により再起動されるので、瞬断が生じたデバイスに対して新たに生成されたハンドルを再取得する。
【００１２】
このように、ＯＳが認識しているデバイスを、アプリケーションが使用できない状態になったときには、デバイス制御モジュールの再起動で復旧するので、この復旧にかかる時間の短縮が図れ、使い勝手や、運用効率の向上が図れる。
【００１３】
ことができる。
【００１４】
（２）デバイス毎に、そのデバイスを制御するデバイス制御モジュールを対応づけたデバイステーブルを記憶する記憶手段を備え、
前記再起動手段は、前記記憶手段が記憶する前記デバイステーブルを用いて、今回接続が検知されたデバイスに対応づけられているデバイス制御モジュールを再起動する。
【００１５】
この構成では、再起動手段により再起動されるデバイス制御モジュールを抑えることができ、ＯＳが認識しているデバイスを、アプリケーションが使用できない状態からの復旧に要する時間を一層短縮できる。
【００１６】
（３）前記再起動手段がデバイス制御モジュールの再起動を実行しているとき、その旨を出力する出力手段を備えている。
【００１７】
この構成では、デバイス制御モジュールが再起動中であることを、オペレータ等に知らせることができる。
【００１８】
（４）前記再起動手段は、デバイス制御モジュールの再起動が完了したときに、該当するデバイスが使用可能であるかどうかを確認し、使用可能でなければ、再度、デバイス制御モジュールの再起動を実行する。
【００１９】
この構成では、ＯＳが認識しているデバイスを、アプリケーションが使用できない状態から、確実に復旧できる。
【００２０】
（５）前記再起動手段がデバイス制御モジュールの再起動を予め定められた回数繰り返しても、該当するデバイスが使用可能にならなければ、このデバイスの使用を制限する制限手段を備えている。
【００２１】
この構成では、デバイス制御モジュールが所有しているハンドルの相違以外の理由で、デバイスが使用できない状態であるときに、デバイス制御モジュールの再起動がいつまでも繰り返し行われることがない。
【００２２】
（６）データ通信を接続されているデバイスとの間で行う通信手段と、
前記通信手段に対するデバイスの接続、およびデバイスの切断を検知する検知手段と、
前記検知手段により接続が検知されたデバイスを認識するとともに、このデバイスのハンドルを生成する認識手段と、
前記認識手段により生成されたハンドルを取得し、このハンドルを用いてデバイスを制御するデバイス制御モジュールに対して、ハンドルの更新を行わせる更新手段と、を備え、
前記更新手段は、前記検知手段により前記通信手段に対するデバイスの切断が検知された後に、続けてデバイスの接続が検知された場合に、ハンドルの更新をデバイス制御モジュールに行わせる手段である。
【００２３】
この構成では、上記（１）と異なり、デバイス制御モジュールを再起動するのではなく、デバイス制御モジュールに対して、取得しているハンドルの更新を行わせる構成としたので、アプリケーションが、ＯＳで認識されているＵＳＢデバイスを使用することができない状態からの復旧に要する時間を一層十分に短縮できる。
【発明の効果】
【００２４】
この発明によれば、ＯＳが認識しているデバイスを、アプリケーションが使用できない障害状態からの復旧に要する時間を短縮することができ、使い勝手や、運用効率の向上が図れる。
【発明を実施するための最良の形態】
【００２５】
以下、この発明の実施形態であるホスト装置について説明する。
【００２６】
この実施形態のホスト装置は、宝くじ発券装置に適用される装置である。図１は、この実施形態にかかるホスト装置を適用した宝くじ発券装置の主要部の構成を示す図である。この実施形態の宝くじ発券装置１は、この発明の実施形態にかかるホスト装置２と、このホスト装置２と接続された３つのＵＳＢデバイス３（３ａ、３ｂ、３ｃ）と、を備えている。３つのＵＳＢデバイス３は、読取デバイス３ａ、印刷デバイス３ｂ、媒体処理デバイス３ｃである。この実施形態においては、３つのＵＳＢデバイス３をホスト装置２に接続した場合を例にして説明するが、ホスト装置２に接続されているＵＳＢデバイス３の個数は１つ以上であれば、いくつであってもよい。また、ＵＳＢデバイス３は、ホスト装置２の筐体に収納されていてもよいし、ホスト装置２の筐体に収納されていなくてもよい。
【００２７】
ホスト装置２は、制御部１０と、操作部１１と、表示部１２と、記憶部１３と、ＵＳＢインタフェース１４と、を備えている。制御部１０は、ＣＰＵやメモリを有するマイクロコンピュータで構成されている。操作部１１は、キーボードやマウス等の入力デバイスを有し、オペレータによる入力デバイスの操作に応じた入力を受け付ける。表示部１２は、液晶やＣＲＴ等の表示器を有し、この表示器における操作案内、操作部１１で受け付けた入力内容、本体の動作状態等の表示を行う。記憶部１３は、ハードディスクを有し、このハードディスクに記録されているプログラムやデータの読み出しや、ハードディスクに対するプログラムやデータの記録を行う。ＵＳＢインタフェース１４は、接続されているＵＳＢデバイス３とのデータ通信を制御する。ＵＳＢインタフェース１４は、３つ以上のＵＳＢデバイスを接続することができる。
【００２８】
読取デバイス３ａは、マークシートに記入された情報を読み取る処理を行うスキャナである。このマークシートに記入されている情報は、発券する宝くじの内容である。印刷デバイス３ｂは、宝くじを印刷し、発行する処理を行うプリンタである。媒体処理デバイス３ｃは、無線通信機能を有する非接触媒体との無線通信により、この非接触媒体が記憶する情報の読み取りや、この非接触記録媒体に対する情報の書き込みを行う非接触リーダ・ライタである。媒体処理デバイス３ｃは、宝くじの発券にかかる料金の精算を、非接触媒体で行えるようにするために設けた構成である。
【００２９】
記憶部１３のハードディスクには、ホスト装置２で起動するオペレーティングシステム（以下、ＯＳと言う。）、宝くじの発券業務にかかる処理を実行するアプリケーションプログラム（以下、単にアプリケーションと言う。）、アプリケーションにおけるＵＳＢデバイス３の使用を制御するＵＳＢデバイス制御モジュール、ＵＳＢデバイス３を動作させるデバイスドライバ、ＵＳＢインタフェース１３を制御する通信コントローラ等のプログラムや、デバイステーブル等が記録されている。このデバイステーブルは、図２に示すように、ＵＳＢデバイス３毎に、そのＵＳＢデバイス３を使用するＵＳＢデバイス制御モジュールを対応づけたレコードを登録したテーブルである。
【００３０】
図３は、ホスト装置の制御部におけるプログラムの階層構造を示す図である。図３に示すように、プログラムの階層は、アプリケーション、ＵＳＢデバイス制御モジュール、ＯＳ，デバイスドライバ、通信コントローラの順番である。アプリケーションは、上述したように宝くじの発券業務にかかる処理を実行するプログラムであり、ＵＳＢデバイス３を使用するときに、その処理をＵＳＢデバイス制御モジュールに依頼する。ＵＳＢデバイス制御モジュールは、アプリケーションからの依頼された処理をＯＳに通知する。このとき、ＵＳＢデバイス制御モジュールは、アプリケーションから依頼された処理を実行させるＵＳＢデバイスのハンドルをＯＳに通知する。ＯＳは、ＵＳＢデバイス制御モジュールから通知されたハンドルに基づいて、通知された処理を実行させるＵＳＢデバイス３のアドレスを判断する。そして、デバイスドライバや通信コントローラを制御して、先に判断したＵＳＢデバイス３に処理内容を通知する。ＵＳＢデバイス３は、ホスト装置２と通信を制御する通信コントローラや、アプリケーションから依頼された処理（ホスト装置２から通知された処理）を実行するハードウェアを制御するファームウェア等のプログラムを有している。
【００３１】
また、通信コントローラは、ＵＳＢインタフェース１４におけるＵＳＢデバイス３の接続、切断を検知する機能を有している。通信コントローラは、ＵＳＢデバイス３の接続を検知すると、このＵＳＢデバイス３の情報をＯＳに伝える。ＯＳは、通信コントローラから通知された情報に基づいて、今回接続が検知されたＵＳＢデバイス３に対応するドライバ３を判断し、ここで判断したドライバおよび通信コントローラを制御して、このＵＳＢデバイス３を認識する処理を行う。このとき、ＵＳＢドライバ３に対して、アドレスを割り当てるとともに、ハンドルを生成する。また、通信コントローラは、ＵＳＢデバイス３の切断を検知すると、切断されたＵＳＢデバイス３の情報をＯＳに伝える。ＯＳは、通信コントローラから通知された情報に基づいて、今回切断が検知されたＵＳＢデバイス３に対して割り当てていたアドレスを解放する。
【００３２】
ＵＳＢデバイス制御モジュールは、図３に示すようにアプリケーションと、ＯＳと、の間に位置するミドルウェアである。ＵＳＢデバイス制御モジュールは、アプリケーションからＵＳＢデバイス３に実行させる処理の依頼があると、依頼された処理を実行させるＵＳＢデバイス３を判断し、このＵＳＢデバイス３のハンドルをすでにＯＳから取得しているかどうかを判断する。ここで、ハンドルを取得していなければ、このＵＳＢデバイス３のハンドルをＯＳから取得する処理を行う。
【００３３】
次に、この実施形態にかかる宝くじ発券装置１の動作について説明する。まず、宝くじ発券装置１の起動時の動作について簡単に説明しておく。宝くじ発券装置１は、起動スイッチ（不図示）が操作されると、ホスト装置２、および各ＵＳＢデバイス３に対する電源供給が開始される。ホスト装置２は、電源供給の開始にともなって、記憶部１３に記憶されているＯＳを読み出して起動する。このとき、操作部１１、表示部１２、ＵＳＢインタフェース１４等の各部のハードウェアの動作制御に必要な設定処理が行われる。ＯＳの起動が完了すると、記憶部１３に記憶しているドライバや、通信コントローラ等のプログラムを読み出し、実行する。これにより、ＯＳは、ＵＳＢインタフェース１４に接続されているＵＳＢデバイス３を認識し、アドレスを割り当てるとともに、ハンドルを生成する。また、ＯＳの起動が完了すると、記憶部１３に記憶しているアプリケーションやＵＳＢデバイス制御モジュールを読み出し、実行する。これにより、宝くじ発券装置１の起動が完了する。
【００３４】
次に、宝くじ発券装置１における宝くじの発券にかかる動作について説明する。この動作は、アプリケーションにより制御される。アプリケーションは、操作部１１において宝くじの発券要求にかかる入力を受け付けると、読取デバイス３ａに対するマークシートの読取にかかる処理を、対応するＵＳＢデバイス制御モジュールに依頼する。ＵＳＢデバイス制御モジュールは、読取デバイス３ａがアプリケーションから依頼された処理を実行させるＵＳＢデバイス３であると判断し、この読取デバイス３ａのハンドルをすでに取得しているかどうかを判断する。ＵＳＢデバイス制御モジュールは、読取デバイス３ａのハンドルを取得していなければ、ＯＳから読取デバイス３ａのハンドルを取得する処理を行う。ＵＳＢデバイス制御モジュールは、アプリケーションから依頼された処理の内容とともに、この処理を実行させる読み取りデバイス３ａのハンドルを、ＯＳに通知する。ＯＳは、ＵＳＢデバイス制御モジュールから通知されたハンドルから、通知された処理を実行させる読取デバイス３ａのアドレスを判断し、読取デバイス３ａに対応するドライバや、通信コントローラを制御して、通知された処理内容を読取デバイス３ａに通知する。読取デバイス３ａは、宝くじの発券内容が記入されたマークシートを読み取る。読取デバイス３ａは、マークシートから読み取った宝くじの発券内容を、ホスト装置２に通知する。ＯＳは、読取デバイス３ａから通知された宝くじの発券内容をアプリケーションに返す。これにより、アプリケーションは、マークシートに記入されていた宝くじの発券内容を取得する。
【００３５】
アプリケーションは、宝くじの発券内容を取得すると、宝くじの発券にかかる料金を算出し、表示部１２に表示する。宝くじの発券にかかる料金の精算は、オペレータと購入者との間における現金（硬貨や紙幣）の受け渡しにより行ってもよいし、非接触媒体で精算してもよい。現金の受け渡しにより決済を行った場合には、オペレータが操作部１１において精算完了にかかる入力操作を行う。また、アプリケーションは、非接触媒体を使用して精算が行えるようにするために、媒体処理デバイス３ｃに対する処理の依頼を対応するＵＳＢデバイス制御モジュールに対して行っている。媒体処理デバイス３ｃに対する処理の通知は、上述した読取デバイス３ａの場合と同様に行われる。アプリケーションは、操作部１１において精算完了にかかる入力を受け付けるか、または媒体処理デバイス３ｃから精算完了の通知があると、宝くじの発券にかかる料金の精算が完了したと判断する。
【００３６】
アプリケーションは、先に取得した宝くじの発券内容に基づく宝くじの印刷発行にかかる処理を印刷デバイス２ａに実行させる依頼を行う。この依頼も、読取デバイス３ａや媒体処理デバイス３ｃに対する処理の依頼と同様に行われる。アプリケーションは、印刷デバイス３ａから、宝くじの印刷発行にかかる処理の完了が通知されると、今回の宝くじの発券動作を完了する。
【００３７】
このように、宝くじ発券装置１は、ＵＳＢデバイス３を利用し、宝くじの発券にかかる業務を行う。また、上記説明では、ＵＳＢデバイス制御モジュールが保持しているＵＳＢデバイス３のハンドルと、ＯＳが管理しているＵＳＢデバイス３のハンドルとが一致している適性な状態であることを前提にしている。
【００３８】
次に、通信コントローラにより、ＵＳＢデバイスの切断、または接続が検知されたときのＯＳの処理について説明する。図４は、この処理を示すフローチャートである。通信コントローラは、上述したように、ＵＳＢインタフェース１３におけるＵＳＢデバイス３の接続、および切断を検知する機能を有している。ＯＳは、通信コントローラからＵＳＢデバイス３の切断が通知されると（ｓ１）、対応するデバイスドライバに対して、ＵＳＢデバイス３の切断処理を指示する（ｓ２）。デバイスドライバは、ＯＳからの指示にしたがって、ＵＳＢデバイス３の切断処理を行う。このとき、ＯＳは、切断されたＵＳＢデバイス３に割り当てていたアドレスを解放する。
【００３９】
一方、ＯＳは、通信コントローラからＵＳＢデバイス３の接続が通知されると（ｓ３）、対応するデバイスドライバに対して、このＵＳＢデバイス３の接続処理を指示する（ｓ４）。デバイスドライバ３は、ＯＳからの指示にしたがって、ＵＳＢデバイス３の接続処理を行う。上述したように、デバイスドライバは、このとき、接続処理を行ったＵＳＢデバイス３にアドレスを割り当てるとともに、このＵＳＢデバイス３のハンドルを生成する。また、デバイスドライバは、ＵＳＢデバイス３のアドレス、およびハンドルをＯＳに通知する。
【００４０】
ＯＳは、今回行ったＵＳＢデバイス３の接続処理が、ｓ２にかかる切断処理に連続して行われたかどうかを判定する（ｓ５）。すなわち、ＯＳは、切断処理、接続処理が連続して行われたどうかを判定する。このとき、切断処理が行われた時間と、接続処理が行われた時間との時間差については特に考慮しなくてもよい。一時的な静電ノイズにより、ホスト装置２と、ＵＳＢデバイス３とが切断した場合には、この静電ノイズが無くなると、ホスト装置２とこのＵＳＢデバイス３とが再接続される。したがって、ＯＳは、ｓ５で、今回行ったＵＳＢデバイス３の接続処理が、ｓ２にかかる切断処理に連続して行われたと判定する。
【００４１】
ＯＳは、ｓ５で、今回行ったＵＳＢデバイス３の接続処理が、ｓ２にかかる切断処理が連続して行われたと判定すると、デバイステーブルを用いて、先に切断処理を行ったＵＳＢデバイス３を使用するＵＳＢデバイス制御モジュールを抽出する（ｓ６）。ＯＳは，ｓ６で抽出したＵＳＢデバイス制御モジュールを再起動するかどうかの確認画面を表示部１２に表示する（ｓ７）。例えば、図５に示す確認画面を表示する。ここでは、ＵＳＢデバイス制御モジュールが保持しているハンドルが、ＯＳで管理されているハンドルと相違し、宝くじ発券装置１が適性に宝くじを発券することができない状態である可能性が高いことをオペレータに通知している。オペレータは、何らかの理由で、自分が故意にＵＳＢデバイス３の切断、接続を連続して行った場合には、操作部１１において再起動しない旨の入力操作を行う。ＯＳは、ＵＳＢデバイス制御モジュールの再起動をしない旨の入力があると（ｓ８）、ｓ１に戻る。これにより、無駄にＵＳＢデバイス制御モジュールの再起動が行われることはない。
【００４２】
ＯＳは、操作部１１において再起動する旨の入力を受け付けると、ｓ６で抽出したＵＳＢデバイス制御モジュールを再起動する（ｓ８、ｓ９）。ｓ９では、ｓ６で抽出されなかったＵＳＢデバイス制御モジュールについては再起動しない。ＯＳは、ｓ９でＵＳＢデバイス制御モジュールの再起動を開始すると、表示部１２に再起動中であることを示す画面（図６参照）を表示し（ｓ１０）、オペレータにＵＳＢデバイス制御モジュールが再起動中であることを通知する。ＯＳは、ＵＳＢデバイス制御モジュールの再起動が完了すると、再起動したＵＳＢデバイスモジュールにハンドルの取得を行わせる（ｓ１１）。そして、ＯＳは、ＵＳＢデバイスモジュールが保持しているハンドルが適性であるかどうかを確認し（ｓ１２）、適性でなければＵＳＢデバイス制御モジュールを再起動を所定回数、例えば３回、繰り返したかどうかを判定する（ｓ１３）。ＯＳは、ｓ１３で所定回数繰り返していないと判定すると、ｓ９に戻る。また、ＯＳは、ｓ１３で所定回数繰り返していると判定すると、今回接続されたＵＳＢデバイス３が、他の理由で使用できない状態にあると判断し、このＵＳＢデバイス３の使用を制限する縮退処理を行う（ｓ１４）。また、ＯＳは、ｓ１２でＵＳＢデバイスモジュールが保持しているハンドルが適性であると判定すると、表示部１２に所定時間、例えば、２〜３秒、処理完了を示す画面を表示し、ｓ１に戻る。
【００４３】
このように、静電ノイズ等で、ホスト装置２と、ＵＳＢデバイス３とが一時的に切断し、アプリケーションがＵＳＢデバイス３を使用できない状態になったとき、ＵＳＢデバイス制御モジュールを再起動することで復旧するので、この復旧にかかる時間の短縮が図れ、運用効率が向上できる。しかも、ホスト装置２から一時的に切断されたＵＳＢデバイス３を制御するＵＳＢデバイス制御モジュールのみ再起動するので、この再起動にかかる時間については、十分に短縮できる。また、ｓ７にかかる確認画面を表示する構成であるので、アプリケーションがＵＳＢデバイス３を使用できない状態になったことを、速やかにオペレータに通知することができる。
【００４４】
また、上記実施形態のｓ９におけるＵＳＢデバイス制御モジュールの再起動にかかる処理を、ＯＳがＵＳＢデバイス制御モジュールに対して保持しているハンドルを破棄させる処理（ｓ２１）としてもよい（図７参照）。このようにしても、結果的に、ＵＳＢデバイス制御モジュールが保持しているＵＳＢデバイス３のハンドルを更新することができる。したがって、上記実施形態の装置と同様の効果を奏する。
【００４５】
なお、上記実施形態では、この発明にかかるホスト装置を宝くじ発券装置１に適用して説明したが、ＡＴＭ等の他の装置にも適用できる。また、ＵＳＢデバイス制御モジュールを再起動するかどうかを、オペレータに確認する構成としたが、確認することなく、ＵＳＢデバイス制御モジュールを再起動するようにしてもよい。また、ホスト装置２に接続される周辺デバイスは、ＵＳＢデバイス３以外のデバイスであってもよい。この場合には、その周辺デバイスを接続するための、インタフェースを設ければよい。
【図面の簡単な説明】
【００４６】
【図１】この実施形態にかかるホスト装置を適用した宝くじ発券装置の主要部の構成を示す図である。
【図２】デバイステーブルを示す図である。
【図３】ホスト装置の制御部におけるプログラムの階層構造を示す図である。
【図４】通信コントローラにより、ＵＳＢデバイスの切断、または接続が検知されたときのＯＳの処理を示すフローチャートである。
【図５】表示部の表示画面例を示す図である。
【図６】表示部の表示画面例を示す図である。
【図７】別の実施形態にかかる、通信コントローラにより、ＵＳＢデバイスの切断、または接続が検知されたときのＯＳの処理を示すフローチャートである。
【符号の説明】
【００４７】
１−宝くじ発券装置
２−ホスト装置
３−ＵＳＢデバイス
３ａ−読取デバイス
３ｂ−印刷デバイス
３ｃ−媒体処理デバイス
１０−制御部
１１−操作部
１２−表示部
１３−記憶部
１４−ＵＳＢインタフェース
【図１】
2008027379.tif 000003
【図２】
2008027379.tif 000004
【図３】
2008027379.tif 000005
【図４】
2008027379.tif 000006
【図５】
2008027379.tif 000007
【図６】
2008027379.tif 000008
【図７】
2008027379.tif 000009