(57)【要約】【課題】初めて周辺機器をホスト装置に接続する時、容易かつ確実に周辺機器のドライバをホスト装置にインストールできるようにする。【解決手段】プリンタ１０２に加え、ＰＣ２００で動作するプリンタ１０２のドライバ１０４およびそのインストーラを格納したストレージ１０３をＵＳＢデバイス１１１、１１２としてＵＳＢハブ１１０に接続する。インストールフラグ１０５にはドライバ１０４のインストール状態を示す値を記録する。ＵＳＢハブ１１０にＰＣ２００が接続された時、インストールフラグ１０５の値が「未インストール」ならＰＣ２００がストレージ１０３のみにアクセスできるよう、また、インストールフラグ１０５の値が「インストール済み」ならＰＣ２００がストレージ１０３およびプリンタ１０２にアクセスできるようＵＳＢデバイス１１１、１１２、およびＵＳＢハブ１１０を制御する。【選択図】図１
2008139916.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に接続され周辺機器として所定の情報処理を行なう情報処理手段と、
前記ホスト装置が前記情報処理手段を用いるためにホスト装置上で動作するドライバソフトウェアおよび該ドライバソフトウェアのインストーラを格納したストレージ手段と、
前記情報処理手段、および前記ストレージ手段を前記ホスト装置と接続可能なインターフェース手段と、
前記ドライバソフトウェアが前記ホスト装置に対して未インストールであるか、またはインストール済みであるかのいずれかの値を記録するインストールフラグと、
前記インターフェース手段にホスト装置が接続された時、前記インストールフラグが前記未インストールを示す値となっていれば前記インストーラを読み出して実行すべく前記ホスト装置が前記ストレージ手段のみにアクセスできるよう前記インターフェース手段を制御し、一方、前記インストールフラグが前記インストール済みを示す値となっていれば前記ホスト装置が前記ストレージ手段および前記情報処理手段にアクセスできるよう前記インターフェース手段を制御する制御手段を有することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、前記インターフェース手段が、前記ホスト装置から前記情報処理手段、および前記ストレージ手段をそれぞれＵＳＢデバイスとしてアクセスできるよう接続可能なＵＳＢハブを用いて構成されることを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、前記インターフェース手段が、前記ホスト装置から前記情報処理手段、および前記ストレージ手段をコンポジットＵＳＢデバイスとしてアクセスできるよう接続可能なＵＳＢデバイスを用いて構成されることを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置において、前記制御手段は、前記インターフェース手段を介して前記ホスト装置から、前記ドライバソフトウェアがインストール完了した旨の通知を受信し、該通知の受信に応じて前記インストールフラグに前記インストール済みを示す値を設定することを特徴とする情報処理装置。
【請求項５】
請求項１に記載の情報処理装置において、ユーザが行なうインストールフラグ解除操作に応じて、前記インストールフラグに前記未インストールを示す値を設定することを特徴とする情報処理装置。
【請求項６】
請求項１に記載の情報処理装置において、前記情報処理手段として画像記録手段を含むことを特徴とする情報処理装置。
【請求項７】
請求項１に記載の情報処理装置において、前記情報処理手段として画像読み取り手段を含むことを特徴とする情報処理装置。
【請求項８】
ホスト装置に接続され周辺機器として所定の情報処理を行なう情報処理手段と、前記ホスト装置が前記情報処理手段を用いるためにホスト装置上で動作するドライバソフトウェアおよび該ドライバソフトウェアのインストーラを格納したストレージ手段と、前記情報処理手段、および前記ストレージ手段を前記ホスト装置と接続可能なインターフェース手段とを有する情報処理装置の制御方法において、
前記ドライバソフトウェアが前記ホスト装置に対して未インストールであるか、またはインストール済みであるかのいずれかの値を記録するインストールフラグを用い、
前記インターフェース手段にホスト装置が接続された時、前記インストールフラグが前記未インストールを示す値となっていれば前記インストーラを読み出して実行すべく前記ホスト装置が前記ストレージ手段のみにアクセスできるよう前記インターフェース手段を制御し、一方、前記インストールフラグが前記インストール済みを示す値となっていれば前記ホスト装置が前記ストレージ手段および前記情報処理手段にアクセスできるよう前記インターフェース手段を制御する制御過程を含むことを特徴とする情報処理装置の制御方法。
【請求項９】
請求項８に記載の情報処理装置の制御方法において、前記インターフェース手段が、前記ホスト装置から前記情報処理手段、および前記ストレージ手段をそれぞれＵＳＢデバイスとしてアクセスできるよう接続可能なＵＳＢハブを用いて構成されることを特徴とする情報処理装置の制御方法。
【請求項１０】
請求項８に記載の情報処理装置の制御方法において、前記インターフェース手段が、前記ホスト装置から前記情報処理手段、および前記ストレージ手段をコンポジットＵＳＢデバイスとしてアクセスできるよう接続可能なＵＳＢデバイスを用いて構成されることを特徴とする情報処理装置の制御方法。
【請求項１１】
請求項８に記載の情報処理装置の制御方法において、前記インターフェース手段を介して前記ホスト装置から、前記ドライバソフトウェアがインストール完了した旨の通知を受信し、該通知の受信に応じて前記インストールフラグに前記インストール済みを示す値を設定することを特徴とする情報処理装置の制御方法。
【請求項１２】
請求項８に記載の情報処理装置の制御方法において、ユーザが行なうインストールフラグ解除操作に応じて、前記インストールフラグに前記未インストールを示す値を設定することを特徴とする情報処理装置の制御方法。
【請求項１３】
請求項８に記載の情報処理装置の制御方法において、前記情報処理手段として画像記録手段を含むことを特徴とする情報処理装置の制御方法。
【請求項１４】
請求項１に記載の情報処理装置の制御方法において、前記情報処理手段として画像読み取り手段を含むことを特徴とする情報処理装置の制御方法。
【請求項１５】
請求項１から８までのいずれか１項に記載の情報処理装置の制御方法を実施すべく、該情報処理装置の制御手段が前記インターフェース手段、およびインストールフラグを制御する制御過程を含むことを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置に接続され周辺機器として所定の情報処理を行なう情報処理手段を有する情報処理装置、情報処理装置の制御方法、および情報処理装置の制御プログラムに関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（以下ＰＣ）のようなホスト装置に接続して用いられる周辺機器として複合機化された装置が現われている。たとえば、プリンタでは、印刷出力機器としてＰＣに接続するために、ＵＳＢ（ユニバーサル・シリアル・バス）などのインターフェースが設けられている。さらに、このようなプリンタでは、メモリカードリーダを有し、デジタルカメラなどで撮影されたメモリカード内の画像をＰＣレスでプリンタへ直接印刷できるようになっているものがある。
【０００３】
上記のようにメモリカードリーダを設けたプリンタでは、ＵＳＢのようなインターフェースを介して、メモリカードもＰＣから認識させることにより、ＰＣカードリーダとしての機能も持たせる構成が知られている（たとえば下記の特許文献１参照）。
【０００４】
このように、複数の機能を持つＰＣ周辺機器は、その複数の機能をＰＣに認識させることにより、ＰＣ側から見るとあたかも複数の機器が繋がっているように動作させることができる。
【０００５】
これらの複数の機能を別々の機器としてＰＣに認識させるためには周辺機器側のインターフェース制御だけでなく、ＰＣ側のＯＳにドライバをインストールする必要がある。最新のＯＳではキーボード、マウスなどの一般的な機器のドライバは既にＯＳに持っている。先に例を挙げたメモリカードリーダやハードディスクなど、ＵＳＢ規格ではストレージクラスと呼ばれるクラスの機器も同様である。したがって、キーボード、マウス、ストレージクラスのメモリカードリーダやハードディスクなどのデバイスは、ＵＳＢを介して接続するだけで、自動でドライバがロードされ、直ちにメモリカードやハードディスクの内容にアクセスできるようになる。
【特許文献１】特開２００１−９６８６８号公報
【特許文献２】特開２００３−１５０５３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一方、プリンタやイメージスキャナなど、制御が機種毎に大きく違う周辺機器のドライバを共通化することは非常に難しい。そこで、プリンタやイメージスキャナなどの周辺機器については、各メーカがそれぞれの専用ドライバを記録したＣＤなどのメディアを周辺機器の製品パッケージに同梱することが必要であった。
【０００７】
通常、ドライバをインストールした後に周辺機器をＵＳＢで接続すれば、その周辺機器がＯＳに認識され、使用できるようになる。しかし、もしユーザがその手順を知らずにドライバをインストールしないで、周辺機器を先に接続するとＯＳでダミーのドライバを割り当ててしまうことがあり、この場合は後からドライバをインストールしても機器を正常に動作させることができない、という問題があった。また、ＯＳによってはこの状態から復帰するには、インストールされたダミードライバを特別な手順により削除する必要があった。
【０００８】
専用ドライバを記録したＣＤなどのメディアを同梱しなくても良いような構成として、周辺機器を複合機能化し、周辺機器にストレージクラスを搭載し、このストレージ内にドライバを格納しておく構成が知られている（たとえば上記の特許文献２）。
【０００９】
このような構成によれば、ドライバＣＤを同梱する必要はなくなるが、ダミードライバによって動作しなくなる問題と、ダミードライバの削除の必要がある問題は解決できない。
【００１０】
また、ドライバをインストールする前にユーザが誤って機器をＰＣに接続してしまわないように、周辺機器によってはＵＳＢポートに手順を記した保護シールを貼っている例もあるが、これはユーザの注意を促して問題を回避しようするだけのものであり、根本解決ではない。また、このような配慮のために、シールの印刷費や、シール貼付工数の負担増となる問題があった。
【００１１】
本発明の課題は、上述の問題を解決し、初めて周辺機器をホスト装置に接続する時に、容易かつ確実に周辺機器のドライバソフトウェアをホスト装置にインストールでき、周辺機器を正常に動作させることができるようにすることにある。
【課題を解決するための手段】
【００１２】
本発明は、ホスト装置に接続され周辺機器として所定の情報処理を行なう情報処理手段と、前記ホスト装置が前記情報処理手段を用いるためにホスト装置上で動作するドライバソフトウェアおよび該ドライバソフトウェアのインストーラを格納したストレージ手段と、前記情報処理手段、および前記ストレージ手段を前記ホスト装置と接続可能なインターフェース手段とを有する情報処理装置、その制御方法、およびその制御プログラムにおいて、前記ドライバソフトウェアが前記ホスト装置に対して未インストールであるか、またはインストール済みであるかのいずれかの値を記録するインストールフラグを用い、前記インターフェース手段にホスト装置が接続された時、前記インストールフラグが前記未インストールを示す値となっていれば前記インストーラを読み出して実行すべく前記ホスト装置が前記ストレージ手段のみにアクセスできるよう前記インターフェース手段を制御し、一方、前記インストールフラグが前記インストール済みを示す値となっていれば前記ホスト装置が前記ストレージ手段および前記情報処理手段にアクセスできるよう前記インターフェース手段を制御する構成を採用した。
【発明の効果】
【００１３】
上記構成によれば、ホスト装置に情報処理手段のドライバソフトウェアが未インストールである状態では、ホスト装置がストレージ手段のみにアクセスできるようインターフェース手段が制御される。このため、従来のように誤まったドライバやダミードライバがインストールされてしまうことにより発生する問題を回避することができる。情報処理手段のドライバソフトウェアは、ユーザ操作や、デバイス接続時の自動処理によりストレージ手段に用意されているインストーラを実行することにより、容易かつ確実にインストールすることができる。このように、本発明によれば、初めて周辺機器をホスト装置に接続する時に、容易かつ確実に周辺機器のドライバソフトウェアをホスト装置にインストールでき、周辺機器を正常に動作させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、発明を実施するための最良の形態の例として２つの実施例を示す。以下の各実施例では、周辺機器としてプリンタを例示し、そのドライバソフトウェアをホスト装置であるＰＣに確実にインストールさせるための構成を例示する。なお、以下の周辺機器としてのプリンタはあくまでも一例であり、本発明はイメージスキャナにストレージという構成、その両方、プリンタとイメージスキャナの複合機にストレージを搭載した構成などとして実施でき、本発明における周辺機器の主機能はプリンタである必要はない。
【実施例１】
【００１５】
図１と図３は本発明で周辺機器をコンパウンドデバイスとした構成を示している。一般にＵＳＢ機器において、コンパウンド構成とは複数の機能部と、ＵＳＢハブを内蔵した構成をいう。
【００１６】
図において、周辺機器１００は、制御部（制御手段）１０１、本周辺機器の主な情報処理を行なう情報処理手段としてのプリンタ（画像記録手段）１０２、およびストレージ（ストレージ手段）１０３を含む。ストレージ１０３には、ホスト装置としてのＰＣ２００のＯＳ上でプリンタ１０２を動作させるためのドライバ１０４が格納されている。
【００１７】
周辺機器１００は、ＰＣ２００と接続するインターフェース手段としてＵＳＢハブ１１０を有する。ＵＳＢハブ１１０には、プリンタ１０２をＵＳＢプリンタとして動作させるプリンタクラスのＵＳＢデバイス１１１、およびストレージ１０３をＵＳＢストレージとして動作させるストレージクラスのＵＳＢデバイス１１２が接続されている。
【００１８】
制御部１０１は、ＣＰＵおよびＲＡＭ、後述のプログラムを記録したＲＯＭ、あるいはさらに不揮発ＲＯＭなどのメモリデバイスから構成される。後述する制御プログラムは、たとえばこのＲＯＭ部に記録しておくことができる。周辺機器１００の各ブロックは、制御部１０１に対してバス、制御線などで接続され、制御部１０１の制御を受ける。
【００１９】
制御部１０１のメモリ部の適当なアドレスにはインストールフラグ１０５が割り付けられている。インストールフラグ１０５は、後述のようにそのフラグの状態によって、ＵＳＢハブ１１０とプリンタクラスＵＳＢデバイス１１１との接続状態を変化させるために用いられる。
【００２０】
インストールフラグ１０５は、好ましくは不揮発性のＲＯＭやバッテリーバックアップメモリ、あるいは場合によってはハードディスクなど、ＡＣ電源オフ／オンによってメモリ内容が消えないメモリデバイス上に配置する。
【００２１】
インストールフラグ１０５は、”未インストール”と”インストール済み”の２つの状態を記憶でき、工場出荷時は”未インストール”となっている。もちろん、ストレージ１０３にインストールフラグの状態を記録しておいてもよい。
【００２２】
インストールフラグ１０５は、制御部１０１により”未インストール”と”インストール済み”の２つの状態に切り替えられる。この状態に応じて後述のように周辺機器１００内部のＵＳＢ接続を変化させる制御が行なわれる。なお、図１、図３ではインストールフラグ１０５は制御部１０１に内蔵されているが、ストレージ１０３は制御部の他の記憶装置と兼用してもかまわないので、たとえばストレージ１０３に記録されていてもよい。
【００２３】
プリンタ１０２は、インクジェット方式など適当な記録方式で記録媒体に印刷する能力を有するとともに、その他給紙、排紙等の機能を有するプリンタエンジンから構成され、制御部１０１によって制御される。
【００２４】
ストレージ１０３は、ＲＯＭ、ＲＡＭ、ＨＤＤなどから構成された記憶装置で、ＰＣ２００のＯＳ上でプリンタ１０２を動作させるためのドライバ１０４を記録している。これは読み書き可能であっても読み込み専用であってもかまわないし、先述の制御部１０１のＲＯＭ、ＲＡＭなどと共用してもかまわない。
【００２５】
ドライバ１０４は、ＰＣ２００のＯＳで動作するデバイスドライバである。ドライバ１０４は、ＰＣ２００にプリンタクラスＵＳＢデバイス１１１を制御する機能と、後述するがＰＣ２００から周辺機器１００に対してドライバのインストールが完了したことを伝える機能を提供する。また、ドライバ１０４には、ドライバ１０４自身をインストールするインストーラ、インストーラをＰＣ２００で自動実行する設定ファイルが含まれている。
【００２６】
ＵＳＢハブ１１０とプリンタクラスＵＳＢデバイス１１１とストレージクラスＵＳＢデバイス１１２は全てＵＳＢの規格を満たす。これらとＰＣ２００はそれぞれ図のようにＵＳＢで接続されている。図中［Ｈ］をホスト側、［Ｄ］がデバイス側の接続を表す。本実施例ではホスト／デバイスの区別は図示の通りとするが、ＵＳＢＯｎＴｈｅＧｏなど別の規格を用いる場合、ホスト／デバイスの組合せはこの通りでなくてもよい。
【００２７】
ＵＳＢハブ１１０は図示の通りに接続され、インストールフラグの状態により制御部１０１の制御によってストレージクラスＵＳＢデバイス１１２との接続をオン／オフできるものとする。
【００２８】
プリンタクラスＵＳＢデバイス１１１はＵＳＢデバイス機能を持ち、ディスクリプタ、エンドポイントの構成は図８に示すようになっている。図８に示すように、プリンタクラスＵＳＢデバイス１１１はディスクリプタをホストに返したりデータ送受信できる。また、本実施例の周辺機器１００はプリンタ１０２を有しているため、プリンタクラスを実装するものとする。もし、周辺機器１００が情報処理手段としてイメージスキャナなどを持つ場合は、さらに別にスチルイメージクラスをコンポジット／コンパウンド構成で持つ必要がある。
【００２９】
また、ストレージクラスＵＳＢデバイス１１２はＵＳＢデバイス機能を持ち、ディスクリプタ、エンドポイントの構成は図７に示すようになっている。ＵＳＢデバイス１１２は図７のように、該当クラスのディスクリプタをホストに返したりデータ送受信でき、ストレージ１０３をホストからアクセスできるものとする。
【００３０】
ＰＣ２００は制御部２０１、ストレージ２０２、ＵＳＢホスト２０３などから構成される。ＰＣ２００は一般的なＰＣでもいいし、ＰＤＡやシンクライアントであってもかまわない。特に、本発明ではメモリ・ハードディスク容量が小さくＯＳ付属ドライバを持たないＰＤＡやシンクライアントにおいて効果を発揮するものである。
【００３１】
制御部２０１はＣＰＵ、ストレージ２０２と、それ以外のＲＯＭ、ＲＡＭ等のストレージ、ＵＳＢホスト２０３とそれ以外のインターフェースなど、ＰＣを構成するのに必要な全てを含み、それぞれバスおよび制御線で接続されている。本実施例と直接関係のないストレージ２０２とＵＳＢホスト２０３以外の構成については図示を省略してある。
【００３２】
ＰＣ２００のストレージ２０２は、一般的なＰＣではＨＤＤやメモリ、ＰＤＡやシンクライアントではＲＯＭ、ＲＡＭなどのメモリから構成され、上述のドライバ１０４はこのストレージ２０２上にインストールされる。
【００３３】
また、ＰＣ２００のＵＳＢホスト２０３はＵＳＢ規格のホスト機能を有し、ＵＳＢデバイス機器を接続、制御でき、ＵＳＢプロトコルに沿ってデータの送受信を行なうことができる。
【００３４】
次に上記構成における動作につき説明する。ここでは、まず周辺機器１００をＰＣ２００に接続して動作可能になるまでの流れを説明する。
【００３５】
図４は、周辺機器１００の内部処理の流れを、また、図５はドライバ１０４のインストーラの動作を示している。特に図４、図５のそれぞれのフローと全体の動作は並行しているので、以下では適宜、各図のステップ番号を引用する。
【００３６】
また、図１、図３は、ＰＣ２００と周辺機器１００が既にＵＳＢケーブルで接続された状態を示している。以下では、周辺機器１００が出荷され、ユーザが購入した直後の状態、すなわちＰＣ２００と周辺機器１００がまだ接続されていない状態から説明する。以下では、まずユーザが周辺機器１００をＰＣ２００と接続した時のおおまかな流れ、および図５のドライバ１０４のインストーラの制御を説明し、続いて図４の周辺機器１００側の制御の流れを詳細に説明する。
【００３７】
周辺機器１００の出荷直後の初期状態ではインストールフラグ１０５の値は”未インストール”である。制御部１０１によりインストールフラグ１０５の値が”未インストール”であることが確認されると（後述のステップＳ４０２）、内部のＵＳＢの接続は、図３のようになる。すなわち、ＵＳＢハブ１１０にプリンタクラスＵＳＢデバイス１１１が未接続の状態となる（後述のステップＳ４０３）。
【００３８】
一方、この状態においても、前述の通り、制御部１０１によってストレージ１０３がストレージクラスＵＳＢデバイス１１２に接続されており、ストレージ１０３に対してＳＣＳＩコマンドによってアクセスできるようになっている。
【００３９】
近年のＯＳでは、メモリカードリーダ、デジタルカメラなどの普及により、ＵＳＢマス・ストレージクラスのドライバが同梱されているのが一般的である。また、ＵＳＢハブのドライバについても同様である。本実施例のＰＣ２００のＯＳにおいても、このように一般的なストレージクラスドライバ、ＵＳＢハブドライバがはじめからインストールされているものとする。
【００４０】
ここで、ユーザが、周辺機器１００とＰＣ２００をＵＳＢ接続すると、ＰＣ２００のＯＳには既にＵＳＢハブドライバ、マス・ストレージクラスのドライバがインストールされているので、まず、ＵＳＢハブ１１０がＰＣ２００から認識される。これによりＵＳＢハブ１１０がＵＳＢデバイスとしてＰＣ２００にマウントされる。その後、ＵＳＢハブ１１０に接続されたストレージクラスＵＳＢデバイス１１２も認識され、マウントされる。
【００４１】
ここで、ＰＣ２００のＯＳでは、周辺機器１００のストレージ１０３がドライブの一つとしてマウントされるものとする。なお、ファイルにアクセスするパス名に「ドライブ」の概念を用いないＯＳも存在するが、そのようなＯＳのファイルシステムでは、ストレージ１０３はルートディレクトリから始まるディレクトリツリーの一部としてマウントされる。
【００４２】
このようにしてストレージ１０３内のドライバ１０４に含まれるインストーラが実行できるようになる。該インストーラを実行する手法の１つとしては、ユーザが取扱説明書などの記載に基づき、手動でストレージ１０３内のドライバ１０４に含まれるインストーラを起動する方法が考えられる。また、ＯＳによっては、ドライブやメディアをファイルシステムにマウントした時に自動的に特定の名前の実行ファイルを起動できるものがあるが、このような機構を利用してインストーラを起動してもよい。これらのいずれかの方法によりインストーラが起動され、ドライバ１０４がＰＣ２００のストレージ２０２上にインストールされる。
【００４３】
インストーラは、図５に示すような流れでドライバのインストールを行なう。ステップＳ５０１でユーザにインストールの確認、ファイルのインストール場所などインストールに必要な情報があればユーザの入力を促す。ステップＳ５０２でドライバのインストールを行なう。実施例１の場合、ドライバ１０４はプリンタクラスＵＳＢデバイス１１１のドライバである。
【００４４】
ステップＳ５０３でドライバのインストールが完了したことをＰＣ２００から周辺機器１００へ通知する。この通知の方法としては、既にマウントされているストレージクラスＵＳＢデバイス１１２を用いる場合、特定のベンダリクエストを送る、特定のＳＣＳＩコマンドを送る、デバイス１１２の特定のセクタに特定の値を書き込む、等が考えられる。また、ＵＳＢハブ１１０に対してベンダリクエストを送る方法も考えられる。
【００４５】
上記いずれかの方法でドライバのインストール完了がＰＣ２００から通知される（後述のステップＳ４０５）と、周辺機器１００ではインストールフラグ１０５をインストール済み状態とする（後述のステップＳ４０６）。さらに、プリンタクラスＵＳＢデバイス１１１をＵＳＢハブ１１０に内部でＵＳＢ接続する（後述のステップＳ４１０）。これにより、ＰＣ２００では、ＵＳＢハブ１１０を介してＵＳＢプリンタデバイスが接続されたと認識し、既にインストール済みとなっているプリンタクラスドライバをマウントする。
【００４６】
以上のようにして、ユーザが周辺機器１００をＰＣ２００に接続するだけで、プリンタのドライバをＰＣ２００にインストールすることができる。
【００４７】
次に、図４の周辺機器１００側の制御の流れをより詳細に説明する。
【００４８】
図４の処理は周辺機器１００のＡＣ電源、ソフトスイッチ、ともにオン状態で開始され、まず、ステップＳ４０１で周辺機器内の初期化が行われる。
【００４９】
ステップＳ４０２でインストールフラグをチェックする。先述の通り工場出荷時フラグは”未インストール”である。”未インストール”ならステップＳ４０３へ、”インストール済み”ではステップＳ４１０へ処理を進める。
【００５０】
ステップＳ４０３で内部ＵＳＢの接続をストレージクラスのみの構成とする。具体的には、ＵＳＢハブ１１０を制御部１０１から制御することにより、ストレージクラスＵＳＢデバイス１１２はＵＳＢハブ１１０と接続されるが、プリンタクラスＵＳＢデバイス１１１はＵＳＢハブ１１０と非接続状態になり、図３の状態になる。
【００５１】
ステップＳ４０４では通常の周辺機器の待機状態となり、通常の周辺機器の動作はここで行なう。ＵＳＢの各リクエストなどあれば応答し、ストレージクラスＵＳＢデバイス１１２に対して、各リクエストがあれば応答し、ＳＣＳＩコマンドが来たら必要に応じてストレージ１０３をアクセスし応答する。
【００５２】
同時にステップＳ４０５でインストール完了通知を待ち、ＰＣ２００から通知が来たらステップＳ４０６へ処理を移す。
【００５３】
ステップＳ４０６においてインストールフラグを”インストール済み”にしてステップＳ４１０の処理へ進む。ステップＳ４１０でプリンタクラスＵＳＢデバイス１１１もＵＳＢハブ１１０に接続する。ストレージクラスＵＳＢデバイス１１２もＵＳＢハブ１１０へ接続されたままである。
【００５４】
ステップＳ４１１で通常の周辺機器の待機状態となる。ステップＳ４０４と同様の処理に加えて、プリンタクラスＵＳＢデバイス１１１に対するＵＳＢの各リクエストに応答する。またＰＣ２００からのプリントデータなども受け取りプリンタ１０２を制御してプリントしたり、ＰＣ２００から要求があれば各ステータスを送ったりする。
【００５５】
ステップＳ４１２では、ユーザのインストールフラグ解除操作が周辺機器１００の外部入力手段で行なわれていないかをチェックする。この解除操作は、たとえば液晶パネルとスイッチなどによって行なうものとする。あるいは、ＰＣ２００側での適当なユーザ操作に応じて特定のＵＳＢベンダリクエストを発生して解除操作を行なうようにしてもよい。
【００５６】
通常、ユーザが周辺機器を購入してＰＣ２００に接続するだけであればこのようなインストールフラグ解除操作手順は必要ない。しかし、他のＰＣに接続する場合や、周辺機器１００を他人に譲る場合などには、この解除操作を行なうことによってインストールフラグを工場出荷状態と同じ”未インストール”状態に戻すことができる。もしインストールフラグ１０５の解除操作が行われたらステップＳ４１３へ、そうでなければステップＳ４１１で待機状態を続行する。ステップＳ４１３ではインストールフラグを”未インストール”状態としステップＳ４０３へ処理を移す。
【００５７】
以上のようにして、本実施例によれば、ＰＣ２００にドライバソフトウェアが未インストールである状態では、ＰＣ２００がストレージ１０３のみにアクセスできるようＵＳＢインターフェースが制御される。このため、従来のように誤まったドライバやダミードライバがインストールされてしまうことにより発生する問題を回避することができる。ドライバソフトウェアは、ユーザ操作や、デバイス接続時の自動処理によりストレージ手段に用意されているインストーラを実行することにより、容易かつ確実にインストールすることができる。すなわち、ユーザが周辺機器１００をＰＣ２００に接続するだけで、ユーザの手をほとんど煩わせることなくプリンタのドライバをＰＣ２００にインストールすることができる。
【実施例２】
【００５８】
以上では、周辺機器１００をハブ内蔵のいわゆるコンパウンド構成とした実施例を示したが、もちろん、周辺機器１００はハブを内蔵しないコンポジット構成とする場合でも同様の制御を行うことができる。以下では、上述の構成部材と同等の部材については、説明を簡略化するか、あるいは省略するものとする。
【００５９】
図２は、本発明で周辺機器１００をコンポジットデバイスとしたシステムの構成を示している。一般にＵＳＢ機器において、コンポジット構成とは複数の機能部を内蔵するが、ＵＳＢハブは内蔵しない構成をいう。
【００６０】
図２ではプリンタとストレージのコンポジット構成を示しているが、実施例１の場合と同様、イメージスキャナにストレージという構成、あるいはその両方、プリンタとイメージスキャナ、ストレージを搭載した複合機でも同様に本発明は実施できる。
【００６１】
本実施例の周辺機器１００は、制御部１０１、プリンタ１０２、ストレージ１０３、ドライバ１０４、ＵＳＢデバイス１２０からなり、制御部１０１以外の各部は制御部１０１にバス、制御線などで接続され、制御部１０１の制御を受ける。
【００６２】
本実施例でも、制御部１０１のメモリ部の適当なアドレスにはインストールフラグ１０５が割り付けられている。インストールフラグ１０５は、後述のようにそのフラグの状態によって、ＵＳＢハブ１１０とプリンタクラスＵＳＢデバイス１１１との接続状態を変化させるために用いられる。
【００６３】
インストールフラグ１０５は、”未インストール”と”インストール済み”の２つの状態を記憶し、工場出荷時は”未インストール”となっている。もちろん、ストレージ１０３にインストールフラグの状態を記録しておいてもよい。また、後述する制御プログラムは、たとえば制御部１０１のＲＯＭ部に記録しておく。
【００６４】
プリンタ１０２は、インクジェット方式など適当な記録方式のプリンタエンジンから構成される。
【００６５】
ストレージ１０３は、ＲＯＭ、ＲＡＭ、ＨＤＤなどから構成された記憶装置で、ＰＣ２００のＯＳ上でプリンタ１０２を動作させるためのドライバ１０４を記憶している。これは読み書き可能であっても読み込み専用であってもかまわないし、先述の制御部１０１のＲＯＭ、ＲＡＭなどと共用してもかまわない。
【００６６】
ドライバ１０４は、ＰＣ２００のＯＳで動作するデバイスドライバである。ドライバ１０４は、ＰＣ２００にプリンタクラスＵＳＢデバイス１１１を制御する機能と、後述するがＰＣ２００から周辺機器１００に対してドライバのインストールが完了したことを伝える機能を提供する。また、ドライバ１０４には、ドライバ１０４自身をインストールするインストーラ、インストーラをＰＣ２００で自動実行する設定ファイルが含まれている。
【００６７】
ＵＳＢデバイス１２０はＵＳＢの規格を満たす。これとＰＣ２００はそれぞれ図のようにＵＳＢで接続されている。本実施例でも、図中［Ｈ］をホスト側、［Ｄ］がデバイス側の接続を示す。本実施例ではホスト／デバイスの区別は図示の通りとするが、ＵＳＢＯｎＴｈｅＧｏなど別の規格を用いる場合、ホスト／デバイスの組合せはこの通りでなくてもよい。
【００６８】
本実施例では、ＵＳＢデバイス１２０は、ストレージクラスと、２つのデバイスとしての機能を切り替える形で有するコンポジットデバイスとして構成する。
【００６９】
ＵＳＢデバイス１２０の１つ目のデバイスクラスはストレージクラスで、図７のようなディスクリプタ、エンドポイントの構成で、ストレージクラスのディスクリプタをＰＣ２００に返したりデータ送受信でき、ストレージ１０３をホストからアクセスできる。
【００７０】
ＵＳＢデバイス１２０の２つ目のデバイスクラスは、周辺機器がプリンタであれば、図９のようにストレージクラスとプリンタクラスの複数のディスクリプタとインターフェースを持ったコンポジット構成のＵＳＢデバイスとしての機能を有する。
【００７１】
図７および図９に示したディスクリプタは後述のように切り換えて用いられる。すなわち、図７および図９に示したディスクリプタのうち、たとえばデバイスディスクリプタのベンダーＩＤ、プロダクトＩＤ、シリアルナンバーと、ストリングディスクリプタのプロダクト名などはＵＳＢデバイスの構成により異なるものを用いる。たとえば、図７の構成と、図９の構成では、上記のディスクリプタにはそれぞれ違う文字列を用いる。また、当然ながら、図７の構成から図９の構成へＵＳＢデバイスが切り替わった際には、ＰＣ２００から見て全く別のデバイスとして認識されなければならない。
【００７２】
もし、周辺機器１００がさらにイメージスキャナをもつ複合機であれば、このイメージスキャナは、スチルイメージクラス、またはベンダークラスのインターフェースと各エンドポイントを持つデバイスクラスとして図９のコンポジット構成に追加することができる。
【００７３】
本実施例では、ＰＣ２００は、実施例１と同様に構成されているものとし、ここでは詳細な説明は省略するが、ＰＣ２００は、ＵＳＢホスト２０３を介して周辺機器１００のＵＳＢデバイス１２０と接続される。
【００７４】
次に上記構成における動作につき説明する。ここでは、まず周辺機器１００をＰＣ２００に接続して動作可能になるまでの流れを説明する。
【００７５】
図６は、実施例１の図４に相当し、周辺機器１００の内部処理の流れを示している。インストーラの動作は実施例１と同じで図５の通りとする。
【００７６】
また図２ではＰＣ２００と周辺機器１００は既にＵＳＢケーブルで接続された状態を示しているが、以下では、周辺機器１００が出荷され、ユーザが購入した直後の状態、すなわちＰＣ２００と周辺機器１００がまだ接続されていない状態から説明する。以下では、まずユーザが周辺機器１００をＰＣ２００と接続した時のおおまかな流れ、および図５のドライバ１０４のインストーラの制御を説明し、続いて図６の周辺機器１００側の制御の流れを詳細に説明する。
【００７７】
周辺機器１００の出荷直後の初期状態ではインストールフラグは”未インストール”である。制御部１０１によりインストールフラグ１０５の値が”未インストール”であることが確認されると（後述のステップＳ６０２）、ＵＳＢデバイス１２０をストレージクラスのみの構成とする（後述のステップＳ６０３）。すなわち、制御部１０１の制御によりストレージ１０３（のみ）がＵＳＢデバイス１２０のストレージクラスＵＳＢデバイスとなっており、ＵＳＢデバイス１２０に対するＳＣＳＩコマンドによってストレージ１０３にアクセスできるようになっている。
【００７８】
近年のＯＳでは、メモリカードリーダ、デジタルカメラなどの普及により、ＵＳＢマス・ストレージクラスのドライバが同梱されているのが一般的である。また、ＵＳＢハブのドライバについても同様である。本実施例のＰＣ２００のＯＳにおいても、このように一般的な（非コンポジットの）ストレージクラスドライバ、ＵＳＢハブドライバがはじめからインストールされているものとする。ただし、コンポジット対応のストレージクラスドライバはまだ最新のＯＳにしか同梱されていないことが考えられるが、この点を考慮してコンポジット対応のストレージクラスドライバはドライバ１０４に含めておけばよい。
【００７９】
ＰＣ２００のＯＳが非コンポジットのストレージクラスドライバのみしか有していない場合でも、上記のように初期状態ではＵＳＢデバイス１２０をストレージクラスのみのＵＳＢデバイスとして動作させれば問題なく後述の動作が可能となる。
【００８０】
ここで周辺機器１００とＰＣ２００がユーザによって接続すると、ＰＣ２００のＯＳに既にインストール済みのマス・ストレージクラスのドライバが動作し、ストレージクラスＵＳＢデバイスとなっているＵＳＢデバイス１２０が認識され、マウントされる。
【００８１】
ここで、ＰＣ２００のＯＳでは、周辺機器１００のストレージ１０３がドライブの一つとしてマウントされるものとする。なお、ファイルにアクセスするパス名に「ドライブ」の概念を用いないＯＳも存在するが、そのようなＯＳのファイルシステムでは、ストレージ１０３はルートディレクトリから始まるディレクトリツリーの一部としてマウントされる。
【００８２】
このようにしてストレージ１０３内のドライバ１０４に含まれるインストーラが実行できるようになる。該インストーラを実行する手法の１つとしては、ユーザが取扱説明書などの記載に基づき、手動でストレージ１０３内のドライバ１０４に含まれるインストーラを起動する方法が考えられる。また、ＯＳによっては、ドライブやメディアをファイルシステムにマウントした時に自動的に特定の名前の実行ファイルを起動できるものがあるが、このような機構を利用してインストーラを起動してもよい。これらのいずれかの方法によりインストーラが起動され、ドライバ１０４がＰＣ２００のストレージ２０２上にインストールされる。
【００８３】
インストーラの動作フローは図５に示した通りである。すなわち、ステップＳ５０１でユーザにインストールの確認、ファイルのインストール場所などインストールに必要な情報があればユーザの入力を促す。ステップＳ５０２でドライバのインストールを行なう。本実施例の場合、ドライバ１０４は図９のコンポジット構成の定義ファイルと、コンポジット対応のプリンタクラスドライバ（あるいはさらにコンポジット対応のストレージドライバ）である。
【００８４】
ステップＳ５０３でドライバのインストールが完了したことをＰＣ２００から周辺機器１００へ通知する。この通知の方法としては、既にマウントされているストレージクラスデバイスを用いる場合、特定のベンダリクエストを送る、特定のＳＣＳＩコマンドを送る、ストレージデバイスの特定のセクタに特定の値を書き込む、等が考えられる。また、ＵＳＢデバイス１２０に対してベンダリクエストを送る方法も考えられる。
【００８５】
上記いずれかの方法でドライバのインストール完了がＰＣ２００から通知される（後述のステップＳ６０５）と、周辺機器１００ではインストールフラグ１０５をインストール済み状態とする（後述のステップＳ６０６）。さらに、ＰＣ２００と周辺機器１００とのＵＳＢ接続を、制御部１０１がＵＳＢデバイス１２０を制御することによって、切断する（後述のステップＳ６０７）。なお、このとき、ＰＣ２００と周辺機器１００との物理的なＵＳＢケーブルはつながったままである。
【００８６】
そして、コンポジットＵＳＢデバイスの、ディスクリプタ、エンドポイント、インターフェースの構成を図７のものから図９のものに切り替える。その後、接続を切断し、ある程度の間隔を置いた後、ＰＣ２００と周辺機器１００との電気的な接続を再開する。
【００８７】
ＰＣ２００では、先程まで接続されていたものとは別のストレージクラスとプリンタクラスの両方をそなえたコンポジットＵＳＢ機器が接続されたと認識する。すなわち、ＰＣ２００は既にインストール済みのコンポジット対応のストレージクラスドライバと、プリンタクラスドライバをマウントする。
【００８８】
以上のようにして、ユーザが周辺機器１００をＰＣ２００に接続するだけで、プリンタのドライバをＰＣ２００にインストールすることができる。
【００８９】
次に、図６の周辺機器１００側の制御の流れをより詳細に説明する。
【００９０】
図６の処理は周辺機器１００のＡＣ電源、ソフトスイッチ、ともにオン状態で開始され、まず、ステップＳ６０１で周辺機器内の初期化が行われる。
【００９１】
ステップＳ６０２でインストールフラグをチェックする。先述の通り工場出荷時フラグは”未インストール”である。”未インストール”ならステップＳ６０３へ、”インストール済み”ではステップＳ６１０へ処理を進める。
【００９２】
ステップＳ６０３では、ＵＳＢデバイス１２０を図７のストレージクラスのみの構成とする。ステップＳ６０４では通常の周辺機器の待機状態となり、通常の周辺機器の動作はここで行なう。ＵＳＢの各リクエストなどあれば応答し、ストレージクラスとなっているＵＳＢデバイス１２０に対して各リクエストがあれば応答し、ＳＣＳＩコマンドが来たら必要に応じてストレージ１０３をアクセスし応答する。
【００９３】
同時にステップＳ６０５でインストール完了通知を待ち、ＰＣ２００から通知が来たらステップＳ６０６へ処理を移す。
【００９４】
ステップＳ６０６においてインストールフラグ１０５を”インストール済み”にしてステップＳ６０７の処理へ進む。ステップＳ６０７では、制御部１０１がＵＳＢデバイス１２０を制御することによって、ＰＣ２００と周辺機器１００とのＵＳＢ接続を電気的に切断する。このとき、ＰＣ２００と周辺機器１００との物理的なＵＳＢケーブルはつながったままである。
【００９５】
さらに、コンポジットＵＳＢデバイスの、ディスクリプタ、エンドポイント、インターフェースの構成を、図７のものから図９のものに切り替えた後、ＰＣ２００と周辺機器１００との電気的な接続を再接続してステップＳ６１１へ進む。ステップＳ６１０ではＵＳＢデバイス１２０を図９のコンポジット構成とする。
【００９６】
ステップＳ６１１では通常の周辺機器の待機状態となる。ステップＳ６０４と同様の処理に加えて、ＵＳＢデバイス１２０の、プリンタクラスＵＳＢインターフェースに対するＵＳＢの各リクエストを返す。また、ＰＣ２００からのプリントデータなども受け取りプリンタ１０２を制御してプリントしたり、ＰＣ２００から要求があれば各ステータスを送ったりする。
【００９７】
ステップＳ６１２では、ユーザのインストールフラグ解除操作が周辺機器１００の外部入力手段で行なわれていないかをチェックする。この解除操作は、たとえば液晶パネルとスイッチなどによって行なうものとする。あるいは、ＰＣ２００側での適当なユーザ操作に応じて特定のＵＳＢベンダリクエストを発生して解除操作を行なうようにしてもよい。
【００９８】
通常、ユーザが周辺機器を購入してＰＣ２００に接続するだけであればこのようなインストールフラグ解除操作手順は必要ない。しかし、他のＰＣに接続する場合や、周辺機器１００を他人に譲る場合などには、この解除操作を行なうことによってインストールフラグを工場出荷状態と同じ”未インストール”状態に戻すことができる。もし、インストールフラグ１０５の解除操作が行われたらステップＳ６１３へ、そうでなければステップＳ６１１で待機状態を続行する。ステップＳ６１３ではインストールフラグを”未インストール”状態に変更し、ステップＳ６０３へ処理を移す。
【００９９】
以上のようにして、本実施例によれば、ＰＣ２００にドライバソフトウェアが未インストールである状態では、ＰＣ２００がストレージ１０３のみにアクセスできるようＵＳＢインターフェースが制御される。このため、従来のように誤まったドライバやダミードライバがインストールされてしまうことにより発生する問題を回避することができる。ドライバソフトウェアは、ユーザ操作や、デバイス接続時の自動処理によりストレージ手段に用意されているインストーラを実行することにより、容易かつ確実にインストールすることができる。すなわち、ユーザが周辺機器１００をＰＣ２００に接続するだけで、ユーザの手をほとんど煩わせることなくプリンタのドライバをＰＣ２００にインストールすることができる。
【産業上の利用可能性】
【０１００】
本発明は、ホスト装置にドライバソフトウェアをインストールして用いる必要がある種々の周辺装置、あるいはさらにこの周辺装置とホスト装置から成るシステムにおいて実施することができる。本発明を実施するためのソフトウェアは、周辺装置のＲＯＭなどのメモリ、本発明で用いるストレージ内に格納しておく他、ネットワークや、外部記憶媒体経由で周辺装置に供給、あるいはアップデートすることができる。
【図面の簡単な説明】
【０１０１】
【図１】本発明を採用した周辺機器を含むシステムの構成を示した説明図である（実施例１）。
【図２】本発明を採用した周辺機器を含むシステムの異なる構成を示した説明図である（実施例２）。
【図３】図１のシステムの周辺機器とＰＣの接続状態を示した説明図である（実施例１）。
【図４】図１および図３の構成における周辺機器の制御手順を示したフローチャート図である（実施例１）。
【図５】周辺機器のドライバソフトウェアのインストーラの制御手順を示したフローチャート図である。
【図６】図２の構成における周辺機器の制御手順を示したフローチャート図である（実施例２）。
【図７】本発明におけるストレージクラスのディスクリプタ・インターフェース・エンドポイント構成を示した説明図である。
【図８】本発明におけるプリンタクラスのディスクリプタ・インターフェース・エンドポイント構成を示した説明図である。
【図９】本発明におけるコンポジット構成のディスクリプタ・インターフェース・エンドポイント構成を示した説明図である。
【符号の説明】
【０１０２】
１００  周辺機器
１０１  制御部
１０２  プリンタ
１０３  ストレージ
１０４  ドライバ
１０５  インストールフラグ
１１０  ＵＳＢハブ
１１１  プリンタクラスＵＳＢデバイス
１１２  ストレージクラスＵＳＢデバイス
１２０  ＵＳＢデバイス
２００  ＰＣ
２０１  制御部
２０２  ストレージ
２０３  ＵＳＢホスト
【図１】
2008139916.tif 000003
【図２】
2008139916.tif 000004
【図３】
2008139916.tif 000005
【図４】
2008139916.tif 000006
【図５】
2008139916.tif 000007
【図６】
2008139916.tif 000008
【図７】
2008139916.tif 000009
【図８】
2008139916.tif 000010
【図９】
2008139916.tif 000011