(57)【要約】【課題】デバイス装置を複数のホスト装置と同時に接続することを可能にする。【解決手段】通信装置１は、被試験ホスト装置２と通信する第１デバイス機能部１１と、外部ホスト装置３と通信する第２デバイス機能部１２と、被試験デバイス装置４と通信するホスト機能部１３と、第１デバイス機能部１１が被試験ホスト装置２から受信した第１下りデータ、及び第２デバイス機能部１２が外部ホスト装置３から受信した第２下りデータを、ホスト機能部１３を介して被試験デバイス装置４に送信する通信制御部１６と、を有する。【選択図】図２
2017123117.tif 000002
【特許請求の範囲】
【請求項１】
第１ホスト装置と通信する第１デバイス機能部と、
第２ホスト装置と通信する第２デバイス機能部と、
デバイス装置と通信するホスト機能部と、
前記第１デバイス機能部が前記第１ホスト装置から受信した第１下りデータ、及び前記第２デバイス機能部が前記第２ホスト装置から受信した第２下りデータを、前記ホスト機能部を介して前記デバイス装置に送信する通信制御部と、
を有する通信装置。
【請求項２】
前記ホスト機能部は、前記デバイス装置から受信した上りデータを受信し、
前記通信制御部は、前記ホスト機能部が受信した前記上りデータのうち、第１上りデータを、前記第１デバイス機能部を介して前記第１ホスト装置に送信し、かつ第２上りデータを、前記第２デバイス機能部を介して前記第２ホスト装置に送信する、
請求項１に記載の通信装置。
【請求項３】
前記通信制御部は、前記第１デバイス機能部を介して受信した前記第１下りデータを、一以上の第１通信パイプを用いて前記デバイス装置に送信し、前記第２デバイス機能部から受信した前記第２下りデータを、一以上の第２通信パイプを用いて前記デバイス装置に送信する、
請求項１又は２に記載の通信装置。
【請求項４】
前記第１ホスト装置と前記デバイス装置との間で送受信される第１データの送受信に用いられる前記一以上の第１通信パイプの識別情報を、前記第１ホスト装置及び前記デバイス装置に関連付けて記憶し、前記第２ホスト装置と前記デバイス装置との間で送受信される第２データの送受信に用いられる前記一以上の第２通信パイプの識別情報を、前記第２ホスト装置及び前記デバイス装置に関連付けて記憶する記憶部をさらに有する、
請求項３に記載の通信装置。
【請求項５】
前記デバイス装置は、少なくとも第１アプリケーション及び第２アプリケーションを実行し、
前記記憶部は、前記第１ホスト装置及び前記第１アプリケーションに関連付けて前記一以上の第１通信パイプの識別情報を記憶し、前記第２ホスト装置及び前記第２アプリケーションに関連付けて前記一以上の第２通信パイプの識別情報を記憶する、
請求項４に記載の通信装置。
【請求項６】
前記通信制御部は、前記第１ホスト装置との通信に用いられる前記一以上の第１通信パイプの識別情報及び前記第２ホスト装置との通信に用いられる前記一以上の第２通信パイプの識別情報を、前記デバイス装置に通知する、
請求項３から５のいずれか１項に記載の通信装置。
【請求項７】
前記通信制御部は、前記第１ホスト装置と前記デバイス装置とが前記一以上の第１通信パイプで通信中に前記第２ホスト装置からの通信要求を受けたことに応じて、前記デバイス装置に対して前記一以上の第２通信パイプの識別情報を通知する、
請求項６に記載の通信装置。
【請求項８】
前記第１ホスト装置から受信した前記第１下りデータの前記デバイス装置への送信を停止させる停止指示を受け付ける受付部をさらに有し、
前記通信制御部は、前記受付部が前記停止指示を受け付けると、前記一以上の第１通信パイプを用いて前記第１ホスト装置から受信した前記第１下りデータの前記デバイス装置への送信を停止する、
請求項３から７のいずれか１項に記載の通信装置。
【請求項９】
前記通信制御部は、前記一以上の第１通信パイプを介して前記第１ホスト装置から受信した前記第１下りデータを、前記一以上の第２通信パイプを介して前記第２ホスト装置に転送する、
請求項８に記載の通信装置。
【請求項１０】
前記通信制御部は、前記一以上の第２通信パイプを介して前記第２ホスト装置から受信した前記第２下りデータを、前記一以上の第１通信パイプを介して前記デバイス装置に送信する、
請求項８又は９に記載の通信装置。
【請求項１１】
ホスト機能を有するコンピュータと、前記コンピュータと通信する通信装置と、を備える通信システムであって、
前記通信装置は、
ホスト装置と通信する第１デバイス機能部と、
前記コンピュータと通信する第２デバイス機能部と、
デバイス装置と通信するホスト機能部と、
前記第１デバイス機能部が前記ホスト装置から受信した第１下りデータ、及び前記第２デバイス機能部が前記コンピュータから受信した第２下りデータを、前記ホスト機能部を介して前記デバイス装置に送信する通信制御部と、
を有する通信システム。
【請求項１２】
第１ホスト装置、第２ホスト装置及びデバイス装置と接続される通信装置が実行する通信方法であって、
前記第１ホスト装置から第１下りデータを受信するステップと、
前記第２ホスト装置から第２下りデータを受信するステップと、
前記第１ホスト装置から受信した第１下りデータ、及び前記第２ホスト装置から受信した第２下りデータを前記デバイス装置に送信するステップと、
を有する通信方法。
【請求項１３】
第１ホスト装置、第２ホスト装置及びデバイス装置と接続される通信装置が有するコンピュータが実行するプログラムであって、
前記第１ホスト装置から第１下りデータを受信するステップと、
前記第２ホスト装置から第２下りデータを受信するステップと、
前記第１ホスト装置から受信した第１下りデータ、及び前記第２ホスト装置から受信した第２下りデータを前記デバイス装置に送信するステップと、
を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを送受信する通信装置、通信システム、通信方法及びプログラムに関する。
【背景技術】
【０００２】
電子機器間でデータを送受信するためのインターフェイスとして、ＵＳＢ（Universal Serial Bus）が普及している。ＵＳＢの規格においては、コンピュータ等のホスト装置と、プリンタやメモリ等のデバイス装置とが規定されており、ホスト装置とデバイス装置との間でデータが送受信される。近年、ＵＳＢの普及に伴い、複数のホスト装置を１台のデバイス装置に接続したいというニーズが高まっている。特許文献１においては、複数のホスト装置を接続するためのインターフェイスを有するデバイス装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２１７３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された従来のデバイス装置を用いることで、１台のデバイス装置を複数のホスト装置に接続することが実現できる。しかしながら、従来のデバイス装置においては、接続する複数のホスト装置を切り替える必要があり、デバイス装置を複数のホスト装置と同時に接続することが困難であった。
【０００５】
そこで、本発明はこの点に鑑みてなされたものであり、デバイス装置を複数のホスト装置と同時に接続することを可能にするための通信装置、通信システム、通信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様においては、第１ホスト装置と通信する第１デバイス機能部と、第２ホスト装置と通信する第２デバイス機能部と、デバイス装置と通信するホスト機能部と、前記第１デバイス機能部が前記第１ホスト装置から受信した第１下りデータ、及び前記第２デバイス機能部が前記第２ホスト装置から受信した第２下りデータを、前記ホスト機能部を介して前記デバイス装置に送信する通信制御部と、を有する通信装置を提供する。
【０００７】
前記ホスト機能部は、例えば、前記デバイス装置から受信した上りデータを受信し、前記通信制御部は、前記ホスト機能部が受信した前記上りデータのうち、第１の上りデータを、前記第１デバイス機能部を介して前記第１ホスト装置に送信し、かつ第２の上りデータを、前記第２デバイス機能部を介して前記第２ホスト装置に送信する。
【０００８】
前記通信制御部は、前記第１デバイス機能部を介して受信した前記第１下りデータを、一以上の第１通信パイプを用いて前記デバイス装置に送信し、前記第２デバイス機能部から受信した前記第２下りデータを、一以上の第２通信パイプを用いて前記デバイス装置に送信してもよい。
【０００９】
上記の通信装置は、前記第１ホスト装置と前記デバイス装置との間で送受信される第１データの送受信に用いられる前記一以上の第１通信パイプの識別情報を、前記第１ホスト装置及び前記デバイス装置に関連付けて記憶し、前記第２ホスト装置と前記デバイス装置との間で送受信される第２データの送受信に用いられる前記一以上の第２通信パイプの識別情報を、前記第２ホスト装置及び前記デバイス装置に関連付けて記憶する記憶部をさらに有してもよい。
【００１０】
前記デバイス装置は、少なくとも第１アプリケーション及び第２アプリケーションを実行し、前記記憶部は、前記第１ホスト装置及び前記第１アプリケーションに関連付けて前記一以上の第１通信パイプの識別情報を記憶し、前記第２ホスト装置及び前記第２アプリケーションに関連付けて前記一以上の第２通信パイプの識別情報を記憶してもよい。
【００１１】
前記通信制御部は、前記第１ホスト装置との通信に用いられる前記一以上の第１通信パイプの識別情報及び前記第２ホスト装置との通信に用いられる前記一以上の第２通信パイプの識別情報を、前記デバイス装置に通知してもよい。
【００１２】
前記通信制御部は、前記第１ホスト装置と前記デバイス装置とが前記一以上の第１通信パイプで通信中に前記第２ホスト装置からの通信要求を受けたことに応じて、前記デバイス装置に対して前記一以上の第２通信パイプの識別情報を通知してもよい。
【００１３】
上記の通信装置は、前記第１ホスト装置から受信した前記第１下りデータの前記デバイス装置への送信を停止させる停止指示を受け付ける受付部をさらに有し、前記通信制御部は、前記受付部が前記停止指示を受け付けると、前記一以上の第１通信パイプを用いて前記第１ホスト装置から受信した前記第１下りデータの前記デバイス装置への送信を停止してもよい。前記通信制御部は、前記一以上の第１通信パイプを介して前記第１ホスト装置から受信した前記第１下りデータを、前記一以上の第２通信パイプを介して前記第２ホスト装置に転送してもよい。
【００１４】
また、前記通信制御部は、前記一以上の第２通信パイプを介して前記第２ホスト装置から受信した前記第２下りデータを、前記一以上の第１通信パイプを介して前記デバイス装置に送信してもよい。
【００１５】
本発明の第２の態様においては、ホスト機能を有するコンピュータと、前記コンピュータと通信する通信装置と、を備える通信システムであって、前記通信装置は、ホスト装置と通信する第１デバイス機能部と、前記コンピュータと通信する第２デバイス機能部と、デバイス装置と通信するホスト機能部と、前記第１デバイス機能部が前記ホスト装置から受信した第１下りデータ、及び前記第２デバイス機能部が前記コンピュータから受信した第２下りデータを、前記ホスト機能部を介して前記デバイス装置に送信する通信制御部と、を有する通信システムを提供する。
【００１６】
本発明の第３の態様においては、第１ホスト装置、第２ホスト装置及びデバイス装置と接続される通信装置が実行する通信方法であって、前記第１ホスト装置から第１下りデータを受信するステップと、前記第２ホスト装置から第２下りデータを受信するステップと、前記第１ホスト装置から受信した第１下りデータ、及び前記第２ホスト装置から受信した第２下りデータを前記デバイス装置に送信するステップと、を有する通信方法を提供する。
【００１７】
本発明の第４の態様においては、第１ホスト装置、第２ホスト装置及びデバイス装置と接続される通信装置が有するコンピュータが実行するプログラムであって、前記第１ホスト装置から第１下りデータを受信するステップと、前記第２ホスト装置から第２下りデータを受信するステップと、前記第１ホスト装置から受信した第１下りデータ、及び前記第２ホスト装置から受信した第２下りデータを前記デバイス装置に送信するステップと、を有するプログラムを提供する。
【発明の効果】
【００１８】
本発明によれば、デバイス装置を複数のホスト装置と同時に接続することが可能になるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】第１の実施形態に係る通信システムの構成を示す図である。
【図２】通信装置の構成を示す図である。
【図３】ルーティングテーブルの一例を示す図である。
【図４】アプリケーションと通信パイプとの関係を示す模式図である。
【図５】割り込み動作について説明するための模式図である。
【図６】割り込み動作が発生する場合のシーケンス図である。
【図７】データ吸収・転送モードの動作について説明するための模式図である。
【図８】データ吸収・転送モードにおけるシーケンス図である。
【図９】データ挿入モードについて説明するための模式図である。
【図１０】データ挿入モードにおけるシーケンス図である。
【発明を実施するための形態】
【００２０】
＜第１の実施形態＞
［通信システムＳの概要］
図１は、第１の実施形態に係る通信システムＳの構成を示す図である。通信システムＳは、通信装置１と、被試験ホスト装置２と、外部ホスト装置３と、被試験デバイス装置４と、上位制御装置５とを有する。被試験ホスト装置２及び外部ホスト装置３は、ＵＳＢのホスト装置であり、被試験デバイス装置４は、ＵＳＢのデバイス装置である。ホスト装置は、デバイス装置との間でデータ通信を行う際にデバイス装置を制御する。デバイス装置は、ホスト装置からの制御に基づいて、ホスト装置との間でデータ通信を行う。
【００２１】
本実施形態においては、被試験ホスト装置２、外部ホスト装置３及び被試験デバイス装置４がＵＳＢインターフェイスを有する装置である場合について説明するが、被試験ホスト装置２、外部ホスト装置３及び被試験デバイス装置４は、ＵＳＢインターフェイスを有する装置に限らない。被試験ホスト装置２及び外部ホスト装置３が、データ通信時に被試験デバイス装置４を制御する機能を有し、被試験デバイス装置４が、被試験ホスト装置２又は外部ホスト装置３の制御に基づいてデータ通信を行う機能を有する限りにおいて、被試験ホスト装置２、外部ホスト装置３及び被試験デバイス装置４は、ＵＳＢインターフェイス以外の他のインターフェイスを介してデータ通信を行う装置であってもよい。
【００２２】
通信装置１は、被試験ホスト装置２及び外部ホスト装置３、並びに被試験デバイス装置４と接続されている。通信装置１は、被試験デバイス装置４を被試験ホスト装置２及び外部ホスト装置３と同時に接続して、被試験デバイス装置４と被試験ホスト装置２との間でデータ通信を行っている間に、被試験デバイス装置４と外部ホスト装置３との間でデータ通信を行うことができるようにする。通信装置１は、ＵＳＢホスト側のインターフェイス機能及びＵＳＢデバイス側のインターフェイス機能をエミュレーションするので、ＵＳＢエミュレータとも称される。通信装置１の詳細については後述する。
【００２３】
被試験ホスト装置２は、ＵＳＢホスト装置側のインターフェイスを有しており、ＵＳＢデバイス装置側のインターフェイスを有する被試験デバイス装置４との間でデータを送受信することができる。被試験ホスト装置２又は被試験デバイス装置４の調査や試験を行う必要がある場合に、図１に示すように、被試験ホスト装置２と被試験デバイス装置４との間に通信装置１が接続され、被試験ホスト装置２及び被試験デバイス装置４は、通信装置１を介してデータを送受信する。被試験ホスト装置２は、電力スマートメータ、自動販売機、車輛運行管理装置（デジタルタコメータ）、遠隔監視制御装置、監視カメラ又は非常通報装置等であり、被試験ホスト装置２が出力可能なデータを、被試験デバイス装置４及び携帯電話網を介して、データ収集センター等に設けられたサーバ等の外部装置に送信する。
【００２４】
外部ホスト装置３は、被試験ホスト装置２と同様にＵＳＢホスト装置側のインターフェイスを有しており、通信装置１を介して被試験デバイス装置４との間でデータを送受信することができる。外部ホスト装置３は、例えば、被試験ホスト装置２と被試験デバイス装置４との間のデータ通信状況が正常であるかどうかを確認するために用いられる装置であり、被試験ホスト装置２及び被試験デバイス装置４の内部ログデータを取得することができる。
【００２５】
被試験デバイス装置４は、ＵＳＢデバイス装置側のインターフェイスを有している。被試験デバイス装置４は、例えば、被試験ホスト装置２から受信したデータを携帯電話網に送信し、携帯電話網を介して受信したデータを被試験ホスト装置２に送信するための通信モジュールである。被試験デバイス装置４は、少なくとも、被試験ホスト装置２と通信する際に実行される第１アプリケーション、及び外部ホスト装置３と通信する際に実行される第２アプリケーションを実行することができる。
【００２６】
上位制御装置５は、例えばコンピュータであり、通信装置１を制御したり、通信装置１を介して受信したデータを表示したりする。上位制御装置５と通信装置１との間の接続インターフェイスは任意である。例えば、上位制御装置５は、シリアル通信インターフェイスを介して通信装置１との間で通信をすることができる。
【００２７】
［通信装置１の構成］
図２は、通信装置１の構成を示す図である。通信装置１は、第１デバイス機能部１１と、第２デバイス機能部１２と、ホスト機能部１３と、受付部１４と、記憶部１５と、通信制御部１６と、を有する。
第１デバイス機能部１１は、被試験ホスト装置２との間で通信するためのＵＳＢデバイス機能を有する。第２デバイス機能部１２は、外部ホスト装置３との間で通信するためのＵＳＢデバイス機能を有する。第１デバイス機能部１１と第２デバイス機能部１２とは、同等の機能を有しており、第１デバイス機能部１１に外部ホスト装置３が接続され、第２デバイス機能部１２に被試験ホスト装置２が接続されてもよい。ホスト機能部１３は、被試験デバイス装置４との間で通信するためのＵＳＢホスト機能を有する。
【００２８】
受付部１４は、上位制御装置５が出力する通信装置１を制御するための制御信号を受信する。受付部１４は、受信した制御信号を通信制御部１６に通知する。
【００２９】
記憶部１５は、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等の記憶媒体を有している。記憶部１５は、通信制御部１６により実行されるプログラム、及び通信制御部１６が動作する際に用いるデータを記憶している。記憶部１５は、例えば、被試験ホスト装置２と被試験デバイス装置４との間で送受信される第１データの送受信に用いられる一以上の第１通信パイプの識別情報を、被試験ホスト装置２及び被試験デバイス装置４に関連付けてルーティングテーブルとして記憶している。また、記憶部１５は、外部ホスト装置３と被試験デバイス装置４との間で送受信される第２データの送受信に用いられる一以上の第２通信パイプの識別情報を、外部ホスト装置３及び被試験デバイス装置４に関連付けて、ルーティングテーブルとして記憶している。
【００３０】
ここで、通信パイプとは、ＵＳＢインターフェイスを介した物理的な接続の中に構成される論理的な接続を言う。被試験ホスト装置２と被試験デバイス装置４とが通信する際には、第１通信パイプが使用され、外部ホスト装置３と被試験デバイス装置４とが通信する際には、第２通信パイプが使用される。被試験ホスト装置２と被試験デバイス装置４、又は外部ホスト装置３と被試験デバイス装置４との間で複数のアプリケーションがデータを送受信する場合、アプリケーションごとに通信パイプが割り当てられる。
【００３１】
図３は、記憶部１５に記憶されているルーティングテーブルの一例を示す図である。ルーティングテーブルにおいては、ホスト装置ＩＤと、ホスト装置アプリＩＤと、デバイス装置ＩＤと、デバイス装置アプリＩＤと、通信パイプＩＤとが関連付けられている。
【００３２】
ホスト装置ＩＤは、被試験ホスト装置２及び外部ホスト装置３のそれぞれを識別するための識別情報である。図３においては、被試験ホスト装置２のホスト装置ＩＤが「１」、外部ホスト装置３のホスト装置ＩＤが「２」とされている。
ホスト装置アプリＩＤは、被試験ホスト装置２及び外部ホスト装置３で実行される、被試験デバイス装置４が実行するアプリケーションとの間でデータを送受信するアプリケーションを特定するための識別情報である。被試験ホスト装置２及び外部ホスト装置３は、それぞれ複数のアプリケーションを同時に実行することができる。
【００３３】
デバイス装置ＩＤは、被試験デバイス装置４を識別するための識別情報である。本実施形態においては、通信装置１に接続されているデバイス装置が被試験デバイス装置４だけなので、図３においてはデバイス装置ＩＤが「１」のみとなっているが、通信装置１が複数のデバイス装置と接続される場合は、ルーティングテーブルに「１」以外のデバイス装置ＩＤが含まれることになる。
【００３４】
デバイス装置アプリＩＤは、被試験デバイス装置４で実行される、被試験ホスト装置２が実行するアプリケーション及び外部ホスト装置３が実行するアプリケーションとの間でデータを送受信するアプリケーションを特定するための識別情報である。被試験デバイス装置４は、複数のアプリケーションを同時に実行することができる。図３に示す例においては、ホスト装置アプリＩＤが「１ｈ」、「２ｈ」、「３ｈ」のそれぞれのアプリケーションと通信する被試験デバイス装置４のアプリケーションのデバイス装置アプリＩＤが、それぞれ「１ｄ」、「２ｄ」、「３ｄ」となっている。
【００３５】
通信パイプＩＤは、被試験ホスト装置２と被試験デバイス装置４、及び外部ホスト装置３と被試験デバイス装置４の間でデータを送受信する際に用いられる通信パイプを識別するための識別情報である。図３に示す例においては、ホスト装置アプリＩＤが「１ｈ」、「２ｈ」、「３ｈ」のアプリケーションは、通信パイプＩＤが「１」、「２」、「３」の通信パイプを用いて、デバイス装置アプリＩＤが「１ｄ」、「２ｄ」、「３ｄ」のアプリケーションとの間でデータを送受信することがわかる。
このように、記憶部１５は、被試験ホスト装置２及び第１アプリケーションに関連付けて一以上の第１通信パイプの識別情報を記憶し、外部ホスト装置３及び第２アプリケーションに関連付けて一以上の第２通信パイプの識別情報を記憶している。
【００３６】
図４は、アプリケーションと通信パイプとの関係を示す模式図である。図４に示す例において、被試験ホスト装置２が実行する第１アプリケーション（アプリ＃１ｈ）と被試験デバイス装置４が実行する第１アプリケーション（アプリ＃１ｄ）とは、通信パイプ＃１を用いてデータを送受信する。同様に、外部ホスト装置３が実行する第２アプリケーション（アプリ＃２ｈ）と被試験デバイス装置４が実行する第２アプリケーション（アプリ＃２ｄ）とは、通信パイプ＃２を用いてデータを送受信する。
【００３７】
通信制御部１６は、図４に示す状態を確立する前に、被試験ホスト装置２との通信に用いられる一以上の通信パイプ＃１の識別情報及び外部ホスト装置３との通信に用いられる一以上の通信パイプ＃２の識別情報を、被試験デバイス装置４に通知する。被試験デバイス装置４は、通知された通信パイプを用いて、被試験ホスト装置２及び外部ホスト装置３のそれぞれとの間でデータを送受信することができる。
【００３８】
図２に戻って、通信制御部１６について説明する。通信制御部１６は、記憶部１５に記憶されているルーティングテーブルを参照して、被試験ホスト装置２及び外部ホスト装置３と被試験デバイス装置４との間の接続状態を制御する。まず、通信制御部１６は、被試験デバイス装置４と被試験ホスト装置２との通信を開始する際に、被試験デバイス装置４と被試験ホスト装置２との通信に用いられる一以上の第１通信パイプの識別情報を被試験デバイス装置４及び被試験ホスト装置２と取り交わす。また、通信制御部１６は、被試験デバイス装置４と外部ホスト装置３との通信を開始する際に、被試験デバイス装置４と外部ホスト装置３との通信に用いられる一以上の第２通信パイプの識別情報を被試験デバイス装置４及び外部ホスト装置３と取り交わす。
【００３９】
通信制御部１６は、被試験デバイス装置４と被試験ホスト装置２との通信が開始され、被試験デバイス装置４と外部ホスト装置３との通信が開始されると、第１デバイス機能部１１が被試験ホスト装置２から受信した第１下りデータ、及び第２デバイス機能部１２が外部ホスト装置３から受信した第２下りデータを、ホスト機能部１３を介して被試験デバイス装置４に送信する。
【００４０】
この際、通信制御部１６は、第１デバイス機能部１１を介して受信した第１下りデータを、一以上の第１通信パイプを用いて被試験デバイス装置４に送信し、第２デバイス機能部１２から受信した第２下りデータを、一以上の第２通信パイプを用いて被試験デバイス装置４に送信する。また、通信制御部１６は、ホスト機能部１３が受信した上りデータのうち、第１上りデータを、第１デバイス機能部１１を介して被試験ホスト装置２に送信し、かつ第２上りデータを、第２デバイス機能部１２を介して外部ホスト装置３に送信する。
以下、通信装置１の各種動作について説明する。
【００４１】
［割り込み制御］
図５は、被試験ホスト装置２と被試験デバイス装置４とが通信中に、外部ホスト装置３が被試験デバイス装置４との通信を開始する際の割り込み動作について説明するための模式図である。図６は、割り込み動作が発生する場合のシーケンス図である。図５（ａ）は、被試験ホスト装置２と被試験デバイス装置４とが２本の通信パイプ＃１、＃２を用いて通信をしている状態を示している。この状態で、外部ホスト装置３が通信装置１に接続されると、通信制御部１６は、ルーティングテーブルを参照して、３本目の通信パイプ＃３を用いて被試験デバイス装置４との通信を開始する。
【００４２】
具体的には、通信制御部１６は、被試験ホスト装置２と被試験デバイス装置４とが一以上の第１通信パイプ（通信パイプ＃１、＃２）で通信中に外部ホスト装置３からの通信要求を受けたことに応じて、被試験デバイス装置４に対して一以上の第２通信パイプ（通信パイプ＃３）の識別情報を通知することにより、外部ホスト装置３と被試験デバイス装置４との間の通信パイプを使用する。
【００４３】
図６を参照すると、まず、被試験ホスト装置２が被試験デバイス装置４と通信を開始する場合、被試験ホスト装置２は、通信装置１との間で通信パイプを使用するためのエニュメレーションを開始する。エニュメレーションとは、ＵＳＢホスト装置及びＵＳＢデバイス装置が、お互いを認識するための処理である。ＵＳＢホスト装置である被試験ホスト装置２は、ＵＳＢデバイス装置としての通信装置１が接続されたことを検出すると、通信装置１の属性を示すディスクリプタを取得するためのリクエストメッセージを通信装置１に送信する。通信装置１は、リクエストメッセージを受信したことに応じて、通信装置１の属性を被試験ホスト装置２に通知する。このようにして、被試験ホスト装置２と通信装置１との間のエニュメレーションが完了する。
【００４４】
続いて、通信制御部１６は、被試験ホスト装置２との間のエニュメレーションが完了すると、ルーティングテーブルを参照する。通信制御部１６は、被試験ホスト装置２と被試験デバイス装置４とを接続する必要があることを認識し、被試験デバイス装置４との間の通信パイプを使用するためのエニュメレーションを開始する。通信装置１は、エニュメレーションにおいて、ルーティングテーブルを参照して選択した通信パイプを使用可とする。ルーティングテーブルによれば、被試験ホスト装置２と被試験デバイス装置４との間では、２つのアプリケーションを用いた通信が行われるので、通信装置１は、２つの通信パイプを使用可とする。
【００４５】
通信装置１は、上記手順により、被試験ホスト装置２との間で通信パイプ＃１を使用可とする。次に、通信装置１は、被試験デバイス装置４との間で通信パイプ＃１'を使用可とする。通信パイプ＃１'は、通信装置１と被試験ホスト装置２との間で通信パイプ＃１が使用される場合に通信装置１と被試験デバイス装置４との間の通信に用いられる通信パイプである。続いて、通信装置１は、被試験ホスト装置２との間で通信パイプ＃２を使用可とし、被試験デバイス装置４との間で通信パイプ＃２'を使用可とする。
【００４６】
続いて、外部ホスト装置３が通信装置１に接続されると、外部ホスト装置３は、通信装置１との間で通信パイプを使用可能にするためのエニュメレーションを開始する。エニュメレーションが完了すると、通信装置１は、被試験デバイス装置４との間でエニュメレーションを行い、外部ホスト装置３との間で通信パイプ＃３を使用可とし、被試験デバイス装置４との間で通信パイプ＃３'を使用可とする。
以上の手順により、被試験ホスト装置２と被試験デバイス装置４との間での、通信パイプ＃１を用いた第１のデータ通信、及び通信パイプ＃２を用いた第２のデータ通信、並びに外部ホスト装置３と被試験デバイス装置４との間での、通信パイプ＃３を用いるアプリケーションによる第３のデータ通信を開始することができる。
【００４７】
［データ吸収・転送］
続いて、通信装置１が、被試験ホスト装置２から受信したデータを吸収し、被試験デバイス装置４に届けることなく外部ホスト装置３に転送する処理が行われるデータ吸収・転送モードについて説明する。データ吸収・転送モードは、通信装置１が、ユーザにより指定された通信パイプの指定方向のペイロードデータを吸収・転送するモードであり、例えば、被試験ホスト装置２と被試験デバイス装置４との間で生じた問題の原因を調査するために用いられる。ユーザは、通信装置１のデータ吸収・転送モードを用いることで、例えば、アプリケーションが送信するコマンドを一時的に止めた状態での動作を観察することが可能になる。
【００４８】
通信装置１は、例えば、受付部１４が、データ吸収・転送モードに設定する指示、すなわち、被試験ホスト装置２から受信した第１下りデータの被試験デバイス装置４への送信を停止させる停止指示を受け付けると、データ吸収・転送モードを起動する。通信制御部１６は、受付部１４が上記の停止指示を受け付けると、一以上の第１通信パイプを用いて被試験ホスト装置２から受信した第１下りデータの被試験デバイス装置４への送信を停止する。そして、通信制御部１６は、被試験ホスト装置２から受信した第１下りデータを、一以上の第２通信パイプを介して３に転送する。
【００４９】
図７は、データ吸収・転送モードの動作について説明するための模式図である。通信装置１は、第１デバイス機能部１１が被試験ホスト装置２から被試験デバイス装置４に送信されたデータを受信すると、受信したデータを被試験デバイス装置４に送信することなく、第１デバイス機能部１１から第２デバイス機能部１２に折り返す。そして、通信装置１は、第２デバイス機能部１２を介して、被試験ホスト装置２から受信したデータを外部ホスト装置３に送信する。外部ホスト装置３において、通信装置１から受信したデータを表示することで、ユーザは、被試験ホスト装置２が被試験デバイス装置４に対して送信しているデータの内容を確認することができる。この間、通信装置１が被試験デバイス装置４から受信したデータは、通常通りに被試験ホスト装置２に送信される。
【００５０】
図８は、データ吸収・転送モードにおけるシーケンス図である。データ吸収・転送モードが起動されていない状態、すなわちインアクティベート状態において、被試験ホスト装置２が通信装置１を介して被試験デバイス装置４にデータを送信すると、被試験デバイス装置４は、データを受信したことを示すＡＣＫメッセージを通信装置１に送信する。通信装置１は、被試験デバイス装置４からＡＣＫメッセージを受信すると、被試験ホスト装置２にＡＣＫメッセージを送信する。これにより、被試験ホスト装置２は、送信したデータが被試験デバイス装置４に届いたことを認識し、次のデータを送信する。
なお、通信装置１は、被試験ホスト装置２からデータを受信したら直ちにＡＣＫメッセージ（図８における破線矢印）を返送し、引き続いて被試験デバイス装置４に受信したデータを送信する手順を実行してもよい。
【００５１】
これに対して、データ吸収・転送モードが起動された状態、すなわちアクティベート状態において、被試験ホスト装置２が被試験デバイス装置４に対して送信したデータが通信装置１に届くと、通信装置１は、受信したデータを被試験デバイス装置４に送信することなく、被試験ホスト装置２に対してＡＣＫメッセージを送信し、受信したデータを外部ホスト装置３に転送する。これにより、被試験ホスト装置２は、送信したデータが被試験デバイス装置４に届いたと認識し、次のデータを送信する。通信装置１があたかも被試験デバイス装置４であるかのように振る舞いつつ、被試験ホスト装置２から受信したデータを外部ホスト装置３に転送することで、ユーザは、被試験ホスト装置２と被試験デバイス装置４との間の通信に不具合が生じた場合に、被試験ホスト装置２が送信するデータに問題がないかどうかを確認することができる。
【００５２】
なお、以上の説明においては、通信装置１が、被試験ホスト装置２から受信したデータを外部ホスト装置３に転送する場合について説明したが、通信装置１は、被試験デバイス装置４から受信したデータを外部ホスト装置３に転送してもよい。この場合、通信装置１は、被試験デバイス装置４からデータを受信したことに応じて、被試験デバイス装置４に対してＡＣＫメッセージを送信する。また、通信装置１は、通信装置１が受信したデータを被試験ホスト装置２に転送することなく、単にデータ吸収・破棄のみを行ってもよい。
【００５３】
このように、通信装置１が、被試験ホスト装置２から受信したデータを外部ホスト装置３に転送するか、被試験デバイス装置４から受信したデータを外部ホスト装置３に転送するかを切り替えることができる場合、通信装置１は、外部ホスト装置３に対して、アプリケーション及び使用する通信パイプを切り替えるように指示する。外部ホスト装置３は、切り替えの指示を受けたことに応じて、使用するアプリケーションに対応する通信パイプを使用する。
【００５４】
［データ挿入］
続いて、被試験ホスト装置２が被試験デバイス装置４に送信したデータの代わりに、外部ホスト装置３が送信したデータを被試験デバイス装置４に送信するデータ挿入モードについて説明する。データ挿入モードは、ユーザにより指定された通信パイプの指定方向に、指定されたペイロードデータを含むデータパケットを送信するモードである。ユーザは、データ挿入モードと上記のデータ吸収・転送モードとを同時に使用することができる。データ挿入モードにおいて、通信制御部１６は、一以上の第２通信パイプを介して外部ホスト装置３から受信した第２下りデータを、一以上の第１通信パイプを介して被試験デバイス装置４に送信する。通信制御部１６は、一以上の第１通信パイプを介して被試験デバイス装置４から受信した上りデータを、一以上の第２通信パイプを介して外部ホスト装置３に送信してもよい。
【００５５】
図９は、データ挿入モードについて説明するための模式図である。通信装置１は、被試験ホスト装置２から被試験デバイス装置４に送信されたデータを受信すると、被試験ホスト装置２から送信されたデータを被試験デバイス装置４に送信することなく、通信パイプ＃１を介して外部ホスト装置３から送信されたデータを被試験デバイス装置４に送信する。また、通信装置１は、被試験デバイス装置４から被試験ホスト装置２に送信されたデータを被試験ホスト装置２に送信することなく、被試験デバイス装置４から送信されたデータを外部ホスト装置３に送信する。なお、外部ホスト装置３からのデータ送信は、被試験ホスト装置２からのデータ送信に関係なく行われてもよい。
【００５６】
この際、外部ホスト装置３が、被試験ホスト装置２と同等の手順でデータ通信を行うことで、被試験デバイス装置４は、被試験ホスト装置２とデータを送受信している状態ではないにもかかわらず、被試験ホスト装置２との間でデータを送受信する時と同じ手順で、外部ホスト装置３との間でデータ通信を行うことができる。なお、通信装置１は、被試験デバイス装置４から受信したデータを、外部ホスト装置３の代わりに上位制御装置５に対して送信し、上位制御装置５から送信されたデータを被試験デバイス装置４に送信してもよい。
【００５７】
図１０は、データ挿入モードにおけるシーケンス図である。データ挿入モードがインアクティブ状態である間、通信装置１は、被試験ホスト装置２から送信されたデータを被試験デバイス装置４に転送し、被試験デバイス装置４から送信されたＡＣＫメッセージを被試験ホスト装置２に転送する。
なお、通信装置１は、被試験ホスト装置２からデータを受信したら直ちにＡＣＫメッセージ（図１０における破線矢印）を返送し、引き続いて被試験デバイス装置４に受信したデータを送信する手順を実行してもよい。
【００５８】
これに対して、データ挿入モードがアクティブ状態になると、通信装置１は、被試験ホスト装置２から受信したデータを被試験デバイス装置４に転送せず、外部ホスト装置３から受信したデータを被試験デバイス装置４に送信する。そして、通信装置１は、被試験デバイス装置４から受信したデータを被試験ホスト装置２に転送せず、受信したデータを外部ホスト装置３に転送する。外部ホスト装置３は、受信したデータを表示する。このようにすることで、ユーザは、被試験デバイス装置４が送信したデータに問題がないかどうかを確認することができる。
【００５９】
［本実施形態における効果］
以上説明したように、本実施形態に係る通信装置１においては、第１デバイス機能部１１が被試験ホスト装置２から受信した第１下りデータ、及び第２デバイス機能部１２が外部ホスト装置３から受信した第２下りデータを、ホスト機能部１３を介して被試験デバイス装置４に送信する。このようにすることで、デバイス装置である被試験デバイス装置４を、複数のホスト装置である被試験ホスト装置２及び外部ホスト装置３と同時に接続することが可能になる。
【００６０】
また、通信制御部１６は、被試験ホスト装置２と被試験デバイス装置４とが通信中に外部ホスト装置３からの通信要求を受けたことに応じて、被試験デバイス装置４に対して、被試験デバイス装置４との通信に使用する通信パイプの識別情報を通知する。このようにすることで、ユーザは、被試験ホスト装置２と被試験デバイス装置４との通信状態に問題が発生した時点で外部ホスト装置３を接続して、被試験ホスト装置２と被試験デバイス装置４との間の通信状態を監視することが可能になる。
【００６１】
また、通信制御部１６は、被試験ホスト装置２から受信したデータの被試験デバイス装置４への送信を停止させる停止指示の入力を受けたことに応じて、被試験ホスト装置２から受信したデータの被試験デバイス装置４への送信を停止する。そして、通信制御部１６は、被試験ホスト装置２から受信したデータを外部ホスト装置３に転送する。このようにすることで、ユーザは、外部ホスト装置３において、被試験ホスト装置２から受信したデータの内容を観察し、被試験ホスト装置２と被試験デバイス装置４との間で生じた問題の原因を解析することができる。
【００６２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者には明らかである。特に、装置の分散・統合の具体的な実施形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００６３】
例えば、上記においては、通信装置１が２台のＵＳＢホスト装置と接続され、１台のＵＳＢデバイス装置と接続される構成について説明したが、通信装置１に接続可能なＵＳＢホスト装置及びＵＳＢデバイス装置の数は、これに限らない。通信装置１は、３台以上のＵＳＢホスト装置と接続され、２台以上のＵＳＢデバイス装置と接続される構成であってもよい。
【００６４】
また、上記の説明においては、主に、通信装置１が１本の通信パイプに対してデータ吸収・転送、データ挿入等のデータ処理を行う例について説明したが、通信装置１は、複数の通信パイプに対してデータ吸収・転送、データ挿入等のデータ処理を行ってもよい。また、データ吸収・破棄におけるデータ転送や、データ挿入におけるデータ送信においては、複数の通信パイプに同じデータを送信することも可能である。
【符号の説明】
【００６５】
１  通信装置
２  被試験ホスト装置
３  外部ホスト装置
４  被試験デバイス装置
５  上位制御装置
１１  第１デバイス機能部
１２  第２デバイス機能部
１３  ホスト機能部
１４  受付部
１５  記憶部
１６  通信制御部
Ｓ  通信システム
【図１】
2017123117.tif 000003
【図２】
2017123117.tif 000004
【図３】
2017123117.tif 000005
【図４】
2017123117.tif 000006
【図５】
2017123117.tif 000007
【図６】
2017123117.tif 000008
【図７】
2017123117.tif 000009
【図８】
2017123117.tif 000010
【図９】
2017123117.tif 000011
【図１０】
2017123117.tif 000012