JP2008245046A - 複合機、およびデバイス制御システム - Google Patents

複合機、およびデバイス制御システム Download PDF

Info

Publication number
JP2008245046A
JP2008245046A JP2007084771A JP2007084771A JP2008245046A JP 2008245046 A JP2008245046 A JP 2008245046A JP 2007084771 A JP2007084771 A JP 2007084771A JP 2007084771 A JP2007084771 A JP 2007084771A JP 2008245046 A JP2008245046 A JP 2008245046A
Authority
JP
Japan
Prior art keywords
function
data
scsi
usb
lun
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.)
Pending
Application number
JP2007084771A
Other languages
English (en)
Inventor
Fumitoshi Uno
文敏 宇野
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 JP2007084771A priority Critical patent/JP2008245046A/ja
Priority to US12/055,066 priority patent/US7979600B2/en
Priority to CN2008100874679A priority patent/CN101277362B/zh
Publication of JP2008245046A publication Critical patent/JP2008245046A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1296Printer job scheduling or printer resource handling
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Facsimiles In General (AREA)
  • Information Transfer Systems (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】エンドポイントを削減でき、使い勝手が悪化したり適切な制御ができなくなったりすることのない複合機と、その複合機を制御するためのデバイス制御システムの提供。
【解決手段】複合機11は、PCのOSには単一のUSB−LUNを持つUSBストレージデバイスとして認識され、その結果、USB規格上、SCSI規格に準拠したデータ伝送経路が構築される。また、複合機11は、SCSI規格上の論理ユニットを複数備えている。PCから複合機11に対してSCSIコマンドを発行する際には、SCSI−LUN=0〜3のいずれかを指定してSCSIコマンドを発行する。その結果、単一のデータ伝送用エンドポイントを介してデータが伝送され、そのデータはSCSIコマンド解析タスク111によってSCSI−LUN=0〜3のいずれかに振り分けられ、カードリーダ機能、プリンタ機能、スキャナ機能、PC−FAX機能のいずれかが機能する。
【選択図】図2

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インターフェースを介して接続可能な複合機であって、前記コンピュータとの接続を確立する際に、USB規格で規定されたUSBストレージクラスのデバイスであると、前記コンピュータが備えるOSに認識させるための情報を出力するデバイス情報出力手段と、SCSI規格に準拠したデータ形式とされたコマンドを含む出力データが前記コンピュータから伝送されてきた場合に、前記コマンド内に設けられたLUNフィールドの格納値に基づいて、前記出力データが前記複数種の機能のいずれを制御するためのデータであるのかを判断して、前記複数種の機能のいずれかを制御する制御手段とを備えることを特徴とする。
このように構成された複合機によれば、コンピュータとの接続を確立する際には、複合機のことを、USB規格で規定されたUSBストレージクラスのデバイスであると、コンピュータが備えるOSに認識させることができる。
そのため、コンピュータ側では、複合機のために単一のUSBストレージドライバが用意され、その結果、コンピュータ−複合機間では、USB規格の通信プロトコルに則ってデータ伝送ができる状態になる。
この状態になった場合、上記のようなコンピュータとUSBストレージクラスのデバイスは、内部的には、SCSI規格に準拠した方式でデータ伝送を行うことが、USB規格において規定されている。
ここで、SCSI規格に準拠したデバイスは、SCSI規格上、単一のデバイス内に複数の論理ユニットを持つことができる。また、コンピュータは、各論理ユニットの機能を制御するためのコマンドとして、SCSI規格に準拠したデータ形式とされたコマンド(以下、SCSIコマンドともいう。)を発行することができる。
コマンドの発行対象となる論理ユニットを指定する方法は、SCSI規格上、いくつかの方法が規定されているが、SCSI−1では、コマンド内に設けられたLUNフィールドを利用して、一つの論理ユニットを指定する方法が用意されている。
そこで、本発明においては、複合機が、上記の通り、USB規格上、SCSI規格準拠のデバイスとして機能し、さらに、SCSI規格上、複数の論理ユニットを持つデバイスとして機能するように構成した。そして、コンピュータから各論理ユニットへSCSIコマンドへ伝送する方法としては、SCSI−1に準拠した方法で各論理ユニットへコマンドが伝送されるように構成した。
具体的には、複合機の制御手段は、SCSIコマンドを含む出力データがコンピュータから伝送されてきた場合、SCSIコマンド中にあるLUNフィールドの格納値に基づいて、出力データが複数種の機能のいずれを制御するためのデータであるのかを判断する。そして、その判断結果に基づいて、複数種の機能のいずれかを制御する。
このような制御を行うことにより、複合機は、複数の論理ユニットを持つデバイスとし
て機能し、コンピュータからの出力データが各論理ユニットへと伝送されることにより、伝送対象となった論理ユニットに対応する機能が作動することになる。
したがって、複合機が備える複数種の機能の内、どの機能を利用するのかをコンピュータ側で指定する際には、SCSIコマンド内にあるLUNフィールドの格納値によって、所望の機能を指定できることになる。
なお、以上のような構成を採用しているので、上記複合機は、コンピュータに対しては、SCSI−1準拠のデバイスとして振る舞うことになる。あるいは、例えば、準拠するSCSIのバージョンが不明なデバイスとして振る舞うことも許容される。
ただし、SCSI規格上、SCSI−2以降準拠のデバイスは、コマンド内に設けられたLUNフィールドの格納値を無視する旨が規定されている。したがって、本発明の如く、複合機がLUNフィールドの格納値を無視しない場合、複合機は、SCSI規格上、少なくともSCSI−2以降準拠のデバイスには該当しなくなる。
以上説明したような方式でデータ伝送を行うに当たって、コンピュータが備えるOSは、複合機のことを単一のUSBストレージデバイスと認識してデータ伝送を行うだけであり、SCSI規格上の論理ユニットが単一なのか複数あるのかについては関知しない。
そのため、いずれの論理ユニットに対するデータ伝送を行う場合であっても、USB規格上は、同一の論理的な通信路を介してデータ伝送を実施することになり、複合機側では、入力用および出力用のエンドポイントを1つずつ用意すれば済む。
したがって、上記複合機によれば、USB規格上、1つの機能毎にそれぞれに対応する入力用および出力用のエンドポイントが1つずつ用意されるUSB複合デバイスとは異なり、個々の機能毎に入力用および出力用のエンドポイントを1つずつ用意しなくてもよくなるので、その分だけエンドポイント数を削減することができる。
また、複数の機能を利用するに当たって、あるUSBデバイスとの接続を断って、別のUSBデバイスとの接続を確立するといった状況を擬似的に作り出す必要はない。したがって、コンピュータ側で、デバイスドライバの切り替えに時間を要するといった問題はなく、複数の機能を同時に利用することもできる。
さらに、制御用のエンドポイントがデータ転送に利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
なお、本発明において利用するLUNは、SCSI規格で規定されたLUNであり、USB規格で規定されたLUNとは別のものである。すなわち、LUNは、USB規格でも規定されており、USBストレージデバイスの場合、USB規格上、単一のデバイスが複数のLUNを持つことができる。
しかし、本発明においては、SCSI規格で規定されたLUNを利用しているので、USB規格上は単一の論理ユニットとして認識される構成が、SCSI規格上は複数の論理ユニットとして認識されるものとなる。
ただし、本発明において、USB規格上の論理ユニットが単一であるか複数であるかは任意であり、USB規格上、複数の論理ユニットが存在する構成を採用しても構わない。しかも、USB規格上、複数の論理ユニットが存在する構成を採用した場合は、それら複
数の論理ユニットそれぞれが本発明の構成を採用し得るものとなる。
すなわち、本発明は、USB規格上の単一論理ユニットに対して、SCSI規格上の論理ユニットを複数持たせる構成を採用しているが、このような構成を、USB規格上の複数論理ユニットそれぞれにおいて採用してもよいのである。このような構成を採用すれば、複合機が備える論理ユニットの数をさらに増やすことができるので、個別に制御可能な機能を論理ユニット数分だけ備える複合機において、さらなる多機能化を図ることもできる。
次に、請求項2に記載の複合機は、請求項1に記載の複合機において、前記データストレージ機能とは異なる機能は、プリンタ機能、スキャナ機能、およびFAX機能の中から選ばれる少なくとも1種の機能であることを特徴とする。
このように構成された複合機によれば、コンピュータが備えるOSには、複合機をUSBストレージクラスの単一デバイスであると認識させているにもかかわらず、複数種の機能それぞれに対応するLUNをコンピュータ側で指定することにより、コンピュータからは、データストレージ機能の他に、プリンタ機能、スキャナ機能、およびFAX機能の中から選ばれる少なくとも1種の機能をも制御できるようになる。
次に、請求項3に記載の複合機は、請求項1または請求項2に記載の複合機において、前記制御手段は、前記LUNが0である場合に、前記データストレージ機能を制御するためのデータであると判断することを特徴とする。
このように構成された複合機によれば、OSが標準的に備える機能をそのまま利用して、データストレージ機能を制御することができる。
より詳しくは、コンピュータが備えるOSの中には、複合機をUSB規格で規定されたUSBストレージクラスのデバイスであると認識した場合に、そのデバイスについて、SCSI規格で規定されたLUNは0で、データストレージ機能を有するデバイスであるとの前提で制御を行うものがある。
したがって、このようなOSを採用している場合に、複合機側において、LUNが0である場合にデータストレージ機能を制御するためのデータであると判断するように構成しておけば、OSが標準的に備える機能をそのまま利用して、データストレージ機能を制御することができる。
次に、請求項4に記載のデバイス制御システムは、コンピュータと、データストレージ機能、およびデータストレージ機能とは異なる機能の双方を少なくとも含む複数種の機能を備えた複合機とを、USBインターフェースを介して接続してなるデバイス制御システムであって、前記複合機は、前記コンピュータとの接続を確立する際に、USB規格で規定されたUSBストレージクラスのデバイスであると、前記コンピュータが備えるOSに認識させるための情報を出力するデバイス情報出力手段と、SCSI規格に準拠したデータ形式とされたコマンドを含む出力データが前記コンピュータから伝送されてきた場合に、前記コマンド内に設けられたLUNフィールドの格納値に基づいて、前記出力データが前記複数種の機能のいずれを制御するためのデータであるのかを判断して、前記複数種の機能のいずれかを制御するデバイス側制御手段とを備え、前記コンピュータは、前記コンピュータ上で機能するデータ処理部からの指令に従って、前記複数種の機能のいずれかを制御するために前記コンピュータからの出力データを前記複合機に伝送する場合に、制御対象となる機能に対応する値を前記LUNフィールドに格納し、前記コマンドを含む前記出力データを前記複合機へと伝送するコンピュータ側制御手段を備えることを特徴とする
このように構成されたデバイス制御システムによれば、コンピュータと複合機との接続を確立する際には、複合機のことを、USB規格で規定されたUSBストレージクラスのデバイスであると、コンピュータが備えるOSに認識させることができる。
そのため、コンピュータ側では、複合機のために単一のUSBストレージドライバが用意され、その結果、コンピュータ−複合機間では、USB規格の通信プロトコルに則ってデータ伝送ができる状態になる。
この状態になった場合、上記のようなコンピュータとUSBストレージクラスのデバイスは、内部的には、SCSI規格に準拠した方式でデータ伝送を行うことが、USB規格において規定されている。
ここで、SCSI規格に準拠したデバイスは、SCSI規格上、単一のデバイス内に複数の論理ユニットを持つことができる。また、コンピュータは、各論理ユニットの機能を制御するためのコマンドとして、SCSIコマンドを発行することができる。
コマンドの発行対象となる論理ユニットを指定する方法は、SCSI規格上、いくつかの方法が規定されているが、SCSI−1では、コマンド内に設けられたLUNフィールドを利用して、一つの論理ユニットを指定する方法が用意されている。
そこで、本発明においては、複合機が、上記の通り、USB規格上、SCSI規格準拠のデバイスとして機能し、さらに、SCSI規格上、複数の論理ユニットを持つデバイスとして機能するように構成した。そして、コンピュータから各論理ユニットへSCSIコマンドへ伝送する方法としては、SCSI−1に準拠した方法で各論理ユニットへコマンドが伝送されるように構成した。
具体的には、複合機の制御手段は、SCSIコマンドを含む出力データがコンピュータから伝送されてきた場合、SCSIコマンド中にあるLUNフィールドの格納値に基づいて、出力データが複数種の機能のいずれを制御するためのデータであるのかを判断する。そして、その判断結果に基づいて、複数種の機能のいずれかを制御する。
このような制御を行うことにより、複合機は、複数の論理ユニットを持つデバイスとして機能し、コンピュータからの出力データが各論理ユニットへと伝送されることにより、伝送対象となった論理ユニットに対応する機能が作動することになる。
したがって、複合機が備える複数種の機能の内、どの機能を利用するのかをコンピュータ側で指定する際には、SCSIコマンド内にあるLUNフィールドの格納値によって、所望の機能を指定できることになる。
なお、以上のような構成を採用しているので、上記複合機は、コンピュータに対しては、SCSI−1準拠のデバイスとして振る舞うことになる。あるいは、例えば、準拠するSCSIのバージョンが不明なデバイスとして振る舞うことも許容される。
ただし、SCSI規格上、SCSI−2以降準拠のデバイスは、コマンド内に設けられたLUNフィールドの格納値を無視する旨が規定されている。したがって、本発明の如く、複合機がLUNフィールドの格納値を無視しない場合、複合機は、SCSI規格上、少なくともSCSI−2以降準拠のデバイスには該当しなくなる。
以上説明したような方式でデータ伝送を行うに当たって、コンピュータが備えるOSは、複合機のことを単一のUSBストレージデバイスと認識してデータ伝送を行うだけであり、SCSI規格上の論理ユニットが単一なのか複数あるのかについては関知しない。
そのため、いずれの論理ユニットに対するデータ伝送を行う場合であっても、USB規格上は、同一の論理的な通信路を介してデータ伝送を実施することになり、複合機側では、入力用および出力用のエンドポイントを1つずつ用意すれば済む。
したがって、上記複合機によれば、USB規格上、1つの機能毎にそれぞれに対応する入力用および出力用のエンドポイントが1つずつ用意されるUSB複合デバイスとは異なり、個々の機能毎に入力用および出力用のエンドポイントを1つずつ用意しなくてもよくなるので、その分だけエンドポイント数を削減することができる。
また、複数の機能を利用するに当たって、あるUSBデバイスとの接続を断って、別のUSBデバイスとの接続を確立するといった状況を擬似的に作り出す必要はない。したがって、コンピュータ側で、デバイスドライバの切り替えに時間を要するといった問題はなく、複数の機能を同時に利用することもできる。
さらに、制御用のエンドポイントがデータ転送に利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
なお、本発明において利用するLUNは、SCSI規格で規定されたLUNであり、USB規格で規定されたLUNとは別のものである。すなわち、LUNは、USB規格でも規定されており、USBストレージデバイスの場合、USB規格上、単一のデバイスが複数のLUNを持つことができる。
しかし、本発明においては、SCSI規格で規定されたLUNを利用しているので、USB規格上は単一の論理ユニットとして認識される構成が、SCSI規格上は複数の論理ユニットとして認識されるものとなる。
ただし、本発明において、USB規格上の論理ユニットが単一であるか複数であるかは任意であり、USB規格上、複数の論理ユニットが存在する構成を採用しても構わない。しかも、USB規格上、複数の論理ユニットが存在する構成を採用した場合は、それら複数の論理ユニットそれぞれが本発明の構成を採用し得るものとなる。
すなわち、本発明は、USB規格上の単一論理ユニットに対して、SCSI規格上の論理ユニットを複数持たせる構成を採用しているが、このような構成を、USB規格上の複数論理ユニットそれぞれにおいて採用してもよいのである。このような構成を採用すれば、複合機が備える論理ユニットの数をさらに増やすことができるので、個別に制御可能な機能を論理ユニット数分だけ備える複合機において、さらなる多機能化を図ることもできる。
次に、請求項5に記載のデバイス制御システムは、請求項4に記載のデバイス制御システムにおいて、前記データストレージ機能とは異なる機能は、プリンタ機能、スキャナ機能、およびFAX機能の中から選ばれる少なくとも1種の機能であることを特徴とする。
このように構成されたデバイス制御システムによれば、コンピュータが備えるOSには、複合機をUSBストレージクラスの単一デバイスであると認識させているにもかかわらず、複数種の機能それぞれに対応するLUNをコンピュータ側で指定することにより、コ
ンピュータからは、データストレージ機能の他に、プリンタ機能、スキャナ機能、およびFAX機能の中から選ばれる少なくとも1種の機能をも制御できるようになる。
次に、請求項6に記載のデバイス制御システムは、請求項4または請求項5に記載のデバイス制御システムにおいて、前記コンピュータが備えるOSは、前記複合機をUSB規格で規定されたUSBストレージクラスのデバイスであると認識した場合に、そのデバイスについて、SCSI規格で規定されたLUNは0で、データストレージ機能を有するデバイスであると認識して、当該デバイスに対する制御を行うように構成されており、前記複合機が備える前記制御手段は、前記LUNが0である場合に、前記データストレージ機能を制御するためのデータであると判断することを特徴とする。
このように構成されたデバイス制御システムによれば、コンピュータのOSが、複合機をOSがUSBストレージクラスのデバイスであると認識して制御を行うだけで、複合機のデータストレージ機能を制御することができるので、OSが標準的に備える機能をそのまま利用して、複合機のデータストレージ機能を制御することができる。
次に、本発明の実施形態について、より具体的な例を挙げて説明する。
[デバイス制御システムの構成]
図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は、データ中に含まれる情報に基づいて、4系統あるデータ処理系のいずれかへデータを振り分ける。
より具体的には、本実施形態において、上記「4系統あるデータ処理系」は、カードリーダ機能、プリンタ機能、スキャナ機能、PC−FAX機能、以上4機能に対応するデータ処理系となっている。
また、SCSIコマンド解析タスク111へ伝送されてくるデータ中には、PC12において発行されたSCSIコマンドが含まれており、そのSCSIコマンド内には、LUNフィールドと呼ばれる領域が設けられている。
SCSIコマンド解析タスク111では、上記LUNフィールドの格納値(以下、SCSI−LUNと称する。)に基づいて、PC12からの出力データが、複数種の機能(カードリーダ機能、プリンタ機能、スキャナ機能、PC−FAX機能)のいずれを制御するためのデータであるのかを判断する。
具体的には、SCSI−LUN=0であれば、カードリーダ機能を制御するためのデータであると判断され、SCSI−LUN=1であれば、プリンタ機能を制御するためのデータであると判断される。また、SCSI−LUN=2であれば、スキャナ機能を制御するためのデータであると判断され、SCSI−LUN=3であれば、PC−FAX機能を制御するためのデータであると判断される。
このような判断を行った上で、SCSIコマンド解析タスク111は、上記4系統あるデータ処理系のいずれかへデータを振り分けるのである。また、その結果、4系統あるデータ処理系のいずれかからSCSIコマンド解析タスク111へデータが伝送されてきた場合、SCSIコマンド解析タスク111は、そのデータをカードリーダ系データ入出力回路105へ伝送する。
SCSIコマンド解析タスク111が、上記4系統あるデータ処理系の内、SCSI−LUN=0側(図2参照)へデータを振り分けた場合、そのデータはメモリスロット入出力制御タスク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が、上記4系統あるデータ処理系の内、SCSI−LUN=1側へデータを振り分けた場合、そのデータはプリンタ入出力タスク15
1へと伝送される。プリンタ入出力タスク151へ伝送されたデータは、さらに印字制御タスク161へと伝送されて、印字制御タスク161によってプリンタハードウェア171が制御される。
また、SCSIコマンド解析タスク111が、上記4系統あるデータ処理系の内、SCSI−LUN=2側へデータを振り分けた場合、そのデータはスキャナ入出力タスク153へと伝送される。スキャナ入出力タスク153へ伝送されたデータは、さらにスキャナ制御タスク163へと伝送されて、スキャナ制御タスク163によってスキャナハードウェア173が制御される。
また、SCSIコマンド解析タスク111が、上記4系統あるデータ処理系の内、SCSI−LUN=3側へデータを振り分けた場合、そのデータはPC−FAX入出力タスク155へと伝送される。PC−FAX入出力タスク155へ伝送されたデータは、さらにモデム制御タスク165へと伝送されて、モデム制御タスク165によってモデムハードウェア175が制御される。
[PCの内部構成]
図3は、PC12の内部構成を示すブロック図である。
PC12においては、OSによる標準機能として、USBプロトコルスタック201、USBストレージドライバ203、SCSIコマンド処理部211、リムーバブルディスクドライバ221、ファイルシステム231などが機能する。
また、PC12においては、複合機11に対応する専用ソフトウェアとして、プリントポートドライバ223、スキャナドライバ225(本発明でいうデバイスドライバの一例に相当)、プリンタドライバ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の起動に伴って機能し、その後は、図4に示すように、PC12にUSBデバイスが接続されたかどうかを定期的に監視する。
ここで、複合機11がPC12に接続された場合は、複合機11からの応答がPC12に返されるので、USBプロトコルスタック201は、複合機11に対してデバイスタイプについての応答を要求する。この要求に対し、複合機11はUSBストレージクラスである旨の応答を返すので、PC12では、USBストレージドライバ203がロードされ、その結果、USBストレージドライバ203が機能する状態に移行する。
USBストレージドライバ203が機能すると、USBストレージドライバ203は、複合機11に対して最大LUNを要求する。なお、ここでいう「LUN」は、USB規格上のLUNであり、先に説明したSCSI−LUNとは別のものである。そこで、以下の説明においては、USB規格上のLUNを「USB−LUN」と称することにより、先に説明した「SCSI−LUN」と区別できるようにする。
さて、上記のようなPC12からの要求に対し、複合機11は最大USB−LUN(本実施形態の場合はUSB−LUN=0)を返すので、PC12では、USB−LUN=0に対応する1つの論理ユニットが存在することを認識し、その1つの論理ユニットに対応するSCSIコマンド処理部211が作られる。このSCSIコマンド処理部211は、USBストレージドライバ203経由で複合機へSCSIコマンドを伝送するための入口である。
SCSIコマンド処理部211が作られると、SCSIコマンド処理部211は、USB−LUN=0の論理ユニットに対してSCSIコマンドの“Inquiry”を発行する。これに対し、複合機11からはリムーバブルHDである旨の応答が返されるので、PC12では、リムーバブルディスクドライバ221がロードされる。
これにより、USB−LUN=0の論理ユニットがファイルシステム231と結合し、その結果、USB−LUN=0の論理ユニットに対応するドライブレターが割り当てられる。以降、そのドライブレターを指定すれば、USB−LUN=0の論理ユニットに対するアクセスを行うことができる状態になる。
以上のような手順で各ドライバ類等がロードされると、PC12とUSB−LUN=0の論理ユニットとの間で論理的な通信路が構築され、この通信路を介してSCSI規格に準拠した方式でデータ伝送を実施できる状態になる。ただし、その際、PC12のOSは、USB−LUN=0の論理ユニットは認識するものの、SCSI規格上の論理ユニットがどのような構成になっているのかについては一切関知しない。
より具体的には、PC12がUSB−LUN=0の論理ユニットとの間でデータ伝送を行う際には、OS標準のリムーバブルディスクドライバ221が、無条件にSCSI−LUN=0を指定して、SCSIコマンドを発行するように構成されている。
このように構成されているのは、PC12のOSは、USB規格上、データ伝送を行う際にSCSIコマンドを利用する仕様にはなっているものの、SCSI規格で規定された複数論理ユニットを区別して認識する仕様にはなっていないからである。
また、USB規格は、基本的にはSCSI−2を意識して策定された仕様になっている。SCSI−2では、SCSIコマンド内のLUNフィールドの値(SCSI−LUN)はデバイス側で無視されることになっており、LUNフィールドには0をセットすることが推奨されている。そのため、USB規格準拠のリムーバブルディスクドライバ221も、SCSIコマンドを発行する際には、LUNフィールドに0をセットする仕様になっている。
そこで、このようなPC12のOS側の仕様に合わせて、複合機11においては、SCSI−LUN=0に対応する論理ユニットは、メモリスロット入出力制御タスク121の制御下にある構成であるとの前提で、PC12からの出力データを振り分ける。
このようにすれば、OS標準のリムーバブルディスクドライバ221から発行されたS
CSIコマンドは、メモリスロット入出力制御タスク121側へと伝送されることになる。したがって、複合機11は、PC12のOSに認識された通り、USBストレージデバイスとして機能することができる。
一方、上記の通り、PC12のOSは、SCSI規格で規定された複数論理ユニットを区別して認識することはできないものの、上述の通り、複合機11に対してSCSIコマンドを発行することができる通信路を用意する構成にはなっている。
そのため、リムーバブルディスクドライバ221とは別に、SCSI−LUN=0以外の論理ユニットに対してSCSIコマンドを発行するソフトウェアを用意すれば、OSが用意した通信路を介して、SCSIコマンドを複合機11へ伝送することは可能である。
すなわち、PC12のOSは、リムーバブルディスクドライバ221による制御を行うため、USB規格に準拠した論理的な通信路を構築するのであるが、SCSIコマンドを発行できるソフトウェアがあれば、OSが用意した通信路を流用して、複合機11へSCSIコマンドを伝送することができるのである。
このような通信路を介してデータを伝送する場合、SCSIコマンドを発行するソフトウェアと複合機11内の論理ユニットは、互いにSCSI規格に準拠した方式でデータ伝送を行うだけであり、両者間でUSB規格に準拠した通信プロトコルが利用されるか否かについては関知しない。
一方、PC12のOSは、USB規格に準拠した通信プロトコル利用して、SCSI規格に準拠した方式でデータ伝送を行うための論理的な通信路は用意するものの、その論理的な通信路を介してどのような内容のデータが伝送されるのかについては関知しない。そのため、OSが用意した通信路には、SCSI規格に準拠した方式のデータであれば、どのようなデータでも流すことができ、データストレージ系以外のデバイスに対応するデータであっても流すことができる。
そこで、このような通信路の特性を利用して、本実施形態においては、プリンタ機能、スキャナ機能、PC−FAX機能については、デバイスドライバまたはアプリケーションが、SCSI−LUN=0以外の論理ユニットに対してSCSIコマンドを発行する構成とした。
より具体的には、まず、PC12から発行されるSCSIコマンド(“Inquiry”)に対し、複合機11は、SCSI−1準拠のデバイスである旨の応答を返す。これにより、SCSI規格上、SCSIコマンド内にあるLUNフィールドを使用することが許容される。
そして、プリンタ機能については、スタティックドライバとしてロードされるプリントポートドライバ223を用意した。このプリントポートドライバ223が、SCSIコマンド内にあるLUNフィールドにおいてSCSI−LUN=1を指定してSCSIコマンドを発行する。これにより、SCSI−LUN=1の論理ユニットに対してSCSIコマンドを発行できる構成とした。
同様に、スキャナ機能については、同じくスタティックドライバとしてロードされるスキャナドライバ225を用意し、このスキャナドライバ225が、SCSI−LUN=2の論理ユニットに対してSCSIコマンドを発行するように構成した。
さらに、PC−FAX機能については、PC−FAXアプリケーション275が、SC
SI−LUN=3の論理ユニットに対してSCSIコマンドを発行するように構成した。
このような構成を採用することにより、各ソフトウェア(プリントポートドライバ223、スキャナドライバ225、PC−FAXアプリケーション275)は、USB規格を意識することなく、SCSI規格に準拠した方式で各論理ユニットの機能(プリンタ機能、スキャナ機能、PC−FAX機能)を制御できる。
また、USB規格上は、単一論理ユニットとの間でデータ伝送を行うための通信路を用意するだけでよいので、複合機11側には、入力データ用のエンドポイントEP1と、出力データ用のエンドポイントEP2を、それぞれ1つずつ設ければよい。この点は、同じくUSB規格に準拠したデバイスであっても、USB複合デバイスとは大きく異なる点である。
すなわち、USB複合デバイスの場合は、USB規格上、入力データ用のエンドポイントと出力データ用のエンドポイントを、各機能毎にそれぞれ1つずつ設けなければならない。そのため、入力データ用のエンドポイントと出力データ用のエンドポイントの総数は「機能数×2」となる。これに対し、上記複合機11のような構成であれば、入力データ用のエンドポイントと出力データ用のエンドポイントの総数は、機能数によらず「2」となるのである。
なお、PC12において、以上のような手順で各ドライバ類等が用意された後は、USB−LUN=0の論理ユニットに対応するドライブレターを利用すれば、SCSI−LUN=0の論理ユニットに対してSCSIコマンドを発行でき、これにより、第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経由で、プリントポートドライバ223へと伝送される。プリントポートドライバ223は、SCSI規格に準拠したプリンタデバイスへ印刷データを出力するためのコマンドを、SCSI−LUN=1の論理ユニットに対して発行し、これにより、印刷データがSCSIコマンド処理部211へと伝送され、USBストレージドライバ203、USBプロトコルスタック201経由で、複合機11へと伝送されることになる。
同様に、スキャン可能アプリケーション273から出力されるスキャナ制御データ等は、スキャナドライバ225、SCSIコマンド処理部211、USBストレージドライバ203、USBプロトコルスタック201経由で、複合機11へと伝送される。また、PC−FAXアプリケーション275から出力されるファクシミリ送信データや制御データ等は、SCSIコマンド処理部211、USBストレージドライバ203、USBプロトコルスタック201経由で、複合機11へと伝送される。
また、上記のような各種データを伝送した結果、PC12への入力データが複合機11側から伝送されてくる場合がある。例えば、スキャナ制御データを複合機11へ伝送した場合であれば、複合機11においてスキャン機能が作動し、その結果、スキャンデータが複合機11側から伝送されてくる。
このようなPC12への入力データは、例えばスキャンデータの場合、USBプロトコルスタック201、USBストレージドライバ203、SCSIコマンド処理部211、スキャナドライバ225経由で、スキャン可能アプリケーション273へと伝送されることになる。
また、プリンタ機能についてのステータスデータ(例えば、印刷エラーに関する情報等)であれば、USBプロトコルスタック201、USBストレージドライバ203、SCSIコマンド処理部211、プリントポートドライバ223、プリンタドライバ261経由で、印刷可能アプリケーション271へと伝送されることになる。
さらに、PC−FAX機能によるファクシミリ受信データであれば、USBプロトコルスタック201、USBストレージドライバ203、SCSIコマンド処理部211経由で、PC−FAXアプリケーションへと伝送されることになる。
[複合機用ソフトウェアのインストール処理]
次に、上記のような複合機11をPC12から利用可能とするため、PC12において実行される複合機用ソフトウェアのインストール処理について、図5および図6のフローチャートに基づいて説明する。
この処理を開始すると、PC12は、図5に示すように、まずインストーラを起動する(S105)。このS105の処理は、利用者が所定の操作を行うと実行されるようになっていてもよいし、CD−ROMなどのメディアをCD−ROMドライブなどにセットすると、それに連動して自動的に実行されるようになっていてもよい。
インストーラを起動すると、続いて、PC12は、該当複合機のカードリーダ用ドライブを検索する(S110)。このS110の処理は、詳しくは図6に示すような処理となる。
すなわち、PC12は、ドライブレター“A”〜“Z”を順に検索対象とするため、図6に示すように、まず、初期値としてドライブレター“A”を変数CDRVにセットする(S205)。そして、ドライブCDRV(すなわち、S205の処理直後はドライブ“A”)に、SCSIコマンドの“Inquiry”を発行する(S210)。このコマンドは、デバイスの種類等を照会するために利用されるコマンドである。
S210の処理において、コマンドに対する応答が正常に返された場合は(S210:正常)、応答中に含まれるベンダ名とプロダクト名から、ドライブCDRVが、対象としている複合機11に該当するドライブなのか否かを判断する(S215)。
S215の処理による判断の結果、該当ドライブであれば(S215:該当ドライブである)、対象としている複合機11に該当するドライブが見つかったことになる(CDRVが見つかったドライブである)ので、この場合は、図6に示す処理を終了する。
一方、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の処理による判断の結果、該当ドライブが見つかれば、図6に示す処理を終了することになる。
一方、S220の処理において、変数CDRVにセットされたドライブレターが“Z”であれば(S220:はい)、ドライブレター“A”〜“Z”をすべて処理したことになる。したがって、この場合は、対象としている複合機11に該当するドライブが見つからなかったことになり、その場合も、図6に示す処理を終了する。
以上のようにして図6に示す処理を終了すると、図5に示したS110の処理を終了したことになる。図5に示すように、S110の処理の結果、カードリーダ用ドライブが見つからなかった場合(S110:見つからなかった)、PC12は、「複合機11とUSB接続を行い暫く待った後にOKを押すこと」を利用者に対して指示するダイヤログを表示する(S115)。
このS115の処理により、PC12は利用者からの入力待ち状態になる。ここで、利用者は、PC12の表示部に表示されたダイヤログにおいて、「OK」または「キャンセル」を押す操作(=例えば、表示部に表示された「OK」ボタンまたは「キャンセル」ボタンを、ポインティングデバイスでクリックする操作)を行うことができる。
利用者が「キャンセル」を押した場合(S115:キャンセル)、インストール処理は中止される。一方、利用者が「OK」を押した場合(S115:OK)、PC12は、再びS110の処理を実行する。
また、S110の処理において、カードリーダ用ドライブが見つかった場合(S110:見つかった)、PC12は、見つかった「カードリーダ用ドライブ」のドライブレターを共通INIファイルに設定する(S120)。共通INIファイルは、複合機11専用の各種ソフトウェア(ドライバ類やアプリケーション)に関する各種設定が記録されたテキストファイルである。この共通INIファイルに記録された内容は、複合機11専用の各種ソフトウェアが機能した際に、それらのソフトウェアによって読み込まれることになるものである。S120の処理では、S110の処理において確定した「ドライブレター複合機機種名」が共通INIファイルに格納される。
その後、PC12は、プリンタドライバ、プリントポートドライバ、スキャナドライバ、PC−FAXアプリケーションをインストールして(S125)、複合機用ソフトウェアのインストール処理を終了する。
[PCの電源ONから電源OFFに至るまでに実行される処理の一例]
次に、PCの電源ONから電源OFFに至るまでに実行される処理の一例について、図7〜図9に基づいて説明する。なお、以下に説明する処理の一例は、複合機11の電源スイッチがONにされている状態で、PC12の電源スイッチがONにされた場合の例であ
る。
PC12の電源スイッチがONにされた場合、PC12は、図7に示すように、まず、OSをロードし(S305)、続いて、スタティックドライバをロードする(S310)。S310の処理は、詳しくは図8に示す処理となる。
すなわち、PC12では、図8に示すように、まず、OSがレジストリ設定を参照して、スタティックドライバを順次ロードする(S405)。そして、本発明の構成に関連する処理としては、プリンタドライバをロードし(S410)、プリントポートドライバをロードし(S415)、スキャナドライバをロードして(S420)、図8に示す処理を終了する。
図8に示す処理を終了すると、図7に示すS310の処理を終了したことになるので、PC12は、続いて、ダイナミックドライバをロードする(S315)。S315の処理は、詳しくは図9に示す処理となる。
すなわち、PC12では、図9に示すように、まず、OSがハードウェア接続状態を参照して、ダイナミックドライバを順次ロードする(S505)。そして、本発明の構成に関連する処理としては、USBプロトコルスタック201が複合機11を見つけた場合、複合機11にデバイスタイプを問い合わせる(S510)。
そして、この問い合わせに対し、複合機11からUSBストレージデバイスである旨の返答が有った場合、PC12は、USBストレージドライバ203をロードする(S515)。
このS515の処理により、USBストレージドライバ203が機能する状態となり、引き続いて、USBストレージドライバ203が複合機11にUSB−LUN数を問い合わせる(S520)。より具体的には、S520の処理において、USBストレージドライバ203は、最大USB−LUNを問い合わせる。
本実施形態の場合、複合機11は、USB規格上の論理ユニットを1つだけ備え、その論理ユニットに対しては、USB−LUN=0を割り当てているので、最大USB−LUNとしては“0”が返されることになる。
PC12は、最大USB−LUNとして“0”が返されたことをもって、複合機11からUSB−LUN数が1個であると返答が有ったものと認識し、その場合、SCSIコマンド処理の入り口を1個作る(S525)。このS525の処理により、SCSIコマンド処理部211が構成されることになる。
SCSIコマンド処理部211が機能する状態になると、SCSIコマンド処理部211は、USB−LUN=0の論理ユニットに対して“Inquiry”を発行する(S530)。
これに対し、本実施形態の場合、USB−LUN=0の論理ユニットからは“リムーバブルHD”と返答が有る。この場合、PC12は、OS標準のSCSI接続用リムーバブルディスクドライバ221をロードし、ファイルシステム231と結合、その結果、USB−LUN=0の論理ユニットにドライブレターが割り当てられ、ドライブレターが出現することになる(S535)。
ちなみに、リムーバブルディスクドライバ221については、PC12とUSBストレ
ージデバイスとをUSB接続するため、PC12のOSが標準でSCSI接続用のドライバを備えている。したがって、リムーバブルディスクドライバ221については、メーカーが複合機11対応のSCSI接続用ドライバを利用者に提供しなくてもよい。
こうして図9に示したダイナミックドライバのロード処理を終えると、図7に示したS315の処理を終えたことになるので、続いて、PC12は、サービスプロセスをロードして(S320)、ログイン待ちになる(S325)。
S325の処理は、利用者がログイン操作を行うまで継続される(S325:ログインまだ)。そして、利用者がログイン操作を行った場合(S325:ログインした)、PC12は、自動起動プログラムを起動する(S330)。S330の処理では、OSがスタートメニューのスタートアップを参照して、自動起動プログラムを順次起動する。
そして、自動起動プログラムの起動処理を終えたら、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の処理とは逆の手順で、各ソフトウェアのアンロードが行われることになる。
[SCSIコマンド解析タスクにおいて実行される処理]
次に、複合機11が備えるSCSIコマンド解析タスク111において実行される処理について、図10に基づいて説明する。
この処理を開始すると、複合機11は、まず、PC12からSCSIコマンドが来たか否かを判断する(S605)。ここで、PC12からSCSIコマンドが来なければ(S605:来ない)、S605の処理へ戻る。
一方、PC12からSCSIコマンドが来たら(S605:来た)、そのSCSIコマンド内にあるLUNフィールドの格納値(SCSI−LUN)が“0”〜“3”のいずれであるのかを判断する(S610)。
S610の処理による判断の結果、SCSI−LUNが“0”の場合(S610:SCSI−LUN=0)、複合機11は、SCSIコマンドをメモリスロット入出力制御タスク121へ伝送して、メモリスロット入出力制御タスク121側での処理終了待ちとなる(S615)。
このS615の処理においては、PC12から伝送されてきたSCSIコマンドは、SCSIコマンド解析タスク111からメモリスロット入出力制御タスク121へと伝送される。また、S615の処理において、SCSIコマンドをメモリスロット入出力制御タ
スク121へ伝送した後は、メモリスロット入出力制御タスク121側での処理が終了するのを待つ。
メモリスロット入出力制御タスク121側での処理が終了した場合、メモリスロット入出力制御タスク121側から応答が返るので、S615の処理では、メモリスロット入出力制御タスク121からの応答を、SCSIコマンドに対する応答としてPC12側へ返し、S615の処理を終了する。なお、S615の処理を終了したら、S605の処理へと戻る。
以上のようなS615の処理について、より具体的な例を交えて説明すると、例えば、PC12側からは、メディア(本実施形態の場合、メモリカード)へのデータ書込を要求するSCSIコマンドが伝送されてくる場合がある。この場合、S615の処理では、SCSIコマンド解析タスク111が受け取ったSCSIコマンドをメモリスロット入出力制御タスク121へと伝送する。
このとき、メモリスロット入出力制御タスク121では、書き込み対象となるデータをメディアに書き込む処理などが実行される。そして、その書き込み結果に関する情報が、応答としてメモリスロット入出力制御タスク121からSCSIコマンド解析タスク111へ返される。
SCSIコマンド解析タスク111は、上記S615の処理の中で、メモリスロット入出力制御タスク121の処理終了を待つ。そして、メモリスロット入出力制御タスク121から応答を受け取ったら、その応答をSCSIコマンドに対する応答としてPC12側へ返して、S615の処理を終了する。
また、例えば、PC12側からは、メディアからのデータ読込を要求するSCSIコマンドが伝送されてくる場合がある。この場合も、S615の処理では、SCSIコマンド解析タスク111が受け取ったSCSIコマンドをメモリスロット入出力制御タスク121へと伝送する。
このとき、メモリスロット入出力制御タスク121では、読み出し対象となるデータをメディアから読み出す処理などが実行される。そして、その読み出し結果に関する情報や読み出されたデータが、応答としてメモリスロット入出力制御タスク121からSCSIコマンド解析タスク111へ返される。
SCSIコマンド解析タスク111は、上記S615の処理の中で、メモリスロット入出力制御タスク121の処理終了を待つ。そして、メモリスロット入出力制御タスク121から応答を受け取ったら、その応答をSCSIコマンドに対する応答としてPC12側へ返して、S615の処理を終了する。
この他にも、様々なSCSIコマンドがあるが、いずれのSCSIコマンドが伝送されてきた場合でも、S615の処理では、SCSIコマンドがSCSIコマンド解析タスク111からコマンドをメモリスロット入出力制御タスク121へと伝送される。そして、メモリスロット入出力制御タスク121からSCSIコマンド解析タスク111へと返される応答が、PC12側へと伝送されるのである。
なお、上述の通り、PC12からメモリスロット入出力制御タスク121へ伝送されるSCSIコマンドには様々なものがあるので、メモリスロット入出力制御タスク121側で実行される処理の内容は、SCSIコマンドに応じた様々な処理内容となる。ただし、メモリスロット入出力制御タスク121側で実行される処理の内容そのものは、データス
トレージ機能を有する周知のデバイスにおいて実行される処理と同等なので、これ以上の詳細な説明については省略する。
さて、S610の処理による判断の結果、SCSI−LUNが“1”の場合(S610:SCSI−LUN=1)、複合機11は、SCSIコマンドをプリンタ入出力タスク151へ伝送して、プリンタ入出力タスク151側での処理終了待ちとなる(S620)。
このS620の処理においては、PC12から伝送されてきたSCSIコマンドは、SCSIコマンド解析タスク111からプリンタ入出力タスク151へと伝送される。また、S620の処理において、SCSIコマンドをプリンタ入出力タスク151へ伝送した後は、プリンタ入出力タスク151側での処理が終了するのを待つ。
プリンタ入出力タスク151側での処理が終了した場合、プリンタ入出力タスク151側から応答が返るので、S620の処理では、プリンタ入出力タスク151からの応答を、SCSIコマンドに対する応答としてPC12側へ返し、S620の処理を終了する。なお、S620の処理を終了したら、S605の処理へと戻る。
以上のようなS620の処理について、より具体的な例を交えて説明すると、例えば、PC12側からは、印刷データの印刷出力を要求するSCSIコマンドが伝送されてくる場合がある。この場合、S620の処理では、SCSIコマンド解析タスク111が受け取ったSCSIコマンドをプリンタ入出力タスク151へと伝送する。
このとき、プリンタ入出力タスク151では、印字制御タスク161へのデータ伝送等が行われ、印字制御タスク161がプリンタハードウェア171の動作を制御して、記録媒体への印刷出力などが実行される。そして、プリンタ入出力タスク151において、次の印刷データを受け取ることができる状態になれば、その旨の応答がプリンタ入出力タスク151からSCSIコマンド解析タスク111へ返される。
SCSIコマンド解析タスク111は、上記S620の処理の中で、プリンタ入出力タスク151の処理終了を待つ。そして、プリンタ入出力タスク151から応答を受け取ったら、その応答をSCSIコマンドに対する応答としてPC12側へ返して、S620の処理を終了する。
なお、PC12からプリンタ入出力タスク151へ伝送されるSCSIコマンドについても、例えば、プリンタのステータスを取得するためのコマンド等、様々なものがある。したがって、プリンタ入出力タスク151および印字制御タスク161のそれぞれにおいて実行される処理の内容は、SCSIコマンドに応じた様々な処理内容となる。ただし、プリンタ入出力タスク151および印字制御タスク161のそれぞれにおいて実行される処理の内容そのものは、プリンタ機能を有する周知のデバイスにおいて実行される処理と同等なので、これ以上の詳細な説明については省略する。
さて、S610の処理による判断の結果、SCSI−LUNが“2”の場合(S610:SCSI−LUN=2)、複合機11は、SCSIコマンドをスキャナ入出力タスク153へ伝送して、スキャナ入出力タスク153側での処理終了待ちとなる(S625)。
このS625の処理においては、PC12から伝送されてきたSCSIコマンドは、SCSIコマンド解析タスク111からスキャナ入出力タスク153へと伝送される。また、S625の処理において、SCSIコマンドをスキャナ入出力タスク153へ伝送した後は、スキャナ入出力タスク153側での処理が終了するのを待つ。
スキャナ入出力タスク153側での処理が終了した場合、スキャナ入出力タスク153側から応答が返るので、S625の処理では、スキャナ入出力タスク153からの応答を、SCSIコマンドに対する応答としてPC12側へ返し、S625の処理を終了する。なお、S625の処理を終了したら、S605の処理へと戻る。
以上のようなS625の処理について、より具体的な例を交えて説明すると、例えば、PC12側からは、スキャナ入力を要求するSCSIコマンドが伝送されてくる場合がある。この場合、S625の処理では、SCSIコマンド解析タスク111が受け取ったSCSIコマンドをスキャナ入出力タスク153へと伝送する。
このとき、スキャナ入出力タスク153では、スキャナ制御タスク163へのデータ伝送等が行われ、スキャナ制御タスク163がスキャナハードウェア173の動作を制御して、原稿からの画像入力などが実行される。そして、画像データ等がスキャナ入出力タスク153からSCSIコマンド解析タスク111へ返される。
SCSIコマンド解析タスク111は、上記S625の処理の中で、スキャナ入出力タスク153の処理終了を待つ。そして、スキャナ入出力タスク153から応答を受け取ったら、その応答をSCSIコマンドに対する応答としてPC12側へ返して、S625の処理を終了する。
なお、PC12からスキャナ入出力タスク153へ伝送されるSCSIコマンドについても、例えば、スキャナのステータスを取得するためのコマンド等、様々なものがある。したがって、スキャナ入出力タスク153およびスキャナ制御タスク163のそれぞれにおいて実行される処理の内容は、SCSIコマンドに応じた様々な処理内容となる。ただし、スキャナ入出力タスク153およびスキャナ制御タスク163のそれぞれにおいて実行される処理の内容そのものは、スキャナ機能を有する周知のデバイスにおいて実行される処理と同等なので、これ以上の詳細な説明については省略する。
さらに、S610の処理による判断の結果、SCSI−LUNが“3”の場合(S610:SCSI−LUN=3)、複合機11は、SCSIコマンドをPC−FAX入出力タスク155へ伝送して、PC−FAX入出力タスク155側での処理終了待ちとなる(S630)。
このS630の処理においては、PC12から伝送されてきたSCSIコマンドは、SCSIコマンド解析タスク111からPC−FAX入出力タスク155へと伝送される。また、S630の処理において、SCSIコマンドをPC−FAX入出力タスク155へ伝送した後は、PC−FAX入出力タスク155側での処理が終了するのを待つ。
PC−FAX入出力タスク155側での処理が終了した場合、PC−FAX入出力タスク155側から応答が返るので、S630の処理では、PC−FAX入出力タスク155からの応答を、SCSIコマンドに対する応答としてPC12側へ返し、S630の処理を終了する。なお、S630の処理を終了したら、S605の処理へと戻る。
以上のようなS630の処理について、より具体的な例を交えて説明すると、例えば、PC12側からは、FAX送信を要求するSCSIコマンドが伝送されてくる場合がある。この場合、S630の処理では、SCSIコマンド解析タスク111が受け取ったSCSIコマンドをPC−FAX入出力タスク155へと伝送する。
このとき、PC−FAX入出力タスク155では、モデム制御タスク165へのデータ伝送等が行われ、モデム制御タスク165がモデムハードウェア175の動作を制御して
、FAX送信などが実行される。そして、PC−FAX入出力タスク155において、次のFAX送信データを受け取ることができる状態になれば、その旨の応答がPC−FAX入出力タスク155からSCSIコマンド解析タスク111へ返される。
SCSIコマンド解析タスク111は、上記S630の処理の中で、PC−FAX入出力タスク155の処理終了を待つ。そして、PC−FAX入出力タスク155から応答を受け取ったら、その応答をSCSIコマンドに対する応答としてPC12側へ返して、S630の処理を終了する。
また、例えば、PC12側からは、FAX受信を要求するSCSIコマンドが伝送されてくる場合もある。この場合、S630の処理では、SCSIコマンド解析タスク111が受け取ったSCSIコマンドをPC−FAX入出力タスク155へと伝送する。
このとき、PC−FAX入出力タスク155では、FAX受信データを受信していれば、FAX受信データ等がPC−FAX入出力タスク155からSCSIコマンド解析タスク111へ返される。また、FAX受信データを受信していなければ、その旨の情報等がPC−FAX入出力タスク155からSCSIコマンド解析タスク111へ返される。
SCSIコマンド解析タスク111は、上記S630の処理の中で、PC−FAX入出力タスク155の処理終了を待つ。そして、PC−FAX入出力タスク155から応答を受け取ったら、その応答をSCSIコマンドに対する応答としてPC12側へ返して、S630の処理を終了する。
なお、PC12からPC−FAX入出力タスク155へ伝送されるSCSIコマンドについても、例えば、モデムのステータスを取得するためのコマンド等、様々なものがある。したがって、PC−FAX入出力タスク155およびモデム制御タスク165のそれぞれにおいて実行される処理の内容は、SCSIコマンドに応じた様々な処理内容となる。ただし、PC−FAX入出力タスク155およびモデム制御タスク165のそれぞれにおいて実行される処理の内容そのものは、PC−FAX機能を有する周知のデバイスにおいて実行される処理と同等なので、これ以上の詳細な説明については省略する。
[PC側におけるSCSIコマンド発行を伴う処理の一例]
次に、PC12が実行する様々な処理の内、複合機11に対するSCSIコマンドの発行を伴う処理について、具体的な一例を挙げて説明する。図11は、プリントポートドライバ223において実行される処理のフローチャートである。この処理は、プリントポートドライバ223の起動に伴って実行されるものである。
この処理を開始すると、PC12は、プリンタドライバ261から印字JOB開始要求が有るか否かを判断する(S705)。ここで、印字JOB開始要求が無い場合は(S705:無し)、S705の処理へと戻ることにより、プリンタドライバ261から印字JOB開始要求が有るまで待機する。
一方、S705の処理において、印字JOB開始要求が有った場合は(S705:有り)、共通INIファイルから複合機カードリーダ機能のドライブレターを取得する(S710)。S710の処理で取得されたドライブレターは、事前に(一例としては、先に説明したS120の処理により)共通INIファイルに格納されたものである。
続いて、PC12は、共通INIファイルから読み込んだドライブレターについて、そのドライブレターが割り当てられたドライブが、複合機11のカードリーダ機能に対応するものかどうかを確認する(S715)。
このS715の処理を実行するのは、共通INIファイルの作成後にドライブレターの割り当てが変更された場合、共通INIファイルに登録されたドライブレターと実際のドライブレターとの間に不整合が生じている可能性があるからである。
S715の処理において、共通INIファイルに登録されたドライブレターに対応するドライブが、複合機11のカードリーダ機能に対応するドライブではなかった場合、または確認時にエラーが発生した場合(S715:違う、または、エラー)、S720の処理へ進む。S720の処理では、PC12は、ダイヤログメッセージとして「複合機をUSB接続し暫く待ってリトライを押して下さい。複合機が接続されている場合は、一旦キャンセルしてリスキャンプログラムを実行してみて下さい」という主旨のメッセージを表示する(S720)。
このS720の処理により、PC12は利用者からの入力待ち状態になる。ここで、利用者は、PC12の表示部に表示されたダイヤログにおいて、「リトライ」、または「キャンセル」いずれかのダイヤログボタンを押す操作を行うことができる。
利用者が「キャンセル」を押した場合(S725:キャンセル)、プリントポートドライバ223としては、このまま印刷関連の処理を継続することはできない。そのため、プリンタドライバ261は、印字JOB開始失敗を通知して(S725)、S705の処理へと戻る。
一方、利用者は、S720の処理で「リトライ」を押すこともできる(S720)。また、必要が有れば、「リトライ」を押すのに先だってリスキャンプログラムを実行することもできる。
リスキャンプログラムの詳細については後述するが、リスキャンプログラムを実行すれば、共通INIファイルに登録されたドライブレターと実際のドライブレターとの間の不整合を解消することができる。
したがって、単にPC12と複合機11をUSB接続していなかっただけ(=例えば、複合機11の電源スイッチをオンにしていなかった、あるいは、USBケーブルが抜けていた等)であれば、USB接続後に「リトライ」を押せばよい。また、USB接続後に「リトライ」を押しても、複合機11のカードリーダ機能に対応するドライブを確認できない場合は、リスキャンプログラムを実行した上で、「リトライ」を押してみるとよい。
以上のような処理が行われる中、S715の処理において、複合機11のカードリーダ機能に対応するドライブであることが確認できた場合(S715:そうだ)、PC12は、プリンタドライバ261に印字JOB開始成功を通知する(S730)。この通知をプリンタドライバ261が受けると、プリンタドライバ261は印字データの出力を開始し、その印字データがプリントポートドライバ223へと伝送されてくる。
そこで、プリントポートドライバ223側では、プリンタドライバ261からの印字JOBデータをSCSIコマンド(SCSI−LUN=1)にて複合機11へと伝送する(S735)。
すなわち、プリントポートドライバ223は、複合機11のプリンタ機能を有する論理ユニットに対してSCSIコマンドを発行するため、プリンタ機能に割り当てられたSCSI−LUN(本実施形態の場合は、SCSI−LUN=1)を指定し、SCSIコマンドを発行する。
このようにしてプリントポートドライバ223から発行されたSCSIコマンドは、SCSIコマンド処理部211から、USBストレージドライバ203、USBプロトコルスタック201を経て、複合機11側へと伝送される。
そして、複合機11では、上述のSCSIコマンド解析タスク111へと伝送される。SCSIコマンド解析タスク111は、SCSIコマンド内のSCSI−LUNに基づいて、SCSI−LUN=1に対応するデータ処理系へデータを伝送し、その結果、複合機11のプリンタ機能が作動することになる。
こうして上記S735の処理を実行したら、続いて、印字JOBデータ終了か否かを判断する(S740)。ここで、印字JOBデータ終了でない場合は(S740:いいえ)、S735の処理へと戻る。これにより、印字JOBデータが残っている限り、SCSIコマンドの発行が繰り返されることになる。
そして、S735の処理でSCSIコマンドを発行した結果、S740の処理で、印字JOBデータ終了であると判断される状態に至ったら(S740:はい)、S705の処理へと戻る。
以上説明したように、プリントポートドライバ223は、プリンタ機能に割り当てられたSCSI−LUN=1を指定してSCSIコマンドを発行することにより、複合機11のプリンタ機能を制御する。しかも、このSCSIコマンドをPC12から複合機11へと伝送するための論理的な通信路については、PC12のOSが複合機11のカードリーダ機能を利用するために用意したものを共用する。
なお、以上の説明では、プリントポートドライバ223が、SCSI−LUN=1を指定してSCSIコマンドを発行する処理について例示したが、他の機能を制御する場合についても、上記同様にSCSI−LUNを指定してSCSIコマンドを発行すればよい。
例えば、スキャナドライバ225の場合は、スキャナ機能に割り当てられたSCSI−LUN=2を指定してSCSIコマンドを発行する。また、PC−FAXアプリケーション275の場合は、PC−FAX機能に割り当てられたSCSI−LUN=3を指定してSCSIコマンドを発行する。
そして、複合機11では、SCSIコマンド解析タスク111が、SCSIコマンド内のSCSI−LUNに基づいて、SCSI−LUNに対応するデータ処理系へデータを伝送するので、SCSIコマンドを発行する側が意図した通りの機能を制御できる。
具体的には、スキャナドライバ225の場合であれば、SCSI−LUN=2を指定してSCSIコマンドを発行するので、複合機11のスキャナ機能を制御できる。また、PC−FAXアプリケーション275の場合であれば、SCSI−LUN=3を指定してSCSIコマンドを発行するので、複合機11のPC−FAX機能を制御できるのである。
しかも、このような方式でSCSIコマンドを発行すれば、SCSIコマンドをPC12から複合機11へと伝送するための論理的な通信路については、PC12のOSが複合機11のカードリーダ機能を利用するために用意したものを共用することができる。つまり、カードリーダ機能、プリンタ機能、スキャナ機能、PC−FAX機能のすべてで、単一のSCSIコマンド伝送用通信路を共用できるのである。
[リスキャンプログラム]
次に、上記S720の処理に関連して言及したリスキャンプログラムについて、図12に基づいて説明する。このリスキャンプログラムは、既に説明した通り、複合機11のカードリーダ機能に対応するドライブについて、共通INIファイルに登録されたドライブレターと実際のドライブレターとの間の不整合を解消するために用意されたユーティリティプログラムである。
PC12においてリスキャンプログラムを実行すると、PC12は、まず、該当複合機のカードリーダ用ドライブを検索する(S810)。このS810の処理は、詳しくは先に説明した図6に示した処理と同等な処理となるので、ここでの説明は省略する。
このS810の処理の結果、カードリーダ用ドライブが見つからなかった場合(S810:見つからなかった)、PC12は、「複合機11とUSB接続を行い暫く待った後にOKを押すこと」を利用者に対して指示するダイヤログを表示する(S815)。
このS815の処理により、PC12は利用者からの入力待ち状態になる。ここで、利用者は、PC12の表示部に表示されたダイヤログにおいて、「OK」または「キャンセル」を押す操作を行うことができる。
利用者が「キャンセル」を押した場合(S815:キャンセル)、リスキャンは中止される。一方、利用者が「OK」を押した場合(S815:OK)、PC12は、再びS110の処理を実行する。
こうした処理が行われる中、S810の処理においてカードリーダ用ドライブが見つかった場合(S810:見つかった)、PC12は、見つかった「カードリーダ用ドライブ」のドライブレターを共通INIファイルに設定し(S820)、リスキャンを終了する。
このS820の処理により、新たに見つかったドライブレターが共通INIファイルに登録され、その結果、共通INIファイルに登録されたドライブレターと実際のドライブレターとの間の不整合が解消されることになる。
[上記実施形態の効果]
以上説明した通り、上記複合機11によれば、PC12が備えるOSには、複合機11を単一のUSB−LUNを持つUSBストレージクラスのデバイスであると認識させている。しかし、PC12−複合機11間で、内部的に用意されるSCSI規格準拠のデータ伝送を行うに当たって、複合機11は、SCSI−LUNを複数備えるデバイスとして機能する。
したがって、複数のSCSI−LUNそれぞれに対応する論理ユニットに異なる機能(プリンタ機能、スキャン機能、PC−FAX機能、およびデータストレージ機能)を割り当てることにより、PC12側でSCSI−LUNを指定して、異なる機能を有する論理ユニットを制御できるようになる。
しかも、このような方式でデータ伝送を行うに当たって、PC12は、複合機11を単一のUSB−LUNを持つUSBストレージクラスのデバイスであると認識するだけなので、複合機11側では、単一のUSB−LUNに対応する入力用および出力用のエンドポイントを1つだけ用意すればよい。
したがって、上記複合機11によれば、1つの機能毎にそれぞれに対応する入力用および出力用のエンドポイントが1つずつ用意されるUSB複合デバイスとは異なり、個々の
機能毎に入力用および出力用のエンドポイントを1つずつ用意しなくてもよくなるので、その分だけエンドポイント数を削減することができる。
また、複数の機能を利用するに当たって、あるUSBデバイスとの接続を断って、別のUSBデバイスとの接続を確立するといった状況を擬似的に作り出す必要はない。したがって、PC12のOSが、デバイスドライバの切り替えに時間を要するといった問題はなく、複数の機能を同時に利用することもできる。
さらに、コントロール転送用のエンドポイント(EP0)が、その他のデータ転送にも利用される構成にはなっていないので、大量にデータが転送されるような状況下でも、データ転送に邪魔されることなく、必要な制御を迅速に実施できるものとなる。
[変形例等]
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
例えば、上記実施形態では、SCSI−LUN=0に対応する機能として、カードリーダ機能を例示したが、他のデータストレージデバイス相当の機能としてもよい。具体的には、他のリムーバブルディスク、CD−ROM、ハードディスク、光磁気ディスクなどに相当する機能を設けてもよい。
また、上記実施形態では、PC12の発行するSCSIコマンド内にあるLUNフィールドを使用できるようにするため、複合機11は、SCSI−1準拠のデバイスである旨の応答をPC12に返す構成としてあったが、他の構成も考え得る。具体的には、準拠するSCSIのバージョンが不明なデバイスである旨の応答をPC12に返す構成としてもよい。この場合でも、SCSI規格上、SCSI−2以降では無視されることが規定されたLUNフィールドについて、SCSI規格から外れることなく利用可能となる。
本発明の一例として例示するデバイス制御システム全体のブロック図。 複合機の内部構成を示すブロック図。 PCの内部構成を示すブロック図 PCと複合機が接続を確立するときのやり取りを示す説明図。 PCにおいて実行される複合機用ソフトウェアのインストール処理のフローチャート。 PCにおいて実行される「複合機のカードリーダ用ドライブを検索する処理」のフローチャート。 PCにおいて実行される「PCの電源ONから電源OFFに至るまでに実行される処理」のフローチャート。 PCにおいて実行される「スタティックドライバをロードする処理」のフローチャート。 PCにおいて実行される「ダイナミックドライバをロードする処理」のフローチャート。 複合機のSCSIコマンド解析タスクにおいて実行される処理のフローチャート。 PCのプリントポートドライバにおいて実行される処理のフローチャート。 PCにおいて実行されるリスキャンプログラムのフローチャート。
符号の説明
11・・・複合機、12・・・PC、13・・・USB−HUB、14・・・他のUSBデバイス、101・・・USBプロトコルエンジン、103・・・制御回路、105・・・カードリーダ系データ入出力回路、111・・・SCSIコマンド解析タスク、121・・・メモリスロット入出力制御タスク、131・・・第1メモリスロット、132・・・第2メモリスロット、133・・・第3メモリスロット、134・・・第4メモリスロット、151・・・プリンタ入出力タスク、153・・・スキャナ入出力タスク、155・・・PC−FAX入出力タスク、161・・・印字制御タスク、163・・・スキャナ制御タスク、165・・・モデム制御タスク、171・・・プリンタハードウェア、173・・・スキャナハードウェア、175・・・モデムハードウェア、201・・・USBプロトコルスタック、203・・・USBストレージドライバ、211・・・SCSIコマンド処理部、221・・・リムーバブルディスクドライバ、223・・・プリントポートドライバ、225・・・スキャナドライバ、231・・・ファイルシステム、261・・・プリンタドライバ、271・・・印刷可能アプリケーション、273・・・スキャン可能アプリケーション、275・・・PC−FAXアプリケーション、277・・・エクスプローラ、281・・・他のUSBデバイスのドライバ。

Claims (6)

  1. データストレージ機能、およびデータストレージ機能とは異なる機能の双方を少なくとも含む複数種の機能を備え、コンピュータとはUSB(Universal Serial Bus)インターフェースを介して接続可能な複合機であって、
    前記コンピュータとの接続を確立する際に、USB規格で規定されたUSBストレージクラスのデバイスであると、前記コンピュータが備えるOS(Operating System)に認識させるための情報を出力するデバイス情報出力手段と、
    SCSI規格に準拠したデータ形式とされたコマンドを含む出力データが前記コンピュータから伝送されてきた場合に、前記コマンド内に設けられたLUN(Logical Unit Number)フィールドの格納値に基づいて、前記出力データが前記複数種の機能のいずれを制
    御するためのデータであるのかを判断して、前記複数種の機能のいずれかを制御する制御手段と
    を備えることを特徴とする複合機。
  2. 前記データストレージ機能とは異なる機能は、プリンタ機能、スキャナ機能、およびFAX機能の中から選ばれる少なくとも1種の機能である
    ことを特徴とする請求項1に記載の複合機。
  3. 前記制御手段は、前記LUNが0である場合に、前記データストレージ機能を制御するためのデータであると判断する
    ことを特徴とする請求項1または請求項2に記載の複合機。
  4. コンピュータと、データストレージ機能、およびデータストレージ機能とは異なる機能の双方を少なくとも含む複数種の機能を備えた複合機とを、USBインターフェースを介して接続してなるデバイス制御システムであって、
    前記複合機は、
    前記コンピュータとの接続を確立する際に、USB規格で規定されたUSBストレージクラスのデバイスであると、前記コンピュータが備えるOSに認識させるための情報を出力するデバイス情報出力手段と、
    SCSI規格に準拠したデータ形式とされたコマンドを含む出力データが前記コンピュータから伝送されてきた場合に、前記コマンド内に設けられたLUNフィールドの格納値に基づいて、前記出力データが前記複数種の機能のいずれを制御するためのデータであるのかを判断して、前記複数種の機能のいずれかを制御するデバイス側制御手段と
    を備え、
    前記コンピュータは、
    前記コンピュータ上で機能するデータ処理部からの指令に従って、前記複数種の機能のいずれかを制御するために前記コンピュータからの出力データを前記複合機に伝送する場合に、制御対象となる機能に対応する値を前記LUNフィールドに格納し、前記コマンドを含む前記出力データを前記複合機へと伝送するコンピュータ側制御手段
    を備えることを特徴とするデバイス制御システム。
  5. 前記データストレージ機能とは異なる機能は、プリンタ機能、スキャナ機能、およびFAX機能の中から選ばれる少なくとも1種の機能である
    ことを特徴とする請求項4に記載のデバイス制御システム。
  6. 前記コンピュータが備えるOSは、前記複合機をUSB規格で規定されたUSBストレージクラスのデバイスであると認識した場合に、そのデバイスについて、SCSI規格で規定されたLUNは0で、データストレージ機能を有するデバイスであると認識して、当該デバイスに対する制御を行うように構成されており、
    前記複合機が備える前記制御手段は、前記LUNが0である場合に、前記データストレージ機能を制御するためのデータであると判断する
    ことを特徴とする請求項4または請求項5に記載のデバイス制御システム。
JP2007084771A 2007-03-28 2007-03-28 複合機、およびデバイス制御システム Pending JP2008245046A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007084771A JP2008245046A (ja) 2007-03-28 2007-03-28 複合機、およびデバイス制御システム
US12/055,066 US7979600B2 (en) 2007-03-28 2008-03-25 Multifunction peripheral and device control system
CN2008100874679A CN101277362B (zh) 2007-03-28 2008-03-28 多功能外围设备和设备控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007084771A JP2008245046A (ja) 2007-03-28 2007-03-28 複合機、およびデバイス制御システム

Publications (1)

Publication Number Publication Date
JP2008245046A true JP2008245046A (ja) 2008-10-09

Family

ID=39796250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007084771A Pending JP2008245046A (ja) 2007-03-28 2007-03-28 複合機、およびデバイス制御システム

Country Status (3)

Country Link
US (1) US7979600B2 (ja)
JP (1) JP2008245046A (ja)
CN (1) CN101277362B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015046091A (ja) * 2013-08-29 2015-03-12 セイコーエプソン株式会社 受信装置、送信装置
US9179014B2 (en) 2009-06-24 2015-11-03 Canon Kabushiki Kaisha Information processing apparatus, and method for controlling the same

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5513018B2 (ja) * 2008-06-27 2014-06-04 キヤノン電子株式会社 周辺装置及び画像読取装置
US20100180064A1 (en) * 2009-01-14 2010-07-15 Huawei Device Co., Ltd. Method and device for implementing USB endpoint multiplexing
US8028104B2 (en) * 2009-01-29 2011-09-27 Xerox Corporation Method and system for polling multifunction devices based on performance criteria
JP2011134186A (ja) * 2009-12-25 2011-07-07 Seiko Epson Corp Usbデバイス装置
US9256447B2 (en) * 2011-10-25 2016-02-09 Citrix Systems, Inc. Integrated application launching in heterogeneous cloud computing environment
US10029053B2 (en) * 2012-05-03 2018-07-24 Stamford Devices Ltd. Nebulizer
US10116749B2 (en) * 2015-08-31 2018-10-30 The Boeing Company Method for providing flight management system data to peripheral devices
CN105718388B (zh) * 2016-01-20 2018-09-25 飞天诚信科技股份有限公司 一种基于usb设备的异步调用方法和装置
JP6696265B2 (ja) * 2016-03-29 2020-05-20 日本電気株式会社 リモート端末装置とその制御方法とコンピュータシステム並びにプログラム
WO2018231249A1 (en) * 2017-06-16 2018-12-20 Hewlett-Packard Development Company, L.P. Communication port recovery
CN108449004A (zh) * 2018-03-15 2018-08-24 大族激光科技产业集团股份有限公司 一种处理伺服电机运动不反馈的方法
US11863343B2 (en) * 2019-02-14 2024-01-02 Savant Systems, Inc. Multi-role devices for automation environments
CN110166558B (zh) * 2019-05-24 2020-03-06 苏州浪潮智能科技有限公司 一种多控存储集群的通信方法、装置及设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 周辺機器制御システム
JP3513147B2 (ja) 2002-05-29 2004-03-31 株式会社ハギワラシスコム Usbストレージデバイス及びその制御装置
JP3914949B2 (ja) 2002-05-29 2007-05-16 株式会社ハギワラシスコム Usbストレージデバイス、その制御装置及びその制御装置に実行させるためのプログラム
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
TWI261757B (en) * 2003-04-30 2006-09-11 Hagiwara Sys Com Co Ltd USB storage device
US7526580B2 (en) * 2003-06-27 2009-04-28 Brother Kogyo Kabushiki Kaisha Peripheral device
JP3906838B2 (ja) 2003-12-11 2007-04-18 村田機械株式会社 Usb対応型デジタル複合機
EP1782616A4 (en) * 2004-07-08 2008-10-08 Canon Kk IMAGE PROCESSING APPARATUS AND METHOD OF CONTROLLING THE SAME
JP2006178704A (ja) 2004-12-22 2006-07-06 Seiko Epson Corp 複数の機能を有する装置、及び当該装置と接続可能な上位装置
JP2006293777A (ja) 2005-04-12 2006-10-26 Canon Inc インストールシステム、インストール方法、インストールプログラム、記憶媒体及び情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9179014B2 (en) 2009-06-24 2015-11-03 Canon Kabushiki Kaisha Information processing apparatus, and method for controlling the same
JP2015046091A (ja) * 2013-08-29 2015-03-12 セイコーエプソン株式会社 受信装置、送信装置

Also Published As

Publication number Publication date
US7979600B2 (en) 2011-07-12
CN101277362B (zh) 2012-06-20
US20080244107A1 (en) 2008-10-02
CN101277362A (zh) 2008-10-01

Similar Documents

Publication Publication Date Title
JP2008245046A (ja) 複合機、およびデバイス制御システム
JP4333764B2 (ja) デバイス制御システム
JP4333765B2 (ja) デバイス制御システム
US8914558B2 (en) Peripheral device usable without installing driver in computer beforehand
JP4555926B2 (ja) スキャナ自動接続プログラム
US8640148B2 (en) Information processing apparatus, information processing method and storage medium
US9323480B2 (en) Image forming system, print data management device, and method of controlling print data management device
JP2006319974A (ja) 負荷分散レンダリング方法およびレンダリングシステム
JP2001256170A (ja) 周辺装置及びプリンタ
JP2011238136A (ja) 情報処理装置、連携機能設定制御方法、及びプログラム
US20150088986A1 (en) Information processing apparatus, and control method and storage medium therefor
US9268511B2 (en) Information distribution processing program, computer, information distribution processing method, and information distribution processing system
JP5596376B2 (ja) 周辺装置
EP2426592B1 (en) Image forming apparatus and method of forming image thereof
JP3922253B2 (ja) Usb対応型複写複合機、及びusb対応型複写複合機制御システム
JP2011009880A (ja) 画像読取装置及びその制御方法とそのプログラム
CN101489008B (zh) 设备设定系统和设备设定方法
JP2012080519A (ja) 画像処理装置
JP2008011427A (ja) 画像データ伝送システム、複合デバイス、およびプログラム
US11977794B2 (en) Information processing device, print system, print control method, and non-transitory computer-readable storage medium storing print control program
JP7552094B2 (ja) 制御装置、画像処理システムおよびプログラム
JP2010191584A (ja) 情報処理装置、制御方法、及びプログラム
JP2023048280A (ja) シャットダウン指示を受信する画像制御装置、その制御方法
JP2013196575A (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
JP2010118003A (ja) 画像読取装置及びその制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090526