(57)【特許請求の範囲】
【請求項１】
ターゲットデバイスと、外部デバイスとを含み、当該ターゲットデバイス及び外部デバイスがともにユニバーサル・シリアル・バス（ＵＳＢ）トランシーバを有し、このＵＳＢトランシーバを介して相互に通信可能に接続されたデバイスシステムであって、
前記ターゲットデバイスは、
前記ＵＳＢトランシーバを介して送受信するデータを保持する記憶部と、
ＵＳＢのレセプタクルと独立に設けられ、外部への電源供給を行う電源供給端子と、
前記レセプタクルを介した電源供給を検知した場合に、当該電源供給を行った機器を認証し、その結果当該電源供給を行った機器が前記外部デバイスの場合、前記電源供給端子を介した電源供給を継続し、当該電源供給を行った機器が前記外部デバイスでない場合、前記電源供給端子を介した電源供給を停止する手段と、
前記記憶部に保持するデータの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続された外部デバイスに対して送信する手段と、
を有し、
前記外部デバイスは、
前記電源供給端子を介した前記ターゲットデバイスからの電源供給によって動作し、
前記電源供給端子を介して前記ターゲットデバイスから供給された電源を用いて、前記レセプタクルを介して前記ターゲットデバイスに電源を供給する手段と、
データの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続されたターゲットデバイスから受信して、当該フロー制御信号に従って、前記ターゲットデバイスとの間のデータの送受信を制御する手段と、
を有することを特徴とするデバイスシステム。
【請求項２】
ユニバーサル・シリアル・バス（ＵＳＢ）トランシーバと、
前記ＵＳＢトランシーバを介して送受信するデータを保持する記憶部と、
ＵＳＢのレセプタクルと独立に設けられ、外部への電源供給を行う電源供給端子と、
前記レセプタクルを介した電源供給を検知した場合に、当該電源供給を行った機器を認証し、その結果当該電源供給を行った機器が前記外部デバイスの場合、前記電源供給端子を介した電源供給を継続し、当該電源供給を行った機器が前記外部デバイスでない場合、前記電源供給端子を介した電源供給を停止する手段と、
前記記憶部に保持するデータの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続された外部デバイスに対して送信する手段と、
を有することを特徴とするターゲットデバイス。
【請求項３】
請求項２に記載のターゲットデバイスであって、
前記ＵＳＢトランシーバの制御を実行するバス・ドライバ・プログラムモジュールと、
前記ＵＳＢトランシーバを介して接続され得る各種の外部デバイスに共通の処理を規定する共通処理プログラムモジュールと、
前記共通処理モジュールまたは前記バスドライバモジュールの少なくとも一方との通信、及び前記ＵＳＢトランシーバを介して接続される外部デバイスに固有の処理を規定する固有処理プログラムモジュールと、
によって規定される処理を実行する制御部、を備えてなることを特徴とするターゲットデバイス。
【請求項４】
請求項３に記載のターゲットデバイスであって、
前記バス・ドライバ・プログラムモジュールは、アプリケーションプログラムから前記外部デバイスに対するデータ送出の要求を受け入れた場合に、当該要求を複数の前記固有処理プログラムモジュールのそれぞれに出力し、当該出力に対して応答した前記固有処理プログラムモジュールの指示にしたがって、当該応答した固有処理プログラムモジュールに対応する出力先に要求されたデータを送出する処理を規定し、
前記固有処理プログラムモジュールは、前記バス・ドライバ・プログラムモジュールが出力する要求に対して応答可能な場合に、当該要求されたデータを前記外部デバイスに送出する指示を行う処理を規定する
ことを特徴とするターゲットデバイス。
【請求項５】
請求項２から４のいずれか一項に記載のターゲットデバイスにおいて、
前記ＵＳＢトランシーバを介して接続される外部デバイスに対し、ＵＳＢ規格に規定された通信を開始する前に、ＵＳＢ規格に規定されない認証に係る規格外認証情報の送受信を行ない、当該規格外認証情報に基づく所定の認証処理を実行することを特徴とするターゲットデバイス。
【請求項６】
請求項２から５のいずれか一項に記載のターゲットデバイスであって、
前記フロー制御信号は、データの送受信の開始及び停止を指示する信号であることを特徴とするターゲットデバイス。
【請求項７】
ユニバーサル・シリアル・バス（ＵＳＢ）トランシーバを備え、
前記ＵＳＢトランシーバを介してターゲットデバイスと接続された場合に、当該ターゲットデバイスにＵＳＢのレセプタクルと独立に設けられた電源供給端子を介した当該ターゲットデバイスからの電源供給によって動作し、
前記電源供給端子を介して前記ターゲットデバイスから供給された電源を用いて、前記レセプタクルを介して前記ターゲットデバイスに電源を供給するとともに、前記ターゲットデバイスが前記電源供給端子を介した電源供給を継続するか停止するか判断するために用いられる認証情報を、前記ターゲットデバイスに送信する手段と、
データの送受信に関するフロー制御信号を、前記ターゲットデバイスから受信して、当該フロー制御信号に従って、前記ターゲットデバイスとの間のデータの送受信を制御する手段と、
を有することを特徴とする外部デバイス。
【請求項８】
ターゲットデバイスと、外部デバイスとを含み、当該ターゲットデバイス及び外部デバイスがともにユニバーサル・シリアル・バス（ＵＳＢ）トランシーバを有し、このＵＳＢトランシーバを介して相互に通信可能に接続されたデバイスシステムの制御方法であって、
前記ターゲットデバイスが、ＵＳＢのレセプタクルと独立に設けられた電源供給端子を介して外部への電源供給を行うステップと、
前記外部デバイスが、前記電源供給端子を介した前記ターゲットデバイスからの電源供給によって動作するとともに、当該供給された電源を用いて、前記レセプタクルを介して前記ターゲットデバイスに電源を供給するステップと、
前記ターゲットデバイスが、前記レセプタクルを介した電源供給を検知した場合に、当該電源供給を行った機器を認証し、その結果当該電源供給を行った機器が前記外部デバイスの場合、前記電源供給端子を介した電源供給を継続し、当該電源供給を行った機器が前記外部デバイスでない場合、前記電源供給端子を介した電源供給を停止するステップと、
前記ターゲットデバイスが前記ＵＳＢトランシーバを介して送受信するデータを保持し、当該保持するデータの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続された外部デバイスに対して送信するステップと、
前記外部デバイスが、データの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続されたターゲットデバイスから受信して、当該フロー制御信号に従って、前記ターゲットデバイスとの間のデータの送受信を制御するステップと、
を含むことを特徴とするデバイスシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ規格に準じたシリアル通信システムに関する。
【背景技術】
【０００２】
シリアルデータ転送のための規格として、ＵＳＢ（Universal Serial Bus）が広く用いられるようになっている。このＵＳＢ規格においては、ホストとターゲットとが非対称に通信を行うこととなっている。すなわち、ＵＳＢにおいてホストとなる機器が、ターゲットに対して転送するべきデータがあるか否かを問い合わせ、ターゲット側に転送するべきデータがあるときに、ホストが指示してターゲットに当該データを送信させる、というように、ホスト側が主導的に動作してデータの転送を行うこととなっている。
【０００３】
また、ホスト同士や、ターゲット同士を誤って接続してしまうことを防止する等の観点から、ホストとなるべき機器と、ターゲットとなるべき機器とにおいて、それぞれ異なる形状のレセプタクルと、コネクタが規定されている。すなわちホスト側においては、シリーズＡと呼ばれるタイプのレセプタクルが設けられ、ターゲット側では、シリーズＢと呼ばれるタイプのレセプタクルが設けられることとなっている。
【０００４】
さらに電源の供給は、ホスト側からターゲット側への順路で行うことは規格上可能であるが、その逆にターゲット側からホスト側への順路での電源供給は規格上禁じられている。
【非特許文献１】Universal Serial BusSpecification, Compaq Computer Corporation, Hewlett-Packard Company, IntelCorporation, Lucent Technologies Inc, Microsoft Corporation, NEC Corporation,and Koninklijke Philips Electronics N.V. ,2000
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、携帯用の電子機器、例えば携帯型のゲーム装置等は、パーソナルコンピュータ等の他の電子機器をホストとして通信をしたい場合もあれば、外部マイクなどのアクセサリ機器を接続して、これらのアクセサリ機器をターゲットとして通信したい場合もある。この場合、規格上はシリーズＡと、シリーズＢとの両方のレセプタクルを設ければよいが、小型化の要請などからいわゆるミニＢタイプのコネクタを設けるのが望ましいのが現状である。
【０００６】
従って、携帯型のゲーム装置は、ターゲットとして機能することとなり、アクセサリ機器との間の通信をＵＳＢの規格で行うとすれば、アクセサリ機器がホストとして動作するほかはなく、また、アクセサリ側へ電源を供給することもできないため、アクセサリ側に電源を搭載することとなってしまう。
【０００７】
本発明は上記実情に鑑みて為されたもので、小型化が要請され、シリーズＢに対応する端子を備えたターゲットデバイスであって、アクセサリ機器との通信をＵＳＢのコネクタを介して可能とするターゲットデバイスを提供することを、その目的の一つとする。
【０００８】
また、本発明の別の目的の一つは、かかるターゲットデバイスに接続される外部デバイスであって、ターゲットデバイス側から電源供給を受けて動作し、ターゲットデバイスとの間でＵＳＢのコネクタを介した通信を行う外部デバイスを提供することである。
【課題を解決するための手段】
【０００９】
上記従来例の問題点を解決するための本発明は、ターゲットデバイスと、外部デバイスとを含み、当該ターゲットデバイス及び外部デバイスがともにユニバーサル・シリアル・バス（ＵＳＢ）トランシーバを有し、このＵＳＢトランシーバを介して相互に通信可能に接続されたデバイスシステムであって、前記ターゲットデバイスは、前記ＵＳＢトランシーバを介して送受信するデータを保持する記憶部を有して、当該記憶部に保持するデータの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続された外部デバイスに対して送信し、前記外部デバイスは、データの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続されたターゲットデバイスから受信して、当該フロー制御信号に従って、前記ターゲットデバイスとの間のデータの送受信を制御することを特徴とする。
【００１０】
また、上記従来例の問題点を解決するための本発明は、ユニバーサル・シリアル・バス（ＵＳＢ）規格に準じたホストデバイスと、ターゲットデバイスとを含むシリアル通信システムであって、前記ターゲットデバイスが、前記ホストデバイスに対して電源を供給する端子を備える。
【００１１】
また本発明の一態様は、ターゲットデバイスであって、ユニバーサル・シリアル・バス（ＵＳＢ）トランシーバと、前記ＵＳＢトランシーバを介して送受信するデータを保持する記憶部と、を有し、前記記憶部に保持しているデータの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続された外部デバイスに対して送信することを特徴としている。
【００１２】
ここで、前記ＵＳＢトランシーバの制御を実行するバス・ドライバ・プログラムモジュールと、前記ＵＳＢトランシーバを介して接続され得る各種の外部デバイスに共通の処理を規定する共通処理プログラムモジュールと、前記共通処理モジュールまたは前記バスドライバモジュールの少なくとも一方と通信し、前記ＵＳＢトランシーバを介して接続される外部デバイスに固有の処理を規定する固有処理プログラムモジュールと、によって規定される処理を実行する制御部、を備えてもよい。
【００１３】
また、前記ＵＳＢトランシーバを介して接続される外部デバイスに対し、ＵＳＢ規格に規定された通信を開始する前に、ＵＳＢ規格に規定されない認証に係る規格外認証情報の送受信を行ない、当該規格外認証情報に基づく所定の認証処理を実行することとしてもよい。
【００１４】
さらに、これらにおけるフロー制御信号は、データの送受信の開始及び停止を指示する信号であることとしてもよい。
【００１５】
さらに本発明の別の態様は、ユニバーサル・シリアル・バス（ＵＳＢ）トランシーバを備えた外部デバイスであって、データの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続されたターゲットデバイスから受信して、当該フロー制御信号に従って、前記ターゲットデバイスとの間のデータの送受信を制御することを特徴としている。
【００１６】
さらに本発明の別の態様は、ターゲットデバイスと、外部デバイスとを含み、当該ターゲットデバイス及び外部デバイスがともにユニバーサル・シリアル・バス（ＵＳＢ）トランシーバを有し、このＵＳＢトランシーバを介して相互に通信可能に接続されたデバイスシステムにおける通信制御方法であって、前記ターゲットデバイスが前記ＵＳＢトランシーバを介して送受信するデータを保持し、当該保持するデータの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続された外部デバイスに対して送信し、前記外部デバイスが、データの送受信に関するフロー制御信号を、前記ＵＳＢトランシーバを介して接続されたターゲットデバイスから受信して、当該フロー制御信号に従って、前記ターゲットデバイスとの間のデータの送受信を制御する、ことを特徴としている。
【発明を実施するための最良の形態】
【００１７】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るシリアル通信システムは、図１に示すようにターゲットデバイス１と、外部デバイス２とを含んで構成される。
【００１８】
ターゲットデバイス１には、図２に示すように、ＵＳＢのシリーズＢのレセプタクル１１を備え、当該レセプタクル１１に隣接して、電源供給端子１２が設けられている。この実施の形態では、レセプタクル１１として、ＵＳＢのミニＢ型のレセプタクルが設けられているものとし、電源供給端子１２は、このレセプタクル１１を挟んで両側に配置されている。また、電源供給端子１２のさらに外側には、外部デバイス２を固定するためのネジ受け１３が設けられている。図２は、ターゲットデバイス１の筐体においてレセプタクル１１を設けた場所近傍の外観を表す概要図である。なお、このターゲットデバイス１は、ＵＳＢのシリーズＢのレセプタクル１１を介して、ホストとして動作する汎用のパーソナルコンピュータ（ＰＣ）に対して、一般的なＵＳＢケーブルを用いて接続したときには、通常のＵＳＢターゲットとして動作する。
【００１９】
外部デバイス２は、例えばマイクであり、図３に示すように、ＵＳＢのシリーズＢのコネクタ２１を備えている。また、このコネクタ２１をターゲットデバイス１のレセプタクル１１に挿入したときに、電源供給端子１２に接触する電源コネクタ２２が、このコネクタ２１の両側に設けられる。さらに、この電源コネクタ１２の外側には、ネジ受け１３に固定するためのネジ２３が設けられている。なお、以下では説明のため、この外部デバイス２がマイクである場合を例として説明するが、外部デバイス２は、これに限られるものではない。
【００２０】
利用者は、外部デバイス２をターゲットデバイス１に接続するときには、ターゲットデバイス１のレセプタクル１１にコネクタ２１を挿入し、ついでネジ２３をネジ受け１３にネジ止めする。このとき、電源コネクタ２２が電源供給端子１２に接触するようになる。
【００２１】
ターゲットデバイス１は、また、図４に示すように、制御部３１と、記憶部３２と、操作部３３と、表示部３４と、ディスクドライブ３５と、シリアルインタフェース部３６と、電源制御部３７とを含んで構成されている。
【００２２】
制御部３１は、ＣＰＵ等のプログラム処理デバイスであり、記憶部３２に格納されているプログラムに従って動作する。本実施の形態では、この制御部３１が、シリアルインタフェース部３６を介して外部デバイス２との間の通信を実行する。この制御部３１の処理については後に詳しく述べる。
【００２３】
記憶部３２は、ＲＡＭ等の記憶素子を含んで構成され、制御部３１によって実行されるプログラムを保持する。このプログラムは、例えばディスクドライブ３５にて、当該ディスクドライブ３５にセットされているディスク媒体から読み取られて格納される。また、この記憶部３２は、制御部３１のワークメモリとしても動作する。
【００２４】
操作部３３は、ボタンや、アナログ入力デバイスなどを含んで構成され、利用者の操作を受け入れて、当該操作の内容を制御部３１に出力する。表示部３４は、液晶ディスプレイ等であり、制御部３１から入力される指示に従って情報を表示する。
【００２５】
ディスクドライブ３５は、光学的、ないし磁気的に情報が記録されているディスク媒体から、光学的、ないし磁気的に情報を読み取って制御部３１に出力する。シリアルインタフェース部３６は、ＵＳＢの規格に準じたインタフェースデバイスであって、制御部３１から入力される指示に従って動作する。このシリアルインタフェース部３６についても後に詳しく述べる。
【００２６】
電源制御部３７は、各部に電源を供給する。また、この電源制御部３７は、制御部３１から入力される指示に従って、電源供給端子１２を介して外部デバイス２に対して電源の供給を行う。
【００２７】
外部デバイス２は、図５に示すように、電源部４１と、通信制御部４２と、マイク部４３と、Ａ／Ｄ変換部４４とを含んで構成されている。
【００２８】
電源部４１は、電源コネクタ２２を介して供給される電源を、各部に伝達する。通信制御部４２は、実質的にＵＳＢホストとしての動作を行なう。すなわちこの通信制御部４２はコネクタ２１を介してターゲットデバイス１との間で通信を行い、後に述べるマイク部４３にて取得し、Ａ／Ｄ変換部４４で変換した音声のディジタル信号を、ターゲットデバイス１へ送出する等の動作をする。この通信制御部４２による通信の内容についても後に述べる。
【００２９】
マイク部４３は、到来する音声信号を電気的な信号に変換して出力する。Ａ／Ｄ変換部４４は、マイク部４３が出力する電気的な音声信号をディジタル信号に変換して出力する。
【００３０】
ここでターゲットデバイス１の動作について説明する。このターゲットデバイス１は、機能的には図６に示すように、物理通信部５１と、初期認証部５２と、ＵＳＢバスドライバ部５３と、共通処理部５４と、外部デバイスドライバ部５５と、電源供給制御部５６と、接続検知部５７とを含んで構成されている。
【００３１】
物理通信部５１は、ＵＳＢバスドライバ部５３から入力される、送信するべきデータに従ってレセプタクル１１の各端子の電気的状態を制御し、また、レセプタクル１１の各端子を介して受入れた信号をＵＳＢバスドライバ部５３に出力する。この物理通信部５１は、ＵＳＢトランシーバに相当する。
【００３２】
初期認証部５２は、制御部３１によって実行されるソフトウエアとして実現できる。初期認証部５２は、接続検知部５７が接続を検知した旨の信号を出力すると、物理通信部５１を介してＵＳＢ規格に規定されない認証に係る規格外認証情報を受信し、当該規格外認証情報を用いて認証を行い、その認証の結果を出力する。ここで認証の方法は、公開鍵等を用いる一般的な方法で構わない。また、この初期認証部５２は、物理通信部５１を介して、ＵＳＢ規格に規定されない認証に係る規格外認証情報を送信する。ここで規格外認証情報は、ＵＳＢ規格における外部デバイス２のデスクリプタそのものであってもよいし、またこのデスクリプタを暗号化したデータであってもよい。初期認証部５２は、外部デバイス２から受信する、外部デバイス２のデスクリプタの少なくとも一部が、予め定められている情報に一致しているか否かによって認証を行なえばよい。
【００３３】
ＵＳＢバスドライバ部５３は、制御部３１によって実行されるＵＳＢバスドライバソフトウエアとして実装できる。このＵＳＢバスドライバ部５３は、接続検知部５７が接続を検知したときに実行を開始し、接続された相手方（外部デバイス２等）から種別を表す情報の入力を受けて、共通処理部５４と、当該種別に対応する外部デバイスドライバ部５５の処理を開始する。つまり、共通処理部５４を実現するプログラムと、外部デバイスドライバ部５５を実現するプログラムとを記憶部３２内に読み出して、制御部３１によって実行可能な状態とする。このＵＳＢバスドライバ部５３の動作については、後に詳しく述べる。
【００３４】
共通処理部５４は、接続され得る各種の外部デバイスに共通の処理を規定するプログラムモジュールとして実現され、このプログラムモジュールが制御部３１によって実行されることで動作する。この共通処理部５４は、外部デバイス２をＵＳＢの規格に従って認証する処理や、外部デバイスへのデータの送受信に関するフロー制御信号を出力する処理を行う。
【００３５】
外部デバイスドライバ部５５は、外部デバイス２ごとに用意されるプログラムモジュールであって、制御部３１によって実行される。この外部デバイスドライバ部５５は、例えばマイクの外部デバイス２に対応するものとしては、ＵＳＢバスドライバ部５３を介して、物理通信部５１にて受信される音声のディジタル信号の入力を受けて、当該ディジタル信号に関する音声信号処理等を実行して出力する。
【００３６】
電源供給制御部５６は、電源投入後、または利用者によって所定の操作が行われたときに、電源供給端子１２を介した電源の供給を開始する。また、制御部３１の動作により、レセプタクル１１を介して接続されている相手がここでいう外部デバイス２ではなく、ＵＳＢホストとして動作する汎用のＰＣ等である場合には、電源の供給を停止制御することとしてもよい。ＵＳＢホストであるか否かは、例えば、初期認証部５１による外部デバイス２の認証結果によって検出できる。
【００３７】
接続検知部５７は、レセプタクル１１に含まれるＶBUS端子から電源電圧が入力されているか否かによって接続を検知する。すなわち、ＶBUS端子から電源電圧が入力されると、接続がされたことを表す信号を出力し、ＶBUS端子から電源電圧が入力されないと、接続がされていないことを表す信号を出力する。
【００３８】
ここで、ＵＳＢバスドライバ部５３の動作について説明する。本実施の形態では、ＵＳＢバスドライバ部５３に対して、少なくとも一つの外部デバイスドライバ部５５を「プラグイン」して、外部デバイス２を制御するドライバを構成する。
【００３９】
ＵＳＢバスドライバ部５３は、初期認証部５２から認証完了（認証成功）の旨を表す情報を受けて、物理通信部５１を介して接続される外部デバイス２に、物理的なインタフェース番号を割り当て、また物理的なエンドポイント番号を割り当てる。そしてＵＳＢバスドライバ部５３は、接続された外部デバイス２からその種別を表す情報の入力を受けて、共通処理部５４のプログラムと、入力された種別の外部デバイス２に対応する外部デバイスドライバ部５５のプログラムとを記憶部３２内に読み出し、制御部３１によって実行可能な状態とする。ここで外部デバイスドライバ部５５のプログラムは、共通処理部５４や、ＵＳＢバスドライバ部５３との間でデータの授受を行うことができるようになっている。こうしたプログラムの生成方法は、いわゆるプラグインプログラムとして知られている方法などが採用できる。
【００４０】
ＵＳＢバスドライバ部５３は、こうしてプラグインされる外部デバイスドライバ部５５から論理的なインタフェース番号とエンドポイント番号（以下論理番号と総称する）との入力を受けて、物理的なインタフェース番号やエンドポイント番号（物理番号）と、論理的なインタフェース番号やエンドポイント番号（論理番号）とを関連づけて保持する。
【００４１】
すなわち、ＵＳＢバスドライバ部５３はプラグインの要求が行なわれた外部デバイスドライバ部５５から論理番号とデスクリプタとを受入れて、これらの情報を保持する。そして初期認証部５２が受信した外部デバイス２のデスクリプタと、ここで受入れたデスクリプタとを比較して、外部デバイス２の物理番号と外部デバイスドライバ部５５側から通知された論理番号とを関連づけるテーブルを生成して記憶する（図７）。これによりコンフィギュレーションが完了して通信が可能となり、ＵＳＢバスドライバ部５３は、その旨を外部デバイスドライバ部５５に通知する。
【００４２】
次に、ＵＳＢバスドライバ部５３の通信時の処理について説明する。ＵＳＢバスドライバ部５３は、外部デバイスドライバ部５５から、論理番号によるエンドポイントの指定とともに、送受信のリクエストを受入れる。ＵＳＢバスドライバ部５３は、エンドポイントを特定する論理番号を物理番号に変換し、当該物理番号で特定されるエンドポイントごとに予め設定したエンドポイントバッファ（待ち行列）に、外部デバイスドライバ部５５から受けた送信のリクエストに係る情報をキューイング（待ち行列に保持）する。また、外部デバイス２から、エンドポイントを特定して受けたデータを特定されたエンドポイントに対応するエンドポイントバッファにキューイングする。そして、外部デバイスドライバ部５５から指定されたエンドポイントに対する読み出しの指示を受けると、当該指定されたエンドポイントの論理番号を物理番号に変換して、当該変換により得られた物理番号で特定されるエンドポイントに対応するエンドポイントバッファ内のデータを外部デバイスドライバ部５５に出力する。
【００４３】
例えば、外部デバイス２への送信方向に設定されたエンドポイント（エンドポイントＡとする）について、論理番号「Ｘ」、物理番号「１」が割り当てられているとする。ここで外部デバイスドライバ部５５が論理番号「Ｘ」のエンドポイントＡに対して送信対象のデータを出力すると、このリクエストがＵＳＢバスドライバ部５３に受け入れられる。そしてＵＳＢバスドライバ部５３は、論理番号「Ｘ」を対応する物理番号「１」に変換し、この変換した物理番号「１」のエンドポイントＡに関連づけられたキューに、送信データを順次保持する。また、送信対象のデータをエンドポイントＡによって特定されるエンドポイントバッファに保持する。
【００４４】
そしてＵＳＢバスドライバ部５３は、外部デバイス２側からエンドポイントＡにおける送信データの有無に関する問い合わせを受信したときに、当該問い合わせに応答して、エンドポイントＡに関してキューイングしたリクエストに従って、エンドポイントバッファ内のデータを問い合わせ元の外部デバイス２へ送出する。送出が完了すると、その旨を対応する外部デバイスドライバ部５５に対して通知する。
【００４５】
また、このＵＳＢバスドライバ部５３は、外部デバイス２からインタフェースやエンドポイント宛にデータを受け取る代わりに、デバイス宛のデータを受け入れてもよい。この場合、ＵＳＢバスドライバ部５３は、インタフェース番号やエンドポイント番号が設定されている各外部デバイスドライバ部５５に対して、当該デバイス宛のデータを出力する。
【００４６】
このように本実施の形態では、外部デバイスドライバ部５５は、物理番号を用いることなく論理番号によってデータの送受信を要求する。従って物理的なデバイスの始動／停止ごとに変化する可能性のある物理番号に追従する処理を行う必要がなく、外部デバイスドライバ部５５の設計が容易になっている。
【００４７】
また、リクエストの完了時や、デバイスに関するコンフィギュレーションの完了時、その他の状態に遷移するときにＵＳＢバスドライバ部５３が対応する外部デバイスドライバ部５５に通知を行なうことで、外部デバイスドライバ部５５が対応するアクションを実行することができるようになり、汎用性を向上している。
【００４８】
さらに外部デバイスドライバ部５５において共通に実装されるべき処理として、外部デバイス２をＵＳＢの規格に従って認証する処理や、外部デバイスへのデータの送受信に関するフロー制御信号を出力する処理などを共通処理部５４に対して要求することで共通処理部５４が所要の処理を遂行することとしたので、外部デバイスドライバ部５５において実装するべき処理が少なくなり、実装も容易になっている。
【００４９】
また、本実施の形態の外部デバイスドライバ部５５は、エンドポイントバッファに保持するデータの送受信に関するフロー制御信号を、外部デバイス２に対して送信する処理を行う。例えばこの外部デバイスドライバ部５５は、外部デバイス２からの受信に用いるエンドポイントバッファの容量の情報を所定のタイミングごとに、例えば定期的に取得し、当該取得した情報で表される容量が予め定めた停止しきい値未満となったときに、当該エンドポイントに係るデータの送信を停止するべき旨の指示を出力するよう、共通処理部５４に指示する。
【００５０】
共通処理部５４は、ＵＳＢバスドライバ部５３に対して、対象となったエンドポイントの論理番号と、送信を停止するべき旨の制御信号を出力する。ＵＳＢバスドライバ部５３は、入力された論理番号を物理番号に変換し、当該物理番号に関連している外部デバイス２に対して送信停止の制御信号を出力する。
【００５１】
またこの場合外部デバイスドライバ部５５は、外部デバイス２からの受信に用いるエンドポイントバッファの量が予め定めた再開しきい値を超えたときに、当該エンドポイントに係るデータの送信を再開するべき旨の指示を出力するよう、共通処理部５４に指示する。
【００５２】
共通処理部５４は、ＵＳＢバスドライバ部５３に対して、対象となったエンドポイントの論理番号と、送信を開始するべき旨の制御信号を出力する。ＵＳＢバスドライバ部５３は、入力された論理番号を物理番号に変換し、当該物理番号に関連している外部デバイス２に対して送信開始の制御信号を出力する。
【００５３】
次に、このターゲットデバイス１に接続される外部デバイス２の通信制御部４２の動作について説明する。この通信処理部４２は、機能的には、図８に示すように、物理通信部６１と、初期認証部６２と、通信処理部６３と、バッファ６４とを含んで構成される。
【００５４】
物理通信部６１は、初期認証部６２や通信処理部６３から入力される、送信するべきデータに従ってコネクタ２１の各端子の電気的状態を制御し、また、コネクタ２１の各端子を介して受入れた信号を初期認証部６２や通信処理部６３に出力する。
【００５５】
初期認証部６２は、電源部４１において電源の供給が開始されると、物理通信部６１を介して予め定められた規格外認証情報を出力する。ここで規格外認証情報とは例えばＵＳＢの規格で定められるデスクリプタなどである。また、初期認証部６２は、当初はこの電源部４１から供給される電源を、コネクタ２１に含まれるVBUS端子を介してターゲットデバイス１へ供給する。
【００５６】
また、この初期認証部６２は、ターゲットデバイス１から規格外認証情報を受信すると、この規格外認証情報を用いて認証を行ない、その認証の結果を出力する。ここでターゲットデバイス１から受信される規格外認証情報は、ターゲットデバイス１のＵＳＢ規格のデスクリプタであり、初期認証部６２は、このデスクリプタの少なくとも一部が、予め定められている情報に一致しているか否かによって認証を行なう。
【００５７】
既に説明したように、ターゲットデバイス１との間で送受信する規格外認証情報は、例えば夫々のＵＳＢ規格のデスクリプタを暗号化したものであってもよい。この場合において暗号化や復号に用いる鍵は、ターゲットデバイス１と外部デバイス２とにそれぞれ耐タンパ性を有するメモリ等に格納しておいてもよい。
【００５８】
初期認証部６２は認証に失敗すると、コネクタ２１に含まれるVBUS端子を介した電源の供給を停止する。
【００５９】
通信処理部６３は、初期認証部６２が認証に完了した（認証成功）旨の情報を出力すると、一般的なＵＳＢにおけるのと同様の通信処理を開始し、物理的なインタフェース番号や、エンドポイント番号の割り当てを受け、また、バッファ６４に格納されているデータを、ターゲットデバイス１にて割り当てられたエンドポイント番号のエンドポイントバッファへと送出する。また、この通信処理部６３は、ターゲットデバイス１に対して送信するべきデータがあるか否かを問い合わせる処理を行う。
【００６０】
本実施の形態においては、この外部デバイス２がマイクであり、マイク部４３で取得され、Ａ／Ｄ変換部４４にて変換された音声のディジタル信号は、送信対象データとしてバッファ６４に保持される。そして通信処理部６３は、バッファ６４に保持されている送信対象データを、ターゲットデバイス１に対して送出する。
【００６１】
また、通信処理部６３は、ターゲットデバイス１からデータの送信を停止するべき旨の信号を受信すると、データの送信を停止して待機する。そして待機の状態にあるときに、ターゲットデバイス１からデータの送信を開始するべき旨の信号を受信すると、通信処理部６３は、データの送信を開始して、バッファ６４に保持されている送信対象データを、ターゲットデバイス１に対して送出する。このように本実施の形態では、外部デバイス２はターゲットデバイス１から受信されるフロー制御信号に従って、データの送信の開始／停止を制御する。
【００６２】
すなわち、本実施の形態のシリアル通信システムは、次のようにして通信を行なうことになる。外部デバイス２のコネクタ２１がターゲットデバイス１のレセプタクル１１に挿入され、ネジ２３がネジ受け１３にネジ止めされると、電源コネクタ２２が電源供給端子１２に接触する。
【００６３】
これにより、外部デバイス２に電源が供給されるようになり、外部デバイス２は当初は、この供給された電源を用いて、コネクタ２１のVBUS端子を介してターゲットデバイス１へ電源を供給する。
【００６４】
ターゲットデバイス１では、このVBUS端子に電源が供給されたことにより、外部デバイス２が接続されたことを検知する。
【００６５】
ターゲットデバイス１と外部デバイス２とは、次いで、図９に示すような通信処理を開始する。まず、外部デバイス２がＵＳＢ規格によるデスクリプタの情報を規格外認証情報としてターゲットデバイス１へ送出する（Ｓ１）。ここでは外部デバイス２はマイクであるので、マイクであることを表す情報などが送信される。ターゲットデバイス１側では、この規格外認証情報を参照し、例えばそのベンダ情報などが予め定めた情報と一致しているか否かを判断する（Ｓ２）。ここでこの判断が肯定的である場合に認証が成功したものとして、ターゲットデバイス１のＵＳＢ規格によるデスクリプタの情報を規格外認証情報として外部デバイス２へ送信する（Ｓ３）。なお、処理Ｓ２での判断が否定的であった場合は、電源の供給を停止するなど、接続処理を中断してもよい（Ｓ４）。
【００６６】
外部デバイス２は、ターゲットデバイス１から規格外認証情報が入力されると、当該規格外認証情報に含まれる、例えばベンダ情報等が予め定めた情報と一致しているか否かを判断する（Ｓ５）。ここで判断が否定的である場合は、コネクタ２１のVBUS端子を介しての電源供給を中断する（Ｓ６）。これにより、ターゲットデバイス１側では接続が解除されたものと認識することになる。
【００６７】
一方、処理Ｓ５の判断において肯定的な判断であった場合は、ＵＳＢの規格に準じた通信を開始する（Ｓ７）。
【００６８】
なお、通信の開始後において、ターゲットデバイス１側で、あるエンドポイントバッファの残り容量が少なくなった場合等、外部デバイス２からのデータ送信を制限するべき状態となったと判断したときには、当該エンドポイントバッファに対応する外部デバイス２に対してデータの送信を停止するべき旨の信号を送信出力する。外部デバイス２はこの信号を受けてデータの送信を停止する。これにより当該データ送信を制限すべき状態であったエンドポイントバッファへのデータ受け入れを停止する。
【００６９】
やがてターゲットデバイス１側でデータの受け入れを停止しているエンドポイントバッファについて、データ送信を制限するべき状態が止んだと判断したときは、ターゲットデバイス１は、当該エンドポイントバッファに対応する外部デバイス２に対して、データの送信を開始するべき旨の信号を送信出力する。外部デバイス２は、この信号を受けてデータの送信を再開する。
【００７０】
なお、ここまでの説明では、フロー制御の一例として、エンドポイントバッファのオーバーフローを防止するためのフロー制御の例を述べたが、本実施の形態のフロー制御は、この例に限られるものではない。例えば、フロー制御信号として、同期通信における同期用信号を送受信し、ターゲットデバイス１と外部デバイス２との間で同期通信を行なってもよい。また、非同期通信におけるデータスタート、データストップ信号をここでのフロー制御信号として送受信してもよい。
【００７１】
このように本実施の形態では、小型化が要請され、シリーズＢに対応する端子を備えたターゲットデバイスが、アクセサリ機器との通信をＵＳＢのコネクタを介して行なうときに、ターゲットデバイス側で通信の停止／再開等の制御を主導的に行なうことができるようになる。
【００７２】
また、本実施の形態によれば、ターゲットデバイス側から電源供給を受けて動作し、ターゲットデバイスとの間でＵＳＢのコネクタを介した通信を行うことができる。
【００７３】
なお、本実施の形態の説明では、外部デバイス２がマイクなど、専らデータを送信する場合である例について述べたが、これに限らず、ＭＩＤＩ（Musical Instruments Digital Interface）デバイスなどデータを受け入れて処理するものであってもよい。さらにハードディスク装置など、データを送受信する装置であってもよい。
【００７４】
さらに、本実施の形態における外部デバイス２は、カメラつきマイクなど、複数の機能を備えたものであってもよい。この場合、外部デバイス２２は、各機能に対応する種別の情報をそれぞれ送出する。
【００７５】
ＵＳＢバスドライバ部５３は、各種別を表す各情報の入力を受けて、共通処理部５４のプログラムと、入力された各種別に対応する複数の外部デバイスドライバ部５５のプログラムとを記憶部３２内に読み出し、制御部３１によって実行可能な状態とする。
【００７６】
ＵＳＢバスドライバ部５３は、こうしてプラグインされる複数の外部デバイスドライバ部５５の各々から論理番号との入力を受けて、物理番号と、論理番号とを関連づけて保持する。
【００７７】
すなわち、ＵＳＢバスドライバ部５３はプラグインの要求が行なわれた複数の外部デバイスドライバ部５５の各々から論理番号とデスクリプタとを受入れて、これらの情報を保持する。そしてデスクリプタが初期認証部５２にて受け入れたデスクリプタに一致するときに、外部デバイス２の物理番号と外部デバイスドライバ部５５側から通知された論理番号とを関連づけるテーブルを生成して記憶する（図７）。これによりコンフィギュレーションが完了して通信が可能となり、ＵＳＢバスドライバ部５３は、その旨を各外部デバイスドライバ部５５に通知する。
【００７８】
ＵＳＢバスドライバ部５３は、エンドポイントバッファごとに送受するデータ等（リクエスト）を待ち行列（キュー）に蓄積して保持する。またＵＳＢバスドライバ部５３は、エンドポイントバッファごとに蓄積されたリクエストを、各エンドバッファに対応する外部デバイスドライバ部５５へ割り振って（すなわちルーティングして）出力する。
【００７９】
また、外部デバイス２に対して送出するべきデータ等（リクエスト）が、アプリケーションプログラム側から受け入れられたときには、ＵＳＢバスドライバ部５３は、このリクエストを、プラグインされているすべての外部デバイスドライバ部５５に出力する。
【００８０】
各外部デバイスドライバ部５５は、応答可能なリクエストであるときに、当該リクエストを外部デバイス２へ送出するようＵＳＢバスドライバ部５３に指示する。
【００８１】
これにより、例えばカメラつきマイクの外部デバイス２が接続された場合、カメラのデバイスドライバと、マイクのデバイスドライバとに対応する外部デバイスドライバ部５５が、ＵＳＢバスドライバ部５３にプラグインされることとなる。そして、カメラへの撮像指示を受けたＵＳＢバスドライバ部５３は、この指示を各外部デバイスドライバ部５５へ出力する。このとき、マイクのデバイスドライバに対応する外部デバイスドライバ部５５は、撮像指示には応答しない。一方、カメラのデバイスドライバに対応する外部デバイスドライバ部５５は、撮像指示に応答して、当該撮像指示を対応するエンドポイントバッファに格納し、外部デバイス２に出力するようＵＳＢバスドライバ部５３に指示する。
【００８２】
ＵＳＢバスドライバ部５３は、この指示に従って、カメラのデバイスドライバに対応するエンドポイントバッファに格納された撮像指示を、外部デバイス２へ送出する。外部デバイス２のカメラ部分は、この撮像指示に従って撮像を行い、撮像の結果得られた画像データを出力する。ＵＳＢバスドライバ部５３は、この画像データを受け入れて、撮像指示を読み出したエンドポイントバッファ（カメラのデバイスドライバに対応するエンドポイントバッファ）に、受け入れた画像データを格納する。
【００８３】
カメラのデバイスドライバに対応する外部デバイスドライバ部５５は、こうして撮像の結果得られた画像データを受け取り、撮像指示を行ったアプリケーションプログラムなどへ当該画像データを受け渡す。この受け渡し方法は、例えば記憶部３２に格納してから当該格納位置を表す情報をアプリケーションプログラムなど撮像指示元へ出力するなどして行うことができる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施の形態に係る情報処理システムの構成ブロック図である。
【図２】本発明の実施の形態に係るターゲットデバイス１の筐体においてレセプタクル１１を設けた場所近傍の外観を表す概要図である。
【図３】本発明の実施の形態に係る外部デバイス２の概要図である。
【図４】本発明の実施の形態に係るターゲットデバイス１の例を表す構成ブロック図である。
【図５】本発明の実施の形態に係る外部デバイス２の例を表す構成ブロック図である。
【図６】本発明の実施の形態に係るターゲットデバイス１の例を表す機能ブロック図である。
【図７】本発明の実施の形態に係るターゲットデバイスにおいて管理される論理番号と物理番号との対応付けをするテーブルの例を表す説明図である。
【図８】本発明の実施の形態に係る外部デバイス２の例を表す機能ブロック図である。
【図９】本発明の実施の形態に係る情報処理システムの通信の流れの例を表す流れ図である。
【符号の説明】
【００８５】
１  ターゲットデバイス、２  外部デバイス、１１  レセプタクル、１２  電源供給端子、１３  ネジ受け、２１  コネクタ、２２  電源コネクタ、２３  ネジ、３１  制御部、３２  記憶部、３３  操作部、３４  表示部、３５  ディスクドライブ、３６  シリアルインタフェース部、３７  電源制御部、４１  電源部、４２  通信制御部、４３  マイク部、４４  Ａ／Ｄ変換部、５１，６１  物理通信部、５２，６２  初期認証部、５３  ＵＳＢバスドライバ部、５４  共通処理部、５５  外部デバイスドライバ、５６  電源供給制御部、５７  接続検知部、６３  通信処理部、６４  バッファ。
【図１】
0004452675.tif 000002
【図２】
0004452675.tif 000003
【図３】
0004452675.tif 000004
【図４】
0004452675.tif 000005
【図５】
0004452675.tif 000006
【図６】
0004452675.tif 000007
【図７】
0004452675.tif 000008
【図８】
0004452675.tif 000009
【図９】
0004452675.tif 000010