(57)【特許請求の範囲】
【請求項１】
ホスト機能を有するインタフェースを備えた外部処理装置に接続される複合装置において、
記録部と、
原稿を読取る読取部と、
前記外部処理装置と、前記記録部及び読取部との間のデータ送受信チャネルを含み、それぞれ独立して送受信の可否が設定可能な複数の論理チャネルを有する第１インタフェース手段と、
前記記録部のインタフェースに対してホスト機能を有し、前記第１インタフェース手段と異なる論理チャネルで構成された第２インタフェース手段と、
前記第１インタフェース手段の論理チャネルのそれぞれに設けられ記録データをバッファするバッファ手段と、
前記バッファ手段の状態に応じて記録セマフォを獲得する制御手段とを有し、
前記第１インタフェース手段の前記記録部に対応した論理チャネルを経由して前記外部処理装置からデータを受信した時、前記制御手段は記録セマフォを獲得し、受信したデータを前記第２インタフェース手段を経由して前記記録部で記録するように制御することを特徴とする複合装置。
【請求項２】
前記制御手段は、前記読取部からのデータを前記記録部で記録する際、前記バッファ手段の状態に空きがある場合、記録セマフォを獲得して前記読取部からのデータを前記第２インタフェース手段を経由して前記記録部で記録するように制御するとともに、前記外部処理装置からの記録データの受信を禁止するために前記第１インタフェース手段の前記記録部に対応した論理チャネルの受信禁止を設定することを特徴とする請求項１に記載の複合装置。
【請求項３】
前記制御手段は、前記記録部における動作状況を取得する取得手段を有し、前記取得手段により取得された前記動作状況が動作中でなくなると前記記録セマフォを解放することを特徴とする請求項１に記載の複合装置。
【請求項４】
前記制御手段は、前記記録部における動作状況を取得する取得手段を有し、前記取得手段により取得された動作状況が、所定時間経過後も動作中にならない場合は前記記録セマフォを解放することを特徴とする請求項１に記載の複合装置。
【請求項５】
ホスト機能を有するインタフェースを備えた外部処理装置に接続される複合装置の制御方法において、
前記外部処理装置と、記録部及び読取部との間のデータ送受信チャネルを含み、それぞれ独立して送受信の可否が設定可能な複数の論理チャネルを有する第１インタフェースを介してデータを受信する受信工程と、
前記記録部のインタフェースに対してホスト機能を有し、前記第１インタフェースと異なる論理チャネルで構成された第２インタフェースを介して前記記録部にデータを伝送する工程と、
前記第１インタフェースの論理チャネルのそれぞれに設けられ記録データをバッファするバッファの状態に応じて記録セマフォを獲得する制御工程とを有し、
前記受信工程で、前記第１インタフェースの前記記録部に対応した論理チャネルを経由して前記外部処理装置からデータを受信した時、前記制御工程で記録セマフォを獲得し、受信したデータを前記第２インタフェースを経由して前記記録部で記録することを特徴とする複合装置の制御方法。
【請求項６】
前記制御工程は、前記読取部からのデータを前記記録部で記録する際、前記バッファの状態に空きがある場合、記録セマフォを獲得して前記読取部からのデータを前記第２インタフェース手段を経由して前記記録部で記録するように制御するとともに、前記外部処理装置からの記録データの受信を禁止するために前記第１インタフェースの前記記録部に対応した論理チャネルの受信禁止を設定することを特徴とする請求項５に記載の複合装置の制御方法。
【請求項７】
前記記録部における動作状況を取得する取得工程を更に有し、前記取得工程で取得された前記動作状況が動作中でなくなると前記記録セマフォを解放することを特徴とする請求項５に記載の複合装置の制御方法。
【請求項８】
前記記録部における動作状況を取得する取得工程を更に有し、前記取得工程で取得された動作状況が、所定時間経過後も動作中にならない場合は前記記録セマフォを解放することを特徴とする請求項５に記載の複合装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホスト機能を有するインタフェースを備えた外部処理装置に接続される複合装置及びその制御方法に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータ等の情報処理端末に接続可能なファクシミリ装置として、例えば特開平７−２８８６２５号公報等に記載されているように、セントロニクス等の双方向パラレルポート（ＩＥＥＥ１２８４準拠）、又はユニバーサルシリアルバス（Universal Serial Bus: USB）を介して、コンピュータ機器である情報処理端末に接続できるファクシミリ装置が知られている。このように互いに接続されたファクシミリ装置と情報処理端末とを備える画像処理システムにおいて、ファクシミリ装置と情報処理端末との接続形態は、単一の物理インターフェース上に単一の論理インターフェースだけを設けたものであった。このため、プリンタ、スキャナ、ファクシミリ通信等の複数の機能を併せ持つ複合ファクシミリ装置を、この情報処理端末で制御しようとした場合に、そのファクシミリ装置が備えている複数の機能を同時に動作させることが不可能なため、複合ファクシミリ装置のメリットを十分に生かせていなかった。また、無理に同時動作を行わせるためには、以下の作業が必要であった。
【０００３】
情報処理端末は、本来の制御コマンドに対して、プリンタ、スキャナ、ファクシミリ通信等の機能を特定するヘッダ情報を制御コマンドの先頭に付加し、編集した上でパケット化し、そのパケット化したデータを複合ファクシミリ装置に送信する必要があった。それゆえに情報処理端末にインストールするドライバの改造作業の負荷、制御の複雑さ、スループットの点で大きな問題があった。
【０００４】
更に、情報処理端末からパケット化されたデータを受信する複合ファクシミリ装置では、そのデータがプリンタを使用するデータなのか、スキャナを使用するデータなのか、ファクシミリ通信に関するデータなのかを特定するために、そのパケット化されたデータを解析する必要があり、更には制御コマンドの先頭に付加されているヘッダ情報を削除、編集する必要があり、そのための制御の複雑さ、スループットの点で大きな問題があった。
【０００５】
そこで近年、情報処理端末とファクシミリ装置の物理インターフェースにＵＳＢを採用し、ＵＳＢ規格で定める複数の論理チャネルを設ける（ＵＳＢ複合デバイス）ことにより、プリンタ、スキャナ、デジタルカメラ、ファクシミリ通信等の機能の同時動作を簡単に実現する手法が提案されている。この場合、複数の論理チャネルを設けることにより、制御コマンドに機能を示すヘッダ情報を付加する必要がなくなり、制御の簡素化、スループットの向上が期待できる。
【０００６】
【発明が解決しようとする課題】
しかしながら、情報処理端末とファクシミリ装置の物理インターフェースにＵＳＢを採用し、ＵＳＢ規格で定める複数の論理チャネルを設けることにより新たな問題も発生している。従来の単一の論理インターフェースしか持たない複合ファクシミリ装置では、情報処理端末が、プリンタ（記録部）、スキャナ、ファクシミリ通信等の機能を特定するヘッダ情報を制御コマンドの先頭に付加し、編集した上でそのデータをパケット化して複合ファクシミリ装置に送信していた。このため、このファクシミリ装置では、その受信したデータがプリンタにより記録を行うためのデータなのか、スキャナに関するデータなのか、ファクシミリ通信に関するデータなのかを特定するために、そのパケット化されたデータを解析した上で動作を開始していた。このため、記録処理、原稿画像の読み取り、ファクシミリ送受信といった全ての動作は、そのファクシミリ装置の主制御部で管理されるため、プリンタ等の同一のハードウェア資源を必要とする動作間の競合によるトラブルは発生しなかった。
【０００７】
しかし、最近の複合型ファクシミリ装置では、複数の論理チャネルを使用して情報処理端末からの制御コマンドをファクシミリ装置内部の主制御部によって解析することなく各部に直接伝送されて、各部がその情報処理端末の指示に従って独立して動作可能となっている。このため、このファクシミリ装置の主制御部がローカルで、例えば記録部を使用してコピー等の記録動作を行おうとした場合には、外部の情報処理端末からの指示による動作と、ローカルな動作との間でハードウェア資源の競合によるトラブルが発生する虞がある。
【０００９】
本発明は上記従来例に鑑みてなされたもので、記録部を使用した記録制御を行う場合に記録セマフォを獲得して記録処理を開始することにより、外部処理装置からの記録データや、他のデータ源からの記録データに基づく記録部を使用した記録処理の競合を防止した複合装置及びその制御方法を提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するために本発明の複合装置は以下のような構成を備える。即ち、
ホスト機能を有するインタフェースを備えた外部処理装置に接続される複合装置において、
記録部と、
原稿を読取る読取部と、
前記外部処理装置と、前記記録部及び読取部との間のデータ送受信チャネルを含み、それぞれ独立して送受信の可否が設定可能な複数の論理チャネルを有する第１インタフェース手段と、
前記記録部のインタフェースに対してホスト機能を有し、前記第１インタフェースと異なる論理チャネルで構成された第２インタフェース手段と、
前記第１インタフェース手段の論理チャネルのそれぞれに設けられ記録データをバッファするバッファ手段と、
前記バッファ手段の状態に応じて記録セマフォを獲得する制御手段とを有し、
前記第１インタフェース手段の前記記録部に対応した論理チャネルを経由して前記外部処理装置からデータを受信した時、前記制御手段は記録セマフォを獲得し、受信したデータを前記第２インタフェース手段を経由して前記記録部で記録するように制御することを特徴とする。
【００１１】
上記目的を達成するために本発明の複合装置の制御方法は以下のような工程を備える。即ち、
ホスト機能を有するインタフェースを備えた外部処理装置に接続される複合装置の制御方法において、
前記外部処理装置と、記録部及び読取部との間のデータ送受信チャネルを含み、それぞれ独立して送受信の可否が設定可能な複数の論理チャネルを有する第１インタフェースを介してデータを受信する受信工程と、
前記記録部のインタフェースに対してホスト機能を有し、前記第１インタフェースと異なる論理チャネルで構成された第２インタフェースを介して前記記録部にデータを伝送する工程と、
前記第１インタフェースの論理チャネルのそれぞれに設けられ記録データをバッファするバッファの状態に応じて記録セマフォを獲得する制御工程とを有し、
前記受信工程で、前記第１インタフェースの前記記録部に対応した論理チャネルを経由して前記外部処理装置からデータを受信した時、前記制御工程で記録セマフォを獲得し、受信したデータを前記第２インタフェースを経由して前記記録部で記録することを特徴とする。
【００１２】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１３】
図１は、本発明の実施の形態に係る印刷制御装置の一例である複合型ファクシミリ装置１００の概略構成を示すブロック図である。但し、本実施の形態では、複合型ファクシミリ装置の場合で説明するが、本発明はこれに限定されるものではなく、プリンタ部を有し、そのプリンタ部を使用した印刷処理が自装置で生成された記録データに基づいて実行されると共に、インターフェースを介してコンピュータ機器を接続し、そのコンピュータ機器からの記録データに基づいてその記録部により記録を行うことができる装置或いはシステムであれば、本発明に含まれる。
【００１４】
図において、ＣＰＵ１０１は、ＲＯＭ１０２に記憶されている制御プログラムに従って、このファクシミリ装置１００全体の動作を制御する主制御部である。ＲＯＭ１０２は、ＣＰＵ１０１が実行する制御プログラムや、組込みオペレーティングシステム（ＯＳ）プログラム、及び各種データを記憶している。この実施の形態では、ＲＯＭ１０２に格納されている各制御プログラムは、ＲＯＭ１０２に格納されている組込みＯＳの管理下で、スケジューリングやタスクスイッチ等のソフトウエア制御を行うと共に、後述する各種制御を実行している。ＲＡＭ１０３は、例えばＳＲＡＭやＤＲＡＭ等で構成され、プログラム制御用の変数、オペレータが登録した設定値、この装置１００の管理データ等を格納するとともに、ＣＰＵ１０１による制御動作時に各種ワークデータを格納するワーク用バッファ領域が設けられている。画像メモリ１０４はＤＲＡＭ等で構成され、スキャナ等の読取部１０７で読み取った画像データや、通信回線１３１を介して受信した画像データ等を蓄積する。データ変換部１０５は、外部処理装置１４１から入力されたページ記述言語（ＰＤＬ）等を解析してイメージデータに展開したり、キャラクタデータをイメージデータに展開したり、また画像データの変換等を行う。読取部１０７は、ＣＩＳイメージセンサ（密着型イメージセンサ）によって原稿を光学的に読み取り、電気的な画像データに変換した画像信号を出力する。読取制御部１０６は、この画像信号を入力して２値化処理や中間調処理等の各種画像処理を施し、高精細な画像データを出力する。尚、この実施の形態では、読取制御部１０６は、原稿を搬送しながら読み取りを行うシート読取制御方式と、原稿台にある原稿をスキャンするブック読取制御方式の両制御方式の読取部１０７に対応している。
【００１５】
操作表示部１０８は、数値入力キー、文字入力キー、ワンタッチ電話番号キー、モード設定キー、決定キー、取り消しキー等を備えて、オペレータが画像送信の相手先データを決定したり、設定データの登録動作を行うための操作部と、各種キー、ＬＥＤ（発光ダイオード）とＬＣＤ（液晶ディスプレイ）等を有し、オペレータによる各種入力操作や、ファクシミリ装置１００の動作状況、ステータス状況の表示等を行う表示部等を備えている。通信制御部１０９は、モデム（変復調装置）や、ＮＣＵ（網制御装置）等を備え、アナログの通信回線（ＰＳＴＮ）１３１に接続され、Ｔ３０プロトコルでの通信制御、通信回線に対する発呼と着呼等の回線制御を行っている。しかし、この通信制御部１０９による制御はアナログ回線との通信制御に限定されず、デジタル回線との通信制御機能を備えていても良いことはもちろんである。解像度変換処理部１１０は、画像データを例えばミリ単位からインチ単位への解像度変換等の変換制御を行うとともに、画像データの拡大・縮小処理も可能である。
【００１６】
符号復号化処理部１１１は、このファクシミリ装置１００で扱う画像データの符号化（ＭＨ、ＭＲ、ＭＭＲ、ＪＢＩＧ、ＪＰＥＧ等）及び復号処理や、拡大・縮小処理を行う。記録制御部１１２は、プリンタ等の記録部１１５で印刷される画像データに対し、図示しない画像処理制御部を介して、スムージング処理や記録濃度補正処理、色補正等の各種画像処理を施して高精細な画像データに変換し、ＵＳＢホスト制御部１１４（後述）に出力する。また、ＵＳＢホスト制御部１１４を制御することにより、定期的に記録部１１５の動作状況データを取得する役割も果たす。ＵＳＢファンクション制御部１１３は、ＵＳＢインターフェース１１６の通信制御を行うものであり、ＵＳＢ通信規格に従ってプロトコル制御を行い、ＣＰＵ１０１が実行するＵＳＢ制御タスクからのデータをパケットに変換して外部処理装置１４１に送信する、ＵＳＢパケット送信を行ったり、逆に、外部処理装置１４１からのＵＳＢパケットを受信してデータに変換し、ＣＰＵ１０１に対して送信したりする。ＵＳＢホスト制御部１１４は、ＵＳＢ通信規格で定められたプロトコルで通信を行うための制御部である。このＵＳＢホスト制御部１１４におけるＵＳＢ通信規格は、双方向のデータ通信を高速に行うことができる規格であり、１台のホスト（マスタ）に対し、複数のハブ又はファンクション（スレーブ）を接続することができる。このＵＳＢホスト制御部１１４は、ＵＳＢ通信におけるホストの機能を有している。記録部１１５は、例えばレーザビームプリンタやインクジェットプリンタ等の印刷装置であり、カラー画像データ又はモノクロ画像データに基づいて画像を記録媒体に印刷する。この記録部１１５とＵＳＢホスト制御部１１４とは、ＵＳＢ通信規格で定められたプロトコルで通信を行い、特に記録部１１５はファンクション機能を有している。１１７はタイマで、ＣＰＵ１０１の指示に従って所定時間の計時を行ったり、或いはＣＰＵ１０１により指定された時間が経過するとＣＰＵ１０１に対して割込み等を発生して、その指定された時間が経過したことを通知する。
【００１７】
尚、本実施の形態においては、記録機能のＵＳＢ通信は１対１の接続形態を用いる。以上説明した構成要素１０１〜１０６、１０８〜１１４，１１７は、ＣＰＵ１０１が管理するＣＰＵバス１２１を介して相互に接続されている。
【００１８】
次に、ＵＳＢファンクション制御部１１３のＵＳＢインターフェースにおける構成を詳細に説明する。
【００１９】
図２は、本実施の形態に係るＵＳＢファンクション制御部１１３のＵＳＢインターフェースを説明する概念図である。
【００２０】
最も大きい枠で示されるデバイス（Device）２０１は、ＵＳＢ通信規格において１つだけ定義することができ、この装置１００全体の属性を示している。このデバイス２０１の属性は、デバイス記述（Device Descriptor）で表現され、このデバイス記述には、装置の製造者ＩＤ、製品ＩＤ、リリース番号、コンフィグレーション（Configuration）数などが含まれている。本実施の形態においては、このコンフィグレーション数は「１」である。
【００２１】
このデバイス２０１には、コンフィグレーションが１つ（Cofiguration1（２０２））定義されている。このCofiguration1（２０２）の属性は、コンフィグレーション記述（Configuration Descriptor）で表現され、このコンフィグレーション記述には、そのコンフィグレーションのインターフェース（Interface）数などが含まれている。本実施の形態においては、このインターフェース数は「３」である。
【００２２】
このCofiguration1（２０２）には、インターフェースが３つ（Interface0〜Interface2（２０４，２０７，２１１））定義されている。これら３つのインターフェース（Interface0〜Interface2（２０４，２０７，２１１））の各属性は、インターフェース記述（Interface Descriptor）で表現され、このインターフェース記述には、各インターフェースのエンドポイント（Endpoint）数、クラスコードなどが含まれている。本実施の形態においては、Interface0（２０４）は記録部１１５用であり、このInterface0（２０４）のエンドポイント数は「２」である。また、Interface1（２０７）は読取部１０７用であり、このInterface1（２０７）の中のエンドポイント数は「３」である。また、Interface2（２１１）はファクシミリ送受信用に使用され、このInterface2（２１１）のエンドポイント数は「３」である。
【００２３】
ここで、記録部１１５用に使用するInterface0（２０４）の中には、エンドポイントが２つ（Endpoint1, Endpoint2（２０５、２０６））定義されており、これら２つのEndpoint1, Endpoint2（２０５、２０６）の各属性は、エンドポイント記述（Endpoint Descriptor）で表現され、このエンドポイント記述には、そのエンドポイント番号、通信方向、転送タイプ、パケットサイズなどが含まれている。そして、Endpoint1（２０５）は、主に外部処理装置１４１から記録部１１５に送信される制御データの受信や印刷データの受信のために使用され、Endpoint2（２０６）は、主に受信した印刷データに基づく動作状況を、記録部１１５から外部処理装置１４１に送信するために使用される。
【００２４】
また読取部１０７用に使用するInterface1（２０７）の中には、エンドポイントが３つ（Endpoint3, Endpoint4, Endpoint5（２０８、２０９、２１０））定義されている。これらEndpoint3, Endpoint4, Endpoint5（２０８、２０９、２１０）の各属性は、エンドポイント記述で表現され、このエンドポイント記述には、そのエンドポイント番号、通信方向、転送タイプ、パケットサイズなどが含まれている。そして、Endpoint3（２０８）は、主に読取部１０７から外部処理装置１４１に読取データを送信するために使用され、Endpoint4（２０９）は、主に外部処理装置１４１からの制御データを受信するために使用される。またEndpoint5（２１０）は、主に読取部１０７でスキャンが起動されたことを、読取部１０７から外部処理装置１４１に通知するために使用される。
【００２５】
更に、ファクシミリ送受信用に使用するInterface2（２１１）には、エンドポイントが３つ（Endpoint6, Endpoint7, Endpoint8（２１２、２１３、２１４））定義されている。これらEndpoint6, Endpoint7, Endpoint8（２１２、２１３、２１４）の各属性は、エンドポイント記述で表現され、このエンドポイント記述には、そのエンドポイント番号、通信方向、転送タイプ、パケットサイズなどが含まれている。ここでEndpoint6（２１２）は、主に外部処理装置１４１からの制御データの受信やファクシミリ送信データの受信のために使用される。またEndpoint7（２１３）は、主にファクシミリ受信データや、ファクシミリ送受信の通信状況を外部処理装置１４１に送信するために使用される。更にEndpoint8（２１４）は、主にファクシミリ受信が終了したことを外部処理装置１４１に通知するために使用される。
【００２６】
次に、記録部１１５のＵＳＢインターフェースにおける構成を詳細に説明する。
【００２７】
図３は、本実施の形態に係るファクシミリ装置１００における記録部１１５のＵＳＢインターフェースを説明する概念図である。
【００２８】
最も大きい枠で示されるデバイス（Device）３０１は、ＵＳＢ通信規格において１つだけ定義することができ、この装置１００全体の属性を示している。このデバイス３０１の属性は、デバイス記述（Device Descriptor）で表現され、このデバイス記述には、装置の製造者ＩＤ、製品ＩＤ、リリース番号、コンフィグレーション（Configuration）数などが含まれている。この実施の形態においては、コンフィグレーション数は「１」である。このデバイス３０１には、コンフィグレーションが１つ（Configuration1（３０２））定義されている。このConfiguration1（３０２）の属性は、コンフィグレーション記述（Configuration Descriptor）で表現され、このコンフィグレーション記述には、そのコンフィグレーションの中のインターフェース数などが含まれている。本実施の形態においては、このインターフェース数は「１」である。
【００２９】
このConfiguration1（３０２）には、インターフェースが１つ（Interface0（３０４））定義されており、このInterface0（３０４）の属性は、インターフェース記述（Interface Descriptor）で表現され、このインターフェース記述には、そのインターフェースの中のエンドポイント（Endpoint）数、クラスコードなどが含まれている。この実施の形態においては、この印刷用に使用するInterface0（３０４）の中のエンドポイント数は「２」である。このConfiguration1（３０２）において、Endpoint0（４０３）は、この装置１００の制御用に用いられており、装置の構成データの送信経路となっている。また、このファクシミリ装置１００においては、ＣＰＵ１０１が記録部１１５の動作状況を送信するためにも使用される。
【００３０】
印刷用に使用するInterface0（３０４）の中には、エンドポイントが２つ（Endpoint1, Endpoint2（３０５、３０６））定義されており、これらEndpoint1, Endpoint2（３０５、３０６）の各属性は、エンドポイント記述（Endpoint Descriptor）で表現され、このエンドポイント記述には、そのエンドポイントのエンドポイント番号、通信方向、転送タイプ、パケットサイズなどが含まれている。この内、Endpoint1（３０５）は、主にＣＰＵ１０１或いは外部処理装置１４１からの制御データの受信や印刷データの受信のために使用される。またEndpoint2（３０６）は、主に受信した印刷データに基づく動作状況を、ＣＰＵ１０１或いは外部処理装置１４１に送信するために使用される。
【００３１】
次に、上述の構成を備える複合ファクシミリ装置１００の基本的な動作について説明する。
【００３２】
本実施の形態に係るファクシミリ装置１００は、ＰＣ等の外部処理装置１４１とＵＳＢを介して接続される（第１インターフェース手段）。このファクシミリ装置１００内で外部処理装置１４１との通信を受け持つのはＵＳＢファンクション制御部１１３であり、このＵＳＢは、図２に示したように複数のインターフェースを有している。これら複数のインターフェースの中で、記録部１１５（プリンタ）用に使用されるInterface0（２０４）が第１論理チャネルであり、外部処理装置１４１からの制御データ及び印刷データの受信用のEndpoint1（２０５）と、記録部１１５から外部処理装置１４１に動作状況を送信するためのEndpoint2（２０６）とを有している。
【００３３】
又、このファクシミリ装置１００の記録部１１５と、ＣＰＵ１０１とはＵＳＢを介して接続されており、記録部１１５による記録処理がＣＰＵ１０１により制御される（第２インターフェース手段）。ファクシミリ装置１００内で、記録部１１５との通信を受け持つのはＵＳＢホスト制御部１１４であり、このＵＳＢは図３に示したように１つのインターフェース（Interface0）を有している。このInterface0（３０４）（第２論理チャネル）は、ＣＰＵ１０１からの制御データ及び印刷データの受信用のEndpoint1（３０５）と、記録部１１５の動作状況をＣＰＵ１０１に送信するためのEndpoint2（３０６）とを有している。
【００３４】
このファクシミリ装置１００のＣＰＵ１０１は、外部処理装置１４１からＵＳＢファンクション制御部１１３のEndpoint1（２０５）経由で受信した制御データ及び印刷データを、ＵＳＢホスト制御部１１４のEndpoint1（３０５）を経由して記録部１１５に転送する。この際、転送するデータには一切の編集を行わない。
【００３５】
同様に、ＵＳＢホスト制御部１１４のEndpoint2（３０６）経由で受信した記録部１１５からの動作状況を、ＵＳＢファンクション制御部１１３のEndpoint2（２０６）を経由して外部処理装置１４１に転送する。この際も、転送するデータには一切の編集を行わない。これによりデータは完全に透過的に通信されるため、外部処理装置１４１と記録部１１５が恰も直結されているかのように、外部処理装置１４１が記録部１１５を制御して印刷を行い、その動作状況を知ることができる。
【００３６】
以上の構成において、外部処理装置１４１よりの記録データにより記録部１１５が印刷を行っている際には、ＣＰＵ１０１は、その記録データの解析を行う必要がないためＣＰＵ１０１の処理が軽減される。また、記録部１１５を変更してもＣＰＵ１０１の動作が影響されないため任意の機種のプリンタを記録部１１５として選択できる。また外部処理装置１４１でも、ベースとしているプリンタドライバをそのまま利用できるので、新規にプリンタドライバを開発したり実装する手間がなくなるという利点がある。
【００３７】
以下、本実施の形態を詳しく説明する前に、本実施の形態の特徴について簡単に説明する。
【００３８】
本実施の形態は、記録部１１５に対して記録セマフォを設定することを特徴としている。ここで、資源（記録部１１５）の数は「１」であるから、一つのアプリケーションが記録セマフォを取得すれば、それ以後、その記録セマフォを取得したアプリケーションがその記録セマフォを解放するまで、他のアプリケーションはその記録セマフォを取得できなくなる。これにより記録部１１５の排他制御を可能にしている。
【００３９】
また本実施の形態では、主制御部（ＣＰＵ１０１）がローカルで記録部１１５を使用する、例えばコピー等の記録動作を行う場合には、その記録タスクはまず記録セマフォの取得を試み、その取得に成功した場合にのみ記録部１１５を使用して記録（コピー）を行う。ローカルでの記録中は外部処理装置１４１からの記録データの受信を禁止するので、このローカルでの記録中は、外部処理装置１４１からの記録データが記録部１１５に入力される危険がなくなる。そしてローカルでの記録終了後、その記録タスクは、記録セマフォを解放すると共に外部処理装置１４１からの記録データの受信を許可し、その外部処理装置１４１からの記録データに基づく記録部１１５を用いた記録を可能とする。
【００４０】
他方、外部処理装置１４１により記録を行う場合には、外部とのＵＳＢインターフェース１１６（ＵＳＢファンクション制御部１１３）を介して記録データを受信した時点で、外部処理装置１４１からの記録データによる記録のために記録セマフォの取得を行う。これにより外部処理装置１４１からの記録データによる記録が開始され、その記録中は、主制御部（ＣＰＵ１０１）がローカルで記録を行うことができなくなり記録部１１５の排他使用が実現できる。
【００４１】
また外部処理装置１４１からの記録データの受信により記録セマフォの取得を行った場合は、それ以後は、ＵＳＢホスト制御部１１４により記録部１１５の動作状況を監視し、記録部１１５の動作状況が「動作中」となった後に「スタンバイ」に戻るとその記録処理を終了したとみなして記録セマフォを解放する。また、記録セマフォの取得後、所定の時間内に記録部１１５の動作状況が「動作中」とならなかった場合は、「動作中」の時間が短かったために「動作中」を示すステータスを見落としたと判断し、その記録セマフォを解放することにより、より安全性を高めている。
【００４２】
以下、具体例を挙げて、本実施の形態に係る複合型ファクシミリ装置の記録動作を詳細に説明する。
【００４３】
図４は、本発明の実施の形態に係る複合型ファクシミリ装置におけるコピー或いはレポート出力、受信画像の記録等により、ローカルで記録を行う場合の処理を示すフローチャートである。尚、この処理を実行するプログラムはＲＯＭ１０２に記憶されている。
【００４４】
このファクシミリ装置１００がローカルで記録処理を開始する場合、まずステップＳ４０１で、ＵＳＢファンクション制御部１１３に対して外部処理装置１４１からの制御データ及び印刷データの受信に使用するEndpoint1（２０５）の受信を禁止する設定を行う。次にステップＳ４０２に進み、ＵＳＢファンクション制御部１１３は、図２のＵＳＢ機能で示した様に複数のエンドポイントを有しており、それぞれのエンドポイントは、それぞれ独立して送信及び受信の可否が設定できる。各エンドポイントは、対応する非図示の送受信バッファを有しており、受信が許可されている場合には、受信したデータが自動的に、そのバッファに格納されるが、受信が禁止されている場合には、そのバッファにデータは格納されず、パケットの転送終了時にホスト（外部処理装置１４１）に対してＮＡＫ（否定応答）が返される。
【００４５】
次にステップＳ４０２に進み、ＵＳＢファンクション制御部１１３のEndpoint1（２０５）に対応する送受信バッファのチェックを行う。この時、ステップＳ４０１で受信禁止の設定を行った時点で既に、外部処理装置１４１からのデータ転送が開始されていた場合には、そのバッファにデータが格納されているので、その場合にはステップＳ４０７に進み、ＵＳＢファンクション制御部１１３のEndpoint1（２０５）の受信禁止の設定を解除し、ローカルでの記録動作を開始しないままエラー終了する。
【００４６】
一方ステップＳ４０２で、送受信バッファが空であった場合はステップＳ４０３に進み、記録セマフォの取得を試みる。この記録セマフォは、オペレーティングシステム（ＯＳ）が提供する記録部の資源管理機構であり、プリンタ等の記録部の資源（ハードウェア資源）を必要とするアプリケーションは、そのＯＳに対して、その資源に対応する記録セマフォの取得を要求し、それが受け入れられた場合にのみ、そのアプリケーションが、その資源（記録部）を操作することにより、その記録部における排他処理を実現するものである。このステップＳ４０３で記録セマフォの取得に失敗した場合には、既に外部処理装置１４１からの記録データに基づく記録動作が開始されているのでステップＳ４０７に進み、ＵＳＢファンクション制御部１１３のEndpoint1（２０５）の受信禁止の設定を解除し、ローカルでの記録動作を開始しないままエラー終了する。
【００４７】
一方ステップＳ４０３で、記録セマフォの取得に成功した場合はステップＳ４０４に進んで、ローカルでの記録を行う。このローカルでの記録は、ＣＰＵ１０１がＵＳＢホスト制御部１１４のEndpoint1（３０５）を経由して記録部１１５に制御データ及び印刷データを伝送することにより実行される。そしてＣＰＵ１０１から全ての記録データの伝送が終了するとステップＳ４０５に進み、そのセマフォを解放してステップＳ４０６に進み、ＵＳＢファンクション制御部１１３のEndpoint1（２０５）の受信禁止の設定を解除して正常終了する。
【００４８】
以上が、ローカルで記録を行う場合の制御処理の流れである。
【００４９】
図５は、本発明の実施の形態に係る複合型ファクシミリ装置１００における、外部処理装置１４１からの記録データに基づいて記録を行う場合の処理を示すフローチャートである。尚、この処理を実行するプログラムはＲＯＭ１０２に記憶されている。
【００５０】
まずステップＳ５０１で、ＵＳＢファンクション制御部１１３のEndpoint1（２０５）の送受信バッファをチェックする。ここで、このバッファにデータがあれば外部処理装置１４１からの記録データの転送が開始されているのでステップＳ５０２へ進み、そのバッファが空であれば、まだ記録データの伝送が開始されていないのでステップＳ５０１へ戻る。ステップＳ５０２では、記録セマフォの取得を試みる。ここで、この記録セマフォの取得に失敗した場合は、ローカルな記録のためにセマフォが取得されているのでステップＳ５０３に進み、受信バッファをクリアして、そこに記憶されていた内容を破棄した上でステップＳ５０１に戻る。
【００５１】
一方ステップＳ５０２で、記録セマフォが取得できた場合はステップＳ５０４に進み、タイマ１１７による計時値を「０」に初期化して計時を開始させ、ＲＡＭ１０３に設けられたフラグをオフに初期化する。
【００５２】
次にステップＳ５０５に進み、ＵＳＢファンクション制御部１１３のEndpoint1（２０５）を経由して受信したデータを、ＵＳＢホスト制御部１１４のEndpoint1（３０５）を経由して記録部１１５に伝送する。そして次のステップ以降では記録終了のチェックを開始する。まずステップＳ５０６で、前述のフラグがオフかどうかをチェックする。前述の様に、このフラグは、記録開始時にステップＳ５０４でオフに初期化されている。ステップＳ５０６でフラグがオフの場合はステップＳ５０７へ進み、記録部１１５の動作状況をチェックする。
【００５３】
本実施の形態では、記録部１１５の動作状況は、ＣＰＵ１０１がＵＳＢホスト制御部１１４のEndpoint2（３０６）を経由して記録部１１５の動作状況を読み取ることにより行う。この動作状況の取得は、ＰＣとプリンタの間で一般的に行われているもので公知の技術であるが概略を説明すると、ＣＰＵ１０１は予め記録部１１５に対して返送する動作状況を指定しておく。この動作状況には、例えば動作ステータス、ビジーステータス、警告ステータス、オペレータコール・ステータス、サービスコール・ステータス等がある。これらステータス情報は、それぞれ「ＤＪＳ（動作ステータス）」，「ＤＢＳ（ビジーステータス）」，「ＤＷＳ（警告ステータス）」，「ＤＯＣ（オペレータコールステータス）」，「ＤＳＣ（サービスコールステータス）」と表記される。これらのステータスの中で必要とするものをステータス指定コマンドに続いて送信する。
【００５４】
本実施の形態では、ステータス指定コマンドはＳＳＲであり、動作ステータス「ＤＪＳ」とビジーステータス「ＤＢＳ」を必要とする場合には、「ＳＳＲ＝ＤＪＳ，ＤＢＳ」というように、２つのコマンドをカンマで連結して送信する。これを受信した記録部１１５は、その指定された内容を記憶し、以後ステータス要求があると指定されたステータスを返送する。この返送フォーマットは、「コマンド：ステータス」で、全てＡＳＣＩＩコードで表されている。
【００５５】
このステータスの要求は、ＵＳＢホスト制御部１１４のＵＳＢのEndpoint2（３０６）に対してInトークンを与えることで行われる。即ち、ＣＰＵ１０１は、記録部１１５の動作状況を知りたい場合には、ＵＳＢホスト制御部１１４に対してInトークンを発行した後、そのＵＳＢホスト制御部１１４から受信したデータを検索し、必要としているコマンドの後に続くステータスを抽出することで、その記録部１１５の動作状況を知ることができる。ここでは記録部１１５が動作中であるかどうかが知りたいので、返送フォーマット「コマンド：ステータス」のコマンド「ＤＪＳ（動作ステータス）」の後に続くステータスコードを読みとることにより、記録部１１５が「動作中」かどうかを判定できる。
【００５６】
このステップＳ５０７における判定結果が「動作中」を示していればステップＳ５０９に進み、フラグをオンしてステップＳ５０５へ戻る。そして、それ以後は、ＵＳＢファンクション制御部１１３のEndpoint1（２０５）に受信したデータがあれば、ＵＳＢホスト制御部１１４のEndpoint1（３０５）経由で記録部１１５に転送しながら、記録終了のチェックを繰り返す。尚、記録部１１５が「動作中」とは、記録部１１５が実際に記録中である場合、或いは回復動作中等であり、記録部１１５が受信したデータに対して行う処理の全てに対して処理中であることを示すステータスである。
【００５７】
こうしてステップＳ５０７で、記録部１１５が「動作中」でなくなるとステップＳ５１０に進み、タイマ１１７による計時時間をチェックする。このタイマ１１７は、前述した様に、記録開始時にステップＳ５０４で「０」に初期化されて計時が起動されている。このステップＳ５１０で、タイマ１１７による計時値が閾値以上であったら、外部処理装置１４１から送られてきた記録データが無効なデータであったか、或いは「動作中」のステータスが極めて短い時間しか有効とならなかったために見落としたものと判断してステップＳ５１１へ進み、記録セマフォを解放して処理を終了する。尚、この実施の形態では、この閾値は１５秒としている。またステップＳ５１０で、タイマ１１７の計時値が閾値以下の場合はステップＳ５０５に戻って前述の処理を繰り返す。
【００５８】
一方、ステップＳ５０６でフラグがオフでなかった場合は、記録部１１５が、受信したデータの処理を既に開始していることを示しているのでステップＳ５０８に進み、記録部１１５の動作状況をチェックする。ここでもステップＳ５０７と同様に、ＵＳＢホスト制御部１１４のEndpoint2（２０６）を経由して、記録部１１５の動作状況を入力してチェックする。このチェックの結果、「動作中」であれば、記録部１１５の処理が継続しているのでステップＳ５０５へ戻り、前述の処理を繰り返す。こうしてステップＳ５０８で、記録部１１５の動作状況が「動作中」ではなくなると、記録部１１５における処理が終了したものと判断してステップＳ５１０へ進み、記録セマフォを解放して処理を終了する。
【００５９】
（その他の実施の形態）
本発明の目的は前述したように、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００６０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【００６１】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【００６２】
以上説明したように本実施の形態によれば、複合ファクシミリ装置における記録動作の排他処理を容易に実現でき、その複合ファクシミリ装置の記録部（プリンタ装置）の実用性を大幅に高めることができる。
【００６３】
また排他処理を実現するにあたり、ＣＰＵ（制御部）による記録データの解析を必要としないため、ＣＰＵの処理に負担を与えることなく、かつ、記録データの言語仕様に依存しないために記録部の機種選択が自由に行えるというメリットがある。
【００６４】
また、新規にハードウェアを必要とせずに、上記目的を達成できるため低コストで実現できるという効果がある。
【００６５】
【発明の効果】
以上説明したように本発明によれば、セマフォを用いて、ハードウェア資源の排他制御を行う記録制御装置及び該装置における制御方法が提供できた。
【００６６】
又本発明によれば、記録部を使用した記録制御を行う場合に記録セマフォを獲得して記録処理を開始することにより、外部処理装置からの記録データや、他のデータ源からの記録データに基づく記録部を使用した記録処理の競合を防止できるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る複合型ファクシミリ装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係る複合型ファクシミリ装置のＵＳＢインターフェースを説明する概念図である。
【図３】本発明の実施の形態に係る複合型ファクシミリ装置の記録部のＵＳＢ構成を説明する概念図である。
【図４】本発明の実施の形態に係る複合型ファクシミリ装置におけるコピー或いはレポート出力、受信画像の記録等により、ローカルで記録を行う場合の処理を示すフローチャートである。
【図５】本発明の実施の形態に係る複合型ファクシミリ装置における外部処理装置からの記録データに基づいて記録を行う場合の処理を示すフローチャートである。
【図１】
0003880431.tif 000002
【図２】
0003880431.tif 000003
【図３】
0003880431.tif 000004
【図４】
0003880431.tif 000005
【図５】
0003880431.tif 000006