JP6500372B2 - 通信制御プログラム、通信制御装置及び通信制御方法 - Google Patents

通信制御プログラム、通信制御装置及び通信制御方法 Download PDF

Info

Publication number
JP6500372B2
JP6500372B2 JP2014179811A JP2014179811A JP6500372B2 JP 6500372 B2 JP6500372 B2 JP 6500372B2 JP 2014179811 A JP2014179811 A JP 2014179811A JP 2014179811 A JP2014179811 A JP 2014179811A JP 6500372 B2 JP6500372 B2 JP 6500372B2
Authority
JP
Japan
Prior art keywords
data
bit
odd
buffer
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014179811A
Other languages
English (en)
Other versions
JP2016054432A (ja
Inventor
浜田 勉
勉 浜田
祐理 三浦
祐理 三浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2014179811A priority Critical patent/JP6500372B2/ja
Publication of JP2016054432A publication Critical patent/JP2016054432A/ja
Application granted granted Critical
Publication of JP6500372B2 publication Critical patent/JP6500372B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Systems (AREA)
  • Dc Digital Transmission (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

本発明は、通信制御プログラム、通信制御装置及び通信制御方法に関する。
従来の技術として、複数のスレーブがシリアル接続された通信制御装置が提案されている(例えば、特許文献1参照)。また、シリアルデータを複数のクロック周波数でサンプリングし、位相が適切となるデータ信号を選択するクロックデータリカバリ回路が提案されている(特許文献2参照)。
特許文献1に開示された通信制御装置は、マスタであるメイン制御モジュールを有し、複数のスレーブとデイジーチェーンによりシリアル接続され、マスタはスレーブのそれぞれに対し要求信号を送信し、当該要求信号に対する応答を受信する。特許文献2に開示されたクロックデータリカバリ回路は、クロックデータリカバリに要する時間を短縮するために、複数のクロック周波数を有する多相クロックを生成する多相クロック生成回路と、シリアルデータを伝送する受信データ信号を、前記複数のクロック周波数のそれぞれに同期してサンプリングし、複数のデータ信号を生成するサンプリング回路と、前記複数のデータ信号のうち、位相が適切となるデータ信号を示す選択信号を生成するデータ復元部と、前記選択信号を格納する記憶部とを有する。前記データ復元部は、前記記憶部から読み出された前記選択信号に従って、前記複数のデータ信号から位相が適切となるデータ信号及びこのデータ信号に対応するクロック信号を選択する。
特開2013−119250号公報 特表2011−004580号公報
本発明の目的は、送信側と受信側とのクロック周波数の偏差を吸収してシリアルデータを受信する通信制御プログラム、通信制御装置及び通信制御方法を提供することにある。
本発明の一態様は、上記目的を達成するため、以下の通信制御プログラム、通信制御装置及び通信制御方法を提供する。
[1]コンピュータを、
シリアルデータをクロック周波数に対してオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するものであって、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信する受信手段として機能させるための通信制御プログラム。
[2]前記受信手段は、前記シリアルデータの周期内において、前記オーバーサンプリングしてデータの確定が保障されるタイミングで、前記偶数ビットと前記奇数ビットのデータを前記シリアルデータからサンプリングする前記[1]に記載の通信制御プログラム。
[3]コンピュータを、
送信するパケットを構成するデータに、予め定めた数だけ同じ値が続いた場合に当該値を反転した反転ビットを挿入し、当該反転ビットが挿入されたパケット間に前記予め定めた数より大きい数の同じ値が連続する区切りコードを挿入して送信する送信手段として機能させるための通信制御プログラム。
[4]前記コンピュータを、
データを中継する場合、送信側のクロック周波数が速い場合は前記区切りコードを抜き取って前記データを受信し、送信側のクロック周波数が遅い場合は区切りコードをさらに挿入して前記データを受信する受信手段としてさらに機能させる前記[3]に記載の通信制御プログラム。
[5]シリアルデータをクロック周波数に対してオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するものであって、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信する受信手段を有する通信制御装置。
[6]マスタ制御部に下り通信線および上り通信線を介して複数のスレーブ装置を接続し、前記スレーブ装置から当該スレーブ装置に接続された機器に対して信号の入出力を行う通信制御装置を利用した通信制御方法において、
シリアルデータをクロック周波数に対してオーバーサンプリングするステップと、
オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するステップと、
当該偶数ビット及び当該奇数ビットの有効信号を出力すると共に、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録するステップと、
当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信するステップとを有する通信制御方法。
請求項1、5又は6に係る発明によれば、送信側と受信側とのクロック周波数の偏差を吸収してシリアルデータを受信することができる。
請求項2に係る発明によれば、シリアルデータの周期内において、オーバーサンプリングしてデータの確定が保障されるタイミングで、偶数ビットと奇数ビットのデータをシリアルデータからサンプリングすることができる。
請求項3に係る発明によれば、受信側がクロック周波数の偏差を吸収して受信するためのデータを送信することができる。
請求項4に係る発明によれば、送信側の送信したデータを受信側がクロック周波数の偏差を吸収して受信することができる。
図1は、第1の実施の形態に係る画像形成装置の構成例を示すブロック図である。 図2は、スレーブの構成の一例を示すブロック図である。 図3(a)−(c)は、スレーブが受信するパケットを含むシリアルデータの信号の一例を示す概略図である。 図4は、送信側のクロック周波数が速い場合におけるスレーブのデータ受信動作を説明するための図である。 図5は、送信側のクロック周波数が遅い場合におけるスレーブのデータ受信動作を説明するための図である。 図6(a)及び(b)は、バッファにデータが入力される動作を説明するための図である。 図7は、バッファにデータが入力される動作を説明するための図である。 図8は、第2の実施の形態に係るスレーブの構成の一例をデータの流れとともに示すブロック図である。 図9(a)−(d)は、反転ビット挿抜動作を説明するための図である。 図10は、パケット及び区切りコードを含むシリアルデータの構成を示す概略図である。 図11(a)−(c)は、区切りコード挿抜動作を説明するための図である。
[第1の実施の形態]
(画像形成装置の構成)
図1は、第1の実施の形態に係る画像形成装置の構成例を示すブロック図である。
画像形成装置1は、通信制御装置の一例としてのマスタ制御部Mと、マスタ制御部Mの要求に応じて動作する複数のスレーブS1−S5とを有し、マスタ制御部MとスレーブS1−S5とを上り通信線Lと下り通信線Lとが独立したシリアル通信線で接続して構成される。上り通信線Lと下り通信線Lとを有するシリアル通信線は、差動のツイストペアである。
マスタ制御部Mは、スレーブS1−S5に対して要求信号としてWriteパケット又はReadパケット(以下、総称して「要求パケット」という。)を発行して当該パケットを含むシリアルデータを送信し、当該要求信号に対する応答信号を受信する。つまり、マスタ制御部MとスレーブS1−S5とはRequest−Response方式により動作する。
スレーブS1−S5は、それぞれ図示しない画像形成装置1のセンサやアクチュエータ等の機器に接続され、マスタ制御部Mから受信した要求パケットに応じて当該機器を制御する等して処理を実行し、マスタ制御部Mに処理結果としてWriteパケットに対するAcknowledgeを示す応答信号であるAck、Readパケットに対するReadデータを含んだ応答信号であるResponse、エラーが生じた場合の応答信号であるNack等(以下、総称して「応答パケット」という。)を送信する。
なお、スレーブS1−S5は直列に接続されているが、上位に1ポート、下位に複数ポートを有して分岐するように構成してもよい。また、スレーブS1−S5は中継機能を有し、自ノード宛のパケットに応じて処理を実行し、自ノード宛以外のパケットは下位のノードに送信する。
なお、画像形成装置1は、マスタ制御部MとスレーブS1−S5を適用した装置の一例であり、スレーブS1−S5は画像形成装置1のセンサやアクチュエータ等の機器を動作させる。なお、画像形成装置1に限らず、他の種類の装置のI/Oを制御するものであってもよい。なお、スレーブS1−S5は5つ示しているが、複数であればよくその数は限定されない。
(スレーブの構成)
図2は、スレーブS1−S5の構成の一例を示すブロック図であり、代表してスレーブS1について説明している。
スレーブS1は、IC(Integral Circuit)等から構成され、パケットの生成、送信、及び受信を行う制御部10と、フラッシュメモリ等の記憶媒体から構成され情報を記憶する記憶部11と、シリアル通信線を介してスレーブと通信する通信部12とを備える。
制御部10は、後述する通信制御プログラム110を実行することで、パケット受信手段100、パケット中継手段101、パケット識別手段102、パケット送信手段103等として機能する。
パケット受信手段100は、マスタ制御部M若しくは上位のスレーブからシリアルデータに含まれる要求パケットを受信し又は下位のスレーブから応答パケットを受信する。
パケット中継手段101は、パケット受信手段100が受信した要求パケット又は応答パケットが自己を宛先とするものでない場合に、下位のスレーブ又はマスタ制御部若しくは上位のスレーブに中継する。
パケット識別手段102は、パケット受信手段100が受信した要求パケット又は応答パケットが自己を宛先とするものである場合に、受信したパケットの内容を識別し、処理する。
パケット送信手段103は、パケット中継手段101が中継する要求パケット又は応答パケットを下位のスレーブ又はマスタ制御部若しくは上位のスレーブにシリアルデータに含めて送信する。
記憶部11は、制御部10を上述した各手段100−103として動作させる通信制御プログラム110等を記憶する。
(通信制御装置の動作)
次に、第1の実施の形態の作用を(1)基本動作、(2)ビットロック動作に分けて説明する。スレーブS1−S5を代表してスレーブS1について説明するが、スレーブS2−S4についても同様である。
(1)基本動作
まず、スレーブS1のパケット受信手段100は、マスタ制御部M若しくは上位のスレーブからシリアルデータに含まれる要求パケットを受信し又は下位のスレーブから応答パケットを受信する。
次に、パケット中継手段101は、パケット受信手段100が受信した要求パケット又は応答パケットが自己を宛先とするものでない場合に、下位のスレーブ又はマスタ制御部若しくは上位のスレーブに中継する。
また、パケット識別手段102は、パケット受信手段100が受信した要求パケット又は応答パケットが自己を宛先とするものである場合に、受信したパケットの内容を識別し、処理する。
パケット送信手段103は、パケット中継手段101が中継する要求パケット又は応答パケットをシリアルデータに含めて下位のスレーブ又はマスタ制御部若しくは上位のスレーブに送信する。
以下は、パケット受信手段100がパケットを含むシリアルデータを受信する際の動作について、特にビットロック動作について説明する。
(2)ビットロック動作
図3(a)−(c)は、スレーブが受信するパケットを含むシリアルデータの信号の一例を示す概略図である。左側ほど先送、右側ほど後送のデータであることを示す。
図3(a)に示すように、パケットを含む受信データは、シリアルデータであってアイパターンを有する信号によって伝送され、パケット受信手段100によって受信される。通常は予め定めた周期(クロック周波数)に合わせてサンプリングされるが、本実施の形態においては1/4周期(クロック周波数の4倍)でサンプリングし、確定したデータをバッファに出力して、バッファからビットストリームとして出力する。
なお、送信側のクロック周波数が速い場合には点線で示すアイパターンとなり、1/4周期でサンプリングすることで先送側の3つのデータが確定することになり、送信側のクロック周波数が遅い場合には一点鎖線で示すアイパターンとなり後送側の3つのデータが確定することとなる。つまり、送信側のクロック周波数に偏差が合っても、少なくとも3つのデータが確定することとなる。確定したデータは「○」で示し、確定していないデータは「×」で示している。
図3(b)に示すように、パケット受信手段100は、1/4周期で確定したデータの数をカウントし、ハイ信号「H」又はロー信号「L」の同一符号が続いている場合には「0,1,2,3,0,1,2,3…」とカウントする。また、「H」から「L」へ又は「L」から「H」へ切り替わる際に「0」からカウントをやり直す。このようにカウントされた値をビットカウントと呼ぶ。
次に、パケット受信手段100は、ビットカウントを利用してデータのサンプリングのポイントを確定する。パケット受信手段100は、図3(c)に示すように、ビットカウントが「2」から次の値へ変化するタイミングでビットフラグを反転させ、ビットフラグがハイ信号「H」の場合は偶数ビットを有効とし、ロー信号「H」の場合は奇数ビットを有効とする。
(送信側のクロック周波数が速い場合)
図4は、送信側のクロック周波数が速い場合におけるスレーブのデータ受信動作を説明するための図である。また、図6(a)及び(b)は、バッファにデータが入力される動作を説明するための図である。なお、図6(b)はバッファ内のビットストリームを示し、左側ほど先送、右側ほど後送のデータであって、ステップは時系列を示す。
図4に示すように、パケット受信手段100は、ビットフラグが「L」から「H」へ変化するタイミングで偶数フラグを「H」とし、1周期後に「L」とする。また、パケット受信手段100は、ビットフラグが「H」から「L」へ変化するタイミングで奇数フラグを「H」とし、1周期後に「L」とする。
次に、パケット受信手段100は、1倍クロックの周期に同期して偶数フラグ、奇数フラグを交互に読み、2ビット幅の偶数ビット、奇数ビットのデータを出力する。
次に、図6(a)に示すように、パケット受信手段100が出力する偶数ビット、奇数ビットのデータはバッファ100bufferに入力される。図6(b)のStep1、2、3…に示すようにバッファ100bufferには偶数ビットのデータ「D0」、奇数ビットのデータ「D1」、偶数ビットのデータ「D2」…が順に入力される。なお、ポインタの示す位置がデータが入力されて記録される位置である。
ここで、図4に示すように、パケット受信手段100は、時刻T1において偶数ビット及び奇数ビットのデータD6及びD7を同時に出力する。そこで、図6(b)のStep7に示すようにバッファ100bufferには元のポインタの位置で偶数ビットのデータ「D6」が入力され、その後ポインタを後ろにずらし、ずらされたポインタの位置で奇数ビットのデータ「D7」が入力される。Step8以降はずらされたポインタの位置に偶数ビット、奇数ビットのデータが交互に入力される。
(送信側のクロック周波数が遅い場合)
図5は、送信側のクロック周波数が遅い場合におけるスレーブのデータ受信動作を説明するための図である。また、図7は、バッファ100bufferにデータが入力される動作を説明するための図である。
図5に示すように、パケット受信手段100は、ビットフラグが「L」から「H」へ変化するタイミングで偶数フラグを「H」とし、1周期後に「L」とする。また、パケット受信手段100は、ビットフラグが「H」から「L」へ変化するタイミングで奇数フラグを「H」とし、1周期後に「L」とする。
次に、パケット受信手段100は、1倍クロックの周期に同期して偶数フラグ、奇数フラグを交互に読み、2ビット幅の偶数ビット、奇数ビットのデータを出力する。
次に、図7に示すように、パケット受信手段100が出力する偶数ビット、奇数ビットのデータはパケット受信手段100内のバッファ100bufferに一旦入力される。図7のStep1、2に示すようにバッファ100bufferには偶数ビットのデータ「D0」、奇数ビットのデータ「D1」、偶数ビットのデータ「D2」が入力される。
ここで、図5に示すように、パケット受信手段100は、時刻T2において偶数ビット及び奇数ビットのいずれのデータも出力しない。そこで、図7のStep3に示すようにバッファ100bufferにはデータが入力されずに「無効」となるが、その後ポインタを前にずらして「無効」であった箇所に偶数ビットのデータ「D2」が入力される。Step5以降は、ずらされたポインタの位置に奇数ビット、偶数ビットのデータが交互に入力される。
(第1の実施の形態の効果)
上記した第1の実施の形態によれば、シリアルデータを1/4周期でオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットを読み出して交互にバッファに出力し、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、ポインタを遅らせてバッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、ポインタを進めてバッファに記録してシリアルデータを受信するようにしたため、送信側のクロック周波数が速い場合であっても遅い場合であってもバッファに順次データが入力され、送信側と受信側とのクロック周波数の偏差を吸収してシリアルデータを受信することができる。
[第2の実施の形態]
第2の実施の形態は、第1の実施の形態で説明したビットロックのバッファ内のポインタの移動に加え、転送用バッファから送信するデータを挿抜して転送用バッファのポインタの移動を緩和する点で第1の実施の形態と異なる。
図8は、第2の実施の形態に係るスレーブS1−S5の構成の一例をデータの流れとともに示すブロック図であり、代表してスレーブS1について説明している。
図8に示す受信部100a、ビットロック部100b、シンボルロック/シンボル検出部100c、デシリアライザー部100d及びパケットバッファ部100eは、第1の実施の形態のパケット受信手段100に対応する。
また、区切りコード挿抜部101a、再クロック部101b、調停部101c、シリアライザー部101d及び選択部101eは、第1の実施の形態のパケット中継手段101に対応する。
また、パケット識別部102a及びパケット処理部102bは、第1の実施の形態のパケット識別手段102に対応する。
また、送信部103a、103a及び103aは、第1の実施の形態のパケット送信手段103に対応する。
受信部100aは、下り信号について、マスタ制御部M若しくは上位のスレーブから要求パケットを含むシリアルデータを受信する。また、受信部100a及び100aは、上り信号について、下位のスレーブから応答パケットを含むシリアルデータを受信する。
ビットロック部100bは、受信部100aが受信したパケットを含むシリアルデータを、第1の実施の形態で述べたように、1/4周期でサンプリングして確定させる。
シンボルロック/シンボル検出部100cは、シリアルデータ中に含まれる区切りコードを検出し、区切りコード間のデータについて後述する反転ビットの抜取処理を行って、シンボルを検出する。
デシリアライザー部100dは、シリアルデータをパラレルデータに変換する。
パケットバッファ部100eは、下位から上位への上り信号につい、受信部100a及び100aのうち後に受け取ったパケットをバッファする。
区切りコード挿抜部101aは、送信側のクロック周波数と受信クロック周波数の周波数偏差がある場合に区切りコードを挿抜する。
再クロック部101bは、受信側のクロック周波数と同期させてシリアルデータを出力する。
調停部101cは、中継したパケットとパケット処理部102bにおいて生成したパケットの優先制御を行う(パラレル調停)。
シリアライザー部101dは、パラレルデータをシリアルデータに変換するとともに反転ビットの挿入処理を行う。
選択部101eは、シリアライザー部101dからの出力と区切りコード挿抜部101aからの出力を選択して、優先制御を行い(シリアル調停)再クロック部101bに出力する。
パケット識別部102aは、デシリアライザー部100dの出力するパケットを識別し、CRC(Cyclic Redundancy Check)によるエラー検出を行う。
パケット処理部102bは、識別されたパケットに応じた処理を実行し、実行結果としての応答パケットを生成する。
送信部103a及び103aは、下り信号について、中継したパケットを下位のスレーブに送信する。送信部103aは、上り信号について、中継したパケット又は応答パケットをマスタ制御部又は上位のスレーブに送信する。
(通信制御装置の動作)
次に、第2の実施の形態の作用を(1)基本動作、(2)反転ビット挿抜動作、(3)区切りコード挿抜動作に分けて説明する。スレーブS1−S5を代表してスレーブS1について説明するが、スレーブS2−S4についても同様である。
(1)基本動作
まず、第2の実施の形態の通信制御装置の基本動作について、上位の装置から下位の装置へ送られる下り信号と、下位の装置から上位の装置へと送られる上り信号とに分けてその処理動作を説明する。
(1−1)下り信号の処理動作
まず、受信部100aは、下り信号について、マスタ制御部M若しくは上位のスレーブから要求パケットを含むシリアルデータを受信する。
次に、ビットロック部100bは、受信部100aが受信したパケットを含むシリアルデータを、第1の実施の形態で述べたように、1/4周期でサンプリングして確定させる。ビットロック部100bは、自己装置宛の要求パケットについてはシンボルロック/シンボル検出部100cに、他の装置宛の中継パケットについては区切りコード挿抜部101aにそれぞれ出力する。
(要求パケットの処理)
次に、シンボルロック/シンボル検出部100cは、シリアルデータ中に含まれる区切りコードを検出し、区切りコード間のデータについて後述する反転ビットの抜取処理を行って、シンボルを検出する。なお、区切りコードの検出については、「(3)区切りコード挿抜動作」において詳細に説明する。また、反転ビットの抜取処理については、「(2)反転ビット挿抜動作」において詳細に説明する。
次に、デシリアライザー部100dは、検出したシンボルについてシリアルデータをパラレルデータに変換する。
次に、パケット識別部102aは、デシリアライザー部100dの出力するパケットを識別し、CRCによるエラー検出を行う。
次に、パケット処理部102bは、識別されたパケットに応じた処理を実行し、実行結果としての応答パケットを生成する。生成された応答パケットは調停部101cに出力され、マスタ制御部Mへ送信される上り信号となる。
(中継パケットの処理)
また、ビットロック部100bが出力した他の装置宛の中継パケットについて、区切りコード挿抜部101aは、送信側であるマスタ制御部M又は上位のスレーブのクロック周波数と受信クロック周波数の周波数偏差がある場合に区切りコードを挿抜する。なお、区切りコードの挿抜については、「(3)区切りコード挿抜動作」において詳細に説明する。
次に、再クロック部101bは、受信側のクロック周波数と同期させてシリアルデータを出力する。
次に、送信部103a及び103aは、下り信号について、中継したパケットを含むシリアルデータを下位のスレーブに送信する。
(1−2)上り信号の処理動作
まず、受信部100a及び100aは、上り信号について、下位のスレーブから応答パケットを含むシリアルデータを受信する。
次に、ビットロック部100bは、受信部100aが受信したパケットを含むシリアルデータを、第1の実施の形態で述べたように、1/4周期でサンプリングして確定させる。なお、ビットロック部100bは、中継パケットについて、受信部100a及び100aのうち先に受信したパケットを区切りコード挿抜部101aに出力し、後に受け取ったパケットをバッファするためにシンボルロック/シンボル検出部100cに出力する。
(先に受信した中継パケットの処理)
先に受信した中継パケットについて、区切りコード挿抜部101aは、送信側である下位のスレーブのクロック周波数と受信クロック周波数の周波数偏差がある場合に区切りコードを挿抜する。
(後に受信した中継パケットの処理)
シンボルロック/シンボル検出部100cは、データ中に含まれる区切りコードを検出し、区切りコード間のデータについて後述する反転ビットの抜取処理を行って、シンボルを検出する。
次に、デシリアライザー部100dは、検出したシンボルについてシリアルデータをパラレルデータに変換する。
次に、パケットバッファ部100eは、パラレルデータに変換されたパケットをバッファする。
次に、調停部101cは、先に受信した中継パケットとパケット処理部102bにおいて生成した応答パケットを調停する。
次に、シリアライザー部101dは、パラレルデータをシリアルデータに変換するとともに、反転ビットの挿入処理を行い、選択部101eへ出力する。
次に、選択部101eは、シリアライザー部101dからの出力と区切りコード挿抜部101aからの出力を、順次選択して再クロック部101bに出力する。
次に、再クロック部101bは、受信側のクロック周波数と同期させてシリアルデータを出力する。
次に、送信部103aは、上り信号について、中継したパケット又は応答パケットを含むシリアルデータをマスタ制御部又は上位のスレーブに送信する。
(2)反転ビット挿抜動作
図9(a)−(d)は、反転ビット挿抜動作を説明するための図である。
パケット処理部102bが生成する応答パケット(又はマスタ制御部Mが生成する要求パケット)を構成する元データは、図9(a)に示すように、例えば「0」と「1」で表される。
シリアライザー部101dは、図9(b)に示すように、当該データに反転ビットを挿入する。反転ビットは、5ビット同じ値が連続した場合に当該値を反転させたものである。つまり、「11111」の後に「1」を反転させた「0」を挿入し、その次には当該反転ビット「0」を含んで5ビット同じ値「00000」が続くので「1」を挿入する。その後も同様に元データに反転ビットを含めて同じ値が5ビット連続した場合に反転ビットが挿入される。このように元データに反転ビットが挿入されたものを送信データとする。
次に、シンボルロック/シンボル検出部100cは、図9(b)に示したように反転ビットが挿入された送信データを受信すると、図9(c)に示すように、受信データから、5ビット同じ値が連続して次の値が反転している場合に、当該反転した値を反転ビットとして検出して、当該反転ビットを抜き取る処理を行う。つまり、「11111」の後に「1」を反転させた「0」があるため当該「0」を抜き取り、抜き取った「0」を含めて5ビット同じ値「00000」が続くので、その後の「1」を抜き取る。その後も同様に受信データに同じ値が5ビット連続して次の値が反転している場合に、反転ビットが抜き取られる。
反転ビットが抜き取られたものが図9(d)に示す復元データとなる。なお、反転ビットの挿抜はパケットのみに行われ、次に説明する区切りコードに対しては行われない。
(3)区切りコード挿抜動作
まず、区切りコードの構成について説明する。
図10は、パケット及び区切りコードを含むシリアルデータの構成を示す概略図である。
図10に示すように、ビットストリームは複数のパケットと、各パケットの間に挿入された区切りコードを有する。区切りコードは、周波数偏差に応じて抜き取られても十分な数だけ各パケットの間に挿入されているものとする。
図10において、各パケット及び各区切りコードは、16進数で記載されており、例えば、区切りコード「7Eh」とは、「7」が16進数で「0111」、「E」が16進数で「1110」、「h」が16進数であることを示すため、「01111110」となる。上記したように反転ビットは5ビット同じ値が連続した場合に挿入されるため、「1」が6ビット続く区切りコードは、スレーブS1の各部において他のシンボルと区別される。なお、区切りコードは「0」が6ビット続くものであってもよく、この場合区切りコードは「81h」と記載され、「8」が「1000」を、「1」が「0001」を、「h」が16進数であることを示すため、「10000001」となる。
パケットは、ヘッダと実データとを有する。ヘッダは、プライオリティ(1ビット)とパケットの種類(2ビット)を示す3ビットのCMDと、スレーブを識別する5ビットのIDと、パケットの長さを示す3ビットのSUBと、シーケンスナンバーを示すSQNとを有する。実データは、アドレスを示すAddrと、ペイロードを示すPLと、誤り検出のための16ビットのCRCとを有する。
以下に、上記で説明した区切りコードの挿抜動作について説明する。
図11(a)−(c)は、区切りコード挿抜動作を説明するための図である。
まず、区切りコード挿抜部101aは、中継パケットを含むシリアルデータを転送用バッファに一時的に記憶する。送信側のクロック周波数が同期されている場合、図11(a)に示すように、区切りコード挿抜部101aは転送用バッファのポインタにおいてA番目、B番目、C番目…のデータを順次読み出して送信データとする。
また、送信側のクロック周波数が速い場合、図11(b)に示すように、ポインタが転送用バッファ内の後ろ(図中の右側)にずれていくため、区切りコード挿抜部101aはポインタのずれが予め定めたビット数だけ後ろにずれた場合、例えば、3ビットずれた場合にA番目からH番目の7ビット分の区切りコードを抜き取ってポインタを7ビットだけ前にずらす。
また、送信側のクロック周波数が遅い場合、図11(c)に示すように、ポインタが転送用バッファ内の前(図中の左側)にずれていくため、区切りコード挿抜部101aはポインタのずれが予め定めたビット数だけ前にずれた場合、例えば、5ビットずれた場合に新たな7ビット分の区切りコードを挿入してポインタを7ビットだけ後ろにずらす。
(第2の実施の形態の効果)
上記した第2の実施の形態によれば、第1の実施の形態の効果に加え、データの送信時にパケットを構成するデータに5ビット同じデータが続いた場合に当該データを反転した反転ビットを挿入し、当該反転ビットが挿入されたパケット間に6ビット同じデータが連続する区切りコードを挿入したため、データの受信時に連続するデータの数に基づいて区切りコードを識別し、パケットと区別することができる。
また、データの受信時に送信側のクロック周波数が速い場合は区切りコードを抜き取って、送信側のクロック周波数が遅い場合は区切りコードをさらに挿入するようにしたため、送信側と受信側とのクロック周波数の偏差を吸収してシリアルデータを受信することができる。
また、従来のクロックデータリカバリ回路では複数のクロック周波数でサンプリングし、位相が適切となるデータ信号とクロック信号を選択するものであったため、ループバック制御が必要となるものであったが、上記した第1及び第2の実施の形態では複雑な制御回路を用いること無く、単純な構成で非同期のシリアルデータを送受信することが可能となる。
[他の実施の形態]
なお、本発明は、上記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で種々な変形が可能である。
上記実施の形態では制御部10の各手段100〜103の機能をプログラムで実現したが、各手段の全て又は一部をASIC等のハードウエアによって実現してもよい。また、上記実施の形態で用いたプログラムをCD−ROM等の記録媒体に記憶して提供することもできる。また、上記実施の形態で説明した上記ステップの入れ替え、削除、追加等は本発明の要旨を変更しない範囲内で可能である。
1 画像形成装置
10 制御部
11 記憶部
12 通信部
100 パケット受信手段
100a、100a、100a 受信部
100b ビットロック部
100buffer バッファ
100c シンボルロック/シンボル検出部
100d デシリアライザー部
100e パケットバッファ部
101 パケット中継手段
101a 区切りコード挿抜部
101b 再クロック部
101c 調停部
101d シリアライザー部
101e 選択部
102 パケット識別手段
102a パケット識別部
102b パケット処理部
103 パケット送信手段
103a、103a、103a 送信部
110 通信制御プログラム
M マスタ制御装置
M マスタ制御部
S1−S5 スレーブ

Claims (6)

  1. コンピュータを、
    シリアルデータをクロック周波数に対してオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するものであって、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信する受信手段として機能させるための通信制御プログラム。
  2. 前記受信手段は、前記シリアルデータの周期内において、前記オーバーサンプリングしてデータの確定が保障されるタイミングで、前記偶数ビットと前記奇数ビットのデータを前記シリアルデータからサンプリングする請求項1に記載の通信制御プログラム。
  3. コンピュータを、
    送信するパケットを構成するデータに、予め定めた数だけ同じ値が続いた場合に当該値を反転した反転ビットを挿入し、当該反転ビットが挿入されたパケット間に前記予め定めた数より大きい数の同じ値が連続する区切りコードを挿入して送信する送信手段として機能させるための通信制御プログラム。
  4. 前記コンピュータを、
    データを中継する場合、送信側のクロック周波数が速い場合は前記区切りコードを抜き取って前記データを受信し、送信側のクロック周波数が遅い場合は区切りコードをさらに挿入して前記データを受信する受信手段としてさらに機能させる請求項3に記載の通信制御プログラム。
  5. シリアルデータをクロック周波数に対してオーバーサンプリングし、オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するものであって、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録し、当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信する受信手段を有する通信制御装置。
  6. マスタ制御部に下り通信線および上り通信線を介して複数のスレーブ装置を接続し、前記スレーブ装置から当該スレーブ装置に接続された機器に対して信号の入出力を行う通信制御装置を利用した通信制御方法において、
    シリアルデータをクロック周波数に対してオーバーサンプリングするステップと、
    オーバーサンプリングしたデータから当該クロック周波数に同期させて偶数ビットと奇数ビットをサンプリングして交互にバッファに出力するステップと、
    当該偶数ビット及び当該奇数ビットの有効信号を出力すると共に、当該偶数ビット及び当該奇数ビットが同時に有効になった場合、同時に有効になった当該偶数ビット又は当該奇数ビットのデータを記録した後に前記バッファの記録位置を遅らせて同時に有効になった当該奇数ビット又は当該偶数ビットのデータを前記バッファに記録するステップと、
    当該偶数ビット及び当該奇数ビットが同時に無効になった場合、前記バッファの記録位置を進めて次に有効になる当該偶数ビット又は当該奇数ビットのデータを前記バッファに記録して前記シリアルデータを受信するステップとを有する通信制御方法。


JP2014179811A 2014-09-04 2014-09-04 通信制御プログラム、通信制御装置及び通信制御方法 Expired - Fee Related JP6500372B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014179811A JP6500372B2 (ja) 2014-09-04 2014-09-04 通信制御プログラム、通信制御装置及び通信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014179811A JP6500372B2 (ja) 2014-09-04 2014-09-04 通信制御プログラム、通信制御装置及び通信制御方法

Publications (2)

Publication Number Publication Date
JP2016054432A JP2016054432A (ja) 2016-04-14
JP6500372B2 true JP6500372B2 (ja) 2019-04-17

Family

ID=55745468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014179811A Expired - Fee Related JP6500372B2 (ja) 2014-09-04 2014-09-04 通信制御プログラム、通信制御装置及び通信制御方法

Country Status (1)

Country Link
JP (1) JP6500372B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0684719A1 (en) * 1994-05-25 1995-11-29 International Business Machines Corporation Method and apparatus for transmission of high priority traffic on low speed communication links
US20030061564A1 (en) * 2001-09-27 2003-03-27 Maddux John T. Serial data extraction using two cycles of edge information
US8830510B2 (en) * 2011-06-07 2014-09-09 Canon Kabushiki Kaisha Transmission apparatus, reception apparatus, serial communication apparatus, and printing apparatus including the serial communication apparatus
WO2013001631A1 (ja) * 2011-06-29 2013-01-03 富士通株式会社 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法

Also Published As

Publication number Publication date
JP2016054432A (ja) 2016-04-14

Similar Documents

Publication Publication Date Title
US8885645B2 (en) Method for transmitting data
KR100546971B1 (ko) 고속 시그널링을 위한 데이터 캡처 방법
JP4873663B2 (ja) 信号を復号するための方法と装置
JP6149150B2 (ja) スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正
WO2013001631A1 (ja) 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
US8594136B2 (en) Transmission of parallel data flows on a parallel bus
WO2012132217A1 (ja) Can通信システム、can送信装置、can受信装置、およびcan通信方法
EP3748512A1 (en) Method for a slave device for calibrating its output timing, method for a master device for enabling a slave device to calibrate its output timing, master device and slave device
JP5365132B2 (ja) 直列信号の受信装置、直列伝送システム、直列伝送方法、直列信号の送信装置
US9111042B1 (en) 1588 deterministic latency with gearbox
CN101300773A (zh) 数据接口及寻求同步的方法
JP6500372B2 (ja) 通信制御プログラム、通信制御装置及び通信制御方法
EP3671720B1 (en) Real-time on-chip data transfer system
JP2006525724A (ja) クロックの時間同期方法
JP5924880B2 (ja) データ通信システム、プリアンブル長最適化方法、及び通信装置
JP2013005056A (ja) 光通信装置および信号調整方法
JP7037035B2 (ja) データ伝送装置、演算処理装置及びデータ伝送装置の制御方法
JP4841927B2 (ja) 非同期伝送装置、非同期伝送方法
JP2016042218A (ja) エラー検出装置及びエラー検出方法
JP5466432B2 (ja) フレーム同期装置
JP6330541B2 (ja) データ送受信システム、データ送信装置、データ送受信システムの制御方法
JP4879846B2 (ja) フレーム同期データ転送方法、その送信側装置及び受信側装置
JP6738028B2 (ja) 受信回路及び半導体集積回路
US10116562B2 (en) Communication interface apparatus
JP2016096493A (ja) 通信システムおよび画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180807

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180914

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190304

R150 Certificate of patent or registration of utility model

Ref document number: 6500372

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees