(57)【要約】【課題】ＵＳＢ通信の物理的な接続の破断にあっては、それが何れの箇所で発生しても異常検出を行うことができるとともに、論理的な通信切断による異常も検出することが可能なＵＳＢ通信システム，ＵＳＢデバイス，及びＵＳＢ通信システムの異常検出方法を提供する。【解決手段】ＵＳＢケーブル３によって上位装置２とカードリーダ１を接続して構成されるＵＳＢ通信システムにおいて、カードリーダ１は、上位装置２と論理的な通信線を設定する際の前処理としてバスリセットを実行するバスリセット実行手段と、自己がバスリセット状態になっている時間を計測する時間計測手段と、時間計測手段の計測結果に基づいて、自発的に通信破断処理を実行する破断処理実行手段と、を有する。【選択図】          図３
2008059409.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢケーブルによって上位装置とＵＳＢデバイスを接続して構成されるＵＳＢ通信システムにおいて、
前記ＵＳＢデバイスに前記上位装置と論理的な接続状態を形成しなおす際に発生するバスリセットを検出するバスリセット検出手段と、
バスリセットアサートからバスリセットデアサートまでの時間を計測する時間計測手段と、
前記時間計測手段の計測結果に基づいて、自発的に通信破断処理を実行する破断処理実行手段と、を有することを特徴とするＵＳＢ通信システム。
【請求項２】
前記ＵＳＢデバイスは、前記上位装置からの論理的な接続状態を形成するためのエニュメレーション処理を実行するエニュメレーション処理実行手段を備え、
前記時間計測手段は、さらに、前記エニュメレーション処理が実行されている最中の処理時間を計測することを特徴とする請求項１記載のＵＳＢ通信システム。
【請求項３】
前記ＵＳＢデバイスは、前記エニュメレーション処理が実行されている最中に前記バスリセットが発生した回数をカウントする回数計測手段を備え、
前記破断処理実行手段は、前記回数計測手段の計測結果に基づいて、自発的に通信破断処理を実行することを特徴とする請求項２記載のＵＳＢ通信システム。
【請求項４】
前記ＵＳＢデバイスは、前記ＵＳＢケーブルにおける電源ラインの電圧レベルを認識する電圧レベル認識手段を備え、
前記破断処理実行手段は、前記電圧レベル認識手段の認識結果に基づいて、自発的に通信破断処理を実行することを特徴とする請求項１から３のいずれか記載のＵＳＢ通信システム。
【請求項５】
前記ＵＳＢデバイスは、カード状媒体に対して所定の処理を実行するカード状媒体処理装置であって、
前記カード状媒体処理装置は、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段を備え、
前記制御手段は、前記通信破断処理が実行されることによって、内部に残留したカード状媒体を外部へ排出することを特徴とする請求項１から４のいずれか記載のＵＳＢ通信システム。
【請求項６】
前記ＵＳＢデバイスは、カード状媒体に対して所定の処理を実行するカード状媒体処理装置であって、
前記カード状媒体処理装置は、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段を備え、
前記制御手段は、前記通信破断処理が実行されることによって、カード状媒体の新たな取り込みを阻止することを特徴とする請求項１から４のいずれか記載のＵＳＢ通信システム。
【請求項７】
前記ＵＳＢデバイスは、カード状媒体に対して所定の処理を実行するカード状媒体処理装置であって、
前記カード状媒体処理装置は、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段を備え、
前記制御手段は、前記通信破断処理が実行されることによって、内部に残留したカード状媒体をロックして保留することを特徴とする請求項１から４のいずれか記載のＵＳＢ通信システム。
【請求項８】
請求項１から７のいずれか記載のＵＳＢ通信システムに用いられるＵＳＢデバイス。
【請求項９】
ＵＳＢケーブルによって上位装置とＵＳＢデバイスを接続して構成されるＵＳＢ通信システムの異常検出方法であって、
前記ＵＳＢデバイスにおいて、前記上位装置と論理的な接続状態を形成しなおす際に発生するバスリセットを検出する第１ステップと、
バスリセットアサートからバスリセットデアサートまでの時間を計測する第２ステップと、
前記第２ステップの計測結果に基づいて、自発的に通信破断処理を実行する第３ステップと、を含むことを特徴とするＵＳＢ通信システムの異常検出方法。
【請求項１０】
前記ＵＳＢデバイスにおいて、前記第１ステップが実行された後、前記上位装置と論理的な接続状態を形成するためのエニュメレーション処理を実行する第４ステップと、
前記エニュメレーション処理が実行されている最中の処理時間を計測する第５ステップと、
前記第５ステップの計測結果に基づいて、自発的に通信破断処理を実行する第６ステップと、を含むことを特徴とする請求項９記載のＵＳＢ通信システムの異常検出方法。
【請求項１１】
前記ＵＳＢデバイスにおいて、前記エニュメレーション処理が実行されている最中に前記バスリセットが発生した回数をカウントする第７ステップと、
前記第７ステップの計測結果に基づいて、自発的に通信破断処理を実行する第８ステップと、を含むことを特徴とする請求項９記載のＵＳＢ通信システムの異常検出方法。
【請求項１２】
前記ＵＳＢデバイスにおいて、前記ＵＳＢケーブルにおける電源ラインの電圧レベルを認識する第９ステップと、
前記第９ステップの認識結果に基づいて、自発的に通信破断処理を実行する第１０ステップと、を含むことを特徴とする請求項９記載のＵＳＢ通信システムの異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢケーブルによって上位装置とＵＳＢデバイスを接続して構成される、ＵＳＢ通信システム，ＵＳＢデバイス，及びＵＳＢ通信システムの異常検出方法に関する。
【背景技術】
【０００２】
従来から、上位装置となるホスト側のコンピュータとデバイスとがＵＳＢ（ユニバーサルシリアルバス）通信によって接続されるシステムがある（例えば特許文献１参照）。このシステムは、ホストとデバイス間をシリアル通信で接続するものであって、例えば、プラグアンドプレイ機能（自動接続認識機能），ホットインサーション機能（電源を入れたままでの抜き差しを可能にする機能）及びホストからデバイスへの電源供給機能など、ユーザーの利便性を高める様々な機能を有している。
【０００３】
一般的に、ＵＳＢ通信で用いるＵＳＢケーブルは、５Ｖの電源ライン（Ｖ−ＢＵＳライン），ＧＮＤ（グランド）ライン，及びデータ転送用のＤ＋及びＤ−の信号ラインから構成される合計４本の配線を有している。そして、デバイス側では、Ｖ−ＢＵＳラインを通じて送信されるＶ−ＢＵＳ信号の常時監視を行っている。つまり、このＶ−ＢＵＳ信号の遷移状態を常時監視することで、ＵＳＢ通信の異常検出を行うこともできるようになっている。例えば、Ｖ−ＢＵＳラインの上位装置が故意にダウンさせることのないシステムにおいては、ＵＳＢ通信中に何らかの理由でＵＳＢケーブルが外れた場合には、Ｖ−ＢＵＳ信号がオンからオフへと遷移し、その結果、デバイスはＵＳＢ通信の物理的な接続が破断したと認識し、ＵＳＢ通信の異常が検出されることもできる。
【０００４】
【特許文献１】特開２００２−２４４７７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したＵＳＢ通信の異常検出方法は、上述したようにＵＳＢケーブルが外れた場合（ディスコネクトした場合）の物理的な接続の破断は認識可能であるものの、ノイズ（例えばスイッチングノイズなど）やホスト側のコンピュータにおけるソフトウェア暴走（例えばブルースクリーン状態になる）等に起因した、論理的な通信切断の認識は困難である。Ｖ−ＢＵＳ信号がオンからオフへと遷移しない場合があるからである。
【０００６】
また、ＵＳＢ通信の物理的な接続の破断であっても、認識困難になる場合がある。例えば、ホスト側のコンピュータとデバイスの間にハブユニットを介在させるとともに、そのハブユニットがセルフパワーで駆動している（自分で電源を内蔵する）場合には、たとえホスト側のコンピュータとハブユニット間でのケーブル切断が発生しても、ハブユニットとデバイス間のＶ−ＢＵＳ信号の遷移状態に変化はない場合がある。つまり、上述したＵＳＢ通信の異常検出方法では、ホスト側のコンピュータとハブユニット間におけるＵＳＢ通信の物理的な接続の破断（ケーブルディスコネクト）を認識することができない可能性があり、ケーブルディスコネクトが何れの箇所で発生しても異常検出を行うことができる、というものではない。
【０００７】
本発明は、このような点に鑑みてなされたものであり、その目的は、ＵＳＢ通信の物理的な接続の破断にあっては、それが何れの箇所で発生しても異常検出を行うことができるとともに、論理的な通信切断による異常も検出することが可能なＵＳＢ通信システム，ＵＳＢデバイス，及びＵＳＢ通信システムの異常検出方法を提供することにある。
【課題を解決するための手段】
【０００８】
以上のような課題を解決するために、本発明は、以下のものを提供する。
【０００９】
（１）  ＵＳＢケーブルによって上位装置とＵＳＢデバイスを接続して構成されるＵＳＢ通信システムにおいて、前記ＵＳＢデバイスに前記上位装置と論理的な接続状態を形成しなおす際に発生するバスリセットを検出するバスリセット検出手段と、バスリセットアサートからバスリセットデアサートまでの時間を計測する時間計測手段と、前記時間計測手段の計測結果に基づいて、自発的に通信破断処理を実行する破断処理実行手段と、を有することを特徴とするＵＳＢ通信システム。
【００１０】
本発明によれば、上位装置とＵＳＢデバイスを有するＵＳＢ通信システムで、ＵＳＢデバイスに、上位装置と論理的な接続状態を形成しなおす際に発生するバスリセットを検出する手段と、バスリセットアサートからバスリセットデアサートまでの時間を計測する手段と、その時間に基づいて（例えば所定時間を超えていれば）、自発的に（例えば上位装置からの何らかのコマンドを受信しなくても）通信破断処理を実行する手段と、を設けることとしたので、ＵＳＢ通信の物理的な接続の破断が何れの箇所で発生しても、異常検出を行うことができる。
【００１１】
すなわち、一般に、ＵＳＢデバイスでは、何らかの通信異常が発生するとその都度バスリセットが発生し、この時間が長時間継続したときには、何らかの異常が発生したと判断し、上位装置からのコマンドが無くても自発的に通信破断処理が実行されるようにしたので、たとえホスト側のコンピュータとハブユニット間でのケーブル切断が発生しても、通信異常を検出することができ、ひいては異常検出の精度を高め、システムの安定性を高めることができる。
【００１２】
特に、本発明によれば、ノイズやホスト側のコンピュータにおけるソフトウェア暴走等に起因した論理的な通信切断が生じた場合であっても、バスリセット状態が予め定めた所定時間以上継続したときには、何らかの異常が発生したと判断することができるので、物理的な接続の破断だけでなく、論理的な通信切断の認識も行うことができる。
【００１３】
（２）  前記ＵＳＢデバイスは、前記上位装置からの論理的な接続状態を形成するためのエニュメレーション処理を実行するエニュメレーション処理実行手段を備え、前記時間計測手段は、さらに、前記エニュメレーション処理が実行されている最中の処理時間を計測することを特徴とするＵＳＢ通信システム。
【００１４】
本発明によれば、上述したＵＳＢデバイスに、上位装置からの論理的な接続状態を形成するためのエニュメレーション処理を実行する手段を設け、エニュメレーション処理が実行されている最中の処理時間が計測されることとしたので、エニュメレーション処理中に何らかの通信異常が発生した場合であっても、その通信異常を検出することができ、ひいては異常検出の精度を更に高めることができる。
【００１５】
（３）  前記ＵＳＢデバイスは、前記エニュメレーション処理が実行されている最中に前記バスリセットが発生した回数をカウントする回数計測手段を備え、前記破断処理実行手段は、前記回数計測手段の計測結果に基づいて、自発的に通信破断処理を実行することを特徴とするＵＳＢ通信システム。
【００１６】
本発明によれば、上述したＵＳＢデバイスに、エニュメレーション処理が実行されている最中にバスリセットが発生した回数をカウントする手段を設け、その回数に基づいて（例えば所定回数を超えていれば）、自発的に通信破断処理が実行されることとしたので、時間に基づく異常検出と回数に基づく異常検出の二重チェックを行うことができ、より精度の高い異常検出を実現することができる。
【００１７】
（４）  前記ＵＳＢデバイスは、前記ＵＳＢケーブルにおける電源ラインの電圧レベルを認識する電圧レベル認識手段を備え、前記破断処理実行手段は、前記電圧レベル認識手段の認識結果に基づいて、自発的に通信破断処理を実行することを特徴とするＵＳＢ通信システム。
【００１８】
本発明によれば、上述したＵＳＢデバイスに、ＵＳＢケーブルにおける電源ライン（例えばＶ−ＢＵＳライン）の電圧レベルを認識する手段を設け、その認識結果に基づいて、自発的に通信破断処理が実行されることとしたので、時間又は回数に基づく異常検出に加えて、Ｖ−ＢＵＳ信号の遷移状態に基づく異常検出を行うことができ、異常検出の精度を更に高めることができる。
【００１９】
（５）  前記ＵＳＢデバイスは、カード状媒体に対して所定の処理を実行するカード状媒体処理装置であって、前記カード状媒体処理装置は、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段を備え、前記制御手段は、前記通信破断処理が実行されることによって、内部に残留したカード状媒体を外部へ排出することを特徴とするＵＳＢ通信システム。
【００２０】
本発明によれば、上述したＵＳＢデバイスとして、カード状媒体に対して所定の処理を実行するカード状媒体処理装置を採用し、このカード状媒体処理装置には、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段（例えば、駆動モータ，搬送ローラ，シャッタなど）が設けられており、通信破断処理が実行されたとき、この制御手段によって、内部に残留したカード状媒体が外部へ排出されることとしたので、論理的な通信切断が発生した場合であっても、例えばカードを顧客に返却する動作をカード状媒体処理装置自身の判断で行うことができる。したがって、例えば、ＡＴＭなどで監視員がいない場合であっても、カード状媒体処理装置から自分のカードが排出されない、といったような事態を防ぐことができ、ひいてはカード操作に関する利便性を高めることができる。
【００２１】
（６）  前記ＵＳＢデバイスは、カード状媒体に対して所定の処理を実行するカード状媒体処理装置であって、前記カード状媒体処理装置は、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段を備え、前記制御手段は、前記通信破断処理が実行されることによって、カード状媒体の新たな取り込みを阻止することを特徴とするＵＳＢ通信システム。
【００２２】
本発明によれば、上述したＵＳＢデバイスとして、カード状媒体に対して所定の処理を実行するカード状媒体処理装置を採用し、このカード状媒体処理装置には、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段（例えば、駆動モータ，搬送ローラ，シャッタなど）が設けられており、通信破断処理が実行されたとき、この制御手段によって、カード状媒体の新たな取り込みが阻止されることとしたので、論理的な通信切断が発生した場合に、例えばカード受付を停止する動作をカード状媒体処理装置自身の判断で行うことができる。したがって、例えば、ＡＴＭなどで監視員がいない場合に、無理やりカードが挿入されるなど、カード状媒体処理装置の故障に繋がりかねない事態を防ぐことができ、ひいてはカード操作に関するセキュリティ性を高めることができる。
【００２３】
（７）  前記ＵＳＢデバイスは、カード状媒体に対して所定の処理を実行するカード状媒体処理装置であって、前記カード状媒体処理装置は、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段を備え、前記制御手段は、前記通信破断処理が実行されることによって、内部に残留したカード状媒体をロックして保留することを特徴とするＵＳＢ通信システム。
【００２４】
本発明によれば、上述したＵＳＢデバイスとして、カード状媒体に対して所定の処理を実行するカード状媒体処理装置を採用し、このカード状媒体処理装置には、カード状媒体の内部への取り込み及び外部への排出を機械的に制御する制御手段（例えば、駆動モータ，搬送ローラ，シャッタなど）が設けられており、通信破断処理が実行されたとき、この制御手段によって、内部に残留したカード状媒体がロックされて保留されることとしたので、論理的な通信切断が発生した場合に、例えばカード排出を停止する動作をカード状媒体処理装置自身の判断で行うことができる。したがって、例えば、ＡＴＭなどで監視員がいない場合に、内部に残留したカードが無理やり引き抜かれるなど、カード状媒体処理装置の故障に繋がりかねない事態を防ぐことができ、ひいてはカード操作に関するセキュリティ性を高めることができる。また、異常に気付いた監視委員が現場に到着するまでの間、カード状媒体を内部に留めておくことで、異常検出の原因追及が困難になるのを防ぐことができる。
【００２５】
（８）  （１）から（７）のいずれか記載のＵＳＢ通信システムに用いられるＵＳＢデバイス。
【００２６】
本発明によれば、上述したＵＳＢ通信システムに用いられ、論理的な通信切断による異常検出を行うことが可能なＵＳＢデバイスを提供することができる。
【００２７】
（９）  ＵＳＢケーブルによって上位装置とＵＳＢデバイスを接続して構成されるＵＳＢ通信システムの異常検出方法であって、前記ＵＳＢデバイスにおいて、前記上位装置と論理的な接続状態を形成しなおす際に発生するバスリセットを検出する第１ステップと、バスリセットアサートからバスリセットデアサートまでの時間を計測する第２ステップと、前記第２ステップの計測結果に基づいて、自発的に通信破断処理を実行する第３ステップと、を含むことを特徴とするＵＳＢ通信システムの異常検出方法。
【００２８】
本発明によれば、ＵＳＢ通信システムの異常検出方法で、ＵＳＢデバイスにおいて上位装置と論理的な接続状態を形成しなおす際に発生するバスリセットを検出するステップ（上位装置からのバスリセットを検出して論理的接続を再度受け入れるステップ）と、バスリセットアサートからバスリセットデアサートまでの時間を計測するステップと、その計測結果に基づいて自発的に通信破断処理を実行するステップと、を含むこととしたので、ＵＳＢ通信の物理的な接続の破断が何れの箇所で発生しても異常検出を行うことができるとともに、論理的な通信切断による異常も検出することができる。
【００２９】
（１０）  前記ＵＳＢデバイスにおいて、前記第１ステップが実行された後、前記上位装置と論理的な接続状態を形成するためのエニュメレーション処理を実行する第４ステップと、前記エニュメレーション処理が実行されている最中の処理時間を計測する第５ステップと、前記第５ステップの計測結果に基づいて、自発的に通信破断処理を実行する第６ステップと、を含むことを特徴とするＵＳＢ通信システムの異常検出方法。
【００３０】
本発明によれば、ＵＳＢ通信システムの異常検出方法に、上位装置と論理的な接続状態を形成するためのエニュメレーション処理を実行するステップと、エニュメレーション処理が実行されている最中の処理時間を計測するステップと、その計測結果に基づいて自発的に通信破断処理を実行するステップと、を含むこととしたので、上述同様、エニュメレーション処理中に何らかの通信異常が発生した場合であっても、その通信異常を検出することができる。
【００３１】
（１１）  前記ＵＳＢデバイスにおいて、前記エニュメレーション処理が実行されている最中に前記バスリセットが発生した回数をカウントする第７ステップと、前記第７ステップの計測結果に基づいて、自発的に通信破断処理を実行する第８ステップと、を含むことを特徴とするＵＳＢ通信システムの異常検出方法。
【００３２】
本発明によれば、ＵＳＢ通信システムの異常検出方法に、エニュメレーション処理が実行されている最中に前記バスリセットが発生した回数をカウントするステップと、その計測結果に基づいて、自発的に通信破断処理を実行するステップと、を含むこととしたので、時間に基づく異常検出と回数に基づく異常検出の二重チェックを行うことができる。
【００３３】
（１２）  前記ＵＳＢデバイスにおいて、前記ＵＳＢケーブルにおける電源ラインの電圧レベルを認識する第９ステップと、前記第９ステップの認識結果に基づいて、自発的に通信破断処理を実行する第１０ステップと、を含むことを特徴とするＵＳＢ通信システムの異常検出方法。
【００３４】
本発明によれば、ＵＳＢ通信システムの異常検出方法に、ＵＳＢケーブルにおける電源ライン（例えばＶ−ＢＵＳライン）の電圧レベルを認識するステップと、その認識結果に基づいて、自発的に通信破断処理を実行するステップと、を含むこととしたので、時間又は回数に基づく異常検出に加えて、Ｖ−ＢＵＳ信号の遷移状態に基づく異常検出を行うことができる。
【発明の効果】
【００３５】
以上説明したように、本発明に係るＵＳＢ通信システム，ＵＳＢデバイス，及びＵＳＢ通信システムの異常検出方法によれば、物理的な接続の破断が何れの箇所で発生しても、また、論理的な通信切断が発生しても、それらを異常として検出することができるので、システムの安定性を高めることができる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００３７】
［システム構成］
図１は、本発明の実施の形態に係るＵＳＢ通信システムのシステム構成図である。なお、図１では、ＵＳＢデバイスとしてカードリーダ１を採用し、ホスト側のコンピュータとして、例えばＡＴＭなどの上位装置２を採用しているが、本発明はこれらに限られるものではない。例えば、ＵＳＢデバイスとしては、マウス，キーボード，スキャナ，プリンタ，ＵＳＢメモリなどが挙げられ、ホスト側のコンピュータとしては、家庭用ＰＣやゲーム機などが挙げられる。また、図１では、上位装置２に対して１台のＵＳＢ機器（カードリーダ１）のみが接続されているが、実際は、カードリーダ１を含めて最大で１２７台のＵＳＢ機器を接続することが可能である（ＵＳＢデバイスに付与しうるアドレス数は最大１２７である）。
【００３８】
図１において、カードリーダ１は、ＵＳＢケーブル３を介して上位装置２と接続されている。ＵＳＢケーブル３は、５Ｖの電源ライン（Ｖ−ＢＵＳライン），ＧＮＤ（グランド）ライン，及びデータ転送用のＤ＋の信号ライン及びＤ−の信号ラインから構成される合計４本の配線を有している。
【００３９】
カードリーダ１は、主として、カードリーダ１全体を統率制御するＣＰＵ，制御プログラム等の各種プログラムを格納するＲＯＭ，ＣＰＵのワーキングエリアとして機能するＲＡＭ，各種設定を記憶するＥＥＰＲＯＭ等からなる信号処理回路１０と、上位装置２との通信を制御するコントローラＩＣ（例えば、カードリーダ１に内蔵された集積回路から構成される），論理的な接続状態（いわゆるパイプ）を設定する（形成しなおす）ためのレジスタ（いわゆるエンドポイントとなるＦＩＦＯバッファ）等からなるＵＳＢコントローラ１１と、を有している。
【００４０】
図１に示すカードリーダ１は、Ｖ−ＢＵＳ信号からの５Ｖ電源で駆動せず、自分で電源を内蔵するセルフパワータイプのＵＳＢデバイスであるが、例えばＵＳＢメモリなどバスパワータイプの小型機器をＵＳＢデバイスとして採用した場合には、Ｖ−ＢＵＳ信号からの５Ｖ電源で駆動させることもできる。
【００４１】
信号処理回路１０とＵＳＢコントローラ１１との間では、アドレスバスによってアドレス番号が転送され、データバスによってデータが転送される。例えば、ＵＳＢコントローラ１１内のレジスタは各アドレスに割り当てられており、信号処理回路１０内のＣＰＵは、適宜レジスタのアドレスを指定する。すると、ＵＳＢコントローラ１１内のコントローラＩＣによって、指定されたアドレスに対応するデータが信号処理回路１０へ転送される。こうして、信号処理回路１０内のＣＰＵはデータ参照を行う。一方で、信号処理回路１０のＣＰＵは、上位装置２が要求するデータを、ＵＳＢコントローラ１１を介して上位装置２に送信することも可能である。
【００４２】
上位装置２は、主として、上位装置２全体を統率制御するＣＰＵ，制御プログラム等の各種プログラムを格納するＲＯＭ，ＣＰＵのワーキングエリアとして機能するＲＡＭ等からなる信号処理回路２０と、論理的な接続状態（いわゆるパイプ又は通信線）を設定するためのバッファ等からなるＵＳＢインターフェース２１と、を有している。なお、ＵＳＢインターフェース２１内のＣＰＵやバッファは、信号処理回路２０内のＣＰＵやメモリ（ＲＡＭやＥＥＰＲＯＭ等）で代替することも可能である。
【００４３】
ここで、図１に示すＵＳＢ通信システムにおいて、ＵＳＢコントローラ１１内のコントローラＩＣは、上位装置２と論理的な接続状態を形成する（或いは形成しなおす）際の前処理としてのバスリセットを検出する機能と、ＵＳＢライン上のバスリセットアサートからバスリセットデアサートまでの時間を計測する機能と、その計測結果に基づいて、自発的に通信破断処理を実行する機能と、を有している。なお、その他にも様々な機能を有するが、他の機能については後述する。また、本実施形態では、これらの機能をコントローラＩＣに担わせることとしたが、例えば信号処理回路１０内のＣＰＵなど、その他カードリーダ１内の電気要素であれば如何なるものであってよい。
【００４４】
［ＵＳＢ通信の流れ］
図２は、図１に示すＵＳＢ通信システムにおけるＵＳＢ通信の流れを示すフローチャートである。
【００４５】
図２において、まず、ケーブル接続が行われる（ステップＳ１）。具体的には、ＵＳＢケーブル３を介して、上位装置２にカードリーダ１が物理的・電気的に接続される。なお、図１では、上位装置２が親機となり、カードリーダ１が子機となって、上位装置２からのポーリング（問い合わせ）によってＵＳＢ通信が行われる。また、ＵＳＢ通信は、全て上位装置２が制御し、子機であるカードリーダ１側から勝手にＵＳＢ通信を開始することはできない。
【００４６】
次に、カードリーダ１において、上位装置２とのＵＳＢ通信を初期化するため（バスを初期化するため）のバスリセット（バスリセット状態）が検出される。より具体的には、上位装置２内の信号処理回路２０は、ＵＳＢインターフェース２１を介して、例えばＤ＋及びＤ−の両信号ラインをＬｏｗレベルにする等して、リセット信号を送信する。そして、これを受信したＵＳＢコントローラ１１内のコントローラＩＣによって、バスリセット（バスリセット状態）が検出される（ステップＳ２）。
【００４７】
なお、このバスリセット（バスリセット状態）の詳細については、図４を用いて後述する。また、例えば、内部リセットをＵＳＢコントローラ１１が実行してもよいし、信号処理回路１０が実行してもよい。また、本実施形態において、内部リセットの契機となった上記リセット信号の種類の如何は問わない。例えば、Ｄ＋及びＤ−の両信号ラインをＬｏｗレベルにするのではなく、通常時はプルアップされているＤ＋の信号ラインを一時停止させるような信号であってもよい。さらに、本実施形態におけるカードリーダ１では、上位装置２からのリセット信号を受信しなくても、種々のタイミングにおいてバスリセットが検出される。例えば、後述するエニュメレーション処理中やＵＳＢ通信中に何らかの不具合が生じた場合にも、バスリセット（バスリセットアサート）が検出される。
【００４８】
ステップＳ２のバスリセット状態が正常に解除された後（バスリセットデアサートが検出された後）、カードリーダ１内のＵＳＢコントローラ１１と、上位装置２内のＵＳＢインターフェース２１との間には、デフォルトパイプ（論理的な接続状態）が設定され、このデフォルトパイプを使ったコントロール転送によって、次に説明するエニュメレーション処理（エニュメレーション処理）が実行される（ステップＳ３）。
【００４９】
ステップＳ３に示すエニュメレーション処理とは、カードリーダ１と上位装置２間の接続初期手続を意味し、アプリケーションレベルでの通信路を確立するために様々な処理が実行される。例えば、上位装置２の信号処理回路２０は、カードリーダ１内に記憶されているデバイスディスクリプタの情報転送を要求する。そして、上位装置２の信号処理回路２０は、カードリーダ１に対し、不使用のアドレスにセットアップするようコマンドを送信する。これにより、カードリーダ１は、上位装置２から見て特定のデバイスアドレスを所有したことになり、今後、カードリーダ１と上位装置２は、このデバイスアドレスを用いて通信を行うことができる。また、カードリーダ１のリソースに関する情報（デバイスの使用条件，パイプの仕様や本数，ＩＤコードなど）も、カードリーダ１から上位装置２へ転送される。
【００５０】
このようにして、カードリーダ１から上位装置２へ様々な情報が転送された後、エニュメレーション処理中にバスリセットが発生しなければ（ステップＳ４：ＮＯ）、アプリケーションレベルでの通信路が確立される（ステップＳ５）。この通信路は、複数本のパイプ（論理的な接続状態）から構成され、これら複数本のパイプ（例えばロースピード通信の場合は２本のパイプ、ハイスピード通信の場合は１５本のパイプ）は、ＵＳＢコントローラ１１内のレジスタと、ＵＳＢインターフェース２１内のバッファとを論理的に接続する。ステップＳ２及びステップＳ３に示すように、バスリセットは、上位装置２と論理的な接続状態を形成する際の前処理として検出されることになる。
【００５１】
なお、複数本のパイプを用いたデータ転送方式については、大容量データの一括転送が可能なバルク転送，小容量データの定周期転送が可能なインタラプト転送、又は一定時間内のデータ量が保障されたアイソクロナス転送など、様々な転送方式がある。本実施形態において、カードリーダ１と上位装置２では、インタラプト転送方式を採用しているが、本発明はこれに限られず、ＵＳＢ機器に応じて最適な転送方式を採用することができる。
【００５２】
ここで、エニュメレーション処理が完了して、アプリケーションレベルでの通信路が確立する前に（ステップＳ５の前に）、バスリセットが発生する場合がある（ステップＳ４：ＹＥＳ）。より具体的には、ノイズ・ソフトウェア暴走などの外的・内的要因によって、カードリーダ１のＵＳＢコントローラ１１においてバスリセットが検出される場合がある。また、ＵＳＢ通信システムのいずれかの箇所においてＵＳＢ通信の物理的な接続の破断が生じた場合もある。
【００５３】
これらが生じた場合には、カードリーダ１は、再びステップＳ２で説明したバスリセット状態になった後、ステップＳ３のエニュメレーション処理を実行し直す。一方で、これが生じなかった場合には（ステップＳ４：ＮＯ）、上述のとおり通信路の確立が行われる（ステップＳ５）。
【００５４】
次に、アプリケーションレベルでのＵＳＢ通信が行われる（ステップＳ６）。具体的には、カードリーダ１の信号処理回路１０は、上位装置２からコマンドを受信するまで待機する。ＵＳＢコントローラ１１を介して所定のコマンド（例えばカードに記録された磁気データの読み出し）を受信したとき、そのコマンド内容に基づいて、所定のデータ（例えば金銭データ）を上位装置２に送信する。
【００５５】
ここで、ＵＳＢ通信を行っている最中に、バスリセットが発生する場合がある（ステップＳ７；ＹＥＳ）。より具体的には、ノイズ・ソフトウェア暴走などの外的・内的要因によって、カードリーダ１のＵＳＢコントローラ１１において内部リセットが実行される場合がある。また、上述同様、ＵＳＢ通信システムのいずれかの箇所においてＵＳＢ通信の物理的な接続の破断が生じた場合もある。
【００５６】
これらが生じた場合には、カードリーダ１は、再びステップＳ２で説明したバスリセット状態になった後（ステップＳ２）、ステップＳ３のエニュメレーション処理を実行し直し（ステップＳ３，ステップＳ５）、再度ＵＳＢ通信を行う（ステップＳ６）。一方で、これが生じなかった場合には（ステップＳ７；ＮＯ）、ＵＳＢ通信は終了する。
【００５７】
［ＵＳＢ通信システムの異常検出方法］
図３は、本発明の実施の形態に係るＵＳＢ通信システムの異常検出方法の一例（第１検出ルーチン）を示すフローチャートである。なお、本実施形態では、図３に示すフローチャートを具現化した制御プログラム・変数データ等は、ＵＳＢコントローラ１１内のコントローラＩＣに格納されているが、この格納場所の如何は問わない。例えば、信号処理回路１０の内部に格納されていてもよい。
【００５８】
また、本実施形態では、ＵＳＢコントローラ１１内のコントローラＩＣは、上述したようにタイマ機能を有しており、所望の時間を計測することが可能である。具体的には、カードリーダ１がバスリセットアサートを検出してからバスリセットデアサートを検出するまでの時間を計測することが可能である。なお、このコントローラＩＣによる計時機能は、信号処理回路１０内のＣＰＵが担ってもよい。また、ＳＲタイムフリップフロップ（ＦＦ）やクロック発振器，クロックゲート回路などのタイマ回路（カウンタ回路）を別途カードリーダ１に設けても構わない。
【００５９】
図３において、まず、バスセットが発生したか否か（バスリセットアサートが検出されたか否か）が判断される（ステップＳ１１）。また、エニュメレーション処理の最中やＵＳＢ通信の最中に、ＵＳＢコントローラ１１によって、バスリセットが発生したか否かが判断される。バスリセットが発生していなければ（ステップＳ１１：ＮＯ）、第１検出ルーチンを終了する。
【００６０】
一方で、バスリセットが発生した場合には（ステップＳ１１：ＹＥＳ）、コントローラＩＣのタイマが起動する（ステップＳ１２）。その後、コントローラＩＣによってカードリーダ１のバスリセットが解除されたか否か（バスリセットデアサートが検出されたか否か）が判断され（ステップＳ１３）、解除されれば第１検出ルーチンを終了する（ステップＳ１３：ＹＥＳ）。
【００６１】
一方で、バスリセットが解除されず（ステップＳ１３：ＮＯ）、所定の時間（例えば数十ｍｓ，数百ｍｓ）が経過した場合には（ステップＳ１４：ＹＥＳ）、コントローラＩＣはタイムアウト（タイムアップ）と認識し、通信破断処理を実行する（ステップＳ１５）。このように、ステップＳ１２〜ステップＳ１４に示す処理は、カードリーダ１がバスリセット状態になっている時間を計測するステップとなる。また、ステップＳ１５に示す処理は、ステップＳ１２〜ステップＳ１４の計測結果に基づいて、自発的に通信破断処理を実行するステップとなる。
【００６２】
ここで、ステップＳ１５に示す通信破断処理の具体例としては、例えば、カードリーダ１に挿入されたカードを利用者に自動返却（強制排出）する、カードの新たな取り込みを阻止する、或いは、カードリーダ１に挿入されたカードをキャプチャして（ロックして）、サービスマンが到着するまで勝手に引き抜けないようにする（保留する）、等の処理が挙げられる。より具体的に説明すると、図１には図示しないが、カードリーダ１には、カードの内部への取り込み及び外部への排出を機械的に制御する駆動モータ，搬送ローラ，搬送路，シャッタ（ソレノイド）などが設けられている。従って、ＵＳＢコントローラ１１が通信破断処理を実行すると、その旨が通信破断処理要求として信号処理回路１０に転送され、信号処理回路１０のＣＰＵは、各部に対して各種制御信号を送信する。例えば強制排出を行う場合には、ＣＰＵは駆動モータに対して駆動制御信号を送信し、この駆動モータにプーリやベルト等で連結された搬送ローラが回転することによって、内部に残留したカードを外部へ排出（強制排出）する。また、例えばカードの新たな取り込みを阻止する場合には、ＣＰＵはシャッタに対して駆動制御信号を送信し、このシャッタが搬送路を塞ぐことによって、カードの新たな取り込みが阻止される。さらに、例えば内部に残留したカードをロックして保留する場合にも、ＣＰＵはシャッタに対して駆動制御信号を送信し、このシャッタがカード排出口を塞ぐことによって、カードリーダ１の内部に残留したカードを引き出すことができなくなる。
【００６３】
図４は、図３に示す第１検出ルーチンにおいて、カードリーダ１がバスリセットを検出している様子を示す説明図である。
【００６４】
まず、図４（ａ）に示すように、ノイズ・ソフトウェア暴走などの外的・内的要因によって異常は発生しておらず、バスリセット状態が予め定められた時間Ｔｍｓだけ維持される場合を考える。この場合、ＵＳＢコントローラ１１のコントローラＩＣでは、時刻ｔ１において（いわゆるアサートされたとき）内蔵するタイマが起動し（図３のステップＳ１２）、時間計測が開始される。そして、予め定められた制限時間Ｒｍｓが経過する前の、時刻ｔ２において（いわゆるデアサートされたとき）バスリセットが解除されているので（図３のステップＳ１３：ＹＥＳ）、通信破断処理（図３のステップＳ１５）は行われることなく第１検出ルーチンは終了する。
【００６５】
一方で、図４（ｂ）に示すように、ノイズ・ソフトウェア暴走などの外的・内的要因によって異常が発生しており、バスリセット状態が、制限時間Ｒｍｓが経過した以降も維持されている場合を考える。このような場合、ＵＳＢコントローラ１１のコントローラＩＣでは、時刻ｔ１のとき（いわゆるアサートされたとき）に内蔵するタイマが起動し（図３のステップＳ１２）、時間計測が開始される。そして、予め定められた制限時間Ｒｍｓが経過する時刻ｔ１＋Ｒｍｓの時点においても、未だバスリセット状態が解除（デアサート）されていないので（図３のステップＳ１３：ＮＯ，ステップＳ１４：ＹＥＳ）、通信破断処理（図３のステップＳ１５）が実行される。
【００６６】
図５は、本発明の実施の形態に係るＵＳＢ通信システムの異常検出方法の他の一例（第２検出ルーチン）を示すフローチャートである。なお、図３に示すケースと同様に、図５に示すフローチャートを具現化した制御プログラム・変数等は、ＵＳＢコントローラ１１内のコントローラＩＣ等に格納されている。また、コントローラＩＣはタイマ機能を有しているとともに、エニュメレーション処理が実行されている最中の処理時間を計測する機能をも有している。
【００６７】
図５において、まず、エニュメレーション処理が開始されたか否かが判断される（ステップＳ２１）。より具体的には、ＵＳＢコントローラ１１内のコントローラＩＣは、バスリセット（図１のステップＳ２）が正常に解除された後、アプリケーションレベルでの通信路を確立するために（上位装置２と論理的な接続状態を形成するために）、上位装置２との間で接続初期手続を開始する。
【００６８】
このとき、接続初期手続の開始とともに、コントローラＩＣ内のタイマが起動する（ステップＳ２２）。その後、コントローラＩＣによってエニュメレーション処理が完了したか否か、すなわちアプリケーションレベルでの通信路が確立したか否かが判断され（ステップＳ２３）、完了した場合には（ステップＳ２３：ＹＥＳ）、第２検出ルーチンを終了する。
【００６９】
一方で、エニュメレーション処理が完了せず（ステップＳ２３：ＮＯ）、所定の時間が経過した場合には（ステップＳ２４：ＹＥＳ）、コントローラＩＣはタイムアウト（タイムアップ）と認識し、通信破断処理を実行する（ステップＳ２５）。このように、ステップＳ２２〜ステップＳ２４に示す処理は、エニュメレーション処理が実行されている最中の処理時間を計測するステップ、その計測結果に基づいて自発的に通信破断処理を実行するステップとなる。なお、ステップＳ２５の通信破断処理については、上述したとおりである。
【００７０】
通常、この接続初期手続（エニュメレーション処理）は極短時間に進行し成立するものであるが、外的なノイズなどが加わっている場合や、ＵＳＢケーブル３のコネクトが不完全な場合には、その進行に大きな支障をきたすことが知られている。また、ホスト側（上位装置２側）のドライバ仕様により、個々のエニュメレーション処理（交渉）が正常に終わらない場合は再トライが加わったり、場合によっては最初からその交渉が実行し直されたりする場合もあるが、ある一定以上それを繰り返しても正常に終結しない場合は、いずれその動作は諦められることも知られている。そして、このような状況は、ＵＳＢデバイスやホスト自身の駆動開始時間ばかりではなく、物理的なケーブルのディスコネクトからコネクト状態、或いは外的・内的要因による復旧時にも同様な状況が起こる（すなわち、正常に接続している状態から破断状態に至る場合がある）。したがって、上述した図５に示す第２検出ルーチンによれば、このようにして破断状態に至った場合であっても、それを異常発生として検出することができる。
【００７１】
図６は、本発明の実施の形態に係るＵＳＢ通信システムの異常検出方法の他の一例（第３検出ルーチン）を示すフローチャートである。具体的には、時間に基づく異常検出と回数に基づく異常検出との二重チェックを行うためのフローチャートである。すなわち、図６のフローチャートは、図５のフローチャートを包含する関係にあり、時間に基づく異常検出（図５参照）と回数に基づく異常検出（図６参照）とを検出していて、いずれかの条件成立で通信破断処理（ステップ
Ｓ３６，Ｓ４０）が実行されることになる。
なお、図３，図５に示すケースと同様に、図６に示すフローチャートを具現化した制御プログラム・変数等は、ＵＳＢコントローラ１１内のコントローラＩＣ等に格納されている。また、コントローラＩＣはタイマ機能を有しているとともに、エニュメレーション処理が実行されている最中にバスリセットが発生した回数をカウントする機能をも有している。
【００７２】
図６において、まず、エニュメレーション処理が開始されたか否かが判断され（ステップＳ３１）、開始されない場合には（ステップＳ３１：ＮＯ）第３検出ルーチンは終了する。一方、これが開始された場合において（ステップＳ３１：ＹＥＳ）、Ｌｏｏｐカウンタ（変数）に５が入力され（ステップＳ３２）、また、例えば制限時間１０秒に設定されたタイマが起動する（ステップＳ３３）。
【００７３】
次に、ＵＳＢコントローラ１１内のコントローラＩＣによって、バスリセットが発生したか否かが判断され（ステップＳ３４）、これが発生しない場合には（ステップＳ３４：ＮＯ）、上述した第２検出ルーチン（図５参照）で説明したステップＳ２３〜ステップＳ２５と同様の処理が順次実行される（ステップＳ３８〜ステップＳ４０）。第２検出ルーチンの詳細な説明については上述のとおりであるが、ステップＳ３９において、例えば制限時間１０秒に設定されたタイマがタイムアウトになったら（ステップＳ３９：ＮＯ）、ステップＳ３４に処理が戻される。
【００７４】
一方で、エニュメレーション処理が実行されている最中にバスリセットが発生した場合には（ステップＳ３４：ＹＥＳ）、Ｌｏｏｐカウンタの値が１だけデクリメントされる（ステップＳ３５）。その後、コントローラＩＣによって、Ｌｏｏｐカウンタの値が０に等しいか否かが判断され（ステップＳ３６）、０に等しければ（ステップＳ３６：ＹＥＳ）、上述した通信破断処理が実行され（ステップＳ３７）、０に等しくなければ（ステップＳ３６：ＮＯ）、ステップＳ３４に処理が戻される。このように、ステップＳ３６に示す処理等は、エニュメレーション処理が実行されている最中にバスリセットが発生した回数をカウントするステップとなる。また、ステップＳ３７に示す処理は、バスリセットが発生した回数に基づいて、自発的に通信破断処理を実行するステップとなる。
【００７５】
図７は、本発明の実施の形態に係るＵＳＢ通信システムの異常検出方法の他の一例（第４検出ルーチン）を示すフローチャートである。なお、図３，図５，図６に示すケースと同様に、図７に示すフローチャートを具現化した制御プログラム・変数等は、ＵＳＢコントローラ１１内のコントローラＩＣ等に格納されている。また、コントローラＩＣは、ＵＳＢケーブル３における電源ラインの電圧レベル（Ｖ−ＢＵＳ）を認識する機能を有しているとともに、その認識結果に基づいて、自発的に通信破断処理を実行する機能をも有している。
【００７６】
図７において、まず、ＵＳＢコントローラ１１内のコントローラＩＣによって、Ｖ−ＢＵＳ信号がＯＮからＯＦＦ状態に遷移したか否かが判断される（ステップＳ５１）。ＯＦＦ状態に遷移していれば、通信破断処理が実行され（ステップＳ５２）、ＯＦＦ状態に遷移していなければ、第４検出ルーチンは終了する。このように、ステップＳ５１及びステップＳ５２に示す処理は、ＵＳＢケーブル３における電源ラインの電圧レベルを認識するステップ、その認識結果に基づいて、自発的に通信破断処理を実行するステップとなる。
【００７７】
［実施形態の効果］
以上説明したように、本実施形態に係るＵＳＢ通信システムの異常検出方法によれば、バスリセット状態が予め定義した時間以上経過したか（図３に示す第１検出ルーチン）、エニュメレーション処理が予め定義した時間経過しても完了しないか（図５に示す第２検出ルーチン）、エニュメレーション処理中にバスリセットが予め定義した回数発生したか（図６に示す第３検出ルーチン）、などの各検出ルーチンによって、ノイズやホスト側のコンピュータにおけるソフトウェア暴走等に起因した論理的な通信切断が生じた場合であっても、それを認識することができ、ひいては異常検出の精度を高めてシステムの安定性を高めることができる。また、ＵＳＢ通信の物理的な接続の破断が何れの箇所で発生しても、異常検出を行うことができる点においても、異常検出精度を高めることができる。
【００７８】
また、これら第１検出ルーチン，第２検出ルーチン，又は第３検出ルーチンに、Ｖ−ＢＵＳ信号がＯＮからＯＦＦへと遷移したかを判断する第４検出ルーチンを加えることで、異常検出の精度を更に高めることができる。なお、本実施形態では、第１検出ルーチン〜第３検出ルーチンを別々に説明したが、これらを組み合わせることは勿論可能である。複数の検出ルーチンを組み合わせることで、検出精度の更なる向上といった相乗効果を奏することができる。
【００７９】
また、カードリーダ１は、通信破断処理が実行された結果として、例えば挿入されたカードを利用者に自動返却することができる。これにより、ＡＴＭなどで監視員がいない場合であっても、自分のカードがカードリーダ１の内部にストックされてしまうのを防ぐことができ、ひいてはカード操作に関する利便性を高めることができる。また、通信破断処理が実行された結果として、例えば新たなカード受付を停止することができる。これにより、カードリーダ１で異常が発生しているにも拘らず新たなカードが挿入されるなど、カードリーダ１の故障に繋がりかねない事態を防ぐことができ、ひいてはカード操作に関するセキュリティ性を高めることができる。さらに、通信破断処理が実行された結果として、例えば内部に残留したカードをロックして保留することができる。これにより、内部に残留したカードが無理やり引き抜かれるなど、カードリーダ１の故障に繋がりかねない事態を防ぐことができ、ひいてはカード操作に関するセキュリティ性を高めることができる。
【００８０】
なお、上述したカードリーダ１と上位装置２とのＵＳＢ通信システムにおいて、両者のデータ転送中（取引中）に回線が破断してしまうと、上位装置２からカードリーダ１に指示を出すことは不可能であり、カードリーダ１側はそのような状況を検出し、必要に応じて（例えば顧客がカードを装置内に挿入し取引が始まっているときなど）自ら動作を起動しなくてはならない。そのため、その通信の破断を検出することは不可欠となるのである。
【産業上の利用可能性】
【００８１】
以上説明したように、本発明は、ノイズやホスト側のコンピュータにおけるソフトウェア暴走等に起因した論理的な通信切断の認識を行うことが可能なものとして有用である。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態に係るＵＳＢ通信システムのシステム構成図である。
【図２】図１に示すＵＳＢ通信システムにおけるＵＳＢ通信の流れを示すフローチャートである。
【図３】本発明の実施の形態に係るＵＳＢ通信システムの異常検出方法の一例（第１検出ルーチン）を示すフローチャートである。
【図４】図３に示す第１検出ルーチンにおいて、カードリーダがバスリセットを検出している様子を示す説明図である。
【図５】本発明の実施の形態に係るＵＳＢ通信システムの異常検出方法の他の一例（第２検出ルーチン）を示すフローチャートである。
【図６】本発明の実施の形態に係るＵＳＢ通信システムの異常検出方法の他の一例（第３検出ルーチン）を示すフローチャートである。
【図７】本発明の実施の形態に係るＵＳＢ通信システムの異常検出方法の他の一例（第４検出ルーチン）を示すフローチャートである。
【符号の説明】
【００８３】
１  カードリーダ
２  上位装置
３  ＵＳＢケーブル
１０  信号処理回路
１１  ＵＳＢコントローラ
２０  信号処理回路
２１  ＵＳＢインターフェース
【図１】
2008059409.tif 000003
【図２】
2008059409.tif 000004
【図３】
2008059409.tif 000005
【図４】
2008059409.tif 000006
【図５】
2008059409.tif 000007
【図６】
2008059409.tif 000008
【図７】
2008059409.tif 000009