(57)【要約】【課題】ホスト装置が周辺装置のクラス仕様に対応したデバイスドライバを実装していない場合であっても、周辺装置の備える機能を利用できるようにすること。【解決手段】ホスト装置（カーナビゲーション）１は、周辺装置（携帯電話）２の備える機能（モデム機能）を使用するためのデバイスドライバを有していない場合に、周辺装置２からクラス仕様に記述された論理インタフェースの情報を取得する。取得した各論理インタフェースに対して、上記機能（モデム機能）で扱う所定のコマンド（ＡＴコマンド）を送出し、所定の応答が得られる論理インタフェースを検索する。そして、検索された論理インタフェースを経由して周辺装置２が備える機能を使用する。【選択図】図３
2007052630.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置を接続したホスト装置において、該周辺装置の備える機能を使用するためのデバイスドライバを適用するデバイスドライバ適用方法であって、
上記周辺装置は、備える機能の種別と各機能に割り当てられる論理インタフェースの情報を記述したクラス仕様記述データを有し、
上記ホスト装置が、上記周辺装置の備える機能を使用するためのデバイスドライバを有していない場合に、
上記周辺装置から上記クラス仕様記述データに記述された各論理インタフェースの情報を取得し、
上記周辺装置から取得した各論理インタフェースに対して、所望の機能で扱う所定のコマンドを送出し、
該コマンドに対して上記周辺装置から所定の応答が得られる論理インタフェースを検索し、
該検索された論理インタフェースを経由して上記周辺装置が備える機能を使用することを特徴とするデバイスドライバ適用方法。
【請求項２】
請求項１記載のデバイスドライバ適用方法において、
前記周辺装置はモデム機能を備え、前記所定のコマンドとしてモデム制御用のＡＴコマンドを送出し、該コマンドに対して所定の応答コードが得られることによりモデム機能に用いる論理インタフェースを検索することを特徴とするデバイスドライバ適用方法。
【請求項３】
請求項１または２記載のデバイスドライバ適用方法において、
前記ホスト装置はカーナビゲーションであり、前記周辺装置は携帯電話であることを特徴とするデバイスドライバ適用方法。
【請求項４】
周辺装置を接続し、該周辺装置の備える機能を使用するホスト装置において、
上記周辺装置は、備える機能の種別と各機能に割り当てられる論理インタフェースの情報を記述したクラス仕様記述データを有し、
上記周辺装置から上記クラス仕様記述データに記述された各論理インタフェースの情報を取得するクラス仕様取得手段と、
取得した各論理インタフェースに対して、所望の機能で扱う所定のコマンドを送出し、所定の応答が得られる論理インタフェースを検索するインタフェース検索ドライバを備え、
当該ホスト装置が、上記周辺装置の備える機能を使用するためのデバイスドライバを有していない場合に、上記インタフェース検索ドライバにより検索された論理インタフェースを経由して上記周辺装置が備える機能を使用することを特徴とするホスト装置。
【請求項５】
請求項４記載のホスト装置において、
前記周辺装置はモデム機能を備え、前記インタフェース検索ドライバは所定のコマンドとしてモデム制御用のＡＴコマンドを送出し、該コマンドに対して所定の応答コードが得られることによりモデム機能に用いる論理インタフェースを検索することを特徴とするホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周辺装置を接続したホスト装置において、周辺装置の備える機能を使用するためのデバイスドライバを適用するデバイスドライバ適用方法及びこれを用いたホスト装置に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータでは、周辺機器接続用インタフェースの１つとしてＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）が広く用いられている。また、カーナビゲーションのような組込み機器においてもＵＳＢインタフェースを搭載したものがあり、携帯電話等を接続するのに用いられている。通常のＵＳＢ接続では、上記パーソナルコンピュータやカーナビゲーションはホスト装置、接続される周辺機器は周辺装置となる。
【０００３】
ホスト装置には、周辺装置との電気的、物理的なインタフェースとなるホストコントローラが搭載され、これを駆動制御するためのソフトウェアであるホストドライバが実装されている。ホスト装置が周辺装置の備える機能を利用するためには、加えて、ホストコントローラ及びホストドライバを介して周辺装置を制御するデバイスドライバが必要で、これをインストールして用いることになる。
【０００４】
ＵＳＢでは、代表的な周辺装置に関して、その機能及びインタフェースを定義したクラス仕様を公開している。周辺装置がこの公開されたクラス仕様を満たし、ホスト装置があらかじめ公開されたクラス仕様に対応するデバイスドライバを実装している場合には、利用者は、周辺装置を単にホスト装置に接続するだけで使用することができ、ホスト装置にデバイスドライバをインストールする作業は不要となる。
【０００５】
しかしながら、周辺装置に、公開されたクラス仕様にない独自機能を設けた場合、例えば通信デバイスに周辺装置製造業者（ベンダ）独自のモニタ機能を設けた場合等においては、ベンダが独自にクラス仕様を定義し、ベンダ固有のクラス仕様（ベンダ固有クラス）とすることも可能である。このような場合、ベンダは、これを利用するためのデバイスドライバを格納したＣＤ−ＲＯＭ等のメディアを提供し、使用者はこれからホスト装置にインストールするのが一般的である。
【０００６】
ベンダ固有クラスを有する周辺装置のように、ホスト装置側で事前にデバイスドライバをインストールする必要がある場合、使用者はインストールの作業だけでなく、ベンダから提供されるデバイスドライバを格納したメディアのドライブ装置を準備することも必要となり、接続する周辺装置を買い換えた場合等において、逐次インストール作業が必要になってしまい、煩わしい。
【０００７】
この点に関し特許文献１に記載の技術は、ホスト装置にインストールするデバイスドライバプログラムを周辺装置側に格納し、ホスト装置がこれを読み出すことで、インストールを自動的に実行し、デバイスドライバを格納したメディアを不要とするものである。
【０００８】
【特許文献１】特開２００３−１５０５３０公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記特許文献１によれば、周辺装置がホスト装置ヘインストールするデバイスドライバを搭載するものであるが、そのためには、各周辺装置はこれに対応していなければならず、デバイス製造業者の負担は増大する。また、ホスト装置が実装するＯＳやホストドライバの種別は様々であり、それぞれに対応したデバイスドライバを搭載するとなると、これを格納するメモリ容量も増大し、装置コストが高騰する原因にもなる。
【００１０】
また、カーナビゲーションに利用者所有の携帯電話を接続して通信するような場合、様々なベンダの携帯電話が接続されることになる。従って、各携帯電話のベンダ間でクラス仕様が統一されていない場合、例えば、カーナビゲーションが公開されたクラス仕様のデバイスドライバしか対応していなければ、ベンダ固有クラスの携帯電話を所持している利用者は使用できず、カーナビゲーションが対応している携帯電話に買い換える等の対応が必要になってしまう。よって、利用者に不便をかけることになる。
【００１１】
本発明は上記課題を解決するものであり、周辺装置側でインストールするデバイスドライバを搭載することなく、またホスト装置が周辺装置のクラス仕様に対応したデバイスドライバを実装していない場合であっても、周辺装置の備える機能を利用できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明によるデバイスドライバ適用方法では、ホスト装置が、周辺装置の備える機能を使用するためのデバイスドライバを有していない場合に、周辺装置からクラス仕様記述データに記述された論理インタフェースの情報を取得する。取得した各論理インタフェースに対して、所望の機能で扱う所定のコマンドを送出し、所定の応答が得られる論理インタフェースを検索し、検索された論理インタフェースを経由して周辺装置が備える機能を使用する。
【００１３】
また、本発明によるホスト装置では、周辺装置からクラス仕様記述データに記述された論理インタフェースの情報を取得するクラス仕様取得手段と、取得した各論理インタフェースに対して所望の機能で扱う所定のコマンドを送出し、所定の応答が得られる論理インタフェースを検索するインタフェース検索ドライバを備える。ホスト装置が、周辺装置の備える機能を使用するためのデバイスドライバを有していない場合に、インタフェース検索ドライバにより検索された論理インタフェースを経由して周辺装置が備える機能を使用する。
【発明の効果】
【００１４】
本発明によれば、ホスト装置において、接続される周辺装置のクラス仕様に対応したデバイスドライバがない場合であっても、機能的に使用可能であれば新たにデバイスドライバをインストールする等の作業をすることなく、周辺装置を使用することができる。また、ホスト装置側におけるデバイスドライバでの対応のみで実施できるので、周辺装置は既存のままでよく、メモリに要するコストが増大する等の周辺装置側に係る課題は発生させることがないという効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
【００１６】
図１は、本発明によるデバイスドライバ適用方法を用いたＵＳＢ通信システムの一実施例を示す構成図である。本実施例は、ホスト装置としてカーナビゲーション（以下、カーナビ）１、周辺装置として携帯電話２を用いて、これらをＵＳＢケーブル１０にて接続した構成の通信システムである。
【００１７】
まず、カーナビ１の内部構成を説明する。カーナビ全体制御部１１は、ＣＰＵ１２、メモリ１３、ナビ周辺Ｉ／Ｆ部１４、ＵＳＢホストコントローラ１５を有する。ＣＰＵ１２は、メモリ１３内に格納される後述する各種プログラム１３１〜１３４に従ってシステム制御し、カーナビ機能を実現する。ＵＳＢホストコントローラ１５は、携帯電話２との電気的、物理的なインタフェース整合を取るものである。
【００１８】
ナビ周辺Ｉ／Ｆ部１４には、次の要素が接続される。表示部１６は地図情報等の各種情報を表示する。操作部１７は、利用者が経路検索等の各種操作設定を行うためのものであり、操作部１７から携帯電話２に対するデータ発信等の指示も行う。ＧＰＳアンテナ１８は、自車の位置情報を検出するためにＧＰＳ衛星から送られる電波を受信する。地図情報記憶部１９は、地図情報を記憶するＣＤ−ＲＯＭ等の記録メディア及びデータ読み出しのドライブ装置である。
【００１９】
メモリ１３内に格納される各種プログラム及びデータ１３１〜１３４について説明する。カーナビ全体制御処理部１３１は、例えば、以下のようなカーナビ機能処理を行う。まず、電源投入を検出し、ＧＰＳアンテナ１８から受信される情報から自車位置を検出する。そして、検出した自車位置周辺の地図データを地図情報記憶部１９から読み出して、表示部１６に出力する。また、利用者が操作部１７を操作して、目的地を設定したことを検出したら、現在位置と設定目的地までの経路を検索し、地図情報に検索経路を表示する。操作部１７の操作指示により、携帯電話２を使ったデータ通信であることを検出したら、ＵＳＢデバイスドライバ１３３、ＵＳＢホストドライバ１３４を使って携帯電話２とのＵＳＢ通信制御を行い、携帯電話２を使ったデータ通信を行う等の処理も行う。
【００２０】
ＵＳＢデバイスドライバ１３３は、後述する携帯電話２におけるＵＳＢデバイス機能処理部２３３と通信を行うためのソフトウェアであり、ＵＳＢホストドライバ１３４を起動制御しながら、操作部１７指定の携帯電話２内のＵＳＢデバイス機能を使用可能とする。ＵＳＢデバイスドライバ１３３には、使用するＵＳＢデバイス機能毎に対応するドライバが実装され、本実施例では、モデム機能対応ドライバ１３３１と、モデム以外のその他機能対応ドライバ１３３２（ハンズフリー音声通話用のオーディオ機能等）が実装されているものとする。さらに本実施例では、ＵＳＢデバイスドライバ１３３内に、使用機能対応インタフェース検索ドライバ１３３３を設けた点に特徴がある。
【００２１】
ＵＳＢデバイスドライバ識別データ部１３２は、ＵＳＢデバイスドライバ１３３に実装されているドライバをＵＳＢデバイス機能毎に識別するための情報として、クラス仕様定義のクラスＩＤやベンダＩＤ等の識別データを格納している。
【００２２】
図４（ａ）はＵＳＢデバイスドライバ識別データ部１３２に格納されている情報の一例である。
【００２３】
図４（ａ）において、４０１はデバイスクラスＩＤ、４０２はデバイスサブクラスＩＤを示しており、これらはＵＳＢデバイス全体の特徴を示すデバイスディスクリプタが有するＩＤである。図示した設定値は通信デバイスのクラス仕様に定義される値を示しており、デバイスクラスＩＤは通信デバイスクラスＩＤを、デバイスサブクラスＩＤは通信デバイスサブクラスＩＤを示している。
【００２４】
そして、４０３はインタフェースクラスＩＤ、４０４はインタフェースサブクラスＩＤを示しており、ＵＳＢデバイスにおける機能を示すインタフェースディスクリプタが有するＩＤである。図示した各ＩＤ値も通信デバイスのクラス仕様で定義される値を示しており、インタフェースクラスＩＤは通信インタフェースクラス、インタフェースサブクラスＩＤはモデム機能に相当する「Ａｂｓｔｒａｃｔ  Ｃｏｎｔｒｏｌ  Ｍｏｄｅｌ」の設定を示している。
【００２５】
ＵＳＢホストドライバ１３４は、ＵＳＢホストコントローラ１５へのアクセスを可能とするソフトウェアであり、ＵＳＢデバイスドライバ１３３からの起動制御に従って、ＵＳＢホストコントローラ１５を制御し、ＵＳＢ通信を行う。
【００２６】
次に携帯電話２の構成例について説明する。本実施例では、ＵＳＢ周辺装置となる携帯電話２には既存の装置を使用することを前提としており、本実施例の動作に関連する主な構成要素を示している。
【００２７】
携帯電話２の携帯全体制御部２１には、ＣＰＵ２２、メモリ２３、ＵＳＢファンクションコントローラ２４を備えている。ＣＰＵ２２はメモリ２３に格納される各種プログラム２３１〜２３４を読み出し、実行することで携帯電話機能を実現する。
【００２８】
ＵＳＢファンクションコントローラ２４は、ＵＳＢ周辺装置側におけるＵＳＢインタフェースであり、ＵＳＢファンクションドライバ２３４及びこれを起動制御して各種機能処理を行うＵＳＢデバイス機能処理部２３３からの命令にしたがって、カーナビ１側のＵＳＢホストコントローラ１５とＵＳＢ通信を行う。
【００２９】
メモリ２３には、携帯電話全体制御処理部２３１、クラス仕様記述データ部２３２、ＵＳＢデバイス機能処理部２３３、ＵＳＢファンクションドライバ２３４を格納している。ＵＳＢデバイス機能処理部２３３には、本実施例では、電話帳交換機能（携帯電話に記憶された電話帳データを外部から書き込み読み出しする機能）、データ通信用のモデム機能、その他の機能（ハンズフリー音声通話用のオーディオ機能など）があるものとし、図示したように、電話帳交換機能処理部２３３１、モデム機能処理部２３３２、その他機能処理部２３３３を備えている。
【００３０】
ここでＵＳＢ通信では、ＵＳＢホストコントローラ１５及びＵＳＢファンクションコントローラ２４間の通信路上に、ソフトウェアで論理的なパイプを確立して通信を行う。ＵＳＢ周辺装置である携帯電話２は、パイプをグループ化してインタフェースを構成し、ＵＳＢデバイス機能処理部２３３の電話帳交換機能処理部２３３１、モデム機能処理部２３３２、その他機能処理部２３３３は、それぞれ対応するインタフェースを使用するようになっている。ＵＳＢデバイスドライバ１３３は、使用するデバイス機能で使われるインタフェースをＵＳＢホストドライバ１３４に指定して起動することでパイプ確立等の操作を行う。
【００３１】
クラス仕様記述データ部２３２には、ＵＳＢホスト装置であるカーナビ１が携帯電話２のＵＳＢデバイス機能処理部２３３の各機能と通信するのに必要な情報が格納されている。ここに格納されるデータは、ＵＳＢで規定される各種ディスクリプタであり、デバイス全体に関する情報を記述したデバイスディスクリプタ、上記インタフェースに関する情報を記述したインタフェースディスクリプタ等がある。
【００３２】
デバイスディスクリプタには、デバイス全体の機能を表すデバイスクラスＩＤ、ベンダＩＤ、製品ＩＤ等の情報を含んでおり、インタフェースディスクリプタは、ＵＳＢデバイス機能処理部２３３の各機能が使用するインタフェースに関して、インタフェースの機能を表すインタフェースクラスＩＤ、インタフェース番号、使用パイプ数等の情報を含んでいる。
【００３３】
図４（ｂ）はクラス仕様記述データ部２３２に格納されている情報の一例である。
【００３４】
図４（ｂ）において、４０５〜４１０はデバイスディスクリプタ、４１１〜４１４はＵＳＢデバイス内の論理構成を示すコンフィグレーションディスクリプタ、４１５〜４２０はインタフェースディスクリプタ、４２１〜４２２はインタフェース内で使われるエンドポイントの特性を示すエンドポイントディスクリプタを示している。４２３〜４２８は次のインタフェースディスクリプタを示している。
【００３５】
各ディスクリプタにはそのディスクリプタのデータサイズを示す「ｂＬｅｎｇｔｈ」４０５，４１１，４１５，４２１，４２３、及びＵＳＢ仕様で定義されるディスクリプタ種別を示す「ｂＤｅｓｃｒｉｐｔｏｒＴｙｐｅ」４０６，４１２，４１６，４２２，４２４を含んでいる。
【００３６】
デバイスディスクリプタにおける「ｂＤｅｖｉｃｅＣｌａｓｓ」４０７及び「ｂＤｅｖｉｃｅＳｕｂＣｌａｓｓ」４０８は、それぞれデバイスクラスＩＤ及びデバイスサブクラスＩＤを示すものであり、図示した値はベンダ固有を示す値である。他に、デバイスディスクリプタには製造メーカであるベンダＩＤが設定される「ｉｄＶｅｎｄｏｒ」４０９、製品ＩＤが設定される「ｉｄＰｒｏｄｕｃｔ」４１０等がある。
【００３７】
コンフィグレーションディスクリプタにおける「ｗＴｏｔａｌＬｅｎｇｔｈ」４１２はコンフィグレーション内全データ数を示すものであり、コンフィグレーションディスクリプタ以降の全ディスクリプタのデータサイズが設定される。そして、「ｂＮｕｍＩｎｔｅｒｆａｃｅｓ」４１４はコンフィグレーション内で定義されるインタフェースの数であり、図示の場合インタフェース＃０、＃１の２つあることを示している。
【００３８】
インタフェースディスクリプタにおける「ｂＩｎｔｅｒｆａｃｅＮｕｍｂｅｒ」４１７及び４２５はインタフェース番号を示すものである。インタフェース番号はコンフィグレーション内のインタフェースにシーケンシャルに付けられるものであり、「ｂＩｎｔｅｒｆａｃｅＮｕｍｂｅｒ」４１７は「００ｈ」、同４２５は「０１ｈ」としている。「ｂＮｕｍＥｎｄｐｏｉｎｔｓ」４１８及び４２６はインタフェース内で使われるエンドポイントの数を示している。「ｂＩｎｔｅｒｆａｃｅＣｌａｓｓ」４１９及び４２７、「ｂＩｎｔｅｒｆａｃｅＳｕｂＣｌａｓｓ」４２０及び４２８は、インタフェースクラスＩＤ及びインタフェースサブクラスＩＤを設定するものであり、図ではベンダ固有クラスの設定を記述している。
【００３９】
４２１、４２２以降４２３の前までにはエンドポイントディスクリプタが設けられ、図示していないが、エンドポイントで転送される最大パケットサイズ、対応するＵＳＢ転送タイプ（バルク転送、インタラプト転送等）が記述される。
【００４０】
上記構成において、カーナビ１は、携帯電話２におけるＵＳＢデバイス機能処理部２３３内の所望の機能を使用するにあたり、使用機能に対応するＵＳＢデバイスドライバ１３３を使う必要がある。そのため、ＵＳＢデバイスドライバ１３３から対応するＵＳＢデバイスドライバを検索して割り当てる処理（デバイスドライバ適用方法）について、以下説明する。
【００４１】
図２は、本発明によるデバイスドライバ適用方法の一実施例を示すフローチャート図である。本実施例では、ホスト装置であるカーナビの実行する処理に沿って説明する。
【００４２】
Ｓ３０１では、ＵＳＢ接続検出をチェックする処理であり、携帯電話２がカーナビ１に接続されたことをＵＳＢホストコントローラ１５が検出し、ＵＳＢホストドライバ１３４へ通知することによって接続有りと判断する。Ｓ３０２では、ディスクリプタ取得要求を送出し、携帯電話２内のクラス仕様記述データ部２３２から格納されている情報を読み出す。ディスクリプタ取得要求は、ＵＳＢ規格にて標準デバイスリクエストとして定義されているコマンドの一つである。Ｓ３０３では、クラス仕様記述データ部２３２から読み出したディスクリプタを携帯電話２から受信し、内部に記憶する。ここでは、格納されている全てのディスクリプタを受信する。
【００４３】
Ｓ３０４では、受信記憶したディスクリプタに記述されているデバイスクラスＩＤ、インタフェースクラスＩＤ等の各種ＩＤと、カーナビ１が実装しているＵＳＢデバイスドライバ識別データ部１３２に格納されている設定ＩＤとを比較する。
【００４４】
例えば図４の例では、（ａ）のデバイスクラスＩＤ４０１と（ｂ）の「ｂＤｅｖｉｃｅＣｌａｓｓ」４０７、（ａ）のデバイスサブクラスＩＤ４０２と（ｂ）の「ｂＤｅｖｉｃｅＳｕｂＣｌａｓｓ」４０８、（ａ）のインタフェースクラスＩＤ４０３と（ｂ）の「ｂＩｎｔｅｒｆａｃｅＣｌａｓｓ」４１９、及び（ａ）のインタフェースサブクラスＩＤ４０４と（ｂ）の「ｂＩｎｔｅｒｆａｃｅＳｕｂＣｌａｓｓ」４２０の全てを比較し、全て一致するか否かの判断を行う。この例では、クラス仕様記述データ部２３２に記述されているクラスＩＤはベンダ固有であるため、一致しないことになる。
【００４５】
Ｓ３０５では、ＩＤの比較結果、一致するＩＤが見つかった場合は対応ＵＳＢデバイスドライバ有りと判断する。そして、Ｓ３０６にて、一致したＩＤに対応付けられるＵＳＢデバイスドライバ１３３内の機能対応ドライバを、デバイス制御用ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）として登録して、処理を終了する。ここで、デバイス制御用ＡＰＩとは、カーナビ全体制御処理部１３１がＵＳＢデバイスドライバをアクセスする時に起動する関数インタフェースであり、Ｓ３０６では、上記処理にて見つかった該当機能ドライバが起動されるよう関数インタフェースを設定する処理を行う。
【００４６】
Ｓ３０５において、一致するＩＤが見つからなかった場合は、対応ＵＳＢデバイスドライバなしと判断し、次のＳ３０７以下の処理に進む。
【００４７】
Ｓ３０７以降の処理では、使用機能対応インタフェース検索ドライバ１３３３を用いて、携帯電話の所望の機能（例えばモデム機能）に対応したインタフェースを検索するものである。携帯電話２側では、ＵＳＢデバイス機能処理部２３３に格納する各機能についてそれぞれインタフェースを割り当てているが、クラスＩＤがベンダ固有ＩＤの場合には、どの機能にどのインタフェース番号が割り当てられているかを、カーナビ１側では分からない。
【００４８】
そこで、使用機能対応インタフェース検索ドライバ１３３３は、Ｓ３０３処理で記憶したディスクリプタ情報に含まれる各インタフェース番号毎にパイプを確立し、モデム制御用コマンドを送出しその応答の有無で、モデム機能が割り当てられているインタフェース番号を検索するものである。
【００４９】
Ｓ３０７では、受信したディスクリプタの情報から、携帯電話２に設定されているインタフェース数、すなわち最大インタフェース番号ｍを検出する。Ｓ３０８では、検索するインタフェース番号の初期値を例えばｎ＝０に設定する。
【００５０】
Ｓ３０９では、インタフェース番号ｎ（初期値＝０）のパイプを確立する。Ｓ３１０では、モデム制御コマンド（具体的には、ＡＴコマンド等）を送出する。Ｓ３１１では、送出したモデム制御コマンドに対する応答待ちタイマを設定する。
【００５１】
Ｓ３１２では、設定した時間内に正常なコマンド応答コード（例えば、“ＯＫ”）があるかどうか判定する。ここで正常なコマンド応答が得られた場合には、Ｓ３１３にて、インタフェース番号ｎをモデム機能用インタフェースとしてメモリ１３内に記憶する。すなわち、モデム制御コマンドを送出して、所定の応答があったことをもって、インタフェース番号ｎはモデム機能で使用できるインタフェースであると判断する。
【００５２】
一方正常なコマンド応答が得られない場合（タイムアウト）には、モデム機能として使えるインタフェースではないと判断し、Ｓ３１４にてインタフェース番号ｎのパイプを削除する。そしてＳ３１５では、インタフェース番号ｎをｎ＋１に更新する。更新したインタフェース番号について、再度Ｓ３０９に戻り、パイプの確立とコマンド応答を繰り返す。Ｓ３１６でインタフェース番号ｎが最大値ｍを越えたら、処理を終了する。
【００５３】
図３は、上記図２のフローチャートにおけるコマンドシーケンスを示す図である。カーナビ１と携帯電話２との間で、モデム機能の割り当てられたインタフェースを検索するものである。ここでは、携帯電話２において、例えば電話帳交換機能処理部２３３１にはインタフェース番号０（ＩＦ＃０）を、モデム機能処理部２３３２にはインタフェース番号１（ＩＦ＃１）を、その他機能処理部２３３３にはインタフェース番号２（ＩＦ＃２）を割り当てているものとする。
【００５４】
使用機能対応インタフェース検索ドライバ１３３３は、最初にインタフェース番号０のパイプを確立しモデム制御用コマンド（ＡＴ）を送出する。しかしインタフェース番号０は、電話帳交換機能処理部２３３１に割り当てているので、このコマンドに対する応答は得られない。次に、インタフェース番号１のパイプを確立しモデム制御用コマンドを送出する。インタフェース番号１は、モデム機能処理部２３３２に割り当てているので、パイプはモデム機能処理部２３３２との間に確立され、コマンドに対する応答コード（ＯＫ）が返る。これにより、インタフェース番号１がモデム機能用インタフェースであると判断する。このようにして、モデム機能用として使用可能なインタフェース番号１をメモリ１３に記憶する（Ｓ３１３）。
【００５５】
その後、カーナビ全体制御処理部１３１が、モデム機能を指定してＵＳＢデバイスドライバ１３３を操作した場合、ＵＳＢデバイスドライバ１３３はモデム機能用としてメモリ１３内に記憶されたインタフェース番号を読み出す。ＵＳＢホストドライバ１３４はこれを経由して操作することで、携帯電話２内のモデム機能処理部２３３２との間にパイプが確立され、通信が可能となる。
【００５６】
使用機能対応インタフェース検索ドライバ１３３３は、モデム機能に限らず、携帯電話が備える他の機能に適用することが可能である。
【００５７】
以上説明したように、カーナビに接続した携帯電話に対し、携帯電話のクラスＩＤ等の識別情報に対応するデバイスドライバが見つからない場合がある。そのような場合、本実施例によれば、カーナビから携帯電話に所定のコマンドを送信することで通信可能なインタフェースを検索することができる。そして、検索したインタフェースを経由して携帯電話の所望の機能を利用できるようになるので、カーナビで利用できる携帯電話の機能を拡大することができる。
【００５８】
従って、カーナビに携帯電話を接続してデータ通信を行うような場合、接続される携帯電話のクラス仕様がベンダ毎に異なっていたとしても、より多くのベンダの携帯電話のモデム機能を利用できるようになり、カーナビの利便性の向上が図れる。
【００５９】
本実施例では、携帯電話側における新たな対応は不要であるので、カーナビで使用できる携帯電話が拡大でき、また、カーナビ側に後からデバイスドライバをインストールする必要もないので、特にカーナビのような組込みシステムにおいて効果的である。
【００６０】
上記実施例では、ホスト装置としてカーナビゲーション、周辺装置として携帯電話の場合を例に述べたが、本発明はこれに限らず、ホスト装置と周辺装置をＵＳＢ接続して通信するシステムおよび装置に適用できることは言うまでもない。
【００６１】
すなわち本発明によれば、ホスト装置において、接続される周辺装置のクラス仕様に対応したデバイスドライバがない場合であっても、機能的に使用可能であれば新たにデバイスドライバをインストールする等の作業をすることなく、周辺装置を使用することができる。
【００６２】
また、ホスト装置側におけるデバイスドライバでの対応のみで実施できるので、周辺装置は既存のままでよく、メモリに要するコストが増大する等の周辺装置側への負担を増加させることがない。
【図面の簡単な説明】
【００６３】
【図１】本発明によるデバイスドライバ適用方法を用いたＵＳＢ通信システムの一実施例を示す構成図。
【図２】本発明によるデバイスドライバ適用方法の一実施例を示すフローチャート図。
【図３】図２のフローチャートにおけるコマンドシーケンスを示す図。
【図４】ＵＳＢデバイスドライバ識別データ部１３２およびクラス仕様記述データ部２３２に格納されている情報の一例を示す図。
【符号の説明】
【００６４】
１…カーナビゲーション（ホスト装置）、２…携帯電話（周辺装置）、１０…ＵＳＢケーブル、１１…カーナビ全体制御部、１２…カーナビ側ＣＰＵ、１３…カーナビ側メモリ、１３１…カーナビ全体制御処理部、１３２…ＵＳＢデバイスドライバ識別データ部、１３３…ＵＳＢデバイスドライバ、１３３１…モデム機能対応ドライバ、１３３２…その他機能対応ドライバ、１３３３…使用機能対応インタフェース検索ドライバ、１３４…ＵＳＢホストドライバ、１４…ナビ周辺Ｉ／Ｆ部、１５…ＵＳＢホストコントローラ、２１…携帯全体制御部、２２…携帯電話側ＣＰＵ、２３…携帯電話側メモリ、２３１…携帯電話全体制御部、２３２…クラス仕様記述データ部、２３３…ＵＳＢデバイス機能処理部、２３３１…電話帳交換機能処理部、２３３２…モデム機能処理部、２３３３…その他機能処理部、２３４…ＵＳＢファンクションドライバ、２４…ＵＳＢファンクションコントローラ。
【図１】
2007052630.tif 000003
【図２】
2007052630.tif 000004
【図３】
2007052630.tif 000005
【図４】
2007052630.tif 000006