携帯型記憶媒体
【課題】 プリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用するのが、極めて容易な携帯型記憶媒体の提供。
【解決手段】 USBメモリ100は、2つの位置に切り換え可能なスイッチ103を備えており、そのスイッチ103の状態に応じて、USBディスクリプタ応答部107は、プリンタクラスディスクリプタ記憶部121またはストレージクラスディスクリプタ記憶部123のいずれか一方に選択的に接続される。パソコンからのディスクリプタ要求に対して、前者の場合、プリンタクラスのディスクリプタがプリンタクラスディスクリプタ記憶部121からパソコンへ返送され、後者の場合、ストレージクラスのディスクリプタがストレージクラスディスクリプタ記憶部123から返送される。
【解決手段】 USBメモリ100は、2つの位置に切り換え可能なスイッチ103を備えており、そのスイッチ103の状態に応じて、USBディスクリプタ応答部107は、プリンタクラスディスクリプタ記憶部121またはストレージクラスディスクリプタ記憶部123のいずれか一方に選択的に接続される。パソコンからのディスクリプタ要求に対して、前者の場合、プリンタクラスのディスクリプタがプリンタクラスディスクリプタ記憶部121からパソコンへ返送され、後者の場合、ストレージクラスのディスクリプタがストレージクラスディスクリプタ記憶部123から返送される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データが記憶可能でかつ携帯可能な携帯型記憶媒体に関し、詳しくは、パーソナルコンピュータの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な携帯型記憶媒体に関する。
【背景技術】
【0002】
近年、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートとして、USBメモリを装着可能な接続部を備えたパーソナルコンピュータが提案されている。また、プリンタにもUSBメモリを装着可能な接続部を設けておき、印刷データが記憶されたUSBメモリが装着されると、そのUSBメモリから自動的に印刷データを読み込んで印刷(いわゆるダイレクトプリント)を実行することが提案されている(例えば、特許文献1参照)。
【特許文献1】特開2005−138531号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ここで、ダイレクトプリント用のUSBメモリには、アプリケーションで作成されたファイルではなく、プリンタドライバが出力する印刷データを書き込みたい場合がある。そこで、プリンタドライバに「ファイルに出力」等のチェックボックスを設け、そのチェックボックスをチェックして印刷処理を実行することにより上記印刷データをUSBメモリに書き込み可能とすることも提案されている。
【0004】
ところが、プリンタドライバにそのような機能がない場合、印刷ポートを変更しなければならない。ポートの変更はアドミニストレータ権限がないとできない場合があり、使用者は極めて煩雑な操作を強いられる。
【0005】
そこで、本発明は、プリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用するのが、極めて容易な携帯型記憶媒体を提供することを目的としてなされた。
【課題を解決するための手段】
【0006】
上記目的を達するためになされた本発明は、パーソナルコンピュータ(以下、単にパソコンともいう)の、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な接続部と、該接続部を介して書き込みまたは読み出しされるデータを記憶するデータ記憶部と、自身が記憶媒体であることを通知する通知信号を上記接続部を介して出力する通知信号出力手段と、自身がプリンタであると偽装する偽装信号を上記接続部を介して出力する偽装信号出力手段と、を備え、上記データ記憶部は、上記偽装信号に対してプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、かつ、当該データ記憶部は、その印刷データを上記接続部を介して読み出し可能に記憶することを特徴としている。
【0007】
このように構成された本発明の携帯型記憶媒体では、パソコンの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続部が接続された状態で、通知信号出力手段は自身が記憶媒体であることを通知する通知信号を出力することができる。この場合、パソコンはその携帯型記憶媒体を記憶媒体として認識する。すると、データ記憶部には、上記パソコンによって通常の記憶媒体と同様にデータの書き込み及び読み出しがなされる。
【0008】
また、本発明の携帯型記憶媒体では、パソコンの上記汎用ポートに接続部が接続された状態で、偽装信号出力手段は自身がプリンタであると偽装する偽装信号を上記接続部を介して出力することができる。この場合、パソコンはその携帯型記憶媒体をプリンタとして認識する。すると、上記データ記憶部は、上記偽装信号に対して、パソコンによってプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、その印刷データは、上記接続部を介してプリンタ等に読み出させることができる。
【0009】
このように、本発明の携帯型記憶媒体は、自身がプリンタであると偽装する偽装信号を上記汎用ポートに出力することができる。このため、本発明の携帯型記憶媒体では、パソコンのプリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用することが、ポートの変更等を行わずに極めて容易に実行することができる。なお、本発明において、通知信号と偽装信号は一体化されていてもよく、この場合、通知信号出力手段と偽装信号出力手段とは一体になる。
【0010】
また、本発明は以下の構成に限定されるものではないが、上記接続部を上記偽装信号出力手段または上記通知信号出力手段のいずれかに切り換え可能に接続する接点を、更に備えてもよい。この場合、上記接点の切り換えにより、当該携帯型記憶媒体を記憶媒体としてパソコンに認識させるかプリンタとして認識させるかを切り換えることができる。
【0011】
また、上記通知信号,偽装信号の具体例としては、種々の形態が考えられるが、上記通知信号が、ストレージクラスを表す信号であり、上記偽装信号が、プリンタクラスを表す信号であってもよい。
【0012】
そして、この場合、上記偽装信号出力手段は、上記偽装信号が表すプリンタクラスを変更可能に構成されてもよい。この場合、新規のプリンタを購入したときなどに、偽装信号をその新規のプリンタに対応したプリンタクラスを表すものに変更すれば、当該携帯型記憶媒体をパソコンに上記新規のプリンタとして認識させることができる。
【0013】
また、上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータからプリンタの状態を問い合わすステータス信号が上記接続部を介して入力されたとき、その時点で上記データ記憶部の容量が不足の場合に、上記ステータス信号に対して紙なしエラーを表すエラー信号を上記接続部を介して出力するエラー信号出力手段を、更に備えてもよい。この場合、データ記憶部の容量が不足のときには、エラー信号出力手段がステータス信号に対して紙なしエラーを表すエラー信号を出力することにより、パソコンに印刷データの送信を中止させることができる。
【0014】
また、上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータから印刷中止を表すリセット信号が上記接続部を介して入力されたとき、上記データ記憶部に書き込まれた印刷データを削除する印刷データ削除手段を、更に備えてもよい。この場合、パソコンからリセット信号が入力されたときに、印刷データ削除手段により印刷データを削除することができる。
【0015】
また、本発明の携帯型記憶媒体としては、USBメモリ,メモリカード,CD−R,CD−RWメディア,携帯型ハードディスクなど種々の携帯型記憶媒体を適用することができるが、上記携帯型記憶媒体がUSBメモリの形態で構成された場合、上記通知信号及び偽装信号はディスクリプタであってもよい。この場合、USBの規格に応じて、前述のようにパソコンに記憶媒体と認識させたりプリンタと認識させたりすることができる。
【発明を実施するための最良の形態】
【0016】
[実施の形態の全体構成]
次に、本発明の実施の形態を、図面を参照して説明する。図1は、本発明が適用された携帯型記憶媒体の一例としてのUSBメモリ100が利用される画像形成システムの構成を表す外観図である。図1に示すように、本実施の形態の画像形成システムは、プリンタ1と、パーソナルコンピュータ(以下、単にパソコンという)300とから構成されている。
【0017】
図1に示すように、プリンタ1は、装置本体2の下側に用紙等の図示しない被記録媒体を収納する給紙カセット4が抜き差し可能に設けられている。装置本体2の上側には、印刷処理された被記録媒体が排出されるトレイ部6が設けられると共に、液晶ディスプレイ等を用い情報を表示する表示部8と、各種操作キーによる各種の入力操作を受け付ける操作部10とが設けられている。また、装置本体2には、携帯型記憶媒体の一例としてのUSBメモリ100が着脱可能な挿入口16が設けられている。
【0018】
図2は本画像形成システムの制御系の構成を表すブロック図である。プリンタ1は、処理プログラムを実行するCPU20、処理プログラム等を記憶するROM22、処理結果等を一時的に記憶するRAM24、データ等を記憶するハードディスク装置(HDD)26、USBメモリ100が接続される接続部28、前述の表示部8,操作部10、処理プログラム等に基づいて制御され被記録媒体に印刷を実行する画像形成ユニット部30、及び、LAN,インターネット等の図示しないネットワークと接続するためのネットワークインタフェース(ネットワークI/F)32、を備えている。また、接続部28には、USBメモリ100の非装着時には非導通状態、装着時には導通状態となる端子の信号レベルを監視することで、USBメモリ100の装着と非装着とを検出する周知の接続検知部36が設けられている。
【0019】
画像形成ユニット部30は、画像データによりレーザ光を変調して図示しない感光ドラム上で走査させて潜像を形成し、該潜像を現像してトナー像を形成し、給紙カセット4から供給された被記録媒体上に上記トナー像を転写して定着した後、トレイ部6に排紙するように構成されている。このように、本実施の形態の画像形成ユニット部30は、感光ドラム上にトナー像を形成し、トナー像を被記録媒体に転写するページプリンタを用いているが、これに限らず、インクジェット式のシリアルプリンタであってもよい。
【0020】
プリンタ1は、USBメモリ100に記憶された印刷データをRAM24内のフレームメモリに展開して画像データを形成する。RAM24内のフレームメモリに展開された画像データは、画像形成ユニット部30へCMYKデータ(グレイスケールの場合には、Kデータ)として送られ、用紙等の被記録媒体上に印刷される。なお、印刷はカラー印刷でもモノクロ印刷でもよい。
【0021】
また、パソコン300のパソコン本体310は、CPU311、ROM312、RAM313、及び、ハードディスク装置(HDD)314を内蔵し、更に、USBメモリ100が接続される接続部316(図1参照)も備えている。また、パソコン300の接続部316にも、端子の信号レベルを監視することでUSBメモリ100の装着と非装着とを検出する接続検知部317が設けられている。そして、このパソコン本体310には、周知のディスプレイ320,キーボード330,マウス340と(いずれも図1参照)、LAN,インターネット等の図示しないネットワークと接続するためのネットワークインタフェース(ネットワークI/F)360とが接続されている。
【0022】
なお、パソコン300の接続部316は、プリンタ1をUSBケーブル等を介して接続することも可能な汎用ポートである。また、本実施の形態のUSBメモリ100は、図1に示すように、接続部28,316に接続可能な周知の接続部101と、指で操作することにより2つの位置に切り換え可能なスイッチ103とを備えている。
【0023】
[第1の実施の形態のUSBメモリ100の内部構成]
次に、図3は、第1の実施の形態としてのUSBメモリ100の内部の回路構成を表す説明図である。図3に示すように、USBメモリ100の内部には、接続部101(図1参照)を介してデータの送受信を行うUSB送受信部105が設けられ、このUSB送受信部105には、USBディスクリプタ応答部107とバルク転送送受信部109とが接続されている。
【0024】
USBディスクリプタ応答部107は、制御回路110の接点111を介して、偽装信号出力手段の一例としてのプリンタクラスディスクリプタ記憶部121、または、通知信号出力手段の一例としてのストレージクラスディスクリプタ記憶部123のいずれか一方に選択的に接続される。また、バルク転送送受信部109は、制御回路110の接点113によって、ファイルシステム制御部125に直接接続されるか、ファイル名生成部127を介してファイルシステム制御部125に接続されるかが切り換えられる。なお、制御回路110は、ロジック回路によって構成され、スイッチ103の状態等に応じてスイッチング素子からなる上記接点111,113の状態を切り換えるものである。
【0025】
また、プリンタクラスディスクリプタ記憶部121は、プリンタクラスのディスクリプタを記憶した回路で、データ記憶部の一例としての不揮発性メモリ129に接続されている。この不揮発性メモリ129の一部は、偽装するプリンタの名称やプロダクトIDなどの、プリンタクラスディスクリプタの不定部分を記憶している。プリンタクラスディスクリプタ記憶部121は、自身で記憶する定型部分と、不揮発性メモリ129に記憶された偽装するプリンタに応じて変わる情報とを合わせて、偽装されたプリンタクラスディスクリプタを生成するのである。また、ストレージクラスディスクリプタ記憶部123は、ストレージクラスのディスクリプタを記憶した回路である。更に、ファイルシステム制御部125は、不揮発性メモリ129に書き込みまたは読み出しされるデータのファイルシステムを制御する回路である。
【0026】
そして、このように構成されたUSBメモリ100では、制御回路110による接点111,113の切り換えにより、次のようにエンドポイントが割り振られる。すなわち、スイッチ103がプリンタ側に切り換えられたときは、図4(A)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のプリンタクラスのバルクアウトが、それぞれ割り振られる。また、スイッチ103がストレージ側に切り換えられたときは、図4(B)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のストレージクラスのバルクアウトが、エンドポイント2にインタフェース1のストレージクラスのバルクインが、それぞれ割り振られる。
【0027】
[USBメモリ100における処理及び効果]
次に、このような制御回路110を中心にしたロジック回路で実行される処理について説明する。なお、USBメモリ100の内部で実行される処理は、前述のように実際にはハードウェアの処理として実行されるが、以下の説明では、便宜上、同等の処理を表すフローチャートを用いて説明する。勿論、USBメモリ100の内部にCPU等を設けて、ソフトウェアの処理によって以下の処理を実行してもよいことはいうまでもない。
【0028】
USBメモリ100がパソコン300の接続部316に接続されると、CPU311はUSBメモリ100に対して各種情報を要求するパケットを送信する。図5は、このパケット受信時にUSBメモリ100にて実行される処理に対応するフローチャートである。
【0029】
図5に示すように、この処理では、先ず、S1(Sはステップを表す:以下同様)にて、受信されたパケットがコントロール転送のパケットかバルク転送のパケットかが判別される。通常、パソコン300は、USBメモリ100が接続されたことを接続検知部317を介して検知すると、何がつながったか問い合わせるべくディスクリプタの返送をコントロール転送で要求してくる。
【0030】
そこで、コントロール転送のパケットである場合は(S1:Ctrl)、S2にて、そのパケットがディスクリプタ要求であるか否かが判断される。ディスクリプタ要求である場合は(S2:Y)、S3にてスイッチ103の状態に応じて処理が次のように分かれる。すなわち、スイッチ103がプリンタ側に切り換えられている場合は(S3:プリンタ)、S4にて、偽装信号の一例としてのプリンタクラスのディスクリプタがプリンタクラスディスクリプタ記憶部121からパソコン300へ返送されて、処理が終了する。すなわち、この場合は、接点111がプリンタクラスディスクリプタ記憶部121側に切り換えられている(図3参照)。
【0031】
一方、スイッチ103がストレージ側に切り換えられている場合は(S3:ストレージ)、S5にて、通知信号の一例としてのストレージクラスのディスクリプタがストレージクラスディスクリプタ記憶部123からパソコン300へ返送されて、処理が終了する。すなわち、この場合、接点111は、ストレージクラスディスクリプタ記憶部123側に切り換えられている(図3参照)。
【0032】
このため、スイッチ103をプリンタ側に切り換えておけば(S3:プリンタ)、プリンタクラスのディスクリプタを接続部101,316を介してパソコン300へ返送することにより(S4)、パソコン300にUSBメモリ100をプリンタとして認識させることができる。すると、この場合、パソコン300のプリンタドライバは、プリンタ1に印刷データを出力するのと同様にUSBメモリ100に印刷データを出力し、後述のようにその印刷データを不揮発性メモリ129に書き込むことが可能となる。
【0033】
すなわち、この場合、パソコン300は、USBメモリ100をプリンタとして認識している。このため、例えばOSとしてWindowsXP(登録商標)を使用した場合にあっては、通常のUSBプリンタポート(USB001等)と同等のポートがプラグアンドプレイにより生成される。これは通常のUSBメモリ100ではなく、プリンタ自身をこのパソコン300と接続した際に生成されるポートと同じである。このため、使用者は、現在接続されているデバイスがプリンタであるかUSBメモリであるかを一切意識することなく、同じ操作で印刷の操作を行うことができるのである。
【0034】
また、スイッチ103をストレージ側に切り換えておけば(S3:ストレージ)、ストレージクラスのディスクリプタを接続部101,316を介してパソコン300へ返送することにより(S5)、パソコン300にUSBメモリ100をストレージとして認識させることができる。
【0035】
一方、コントロール転送によりディスクリプタ要求以外のパケットが受信された場合は(S2:N)、S7により、そのパケットがプリンタクラスコマンドの要求であるか否かが判断される。プリンタクラスコマンドの要求である場合は(S7:Y)、S8にてプリンタクラスコマンドの応答がパソコン300へ送信されて処理が終了し、他のパケットである場合は(S7:N)、対応する他の処理がS9にてなされて処理が終了する。
【0036】
図6は、S8のプリンタクラスコマンド送信処理を詳細に表すフローチャートである。この処理では、先ず、S80にて、上記パケットがステータス信号の一例としてのステータス情報要求であるか否かが判断される。ステータス情報要求でない場合は(S80:N)、S81にて、上記パケットがIEEE1248IDの要求であるか否かが判断され、IEEE1248IDの要求でもない場合は(S81:N)、S82にて、上記パケットがリセット信号の一例としてのデバイスリセットであるか否かが判断される。
【0037】
デバイスリセットでもない場合は(S82:N)、S83にてエラー(ストール)となって処理が終了する(図5参照)。一方、上記パケットがデバイスリセットの場合は(S82:Y)、印刷データ削除手段の一例としてのS84にて、不揮発性メモリ129に記憶された印刷データ等のファイルが削除され、処理が終了する。また、パケットがIEEE1248ID要求であった場合は(S81:Y)、S85にて、当該IDが送信されて処理が終了する(図5参照)。なお、USBメモリ100がプリンタ1の付属品として同梱される場合、プリンタ1のIEEE1248IDがUSBメモリ100にも予め記憶されており、S85ではそのIDが送信される。
【0038】
また、上記パケットがステータス情報要求であった場合は(S80:Y)、S86にて、不揮発性メモリ129のメモリ残容量がないか否かが判断される。そして、メモリ残容量がない場合は(S86:Y)、S87にてPEビットに1が立てられてS88の処理が実行され、メモリ残容量がある場合は(S86:N)、PEビットに0が立てられてS88の処理が実行される。なお、PEビットとは、ペーパエラーを表すビットであり、これに1が立てられることは紙なしエラーが発生したことを表している。続くエラー信号出力手段の一例としてのS88では、上記PEビットを含むエラー信号の一例としてのステータス情報が送信されて、処理が終了する。
【0039】
このため、不揮発性メモリ129のメモリ残容量がない、いわゆるメモリフルの場合は(S86:Y)、PEビットに1が立てられたステータス情報をパソコン300へ送信することにより(S87,S88)、パソコン300側では、OSの印刷システムにより、用紙エラーの表示がなされ、送信が自動的に停止される。使用者は、この表示を見ることによりメモリフルであること、並びに、印刷データの記憶が不完全であることを知ることができる。それによって使用者は、例えば不要なデータを削除して再印刷を行うなどの適切な対応をとることができる。
【0040】
図5へ戻って、一方、パケットがバルク転送の場合は(S1:Bulk)、S11にて、S3と同様にスイッチ103の状態が判断される。そして、スイッチ103がプリンタ側に切り換えられている場合は(S11:プリンタ)、S12にて、ファイル名生成部127を介して周知の方法でユニークなファイル名が付与された後、また、スイッチ103がストレージ側に切り換えられている場合は使用者によりファイルシステムに対して指定されたファイル名のまま(S11:ストレージ)、S13の処理が実行される。すなわち、スイッチ103がスイッチがプリンタ側に切り換えられている場合は(S11:プリンタ)、接点113はファイル名生成部127側に切り換えられていて自動的にファイル名が付けられる一方、スイッチ103がストレージ側に切り換えられている場合は(S11:ストレージ)、接点113はファイルシステム制御部125側に切り換えられている(図3参照)。このため、通常のストレージと同様に、使用者の付したファイル名でアクセスされる。
【0041】
S13では、バルクインかバルクアウトかの判断がなされる。そして、バルクアウトの場合は(S13:Out)、S14にて、不揮発性メモリ129への記憶(書き込み)がなされて処理が終了し、バルクインの場合は(S13:In)、S15にて、不揮発性メモリ129からの読み出しがなされて処理が終了する。
【0042】
なお、上記記憶(S14)及び読み出し(S15)は、ファイルシステム制御部125を介してなされる。パソコン300がUSBメモリ100をプリンタと認識して送信する印刷データにはファイル名がないので(S11:プリンタ)、上記処理では、ファイル名を生成した上で(S12)、ファイルシステム制御部125を介した不揮発性メモリ129への記憶が実行されるのである(S14)。また、このように、USBメモリ100がプリンタと認識された上で印刷データを書き込まれる場合、ジョブの終了の判断ができないので、USBメモリ100がパソコン300から引き抜かれたときにファイルが閉じられる。すなわち、USBメモリ100をパソコン300に接続したままで印刷処理(印刷データの書き込み)がなされると、全てのジョブが1つのファイルに記録される。
【0043】
以上のように、本実施の形態のUSBメモリ100では、スイッチ103をストレージ側に切り換えておけば(S3:ストレージ)、ストレージクラスのディスクリプタをパソコン300へ返送することにより(S5)、パソコン300にUSBメモリ100をストレージとして認識させることができる。この場合、一般のUSBメモリと同様に、データの記憶(S14)、読み出し(S15)を実行することができる。
【0044】
また、スイッチ103をプリンタ側に切り換えておけば(S3:プリンタ)、プリンタクラスのディスクリプタをパソコン300へ返送することにより(S4)、パソコン300にUSBメモリ100をプリンタとして認識させることができる。すると、この場合、パソコン300のプリンタドライバは、プリンタ1に印刷データを出力するのと同様にUSBメモリ100に印刷データをバルク転送で出力し、その印刷データを不揮発性メモリ129に書き込むことが可能となる(S14)。
【0045】
そして、このように不揮発性メモリ129に書き込まれた印刷データは、スイッチ103をストレージ側に切り換えて、プリンタ1の接続部28にUSBメモリ100の接続部101を接続することにより、そのプリンタ1に周知のように自動的に読み出させて印刷(ダイレクトプリント)することができる。このため、本実施の形態のUSBメモリ100では、パソコン300のプリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用することが、ポートの変更等を行わずに極めて容易に実行できる。
【0046】
更に、上記のように不揮発性メモリ129に印刷データを書き込む場合、パソコン300からデバイスリセットの要求があったときは(S82:Y)、不揮発性メモリ129に書き込まれた上記印刷データのファイルを削除することができる(S84)。また、メモリ残容量なしのときは(S86:Y)、PEビットを1にしてパソコン300にステータスを送信することができる(S88)。従って、本実施の形態では、パソコン300から見て、USBメモリ100への印刷データの出力はプリンタ1への印刷データの出力と殆ど変わらなくなる。
【0047】
[第2の実施の形態のUSBメモリ500の内部構成]
次に、図7は、第2の実施の形態としてのUSBメモリ500の内部の回路構成を表す説明図である。なお、USBメモリ500は、USBメモリ100と同様に構成された部分を有するので、USBメモリ100と同様に構成された部分には図7において図3と同様の符号を付して詳細な説明を省略する。
【0048】
図7に示すように、USBメモリ500は、前述のプリンタクラスディスクリプタ記憶部121及びストレージクラスディスクリプタ記憶部123の代わりに、通知信号出力手段及び偽装信号出力手段の一例としてのストレージクラスプリンタクラスディスクリプタ記憶部521を備えた点でUSBメモリ100と異なる。このストレージクラスプリンタクラスディスクリプタ記憶部521は、ストレージクラスを有するマルチインタフェースデバイスディスクリプタを出力することにより、パソコン300に、プリンタの機能とストレージの機能とを併せ持ったデバイスであることを認識させる。また、これに応じて、USBメモリ500ではスイッチ103が不要となり、制御回路510も、バルク転送送受信部109をファイルシステム制御部125に直接接続するかファイル名生成部127を介してファイルシステム制御部125に接続するかを切り換える接点513のみを有する。
【0049】
そして、このように構成されたUSBメモリ500では、エンドポイントが次のように割り振られる。すなわち、図8に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のプリンタクラスのバルクアウトが、エンドポイント2にインタフェース2のストレージクラスのバルクアウトが、エンドポイント3にインタフェース2のストレージクラスのバルクインが、それぞれ割り振られる。
【0050】
[USBメモリ500における処理及び効果]
次に、制御回路510を中心にしたロジック回路で実行される処理を、同等の処理を表す図9のフローチャートを用いて説明する。なお、図9の処理は、図5の処理と同様の部分を有するので、以下、相違点についてのみ説明する。
【0051】
図9に示すように、この処理では、上記パケットがディスクリプタ要求であった場合は(S2:Y)、S103にて、ストレージクラスプリンタクラスディスクリプタ記憶部521によりストレージクラスを有するマルチインタフェースデバイスディスクリプタが返送され、処理が終了する。この処理によって、パソコン300に、接続部316に接続されているデバイスがプリンタの機能とストレージの機能とを併せ持ったデバイスであると認識させることができる。このため、前述のような印刷データの書き込みも可能となる。
【0052】
また、USBメモリ500は前述のようなスイッチ103を備えていないので、上記パケットがバルク転送の場合は(S1:Bulk)、S111にて、そのときパソコン300によって指定されているエンドポイントが判断される。そして、エンドポイントがプリンタに対応する1である場合は(S111:プリンタ)、前述のS12にてファイル名が生成された後、エンドポイントがストレージクラスに対応する2または3である場合はそのまま(S111:ストレージ)、前述のS13の処理が実行される。すなわち、この場合、エンドポイントに基づいて接点513が切り換えられる(図7参照)。
【0053】
このように、本実施の形態のUSBメモリ500でも、前述のUSBメモリ100と同様の効果が得られる。また、本実施の形態では、ストレージクラスプリンタクラスディスクリプタ記憶部521がストレージクラスを有するマルチインタフェースデバイスディスクリプタを返送するので、前述のように構成及び処理を一層簡略化することができる。
【0054】
[第3の実施の形態のUSBメモリ600の内部構成]
次に、図10は、第3の実施の形態としてのUSBメモリ600の内部の回路構成を表す説明図である。なお、USBメモリ600は、バルク転送送受信部109がプリンタクラスディスクリプタ記憶部121にも接続された点と、そのプリンタクラスディスクリプタ記憶部121が不揮発性メモリ129に接続されていない点とでUSBメモリ100と異なり、他はUSBメモリ100と同様に構成されている。このように構成されたUSBメモリ600では、バルク転送により、プリンタクラスディスクリプタ記憶部121に記憶されたプリンタクラスのディスクリプタを書き換えることができる。このため、例えば新規のプリンタ1を購入したときなどに、プリンタクラスのディスクリプタをその新規のプリンタ1に対応したプリンタクラスを表すものに変更すれば、USBメモリ600をパソコン300に上記新規のプリンタ1として認識させることができる。
【0055】
[USBメモリ600に対するパソコン300の処理]
次に、上記のような書き換えを行うためのパソコン300における処理について、図11のフローチャートを用いて説明する。なお、本処理は、パソコン300のOS上でプログラムが選択されるなどして処理の実行が指示されたとき、CPU311によりHDD314に記憶されたプログラムに基づいて実行される。
【0056】
図11に示すように、この処理では、先ず、S91にて、ディスプレイ320にメッセージ等が表示されることによりプリンタ1をパソコン300に接続するように指示がなされる。プリンタ1が接続されて処理がS92へ移行すると、そのプリンタ1からディスクリプタとIEEE1248IDとが取得される。続くS93では、ディスプレイ320にメッセージ等が表示されることによりUSBメモリ600をパソコン300に接続するように指示がなされる。USBメモリ600が接続されて処理がS94へ移行すると、そのUSBメモリ600に、上記取得されたディスクリプタとIEEE1248IDとが書き込まれる。以上のように、ディスクリプタ及びIEEE1248IDを更新することにより、USBメモリ600をパソコン300に新規のプリンタ1として認識させることが可能となる。
【0057】
[第4の実施の形態のUSBメモリ700の内部構成]
次に、図12は、第4の実施の形態としてのUSBメモリ700の内部の回路構成を表す説明図である。なお、USBメモリ700は、USBメモリ100と同様に構成された部分を有するので、USBメモリ100と同様に構成された部分には図12において図3と同様の符号を付して詳細な説明を省略する。
【0058】
図12に示すように、USBメモリ700は、3つの位置に切り換え可能なスイッチ703をスイッチ103の代わりに備え、内部には、USBメモリ100の構成に加えて、更に、ストレージクラスリードオンリディスクリプタを記憶したストレージクラスリードオンリデバイスディスクリプタ記憶部724と、プリンタドライバを記憶したROM730とを備えている。このROM73に記憶されたプリンタドライバは、実行ファイル形式のインストーラによりインストールされるもので、そのインストーラは、このUSBメモリ700が接続された際に自動起動されるように設定されている。また、制御回路710の接点711,713は、前述の接点111,113と同様の切り換えに加えて、USBディスクリプタ応答部107をストレージクラスリードオンリデバイスディスクリプタ記憶部724と接続し、バルク転送送受信部109をROM730と接続する位置にも切り換え可能に構成されている。
【0059】
そして、このように構成されたUSBメモリ700では、制御回路710による接点711,713の切り換えにより、次のようにエンドポイントが割り振られる。すなわち、スイッチ703がプリンタ側に切り換えられたときは、図13(A)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のプリンタクラスのバルクアウトが、それぞれ割り振られる。また、スイッチ703がストレージ側に切り換えられたときは、図13(B)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース2のストレージクラスのバルクアウトが、エンドポイント2にインタフェース2のストレージクラスのバルクインが、それぞれ割り振られる。更に、スイッチ703がドライバストレージ側に切り換えられたときは、図13(C)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース3のストレージクラスのバルクインが、それぞれ割り振られる。
【0060】
[USBメモリ700における処理及び効果]
次に、制御回路710を中心にしたロジック回路で実行される処理を、同等の処理を表す図14のフローチャートを用いて説明する。なお、図14の処理は、図5の処理と同様の部分を有するので、以下、相違点についてのみ説明する。
【0061】
図14に示すように、この処理では、S3に代わるS203にて、スイッチ703の状態がプリンタかストレージかドライバストレージかで判断される。プリンタ,ストレージの場合の処理は図5と同様であるが、ドライバストレージの場合は(S203:ドライバストレージ)、S205にて、ストレージクラスリードオンリディスクリプタが返送されて処理が終了する。S11に代わるS211でも、同様に、スイッチ703の状態がプリンタかストレージかドライバストレージかで判断される。プリンタ,ストレージの場合の処理は図5と同様であるが、ドライバストレージの場合は(S211:ドライバストレージ)、S215にて、ROM730からプリンタドライバが読み出されて処理が終了する。
【0062】
このため、本実施の形態では、スイッチ703をドライバストレージ側に切り換えておけば、パソコン300への接続時におけるインストーラの自動起動により、ROM730に記憶されたプリンタドライバを自動でインストールすることができる。このため、出先のパソコン300等がプリンタクラスディスクリプタ記憶部121に記憶されたディスクリプタに対応するプリンタドライバを備えていない場合でも、上記インストールがなされることにより、前述のような印刷データの書き込みを良好に実行することができる。
【0063】
[第5の実施の形態のUSBメモリ800の内部構成]
次に、図15は、第5の実施の形態としてのUSBメモリ800の内部の回路構成を表す説明図である。なお、USBメモリ800は、第4の実施の形態のUSBメモリ700に対して、第2の実施の形態のUSBメモリ500と同様の改変を行ったものである。
【0064】
すなわち、USBメモリ800は、プリンタクラスディスクリプタ記憶部121、ストレージクラスディスクリプタ記憶部123、及び、ストレージクラスリードオンリデバイスディスクリプタ記憶部724の代わりに、前述のストレージクラスプリンタクラスディスクリプタ記憶部521を備えている。また、USBメモリ800ではスイッチ703を備えず、制御回路810も、バルク転送送受信部109をファイルシステム制御部125に直接接続するか、ファイル名生成部127を介してファイルシステム制御部125に接続するか、ROM730に接続するかを切り換える接点813のみを有する。
【0065】
そして、このように構成されたUSBメモリ800では、エンドポイントが次のように割り振られる。すなわち、図16に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のプリンタクラスのバルクアウトが、エンドポイント2にインタフェース2のストレージクラスのバルクアウトが、エンドポイント3にインタフェース2のストレージクラスのバルクインが、エンドポイント4にインタフェース3のストレージクラスのバルクインが、それぞれ割り振られる。
【0066】
ROM730には、プリンタドライバが記憶されている。このプリンタドライバは、プラグアンドプレイによりインストールされるものであり、その設定ファイル(INFファイル)には、上記プリンタクラスのディスクリプタに対応して、インストールされるように記述されている。
【0067】
すなわち、このUSBメモリ800をパソコン300に差し込むと、プリンタとストレージが同時に接続されたとパソコン300はみなす。そして、そのプリンタ(USBメモリ800で偽装されたプリンタ)のドライバがまだインストールされていないならば、OSのプラグアンドプレイの動作により、対応するプリンタドライバの検索が行われる。そして、自動或いは手動操作により、ROM730に記憶された設定ファイルが見つけられると、自動的にROM730内に記憶されたプリンタドライバがパソコン300にインストールされるのである。
【0068】
[USBメモリ800における処理及び効果]
このため、制御回路810を中心にしたロジック回路で実行される処理も、第4の実施例における図14の処理に対して第2の実施の形態における図9と同様の改変を行ったものとなる。すなわち、図17に同等の処理を表すフローチャートを示すように、パケットがディスクリプタ要求であった場合は(S2:Y)、S103にて、ストレージクラスプリンタクラスディスクリプタ記憶部521によりストレージクラスを有するマルチインタフェースデバイスディスクリプタが返送され、処理が終了する。
【0069】
また、USBメモリ800は前述のようなスイッチ103を備えていないので、上記パケットがバルク転送の場合は(S1:Bulk)、S311にて指定されているエンドポイントが4であるか否かが判断される。エンドポイントが4の場合は(S311:Y)、前述のS215にてROM730からの読み出しがなされて処理が終了し、エンドポイントが4でない場合は(S311:N)、S312にて、プリンタクラスのエンドポイント1であるか否かが判断される。そして、プリンタクラスのエンドポイントである場合は(S312:Y)、前述のS12にてファイル名が生成された後、エンドポイントがストレージクラスに対応する3または4である場合はそのまま(S312:N)、前述のS13の処理が実行される。本実施の形態のUSBメモリ800でも、前述のUSBメモリ700と同様の効果が得られ、そのUSBメモリ700に比べて構成及び処理を一層簡略化することができる。
【0070】
[第6の実施の形態のUSBメモリ900の内部構成]
次に、図18は、第6の実施の形態としてのUSBメモリ900の内部の回路構成を表す説明図である。このUSBメモリ900は、プリンタ名を記憶可能な不揮発性メモリ831が設けられた点と、ROM730から接点713に至る経路にRAM832が設けられ、そのRAM832に上記不揮発性メモリ831も接続された点とで、第4の実施の形態のUSBメモリ700と異なり、他は同様に構成されている。
【0071】
[USBメモリ900における処理及び効果]
このUSBメモリ900でも、USBメモリ700とほぼ同様の処理(図14参照)が実行されるが、S215の処理が次のように異なっている。図19はUSBメモリ900に対応するS215の処理を詳細に表すフローチャートである。図19に示すように、ROM読み出しの処理(S215)が実行されると、先ず、S2151にて、INFファイルの読み取りがなされるか否かが判断される。このINFファイルは、先に述べたように、上記プリンタクラスのディスクリプタに対応して、インストールされるように記述されている。更に、このINFファイルには、通常インストールされるプリンタドライバのデフォルトの名称(登録名)も記述されている。そして、INFファイルが読み取られる場合は(S2151:Y)、S2152にて、ROM730に記憶されたプリンタドライバの内容と、不揮発性メモリ831に記憶されたプリンタのデフォルトの名称とが合成されることにより、INFファイルがRAM832上で作成される。続くS2153では、そのファイルが出力されて処理が終了する(図14参照)。一方、INFファイルの読み取りでない場合は(S2151:N)、そのままS2153にてファイルが出力される。
【0072】
このため、本実施の形態では、ネットワークプリンタのインストール時など、プリンタに統一したユニークな名前を付けたいときなどには、INFファイルの一部のみを書き変えて対応することができる。このときプリンタ名の部分のみを書き換え可能としているので、INFファイル全体を書き変え可能にした場合に比べ、書き間違えなどに起因するトラブルが防げる。
【0073】
[上記各実施の形態における処理の変形例]
更に、上記各実施の形態における処理は、以下に例示するように種々に変形することができる。例えば、第1の実施の形態のUSBメモリ100において、図20に示すようにプリンタクラスのバルクインにエンドポイント2が割り振られている場合、図5の処理は次のように変形することができる。すなわち、パケットがバルク転送で(S1:Bulk)、スイッチ103がプリンタ側に切り換えられている場合の処理は(S11:プリンタ)、図21に示すように変形してもよい。なお、本処理では、スイッチ103がストレージ側に切り換えられている場合は(S11:ストレージ)、図5と同様の処理となる。また、前述した他の実施の形態においても、パケットがバルク転送でパソコン300にプリンタとして認識されている場合は同様の処理が適用できる。
【0074】
この処理では、前述のようにS12にてファイル名が生成された後、S13にてバルクアウトと判断された場合は(S13:Out)、S141にてPJLデータが解析される。続くS142では、そのPJLデータのコマンド中に、USTATUS ONのコマンド(ステータスを送り返せというコマンド)があったか否かが判断される。そして、あった場合は(S142:Y)、S143にて、そのUSTATUS ONのコマンドはUSTATUS OFFのコマンドに変更され、更に、S144にてUSTATUSフラグがONにされて、前述のS14による記憶がなされる。すなわち、印刷データの中にUSTATUS ONのコマンドが書き込まれていても、ダイレクトプリント時にはプリンタ1はステータスを送り返すことができないので、USTATUSコマンドはOFFに変更されるのである(S143)。
【0075】
一方、USTATUS ONのコマンドがPJLデータのコマンド中に含まれていない場合は(S146:N)、S146にてUSTATUSフラグがOFFにされて、前述のS14による記憶がなされる。
【0076】
また、バルクインの場合は(S13:In)、S151にて、前述のUSTATUSフラグがONであるか否かが判断される。そして、USTATUSフラグがOFFの場合は(S151:N)、S152にて空データが送信されて処理が終了し、USTATUSフラグがONの場合は(S151:Y)、S153にて、当該バルクインの要求が最初の要求であるか否かが判断される。最初の要求である場合は(S153:Y)、S154にて、当該USBメモリ100の残容量等のストレージ情報がUSTATUS情報として返答され、処理が終了する。
【0077】
一方、当該バルクインの要求が最初の要求ではない場合は(S153:N)、S155にて、USBメモリ100の残容量等に変化があったか否かが判断される。そして、変化がない場合は(S155:N)、前述のS152にて空データが送信され、変化があった場合は(S155:Y)、S156にて残容量等を返答するUSTATUS返答がなされて、処理が終了する。
【0078】
この場合、パソコン300とUSBメモリ100との間でなされるデータの送受信を、パソコン300とプリンタ1との間でなされるデータの送受信に一層近づけることができると共に、USTATUSコマンドをOFFに変更することなどにより(S143)、ダイレクトプリントを一層円滑に行うことができる。
【0079】
図22は、上記のように返答されるUSTATUSを用いて、パソコン300でプリンタドライバの処理と並行して実行されるステータスモニタ処理を表すフローチャートである。図22に示すように、この処理では、先ず、S501にて、図23(A)に例示するようにプリンタ1のステータスを表示するステータス用ダイアログがディスプレイ320に表示される。続くS502では、前述のようにUSTATUS ONコマンドを含むPJLデータが接続部316に接続されているデバイス(プリンタ1またはプリンタとして認識されているUSBメモリ100)に送信され、S503にて、USTATUS返答が受信される。
【0080】
ここで、USTATUS返答に使用されるPJLは、上記デバイスがプリンタ1である場合と、上記デバイスがプリンタとして認識されたUSBメモリ100である場合とでは、若干の相違があるように設定されている。そこで、続くS504では、USTATUS返答が、ストレージを示すPJLであるか否か、すなわち、上記デバイスがプリンタとして認識されたUSBメモリであることを示すPJLであるか否かが判断される。
【0081】
ストレージを示すPJLでない場合、すなわち、プリンタ1からのUSTATUS返答であった場合は(S504:N)、処理はS505へ移行し、プラグアウトされたか否かが判断される。プラグアウトされていない場合は(S505:N)、S506にてプリンタ1のステータスが上記ステータス用ダイアログに表示された後、処理は前述のS503へ移行する。このように、接続部316にプリンタ1が接続されている場合は、S503〜S504の処理が繰り返し実行されることにより、上記ステータス用ダイアログにプリンタ1のステータスが表示される(S506)。そして、プリンタ1がプラグアウトされると(S505:Y)、処理が終了する。
【0082】
一方、USTATUS返答がストレージを示すPJLであった場合は(S504:Y)、処理はS511へ移行し、上記ステータスダイアログがディスプレイ320から消去され、続くS512にて、図23(B)に例示するようにメモリ残容量を表示する残量用ダイアログがディスプレイ320に表示される。続くS513では、USBメモリ100がプラグアウトされたか否かが判断される。プラグアウトされていない場合は(S513:N)、S514にて、新たにUSTATUS返答が受信され、その返答に基づいてS515にてメモリ残容量の表示がなされた後、処理は前述のS513へ移行する。
【0083】
このように、プリンタとして認識されたUSBメモリ100が接続部316に接続されている場合は、S513〜S515の処理が繰り返し実行されることにより、上記残量用ダイアログにメモリ残容量が表示される(S515)。そして、USBメモリ100がプラグアウトされると(S513:Y)、処理が終了する。このようなステータスモニタ処理をプリンタドライバの処理と並行して実行した場合、そのプリンタドライバの操作性が極めて向上する。
【0084】
なお、本発明は上記実施の形態になんら限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の形態で実施することができる。例えば、本発明における携帯型記憶媒体としては、USBメモリの他、メモリカード,CD−R,CD−RWメディア,携帯型ハードディスクなど種々の媒体を適用することができる。
【0085】
また、上記実施の形態では、USBメモリに記憶される印刷データは、通常のプリンタドライバで生成されるPJL/PDL形式で記述されることを前提として述べたがこれに限定されるものではない。例えば、デジタルカメラなどにより記録されたJPEGファイルをダイレクトプリントできるプリンタが一般的に知られている。そのようなプリンタを偽装することも考えられる。この場合にあっては、例えば、第5の実施の形態、第6の実施の形態において、ROM730に記憶されているプリンタドライバは、通常のPJL/PDL形式でページを記述するものではなく、印刷ジョブを各ページ毎に別のJPEGファイルで記述するものとする。
【図面の簡単な説明】
【0086】
【図1】本発明が適用されたUSBメモリが利用される画像形成システムの構成を表す外観図である。
【図2】そのシステムの制御系の構成を表すブロック図である。
【図3】第1の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図4】そのUSBメモリのエンドポイントの割り振りを表す説明図である。
【図5】そのUSBメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図6】その処理のプリンタクラスコマンド送信処理を表すフローチャートである。
【図7】第2の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図8】そのUSBメモリのエンドポイントの割り振りを表す説明図である。
【図9】そのUSBメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図10】第3の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図11】そのUSBメモリに対応するパソコンの処理を表すフローチャートである。
【図12】第4の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図13】そのUSBメモリのエンドポイントの割り振りを表す説明図である。
【図14】そのUSBメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図15】第5の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図16】そのUSBメモリのエンドポイントの割り振りを表す説明図である。
【図17】そのUSBメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図18】第6の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図19】そのUSBメモリで実行される処理の一部をソフトウェアに置き換えて表すフローチャートである。
【図20】第1の実施の形態の処理の変形例におけるエンドポイントの割り振りを表す説明図である。
【図21】その処理の一部をソフトウェアに置き換えて表すフローチャートである。
【図22】その処理に対応するパソコンのステータスモニタ処理を表すフローチャートである。
【図23】そのステータスモニタ処理におけるダイアログを表す説明図である。
【符号の説明】
【0087】
1…プリンタ 28…接続部 36…接続検知部
100,500,600,700,800,900…USBメモリ
101…接続部 103,703…スイッチ 105…USB送受信部
107…USBディスクリプタ応答部 109…バルク転送送受信部
110,510,710,810…制御回路
111,113,513,711,713,813…接点
121…プリンタクラスディスクリプタ記憶部
123…ストレージクラスディスクリプタ記憶部
125…ファイルシステム制御部 127…ファイル名生成部
129…不揮発性メモリ 300…パーソナルコンピュータ
316…接続部 317…接続検知部
724…ストレージクラスリードオンリデバイスディスクリプタ記憶部
831…不揮発性メモリ
【技術分野】
【0001】
本発明は、データが記憶可能でかつ携帯可能な携帯型記憶媒体に関し、詳しくは、パーソナルコンピュータの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な携帯型記憶媒体に関する。
【背景技術】
【0002】
近年、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートとして、USBメモリを装着可能な接続部を備えたパーソナルコンピュータが提案されている。また、プリンタにもUSBメモリを装着可能な接続部を設けておき、印刷データが記憶されたUSBメモリが装着されると、そのUSBメモリから自動的に印刷データを読み込んで印刷(いわゆるダイレクトプリント)を実行することが提案されている(例えば、特許文献1参照)。
【特許文献1】特開2005−138531号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ここで、ダイレクトプリント用のUSBメモリには、アプリケーションで作成されたファイルではなく、プリンタドライバが出力する印刷データを書き込みたい場合がある。そこで、プリンタドライバに「ファイルに出力」等のチェックボックスを設け、そのチェックボックスをチェックして印刷処理を実行することにより上記印刷データをUSBメモリに書き込み可能とすることも提案されている。
【0004】
ところが、プリンタドライバにそのような機能がない場合、印刷ポートを変更しなければならない。ポートの変更はアドミニストレータ権限がないとできない場合があり、使用者は極めて煩雑な操作を強いられる。
【0005】
そこで、本発明は、プリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用するのが、極めて容易な携帯型記憶媒体を提供することを目的としてなされた。
【課題を解決するための手段】
【0006】
上記目的を達するためになされた本発明は、パーソナルコンピュータ(以下、単にパソコンともいう)の、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な接続部と、該接続部を介して書き込みまたは読み出しされるデータを記憶するデータ記憶部と、自身が記憶媒体であることを通知する通知信号を上記接続部を介して出力する通知信号出力手段と、自身がプリンタであると偽装する偽装信号を上記接続部を介して出力する偽装信号出力手段と、を備え、上記データ記憶部は、上記偽装信号に対してプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、かつ、当該データ記憶部は、その印刷データを上記接続部を介して読み出し可能に記憶することを特徴としている。
【0007】
このように構成された本発明の携帯型記憶媒体では、パソコンの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続部が接続された状態で、通知信号出力手段は自身が記憶媒体であることを通知する通知信号を出力することができる。この場合、パソコンはその携帯型記憶媒体を記憶媒体として認識する。すると、データ記憶部には、上記パソコンによって通常の記憶媒体と同様にデータの書き込み及び読み出しがなされる。
【0008】
また、本発明の携帯型記憶媒体では、パソコンの上記汎用ポートに接続部が接続された状態で、偽装信号出力手段は自身がプリンタであると偽装する偽装信号を上記接続部を介して出力することができる。この場合、パソコンはその携帯型記憶媒体をプリンタとして認識する。すると、上記データ記憶部は、上記偽装信号に対して、パソコンによってプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、その印刷データは、上記接続部を介してプリンタ等に読み出させることができる。
【0009】
このように、本発明の携帯型記憶媒体は、自身がプリンタであると偽装する偽装信号を上記汎用ポートに出力することができる。このため、本発明の携帯型記憶媒体では、パソコンのプリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用することが、ポートの変更等を行わずに極めて容易に実行することができる。なお、本発明において、通知信号と偽装信号は一体化されていてもよく、この場合、通知信号出力手段と偽装信号出力手段とは一体になる。
【0010】
また、本発明は以下の構成に限定されるものではないが、上記接続部を上記偽装信号出力手段または上記通知信号出力手段のいずれかに切り換え可能に接続する接点を、更に備えてもよい。この場合、上記接点の切り換えにより、当該携帯型記憶媒体を記憶媒体としてパソコンに認識させるかプリンタとして認識させるかを切り換えることができる。
【0011】
また、上記通知信号,偽装信号の具体例としては、種々の形態が考えられるが、上記通知信号が、ストレージクラスを表す信号であり、上記偽装信号が、プリンタクラスを表す信号であってもよい。
【0012】
そして、この場合、上記偽装信号出力手段は、上記偽装信号が表すプリンタクラスを変更可能に構成されてもよい。この場合、新規のプリンタを購入したときなどに、偽装信号をその新規のプリンタに対応したプリンタクラスを表すものに変更すれば、当該携帯型記憶媒体をパソコンに上記新規のプリンタとして認識させることができる。
【0013】
また、上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータからプリンタの状態を問い合わすステータス信号が上記接続部を介して入力されたとき、その時点で上記データ記憶部の容量が不足の場合に、上記ステータス信号に対して紙なしエラーを表すエラー信号を上記接続部を介して出力するエラー信号出力手段を、更に備えてもよい。この場合、データ記憶部の容量が不足のときには、エラー信号出力手段がステータス信号に対して紙なしエラーを表すエラー信号を出力することにより、パソコンに印刷データの送信を中止させることができる。
【0014】
また、上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータから印刷中止を表すリセット信号が上記接続部を介して入力されたとき、上記データ記憶部に書き込まれた印刷データを削除する印刷データ削除手段を、更に備えてもよい。この場合、パソコンからリセット信号が入力されたときに、印刷データ削除手段により印刷データを削除することができる。
【0015】
また、本発明の携帯型記憶媒体としては、USBメモリ,メモリカード,CD−R,CD−RWメディア,携帯型ハードディスクなど種々の携帯型記憶媒体を適用することができるが、上記携帯型記憶媒体がUSBメモリの形態で構成された場合、上記通知信号及び偽装信号はディスクリプタであってもよい。この場合、USBの規格に応じて、前述のようにパソコンに記憶媒体と認識させたりプリンタと認識させたりすることができる。
【発明を実施するための最良の形態】
【0016】
[実施の形態の全体構成]
次に、本発明の実施の形態を、図面を参照して説明する。図1は、本発明が適用された携帯型記憶媒体の一例としてのUSBメモリ100が利用される画像形成システムの構成を表す外観図である。図1に示すように、本実施の形態の画像形成システムは、プリンタ1と、パーソナルコンピュータ(以下、単にパソコンという)300とから構成されている。
【0017】
図1に示すように、プリンタ1は、装置本体2の下側に用紙等の図示しない被記録媒体を収納する給紙カセット4が抜き差し可能に設けられている。装置本体2の上側には、印刷処理された被記録媒体が排出されるトレイ部6が設けられると共に、液晶ディスプレイ等を用い情報を表示する表示部8と、各種操作キーによる各種の入力操作を受け付ける操作部10とが設けられている。また、装置本体2には、携帯型記憶媒体の一例としてのUSBメモリ100が着脱可能な挿入口16が設けられている。
【0018】
図2は本画像形成システムの制御系の構成を表すブロック図である。プリンタ1は、処理プログラムを実行するCPU20、処理プログラム等を記憶するROM22、処理結果等を一時的に記憶するRAM24、データ等を記憶するハードディスク装置(HDD)26、USBメモリ100が接続される接続部28、前述の表示部8,操作部10、処理プログラム等に基づいて制御され被記録媒体に印刷を実行する画像形成ユニット部30、及び、LAN,インターネット等の図示しないネットワークと接続するためのネットワークインタフェース(ネットワークI/F)32、を備えている。また、接続部28には、USBメモリ100の非装着時には非導通状態、装着時には導通状態となる端子の信号レベルを監視することで、USBメモリ100の装着と非装着とを検出する周知の接続検知部36が設けられている。
【0019】
画像形成ユニット部30は、画像データによりレーザ光を変調して図示しない感光ドラム上で走査させて潜像を形成し、該潜像を現像してトナー像を形成し、給紙カセット4から供給された被記録媒体上に上記トナー像を転写して定着した後、トレイ部6に排紙するように構成されている。このように、本実施の形態の画像形成ユニット部30は、感光ドラム上にトナー像を形成し、トナー像を被記録媒体に転写するページプリンタを用いているが、これに限らず、インクジェット式のシリアルプリンタであってもよい。
【0020】
プリンタ1は、USBメモリ100に記憶された印刷データをRAM24内のフレームメモリに展開して画像データを形成する。RAM24内のフレームメモリに展開された画像データは、画像形成ユニット部30へCMYKデータ(グレイスケールの場合には、Kデータ)として送られ、用紙等の被記録媒体上に印刷される。なお、印刷はカラー印刷でもモノクロ印刷でもよい。
【0021】
また、パソコン300のパソコン本体310は、CPU311、ROM312、RAM313、及び、ハードディスク装置(HDD)314を内蔵し、更に、USBメモリ100が接続される接続部316(図1参照)も備えている。また、パソコン300の接続部316にも、端子の信号レベルを監視することでUSBメモリ100の装着と非装着とを検出する接続検知部317が設けられている。そして、このパソコン本体310には、周知のディスプレイ320,キーボード330,マウス340と(いずれも図1参照)、LAN,インターネット等の図示しないネットワークと接続するためのネットワークインタフェース(ネットワークI/F)360とが接続されている。
【0022】
なお、パソコン300の接続部316は、プリンタ1をUSBケーブル等を介して接続することも可能な汎用ポートである。また、本実施の形態のUSBメモリ100は、図1に示すように、接続部28,316に接続可能な周知の接続部101と、指で操作することにより2つの位置に切り換え可能なスイッチ103とを備えている。
【0023】
[第1の実施の形態のUSBメモリ100の内部構成]
次に、図3は、第1の実施の形態としてのUSBメモリ100の内部の回路構成を表す説明図である。図3に示すように、USBメモリ100の内部には、接続部101(図1参照)を介してデータの送受信を行うUSB送受信部105が設けられ、このUSB送受信部105には、USBディスクリプタ応答部107とバルク転送送受信部109とが接続されている。
【0024】
USBディスクリプタ応答部107は、制御回路110の接点111を介して、偽装信号出力手段の一例としてのプリンタクラスディスクリプタ記憶部121、または、通知信号出力手段の一例としてのストレージクラスディスクリプタ記憶部123のいずれか一方に選択的に接続される。また、バルク転送送受信部109は、制御回路110の接点113によって、ファイルシステム制御部125に直接接続されるか、ファイル名生成部127を介してファイルシステム制御部125に接続されるかが切り換えられる。なお、制御回路110は、ロジック回路によって構成され、スイッチ103の状態等に応じてスイッチング素子からなる上記接点111,113の状態を切り換えるものである。
【0025】
また、プリンタクラスディスクリプタ記憶部121は、プリンタクラスのディスクリプタを記憶した回路で、データ記憶部の一例としての不揮発性メモリ129に接続されている。この不揮発性メモリ129の一部は、偽装するプリンタの名称やプロダクトIDなどの、プリンタクラスディスクリプタの不定部分を記憶している。プリンタクラスディスクリプタ記憶部121は、自身で記憶する定型部分と、不揮発性メモリ129に記憶された偽装するプリンタに応じて変わる情報とを合わせて、偽装されたプリンタクラスディスクリプタを生成するのである。また、ストレージクラスディスクリプタ記憶部123は、ストレージクラスのディスクリプタを記憶した回路である。更に、ファイルシステム制御部125は、不揮発性メモリ129に書き込みまたは読み出しされるデータのファイルシステムを制御する回路である。
【0026】
そして、このように構成されたUSBメモリ100では、制御回路110による接点111,113の切り換えにより、次のようにエンドポイントが割り振られる。すなわち、スイッチ103がプリンタ側に切り換えられたときは、図4(A)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のプリンタクラスのバルクアウトが、それぞれ割り振られる。また、スイッチ103がストレージ側に切り換えられたときは、図4(B)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のストレージクラスのバルクアウトが、エンドポイント2にインタフェース1のストレージクラスのバルクインが、それぞれ割り振られる。
【0027】
[USBメモリ100における処理及び効果]
次に、このような制御回路110を中心にしたロジック回路で実行される処理について説明する。なお、USBメモリ100の内部で実行される処理は、前述のように実際にはハードウェアの処理として実行されるが、以下の説明では、便宜上、同等の処理を表すフローチャートを用いて説明する。勿論、USBメモリ100の内部にCPU等を設けて、ソフトウェアの処理によって以下の処理を実行してもよいことはいうまでもない。
【0028】
USBメモリ100がパソコン300の接続部316に接続されると、CPU311はUSBメモリ100に対して各種情報を要求するパケットを送信する。図5は、このパケット受信時にUSBメモリ100にて実行される処理に対応するフローチャートである。
【0029】
図5に示すように、この処理では、先ず、S1(Sはステップを表す:以下同様)にて、受信されたパケットがコントロール転送のパケットかバルク転送のパケットかが判別される。通常、パソコン300は、USBメモリ100が接続されたことを接続検知部317を介して検知すると、何がつながったか問い合わせるべくディスクリプタの返送をコントロール転送で要求してくる。
【0030】
そこで、コントロール転送のパケットである場合は(S1:Ctrl)、S2にて、そのパケットがディスクリプタ要求であるか否かが判断される。ディスクリプタ要求である場合は(S2:Y)、S3にてスイッチ103の状態に応じて処理が次のように分かれる。すなわち、スイッチ103がプリンタ側に切り換えられている場合は(S3:プリンタ)、S4にて、偽装信号の一例としてのプリンタクラスのディスクリプタがプリンタクラスディスクリプタ記憶部121からパソコン300へ返送されて、処理が終了する。すなわち、この場合は、接点111がプリンタクラスディスクリプタ記憶部121側に切り換えられている(図3参照)。
【0031】
一方、スイッチ103がストレージ側に切り換えられている場合は(S3:ストレージ)、S5にて、通知信号の一例としてのストレージクラスのディスクリプタがストレージクラスディスクリプタ記憶部123からパソコン300へ返送されて、処理が終了する。すなわち、この場合、接点111は、ストレージクラスディスクリプタ記憶部123側に切り換えられている(図3参照)。
【0032】
このため、スイッチ103をプリンタ側に切り換えておけば(S3:プリンタ)、プリンタクラスのディスクリプタを接続部101,316を介してパソコン300へ返送することにより(S4)、パソコン300にUSBメモリ100をプリンタとして認識させることができる。すると、この場合、パソコン300のプリンタドライバは、プリンタ1に印刷データを出力するのと同様にUSBメモリ100に印刷データを出力し、後述のようにその印刷データを不揮発性メモリ129に書き込むことが可能となる。
【0033】
すなわち、この場合、パソコン300は、USBメモリ100をプリンタとして認識している。このため、例えばOSとしてWindowsXP(登録商標)を使用した場合にあっては、通常のUSBプリンタポート(USB001等)と同等のポートがプラグアンドプレイにより生成される。これは通常のUSBメモリ100ではなく、プリンタ自身をこのパソコン300と接続した際に生成されるポートと同じである。このため、使用者は、現在接続されているデバイスがプリンタであるかUSBメモリであるかを一切意識することなく、同じ操作で印刷の操作を行うことができるのである。
【0034】
また、スイッチ103をストレージ側に切り換えておけば(S3:ストレージ)、ストレージクラスのディスクリプタを接続部101,316を介してパソコン300へ返送することにより(S5)、パソコン300にUSBメモリ100をストレージとして認識させることができる。
【0035】
一方、コントロール転送によりディスクリプタ要求以外のパケットが受信された場合は(S2:N)、S7により、そのパケットがプリンタクラスコマンドの要求であるか否かが判断される。プリンタクラスコマンドの要求である場合は(S7:Y)、S8にてプリンタクラスコマンドの応答がパソコン300へ送信されて処理が終了し、他のパケットである場合は(S7:N)、対応する他の処理がS9にてなされて処理が終了する。
【0036】
図6は、S8のプリンタクラスコマンド送信処理を詳細に表すフローチャートである。この処理では、先ず、S80にて、上記パケットがステータス信号の一例としてのステータス情報要求であるか否かが判断される。ステータス情報要求でない場合は(S80:N)、S81にて、上記パケットがIEEE1248IDの要求であるか否かが判断され、IEEE1248IDの要求でもない場合は(S81:N)、S82にて、上記パケットがリセット信号の一例としてのデバイスリセットであるか否かが判断される。
【0037】
デバイスリセットでもない場合は(S82:N)、S83にてエラー(ストール)となって処理が終了する(図5参照)。一方、上記パケットがデバイスリセットの場合は(S82:Y)、印刷データ削除手段の一例としてのS84にて、不揮発性メモリ129に記憶された印刷データ等のファイルが削除され、処理が終了する。また、パケットがIEEE1248ID要求であった場合は(S81:Y)、S85にて、当該IDが送信されて処理が終了する(図5参照)。なお、USBメモリ100がプリンタ1の付属品として同梱される場合、プリンタ1のIEEE1248IDがUSBメモリ100にも予め記憶されており、S85ではそのIDが送信される。
【0038】
また、上記パケットがステータス情報要求であった場合は(S80:Y)、S86にて、不揮発性メモリ129のメモリ残容量がないか否かが判断される。そして、メモリ残容量がない場合は(S86:Y)、S87にてPEビットに1が立てられてS88の処理が実行され、メモリ残容量がある場合は(S86:N)、PEビットに0が立てられてS88の処理が実行される。なお、PEビットとは、ペーパエラーを表すビットであり、これに1が立てられることは紙なしエラーが発生したことを表している。続くエラー信号出力手段の一例としてのS88では、上記PEビットを含むエラー信号の一例としてのステータス情報が送信されて、処理が終了する。
【0039】
このため、不揮発性メモリ129のメモリ残容量がない、いわゆるメモリフルの場合は(S86:Y)、PEビットに1が立てられたステータス情報をパソコン300へ送信することにより(S87,S88)、パソコン300側では、OSの印刷システムにより、用紙エラーの表示がなされ、送信が自動的に停止される。使用者は、この表示を見ることによりメモリフルであること、並びに、印刷データの記憶が不完全であることを知ることができる。それによって使用者は、例えば不要なデータを削除して再印刷を行うなどの適切な対応をとることができる。
【0040】
図5へ戻って、一方、パケットがバルク転送の場合は(S1:Bulk)、S11にて、S3と同様にスイッチ103の状態が判断される。そして、スイッチ103がプリンタ側に切り換えられている場合は(S11:プリンタ)、S12にて、ファイル名生成部127を介して周知の方法でユニークなファイル名が付与された後、また、スイッチ103がストレージ側に切り換えられている場合は使用者によりファイルシステムに対して指定されたファイル名のまま(S11:ストレージ)、S13の処理が実行される。すなわち、スイッチ103がスイッチがプリンタ側に切り換えられている場合は(S11:プリンタ)、接点113はファイル名生成部127側に切り換えられていて自動的にファイル名が付けられる一方、スイッチ103がストレージ側に切り換えられている場合は(S11:ストレージ)、接点113はファイルシステム制御部125側に切り換えられている(図3参照)。このため、通常のストレージと同様に、使用者の付したファイル名でアクセスされる。
【0041】
S13では、バルクインかバルクアウトかの判断がなされる。そして、バルクアウトの場合は(S13:Out)、S14にて、不揮発性メモリ129への記憶(書き込み)がなされて処理が終了し、バルクインの場合は(S13:In)、S15にて、不揮発性メモリ129からの読み出しがなされて処理が終了する。
【0042】
なお、上記記憶(S14)及び読み出し(S15)は、ファイルシステム制御部125を介してなされる。パソコン300がUSBメモリ100をプリンタと認識して送信する印刷データにはファイル名がないので(S11:プリンタ)、上記処理では、ファイル名を生成した上で(S12)、ファイルシステム制御部125を介した不揮発性メモリ129への記憶が実行されるのである(S14)。また、このように、USBメモリ100がプリンタと認識された上で印刷データを書き込まれる場合、ジョブの終了の判断ができないので、USBメモリ100がパソコン300から引き抜かれたときにファイルが閉じられる。すなわち、USBメモリ100をパソコン300に接続したままで印刷処理(印刷データの書き込み)がなされると、全てのジョブが1つのファイルに記録される。
【0043】
以上のように、本実施の形態のUSBメモリ100では、スイッチ103をストレージ側に切り換えておけば(S3:ストレージ)、ストレージクラスのディスクリプタをパソコン300へ返送することにより(S5)、パソコン300にUSBメモリ100をストレージとして認識させることができる。この場合、一般のUSBメモリと同様に、データの記憶(S14)、読み出し(S15)を実行することができる。
【0044】
また、スイッチ103をプリンタ側に切り換えておけば(S3:プリンタ)、プリンタクラスのディスクリプタをパソコン300へ返送することにより(S4)、パソコン300にUSBメモリ100をプリンタとして認識させることができる。すると、この場合、パソコン300のプリンタドライバは、プリンタ1に印刷データを出力するのと同様にUSBメモリ100に印刷データをバルク転送で出力し、その印刷データを不揮発性メモリ129に書き込むことが可能となる(S14)。
【0045】
そして、このように不揮発性メモリ129に書き込まれた印刷データは、スイッチ103をストレージ側に切り換えて、プリンタ1の接続部28にUSBメモリ100の接続部101を接続することにより、そのプリンタ1に周知のように自動的に読み出させて印刷(ダイレクトプリント)することができる。このため、本実施の形態のUSBメモリ100では、パソコン300のプリンタドライバが出力する印刷データを書き込んでダイレクトプリント等に利用することが、ポートの変更等を行わずに極めて容易に実行できる。
【0046】
更に、上記のように不揮発性メモリ129に印刷データを書き込む場合、パソコン300からデバイスリセットの要求があったときは(S82:Y)、不揮発性メモリ129に書き込まれた上記印刷データのファイルを削除することができる(S84)。また、メモリ残容量なしのときは(S86:Y)、PEビットを1にしてパソコン300にステータスを送信することができる(S88)。従って、本実施の形態では、パソコン300から見て、USBメモリ100への印刷データの出力はプリンタ1への印刷データの出力と殆ど変わらなくなる。
【0047】
[第2の実施の形態のUSBメモリ500の内部構成]
次に、図7は、第2の実施の形態としてのUSBメモリ500の内部の回路構成を表す説明図である。なお、USBメモリ500は、USBメモリ100と同様に構成された部分を有するので、USBメモリ100と同様に構成された部分には図7において図3と同様の符号を付して詳細な説明を省略する。
【0048】
図7に示すように、USBメモリ500は、前述のプリンタクラスディスクリプタ記憶部121及びストレージクラスディスクリプタ記憶部123の代わりに、通知信号出力手段及び偽装信号出力手段の一例としてのストレージクラスプリンタクラスディスクリプタ記憶部521を備えた点でUSBメモリ100と異なる。このストレージクラスプリンタクラスディスクリプタ記憶部521は、ストレージクラスを有するマルチインタフェースデバイスディスクリプタを出力することにより、パソコン300に、プリンタの機能とストレージの機能とを併せ持ったデバイスであることを認識させる。また、これに応じて、USBメモリ500ではスイッチ103が不要となり、制御回路510も、バルク転送送受信部109をファイルシステム制御部125に直接接続するかファイル名生成部127を介してファイルシステム制御部125に接続するかを切り換える接点513のみを有する。
【0049】
そして、このように構成されたUSBメモリ500では、エンドポイントが次のように割り振られる。すなわち、図8に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のプリンタクラスのバルクアウトが、エンドポイント2にインタフェース2のストレージクラスのバルクアウトが、エンドポイント3にインタフェース2のストレージクラスのバルクインが、それぞれ割り振られる。
【0050】
[USBメモリ500における処理及び効果]
次に、制御回路510を中心にしたロジック回路で実行される処理を、同等の処理を表す図9のフローチャートを用いて説明する。なお、図9の処理は、図5の処理と同様の部分を有するので、以下、相違点についてのみ説明する。
【0051】
図9に示すように、この処理では、上記パケットがディスクリプタ要求であった場合は(S2:Y)、S103にて、ストレージクラスプリンタクラスディスクリプタ記憶部521によりストレージクラスを有するマルチインタフェースデバイスディスクリプタが返送され、処理が終了する。この処理によって、パソコン300に、接続部316に接続されているデバイスがプリンタの機能とストレージの機能とを併せ持ったデバイスであると認識させることができる。このため、前述のような印刷データの書き込みも可能となる。
【0052】
また、USBメモリ500は前述のようなスイッチ103を備えていないので、上記パケットがバルク転送の場合は(S1:Bulk)、S111にて、そのときパソコン300によって指定されているエンドポイントが判断される。そして、エンドポイントがプリンタに対応する1である場合は(S111:プリンタ)、前述のS12にてファイル名が生成された後、エンドポイントがストレージクラスに対応する2または3である場合はそのまま(S111:ストレージ)、前述のS13の処理が実行される。すなわち、この場合、エンドポイントに基づいて接点513が切り換えられる(図7参照)。
【0053】
このように、本実施の形態のUSBメモリ500でも、前述のUSBメモリ100と同様の効果が得られる。また、本実施の形態では、ストレージクラスプリンタクラスディスクリプタ記憶部521がストレージクラスを有するマルチインタフェースデバイスディスクリプタを返送するので、前述のように構成及び処理を一層簡略化することができる。
【0054】
[第3の実施の形態のUSBメモリ600の内部構成]
次に、図10は、第3の実施の形態としてのUSBメモリ600の内部の回路構成を表す説明図である。なお、USBメモリ600は、バルク転送送受信部109がプリンタクラスディスクリプタ記憶部121にも接続された点と、そのプリンタクラスディスクリプタ記憶部121が不揮発性メモリ129に接続されていない点とでUSBメモリ100と異なり、他はUSBメモリ100と同様に構成されている。このように構成されたUSBメモリ600では、バルク転送により、プリンタクラスディスクリプタ記憶部121に記憶されたプリンタクラスのディスクリプタを書き換えることができる。このため、例えば新規のプリンタ1を購入したときなどに、プリンタクラスのディスクリプタをその新規のプリンタ1に対応したプリンタクラスを表すものに変更すれば、USBメモリ600をパソコン300に上記新規のプリンタ1として認識させることができる。
【0055】
[USBメモリ600に対するパソコン300の処理]
次に、上記のような書き換えを行うためのパソコン300における処理について、図11のフローチャートを用いて説明する。なお、本処理は、パソコン300のOS上でプログラムが選択されるなどして処理の実行が指示されたとき、CPU311によりHDD314に記憶されたプログラムに基づいて実行される。
【0056】
図11に示すように、この処理では、先ず、S91にて、ディスプレイ320にメッセージ等が表示されることによりプリンタ1をパソコン300に接続するように指示がなされる。プリンタ1が接続されて処理がS92へ移行すると、そのプリンタ1からディスクリプタとIEEE1248IDとが取得される。続くS93では、ディスプレイ320にメッセージ等が表示されることによりUSBメモリ600をパソコン300に接続するように指示がなされる。USBメモリ600が接続されて処理がS94へ移行すると、そのUSBメモリ600に、上記取得されたディスクリプタとIEEE1248IDとが書き込まれる。以上のように、ディスクリプタ及びIEEE1248IDを更新することにより、USBメモリ600をパソコン300に新規のプリンタ1として認識させることが可能となる。
【0057】
[第4の実施の形態のUSBメモリ700の内部構成]
次に、図12は、第4の実施の形態としてのUSBメモリ700の内部の回路構成を表す説明図である。なお、USBメモリ700は、USBメモリ100と同様に構成された部分を有するので、USBメモリ100と同様に構成された部分には図12において図3と同様の符号を付して詳細な説明を省略する。
【0058】
図12に示すように、USBメモリ700は、3つの位置に切り換え可能なスイッチ703をスイッチ103の代わりに備え、内部には、USBメモリ100の構成に加えて、更に、ストレージクラスリードオンリディスクリプタを記憶したストレージクラスリードオンリデバイスディスクリプタ記憶部724と、プリンタドライバを記憶したROM730とを備えている。このROM73に記憶されたプリンタドライバは、実行ファイル形式のインストーラによりインストールされるもので、そのインストーラは、このUSBメモリ700が接続された際に自動起動されるように設定されている。また、制御回路710の接点711,713は、前述の接点111,113と同様の切り換えに加えて、USBディスクリプタ応答部107をストレージクラスリードオンリデバイスディスクリプタ記憶部724と接続し、バルク転送送受信部109をROM730と接続する位置にも切り換え可能に構成されている。
【0059】
そして、このように構成されたUSBメモリ700では、制御回路710による接点711,713の切り換えにより、次のようにエンドポイントが割り振られる。すなわち、スイッチ703がプリンタ側に切り換えられたときは、図13(A)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のプリンタクラスのバルクアウトが、それぞれ割り振られる。また、スイッチ703がストレージ側に切り換えられたときは、図13(B)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース2のストレージクラスのバルクアウトが、エンドポイント2にインタフェース2のストレージクラスのバルクインが、それぞれ割り振られる。更に、スイッチ703がドライバストレージ側に切り換えられたときは、図13(C)に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース3のストレージクラスのバルクインが、それぞれ割り振られる。
【0060】
[USBメモリ700における処理及び効果]
次に、制御回路710を中心にしたロジック回路で実行される処理を、同等の処理を表す図14のフローチャートを用いて説明する。なお、図14の処理は、図5の処理と同様の部分を有するので、以下、相違点についてのみ説明する。
【0061】
図14に示すように、この処理では、S3に代わるS203にて、スイッチ703の状態がプリンタかストレージかドライバストレージかで判断される。プリンタ,ストレージの場合の処理は図5と同様であるが、ドライバストレージの場合は(S203:ドライバストレージ)、S205にて、ストレージクラスリードオンリディスクリプタが返送されて処理が終了する。S11に代わるS211でも、同様に、スイッチ703の状態がプリンタかストレージかドライバストレージかで判断される。プリンタ,ストレージの場合の処理は図5と同様であるが、ドライバストレージの場合は(S211:ドライバストレージ)、S215にて、ROM730からプリンタドライバが読み出されて処理が終了する。
【0062】
このため、本実施の形態では、スイッチ703をドライバストレージ側に切り換えておけば、パソコン300への接続時におけるインストーラの自動起動により、ROM730に記憶されたプリンタドライバを自動でインストールすることができる。このため、出先のパソコン300等がプリンタクラスディスクリプタ記憶部121に記憶されたディスクリプタに対応するプリンタドライバを備えていない場合でも、上記インストールがなされることにより、前述のような印刷データの書き込みを良好に実行することができる。
【0063】
[第5の実施の形態のUSBメモリ800の内部構成]
次に、図15は、第5の実施の形態としてのUSBメモリ800の内部の回路構成を表す説明図である。なお、USBメモリ800は、第4の実施の形態のUSBメモリ700に対して、第2の実施の形態のUSBメモリ500と同様の改変を行ったものである。
【0064】
すなわち、USBメモリ800は、プリンタクラスディスクリプタ記憶部121、ストレージクラスディスクリプタ記憶部123、及び、ストレージクラスリードオンリデバイスディスクリプタ記憶部724の代わりに、前述のストレージクラスプリンタクラスディスクリプタ記憶部521を備えている。また、USBメモリ800ではスイッチ703を備えず、制御回路810も、バルク転送送受信部109をファイルシステム制御部125に直接接続するか、ファイル名生成部127を介してファイルシステム制御部125に接続するか、ROM730に接続するかを切り換える接点813のみを有する。
【0065】
そして、このように構成されたUSBメモリ800では、エンドポイントが次のように割り振られる。すなわち、図16に示すように、エンドポイント0にコントロール転送が、エンドポイント1にインタフェース1のプリンタクラスのバルクアウトが、エンドポイント2にインタフェース2のストレージクラスのバルクアウトが、エンドポイント3にインタフェース2のストレージクラスのバルクインが、エンドポイント4にインタフェース3のストレージクラスのバルクインが、それぞれ割り振られる。
【0066】
ROM730には、プリンタドライバが記憶されている。このプリンタドライバは、プラグアンドプレイによりインストールされるものであり、その設定ファイル(INFファイル)には、上記プリンタクラスのディスクリプタに対応して、インストールされるように記述されている。
【0067】
すなわち、このUSBメモリ800をパソコン300に差し込むと、プリンタとストレージが同時に接続されたとパソコン300はみなす。そして、そのプリンタ(USBメモリ800で偽装されたプリンタ)のドライバがまだインストールされていないならば、OSのプラグアンドプレイの動作により、対応するプリンタドライバの検索が行われる。そして、自動或いは手動操作により、ROM730に記憶された設定ファイルが見つけられると、自動的にROM730内に記憶されたプリンタドライバがパソコン300にインストールされるのである。
【0068】
[USBメモリ800における処理及び効果]
このため、制御回路810を中心にしたロジック回路で実行される処理も、第4の実施例における図14の処理に対して第2の実施の形態における図9と同様の改変を行ったものとなる。すなわち、図17に同等の処理を表すフローチャートを示すように、パケットがディスクリプタ要求であった場合は(S2:Y)、S103にて、ストレージクラスプリンタクラスディスクリプタ記憶部521によりストレージクラスを有するマルチインタフェースデバイスディスクリプタが返送され、処理が終了する。
【0069】
また、USBメモリ800は前述のようなスイッチ103を備えていないので、上記パケットがバルク転送の場合は(S1:Bulk)、S311にて指定されているエンドポイントが4であるか否かが判断される。エンドポイントが4の場合は(S311:Y)、前述のS215にてROM730からの読み出しがなされて処理が終了し、エンドポイントが4でない場合は(S311:N)、S312にて、プリンタクラスのエンドポイント1であるか否かが判断される。そして、プリンタクラスのエンドポイントである場合は(S312:Y)、前述のS12にてファイル名が生成された後、エンドポイントがストレージクラスに対応する3または4である場合はそのまま(S312:N)、前述のS13の処理が実行される。本実施の形態のUSBメモリ800でも、前述のUSBメモリ700と同様の効果が得られ、そのUSBメモリ700に比べて構成及び処理を一層簡略化することができる。
【0070】
[第6の実施の形態のUSBメモリ900の内部構成]
次に、図18は、第6の実施の形態としてのUSBメモリ900の内部の回路構成を表す説明図である。このUSBメモリ900は、プリンタ名を記憶可能な不揮発性メモリ831が設けられた点と、ROM730から接点713に至る経路にRAM832が設けられ、そのRAM832に上記不揮発性メモリ831も接続された点とで、第4の実施の形態のUSBメモリ700と異なり、他は同様に構成されている。
【0071】
[USBメモリ900における処理及び効果]
このUSBメモリ900でも、USBメモリ700とほぼ同様の処理(図14参照)が実行されるが、S215の処理が次のように異なっている。図19はUSBメモリ900に対応するS215の処理を詳細に表すフローチャートである。図19に示すように、ROM読み出しの処理(S215)が実行されると、先ず、S2151にて、INFファイルの読み取りがなされるか否かが判断される。このINFファイルは、先に述べたように、上記プリンタクラスのディスクリプタに対応して、インストールされるように記述されている。更に、このINFファイルには、通常インストールされるプリンタドライバのデフォルトの名称(登録名)も記述されている。そして、INFファイルが読み取られる場合は(S2151:Y)、S2152にて、ROM730に記憶されたプリンタドライバの内容と、不揮発性メモリ831に記憶されたプリンタのデフォルトの名称とが合成されることにより、INFファイルがRAM832上で作成される。続くS2153では、そのファイルが出力されて処理が終了する(図14参照)。一方、INFファイルの読み取りでない場合は(S2151:N)、そのままS2153にてファイルが出力される。
【0072】
このため、本実施の形態では、ネットワークプリンタのインストール時など、プリンタに統一したユニークな名前を付けたいときなどには、INFファイルの一部のみを書き変えて対応することができる。このときプリンタ名の部分のみを書き換え可能としているので、INFファイル全体を書き変え可能にした場合に比べ、書き間違えなどに起因するトラブルが防げる。
【0073】
[上記各実施の形態における処理の変形例]
更に、上記各実施の形態における処理は、以下に例示するように種々に変形することができる。例えば、第1の実施の形態のUSBメモリ100において、図20に示すようにプリンタクラスのバルクインにエンドポイント2が割り振られている場合、図5の処理は次のように変形することができる。すなわち、パケットがバルク転送で(S1:Bulk)、スイッチ103がプリンタ側に切り換えられている場合の処理は(S11:プリンタ)、図21に示すように変形してもよい。なお、本処理では、スイッチ103がストレージ側に切り換えられている場合は(S11:ストレージ)、図5と同様の処理となる。また、前述した他の実施の形態においても、パケットがバルク転送でパソコン300にプリンタとして認識されている場合は同様の処理が適用できる。
【0074】
この処理では、前述のようにS12にてファイル名が生成された後、S13にてバルクアウトと判断された場合は(S13:Out)、S141にてPJLデータが解析される。続くS142では、そのPJLデータのコマンド中に、USTATUS ONのコマンド(ステータスを送り返せというコマンド)があったか否かが判断される。そして、あった場合は(S142:Y)、S143にて、そのUSTATUS ONのコマンドはUSTATUS OFFのコマンドに変更され、更に、S144にてUSTATUSフラグがONにされて、前述のS14による記憶がなされる。すなわち、印刷データの中にUSTATUS ONのコマンドが書き込まれていても、ダイレクトプリント時にはプリンタ1はステータスを送り返すことができないので、USTATUSコマンドはOFFに変更されるのである(S143)。
【0075】
一方、USTATUS ONのコマンドがPJLデータのコマンド中に含まれていない場合は(S146:N)、S146にてUSTATUSフラグがOFFにされて、前述のS14による記憶がなされる。
【0076】
また、バルクインの場合は(S13:In)、S151にて、前述のUSTATUSフラグがONであるか否かが判断される。そして、USTATUSフラグがOFFの場合は(S151:N)、S152にて空データが送信されて処理が終了し、USTATUSフラグがONの場合は(S151:Y)、S153にて、当該バルクインの要求が最初の要求であるか否かが判断される。最初の要求である場合は(S153:Y)、S154にて、当該USBメモリ100の残容量等のストレージ情報がUSTATUS情報として返答され、処理が終了する。
【0077】
一方、当該バルクインの要求が最初の要求ではない場合は(S153:N)、S155にて、USBメモリ100の残容量等に変化があったか否かが判断される。そして、変化がない場合は(S155:N)、前述のS152にて空データが送信され、変化があった場合は(S155:Y)、S156にて残容量等を返答するUSTATUS返答がなされて、処理が終了する。
【0078】
この場合、パソコン300とUSBメモリ100との間でなされるデータの送受信を、パソコン300とプリンタ1との間でなされるデータの送受信に一層近づけることができると共に、USTATUSコマンドをOFFに変更することなどにより(S143)、ダイレクトプリントを一層円滑に行うことができる。
【0079】
図22は、上記のように返答されるUSTATUSを用いて、パソコン300でプリンタドライバの処理と並行して実行されるステータスモニタ処理を表すフローチャートである。図22に示すように、この処理では、先ず、S501にて、図23(A)に例示するようにプリンタ1のステータスを表示するステータス用ダイアログがディスプレイ320に表示される。続くS502では、前述のようにUSTATUS ONコマンドを含むPJLデータが接続部316に接続されているデバイス(プリンタ1またはプリンタとして認識されているUSBメモリ100)に送信され、S503にて、USTATUS返答が受信される。
【0080】
ここで、USTATUS返答に使用されるPJLは、上記デバイスがプリンタ1である場合と、上記デバイスがプリンタとして認識されたUSBメモリ100である場合とでは、若干の相違があるように設定されている。そこで、続くS504では、USTATUS返答が、ストレージを示すPJLであるか否か、すなわち、上記デバイスがプリンタとして認識されたUSBメモリであることを示すPJLであるか否かが判断される。
【0081】
ストレージを示すPJLでない場合、すなわち、プリンタ1からのUSTATUS返答であった場合は(S504:N)、処理はS505へ移行し、プラグアウトされたか否かが判断される。プラグアウトされていない場合は(S505:N)、S506にてプリンタ1のステータスが上記ステータス用ダイアログに表示された後、処理は前述のS503へ移行する。このように、接続部316にプリンタ1が接続されている場合は、S503〜S504の処理が繰り返し実行されることにより、上記ステータス用ダイアログにプリンタ1のステータスが表示される(S506)。そして、プリンタ1がプラグアウトされると(S505:Y)、処理が終了する。
【0082】
一方、USTATUS返答がストレージを示すPJLであった場合は(S504:Y)、処理はS511へ移行し、上記ステータスダイアログがディスプレイ320から消去され、続くS512にて、図23(B)に例示するようにメモリ残容量を表示する残量用ダイアログがディスプレイ320に表示される。続くS513では、USBメモリ100がプラグアウトされたか否かが判断される。プラグアウトされていない場合は(S513:N)、S514にて、新たにUSTATUS返答が受信され、その返答に基づいてS515にてメモリ残容量の表示がなされた後、処理は前述のS513へ移行する。
【0083】
このように、プリンタとして認識されたUSBメモリ100が接続部316に接続されている場合は、S513〜S515の処理が繰り返し実行されることにより、上記残量用ダイアログにメモリ残容量が表示される(S515)。そして、USBメモリ100がプラグアウトされると(S513:Y)、処理が終了する。このようなステータスモニタ処理をプリンタドライバの処理と並行して実行した場合、そのプリンタドライバの操作性が極めて向上する。
【0084】
なお、本発明は上記実施の形態になんら限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の形態で実施することができる。例えば、本発明における携帯型記憶媒体としては、USBメモリの他、メモリカード,CD−R,CD−RWメディア,携帯型ハードディスクなど種々の媒体を適用することができる。
【0085】
また、上記実施の形態では、USBメモリに記憶される印刷データは、通常のプリンタドライバで生成されるPJL/PDL形式で記述されることを前提として述べたがこれに限定されるものではない。例えば、デジタルカメラなどにより記録されたJPEGファイルをダイレクトプリントできるプリンタが一般的に知られている。そのようなプリンタを偽装することも考えられる。この場合にあっては、例えば、第5の実施の形態、第6の実施の形態において、ROM730に記憶されているプリンタドライバは、通常のPJL/PDL形式でページを記述するものではなく、印刷ジョブを各ページ毎に別のJPEGファイルで記述するものとする。
【図面の簡単な説明】
【0086】
【図1】本発明が適用されたUSBメモリが利用される画像形成システムの構成を表す外観図である。
【図2】そのシステムの制御系の構成を表すブロック図である。
【図3】第1の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図4】そのUSBメモリのエンドポイントの割り振りを表す説明図である。
【図5】そのUSBメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図6】その処理のプリンタクラスコマンド送信処理を表すフローチャートである。
【図7】第2の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図8】そのUSBメモリのエンドポイントの割り振りを表す説明図である。
【図9】そのUSBメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図10】第3の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図11】そのUSBメモリに対応するパソコンの処理を表すフローチャートである。
【図12】第4の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図13】そのUSBメモリのエンドポイントの割り振りを表す説明図である。
【図14】そのUSBメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図15】第5の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図16】そのUSBメモリのエンドポイントの割り振りを表す説明図である。
【図17】そのUSBメモリで実行される処理をソフトウェアに置き換えて表すフローチャートである。
【図18】第6の実施の形態のUSBメモリ内部の回路構成を表す説明図である。
【図19】そのUSBメモリで実行される処理の一部をソフトウェアに置き換えて表すフローチャートである。
【図20】第1の実施の形態の処理の変形例におけるエンドポイントの割り振りを表す説明図である。
【図21】その処理の一部をソフトウェアに置き換えて表すフローチャートである。
【図22】その処理に対応するパソコンのステータスモニタ処理を表すフローチャートである。
【図23】そのステータスモニタ処理におけるダイアログを表す説明図である。
【符号の説明】
【0087】
1…プリンタ 28…接続部 36…接続検知部
100,500,600,700,800,900…USBメモリ
101…接続部 103,703…スイッチ 105…USB送受信部
107…USBディスクリプタ応答部 109…バルク転送送受信部
110,510,710,810…制御回路
111,113,513,711,713,813…接点
121…プリンタクラスディスクリプタ記憶部
123…ストレージクラスディスクリプタ記憶部
125…ファイルシステム制御部 127…ファイル名生成部
129…不揮発性メモリ 300…パーソナルコンピュータ
316…接続部 317…接続検知部
724…ストレージクラスリードオンリデバイスディスクリプタ記憶部
831…不揮発性メモリ
【特許請求の範囲】
【請求項1】
パーソナルコンピュータの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な接続部と、
該接続部を介して書き込みまたは読み出しされるデータを記憶するデータ記憶部と、
自身が記憶媒体であることを通知する通知信号を上記接続部を介して出力する通知信号出力手段と、
自身がプリンタであると偽装する偽装信号を上記接続部を介して出力する偽装信号出力手段と、
を備え、
上記データ記憶部は、上記偽装信号に対してプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、かつ、当該データ記憶部は、その印刷データを上記接続部を介して読み出し可能に記憶することを特徴とする携帯型記憶媒体。
【請求項2】
上記接続部を上記偽装信号出力手段または上記通知信号出力手段のいずれかに切り換え可能に接続する接点を、
更に備えたことを特徴とする請求項1記載の携帯型記憶媒体。
【請求項3】
上記通知信号が、ストレージクラスを表す信号であり、
上記偽装信号が、プリンタクラスを表す信号であることを特徴とする請求項1または2記載の携帯型記憶媒体。
【請求項4】
上記偽装信号出力手段は、上記偽装信号が表すプリンタクラスを変更可能に構成されたことを特徴とする請求項3記載の携帯型記憶媒体。
【請求項5】
上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータからプリンタの状態を問い合わすステータス信号が上記接続部を介して入力されたとき、その時点で上記データ記憶部の容量が不足の場合に、上記ステータス信号に対して紙なしエラーを表すエラー信号を上記接続部を介して出力するエラー信号出力手段を、
更に備えたことを特徴とする請求項1〜4のいずれかに記載の携帯型記憶媒体。
【請求項6】
上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータから印刷中止を表すリセット信号が上記接続部を介して入力されたとき、上記データ記憶部に書き込まれた印刷データを削除する印刷データ削除手段を、
更に備えたことを特徴とする請求項1〜5のいずれかに記載の携帯型記憶媒体。
【請求項7】
USBメモリの形態で構成された請求項1〜6のいずれかに記載の携帯型記憶媒体であって、
上記通知信号及び偽装信号がディスクリプタであることを特徴とする請求項1〜6のいずれかに記載の携帯型記憶媒体。
【請求項1】
パーソナルコンピュータの、プリンタ及び記憶媒体がいずれも接続可能な汎用ポートに接続可能な接続部と、
該接続部を介して書き込みまたは読み出しされるデータを記憶するデータ記憶部と、
自身が記憶媒体であることを通知する通知信号を上記接続部を介して出力する通知信号出力手段と、
自身がプリンタであると偽装する偽装信号を上記接続部を介して出力する偽装信号出力手段と、
を備え、
上記データ記憶部は、上記偽装信号に対してプリンタ用の印刷データが上記接続部を介して送られたときにその印刷データを記憶し、かつ、当該データ記憶部は、その印刷データを上記接続部を介して読み出し可能に記憶することを特徴とする携帯型記憶媒体。
【請求項2】
上記接続部を上記偽装信号出力手段または上記通知信号出力手段のいずれかに切り換え可能に接続する接点を、
更に備えたことを特徴とする請求項1記載の携帯型記憶媒体。
【請求項3】
上記通知信号が、ストレージクラスを表す信号であり、
上記偽装信号が、プリンタクラスを表す信号であることを特徴とする請求項1または2記載の携帯型記憶媒体。
【請求項4】
上記偽装信号出力手段は、上記偽装信号が表すプリンタクラスを変更可能に構成されたことを特徴とする請求項3記載の携帯型記憶媒体。
【請求項5】
上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータからプリンタの状態を問い合わすステータス信号が上記接続部を介して入力されたとき、その時点で上記データ記憶部の容量が不足の場合に、上記ステータス信号に対して紙なしエラーを表すエラー信号を上記接続部を介して出力するエラー信号出力手段を、
更に備えたことを特徴とする請求項1〜4のいずれかに記載の携帯型記憶媒体。
【請求項6】
上記偽装信号出力手段が上記偽装信号を出力した後に、上記パーソナルコンピュータから印刷中止を表すリセット信号が上記接続部を介して入力されたとき、上記データ記憶部に書き込まれた印刷データを削除する印刷データ削除手段を、
更に備えたことを特徴とする請求項1〜5のいずれかに記載の携帯型記憶媒体。
【請求項7】
USBメモリの形態で構成された請求項1〜6のいずれかに記載の携帯型記憶媒体であって、
上記通知信号及び偽装信号がディスクリプタであることを特徴とする請求項1〜6のいずれかに記載の携帯型記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2008−250736(P2008−250736A)
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願番号】特願2007−91916(P2007−91916)
【出願日】平成19年3月30日(2007.3.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願日】平成19年3月30日(2007.3.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]