(57)【要約】【課題】受信装置側での有効データの終端検出を簡素化し、消費電力を抑えること。【解決手段】データの先頭を示す開始コードとデータの長さを示す長さコードとをデータの先頭に付加する付加部と、開始コードと長さコードを付加したデータを、シリアル形式に変換して送信する送信部と、送信部からデータを受信する受信部と、受信したデータから開始コードと長さコードとを検出し、検出した開始コードに基づいてデータの先頭の位置を特定し、開始コード及び長さコードに基づいてデータの末端の位置を特定し、特定したデータの先頭及び末端の位置に基づいてデータを処理する処理部とを有するシリアル通信装置が開示される。【選択図】図１
2017050734.tif 000002
【特許請求の範囲】
【請求項１】
データの先頭を示す開始コードと前記データの長さを示す長さコードとを前記データの先頭に付加する付加部と、
前記開始コードと前記長さコードを付加したデータを、シリアル形式に変換して送信する送信部と、
前記送信部から前記データを受信する受信部と、
前記受信したデータから前記開始コードと前記長さコードとを検出し、前記検出した開始コードに基づいて前記データの先頭の位置を特定し、前記開始コード及び前記長さコードに基づいて前記データの末端の位置を特定し、前記特定したデータの先頭及び末端の位置に基づいてデータを処理する処理部とを有するシリアル通信装置。
【請求項２】
前記処理部は、受信した前記データを、前記特定した先端の位置から順に記憶領域に蓄積させ、該記憶領域に蓄積されたデータを前記先端の位置から前記末端の位置まで読み取る請求項１に記載のシリアル通信装置。
【請求項３】
前記付加部は、複数の前記開始コードと複数の前記長さコードとを前記データに付加し、
前記処理部は、複数の前記長さコードと、該長さコードに対応する開始コードとを検出た場合に前記末端の位置を特定する請求項１または２に記載のシリアル通信装置。
【請求項４】
前記処理部は、２以上の同じ値を有する前記長さコードが検出されたときに、前記末端の位置を特定する請求項１又は２に記載のシリアル通信装置。
【請求項５】
前記付加部は、前記データの末端に少なくとも１つの終端コードを付加し、
前記処理部は、前記終端コードが検出されたときに前記末端の位置を特定する請求項３又は４に記載のシリアル通信装置。
【請求項６】
前記処理部は、前記特定されたデータの末端位置まで記憶領域に蓄積された場合又は前記記憶領域内に所定量以上のデータが格納された場合に、データの読み取りを開始する請求項１乃至５のいずれか１項に記載のシリアル通信装置。
【請求項７】
送信装置によってシリアル形式に変換されたデータを受信装置が受信する通信システムにおいて、
前記送信装置は、
前記データの先頭を示す開始コードと前記データの長さを示す長さコードとを前記データの先頭に付加する付加部と、
前記データをシリアル形式に変換して前記受信装置に送信する送信部と、を有し、
前記受信装置は、
前記送信装置から前記データを受信する受信部と、
前記受信したデータをパラレル形式に変換してから記憶領域に蓄積させ、前記データの先頭に付加された、前記データの先頭を示す開始コードと前記データの長さを示す長さコードとを検出し、前記検出した開始コードに基づいて前記データの先頭の位置を特定し、前記開始コード及び前記長さコードに基づいて前記データの末端の位置を特定し、前記特定したデータの先頭及び末端の位置に基づいてデータを処理する処理部と、
を有する通信システム。
【請求項８】
データの先頭を示す開始コードと前記データの長さを示す長さコードとを前記データの先頭に付加し、
前記開始コードと前記長さコードを付加したデータを、シリアル形式に変換して送信し、
前記送信されたデータを受信し、
前記受信したデータをパラレル形式に変換してから記憶領域に記憶させ、
前記データの先頭に付加された、前記データの先頭を示す開始コードと前記データの長さを示す長さコードとを検出し、
前記検出した開始コードに基づいて前記データの先頭の位置を特定し、
前記開始コード及び前記長さコードに基づいて前記データの末端の位置を特定し、
前記特定したデータの先頭及び末端の位置に基づいてデータを抽出する処理をシリアル通信装置が実行する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信装置、通信システム及び通信方法に関する。
【背景技術】
【０００２】
画像データの先頭及び末端に制御コードを付加して高速シリアル通信する技術がある。
【０００３】
例えば、送信側で画像データの先頭に複数の開始コードを付加し、画像データの末端に複数の終端コードを付加してデータ転送を行い、受信側で開始コードと終端コードとを検出することで画像データを抽出する（例えば、特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、デシリアライズする際は、開始コードと終端コードとの双方を除去するためのバッファ領域を受信装置に設けるため、受信装置の回路規模が増大し、消費電力が大きくなる。特に、フレーム除去処理で終端コードが冗長となり、高周波で動作する回路の増大と消費電力の増大の原因となる。
【０００５】
そこで、開示の技術では、受信装置側での有効データの終端検出を簡素化し、消費電力を抑えることを目的とする。
【課題を解決するための手段】
【０００６】
実施形態では、データの先頭を示す開始コードと前記データの長さを示す長さコードとを前記データの先頭に付加する付加部と、前記開始コードと前記長さコードを付加したデータを、シリアル形式に変換して送信する送信部と、前記送信部から前記データを受信する受信部と、前記受信したデータから前記開始コードと前記長さコードとを検出し、前記検出した開始コードに基づいて前記データの先頭の位置を特定し、前記開始コード及び前記長さコードに基づいて前記データの末端の位置を特定し、前記特定したデータの先頭及び末端の位置に基づいてデータを処理する処理部とを有するシリアル通信装置が開示される。
【発明の効果】
【０００７】
受信装置側での有効データの終端検出を簡素化し、消費電力を抑えることができる。
【図面の簡単な説明】
【０００８】
【図１】シリアル転送を行うシリアル通信装置の構成の例を示す図である。
【図２】可変長コードの第１の例を示す。
【図３】制御コード用の変換テーブルの一例を示す図である。
【図４】デシリアライザの回路構成の第１の例を示す図である。
【図５】バッファの動作を説明するための図である。
【図６】デシリアライザの回路構成の第２の例を示す図である。
【図７】デシリアライザによる受信処理フローの例を示す図である。
【図８】可変長コードの第２の例を示す。
【図９】通信システムの構成の例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することによって重複した説明を省く。
【００１０】
（実施形態１）
図１は、シリアル転送を行うシリアル通信装置１の例を示す図である。シリアル通信装置１は、シリアライザ（ＳＥＲ：Serializer）２０と、デシリアライザ（ＤＥＳ：Deserializer）１０とを有する。図１の例では、シリアル通信装置１は、画像データをシリアルデータに変換して、シリアライザ２０からデシリアライザ１０へ２つの通信レーンを介して転送する。シリアライザ２０は、エンコード部２２ａと、エンコード部２２ｂと、送信インターフェース（以下、ＴＸＩＦ部という）２３と、シリアル送信部２５ａと、シリアル送信部２５ｂを有する。シリアル送信部２５ａは、Ｐ／Ｓ（Parallel / Serial）変換部２１ａと、ドライバ５ａとを有する。シリアル送信部２５ｂは、Ｐ／Ｓ変換部２１ｂと、ドライバ５ｂとを有する。
【００１１】
また、デシリアライザ１０は、レシーバ６ａと、レシーバ６ｂと、クロックデータリカバリ（以下、ＣＤＲ部（Clock Data Recovery）という）１１ａと、ＣＤＲ部１１ｂと、デコード部１２ａと、デコード部１２ｂと、受信インターフェース（以下、ＲＸＩＦ部という）１３とを有する。また、ＲＸＩＦ部１３は、バッファ１５ａと、バッファ１５ｂとを有する。
【００１２】
シリアル通信装置１が適用される例としては、例えば、ＭＦＰ（Multifunction Printer）等の多機能画像形成装置のスキャナ部にシリアライザ２０が配置され、印刷部にデシリアライザ１０が配置される。この場合、スキャナ部と印刷部と間でシリアル転送が行われる。なお、図１の構成は、ＭＦＰ以外の様々な装置及びシステムに適用できる。
【００１３】
ＴＸＩＦ部２３は、シリアル転送を行う場合のインターフェースである。ＴＸＩＦ部２３は、８ビットのパラレルデータ（画像データ）の先端に複数の制御コードを付加することで可変長コードを生成する。例えば、画像データにブラック、マゼンタ、シアン、イエローの４色の色データが含まれる場合、ＴＸＩＦ部２３は、は、ブラック及びマゼンタの色データに係る可変長コードを生成する。また、ＴＸＩＦ部２３は、シアン及びイエローの色データに係る可変長コードを生成する。なお、ＴＸＩＦ部２３は、さらにスキュー調整機能を備えてもよい。
【００１４】
制御コードは、ＣＯＭコード、長さコード及び開始コードで構成される。画像データの先頭に付加される複数の制御コードをＳＴＰフレームという。なお、実施形態１では、画像データの末端にＥＮＤコードを付加しなくてもよい。
【００１５】
図２は、可変長コードの第１の例を示す。例えば、可変長コードαは、ＳＴＰフレーム３１と画像データ３２との組み合わせにより構成される。なお、実施形態１においては、画像データ３２の末端にＥＮＤコード（終端コード）を付加しなくてもよい。
【００１６】
ＣＯＭコード３３は、可変長コードαと、可変長コードαに隣接する他の可変長コードとの間に格納される。ＳＴＰフレーム３１は、ＣＯＭコード、長さコード（図３では「Length」と表記）及びＳＴＰコードの組み合わせにより構成される。ＣＯＭコードは、他のＳＴＰコード及び長さコードとの境界に格納される。これにより、隣接するＳＴＰコード及び長さコードとの間に距離を設け、ＳＴＰコード及び長さコードを検出しやすくしている。
【００１７】
長さコードは、転送すべきデータ（例えば、画像データ３２）のデータ長を示す。ＳＴＰコードは、転送すべきデータ（例えば、画像データ３２）の先頭の位置を示す。なお、ＳＴＰフレーム３１に含まれるＣＯＭコード、長さコード（Length）及びＳＴＰコードの組み合わせ数が４つの例について説明したが、組み合わせ数は５つ以上であってもよく、３つ以下であってもよい。
【００１８】
図１に戻る。エンコード部２２ａは、所定の変換テーブルに基づいて可変長コードに係る８ビットのパラレルデータを１０ビットのパラレルデータに変換する。例えば、エンコード部２２ａは、後述する図２の変換テーブルを用いて８ビットの制御コード（例えば、ＳＴＰコード、ＣＯＭコード等）を１０ビットの制御コードに変換し、データ用の公知の変換テーブル（不図示）を用いて８ビットの画像データを１０ビットの画像データに変換する。エンコード部２２ｂは、エンコード部２２ａと同様に、所定の変換テーブルに基づいて可変長コードの８ビットのパラレルデータを１０ビットのパラレルデータに変換する。
【００１９】
なお、実施形態１では、８Ｂ／１０Ｂ変換を使用する場合の例について説明するが、エンコード方法はこれに限定されない。６４Ｂ／６６Ｂ、６４Ｂ／６７Ｂ、１２８Ｂ／１３０Ｂ、ＴＭＤＳ（Transition Minimized Differential Signaling）等の他のエンコード方法を用いてもよい。
【００２０】
図３は、制御コード用の変換テーブルの一例を示す図である。「Symbol Name」は、シンボルコードの種別を示す。シンボルコードは、１２種類用意されており、１種類のＣＯＭコード、５種類のＳＴＰコード（ＳＴＰ１〜５）及び５種類のＥＮＤコード（ＥＮＤ１〜５）のそれぞれにシンボルコードが割り当てられる。なお、ＳＴＰコードは、開始コードに対応し、ＥＮＤコードは、終端コードに対応する。ＣＯＭコードは、画像データ間の境界に格納されるコードである。ＣＯＭコードには、０又は１のビットが５回連続する「K28.5」を割り当てることで、隣接する他の可変長コードとの境界を検出しやすくしている。「Data Byte Name」は、シンボルコードの名称を示す。「Data Byte Value(hex)」は、８ビットのシンボルコードを１６進数で表したものである。「８Ｂコード」は、８ビットのシンボルコードを示す。「１０Ｂコード」は、８ビットのシンボルコードに対応する極性ＲＤ＋（ランニングディスパリティ）及び極性ＲＤ−の１０ビットのシンボルコードである。エンコード部２２ａ及び２２ｂは、所定の規則に基づいて８ビットのシンボルコードに対して、極性ＲＤ＋又は極性ＲＤ−の１０ビットのシンボルコードを割り当てる。極性ＲＤ−は、極性ＲＤ＋のビット列をビット反転させたシンボルコードである。
【００２１】
例えば、エンコード部２２ａは、極性ＲＤ＋又は極性ＲＤ−のシンボルコードを交互に割り当てることで、０又は１のビットが所定回数以上（例えば５回）連続するのを避け、シリアル通信を安定させる。なお、エンコード部２２ａは、１つのシンボルコードで０又は１のビットが５回連続しているＳＴＰ５等のシンボルコードを割り当てないようにしてもよい。
【００２２】
また、エンコード部２２ｂは、エンコード部２２ａと同様に、極性ＲＤ＋又は極性ＲＤ−のシンボルコードを交互に割り当てる。画像データ（Ｄコード）についても、ＳＴＰコード、ＣＯＭコード等の制御コード（Ｋコード）と同様に、正及び負の極性のシンボルコードを交互に割り当ててもよい。
【００２３】
図１に戻る。Ｐ／Ｓ変換部２１ａは、可変長コードαに係る各々の１０ビットのパラレルデータを１ビットずつに分け、１０ビットのシリアルデータに変換する。例えば、画像データにブラック、マゼンタ、シアン、イエローの４色の色データが含まれる場合、Ｐ／Ｓ変換部２１ａは、ブラック及びマゼンタの各々の１０ビットのパラレルデータを１ビットずつに分け、１０ビットのシリアルデータに変換する。また、Ｐ／Ｓ変換部２１ｂは、シアン及びイエローの各々の１０ビットのパラレルデータを１ビットずつに分け、１０ビットのシリアルデータに変換する。なお、Ｐ／Ｓ変換部２１ａ及び２１ｂは、シリアルデータに対してエンファシス処理を行ってもよい。
【００２４】
続いて、Ｐ／Ｓ変換部２１ａは、ドライバ５ａからＬａｎｅ０を介してデシリアライザ１０に、シリアルデータを転送する。Ｐ／Ｓ変換部２１ｂは、ドライバ５ｂからＬａｎｅ１を介してデシリアライザ１０にシリアルデータを転送する。
【００２５】
なお、ドライバ５ａは、シリアルデータとこのシリアルデータの位相を反転させた逆位相のデータとをＬａｎｅ０で送信する。ドライバ５ｂも同様の送信方式でシリアルデータを送信する。Ｐ／Ｓ変換部２１ａとドライバ５ａとを合わせてシリアル送信部２５ａとして用いてもよい。また、Ｐ／Ｓ変換部２１ｂとドライバ５ｂとを合わせてシリアル送信部２５ｂとして用いてもよい。
【００２６】
デシリアライザ１０においてＣＤＲ部１１ａは、Ｌａｎｅ０を介してレシーバ６ａで受信した差動信号に基づいてシリアルデータを再生し、シリアルデータに埋め込まれたクロック信号を抽出してクロックデータとシリアルデータを分離する。
【００２７】
ＣＤＲ部１１ｂは、ＣＤＲ部１１ａと同様に、抽出したクロック信号と送信データとをデコード部１２に供給する。
【００２８】
デコード部１２ａは、シリアルデータをパラレルデータに変換する。続いて、デコード部１２ａは、所定の変換テーブルに基づいて可変長コードαに係る１０ビットのパラレルデータを８ビットのパラレルデータに変換する。デコード部１２ａは、図２の変換テーブルに基づいて可変長コードαに係る１０ビットのパラレルデータを８ビットのパラレルデータに変換してもよい。続いて、デコード部１２ａは、復号された８ビットのパラレルデータ（可変長コードα）をバッファ１５ａに出力する。
【００２９】
デコード部１２ｂは、デコード部１２ａと同様にシリアルデータを処理し、８ビットのパラレルデータをバッファ１５ｂに出力する。
【００３０】
ＲＸＩＦ部１３は、バッファ１５ａ及び１５ｂを有する。ＲＸＩＦ部１３は、ＳＴＰフレーム３１に格納されたＳＴＰコードを検出し、ＳＴＰコードに基づいて画像データの先頭の位置を特定する。また、ＲＸＩＦ部１３は、さらに長さコードを検出し、ＳＴＰコードと、検出した長さコードとに基づいて画像データの末端の位置を特定する。例えば、ＲＸＩＦ部１３は、ＳＴＰコードにより特定される画像データの先頭のアドレスに、長さコードによって示される画像データのデータ長を加算することにより、画像データの末端のアドレスを算出する。続いて、ＲＸＩＦ部１３は、可変長コードαからＳＴＰフレームを除去するフレーム除去処理を行う。続いて、ＲＸＩＦ部１３は、画像データをバッファ１５ａ及び１５ｂに出力する。
【００３１】
ＲＸＩＦ部１３は、所定数以上のＳＴＰコードと長さコードとが検出されたことを条件に、画像データの先頭及び末端を検出する。あるいは、全てのＳＴＰコードと長さコードとが検出されたことを条件に、画像データの先頭及び末端を検出することにしてもよい。
【００３２】
ＲＸＩＦ部１３は、検出した画像データの末端を、バッファ１５ａ又は１５ｂに出力した際に、バッファ１５ａ及び１５ｂのリード処理を開始する。ＲＸＩＦ部１３は、バッファ１５ａ及び１５ｂに格納されている画像データを、クロック単位で同期化した状態で不図示の後段の画像処理部に送信する。
【００３３】
また、ＲＸＩＦ部１３は、画像データの先頭の位置にリードポインタ（ｒｐｔｒ）を設定し、画像データの末端の位置にライトポインタ（ｗｐｔｒ）を設定する。ＲＸＩＦ部１３は、ｒｐｔｒのアドレスとｗｐｔｒのアドレスとの差分を算出することによりバッファ格納サイズを取得する。ＲＸＩＦ部１３は、バッファ格納サイズが所定値以上となった場合、画像データの末端をバッファ１５ａ又は１５ｂに出力する前であっても、バッファ１５ａ又は１５ｂのリード処理を先に開始してもよい。
【００３４】
ＲＸＩＦ部１３は、Ｌａｎｅ０及びＬａｎｅ１間で遅延が発生している場合等には、デスキュー調整を行う。また、ＲＸＩＦ部１３は、Ｌａｎｅ０及びＬａｎｅ１間で周波数に偏差が発生している場合、周波数の偏差を補正する。
【００３５】
図４は、デシリアライザ１０の回路構成の第１の例を示す図である。デシリアライザ１０は、ＣＤＲ部１１ａと、ＣＤＲ部１１ｂと、デコード部１２ａと、デコード部１２ｂと、ＲＸＩＦ部１３と、スキュー値測定回路１４と、バッファ１５ａと、バッファ１５ｂと、レジスタ１６とを有する。
【００３６】
ＣＤＲ部１１ａは、レシーバ６ａで受信されたシリアルデータからクロックと送信データとを抽出して、デコード部１２ａにシリアルデータを供給する。ＣＤＲ部１１ｂは、ＣＤＲ部１１ａと同様の処理を行い、デコード部１２ａにシリアルデータを送信する。
【００３７】
デコード部１２は、それぞれシリアルデータをパラレルデータに変換する。また、デコード部１２ａは、デシリアライザ１０で使用される信号周波数のロック状態を検出する周波数ロック検出の処理、また各制御コード及び各データコードの境界を検出するシンボル境界検出の処理などを行う。続いて、デコード部１２ａは、図２の変換テーブル等に基づいて１０ビットのパラレルデータを８ビットのパラレルデータに変換し、ＲＸＩＦ部１３に出力する。
【００３８】
ＲＸＩＦ部１３は、ＳＴＰフレームに含まれる開始コード及び長さコードにより、画像データの末端を特定する。続いて、ＲＸＩＦ部１３は、可変長コードαからＳＴＰフレームを除去して画像データとした後に、画像データをバッファ１５ａ及び１５ｂに蓄積させる。
【００３９】
ＲＸＩＦ部１３は、バッファ１５ａ又は１５ｂのバッファ格納サイズが所定値以上となった場合、リード処理を開始する。また、ＲＸＩＦ部１３は、画像データの末端を検出した場合、リード処理を開始する。また、Ｌａｎｅ０及びＬａｎｅ１間で遅延が発生しているため、デスキューを要する場合、リード処理を開始する。なお、リード処理をするタイミングに関しては後述する。なお、バッファ１５ａ及び１５ｂのバッファのバッファ格納サイズは、スキュー値測定回路１４によって測定される。
【００４０】
続いて、ＲＸＩＦ部１３は、バッファ１５ａ及び１５ｂからリードした画像データを後段の画像処理部へ送信する。
【００４１】
図５は、バッファ１５の動作を説明するための図である。上段がバッファ１５ａを示し、下段がバッファ１５ｂを示す。バッファ１５ａ及びバッファ１５ｂ内のマス目は、バッファ段数を示す。バッファ段数とは、所定容量ごとにバッファの記憶容量を区分したものである。バッファ１５ａ及びバッファ１５ｂに画像データがライトされると、右側のマス目から順に画像データが格納される。例えば、Ｌａｎｅ１を介して送信された画像データがバッファ１５ｂにライトされたことで、＃０〜＃４までのバッファ段数に画像データが格納されている。
【００４２】
バッファ１５ｂの右端には、ｒｐｔｒが設定され、＃４の末尾には、ｗｐｔｒが設定される。ＲＸＩＦ部１３は、ｒｐｔｒのアドレスとｗｐｔｒのアドレスとの差分値を算出することにより、バッファ格納サイズを取得する。ＲＸＩＦ部１３は、バッファ格納サイズが所定値以上となった場合、リード処理を開始する。
【００４３】
また、ＲＸＩＦ部１３は、画像データの末端のバッファ１５ａ及び１５ｂへの出力を検出した場合、リード処理を開始する。具体的には、ＲＸＩＦ部１３は、可変長コードαに含まれる長さコードに基づいて、画像データの末端が格納された場合のバッファ段数を設定し、設定した段数まで画像データが格納されたことを検出することで、画像データの末端がバッファ１５ａ及び１５ｂへ出力されたことを検出してもよい。
【００４４】
例えば、ＲＸＩＦ部１３は、可変長コードαに含まれる長さコードを用いて、画像データの末端が格納された場合のバッファ段数「５」を算出する。続いて、ＲＸＩＦ部１３は、画像データが＃５まで格納されたことにより、画像データの末端がバッファ１５ａ及び１５ｂへ出力されたことを検出する。
【００４５】
なお、ＲＸＩＦ部１３は、画像データの末端を検出する前であっても、バッファ格納サイズが所定値以上となった場合、リード処理を開始してもよい。かかる場合は、ＲＸＩＦ部１３は、リード処理と共に、画像データの末端を検出するまでライト処理を並行して行う。
【００４６】
また、ＲＸＩＦ部１３は、バッファ１５ａ及びバッファ１５ｂ間で時間遅延が発生している場合には、リード処理が開始されたバッファに合わせて、他方のバッファがリード処理を開始してもよい。例えば、バッファ１５ａの＃５が画像データの末端である場合、ＲＸＩＦ部１３は、バッファ１５ａのリード処理を開始する。さらに、バッファ１５ｂで画像データの末端が検出される前であっても、ＲＸＩＦ部１３は、バッファ１５ａのリード処理が開始されたクロックと同じクロックで、バッファ１５ｂのリード処理を開始してもよい。これにより、ＲＸＩＦ部１３は、バッファ１５ａ及びバッファ１５ｂの画像データを、クロック単位で同期させることができる。なお、バッファ１５ｂにおいては、リード処理に並行してライト処理が実行される。
【００４７】
図６は、デシリアライザ１０の回路構成の第２の例を示す図である。デシリアライザ１０は、ＣＤＲ部１１ａと、ＣＤＲ部１１ｂと、デコード部１２ａと、デコード部１２ｂと、デスクランブル処理部１７ａと、デスクランブル処理部１７ｂと、インタリーブ処理部１８ａと、インタリーブ処理部１８ｂと、ＲＳＤｅｃ処理部１９ａと、ＲＳＤｅｃ処理部１９ｂと、ＲＸＩＦ部１３と、レジスタ１６とを有する。また、ＲＸＩＦ部１３は、バッファ１５ａと、バッファ１５ｂとを有する。
【００４８】
ＣＤＲ部１１ａは、レシーバ６ａで受信されたシリアルデータからクロックと送信データとを抽出して、デコード部１２ａにシリアルデータを供給する。続いて、デコード部１２ａは、シリアルデータをパラレルデータに変換する。続いて、デスクランブル処理部１７ａは、シリアライザ２０の図示されないスクランブラによって、スクランブル処理されたデータを解除（デスクランブル）する。続いて、インタリーブ処理部１８ａは、バーストエラーを防ぐために、シリアライザ２０によりデータの順序が並び替えられて出力されたデータを元の順序に戻す。続いて、ＲＳＤｅｃ処理部１９ａは、可変長コードαに付加されている誤り訂正符号を用いて誤り訂正を行った後、誤り訂正符号を削除する。続いて、ＲＳＤｅｃ処理部１９ａは、可変長符号をＲＸＩＦ部１３に出力する。
【００４９】
また、ＣＤＲ部１１ｂ、デコード部１２ｂ、デスクランブル処理部１７ｂ、インタリーブ処理部１８ｂ及びＲＳＤｅｃ処理部１９ｂも、上記と同様の処理を実行する。
【００５０】
なお、デシリアライザ１０が図６の構成をとる場合、シリアライザ２０は、不図示のスクランブル処理部と、インタリーブ処理部とを有する。
【００５１】
図７は、デシリアライザ１０による受信処理のフローの例を示す図である。デシリアライザ１０は、受信したシリアルデータをパラレルデータに変換し、所定の変換テーブルに基づいて１０ビットのパラレルデータを８ビットのパラレルデータに変換する（ステップＳ１０）。続いて、デシリアライザ１０は、Ｌａｎｅ毎にＳＴＰコード及び長さコードを検出する（ステップＳ１１）。これにより、デシリアライザ１０は、画像データの先頭及び末端を検出する。なお、デシリアライザ１０は、ＳＴＰフレームに含まれるＳＴＰコード及び長さコードを所定回数以上検出することを条件として画像データの先頭及び末端を検出してもよい。また、デシリアライザ１０は、全てのＳＴＰコード及び長さコードを検出することを条件として画像データの先頭及び末端を検出してもよい。
【００５２】
デシリアライザ１０は、Ｌａｎｅ毎に可変長コードαからＳＴＰフレームを除去した後、バッファ１５ａ及び１５ｂに画像データを転送する（ステップＳ１２）。
【００５３】
続いて、デシリアライザ１０は、バッファ１５ａ及び１５ｂ内の画像データの蓄積量が規定量以上か否かを判定する（ステップＳ１３）。デシリアライザ１０は、バッファ１５ａ及び１５ｂ内のバッファ格納サイズが規定量以上となった場合（ステップＳ１３Ｙｅｓ）、ステップＳ１６の処理に移行する。一方、デシリアライザ１０は、バッファ１５ａ及び１５ｂ内のバッファ格納サイズが規定量未満の場合（ステップＳ１３Ｎｏ）、ステップＳ１４の処理に移行する。なお、バッファ格納サイズは、画像データの先頭を示すポインタｒｐｔｒのアドレスと終端を示すポインタｗｐｔｒのアドレスとの差分により算出される。
【００５４】
ステップＳ１４において、デシリアライザ１０は、データの末端を検出した場合（ステップＳ１４Ｙｅｓ）、ステップＳ１６の処理に移行する。一方、デシリアライザ１０は、データの末端を検出していない場合（ステップＳ１４Ｎｏ）、バッファ１５ａ及び１５ｂへのライト処理を継続し（ステップＳ１５）、ステップＳ１３に戻る。
【００５５】
なお、デシリアライザ１０は、ステップＳ１４において、ライトされた画像データのバッファ段数と、画像データの末端に対応するバッファ段数であるｅｎｄ＿ｐｔｒ値とを比較する。デシリアライザ１０は、ライトされた画像データのバッファ段数とｅｎｄ＿ｐｔｒ値とが等しい場合に、データの末端を検出したと判定する。
【００５６】
上記データの末端の検出方法は、一例である。例えば、デシリアライザ１０は、バッファ１５ａ及び１５ｂにライトされた画像データの末端位置のアドレスと、ライトを開始した位置のアドレスに画像データのデータ長を加算した位置のアドレスとの比較に基づいて、データ末端を検出してもよい。
【００５７】
ステップＳ１６において、デシリアライザ１０は、バッファ１５ａ及び１５ｂからリード処理を開始する（ステップＳ１６）。続いて、デシリアライザ１０は、バッファ１５ａ及び１５ｂへのライト処理が完了したか否かを判定する（ステップＳ１７）。デシリアライザ１０は、ライト処理が完了した場合（ステップＳ１７Ｙｅｓ）、ステップＳ１９の処理に移行する。一方、デシリアライザ１０は、ライト処理が完了していない場合（ステップＳ１７Ｎｏ）、データ末端を検出するまでバッファ１５ａ及び１５ｂにライト処理を行い（ステップＳ１８）、ステップＳ１６に戻る。
【００５８】
なお、デシリアライザ１０は、ライトされた画像データのバッファ段数とｅｎｄ＿ｐｔｒ値とが等しい場合に、データの末端までライト処理したと判定する。
【００５９】
ステップＳ１９において、デシリアライザ１０は、データ末端検出までの段数管理のため、ＳＴＰコード及び長さコードに基づいて、データ末端を検出したバッファ段数をｅｎｄ＿ｐｔｒ値として保持する（ステップＳ１９）。
【００６０】
なお、デシリアライザ１０は、ステップＳ１４及びステップＳ１８において、ステップＳ１９で保持されたｅｎｄ＿ｐｔｒ値を用いてデータ末端を検出するようにしてもよい。例えば、ステップＳ１８において、デシリアライザ１０は、データ末端に対応するバッファ段数が５であった場合、ｅｎｄ＿ｐｔｒ値を５とする。ステップＳ１８において、デシリアライザ１０は、ライトされた画像データのバッファ段数≧５となるまで、ライト処理行う。
【００６１】
デシリアライザ１０は、バッファ１５ａ及び１５ｂからのリード処理が完了するまでに、リードした画像データを画像処理部へ転送する（ステップＳ２１）。続いて、デシリアライザ１０は、画像データの画像処理部への転送を完了させると（ステップＳ２１）、処理を終了させる。
【００６２】
デシリアライザ１０は、全ての画像データの転送が完了するまでステップＳ１０〜Ｓ２１の処理を実行する。
【００６３】
ステップＳ１５で行われるライト処理と、ステップＳ１８で行われるライト処理とを具体例を挙げて説明する。
【００６４】
例えば、デシリアライザ１０は、バッファ１５ａ又は１５ｂにおいてデータ末端を検出するまでは、ステップＳ１５のライト処理を継続して行う。
【００６５】
デシリアライザ１０は、バッファ１５ａにおいてデータ末端を検出した場合、バッファ１５ａのリード処理を開始（ステップＳ１６）するとともにバッファ１５ｂのリード処理を開始（ステップＳ１６）する。
【００６６】
デシリアライザ１０は、バッファ１５ａのライト処理が完了しているので、バッファ１５ａに関してはステップＳ１９の処理に移行する。一方、デシリアライザ１０は、バッファ１５ｂのライト処理は完了していないので、ステップＳ１６のリード処理を行いつつ、ステップＳ１８のライト処理を実行する。デシリアライザ１０は、バッファ１５ｂに対するステップＳ１８のライト処理を、データ末端を検出するまで実行する。
【００６７】
以上、実施態様１に示したように制御コードを除去する際に使用するバッファの容量を小さくすることができるので、デシリアライザ１０における消費電力を抑えることができる。
【００６８】
（実施形態２）
デシリアライザ１０は、画像データの末端にＥＮＤコードを有する可変長コードに基づいて画像データの末端の位置を特定してもよい。ＥＮＤコードは、有効データの終わりを示す制御コード（Ｋコード）である。
【００６９】
この場合、ＥＮＤコードは実施形態１の方法によるデータ末端検出の補助あるいは精度向上のために用いられる。なお、シリアル通信装置１の構成は、実施形態１と同様であるので説明を省略する。
【００７０】
図８は、可変長コードの第２の例を示す。可変長コードαは、ＳＴＰフレーム４１と画像データ４２と、ＥＮＤコード４４との組み合わせにより構成される。ＣＯＭコード４３は、可変長コードα間に格納される。
【００７１】
ＳＴＰフレーム４１は、ＣＯＭコード、長さコード（図８では「Length」と表記）及びＳＴＰコードの組み合わせにより構成される。ＣＯＭコードは、他のＳＴＰコード及び長さコードとの境界に格納される。長さコードは、画像データ４２のデータ長を示す。ＳＴＰコードは、画像データ４２の先頭の位置を示す。なお、ＳＴＰフレーム４１に含まれるＣＯＭコード、長さコード及びＳＴＰコードの組み合わせ数が４つの例について説明したが、組み合わせ数は５以上であってもよく、３以下であってもよい。
【００７２】
各々のＳＴＰコードは、それぞれ画像データ４２の先端の位置を示しており、デシリアライザ１０のＲＸＩＦ部１３は、先端の位置に長さデータが示すデータ長を加算することで画像データの末端の位置を取得することができる。ＲＸＩＦ部１３は、画像データの末端の位置にＥＮＤコード４４があるか否かを判定する。画像データの末端の位置にＥＮＤコード４４があることを条件として、ＲＸＩＦ部１３は、画像データ４２の末端の位置を特定する。
【００７３】
なお、ＲＸＩＦ部１３は、検出した複数の長さコードが全て同じ値であることを追加の条件として画像データ４２の末端の位置を特定するようにしてもよい。
【００７４】
このように、画像データの末端の位置でＥＮＤコードを検出することを条件として画像データの末端を検出することで、画像データ末端の検出の信頼性を高めることができる。
【００７５】
また、画像データの末端に付加するＥＮＤコードは、１つのみでもよく、可変長コードαのデータ長を短くすることができるため、制御コードを除去する際に使用するバッファの容量を小さくすることができ、消費電力を抑えることができる。
【００７６】
また、シリアライザ２０は、ＥＮＤコードの前後に巡回符号、誤り訂正符号等を付加し、デシリアライザ１０は、付加された巡回符号、誤り訂正符号等を検出し、処理できる構成としてもよい。
【００７７】
以上、シリアル通信装置を実施形態により説明したが、本発明は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【００７８】
実施形態１及び２に記載のシリアル転送は、複数の装置を含む通信システムにも適用できる。実施形態１及び２に記載のシリアル転送を通信システムに適用する例について説明する。
【００７９】
図９は、通信システム２の構成の例を示す図である。通信システム２は、プリンタサーバ３とスキャナ４とを有する。プリンタサーバ３は、デシリアライザ１０を含む。また、スキャナ４は、シリアライザ２０を含む。このように、装置間の通信に実施形態１及び２に記載のシリアル転送を適用してもよい。
【００８０】
また、実施形態１では、シリアル転送の経路を２つとし、バッファを２つ用いたが、これに限定されず、経路及びバッファを１つとしてもよく、４リンク、８リンク等にしてもよい。
【００８１】
また、実施形態１において、画像データの後方に巡回符号、誤り訂正符号を付加する構成としてもよい。
【００８２】
なお、本実施形態において、バッファ１５は、記憶領域の一例である。ＲＸＩＦ部１３は、処理部の一例である。ＴＸＩＦ部２３は、付加部の一例である。シリアル送信部２５は、送信部の一例である。画像データは、受信データの一例である。ＳＴＰコードは、開始コードの一例である。ＥＮＤコードは、終端コードの一例である。
【符号の説明】
【００８３】
１              シリアル通信装置
２              通信システム
６ａ，６ｂ      レシーバ（受信部）
１０            デシリアライザ
１１ａ，１１ｂ  ＣＤＲ部
１２ａ，１２ｂ  デコード部
１３            ＲＸＩＦ部（処理部）
１５ａ，１５ｂ  バッファ
２０            シリアライザ
２１ａ，２１ｂ  Ｐ／Ｓ変換部
２２ａ，２２ｂ  エンコード部
２３            ＴＸＩＦ部（付加部）
２５            シリアル送信部
【先行技術文献】
【特許文献】
【００８４】
【特許文献１】特開２０１０−１１４７６２号公報
【図１】
2017050734.tif 000003
【図２】
2017050734.tif 000004
【図３】
2017050734.tif 000005
【図４】
2017050734.tif 000006
【図５】
2017050734.tif 000007
【図６】
2017050734.tif 000008
【図７】
2017050734.tif 000009
【図８】
2017050734.tif 000010
【図９】
2017050734.tif 000011