(57)【要約】【課題】  プリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用するのが、極めて容易な携帯型記憶媒体の提供。【解決手段】  ＵＳＢメモリ１００は、２つの位置に切り換え可能なスイッチ１０３を備えており、そのスイッチ１０３の状態に応じて、ＵＳＢディスクリプタ応答部１０７は、プリンタクラスディスクリプタ記憶部１２１またはストレージクラスディスクリプタ記憶部１２３のいずれか一方に選択的に接続される。パソコンからのディスクリプタ要求に対して、前者の場合、プリンタクラスのディスクリプタがプリンタクラスディスクリプタ記憶部１２１からパソコンへ返送され、後者の場合、ストレージクラスのディスクリプタがストレージクラスディスクリプタ記憶部１２３から返送される。【選択図】図３
2008250736.tif 000002
【特許請求の範囲】
【請求項１】
パーソナルコンピュータの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な接続部と、
該接続部を介して書き込みまたは読み出しされるデータを記憶するデータ記憶部と、
自身が記憶媒体であることを通知する通知信号を上記接続部を介して出力する通知信号出力手段と、
自身がプリンタであると偽装する偽装信号を上記接続部を介して出力する偽装信号出力手段と、
を備え、
上記データ記憶部は、上記偽装信号に対してプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、かつ、当該データ記憶部は、その印刷データを上記接続部を介して読み出し可能に記憶することを特徴とする携帯型記憶媒体。
【請求項２】
上記接続部を上記偽装信号出力手段または上記通知信号出力手段のいずれかに切り換え可能に接続する接点を、
更に備えたことを特徴とする請求項１記載の携帯型記憶媒体。
【請求項３】
上記通知信号が、ストレージクラスを表す信号であり、
上記偽装信号が、プリンタクラスを表す信号であることを特徴とする請求項１または２記載の携帯型記憶媒体。
【請求項４】
上記偽装信号出力手段は、上記偽装信号が表すプリンタクラスを変更可能に構成されたことを特徴とする請求項３記載の携帯型記憶媒体。
【請求項５】
上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータからプリンタの状態を問い合わすステータス信号が上記接続部を介して入力されたとき、その時点で上記データ記憶部の容量が不足の場合に、上記ステータス信号に対して紙なしエラーを表すエラー信号を上記接続部を介して出力するエラー信号出力手段を、
更に備えたことを特徴とする請求項１〜４のいずれかに記載の携帯型記憶媒体。
【請求項６】
上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータから印刷中止を表すリセット信号が上記接続部を介して入力されたとき、上記データ記憶部に書き込まれた印刷データを削除する印刷データ削除手段を、
更に備えたことを特徴とする請求項１〜５のいずれかに記載の携帯型記憶媒体。
【請求項７】
ＵＳＢメモリの形態で構成された請求項１〜６のいずれかに記載の携帯型記憶媒体であって、
上記通知信号及び偽装信号がディスクリプタであることを特徴とする請求項１〜６のいずれかに記載の携帯型記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データが記憶可能でかつ携帯可能な携帯型記憶媒体に関し、詳しくは、パーソナルコンピュータの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な携帯型記憶媒体に関する。
【背景技術】
【０００２】
近年、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートとして、ＵＳＢメモリを装着可能な接続部を備えたパーソナルコンピュータが提案されている。また、プリンタにもＵＳＢメモリを装着可能な接続部を設けておき、印刷データが記憶されたＵＳＢメモリが装着されると、そのＵＳＢメモリから自動的に印刷データを読み込んで印刷（いわゆるダイレクトプリント）を実行することが提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００５−１３８５３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ここで、ダイレクトプリント用のＵＳＢメモリには、アプリケーションで作成されたファイルではなく、プリンタドライバが出力する印刷データを書き込みたい場合がある。そこで、プリンタドライバに「ファイルに出力」等のチェックボックスを設け、そのチェックボックスをチェックして印刷処理を実行することにより上記印刷データをＵＳＢメモリに書き込み可能とすることも提案されている。
【０００４】
ところが、プリンタドライバにそのような機能がない場合、印刷ポートを変更しなければならない。ポートの変更はアドミニストレータ権限がないとできない場合があり、使用者は極めて煩雑な操作を強いられる。
【０００５】
そこで、本発明は、プリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用するのが、極めて容易な携帯型記憶媒体を提供することを目的としてなされた。
【課題を解決するための手段】
【０００６】
上記目的を達するためになされた本発明は、パーソナルコンピュータ（以下、単にパソコンともいう）の、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な接続部と、該接続部を介して書き込みまたは読み出しされるデータを記憶するデータ記憶部と、自身が記憶媒体であることを通知する通知信号を上記接続部を介して出力する通知信号出力手段と、自身がプリンタであると偽装する偽装信号を上記接続部を介して出力する偽装信号出力手段と、を備え、上記データ記憶部は、上記偽装信号に対してプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、かつ、当該データ記憶部は、その印刷データを上記接続部を介して読み出し可能に記憶することを特徴としている。
【０００７】
このように構成された本発明の携帯型記憶媒体では、パソコンの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続部が接続された状態で、通知信号出力手段は自身が記憶媒体であることを通知する通知信号を出力することができる。この場合、パソコンはその携帯型記憶媒体を記憶媒体として認識する。すると、データ記憶部には、上記パソコンによって通常の記憶媒体と同様にデータの書き込み及び読み出しがなされる。
【０００８】
また、本発明の携帯型記憶媒体では、パソコンの上記汎用ポートに接続部が接続された状態で、偽装信号出力手段は自身がプリンタであると偽装する偽装信号を上記接続部を介して出力することができる。この場合、パソコンはその携帯型記憶媒体をプリンタとして認識する。すると、上記データ記憶部は、上記偽装信号に対して、パソコンによってプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、その印刷データは、上記接続部を介してプリンタ等に読み出させることができる。
【０００９】
このように、本発明の携帯型記憶媒体は、自身がプリンタであると偽装する偽装信号を上記汎用ポートに出力することができる。このため、本発明の携帯型記憶媒体では、パソコンのプリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用することが、ポートの変更等を行わずに極めて容易に実行することができる。なお、本発明において、通知信号と偽装信号は一体化されていてもよく、この場合、通知信号出力手段と偽装信号出力手段とは一体になる。
【００１０】
また、本発明は以下の構成に限定されるものではないが、上記接続部を上記偽装信号出力手段または上記通知信号出力手段のいずれかに切り換え可能に接続する接点を、更に備えてもよい。この場合、上記接点の切り換えにより、当該携帯型記憶媒体を記憶媒体としてパソコンに認識させるかプリンタとして認識させるかを切り換えることができる。
【００１１】
また、上記通知信号，偽装信号の具体例としては、種々の形態が考えられるが、上記通知信号が、ストレージクラスを表す信号であり、上記偽装信号が、プリンタクラスを表す信号であってもよい。
【００１２】
そして、この場合、上記偽装信号出力手段は、上記偽装信号が表すプリンタクラスを変更可能に構成されてもよい。この場合、新規のプリンタを購入したときなどに、偽装信号をその新規のプリンタに対応したプリンタクラスを表すものに変更すれば、当該携帯型記憶媒体をパソコンに上記新規のプリンタとして認識させることができる。
【００１３】
また、上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータからプリンタの状態を問い合わすステータス信号が上記接続部を介して入力されたとき、その時点で上記データ記憶部の容量が不足の場合に、上記ステータス信号に対して紙なしエラーを表すエラー信号を上記接続部を介して出力するエラー信号出力手段を、更に備えてもよい。この場合、データ記憶部の容量が不足のときには、エラー信号出力手段がステータス信号に対して紙なしエラーを表すエラー信号を出力することにより、パソコンに印刷データの送信を中止させることができる。
【００１４】
また、上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータから印刷中止を表すリセット信号が上記接続部を介して入力されたとき、上記データ記憶部に書き込まれた印刷データを削除する印刷データ削除手段を、更に備えてもよい。この場合、パソコンからリセット信号が入力されたときに、印刷データ削除手段により印刷データを削除することができる。
【００１５】
また、本発明の携帯型記憶媒体としては、ＵＳＢメモリ，メモリカード，ＣＤ−Ｒ，ＣＤ−ＲＷメディア，携帯型ハードディスクなど種々の携帯型記憶媒体を適用することができるが、上記携帯型記憶媒体がＵＳＢメモリの形態で構成された場合、上記通知信号及び偽装信号はディスクリプタであってもよい。この場合、ＵＳＢの規格に応じて、前述のようにパソコンに記憶媒体と認識させたりプリンタと認識させたりすることができる。
【発明を実施するための最良の形態】
【００１６】
［実施の形態の全体構成］
次に、本発明の実施の形態を、図面を参照して説明する。図１は、本発明が適用された携帯型記憶媒体の一例としてのＵＳＢメモリ１００が利用される画像形成システムの構成を表す外観図である。図１に示すように、本実施の形態の画像形成システムは、プリンタ１と、パーソナルコンピュータ（以下、単にパソコンという）３００とから構成されている。
【００１７】
図１に示すように、プリンタ１は、装置本体２の下側に用紙等の図示しない被記録媒体を収納する給紙カセット４が抜き差し可能に設けられている。装置本体２の上側には、印刷処理された被記録媒体が排出されるトレイ部６が設けられると共に、液晶ディスプレイ等を用い情報を表示する表示部８と、各種操作キーによる各種の入力操作を受け付ける操作部１０とが設けられている。また、装置本体２には、携帯型記憶媒体の一例としてのＵＳＢメモリ１００が着脱可能な挿入口１６が設けられている。
【００１８】
図２は本画像形成システムの制御系の構成を表すブロック図である。プリンタ１は、処理プログラムを実行するＣＰＵ２０、処理プログラム等を記憶するＲＯＭ２２、処理結果等を一時的に記憶するＲＡＭ２４、データ等を記憶するハードディスク装置（ＨＤＤ）２６、ＵＳＢメモリ１００が接続される接続部２８、前述の表示部８，操作部１０、処理プログラム等に基づいて制御され被記録媒体に印刷を実行する画像形成ユニット部３０、及び、ＬＡＮ，インターネット等の図示しないネットワークと接続するためのネットワークインタフェース（ネットワークＩ／Ｆ）３２、を備えている。また、接続部２８には、ＵＳＢメモリ１００の非装着時には非導通状態、装着時には導通状態となる端子の信号レベルを監視することで、ＵＳＢメモリ１００の装着と非装着とを検出する周知の接続検知部３６が設けられている。
【００１９】
画像形成ユニット部３０は、画像データによりレーザ光を変調して図示しない感光ドラム上で走査させて潜像を形成し、該潜像を現像してトナー像を形成し、給紙カセット４から供給された被記録媒体上に上記トナー像を転写して定着した後、トレイ部６に排紙するように構成されている。このように、本実施の形態の画像形成ユニット部３０は、感光ドラム上にトナー像を形成し、トナー像を被記録媒体に転写するページプリンタを用いているが、これに限らず、インクジェット式のシリアルプリンタであってもよい。
【００２０】
プリンタ１は、ＵＳＢメモリ１００に記憶された印刷データをＲＡＭ２４内のフレームメモリに展開して画像データを形成する。ＲＡＭ２４内のフレームメモリに展開された画像データは、画像形成ユニット部３０へＣＭＹＫデータ（グレイスケールの場合には、Ｋデータ）として送られ、用紙等の被記録媒体上に印刷される。なお、印刷はカラー印刷でもモノクロ印刷でもよい。
【００２１】
また、パソコン３００のパソコン本体３１０は、ＣＰＵ３１１、ＲＯＭ３１２、ＲＡＭ３１３、及び、ハードディスク装置（ＨＤＤ）３１４を内蔵し、更に、ＵＳＢメモリ１００が接続される接続部３１６（図１参照）も備えている。また、パソコン３００の接続部３１６にも、端子の信号レベルを監視することでＵＳＢメモリ１００の装着と非装着とを検出する接続検知部３１７が設けられている。そして、このパソコン本体３１０には、周知のディスプレイ３２０，キーボード３３０，マウス３４０と（いずれも図１参照）、ＬＡＮ，インターネット等の図示しないネットワークと接続するためのネットワークインタフェース（ネットワークＩ／Ｆ）３６０とが接続されている。
【００２２】
なお、パソコン３００の接続部３１６は、プリンタ１をＵＳＢケーブル等を介して接続することも可能な汎用ポートである。また、本実施の形態のＵＳＢメモリ１００は、図１に示すように、接続部２８，３１６に接続可能な周知の接続部１０１と、指で操作することにより２つの位置に切り換え可能なスイッチ１０３とを備えている。
【００２３】
［第１の実施の形態のＵＳＢメモリ１００の内部構成］
次に、図３は、第１の実施の形態としてのＵＳＢメモリ１００の内部の回路構成を表す説明図である。図３に示すように、ＵＳＢメモリ１００の内部には、接続部１０１（図１参照）を介してデータの送受信を行うＵＳＢ送受信部１０５が設けられ、このＵＳＢ送受信部１０５には、ＵＳＢディスクリプタ応答部１０７とバルク転送送受信部１０９とが接続されている。
【００２４】
ＵＳＢディスクリプタ応答部１０７は、制御回路１１０の接点１１１を介して、偽装信号出力手段の一例としてのプリンタクラスディスクリプタ記憶部１２１、または、通知信号出力手段の一例としてのストレージクラスディスクリプタ記憶部１２３のいずれか一方に選択的に接続される。また、バルク転送送受信部１０９は、制御回路１１０の接点１１３によって、ファイルシステム制御部１２５に直接接続されるか、ファイル名生成部１２７を介してファイルシステム制御部１２５に接続されるかが切り換えられる。なお、制御回路１１０は、ロジック回路によって構成され、スイッチ１０３の状態等に応じてスイッチング素子からなる上記接点１１１，１１３の状態を切り換えるものである。
【００２５】
また、プリンタクラスディスクリプタ記憶部１２１は、プリンタクラスのディスクリプタを記憶した回路で、データ記憶部の一例としての不揮発性メモリ１２９に接続されている。この不揮発性メモリ１２９の一部は、偽装するプリンタの名称やプロダクトＩＤなどの、プリンタクラスディスクリプタの不定部分を記憶している。プリンタクラスディスクリプタ記憶部１２１は、自身で記憶する定型部分と、不揮発性メモリ１２９に記憶された偽装するプリンタに応じて変わる情報とを合わせて、偽装されたプリンタクラスディスクリプタを生成するのである。また、ストレージクラスディスクリプタ記憶部１２３は、ストレージクラスのディスクリプタを記憶した回路である。更に、ファイルシステム制御部１２５は、不揮発性メモリ１２９に書き込みまたは読み出しされるデータのファイルシステムを制御する回路である。
【００２６】
そして、このように構成されたＵＳＢメモリ１００では、制御回路１１０による接点１１１，１１３の切り換えにより、次のようにエンドポイントが割り振られる。すなわち、スイッチ１０３がプリンタ側に切り換えられたときは、図４（Ａ）に示すように、エンドポイント０にコントロール転送が、エンドポイント１にインタフェース１のプリンタクラスのバルクアウトが、それぞれ割り振られる。また、スイッチ１０３がストレージ側に切り換えられたときは、図４（Ｂ）に示すように、エンドポイント０にコントロール転送が、エンドポイント１にインタフェース１のストレージクラスのバルクアウトが、エンドポイント２にインタフェース１のストレージクラスのバルクインが、それぞれ割り振られる。
【００２７】
［ＵＳＢメモリ１００における処理及び効果］
次に、このような制御回路１１０を中心にしたロジック回路で実行される処理について説明する。なお、ＵＳＢメモリ１００の内部で実行される処理は、前述のように実際にはハードウェアの処理として実行されるが、以下の説明では、便宜上、同等の処理を表すフローチャートを用いて説明する。勿論、ＵＳＢメモリ１００の内部にＣＰＵ等を設けて、ソフトウェアの処理によって以下の処理を実行してもよいことはいうまでもない。
【００２８】
ＵＳＢメモリ１００がパソコン３００の接続部３１６に接続されると、ＣＰＵ３１１はＵＳＢメモリ１００に対して各種情報を要求するパケットを送信する。図５は、このパケット受信時にＵＳＢメモリ１００にて実行される処理に対応するフローチャートである。
【００２９】
図５に示すように、この処理では、先ず、Ｓ１（Ｓはステップを表す：以下同様）にて、受信されたパケットがコントロール転送のパケットかバルク転送のパケットかが判別される。通常、パソコン３００は、ＵＳＢメモリ１００が接続されたことを接続検知部３１７を介して検知すると、何がつながったか問い合わせるべくディスクリプタの返送をコントロール転送で要求してくる。
【００３０】
そこで、コントロール転送のパケットである場合は（Ｓ１：Ctrl）、Ｓ２にて、そのパケットがディスクリプタ要求であるか否かが判断される。ディスクリプタ要求である場合は（Ｓ２：Ｙ）、Ｓ３にてスイッチ１０３の状態に応じて処理が次のように分かれる。すなわち、スイッチ１０３がプリンタ側に切り換えられている場合は（Ｓ３：プリンタ）、Ｓ４にて、偽装信号の一例としてのプリンタクラスのディスクリプタがプリンタクラスディスクリプタ記憶部１２１からパソコン３００へ返送されて、処理が終了する。すなわち、この場合は、接点１１１がプリンタクラスディスクリプタ記憶部１２１側に切り換えられている（図３参照）。
【００３１】
一方、スイッチ１０３がストレージ側に切り換えられている場合は（Ｓ３：ストレージ）、Ｓ５にて、通知信号の一例としてのストレージクラスのディスクリプタがストレージクラスディスクリプタ記憶部１２３からパソコン３００へ返送されて、処理が終了する。すなわち、この場合、接点１１１は、ストレージクラスディスクリプタ記憶部１２３側に切り換えられている（図３参照）。
【００３２】
このため、スイッチ１０３をプリンタ側に切り換えておけば（Ｓ３：プリンタ）、プリンタクラスのディスクリプタを接続部１０１，３１６を介してパソコン３００へ返送することにより（Ｓ４）、パソコン３００にＵＳＢメモリ１００をプリンタとして認識させることができる。すると、この場合、パソコン３００のプリンタドライバは、プリンタ１に印刷データを出力するのと同様にＵＳＢメモリ１００に印刷データを出力し、後述のようにその印刷データを不揮発性メモリ１２９に書き込むことが可能となる。
【００３３】
すなわち、この場合、パソコン３００は、ＵＳＢメモリ１００をプリンタとして認識している。このため、例えばＯＳとしてＷｉｎｄｏｗｓＸＰ（登録商標）を使用した場合にあっては、通常のＵＳＢプリンタポート（ＵＳＢ００１等）と同等のポートがプラグアンドプレイにより生成される。これは通常のＵＳＢメモリ１００ではなく、プリンタ自身をこのパソコン３００と接続した際に生成されるポートと同じである。このため、使用者は、現在接続されているデバイスがプリンタであるかＵＳＢメモリであるかを一切意識することなく、同じ操作で印刷の操作を行うことができるのである。
【００３４】
また、スイッチ１０３をストレージ側に切り換えておけば（Ｓ３：ストレージ）、ストレージクラスのディスクリプタを接続部１０１，３１６を介してパソコン３００へ返送することにより（Ｓ５）、パソコン３００にＵＳＢメモリ１００をストレージとして認識させることができる。
【００３５】
一方、コントロール転送によりディスクリプタ要求以外のパケットが受信された場合は（Ｓ２：Ｎ）、Ｓ７により、そのパケットがプリンタクラスコマンドの要求であるか否かが判断される。プリンタクラスコマンドの要求である場合は（Ｓ７：Ｙ）、Ｓ８にてプリンタクラスコマンドの応答がパソコン３００へ送信されて処理が終了し、他のパケットである場合は（Ｓ７：Ｎ）、対応する他の処理がＳ９にてなされて処理が終了する。
【００３６】
図６は、Ｓ８のプリンタクラスコマンド送信処理を詳細に表すフローチャートである。この処理では、先ず、Ｓ８０にて、上記パケットがステータス信号の一例としてのステータス情報要求であるか否かが判断される。ステータス情報要求でない場合は（Ｓ８０：Ｎ）、Ｓ８１にて、上記パケットがＩＥＥＥ１２４８ＩＤの要求であるか否かが判断され、ＩＥＥＥ１２４８ＩＤの要求でもない場合は（Ｓ８１：Ｎ）、Ｓ８２にて、上記パケットがリセット信号の一例としてのデバイスリセットであるか否かが判断される。
【００３７】
デバイスリセットでもない場合は（Ｓ８２：Ｎ）、Ｓ８３にてエラー（ストール）となって処理が終了する（図５参照）。一方、上記パケットがデバイスリセットの場合は（Ｓ８２：Ｙ）、印刷データ削除手段の一例としてのＳ８４にて、不揮発性メモリ１２９に記憶された印刷データ等のファイルが削除され、処理が終了する。また、パケットがＩＥＥＥ１２４８ＩＤ要求であった場合は（Ｓ８１：Ｙ）、Ｓ８５にて、当該ＩＤが送信されて処理が終了する（図５参照）。なお、ＵＳＢメモリ１００がプリンタ１の付属品として同梱される場合、プリンタ１のＩＥＥＥ１２４８ＩＤがＵＳＢメモリ１００にも予め記憶されており、Ｓ８５ではそのＩＤが送信される。
【００３８】
また、上記パケットがステータス情報要求であった場合は（Ｓ８０：Ｙ）、Ｓ８６にて、不揮発性メモリ１２９のメモリ残容量がないか否かが判断される。そして、メモリ残容量がない場合は（Ｓ８６：Ｙ）、Ｓ８７にてＰＥビットに１が立てられてＳ８８の処理が実行され、メモリ残容量がある場合は（Ｓ８６：Ｎ）、ＰＥビットに０が立てられてＳ８８の処理が実行される。なお、ＰＥビットとは、ペーパエラーを表すビットであり、これに１が立てられることは紙なしエラーが発生したことを表している。続くエラー信号出力手段の一例としてのＳ８８では、上記ＰＥビットを含むエラー信号の一例としてのステータス情報が送信されて、処理が終了する。
【００３９】
このため、不揮発性メモリ１２９のメモリ残容量がない、いわゆるメモリフルの場合は（Ｓ８６：Ｙ）、ＰＥビットに１が立てられたステータス情報をパソコン３００へ送信することにより（Ｓ８７，Ｓ８８）、パソコン３００側では、ＯＳの印刷システムにより、用紙エラーの表示がなされ、送信が自動的に停止される。使用者は、この表示を見ることによりメモリフルであること、並びに、印刷データの記憶が不完全であることを知ることができる。それによって使用者は、例えば不要なデータを削除して再印刷を行うなどの適切な対応をとることができる。
【００４０】
図５へ戻って、一方、パケットがバルク転送の場合は（Ｓ１：Bulk）、Ｓ１１にて、Ｓ３と同様にスイッチ１０３の状態が判断される。そして、スイッチ１０３がプリンタ側に切り換えられている場合は（Ｓ１１：プリンタ）、Ｓ１２にて、ファイル名生成部１２７を介して周知の方法でユニークなファイル名が付与された後、また、スイッチ１０３がストレージ側に切り換えられている場合は使用者によりファイルシステムに対して指定されたファイル名のまま（Ｓ１１：ストレージ）、Ｓ１３の処理が実行される。すなわち、スイッチ１０３がスイッチがプリンタ側に切り換えられている場合は（Ｓ１１：プリンタ）、接点１１３はファイル名生成部１２７側に切り換えられていて自動的にファイル名が付けられる一方、スイッチ１０３がストレージ側に切り換えられている場合は（Ｓ１１：ストレージ）、接点１１３はファイルシステム制御部１２５側に切り換えられている（図３参照）。このため、通常のストレージと同様に、使用者の付したファイル名でアクセスされる。
【００４１】
Ｓ１３では、バルクインかバルクアウトかの判断がなされる。そして、バルクアウトの場合は（Ｓ１３：Ｏｕｔ）、Ｓ１４にて、不揮発性メモリ１２９への記憶（書き込み）がなされて処理が終了し、バルクインの場合は（Ｓ１３：Ｉｎ）、Ｓ１５にて、不揮発性メモリ１２９からの読み出しがなされて処理が終了する。
【００４２】
なお、上記記憶（Ｓ１４）及び読み出し（Ｓ１５）は、ファイルシステム制御部１２５を介してなされる。パソコン３００がＵＳＢメモリ１００をプリンタと認識して送信する印刷データにはファイル名がないので（Ｓ１１：プリンタ）、上記処理では、ファイル名を生成した上で（Ｓ１２）、ファイルシステム制御部１２５を介した不揮発性メモリ１２９への記憶が実行されるのである（Ｓ１４）。また、このように、ＵＳＢメモリ１００がプリンタと認識された上で印刷データを書き込まれる場合、ジョブの終了の判断ができないので、ＵＳＢメモリ１００がパソコン３００から引き抜かれたときにファイルが閉じられる。すなわち、ＵＳＢメモリ１００をパソコン３００に接続したままで印刷処理（印刷データの書き込み）がなされると、全てのジョブが１つのファイルに記録される。
【００４３】
以上のように、本実施の形態のＵＳＢメモリ１００では、スイッチ１０３をストレージ側に切り換えておけば（Ｓ３：ストレージ）、ストレージクラスのディスクリプタをパソコン３００へ返送することにより（Ｓ５）、パソコン３００にＵＳＢメモリ１００をストレージとして認識させることができる。この場合、一般のＵＳＢメモリと同様に、データの記憶（Ｓ１４）、読み出し（Ｓ１５）を実行することができる。
【００４４】
また、スイッチ１０３をプリンタ側に切り換えておけば（Ｓ３：プリンタ）、プリンタクラスのディスクリプタをパソコン３００へ返送することにより（Ｓ４）、パソコン３００にＵＳＢメモリ１００をプリンタとして認識させることができる。すると、この場合、パソコン３００のプリンタドライバは、プリンタ１に印刷データを出力するのと同様にＵＳＢメモリ１００に印刷データをバルク転送で出力し、その印刷データを不揮発性メモリ１２９に書き込むことが可能となる（Ｓ１４）。
【００４５】
そして、このように不揮発性メモリ１２９に書き込まれた印刷データは、スイッチ１０３をストレージ側に切り換えて、プリンタ１の接続部２８にＵＳＢメモリ１００の接続部１０１を接続することにより、そのプリンタ１に周知のように自動的に読み出させて印刷（ダイレクトプリント）することができる。このため、本実施の形態のＵＳＢメモリ１００では、パソコン３００のプリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用することが、ポートの変更等を行わずに極めて容易に実行できる。
【００４６】
更に、上記のように不揮発性メモリ１２９に印刷データを書き込む場合、パソコン３００からデバイスリセットの要求があったときは（Ｓ８２：Ｙ）、不揮発性メモリ１２９に書き込まれた上記印刷データのファイルを削除することができる（Ｓ８４）。また、メモリ残容量なしのときは（Ｓ８６：Ｙ）、ＰＥビットを１にしてパソコン３００にステータスを送信することができる（Ｓ８８）。従って、本実施の形態では、パソコン３００から見て、ＵＳＢメモリ１００への印刷データの出力はプリンタ１への印刷データの出力と殆ど変わらなくなる。
【００４７】
［第２の実施の形態のＵＳＢメモリ５００の内部構成］
次に、図７は、第２の実施の形態としてのＵＳＢメモリ５００の内部の回路構成を表す説明図である。なお、ＵＳＢメモリ５００は、ＵＳＢメモリ１００と同様に構成された部分を有するので、ＵＳＢメモリ１００と同様に構成された部分には図７において図３と同様の符号を付して詳細な説明を省略する。
【００４８】
図７に示すように、ＵＳＢメモリ５００は、前述のプリンタクラスディスクリプタ記憶部１２１及びストレージクラスディスクリプタ記憶部１２３の代わりに、通知信号出力手段及び偽装信号出力手段の一例としてのストレージクラスプリンタクラスディスクリプタ記憶部５２１を備えた点でＵＳＢメモリ１００と異なる。このストレージクラスプリンタクラスディスクリプタ記憶部５２１は、ストレージクラスを有するマルチインタフェースデバイスディスクリプタを出力することにより、パソコン３００に、プリンタの機能とストレージの機能とを併せ持ったデバイスであることを認識させる。また、これに応じて、ＵＳＢメモリ５００ではスイッチ１０３が不要となり、制御回路５１０も、バルク転送送受信部１０９をファイルシステム制御部１２５に直接接続するかファイル名生成部１２７を介してファイルシステム制御部１２５に接続するかを切り換える接点５１３のみを有する。
【００４９】
そして、このように構成されたＵＳＢメモリ５００では、エンドポイントが次のように割り振られる。すなわち、図８に示すように、エンドポイント０にコントロール転送が、エンドポイント１にインタフェース１のプリンタクラスのバルクアウトが、エンドポイント２にインタフェース２のストレージクラスのバルクアウトが、エンドポイント３にインタフェース２のストレージクラスのバルクインが、それぞれ割り振られる。
【００５０】
［ＵＳＢメモリ５００における処理及び効果］
次に、制御回路５１０を中心にしたロジック回路で実行される処理を、同等の処理を表す図９のフローチャートを用いて説明する。なお、図９の処理は、図５の処理と同様の部分を有するので、以下、相違点についてのみ説明する。
【００５１】
図９に示すように、この処理では、上記パケットがディスクリプタ要求であった場合は（Ｓ２：Ｙ）、Ｓ１０３にて、ストレージクラスプリンタクラスディスクリプタ記憶部５２１によりストレージクラスを有するマルチインタフェースデバイスディスクリプタが返送され、処理が終了する。この処理によって、パソコン３００に、接続部３１６に接続されているデバイスがプリンタの機能とストレージの機能とを併せ持ったデバイスであると認識させることができる。このため、前述のような印刷データの書き込みも可能となる。
【００５２】
また、ＵＳＢメモリ５００は前述のようなスイッチ１０３を備えていないので、上記パケットがバルク転送の場合は（Ｓ１：Bulk）、Ｓ１１１にて、そのときパソコン３００によって指定されているエンドポイントが判断される。そして、エンドポイントがプリンタに対応する１である場合は（Ｓ１１１：プリンタ）、前述のＳ１２にてファイル名が生成された後、エンドポイントがストレージクラスに対応する２または３である場合はそのまま（Ｓ１１１：ストレージ）、前述のＳ１３の処理が実行される。すなわち、この場合、エンドポイントに基づいて接点５１３が切り換えられる（図７参照）。
【００５３】
このように、本実施の形態のＵＳＢメモリ５００でも、前述のＵＳＢメモリ１００と同様の効果が得られる。また、本実施の形態では、ストレージクラスプリンタクラスディスクリプタ記憶部５２１がストレージクラスを有するマルチインタフェースデバイスディスクリプタを返送するので、前述のように構成及び処理を一層簡略化することができる。
【００５４】
［第３の実施の形態のＵＳＢメモリ６００の内部構成］
次に、図１０は、第３の実施の形態としてのＵＳＢメモリ６００の内部の回路構成を表す説明図である。なお、ＵＳＢメモリ６００は、バルク転送送受信部１０９がプリンタクラスディスクリプタ記憶部１２１にも接続された点と、そのプリンタクラスディスクリプタ記憶部１２１が不揮発性メモリ１２９に接続されていない点とでＵＳＢメモリ１００と異なり、他はＵＳＢメモリ１００と同様に構成されている。このように構成されたＵＳＢメモリ６００では、バルク転送により、プリンタクラスディスクリプタ記憶部１２１に記憶されたプリンタクラスのディスクリプタを書き換えることができる。このため、例えば新規のプリンタ１を購入したときなどに、プリンタクラスのディスクリプタをその新規のプリンタ１に対応したプリンタクラスを表すものに変更すれば、ＵＳＢメモリ６００をパソコン３００に上記新規のプリンタ１として認識させることができる。
【００５５】
［ＵＳＢメモリ６００に対するパソコン３００の処理］
次に、上記のような書き換えを行うためのパソコン３００における処理について、図１１のフローチャートを用いて説明する。なお、本処理は、パソコン３００のＯＳ上でプログラムが選択されるなどして処理の実行が指示されたとき、ＣＰＵ３１１によりＨＤＤ３１４に記憶されたプログラムに基づいて実行される。
【００５６】
図１１に示すように、この処理では、先ず、Ｓ９１にて、ディスプレイ３２０にメッセージ等が表示されることによりプリンタ１をパソコン３００に接続するように指示がなされる。プリンタ１が接続されて処理がＳ９２へ移行すると、そのプリンタ１からディスクリプタとＩＥＥＥ１２４８ＩＤとが取得される。続くＳ９３では、ディスプレイ３２０にメッセージ等が表示されることによりＵＳＢメモリ６００をパソコン３００に接続するように指示がなされる。ＵＳＢメモリ６００が接続されて処理がＳ９４へ移行すると、そのＵＳＢメモリ６００に、上記取得されたディスクリプタとＩＥＥＥ１２４８ＩＤとが書き込まれる。以上のように、ディスクリプタ及びＩＥＥＥ１２４８ＩＤを更新することにより、ＵＳＢメモリ６００をパソコン３００に新規のプリンタ１として認識させることが可能となる。
【００５７】
［第４の実施の形態のＵＳＢメモリ７００の内部構成］
次に、図１２は、第４の実施の形態としてのＵＳＢメモリ７００の内部の回路構成を表す説明図である。なお、ＵＳＢメモリ７００は、ＵＳＢメモリ１００と同様に構成された部分を有するので、ＵＳＢメモリ１００と同様に構成された部分には図１２において図３と同様の符号を付して詳細な説明を省略する。
【００５８】
図１２に示すように、ＵＳＢメモリ７００は、３つの位置に切り換え可能なスイッチ７０３をスイッチ１０３の代わりに備え、内部には、ＵＳＢメモリ１００の構成に加えて、更に、ストレージクラスリードオンリディスクリプタを記憶したストレージクラスリードオンリデバイスディスクリプタ記憶部７２４と、プリンタドライバを記憶したＲＯＭ７３０とを備えている。このＲＯＭ７３に記憶されたプリンタドライバは、実行ファイル形式のインストーラによりインストールされるもので、そのインストーラは、このＵＳＢメモリ７００が接続された際に自動起動されるように設定されている。また、制御回路７１０の接点７１１，７１３は、前述の接点１１１，１１３と同様の切り換えに加えて、ＵＳＢディスクリプタ応答部１０７をストレージクラスリードオンリデバイスディスクリプタ記憶部７２４と接続し、バルク転送送受信部１０９をＲＯＭ７３０と接続する位置にも切り換え可能に構成されている。
【００５９】
そして、このように構成されたＵＳＢメモリ７００では、制御回路７１０による接点７１１，７１３の切り換えにより、次のようにエンドポイントが割り振られる。すなわち、スイッチ７０３がプリンタ側に切り換えられたときは、図１３（Ａ）に示すように、エンドポイント０にコントロール転送が、エンドポイント１にインタフェース１のプリンタクラスのバルクアウトが、それぞれ割り振られる。また、スイッチ７０３がストレージ側に切り換えられたときは、図１３（Ｂ）に示すように、エンドポイント０にコントロール転送が、エンドポイント１にインタフェース２のストレージクラスのバルクアウトが、エンドポイント２にインタフェース２のストレージクラスのバルクインが、それぞれ割り振られる。更に、スイッチ７０３がドライバストレージ側に切り換えられたときは、図１３（Ｃ）に示すように、エンドポイント０にコントロール転送が、エンドポイント１にインタフェース３のストレージクラスのバルクインが、それぞれ割り振られる。
【００６０】
［ＵＳＢメモリ７００における処理及び効果］
次に、制御回路７１０を中心にしたロジック回路で実行される処理を、同等の処理を表す図１４のフローチャートを用いて説明する。なお、図１４の処理は、図５の処理と同様の部分を有するので、以下、相違点についてのみ説明する。
【００６１】
図１４に示すように、この処理では、Ｓ３に代わるＳ２０３にて、スイッチ７０３の状態がプリンタかストレージかドライバストレージかで判断される。プリンタ，ストレージの場合の処理は図５と同様であるが、ドライバストレージの場合は（Ｓ２０３：ドライバストレージ）、Ｓ２０５にて、ストレージクラスリードオンリディスクリプタが返送されて処理が終了する。Ｓ１１に代わるＳ２１１でも、同様に、スイッチ７０３の状態がプリンタかストレージかドライバストレージかで判断される。プリンタ，ストレージの場合の処理は図５と同様であるが、ドライバストレージの場合は（Ｓ２１１：ドライバストレージ）、Ｓ２１５にて、ＲＯＭ７３０からプリンタドライバが読み出されて処理が終了する。
【００６２】
このため、本実施の形態では、スイッチ７０３をドライバストレージ側に切り換えておけば、パソコン３００への接続時におけるインストーラの自動起動により、ＲＯＭ７３０に記憶されたプリンタドライバを自動でインストールすることができる。このため、出先のパソコン３００等がプリンタクラスディスクリプタ記憶部１２１に記憶されたディスクリプタに対応するプリンタドライバを備えていない場合でも、上記インストールがなされることにより、前述のような印刷データの書き込みを良好に実行することができる。
【００６３】
［第５の実施の形態のＵＳＢメモリ８００の内部構成］
次に、図１５は、第５の実施の形態としてのＵＳＢメモリ８００の内部の回路構成を表す説明図である。なお、ＵＳＢメモリ８００は、第４の実施の形態のＵＳＢメモリ７００に対して、第２の実施の形態のＵＳＢメモリ５００と同様の改変を行ったものである。
【００６４】
すなわち、ＵＳＢメモリ８００は、プリンタクラスディスクリプタ記憶部１２１、ストレージクラスディスクリプタ記憶部１２３、及び、ストレージクラスリードオンリデバイスディスクリプタ記憶部７２４の代わりに、前述のストレージクラスプリンタクラスディスクリプタ記憶部５２１を備えている。また、ＵＳＢメモリ８００ではスイッチ７０３を備えず、制御回路８１０も、バルク転送送受信部１０９をファイルシステム制御部１２５に直接接続するか、ファイル名生成部１２７を介してファイルシステム制御部１２５に接続するか、ＲＯＭ７３０に接続するかを切り換える接点８１３のみを有する。
【００６５】
そして、このように構成されたＵＳＢメモリ８００では、エンドポイントが次のように割り振られる。すなわち、図１６に示すように、エンドポイント０にコントロール転送が、エンドポイント１にインタフェース１のプリンタクラスのバルクアウトが、エンドポイント２にインタフェース２のストレージクラスのバルクアウトが、エンドポイント３にインタフェース２のストレージクラスのバルクインが、エンドポイント４にインタフェース３のストレージクラスのバルクインが、それぞれ割り振られる。
【００６６】
ＲＯＭ７３０には、プリンタドライバが記憶されている。このプリンタドライバは、プラグアンドプレイによりインストールされるものであり、その設定ファイル（ＩＮＦファイル）には、上記プリンタクラスのディスクリプタに対応して、インストールされるように記述されている。
【００６７】
すなわち、このＵＳＢメモリ８００をパソコン３００に差し込むと、プリンタとストレージが同時に接続されたとパソコン３００はみなす。そして、そのプリンタ（ＵＳＢメモリ８００で偽装されたプリンタ）のドライバがまだインストールされていないならば、ＯＳのプラグアンドプレイの動作により、対応するプリンタドライバの検索が行われる。そして、自動或いは手動操作により、ＲＯＭ７３０に記憶された設定ファイルが見つけられると、自動的にＲＯＭ７３０内に記憶されたプリンタドライバがパソコン３００にインストールされるのである。
【００６８】
［ＵＳＢメモリ８００における処理及び効果］
このため、制御回路８１０を中心にしたロジック回路で実行される処理も、第４の実施例における図１４の処理に対して第２の実施の形態における図９と同様の改変を行ったものとなる。すなわち、図１７に同等の処理を表すフローチャートを示すように、パケットがディスクリプタ要求であった場合は（Ｓ２：Ｙ）、Ｓ１０３にて、ストレージクラスプリンタクラスディスクリプタ記憶部５２１によりストレージクラスを有するマルチインタフェースデバイスディスクリプタが返送され、処理が終了する。
【００６９】
また、ＵＳＢメモリ８００は前述のようなスイッチ１０３を備えていないので、上記パケットがバルク転送の場合は（Ｓ１：Bulk）、Ｓ３１１にて指定されているエンドポイントが４であるか否かが判断される。エンドポイントが４の場合は（Ｓ３１１：Ｙ）、前述のＳ２１５にてＲＯＭ７３０からの読み出しがなされて処理が終了し、エンドポイントが４でない場合は（Ｓ３１１：Ｎ）、Ｓ３１２にて、プリンタクラスのエンドポイント１であるか否かが判断される。そして、プリンタクラスのエンドポイントである場合は（Ｓ３１２：Ｙ）、前述のＳ１２にてファイル名が生成された後、エンドポイントがストレージクラスに対応する３または４である場合はそのまま（Ｓ３１２：Ｎ）、前述のＳ１３の処理が実行される。本実施の形態のＵＳＢメモリ８００でも、前述のＵＳＢメモリ７００と同様の効果が得られ、そのＵＳＢメモリ７００に比べて構成及び処理を一層簡略化することができる。
【００７０】
［第６の実施の形態のＵＳＢメモリ９００の内部構成］
次に、図１８は、第６の実施の形態としてのＵＳＢメモリ９００の内部の回路構成を表す説明図である。このＵＳＢメモリ９００は、プリンタ名を記憶可能な不揮発性メモリ８３１が設けられた点と、ＲＯＭ７３０から接点７１３に至る経路にＲＡＭ８３２が設けられ、そのＲＡＭ８３２に上記不揮発性メモリ８３１も接続された点とで、第４の実施の形態のＵＳＢメモリ７００と異なり、他は同様に構成されている。
【００７１】
［ＵＳＢメモリ９００における処理及び効果］
このＵＳＢメモリ９００でも、ＵＳＢメモリ７００とほぼ同様の処理（図１４参照）が実行されるが、Ｓ２１５の処理が次のように異なっている。図１９はＵＳＢメモリ９００に対応するＳ２１５の処理を詳細に表すフローチャートである。図１９に示すように、ＲＯＭ読み出しの処理（Ｓ２１５）が実行されると、先ず、Ｓ２１５１にて、ＩＮＦファイルの読み取りがなされるか否かが判断される。このＩＮＦファイルは、先に述べたように、上記プリンタクラスのディスクリプタに対応して、インストールされるように記述されている。更に、このＩＮＦファイルには、通常インストールされるプリンタドライバのデフォルトの名称（登録名）も記述されている。そして、ＩＮＦファイルが読み取られる場合は（Ｓ２１５１：Ｙ）、Ｓ２１５２にて、ＲＯＭ７３０に記憶されたプリンタドライバの内容と、不揮発性メモリ８３１に記憶されたプリンタのデフォルトの名称とが合成されることにより、ＩＮＦファイルがＲＡＭ８３２上で作成される。続くＳ２１５３では、そのファイルが出力されて処理が終了する（図１４参照）。一方、ＩＮＦファイルの読み取りでない場合は（Ｓ２１５１：Ｎ）、そのままＳ２１５３にてファイルが出力される。
【００７２】
このため、本実施の形態では、ネットワークプリンタのインストール時など、プリンタに統一したユニークな名前を付けたいときなどには、ＩＮＦファイルの一部のみを書き変えて対応することができる。このときプリンタ名の部分のみを書き換え可能としているので、ＩＮＦファイル全体を書き変え可能にした場合に比べ、書き間違えなどに起因するトラブルが防げる。
【００７３】
［上記各実施の形態における処理の変形例］
更に、上記各実施の形態における処理は、以下に例示するように種々に変形することができる。例えば、第１の実施の形態のＵＳＢメモリ１００において、図２０に示すようにプリンタクラスのバルクインにエンドポイント２が割り振られている場合、図５の処理は次のように変形することができる。すなわち、パケットがバルク転送で（Ｓ１：Bulk）、スイッチ１０３がプリンタ側に切り換えられている場合の処理は（Ｓ１１：プリンタ）、図２１に示すように変形してもよい。なお、本処理では、スイッチ１０３がストレージ側に切り換えられている場合は（Ｓ１１：ストレージ）、図５と同様の処理となる。また、前述した他の実施の形態においても、パケットがバルク転送でパソコン３００にプリンタとして認識されている場合は同様の処理が適用できる。
【００７４】
この処理では、前述のようにＳ１２にてファイル名が生成された後、Ｓ１３にてバルクアウトと判断された場合は（Ｓ１３：Ｏｕｔ）、Ｓ１４１にてＰＪＬデータが解析される。続くＳ１４２では、そのＰＪＬデータのコマンド中に、ＵＳＴＡＴＵＳ  ＯＮのコマンド（ステータスを送り返せというコマンド）があったか否かが判断される。そして、あった場合は（Ｓ１４２：Ｙ）、Ｓ１４３にて、そのＵＳＴＡＴＵＳ  ＯＮのコマンドはＵＳＴＡＴＵＳ  ＯＦＦのコマンドに変更され、更に、Ｓ１４４にてＵＳＴＡＴＵＳフラグがＯＮにされて、前述のＳ１４による記憶がなされる。すなわち、印刷データの中にＵＳＴＡＴＵＳ  ＯＮのコマンドが書き込まれていても、ダイレクトプリント時にはプリンタ１はステータスを送り返すことができないので、ＵＳＴＡＴＵＳコマンドはＯＦＦに変更されるのである（Ｓ１４３）。
【００７５】
一方、ＵＳＴＡＴＵＳ  ＯＮのコマンドがＰＪＬデータのコマンド中に含まれていない場合は（Ｓ１４６：Ｎ）、Ｓ１４６にてＵＳＴＡＴＵＳフラグがＯＦＦにされて、前述のＳ１４による記憶がなされる。
【００７６】
また、バルクインの場合は（Ｓ１３：Ｉｎ）、Ｓ１５１にて、前述のＵＳＴＡＴＵＳフラグがＯＮであるか否かが判断される。そして、ＵＳＴＡＴＵＳフラグがＯＦＦの場合は（Ｓ１５１：Ｎ）、Ｓ１５２にて空データが送信されて処理が終了し、ＵＳＴＡＴＵＳフラグがＯＮの場合は（Ｓ１５１：Ｙ）、Ｓ１５３にて、当該バルクインの要求が最初の要求であるか否かが判断される。最初の要求である場合は（Ｓ１５３：Ｙ）、Ｓ１５４にて、当該ＵＳＢメモリ１００の残容量等のストレージ情報がＵＳＴＡＴＵＳ情報として返答され、処理が終了する。
【００７７】
一方、当該バルクインの要求が最初の要求ではない場合は（Ｓ１５３：Ｎ）、Ｓ１５５にて、ＵＳＢメモリ１００の残容量等に変化があったか否かが判断される。そして、変化がない場合は（Ｓ１５５：Ｎ）、前述のＳ１５２にて空データが送信され、変化があった場合は（Ｓ１５５：Ｙ）、Ｓ１５６にて残容量等を返答するＵＳＴＡＴＵＳ返答がなされて、処理が終了する。
【００７８】
この場合、パソコン３００とＵＳＢメモリ１００との間でなされるデータの送受信を、パソコン３００とプリンタ１との間でなされるデータの送受信に一層近づけることができると共に、ＵＳＴＡＴＵＳコマンドをＯＦＦに変更することなどにより（Ｓ１４３）、ダイレクトプリントを一層円滑に行うことができる。
【００７９】
図２２は、上記のように返答されるＵＳＴＡＴＵＳを用いて、パソコン３００でプリンタドライバの処理と並行して実行されるステータスモニタ処理を表すフローチャートである。図２２に示すように、この処理では、先ず、Ｓ５０１にて、図２３（Ａ）に例示するようにプリンタ１のステータスを表示するステータス用ダイアログがディスプレイ３２０に表示される。続くＳ５０２では、前述のようにＵＳＴＡＴＵＳ  ＯＮコマンドを含むＰＪＬデータが接続部３１６に接続されているデバイス（プリンタ１またはプリンタとして認識されているＵＳＢメモリ１００）に送信され、Ｓ５０３にて、ＵＳＴＡＴＵＳ返答が受信される。
【００８０】
ここで、ＵＳＴＡＴＵＳ返答に使用されるＰＪＬは、上記デバイスがプリンタ１である場合と、上記デバイスがプリンタとして認識されたＵＳＢメモリ１００である場合とでは、若干の相違があるように設定されている。そこで、続くＳ５０４では、ＵＳＴＡＴＵＳ返答が、ストレージを示すＰＪＬであるか否か、すなわち、上記デバイスがプリンタとして認識されたＵＳＢメモリであることを示すＰＪＬであるか否かが判断される。
【００８１】
ストレージを示すＰＪＬでない場合、すなわち、プリンタ１からのＵＳＴＡＴＵＳ返答であった場合は（Ｓ５０４：Ｎ）、処理はＳ５０５へ移行し、プラグアウトされたか否かが判断される。プラグアウトされていない場合は（Ｓ５０５：Ｎ）、Ｓ５０６にてプリンタ１のステータスが上記ステータス用ダイアログに表示された後、処理は前述のＳ５０３へ移行する。このように、接続部３１６にプリンタ１が接続されている場合は、Ｓ５０３〜Ｓ５０４の処理が繰り返し実行されることにより、上記ステータス用ダイアログにプリンタ１のステータスが表示される（Ｓ５０６）。そして、プリンタ１がプラグアウトされると（Ｓ５０５：Ｙ）、処理が終了する。
【００８２】
一方、ＵＳＴＡＴＵＳ返答がストレージを示すＰＪＬであった場合は（Ｓ５０４：Ｙ）、処理はＳ５１１へ移行し、上記ステータスダイアログがディスプレイ３２０から消去され、続くＳ５１２にて、図２３（Ｂ）に例示するようにメモリ残容量を表示する残量用ダイアログがディスプレイ３２０に表示される。続くＳ５１３では、ＵＳＢメモリ１００がプラグアウトされたか否かが判断される。プラグアウトされていない場合は（Ｓ５１３：Ｎ）、Ｓ５１４にて、新たにＵＳＴＡＴＵＳ返答が受信され、その返答に基づいてＳ５１５にてメモリ残容量の表示がなされた後、処理は前述のＳ５１３へ移行する。
【００８３】
このように、プリンタとして認識されたＵＳＢメモリ１００が接続部３１６に接続されている場合は、Ｓ５１３〜Ｓ５１５の処理が繰り返し実行されることにより、上記残量用ダイアログにメモリ残容量が表示される（Ｓ５１５）。そして、ＵＳＢメモリ１００がプラグアウトされると（Ｓ５１３：Ｙ）、処理が終了する。このようなステータスモニタ処理をプリンタドライバの処理と並行して実行した場合、そのプリンタドライバの操作性が極めて向上する。
【００８４】
なお、本発明は上記実施の形態になんら限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の形態で実施することができる。例えば、本発明における携帯型記憶媒体としては、ＵＳＢメモリの他、メモリカード，ＣＤ−Ｒ，ＣＤ−ＲＷメディア，携帯型ハードディスクなど種々の媒体を適用することができる。
【００８５】
また、上記実施の形態では、ＵＳＢメモリに記憶される印刷データは、通常のプリンタドライバで生成されるＰＪＬ／ＰＤＬ形式で記述されることを前提として述べたがこれに限定されるものではない。例えば、デジタルカメラなどにより記録されたＪＰＥＧファイルをダイレクトプリントできるプリンタが一般的に知られている。そのようなプリンタを偽装することも考えられる。この場合にあっては、例えば、第５の実施の形態、第６の実施の形態において、ＲＯＭ７３０に記憶されているプリンタドライバは、通常のＰＪＬ／ＰＤＬ形式でページを記述するものではなく、印刷ジョブを各ページ毎に別のＪＰＥＧファイルで記述するものとする。
【図面の簡単な説明】
【００８６】
【図１】本発明が適用されたＵＳＢメモリが利用される画像形成システムの構成を表す外観図である。
【図２】そのシステムの制御系の構成を表すブロック図である。
【図３】第１の実施の形態のＵＳＢメモリ内部の回路構成を表す説明図である。
【図４】そのＵＳＢメモリのエンドポイントの割り振りを表す説明図である。
【図５】そのＵＳＢメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図６】その処理のプリンタクラスコマンド送信処理を表すフローチャートである。
【図７】第２の実施の形態のＵＳＢメモリ内部の回路構成を表す説明図である。
【図８】そのＵＳＢメモリのエンドポイントの割り振りを表す説明図である。
【図９】そのＵＳＢメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図１０】第３の実施の形態のＵＳＢメモリ内部の回路構成を表す説明図である。
【図１１】そのＵＳＢメモリに対応するパソコンの処理を表すフローチャートである。
【図１２】第４の実施の形態のＵＳＢメモリ内部の回路構成を表す説明図である。
【図１３】そのＵＳＢメモリのエンドポイントの割り振りを表す説明図である。
【図１４】そのＵＳＢメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図１５】第５の実施の形態のＵＳＢメモリ内部の回路構成を表す説明図である。
【図１６】そのＵＳＢメモリのエンドポイントの割り振りを表す説明図である。
【図１７】そのＵＳＢメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図１８】第６の実施の形態のＵＳＢメモリ内部の回路構成を表す説明図である。
【図１９】そのＵＳＢメモリで実行される処理の一部をソフトウェアに置き換えて表すフローチャートである。
【図２０】第１の実施の形態の処理の変形例におけるエンドポイントの割り振りを表す説明図である。
【図２１】その処理の一部をソフトウェアに置き換えて表すフローチャートである。
【図２２】その処理に対応するパソコンのステータスモニタ処理を表すフローチャートである。
【図２３】そのステータスモニタ処理におけるダイアログを表す説明図である。
【符号の説明】
【００８７】
１…プリンタ      ２８…接続部      ３６…接続検知部
１００，５００，６００，７００，８００，９００…ＵＳＢメモリ
１０１…接続部      １０３，７０３…スイッチ      １０５…ＵＳＢ送受信部
１０７…ＵＳＢディスクリプタ応答部      １０９…バルク転送送受信部
１１０，５１０，７１０，８１０…制御回路
１１１，１１３，５１３，７１１，７１３，８１３…接点
１２１…プリンタクラスディスクリプタ記憶部
１２３…ストレージクラスディスクリプタ記憶部
１２５…ファイルシステム制御部      １２７…ファイル名生成部
１２９…不揮発性メモリ      ３００…パーソナルコンピュータ
３１６…接続部              ３１７…接続検知部
７２４…ストレージクラスリードオンリデバイスディスクリプタ記憶部
８３１…不揮発性メモリ
【図１】
2008250736.tif 000003
【図２】
2008250736.tif 000004
【図３】
2008250736.tif 000005
【図４】
2008250736.tif 000006
【図５】
2008250736.tif 000007
【図６】
2008250736.tif 000008
【図７】
2008250736.tif 000009
【図８】
2008250736.tif 000010
【図９】
2008250736.tif 000011
【図１０】
2008250736.tif 000012
【図１１】
2008250736.tif 000013
【図１２】
2008250736.tif 000014
【図１３】
2008250736.tif 000015
【図１４】
2008250736.tif 000016
【図１５】
2008250736.tif 000017
【図１６】
2008250736.tif 000018
【図１７】
2008250736.tif 000019
【図１８】
2008250736.tif 000020
【図１９】
2008250736.tif 000021
【図２０】
2008250736.tif 000022
【図２１】
2008250736.tif 000023
【図２２】
2008250736.tif 000024
【図２３】
2008250736.tif 000025