JP4333765B2 - デバイス制御システム - Google Patents

デバイス制御システム Download PDF

Info

Publication number
JP4333765B2
JP4333765B2 JP2007084773A JP2007084773A JP4333765B2 JP 4333765 B2 JP4333765 B2 JP 4333765B2 JP 2007084773 A JP2007084773 A JP 2007084773A JP 2007084773 A JP2007084773 A JP 2007084773A JP 4333765 B2 JP4333765 B2 JP 4333765B2
Authority
JP
Japan
Prior art keywords
data
computer
function
transmitted
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007084773A
Other languages
English (en)
Other versions
JP2008242975A (ja
Inventor
文敏 宇野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2007084773A priority Critical patent/JP4333765B2/ja
Priority to US12/055,309 priority patent/US8156268B2/en
Priority to CN2008100874664A priority patent/CN101277361B/zh
Publication of JP2008242975A publication Critical patent/JP2008242975A/ja
Application granted granted Critical
Publication of JP4333765B2 publication Critical patent/JP4333765B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0048Type of connection
    • H04N2201/0049By wire, cable or the like
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、バイス制御システムに関する。
従来、USB(Universal Serial Bus)インターフェースを介して接続可能な複合機(MFP;multifunction peripheral)は、既に実用化されている。また、この種の複合機における代表的な構成として、複数ある機能毎にデータ転送用のエンドポイントが用意されているものが知られている。
しかし、複数ある機能毎にエンドポイントを用意すると、多機能になるほどエンドポイント数の多い高価なハードウェアが必要になるため、複合機の製造コストが増大し、低価格な複合機を提供することが困難になる、という問題がある。
こうした問題に対し、下記特許文献1,2においては、複合機に実装されるエンドポイントの数を削減するための技術が提案されている(例えば、特許文献1,2参照。)。
例えば、特許文献1に記載の技術の場合、擬似的に、ある機能を備えたデバイスとの接続断、および別の機能を備えたデバイスとの接続が行われたものと、ホスト装置に認識させることで、同一エンドポイントを介して複数の機能を選択的に利用可能としている。
また、特許文献2に記載の技術の場合、データ転送用のエンドポイントとは別に用意される制御用のエンドポイントを利用してデータ転送をも実施することで、データ転送用のエンドポイントを削減している。
特開2001−222503号公報 特開2005−175936号公報
しかしながら、上記特許文献1に記載の技術では、複合機が備える様々な機能を利用するたびに、ホスト装置側においてデバイスドライバの切り替え(使用しないドライバの無効化、および使用するドライバのロード・有効化等)が発生する。そのため、デバイスドライバの切り替えに相応の時間を要し、また、2つの機能を同時に利用することはできない、という問題がある。
また、上記特許文献1に記載の技術では、複合機のある機能が作動中の場合、その作動が確実に完了するまでは別の機能に切り替えることができないので、どのようなタイミングで切り替え制御を行うべきか、その判断は容易ではない、という問題もある。
さらに、上記特許文献2に記載の技術では、制御用のエンドポイントがデータ転送に利用されてしまうため、大量にデータが転送されるような状況下では、データ転送に邪魔されて必要な制御を迅速に実施できない状態に陥るおそれがあった。
つまり、上記特許文献1,2に記載の技術によって、エンドポイントを削減することはできても、その結果として、複合機の使い勝手が悪くなったり、適切な制御ができなくなったりするおそれがあった。
本発明は、上記問題を解決するためになされたものであり、その目的は、エンドポイントを削減することができ、しかも、使い勝手が悪化したり適切な制御ができなくなったりすることのない複合機を備えたデバイス制御システムを提供することにある。
以下、本発明において採用した構成について説明する。
請求項1に記載のデバイス制御システムは、コンピュータと、複数種の機能を備えた複合機とを、USBインターフェースを介して接続した構造になっており、前記複合機は、前記コンピュータが備えるOSには、USB規格に準拠した方式でデータを伝送可能な論理ユニットを少なくとも1つ有するデバイスであると認識され、前記コンピュータが前記論理ユニットとの間で入出力データの伝送を行うことによって、前記複合機が備える前記複数種の機能を利用可能となっているデバイス制御システムであって、前記複合機において、前記論理ユニットの少なくとも1つは、単一の論理ユニットに対して、前記複数種の機能の内、2種以上の特定機能が対応付けられた複合論理ユニットとされており、前記コンピュータと前記複合機との接続を確立する際、前記コンピュータは、前記複合論理ユニットをUSBストレージクラスのデバイスであると認識して、前記USBストレージクラスのデバイスと通信可能な状態になる一方、前記複合機は、前記USBストレージクラスのデバイスに対応する1組の入力用および出力用のエンドポイントを介して前記コンピュータと通信可能な状態となって、前記コンピュータと前記複合機がUSB規格に準拠した通信手順で通信可能な接続状態となり、しかも、前記コンピュータが前記複合論理ユニットに対し、SCSIコマンドの“Inquiry”を発行すると、前記複合機はSCSIデバイスの種別としてストレージデバイスである旨の応答を返し、当該応答を受けた前記コンピュータは、前記1組の入力用および出力用のエンドポイントを介して通信可能な接続状態について切断および再接続を行うことなく、前記ストレージデバイスに対応するストレージデバイス用デバイスドライバをロードし、前記コンピュータは、前記コンピュータ上で機能するデータ処理部からの指令に従って、前記2種以上の特定機能のいずれかを制御するために前記コンピュータからの出力データを前記複合機に伝送する場合に、前記2種以上の特定機能のいずれかを制御するための独自規格の情報を、前記出力データ内の実データ部に格納して、当該出力データを前記複合論理ユニットへと伝送し、さらに、前記コンピュータへの入力データが前記複合機から伝送された場合には、前記入力データ内の実データ部に含まれる独自規格の情報に基づいて、前記2種以上の特定機能のいずれによって伝送されてきたデータであるのかを判断して、当該データを指令元である前記データ処理部へと伝送するコンピュータ側制御手段を備え、前記複合機は、前記コンピュータからの出力データが前記複合論理ユニットに伝送された場合には、前記出力データ内の実データ部に含まれる独自規格の情報に基づいて、前記2種以上の特定機能のいずれを制御するためのデータであるのかを判断して、いずれか1種の機能を制御し、さらに、前記1種の機能を制御したことにより、前記コンピュータへの入力データを伝送する場合には、前記2種以上の特定機能のいずれによって伝送されるデータであるのかを示す独自規格の情報を、前記入力データ内の実データ部に格納して、当該入力データを前記複合論理ユニットからのデータとして前記コンピュータへと伝送するデバイス側制御手段を備え、しかも、前記コンピュータ側制御手段は、前記2種以上の特定機能それぞれに対応付けて設けられた2以上の特定機能用デバイスドライバと、前記2以上の特定機能用デバイスドライバと前記OSとの間に介在して一方から他方へデータ伝送を行うデータ管理手段とを備え、前記コンピュータと前記複合機との接続を確立する際、前記コンピュータは、前記2以上の特定機能用デバイスドライバを、前記ストレージデバイス用デバイスドライバとは別に、スタティックドライバとしてロードし、前記コンピュータ上で機能するデータ処理部からの指令に従って、前記2種以上の特定機能のいずれかを制御するために前記コンピュータからの出力データを前記複合機に伝送する場合に、前記特定機能用デバイスドライバは、前記コンピュータ上で機能するデータ処理部からの指令に従って、前記2種以上の特定機能のいずれかを制御するためのデータを作成して、当該データを前記データ管理手段へと伝送し、前記データ管理手段は、前記特定機能用デバイスドライバから伝送されてきたデータに基づき、前記2種以上の特定機能のいずれかを制御するための独自規格の情報を、前記出力データ内の実データ部に格納して、当該出力データを前記複合論理ユニットへと伝送し、さらに、前記コンピュータへの入力データが前記複合機から伝送された場合には、前記データ管理手段は、前記入力データ内の実データ部に含まれる独自規格の情報に基づいて、前記2種以上の特定機能のいずれかによって伝送されてきたデータであるのかを判断して、当該データを当該データに対応する前記特定機能用デバイスドライバへと伝送し、当該データが伝送されてきた特定機能用デバイスドライバは、当該データを指令元である前記データ処理部へと伝送することを特徴とする。
以下の説明において、論理ユニットとは、コンピュータの備えるOSが、USB規格に準拠した方式でデータを伝送可能なデータ伝送対象として認識する論理的な構成単位のことである。
より具体的な例を交えて説明すると、一般に、単機能のUSBデバイスであれば、コンピュータの備えるOSは単一のデータ伝送対象として認識する。この場合、単機能のUSBデバイスは、ここでいう論理ユニットを1つ有するデバイスであると認識されたことになる。
また、複数機能を備えたUSB複合デバイスであれば、コンピュータの備えるOSは複数機能それぞれに対応する複数のデータ伝送対象をそれぞれ個別に認識する。この場合、USB複合デバイスは、ここでいう論理ユニットを複数有するデバイスであると認識されたことになる。
さらに、USBストレージクラスのデバイスは、単一のデバイスで複数のLUN(Logical Unit Number)を持つことができ、コンピュータの備えるOSは複数のLUNそれぞれに対応する複数のデータ伝送対象をそれぞれ個別に認識する。この場合、複数LUNを持つUSBストレージデバイスは、ここでいう論理ユニットを複数有するデバイスであると認識されたことになる。
上記単機能のUSBデバイスやUSB複合デバイスの場合、コンピュータと論理ユニットとの間でデータ伝送を実施するため、論理ユニット毎に入力用のエンドポイントと出力用のエンドポイントが用意される。また、複数LUNを持つUSBストレージデバイスの場合、コンピュータと論理ユニットとの間でデータ伝送を実施するため、複数の論理ユニットで共用する入力用のエンドポイントと出力用のエンドポイントが用意される。
つまり、上記のようなUSBデバイスには、単一の論理ユニットのみが利用するエンドポイントか、複数の論理ユニットで共用するエンドポイントかの違いはあるものの、1つの論理ユニットに対応する入力用および出力用のエンドポイントが1つずつ存在する。なお、入力用および出力用のエンドポイントの他、USBデバイスには、制御用のエンドポイントが1つ用意される。
以上のような前提の下、本発明のデバイス制御システムが備える複合機は、コンピュータとUSBインターフェースを介して接続された際、コンピュータが備えるOSには、USB規格に準拠した方式でデータを伝送可能な論理ユニットを少なくとも1つ有するデバイスであると認識される。
すなわち、本発明のデバイス制御システムが備える複合機は、論理ユニットを1つ有するデバイスであると認識される構成になっていてもよいし、論理ユニットを複数有するデバイスであると認識される構成になっていてもよい。
ただし、本発明のデバイス制御システムが備える複合機が有する論理ユニットは、少なくとも1つが、単一の論理ユニットに対して、複数種の機能の内、2種以上の特定機能が対応付けられた複合論理ユニットとされている。すなわち、コンピュータの備えるOSには、USBの規格上、論理ユニットの1つとして認識される複合論理ユニットが、少なくとも1つは存在する構成になっている。
そして、コンピュータからの出力データが上記複合論理ユニットに伝送された場合には、出力データ内の実データ部に含まれる独自規格の情報に基づいて、2種以上の特定機能のいずれを制御するためのデータであるのかを判断し、いずれか1種の機能を制御する。
また、その1種の機能を制御したことに伴い、コンピュータへの入力データを伝送する必要が生じた場合には、2種以上の特定機能のいずれによって伝送されるデータであるのかを示す独自規格の情報を、入力データ内の実データ部に格納し、その入力データを複合論理ユニットからのデータとしてコンピュータへと伝送する。
このように構成されたデバイス制御システムによれば、複合機は、コンピュータとUSBインターフェースを介して接続された際、コンピュータが備えるOSには、USB規格に準拠した方式でデータを伝送可能な論理ユニットを少なくとも1つ有するデバイスであると認識される。しかも、複合機が有する論理ユニットは、少なくとも1つが、上述の複合論理ユニットとされている。
したがって、このようなデバイス制御システムであれば、複合機には、1つの複合論理ユニットに対応する入力用および出力用のエンドポイントを1つずつ用意するだけで、USB規格の通信プロトコルに則って、コンピュータと複合論理ユニットとの間で相互にデータ伝送を行うことができる。しかも、このデータ伝送により、コンピュータから2種以上の特定機能を利用することができる。
したがって、1つの機能毎にそれぞれに対応する論理ユニットが構成されることになるUSB複合デバイスとは異なり、個々の機能毎に入力用および出力用のエンドポイントを1つずつ用意しなくてもよくなるので、その分だけエンドポイント数を削減することができる。
また、2種以上の特定機能のいずれを制御するかは、独自規格の情報として実データ部に格納されているものなので、あるUSBデバイスとの接続を断って、別のUSBデバイスとの接続を確立するといった状況を擬似的に作り出す必要はない。したがって、コンピュータ側で、デバイスドライバの切り替えに時間を要するといった問題はなく、2つの機能を同時に利用することもできる。
さらに、制御用のエンドポイントがデータ転送に利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
加えて、上記のように構成されたデバイス制御システムによれば、コンピュータには、2種以上の特定機能それぞれに対応付けて設けられた2以上のデバイスドライバと、2以上のデバイスドライバとOSとの間に介在して一方から他方へデータ伝送を行うデータ管理手段が設けられる。
そのため、2以上のデバイスドライバについては、単機能のデバイスを制御するためのデバイスドライバと同等なものとすることができる。したがって、2種以上の特定機能すべてを制御可能な特殊なデバイスドライバを用意しなくてもよいので、デバイスドライバの開発コストを抑制することができる。
次に、請求項に記載のデバイス制御システムは、請求項に記載のデバイス制御システムにおいて、前記複合機が備える前記デバイス側制御手段は、前記ストレージデバイス用デバイスドライバからのコマンドが到来した場合に、メディアの入っていないドライブ相当の応答を前記コンピュータに対して返すことを特徴とする。
このように構成されたデバイス制御システムによれば、複合機は、ストレージデバイスへの書き込み要求やストレージデバイスからの読み出し要求などをエミュレートした応答を返さなくても、常にストレージデバイス用のメディアが入っていない旨を応答するだけでよいので、煩雑な擬似応答をしなくても済む。また、常にメディアが入っていない状態をエミュレートすれば、メディア交換ステータスも発生しないので、メディア交換ステータスが発生する場合に比べ、予期しない事態に陥る可能性を低くすることができる。
次に、本発明の実施形態について、より具体的な例を挙げて説明する。
(1)第1実施形態
[デバイス制御システムの構成]
図1は、本発明の一例として例示するデバイス制御システム全体のブロック図である。
このデバイス制御システムは、複合機11およびPC(Personal Computer)12を備えてなる。複合機11およびPC12は、双方ともUSBインターフェースを有するもので、USB−HUB13を介して接続されて相互間でデータ伝送ができるようになっている。また、USB−HUB13には、他のUSBデバイス14なども接続されている。
本実施形態において、複合機11は、プリンタ機能、スキャナ機能、PC−FAX機能、カードリーダ機能などを備える多機能デバイスで、これらの機能をPC12から制御できるようになっている。
[複合機の内部構成]
図2は、複合機11の内部構成を示すブロック図である。
複合機11は、USBインターフェースを構成するためのハードウェアとして、USBプロトコルエンジン101、制御回路103、およびカードリーダ系データ入出力回路105などを備えている。PC12との間でデータ伝送を行う際には、上記USBプロトコルエンジン101による制御下で、USB規格の通信プロトコルにてデータが伝送される。
これらのハードウェアは、エンドポイントを介してPC12との間でデータを伝送するように構成されている。具体的には、制御回路103は、コントロール転送用のエンドポイント(以下、EP0と称する。)を介して、PC12との間で各種制御データの入出力(双方向通信)を行う。
また、カードリーダ系データ入出力回路105は、入力データ用のエンドポイント(以下、EP1と称する。)を介して、PC12への入力データを伝送する。また、カードリーダ系データ入出力回路105は、出力データ用のエンドポイント(以下、EP2と称する。)を介して、PC12から伝送されてくる出力データを取得する。
また、複合機11は、複合機11内で機能するソフトウェアの1つとして、SCSIコマンド解析タスク111を備えている。
カードリーダ系データ入出力回路105からSCSIコマンド解析タスク111へデータが伝送されてきた場合、SCSIコマンド解析タスク111は、データ中に含まれる情報に基づいて、LUN0側またはLUN1側のどちらかへデータを振り分ける。
また、LUN0側またはLUN1側のどちらかからSCSIコマンド解析タスク111へデータが伝送されてきた場合、SCSIコマンド解析タスク111は、そのデータをカードリーダ系データ入出力回路105へ伝送する。
SCSIコマンド解析タスク111がLUN0側へデータを振り分けた場合、そのデータはメモリスロット入出力制御タスク121へと伝送される。メモリスロット入出力制御タスク121は、第1メモリスロット131、第2メモリスロット132、第3メモリスロット133、および第4メモリスロット134を制御するためのソフトウェアである。
第1メモリスロット131、第2メモリスロット132、第3メモリスロット133、第4メモリスロット134は、いずれもメモリカードがマウントされるスロットで、それぞれが他のスロットとは異なる規格のメモリカードをマウントできる構造になっている。
なお、本実施形態において、第1メモリスロット131、第2メモリスロット132、第3メモリスロット133、および第4メモリスロット134は、それぞれが排他的に利用可能となるものである。例えば、第1メモリスロット131にメモリカードがマウントされた場合、そのメモリカードがアンマウントされるまで、他のスロットは利用不能となる。
一方、SCSIコマンド解析タスク111がLUN1側へデータを振り分けた場合、そのデータはリソースマネージャタスク141へと伝送される。リソースマネージャタスク141は、実データ部に格納された独自規格の情報に基づいて、プリンタ入出力タスク151、スキャナ入出力タスク153、PC−FAX入出力タスク155のいずれかへデータを振り分ける。
また、プリンタ入出力タスク151、スキャナ入出力タスク153、PC−FAX入出力タスク155のいずれかからリソースマネージャタスク141へデータが伝送されてきた場合、リソースマネージャタスク141は、そのデータをSCSIコマンド解析タスク111へ伝送する。
プリンタ入出力タスク151、スキャナ入出力タスク153、PC−FAX入出力タスク155は、それぞれ印字制御タスク161、スキャナ制御タスク163、モデム制御タスク165を介して、プリンタハードウェア171、スキャナハードウェア173、モデムハードウェア175を制御する。
以上のように構成された複合機11において、PC12のOSには、メモリスロット入出力制御タスク121の制御下にある構成が、LUN0に対応する論理ユニットとして認識される。また、PC12のOSには、リソースマネージャタスク141の制御下にある構成が、LUN1に対応する論理ユニットとして認識される。
しかも、リソースマネージャタスク141の制御下にある構成は、プリンタ機能、スキャナ機能、PC−FAX機能、以上3機能に対応する構成であり、LUN1に対応する論理ユニットは、本発明でいう複合論理ユニットに相当するものである。
図3は、プリンタ入出力タスク151、スキャナ入出力タスク153、およびPC−FAX入出力タスク155とリソースマネージャタスク141との間のデータ伝送経路を、より詳細に示したブロック図である。
プリンタ入出力タスク151、スキャナ入出力タスク153、およびPC−FAX入出力タスク155は、データ伝送用の共有メモリを介して、リソースマネージャタスク141との間で各種データをやり取りするように構成されている。
具体的には、共有メモリ上には、プリンタ入出力タスク151、スキャナ入出力タスク153、およびPC−FAX入出力タスク155が共用するコントロールエリア181が設けられている。このコントロールエリア181は、プリンタ入出力タスク151、スキャナ入出力タスク153、およびPC−FAX入出力タスク155とリソースマネージャタスク141との間で制御データの伝送を行う際に利用される。
また、共有メモリ上には、プリンタ入出力タスク151に対応する出力バッファ182および入力バッファ183が設けられている。これらの出力バッファ182および入力バッファ183は、プリンタ入出力タスク151とリソースマネージャタスク141との間でデータの伝送を行う際に利用される。また、プリンタ入出力タスク151は、リソースマネージャタスク141に対してシグナルを伝達することができるようになっている。
また、共有メモリ上には、スキャナ入出力タスク153に対応する出力バッファ184および入力バッファ185が設けられている。これらの出力バッファ184および入力バッファ185は、スキャナ入出力タスク153とリソースマネージャタスク141との間でデータの伝送を行う際に利用される。また、スキャナ入出力タスク153は、リソースマネージャタスク141に対してシグナルを伝達することができるようになっている。
また、共有メモリ上には、PC−FAX入出力タスク155に対応する出力バッファ186および入力バッファ187が設けられている。これらの出力バッファ186および入力バッファ187は、PC−FAX入出力タスク155とリソースマネージャタスク141との間でデータの伝送を行う際に利用される。また、PC−FAX入出力タスク155は、リソースマネージャタスク141に対してシグナルを伝達することができるようになっている。
さらに、リソースマネージャタスク141は、次PC送信用バッファ191に対するデータのリード/ライトができるようになっている。次PC送信用バッファ191は、次にPC12へ送信するためのデータを、PC12への送信前にコントロールエリア181、入力バッファ183、185、187から先読みして、一時的に格納しておくために利用されるバッファである。
[PCの内部構成]
図4は、PC12の内部構成を示すブロック図である。
PC12においては、OSによる標準機能として、USBプロトコルスタック201、USBストレージドライバ203、SCSIコマンド処理部211、213、リムーバブルディスクドライバ221、223、ファイルシステム231、233などが機能する。
また、PC12においては、複合機11に対応する専用ソフトウェアとして、リソースマネージャ241(本発明でいうデータ管理手段の一例に相当)、プリントポートドライバ251、スキャナドライバ253(本発明でいうデバイスドライバの一例に相当)、COMポートドライバ255(本発明でいうデバイスドライバの一例に相当)、プリンタドライバ261(本発明でいうデバイスドライバの一例に相当)などが機能する。
さらに、PC12においては、これらの機能を利用するアプリケーションソフトウェアとして、印刷可能アプリケーション271、スキャン可能アプリケーション273、PC−FAXアプリケーション275などが機能する。
加えて、本実施形態において、PC12が備えるOSとしては、Windows(登録商標)が利用されており、PC12においては、Windows(登録商標)付属のソフトウェアであるエクスプローラ277なども機能する。ただし、PC12が備えるOSは、同等な機能を実現できるものであれば、Windows(登録商標)以外のOSであってもよい。
なお、PC12においては、他のUSBデバイス14に対応する他のUSBデバイスのドライバ281なども機能する。
これらの内、USBプロトコルスタック201は、PC12の起動に伴って機能し、その後は、図5に示すように、PC12にUSBデバイスが接続されたかどうかを定期的に監視する。
ここで、複合機11がPC12に接続された場合は、複合機11からの応答がPC12に返されるので、USBプロトコルスタック201は、複合機11に対してデバイスタイプについての応答を要求する。この要求に対し、複合機11はUSBストレージクラスである旨の応答を返すので(この応答を返す構成(複合機11が備えるCPU等)が、本発明でいう応答手段の一例に相当)、PC12では、USBストレージドライバ203がロードされ、その結果、USBストレージドライバ203が機能する状態に移行する。
USBストレージドライバ203が機能すると、USBストレージドライバ203は、複合機11に対して最大LUNを要求する。この要求に対し、複合機11は最大LUN(本実施形態の場合はLUN1)を返すので、PC12では、LUN0およびLUN1に対応する2つのSCSIコマンド処理部211、213が作られる。これらSCSIコマンド処理部211、213は、USBストレージドライバ203経由で複合機へSCSIコマンドを伝送するための入口である。
SCSIコマンド処理部211が作られると、SCSIコマンド処理部211は、LUN0の論理ユニットに対してSCSIコマンドの“Inquiry”を発行する。これに対し、複合機11からはリムーバブルHDである旨の応答が返されるので、PC12では、リムーバブルディスクドライバ221がロードされる。
これにより、LUN0の論理ユニットがファイルシステム231と結合し、その結果、LUN0の論理ユニットに対応するドライブレターが割り当てられる。以降、そのドライブレターを指定すれば、LUN0の論理ユニットに対するアクセスを行うことができる状態になる。なお、複合機11において、LUN0に対応する論理ユニットは、メモリスロット入出力制御タスク121の制御下にある構成である。
SCSIコマンド処理部213も、SCSIコマンド処理部211と同等な処理を実行し、LUN1の論理ユニットに対してSCSIコマンドの“Inquiry”を発行する。これに対し、複合機11からはリムーバブルHDである旨の応答が返される(この応答を返す構成(複合機11が備えるCPU等)が、本発明でいう応答手段の一例に相当)。
ここで、複合機11において、LUN1に対応する論理ユニットは、リソースマネージャタスク141の制御下にある構成であり、具体的には、プリンタ機能、スキャナ機能、PC−FAX機能、以上3機能に対応する構成である。
したがって、これらの構成は、リムーバブルHDに相当するものではないが、複合機11は、リムーバブルHDである旨の応答を返すことで、PC12のOSに対しては、擬似的にリムーバブルHDに相当する挙動を示すデバイスとして振る舞う。
そのため、PC12では、リムーバブルディスクドライバ221がロードされ、これにより、LUN1の論理ユニットがファイルシステム233と結合し、その結果、LUN1の論理ユニットに対応するドライブレターが割り当てられる。
ただし、上述の通り、このドライブレターに対応するリムーバブルディスクは、擬似的なものであり、実際には、リムーバブルディスク相当のデバイスが存在する訳ではない。そのため、この擬似的なリムーバブルディスクについては、通常の操作では利用者から存在が見えないように表示設定が変更される。
その結果、擬似的なリムーバブルディスクには、内部的にはドライブレターが割り当てられているものの、例えば、エクスプローラ277でPC12に接続されたデバイスの一覧を表示しても、擬似的なリムーバブルディスクは表示されない設定になる。
以上のような構成において、LUN0の論理ユニットに対応するドライブレターを利用すれば、第1メモリスロット131、第2メモリスロット132、第3メモリスロット133、および第4メモリスロット134の内、いずれかにマウントされたメモリカードにアクセスすることができる。
例えば、エクスプローラ277を利用して、第1メモリスロット131にマウントされたメモリカード内のファイルに対する操作が行われると、エクスプローラ277からの指令は、ファイルシステム231、リムーバブルディスクドライバ221、SCSIコマンド処理部211、USBストレージドライバ203、USBプロトコルスタック201経由で、複合機11へと伝送される。
また、複合機11からの応答は、USBプロトコルスタック201、USBストレージドライバ203、SCSIコマンド処理部211、リムーバブルディスクドライバ221、ファイルシステム231経由で、エクスプローラ277へと戻される。
一方、印刷可能アプリケーション271から出力される印刷データは、プリンタドライバ261、プリントポートドライバ251経由で、リソースマネージャ241へと伝送される。また、スキャン可能アプリケーション273から出力されるスキャナ制御データは、スキャナドライバ253経由で、リソースマネージャ241へと伝送される。また、PC−FAXアプリケーション275から出力されるPC−FAXデータは、COMポートドライバ255経由で、リソースマネージャ241へと伝送される。
リソースマネージャ241は、これら様々なデータを、複合機11が備えるリソースマネージャタスク141で処理できるような独自規格の情報(ベンダーユニークデータ)として、伝送対象となるデータ中の実データ部に格納する。
そして、そのデータを上述した擬似的なリムーバブルディスクに対して書き込む旨の指令を発行することにより、SCSIコマンド処理部213、USBストレージドライバ203、USBプロトコルスタック201経由で、複合機11へと伝送する。
また、上記のようなデータ伝送の結果、PC12への入力データが複合機11側から伝送されてくる場合がある。例えば、スキャナ制御データを複合機11へ伝送した場合であれば、複合機11においてスキャン機能が作動し、その結果、スキャンデータが複合機11側から伝送されてくる。
このようなPC12への入力データは、USBプロトコルスタック201、USBストレージドライバ203、SCSIコマンド処理部213経由で、リソースマネージャ241へと伝送されてくる。
リソースマネージャ241は、伝送されてきたデータ中に含まれる実データ部から、独自規格の情報(ベンダーユニークデータ)を取り出す。そして、そのデータをプリントポートドライバ251、スキャナドライバ253、COMポートドライバ255のいずれに伝送すべきかを判断した上で、いずれかへ伝送する。
その結果、例えば、スキャンデータが複合機11側から伝送されてきた場合であれば、そのデータは、スキャナドライバ253経由で、スキャン可能アプリケーション273へと伝送されることになる。
また、プリンタ機能についてのステータスデータ(例えば、印刷エラーに関する情報等)であれば、プリントポートドライバ251、プリンタドライバ261経由で、印刷可能アプリケーション271へと伝送されることになる。
さらに、PC−FAX機能によるファクシミリ受信データであれば、COMポートドライバ255経由で、PC−FAXアプリケーションへと伝送されることになる。
図6は、プリントポートドライバ251、スキャナドライバ253、およびCOMポートドライバ255とリソースマネージャ241との間のデータ伝送経路を、より詳細に示したブロック図である。
プリントポートドライバ251、スキャナドライバ253、およびCOMポートドライバ255は、データ伝送用の共有メモリを介して、リソースマネージャ241との間で各種データをやり取りするように構成されている。
具体的には、共有メモリ上には、プリントポートドライバ251、スキャナドライバ253、およびCOMポートドライバ255が共用するコントロールエリア291が設けられている。このコントロールエリア291は、プリントポートドライバ251、スキャナドライバ253、およびCOMポートドライバ255とリソースマネージャ241との間で制御データの伝送を行う際に利用される。
また、共有メモリ上には、プリントポートドライバ251に対応する出力バッファ292および入力バッファ293が設けられている。これらの出力バッファ292および入力バッファ293は、プリントポートドライバ251とリソースマネージャ241との間でデータの伝送を行う際に利用される。
また、共有メモリ上には、スキャナドライバ253に対応する出力バッファ294および入力バッファ295が設けられている。これらの出力バッファ294および入力バッファ295は、スキャナドライバ253とリソースマネージャ241との間でデータの伝送を行う際に利用される。
また、共有メモリ上には、COMポートドライバ255に対応する出力バッファ296および入力バッファ297が設けられている。これらの出力バッファ296および入力バッファ297は、COMポートドライバ255とリソースマネージャ241との間でデータの伝送を行う際に利用される。
ちなみに、以上のように構成された複合機11およびPC12において、リソースマネージャ241とリソースマネージャタスク141との間のデータ伝送に着目すると、両者間では、SCSI規格に準拠したデータ構造を持つデータが伝送される。
このSCSI規格に準拠したデータ構造の中には、ベンダーユニークデータと呼ばれるデータを格納することができる。ベンダーユニークデータは、リソースマネージャ241とリソースマネージャタスク141は、それぞれが認識可能な独自規格の情報であればよく、OS等は、ベンダーユニークデータの中身については関知しない。
したがって、リソースマネージャ241とリソースマネージャタスク141との間でやり取りしたい実データについては、上記のようなベンダーユニークデータとして伝送することで、SCSI規格に準拠した方式で任意のデータをやり取りすることができる。また、USB規格ではSCSI規格に準拠した方式のデータをやり取りする方式が規定されているので、SCSI規格に準拠した方式で任意のデータをやり取りすることができれば、同じくUSB規格に準拠した方式でも任意のデータをやり取りできることになる。
[複合機用ソフトウェアのインストール処理]
次に、上記のような複合機11をPC12から利用可能とするため、PC12において実行される複合機用ソフトウェアのインストール処理について、図7および図8のフローチャートに基づいて説明する。
この処理を開始すると、PC12は、図7に示すように、まずインストーラを起動する(S105)。このS105の処理は、利用者が所定の操作を行うと実行されるようになっていてもよいし、CD−ROMなどのメディアをCD−ROMドライブなどにセットすると、それに連動して自動的に実行されるようになっていてもよい。
インストーラを起動すると、続いて、PC12は、該当複合機のリソースマネージャ用ドライブを検索する(S110)。このS110の処理は、詳しくは図8に示すような処理となる。
すなわち、PC12は、ドライブレター“A”〜“Z”を順に検索対象とするため、図8に示すように、まず、初期値としてドライブレター“A”を変数CDRVにセットする(S205)。そして、ドライブCDRV(すなわち、S205の処理直後はドライブ“A”)に、SCSIコマンドの“Inquiry”を発行する(S210)。このコマンドは、デバイスの種類等を照会するために利用されるコマンドである。
S210の処理において、コマンドに対する応答が正常に返された場合は(S210:正常)、応答中に含まれるベンダ名とプロダクト名から、ドライブCDRVが、対象としている複合機11に該当するドライブなのか否かを判断する(S215)。
S215の処理による判断の結果、該当ドライブであれば(S215:該当ドライブである)、対象としている複合機11に該当するドライブが見つかったことになる(CDRVが見つかったドライブである)ので、この場合は、図8に示す処理を終了する。
一方、S215の処理による判断の結果、対象としている複合機11に該当するドライブではなかった場合は(S215:該当ドライブでない)、S220の処理へと進む。また、S210の処理において、コマンドに対する応答としてエラーが返された場合も(S210:エラー)、S220の処理へと進む。S220の処理へ進んだ場合、変数CDRVにセットされたドライブレターが“Z”であるか否かを判断する(S220)。
S220の処理において、変数CDRVにセットされたドライブレターが“Z”でなければ(S220:いいえ)、次のドライブのドライブレター(例えば、“A”の次であれば“B”)を変数CDRVにセットして(S225)、S210の処理へ戻る。
その結果、変数CDRVにセットされたドライブレターが“Z”とならない限り、S210〜S220の処理が繰り返されることになる。そして、その繰り返し処理において、S215の処理による判断の結果、該当ドライブが見つかれば、図8に示す処理を終了することになる。
一方、S220の処理において、変数CDRVにセットされたドライブレターが“Z”であれば(S220:はい)、ドライブレター“A”〜“Z”をすべて処理したことになる。したがって、この場合は、対象としている複合機11に該当するドライブが見つからなかったことになり、その場合も、図8に示す処理を終了する。
以上のようにして図8に示す処理を終了すると、図7に示したS110の処理を終了したことになる。図7に示すように、S110の処理の結果、リソースマネージャ用ドライブが見つからなかった場合(S110:見つからなかった)、PC12は、「複合機11とUSB接続を行い暫く待った後にOKを押すこと」を利用者に対して指示するダイヤログを表示する(S115)。
このS115の処理により、PC12は利用者からの入力待ち状態になる。ここで、利用者は、PC12の表示部に表示されたダイヤログにおいて、「OK」または「キャンセル」を押す操作(=例えば、表示部に表示された「OK」ボタンまたは「キャンセル」ボタンを、ポインティングデバイスでクリックする操作)を行うことができる。
利用者が「キャンセル」を押した場合(S115:キャンセル)、インストール処理は中止される。一方、利用者が「OK」を押した場合(S115:OK)、PC12は、再びS110の処理を実行する。
また、S110の処理において、リソースマネージャ用ドライブが見つかった場合(S110:見つかった)、PC12は、見つかった「リソースマネージャ用ドライブ」を隠す(S120)。PC12において、ドライブレターが割り当てられたデバイスを表示する設定にするか隠す設定にするかは、ドライブレター毎にレジストリ(OSが管理する記憶領域)に登録される。
S120の処理では、S110の処理によって見つかったリソースマネージャ用ドライブのドライブレターを対象にして、デバイスを隠す設定となるようにレジストリを変更する。なお、このS120の処理を実行する構成(PC12の備えるCPU等)が、本発明でいう表示設定変更手段の一例に相当する。
続いて、PC12は、リソースマネージャをインストールし、該当複合機機種名をINIファイルに設定する(S125)。INIファイルは、リソースマネージャに関する各種設定が記録されたテキストファイルである。このINIファイルに記録された内容は、リソースマネージャが後述する処理を実行した際に、リソースマネージャによって読み込まれることになるものである。S125の処理では、S210の処理において取得された「複合機機種名」がINIファイルに格納される。
その後、PC12は、プリンタドライバ、プリントポートドライバ、スキャナドライバ、COMポートドライバ、PC−FAXアプリケーションをインストールして(S130)、複合機用ソフトウェアのインストール処理を終了する。
[PCの電源ONから電源OFFに至るまでに実行される処理の一例]
次に、PCの電源ONから電源OFFに至るまでに実行される処理の一例について、図9〜図12に基づいて説明する。なお、以下に説明する処理の一例は、複合機11の電源スイッチがONにされている状態で、PC12の電源スイッチがONにされた場合の例である。
PC12の電源スイッチがONにされた場合、PC12は、図9に示すように、まず、OSをロードし(S305)、続いて、スタティックドライバをロードする(S310)。S310の処理は、詳しくは図10に示す処理となる。
すなわち、PC12では、図10に示すように、まず、OSがレジストリ設定を参照して、スタティックドライバを順次ロードする(S405)。そして、本発明の構成に関連する処理としては、プリンタドライバをロードし(S410)、プリントポートドライバをロードし(S415)、スキャナドライバをロードし(S420)、COMポートドライバをロード(S425)して、図10に示す処理を終了する。
図10に示す処理を終了すると、図9に示すS310の処理を終了したことになるので、PC12は、続いて、ダイナミックドライバをロードする(S315)。S315の処理は、詳しくは図11に示す処理となる。
すなわち、PC12では、図11に示すように、まず、OSがハードウェア接続状態を参照して、ダイナミックドライバを順次ロードする(S505)。そして、本発明の構成に関連する処理としては、USBプロトコルスタック201が複合機11を見つけた場合、複合機11にデバイスタイプを問い合わせる(S510)。
そして、この問い合わせに対し、複合機11からUSBストレージデバイスである旨の返答が有った場合、PC12は、USBストレージドライバ203をロードする(S515)。
このS515の処理により、USBストレージドライバ203が機能する状態となり、引き続いて、USBストレージドライバ203が複合機11にLUN数を問い合わせる(S520)。より具体的には、S520の処理において、USBストレージドライバ203は、最大LUNを問い合わせる。
本実施形態の場合、複合機11は2つの論理ユニットを備え、それらの論理ユニットに対し、LUNとして最小LUNを“0”とする連番を割り当てているので、最大LUNとしては“1”が返されることになる。
PC12は、最大LUNとして“1”が返されたことをもって、複合機11からLUN数が2個であると返答が有ったものと認識し、その場合、SCSIコマンド処理の入り口を2個作る(S525)。このS525の処理により、SCSIコマンド処理部211、213が構成されることになる。
SCSIコマンド処理部211、213が機能する状態になると、SCSIコマンド処理部211は、LUN0の論理ユニットに対して“Inquiry”を発行する(S530)。
これに対し、LUN0の論理ユニットからは“リムーバブルHD”と返答が有る。この場合、PC12は、リムーバブルディスクドライバ221をロードし、ファイルシステム231と結合、その結果、LUN0の論理ユニットにドライブレターが割り当てられ、ドライブレターが出現することになる(S535)。
また、SCSIコマンド処理部213は、LUN1の論理ユニットに対して“Inquiry”を発行する(S540)。これに対し、LUN1の論理ユニットからは“リムーバブルHD”で有る旨の返答が有る。
複合機11において、LUN1の論理ユニットは、プリンタ機能、スキャナ機能、およびPC−FAX機能に対応するものであり、実際には、“リムーバブルHD”相当のデバイスとして機能する論理ユニットではない。しかし、複合機11は、“リムーバブルHD”で有る旨の返答を返すことで、PC12のOSに対しては、複合機11を2ドライブの“リムーバブルHD”で有ると認識させる。
LUN1の論理ユニットから“リムーバブルHD”である旨の返答が有った場合、PC12は、リムーバブルディスクドライバ223をロードしてファイルシステム233と結合、その結果、LUN1の論理ユニットにドライブレターが割り当てられる。
ただし、LUN1の論理ユニットに割り当てられるドライブレターは、上述したS120の処理で、隠す設定にされたドライブに対応するものである。そのため、ドライブレターが内部的には出来るものの、エクスプローラ277では表示されないものとなる(S545)。
こうして図11に示したダイナミックドライバのロード処理を終えると、図9に示したS315の処理を終えたことになるので、続いて、PC12は、サービスプロセスをロードして(S320)、ログイン待ちになる(S325)。
S325の処理は、利用者がログイン操作を行うまで継続される(S325:ログインまだ)。そして、利用者がログイン操作を行った場合(S325:ログインした)、PC12は、自動起動プログラムを起動する(S330)。S330の処理は、詳しくは図12に示す処理となる。
すなわち、PC12では、図12に示すように、まず、OSがスタートメニューのスタートアップを参照して、自動起動プログラムを順次起動する(S605)。そして、本発明の構成に関連する処理としては、リソースマネージャ241を起動する(S610)。S610の処理によって起動されたリソースマネージャ241が実行する処理の内容については、後から詳しく説明する。
そして、図12に示した自動起動プログラムの起動処理を終えたら、PC12は、通常状態に至る(S355)。この通常状態に至れば、利用者は任意に印刷可能アプリケーション271、スキャン可能アプリケーション273、PC−FAXアプリケーション275、エクスプローラ277などを利用することができる。
さて、その後、利用者がログアウト操作またはシャットダウン操作を行った場合(S355:ログアウトまたはシャットダウン)、PC12は、まず、自動起動プログラムおよび手動起動プログラムを終了させる(S340)。そして、ログアウト操作がなされたのであれば(S340:ログアウトの場合)、S325の処理へ戻る。
一方、シャットダウン操作がなされたのであれば(S340:シャットダウンの場合)、サービスプロセスアンロードし(S345)、ダイナミックドライバをアンロードし(S350)、スタティックドライバをアンロードする(S355)。そして、最後にOSをアンロードして(S360)、PC12の電源OFFに至る。S345〜S360の処理では、S305〜S320の処理とは逆の手順で、各ソフトウェアのアンロードが行われることになる。
[リソースマネージャが実行する処理]
次に、上記S610の処理によって起動されるリソースマネージャ241が実行する処理について、図13〜図15に基づいて説明する。
リソースマネージャ241が起動された場合、リソースマネージャ241(より厳密には、リソースマネージャ241としての処理を実行するPC12;以下、単にリソースマネージャ241と称する。)は、対象とすべき複合機11の機種名やその他の設定を、INIファイルから読み込む(S705)。このS705の処理では、上述したS125の処理等により、INIファイルに格納された各種情報が読み込まれることになる。
続いて、リソースマネージャ241は、該当複合機のリソースマネージャ用ドライブを検索する(S710)。このS710の処理は、既に説明した図8に示す処理と同等な処理となるので、ここでの説明は省略する。
S710の処理の結果、リソースマネージャ用ドライブが見つからなかった場合(S710:見つからなかった)、PC12は、「複合機11とUSB接続を行い暫く待った後にOKを押すこと」を利用者に対して指示するダイヤログを表示する(S715)。
このS715の処理により、PC12は利用者からの入力待ち状態になる。ここで、利用者は、PC12の表示部に表示されたダイヤログにおいて、「OK」または「キャンセル」を押す操作を行うことができる。
利用者が「キャンセル」を押した場合(S715:キャンセル)、リソースマネージャ241による処理は終了する。一方、利用者が「OK」を押した場合(S715:OK)、PC12は、再びS710の処理を実行する。
また、S710の処理において、リソースマネージャ用ドライブが見つかった場合(S710:見つかった)、PC12は、所定時間だけ待って(S720)、終了要求が有るか否かを判断する(S725)。
ここで、終了要求が無ければ(S725:無し)、リソースマネージャ241は、ReadBuffer処理(S730)、WriteBuffer処理(S735)を実行し、S720へ戻る。以降、終了要求無い限り、S720〜S735の処理が繰り返される。また、終了要求が有れば(S725:有り)、リソースマネージャ241による処理は終了する。
S720〜S735の繰り返し処理の中で実行されるReadBuffer処理(S730)は、複合機11からリソースマネージャ241へと伝送されてくる入力データを取得するための処理である。また、WriteBuffer処理(S735)は、リソースマネージャ241から複合機11へと伝送される出力データを送出するための処理である。
[ReadBuffer処理]
次に、上記S730のReadBuffer処理の詳細について、図14に基づいて説明する。
ReadBuffer処理を開始すると、リソースマネージャ241は、リソースマネージャ用ドライブに対して、SCSIコマンドの“ReadBuffer”を発行し(S805)、S805の処理によって得られた入力データが有るか否かを判断する(S810)。
ここで、入力データが無い場合は(S810:無し)、そのままReadBuffer処理を終了する。一方、入力データが有る場合(S810:有り)、リソースマネージャ241は、パケットの種類を判断する(S815)。
“ReadBuffer”を発行した際に、複合機11からどのような入力データが返されるかは、複合機11の仕様に依存しており、本実施形態の場合、コントロールパケット、プリンタパケット、スキャナパケット、COMポートパケットのいずれかが返る。
これらの内のいずれのパケットであるかを示す情報、および、実データとなる情報は、本実施形態の場合、独自規格の情報となっている。そして、その独自規格の情報が、SCSI規格に準拠したデータ構造を持つパケット群の実データ部に、ベンダーユニークデータとして格納されて、複合機11からPC12へと伝送されてくる。
そこで、S815の処理においては、SCSI規格のデータとして取得したパケット群の実データ部から、ベンダーユニークデータを抽出し、その中に格納された独自規格の情報に基づいて、パケットの種類が、コントロールパケット、プリンタパケット、スキャナパケット、またはCOMポートパケットのいずれであるのかを判断する。
その判断の結果、パケットの種類がコントロールパケットの場合(S815:コントロールパケット)、リソースマネージャ241は、パケットの情報に従い、コントロールエリア291(図6参照)を変更し(S820)、ReadBuffer処理を終了する。
また、パケットの種類がプリンタパケットの場合(S815:プリンタパケット)、パケットのデータ部をプリンタ用の入力バッファ293に追加し(S825)、ReadBuffer処理を終了する。なお、S825の処理において、入力バッファ293がバッファフルとなっている場合は、入力バッファ293が空くまで待って、S825の処理を実行する。
また、パケットの種類がスキャナパケットの場合(S815:スキャナパケット)、パケットのデータ部をスキャナ用の入力バッファ295に追加し(S830)、ReadBuffer処理を終了する。なお、S830の処理において、入力バッファ295がバッファフルとなっている場合は、入力バッファ295が空くまで待って、S830の処理を実行する。
さらに、パケットの種類がCOMポートパケットの場合(S815:COMポートパケット)、パケットのデータ部をCOMポート用の入力バッファ297に追加し(S835)、ReadBuffer処理を終了する。なお、S835の処理において、入力バッファ297がバッファフルとなっている場合は、入力バッファ297が空くまで待って、S835の処理を実行する。
[WriteBuffer処理]
次に、上記S735のWriteBuffer処理の詳細について、図15に基づいて説明する。
WriteBuffer処理を開始すると、リソースマネージャ241は、まず、コントロールエリア291に、複合機11に伝える情報が有るか否かを判断する(S905)。
ここで、伝える情報が有る場合(S905:有り)、伝える情報に従ってコントロールパケットを作成する(S910)。そして、リソースマネージャ用ドライブにSCSIコマンドの“WriteBuffer”を発行して(S915)、WriteBuffer処理を終了する。
“WriteBuffer”を発行した際に、PC12から複合機11へ伝送される出力データが複合機11においてどのように扱われるかは、複合機11の仕様に依存している。本実施形態の場合、S910の処理では、独自規格に準拠してコントロールパケットである旨の情報と実データとなる情報が用意され、それら独自規格の情報が、SCSI規格に準拠したデータ構造を持つパケット群の実データ部に、ベンダーユニークデータとして格納される。そして、そのデータが、S915の処理により、PC12から複合機11へと伝送される。
一方、S905の処理において、コントロールエリア291に、複合機11に伝える情報が無い場合(S905:無し)、後述する処理を実行するの先だって、前回パケット化したデバイスの、次のデバイスを処理対象として選択する際の起点にする(S920)。
S920の処理において、前回パケット化したデバイスとは、前回のWriteBuffer処理においてパケットの送信対象となったデバイスのことである。そして、その送信対象となり得るデバイスは、本実施形態の場合、プリンタ、スキャナ、モデム(PC−FAX)のいずれかである。
より具体的には、前回パケット化したデバイスがプリンタの場合、S920の処理では、次のデバイスであるスキャナを起点にして処理対象を選択する。また、前回パケット化したデバイスがスキャナの場合、S920の処理では、次のデバイスであるモデム(PC−FAX)を起点にして処理対象を選択する。また、前回パケット化したデバイスがモデム(PC−FAX)の場合、S920の処理では、次のデバイスであるプリンタを起点にして処理対象を選択する。
そして、処理対象を選択したら、リソースマネージャ241は、その処理対象となるデバイス(プリンタ、スキャナ、モデムのいずれか)がフローOFF状態か否かを判断する(S925)。
ここで、処理対象となるデバイスにおいて十分にデータ処理が進んでいれば、そのデバイスについてはフローOFF状態にはないと判断される(S925:いいえ)。その場合、リソースマネージャ241は、出力バッファにデータが有るか否かを判断する(S930)。
より具体的には、S930の処理において、処理対象となるデバイスがプリンタである場合は、プリンタに対応する出力バッファ292にデータが有るか否かを判断する。同様に、処理対象となるデバイスがスキャナである場合は、スキャナに対応する出力バッファ294にデータが有るか否かを判断し、処理対象となるデバイスがモデムである場合は、モデムに対応する出力バッファ296にデータが有るか否かを判断する。
S930の処理において、出力バッファにデータが有れば(S930:有り)、出力バッファからデータを取り出してパケット化する(S935)。
このS935の処理においても、上述のS910の処理同様、独自規格に準拠して、どのデバイスに対応するパケットであるのかを示す情報と実データとなる情報が用意される。そして、それら独自規格の情報が、SCSI規格に準拠したデータ構造を持つパケット群の実データ部に、ベンダーユニークデータとして格納される。
このようなS935の処理を終えたら、上述したS915の処理へと進む。その結果、S935の処理で作成されたデータが、PC12から複合機11へと伝送されることになる。
一方、S930の処理において、出力バッファにデータが無かった場合(S930:無し)、あるいは、S925の処理において、デバイスがフローOFF状態であった場合(S925:はい)、S940の処理へと進む。
S940の処理では、今回の「WriteBuffer処理」で、処理対象となり得るデバイスを一周調べたか否かを判断する(S940)。より具体的には、S940の処理では、処理対象となり得るデバイス(プリンタ、スキャナ、モデム)すべてについて、S925以降の処理が1度は実行されたか否かが判断される。
その結果、S925以降の処理が1度も実行されていないデバイスが残っていれば、まだ一周していないと判断される一方、S925以降の処理が1度も実行されていないデバイスが残っていなければ、一周調べたと判断される。
S940の処理において、まだ一周していないと判断された場合は(S940:まだ一周していない)、次のデバイスを処理対象として選択して(S940)、S925の処理へ戻る。また、S940の処理において、一周調べたと判断された場合は(S940:一周調べた)、WriteBuffer処理を終了する。
なお、以上説明したWriteBuffer処理においては、先にS905の処理を行った後、その後で、S930処理を行っている。このような手順で処理を行えば、常に、コントロールエリア291に複合機11に伝える情報が有るか否かが先に判断される。そして、その様な情報が無かった場合に、出力バッファ292、294、296のいずれかにデータが有るか否かが判断される。
したがって、コントロールエリア291に複合機11に伝える情報が有る場合は、出力バッファ292、294、296のいずれかにデータが有るか否かを問わず、優先的にコントロールエリア291の情報を複合機11に伝えることができる。よって、複合機11に対して迅速に制御情報を伝達でき、出力バッファ292、294、296にあるデータの伝送に邪魔されることなく、適切な制御を実施することができる。
[SCSIコマンド解析タスクにおいて実行される処理]
次に、複合機11が備えるSCSIコマンド解析タスク111において実行される処理について、図16に基づいて説明する。
この処理を開始すると、複合機11は、まず、SCSIコマンド待ちになる(S1005)。ここで、PC12からSCSIコマンドが伝送されてこなければ(S1005:なし)、S1005の処理へ戻る。
一方、PC12からSCSIコマンドが伝送されて来たら(S1005:あり)、そのSCSIコマンド中で指定されたLUNが“0”か“1”かを判断する(S1010)。
S1010の処理による判断の結果、LUNが“0”の場合(S1010:LUN=0)、複合機11は、SCSIコマンドをメモリスロット入出力制御タスク121へ伝送して(S1015)、S1005の処理へと戻る。
また、S1010の処理による判断の結果、LUNが“1”の場合(S1010:LUN=1)、SCSIコマンドをリソースマネージャタスク141へ伝送して(S1020)、S1005の処理へと戻る。
以上のような処理が、SCSIコマンド解析タスク111において実行される結果、PC12から伝送されてくるSCSIコマンドは、LUNに基づいてメモリスロット入出力制御タスク121またはリソースマネージャタスク141のいずれかに振り分けられる。以降、メモリスロット入出力制御タスク121またはリソースマネージャタスク141のそれぞれにおいてデータ処理が行われることになる。
なお、メモリスロット入出力制御タスク121で行われるデータ処理は、カードリーダ機能を有する周知のUSBデバイスが実行している処理と同等な処理であり、この処理自体は周知の処理と差異がないので、詳細な説明については省略する。
一方、リソースマネージャタスク141で行われるデータ処理は、カードリーダ機能を有する周知のUSBデバイスが実行している処理とは、全く異なる処理となる。具体的には、リソースマネージャ241から伝送されてくる独自規格のデータを解析し、さらにプリンタ機能、スキャナ機能、PC−FAX機能のいずれかにデータを振り分ける処理が実行される。
すなわち、複合機11は、PC12のOSには、2ドライブのカードリーダ系デバイスとして認識され、PC12がいずれのドライブにアクセスするかは、LUNによって指定している。しかし、LUN1を指定した場合、リソースマネージャタスク141では、カードリーダ機能を有するUSBデバイス相当の処理は実行されないのである。
そこで、以下、複合機11が備えるリソースマネージャタスク141においてどのような処理が実行されるのかを、さらに詳細に説明する。
[リソースマネージャタスクにおいて実行される処理]
図17は、複合機11が備えるリソースマネージャタスク141において実行される処理のフローチャートである。
この処理を開始すると、複合機11は、図17に示すように、まず、SCSIコマンドとシグナル待ちになる(S1105)。ここで、SCSIコマンドとシグナル、いずれも到来しない場合は(S1105:どちらも無し)、S1105の処理へと戻ることにより、SCSIコマンドまたはシグナルの到来を待ち受ける。
この状態において、PC12からはSCSIコマンドが伝送されてくることがある。例えば、PC12において、上述したS915の処理が実行され、リソースマネージャ用ドライブにSCSIコマンドの“WriteBuffer”が発行された場合、PC12からSCSIコマンドが伝送されてくる。
SCSIコマンドが伝送されてきた場合(S1105:SCSIコマンド)、複合機11は、そのSCSIコマンドが“ReadBuffer”、“WriteBuffer”、その他のいずれであるのかを判断する(S1110)。
ここで、上述したS915の処理が実行された場合であれば、SCSIコマンドは“WriteBuffer”なので(S1110:WriteBuffer)、複合機11は、パケットの種類を判断する(S1115)。
このS1115の処理による判断の結果、パケットの種類がコントロールパケットであった場合(S1115:コントロールパケット)、複合機11は、パケットの情報に従い、コントロールエリア181を変更し(S1120)、S1105の処理へと戻る。
一方、パケットの種類がプリンタパケット、スキャナパケット、COMポートパケットのいずれかであった場合(S1115:プリンタ、スキャナ、COMポート)、パケットのデータ部を指定デバイスの出力バッファに追加する(S1125)。
具体的には、パケットの種類がプリンタパケットであれば、パケットのデータ部をプリンタの出力バッファ182に追加する。その結果、出力バッファ182を介してプリンタ入出力タスク151へ出力データが伝送される。なお、この出力データは、さらに印字制御タスク161へと伝送され、プリンタハードウェア171の制御が行われるが、この制御自体は周知のプリンタと同等な制御なので、ここでの説明は省略する。
また、パケットの種類がスキャナパケットであれば、パケットのデータ部をスキャナの出力バッファ184に追加する。その結果、出力バッファ184を介してスキャナ入出力タスク153へ出力データが伝送される。なお、この出力データは、さらにスキャナ制御タスク163へと伝送され、スキャナハードウェア173の制御が行われるが、この制御自体は周知のスキャナと同等な制御なので、ここでの説明は省略する。
さらに、パケットの種類がCOMポートパケットであれば、パケットのデータ部をCOMポートの出力バッファ186に追加する。その結果、出力バッファ186を介してPC−FAX入出力タスク155へ出力データが伝送される。なお、この出力データは、さらにモデム制御タスク165へと伝送され、モデムハードウェア175の制御が行われるが、この制御自体は周知のFAXモデムと同等な制御なので、ここでの説明は省略する。
さて、以上のようなS1110〜S1125の処理により、PC12からの出力データが複合機11に到来した場合、複合機11では、プリンタ機能、スキャナ機能、あるいは、PC−FAX機能が作動する。そして、それらが作動した結果、PC12への入力データが発生する場合がある。
具体例を挙げれば、スキャナ機能の利用を指令するコマンドがPC12から到来していた場合、複合機11では、スキャナ機能が作動し、その結果、PC12への入力データとしてスキャンデータが生成される。また、この他、PC−FAX機能による受信データがある場合、プリンタ機能を利用したときのエラー情報がある場合など、様々な場合にPC12への入力データが発生する。
こうした入力データが発生した場合、プリンタ入出力タスク151、スキャナ入出力タスク153、PC−FAX入出力タスク155は、その入力データを入力バッファ183、185、187に格納する。その上で、リソースマネージャタスク141に対してシグナルを送信する。
このようなシグナルがリソースマネージャタスク141に対して送信された場合(S1105:シグナル)、複合機11は、次PC送信用バッファ191にデータが有るか否かを判断する(S1130)。
ここで、次PC送信用バッファにデータが無い場合(S1130:無し)、コントロールエリア181に、PC12に伝える情報が有るか否かを判断する(S1135)。
S1135の処理において、コントロールエリア181に、PC12に伝える情報が有る場合は(S1135:有り)、伝える情報に従ってコントロールパケットを作成して、そのパケットを次PC送信用バッファ191に置く(S1140)。そして、S1105の処理へと戻る。
一方、S1135の処理において、コントロールエリア181に、PC12に伝える情報が無い場合は(S1135:無し)、前回パケット化したデバイスの、次のデバイスを処理対象として選択する際の起点にする(S1145)。
S1145の処理において、前回パケット化したデバイスとは、前回のS1145以降の処理において処理対象となったデバイスのことである。そして、その処理対象となり得るデバイスは、本実施形態の場合、プリンタ、スキャナ、モデム(PC−FAX)のいずれかである。
より具体的には、前回パケット化したデバイスがプリンタの場合、S1145の処理では、次のデバイスであるスキャナを起点にして処理対象を選択する。また、前回パケット化したデバイスがスキャナの場合、S1145の処理では、次のデバイスであるモデム(PC−FAX)を起点にして処理対象を選択する。また、前回パケット化したデバイスがモデム(PC−FAX)の場合、S1145の処理では、次のデバイスであるプリンタを起点にして処理対象を選択する。
S1145の処理によって処理対象が選択されたら、続いて、その処理対象となるデバイスに対応する入力バッファにデータが有るか否かを判断する(S1150)。具体的には、処理対象となるデバイスがプリンタであれば、入力バッファ183にデータが有るか否かを判断する。また、処理対象となるデバイスがスキャナであれば、入力バッファ185にデータが有るか否かを判断する。また、処理対象となるデバイスがモデム(PC−FAX)であれば、入力バッファ187にデータが有るか否かを判断する。
処理対象となるデバイスに対応する入力バッファにデータが有る場合(S1150:有り)、複合機11は、入力バッファからデータを取り出してパケット化し、そのパケットを次PC送信用バッファに置いて(S1155)、S1105の処理へと戻る。
一方、処理対象となるデバイスに対応する入力バッファにデータが無い場合(S1150:無し)、今回のS1145以降の処理で、処理対象となり得るデバイスを一周調べたか否かを判断する(S1160)。より具体的には、S1160の処理では、処理対象となり得るデバイス(プリンタ、スキャナ、モデム)すべてについて、S1150以降の処理が1度は実行されたか否かが判断される。
その結果、S1150以降の処理が1度も実行されていないデバイスが残っていれば、まだ一周していないと判断される一方、S1150以降の処理が1度も実行されていないデバイスが残っていなければ、一周調べたと判断される。
S1160の処理において、まだ一周していないと判断された場合は(S1160:まだ一周していない)、次のデバイスを処理対象として選択して(S1165)、S1150の処理へ戻る。また、S1160の処理において、一周調べたと判断された場合は(S1160:一周調べた)、S1105の処理へと戻る。
以上説明したように、シグナルがリソースマネージャタスク141に対して送信された場合、S1135以降の処理が実行されれば、次PC送信用バッファ191にデータが格納されることになる。この次PC送信用バッファ191に格納されたデータは、PC12において、上述したS805の処理が実行された際に、PC12へと伝送されることになる。
より詳しくは、PC12において上述したS805の処理が実行された場合、リソースマネージャ用ドライブにSCSIコマンドの“ReadBuffer”が発行され、その結果、複合機11には、PC12からSCSIコマンドが伝送されてくる。
伝送されてきたSCSIコマンドが“ReadBuffer”の場合(S1110:ReadBuffer)、複合機11は、次PC送信用バッファ191の内容をPC12側に送信して、次PC送信用バッファ191をクリアする(S1170)。この時点で、次PC送信用バッファ191は空になる。その後は、上述したS1135の処理へと進む。
以下、先に説明したS1135の処理が実行されるため、S1155の処理へ移行すれば、入力バッファからデータが取り出されてパケット化され、そのパケットが次PC送信用バッファ191に置かれることになる。
ちなみに、リソースマネージャタスク141に対してシグナルが送信された場合でも、次PC送信用バッファ191にデータが有る場合は(S1130:有り)、入力バッファ等にあるデータを次PC送信用バッファ191に格納することはできない。そのため、そのような場合は、そのままS1105の処理へと戻る。この場合、入力バッファ等には入力データが残されることになる。
ただし、上述の通り、次PC送信用バッファ191の内容をPC12側に送信して、次PC送信用バッファ191をクリアしたら(S1170)、その後は、上述したS1135の処理へと進む。したがって、この時点で、シグナルを受けたときに次PC送信用バッファ191に格納できなかった入力データは、次PC送信用バッファ191へと移されることになる。
また、リソースマネージャタスク141に到来するSCSIコマンドは、PC12のリソースマネージャ241から到来するコマンドである限り、“ReadBuffer”、“WriteBuffer”のいずれかとなる。ただし、ファイルシステム233やリムーバブルディスクドライバ223経由でSCSIコマンドが到来する可能性もある。
そこで、そのようなSCSIコマンドが到来した場合(S1110:その他)、複合機11は、メディアの入っていないドライブ相当の応答を返し(S1175)、S1105の処理へと戻る。
このような応答を返せば、メディアへの書き込み要求やメディアからの読み出し要求などをエミュレートした応答を返さなくても、常にメディアが入っていない旨を応答するだけでよいので、煩雑な擬似応答をしなくても済む。また、常にメディアが入っていない状態をエミュレートすれば、メディア交換ステータスも発生しないので、メディア交換ステータスが発生する場合に比べ、予期しない事態に陥る可能性を低くすることができる。
なお、以上説明した処理においては、先にS1135の処理を行った後、その後で、S1150処理を行っている。このような手順で処理を行えば、常に、コントロールエリア181にPC12に伝える情報が有るか否かが先に判断される。そして、その様な情報が無かった場合に、入力バッファ183、185、187のいずれかにデータが有るか否かが判断される。
したがって、コントロールエリア181にPC12に伝える情報が有る場合は、入力バッファ183、185、187のいずれかにデータが有るか否かを問わず、優先的にコントロールエリア181の情報をPC12に伝えることができる。よって、PC12に対して迅速に制御情報を伝達でき、入力バッファ183、185、187にあるデータの伝送に邪魔されることなく、適切な制御を実施することができる。
[第1実施形態の効果]
以上説明した通り、上記複合機11によれば、プリンタ機能、スキャン機能、およびPC−FAX機能のすべてを、PC12のOSには、USBストレージデバイスのリムーバブルHDに相当する論理ユニットとして認識させる。
したがって、この論理ユニットに対応する入力用および出力用のエンドポイントを1つずつ用意するだけで、USB規格の通信プロトコルに則って、PC12と論理ユニットとの間で相互にデータ伝送を行うことができる。しかも、このデータ伝送により、PC12からプリンタ機能、スキャン機能、およびPC−FAX機能のすべてを利用することができる。
したがって、プリンタ機能、スキャン機能、およびPC−FAX機能それぞれに対応する論理ユニットが構成されることになるUSB複合デバイスとは異なり、個々の機能毎に入力用および出力用のエンドポイントを1つずつ用意しなくてもよくなるので、その分だけエンドポイント数を削減することができる。
また、プリンタ機能、スキャン機能、およびPC−FAX機能のいずれを制御するかは、USB規格に則って伝送可能なデータの実データ部に、独自規格の情報として格納されているものである。したがって、あるUSBデバイスとの接続を断って、別のUSBデバイスとの接続を確立するといった状況を擬似的に作り出す必要はなく、PC12のOSは、常にリムーバブルHDに相当する論理ユニットにアクセスすればよい。したがって、PC12のOSが、デバイスドライバの切り替えに時間を要するといった問題はなく、複数の機能を同時に利用することもできる。
さらに、コントロール転送用のエンドポイント(EP0)が、その他のデータ転送にも利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
加えて、上記複合機11の場合、PC12のOSには、複数LUNを持つUSBデバイスとして認識され、その内の1つの論理ユニットがプリンタ機能、スキャン機能、およびPC−FAX機能に対応し、もう1つの論理ユニットがカードリーダ機能に対応している。
したがって、カードリーダ機能については、プリンタ機能、スキャン機能、およびPC−FAX機能を持つ論理ユニットの一部に組み込まなくてもよく、OS標準のデバイスドライバ等により、カードリーダ機能の制御を実施できる。しかも、カードリーダ機能の実装に当たって、エンドポイントを増設する必要はないので、エンドポイントの削減という当初の目的を阻害することもない。
(2)第2実施形態
次に、第2実施形態について説明する。なお、第2実施形態以降の実施形態は、一部の構成が上記第1実施形態とは相違するものの、共通部分も多いので、以下の説明においては、第1実施形態との相違点を中心に詳述し、共通部分については詳細な説明を省略する。
[複合機用ソフトウェアのインストール処理]
以下、第2実施形態において、PC12において実行される複合機用ソフトウェアのインストール処理について、図18のフローチャートに基づいて説明する。この処理は、図7に示した処理の代わりに実行されるものである。
以下に説明する処理の内、まず、S1205〜S12220の処理は、第1実施形態におけるS105〜S120と同等な処理になるので、簡潔に説明する。
すなわち、この処理を開始すると、PC12は、図18に示すように、まずインストーラを起動する(S1205)。そして、該当複合機のリソースマネージャ用ドライブを検索する(S1210)。このS1210の処理は、第1実施形態同様、詳しくは図8に示すような処理となるが、第2実施形態では、図8に基づく詳細な説明は省略する。
S1210の処理の結果、リソースマネージャ用ドライブが見つからなかった場合(S1210:見つからなかった)、PC12は、「複合機11とUSB接続を行い暫く待った後にOKを押すこと」を利用者に対して指示するダイヤログを表示する(S1215)。
ここで、利用者が「キャンセル」を押した場合(S1215:キャンセル)、インストール処理は中止される。一方、利用者が「OK」を押した場合(S1215:OK)、PC12は、再びS1210の処理を実行する。
また、S1210の処理において、リソースマネージャ用ドライブが見つかった場合(S1210:見つかった)、PC12は、見つかった「リソースマネージャ用ドライブ」を隠す(S1220)。
続いて、PC12は、リソースマネージャをインストールし、見つかった「リソースマネージャ用ドライブ」をINIファイルに設定する(S1225)。すなわち、第1実施形態では、S210(図8参照)の処理において取得された「複合機機種名」をINIファイルに設定していたところ、第2実施形態では、変数CDRV(図8参照)に格納された「リソースマネージャ用ドライブ」のドライブレターをINIファイルに設定する。
その後、PC12は、プリンタドライバ、プリントポートドライバ、スキャナドライバ、COMポートドライバ、PC−FAXアプリケーションをインストールして(S1230)、複合機用ソフトウェアのインストール処理を終了する。なお、このS1230の処理は、第1実施形態におけるS130と同等な処理である。
[リソースマネージャが実行する処理]
次に、第2実施形態において、リソースマネージャ241が実行する処理について、図19に基づいて説明する。この処理は、図13に示した処理の代わりに実行されるものである。
リソースマネージャ241が起動された場合、リソースマネージャ241は、対象とすべき「リソースマネージャ用ドライブ」の設定を、INIファイルから読み込む(S1305)。このS1305の処理では、上述したS1225の処理等により、INIファイルに格納された各種情報が読み込まれることになる。
続いて、リソースマネージャ241は、INIファイルから読み込んだ「リソースマネージャ用ドライブ」のドライブレターについて、そのドライブレターが割り当てられたドライブが、リソースマネージャ用かどうかを確認する(S1310)。
このS1310の処理を実行するのは、INIファイルの作成後にドライブレターの割り当てが変更された場合、INIファイルに登録されたドライブレターと実際のドライブレターとの間に不整合が生じている可能性があるからである。
S1310の処理において、INIファイルに登録されたドライブレターに対応するドライブが、「リソースマネージャ用ドライブ」ではなかった場合(S1310:ちがう)、PC12は、「複合機11とUSB接続を行い暫く待った後にOKを押すこと」を利用者に対して指示するダイヤログを表示する(S1315)。
このS1315の処理により、PC12は利用者からの入力待ち状態になる。ここで、利用者は、PC12の表示部に表示されたダイヤログにおいて、「OK」、「キャンセル」、または「リスキャン」を押す操作を行うことができる。
利用者が「キャンセル」を押した場合(S1315:キャンセル)、リソースマネージャ241による処理は終了する。また、利用者が「OK」を押した場合(S715:OK)、PC12は、再びS1310の処理を実行する。また、利用者が「リスキャン」を押した場合(S1315:OK)、リソースマネージャ241は、該当複合機のリソースマネージャ用ドライブを検索する(S1320)。
このS1320の処理は、既に説明した図8に示す処理と同等な処理となるので、ここでの説明は省略する。S1320の処理の結果、リソースマネージャ用ドライブが見つからなかった場合(S1320:見つからない)、PC12は、再びS1315へと戻って入力待ちになる。
また、S1320の処理の結果、リソースマネージャ用ドライブが見つかった場合(S1320:見つかった)、PC12は、リソースマネージャ用ドライブの設定を変更する(S1325)。S1325の処理では、新たに見つかったリソースマネージャ用ドライブのドライブレターがINIファイルに書き込まれる。なお、S1325の処理を終えたら、S1305の処理へと戻ることにより、リソースマネージャ241としての処理を最初からやり直す。
さて、以上のようなS1305〜S1325の処理を実行する中で、S1310の処理において、リソースマネージャ用ドライブが見つかった場合(S1310:そうだ)、PC12は、所定時間だけ待って(S1330)、終了要求が有るか否かを判断する(S1335)。
ここで、終了要求が無ければ(S1335:無し)、リソースマネージャ241は、ReadBuffer処理(S1340)、WriteBuffer処理(S1345)を実行し、S1330へ戻る。以降、終了要求無い限り、S1330〜S1345の処理が繰り返される。
このS1330〜S1345の処理は、第1実施形態において、図13に示したS720〜S735の処理と同等な処理になる。また、S1340の処理は、詳しくは図14に示すような処理となり、S1345の処理は、詳しくは図15に示すような処理となるが、これらも第1実施形態と同等な処理となるので、第2実施形態においては、図14、図15に基づく詳細な説明を省略する。
[第2実施形態の効果]
以上説明した第2実施形態の複合機11でも、第1実施形態の複合機11と同様の作用、効果を奏する。すなわち、プリンタ機能、スキャン機能、およびPC−FAX機能のすべてを、PC12のOSには、USBストレージデバイスのリムーバブルHDに相当する論理ユニットとして認識させるので、個々の機能毎に入力用および出力用のエンドポイントを1つずつ用意しなくてもよく、エンドポイント数を削減することができる。
また、あるUSBデバイスとの接続を断って、別のUSBデバイスとの接続を確立するといった状況を擬似的に作り出す必要はないので、PC12のOSが、デバイスドライバの切り替えに時間を要することはなく、複数機能を同時利用もできる。
さらに、コントロール転送用のエンドポイント(EP0)が、その他のデータ転送にも利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
また、カードリーダ機能については、プリンタ機能、スキャン機能、およびPC−FAX機能を持つ論理ユニットの一部に組み込まなくてもよく、OS標準のデバイスドライバ等により、カードリーダ機能の制御を実施できる点も、第1実施形態と同様である。
加えて、第2実施形態においては、S1225の処理でINIファイルにドライブレターを登録し、S1310の処理ではINIファイルに登録されたドライブレターに基づいて、リソースマネージャ用ドライブにアクセスを試みる。
したがって、INIファイルに登録されたドライブレターとリソースマネージャ用ドライブに実際に割り当てられたドライブレターとの間に不整合が無ければ、S710の処理による検索を行う場合よりも、リソースマネージャ用ドライブを迅速に発見できる。
さらに、万一、S1310の処理で、正しいリソースマネージャ用ドライブを直ちに確認できなかったとしても、S1320の処理により、リソースマネージャ用ドライブを検索できるので、第1実施形態と同等なこともできる。つまり、INIファイルのドライブレターが正しい場合は、処理の迅速性を向上させることができ、且つ、INIファイルのドライブレターが正しくない場合でも、処理の信頼性を確保することができる。
(3)第3実施形態
第3実施形態は、PCの内部構成が、第1実施形態とは異なる構成となる例である。以下、第3実施形態におけるPCの内部構成について説明する。
[PCの内部構成]
図20は、第3実施形態におけるPC32の内部構成を示すブロック図である。
第1実施形態のPC12では、複合機11がLUN1の論理ユニットについて「リムーバブルHD」である旨の応答を返す結果、リムーバブルディスクドライバ223がロードされていたが、この点について、第3実施形態のPC32は異なる構成となっている。
具体的には、第3実施形態において、複合機11がLUN1の論理ユニットについて「CD−ROM」である旨の応答を返す。そして、この応答を受けたPC32では、リムーバブルディスクドライバ223の代わりに、CD−ROMドライバ225がロードされる。
このような構成を採用しても、PC32のOSは、複合機11が備えるLUN1の論理ユニットについて、CD−ROM相当のデバイスとして認識する。したがって、プリンタ機能、スキャナ機能、PC−FAX機能のそれぞれについて個別にエンドポイントを用意しなくてもよい点で、第1実施形態等と全く同様の作用、効果を奏する。
さらに、第3実施形態では、PC32のOSにCD−ROM相当のデバイスとして認識される論理ユニットについて、第1実施形態とは別の手法で、その存在を隠すことができる。
具体的には、第1実施形態では、PC12に認識されたリムーバブルHD相当のデバイスについて、ドライブレターが割り当てられた後に、レジストリの内容を書き換えることで、そのドライブレターに対応する表示設定を「ドライブを隠す設定」にしていた。
これに対し、第3実施形態では、CD−ROM相当のデバイスとして認識される論理ユニットについて、単にドライブレターの割り当て(アサイン)を解除することにより、その存在を隠すことができる。
また、ドライブレターの割り当て(アサイン)を解除した場合、PC32では、ドライブレターを利用してLUN1の論理ユニットにアクセスすることはできなくなる。しかし、PC32のOSがLUN1の論理ユニットをCD−ROM相当のデバイスとして認識している場合、ドライブレターを利用しなくてもLUN1の論理ユニットにアクセスできる。
具体的には、ドライブレターとは別のデバイスストリング(例えば、“¥¥.¥cdrom1”、“¥¥.¥cdrom2”等)に対してコマンドを発行することができ、これにより、LUN1の論理ユニットにアクセスすることができる。したがって、リソースマネージャ241は、上記のような「ドライブレターとは別のデバイスストリング」を指定してSCSIコマンドを発行し、第1実施形態と同様の処理を行えばよい。
なお、第1実施形態において、図8に示した処理では、ドライブレター“A”〜“Z”を対象にして、リソースマネージャ用ドライブを検索していたが、第3実施形態の場合は、例えば“¥¥.¥cdrom1”〜“¥¥.¥cdrom16”に対してリソースマネージャ用ドライブを検索するなど、検索対象をドライブレターから「ドライブレターとは別のデバイスストリング」に変更すればよい。
ちなみに、この例は、“¥¥.¥cdrom1”から“¥¥.¥cdrom16”まで16個のデバイスストリングを検索対象とする例であるが、これらのデバイスストリングをいくつまで検索対象とするかは任意である。
また、第2実施形態において、図18に示したS1225の処理では、ドライブレターをINIファイルに登録し、図19に示したS1310の処理で利用していたが、第3実施形態の場合は、「ドライブレターとは別のデバイスストリング」をINIファイルに登録し、図19に示したS1310の処理で利用する構成にすればよい。
[第3実施形態の効果]
以上説明した第3実施形態でも、第1実施形態や第2実施形態と同様の作用、効果を奏する。すなわち、プリンタ機能、スキャン機能、およびPC−FAX機能のすべてを、PC32のOSには、USBストレージデバイスのCD−ROMに相当する論理ユニットとして認識させるので、個々の機能毎に入力用および出力用のエンドポイントを1つずつ用意しなくてもよく、エンドポイント数を削減することができる。
また、あるUSBデバイスとの接続を断って、別のUSBデバイスとの接続を確立するといった状況を擬似的に作り出す必要はないので、PC32のOSが、デバイスドライバの切り替えに時間を要することはなく、複数機能を同時利用もできる。
さらに、コントロール転送用のエンドポイント(EP0)が、その他のデータ転送にも利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
また、カードリーダ機能については、プリンタ機能、スキャン機能、およびPC−FAX機能を持つ論理ユニットの一部に組み込まなくてもよく、OS標準のデバイスドライバ等により、カードリーダ機能の制御を実施できる点も、第1実施形態と同様である。
加えて、第3実施形態においては、第1、第2実施形態とは異なり、プリンタ機能、スキャン機能、およびPC−FAX機能に対応する論理ユニットを、CD−ROM相当のデバイスとして認識させるので、OSに認識された擬似的なCD−ROM相当のデバイスの存在を、ドライブレターのアサインを解除するだけで、簡単に隠すことができる。
(4)第4実施形態
第4実施形態は、PCの内部構成が、第1実施形態や第3実施形態とは異なる構成となる例である。以下、第4実施形態におけるPCの内部構成について説明する。
[PCの内部構成]
図21は、第4実施形態におけるPC42の内部構成を示すブロック図である。
第4実施形態においては、複合機11がLUN1の論理ユニットについて「ハードディスク」である旨の応答を返す。そして、この応答を受けたPC42では、リムーバブルディスクドライバ223の代わりに、ハードディスクドライバ227がロードされる。
また、LUN1の論理ユニットについて、PC42からの応答要求があった場合には、「パーティションの存在しないハードディスク」としての応答がエミュレートされる。
このような構成を採用しても、PC42のOSは、複合機11が備えるLUN1の論理ユニットについて、ハードディスク相当のデバイスとして認識する。したがって、プリンタ機能、スキャナ機能、PC−FAX機能のそれぞれについて個別にエンドポイントを用意しなくてもよい点で、第1実施形態〜第3実施形態等と全く同様の作用、効果を奏する。
また、PC42のOSは、「パーティションの存在しないハードディスク」に対してはドライブレターを割り当てないので、その存在を隠すことができる。
[第4実施形態の効果]
以上説明した第4実施形態でも、第1実施形態〜第3実施形態と同様の作用、効果を奏する。すなわち、プリンタ機能、スキャン機能、およびPC−FAX機能のすべてを、PC42のOSには、USBストレージデバイスのハードディスクに相当する論理ユニットとして認識させるので、個々の機能毎に入力用および出力用のエンドポイントを1つずつ用意しなくてもよく、エンドポイント数を削減することができる。
また、あるUSBデバイスとの接続を断って、別のUSBデバイスとの接続を確立するといった状況を擬似的に作り出す必要はないので、PC42のOSが、デバイスドライバの切り替えに時間を要することはなく、複数機能を同時利用もできる。
さらに、コントロール転送用のエンドポイント(EP0)が、その他のデータ転送にも利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
また、カードリーダ機能については、プリンタ機能、スキャン機能、およびPC−FAX機能を持つ論理ユニットの一部に組み込まなくてもよく、OS標準のデバイスドライバ等により、カードリーダ機能の制御を実施できる点も、第1実施形態と同様である。
加えて、第4実施形態においては、第1〜第3実施形態とは異なり、プリンタ機能、スキャン機能、およびPC−FAX機能に対応する論理ユニットを、パーティションの存在しないハードディスク相当のデバイスとして認識させるので、OSがドライブレターを割り当てることはなく、その存在を簡単に隠すことができる。
[変形例等]
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
例えば、第1実施形態においては、リソースマネージャ241以外の経路から複合機11が備えるLUN1の論理ユニットに対するアクセスがあった場合に、S1175の処理により、常にメディアの入っていないドライブ相当の応答を返すようにしていたが、常にメディアが入っているドライブ相当の応答を返すようにしてもよい。
この場合でも、メディア交換ステータスは発生しないので、メディア交換ステータスが発生する場合に比べ、予期しない事態に陥る可能性を低くすることができる。
つまり、メディア交換ステータスを発生させない方法としては、「常にメディアが入っていないドライブ」、「常にメディアが入っているドライブ」、いずれをエミュレートしてもよい。
また、上記各実施形態において、複合機11は、複数LUNを持つUSBデバイスであったが、本発明において、複数LUNを持つか否かは任意である。具体的には、上記各実施形態においては、カードリーダ機能を有するUSBデバイス相当の部分が、LUN0の論理ユニットとして機能していたが、例えば、カードリーダ機能が不要な場合であれば、プリンタ機能、スキャナ機能、およびPC−FAX機能を有するUSBデバイス相当の部分だけが、単一論理ユニットとして機能する構成になっていてもよい。この場合、PC側には、複数LUNを持つUSBデバイスとして認識されなくてもよい。
さらに、上記各実施形態においては、複合機がPCのOSから複数LUNを持つUSBデバイスであると認識されるようにするため、複合機がUSBストレージクラスのデバイスとして機能するようにしてあったが、複数LUNを持つUSBデバイスであると認識されなくてもよい場合、複合機は、USBストレージクラス以外のUSBデバイスとして機能するものであってもよい。
例えば、複合機は、USB複合デバイスとして機能するものであってもよい。この場合、USB複合デバイスとして認識される複数の機能は、それぞれエンドポイントを使用することになる。
しかし、この場合でも、USB複合デバイスとして認識される複数の機能の内、少なくとも1つ(正確には、エンドポイントを1組使用する1つの機能)が、上記実施形態で示したような複合論理ユニットとして機能すれば、単一のエンドポイントで複数機能を制御できる。したがって、複合機が備える機能の総数に対し、使用するエンドポイント数を削減することができる。
また、上記実施形態では、複合論理ユニットに対応するUSBデバイスとして、リムーバブルディスク、CD−ROM、ハードディスクをエミュレートする例を示したが、これら以外のUSBデバイスをエミュレートしてもよく、例えば、FD(フレキシブルディスク)、光磁気ディスクなどをエミュレートする構成としてもよい。
本発明の一例として例示する第1実施形態のデバイス制御システム全体のブロック図。 第1実施形態の複合機の内部構成を示すブロック図。 第1実施形態の複合機の内部構成の一部をより詳細に示したブロック図。 第1実施形態のPCの内部構成を示すブロック図 第1実施形態のPCと複合機が接続を確立するときのやり取りを示す説明図。 第1実施形態のPCの内部構成の一部をより詳細に示したブロック図。 第1実施形態のPCにおいて実行される複合機用ソフトウェアのインストール処理のフローチャート。 第1実施形態のPCにおいて実行される複合機用ソフトウェアのインストール処理の一部をより詳細に示したフローチャート。 第1実施形態のPCにおいて実行されるPCの電源ONから電源OFFに至るまでに実行される処理のフローチャート。 第1実施形態のPCにおいて実行されるスタティックドライバをロードする処理のフローチャート。 第1実施形態のPCにおいて実行されるダイナミックドライバをロードする処理のフローチャート。 第1実施形態のPCにおいて実行される自動起動プログラムを起動する処理のフローチャート。 第1実施形態のPCにおいて実行されるリソースマネージャが実行する処理のフローチャート。 第1実施形態のPCにおいて実行されるReadBuffer処理のフローチャート。 第1実施形態のPCにおいて実行されるWriteBuffer処理のフローチャート。 第1実施形態の複合機において実行されるSCSIコマンド解析タスクにおいて実行される処理のフローチャート。 第1実施形態の複合機において実行されるリソースマネージャタスクにおいて実行される処理のフローチャート。 第2実施形態のPCにおいて実行される複合機用ソフトウェアのインストール処理のフローチャート。 第2実施形態のPCにおいて実行されるリソースマネージャが実行する処理のフローチャート。 第3実施形態のPCの内部構成を示すブロック図。 第4実施形態のPCの内部構成を示すブロック図。
11・・・複合機、12・・・PC、13・・・USB−HUB、14・・・他のUSBデバイス、101・・・USBプロトコルエンジン、103・・・制御回路、105・・・カードリーダ系データ入出力回路、111・・・SCSIコマンド解析タスク、121・・・メモリスロット入出力制御タスク、131・・・第1メモリスロット、132・・・第2メモリスロット、133・・・第3メモリスロット、134・・・第4メモリスロット、141・・・リソースマネージャタスク、151・・・プリンタ入出力タスク、153・・・スキャナ入出力タスク、155・・・PC−FAX入出力タスク、161・・・印字制御タスク、163・・・スキャナ制御タスク、165・・・モデム制御タスク、171・・・プリンタハードウェア、173・・・スキャナハードウェア、175・・・モデムハードウェア、181,291・・・コントロールエリア、182,184,186,292,294,296・・・出力バッファ、183,185,187,293,295,297・・・入力バッファ、191・・・次PC送信用バッファ、201・・・USBプロトコルスタック、203・・・USBストレージドライバ、211,213・・・SCSIコマンド処理部、221,223・・・リムーバブルディスクドライバ、225・・・CD−ROMドライバ、227・・・ハードディスクドライバ、231,233・・・ファイルシステム、241・・・リソースマネージャ、251・・・プリントポートドライバ、253・・・スキャナドライバ、255・・・COMポートドライバ、261・・・プリンタドライバ、271・・・印刷可能アプリケーション、273・・・スキャン可能アプリケーション、275・・・PC−FAXアプリケーション、277・・・エクスプローラ、281・・・他のUSBデバイスのドライバ。

Claims (2)

  1. コンピュータと、複数種の機能を備えた複合機とを、USBインターフェースを介して接続した構造になっており、前記複合機は、前記コンピュータが備えるOSには、USB規格に準拠した方式でデータを伝送可能な論理ユニットを少なくとも1つ有するデバイスであると認識され、前記コンピュータが前記論理ユニットとの間で入出力データの伝送を行うことによって、前記複合機が備える前記複数種の機能を利用可能となっているデバイス制御システムであって、
    前記複合機において、前記論理ユニットの少なくとも1つは、単一の論理ユニットに対して、前記複数種の機能の内、2種以上の特定機能が対応付けられた複合論理ユニットとされており、
    前記コンピュータと前記複合機との接続を確立する際、前記コンピュータは、前記複合論理ユニットをUSBストレージクラスのデバイスであると認識して、前記USBストレージクラスのデバイスと通信可能な状態になる一方、前記複合機は、前記USBストレージクラスのデバイスに対応する1組の入力用および出力用のエンドポイントを介して前記コンピュータと通信可能な状態となって、前記コンピュータと前記複合機がUSB規格に準拠した通信手順で通信可能な接続状態となり、
    しかも、前記コンピュータが前記複合論理ユニットに対し、SCSIコマンドの“Inquiry”を発行すると、前記複合機はSCSIデバイスの種別としてストレージデバイスである旨の応答を返し、当該応答を受けた前記コンピュータは、前記1組の入力用および出力用のエンドポイントを介して通信可能な接続状態について切断および再接続を行うことなく、前記ストレージデバイスに対応するストレージデバイス用デバイスドライバをロードし、
    前記コンピュータは、
    前記コンピュータ上で機能するデータ処理部からの指令に従って、前記2種以上の特定機能のいずれかを制御するために前記コンピュータからの出力データを前記複合機に伝送する場合に、前記2種以上の特定機能のいずれかを制御するための独自規格の情報を、前記出力データ内の実データ部に格納して、当該出力データを前記複合論理ユニットへと伝送し、さらに、前記コンピュータへの入力データが前記複合機から伝送された場合には、前記入力データ内の実データ部に含まれる独自規格の情報に基づいて、前記2種以上の特定機能のいずれによって伝送されてきたデータであるのかを判断して、当該データを指令元である前記データ処理部へと伝送するコンピュータ側制御手段
    を備え、
    前記複合機は、
    前記コンピュータからの出力データが前記複合論理ユニットに伝送された場合には、前記出力データ内の実データ部に含まれる独自規格の情報に基づいて、前記2種以上の特定機能のいずれを制御するためのデータであるのかを判断して、いずれか1種の機能を制御し、さらに、前記1種の機能を制御したことにより、前記コンピュータへの入力データを伝送する場合には、前記2種以上の特定機能のいずれによって伝送されるデータであるのかを示す独自規格の情報を、前記入力データ内の実データ部に格納して、当該入力データを前記複合論理ユニットからのデータとして前記コンピュータへと伝送するデバイス側制御手段
    を備え、しかも、
    前記コンピュータ側制御手段は、
    前記2種以上の特定機能それぞれに対応付けて設けられた2以上の特定機能用デバイスドライバと、
    前記2以上の特定機能用デバイスドライバと前記OSとの間に介在して一方から他方へデータ伝送を行うデータ管理手段と
    を備え、
    前記コンピュータと前記複合機との接続を確立する際、前記コンピュータは、前記2以上の特定機能用デバイスドライバを、前記ストレージデバイス用デバイスドライバとは別に、スタティックドライバとしてロードし、
    前記コンピュータ上で機能するデータ処理部からの指令に従って、前記2種以上の特定機能のいずれかを制御するために前記コンピュータからの出力データを前記複合機に伝送する場合に、前記特定機能用デバイスドライバは、前記コンピュータ上で機能するデータ処理部からの指令に従って、前記2種以上の特定機能のいずれかを制御するためのデータを作成して、当該データを前記データ管理手段へと伝送し、前記データ管理手段は、前記特定機能用デバイスドライバから伝送されてきたデータに基づき、前記2種以上の特定機能のいずれかを制御するための独自規格の情報を、前記出力データ内の実データ部に格納して、当該出力データを前記複合論理ユニットへと伝送し、さらに、前記コンピュータへの入力データが前記複合機から伝送された場合には、前記データ管理手段は、前記入力データ内の実データ部に含まれる独自規格の情報に基づいて、前記2種以上の特定機能のいずれかによって伝送されてきたデータであるのかを判断して、当該データを当該データに対応する前記特定機能用デバイスドライバへと伝送し、当該データが伝送されてきた特定機能用デバイスドライバは、当該データを指令元である前記データ処理部へと伝送する
    ことを特徴とするデバイス制御システム。
  2. 前記複合機が備える前記デバイス側制御手段は、前記ストレージデバイス用デバイスドライバからのコマンドが到来した場合に、メディアの入っていないドライブ相当の応答を前記コンピュータに対して返す
    ことを特徴とする請求項1に記載のデバイス制御システム。
JP2007084773A 2007-03-28 2007-03-28 デバイス制御システム Expired - Fee Related JP4333765B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007084773A JP4333765B2 (ja) 2007-03-28 2007-03-28 デバイス制御システム
US12/055,309 US8156268B2 (en) 2007-03-28 2008-03-25 Multifunction peripheral
CN2008100874664A CN101277361B (zh) 2007-03-28 2008-03-28 多功能外围设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007084773A JP4333765B2 (ja) 2007-03-28 2007-03-28 デバイス制御システム

Publications (2)

Publication Number Publication Date
JP2008242975A JP2008242975A (ja) 2008-10-09
JP4333765B2 true JP4333765B2 (ja) 2009-09-16

Family

ID=39793761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007084773A Expired - Fee Related JP4333765B2 (ja) 2007-03-28 2007-03-28 デバイス制御システム

Country Status (3)

Country Link
US (1) US8156268B2 (ja)
JP (1) JP4333765B2 (ja)
CN (1) CN101277361B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4618021B2 (ja) * 2005-07-06 2011-01-26 富士ゼロックス株式会社 画像読取装置、画像形成装置、画像処理システム、画像読取装置の記憶領域共有方法、画像処理システムの記憶領域共有方法
JP2010157819A (ja) * 2008-12-26 2010-07-15 Brother Ind Ltd Usbデバイスのエンコード装置
JP4842353B2 (ja) * 2009-08-24 2011-12-21 株式会社バッファロー 外部記憶装置、コンピュータ装置の制御方法、外部記憶装置の制御方法、および、コンピュータプログラム
JP5773595B2 (ja) * 2010-08-19 2015-09-02 キヤノン株式会社 ジョブ処理デバイス、その制御方法、及びコンピュータプログラム
JP2012070111A (ja) * 2010-09-22 2012-04-05 Fuji Xerox Co Ltd 通信システム
US8583847B2 (en) 2010-12-09 2013-11-12 Dell Products, Lp System and method for dynamically detecting storage drive type
JP6111782B2 (ja) * 2013-03-27 2017-04-12 セイコーエプソン株式会社 印刷装置
CN109002403A (zh) * 2018-06-21 2018-12-14 深圳市炬力北方微电子有限公司 Usb移动设备、移动设备识别系统及识别方法
CN110166558B (zh) * 2019-05-24 2020-03-06 苏州浪潮智能科技有限公司 一种多控存储集群的通信方法、装置及设备
US11336592B2 (en) * 2020-08-14 2022-05-17 Google Llc Flexible link level retry for shared memory switches

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239632A (en) * 1992-04-16 1993-08-24 Hewlett-Packard Company Device to translate logical unit number communications on one SCSI bus to ID communications on a subordinate SCSI bus
US5903733A (en) 1997-02-13 1999-05-11 Toshiba America Information Systems, Inc. Multifunction peripheral controller
JP2001222503A (ja) 2000-02-08 2001-08-17 Ricoh Co Ltd 周辺機器制御システム
TW518502B (en) * 2001-07-13 2003-01-21 Prolific Technology Inc USB compound device and the realization method thereof
JP3914949B2 (ja) 2002-05-29 2007-05-16 株式会社ハギワラシスコム Usbストレージデバイス、その制御装置及びその制御装置に実行させるためのプログラム
JP3513147B2 (ja) * 2002-05-29 2004-03-31 株式会社ハギワラシスコム Usbストレージデバイス及びその制御装置
JP4439161B2 (ja) 2002-05-31 2010-03-24 シャープ株式会社 データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体
JP4109983B2 (ja) 2002-12-24 2008-07-02 キヤノン株式会社 通信システム
US7346714B2 (en) * 2002-09-05 2008-03-18 Canon Kabushiki Kaisha Notification of completion of communication with a plurality of data storage areas
US20040064461A1 (en) * 2002-10-01 2004-04-01 Subramaniyam Pooni Method and arrangement for dynamic detection of SCSI devices on linux host
TWI261757B (en) 2003-04-30 2006-09-11 Hagiwara Sys Com Co Ltd USB storage device
JP4023402B2 (ja) 2003-06-27 2007-12-19 ブラザー工業株式会社 周辺装置
US7526580B2 (en) * 2003-06-27 2009-04-28 Brother Kogyo Kabushiki Kaisha Peripheral device
JP3906838B2 (ja) 2003-12-11 2007-04-18 村田機械株式会社 Usb対応型デジタル複合機
JP2006178704A (ja) 2004-12-22 2006-07-06 Seiko Epson Corp 複数の機能を有する装置、及び当該装置と接続可能な上位装置
JP2006293777A (ja) 2005-04-12 2006-10-26 Canon Inc インストールシステム、インストール方法、インストールプログラム、記憶媒体及び情報処理装置
EP1793565A1 (en) * 2005-12-02 2007-06-06 Seiko Epson Corporation Network plug-and-play compliant network relay control
JP4725397B2 (ja) 2006-04-05 2011-07-13 セイコーエプソン株式会社 Usb複合デバイス,usb通信システム,及びusb通信方法

Also Published As

Publication number Publication date
CN101277361A (zh) 2008-10-01
CN101277361B (zh) 2011-04-13
US20080239358A1 (en) 2008-10-02
US8156268B2 (en) 2012-04-10
JP2008242975A (ja) 2008-10-09

Similar Documents

Publication Publication Date Title
JP4333765B2 (ja) デバイス制御システム
JP4333764B2 (ja) デバイス制御システム
US7979600B2 (en) Multifunction peripheral and device control system
US8456665B2 (en) Methods and systems for printing error recovery
JP5680926B2 (ja) プリントシステム、印刷方法、プリントサーバ及びその制御方法、並びにプログラム
JP4509965B2 (ja) ジョブレンダリング方法およびジョブレンダリングシステム
JP5719198B2 (ja) プリントシステム、情報処理装置、制御方法、およびプログラム
JP4555926B2 (ja) スキャナ自動接続プログラム
JP5321929B2 (ja) ユニバーサルデバイスドライバ、デバイス制御プログラム、情報処理装置、サーバ装置、及び、方法
US10241731B2 (en) Information processing apparatus, method of controlling the same, print system and storage medium
JP2009188940A (ja) 画像処理装置、画像処理方法、及び画像処理システム
JP4470977B2 (ja) 複合機、およびファイル伝送システム
JP5596376B2 (ja) 周辺装置
EP2426592B1 (en) Image forming apparatus and method of forming image thereof
JP2006338268A (ja) データ処理装置、ネットワークインターフェース基板及びアプリケーションプログラム登録方法
JP2002287931A (ja) 情報処理装置および印刷制御装置およびプルプリント印刷システムおよび情報処理方法およびデータ処理方法および記憶媒体並びにプログラム
JP2012080519A (ja) 画像処理装置
JP4130201B2 (ja) サーバ、プリンタ機器情報設定方法、プログラム、及び記録媒体
JP3813851B2 (ja) プログラム、スキャン周辺機器サーバ、スキャン周辺機器およびスキャン制御方法
JP2004066809A (ja) 画像形成装置およびプログラム起動方法
JP5243194B2 (ja) 画像読取装置及びその制御方法
JP2009059086A (ja) デバイス、およびファイル伝送システム
JP2010074432A (ja) 画像処理装置、画像処理方法、画像処理システム
JP2019128891A (ja) 情報処理装置及び情報処理装置の制御方法
JP2000156760A (ja) 画像処理装置、画像処理システム及び記憶媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090511

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090615

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4333765

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130703

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees