JP2010016751A - Crc演算回路、シリアルインタフェイス装置、画像形成装置 - Google Patents
Crc演算回路、シリアルインタフェイス装置、画像形成装置 Download PDFInfo
- Publication number
- JP2010016751A JP2010016751A JP2008176801A JP2008176801A JP2010016751A JP 2010016751 A JP2010016751 A JP 2010016751A JP 2008176801 A JP2008176801 A JP 2008176801A JP 2008176801 A JP2008176801 A JP 2008176801A JP 2010016751 A JP2010016751 A JP 2010016751A
- Authority
- JP
- Japan
- Prior art keywords
- xor
- input
- output
- terminal
- input terminal
- 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.)
- Pending
Links
Images
Landscapes
- Manipulation Of Pulses (AREA)
- Logic Circuits (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
【課題】本発明は、容易な回路設計で高速データ伝送に対応することが可能なCRC演算回路を提供することを目的とする。
【解決手段】本発明に係るCRC演算回路は、伝送データからシリアル処理でCRC符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、前記伝送データからパラレル処理で前記CRC符号を算出する論理回路を有して成る構成とされている。
【選択図】図4
【解決手段】本発明に係るCRC演算回路は、伝送データからシリアル処理でCRC符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、前記伝送データからパラレル処理で前記CRC符号を算出する論理回路を有して成る構成とされている。
【選択図】図4
Description
本発明は、CRC演算回路、並びに、これを用いたシリアルインタフェイス装置及び画像形成装置に関するものである。
従来より、シリアルデータの同期式伝送を行うシリアルインタフェイス装置では、シリアルデータの伝送エラーを確認するために巡回冗長検査が行われる。巡回冗長検査において、シリアルデータの送信側は、送信すべきシリアルデータを高次多項式(メッセージ多項式)の係数と見立てた上で、これを予め定められた生成多項式で除算し、その剰余をCRC[Cyclic Redundancy Check]符号としてシリアルデータの後に付加して送信する。従って、実際に送信されるシリアルデータは、上記の生成多項式で割り切れる値となっている。一方、シリアルデータの受信側は、受信したシリアルデータを送信側と同じ生成多項式で除算して剰余を求める。ここで、剰余がゼロの場合には伝送エラーが生じていないと判断され、剰余がゼロ以外の場合には伝送エラーが生じていると判断される。
なお、上記に関連する従来技術としては、例えば、特許文献1を挙げることができる。
特開2002−261624号公報
確かに、巡回冗長検査を行う構成であれば、単純なチェックサムに比べて伝送エラーを確実に検出することが可能である。
しかしながら、従来のシリアルインタフェイス装置は、図5に示す通り、シリアル/パラレル変換ブロックの前段に、巡回冗長検査を行うCRCブロック(CRC演算回路を含む)を有して成り、順次入力されるシリアルデータSDATAを時系列的に処理することで、CRC符号の演算や演算範囲の確定、CRC符号の判定タイミング処理などを実施していた。そのため、上記従来のシリアルインタフェイス装置では、シリアルデータSDATAの伝送速度が高まるにつれて、CRC演算回路の回路設計(CRC演算回路を形成するシフトレジスタや排他的論理和演算器の応答性改善など)が非常に困難となっていた。なお、図5では、受信側となるシリアルインタフェイス装置を例に挙げたが、送信側となるシリアルインタフェイス装置においても、上記と同様の問題点があった。
本発明は、上記の問題点に鑑み、容易な回路設計で高速データ伝送に対応することが可能なCRC演算回路、並びに、これを用いたシリアルインタフェイス装置及び画像形成装置を提供することを目的とする。
上記目的を達成するために、本発明に係るCRC演算回路は、伝送データからシリアル処理でCRC符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、前記伝送データからパラレル処理で前記CRC符号を算出する論理回路を有して成る構成(第1の構成)とされている。
なお、上記第1の構成から成るCRC演算回路において、前記演算式は、シフトレジスタと排他的論理和演算器を用いて前記伝送データからシリアル処理で前記CRC符号を算出する演算過程を解析して導き出されるものであって、前記伝送データが所定ビット分入力された時点で前記シフトレジスタの各桁に格納されているレジスタ値を表すものである構成(第2の構成)にするとよい。
また、上記第2の構成から成るCRC演算回路において、前記演算式は、17ビットの生成多項式(x16+x12+x5+1)を用いて16ビットの前記CRC符号を算出する演算過程を解析して導き出されるものであって、前記伝送データが8ビット分入力された時点で前記シフトレジスタの各桁に格納されているレジスタ値を表すものである構成(第3の構成)にするとよい。
また、上記第3の構成から成るCRC演算回路において、前記論理回路は、前記伝送データが8ビット分パラレル入力される第0入力端〜第7入力端と;前記CRC符号が16ビット分パラレル出力される第0出力端〜第15出力端と;データ出力端が第0出力端〜第15出力端に各々接続される第1フリップフロップ〜第15フリップフロップと;一方の入力端が第7入力端に接続されて、他方の入力端が第8XORの出力端に接続される第1XORと;一方の入力端が第1XORの出力端に接続されて、他方の入力端が第8出力端に接続されて、出力端が第0フリップフロップのデータ入力端に接続される第2XORと;一方の入力端が第0出力端に接続されて、他方の入力端が第29XORの出力端に接続されて、出力端が第8フリップフロップのデータ入力端に接続される第3XORと;一方の入力端が第8出力端に接続されて、他方の入力端が第4出力端に接続される第4XORと;一方の入力端が第0入力端に接続されて、他方の入力端が第15出力端に接続される第5XORと;一方の入力端が第4XORの出力端に接続されて、他方の入力端が第5XORの出力端に接続される第6XORと;一方の入力端が第1XORの出力端に接続されて、他方の入力端が第6XORの出力端に接続されて、出力端が第12フリップフロップのデータ入力端に接続される第7XORと;一方の入力端が第3入力端に接続されて、他方の入力端が第12出力端に接続されて、出力端が第4フリップフロップのデータ入力端に接続される第8XORと;一方の入力端が第1出力端に接続されて、他方の入力端が第8XORの出力端に接続され、出力端が第9フリップフロップのデータ入力端に接続される第9XORと;一方の入力端が第7入力端に接続されて、他方の入力端が第8出力端に接続される第10XORと;一方の入力端が第8XORの出力端に接続されて、他方の入力端が第16XORの出力端に接続される第11XORと;一方の入力端が第10XORの出力端に接続されて、他方の入力端が第11XORの出力端に接続されて、出力端が第5フリップフロップのデータ入力端に接続される第12XORと;一方の入力端が第6入力端に接続されて、他方の入力端が第9出力端に接続される第13XORと;一方の入力端が第13XORの出力端に接続されて、他方の入力端が第16XORの出力端に接続されて、出力端が第1フリップフロップのデータ入力端に接続される第14XORと;一方の入力端が第5出力端に接続されて、他方の入力端が第14XORの出力端に接続されて、出力端が第13フリップフロップのデータ入力端に接続される第15XORと;一方の入力端が第2入力端に接続されて、他方の入力端が第13出力端に接続される第16XORと;一方の入力端が第2出力端に接続されて、他方の入力端が第16XORの出力端に接続されて、出力端が第10フリップフロップのデータ入力端に接続される第17XORと;一方の入力端が第16XORの出力端に接続されて、他方の入力端が第23XORの出力端に接続される第18XORと;一方の入力端が第13XORの出力端に接続されて、他方の入力端が第18XORの出力端に接続されて、出力端が第6フリップフロップのデータ入力端に接続される第19XORと;一方の入力端が第5入力端に接続されて、他方の入力端が第10出力端に接続される第20XORと;一方の入力端が第20XORの出力端に接続されて、他方の入力端が第23XORの出力端に接続されて、出力端が第2フリップフロップのデータ入力端に接続される第21XORと;一方の入力端が第6出力端に接続されて、他方の入力端が第41XORの出力端に接続されて、出力端が第14フリップフロップのデータ入力端に接続される第22XORと;一方の入力端が第1入力端に接続されて、他方の入力端が第14出力端に接続される第23XORと;一方の入力端が第3出力端に接続されて、他方の入力端が第23XORの出力端に接続されて、出力端が第11フリップフロップのデータ入力端に接続される第24XORと;一方の入力端が第5XORの出力端に接続されて、他方の入力端が第20XORの出力端に接続される第25XORと;一方の入力端が第0入力端に接続されて、他方の入力端が第4入力端に接続される第26XORと;一方の入力端が第23XORの出力端に接続されて、他方の入力端が第25XORの出力端に接続されて、出力端が第7フリップフロップのデータ入力端に接続される第27XORと;一方の入力端が第11出力端に接続されて、他方の入力端が第26XORの出力端に接続される第28XORと;一方の入力端が第15出力端に接続されて、他方の入力端が第28XORの出力端に接続されて、出力端が第3フリップフロップのデータ入力端に接続される第29XORと;一方の入力端が第7出力端に接続されて、他方の入力端が第29XORの出力端に接続されて、出力端が第15フリップフロップのデータ入力端に接続される第30XORと;を有して成る構成(第4の構成)にするとよい。
また、本発明に係るシリアルインタフェイス装置は、上記第1〜第4いずれかの構成から成るCRC演算回路を有して成る構成(第5の構成)とされている。
また、本発明に係る画像形成装置は、撮像信号を生成する撮像センサと、前記撮像センサからパラレル入力される撮像信号を低電圧差動型シリアル信号に変換する送信側シリアルインタフェイス装置と、前記送信側シリアルインタフェイス装置からシリアル入力される前記低電圧差動型シリアル信号をパラレル形式の前記撮像信号に再変換して出力する受信側シリアルインタフェイス装置と、前記受信側シリアルインタフェイス装置から前記撮像信号がパラレル入力される中央演算処理装置と、を有して成る画像形成装置であって、前記送信側シリアルインタフェイス装置、及び、前記受信側シリアルインタフェイス装置の少なくとも一方として、上記第5の構成から成るシリアルインタフェイス装置を有して成る構成(第6の構成)とされている。
本発明によれば、容易な回路設計で高速データ伝送に対応することが可能となる。
図1は、本発明に係る画像形成装置の一実施形態を示すブロック図である。なお、本発明の適用対象となる画像形成装置の一例としては、ディジタルスチルカメラやディジタルビデオカメラ(カメラ機能を搭載したPDA[Personal Digital/Data Assistants]や携帯電話端末などを含む)、或いは、スキャナ装置などを挙げることができる。
図1に示す通り、本実施形態の画像形成装置は、撮像センサモジュール100と、送信側高速シリアルインタフェイス装置200(以下では、送信側シリアルI/F200と呼ぶ)と、受信側高速シリアルインタフェイス装置300(以下では、受信側シリアルI/F300と呼ぶ)と、中央演算処理装置400(以下ではCPU[Central Processing Unit]400と呼ぶ)と、を有して成る。
撮像センサモジュール100は、CCD[Charge Coupled Devices]イメージセンサやCMOS[Complementary Metal Oxide Semiconductor]イメージセンサを用いて、被写体から得られる光学信号を電気信号に変換することにより、8ビットの撮像信号DATAを生成し、これを送信側シリアルI/F200に対してパラレル転送する手段である。
また、撮像センサモジュール100は、上記した撮像信号DATAのほか、フレーム同期信号(垂直同期信号VS及び水平同期信号HS)についても、送信側シリアルI/F200にその供給を行うものとされている。
送信側シリアルI/F200は、撮像センサモジュール100の近傍に配設され、撮像センサモジュール100からパラレル入力される撮像信号DATAに高速画像処理を施した後、その処理結果を低電圧差動型シリアル信号(C+、C−、D+、D−)として、受信側シリアルI/F300に出力する手段である。
受信側シリアルI/F300は、CPU400の近傍に配設され、送信側シリアルI/F200からシリアル入力される低電圧差動型シリアル信号(C+、C−、D+、D−)をパラレル形式の撮像信号DATAに再変換してCPU400に転送する手段である。
このように、差動入出力形式の送信側シリアルI/F200と受信側シリアルI/F300を用いれば、ノイズや不要輻射を低減するとともに、撮像センサモジュール1からCPU4への信号本数を削減し、システムレイアウトの自由度を高めることが可能となる。
CPU400は、受信側シリアルI/F3から撮像信号DATAのパラレル入力を受けて、その表示処理や記録処理を制御する手段である。
次に、受信側シリアルI/F300の内部構成について、より詳細な説明を行う。
図1に示したように、本実施形態の受信側シリアルI/F300は、LVDS[Low Voltage Differential Signaling]レシーバブロック301と、シリアル/パラレル変換ブロック302(以下ではS/P[Serial/Parallel]ブロック302と呼ぶ)と、CRCブロック303と、FIFO[First-In First-Out]ライトブロック304と、FIFOブロック305と、出力制御ブロック306と、分周回路307と、を有して成る。
LVDSレシーバブロック301は、低電圧差動型シリアル信号(C+、C−、D+、D−)からシリアルデータSDATAと第1クロック信号SCLKを抽出し、これをS/Pブロック302に送出する手段である。
S/Pブロック302は、第1クロック信号SCLKに基づいて、LVDSレシーバブロック301で抽出されたシリアルデータSDATAを8ビットのパラレルデータPDATAに変換する手段である。
CRCブロック303は、S/Pブロック302から入力されるパラレルデータPDATAを並列的に処理することでCRC符号の演算を行うCRC演算回路を含んで成り、その演算結果に応じて、伝送エラーが生じているか否かを示すエラー検出信号ERRを生成し、これをCPU400に出力する手段である。なお、上記したCRC演算回路の構成及び動作については、後ほど詳細に説明する。
FIFOライトブロック304は、第2クロック信号FCLKに基づき、FIFOブロック305に対してパラレルデータPDATAを8ビットずつ書き込む手段である。
FIFOブロック305は、8ビットのパラレルPDATAが書き込まれる一時記憶手段である。
出力制御ブロック306は、第2クロック信号FCLKに基づいて、FIFOブロック305の格納データを8ビットずつパラレルに読み出し、これを撮像信号DATAとしてCPU400に出力する手段である。また、出力制御ブロック306は、上記の撮像信号DATAとともに、フレーム同期信号(垂直同期信号VS及び水平同期信号HS)や第3クロック信号PCLK(第2クロック信号FCLKと同等)もCPU400に転送する。
分周回路307は、第1クロック信号SCLKを1/8に分周して第2クロック信号FCLKを生成する手段である。
次に、CRCブロック303(特にこれに含まれるCRC演算回路)の説明に先立ち、CRC演算回路の従来構成(順次入力されるシリアルデータを時系列的に処理することでCRC符号の演算を行うシリアル形式)について説明する。
なお、以下に続く説明においては、17ビットの生成多項式(x16+x12+x5+1[1 1000 0000 0000 0101])を用いて、16ビットのCRC符号を求める演算方式(いわゆるCRC−16方式)を採用した場合を例に挙げて、詳細な説明を行うことにする。
図2は、CRC演算回路(シリアル形式)の一構成例を示す概念構成図である。また、図3は、シリアル形式によるCRC符号の演算過程を示す表である。
図2に示すように、従来のCRC演算回路は、5桁のシフトレジスタ501と、7桁のシフトレジスタ502と、4桁のシフトレジスタ503と、3つの排他的論理和演算器601〜603(以下、XOR601〜XOR603と呼ぶ)と、を有して成り、8ビット長のシリアルデータSDATA(S0〜S7)を順次に読み込んでシフトレジスタ501〜503の格納値を8回ループさせた後、その時点でシフトレジスタ501〜503の各桁に格納されているレジスタ値REG0〜REG15を16ビットのCRC符号(CRC[15:0])として出力する構成とされている。
上記したCRC符号の演算過程について、図3を参照しながら考察する。まず、表中の「S0列」には、S0入力時のレジスタ値REG0〜REG15が各々示されている。レジスタ値REG0には、XOR601の出力値(S0入力直前のレジスタ値REG15とS0との排他的論理和)が格納されており、表中ではこれを「15^S0」と表記している。レジスタ値REG1〜REG4には、S0入力直前のレジスタ値REG0〜REG3がシフト格納されており、表中ではこれらを「0」〜「3」と表記している。レジスタ値REG5には、XOR602の出力値(S0入力直前のレジスタ値REG4とXOR601の出力値(=「15^S0」)との排他的論理和)が格納されており、表中ではこれを「4^15^S0」と表記している。レジスタ値REG6〜REG11には、S0入力直前のレジスタ値REG5〜REG10がシフト格納されており、表中ではこれらを「5」〜「10」と表記している。レジスタ値REG12には、XOR603の出力値(S0入力直前のレジスタ値REG11とXOR601の出力値(=「15^S0」)との排他的論理和)が格納されており、表中ではこれを「11^15^S0」と表記している。レジスタ値REG13〜REG15には、S0入力直前のレジスタ値REG12〜REG14がシフト格納されており、表中ではこれらを「12」〜「14」と表記している。
次に、表中の「S1列」には、S1入力時のレジスタ値REG0〜REG15が各々示されている。レジスタ値REG0には、XOR601の出力値(S1入力直前のレジスタ値REG15(=「14」)とS1との排他的論理和)が格納されており、表中ではこれを「14^S1」と表記している。レジスタ値REG1〜REG4には、それぞれS1入力直前のレジスタ値REG0(=「15^S0」)、レジスタ値REG1(=「0」)、レジスタ値REG2(=「1」)、並びに、レジスタ値REG3(=「2」)がシフト格納されている。レジスタ値REG5には、XOR602の出力値(S1入力直前のレジスタ値REG4(=「3」)とXOR601の出力値(=「14^S1」)との排他的論理和)が格納されており、表中ではこれを「3^14^S1」と表記している。レジスタ値REG6〜REG11には、それぞれS1入力直前のレジスタ値REG5(=「4^15^S0」)、レジスタ値REG6(=「5」)、レジスタ値REG7(=「6」)、レジスタ値REG8(=「7」)、レジスタ値REG9(=「8」)、並びに、レジスタ値REG10(=「9」)がシフト格納されている。レジスタ値REG12には、XOR603の出力値(S1入力直前のレジスタ値REG11(=「10」)とXOR601の出力値(=「14^S1」)との排他的論理和)が格納されており、表中ではこれを「10^14^S1」と表記している。レジスタ値REG13〜REG15には、それぞれS1入力直前のレジスタ値REG12(=11^15^S0)、レジスタ値REG13(=「12」)、並びに、レジスタ値REG14(=「13」)がシフト格納されている。
表中の「S2列」〜「S7列」についても、上記と同様にして、S2〜S7入力時のレジスタ値REG0〜REG15が各々示されている。ここで、S7入力時のレジスタ値REG0〜REG15は、16ビットのCRC符号(CRC[15:0])に他ならず、その各桁値は、表中の太枠で囲まれた演算式によって得られていることが分かる。
すなわち、順次入力される8ビット長のシリアルデータSDATAを時系列的に処理せずとも、表中の太枠で囲まれた演算式に基づいて、8ビットのパラレルデータPDATAに並列的な論理演算を施してやれば、16ビットのCRC符号(CRC[15:0])を得ることが可能である。
上記の考察に鑑み、本発明に係るCRC演算回路は、伝送データからシリアル処理でCRC符号を算出する演算過程を解析して導き出される所定の演算式(上記の例に即して具体的に述べると、シフトレジスタ501〜503とXOR601〜603を用いてシリアルデータSDATAからシリアル処理でCRC符号を算出する演算過程を解析して導き出されるものであって、シリアルデータSDATAが8ビット分入力された時点でシフトレジスタ501〜503の各桁に格納されているレジスタ値REG0〜REG15を表す演算式)に基づいて、伝送データからパラレル処理でCRC符号を算出する論理回路を有して成る構成とされている。
図4は、本発明に係るCRC演算回路(パラレル形式)の一実施形態を示す回路ブロック図である。
図4に示す通り、本実施形態のCRC演算回路において、上記の論理回路は、パラレルデータPDATAが8ビット分パラレル入力される第0〜第7入力端と、CRC符号が16ビット分パラレル出力される第0〜第15出力端を有するほか、CRC符号を算出するための演算要素として、第0〜第15Dフリップフロップ0〜15(以下、FF0〜FF15と呼ぶ)と、第1〜第30排他的論理和演算器21〜50(以下、XOR21〜XOR50と呼ぶ)と、を有して成る。
FF0〜FF15のデータ出力端は、各々、第0〜第15出力端に接続されている。FF0〜FF15のセット入力端(ローエッジトリガ形式)は、いずれもリセット信号RESETが入力されるリセット入力端に接続されている。従って、CRC符号の初期値は、16’hFFFF[1111 1111 1111 1111]となる。FF0〜FF15のクロック入力端は、いずれも第2クロック信号FCLKが入力されるクロック入力端に接続されている。
XOR21の一入力端は、第7入力端に接続されている。XOR21の他入力端はXOR28の出力端に接続されている。XOR22の一入力端は、XOR21の出力端に接続されている。XOR22の他入力端は、第8出力端に接続されている。XOR22の出力端は、FF0のデータ入力端に接続されている。XOR23の一入力端は、第0出力端に接続されている。XOR23の他入力端は、XOR49の出力端に接続されている。XOR23の出力端は、FF8のデータ入力端に接続されている。XOR24の一入力端は、第8出力端に接続されている。XOR24の他入力端は、第4出力端に接続されている。XOR25の一入力端は、第0入力端に接続されている。XOR25の他入力端は、第15出力端に接続されている。XOR26の一入力端は、XOR24の出力端に接続されている。XOR26の他入力端は、XOR25の出力端に接続されている。XOR27の一入力端は、XOR21の出力端に接続されている。XOR27の他入力端は、XOR26の出力端に接続されている。XOR27の出力端は、FF12のデータ入力端に接続されている。XOR28の一入力端は、第3入力端に接続されている。XOR28の他入力端は、第12出力端に接続されている。XOR28の出力端は、FF4のデータ入力端に接続されている。XOR29の一入力端は、第1出力端に接続されている。XOR29の他入力端は、XOR28の出力端に接続されている。XOR29の出力端は、FF9のデータ入力端に接続されている。XOR30の一入力端は、第7入力端に接続されている。XOR30の他入力端は、第8出力端に接続されている。
XOR31の一入力端は、XOR28の出力端に接続されている。XOR31の他入力端は、XOR36の出力端に接続されている。XOR32の一入力端は、XOR30の出力端に接続されている。XOR32の他入力端はXOR31の出力端に接続されている。XOR32の出力端は、FF5のデータ入力端に接続されている。XOR33の一入力端は、第6入力端に接続されている。XOR33の他入力端は、第9出力端に接続されている。XOR34の一入力端は、XOR33の出力端に接続されている。XOR34の他入力端は、XOR36の出力端に接続されている。XOR34の出力端は、FF1のデータ入力端に接続されている。XOR35の一入力端は、第5出力端に接続されている。XOR35の他入力端は、XOR34の出力端に接続されている。XOR35の出力端は、FF13のデータ入力端に接続されている。XOR36の一入力端は、第2入力端に接続されている。XOR36の他入力端は、第13出力端に接続されている。XOR37の一入力端は、第2出力端に接続されている。XOR37の他入力端は、XOR36の出力端に接続されている。XOR37の出力端は、FF10のデータ入力端に接続されている。XOR38の一入力端は、XOR36の出力端に接続されている。XOR38の他入力端はXOR43の出力端に接続されている。XOR39の一入力端は、XOR33の出力端に接続されている。XOR39の他入力端は、XOR38の出力端に接続されている。XOR39の出力端は、FF6のデータ入力端に接続されている。XOR40の一入力端は、第5入力端に接続されている。XOR40の他入力端は第10出力端に接続されている。
XOR41の一入力端は、XOR40の出力端に接続されている。XOR41の他入力端は、XOR43の出力端に接続されている。XOR41の出力端は、FF2のデータ入力端に接続されている。XOR42の一入力端は、第6出力端に接続されている。XOR42の他入力端は、XOR41の出力端に接続されている。XOR42の出力端は、FF14のデータ入力端に接続されている。XOR43の一入力端は、第1入力端に接続されている。XOR43の他入力端は、第14出力端に接続されている。XOR44の一入力端は、第3出力端に接続されている。XOR44の他入力端は、XOR43の出力端に接続されている。XOR44の出力端は、FF11のデータ入力端に接続されている。XOR45の一入力端は、XOR25の出力端に接続されている。XOR45の他入力端は、XOR40の出力端に接続されている。XOR46の一入力端は、第0入力端に接続されている。XOR46の他入力端は、第4入力端に接続されている。XOR47の一入力端はXOR43の出力端に接続されている。XOR47の他入力端は、XOR45の出力端に接続されている。XOR47の出力端は、FF7のデータ入力端に接続されている。XOR48の一入力端は、第11出力端に接続されている。XOR48の他入力端は、XOR46の出力端に接続されている。XOR49の一入力端は、第15出力端に接続されている。XOR49の他入力端は、XOR48の出力端に接続されている。XOR49の出力端は、FF3のデータ入力端に接続されている。XOR50の一入力端は、第7出力端に接続されている。XOR50の他入力端は、XOR49の出力端に接続されている。XOR50の出力端は、FF15のデータ入力端に接続されている。
次に、上記構成から成るCRC演算回路の動作について具体的に説明する。FF0は、第2クロック信号FCLKのパルスエッジをトリガとし、データ入力端に印加されているXOR22の出力信号をCRC符号の0ビット目として出力する。
ここで、XOR22の出力信号は、CRC符号の8ビット目と、XOR21の出力信号との排他的論理和であり、「8^XOR21」と表記することができる。また、XOR21の出力信号は、XOR28の出力信号と、パラレルデータPDATAの7ビット目(シリアルデータSDATAの7ビット目S7に相当)との排他的論理和であり、「XOR28^S7」と表記することができる。また、XOR28の出力信号は、CRC符号の12ビット目と、パラレルデータPDATAの3ビット目(シリアルデータSDATAの3ビット目S3に相当)との排他的論理和であり、「12^S3」と表記することができる。
これらを総合すると、FF0から出力されるCRC符号の0ビット目は、「8^12^S3^S7」と表記される演算式に基づいて算出される値となるが、この演算式は、先出の図3で示した「S7入力時のレジスタ値REG0」を表すものと一致している。
また、FF1〜FF15から出力されるCRC符号の1ビット目〜15ビット目についても、上記と同様に、図3で示した「S7入力時のレジスタ値REG1〜REG15」を表す演算式に基づいて算出される値となる。
このように、本発明に係るCRC演算回路は、シリアルデータSDATAを順次入力することでCRC符号を算出していた従来構成と異なり、8ビットのパラレルデータPDATAを並列的に入力することでCRC符号を算出する構成とされている。このような構成とすることにより、高速の第1クロック信号SCLKではなく、これを1/8分周して得られる第2クロック信号FCLKに基づいて、CRC符号の演算や演算範囲の確定、CRC符号の判定タイミング処理などを実施することができるので、シリアルデータSDATAの伝送速度が高められても、CRC演算回路の回路設計を容易に行うことができる。
なお、上記したCRC演算のパラレル処理については、CPU400側でソフトウェア的に実施することも可能ではあるが、このような構成を採用した場合、データの伝送中、常にCPU400のタスクをCRC演算処理に割かねばならず、CPU400の負荷が過大となって、本来の演算処理に支障を来すおそれがある。また、CRC演算処理のためだけに、別途のCPUやDSP[Digital Signal Processor]を新設することは、極めて非効率的である。これに対して、本発明に係るCRC演算回路であれば、FF0〜FF15とXOR21〜XOR50のみを用いて、ハードウェア的に上記のCRC演算処理を実現することができるので、CPUタスクの増大や回路規模の拡大を招かずに済む。
なお、上記実施形態では、画像形成装置に搭載されるシリアルインタフェイス装置に本発明を適用した場合を例に挙げて説明を行ったが、本発明の適用対象はこれに限定されるものではなく、その他の用途に用いられるシリアルインタフェイス装置にも広く適用することが可能である。
また、上記実施形態では、受信側のシリアルインタフェイス装置に搭載されるCRC演算回路を例示して説明を行ったが、本発明の適用対象はこれに限定されるものではなく、送信側のシリアルインタフェイス装置に搭載されるCRC演算回路にも適用が可能であることは言うまでもない。
また、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。
例えば、上記実施形態では、CRC符号の算出方式としてCRC−16方式を採用し、8ビットのパラレルデータPDATAからCRC符号を算出する構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、CRC符号の算出方式としては、様々な伝送エラーに対して正常時と異なる値を算出し得る限り、CRC−6、CRC−8、CRC−12、CRC32、CRC−CCITTなど、いかなる算出方式を用いても構わない。
すなわち、本発明は、上記の実施形態に限定されることなく、採用されたCRC符号の算出方式に関して、図2や図3で例示した内容と同様の考察を行い、伝送データからシリアル処理でCRC符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、伝送データからパラレル処理でCRC符号を算出する論理回路を有して成るCRC演算回路全般を広く技術的範囲に含むものであると言える。
本発明は、CRC演算回路の回路設計を容易とする上で有用な技術であり、例えば、ディジタルスチルカメラやディジタルビデオカメラ、或いは、スキャナ装置などの画像形成装置に搭載されるシリアルインタフェイス装置に好適な技術である。
0〜15 Dフリップフロップ(FF)
21〜50 排他的論理和演算器(XOR)
100 撮像センサモジュール
200 送信側高速シリアルインタフェイス装置(送信側シリアルI/F)
300 受信側高速シリアルインタフェイス装置(受信側シリアルI/F)
301 LVDSレシーバブロック
302 シリアル/パラレル変換ブロック(S/Pブロック)
303 CRCブロック
304 FIFOライトブロック
305 FIFOブロック
306 出力制御ブロック
307 分周回路
400 中央演算処理装置(CPU)
501〜503 シフトレジスタ
601〜603 排他的論理和演算器(XOR)
21〜50 排他的論理和演算器(XOR)
100 撮像センサモジュール
200 送信側高速シリアルインタフェイス装置(送信側シリアルI/F)
300 受信側高速シリアルインタフェイス装置(受信側シリアルI/F)
301 LVDSレシーバブロック
302 シリアル/パラレル変換ブロック(S/Pブロック)
303 CRCブロック
304 FIFOライトブロック
305 FIFOブロック
306 出力制御ブロック
307 分周回路
400 中央演算処理装置(CPU)
501〜503 シフトレジスタ
601〜603 排他的論理和演算器(XOR)
Claims (6)
- 伝送データからシリアル処理でCRC符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、前記伝送データからパラレル処理で前記CRC符号を算出する論理回路を有して成ることを特徴とするCRC演算回路。
- 前記演算式は、シフトレジスタと排他的論理和演算器を用いて前記伝送データからシリアル処理で前記CRC符号を算出する演算過程を解析して導き出されるものであって、前記伝送データが所定ビット分入力された時点で前記シフトレジスタの各桁に格納されているレジスタ値を表すものであることを特徴とする請求項1に記載のCRC演算回路。
- 前記演算式は、17ビットの生成多項式(x16+x12+x5+1)を用いて16ビットの前記CRC符号を算出する演算過程を解析して導き出されるものであって、前記伝送データが8ビット分入力された時点で前記シフトレジスタの各桁に格納されているレジスタ値を表すものであることを特徴とする請求項2に記載のCRC演算回路。
- 前記論理回路は、
前記伝送データが8ビット分パラレル入力される第0入力端〜第7入力端と;
前記CRC符号が16ビット分パラレル出力される第0出力端〜第15出力端と;
データ出力端が第0出力端〜第15出力端に各々接続される第0フリップフロップ〜第15フリップフロップと;
一方の入力端が第7入力端に接続されて、他方の入力端が第8XORの出力端に接続される第1XORと;
一方の入力端が第1XORの出力端に接続されて、他方の入力端が第8出力端に接続されて、出力端が第0フリップフロップのデータ入力端に接続される第2XORと;
一方の入力端が第0出力端に接続されて、他方の入力端が第29XORの出力端に接続されて、出力端が第8フリップフロップのデータ入力端に接続される第3XORと;
一方の入力端が第8出力端に接続されて、他方の入力端が第4出力端に接続される第4XORと;
一方の入力端が第0入力端に接続されて、他方の入力端が第15出力端に接続される第5XORと;
一方の入力端が第4XORの出力端に接続されて、他方の入力端が第5XORの出力端に接続される第6XORと;
一方の入力端が第1XORの出力端に接続されて、他方の入力端が第6XORの出力端に接続されて、出力端が第12フリップフロップのデータ入力端に接続される第7XORと;
一方の入力端が第3入力端に接続されて、他方の入力端が第12出力端に接続されて、出力端が第4フリップフロップのデータ入力端に接続される第8XORと;
一方の入力端が第1出力端に接続されて、他方の入力端が第8XORの出力端に接続され、出力端が第9フリップフロップのデータ入力端に接続される第9XORと;
一方の入力端が第7入力端に接続されて、他方の入力端が第8出力端に接続される第10XORと;
一方の入力端が第8XORの出力端に接続されて、他方の入力端が第16XORの出力端に接続される第11XORと;
一方の入力端が第10XORの出力端に接続されて、他方の入力端が第11XORの出力端に接続されて、出力端が第5フリップフロップのデータ入力端に接続される第12XORと;
一方の入力端が第6入力端に接続されて、他方の入力端が第9出力端に接続される第13XORと;
一方の入力端が第13XORの出力端に接続されて、他方の入力端が第16XORの出力端に接続されて、出力端が第1フリップフロップのデータ入力端に接続される第14XORと;
一方の入力端が第5出力端に接続されて、他方の入力端が第14XORの出力端に接続されて、出力端が第13フリップフロップのデータ入力端に接続される第15XORと;
一方の入力端が第2入力端に接続されて、他方の入力端が第13出力端に接続される第16XORと;
一方の入力端が第2出力端に接続されて、他方の入力端が第16XORの出力端に接続されて、出力端が第10フリップフロップのデータ入力端に接続される第17XORと;
一方の入力端が第16XORの出力端に接続されて、他方の入力端が第23XORの出力端に接続される第18XORと;
一方の入力端が第13XORの出力端に接続されて、他方の入力端が第18XORの出力端に接続されて、出力端が第6フリップフロップのデータ入力端に接続される第19XORと;
一方の入力端が第5入力端に接続されて、他方の入力端が第10出力端に接続される第20XORと;
一方の入力端が第20XORの出力端に接続されて、他方の入力端が第23XORの出力端に接続されて、出力端が第2フリップフロップのデータ入力端に接続される第21XORと;
一方の入力端が第6出力端に接続されて、他方の入力端が第41XORの出力端に接続されて、出力端が第14フリップフロップのデータ入力端に接続される第22XORと;
一方の入力端が第1入力端に接続されて、他方の入力端が第14出力端に接続される第23XORと;
一方の入力端が第3出力端に接続されて、他方の入力端が第23XORの出力端に接続されて、出力端が第11フリップフロップのデータ入力端に接続される第24XORと;
一方の入力端が第5XORの出力端に接続されて、他方の入力端が第20XORの出力端に接続される第25XORと;
一方の入力端が第0入力端に接続されて、他方の入力端が第4入力端に接続される第26XORと;
一方の入力端が第23XORの出力端に接続されて、他方の入力端が第25XORの出力端に接続されて、出力端が第7フリップフロップのデータ入力端に接続される第27XORと;
一方の入力端が第11出力端に接続されて、他方の入力端が第26XORの出力端に接続される第28XORと;
一方の入力端が第15出力端に接続されて、他方の入力端が第28XORの出力端に接続されて、出力端が第3フリップフロップのデータ入力端に接続される第29XORと;
一方の入力端が第7出力端に接続されて、他方の入力端が第29XORの出力端に接続されて、出力端が第15フリップフロップのデータ入力端に接続される第30XORと;
を有して成ることを特徴とする請求項3に記載のCRC演算回路。 - 請求項1〜請求項4のいずれかに記載のCRC演算回路を有して成ることを特徴とするシリアルインタフェイス装置。
- 撮像信号を生成する撮像センサと、前記撮像センサからパラレル入力される撮像信号を低電圧差動型シリアル信号に変換する送信側シリアルインタフェイス装置と、前記送信側シリアルインタフェイス装置からシリアル入力される前記低電圧差動型シリアル信号をパラレル形式の前記撮像信号に再変換して出力する受信側シリアルインタフェイス装置と、前記受信側シリアルインタフェイス装置から前記撮像信号がパラレル入力される中央演算処理装置と、を有して成る画像形成装置であって、前記送信側シリアルインタフェイス装置、及び、前記受信側シリアルインタフェイス装置の少なくとも一方として、請求項5に記載のシリアルインタフェイス装置を有して成ることを特徴とする画像形成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008176801A JP2010016751A (ja) | 2008-07-07 | 2008-07-07 | Crc演算回路、シリアルインタフェイス装置、画像形成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008176801A JP2010016751A (ja) | 2008-07-07 | 2008-07-07 | Crc演算回路、シリアルインタフェイス装置、画像形成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010016751A true JP2010016751A (ja) | 2010-01-21 |
Family
ID=41702403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008176801A Pending JP2010016751A (ja) | 2008-07-07 | 2008-07-07 | Crc演算回路、シリアルインタフェイス装置、画像形成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010016751A (ja) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10209880A (ja) * | 1997-01-22 | 1998-08-07 | Nec Corp | Crc演算回路 |
JP2000004169A (ja) * | 1998-06-15 | 2000-01-07 | Ricoh Co Ltd | Crc演算方法及びcrc演算回路 |
JP2000324285A (ja) * | 1999-05-13 | 2000-11-24 | Ricoh Co Ltd | 画像形成装置 |
JP2001211083A (ja) * | 2000-01-27 | 2001-08-03 | Oki Electric Ind Co Ltd | Crc出力演算装置 |
JP2002261624A (ja) * | 2001-03-05 | 2002-09-13 | Nec Corp | 巡回冗長検査演算方法及び巡回冗長検査演算回路 |
JP2005311535A (ja) * | 2004-04-19 | 2005-11-04 | Canon Inc | 撮像装置及びその位相補償方法、並びに制御プログラム |
JP2006227953A (ja) * | 2005-02-18 | 2006-08-31 | Fujitsu Ltd | ファイル制御システムおよびファイル制御装置 |
JP2007316713A (ja) * | 2006-05-23 | 2007-12-06 | Rohm Co Ltd | シリアルインタフェイス装置、画像形成装置 |
-
2008
- 2008-07-07 JP JP2008176801A patent/JP2010016751A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10209880A (ja) * | 1997-01-22 | 1998-08-07 | Nec Corp | Crc演算回路 |
JP2000004169A (ja) * | 1998-06-15 | 2000-01-07 | Ricoh Co Ltd | Crc演算方法及びcrc演算回路 |
JP2000324285A (ja) * | 1999-05-13 | 2000-11-24 | Ricoh Co Ltd | 画像形成装置 |
JP2001211083A (ja) * | 2000-01-27 | 2001-08-03 | Oki Electric Ind Co Ltd | Crc出力演算装置 |
JP2002261624A (ja) * | 2001-03-05 | 2002-09-13 | Nec Corp | 巡回冗長検査演算方法及び巡回冗長検査演算回路 |
JP2005311535A (ja) * | 2004-04-19 | 2005-11-04 | Canon Inc | 撮像装置及びその位相補償方法、並びに制御プログラム |
JP2006227953A (ja) * | 2005-02-18 | 2006-08-31 | Fujitsu Ltd | ファイル制御システムおよびファイル制御装置 |
JP2007316713A (ja) * | 2006-05-23 | 2007-12-06 | Rohm Co Ltd | シリアルインタフェイス装置、画像形成装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2453647A2 (en) | Image outputting apparatus, image outputting method, image processing apparatus, image processing method, program, and image pickup apparatus | |
JP3646644B2 (ja) | データ転送制御装置及び電子機器 | |
JP3249405B2 (ja) | 誤り訂正回路および誤り訂正方法 | |
EP2456113A2 (en) | Error correction methods and apparatus | |
US7434150B1 (en) | Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations | |
US20230370095A1 (en) | Encoder and decoder of forward error correction (fec) codec | |
US6370667B1 (en) | CRC operating calculating method and CRC operational calculation circuit | |
JP4848324B2 (ja) | シリアルパラレル変換回路及び通信装置 | |
JP2010016751A (ja) | Crc演算回路、シリアルインタフェイス装置、画像形成装置 | |
US7194500B2 (en) | Scalable gray code counter | |
JP5061498B2 (ja) | ジッタ補正方法及び回路 | |
KR100747487B1 (ko) | 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘연산회로 | |
US8122334B2 (en) | Parity error detecting circuit and method | |
CN110519602B (zh) | 用于数据流传输的方法及装置 | |
CN113821370A (zh) | 一种用于数据传输错误校验的高速crc产生方法和装置 | |
JP2006074075A (ja) | 差動シリアル・ディジタル出力a/d変換手段および撮像装置 | |
TWI826133B (zh) | 資料傳輸裝置與跨時脈領域資料傳輸之方法 | |
US7050507B2 (en) | Adaptive throughput pulse width modulation communication scheme | |
JPH0744410A (ja) | 演算装置 | |
JP3334466B2 (ja) | パラレル/シリアル変換回路 | |
JP2021141489A (ja) | 送信装置、受信装置、送信方法、および、受信方法 | |
CN118069557A (zh) | 数据传输装置与跨时钟域数据传输的方法 | |
JP2017139608A (ja) | シリアル通信システム、シリアル通信システムの制御方法、シリアル通信システムの制御プログラム | |
TW202422334A (zh) | 資料傳輸裝置與跨時脈領域資料傳輸之方法 | |
JP2566929B2 (ja) | 符号化・復号回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20110630 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A977 | Report on retrieval |
Effective date: 20111206 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120515 |
|
A02 | Decision of refusal |
Effective date: 20121002 Free format text: JAPANESE INTERMEDIATE CODE: A02 |