(57)【特許請求の範囲】
【請求項１】
ＵＳＢケーブルを介してホストと接続しデータ通信するＵＳＢ機器であって、
前記ホストから前記ＵＳＢケーブルを介してリセット信号を受け付けるリセット信号受付手段と、
前記ホストから前記ＵＳＢケーブルを介して行われる電力供給の状態を判定する電力供給状態判定手段と、
前記リセット信号を受け付け、かつ前記電力供給が断となっていない場合にリセットを実行するリセット実行手段とを備えた
ＵＳＢ機器。
【請求項２】
前記リセット実行手段を、前記ＵＳＢケーブルを介して受信するソフトリセット信号に基づいてソフトウェアによりソフトリセットを実行するソフトリセット実行手段と、前記リセット信号に基づいて強制的にリセット動作を行うハードリセットを実行するハードリセット実行手段とで構成し、
該ハードリセット実行手段を、前記リセット信号受付手段で前記リセット信号を受け付けたのち前記ソフトリセット実行手段がソフトリセットを実行開始するソフトリセット開始時間より長い一定時間経過後にハードリセットを実行する構成とした
請求項１記載のＵＳＢ機器。
【請求項３】
前記ホストとの接続が確立した時点で前記リセット実行手段によるリセットを実行不可の状態から実行可能の状態に切り替えるリセット実行可否切替手段を備えた
請求項１または２記載のＵＳＢ機器。
【請求項４】
前記リセット実行可否切替手段を、電源ＯＮされた際に前記リセット実行手段によるリセットを実行不可の状態に切り替える構成とした
請求項３記載のＵＳＢ機器。
【請求項５】
ホスト装置とＵＳＢ機器とをＵＳＢケーブルで接続したＵＳＢ接続システムであって、
前記ＵＳＢ機器に、
前記ホストから前記ＵＳＢケーブルを介してリセット信号を受け付けるリセット信号受付手段と、
前記ホストから前記ＵＳＢケーブルを介して行われる電力供給の状態を判定する電力供給状態判定手段と、
前記リセット信号を受け付け、かつ前記電力供給が断となっていない場合にリセットを実行するリセット実行手段とを備え、
前記ホスト装置に、
前記ＵＳＢ機器から正常な応答が帰って来ないエラー状態を判定するエラー状態判定手段と、
該エラー状態判定処理でエラー状態と判定した場合に前記ＵＳＢ機器にリセット信号を送信するリセット信号送信手段とを備えた
ＵＳＢ接続システム。
【請求項６】
前記リセット信号を送信して所定時間が経過しても前記エラー状態が解消しない場合に、前記リセット信号を再度送信するリトライ処理を実行するリトライ手段を備えた
請求項５記載のＵＳＢ接続システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばホスト装置とＵＳＢ機器とをＵＳＢケーブルで接続し、システムの暴走時等にハードリセット等の強制動作を実行するようなＵＳＢ機器、及びＵＳＢ接続システムに関する。
【背景技術】
【０００２】
従来、金融機関に設置されるＡＴＭは、ホスト装置と通信回線により接続されている。このＡＴＭは、回線異常や内部モジュールのハングアップ等により内部通信障害が生じることがある。この内部通信障害は、フィールドにおいて一定の発生頻度があり、完全に排除する事が困難である。
【０００３】
このため既存のＡＴＭは、専用のＡＣ電源のＯＮ／ＯＦＦ機能を使用した復旧手段を備えている。この復旧手段は、復旧用の専用回線を用いているため、必然的にコスト増となっている。
【０００４】
このような状況下において、近年では、汎用性の高いＵＳＢ（Universal Serial Bus）を、ＡＴＭの内部通信として導入する動きがある。
【０００５】
ＵＳＢ接続装置において、通信障害やＣＰＵの暴走時にリセットを実行してＵＳＢ機器を復旧する方法として、ＵＳＢ回線の他に専用回線を付加し、この専用回線を介してＵＳＢデバイスにリセットを実行するデバイス制御システムが提案されている（特許文献１参照）。しかし、このようにＵＳＢ回線のほかに専用回線を介してリセットする方法では、別途専用回線を設けることに伴う大幅なコスト増が伴い、また汎用ＵＳＢ機器を改造しなければならないという問題がある。
【０００６】
リセットを実行してＵＳＢ機器を復旧する他の方法として、通信異常の状態を発見した時に、ＵＳＢライン上のリセットを検出し、自動的にＵＳＢ機器のリセットを実行するＵＳＢ機器も提案されている。（特許文献２参照）。
【０００７】
また、ＵＳＢライン上のバスリセット信号（ＳＥ０）を検出し、ＵＳＢ機器の省エネ状態からの復旧や自己リセット動作を実行するシステムも提案されている。（特許文献３参照）。
【０００８】
一方、ＡＴＭ等の高信頼性が必要とされる機器は、通信障害やＣＰＵの暴走時に意図的にリセットを実行し復旧する機能が必要なだけでなく、意図しないタイミングでのリセットを防止する必要がある。すなわち、ＵＳＢコネクタが抜けた場合や電源ＯＦＦ時、オペレーティングシステムの起動途中等にリセット信号を受信しても、これを無視してリセットを実行しない機能も必要である。
【０００９】
しかし、ＵＳＢライン上のバスリセット信号（ＳＥ０）を検出し、自動的にＵＳＢ機器のリセットを実行する方法では、ＵＳＢ回線がバスリセット状態になると必ずＵＳＢ機器がリセットを実行することになる。このため、本来リセットを実行すべきではない場合でも無条件に自己リセットが実行され、ＵＳＢの通信品質を損なうという問題点がある。
【００１０】
また、ＵＳＢライン上のバスリセット信号（ＳＥ０）を検出し、ＣＰＵの状態を確認して自己リセットを実行する方法では、ＵＳＢのコネクタ抜けの場合、またホストの電源ＯＦＦの場合に、ＵＳＢラインの信号がバスリセット信号（ＳＥ０）と同じになるため、ＣＰＵの状態が変化してしまうかまたは自己リセットが実行されてしまうという問題点がある。
【００１１】
ＡＴＭ等の高信頼性が要求される自動機においては、ＵＳＢコネクタ抜けの場合は、伝送ラインの接続エラーとして異常処理を行う必要がある。しかし、前述したようにＵＳＢコネクタ抜けの場合に意図しないタイミングでの自己リセットが実行されてしまうと、正しい異常処理が行えず問題が発生する恐れがある。具体的には、例えばリセットが解除されＣＰＵが再起動した後に、それまでＡＴＭ内で搬送途中であった紙幣の位置情報に矛盾が生じる等の問題が発生する恐れがある。
【００１２】
また、電源ＯＦＦ時に内蔵装置に自己リセットが実行されると、ＣＰＵが再起動した後に接続エラーと誤認識してしまうという問題点がある。詳述すると、ＡＴＭの電源ＯＦＦは、内蔵される各装置の電源を全て同時に電源ＯＦＦするのではなく、まず、ＵＳＢホストコントローラを有する主制御部の電源をＯＦＦし、その後各内蔵装置の電源をＯＦＦする。従って、前記のように電源ＯＦＦ時に内蔵装置に自己リセットが実行された場合、リセット解除されＣＰＵが再起動した後にＵＳＢホストとの再接続動作を実行すると、ＵＳＢホストは既に電源ＯＦＦとなっているため、接続エラーと誤認識してしまうことになる。
【００１３】
【特許文献１】特開２００３−１３１９５６号公報
【特許文献２】特開２００２−３７３０３６号公報
【特許文献３】特開２００５−３５２９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
この発明は、上述した問題に鑑み、標準のＵＳＢケーブルを用いてホストからＵＳＢ機器に対してハードリセット等の動作制御を実行することができ、かつ、ＵＳＢコネクタ抜け時や電源ＯＦＦ時にリセット動作を実行しないＵＳＢ機器、及びＵＳＢ接続システムを提供し、ＵＳＢ機器における高信頼性の確保を実現することを目的とする。
【課題を解決するための手段】
【００１５】
この発明は、ＵＳＢケーブルを介してホストと接続しデータ通信するＵＳＢ機器であって、前記ホストから前記ＵＳＢケーブルを介してリセット信号を受け付けるリセット信号受付手段と、前記ホストから前記ＵＳＢケーブルを介して行われる電力供給の状態を判定する電力供給状態判定手段と、前記リセット信号を受け付け、かつ前記電力供給が断となっていない場合にリセットを実行するリセット実行手段とを備えたＵＳＢ機器であることを特徴とする。
【発明の効果】
【００１６】
この発明により、標準のＵＳＢケーブルを用いてホストからＵＳＢ機器に対してハードリセット等の動作制御を実行することができ、かつ、ＵＳＢコネクタ抜け時や電源ＯＦＦ時にリセット動作を実行しないＵＳＢ機器、及びＵＳＢ接続システムを提供でき、ＵＳＢ機器における高信頼性の確保を実現することができる。
【発明を実施するための最良の形態】
【００１７】
この発明の一実施形態を以下図面と共に説明する。  
まず、図１に示す全体のブロック図と共に、ＵＳＢ接続システム１の構成について説明する。
【００１８】
この実施形態では、ＵＳＢ接続システム１はＡＴＭ全体で構成され、ホスト１０はＡＴＭの主制御部で構成され、ＵＳＢ機器３０はＡＴＭ内蔵の各装置で構成されている。ＵＳＢは、ＡＴＭの内部伝送として使用されている。
【００１９】
ＵＳＢ接続システム１は、ホスト１０とＵＳＢ機器３０とがＵＳＢハブ２０を介してＵＳＢケーブル２５で接続されて構成されている。ＵＳＢハブ２０には、ホスト１０にＵＳＢ接続するためのＵＳＢケーブル２５と、ＵＳＢ機器３０を接続するＵＳＢケーブル２５を着脱できる複数（図示する例では４つ）のＵＳＢポート２１とを備えている。これにより、複数のＵＳＢ機器３０を１つのホスト１０で制御できるように構成されている。
【００２０】
ＵＳＢケーブル２５は、ＵＳＢ規格によるデータ伝送を行うケーブルであり、ＶＢＵＳライン２５ａ、Ｄ＋ライン２５ｂ、Ｄ−ライン２５ｃ、及びＧＮＤライン２５ｄで構成されている。
【００２１】
ＶＢＵＳライン２５ａは、５Ｖの電力供給を行う電力供給ラインである。  
Ｄ＋ライン２５ｂおよびＤ−ライン２５ｃは、ホスト１０とＵＳＢ機器３０とがデータの送受信を行う信号ラインである。  
ＧＮＤライン２５ｄは、０Ｖの基準電位のラインである。
【００２２】
ホスト１０は、ＵＳＢケーブル２５を介してＵＳＢ機器３０との通信等を制御するＵＳＢホストコントローラ１１を備えている。
【００２３】
ＵＳＢ機器３０は、ＵＳＢケーブル２５内のＶＢＵＳライン２５ａ、Ｄ＋ライン２５ｂ、およびＤ−ライン２５ｃが接続されるＵＳＢ通信手段としてのＵＳＢデバイスコントローラ３１が設けられている。また、ＶＢＵＳライン２５ａには、ＵＳＢデバイスコントローラ３１と並列にＶＢＵＳ状態監視回路３５が接続されている。
【００２４】
ＵＳＢデバイスコントローラ３１およびＶＢＵＳ状態監視回路３５の後段には、リセット実行判定回路３４が接続されている。また、ＵＳＢデバイスコントローラ３１の後段には、ＣＰＵ３２も接続されている。
【００２５】
ＣＰＵ３２の後段には、ＵＳＢデバイスコントローラ３１、ソフトリセット実行手段およびハードリセット実行手段としてのリセット回路３３、およびリセット実行判定回路３４が接続されている。またリセット回路３３の後段には、ＵＳＢデバイスコントローラ３１およびＣＰＵ３２が接続されている。
【００２６】
前記ＣＰＵ３２は、ＵＳＢ機器３０の主制御部であり、ＵＳＢ機器３０全体の各種制御動作を実行する。  
この制御動作の１つとして、ＣＰＵ３２は、電源ＯＮ直後にＵＳＢデバイスコントローラ３１に対して第１初期設定を行う。この第１初期設定では、ＵＳＢホストコントローラ１１とＵＳＢデバイスコントローラ間のＵＳＢ通信を可能とする設定のみを行い、バスリセット信号（ＳＥ０）受信時にＵＳＢデバイスコントローラ３１が割込み信号ＩＮＴ１を送出しない設定とする。  
またＣＰＵ３２は、ホスト１０に対してベンダーリクエストに応答するなどしてＵＳＢ接続の確立を確認した後に、ＵＳＢデバイスコントローラ３１に対して第２初期設定を行う。この第２初期設定では、バスリセット信号（ＳＥ０）受信時にＵＳＢデバイスコントローラ３１が割込み信号ＩＮＴ１を送出する設定とする。  
ここで、バスリセット信号（ＳＥ０）は、ホスト１０がＵＳＢケーブル２５中の信号であるＤ＋とＤ−に０Ｖを一定時間以上出力する状態を示す。
【００２７】
ＵＳＢデバイスコントローラ３１は、バスリセット信号（ＳＥ０）を検出すると割込み信号ＩＮＴ１をＣＰＵ３２及びリセット実行判定回路３４に対して送出する処理を実行する。  
またＵＳＢデバイスコントローラ３１は、ＶＢＵＳライン２５ａの状態がＨｉｇｈレベル（５Ｖの電力供給がある状態）からＬｏｗレベル（５Ｖの電力供給がない状態）へ変化したことを検出すると、割込み信号ＩＮＴ０をＣＰＵ３２に対して送出する。
【００２８】
ＶＢＵＳ状態監視回路３５は、ＶＢＵＳライン２５ａの状態がＨｉｇｈレベルにあるかＬｏｗレベルにあるかを監視している。
【００２９】
ＣＰＵ３２は、割込み信号ＩＮＴ１を検出後、リセット前に必要なデータ格納処理等を実行するとともに、ソフトリセット開始時間となる一定の時間（以下、ここでは動作説明のために５００ｍＳとするが、これに限らない）の間に、ソフトリセットを実行するか否かを判定する。
【００３０】
一定時間（５００ｍＳ）以内に、ＵＳＢデバイスコントローラ３１から割込み信号ＩＮＴ０を受信した場合、ＶＢＵＳライン２５ａからのＶＢＵＳ信号がＬｏｗレベルとなったと判断できるため、ＵＳＢコネクタ抜け又は電源ＯＦＦ時のバスリセット信号（ＳＥ０）による割込み信号ＩＮＴ１を受信したと判断して、ソフトリセットを実行しない。同時に、リセット実行判定回路３４に対してリセット実行判定動作を停止させる。
【００３１】
一方、一定時間（５００ｍＳ）以内に、ＵＳＢデバイスコントローラ３１から、割込み信号ＩＮＴ０を受信しなかった場合、ＣＰＵ３２はソフトリセットを実行する。
【００３２】
リセット実行判定回路３４は、ＵＳＢデバイスコントローラ３１からの割込み信号ＩＮＴ１を受けたあと、リセット回路３３に対してリセット実行信号を送出するか否かを、リセット中止時間となる一定時間（以下、ここでは動作説明のために１秒とするが、この限りではない）の間に判定する。
【００３３】
一定時間（１秒）以内に、ＶＢＵＳ監視回路３５からリセット禁止信号を受信した場合、又は、ＣＰＵ３２からリセット実行判定動作停止信号を受信した場合、リセット実行判定回路３４は、判定動作を停止し、リセット回路３３に対して、リセット信号の送出を行わない。
【００３４】
一方、一定時間（１秒）以内に、ＶＢＵＳ状態監視回路３５からリセット禁止信号を受信しなかった場合は、ホスト１０から送出されたバスリセット信号（ＳＥ０）により、ＵＳＢデバイスコントローラ３１から割込み信号ＩＮＴ１が送出されたが、ＣＰＵ３２が暴走しておりソフトリセットを実行出来なかったと判断して、リセット回路３３に対してリセット信号を送出する。
【００３５】
リセット回路３３は、リセット実行判定回路３４からのハードリセット実行信号、又は、ＣＰＵ３２からのソフトリセット信号を受信した場合に、ＵＳＢ機器全体に対して、リセット信号を発行する。
【００３６】
以上の構成により、ＵＳＢ機器３０は、ホスト１０から受信するバスリセット信号（ＳＥ０）を受信した場合に、ＶＢＵＳ信号の状態を監視することで、ＵＳＢコネクタ抜けや電源ＯＦＦ時のバスリセット状態ではリセットを実行せず、ホスト１０から送出されたバスリセット信号（ＳＥ０）の受信時のみに、リセットを実行する事ができる。なお、リセット回路３３およびＶＢＵＳ状態監視回路３５は、リセットを強制実行するためのリセット強制手段として機能する。
【００３７】
次に、図２に示すフローチャート、及び図３、図４、図５に示すタイミングチャートとともに、ＵＳＢ機器３０の動作について説明する。
【００３８】
まず、ホスト１０がバスリセット信号（ＳＥ０）を出力し、タイミングＡ（図３参照）に示すようにＵＳＢデバイスコントローラ３１が前記バスリセット信号を受信すると（ステップＳ１）、ＵＳＢデバイスコントローラ３１は、ＣＰＵ３２及びリセット実行判定回路３４へ向けて割り込み信号ＩＮＴ１を出力する（ステップＳ２）。ここでステップＳ１を実行するＵＳＢデバイスコントローラ３１は、リセット信号受付手段として機能する。
【００３９】
ＣＰＵ３２は、ＵＳＢデバイスコントローラ３１から割込み信号ＩＮＴ１を受信すると、５００ｍＳの間ソフトリセット実行待ち状態となる（ステップＳ３）。  
リセット実行判定回路３４は、ＵＳＢデバイスコントローラ３１から割込み信号ＩＮＴ１を受信すると、１秒間の間、リセット実効待ち状態となる（ステップＳ４）。
【００４０】
一方、ＵＳＢデバイスコントローラ３１は、タイミングＢ（図４参照）に示すようにＶＢＵＳライン２５ａの出力がＨｉｇｈレベルからＬｏｗレベルへ変化した（つまり電力供給が断になった）ことを検出すると（ステップＳ５）、ＣＰＵ３２に対して割込み信号（ＩＮＴ０）を出力する（ステップＳ６）。ここで、ステップＳ５を実行するＵＳＢデバイスコントローラ３１は、電力供給状態判定手段として機能する。
【００４１】
また、ＶＢＵＳ監視回路３５は、ＶＢＵＳライン２５ａの出力がＨｉｇｈレベルにあるか、Ｌｏｗレベルにあるかを監視しており（ステップＳ７）、このＶＢＵＳライン２５ａの出力状態をリセット実行判定回路３４に送信する。
【００４２】
ＣＰＵ３２は、前記５００ｍＳの待ち時間内にＵＳＢデバイスコントローラ３１から割込み信号ＩＮＴ０を受信した場合（ステップＳ８：Ｙｅｓ）、リセット禁止信号をリセット回路３３へ発行する（ステップＳ９）。
【００４３】
一方、割込み信号ＩＮＴ０を受信しなかった場合は（ステップＳ８：Ｎｏ）、タイミングＣ（図３参照）に示すように５００ｍＳの待ち時間終了後に、ソフトリセット信号をリセット回路３３へ発行する（ステップＳ１０）とともに、リセット実行判定回路３４に対して判定動作停止を行う（ステップＳ１１）。
【００４４】
リセット実行判定回路３４は、前記１秒間の待ち時間内に、ＶＢＵＳライン２５ａのＬｏｗレベルを検出した場合（ステップＳ１２：Ｙｅｓ）、リセット禁止信号をリセット回路３３へ発行する（ステップＳ１３）。
【００４５】
一方、１秒の待ち時間にＶＢＵＳライン２５ａのＬｏｗレベルを検出しなかった場合（ステップＳ１２：Ｎｏ）、タイミングＤ（図４参照）に示すように、この１秒の待ち時間終了後にハードリセット信号を発行する（ステップＳ１４）。
【００４６】
リセット回路３３は、ステップＳ９またはＳ１３のリセット禁止信号を受信した場合、ＵＳＢ機器３０に対してリセットを実行せず（ステップＳ１５）、現状の動作状態を維持する。
【００４７】
一方、ステップＳ１０またはＳ１４のリセット信号を受信した場合、リセット回路３３は、ＵＳＢ機器３０に対してリセットを実行する（ステップＳ１５）。このとき、ソフトリセット信号を受信した場合はＵＳＢ機器３０に対してソフトリセットを実行し、ハードリセット信号を受信した場合はＵＳＢ機器３０に対してハードリセット（全体リセット）を実行する。
【００４８】
このソフトリセットとハードリセットは、どちらか一方が実行される関係にある。詳述すると、ホスト１０からリセット信号であるバスリセット信号（ＳＥ０）が発行されると、ＵＳＢ機器３０のＵＳＢデバイスコントローラ３１はこのバスリセット信号（ＳＥ０）を検出し、タイミングＡに示したように割込み信号ＩＮＴ１を出力する。
【００４９】
ソフトリセット実行待ちの５００ｍＳの間に、ＶＢＵＳ信号のＨｉｇｈからＬｏｗの変化が無い、すなわち割込み信号ＩＮＴ０を受けていなければ、タイミングＣに示すように、ソフトリセット信号を発行し、ＵＳＢ機器３０に対して、リセットを実行する。また、同時にリセット実行判定回路３４に対してリセット判定動作停止を行う。
【００５０】
このソフトリセットが実行されると、図３のタイミングＣ以降の動作は、図にハッチングで示すようにソフトリセットによりキャンセルされてしまうため、ハードリセット実行待ちのカウントもキャンセルされ、ハードリセットは実行されない。
【００５１】
また、割込み信号ＩＮＴ０を受けたときにＣＰＵ３２が暴走していた場合、タイミングＣでソフトリセット信号を発行できない。しかし、図４のタイミングＤで、ハードリセット信号が発行されるため、ＵＳＢ機器３０に対してハードリセットが実行される。
【００５２】
また、コネクタ抜けや電源ＯＦＦ時のバスリセット状態によりＵＳＢデバイスコントローラ３１がバスリセット信号（ＳＥ０）を受信した場合は、リセット動作を実行しないことができる。
【００５３】
詳述すると、ＵＳＢデバイスコントローラ３１はバスリセット信号（ＳＥ０）を検出すると、図５のタイミングＡに示すように割込み信号ＩＮＴ１を出力する。ソフトリセット実行待ちの５００ｍＳの間に、ＶＢＵＳ信号のＨｉｇｈからＬｏｗの変化があると、図５のタイミングＢに示すように割り込み信号ＩＮＴ０を出力し、ＣＰＵ３２はリセット禁止信号を発行する。これにより、タイミングＤに示すようにハードリセット信号が発行されても、ＵＳＢ機器３０に対してリセットを実行しない。
【００５４】
また、前記タイミングＢでＣＰＵ３２がリセット禁止処理を発行できなかった場合でも、タイミングＢでＶＢＵＳ状態監視回路３５がＶＢＵＳのＬｏｗレベルを検出してリセット禁止信号を発行するため、ＵＳＢ機器３０に対してリセットを実行しない。
【００５５】
以上の動作により、ＵＳＢコネクタ抜けや電源ＯＦＦ時のバスリセット信号受信時はＵＳＢ機器３０に対してリセットを実行せず、ホスト１０がＵＳＢ機器３０の障害復旧のために発行したバスリセット信号（ＳＥ０）のみに応答して、ＵＳＢ機器３０に対してリセットを発行し、ＵＳＢ機器３０の障害を復旧させることができる。
【００５６】
図６は、ＢＩＯＳやオペレーティングシステム起動途中のバスリセット信号（ＳＥ０）を無効にする動作のフローチャートである。  
ホスト１０及びＵＳＢ機器３０の電源がＯＮされると（ステップＳ２１）、ＵＳＢ機器３０のＣＰＵ３２は、ＵＳＢデバイスコントローラ３１に対して第１初期設定を行う。この第１初期設定では、ホスト１０とのＵＳＢ接続が可能とするための設定を行うと共に、ＵＳＢデバイスコントローラ３１に対して割込み信号ＩＮＴ１の出力を禁止しておく（ステップＳ３１）。
【００５７】
これにより、ＢＩＯＳ起動途中やオペレーティングシステム起動途中にバスリセット信号を受けても、ＵＳＢデバイスコントローラ３１は割込み信号ＩＮＴ１を発行しないため、ＵＳＢ機器３０のリセットは実行されない。
【００５８】
その後、ホスト１０のオペレーションシステムが起動し（ステップＳ２２）、ホスト１０がＵＳＢデバイス（この実施形態ではＵＳＢ機器３０）を検出すると（ステップＳ２３：検出した）、ホスト１０はＵＳＢ機器３０とのＵＳＢ接続を確立する（ステップＳ２４）。このときＣＰＵ３２は、ＵＳＢデバイスコントローラ３１に対して第２初期設定として再度設定を行うが、この際、割込み信号ＩＮＴ１の出力を有効に変更する（ステップＳ３２）。このステップＳ３２を実行するＣＰＵ３２は、リセット実行可否切替手段として機能する。
【００５９】
ホスト１０は、適宜のアプリケーションを起動し（ステップＳ２５）、電源ＯＮ処理を終了する。この後、ホスト１０は、ＵＳＢ機器３０から正常な応答が帰ってこなくなれば、バスリセット信号をＵＳＢ機器３０に送信してリセット動作を実行させるように構成されている。  
ＵＳＢ機器３０は、バスリセット（ＳＥ０）の検出待ち状態となり（ステップＳ３３）、これ以降にバスリセット（ＳＥ０）を検出すると図２と共に説明したリセット処理を実行する。
【００６０】
以上の動作により、ホスト１０は、ＵＳＢ機器３０に不要なタイミング、すなわち、ホスト１０とＵＳＢ機器３０のＵＳＢ接続が確立される以前の状態でリセット動作が実行されることを防ぐことができる。
【００６１】
つまり、ＢＩＯＳ起動途中やオペレーティングシステムの起動途中にＵＳＢケーブル２５の信号が数回バスリセット（ＳＥ０）状態となることがあるが、このような場合にリセットしないことができる。
【００６２】
これにより、オペレーティングシステム上のエラーを防止できる。詳述すると、例えばＢＩＯＳ起動途中のバスリセットによりＵＳＢ機器３０が自己リセットをした場合、ＵＳＢ接続システム１がリセット解除され、ＣＰＵ３２が再起動する前に、次のバスリセット（ＳＥ０）状態となる場合がある。このとき、ＵＳＢホストコントローラ１１は、１度目のバスリセット時はＵＳＢ機器３０を認識したにもかかわらず、２度目のバスリセット時は、ＵＳＢ機器３０を認識できない事になる。このような場合、オペレーティングシステム上のエラーとなるが、上述した動作によりこれを回避できる。
【００６３】
図７は、ホスト１０がバスリセットを実行する際のリトライ処理の動作を示すフローチャートである。  
ホスト１０のＵＳＢホストコントローラ１１は、ＵＳＢ機器３０との通信について通信エラーが発生すると、当該ＵＳＢ機器３０にバスリセット信号（ＳＥ０）を送信する（ステップＳ４１）。
【００６４】
予め定められた一定時間である待ち時間が経過するまでに、ホスト１０とＵＳＢ機器３０との再接続が完了すれば、すなわちホスト１０からＵＳＢ機器３０に信号を送信してホスト１０がＵＳＢ機器３０から正常な応答信号を得られれば（ステップＳ４２：Ｙｅｓ）、ＵＳＢホストコントローラ１１は正常終了としてリセット処理を終了する（ステップＳ４３）。
【００６５】
再接続できなかった場合、すなわちＵＳＢ機器３０から正常な応答信号が得られなかった場合は（ステップＳ４２：Ｎｏ）、ＵＳＢホストコントローラ１１は、予め定められた設定回数のリトライ処理を実行したか判定する（ステップＳ４４）。
【００６６】
設定回数のリトライ処理を実行してなければ（ステップＳ４４：Ｎｏ）、ＵＳＢホストコントローラ１１は、リトライ処理を実行してステップＳ４１に処理を戻す（ステップＳ４５）。このリトライ処理では、ステップＳ４１に処理を戻すことでバスリセットを繰り返すと共に、リトライ回数を１増加する。このリトライ処理を実行するＳＢホストコントローラ１１は、リトライ手段として機能する。
【００６７】
設定回数のリトライ処理を実行していれば（ステップＳ４４：Ｙｅｓ）、ＵＳＢホストコントローラ１１は、異常終了として処理を終了する（ステップＳ４６）。
【００６８】
以上の動作により、１回のバスリセットでホスト１０とＵＳＢ機器３０とが接続できなくても、再度リセット処理を実行し、再接続することができる。そして、この再接続の試みを設定回数繰り返しても再接続できなければ、異常終了することができる。
【００６９】
以上に説明した構成および動作により、ＵＳＢ機器３０は、リセット信号に基づいてリセット動作を実行することができる。従って、例えばＵＳＢ機器３０全体のハードリセット等を行うことができ、可用性を高めることができる。
【００７０】
また、ホスト１０からのバスリセット信号に基づいてＵＳＢ機器３０にリセット動作を強制実行させ、かつ、意図しないバスリセット信号に対してリセット動作を禁止することができ、高信頼性システムを実現することが可能となる。
【００７１】
また、ＵＳＢコネクタ抜け時や電源ＯＦＦ時において、ＵＳＢケーブル２５がバスリセットと同じ状態になった場合でもリセット動作を実行せず、ＶＢＵＳ状態監視回路３５に対する任意のリセット信号のみに応答してリセットを実行する事ができる。
【００７２】
なお、ホスト１０は、バスリセット信号を送信して所定時間が経過しても通信エラーが解消しなかった場合に再度リセット信号を送信するリトライ処理を実行する構成にしてもよい。これにより、ホスト１０は、ＵＳＢ機器３０の障害を確実に復旧することができる。
【００７３】
また、ＡＴＭの例に限らず、パーソナルコンピュータなどにＵＳＢ接続システム１を用いても良い。この場合、例えばパーソナルコンピュータをホスト１０とし、スキャナやプリンタ等をＵＳＢ機器３０として、このＵＳＢ機器３０に強制動作を実行させることができ、確実なリセット処理やリセット禁止処理を行うことができる。
【００７４】
なお、この発明は、上述の実施形態の構成のみに限定されるものではなく、多くの実施の形態を得ることができる。
【図面の簡単な説明】
【００７５】
【図１】ＵＳＢ接続システム全体のブロック図。
【図２】ＵＳＢ接続システムの動作を示すフローチャート。
【図３】リセットのタイミングを示すタイミングチャート。
【図４】リセットのタイミングを示すタイミングチャート。
【図５】リセットのタイミングを示すタイミングチャート。
【図６】起動途中のバスリセット信号を無効にする動作のフローチャート。
【図７】バスリセットのリトライ処理の動作のフローチャート。
【符号の説明】
【００７６】
１…ＵＳＢ接続システム、１０…ホスト、２５…ＵＳＢケーブル、３０…ＵＳＢ機器、３１…ＵＳＢデバイスコントローラ、３２…ＣＰＵ、３３…リセット回路
【図１】
0004646859.tif 000002
【図２】
0004646859.tif 000003
【図３】
0004646859.tif 000004
【図４】
0004646859.tif 000005
【図５】
0004646859.tif 000006
【図６】
0004646859.tif 000007
【図７】
0004646859.tif 000008