(57)【要約】【課題】本発明は、高速シリアルバスを利用したデータ通信を適切かつ効率的に行うデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体に関する。【解決手段】複合装置１は、ＰＣＩｅバス２をＰＣＩｅバス２ａ、２ｂに分割して各ＰＣＩｅバス２ａ、２ｂを利用して同じデータを同期を取りながら通信し、所定のＰＣＩｅバス２ａ、２ｂをデータ採用通信バスとして該データ採用通信バスであるＰＣＩｅバス２ａ、２ｂのデータを後段のメインメモリ１０２に転送する。複合装置１は、ＰＣＩｅバス２ａ、２ｂにおける通信エラーの発生の有無を検出して、通信エラーが未検出のときには、任意のＰＣＩｅバス２ａ、２ｂをデータ採用通信バスとし、通信エラーが検出されると、通信エラーの発生したＰＣＩｅバス２ａ、２ｂのデータとの同期を取ったデータ通信を停止して通信エラー未発生のＰＣＩｅバス２ａ、２ｂのみによるデータ通信を行う。【選択図】          図１
2010288148.tif 000002
【特許請求の範囲】
【請求項１】
通信バスを複数の多重通信バスに分割し各多重通信バスを利用して同じデータの通信を行う通信手段と、
前記多重通信バスにおけるデータの同期を取りながら所定の多重通信バスをデータ採用通信バスとして該データ採用通信バスのデータを後段に転送するデータ選択手段と、
前記多重通信バスにおける通信エラーの発生の有無を検出するエラー検出手段と、
前記エラー検出手段が通信エラーを未検出のときには、任意の前記多重通信バスを前記データ採用通信バスとして前記データ選択手段に対して指定するとともに、該エラー検出手段が通信エラーを検出すると、前記データ選択手段に、該通信エラーの発生した多重通信バスのデータとの同期を取ったデータ通信を停止させて通信エラー未発生の多重通信バスのみによるデータ通信を行わせ、該通信エラー未発生の多重通信バスの１つをデータ採用通信バスとして指定するバス選択手段と、
を備えていることを特徴とするデータ通信装置。
【請求項２】
前記データ通信装置は、
前記エラー検出手段が前記通信エラーを検出すると、該通信エラーの発生した前記多重通信バスによるデータ通信を停止する通信停止手段を備えていることを特徴とする請求項１記載のデータ通信装置。
【請求項３】
前記データ通信装置は、
ライン単位で順次通信されるラインデータの後端を検出するライン後端検出手段をさらに備え、
前記バス選択手段は、前記データ通信を停止した後に、該データ通信を停止したラインの後端を前記ライン後端検出手段が検出すると、該ライン後端検出タイミングに合わせて、前記データ選択手段に、停止していた該多重通信バスによるデータ通信を再開させるとともに、データ通信を再開した多重通信バスのデータを含めた全ての多重通信バスにおけるデータの同期を取らせることを特徴とする請求項１または請求項２記載のデータ通信装置。
【請求項４】
前記データ通信装置は、
通信エラーが発生して通信停止となった多重通信バスによるデータ通信の再開までに要するライン数を計数するライン数計数手段と、
ライン単位で順次通信されるラインデータの後端を検出するライン後端検出手段と、
をさらに備え、
前記バス選択手段は、前記通信エラーが発生したラインから前記ライン数計数手段の計数したライン数のラインの後端を前記ライン後端検出手段が検出すると、該ライン後端検出タイミングに合わせて、前記データ選択手段に、停止していた該多重通信バスによるデータ通信を再開させるとともに、データ通信を再開した該多重通信バスのデータを含めた全ての多重通信バスにおけるデータの同期を取らせることを特徴とする請求項１から請求項３のいずれかに記載のデータ通信装置。
【請求項５】
前記データ通信装置は、
前記通信手段を、前記通信バスを前記多重通信バスとして機能させる多重通信モードと１つの通信バスとして機能させる単通信モードとに切り替える切り替え手段を備え、
前記通信手段は、前記切り替え手段の切り替えに応じて前記多重通信モードと前記単通信モードとに切り替えて通信することを特徴とする請求項１から請求項４のいずれかに記載のデータ通信装置。
【請求項６】
通信バスを複数の多重通信バスに分割し各多重通信バスを利用して同じデータの通信を行う通信処理ステップと、
前記多重通信バスにおけるデータの同期を取りながら所定の多重通信バスをデータ採用通信バスとして該データ採用通信バスのデータを後段に転送するデータ選択処理ステップと、
前記多重通信バスにおける通信エラーの発生の有無を検出するエラー検出処理ステップと、
前記エラー検出処理ステップで通信エラーが未検出のときには、任意の前記多重通信バスを前記データ採用通信バスとして前記データ選択処理ステップに対して指定するとともに、該エラー検出処理ステップで通信エラーが検出されると、前記データ選択処理ステップで、該通信エラーの発生した多重通信バスとの同期を取ったデータ通信を停止させて通信エラー未発生の多重通信バスのみによるデータ通信を行わせ、該通信エラー未発生の多重通信バスの１つをデータ採用通信バスとして指定するバス選択処理ステップと、
を有していることを特徴とするデータ通信制御方法。
【請求項７】
コンピュータに、
通信バスを複数の多重通信バスに分割し各多重通信バスを利用して同じデータの通信を行う通信処理と、
前記多重通信バスにおけるデータの同期を取りながら所定の多重通信バスをデータ採用通信バスとして該データ採用通信バスのデータを後段に転送するデータ選択処理と、
前記多重通信バスにおける通信エラーの発生の有無を検出するエラー検出処理と、
前記エラー検出処理で通信エラーが未検出のときには、任意の前記多重通信バスを前記データ採用通信バスとして前記データ選択処理に対して指定するとともに、該エラー検出処理で通信エラーが検出されると、前記データ選択処理で、該通信エラーの発生した多重通信バスとの同期を取ったデータ通信を停止させて通信エラー未発生の多重通信バスのみによるデータ通信を行わせ、該通信エラー未発生の多重通信バスの１つをデータ採用通信バスとして指定するバス選択処理と、
を実行させることを特徴とするデータ通信制御プログラム。
【請求項８】
請求項７記載のデータ通信制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体に関し、詳細には、高速シリアルバスを利用したデータ通信を適切かつ効率的に行うデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体に関する。
【背景技術】
【０００２】
複写装置、複合装置、スキャナ装置、ファクシミリ装置等の画像処理装置においては、データ（画像データ等）を高速かつ適切に転送することが重要であり、スキャナ部で読み取られた画像データ、外部記憶部（例えば、ハードディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＤＶＤ（Digital Video Disk）、ＳＤ（Secure Digital）カード等）から読み取られた画像データ等の入力画像データに対して各種画像処理を施して、一旦ＲＡＭ（Random Access Memory）やハードディスク等の一時保管メモリに保管し、該一時保管メモリに保管した画像データを再度必要な画像処理（スキャナγ補正、フィルタ処理、地肌除去、色補正、プリンタγ補正、中間調処理等）を施して、プリンタ部に送って記録出力に供したり、ネットワークを介してコンピュータ等に転送したり、ファクシミリ送信に供する等の各種出力処理を行う。
【０００３】
そして、近年、複合装置、プリンタ等の画像処理装置においては、ＡＳＩＣ（Application Specific Integrated Circuit）等の画像処理用チップとメモリとの間のデータ通信等において、高速データ通信を実現するために、要求と応答が分離され、応答を待たずに次の要求を発行できる高速な転送を行うスプリットトランザクションのバスであるＰＣＩ（Peripheral Component Interconnect） Express（以下、ＰＣＩｅという。）が用いられるようになってきている。ＰＣＩｅのような高速シリアルバスにおいては、特定の確率でビット化けによるパケット転送エラーが発生する。そして、ＰＣＩｅの場合、ＰＣＩｅの規格によると、ビット化けによるパケット転送エラーが発生した場合、再送（リトライ）を行い、データを保証することとなっている。
【０００４】
一方、コピー処理や転送処理等においては、入力される画像データを所定の処理時間内に転送処理を完了する必要があり、この処理時間をオーバーすると、データ通信を適切に行うことができなくなる。例えば、スキャナ部で原稿の画像の読み取りが始まると、予め設定されている速度で読み取りデータがスキャナ部から入力されるため、この入力画像データをスキャナ部での読み取りに間に合うように、所定の短い時間間隔でデータを送信する必要がある。すなわち、所定の短い周期で一定量のデータを必ず転送し終わらないといけないという同期転送の制約がある。
【０００５】
したがって、データ通信速度に対する要求が高い高速機にあっては、高速シリアルバス（例えば、ＰＣＩｅバス）に要求される同期転送の制約も厳しくなり、高速シリアルバス上で再送処理が発生しただけで、そのオーバーヘッドにより異常画像が発生してしまうことがある。
【０００６】
そこで、従来、データ通信において、パケットデータの送信エラーの発生状況に応じて、該パケットデータの再送とダミーデータの送信のいずれかを適宜選択して行う技術が提案されている（特許文献１参照）。すなわち、この従来技術は、エラー後の再送動作を速く、確実に行うために、送信側から受信側にダミーデータを送信して、受信側に強制的に応答を行わせている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術にあっては、エラーに対応するために、ダミーデータの送信を行って、オーバーヘッドの発生を防止しているため、ダミーデータの送信とデータの再送に時間を必要とし、全体の処理時間を向上させる上で、改良の必要があった。
【０００８】
そこで、本発明は、データが正常転送できなかった場合にデータを再送するデータ通信を安定してかつ速やかに行うデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明は、上記目的を達成するために、通信バスを複数の多重通信バスに分割して各多重通信バスを利用して同じデータを同期を取りながら通信を行って、所定の多重通信バスをデータ採用通信バスとして該データ採用通信バスのデータを後段に転送するに際して、該多重通信バスにおける通信エラーの発生の有無を検出して、通信エラーが未検出のときには、任意の前記多重通信バスを前記データ採用通信バスとするとともに、通信エラーが検出されると、該通信エラーの発生した多重通信バスのデータとの同期を取ったデータ通信を停止して通信エラー未発生の多重通信バスのみによるデータ通信を行って、該通信エラー未発生の多重通信バスの１つをデータ採用通信バスとすることを特徴としている。
【００１０】
また、本発明は、多重通信バスで通信エラーが発生すると、該通信エラーの発生した前記多重通信バスによるデータ通信を停止することを特徴としてもよい。
【００１１】
さらに、本発明は、ライン単位で順次通信されるラインデータの後端を検出し、前記データ通信を停止した後に、該データ通信を停止したラインの後端を検出すると、該ライン後端検出タイミングに合わせて、停止していた該多重通信バスによるデータ通信を再開するとともに、データ通信を再開した多重通信バスのデータを含めた全ての多重通信バスにおけるデータの同期を取ることを特徴としてもよい。
【００１２】
また、本発明は、通信エラーが発生して通信停止となった多重通信バスによるデータ通信の再開までに要するライン数を計数し、また、ライン単位で順次通信されるラインデータの後端を検出して、前記通信エラーが発生したラインから計数したライン数のラインの後端を検出すると、該ライン後端検出タイミングに合わせて、停止していた該多重通信バスによるデータ通信を再開するとともに、データ通信を再開した該多重通信バスのデータを含めた全ての多重通信バスにおけるデータの同期を取ることを特徴としてもよい。
【発明の効果】
【００１３】
本発明によれば、データが正常転送できなかった場合にデータを再送するデータ通信を安定してかつ速やかに行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施例を適用した複合装置の要部ブロック構成図。
【図２】図１のコントローラのデータ受信部とスキャナ画像処理部のデータ送信部の詳細なブロック構成図。
【図３】図２のコントローラのデータ受信部のさらに詳細なブロック構成図。
【図４】第１実施例のデータ通信制御処理を示すフローチャート。
【図５】第２実施例のデータ送信部のブロック構成図。
【図６】第２実施例のデータ通信制御処理を示すフローチャート。
【図７】第３実施例におけるコントローラのデータ受信部のブロック構成図。
【図８】第３実施例におけるデータ送信部のブロック構成図。
【図９】第３実施例のデータ通信制御処理を示すフローチャート。
【図１０】図９のデータ通信制御処理の続きの処理を示すフローチャート。
【図１１】第４実施例におけるコントローラのデータ受信部のブロック構成図。
【図１２】第４実施例におけるスキャナ画像処理部のデータ送信部のブロック構成図。
【図１３】第４実施例のデータ通信制御処理を示すフローチャート。
【図１４】図１３のデータ通信制御処理の続きの処理を示すフローチャート。
【図１５】第５実施例におけるコントローラのデータ受信部とスキャナ画像処理部のデータ送信部のブロック構成図。
【図１６】第５実施例におけるコントローラのデータ受信部のブロック構成図。
【図１７】第５実施例におけるスキャナ画像処理部のデータ送信部のブロック構成図。
【発明を実施するための形態】
【００１５】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１６】
図１〜図４は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第１実施例を示す図であり、図１は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第１実施例を適用した複合装置１の要部ブロック構成図である。
【００１７】
図１において、複合装置１は、コントローラ１００、スキャナ画像処理部２００、スキャナ部３００、プロッタ画像処理部４００、プロッタ部５００、解像度変換画像処理部６００及び図示しないファクシミリ通信部、ネットワーク通信部、操作表示部等を備えている。ファクシミリ通信部は、複合装置１に接続されている公衆電話回線等のファクシミリ通信可能な通信回線を介してファクシミリ受信及びファクシミリ送信を行い、ネットワーク通信部は、専用線やＬＡＮ（Local Area Network）等のネットワークを介して接続されたコンピュータ等のホスト装置と通信してスキャナ部３００で読み取った画像データの送信及び該ホスト装置からのデータの受信処理を行う。操作表示部は、テンキーやスタートキー等の複合装置１の操作を行うのに必要な各種操作キーを備えるとともに、複合装置１から操作者に通知する各種情報を表示するディスプレイ（例えば、液晶ディスプレイ）を備えている。
【００１８】
スキャナ部３００は、例えば、ＣＣＤ(Charge Coupled Device）を利用したラインイメージセンサ等が用いられており、一般にＡＤＦ（Auto Document Feeder）を備えている。ＡＤＦには、複数枚の原稿がセットされ、ＡＤＦは、セットされた原稿を１枚ずつスキャナ部３００の原稿読取位置に送給する。スキャナ部３００は、ＡＤＦから搬送されてきた原稿を走査し、原稿の画像を所定の解像度で読み取ってスキャナ画像処理部２００に出力する。
【００１９】
プロッタ部５００は、プロッタ画像処理部４００から渡されるシアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）等の画像データに基づいて所定の印刷方式、例えば、電子写真方式やインク噴射方式等によって画像を用紙に記録出力する。
【００２０】
スキャナ画像処理部２００は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）等で構成され、スキャナ特性補正部２０１及びデータ送信部２０２等を備えている。スキャナ特性補正部２０１は、スキャナ部３００から入力される原稿の読み取り画像データに対してスキャナ特性の補正等の画像処理（例えば、シェーディング補正処理等）を施してデータ送信部２０２に渡す。
【００２１】
データ送信部２０２は、スキャナ特性補正部２０１の処理した画像データをコントローラ１００に送信する。
【００２２】
コントローラ１００は、ＣＰＵ（Central Processing Unit ）１０１、メインメモリ１０２、データ受信部１０３、データ送信部１０４及びデータ送受信部１０５等を備えており、各部は、バス１０６に接続されている。
【００２３】
メインメモリ１０２は、複合装置１の基本プログラムや本発明のデータ通信制御方法を実行するデータ通信制御プログラム及び必要なシステムデータを格納するとともに、画像データを一時保管する。
【００２４】
ＣＰＵ１０１は、メインメモリ１０２内のプログラムに基づいて複合装置１の各部を制御して、複合装置１としての基本処理を実行するとともに、本発明のデータ通信制御処理を実行する。
【００２５】
データ受信部１０３は、スキャナ画像処理部２００のデータ送信部２０２とＰＣＩｅバス２によって接続されており、データ送信部２０２からＰＣＩｅ転送によって画像データを受信する。なお、データ送信部２０２とデータ受信部１０３とのデータ通信については、後で詳細に説明する。
【００２６】
データ送信部１０４は、プロッタ画像処理部４００とＰＣＩｅバス３によって接続されており、プロッタ画像処理部４００は、データ受信部４０１及び出力処理部４０２等を備えている。データ送信部１０４は、データ受信部４０１とＰＣＩｅバス３によって接続されており、ＣＰＵ１０１の制御下で、メインメモリ１０２内の画像データをＰＣＩｅバス３を通してプロッタ画像処理部４００のデータ受信部４０１に転送する。プロッタ画像処理部４００は、データ受信部４０１の受信した画像データに対して、出力処理部４０２でプロッタ出力に必要な画像処理を行ってプロッタ部５００に出力する。
【００２７】
データ送受信部１０５は、解像度変換画像処理部６００とＰＣＩｅバス４によって接続されており、解像度変換画像処理部６００は、データ送受信部６０１を備えている。データ送受信部１０５は、データ送受信部６０１とＰＣＩｅバス４によって接続されており、ＣＰＵ１０１の制御下で、メインメモリ１０２内の画像データをデータ送受信部６０１に送信し、また、データ送受信部６０１から処理済みの画像データを受信する。解像度変換画像処理部６００は、データ送受信部６０１が受信した画像データに解像度変換処理、回転処理等の画像処理を、必要で有ればメインメモリ１０２を使用して実行し、画像処理後の画像データをデータ送受信部６０１からＰＣＩｅバス４を介してデータ送受信部１０５に転送する。ＣＰＵ１０１は、データ送受信部１０５が解像度変換画像処理部６００から受け取った画像データをメインメモリ１０２に格納する。
【００２８】
すなわち、システム１０１は、メインメモリ１０２に保存された画像データを、データ送受信部１０５、ＰＣＩｅバス４及びデータ送受信部６０１を介して解像度変換画像処理部６００に送って、解像度変換画像処理部６００にγ補正処理や解像度変換処理等を行わせた後、データ送信部１０４、ＰＣＩｅバス３及びデータ受信部４０１を介してプロッタ画像処理部４００からプロッタ部５００に出力され、また、ファクシミリ送信やデータ転送に供される。コントローラ１００は、上記画像回転や解像度変換、画像圧縮、画像伸長等を行う過程で、メインメモリ１０２を画像データの一次保存領域として利用し、また、これらの画像処理を行うデバイスの起動タイミングや処理パラメータの設定等をＣＰＵ１０１が行う。
【００２９】
そして、上記コントローラ１００のデータ受信部１０３及びスキャナ画像処理部２００のデータ送信部２０２は、図２に示すようにブロック構成されている。データ送信部２０２は、データ分割制御部２１１及びＰＣＩｅエンドポイント（ＰＣＩ Express End Point）２１２等を備えており、コントローラ１００のデータ受信部１０３は、ＰＣＩｅルートコンプレックス（ＰＣＩ Express Root Complex）１１１及びデータ選択制御部１１２等を備えている。データ送信部２０２及びデータ受信部１０３は、ＰＣＩｅエンドポイント２１２及びＰＣＩｅルートコンプレックス１１１が、それぞれ対となる２つのリンクＬａとリンクＬｂを備えることで、ＰＣＩｅバス２を同時に同じデータを転送可能な２組のＰＣＩｅバス２ａ及びＰＣＩｅバス２ｂに分割して、同じデータを同期して転送するのに利用する。
【００３０】
データ分割制御部２１１は、スキャナ部３００から入力されスキャナ特性補正部２０１で画像処理された画像データを全く同じ２つの画像データに多重化して、それぞれ内部データバスＢａ及び内部データバスＢｂを経由して、ＰＣＩｅエンドポイント２１２のリンクＬａとリンクＬｂに転送する。
【００３１】
ＰＣＩｅエンドポイント２１２のリンクＬａとリンクＬｂは、ＰＣＩｅルートコンプレックス１１１のリンクＬａとリンクＬｂにそれぞれＰＣＩｅバス２ａとＰＣＩｅバス２ｂによって接続され、データ分割制御部２１１から受け取った画像データをＰＣＩｅバス２ａ、２ｂを介してＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂに転送する。
【００３２】
ＰＣＩｅルートコンプレックス１１１のリンクＬａ、Ｌｂは、それぞれ受信した画像データを内部データバスＢａ、Ｂｂを通してデータ選択制御部１１２に送り、データ選択制御部１１２は、リンクＬａとリンクＬｂから入力される画像データのうち、パケット転送エラーの発生していない画像データを選択してコントローラ１００の内部デバイス（例えば、メインメモリ１０２）に転送する。
【００３３】
データ受信部１０３のＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂは、パケット転送時にビット化け等のエラーが発生すると、１０ビット／８ビット変換エラーやランニングディスパリティエラー等として検知し、パケット転送エラー通知をデータ制御部１１２に行うとともに、ＰＣＩｅバス２ａ、２ｂを介して送信側のＰＣＩｅエンドポイント２１２のリンクＬａ、ＬｂにＮＡＫ信号を送ってパケット転送エラーが発生したことを通知する。すなわち、ＰＣＩｅ転送においては、データ送信側であるデータ送信部２０２では、パケット転送エラーを認識するまでに遅延が発生することとなるが、データ受信側であるデータ受信部１０３は、受け取ったデータをデコードすることで、速やかにパケット転送エラーの発生を検知することができる。したがって、リンクＬａ、Ｌｂを有するＰＣＩｅルートコンプレックス１１１及びリンクＬａ、Ｌｂを有するＰＣＩｅエンドポイント２１２は、全体として通信手段として機能し、また、エラー検出手段として機能する。
【００３４】
データ選択制御部１１２は、図３に示すように、データセレクタ１２１及びデータ選択部１２２等を備えており、データセレクタ１２１には、ＰＣＩｅルートコンプレックス１１１のリンクＬａ、Ｌｂからそれぞれ内部データバスＢａ、Ｂｂによって画像データが送られてくる。
【００３５】
データセレクタ（データ選択手段）１２１は、同じ画像データがほぼ同タイミングで転送されてくる内部データバスＢａと内部データバスＢｂのデータの同期を常に取って、データ選択部１２２からデータ選択指示が通知されると、そのデータ選択指示に従って画像データの整合性を保ったまま内部データバスＢａ、Ｂｂの切り替えを行う。データセレクタ１２１は、一度データ選択指示を受け取って内部データバスＢａ、Ｂｂを切り替えると、その後は内部データバスＢａと内部データバスＢｂのデータの同期を取らず、選択した内部データバスＢａ、Ｂｂの画像データのみをコントローラ１００の内部デバイスに転送する。
【００３６】
このデータセレクタ１２１におけるデータ同期の取り方としては、種々の方法を用いることができる。例えば、内部データバスＢａと内部データバスＢｂのデータが揃ってからどちらかのデータを後段（内部デバイス）に転送する方法を用いることができ、この方法では、データが揃うのを待つため、先にデータが到達した内部データバスＢａ、Ｂｂ側に対して、他方の内部データバスＢａ、Ｂｂから同じデータが転送されるまで待たせるのに、データセレクタ１２１が内部バッファを設けて、リンクＬａとリンクＬｂのデータ通信速度差を吸収する。また、データセレクタ１２１におけるデータ同期の取り方としては、例えば、内部データバスＢａと内部データバスＢｂのうち、先にデータを転送してきた内部データバスＢａ、Ｂｂのデータを後段に転送し、内部データバスＢａと内部データバスＢｂのデータ受信量の差をカウンタ等で常に記録する方法を用いることができる。この方法では、常に転送量の差分を記録・更新して管理するため、データセレクタ１２１内部にデータバッファを持つ必要が無く、回路規模が小さくなるというメリットがある。なお、この場合、ＰＣＩｅバス２ａ、２ｂでパケット転送エラーの発生した画像データは、後で再送されるため、画像データの内容は保証されるが、再送オーバーヘッドによるリンクＬａリンクＬｂの間のデータ通信速度差は発生することはあっても、両方のＰＣＩｅバス２ａ、２ｂの間でデータ内容が異なることはなく、このように、転送されてきたデータを先に後段に送ってしまっても、異常画像となることはない。
【００３７】
データ選択部（バス選択手段）１２２は、データ選択指示をデータセレクタ１２１に出力してデータセレクタ１２１に内部データバスＢａ、Ｂｂのいずれか一方を選択させる。また、データ選択部１２２は、ＣＰＵ１０１によって内部データバスＢａ、Ｂｂのうちいずれか一方の内部データバスＢａ、Ｂｂが初期データバスとして指定され、初期状態として、ＣＰＵ１０１によって指定されている初期データバスをデータセレクタ１２１にデータ選択指示によって選択させる。
【００３８】
データ選択部１２２には、上述のように、リンクＬａ、Ｌｂからパケット転送エラー通知が入力され、データ選択部１２２は、リンクＬａ、Ｌｂのいずれかからパケット転送エラー通知が入力されると、パケット転送エラーの発生していない方のリンクＬａ、Ｌｂに接続されている内部データバスＢａ、Ｂｂを選択させるデータ選択指示をデータセレクタ１２１に出力する。
【００３９】
すなわち、複合装置１は、スキャナ画像処理部２００とコントローラ１００のデータ受信部１０３とのデータ通信においては、スキャナ画像処理部２００のデータ送信部２０２がＰＣＩｅエンドポイント２１２を、コントローラ１００のデータ受信部１０３がＰＣＩｅルートコンプレックス１１１を、それぞれ備え、ＰＣＩｅエンドポイント２１２とＰＣＩｅルートコンプレックス１１１に２つのリンクＬａ、Ｌｂを設けて、各リンクＬａ、Ｌｂ間をそれぞれ２レーンのＰＣＩｅバス２ａとＰＣＩｅバス２ｂで接続して、データの多重転送（多重通信）を行う。
【００４０】
そして、複合装置１は、コントローラ１００のデータ送信部１０４とプロッタ画像処理部４００のデータ受信部４０１との画像データの転送及びコントローラ１００のデータ送受信部１０５と解像度変換画像処理部６００のデータ送受信部６０１のＰＣＩｅバス３及びＰＣＩｅバス４を利用したデータ通信についても、詳細は説明しないが、上記コントローラ１００のデータ受信部１０３とスキャナ画像処理部２００のデータ送信部２０２とのデータ通信と同様に、２レーンのＰＣＩｅバス３、４によってデータの多重転送を行う。
【００４１】
なお、複合装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Video Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ通信制御方法を実行するデータ通信制御プログラムを読み込んでメインメモリ１０２等に導入することで、後述するデータを効率的にかつ高速に転送するデータ通信制御方法を実行するデータ通信装置である複合装置１として構築されている。このデータ通信制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００４２】
次に、本実施例の作用を説明する。本実施例の複合装置１は、ＰＣＩｅバス２、３、４を複数に分割して同じ画像データを多重転送する。なお、以下の説明では、スキャナ画像処理部２００とコントローラ１００のデータ受信部１０３との間のＰＣＩｅバス２を利用したデータ通信について説明するが、データ送信部１０４とプロッタ画像処理部４００及びデータ送受信部１０５と解像度変換画像処理部６００との間のデータ通信も同様である。
【００４３】
すなわち、複合装置１は、スキャナ画像処理部２００のデータ送信部２０２がＰＣＩｅエンドポイント２１２を備え、コントローラ１００のデータ受信部１０３がＰＣＩｅルートコンプレックス１１１を備えている。そして、ＰＣＩｅエンドポイント２１２とＰＣＩｅルートコンプレックス１１１は、それぞれ２つのリンクＬａ、Ｌｂを備え、各リンクＬａ、Ｌｂ間が、それぞれ２レーンのＰＣＩｅバス２ａとＰＣＩｅバス２ｂで接続されていて、データの多重転送を行う。
【００４４】
そして、このデータの多重転送において、データ受信側のデータ受信部１０３は、図４に示すようにデータ通信制御処理を行う。この場合、ハードウェアで実装される場合は、ソフトウェアで実行する場合のようにシーケンシャルに動作処理が行われるわけではないが、説明を明確にするために、図４では、シーケンシャルに記述している。
【００４５】
すなわち、複合装置１は、コントローラ１００のＣＰＵ１０１が、スキャナ画像処理に必要なパラメータを設定してスキャナ部３００による画像読み取りタイミングと同期して、スキャナ画像処理部２００からメインメモリ１０２に画像データを書き込むＤＭＡＣ（Direct Memory Access Controller ：ＤＭＡコントローラ）（図示略）を起動すると（ステップＳ１０１）、データ通信を開始し（ステップＳ１０２）、データセレクタ１２１が、同じ画像データがほぼ同じタイミングで転送されてくる内部データバスＢａと内部データバスＢｂのデータの同期を常に取って、データ選択部１２２から初期設定リンクとして指示されているリンクＬａ、Ｌｂに接続されている内部データバスＢａ、Ｂｂからの画像データを選択して内部デバイスであるメインメモリ１０２に転送する（ステップＳ１０３）。すなわち、初期設定リンクＬａ、Ｌｂに接続されているＰＣＩｅバス２ａ、２ｂをデータ採用通信バスとして、該データ通信バスであるＰＣＩｅバス２ａ、２ｂを通して送られてきたデータを内部デバイス（後段）に転送する。
【００４６】
データ受信部１０３は、データ選択制御部１１２によって、１ページ分の画像データの転送が完了したかチェックし（ステップＳ１０４）、１ページ分の画像データの転送が完了していないときには、リンクＬａまたはリンクＬｂ（ＰＣＩｅバス２ａまたはＰＣＩｅバス２ｂ）に転送エラーが発生したかチェックする（ステップＳ１０５）。すなわち、パケット転送エラーが発生したことをリンクＬａ、Ｌｂが検知すると、リンクＬａ、Ｌｂは、パケット転送エラー通知をデータ受信部１０３に行い、データ受信部１０３は、このパケット転送エラー通知がリンクＬａ、Ｌｂからあるか否かによって転送エラーが発生したか否かチェックする。データ受信部１０３は、ステップＳ１０５で、リンクＬａ、Ｌｂにパケット転送エラーが発生していないときには、ステップＳ１０４に戻って、１ページ分のデータ通信が完了したかのチェックから上記同様に処理を行う（ステップＳ１０４、Ｓ１０５）。
【００４７】
データ受信部１０３は、ステップＳ１０４で、パケット転送エラーが発生することなく、１ページ分の画像データの転送が完了すると、データ通信制御処理を終了する。データ受信部１０３は、ステップＳ１０４で、１ページ分の転送が完了する前に、ステップＳ１０５で、リンクＬａまたはリンクＬｂでパケット転送エラーが発生すると、パケット転送エラーがリンクＬａで発生したのかリンクＬｂで発生したのかを確認する（ステップＳ１０６）。
【００４８】
ステップＳ１０６で、リンクＬａでパケット転送エラーが発生していると、データ受信部１０３は、データ選択部１２２によってパケット転送エラーの発生していない方のリンクＬｂ（ＰＣＩｅバス２ｂ）からのデータの選択を指示するデータ選択指示をデータセレクタ１２１に通知するとともに、ＣＰＵ１０１にパケット転送エラーが発生したことを通知するエラー割り込みを発生させる（ステップＳ１０７）。
【００４９】
データセレクタ１２１は、データ選択部１２２からリンクＬｂ側、すなわち、内部データバスＢｂからのデータを選択するようにとのデータ選択指示があると、該データ選択指示で指示されたリンクＬｂ側である内部データバスＢｂからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２へのデータ転送を開始するとともに、以降、リンクＬａとリンクＬｂからのデータの同期、すなわち、内部データバスＢａからの画像データと内部データバスＢｂからの画像データの同期を取ることを解除して、パケット転送エラーによる再送動作のオーバーヘッドによって遅延の生じるＰＣＩｅバス２ａ（リンクＬａ）からのデータを待たずに、選択された内部データバスＢｂのデータをそのまま後段の内部デバイスであるメインメモリ１０２に転送するように制御して、１ページ分の画像データの転送を行う（ステップＳ１０８）。すなわち、データセレクタ１２１は、内部データバスＢａと内部データバスＢｂのデータの同期を取ることで、データバスＢａ、Ｂｂの切り替えによるデータの欠損や冗長等が発生しないようバス切り替えを行い、バス切り替えを行うと、内部データバスＢａと内部データバスＢｂのデータの同期を止めて、パケット転送エラーによる再送動作のオーバーヘッドによって遅延の生じるバス（いまの場合、内部データバスＢａ）からのデータを待たずに、選択された内部データバスＢａ、Ｂｂ（いまの場合、内部データバスＢｂ）のデータをそのまま後段の内部デバイスであるメインメモリ１０２に流す。
【００５０】
ステップＳ１０６で、リンクＬｂでパケット転送エラーが発生していると、データ受信部１０３は、データ選択部１２２によってパケット転送エラーの発生していない方のリンクＬａからのデータの選択を指示するデータ選択指示をデータセレクタ１２１に通知するとともに、ＣＰＵ１０１にパケット転送エラーが発生したことを通知するエラー割り込みを発生させる（ステップＳ１０９）。
【００５１】
データセレクタ１２１は、データ選択部１２２からリンクＬａ側、すなわち、内部データバスＢａからのデータを選択するようにとのデータ選択指示があると、該データ選択指示で指示されたリンクＬａ側である内部データバスＢａからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を開始するとともに、以降、リンクＬａからのデータとリンクＬｂからのデータの同期、すなわち、内部データバスＢａからの画像データと内部データバスＢｂからの画像データの同期を取ることを解除して、パケット転送エラーによる再送動作のオーバーヘッドによって遅延の生じるＰＣＩｅバス２ｂ（リンクＬｂ）からのデータを待たずに、選択された内部データバスＢａのデータをそのまま後段の内部デバイスであるメインメモリ１０２に転送するように制御して、１ページ分の画像データの転送を行う（ステップＳ１１０）。
【００５２】
なお、上記説明では、スキャナ画像処理部２００とコントローラのデータ受信部１０３との間のデータ通信について説明したが、データ送信部１０４とプロッタ画像処理部４００との間及びデータ送受信部１０５と解像度変換画像処理部６００との間のデータ通信についても同様に処理することができる。
【００５３】
また、上記説明では、ＰＣＩｅ２〜４を多重化する場合の多重化の数については、上記の場合のように２つに限定されるものではない。
【００５４】
さらに、データ通信方法としては、例えば、２つの異なるＤＭＡＣにメモリアドレスやデータサイズ等について同じパラメータの設定を行い、２つのＤＭＡ転送が同時に動作する方法でもよい。この場合、ＤＭＡＣがデータ送信側に存在してデータ受信側にライト動作を行うことでデータを転送してもよいし、データ受信側にＤＭＡＣが存在してデータ送信側からリード動作を行うことでデータ通信を行ってもよい。
【００５５】
このように、本実施例の複合装置１は、ＰＣＩｅバス２を複数の多重通信バスであるＰＣＩｅバス２ａ、２ｂに分割して各ＰＣＩｅバス２ａ、２ｂを利用して同じデータを同期を取りながら通信して、所定のＰＣＩｅバス２ａ、２ｂをデータ採用通信バスとして該データ採用通信バスであるＰＣＩｅバス２ａ、２ｂのデータを後段の内部デバイス（例えば、メインメモリ１０２）に転送するに際して、該ＰＣＩｅバス２ａ、２ｂにおける通信エラーの発生の有無を検出して、通信エラーが未検出のときには、任意のＰＣＩｅバス２ａ、２ｂをデータ採用通信バスとするとともに、通信エラーが検出されると、該通信エラーの発生したＰＣＩｅバス２ａ、２ｂのデータとの同期を取ったデータ通信を停止して通信エラー未発生のＰＣＩｅバス２ａ、２ｂのみによるデータ通信を行って、該通信エラー未発生のＰＣＩｅバス２ａ、２ｂの１つをデータ採用通信バスとしている。
【００５６】
したがって、多重化されたＰＣＩｅ２ａ、２ｂのいずれかでパケット転送エラーが発生して再送動作によるオーバーヘッドが発生した場合であっても、残りのデータバス２ａ、２ｂからのデータを後段モジュールに供給することができ、ＰＣＩｅの同期転送制約を遵守して、異常画像が発生することを防止することができる。
【００５７】
すなわち、ＰＣＩｅバス２のような高速シリアルバスでは、特定の確率でビット化けによるパケット転送にエラーが発生するが、ＰＣＩｅの規格では、ビット化けによるパケット転送エラーが発生した場合には、再送（リトライ）を行い、データを保証することとなっている。ところが、再送が発生すると、再送動作を行うための一定のオーバーヘッドがかかり、一時的にデータ通信がストップする。
【００５８】
一方、プロッタやスキャナのようなデータに対して所定周期で動作するエンジンは、画像データのライン周期毎に確実にデータ転送を行わなないと、異常画像が発生する。
【００５９】
従って、データ通信速度に対する要求が高い高速機では、特に、ＰＣＩｅバス２に要求されるデータの同期転送の制約も厳しくなり、ＰＣＩｅバス２上で再送が発生しただけで、そのオーバーヘッドにより異常画像が発生してしまうことがある。
【００６０】
ところが、本実施例の複合装置１は、ＰＣＩｅバス２を、ＰＣＩｅバス２ａとＰＣＩｅバス２ｂに多重化して同期させてデータ転送しているので、いずれかのＰＣＩｅバス２ａ、２ｂにパケット転送エラーによる再送が発生した場合においても、データ通信速度を保証し、異常画像の発生を防止することができる。そして、ＰＣＩｅ規格によれば、パケット転送エラーは、１０の−１２乗以下の確率での発生であれば、認められているが、そのような確率であれば１ページのデータ通信を行う間に２つのＰＣＩｅバス２ａ、２ｂが両方ともパケット転送エラーを発生する確率は非常に低く、２重転送を行うＰＣＩｅバス２ａ、２ｂによって転送効率を向上させることができる。
【００６１】
また、本実施例においては、データの受信側での処理のみで、エラー発生時のデータ処理を行うことができるため、複数のリンクで接続可能なインターフェイスを持った汎用のチップセットをデータ送信側に用いても適切に処理を行うことができる。
【実施例２】
【００６２】
図５及び図６は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第２実施例を示す図であり、図５は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第２実施例を適用した複合装置１のスキャナ画像処理部２００のデータ送信部２０２の詳細なブロック構成図である。
【００６３】
なお、本実施例は、上記第１実施例の複合装置１と同様の複合装置に適用したものであり、本実施例の説明においては、上記第１実施例と同様の構成部分には、同一の符号を付して、その詳細な説明を省略するとともに、図示しない部分についても、必要に応じて第１実施例の説明で用いた符号をそのまま用いて説明する。
【００６４】
複合装置１は、第１実施例の複合装置１と同様に、コントローラ１００、スキャナ画像処理部２００、スキャナ部３００、プロッタ画像処理部４００、プロッタ部５００、解像度変換画像処理部６００及び図示しないファクシミリ通信部、ネットワーク通信部、操作表示部等を備えている。そして、複合装置１は、図１に示したように、スキャナ画像処理部２００が、スキャナ特性補正部２０１及びデータ送信部２０２等を、プロッタ画像処理部４００が、データ受信部４０１と出力処理部４０２等を、解像度変換画像処理部６００が備えており、コントローラ１００が、ＣＰＵ１０１、メインメモリ１０２、データ受信部１０３、データ送受信部１０４及びデータ送受信部１０５等を備えている。
【００６５】
そして、本実施例の複合装置１は、第１実施例の場合と同様に、スキャナ画像処理部３００からデータ受信部１０３へのＰＣＩｅバス２を用いた画像データの転送、データ送受信部１０４からプロッタ画像処理部４００へのＰＣＩｅバス３を用いた画像データの転送及びデータ送受信部１０５と解像度変換画像処理部６００とのＰＣＩｅバス４を用いた画像データの転送において、各ＰＣＩｅバス２〜４をそれぞれ複数のバスに分割した多重転送を行う。
【００６６】
そして、本実施例の複合装置１においては、画像データの送信側が、画像データの多重転送において、パケットデータ通信にエラーの発生したリンクによる画像データの送信を停止させる。
【００６７】
以下、スキャナ画像処理部２００とコントローラ１００のデータ受信部１０３との間のデータ通信の場合について、図５及び図６を用いて説明するが、データ送受信部１０４からプロッタ画像処理部４００へのＰＣＩｅバス３を用いた画像データの転送及びデータ送受信部１０５と解像度変換画像処理部６００とのＰＣＩｅバス４を用いた画像データの転送についても同様である。
【００６８】
図５は、スキャナ画像処理部２００のデータ分割制御部２１１の詳細なブロック構成を示しており、スキャナ画像処理部２００は、上述のように、スキャナ特性補正部２０１とデータ送信部２０２を備えているが、このデータ送信部２０２は、図５に示すように、データ分割制御部２１１とＰＣＩｅエンドポイント２１２等を備えている。
【００６９】
ＰＣＩｅエンドポイント２１２は、２つのリンクＬａとリンクＬｂを備えており、ＰＣＩｅエンドポイント２１２のリンクＬａとリンクＬｂは、第１実施例のデータ受信部１０３のＰＣＩｅルートコンプレックス１１１のリンクＬａとリンクＬｂがそれぞれ対となることで、ＰＣＩｅバス２を同時に同じデータを転送可能な２組のＰＣＩｅバス２ａ及びＰＣＩｅバス２ｂとして利用する。
【００７０】
データ分割制御部２１１は、スキャナ特性補正部２０１からの内部データバスＤＢを、内部データバスＢａと内部データバスＢｂの２つに分離して、同じデータを同時にリンクＬａとリンクＬｂに供給する。
【００７１】
データ分割制御部２１１は、この内部データバスＢａと内部データバスＢｂの途中に、通信停止手段としてのデータ停止部２２１ａとデータ停止部２２１ｂがそれぞれ配設されており、データ停止部２２１ａ及びデータ停止部２２１ｂは、リンクＬａ及びリンクＬｂからパケット転送エラー通知が入力される。
【００７２】
すなわち、第１実施例において説明したように、データ受信部１０３のＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂは、パケット転送時にビット化け等のエラーが発生すると、１０ビット／８ビット変換エラーやランニングディスパリティエラー等として検知し、パケット転送エラー通知をデータ制御部１１２に行うとともに、ＰＣＩｅバス２ａ、２ｂを介して送信側のＰＣＩｅエンドポイント２１２のリンクＬａ、ＬｂにＮＡＫ信号を送ってパケット転送エラーが発生したことを通知する。
【００７３】
ＰＣＩｅエンドポイント２１２のリンクＬａとリンクＬｂは、それぞれ内部データバスＢａと内部データバスＢｂからの画像データをＰＣＩｅバス２ａとＰＣＩｅバス２ｂを経由させてデータ受信部１０３のＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂに送信し、また、ＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂからＰＣＩｅバス２ａ、２ｂを通してパケット転送エラーを受け取ると、パケット転送エラー通知をデータ休止部２２１ａ及びデータ休止部２２１ｂに出力する。
【００７４】
そして、データ休止部２２１ａ及びデータ休止部２２１ｂは、リンクＬａ及びリンクＬｂからパケット転送エラー通知が入力されない間は、内部データバスＢａ及び内部データバスＢｂをリンクＬａ及びリンクＬｂに接続して各内部データバスＢａ及び内部データバスＢｂを流れる画像データをリンクＬａ及びリンクＬｂに渡し、パケット転送エラー通知がリンクＬａまたはリンクＬｂから入ると、パケット転送エラー通知の入った方のデータ休止部２２１ａまたはデータ休止部２２１ｂが、自己の接続されている内部データバスＢａまたは内部データバスＢｂを遮断してリンクＬａまたはリンクＬｂへの画像データの供給を停止する。
【００７５】
次に、本実施例の作用を説明する。本実施例の複合装置１は、ＰＣＩｅバス２〜４において複数のリンクでデータの多重転送を行うが、パケット転送エラーが発生した場合には、図６に示すように、送信側からのエラーの発生したリンクによるデータ通信を停止する。
【００７６】
なお、このデータの多重転送において、データ送信側のデータ送信部２０２は、図６に示すようにデータ通信制御処理を行う。この場合、第１実施例の場合と同様に、ハードウェアで実装される場合は、ソフトウェアで実行する場合のようにシーケンシャルに動作処理が行われるわけではないが、説明を明確にするために、図６では、シーケンシャルに記述している。
【００７７】
すなわち、複合装置１は、コントローラ１００のＣＰＵ１０１が、スキャナ画像処理に必要なパラメータを設定してスキャナ部３００による画像読み取りタイミングと同期して、スキャナ画像処理部２００からメインメモリ１０２に画像データを書き込むＤＭＡＣを起動すると（ステップＳ２０１）、データ通信を開始し、データ停止部２２１ａ及びデータ停止部２２１ｂがオンとなって、内部データバスＢａ及び内部データバスＢｂを通して送られてくる画像データを、ＰＣＩｅエンドポイント２１２のそれぞれリンクＬａ及びリンクＬｂからＰＣＩｅバス２ａ及びＰＣＩｅバス２ｂを通してコントローラ１００側に転送する（ステップＳ２０２）。
【００７８】
複合装置１は、１ページ分の画像データの転送が完了したかチェックし（ステップＳ２０３）、１ページ分の画像データの転送が完了していないときには、リンクＬａまたはリンクＬｂ（ＰＣＩｅバス２ａまたはＰＣＩｅバス２ｂ）に転送エラーが発生したかチェックする（ステップＳ２０４）。すなわち、パケット転送エラーが発生したことを受信側のリンクＬａ、Ｌｂが検知すると、該受信側のリンクＬａ、ＬｂからＰＣＩｅバス２ａ、２ｂを通して送信側のリンクＬａ、Ｌｂにパケット転送エラーが発生したことを示すＮＡＫ信号が送られ、送信側のリンクＬａ、Ｌｂは、ＮＡＫ信号が送られてくると、対応するデータ休止部２２１ａ、２２１ｂにパケット転送エラー通知を行うため、データ分割制御部２１１は、データ休止部２２１ａ、２２１ｂに、このパケット転送エラー通知が送られてきたかチェックする。
【００７９】
データ分割制御部２１１は、ステップＳ２０４で、リンクＬａ、Ｌｂにパケット転送エラーが発生していないときには、ステップＳ２０３に戻って、１ページ分のデータ通信が完了したかのチェックから上記同様に処理を行う（ステップＳ２０３、Ｓ２０４）。
【００８０】
データ分割制御部２１１は、ステップＳ２０３で、パケット転送エラーが発生することなく、１ページ分の画像データの転送が完了すると、データ通信制御処理を終了する。データ分割制御部２１１は、ステップＳ２０３で、１ページ分のデータ転送が完了する前に、ステップＳ２０４で、リンクＬａまたはリンクＬｂでパケット転送エラーが発生すると、転送エラーがリンクＬａで発生したのかリンクＬｂで発生したのかをリンクＬａ、Ｌｂのいずれがデータ受信側からのＮＡＫ信号を受信して、パケット転送エラー通知をデータ休止部２２１ａ、２２１ｂのいずれに行ったかによって確認する（ステップＳ２０５）。
【００８１】
ステップＳ２０５で、リンクＬａでパケット転送エラーが発生していると、データ停止部２２１ａが内部データバスＢａを閉鎖して、リンクＬａへの画像データの転送を停止し、リンクＬａによるコントローラ１００側へのＰＣＩｅバス２ａを利用した画像データの転送を停止するとともに、ＣＰＵ１０１にパケット転送エラーが発生したことを通知するエラー割り込みを発生させる（ステップＳ２０６）。
【００８２】
ステップＳ２０５で、リンクＬｂでパケット転送エラーが発生していると、データ停止部２２１ｂが内部データバスＢｂを閉鎖して、リンクＬｂへの画像データの転送を停止し、リンクＬｂによるコントローラ１００側へのＰＣＩｅバス２ｂを利用した画像データの転送を停止するとともに、ＣＰＵ１０１にパケット転送エラーが発生したことを通知するエラー割り込みを発生させる（ステップＳ２０７）。なお、受信側のデータ受信部１０３での処理は、第１実施例と同様である。
【００８３】
このように、本実施例の複合装置１は、ＰＣＩｅ２ａ、２ｂで通信エラーが発生すると、該通信エラーの発生したＰＣＩｅバス２ａ、２ｂによるデータ通信を停止している。
【００８４】
したがって、パケット転送エラーの発生したＰＣＩｅバス２ａ、２ｂによるデータ通信を中断することで、不要なデータ転送を中断することができる。
【００８５】
すなわち、ＰＣＩｅの規格によれば、受信側でパケット転送エラーを検知した場合は、送信側に対してＮＡＫ信号を送ってデータの再送を要求することとなっており、データ送信側は、このＮＡＫ信号によってパケット転送エラーが発生したことを認識することができる。そこで、本実施例の複合装置１は、このＮＡＫ信号を利用して、多重転送を行っているパケット転送において、パケット転送エラーが発生すると、該パケット転送エラーの発生したＰＣＩｅバス２ａ、２ｂによるデータ通信を停止している。
【００８６】
そして、データ受信側であるコントローラ１００は、上述のように、パケット転送エラー発生後、データセレクタ１２１がコントローラ１００の内部デバイス（メインメモリ１０２等）に転送する画像データを、パケット転送エラーの発生していないリンクＬａ、Ｌｂからの画像データに切り替えた後は、パケット転送エラーの発生したリンクＬａ、Ｌｂを経由した画像データについては使用しないため、データ送信側であるスキャナ画像処理部２００がパケット転送エラーの発生したリンクＬａ、Ｌｂからの画像データを送信することで、処理の簡略化を向上させることができる。
【００８７】
なお、本実施例のデータ通信方法としては、第１実施例の場合と同様に、２つの異なるＤＭＡＣにメモリアドレスやデータサイズなどに関して同じパラメータ設定を行い、２つのＤＭＡ転送を同時に動作させる方法でもよく、この場合、パケット転送エラー検知を要因に割り込みを発生させて、ＣＰＵ１０１がパケット転送エラーの発生したＤＭＡＣを停止する方法を用いることができる。この場合、データ送信側に特別なハードウェアによる仕組みは必要なく、複数のリンクで接続可能なインターフェイスを持った汎用のチップセットを送信側に用いても実現が可能である。
【実施例３】
【００８８】
図７〜図１０は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第３実施例を示す図であり、図７は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第３実施例を適用した複合装置１におけるコントローラ１００のデータ受信部１０３の詳細なブロック構成図、図８は、スキャナ画像処理部２００のデータ送信部２０２の詳細なブロック構成図である。
【００８９】
なお、本実施例は、上記第１実施例の複合装置１と同様の複合装置に適用したものであり、本実施例の説明においては、上記第１実施例と同様の構成部分には、同一の符号を付して、その詳細な説明を省略するとともに、図示しない部分についても、必要に応じて第１実施例の説明で用いた符号をそのまま用いて説明する。
【００９０】
複合装置１は、第１実施例の複合装置１と同様に、コントローラ１００、スキャナ画像処理部２００、スキャナ部３００、プロッタ画像処理部４００、プロッタ部５００、解像度変換画像処理部６００及び図示しないファクシミリ通信部、ネットワーク通信部、操作表示部等を備えている。そして、複合装置１は、図１に示したように、スキャナ画像処理部２００が、スキャナ特性補正部２０１及びデータ送信部２０２等を、プロッタ画像処理部４００が、データ受信部４０１と出力処理部４０２等を、解像度変換画像処理部６００が備えており、コントローラ１００が、ＣＰＵ１０１、メインメモリ１０２、データ受信部１０３、データ送受信部１０４及びデータ送受信部１０５等を備えている。
【００９１】
本実施例の複合装置１は、第１実施例の場合と同様に、スキャナ画像処理部３００からデータ受信部１０３へのＰＣＩｅバス２を用いた画像データの転送、データ送受信部１０４からプロッタ画像処理部４００へのＰＣＩｅバス３を用いた画像データの転送及びデータ送受信部１０５と解像度変換画像処理部６００とのＰＣＩｅバス４を用いた画像データの転送において、各ＰＣＩｅバス２〜４をそれぞれ複数のバスに分割した多重転送を行う。
【００９２】
そして、本実施例の複合装置１においては、画像データの送信側が、画像データの多重転送において、パケットデータ通信にエラーの発生したリンクによる画像データの送信を停止させるとともに、パケット転送エラー発生後も次のラインからライン毎に同期を取って画像データの多重転送を開始する。
【００９３】
以下、スキャナ画像処理部２００とコントローラ１００のデータ受信部１０３との間のデータ通信の場合について、図７〜図１０を用いて説明するが、データ送受信部１０４からプロッタ画像処理部４００へのＰＣＩｅバス３を用いた画像データの転送及びデータ送受信部１０５と解像度変換画像処理部６００とのＰＣＩｅバス４を用いた画像データの転送についても同様である。
【００９４】
図７は、コントローラ１００のデータ受信部１０３の詳細なブロック構成を示しており、データ受信部１０３は、上述のように、ＰＣＩｅルートコンプレックス１１１とデータ選択制御部１１２を備えているが、このデータ選択制御部１１２が、図７に示すように、上記第１実施例と同様のデータセレクタ１２１とデータ選択部１２２を備えているとともに、ライン後端検知部１２３を備えている。
【００９５】
ライン後端検知部（ライン後端検出手段）１２３は、内部データバスＢａと内部データバスＢｂによって転送される画像データをモニターし、例えば、画像データの主走査データサイズと内部データバスＢａ及び内部データバスＢｂを通過した画像データの総転送サイズとから、画像データの各ラインの後端にあたるデータの転送を検知する。ライン後端検知部１２３は、各ラインの転送終了を検知すると、データ選択部１２２にライン同期信号を通知する。
【００９６】
データ選択部１２２は、リンクＬａとリンクＬｂからパケット転送エラー通知があると、転送エラーの発生していない方のリンクＬａ、Ｌｂの内部データバスＢａ、Ｂｂの選択を指示するデータ選択指示をデータセレクタ１２１に行う。また、ライン後端検知部１２３から通知されたライン同期信号に基づいて、データセレクタ１２１へのデータ選択指示を解除（リセット）し、データセレクタ１２１に対して再び内部データバスＢａと内部データバスＢｂを流れるデータの同期を取るように指示する。
【００９７】
データセレクタ１２１は、上記同様に、同じデータがほぼ同タイミングで転送されてくる内部データバスＢａと内部データバスＢｂ２のデータの同期を常に取り、データ選択部１２２からデータ選択指示が通知されると、その指示に従ってデータの整合性を保ったまま内部データバスＢａ、Ｂｂの切り替えを行う。データセレクタ１２１は、一度データ選択指示を受けて、内部データバスＢａ、Ｂｂを切り替えると、その後は内部データバス１Ｂａと内部データバスＢｂのデータの同期を取らず、選択された内部データバスＢａ、Ｂｂのデータのみをコントローラ１００の内部デバイス（例えば、メインメモリ１０２）に転送するように動作する。さらに、データセレクタ１２１は、一旦、内部データバスＢａと内部データバスＢｂのデータの同期を止めた後に、データ選択部１２２からデータ選択指示が解除されると、解除されたタイミング以降のデータに関しては、再び内部データバスＢａと内部データバスＢｂのデータの同期を取るように動作し、再びデータ選択指示を受けるまで同期を取り続ける。
【００９８】
図８は、スキャナ画像処理部２００のデータ分割制御部２１１の詳細なブロック構成を示しており、スキャナ画像処理部２００は、上述のように、スキャナ特性補正部２０１とデータ送信部２０２を備えているが、このデータ送信部２０２は、図８に示すように、データ分割制御部２１１とＰＣＩｅエンドポイント２１２等を備えている。
【００９９】
ＰＣＩｅエンドポイント２１２は、上記第１実施例及び第２実施例と同様に、２つのリンクＬａとリンクＬｂを備えており、ＰＣＩｅエンドポイント２１２のリンクＬａとリンクＬｂは、第１実施例のデータ受信部１０３のＰＣＩｅルートコンプレックス１１１のリンクＬａとリンクＬｂがそれぞれ対となることで、ＰＣＩｅバス２を同時に同じデータを転送可能な２組のＰＣＩｅバス２ａ及びＰＣＩｅバス２ｂとして利用する。
【０１００】
データ分割制御部２１１は、データ休止部２２１ａ、２２１ｂ及びライン後端検知部２２２等を備えており、スキャナ特性補正部２０１から画像データが送られてくる内部データバスＤＢを、内部データバスＢａと内部データバスＢｂの２つに分離して、全く同じデータを同時にリンクＬａとリンクＬｂに供給する。
【０１０１】
データ分割制御部２１１は、この内部データバスＢａと内部データバスＢｂの途中に、データ停止部２２１ａとデータ停止部２２１ｂがそれぞれ配設されており、データ停止部２２１ａ及びデータ停止部２２１ｂには、リンクＬａ及びリンクＬｂからパケット転送エラー通知が入力される。
【０１０２】
ＰＣＩｅエンドポイント２１２のリンクＬａとリンクＬｂは、それぞれ内部データバスＢａと内部データバスＢｂからの画像データをＰＣＩｅバス２ａとＰＣＩｅバス２ｂを経由させてデータ受信部１０３のＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂに送信し、また、ＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂからＰＣＩｅバス２ａ、２ｂを通してパケット転送エラーを受け取ると、パケット転送エラー通知をデータ休止部２２１ａ及びデータ休止部２２１ｂに出力する。
【０１０３】
ライン後端検知部（ライン後端検出手段）２２２は、内部データバスＢａと内部データバスＢｂによって転送される画像データをモニターし、例えば、画像データの主走査データサイズと内部データバスＢａ及び内部データバスＢｂを通過した画像データの総転送サイズとから、画像データの各ラインの後端にあたるデータの転送を検知する。ライン後端検知部２２２は、各ラインの転送終了を検知すると、データ休止部２２１ａとデータ休止部２２１ｂにライン同期信号を通知する。
【０１０４】
データ停止部２２１ａ及びデータ停止部２２１ｂは、内部データバスＢａ、Ｂｂの画像データをリンクＬａ、Ｌｂに転送するが、リンクＬａ、Ｌｂからパケット転送エラー通知があると、パケット転送エラーの発生したＰＣＩｅバス２ａ、２ｂのリンクＬａ、Ｌｂに画像データを供給する内部データバスＢａ、Ｂｂのデータ通信を停止する。また、データ停止部２２１ａ及びデータ停止部２２１ｂは、パケット転送エラーを検知して一旦データ通信を中断した後に、ライン後端検知部２２２からライン同期信号を受け取ると、次のラインの先頭から内部データバスＢａ、Ｂｂを開いてリンクＬａ、Ｌｂへのデータ通信を再開する。
【０１０５】
次に、本実施例の作用を説明する。本実施例の複合装置１は、図９及び図１０に示すように、パケット転送エラーの発生したＰＣＩｅバス２ａ、２ｂを利用したデータ通信を中断しても、次のラインから多重転送を再開する。
【０１０６】
なお、このデータの多重転送において、データ受信側のデータ受信部１０３及びデータ送信側のデータ送信部２０２は、図９及び図１０に示すようにデータ通信制御処理を行う。この場合、上記実施例の場合と同様に、ハードウェアで実装される場合は、ソフトウェアで実行する場合のようにシーケンシャルに動作処理が行われるわけではないが、説明を明確にするために、図９及び図１０では、シーケンシャルに記述している。
【０１０７】
すなわち、複合装置１は、図９に示すように、コントローラ１００のＣＰＵ１０１が、スキャナ画像処理に必要なパラメータを設定してスキャナ部３００による画像読み取りタイミングと同期して、スキャナ画像処理部２００からメインメモリ１０２に画像データを書き込むＤＭＡＣを起動すると（ステップＳ３０１）、データ通信を開始し（ステップＳ３０２）、データセレクタ１２１が、同じ画像データがほぼ同タイミングで転送されてくる内部データバスＢａと内部データバスＢｂのデータの同期を常に取って、データ選択部１２２から初期設定リンクとして指示されているリンクＬａ、Ｌｂに接続されている内部データバスＢａ、Ｂｂからの画像データを選択して内部デバイスであるメインメモリ１０２に転送する（ステップＳ３０３）。
【０１０８】
データ受信部１０３は、データ選択制御部１１２によって、１ページ分の画像データの転送が完了したかチェックし（ステップＳ３０４）、１ページ分の画像データの転送が完了していないときには、リンクＬａまたはリンクＬｂにパケット転送エラーが発生したかチェックする（ステップＳ３０５）。データ受信部１０３は、ステップＳ３０５で、リンクＬａ、Ｌｂにパケット転送エラーが発生していないときには、ステップＳ３０３に戻って、データ受信を継続して、ステップＳ３０４で、１ページ分のデータ通信が完了したかのチェックを行い、ステップＳ３０５で、転送エラーが発生したかの処理を繰り返し行う（ステップＳ３０３〜Ｓ３０５）。パケット転送エラーについては、上述のように、データ受信部１０３では、ＰＣＩｅルートコンプレックス１１１がパケット転送エラーの発生を検知してデータ選択部１２４にパケット転送エラー通知を行うとともにデータ送信側にＰＣＩｅバス２を通してＮＡＫ信号によってパケット転送エラーの発生を通知し、データ送信部２０２では、データ受信部１０３のＰＣＩｅルートコンプレックス１１１から通知されるパケット転送エラー通知をＰＣＩｅエンドポイント２１２が受け取ってデータ休止部２２２ａ、２２１ｂに渡す。
【０１０９】
データ受信部１０３は、ステップＳ３０４で、パケット転送エラーが発生することなく、１ページ分の画像データの転送が完了すると、データ通信制御処理を終了する。データ受信部１０３は、ステップＳ３０４で、１ページ分の転送が完了する前に、ステップＳ３０５で、リンクＬａまたはリンクＬｂでパケット転送エラーが発生すると、転送エラーがリンクＬａで発生したのかリンクＬｂで発生したのかを確認する（ステップＳ３０６）。
【０１１０】
ステップＳ３０６で、リンクＬａでパケット転送エラーが発生していると、図１０に示すように、データ送信側のデータ送信部２０２は、パケット転送エラーの発生したリンクＬａに画像データを供給するデータ休止部２２１ａを閉じてリンクＬａのデータ通信を停止させ（ステップＳ３０７）、データ受信側のデータ受信部１０３は、データ選択部１２２が、パケット転送エラーの発生していない方のリンクＬｂからのデータの選択を指示するデータ選択指示をデータセレクタ１２１に通知するとともに、ＣＰＵ１０１にパケット転送エラーが発生したことを通知するエラー割り込みを発生させ（ステップＳ３０８）、データセレクタ１２１が、データ選択部１２２からリンクＬｂ側、すなわち、内部データバスＢｂからのデータを選択するようにとのデータ選択指示があると、該データ選択指示で指示されたリンクＬｂ側である内部データバスＢｂからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を開始して（ステップＳ３０９）、ライン後端検知部１２３及びライン後端検知部２２２が、ラインの後端を検知して、１ライン分のデータ通信が完了したかチェックする（ステップＳ３１０）。
【０１１１】
ステップＳ３１０で、１ライン分のデータ通信が完了していないときには、データセレクタ１２１は、ステップＳ３０９に戻って、リンクＬｂ側である内部データバスＢｂからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を継続して、１ライン分のデータ通信が完了したかチェックする処理を繰り返し行う（ステップＳ３０９、ステップＳ３１０）。
【０１１２】
ステップＳ３１０で、データ送信側のライン後端検知部２２２は、ラインの後端を検知して１ライン分のデータ通信が完了すると、データ停止部２２１ａに対しライン同期信号を発生し、また、データ受信側のライン後端検知部１２３は、ラインの後端を検知するとデータ選択部１２２に対しライン同期信号を発生する。
【０１１３】
データ受信側のデータ選択部１２２が、データ選択指示を解除し（ステップＳ３１１）、データ送信側のデータ停止部２２１ａが、停止していた内部データバスＢａ、すなわち、リンクＬａのデータ通信を再開して（ステップＳ３１２）、ステップＳ３０３に戻り、２つのリンクＬａ、Ｌｂからデータの同期を取りつつ、初期設定リンクからのデータを選択して転送を開始する処理から上記同様に処理する（ステップＳ３０３〜Ｓ３１２）。
【０１１４】
そして、図９のステップＳ３０５で、パケット転送エラーが発生して、ステップＳ３０６で、転送エラーがリンクＬｂで発生していると、図１０に示すように、データ送信側のデータ送信部２０２は、パケット転送エラーの発生したリンクＬｂに画像データを供給するデータ休止部２２１ｂを閉じてリンクＬｂのデータ通信を停止させ（ステップＳ３３１３）、データ受信側のデータ受信部１０３は、データ選択部１２２が、パケット転送エラーの発生していない方のリンクＬａからのデータの選択を指示するデータ選択指示をデータセレクタ１２１に通知するとともに、ＣＰＵ１０１にパケット転送エラーが発生したことを通知するエラー割り込みを発生させる（ステップＳ３１４）。データセレクタ１２１は、データ選択部１２２からリンクＬａ側、すなわち、内部データバスＢａからのデータを選択するようにとのデータ選択指示があると、該データ選択指示で指示されたリンクＬａ側である内部データバスＢａからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を開始して（ステップＳ３１５）、１ライン分のデータ通信が完了したかチェックする（ステップＳ３１６）。
【０１１５】
この場合、上記同様に、データセレクタ１２１は、内部データバスＢａと内部データバスＢｂのデータの同期を取ることで、データバスＢａ、Ｂｂの切り替えによるデータの欠損や冗長等が発生しないようバス切り替えを行い、バス切り替えを行うと、内部データバスＢａと内部データバスＢｂのデータの同期を止めて、パケット転送エラーによる再送動作のオーバーヘッドによって遅延の生じるバス（いまの場合、内部データバスＢａ）からのデータを待たずに、選択された内部データバスＢａ、Ｂｂ（いまの場合、内部データバスＢｂ）のデータをそのまま後段の内部デバイスであるメインメモリ１０２に流す。
【０１１６】
ステップＳ３１６で、１ライン分のデータ通信が完了していないときには、データセレクタ１２１は、ステップＳ３１５に戻って、リンクＬａ側である内部データバスＢａからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を継続して、１ライン分のデータ通信が完了したかチェックする処理を繰り返し行う（ステップＳ３１５、ステップＳ３１６）。
【０１１７】
ステップＳ３１５で、１ライン分のデータ通信が完了すると、データ受信側のデータ選択部１２２が、データ選択指示を解除し（ステップＳ３１７）、データ送信側のデータ停止部２２１ａが停止していたデータ通信を再開して（ステップＳ３１８）、図９のステップＳ３０３に戻り、２つのリンクＬａ、Ｌｂからデータの同期を取りつつ、初期設定リンクからのデータを選択して転送を開始する処理から上記同様に処理する（ステップＳ３０３〜Ｓ３１８）。
【０１１８】
上記処理を繰り返し行って、図９のステップＳ３０４で、データ通信が完了すると、複合装置１は、データ通信制御処理を終了する。
【０１１９】
このように、本実施例の複合装置１は、ライン単位で順次通信されるラインデータの後端を検出し、データ通信を停止した後に、該データ通信を停止したラインの後端を検出すると、該ライン後端検出タイミングに合わせて、停止していた該多重通信バスによるデータ通信を再開するとともに、データ通信を再開した多重通信バスであるＰＣＩｅバス２ａ、２ｂのデータを含めた全てのＰＣＩｅバス２ａ、２ｂにおけるデータの同期を取っている。
【０１２０】
したがって、一旦パケット転送エラーが発生して再送動作による遅延が発生し、データ通信が間に合わなくなったＰＣＩｅバス２ａ、２ｂも、ライン単位で再度同期をとることができ、１ページ内で２回以上のパケット転送エラーが発生した場合であっても、同期転送制約を守って、異常画像が発生することを防止することができる。
【０１２１】
すなわち、スキャナ部３００のＣＣＤによって読み込まれた画像データをライン同期で転送する場合、１ライン分の画像データをスキャナ部３００から受け取った後、次のラインのデータがスキャナ部３００から送られてくるまでに、データ転送の発生しない待機時間が発生する。この待機時間を利用して、転送エラーの発生したＰＣＩｅバス２ａ、２ｂと転送エラーの発生していないＰＣＩｅバス２ａ、２ｂとの間の画像データをライン単位で再同期させる。このように、ライン単位で同期を取った多重転送を再開することで、１ページの転送途中に２回以上のパケット転送エラーが発生しても、同一のライン内で２回エラーが発生しない限りは画像データのライン同期転送制約を守ることができる。
【実施例４】
【０１２２】
図１１〜図１４は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第４実施例を示す図であり、図１１は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第４実施例を適用した複合装置１におけるコントローラ１００のデータ受信部１０３の詳細なブロック構成図、図１２は、第４実施例を適用した複合装置１におけるスキャナ画像処理部２００のデータ送信部２０２の詳細なブロック構成図である。
【０１２３】
なお、本実施例は、上記第１実施例の複合装置１と同様の複合装置に適用したものであり、本実施例の説明においては、上記第１実施例と同様の構成部分には、同一の符号を付して、その詳細な説明を省略するとともに、図示しない部分についても、必要に応じて第１実施例の説明で用いた符号をそのまま用いて説明する。
【０１２４】
複合装置１は、第１実施例の複合装置１と同様に、コントローラ１００、スキャナ画像処理部２００、スキャナ部３００、プロッタ画像処理部４００、プロッタ部５００、解像度変換画像処理部６００及び図示しないファクシミリ通信部、ネットワーク通信部、操作表示部等を備えている。そして、複合装置１は、図１に示したように、スキャナ画像処理部２００が、スキャナ特性補正部２０１及びデータ送信部２０２等を、プロッタ画像処理部４００が、データ受信部４０１と出力処理部４０２等を、解像度変換画像処理部６００が備えており、コントローラ１００が、ＣＰＵ１０１、メインメモリ１０２、データ受信部１０３、データ送受信部１０４及びデータ送受信部１０５等を備えている。
【０１２５】
本実施例の複合装置１は、第１実施例の場合と同様に、スキャナ画像処理部３００からデータ受信部１０３へのＰＣＩｅバス２を用いた画像データの転送、データ送受信部１０４からプロッタ画像処理部４００へのＰＣＩｅバス３を用いた画像データの転送及びデータ送受信部１０５と解像度変換画像処理部６００とのＰＣＩｅバス４を用いた画像データの転送において、各ＰＣＩｅバス２〜４をそれぞれ複数のバスに分割した多重転送を行う。
【０１２６】
そして、本実施例の複合装置１においては、画像データの送信側が、画像データの多重転送において、パケットデータ通信にエラーの発生したリンクによる画像データの通信を停止させるとともに、パケット転送エラー発生後、データの転送準備が完了すると、その後のラインの先頭から同期を取って画像データの多重転送を開始する。
【０１２７】
以下、スキャナ画像処理部２００とコントローラ１００のデータ受信部１０３との間のデータ通信の場合について、図１１〜図１４を用いて説明するが、データ送受信部１０４からプロッタ画像処理部４００へのＰＣＩｅバス３を用いた画像データの転送及びデータ送受信部１０５と解像度変換画像処理部６００とのＰＣＩｅバス４を用いた画像データの転送についても同様である。
【０１２８】
図１１は、コントローラ１００のデータ受信部１０３の詳細なブロック構成を示しており、データ受信部１０３は、上述のように、ＰＣＩｅルートコンプレックス１１１とデータ選択制御部１１２を備えており、このデータ選択制御部１１２が、図１１に示すように、上記第１実施例と同様のデータセレクタ１２１とデータ選択部１２２及び上記第３実施例と同様のライン後端検知部１２３を備えているとともに、ライン数計測部１２４及び転送再開ライン数受信部１２５等を備えている。
【０１２９】
ライン後端検知部１２３は、第３実施例と同様であり、内部データバスＢａと内部データバスＢｂによって転送される画像データをモニターして、例えば、画像データの主走査データサイズと内部データバスＢａ及び内部データバスＢｂを通過した画像データの総転送サイズとから、画像データの各ラインの後端にあたるデータの転送を検知する。ライン後端検知部１２３は、各ラインの転送終了を検知すると、データ選択部１２２及びラインする計測部１２４にライン同期信号を通知する。
【０１３０】
ライン数計測部（ライン数計数手段）１２４は、ライン後端検知部１２３が発生するライン同期信号を計数して、転送中の画像データのライン数を把握し、データ選択部１２２に転送再開ライン数情報を出力する。
【０１３１】
また、転送再開ライン数受信部１２５は、ＰＣＩｅバス２ａ、２ｂを経由してスキャナ画像処理部２００のデータ送信部２０２から送られてきた転送再開ライン数情報を受信し、データ選択部１２２に転送再開ライン数を通知する。このＰＣＩｅバス２ａ、２ｂを経由して再開ライン数情報を転送する具体的な方法としては、例えば、ある特定のアドレスを、転送再開ライン数情報を受信するアドレスとして設定し、データ送信部２０２がそのアドレスにデータをライトした場合は、ＰＣＩｅルートコンプレックス１１１は、内部データバスＢａ、Ｂｂではなく、転送再開ライン数受信部１２５にデータを転送する方法等を用いることができる。
【０１３２】
データ選択部１２２は、上述のように、リンクＬａとリンクＬｂから通知されるパケット転送エラーを検知し、エラーの発生していない内部データバスＢａ、Ｂｂを選択するようデータセレクタ１２１に指示するが、ライン数計測部１２４から通知された転送ライン数と転送再開ライン数受信部１２５から通知された転送再開ライン数が「転送ライン数」−１＝「転送再開ライン数」の関係になった状態で、次のライン同期信号をライン後端検知部１２３から受け取ると、データセレクタ１２１に対するデータ選択指示を解除し、データセレクタ１２１に対して再び内部データバスＢａと内部データバスＢｂを流れる画像データの同期を取るように指示する。
【０１３３】
データセレクタ１２１は、上記同様に、同じデータがほぼ同タイミングで転送されてくる内部データバスＢａと内部データバスＢｂのデータの同期を常に取り、データ選択部１２２からデータ選択指示が通知されると、その指示に従ってデータの整合性を保ったまま内部データバスＢａ、Ｂｂの切り替えを行う。データセレクタ１２１は、一度データ選択指示を受けて、内部データバスＢａ、Ｂｂを切り替えると、その後は内部データバス１Ｂａと内部データバスＢｂのデータの同期を取らず、選択された内部データバスＢａ、Ｂｂのデータのみをコントローラ１００の内部デバイス（例えば、メインメモリ１０２）に転送するように動作する。さらに、データセレクタ１２１は、一旦、内部データバスＢａと内部データバスＢｂのデータの同期を止めた後に、データ選択部１２２からデータ選択指示が解除されると、解除されたタイミング以降のデータに関しては、再び内部データバスＢａと内部データバスＢｂのデータの同期を取るように動作し、再びデータ選択指示を受けるまで同期を取り続ける。
【０１３４】
一方、画像データ送信側であるスキャナ画像処理部２００のデータ送信部２０２は、図１２に示すように、上記データ分割制御部２１１及びＰＣＩｅエンドポイント２１２等を備えており、データ分割制御部２１１は、データ休止部２２１ａ、２２１ｂ、ライン後端検知部２２２及びライン数計測部２２３等を備えている。このデータ分割制御部２１１は、スキャナ部３００で読み取られスキャナ特性補正部２０１で画像処理された画像データが入力され、この画像データを全く同じデータのままＰＣＩｅエンドポイント２１２のリンクＬａとリンクＬｂとにそれぞれ内部データバスＢａ及び内部データバスＢｂを経由させて転送する。
【０１３５】
ライン後端検知部２２２は、内部データバスＢａと内部データバスＢｂによって転送される画像データをモニターし、例えば、画像データの主走査データサイズと内部データバスＢａ及び内部データバスＢｂを通過した画像の総転送サイズから、画像データの各ラインの後端にあたるデータの転送を検知する。ライン後端検知部２２２は、各ラインの転送終了を検知すると、ライン数計測部２２３及びデータ休止部２２１ａとデータ休止部２２１ｂにライン同期信号を通知する。
【０１３６】
ライン数計測部（ライン数計数手段）２２３は、ライン後端検知部２２２から入力されるライン同期信号を計数して、転送中の画像データのライン数を把握し、データ停止部２２１ａとデータ停止部２２１ｂに転送ライン数情報を入力する。
【０１３７】
データ停止部２２１ａ及びデータ停止部２２１ｂは、それぞれ内部データバスＢａ及び内部データバスＢｂに配置され、パケット転送エラー発生後に内部データバスＢａ及び内部データバスＢｂのうち、エラーが発生したＰＣＩｅバス２ａ、２ｂに画像データを供給する内部データバスＢａ、Ｂｂのデータ通信を停止する。また、データ停止部２２１ａ及びデータ停止部２２１ｂは、パケット転送エラーを検知して一旦データ通信を中断した後に、データ通信を再開する準備が整うと、上記転送再開ライン数情報を、内部データバスＢａ、ＢｂからＰＣＩｅバス２ａ、２ｂを経由してコントローラ１００のデータ受信部１０３に転送し、その後に、ライン同期信号をライン後端検知部２２２から受け取ると、次のラインの先頭から内部データバスＢａ、Ｂｂを開いてリンクＬａ、Ｌｂへのデータ通信を再開する。
【０１３８】
ＰＣＩｅエンドポイント２１２のリンクＬａとリンクＬｂは、上記同様に、それぞれ内部データバスＢａと内部データバスＢｂからの画像データをＰＣＩｅバス２ａとＰＣＩｅバス２ｂを経由させてデータ受信部１０３のＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂに送信し、また、ＰＣＩｅルートコンプレックス１１１のリンクＬａ及びリンクＬｂからＰＣＩｅバス２ａ、２ｂを通してパケット転送エラーを受け取ると、パケット転送エラー通知をデータ休止部２２１ａ及びデータ休止部２２１ｂに出力する。
【０１３９】
次に、本実施例の作用を説明する。本実施例の複合装置１は、パケット転送エラーの発生したＰＣＩｅバス２ａ、２ｂを利用したデータ通信を中断した後に、図１３及び図１４に示すように、データの転送準備が整った次のラインから同期を取ったライン多重転送を再開する。
【０１４０】
なお、このデータの多重転送において、データ受信側のデータ受信部１０３及びデータ送信側のデータ送信部２０２は、図１３及び図１４に示すようにデータ通信制御処理を行うが、上記同様に、ハードウェアで実装される場合は、ソフトウェアで実行する場合のようにシーケンシャルに動作処理が行われるわけではないが、説明を明確にするために、図１３及び図１４では、シーケンシャルに記述している。
【０１４１】
すなわち、複合装置１は、コントローラ１００のＣＰＵ１０１が、図１３に示すように、スキャナ画像処理に必要なパラメータを設定してスキャナ部３００による画像読み取りタイミングと同期して、スキャナ画像処理部２００からメインメモリ１０２に画像データを書き込むＤＭＡＣを起動すると（ステップＳ４０１）、データ通信を開始し（ステップＳ４０２）、データ受信側であるデータ受信部１０３のデータセレクタ１２１が、同じ画像データがほぼ同タイミングで転送されてくる内部データバスＢａと内部データバスＢｂのデータの同期を常に取って、データ選択部１２２から初期設定リンクとして指示されているリンクＬａ、Ｌｂに接続されている内部データバスＢａ、Ｂｂからの画像データを選択して内部デバイスであるメインメモリ１０２に転送する（ステップＳ４０３）。
【０１４２】
データ受信部１０３は、データ選択制御部１１２によって、１ページ分の画像データの転送が完了したかチェックし（ステップＳ４０４）、１ページ分の画像データの転送が完了していないときには、リンクＬａまたはリンクＬｂに転送エラーが発生したかチェックする（ステップＳ４０５）。データ受信部１０３は、ステップＳ４０５で、リンクＬａ、Ｌｂにパケット転送エラーが発生していないときには、ステップＳ４０３に戻って、データ受信を継続して、ステップＳ４０４で、１ページ分のデータ通信が完了したかのチェックを行い、ステップＳ４０５で、転送エラーが発生したかの処理を繰り返し行う（ステップＳ４０３〜Ｓ４０５）。
【０１４３】
データ受信部１０３は、ステップＳ４０４で、パケット転送エラーが発生することなく、１ページ分の画像データの転送が完了すると、データ通信制御処理を終了する。データ受信部１０３は、ステップＳ４０４で、１ページ分の転送が完了する前に、ステップＳ４０５で、リンクＬａまたはリンクＬｂでパケット転送エラーが発生すると、転送エラーがリンクＬａで発生したのかリンクＬｂで発生したのかを確認する（ステップＳ４０６）。
【０１４４】
ステップＳ４０６で、リンクＬａでパケット転送エラーが発生していると、データ送信側のデータ送信部２０２は、パケット転送エラーの発生したリンクＬａに画像データを供給するデータ休止部２２１ａを閉じてリンクＬａのデータ通信を停止させ（ステップＳ４０７）、データ受信側のデータ受信部１０３は、データ選択部１２２が、パケット転送エラーの発生していない方のリンクＬｂからのデータの選択を指示するデータ選択指示をデータセレクタ１２１に通知するとともに、ＣＰＵ１０１にパケット転送エラーが発生したことを通知するエラー割り込みを発生させ（ステップＳ４０８）、図１４に示すように、データセレクタ１２１が、データ選択部１２２からリンクＬｂ側、すなわち、内部データバスＢｂからのデータを選択するようにとのデータ選択指示があると、該データ選択指示で指示されたリンクＬｂ側である内部データバスＢｂからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を開始して（ステップＳ４０９）、ライン後端検知部１２３及びライン後端検知部２２２が、ラインの後端を検知して、１ライン分のデータ通信が完了したかチェックする（ステップＳ４１０）。
【０１４５】
ステップＳ４１０で、１ライン分のデータ通信が完了していないときには、データセレクタ１２１は、ステップＳ４０９に戻って、リンクＬｂ側である内部データバスＢｂからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を継続して、１ライン分のデータ通信が完了したかチェックする処理を繰り返し行う（ステップＳ４０９、ステップＳ４１０）。
【０１４６】
ステップＳ４１０で、データ送信側のライン後端検知部２２２が、ラインの後端を検知して１ライン分のデータ通信が完了すると、ライン数計測部２２３が、ライン後端検知部１２３が発生するライン同期信号を計数し、転送中の画像データのライン数を把握して、データ選択部１２２に転送再開ライン数情報を出力する。データ送信部２０２は、ＰＣＩｅエンドポイント２１２のリンクＬａ、Ｌｂを含めたデータ送信部２０２が再びデータを転送できる準備が整ったかチェックして（ステップＳ４０９）、転送準備が整っていないときには、ステップＳ４０９に戻って、データ通信再開の準備が整うまでデータ送信を再開することなく、上記同様の処理を行う（ステップＳ４０９〜Ｓ４１１）。
【０１４７】
ステップＳ４１１で、データ通信再開の準備が完了すると、データ停止部２２１ａが、ライン数計測部２２３から転送再開ライン数情報を受け取ってリンクＬａ及びＰＣＩｅバス２を介してデータ受信部１０３のＰＣＩｅルートコンプレックス１１１に送信する（ステップＳ４１２）。
【０１４８】
受信側では、送信側から送られてきた転送再開ライン数情報をリンクＬａ、Ｌｂが受け取って転送再開ライン数受信部１２５に通知し、転送再開ライン数受信部１２５が転送再開ライン数をデータ選択部１２２に通知する。また、データ選択部１２２は、ライン数計測部１２４からライン後端検知部１２３の検知したライン同期信号を計数した転送ライン数と転送再開ライン数との関係が、上述のように、「転送ライン数」−１＝「転送再開ライン数」の関係になった状態で、次のライン同期信号をライン後端検知部１２３から受け取ると、データセレクタ１２１に対するデータ選択指示を解除し、データセレクタ１２１に対して再びリンクＬａとリンクＬｂ、すなわち、内部データバスＢａと内部データバスＢｂを流れる画像データの同期を取るように指示する（ステップＳ４１３）。
【０１４９】
そして、データ送信側のデータ停止部２２１ａが、停止していた内部データバスＢａ、すなわち、リンクＬａのデータ通信を再開して（ステップＳ４１４）、図１３に示すステップＳ４０３に戻り、２つのリンクＬａ、Ｌｂからデータの同期を取りつつ、初期設定リンクからのデータを選択して転送を開始する処理から上記同様に処理する（ステップＳ４０３〜Ｓ４１４）。
【０１５０】
そして、図１３のステップＳ４０５で、パケット転送エラーが発生して、ステップＳ４０６で、転送エラーがリンクＬｂで発生していると、データ送信側のデータ送信部２０２は、パケット転送エラーの発生したリンクＬｂに画像データを供給するデータ休止部２２１ｂを閉じてリンクＬｂのデータ通信を停止させ（ステップＳ４１５）、データ受信側のデータ受信部１０３は、データ選択部１２２が、パケット転送エラーの発生していない方のリンクＬａからのデータの選択を指示するデータ選択指示をデータセレクタ１２１に通知するとともに、ＣＰＵ１０１にパケット転送エラーが発生したことを通知するエラー割り込みを発生させ（ステップＳ４１６）、図１４に示すように、データセレクタ１２１が、データ選択部１２２からリンクＬａ側、すなわち、内部データバスＢａからのデータを選択するようにとのデータ選択指示があると、該データ選択指示で指示されたリンクＬａ側である内部データバスＢａからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を開始して（ステップＳ４１７）、ライン後端検知部１２３及びライン後端検知部２２２が、ラインの後端を検知して、１ライン分のデータ通信が完了したかチェックする（ステップＳ４１８）。
【０１５１】
ステップＳ４１８で、１ライン分のデータ通信が完了していないときには、データセレクタ１２１は、ステップＳ４１７に戻って、リンクＬａ側である内部データバスＢａからの画像データを選択して内部データバスを介して内部デバイスであるメインメモリ１０２への転送を継続して、１ライン分のデータ通信が完了したかチェックする処理を繰り返し行う（ステップＳ４１７、ステップＳ４１８）。
【０１５２】
ステップＳ４１８で、データ送信側のライン後端検知部２２２が、ラインの後端を検知して１ライン分のデータ通信が完了すると、ライン数計測部２２３が、ライン後端検知部１２３が発生するライン同期信号を計数し、転送中の画像データのライン数を把握して、データ選択部１２２に転送再開ライン数情報を出力する。データ送信部２０２は、ＰＣＩｅエンドポイント２１２のリンクＬａ、Ｌｂを含めたデータ送信部２０２が再びデータを転送できる準備が整ったかチェックして（ステップＳ４１９）、転送準備が整っていないときには、ステップＳ４１７に戻って、データ通信再開の準備が整うまでデータ送信を再開することなく、上記同様の処理を行う（ステップＳ４１７〜Ｓ４１９）。
【０１５３】
ステップＳ４１９で、データ通信再開の準備が完了すると、データ停止部２２１ｂが、ライン数計測部２２３から転送再開ライン数情報を受け取ってリンクＬｂ及びＰＣＩｅバス２を介してデータ受信部１０３のＰＣＩｅルートコンプレックス１１１に送信する（ステップＳ４２０）。
【０１５４】
受信側では、送信側から送られてきた転送再開ライン数情報をリンクＬａ、Ｌｂが受け取って転送再開ライン数受信部１２５に通知し、転送再開ライン数受信部１２５が転送再開ライン数をデータ選択部１２２に通知する。また、データ選択部１２２は、ライン数計測部１２４からライン後端検知部１２３の検知したライン同期信号を計数した転送ライン数と転送再開ライン数との関係が、上述のように、「転送ライン数」−１＝「転送再開ライン数」の関係になった状態で、次のライン同期信号をライン後端検知部１２３から受け取ると、データセレクタ１２１に対するデータ選択指示を解除し、データセレクタ１２１に対して再びリンクＬａとリンクＬｂ、すなわち、内部データバスＢａと内部データバスＢｂを流れる画像データの同期を取るように指示する（ステップＳ４２１）。
【０１５５】
そして、データ送信側のデータ停止部２２１ａが、停止していた内部データバスＢｂ、すなわち、リンクＬｂのデータ通信を再開して（ステップＳ４２２）、図１３のステップＳ４０３に戻り、２つのリンクＬａ、Ｌｂからデータの同期を取りつつ、初期設定リンクからのデータを選択して転送を開始する処理から上記同様に処理する（ステップＳ４０３〜Ｓ４２２）。
【０１５６】
このように、本実施例の複合装置１は、通信エラーが発生して通信停止となったＰＣＩｅバス２ａ、２ｂによるデータ通信の再開までに要するライン数を計数し、また、ライン単位で順次通信されるラインデータの後端を検出して、通信エラーが発生したラインから計数したライン数のラインの後端を検出すると、該ライン後端検出タイミングに合わせて、停止していたＰＣＩｅバス２ａ、２ｂによるデータ通信を再開させるとともに、データ通信を再開したＰＣＩｅバス２ａ、２ｂのデータを含めた全てのＰＣＩｅバス２ａ、２ｂにおけるデータの同期を取らせている。
【０１５７】
したがって、転送エラーの発生したＰＣＩｅバス２ａ、２ｂによる再転送の準備が完了してから同期タイミングを発生させることができ、パケット転送エラーがラインの終わり付近で発生した場合や再送動作に１ライン以上のオーバーヘッドがかかる場合であっても、データの内容を保証しつつ安全にデータの同期を取った多重通信を行うことができる。
【０１５８】
スキャナ部３００のＣＣＤによって読み込まれた画像データをライン同期で転送する場合、１ライン分の画像データをスキャナ部３００から受け取った後、次のラインのデータがスキャナ部３００から送られてくるまでに待機時間が発生するが、特に高速で画像をスキャンする複合装置１においては、１ラインの画像を転送する時間が短いため、パケット転送エラーに伴う再送が発生した場合に、ライン間の待機時間のみで再送のオーバーヘッドを吸収することができない場合がある。そこで、本実施例の複合装置１は、データ送信側がラインの先頭というきりのよいデータ位置から画像の転送を再開するために、数ライン分の画像転送時間を費やしてしまうシステムに対して、ライン毎に同期を取ることは行わず、転送準備が終ってから同期を取り直すために、データ通信を再開する準備の整うライン数をデータの受信側に通知することで、パケット転送エラーが発生してエラーが発生したＰＣＩｅバス２ａ、２ｂのデータ通信を中断した後も、数ライン後のデータ再転送準備が整ったラインからデータの多重転送を再開する。このように、ライン単位で転送準備が整ってから多重転送を再開することで、１ラインで再転送準備が完了しないような高速で画像をスキャンする場合等において、１ページの転送途中で２回以上のパケット転送エラーが発生しても、再転送準備期間にエラーが発生しない限りは、画像データのライン同期転送制約を守ることができ、より一層適切に画像データの転送再開を行うことができる。
【実施例５】
【０１５９】
図１５〜図１７は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第５実施例を示す図であり、図１５は、本発明のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体の第５実施例を適用した複合装置１におけるコントローラ１００のデータ受信部１０３とスキャナ画像処理部２００のデータ送信部２０２のブロック構成図である。
【０１６０】
なお、本実施例は、上記第１実施例の複合装置４と同様の複合装置に適用したものであり、本実施例の説明においては、上記第４実施例と同様の構成部分には、同一の符号を付して、その詳細な説明を省略するとともに、図示しない部分についても、必要に応じて第４実施例の説明で用いた符号をそのまま用いて説明する。
【０１６１】
複合装置１は、第１実施例の複合装置１と同様に、コントローラ１００、スキャナ画像処理部２００、スキャナ部３００、プロッタ画像処理部４００、プロッタ部５００、解像度変換画像処理部６００及び図示しないファクシミリ通信部、ネットワーク通信部、操作表示部等を備えている。そして、複合装置１は、図１に示したように、スキャナ画像処理部２００が、スキャナ特性補正部２０１及びデータ送信部２０２等を、プロッタ画像処理部４００が、データ受信部４０１と出力処理部４０２等を、解像度変換画像処理部６００が備えており、コントローラ１００が、ＣＰＵ１０１、メインメモリ１０２、データ受信部１０３、データ送受信部１０４及びデータ送受信部１０５等を備えている。
【０１６２】
本実施例の複合装置１は、スキャナ画像処理部３００からデータ受信部１０３へのＰＣＩｅバス２を用いた画像データの転送、データ送受信部１０４からプロッタ画像処理部４００へのＰＣＩｅバス３を用いた画像データの転送及びデータ送受信部１０５と解像度変換画像処理部６００とのＰＣＩｅバス４を用いた画像データの転送において、設定に応じて、第１実施例の場合と同様に、各ＰＣＩｅバス２〜４をそれぞれ複数のバスに分割した多重転送を行うとともに、ＰＣＩｅバス２〜４をそれぞれ単独のバスとしてデータ通信する通常転送を行う。そして、本実施例の複合装置１においては、画像データの送信側が、画像データの多重転送においては、上記第４実施例において説明したように、パケットデータ通信にエラーの発生したリンクによる画像データの送信を停止させるとともに、パケット転送エラー発生後、データの転送準備が完了すると、その後のラインの先頭から同期を取って画像データの多重転送を開始する。
【０１６３】
以下、スキャナ画像処理部２００とコントローラ１００のデータ受信部１０３との間のデータ通信の場合について、図１５〜図１７用いて説明するが、データ送受信部１０４からプロッタ画像処理部４００へのＰＣＩｅバス３を用いた画像データの転送及びデータ送受信部１０５と解像度変換画像処理部６００とのＰＣＩｅバス４を用いた画像データの転送についても同様である。
【０１６４】
そして、上記コントローラ１００のデータ受信部１０３及びスキャナ画像処理部２００のデータ送信部２０２は、図１５に示すようにブロック構成されている。データ送信部２０２は、上記同様のデータ分割制御部２１１及びＰＣＩｅエンドポイント２１２等を備えているとともに、動作モード設定部（切り替え手段）２１３を備えており、コントローラ１００のデータ受信部１０３は、上記同様のＰＣＩｅルートコンプレック１１１及びデータ選択制御部１１２等を備えているとともに、動作モード設定部（切り替え手段）１１３を備えている。データ送信部２０２及びデータ受信部１０３は、動作モードの設定に応じて、ＰＣＩｅエンドポイント２１２及びＰＣＩｅルートコンプレックス１１１が、上述のように、それぞれ対となる２つのリンクＬａとリンクＬｂとして機能して、ＰＣＩｅバス２を同時に同じデータを転送可能な２組のＰＣＩｅバス２ａ及びＰＣＩｅバス２ｂとして利用する多重転送と、ＰＣＩｅエンドポイント２１２及びＰＣＩｅルートコンプレックス１１１が、通常の１つのリンクＬｚ（図１６及び図１７参照）として機能して、ＰＣＩｅバス２を１つのバスとして利用した通常の転送（通常転送）とを行う。
【０１６５】
動作モード設定部１１３及び動作モード設定部２１３は、コントローラ１００のＣＰＵ１０１によってその動作モードが設定され、動作モード設定部１１３及び動作モード設定部２１３は、設定された動作モードに応じて、ＰＣＩｅバス２〜４の４レーンを１つのリンクとして動作させる通常動作転送モードと２レーンの２つのリンクとして動作させる２重転送モードのいずれかを指示するＰＣＩｅバス２〜４のバス構成指示情報を、ＰＣＩｅルートコンプレックス１１１とデータ選択制御部１１２及びＰＣＩｅエンドポイント２１２とデータ分割制御部２１１に通知する。
【０１６６】
ＰＣＩｅルートコンプレックス１１１及びＰＣＩｅエンドポイント２１２は、動作モード設定部１１３及び動作モード設定部２１３からのバス構成指示情報に従ってバス構成を変更する。例えば、ＰＣＩｅルートコンプレックス１１１及びＰＣＩｅエンドポイント２１２は、２重転送モードが指定されると、図１５に示すように、２レーンの２つのリンクＬａ、Ｌｂとして構成とし、通常転送モードが指定されると、図１６及び図１７に示すように、１つのレーンの１つのリンクＬｚとして構成とする。
【０１６７】
データ受信側のデータ受信部１０３は、２重転送モード時には、図１１に示したように、データセレクタ１２１、データ選択部１２２、ライン後端検知部１２３、ライン数計測部１２４及び転送再開ラインする受信部１２５が動作して、２つのリンクＬａ、Ｌｂを利用した２重転送動作を行う。また、データ受信部１０３は、通常転送モード時には、図１６に示すように、ＰＣＩｅルートコンプレックス１１１が１つのリンクＬｚとして構成され、データ選択制御部１１２がデータセレクタ１２１のみが動作する構成となる。この１つのリンクＬｚとデータセレクタ１２１が内部データバスＢａで接続されていて、データセレクタ１２１は、リンクＬｚから送られてくるデータを内部デバイス、例えば、メインメモリ１０２に転送する。
【０１６８】
また、データ送信側のスキャナ画像処理部２００のデータ送信部２０２は、図１７に示すように、データ休止部２２１ａ、２２１ｂ、ライン後端検知部２２２、ライン数計測部２２３を備えているとともに、データ休止部２２１ａとＰＣＩｅエンドポイント２１２との間に配設されたデータセレクタ２２４を備えており、データセレクタ２２４には、スキャナ特性補正部２０１からの画像データが入力される内部データバスＤＢが分離された内部データバスＢｚが接続されている。データ送信部２０２は、動作モード設定部２１３から「２重転送モード」を示すＰＣＩｅバス構成指示情報がデータ分割制御部２１１及びＰＣＩｅエンドポイント２１２に入力される２重転送モード時には、図１２に示したように、データ停止部２２１ａ、２２１ｂ、ライン後端検知部２２２及びライン数計測部２２が動作して、２つのリンクＬａ、Ｌｂを利用した２重転送動作を行うが、このとき、データセレクタ２２４は、データ休止部２２１ａからのデータを選択してＰＣＩｅエンドポイント２１２に出力する。また、データ送信部２０２は、通常転送モード時には、動作モード設置部２１３が、通常転送モード時のバス構成指示情報をデータ分割制御部２１１のデータセレクタ２２４及びＰＣＩｅエンドポイント２１２に出力して、図１７に示すように、ＰＣＩｅエンドポイント２１２が１つのリンクＬｚとして構成され、データ分割制御部２１１がデータセレクタ２２４のみが動作する構成となる。このＰＣＩｅエンドポイント２１２の１つのリンクＬｚとデータセレクタ２２４が内部データバスＢａで接続されていて、データセレクタ２２４は、スキャナ特性補正部２０１から内部データバスＤＢ及び内部データバスＢｚを通して送られてくるデータをリンクＬｚに転送し、リンクＬｚからＰＣＩｅバス２を介して受信側のＰＣＩｅルートコンプレックス１１１の１つのリンクＬｚに転送する。
【０１６９】
このように、本実施例の複合装置１は、動作モード設定部１１３、２１３によって、リンク１１１、２１２を、ＰＣＩｅバス２を２重通信バス２ａ、２ｂとして機能させる２重転送モード（多重通信モード）と１つの通信バス２として機能させる通常転送モード（単通信モード）とに切り替え、リンク１１１、２１２を該切り替えに応じて２重転送モードと通常転送モードとに切り替えて通信している。
【０１７０】
したがって、複合装置１の画像データの転送動作モードを、例えば、画像種や要求されるデータ通信制約に合わせて動作させる機能毎に切り替えて、ＰＣＩｅバス２の転送効率が最も有効な状態でデータ通信を行うことができ、データの転送効率をより一層向上させることができる。
【０１７１】
すなわち、ＰＣＩｅ２の全てのレーンをひとつのリンクとして動作させる通常転送モードでは、パケット転送エラーによって発生する再送動作のオーバーヘッドが無視できないような小さなデータ単位での転送速度が求められている場合は、一度パケット転送エラーが発生してしまうと要求転送速度が満たせないため、例えば、複合装置１の場合にはスキャナ部３００から取り込まれた画像データはメモリ１０２に異常画像となって保存される。
【０１７２】
逆に、パケット転送エラーによって発生する再送動作のオーバーヘッドが無視できるほど十分に大きなデータに対して要求される転送処理能力としては、２重転送モードのほぼ２倍の転送能力が要求される。
【０１７３】
このように、ＣＰＵ１０１が設定を行う動作モード設定部１１３、２１３を用いて、ＰＣＩｅバス２のリンク構成と各リンクのレーン数を変更することで、例えば、２４００ｄｐｉのカラー画像データを要求されて設計されたＡＳＩＣが、１２００ｄｐｉの解像度の画像データを転送するためにＰＣＩｅバス２を使用する際に、ＰＣＩｅバス２を多重化し、上記第１実施例から第４実施例の方法を用いてパケット転送エラーによる再送が発生した場合においてもデータ通信速度を保証し、異常画像の発生確率を低下させることができる。
【０１７４】
より具体的には、画像処理を行うＡＳＩＣは、利用用途に応じて複数の画像種に対応した画像処理ができるよう設計されることが多く、このとき、データバスにのみ着目すると、カラー画像をプロッタ部５００に出力するときには、ＣＭＹＫ版の４色の画像データの転送が必要であり、モノクロ画像の場合は、Ｋ版１色の画像データの転送のみとなる。
【０１７５】
したがって、１版あたりの１画素のデータ量及び解像度が同じで、プロッタ部５００の生産性（１分あたりの出力枚数）も同じ場合であっても、カラー画像とモノクロ画像とでは、データバスに要求される転送速度は４倍も異なる。
【０１７６】
一方、データバスを多重化するためにパケット転送エラーが発生しないと仮定した場合に必要となる帯域の２倍以上のデータバス幅が要求され、コスト的に不利になる。
【０１７７】
このような場合に、本実施例の複合装置１は、プロッタ部５００に出力する画像種、スキャナ部３００から入力される画像種等によって決定される動作モードに応じてＰＣＩｅバス２〜４の構成とバス幅を変更することができるため、例えば、ＰＣＩｅバス２〜４を通常転送モードで動作させて、２４００ｄｐｉのカラー画像データを要求された設計されたＡＳＩＣによって高速データ転送を実現することができるとともに、１２００ｄｐｉかそれ以下の解像度の画像データを転送するためにＰＣＩｅバス２〜４を実力よりも低い帯域で使用する際には、動作モード設定部１１３、２１３によってＰＣＩｅバス２〜４のバス構成及びバス幅を多重転送（２重転送）モードに変更設定することで、第１実施例から第４実施例の方法を用いて、短い周期で一定量のデータを必ず伝送し終わらなければならないというような同期転送の制約が強い用途に対応する機能を持たせることができる。
【０１７８】
なお、上記説明では、通常転送モードと２重転送モードでのデータの選択を、データセレクタ２２４、１２１によって内部データバスを選択することによって行っているが、データバスの選択方法は、上記方法に限るものではない。例えば、内部データバスＢａを２重転送モード時の内部データバスＢａ及び内部データバスＢｂを束ねたものとしてもよいし、２重転送モード時の内部データバスＢａ及び内部データバスＢｂとは全く異なるデータバスを設けてもよい。
【０１７９】
また、上記各実施例においては、バスインターフェイスとして共通で汎用的なＰＣＩｅバス２に適用している。したがって、汎用性を向上させることができる。
【０１８０】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１８１】
本発明は、ＰＣＩｅ等の高速シリアルバスを利用したデータ通信を行う複合装置、プリンタ装置、複写装置、スキャナ装置等のデータ通信装置、データ通信制御方法、データ通信制御プログラム及び記録媒体に利用することができる。
【符号の説明】
【０１８２】
１  複合装置
２、２ａ、２ｂ、３、４  ＰＣＩｅバス
１００  コントローラ
１０１  ＣＰＵ
１０２  メインメモリ
１０３  データ受信部
１０４  データ送信部
１０５  データ送受信部
１０６  バス
１１１  ＰＣＩｅルートコンプレックス
１１２  データ制御部
１１３  動作モード設定部
１２１  データセレクタ
１２２  データ選択部
１２３  ライン後端検知部
２００  スキャナ画像処理部
２０１  スキャナ特性補正部
２０２  データ送信部
２１１  データ分割制御部
２１２  ＰＣＩｅエンドポイント（ＰＣＩ Express End Point）
２１３  動作モード設定部
２２１ａ、２２１ｂ  データ休止部
２２２  ライン後端検知部
２２３  ライン数計測部
３００  スキャナ部
４００  プロッタ画像処理部
４０１  データ受信部
４０２  出力処理部
５００  プロッタ部
６００  解像度変換画像処理部
６０１  データ送受信部
Ｌａ、Ｌｂ、Ｌｚ  リンク
Ｂａ、Ｂｂ、Ｂｚ  内部データバス
ＤＢ  内部データバス
【先行技術文献】
【特許文献】
【０１８３】
【特許文献１】特開２００８−２０４２４５号公報
【図１】
2010288148.tif 000003
【図２】
2010288148.tif 000004
【図３】
2010288148.tif 000005
【図４】
2010288148.tif 000006
【図５】
2010288148.tif 000007
【図６】
2010288148.tif 000008
【図７】
2010288148.tif 000009
【図８】
2010288148.tif 000010
【図９】
2010288148.tif 000011
【図１０】
2010288148.tif 000012
【図１１】
2010288148.tif 000013
【図１２】
2010288148.tif 000014
【図１３】
2010288148.tif 000015
【図１４】
2010288148.tif 000016
【図１５】
2010288148.tif 000017
【図１６】
2010288148.tif 000018
【図１７】
2010288148.tif 000019