(57)【要約】【課題】シリアルで、かつシングルエンドのような、安価な回路で生成できる信号でエラー通知を行い、識別番号を送らなくてもデータの再送を可能にする。【解決手段】所定単位のデータを所定周期で送信し、各データの送信からの経過時間を計時する。送信したデータのエラー信号を受信側から受け取った時の計時手段により計時された経過時間に基づいて、前記エラー信号に関連するデータを特定し、その特定したデータを受信側に再送する。【選択図】  図３
2017211835.tif 000002
【特許請求の範囲】
【請求項１】
データ転送装置であって、
所定単位のデータを所定周期で送信する送信手段と、
前記送信手段による各データの送信からの経過時間を計時する計時手段と、
送信したデータのエラー信号を受信側から受け取った時の前記計時手段により計時された経過時間に基づいて、前記エラー信号に関連するデータを特定する特定手段と、
前記特定手段により特定したデータを前記受信側に再送する再送手段と、
を有することを特徴とするデータ転送装置。
【請求項２】
前記特定手段は、前記計時手段により計時されたデータの経過時間が、前記送信手段が前記データを送出してから、当該データのエラー信号を受け取るまでの予想される遅延値にマージンを持たせた遅延範囲に含まれるとき、前記経過時間に対応するデータを前記エラー信号に関連するデータとして特定することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記予想される遅延値を取得する取得手段を、更に有することを特徴とする請求項２に記載のデータ転送装置。
【請求項４】
前記取得手段は、前記送信手段によりエラーを含むデータを送信させ、送信したデータのエラー信号を受信側から受け取った時に前記計時手段により計時された経過時間を前記予想される遅延値として取得することを特徴とする請求項３に記載のデータ転送装置。
【請求項５】
前記再送手段は、前記特定手段により特定したデータのみを再送することを特徴とする請求項１乃至４のいずれか１項に記載のデータ転送装置。
【請求項６】
前記再送手段は、前記特定手段が前記データを特定したとき、前記送信手段が送信済みで前記受信側での受信が完了していないデータ、及び前記送信手段が送信しようとしているデータの全てを再送することを特徴とする請求項１乃至４のいずれか１項に記載のデータ転送装置。
【請求項７】
前記送信手段が送信したデータのそれぞれを、前記計時手段による計時に対応させて保存する保存手段を更に有し、
前記特定手段は、前記保存手段に保存されたデータから前記エラー信号に関連するデータを特定し、前記再送手段は、前記保存手段の前記特定されたデータを用いて再送することを特徴とする請求項１乃至６のいずれか１項に記載のデータ転送装置。
【請求項８】
前記所定単位のデータは、パケットデータであることを特徴とする請求項１乃至７のいずれか１項に記載のデータ転送装置。
【請求項９】
前記送信手段は、前記パケットデータにＣＲＣ（Cyclic Redundancy Check）コードを付加して送信し、
前記エラー信号は、ＣＲＣエラーを示す信号であることを特徴とする請求項８に記載のデータ転送装置。
【請求項１０】
第１と第２の回路と、
請求項１乃至９のいずれか１項に記載のデータ転送装置と、を有し、
前記データ転送装置により前記第１の回路から前記第２の回路にデータを転送することを特徴とする画像処理装置。
【請求項１１】
前記第１の回路は、前記画像処理装置を制御する制御部を含む回路で、前記第２の回路は、前記第１の回路から送信された画像データを受信して画像処理を行う回路であることを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
送信部と受信部を有するデータ転送システムであって、
前記送信部は、
識別情報を含む、所定単位のデータを所定周期で送信する送信手段と、
前記送信手段により送信したデータのエラー信号を前記受信部から受け取ると、当該エラー信号に関連するデータを特定する特定手段と、
前記特定手段により特定したデータを前記受信部に再送する再送手段と、を有し、
前記受信部は、
前記送信手段により送信されたデータのエラーを検出する検出手段と、
前記検出手段が検出したエラーに関連するデータの識別情報に基づいて、前記エラー信号の信号幅を変更するエラー信号出力手段と、
を有することを特徴とするデータ転送システム。
【請求項１３】
前記送信手段が送信したデータのそれぞれを保存する保存手段を更に有し、前記識別情報は、前記データを保存した前記保存手段を識別するための情報であることを特徴とする請求項１２に記載のデータ転送システム。
【請求項１４】
データ転送装置を制御する制御方法であって、
所定単位のデータを所定周期で送信する送信工程と、
前記送信工程による各データの送信からの経過時間を計時する計時工程と、
送信したデータのエラー信号を受信側から受け取った時の前記計時工程で計時された経過時間に基づいて、前記エラー信号に関連するデータを特定する特定工程と、
前記特定工程で特定したデータを前記受信側に再送する再送工程と、
を有することを特徴とするデータ転送装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送システム、画像処理装置、及びデータ転送装置とその制御方法に関する。
【背景技術】
【０００２】
従来の画像処理装置における画像データの転送方式として、例えば５４ＭＨｚのクロック信号に同期して画像データを転送するインターフェース装置がある（特許文献１）。但し、このインターフェースは、画像処理装置内のケーブルレスでの画像データの転送を想定しており、比較的低周波数であるためエラーの発生は稀であり、エラー検出の仕組みは不要であった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１０２０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像処理装置における画像データの転送速度を向上させるために、５ＧＨｚ、シリアル、２レーンの方式を採用することを検討している。これに伴い、ケーブルレスの画像処理チップ間のデータ転送においても、データ転送エラーを検出する仕組みが必要となる。
【０００５】
従来のデータ転送エラーを検出する仕組みとして、例えばPCI Expressでは、パケット識別情報を使って、データの再送を送信側に要求する仕組みがある。これには、高速データ転送のための送受信回路が必要になり、データを一方向に送る用途としてはコスト高となる。よって、シリアルで、かつシングルエンドのような、安価な回路で生成できる信号でエラー通知を行い、識別番号を送らなくてもデータの再送を可能にするプロトコルが求められている。
【０００６】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００７】
本発明の目的は、送信側から識別情報を含まないデータを送信し、受信側がそのデータを受信してエラーを検知したときはエラー信号を返すだけで、送信側は、そのデータを特定して再送できる技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係るデータ転送装置は以下のような構成を備える。即ち、
データ転送装置であって、
所定単位のデータを所定周期で送信する送信手段と、
前記送信手段による各データの送信からの経過時間を計時する計時手段と、
送信したデータのエラー信号を受信側から受け取った時の前記計時手段により計時された経過時間に基づいて、前記エラー信号に関連するデータを特定する特定手段と、
前記特定手段により特定したデータを前記受信側に再送する再送手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、送信側から識別情報を含まないデータを送信し、受信側がそのデータを受信してエラーを検知したときはエラー信号を返すだけで、送信側は、そのデータを特定して再送できるという効果がある。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る画像処理装置の構成を説明するブロック図。
【図２】実施形態１に係るＰＨＹ１０３とＰＨＹ１１３の内部構成を説明するブロック図。
【図３】実施形態１に係るＡＳＩＣ１０１とＡＳＩＣ１１１との間の伝送路においてパケットＰ２でエラーが発生したときの動作を説明するブロック図。
【図４】実施形態１に係る送信部及び受信部の動作を説明するタイミングチャート。
【図５】実施形態１に係るエラーパケット特定部によるエラーパケットを特定する処理を説明するフローチャート。
【図６】実施形態２に係るＡＳＩＣ１０１とＡＳＩＣ１１１との間の伝送路においてパケットＰ２でエラーが発生したときの動作を説明するブロック図。
【図７】実施形態２に係るエラーパケット特定部によるエラーパケットを特定する処理を説明するフローチャート。
【図８】実施形態３に係るＡＳＩＣ１０１の送信部とＡＳＩＣ１１１の受信部を説明するブロック図。
【図９】実施形態３に係るディレイ値を取得するための動作を説明するローチャート。
【図１０】実施形態４に係るＡＳＩＣ１０１の送信部とＡＳＩＣ１１１の受信部を説明するブロック図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態では、本発明に係るデータ転送システム及びデータ転送装置を、画像処理装置１００の構成の一部として説明するが、これら機能を有するデータ転送装置そのものであっても良い。
【００１３】
図１は、本発明の実施形態１に係る画像処理装置１００の構成を説明するブロック図である。
【００１４】
画像処理装置１００は、画像データを紙媒体へ印刷する印刷部１３１と、紙媒体上の画像や文字を光学的に走査して読み取ることにより、その画像や文字のデジタルデータを取得する読取部１４１を備える。また画像処理装置１００は、３つの半導体ＡＳＩＣ１０１，１１１，１２１を有する。ＡＳＩＣ１０１は装置全体を統括制御する主制御部１０５を内蔵するメインチップである。ＡＳＩＣ１１１は、ＡＳＩＣ１０１から送信された圧縮済み画像データを受信し、印刷データ処理部１１５により、その画像データの伸張処理と印刷用の画像処理を行い、その処理した画像データを印刷部１３１へ送信する。またＡＳＩＣ１２１は、読取データ処理部１２５により、読取部１４１から受け取った画像データに所定の画像処理と圧縮処理を実行した後、その処理済のデータをＡＳＩＣ１０１へ転送する。
【００１５】
またＡＳＩＣ１０１はネットワーク１５１に接続され、ネットワーク１５１を介して外部のホストコンピュータから送信されたページ記述データを受信し、主制御部１０５で解読して画像データへ変換する。
【００１６】
以上の構成により、画像処理装置１００は、プリント機能、スキャン機能、コピー機能を実現する。
【００１７】
実施形態１の特徴は、ＡＳＩＣ１０１とＡＳＩＣ１１１との間、及びＡＳＩＣ１２１とＡＳＩＣ１０１との間のインターフェースにおけるデータ転送システム及びその方式に関する。２つのインターフェースにおけるデータ転送方式は同一であるため、これ以降はＡＳＩＣ１０１とＡＳＩＣ１１１との間のインターフェースに着目して説明する。
【００１８】
主制御部１０５で生成されたデータは、送信部１０２、ＰＨＹ１０３を介してチップ外へ一旦送信されてＡＳＩＣ１１１へ入力される。ＡＳＩＣ１１１では、そのデータはＰＨＹ１１３、受信部１１２を介して印刷データ処理部１１５へ入力される。ここでＰＨＹは、ネットワークにおいて論理信号を実際の電気的な信号に変換しており、Physical layer Chipの略称である。
【００１９】
図２は、実施形態１に係るＰＨＹ１０３とＰＨＹ１１３の内部構成を説明するブロック図である。
【００２０】
ＰＨＹ１０３は、送信部１０２から３２ビット幅で２５０ＭＨｚのクロック信号に同期してデータを入力する。入力されたデータは、８Ｂ１０Ｂエンコード部２０１によって４０ビットに変換される。この変換により、後段で信号がシリアライズされたときハイレベルとロウレベルのバランスを均一に保つこと、ハイレベル又はロウレベルの状態の期間が４クロック以下になるようにできる。前者は信号のＤＣバランスを均一に保つためであり、後者は受信側でのクロックの復元を可能にするためである。
【００２１】
８Ｂ１０Ｂエンコード部２０１から出力された４０ビットのデータは、その内の２０ビットずつがパラシリ変換部２０２でシリアル信号に変換され、２ビットの信号が出力される。ここでビット数が２０分の１になると同時に、転送する周波数は２０倍の５ＧＨｚとなる。
【００２２】
パラシリ変換部２０２から出力された２ビットの信号は、それぞれ差動信号ドライバ２０５によって差動信号に変換されて出力される。また差動信号ドライバ２０５のそれぞれは、出力論理が連続するときは振幅を落とす制御を行い、受信端での符号間緩衝（Inter-Symbol Interference）を抑制する。
【００２３】
尚、実施形態１では、２組（２レーン）の差動信号でチップ間をデータ転送する例を示しているが、必要とする転送速度に応じて、１組であっても、若しくは４組であってもよい。
【００２４】
この差動信号は、基板上の伝送路を介してＡＳＩＣ１１３へ入力され、それぞれ差動信号レシーバ２１５で受信されて、通常のシングルエンド信号である２ビットの信号に変換される。この変換された２ビットの信号は、クロックリカバリ部２１１へ入力され、それぞれ５ＧＨｚのクロックが復元される。また２ビットの信号はシリパラ変換部２１２へも入力され、復元されたクロックにより５ＧＨｚの周波数でサンプリングされ、それぞれ２０ビットのデータに変換されて、計４０ビットの信号が得られる。ここで、この４０ビットの信号の周波数は２５０ＭＨｚとなる。そして４０ビットの信号は、１０Ｂ８Ｂデコード部２１３で、元の３２ビットのデータに変換される。１０Ｂ８Ｂデコード部２１３の変換論理は、８Ｂ１０Ｂエンコード部２０１の変換論理と全く逆であるため、その出力はＰＨＹ１０３へ入力された転送データと同じものとなる。
【００２５】
以上、データがＰＨＹ１０３、伝送路、及びＰＨＹ１１３を通過するパスを説明した。ここでこれらを通過するためには所定の時間を要する。その時間（ディレイ）は、実装の形態とチップ間の伝送路に依存して変化するが、実装形態と伝送路が定まった一つのシステムにおいてそのディレイは、転送されるデータに依らず概一定である。
【００２６】
図３は、実施形態１に係るＡＳＩＣ１０１とＡＳＩＣ１１１との間の伝送路においてエラーが発生したときの動作を説明するブロック図である。
【００２７】
同図において、「Ｐｘ」（ｘは数字）が白抜きで示された黒丸は、既定の所定単位のデータであるパケットデータを示し、図３では、信号路上でパケットデータが所定周期で転送されている。主制御部１０５は、ＡＳＩＣ１１１へ送出するデータを所定単位のパケットデータに分割して、順次、送信部１０２へ送る。この送信されるパケットデータは、主制御部１０５から順次送られるパケットデータに対して、ＣＲＣ付加部３０１がＣＲＣ（Cyclic Redundancy Check）コードを付加している（図３の吹き出し参照）。ここでパケットデータは、その識別番号（識別情報）を持たないことに注意されたい。
【００２８】
これは実施形態１では、エラー発生時、パケットデータの識別番号を受信部１１２から送信部１０２へ伝える必要が無いからである。図３では、Ｐ１、Ｐ２、Ｐ３、Ｐ４という４つのパケットデータが既に送られてエラー信号が発生した状況を示す。ＣＲＣの生成方法は公知の方法で良い。
【００２９】
パケットデータは、ＰＨＹ１０３、ＰＨＹ１１３を介して受信部１１２に到達し、ＣＲＣチェック部３０７により、データとＣＲＣコードとが整合しているかどうかチェックされる。ＣＲＣコードが整合していなくてエラーと判断した場合、受信部１１２はエラー信号１１７により送信部１０２へエラーを通知する。
【００３０】
図３に示す送信部１０２及び受信部１１２の動作を、図４のタイミングチャートに従って説明する。
【００３１】
図４は、実施形態１に係る送信部１０２及び受信部１１２の動作を説明するタイミングチャートである。以下、タイミングチャートの各時刻の順に動作を説明する。
【００３２】
＜時刻ｔ１＞
時刻ｔ１において、ＣＲＣ付加部３０１から送信ポート１０６を介してパケットＰ１の送信を開始する。ここでパケットＰ１は、時刻ｔ１からｔ２の期間に、ＰＨＹ１０３を介してＡＳＩＣ１１１へ転送されると共に、再送バッファ３０２のエリア１に、そのコピーが格納される。次に時刻ｔ２で、パケットＰ１の全データが送信部１０２から送信され終わると、それと同時に、再送バッファ３０２のエリア１に対応するタイマ部３０３のタイマ１がカウントを開始する。
【００３３】
ここでタイマ１、２、３の共通の動作を図４（Ｂ）を参照して詳細に説明しておく。各タイマは、そのカウント値を持っていて初期値は「０」であり、対応するパケットデータが送信部１０２から全て送信され終わったときから一定周期毎にカウント値をインクリメントして経過時間を測定している。そしてカウント値がＣmaxに達すると、そのカウント値を「０」に戻して計時動作を停止する。
【００３４】
Ｃmax値は各タイマで共通であり、パケットデータが送信部１０２から送出されてエラー信号１１７が返るまでの時間Ｔdelayを元に定めておく。この例では、予想されるＴdelay値に対しマージンを持たせた下限値のＴdminとＴdmaxを定め、上限値のＴdmaxに対応するカウント値をＣmaxとしている。Ｔdminに対応するＣmin値と該Ｃmax値は、遅延範囲としてディレイ範囲格納部３０５に予め格納しておく。
【００３５】
＜時刻ｔ２＞
時刻ｔ２において、ＣＲＣ付加部３０１から送信ポート１０６を介してパケットＰ２の送信を開始する。パケットＰ２は、時刻ｔ２からｔ３の期間にＰＨＹ１０３を介してＡＳＩＣ１１１へ送信されると共に、再送バッファ３０２のエリア２にそのコピーが格納される。時刻ｔ３でパケットＰ２の全データが送信部１０２から送信される。それと同時にエリア２に対応するタイマ部３０３のタイマ２がカウントを開始する。
【００３６】
＜時刻ｔ３＞
時刻ｔ３において、ＣＲＣ付加部３０１から送信ポート１０６を介してパケットＰ３の送信を開始する。パケットＰ３は時刻ｔ３からｔ５の期間、ＰＨＹ１０３を介してＡＳＩＣ１１１へ送信されると共に、再送バッファ３０２のエリア３にそのコピーが格納される。時刻ｔ５で、パケットＰ３の全データが送信部１０２から送信される。それと同時にエリア３に対応するタイマ部３０３のタイマ３がカウントを開始する。
【００３７】
＜時刻ｔ４＞
時刻ｔ４において、ＣＲＣチェック部３０７は、受信ポート１１６を介してパケットＰ１の全てを受信し、それと同時に判定結果をエラー信号出力部３０８へ通知する。ここではパケットＰ１の受信で、エラーが検出されなかったとする。エラー信号出力部３０８は、エラーが発生していないことを示すためにエラー信号１１７をロウレベルにしたままとする。
【００３８】
＜時刻ｔ５＞
時刻ｔ５において、ＣＲＣ付加部３０１から送信ポート１０６を介してパケットＰ４の送信を開始する。パケットＰ４は時刻ｔ５からｔ７の期間、ＰＨＹ１０３を介してＡＳＩＣ１１１へ送信されると共に、再送バッファ３０２のエリア１にそのコピーが格納される。そして時刻ｔ７で、パケットＰ４の全データが送信部１０２から送信される。それと同時に、エリア１に対応するタイマ部３０３のタイマ１がカウントを開始する。
【００３９】
＜時刻ｔ６＞
このとき時刻ｔ６において、ＣＲＣチェック部３０７は受信ポート１１６を介して、パケットＰ２の全てを受信し、これと同時に判定結果をエラー信号出力部３０８へ通知する。ここでは、パケットＰ２の受信でエラーが検出されたものとする。エラー信号出力部３０８は、これによりエラー信号１１７をハイレベルにして、エラーの発生をＡＳＩＣ１１０１に通知する。
【００４０】
このエラー信号１１７によってエラーの発生を通知されたエラーパケット特定部３０４は、タイマ部３０３の各タイマの値をリードし、そのエラーに関連するパケットデータを特定する。このエラーパケットを特定するための方法を、図５のフローチャートを参照して説明する。尚、このエラーパケットを特定するためのロジックは、ハードウェアの組合せ回路で実現しても良い。
【００４１】
図５は、実施形態１に係るエラーパケット特定部３０４によるエラーパケットを特定する処理を説明するフローチャートである。
【００４２】
まずＳ５０１でエラーパケット特定部３０４はエラー信号１１７がハイレベルになるのを待ち、エラー信号１１７がハイレベルになるとＳ５０２，Ｓ５０３，Ｓ５０４の判断ステップでエラーパケットを特定する。即ち、Ｓ５０１でエラー信号１１７がハイレベルになってエラーが発生した判定するとＳ５０２に進み、タイマ１のカウント値と、ディレイ範囲格納部３０５に格納されたＣmin、Ｃmaxと比較する。ここでタイマ１のカウント値がＣmin、Ｃmaxの範囲内であればＳ５０５に進み、エラーパケットは、エリア１に格納されたパケットデータであると判定して、この処理を終了する。
【００４３】
そうでない場合はＳ５０２からＳ５０３に進み、タイマ２のカウント値と、ディレイ範囲格納部３０５に格納されたＣmin、Ｃmaxと比較する。そして、その範囲内であればエラーパケットは、エリア２に格納されたパケットデータであると判定して、この処理を終了する。そうでない場合はＳ５０３からＳ５０４に進み、タイマ３のカウント値と、ディレイ範囲格納部３０５に格納されたＣmin、Ｃmaxと比較する。そして、その範囲内であればエラーパケットは、エリア３に格納されたパケットデータであると判定して、この処理を終了する。またＳ５０４でＮｏと判定した場合はＳ５０８に進み、他のエラー要因であると判定して、この処理を終了する。
【００４４】
いま、図４（Ａ）の時刻ｔ６において、タイマ１のカウント値は０、タイマ２のカウント値はＣmin以上Ｃmax以下、タイマ３のカウント値はＣmin以下であるため、ここでは図５のＳ５０６が実行される。これによりエラーパケット特定部３０４は、再送バッファ３０２のエリア２に格納されたパケットＰ２がエラーに対応すると判断して、再送制御部３０６へ通知する。尚、図４（Ａ）で、タイマのカウント値を示す部分で薄く色付けているのは図４（Ｂ）に示すＣmin以上Ｃmax以下の部分を示している。
【００４５】
再送制御部３０６は、パケットＰ２のエラー通知を受けてパケット再送のシーケンスを実行する。ここでパケット再送シーケンスは、複数の実装方法がある。一つは、エラーが発生したパケットデータのみ再送し、エラーが通知されたときに既に送信済み、又は送りかけているパケットデータは再送しない方式である。これは再送するパケットの数を減少できるが、受信部１１２でパケットデータの並び替えが必要となる。他の一つの方法は、エラーが発生したときに、送信済みで受信が完了していないパケットデータ、及び送信しようとしているパケットデータの全てを送り直す方法である。図４（Ａ）は、後者の方法、即ちパケットＰ２、Ｐ３、Ｐ４を再送する方法を示している。
【００４６】
まず再送制御部３０６は、パケットＰ２のエラー通知を受けると、主制御部１０５とのフロー制御インターフェースにより、後続のパケットデータの転送（パケットＰ５に対応する転送単位）を待機させる。
【００４７】
次にエラー受信（時刻ｔ６）の時点で送出中のパケットデータがあった場合（ここではパケットＰ４が送出中である）、そのパケットデータの送信終了を待つ。ここでパケットＰ４の送信を即時中断する実施形態も可能である。そして、これ以降は、再送バッファ３０２に格納されたパケットＰ２以降のパケットデータを一つずつ再送する処理を繰り返す。この場合は、パケットＰ２、Ｐ３、Ｐ４の３つのパケットデータを再送する。
【００４８】
まず時刻ｔ７で、再送制御部３０６は再送バッファ３０２のエリア２に格納されたパケットＰ２を読み出しながら、その読み出したパケットＰ２をＡＳＩＣ１１１へ送信する。ここでもタイマ２のカウントは、パケットＰ２の送信終了時（ｔ８）にスタートする。再送信制御部３０６は、タイマ２のカウント値がＣdmaxになるまでエラー信号１１７を監視し、エラーが通知されなかった場合、パケットＰ２の送信が成功したと判断して、次はパケットＰ３の送信へ移る。ここでエラーが通知された場合は、時刻ｔ７からのパケットＰ２の再送処理を繰り返す。
【００４９】
パケットＰ３、Ｐ４の再送もパケットＰ２と同様に再送制御部３０６によって実行される。エラーが発生した場合の処理も同様である。図４（Ａ）は、パケットＰ３、Ｐ４の再送ではエラーが発生しなかった場合を示し、時刻ｔ９から時刻ｔ１０の間にパケットＰ３が送信され、時刻ｔ１１から時刻ｔ１２の間にパケットＰ４が送信されている。更に再送制御部３０６は、時刻ｔ１３の直前でタイマ１の値がＣdmaxを示したため、パケットＰ４の送信成功を確認する。そして主制御部１０５に対して行っていた後続の転送待機を解除し、パケットＰ５を構成する次の転送単位のデータ受信とパケットＰ５の送信を開始する。
【００５０】
次に、エラーを通知した後の受信部１１２の動作を説明する。
【００５１】
受信部１１２は、エラー信号１１７をハイレベルにしてエラーを通知した後、後続のどのパケットデータからが再送パケットであるか認識する必要がある。なぜなら送信部１０２は、エラーを検知した時点で既にエラーパケットに続く複数のパケットデータを送信済み、又は送信中であるかも知れず、再送パケットの送信はその後になるからである。従って受信部１１２は、エラーパケットに続く後続パケットが、その再送パケットで無いと判定した場合は、そのパケットデータを読み捨てるように下流モジュール（印刷データ処理部１３５）に指示を出さなければならない。受信制御部３１０は、この判断を行っており、ＣＲＣチェック部３０７がエラーを検知した後、Ｔdelayの時間内に受信を開始したパケットデータは再送パケットでは無いと判断する。送信部１０２はがエラー通知を受けた後に送信を開始するパケットデータは、必ず再送パケットであることに注意されたい。つまり送信部１０２は、エラー検知後に再送パケットを送信し、Ｔdelayの時間後に受信部１１２は受信を開始する。このため、再送データの受信開始は、エラー検知後からＴdelay経過した後になる。受信タイマ３０９は、この時間を計時するタイマである。ディレイ格納部３１１は、このTelday値に対応する受信タイマ３０９の値Ｃdelayを予め格納している。受信制御部３１０は、受信タイマ３０９によるカウント値と、ディレイ格納部３１１が保持する値Ｃdelayとを比較することにより、パケットデータが送出されてエラー信号１１７が返るまでの時間に相当するＴdelayの経過を検知する。
【００５２】
再び図４に戻って上記の動作を説明する。時刻ｔ６でエラー信号出力部３０８がエラー信号１１７をアサートすると同時に、受信タイマ３０９はカウントを開始する。そしてパケットＰ３及びＰ４のパケットデータを続いて受信する。受信制御部３１０は、これらパケットデータの受信開始時点では受信タイマ３０９のカウント値がＴdelayに相当するＣdelayに達していないため、送信部１０２がエラー認識した時点よりも前に送信を開始したパケットデータであると判断する。そして、それらパケットデータの読み捨てを下流モジュールへ指示する。当然ながら受信制御部３１０は、最初のパケットＰ２の転送がエラーしたときも下流モジュールへ読み捨て指示を出している。そして受信タイマ３０９のカウントがＣdelayに達した後、パケットデータの読み捨て指示を解除する。そして、それ以降のパケットデータの受信処理、つまりパケットＰ２以降の受信処理は通常と同様に行えば良い。
【００５３】
以上説明したように実施形態１によれば、連続してパケットデータを送信する際、受信側がパケットデータを受信してエラーがあると検知したときはエラー信号を返すだけで、送信側は、そのエラーパケットを含めて、それ以降のパケットデータを再送できる。これにより、エラー発生時にパケットデータの識別番号を受信側から送信側へ伝える必要がない。
【００５４】
［実施形態２］
次に本発明の実施形態２を説明する。この実施形態２と実施形態１との差分は、タイマ部６０３にある。実施形態１では、タイマ部３０３は再送バッファ３０２のエリアの数と等しい数のタイマを有していたのに対し、実施形態２のタイマ部６０３は、再送バッファ３０２の（エリアの数−１）のタイマを有する。従って、実施形態１と比較して回路がより小さくなり、コスト削減効果のメリットが有る。
図６は、実施形態２に係るＡＳＩＣ１０１とＡＳＩＣ１１１との間の伝送路においてパケットＰ２でエラーが発生したときの動作を説明するブロック図である。尚、図６において、前述の実施形態１の図３と共通する部分は同じ参照番号で示している。
【００５５】
図７は、実施形態２に係るエラーパケット特定部３０４によるエラーパケットを特定する処理を説明するフローチャートである。尚、この処理は、実施形態１と同様に、ハードウェアの組合せ回路で実現しても良い。
【００５６】
先ずＳ７０１でエラーパケット特定部３０４は、エラー信号１１７がハイレベルになるのを待ち、ハイレベルになるとＳ７０２、Ｓ７０３、Ｓ７０４の判断ステップでエラーパケットを特定する。まずＳ７０２でエラーパケット特定部３０４は、タイマ部６０３のタイマ１のカウント値と、ディレイ範囲格納部３０５に格納されたＣmin、Ｃmaxと比較する。タイマ１のカウント値がＣmin、Ｃmax範囲内にあればＳ７０４に進み、エリア１に格納されたパケットデータがエラーに対応するものと判定して、この処理を終了する。一方、そうでない場合はＳ７０３に進み、タイマ２のカウント値をディレイ範囲格納部３０５に格納されたＣmin、Ｃmaxと比較し、その範囲内であればＳ７０５に処理を進める。Ｓ７０５でエリア２に格納されたパケットデータがエラーに対応するものと判定して、この処理を終了する。Ｓ７０２，Ｓ７０３でいずれもＮＯと判定されるとＳ７０６に進み、エラーパケット特定部３０４は、再送バッファ３０３のエリア３に格納されたパケットデータがエラーに対応するものと判定して、この処理を終了する。
【００５７】
実施形態２の実施形態１に対するデメリットは、幾つかのエラー事象を検出できないことである。例えばディレイ範囲格納部３０５の格納値が違っていた場合は、実施形態１ではＳ５０８で他のエラーとして検出できるかもしれないが、実施形態２ではできない。同様なエラー事象として送信部１０２及び受信部１１２のロジック設計ミスが考えられる。よって、実施形態１と２のメリット及びデメリットを考慮した上で、いずれを実装するか選択すればよい。
【００５８】
［実施形態３］
上記実施形態１，２では、送信部１０２がパケットデータの送信を開始してから受信部１１２がエラー通知を返すまでのディレイが、予め分かっていることがポイントである。しかし、このディレイは、ＡＳＩＣ１０１とＡＳＩＣ１１１が実装される基板の電気的特性によって変動するかもしれない。またチップ間にケーブルを用いた場合も同様である。これらに条件の違いにフレキシブルに対応するために、このディレイを実際に取得し、それに基づいて上記動作を行うことが望ましい。従って実施形態３では、送信部１０２と受信部１１２との間で、上記ディレイを取得できる構成について説明する。尚、実施形態３に係る装置構成は前述の実施形態１と同じであるため、その説明を省略する。
【００５９】
図８は、実施形態３に係るＡＳＩＣ１０１の送信部とＡＳＩＣ１１１の受信部を説明するブロック図である。
【００６０】
図８において、指示信号８０２は、送信部１０２のＣＲＣ付加部８０１と再送制御部３０６に、ディレイ値を取得するための動作を指示する信号である。ＣＲＣ付加部８０１は、この指示信号８０２がアサートされると、故意に不正のＣＲＣコードをパケットデータに付加して出力する。また再送制御部３０６は、指示信号８０２がアサートされると、エラーパケットの再送処理を行わない。タイマ値取得部８０３は、不正のＣＲＣコードを付加したパケットデータを送信してからエラー信号１１７を受信するまでのタイマ１によるカウント値（計時値）を取得する。受信部１１２は、実施形態１と同じである。
【００６１】
図９は、実施形態３に係るディレイ値を取得するための動作を説明するローチャートである。この処理を実行するのはメインチップの主制御部１０５である。より詳細に述べれば、このフローチャートを実行するプログラムは主制御部１０５のＲＯＭに記憶されており主制御部１０５内のＣＰＵにより実行される。
【００６２】
先ずＳ９０１で主制御部１０５は、送信部１０２への制御信号であるディレイ値を取得するように指示する指示信号８０２をアサートする。次にＳ９０２に進み主制御部１０５は、送信部１０２へ１つのパケットに相当する所定の転送単位のデータを送信する。
【００６３】
次にＳ９０３の処理は、各ブロックによってなされる。つまりＣＲＣ付加部８０１は、そのパケットデータに不正のＣＲＣを付加してパケットＰ１としてＡＳＩＣ１１１に送信する。このとき、そのパケットＰ１は再送バッファ３０２のエリア１に格納され、これと同時にタイマ１が計時を開始する。
【００６４】
こうしてＳ９０３で、転送されたパケットＰ１は、ＰＨＹ１０３、伝送路、ＰＨＹ１１３を介してＣＲＣチェック部３０７へ送られる。次にＳ９０４でＣＲＣチェック部３０７は、そのパケットＰ１を全て受信するとＣＲＣエラーを検出し、エラー信号出力部３０８に対してエラーの発生を通知する。これによりエラー信号出力部３０８はエラー信号１１７をアサートする。
【００６５】
次にＳ９０５に進み、タイマ値取得部８０３は、そのエラー信号１１７がアサートされると、タイマ１の計時値を取得して保持する。この計時値は、パケットＰ１が送信されてからエラー信号が通知されるまでのディレイ（遅延値）の実測値となる。次にＳ９０６に進み主制御部１０５は、そのタイマ値取得部８０３が保存した遅延値を読み出してＴdelayとして保存する。
【００６６】
以上説明したように実施形態３によれば、主制御部１０５は、パケットデータが送信されてから、そのパケットデータのエラー信号が通知されるまでの実測値を得ることができる。こうして得られた遅延値を基に、主制御部１０５は所定のマージンを持たせるためのＣmax、Ｃminを決定してディレイ範囲格納部３０５へ格納する。また主制御部１０５は、ＡＳＩＣ１１１のディレイ格納部３１１へも、その遅延値を送信して格納する。このとき、ディレイ格納部３１１へ遅延値を書き込む際も、上述のマージンも持たせても良い。
【００６７】
以上説明した遅延値の取得処理、及び遅延値の再設定は、電源投入後等の初期状態で実行することが好ましい。
【００６８】
［実施形態４］
次に本発明の実施形態４を説明する。この実施形態４では、単純なエラー信号でエラー再送プロトコルを可能にすることにある。そのための他の解決手段として、シリアルの信号線でエラーを発生したパケットデータの識別情報を通知する。
【００６９】
図１０は、実施形態４に係るＡＳＩＣ１０１の送信部１０２とＡＳＩＣ１１１の受信部１１２を説明するブロック図である。
【００７０】
本実施形態４において、送信部１０２は識別番号付加部１００１を有し、パケットデータは個々のパケットを識別するための識別番号を含む。この識別番号は、送信したパケットデータを格納する再送バッファ３０２のエリアを少なくとも識別できれば良いものとする。ここではエリアの数は３であるため、２ビットの識別番号であれば良い。
【００７１】
受信部１１２は、受信したパケットデータをＣＲＣチェック部１００７でチェックする。ここでＣＲＣエラーが発生した場合は、そのパケットデータの識別番号をエラー信号出力部１００４へ通知する。ここでＣＲＣエラーが発生したパケットデータの識別番号は誤りを含んでいるかもしれないため、一つ前のパケットデータの識別番号を常に保持する識別番号保持部１００８を備えておき、エラー発生時にはその番号の次の値を送るようにするのが好ましい。
【００７２】
エラー信号出力部１００４は、そのエラーが発生したパケットデータの識別番号を受信すると、その番号に応じたハイ区間の幅を持つエラー信号１０１７を出力する。例えば、図１０のように、識別番号が「１」のときは１００ｎｓ、「２」のときは２００ｎｓ、「３」のときは３００ｎｓのパルス幅のエラー信号１０１７を出力する。
【００７３】
信号幅判定部３０６は、受信したエラー信号１０１７を１００ＭＨｚ程度の周波数でサンプリングし、そのサンプルされたパル幅から、どの識別信号のパケットデータでエラーが発生したかを判定する。こうしてエラーが発生したパケットデータが特定された後、そのパケットデータの再送動作に関しては実施形態１と同様であるため、その説明を省略する。
【００７４】
実施形態４では、エラー信号のパルス幅で識別番号を通知したが、識別番号をＲＳ２３２Ｃ等の送信プロトコルに乗せて通知しても良い。
【００７５】
本実施形態４は、パケットデータの送信からエラー通知までの遅延が一定でない場合にも適用可能なプロトコルである。実施形態１〜３に対するデメリットは、エラー通知を受けた時点（エラー信号の立ち上がりの時点）でエラーパケットを特定できないこと、及び識別番号を付加するためにパケットデータの冗長性が増すことである。
【００７６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７７】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００７８】
１０１，１１１，１２１…ＡＳＩＣ，１０２…送信部、１０３，１１３…ＰＨＹ，１０５…主制御部、１１２…受信部、１１５…印刷データ処理部、３０１…ＣＲＣ付加部、３０２…再送バッファ、３０３…タイマ、３０４…エラーパケット特定部、３０５…ディレイ範囲格納部
【図１】
2017211835.tif 000003
【図２】
2017211835.tif 000004
【図３】
2017211835.tif 000005
【図４】
2017211835.tif 000006
【図５】
2017211835.tif 000007
【図６】
2017211835.tif 000008
【図７】
2017211835.tif 000009
【図８】
2017211835.tif 000010
【図９】
2017211835.tif 000011
【図１０】
2017211835.tif 000012