(57)【特許請求の範囲】
【請求項１】
複数のデバイス機能を有する複合デバイスと、該複合デバイスに接続され、該複合デバイスを制御するホストコンピュータとからなる複合デバイスシステムにおいて、
前記ホストコンピュータは、前記複合デバイスのデバイス機能をそれぞれ駆動制御する複数の駆動部を有し、一の駆動部は、他の駆動部に対し、駆動制御対象のデバイス機能の状態の問い合わせを行い、該他の駆動部から作動中又は否の通知を受け、前記他の駆動部が駆動制御する他のデバイス機能の状態を認識し、自己のデバイス機能の駆動制御を実行しない又は実行することを特徴とする複合デバイスシステム。
【請求項２】
上記ホストコンピュータの一の駆動部は、受信したコマンドを他の駆動部に通知することを特徴とする請求項１記載の複合デバイスシステム。
【請求項３】
上記複合デバイスは、受信したコマンドを上記ホストコンピュータの一の駆動部に送信することを特徴とする請求項２記載の複合デバイスシステム。
【請求項４】
上記ホストコンピュータの一の駆動部による上記他のデバイス機能の状態の認識は、所定時間毎に行われ、上記他の駆動部による他のデバイス機能の駆動制御は、所定間隔にて停止され、上記一の駆動部は、他の駆動部による他のデバイス機能の駆動制御が停止状態であることを認識して、上記複合デバイスと通信を行うことを特徴とする請求項１記載の複合デバイスシステム。
【請求項５】
上記ホストコンピュータの他の駆動部による他のデバイス機能の駆動制御を停止する停止期間は、上記一の駆動部によって他のデバイス機能の状態を認識する上記所定間隔よりも長いことを特徴とする請求項４記載の複合デバイスシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は複数の機能を有する複合デバイスに対して制御を行う複合デバイスシステムに関する。
【０００２】
【従来技術】
プリンタ、スキャナ、ＦＡＸ、デジタルカメラ等の複数の各種周辺機器が相互に接続されている複合デバイスでは、同一のデバイスに対して、複数のジョブ処理が同時に求められることがある。このような場合、各デバイスのアクセスの競合が発生し、複合デバイスの動作が不安定になってしまう。そこで、各デバイスによるアクセスの競合を防止するために、これらの複数のアクセスを調停する必要がある。
【０００３】
特開２０００−２３１４５８号公報では、複合デバイス内に制御デバイスを設け、該制御デバイスが、複合デバイス内に設けた他のデバイスの動作を制御することにより、アクセスの調停を行っている。また、ＵＳＢ（ＵｎｉｖｅｒｓａｌＳｅｒｉａｌ  Ｂｕｓ）  Ｃｏｍｐｏｓｉｔｅ技術を用いれば、複数の論理チャネルを設定することが可能となる。そのため、各論理チャネルに対して、複合デバイスの各デバイスを接続することにより、アクセスの競合なしに各デバイスを制御することができる。
【０００４】
しかしながら、上記公報やＵＳＢ  Ｃｏｍｐｏｓｉｔｅ技術では、複合デバイス内に制御デバイスやＵＳＢハブを設けて各デバイスの動作を制御しているため、複合デバイスでの複雑な制御を要するという問題がある。複合デバイスの制御は、ＡＳＩＣやＲＯＭ等のリソースによって行われるため、複合デバイスの制御の複雑化に伴って、リソースの大量消費を招く。その結果、複合デバイスのコストアップを引き起こすことになる。
【０００５】
【発明が解決しようとする課題】
本発明は、上記問題を鑑みてなされたものであり、複合デバイスのコストアップを招くことなく、各デバイスからのアクセスの競合を回避し得る複合デバイスシステムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、本発明は、複数のデバイス機能を有する複合デバイスと、該複合デバイスに接続され、該複合デバイスを制御するホストとからなる複合デバイスシステムにおいて、前記ホストは、前記複合デバイスのデバイス機能をそれぞれ駆動制御する複数の駆動部を有し、一の駆動部は、他の駆動部に対し、駆動制御対象のデバイス機能の状態の問い合わせを行い、該他の駆動部から作動中又は否の通知を受け、前記他の駆動部が駆動制御する他のデバイス機能の状態を認識し、自己のデバイス機能の駆動制御を実行しない又は実行するようにした。
【０００７】
さらに、本発明は、上記複合デバイスシステムにおいて、上記ホストの一の駆動部は、受信したコマンドを他の駆動部に通知するものであることを特徴とする。
【０００８】
また、本発明は、上記複合デバイスシステムにおいて、上記複合デバイスは、受信したコマンドを上記ホストの一の駆動部に送信するようにした。
【０００９】
本発明は、上記複合デバイスシステムにおいて、上記ホストの一の駆動部による上記他のデバイス機能の状態の認識は、所定時間毎に行われ、上記他の駆動部による他のデバイス機能の駆動制御は、所定間隔にて停止され、上記一の駆動部は、他の駆動部による他のデバイス機能の駆動制御が停止状態であることを認識して、上記複合デバイスと通信を行うことを特徴とする。そして、本発明は、上記複合デバイスシステムにおいて、上記ホストの他の駆動部による他のデバイス機能の駆動制御を停止する停止期間は、上記一の駆動部によって他のデバイス機能の状態を認識する上記所定間隔よりも長いことを特徴とする。また、本発明は、ホストコンピュータにネットワークを介して接続でき、当該ホストコンピュータからの処理要求に応えることが可能であり、印刷機能、スキャナ機能等のそれぞれ異なる機能の複数のデバイス機能を有する複合機において、前記複数のデバイス機能のうち、あるデバイス機能の処理が行われているときに当該デバイス機能とは異なるデバイス機能の処理要求があった場合、後者のデバイス機能は、前者のデバイス機能の処理が停止するのを待って処理が行われることを特徴とする複合機である。
【００１０】
【発明の実施の形態】
本発明にかかる複合デバイスシステムの実施の一形態について、図１から図４に基づいて説明する。この実施の形態では、デバイスとしてプリンタ機能とスキャナ機能を有する複合機を例にして説明する。
【００１１】
本実施の形態における複合デバイスシステム１は、図１に示すように、ホストであるホストＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１０と、複数のデバイス機能を備えた複合デバイスである複合機２０とを有し、ホストＰＣ１０と複合機２０とは互いに、通信ＩＦ（Ｉｎｔｅｒｆａｃｅ）１３及び通信ＩＦ２３を介して接続されている。
【００１２】
ホストＰＣ１０は、駆動部であるプリンタドライバ１１と、スキャナドライバ１２と、通信ＩＦ１３を備え、これらは相互に接続されている。プリンタドライバ１１は、複合機２０のプリンタ２１を駆動制御する。スキャナドライバ１２は、複合機２０のスキャナ２２を駆動制御する。通信ＩＦ１３は、プリンタドライバ１１及びスキャナドライバ１２からのコマンドを複合機２０側に送信し、また、複合機２０側から送信されたコマンドを受信する。
【００１３】
複合機２０は、デバイスであるプリンタ２１及びスキャナ２２、通信ＩＦ２３、操作部２４、制御部２５を備えている。プリンタ２１は、印刷ジョブのコマンドに基づいて、印刷ジョブを行う。スキャナ２２は、スキャナジョブのコマンド（以下、ジョブ処理のコマンドと記載する）に基づいて、スキャン動作を行う。通信ＩＦ２３は、制御部２５のコマンドをホストＰＣ１０側に送信し、また、ホストＰＣ１０側から送信されたコマンドを受信する。操作部２４は、制御部２５を介して、プリンタ２１及びスキャナ２２に対して操作指示を与える。制御部２５は、プリンタ２１、スキャナ２２、通信ＩＦ２３、操作部２４の動作を制御する。
【００１４】
なお、上記コマンドは、ジョブ処理に応じて、プリンタ用データ、スキャナ用データ、制御部用データ等、ジョブ処理の実行に必要な情報を備えている。このコマンドの情報に基づいて、複合デバイスシステム１は、所定の処理を実行する。
【００１５】
上記の構成の複合デバイスシステム１にて、ホストＰＣ１０に対して、ジョブ処理の要求がなされた場合、次のようにジョブ処理が行われる。
【００１６】
ホストＰＣ１０にジョブ処理のコマンドが入力された場合には、まず、プリンタドライバ１１又はスキャナドライバ１２にてコマンドを認識する。次いで、プリンタドライバ１１又はスキャナドライバ１２にて、複合機２０のプリンタ２１又はスキャナ２２が作動中であるか否かが認識される。
【００１７】
そして、ジョブ処理を実行するプリンタ２１又はスキャナ２２が作動していない場合には、プリンタドライバ１１又はスキャナドライバ１２からジョブ処理を指示するコマンドが、通信ＩＦ１３及び通信ＩＦ２３を介して、複合機２０に送信される。複合機２０では、受信した信号に基づいて、制御部２５がプリンタ２１又はスキャナ２２を制御し、所望するジョブ処理が実行される。
【００１８】
これに対し、ジョブ処理を実行するプリンタ２１又はスキャナ２２が作動している場合には、アクセスの競合が発生するため、排他処理が実行される。すなわち、プリンタ２１又はスキャナ２２の作動中には、ホストＰＣ１０から複合機２０に対して、ジョブ処理を指示するコマンドが送信されない。
【００１９】
この送信されなかったコマンドは、破棄されるか、又は、待機処理が施される。コマンドが破棄された場合には、ジョブ処理は実行されない。一方、待機処理が施された場合には、作動中のプリンタ２１又はスキャナ２２の動作が終了した後や、作動中のプリンタ２１又はスキャナ２２の動作を一時中断した後に、ジョブ処理が実行される。
【００２０】
上記ジョブ処理が、印刷ジョブ処理である場合について、図２及び図３に基づいて、具体的に説明する。
【００２１】
まず、図２に示すように、ホストＰＣ１０のプリンタドライバ１１に対して、印刷ジョブ処理のコマンドが入力される（経路ａ）場合について説明する。
【００２２】
プリンタドライバ１１に印刷ジョブ処理のコマンドが入力される（経路ａ）と、プリンタドライバ１１は、入力されたコマンドを認識する。次いで、スキャナドライバ１２に対して、スキャナドライバ１２が動作中であるか否かを確認する（経路ｂ）。スキャナドライバ１２は、自分自身が動作中ではないことを確認し、プリンタドライバ１１に通知する（経路ｃ）。そして、プリンタドライバ１１から、複合機２０の制御部２５に、印刷ジョブ処理のコマンドを送信する（経路ｄ）。その結果、複合機２０のプリンタ２１にて、印刷ジョブ処理が実行される。
【００２３】
また、図３に示すように、スキャナドライバ１２が動作中である場合（経路f）に、ホストＰＣ１０のプリンタドライバ１１に対して、印刷ジョブ処理のコマンドが入力される（経路ａ）と、プリンタドライバ１１は、入力されたコマンドを認識する。次いで、スキャナドライバ１２が動作中であるか否かをスキャナドライバ１２に対して確認する（経路ｂ）。スキャナドライバ１２は、自分自身が動作中であることを確認し（経路ｆ）、プリンタドライバ１１に通知する（経路ｇ）。スキャナドライバ１２が動作中であるため、ホストＰＣ１０から複合機２０への印刷ジョブ処理のコマンドの送信が行われない。
【００２４】
その結果、この送信されなかったコマンドが破棄された場合には、印刷ジョブ処理が実行されず、待機処理が施された場合には、所定時間が経過した後に印刷ジョブ処理が実行される。すなわち、ホストＰＣ１０は、ジョブ処理コマンドが入力され、既に他のジョブ処理が実行されているときには、当該コマンドを破棄するか、コマンドの実行を待機する処理を行う機能を有している。
【００２５】
さらに、ホストＰＣ１０から複合機２０へのコマンドの送信は、プリンタドライバ１１、スキャナドライバ１２のどちらで行ってもよい。
【００２６】
以上のジョブ処理について、図４に示すフローチャートに基づいて説明する。なお、図４に示すフローチャートは、アクセスの競合が発生する場合に行われるものであり、アクセスの競合が生じない場合には行われない。
【００２７】
プリンタドライバ１１及びスキャナドライバ１２を始動する。プリンタドライバ１１に印刷ジョブ処理のコマンドが入力されると、プリンタドライバ１１は、スキャナドライバ１２に対して、スキャナ２２の状態を問い合わせる（ステップＳ１１）。そして、この問い合わせを受けたスキャナドライバ１２は、スキャナ２２が作動中であるか否かをプリンタドライバ１１に通知する（ステップＳ２１）。
【００２８】
プリンタドライバ１１は、スキャナドライバ１２から受けた通知によってスキャナが動作中か否かを判断する（ステップＳ１２）。スキャナ２２が作動中であると通知された場合には、プリンタドライバ１１は、印刷ジョブ処理のコマンドをプリンタ２１に通知せずに待機するか否かを決定する（ステップＳ１５）。ステップＳ１５にて、プリンタドライバ１１が待機中となった場合には、所定時間経過後、再びステップＳ１１に進む。これに対し、ステップＳ１５にて、プリンタドライバ１１を待機させないことが決定された場合には、印刷ジョブ処理のコマンドを破棄して終了する。
【００２９】
一方、ステップＳ１２にて、プリンタドライバ１１が、スキャナドライバ１２からスキャナ２２が作動中でないと通知された場合には、プリンタの制御が開始され、印刷ジョブ処理のコマンドが、プリンタドライバ１１から複合機２０に送信され、プリンタ２１及びスキャナ２２にて、印刷ジョブ処理が実行される（ステップＳ１３）。
【００３０】
また、スキャナドライバ１２にスキャンジョブ処理のコマンドが入力されると、スキャナドライバ１２は、プリンタドライバ１１に対して、プリンタ２１の状態を問い合わせる（ステップＳ２２）。そして、プリンタドライバ１１は、プリンタ２１が作動中であるか否かをスキャナドライバ１２に通知する（ステップＳ１４）。
【００３１】
プリンタドライバ１１からプリンタ２３の動作状況の通知を受けたスキャナドライバ１２は、プリンタ２３が動作中か否かを判断する（ステップＳ２３）。
【００３２】
ステップＳ２３にて、プリンタドライバ１１が作動中であると通知された場合には、スキャナドライバ１２は、ジョブ処理のコマンドをスキャナ２２に通知せずに、待機するか否かを決定する（ステップＳ２５）。ステップＳ２５にて、スキャナドライバ１２が待機中となった場合には、所定時間経過後、再びステップＳ２２に進む。これに対し、ステップＳ２５にて、スキャナドライバ１２を待機させないことが決定された場合には、ジョブ処理のコマンドを破棄して終了する。
【００３３】
一方、ステップＳ２３にて、スキャナドライバ１２が、プリンタドライバ１１からプリンタ２１が作動中でないと通知された場合には、ジョブ処理のコマンドが、スキャナドライバ１２から複合機２０に送信され、スキャナの制御を開始し、スキャナ２２ではスキャンジョブ処理が実行される（ステップＳ２４）。
【００３４】
一方、上記の構成の複合デバイスシステム１にて、複合機２０に対して、ジョブ処理の要求がなされた場合、次のようにジョブ処理が行われる。
【００３５】
図１に示すように、複合機２０の操作部２４にジョブ処理のコマンドが入力された場合には、操作部２４から制御部２５に対してコマンドが出力される。
【００３６】
制御部２５は、複合機２０のプリンタ２１又はスキャナ２２が作動中であるか否かを認識し、作動中であれば次のような処理が実行され、作動中でなければホストとの通信を待って、次のような処理が実行される。
【００３７】
まず、複合機２０から通信ＩＦ２３及び通信ＩＦ１３を介して、ホストＰＣ１０へ、ジョブ処理のコマンドが送信される。次いで、ホストＰＣ１０では、上述したように、プリンタドライバ１１又はスキャナドライバ１２にて受信したコマンドを認識し、一旦、このコマンドを記憶する。そして、プリンタドライバ１１又はスキャナドライバ１２にて、複合機２０のプリンタ２１又はスキャナ２２の状態を認識する。この認識結果に基づいて、作動中のプリンタ２１又はスキャナ２２の動作が終了した後や、作動中のプリンタ２１又はスキャナ２２の動作が一時中断した後に、記憶したコマンドに基づいたジョブ処理を実行する。
【００３８】
上記のジョブ処理について、図５に基づいて、具体的に説明する。複合機２０のプリンタ２１が動作中（経路ｉ，ｊ）に、複合機２０の制御部２５に対して、スキャンジョブ処理のコマンドが入力される（経路ｈ）。制御部２５は、プリンタ２１が作動している（経路ｉ）ことを認識しているため、スキャナ２２に対してスキャンジョブ処理のコマンドを通知せず、一旦、制御部２５からプリンタドライバ１１にコマンドを送信する（経路ｋ）。プリンタ２１は、作動中（経路ｉ）であるために、制御部２５がホストＰＣ１０のプリンタドライバ１１に接続されている（経路ｊ）ので、受信したコマンドをプリンタドライバ１１に送出することができる（経路ｋ）。
【００３９】
次いで、プリンタドライバ１１は、受信したコマンドを認識し、コマンドに付随するスキャナ用データをスキャナドライバ１２に通知する（経路ｍ）。スキャナドライバ１２は、作動中のプリンタ２１の動作が終了した後や、作動中のプリンタ２１の動作が一時中断した後に、複合機２０の制御部２５へコマンドを送信する（経路ｎ）。送信されたコマンドは、制御部２５からスキャナ２２へ送信される（経路ｏ）。これにより、スキャナジョブ処理が実行され、ホストＰＣ１０は、スキャナ２２によってスキャンされたデータを制御部２５を介して取得する（経路ｎ，ｏ）。
【００４０】
なお、複合機２０に入力されたコマンドは、プリンタドライバ１１又はスキャナドライバ１２のいずれに送信されてもよい。つまり、プリンタドライバ１１又はスキャナドライバ１２のうち、複合機２０に接続されている側に送信すればよく、コマンドを受信したドライバは、コマンドに付随する情報を認識して、他のドライバへの通知を行えばよい。
【００４１】
以上のジョブ処理について、図６に示すフローチャートに基づいて説明する。図６のフローチャートでは、複合機２０のプリンタ２１が作動中に、複合機２０に対して、スキャナ２２に対するスキャンジョブ処理のコマンドが入力された場合について、説明する。
【００４２】
複合機２０の制御部２５は、プリンタ２１の作動中に、複合機２０の操作部２４からスキャナ２２に対するスキャンジョブ処理のコマンドが入力されるかどうかを監視し（ステップＳ５１）、スキャナ２２に対するスキャンジョブ処理のコマンドが入力されないときには、プリンタ２１の動作を継続する（ステップＳ５２）。そして、プリンタ２１の動作が修了したか否かを判断し（ステップＳ５４）、プリンタ２１の動作が終了していないと判断されると、再びステップＳ５１に戻る。ステップＳ５４にて、プリンタ２１の動作が終了したと判断されると、プリンタ２１の動作を終了する。
【００４３】
これに対し、ステップＳ５１にて、スキャナ２２の制御が要求されると、制御部２５は、スキャンジョブ処理のコマンドをプリンタドライバ１１に送信した（ステップＳ５３）後、ステップＳ５４に進みプリンタ動作の終了を監視する。
【００４４】
ステップＳ５３でスキャンジョブ処理のコマンドを受けたプリンタドライバ１１は、スキャナ２２に対するスキャンジョブ処理のコマンドを受信したか否かを判断する（ステップＳ６１）。ステップＳ６１にて、プリンタドライバ１１がスキャンジョブ処理のコマンドを受信したと判断すると、該コマンドを記憶し（ステップＳ６２）、プリンタの動作が終了したかを監視する（ステップＳ６４）。一方、ステップＳ６１にて、スキャンジョブ処理のコマンドを受信しなかった場合には、プリンタ２１の動作を継続して行い（ステップＳ６３）、プリンタの動作が終了したかを監視する（ステップＳ６４）。
【００４５】
ステップＳ６４にて、プリンタ２１の動作が終了したか否かを判断し、終了していない場合には、再びステップＳ６１に戻る。プリンタ２１の動作が終了している場合には、ステップＳ６２にて記憶されたスキャンジョブ処理のコマンドがある場合には、コマンドをスキャナ２２に通知して（ステップＳ６５）、プリント処理を終了する。
【００４６】
ステップＳ６５におけるスキャンジョブ処理のコマンドを複合機２０のプリンタドライバ２１から取得した（ステップＳ７１）ホストＰＣ１０のスキャナドライバ１２は、スキャナ２２の動作を開始し（ステップＳ７２）、ジョブ処理のコマンドに基づいて、スキャナ２２が作動し、スキャン動作が行われる（ステップＳ７３）。このとき、複合機２０においてもステップＳ７２及びステップＳ７３と同様に、ステップＳ５５及びステップＳ５６にて、スキャナ２２が作動する。
【００４７】
次に、複合機２０の作動中に、ホストＰＣ１０と複合機２０との間（以下、ホストＰＣ−複合機間、と記載する）のアクセスが要求された場合について、図７に基づいて説明する。図７のフローチャートでは、複合機２０のプリンタ２１の作動中に、ホストＰＣ−複合機間のアクセス要求がなされた場合について説明する。
【００４８】
まず、プリンタドライバ１１及びスキャナドライバ１２を始動する。プリンタドライバ１１によるプリンタ２１の制御が開始される（ステップＳ３１）。プリンタ２１の制御中においても、プリンタ２１やスキャナ２２の作動が要求されているか否かを検知している（ステップＳ３２）。
【００４９】
プリンタドライバ１１によるプリンタ２１の制御は、プリンタ２１によって行われているジョブ処理が、全て終了していなくても、所定の区切りに到達した時点で、その制御を一旦停止する（ステップＳ３３）。次いで、所定時間、プリンタ２１の制御を停止し、プリンタドライバ１１は待機状態となる（ステップＳ３４）。
【００５０】
その一方で、スキャナドライバ１２は、プリンタ２１の状態をプリンタドライバ１１に問い合わせている（ステップＳ４１）。問い合わせを受けたプリンタドライバ１１は、プリンタドライバ１１が待機状態であるか否かのプリンタ２１の状況を、スキャナドライバ１２に通知する（ステップＳ３５）。プリンタドライバ１１は、ジョブ処理を継続するために、再びステップＳ３１〜ステップＳ３５を繰り返す。
【００５１】
スキャナドライバ１２は、ステップＳ３５にて、プリンタドライバ１１から通知された結果に基づいて、プリンタドライバ１１による制御が停止したか否かを監視し（ステップＳ４２）、プリンタ２１が作動していると判断されれば、ステップＳ４１に戻る。これに対し、ステップＳ４２にて、プリンタドライバ１１が待機状態であって、プリンタ２１が停止状態であると判断されれば、ホストＰＣ−複合機間のアクセス要求に基づいて、プリンタ２１又はスキャナ２２へのアクセスが実行される（ステップＳ４３）。
【００５２】
なお、上記では、複合機２０にプリンタ２１及びスキャナ２２が備えられている場合について説明したが、これに限定されるものではなく、ＦＡＸ、デジタルカメラ等、種々の機能を有するデバイスが備えられていてもよい。また、複合機２０に備えられているデバイスが２つ以上であってもよい。
【００５３】
さらに、複合デバイスシステム１にて行われるジョブ処理は、上記に限定されるものではなく、本発明の特許請求の範囲内にて、変更して実施することができる。
【００５４】
以上のように、複数のデバイスを有する複合デバイスに接続され、該複合デバイスを制御するホストを備えた複合デバイスシステムにおいて、上記ホストは、複合デバイスの各デバイス毎に設けられるとともに、各デバイスを制御する複数の駆動部を有し、上記駆動部は、他の駆動部が制御する他のデバイスの状態を、該他の駆動部を介して認識するようにした本発明は、複数の駆動部のうちの任意の駆動部が、他の駆動部を介して、該他の駆動部によって制御される複合デバイス内のデバイスの状態を認識している。つまり、ホスト内の各駆動部間の通信により、複合デバイスの各デバイスの状態が認識されるので、ホスト側の駆動部と複合デバイス側のデバイスとを物理的又は論理的に接続する通信経路を、各デバイスごとに設ける必要がない。すなわち、ホスト側と複合デバイス側とを接続する通信経路が一つあれば、ホストは、複合デバイスの各デバイスの状態を認識することができる。その結果、ホストは、ホスト側と複合デバイス側とを接続する単一の通信経路にて、複合デバイスを制御することが可能になる。
【００５５】
また、複合デバイス内の一つのデバイスに対して、複数のジョブ処理要求がなされた場合にも、ホスト側にて複合デバイスの各デバイスの状態を認識して、複合デバイスを制御することができる。これにより、複合デバイスに、アクセスの競合が発生した場合にも、複合デバイス側にて各デバイスの制御を行う必要がない。それゆえ、複合デバイスの各デバイスの制御に用いられるＡＳＩＣやＲＯＭ等のリソースが不要となり、複合デバイスのコストを低減することができる。
【００５６】
さらに、ホスト内の複数の駆動部がアクセスするための共通モジュールを、複合デバイスに設ける必要がない。そのため、複合デバイスは、ホストのＯＳのカーネルドライバ（駆動部）に対して、直接コールすることが可能になる。その結果、複合デバイスシステムの製造工程数を削減することができ、また、安定した複合デバイスシステムを構築することが可能になる。
【００５７】
さらに、上記複合デバイスシステムにおいて、上記駆動部は、入力されたコマンドを他の駆動部に通知するとともに、該コマンドによって動作を要求されたデバイスの状態を認識するものであることを特徴とする本発明は、入力されたコマンドの要求を、適切な駆動部に伝えることができる。つまり、コマンドの要求を実行することができない駆動部に対して、コマンドが入力された場合にも、該駆動部から、コマンドの要求を実行することが可能な適切な駆動部にコマンドを伝えることができる。これにより、コマンドの要求を確実に実行することができる。
【００５８】
また、コマンドが複合デバイスに入力された場合にも、複合デバイスから、ホスト側の任意の駆動部にコマンドが伝えられた後、さらに、任意の駆動部から他の駆動部へコマンドを伝えることができる。そのため、ホスト側と複合デバイス側とを接続する単一の通信経路にて、入力されたコマンドの要求を適切な駆動部に、確実に伝えることができる。
【００５９】
また、上記複合デバイスシステムにおいて、上記駆動部による他のデバイスの状態の認識は、所定時間毎に行われ、上記他の駆動部による他のデバイスの制御は、所定間隔にて、他のデバイスの制御を停止しながら行われ、上記駆動部は、他の駆動部によるデバイスの制御が停止状態であることを認識して、複合デバイスと通信を行うようにした本発明は、他の駆動部は、デバイス制御を所定間隔にて停止し、他のデバイスの動作を停止している。そのため、他の駆動部による他のデバイスの制御中に、駆動部と複合デバイスとの間の通信が要求された場合にも、他のデバイスの制御が一時的に停止した時に、駆動部と複合デバイスとの間の通信を行うことができる。これにより、複合デバイスの作動中に、要求された駆動部と複合デバイスとの間の通信を確実に実行することができる。
【００６０】
また、複合デバイスの動作が一時的に停止しているので、駆動部は、所望するデバイスに直接、通信を行うことができる。そのため、ホスト内の駆動部間にて通信を行う必要がなく、複合デバイスシステムの複雑な制御を不要とすることができる。
【００６１】
上記複合デバイスシステムにおいて、上記他の駆動部による他のデバイスの制御が停止する停止期間は、上記駆動部によって所定時間毎に他のデバイスの状態が認識される認識間隔よりも長くなっていることを特徴とする本発明は、駆動部は、他の駆動部による制御が一時的に停止している期間中に、必ず、他の駆動部によるデバイスの制御が停止状態であることを認識することができる。これにより、複合デバイスの作動中に、駆動部と複合デバイスとの間の通信が要求された場合にも、確実に、駆動部と複合デバイスとの間の通信を行うことができる。
【００６２】
【発明の効果】
以上のように、本発明によれば、複合デバイスのコストアップを招くことなく、各デバイスからのアクセスの競合を回避し得る複合デバイスシステムを提供することができる。
【図面の簡単な説明】
【図１】  本発明にかかる複合デバイスシステムの構成の概要を説明するブロック図。
【図２】  プリンタドライバにスキャンジョブ処理のコマンドが入力されたときの処理の流れを説明する図（その１）。
【図３】  プリンタドライバにスキャンジョブ処理のコマンドが入力されたときの処理の流れを説明する図（その２）。
【図４】  アクセスの競合が発生する場合の処理の流れを説明する図。
【図５】  複合機の制御部にスキャンジョブ処理のコマンドが入力されたときの処理の流れを説明する図。
【図６】  複合機のプリンタが作動中に、複合機に対して、スキャンジョブ処理のコマンドが入力された場合の処理の流れを説明する図。
【図７】  複合機の作動中に、ホストＰＣ−複合機間のアクセスが要求された場合の処理の流れを説明する図。
【符号の説明】
１０  ホストＰＣ
１１  プリンタドライバ
１２  スキャナドライバ
１３  通信インタフェース
２０  複合機
２１  プリンタ機能
２２  スキャナ機能
２３  通信インタフェース
２４  操作部
２５  制御部
【図１】
0004299994.tif 000002
【図２】
0004299994.tif 000003
【図３】
0004299994.tif 000004
【図４】
0004299994.tif 000005
【図５】
0004299994.tif 000006
【図６】
0004299994.tif 000007
【図７】
0004299994.tif 000008