(57)【特許請求の範囲】
【請求項１】
コンピュータを、
シリアルデータをクロック周波数に対してオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するものであって、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信する受信手段として機能させるための通信制御プログラム。
【請求項２】
前記受信手段は、前記シリアルデータの周期内において、前記オーバーサンプリングしてデータの確定が保障されるタイミングで、前記偶数ビットと前記奇数ビットのデータを前記シリアルデータからサンプリングする請求項１に記載の通信制御プログラム。
【請求項３】
コンピュータを、
送信するパケットを構成するデータに、予め定めた数だけ同じ値が続いた場合に当該値を反転した反転ビットを挿入し、当該反転ビットが挿入されたパケット間に前記予め定めた数より大きい数の同じ値が連続する区切りコードを挿入して送信する送信手段として機能させるための通信制御プログラム。
【請求項４】
前記コンピュータを、
データを中継する場合、送信側のクロック周波数が速い場合は前記区切りコードを抜き取って前記データを受信し、送信側のクロック周波数が遅い場合は区切りコードをさらに挿入して前記データを受信する受信手段としてさらに機能させる請求項３に記載の通信制御プログラム。
【請求項５】
シリアルデータをクロック周波数に対してオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するものであって、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信する受信手段を有する通信制御装置。
【請求項６】
マスタ制御部に下り通信線および上り通信線を介して複数のスレーブ装置を接続し、前記スレーブ装置から当該スレーブ装置に接続された機器に対して信号の入出力を行う通信制御装置を利用した通信制御方法において、
シリアルデータをクロック周波数に対してオーバーサンプリングするステップと、
オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するステップと、
当該偶数ビット及び当該奇数ビットの有効信号を出力すると共に、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録するステップと、
当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信するステップとを有する通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御プログラム、通信制御装置及び通信制御方法に関する。
【背景技術】
【０００２】
従来の技術として、複数のスレーブがシリアル接続された通信制御装置が提案されている（例えば、特許文献１参照）。また、シリアルデータを複数のクロック周波数でサンプリングし、位相が適切となるデータ信号を選択するクロックデータリカバリ回路が提案されている（特許文献２参照）。
【０００３】
特許文献１に開示された通信制御装置は、マスタであるメイン制御モジュールを有し、複数のスレーブとデイジーチェーンによりシリアル接続され、マスタはスレーブのそれぞれに対し要求信号を送信し、当該要求信号に対する応答を受信する。特許文献２に開示されたクロックデータリカバリ回路は、クロックデータリカバリに要する時間を短縮するために、複数のクロック周波数を有する多相クロックを生成する多相クロック生成回路と、シリアルデータを伝送する受信データ信号を、前記複数のクロック周波数のそれぞれに同期してサンプリングし、複数のデータ信号を生成するサンプリング回路と、前記複数のデータ信号のうち、位相が適切となるデータ信号を示す選択信号を生成するデータ復元部と、前記選択信号を格納する記憶部とを有する。前記データ復元部は、前記記憶部から読み出された前記選択信号に従って、前記複数のデータ信号から位相が適切となるデータ信号及びこのデータ信号に対応するクロック信号を選択する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１１９２５０号公報
【特許文献２】特表２０１１−００４５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、送信側と受信側とのクロック周波数の偏差を吸収してシリアルデータを受信する通信制御プログラム、通信制御装置及び通信制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様は、上記目的を達成するため、以下の通信制御プログラム、通信制御装置及び通信制御方法を提供する。
【０００７】
［１］コンピュータを、
シリアルデータをクロック周波数に対してオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するものであって、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信する受信手段として機能させるための通信制御プログラム。
［２］前記受信手段は、前記シリアルデータの周期内において、前記オーバーサンプリングしてデータの確定が保障されるタイミングで、前記偶数ビットと前記奇数ビットのデータを前記シリアルデータからサンプリングする前記［１］に記載の通信制御プログラム。
［３］コンピュータを、
送信するパケットを構成するデータに、予め定めた数だけ同じ値が続いた場合に当該値を反転した反転ビットを挿入し、当該反転ビットが挿入されたパケット間に前記予め定めた数より大きい数の同じ値が連続する区切りコードを挿入して送信する送信手段として機能させるための通信制御プログラム。
［４］前記コンピュータを、
データを中継する場合、送信側のクロック周波数が速い場合は前記区切りコードを抜き取って前記データを受信し、送信側のクロック周波数が遅い場合は区切りコードをさらに挿入して前記データを受信する受信手段としてさらに機能させる前記［３］に記載の通信制御プログラム。
［５］シリアルデータをクロック周波数に対してオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するものであって、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信する受信手段を有する通信制御装置。
[６]マスタ制御部に下り通信線および上り通信線を介して複数のスレーブ装置を接続し、前記スレーブ装置から当該スレーブ装置に接続された機器に対して信号の入出力を行う通信制御装置を利用した通信制御方法において、
シリアルデータをクロック周波数に対してオーバーサンプリングするステップと、
オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するステップと、
当該偶数ビット及び当該奇数ビットの有効信号を出力すると共に、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録するステップと、
当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信するステップとを有する通信制御方法。
【発明の効果】
【０００８】
請求項１、５又は６に係る発明によれば、送信側と受信側とのクロック周波数の偏差を吸収してシリアルデータを受信することができる。
請求項２に係る発明によれば、シリアルデータの周期内において、オーバーサンプリングしてデータの確定が保障されるタイミングで、偶数ビットと奇数ビットのデータをシリアルデータからサンプリングすることができる。
請求項３に係る発明によれば、受信側がクロック周波数の偏差を吸収して受信するためのデータを送信することができる。
請求項４に係る発明によれば、送信側の送信したデータを受信側がクロック周波数の偏差を吸収して受信することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、第１の実施の形態に係る画像形成装置の構成例を示すブロック図である。
【図２】図２は、スレーブの構成の一例を示すブロック図である。
【図３】図３（ａ）−（ｃ）は、スレーブが受信するパケットを含むシリアルデータの信号の一例を示す概略図である。
【図４】図４は、送信側のクロック周波数が速い場合におけるスレーブのデータ受信動作を説明するための図である。
【図５】図５は、送信側のクロック周波数が遅い場合におけるスレーブのデータ受信動作を説明するための図である。
【図６】図６（ａ）及び（ｂ）は、バッファにデータが入力される動作を説明するための図である。
【図７】図７は、バッファにデータが入力される動作を説明するための図である。
【図８】図８は、第２の実施の形態に係るスレーブの構成の一例をデータの流れとともに示すブロック図である。
【図９】図９（ａ）−（ｄ）は、反転ビット挿抜動作を説明するための図である。
【図１０】図１０は、パケット及び区切りコードを含むシリアルデータの構成を示す概略図である。
【図１１】図１１（ａ）−（ｃ）は、区切りコード挿抜動作を説明するための図である。
【発明を実施するための形態】
【００１０】
［第１の実施の形態］
（画像形成装置の構成）
図１は、第１の実施の形態に係る画像形成装置の構成例を示すブロック図である。
【００１１】
画像形成装置１は、通信制御装置の一例としてのマスタ制御部Ｍと、マスタ制御部Ｍの要求に応じて動作する複数のスレーブＳ１−Ｓ５とを有し、マスタ制御部ＭとスレーブＳ１−Ｓ５とを上り通信線Ｌｕと下り通信線Ｌｄとが独立したシリアル通信線で接続して構成される。上り通信線Ｌｕと下り通信線Ｌｄとを有するシリアル通信線は、差動のツイストペアである。
【００１２】
マスタ制御部Ｍは、スレーブＳ１−Ｓ５に対して要求信号としてＷｒｉｔｅパケット又はＲｅａｄパケット（以下、総称して「要求パケット」という。）を発行して当該パケットを含むシリアルデータを送信し、当該要求信号に対する応答信号を受信する。つまり、マスタ制御部ＭとスレーブＳ１−Ｓ５とはＲｅｑｕｅｓｔ−Ｒｅｓｐｏｎｓｅ方式により動作する。
【００１３】
スレーブＳ１−Ｓ５は、それぞれ図示しない画像形成装置１のセンサやアクチュエータ等の機器に接続され、マスタ制御部Ｍから受信した要求パケットに応じて当該機器を制御する等して処理を実行し、マスタ制御部Ｍに処理結果としてＷｒｉｔｅパケットに対するＡｃｋｎｏｗｌｅｄｇｅを示す応答信号であるＡｃｋ、Ｒｅａｄパケットに対するＲｅａｄデータを含んだ応答信号であるＲｅｓｐｏｎｓｅ、エラーが生じた場合の応答信号であるＮａｃｋ等（以下、総称して「応答パケット」という。）を送信する。
【００１４】
なお、スレーブＳ１−Ｓ５は直列に接続されているが、上位に１ポート、下位に複数ポートを有して分岐するように構成してもよい。また、スレーブＳ１−Ｓ５は中継機能を有し、自ノード宛のパケットに応じて処理を実行し、自ノード宛以外のパケットは下位のノードに送信する。
【００１５】
なお、画像形成装置１は、マスタ制御部ＭとスレーブＳ１−Ｓ５を適用した装置の一例であり、スレーブＳ１−Ｓ５は画像形成装置１のセンサやアクチュエータ等の機器を動作させる。なお、画像形成装置１に限らず、他の種類の装置のＩ／Ｏを制御するものであってもよい。なお、スレーブＳ１−Ｓ５は５つ示しているが、複数であればよくその数は限定されない。
【００１６】
（スレーブの構成）
図２は、スレーブＳ１−Ｓ５の構成の一例を示すブロック図であり、代表してスレーブＳ１について説明している。
【００１７】
スレーブＳ１は、ＩＣ（Ｉｎｔｅｇｒａｌ  Ｃｉｒｃｕｉｔ）等から構成され、パケットの生成、送信、及び受信を行う制御部１０と、フラッシュメモリ等の記憶媒体から構成され情報を記憶する記憶部１１と、シリアル通信線を介してスレーブと通信する通信部１２とを備える。
【００１８】
制御部１０は、後述する通信制御プログラム１１０を実行することで、パケット受信手段１００、パケット中継手段１０１、パケット識別手段１０２、パケット送信手段１０３等として機能する。
【００１９】
パケット受信手段１００は、マスタ制御部Ｍ若しくは上位のスレーブからシリアルデータに含まれる要求パケットを受信し又は下位のスレーブから応答パケットを受信する。
【００２０】
パケット中継手段１０１は、パケット受信手段１００が受信した要求パケット又は応答パケットが自己を宛先とするものでない場合に、下位のスレーブ又はマスタ制御部若しくは上位のスレーブに中継する。
【００２１】
パケット識別手段１０２は、パケット受信手段１００が受信した要求パケット又は応答パケットが自己を宛先とするものである場合に、受信したパケットの内容を識別し、処理する。
【００２２】
パケット送信手段１０３は、パケット中継手段１０１が中継する要求パケット又は応答パケットを下位のスレーブ又はマスタ制御部若しくは上位のスレーブにシリアルデータに含めて送信する。
【００２３】
記憶部１１は、制御部１０を上述した各手段１００−１０３として動作させる通信制御プログラム１１０等を記憶する。
【００２４】
（通信制御装置の動作）
次に、第１の実施の形態の作用を（１）基本動作、（２）ビットロック動作に分けて説明する。スレーブＳ１−Ｓ５を代表してスレーブＳ１について説明するが、スレーブＳ２−Ｓ４についても同様である。
【００２５】
（１）基本動作
まず、スレーブＳ１のパケット受信手段１００は、マスタ制御部Ｍ若しくは上位のスレーブからシリアルデータに含まれる要求パケットを受信し又は下位のスレーブから応答パケットを受信する。
【００２６】
次に、パケット中継手段１０１は、パケット受信手段１００が受信した要求パケット又は応答パケットが自己を宛先とするものでない場合に、下位のスレーブ又はマスタ制御部若しくは上位のスレーブに中継する。
【００２７】
また、パケット識別手段１０２は、パケット受信手段１００が受信した要求パケット又は応答パケットが自己を宛先とするものである場合に、受信したパケットの内容を識別し、処理する。
【００２８】
パケット送信手段１０３は、パケット中継手段１０１が中継する要求パケット又は応答パケットをシリアルデータに含めて下位のスレーブ又はマスタ制御部若しくは上位のスレーブに送信する。
【００２９】
以下は、パケット受信手段１００がパケットを含むシリアルデータを受信する際の動作について、特にビットロック動作について説明する。
【００３０】
（２）ビットロック動作
図３（ａ）−（ｃ）は、スレーブが受信するパケットを含むシリアルデータの信号の一例を示す概略図である。左側ほど先送、右側ほど後送のデータであることを示す。
【００３１】
図３（ａ）に示すように、パケットを含む受信データは、シリアルデータであってアイパターンを有する信号によって伝送され、パケット受信手段１００によって受信される。通常は予め定めた周期（クロック周波数）に合わせてサンプリングされるが、本実施の形態においては１／４周期（クロック周波数の４倍）でサンプリングし、確定したデータをバッファに出力して、バッファからビットストリームとして出力する。
【００３２】
なお、送信側のクロック周波数が速い場合には点線で示すアイパターンとなり、１／４周期でサンプリングすることで先送側の３つのデータが確定することになり、送信側のクロック周波数が遅い場合には一点鎖線で示すアイパターンとなり後送側の３つのデータが確定することとなる。つまり、送信側のクロック周波数に偏差が合っても、少なくとも３つのデータが確定することとなる。確定したデータは「○」で示し、確定していないデータは「×」で示している。
【００３３】
図３（ｂ）に示すように、パケット受信手段１００は、１／４周期で確定したデータの数をカウントし、ハイ信号「Ｈ」又はロー信号「Ｌ」の同一符号が続いている場合には「０，１，２，３，０，１，２，３…」とカウントする。また、「Ｈ」から「Ｌ」へ又は「Ｌ」から「Ｈ」へ切り替わる際に「０」からカウントをやり直す。このようにカウントされた値をビットカウントと呼ぶ。
【００３４】
次に、パケット受信手段１００は、ビットカウントを利用してデータのサンプリングのポイントを確定する。パケット受信手段１００は、図３（ｃ）に示すように、ビットカウントが「２」から次の値へ変化するタイミングでビットフラグを反転させ、ビットフラグがハイ信号「Ｈ」の場合は偶数ビットを有効とし、ロー信号「Ｈ」の場合は奇数ビットを有効とする。
【００３５】
（送信側のクロック周波数が速い場合）
図４は、送信側のクロック周波数が速い場合におけるスレーブのデータ受信動作を説明するための図である。また、図６（ａ）及び（ｂ）は、バッファにデータが入力される動作を説明するための図である。なお、図６（ｂ）はバッファ内のビットストリームを示し、左側ほど先送、右側ほど後送のデータであって、ステップは時系列を示す。
【００３６】
図４に示すように、パケット受信手段１００は、ビットフラグが「Ｌ」から「Ｈ」へ変化するタイミングで偶数フラグを「Ｈ」とし、１周期後に「Ｌ」とする。また、パケット受信手段１００は、ビットフラグが「Ｈ」から「Ｌ」へ変化するタイミングで奇数フラグを「Ｈ」とし、１周期後に「Ｌ」とする。
【００３７】
次に、パケット受信手段１００は、１倍クロックの周期に同期して偶数フラグ、奇数フラグを交互に読み、２ビット幅の偶数ビット、奇数ビットのデータを出力する。
【００３８】
次に、図６（ａ）に示すように、パケット受信手段１００が出力する偶数ビット、奇数ビットのデータはバッファ１００ｂｕｆｆｅｒに入力される。図６（ｂ）のＳｔｅｐ１、２、３…に示すようにバッファ１００ｂｕｆｆｅｒには偶数ビットのデータ「Ｄ０」、奇数ビットのデータ「Ｄ１」、偶数ビットのデータ「Ｄ２」…が順に入力される。なお、ポインタの示す位置がデータが入力されて記録される位置である。
【００３９】
ここで、図４に示すように、パケット受信手段１００は、時刻Ｔ１において偶数ビット及び奇数ビットのデータＤ６及びＤ７を同時に出力する。そこで、図６（ｂ）のＳｔｅｐ７に示すようにバッファ１００ｂｕｆｆｅｒには元のポインタの位置で偶数ビットのデータ「Ｄ６」が入力され、その後ポインタを後ろにずらし、ずらされたポインタの位置で奇数ビットのデータ「Ｄ７」が入力される。Ｓｔｅｐ８以降はずらされたポインタの位置に偶数ビット、奇数ビットのデータが交互に入力される。
【００４０】
（送信側のクロック周波数が遅い場合）
図５は、送信側のクロック周波数が遅い場合におけるスレーブのデータ受信動作を説明するための図である。また、図７は、バッファ１００ｂｕｆｆｅｒにデータが入力される動作を説明するための図である。
【００４１】
図５に示すように、パケット受信手段１００は、ビットフラグが「Ｌ」から「Ｈ」へ変化するタイミングで偶数フラグを「Ｈ」とし、１周期後に「Ｌ」とする。また、パケット受信手段１００は、ビットフラグが「Ｈ」から「Ｌ」へ変化するタイミングで奇数フラグを「Ｈ」とし、１周期後に「Ｌ」とする。
【００４２】
次に、パケット受信手段１００は、１倍クロックの周期に同期して偶数フラグ、奇数フラグを交互に読み、２ビット幅の偶数ビット、奇数ビットのデータを出力する。
【００４３】
次に、図７に示すように、パケット受信手段１００が出力する偶数ビット、奇数ビットのデータはパケット受信手段１００内のバッファ１００ｂｕｆｆｅｒに一旦入力される。図７のＳｔｅｐ１、２に示すようにバッファ１００ｂｕｆｆｅｒには偶数ビットのデータ「Ｄ０」、奇数ビットのデータ「Ｄ１」、偶数ビットのデータ「Ｄ２」が入力される。
【００４４】
ここで、図５に示すように、パケット受信手段１００は、時刻Ｔ２において偶数ビット及び奇数ビットのいずれのデータも出力しない。そこで、図７のＳｔｅｐ３に示すようにバッファ１００ｂｕｆｆｅｒにはデータが入力されずに「無効」となるが、その後ポインタを前にずらして「無効」であった箇所に偶数ビットのデータ「Ｄ２」が入力される。Ｓｔｅｐ５以降は、ずらされたポインタの位置に奇数ビット、偶数ビットのデータが交互に入力される。
【００４５】
（第１の実施の形態の効果）
上記した第１の実施の形態によれば、シリアルデータを１／４周期でオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットを読み出して交互にバッファに出力し、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、ポインタを遅らせてバッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、ポインタを進めてバッファに記録してシリアルデータを受信するようにしたため、送信側のクロック周波数が速い場合であっても遅い場合であってもバッファに順次データが入力され、送信側と受信側とのクロック周波数の偏差を吸収してシリアルデータを受信することができる。
【００４６】
［第２の実施の形態］
第２の実施の形態は、第１の実施の形態で説明したビットロックのバッファ内のポインタの移動に加え、転送用バッファから送信するデータを挿抜して転送用バッファのポインタの移動を緩和する点で第１の実施の形態と異なる。
【００４７】
図８は、第２の実施の形態に係るスレーブＳ１−Ｓ５の構成の一例をデータの流れとともに示すブロック図であり、代表してスレーブＳ１について説明している。
【００４８】
図８に示す受信部１００ａ、ビットロック部１００ｂ、シンボルロック／シンボル検出部１００ｃ、デシリアライザー部１００ｄ及びパケットバッファ部１００ｅは、第１の実施の形態のパケット受信手段１００に対応する。
【００４９】
また、区切りコード挿抜部１０１ａ、再クロック部１０１ｂ、調停部１０１ｃ、シリアライザー部１０１ｄ及び選択部１０１ｅは、第１の実施の形態のパケット中継手段１０１に対応する。
【００５０】
また、パケット識別部１０２ａ及びパケット処理部１０２ｂは、第１の実施の形態のパケット識別手段１０２に対応する。
【００５１】
また、送信部１０３ａ、１０３ａ１及び１０３ａ２は、第１の実施の形態のパケット送信手段１０３に対応する。
【００５２】
受信部１００ａは、下り信号について、マスタ制御部Ｍ若しくは上位のスレーブから要求パケットを含むシリアルデータを受信する。また、受信部１００ａ１及び１００ａ２は、上り信号について、下位のスレーブから応答パケットを含むシリアルデータを受信する。
【００５３】
ビットロック部１００ｂは、受信部１００ａが受信したパケットを含むシリアルデータを、第１の実施の形態で述べたように、１／４周期でサンプリングして確定させる。
【００５４】
シンボルロック／シンボル検出部１００ｃは、シリアルデータ中に含まれる区切りコードを検出し、区切りコード間のデータについて後述する反転ビットの抜取処理を行って、シンボルを検出する。
【００５５】
デシリアライザー部１００ｄは、シリアルデータをパラレルデータに変換する。
【００５６】
パケットバッファ部１００ｅは、下位から上位への上り信号につい、受信部１００ａ１及び１００ａ２のうち後に受け取ったパケットをバッファする。
【００５７】
区切りコード挿抜部１０１ａは、送信側のクロック周波数と受信クロック周波数の周波数偏差がある場合に区切りコードを挿抜する。
【００５８】
再クロック部１０１ｂは、受信側のクロック周波数と同期させてシリアルデータを出力する。
【００５９】
調停部１０１ｃは、中継したパケットとパケット処理部１０２ｂにおいて生成したパケットの優先制御を行う（パラレル調停）。
【００６０】
シリアライザー部１０１ｄは、パラレルデータをシリアルデータに変換するとともに反転ビットの挿入処理を行う。
【００６１】
選択部１０１ｅは、シリアライザー部１０１ｄからの出力と区切りコード挿抜部１０１ａからの出力を選択して、優先制御を行い（シリアル調停）再クロック部１０１ｂに出力する。
【００６２】
パケット識別部１０２ａは、デシリアライザー部１００ｄの出力するパケットを識別し、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）によるエラー検出を行う。
【００６３】
パケット処理部１０２ｂは、識別されたパケットに応じた処理を実行し、実行結果としての応答パケットを生成する。
【００６４】
送信部１０３ａ１及び１０３ａ２は、下り信号について、中継したパケットを下位のスレーブに送信する。送信部１０３ａは、上り信号について、中継したパケット又は応答パケットをマスタ制御部又は上位のスレーブに送信する。
【００６５】
（通信制御装置の動作）
次に、第２の実施の形態の作用を（１）基本動作、（２）反転ビット挿抜動作、（３）区切りコード挿抜動作に分けて説明する。スレーブＳ１−Ｓ５を代表してスレーブＳ１について説明するが、スレーブＳ２−Ｓ４についても同様である。
【００６６】
（１）基本動作
まず、第２の実施の形態の通信制御装置の基本動作について、上位の装置から下位の装置へ送られる下り信号と、下位の装置から上位の装置へと送られる上り信号とに分けてその処理動作を説明する。
【００６７】
（１−１）下り信号の処理動作
まず、受信部１００ａは、下り信号について、マスタ制御部Ｍ若しくは上位のスレーブから要求パケットを含むシリアルデータを受信する。
【００６８】
次に、ビットロック部１００ｂは、受信部１００ａが受信したパケットを含むシリアルデータを、第１の実施の形態で述べたように、１／４周期でサンプリングして確定させる。ビットロック部１００ｂは、自己装置宛の要求パケットについてはシンボルロック／シンボル検出部１００ｃに、他の装置宛の中継パケットについては区切りコード挿抜部１０１ａにそれぞれ出力する。
【００６９】
（要求パケットの処理）
次に、シンボルロック／シンボル検出部１００ｃは、シリアルデータ中に含まれる区切りコードを検出し、区切りコード間のデータについて後述する反転ビットの抜取処理を行って、シンボルを検出する。なお、区切りコードの検出については、「（３）区切りコード挿抜動作」において詳細に説明する。また、反転ビットの抜取処理については、「（２）反転ビット挿抜動作」において詳細に説明する。
【００７０】
次に、デシリアライザー部１００ｄは、検出したシンボルについてシリアルデータをパラレルデータに変換する。
【００７１】
次に、パケット識別部１０２ａは、デシリアライザー部１００ｄの出力するパケットを識別し、ＣＲＣによるエラー検出を行う。
【００７２】
次に、パケット処理部１０２ｂは、識別されたパケットに応じた処理を実行し、実行結果としての応答パケットを生成する。生成された応答パケットは調停部１０１ｃに出力され、マスタ制御部Ｍへ送信される上り信号となる。
【００７３】
（中継パケットの処理）
また、ビットロック部１００ｂが出力した他の装置宛の中継パケットについて、区切りコード挿抜部１０１ａは、送信側であるマスタ制御部Ｍ又は上位のスレーブのクロック周波数と受信クロック周波数の周波数偏差がある場合に区切りコードを挿抜する。なお、区切りコードの挿抜については、「（３）区切りコード挿抜動作」において詳細に説明する。
【００７４】
次に、再クロック部１０１ｂは、受信側のクロック周波数と同期させてシリアルデータを出力する。
【００７５】
次に、送信部１０３ａ１及び１０３ａ２は、下り信号について、中継したパケットを含むシリアルデータを下位のスレーブに送信する。
【００７６】
（１−２）上り信号の処理動作
まず、受信部１００ａ１及び１００ａ２は、上り信号について、下位のスレーブから応答パケットを含むシリアルデータを受信する。
【００７７】
次に、ビットロック部１００ｂは、受信部１００ａが受信したパケットを含むシリアルデータを、第１の実施の形態で述べたように、１／４周期でサンプリングして確定させる。なお、ビットロック部１００ｂは、中継パケットについて、受信部１００ａ１及び１００ａ２のうち先に受信したパケットを区切りコード挿抜部１０１ａに出力し、後に受け取ったパケットをバッファするためにシンボルロック／シンボル検出部１００ｃに出力する。
【００７８】
（先に受信した中継パケットの処理）
先に受信した中継パケットについて、区切りコード挿抜部１０１ａは、送信側である下位のスレーブのクロック周波数と受信クロック周波数の周波数偏差がある場合に区切りコードを挿抜する。
【００７９】
（後に受信した中継パケットの処理）
シンボルロック／シンボル検出部１００ｃは、データ中に含まれる区切りコードを検出し、区切りコード間のデータについて後述する反転ビットの抜取処理を行って、シンボルを検出する。
【００８０】
次に、デシリアライザー部１００ｄは、検出したシンボルについてシリアルデータをパラレルデータに変換する。
【００８１】
次に、パケットバッファ部１００ｅは、パラレルデータに変換されたパケットをバッファする。
【００８２】
次に、調停部１０１ｃは、先に受信した中継パケットとパケット処理部１０２ｂにおいて生成した応答パケットを調停する。
【００８３】
次に、シリアライザー部１０１ｄは、パラレルデータをシリアルデータに変換するとともに、反転ビットの挿入処理を行い、選択部１０１ｅへ出力する。
【００８４】
次に、選択部１０１ｅは、シリアライザー部１０１ｄからの出力と区切りコード挿抜部１０１ａからの出力を、順次選択して再クロック部１０１ｂに出力する。
【００８５】
次に、再クロック部１０１ｂは、受信側のクロック周波数と同期させてシリアルデータを出力する。
【００８６】
次に、送信部１０３ａは、上り信号について、中継したパケット又は応答パケットを含むシリアルデータをマスタ制御部又は上位のスレーブに送信する。
【００８７】
（２）反転ビット挿抜動作
図９（ａ）−（ｄ）は、反転ビット挿抜動作を説明するための図である。
【００８８】
パケット処理部１０２ｂが生成する応答パケット（又はマスタ制御部Ｍが生成する要求パケット）を構成する元データは、図９（ａ）に示すように、例えば「０」と「１」で表される。
【００８９】
シリアライザー部１０１ｄは、図９（ｂ）に示すように、当該データに反転ビットを挿入する。反転ビットは、５ビット同じ値が連続した場合に当該値を反転させたものである。つまり、「１１１１１」の後に「１」を反転させた「０」を挿入し、その次には当該反転ビット「０」を含んで５ビット同じ値「０００００」が続くので「１」を挿入する。その後も同様に元データに反転ビットを含めて同じ値が５ビット連続した場合に反転ビットが挿入される。このように元データに反転ビットが挿入されたものを送信データとする。
【００９０】
次に、シンボルロック／シンボル検出部１００ｃは、図９（ｂ）に示したように反転ビットが挿入された送信データを受信すると、図９（ｃ）に示すように、受信データから、５ビット同じ値が連続して次の値が反転している場合に、当該反転した値を反転ビットとして検出して、当該反転ビットを抜き取る処理を行う。つまり、「１１１１１」の後に「１」を反転させた「０」があるため当該「０」を抜き取り、抜き取った「０」を含めて５ビット同じ値「０００００」が続くので、その後の「１」を抜き取る。その後も同様に受信データに同じ値が５ビット連続して次の値が反転している場合に、反転ビットが抜き取られる。
【００９１】
反転ビットが抜き取られたものが図９（ｄ）に示す復元データとなる。なお、反転ビットの挿抜はパケットのみに行われ、次に説明する区切りコードに対しては行われない。
【００９２】
（３）区切りコード挿抜動作
まず、区切りコードの構成について説明する。
【００９３】
図１０は、パケット及び区切りコードを含むシリアルデータの構成を示す概略図である。
【００９４】
図１０に示すように、ビットストリームは複数のパケットと、各パケットの間に挿入された区切りコードを有する。区切りコードは、周波数偏差に応じて抜き取られても十分な数だけ各パケットの間に挿入されているものとする。
【００９５】
図１０において、各パケット及び各区切りコードは、１６進数で記載されており、例えば、区切りコード「７Ｅｈ」とは、「７」が１６進数で「０１１１」、「Ｅ」が１６進数で「１１１０」、「ｈ」が１６進数であることを示すため、「０１１１１１１０」となる。上記したように反転ビットは５ビット同じ値が連続した場合に挿入されるため、「１」が６ビット続く区切りコードは、スレーブＳ１の各部において他のシンボルと区別される。なお、区切りコードは「０」が６ビット続くものであってもよく、この場合区切りコードは「８１ｈ」と記載され、「８」が「１０００」を、「１」が「０００１」を、「ｈ」が１６進数であることを示すため、「１００００００１」となる。
【００９６】
パケットは、ヘッダと実データとを有する。ヘッダは、プライオリティ（１ビット）とパケットの種類（２ビット）を示す３ビットのＣＭＤと、スレーブを識別する５ビットのＩＤと、パケットの長さを示す３ビットのＳＵＢと、シーケンスナンバーを示すＳＱＮとを有する。実データは、アドレスを示すＡｄｄｒと、ペイロードを示すＰＬと、誤り検出のための１６ビットのＣＲＣとを有する。
【００９７】
以下に、上記で説明した区切りコードの挿抜動作について説明する。
【００９８】
図１１（ａ）−（ｃ）は、区切りコード挿抜動作を説明するための図である。
【００９９】
まず、区切りコード挿抜部１０１ａは、中継パケットを含むシリアルデータを転送用バッファに一時的に記憶する。送信側のクロック周波数が同期されている場合、図１１（ａ）に示すように、区切りコード挿抜部１０１ａは転送用バッファのポインタにおいてＡ番目、Ｂ番目、Ｃ番目…のデータを順次読み出して送信データとする。
【０１００】
また、送信側のクロック周波数が速い場合、図１１（ｂ）に示すように、ポインタが転送用バッファ内の後ろ（図中の右側）にずれていくため、区切りコード挿抜部１０１ａはポインタのずれが予め定めたビット数だけ後ろにずれた場合、例えば、３ビットずれた場合にＡ番目からＨ番目の７ビット分の区切りコードを抜き取ってポインタを７ビットだけ前にずらす。
【０１０１】
また、送信側のクロック周波数が遅い場合、図１１（ｃ）に示すように、ポインタが転送用バッファ内の前（図中の左側）にずれていくため、区切りコード挿抜部１０１ａはポインタのずれが予め定めたビット数だけ前にずれた場合、例えば、５ビットずれた場合に新たな７ビット分の区切りコードを挿入してポインタを７ビットだけ後ろにずらす。
【０１０２】
（第２の実施の形態の効果）
上記した第２の実施の形態によれば、第１の実施の形態の効果に加え、データの送信時にパケットを構成するデータに５ビット同じデータが続いた場合に当該データを反転した反転ビットを挿入し、当該反転ビットが挿入されたパケット間に６ビット同じデータが連続する区切りコードを挿入したため、データの受信時に連続するデータの数に基づいて区切りコードを識別し、パケットと区別することができる。
【０１０３】
また、データの受信時に送信側のクロック周波数が速い場合は区切りコードを抜き取って、送信側のクロック周波数が遅い場合は区切りコードをさらに挿入するようにしたため、送信側と受信側とのクロック周波数の偏差を吸収してシリアルデータを受信することができる。
【０１０４】
また、従来のクロックデータリカバリ回路では複数のクロック周波数でサンプリングし、位相が適切となるデータ信号とクロック信号を選択するものであったため、ループバック制御が必要となるものであったが、上記した第１及び第２の実施の形態では複雑な制御回路を用いること無く、単純な構成で非同期のシリアルデータを送受信することが可能となる。
【０１０５】
［他の実施の形態］
なお、本発明は、上記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で種々な変形が可能である。
【０１０６】
上記実施の形態では制御部１０の各手段１００〜１０３の機能をプログラムで実現したが、各手段の全て又は一部をＡＳＩＣ等のハードウエアによって実現してもよい。また、上記実施の形態で用いたプログラムをＣＤ−ＲＯＭ等の記録媒体に記憶して提供することもできる。また、上記実施の形態で説明した上記ステップの入れ替え、削除、追加等は本発明の要旨を変更しない範囲内で可能である。
【符号の説明】
【０１０７】
１     画像形成装置
１０   制御部
１１   記憶部
１２   通信部
１００ パケット受信手段
１００ａ、１００ａ１、１００ａ２   受信部
１００ｂ      ビットロック部
１００ｂｕｆｆｅｒ   バッファ
１００ｃ      シンボルロック／シンボル検出部
１００ｄ      デシリアライザー部
１００ｅ      パケットバッファ部
１０１ パケット中継手段
１０１ａ      区切りコード挿抜部
１０１ｂ      再クロック部
１０１ｃ      調停部
１０１ｄ      シリアライザー部
１０１ｅ      選択部
１０２ パケット識別手段
１０２ａ      パケット識別部
１０２ｂ      パケット処理部
１０３ パケット送信手段
１０３ａ、１０３ａ１、１０３ａ２   送信部
１１０ 通信制御プログラム
Ｍ     マスタ制御装置
Ｍ     マスタ制御部
Ｓ１−Ｓ５    スレーブ
【図１】
0006500372.tif 000002
【図２】
0006500372.tif 000003
【図３】
0006500372.tif 000004
【図４】
0006500372.tif 000005
【図５】
0006500372.tif 000006
【図６】
0006500372.tif 000007
【図７】
0006500372.tif 000008
【図８】
0006500372.tif 000009
【図９】
0006500372.tif 000010
【図１０】
0006500372.tif 000011
【図１１】
0006500372.tif 000012