(57)【要約】【課題】本発明は、容易な回路設計で高速データ伝送に対応することが可能なＣＲＣ演算回路を提供することを目的とする。【解決手段】本発明に係るＣＲＣ演算回路は、伝送データからシリアル処理でＣＲＣ符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、前記伝送データからパラレル処理で前記ＣＲＣ符号を算出する論理回路を有して成る構成とされている。【選択図】図４
2010016751.tif 000002
【特許請求の範囲】
【請求項１】
伝送データからシリアル処理でＣＲＣ符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、前記伝送データからパラレル処理で前記ＣＲＣ符号を算出する論理回路を有して成ることを特徴とするＣＲＣ演算回路。
【請求項２】
前記演算式は、シフトレジスタと排他的論理和演算器を用いて前記伝送データからシリアル処理で前記ＣＲＣ符号を算出する演算過程を解析して導き出されるものであって、前記伝送データが所定ビット分入力された時点で前記シフトレジスタの各桁に格納されているレジスタ値を表すものであることを特徴とする請求項１に記載のＣＲＣ演算回路。
【請求項３】
前記演算式は、１７ビットの生成多項式（ｘ16＋ｘ12＋ｘ5＋１）を用いて１６ビットの前記ＣＲＣ符号を算出する演算過程を解析して導き出されるものであって、前記伝送データが８ビット分入力された時点で前記シフトレジスタの各桁に格納されているレジスタ値を表すものであることを特徴とする請求項２に記載のＣＲＣ演算回路。
【請求項４】
前記論理回路は、
前記伝送データが８ビット分パラレル入力される第０入力端〜第７入力端と；
前記ＣＲＣ符号が１６ビット分パラレル出力される第０出力端〜第１５出力端と；
データ出力端が第０出力端〜第１５出力端に各々接続される第０フリップフロップ〜第１５フリップフロップと；
一方の入力端が第７入力端に接続されて、他方の入力端が第８ＸＯＲの出力端に接続される第１ＸＯＲと；
一方の入力端が第１ＸＯＲの出力端に接続されて、他方の入力端が第８出力端に接続されて、出力端が第０フリップフロップのデータ入力端に接続される第２ＸＯＲと；
一方の入力端が第０出力端に接続されて、他方の入力端が第２９ＸＯＲの出力端に接続されて、出力端が第８フリップフロップのデータ入力端に接続される第３ＸＯＲと；
一方の入力端が第８出力端に接続されて、他方の入力端が第４出力端に接続される第４ＸＯＲと；
一方の入力端が第０入力端に接続されて、他方の入力端が第１５出力端に接続される第５ＸＯＲと；
一方の入力端が第４ＸＯＲの出力端に接続されて、他方の入力端が第５ＸＯＲの出力端に接続される第６ＸＯＲと；
一方の入力端が第１ＸＯＲの出力端に接続されて、他方の入力端が第６ＸＯＲの出力端に接続されて、出力端が第１２フリップフロップのデータ入力端に接続される第７ＸＯＲと；
一方の入力端が第３入力端に接続されて、他方の入力端が第１２出力端に接続されて、出力端が第４フリップフロップのデータ入力端に接続される第８ＸＯＲと；
一方の入力端が第１出力端に接続されて、他方の入力端が第８ＸＯＲの出力端に接続され、出力端が第９フリップフロップのデータ入力端に接続される第９ＸＯＲと；
一方の入力端が第７入力端に接続されて、他方の入力端が第８出力端に接続される第１０ＸＯＲと；
一方の入力端が第８ＸＯＲの出力端に接続されて、他方の入力端が第１６ＸＯＲの出力端に接続される第１１ＸＯＲと；
一方の入力端が第１０ＸＯＲの出力端に接続されて、他方の入力端が第１１ＸＯＲの出力端に接続されて、出力端が第５フリップフロップのデータ入力端に接続される第１２ＸＯＲと；
一方の入力端が第６入力端に接続されて、他方の入力端が第９出力端に接続される第１３ＸＯＲと；
一方の入力端が第１３ＸＯＲの出力端に接続されて、他方の入力端が第１６ＸＯＲの出力端に接続されて、出力端が第１フリップフロップのデータ入力端に接続される第１４ＸＯＲと；
一方の入力端が第５出力端に接続されて、他方の入力端が第１４ＸＯＲの出力端に接続されて、出力端が第１３フリップフロップのデータ入力端に接続される第１５ＸＯＲと；
一方の入力端が第２入力端に接続されて、他方の入力端が第１３出力端に接続される第１６ＸＯＲと；
一方の入力端が第２出力端に接続されて、他方の入力端が第１６ＸＯＲの出力端に接続されて、出力端が第１０フリップフロップのデータ入力端に接続される第１７ＸＯＲと；
一方の入力端が第１６ＸＯＲの出力端に接続されて、他方の入力端が第２３ＸＯＲの出力端に接続される第１８ＸＯＲと；
一方の入力端が第１３ＸＯＲの出力端に接続されて、他方の入力端が第１８ＸＯＲの出力端に接続されて、出力端が第６フリップフロップのデータ入力端に接続される第１９ＸＯＲと；
一方の入力端が第５入力端に接続されて、他方の入力端が第１０出力端に接続される第２０ＸＯＲと；
一方の入力端が第２０ＸＯＲの出力端に接続されて、他方の入力端が第２３ＸＯＲの出力端に接続されて、出力端が第２フリップフロップのデータ入力端に接続される第２１ＸＯＲと；
一方の入力端が第６出力端に接続されて、他方の入力端が第４１ＸＯＲの出力端に接続されて、出力端が第１４フリップフロップのデータ入力端に接続される第２２ＸＯＲと；
一方の入力端が第１入力端に接続されて、他方の入力端が第１４出力端に接続される第２３ＸＯＲと；
一方の入力端が第３出力端に接続されて、他方の入力端が第２３ＸＯＲの出力端に接続されて、出力端が第１１フリップフロップのデータ入力端に接続される第２４ＸＯＲと；
一方の入力端が第５ＸＯＲの出力端に接続されて、他方の入力端が第２０ＸＯＲの出力端に接続される第２５ＸＯＲと；
一方の入力端が第０入力端に接続されて、他方の入力端が第４入力端に接続される第２６ＸＯＲと；
一方の入力端が第２３ＸＯＲの出力端に接続されて、他方の入力端が第２５ＸＯＲの出力端に接続されて、出力端が第７フリップフロップのデータ入力端に接続される第２７ＸＯＲと；
一方の入力端が第１１出力端に接続されて、他方の入力端が第２６ＸＯＲの出力端に接続される第２８ＸＯＲと；
一方の入力端が第１５出力端に接続されて、他方の入力端が第２８ＸＯＲの出力端に接続されて、出力端が第３フリップフロップのデータ入力端に接続される第２９ＸＯＲと；
一方の入力端が第７出力端に接続されて、他方の入力端が第２９ＸＯＲの出力端に接続されて、出力端が第１５フリップフロップのデータ入力端に接続される第３０ＸＯＲと；
を有して成ることを特徴とする請求項３に記載のＣＲＣ演算回路。
【請求項５】
請求項１〜請求項４のいずれかに記載のＣＲＣ演算回路を有して成ることを特徴とするシリアルインタフェイス装置。
【請求項６】
撮像信号を生成する撮像センサと、前記撮像センサからパラレル入力される撮像信号を低電圧差動型シリアル信号に変換する送信側シリアルインタフェイス装置と、前記送信側シリアルインタフェイス装置からシリアル入力される前記低電圧差動型シリアル信号をパラレル形式の前記撮像信号に再変換して出力する受信側シリアルインタフェイス装置と、前記受信側シリアルインタフェイス装置から前記撮像信号がパラレル入力される中央演算処理装置と、を有して成る画像形成装置であって、前記送信側シリアルインタフェイス装置、及び、前記受信側シリアルインタフェイス装置の少なくとも一方として、請求項５に記載のシリアルインタフェイス装置を有して成ることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＲＣ演算回路、並びに、これを用いたシリアルインタフェイス装置及び画像形成装置に関するものである。
【背景技術】
【０００２】
従来より、シリアルデータの同期式伝送を行うシリアルインタフェイス装置では、シリアルデータの伝送エラーを確認するために巡回冗長検査が行われる。巡回冗長検査において、シリアルデータの送信側は、送信すべきシリアルデータを高次多項式（メッセージ多項式）の係数と見立てた上で、これを予め定められた生成多項式で除算し、その剰余をＣＲＣ［Cyclic Redundancy Check］符号としてシリアルデータの後に付加して送信する。従って、実際に送信されるシリアルデータは、上記の生成多項式で割り切れる値となっている。一方、シリアルデータの受信側は、受信したシリアルデータを送信側と同じ生成多項式で除算して剰余を求める。ここで、剰余がゼロの場合には伝送エラーが生じていないと判断され、剰余がゼロ以外の場合には伝送エラーが生じていると判断される。
【０００３】
なお、上記に関連する従来技術としては、例えば、特許文献１を挙げることができる。
【特許文献１】特開２００２−２６１６２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
確かに、巡回冗長検査を行う構成であれば、単純なチェックサムに比べて伝送エラーを確実に検出することが可能である。
【０００５】
しかしながら、従来のシリアルインタフェイス装置は、図５に示す通り、シリアル／パラレル変換ブロックの前段に、巡回冗長検査を行うＣＲＣブロック（ＣＲＣ演算回路を含む）を有して成り、順次入力されるシリアルデータＳＤＡＴＡを時系列的に処理することで、ＣＲＣ符号の演算や演算範囲の確定、ＣＲＣ符号の判定タイミング処理などを実施していた。そのため、上記従来のシリアルインタフェイス装置では、シリアルデータＳＤＡＴＡの伝送速度が高まるにつれて、ＣＲＣ演算回路の回路設計（ＣＲＣ演算回路を形成するシフトレジスタや排他的論理和演算器の応答性改善など）が非常に困難となっていた。なお、図５では、受信側となるシリアルインタフェイス装置を例に挙げたが、送信側となるシリアルインタフェイス装置においても、上記と同様の問題点があった。
【０００６】
本発明は、上記の問題点に鑑み、容易な回路設計で高速データ伝送に対応することが可能なＣＲＣ演算回路、並びに、これを用いたシリアルインタフェイス装置及び画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明に係るＣＲＣ演算回路は、伝送データからシリアル処理でＣＲＣ符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、前記伝送データからパラレル処理で前記ＣＲＣ符号を算出する論理回路を有して成る構成（第１の構成）とされている。
【０００８】
なお、上記第１の構成から成るＣＲＣ演算回路において、前記演算式は、シフトレジスタと排他的論理和演算器を用いて前記伝送データからシリアル処理で前記ＣＲＣ符号を算出する演算過程を解析して導き出されるものであって、前記伝送データが所定ビット分入力された時点で前記シフトレジスタの各桁に格納されているレジスタ値を表すものである構成（第２の構成）にするとよい。
【０００９】
また、上記第２の構成から成るＣＲＣ演算回路において、前記演算式は、１７ビットの生成多項式（ｘ16＋ｘ12＋ｘ5＋１）を用いて１６ビットの前記ＣＲＣ符号を算出する演算過程を解析して導き出されるものであって、前記伝送データが８ビット分入力された時点で前記シフトレジスタの各桁に格納されているレジスタ値を表すものである構成（第３の構成）にするとよい。
【００１０】
また、上記第３の構成から成るＣＲＣ演算回路において、前記論理回路は、前記伝送データが８ビット分パラレル入力される第０入力端〜第７入力端と；前記ＣＲＣ符号が１６ビット分パラレル出力される第０出力端〜第１５出力端と；データ出力端が第０出力端〜第１５出力端に各々接続される第１フリップフロップ〜第１５フリップフロップと；一方の入力端が第７入力端に接続されて、他方の入力端が第８ＸＯＲの出力端に接続される第１ＸＯＲと；一方の入力端が第１ＸＯＲの出力端に接続されて、他方の入力端が第８出力端に接続されて、出力端が第０フリップフロップのデータ入力端に接続される第２ＸＯＲと；一方の入力端が第０出力端に接続されて、他方の入力端が第２９ＸＯＲの出力端に接続されて、出力端が第８フリップフロップのデータ入力端に接続される第３ＸＯＲと；一方の入力端が第８出力端に接続されて、他方の入力端が第４出力端に接続される第４ＸＯＲと；一方の入力端が第０入力端に接続されて、他方の入力端が第１５出力端に接続される第５ＸＯＲと；一方の入力端が第４ＸＯＲの出力端に接続されて、他方の入力端が第５ＸＯＲの出力端に接続される第６ＸＯＲと；一方の入力端が第１ＸＯＲの出力端に接続されて、他方の入力端が第６ＸＯＲの出力端に接続されて、出力端が第１２フリップフロップのデータ入力端に接続される第７ＸＯＲと；一方の入力端が第３入力端に接続されて、他方の入力端が第１２出力端に接続されて、出力端が第４フリップフロップのデータ入力端に接続される第８ＸＯＲと；一方の入力端が第１出力端に接続されて、他方の入力端が第８ＸＯＲの出力端に接続され、出力端が第９フリップフロップのデータ入力端に接続される第９ＸＯＲと；一方の入力端が第７入力端に接続されて、他方の入力端が第８出力端に接続される第１０ＸＯＲと；一方の入力端が第８ＸＯＲの出力端に接続されて、他方の入力端が第１６ＸＯＲの出力端に接続される第１１ＸＯＲと；一方の入力端が第１０ＸＯＲの出力端に接続されて、他方の入力端が第１１ＸＯＲの出力端に接続されて、出力端が第５フリップフロップのデータ入力端に接続される第１２ＸＯＲと；一方の入力端が第６入力端に接続されて、他方の入力端が第９出力端に接続される第１３ＸＯＲと；一方の入力端が第１３ＸＯＲの出力端に接続されて、他方の入力端が第１６ＸＯＲの出力端に接続されて、出力端が第１フリップフロップのデータ入力端に接続される第１４ＸＯＲと；一方の入力端が第５出力端に接続されて、他方の入力端が第１４ＸＯＲの出力端に接続されて、出力端が第１３フリップフロップのデータ入力端に接続される第１５ＸＯＲと；一方の入力端が第２入力端に接続されて、他方の入力端が第１３出力端に接続される第１６ＸＯＲと；一方の入力端が第２出力端に接続されて、他方の入力端が第１６ＸＯＲの出力端に接続されて、出力端が第１０フリップフロップのデータ入力端に接続される第１７ＸＯＲと；一方の入力端が第１６ＸＯＲの出力端に接続されて、他方の入力端が第２３ＸＯＲの出力端に接続される第１８ＸＯＲと；一方の入力端が第１３ＸＯＲの出力端に接続されて、他方の入力端が第１８ＸＯＲの出力端に接続されて、出力端が第６フリップフロップのデータ入力端に接続される第１９ＸＯＲと；一方の入力端が第５入力端に接続されて、他方の入力端が第１０出力端に接続される第２０ＸＯＲと；一方の入力端が第２０ＸＯＲの出力端に接続されて、他方の入力端が第２３ＸＯＲの出力端に接続されて、出力端が第２フリップフロップのデータ入力端に接続される第２１ＸＯＲと；一方の入力端が第６出力端に接続されて、他方の入力端が第４１ＸＯＲの出力端に接続されて、出力端が第１４フリップフロップのデータ入力端に接続される第２２ＸＯＲと；一方の入力端が第１入力端に接続されて、他方の入力端が第１４出力端に接続される第２３ＸＯＲと；一方の入力端が第３出力端に接続されて、他方の入力端が第２３ＸＯＲの出力端に接続されて、出力端が第１１フリップフロップのデータ入力端に接続される第２４ＸＯＲと；一方の入力端が第５ＸＯＲの出力端に接続されて、他方の入力端が第２０ＸＯＲの出力端に接続される第２５ＸＯＲと；一方の入力端が第０入力端に接続されて、他方の入力端が第４入力端に接続される第２６ＸＯＲと；一方の入力端が第２３ＸＯＲの出力端に接続されて、他方の入力端が第２５ＸＯＲの出力端に接続されて、出力端が第７フリップフロップのデータ入力端に接続される第２７ＸＯＲと；一方の入力端が第１１出力端に接続されて、他方の入力端が第２６ＸＯＲの出力端に接続される第２８ＸＯＲと；一方の入力端が第１５出力端に接続されて、他方の入力端が第２８ＸＯＲの出力端に接続されて、出力端が第３フリップフロップのデータ入力端に接続される第２９ＸＯＲと；一方の入力端が第７出力端に接続されて、他方の入力端が第２９ＸＯＲの出力端に接続されて、出力端が第１５フリップフロップのデータ入力端に接続される第３０ＸＯＲと；を有して成る構成（第４の構成）にするとよい。
【００１１】
また、本発明に係るシリアルインタフェイス装置は、上記第１〜第４いずれかの構成から成るＣＲＣ演算回路を有して成る構成（第５の構成）とされている。
【００１２】
また、本発明に係る画像形成装置は、撮像信号を生成する撮像センサと、前記撮像センサからパラレル入力される撮像信号を低電圧差動型シリアル信号に変換する送信側シリアルインタフェイス装置と、前記送信側シリアルインタフェイス装置からシリアル入力される前記低電圧差動型シリアル信号をパラレル形式の前記撮像信号に再変換して出力する受信側シリアルインタフェイス装置と、前記受信側シリアルインタフェイス装置から前記撮像信号がパラレル入力される中央演算処理装置と、を有して成る画像形成装置であって、前記送信側シリアルインタフェイス装置、及び、前記受信側シリアルインタフェイス装置の少なくとも一方として、上記第５の構成から成るシリアルインタフェイス装置を有して成る構成（第６の構成）とされている。
【発明の効果】
【００１３】
本発明によれば、容易な回路設計で高速データ伝送に対応することが可能となる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明に係る画像形成装置の一実施形態を示すブロック図である。なお、本発明の適用対象となる画像形成装置の一例としては、ディジタルスチルカメラやディジタルビデオカメラ（カメラ機能を搭載したＰＤＡ［Personal Digital/Data Assistants］や携帯電話端末などを含む）、或いは、スキャナ装置などを挙げることができる。
【００１５】
図１に示す通り、本実施形態の画像形成装置は、撮像センサモジュール１００と、送信側高速シリアルインタフェイス装置２００（以下では、送信側シリアルＩ／Ｆ２００と呼ぶ）と、受信側高速シリアルインタフェイス装置３００（以下では、受信側シリアルＩ／Ｆ３００と呼ぶ）と、中央演算処理装置４００（以下ではＣＰＵ［Central Processing Unit］４００と呼ぶ）と、を有して成る。
【００１６】
撮像センサモジュール１００は、ＣＣＤ［Charge Coupled Devices］イメージセンサやＣＭＯＳ［Complementary Metal Oxide Semiconductor］イメージセンサを用いて、被写体から得られる光学信号を電気信号に変換することにより、８ビットの撮像信号ＤＡＴＡを生成し、これを送信側シリアルＩ／Ｆ２００に対してパラレル転送する手段である。
【００１７】
また、撮像センサモジュール１００は、上記した撮像信号ＤＡＴＡのほか、フレーム同期信号（垂直同期信号ＶＳ及び水平同期信号ＨＳ）についても、送信側シリアルＩ／Ｆ２００にその供給を行うものとされている。
【００１８】
送信側シリアルＩ／Ｆ２００は、撮像センサモジュール１００の近傍に配設され、撮像センサモジュール１００からパラレル入力される撮像信号ＤＡＴＡに高速画像処理を施した後、その処理結果を低電圧差動型シリアル信号（Ｃ＋、Ｃ−、Ｄ＋、Ｄ−）として、受信側シリアルＩ／Ｆ３００に出力する手段である。
【００１９】
受信側シリアルＩ／Ｆ３００は、ＣＰＵ４００の近傍に配設され、送信側シリアルＩ／Ｆ２００からシリアル入力される低電圧差動型シリアル信号（Ｃ＋、Ｃ−、Ｄ＋、Ｄ−）をパラレル形式の撮像信号ＤＡＴＡに再変換してＣＰＵ４００に転送する手段である。
【００２０】
このように、差動入出力形式の送信側シリアルＩ／Ｆ２００と受信側シリアルＩ／Ｆ３００を用いれば、ノイズや不要輻射を低減するとともに、撮像センサモジュール１からＣＰＵ４への信号本数を削減し、システムレイアウトの自由度を高めることが可能となる。
【００２１】
ＣＰＵ４００は、受信側シリアルＩ／Ｆ３から撮像信号ＤＡＴＡのパラレル入力を受けて、その表示処理や記録処理を制御する手段である。
【００２２】
次に、受信側シリアルＩ／Ｆ３００の内部構成について、より詳細な説明を行う。
【００２３】
図１に示したように、本実施形態の受信側シリアルＩ／Ｆ３００は、ＬＶＤＳ［Low Voltage Differential Signaling］レシーバブロック３０１と、シリアル／パラレル変換ブロック３０２（以下ではＳ／Ｐ［Serial/Parallel］ブロック３０２と呼ぶ）と、ＣＲＣブロック３０３と、ＦＩＦＯ［First-In First-Out］ライトブロック３０４と、ＦＩＦＯブロック３０５と、出力制御ブロック３０６と、分周回路３０７と、を有して成る。
【００２４】
ＬＶＤＳレシーバブロック３０１は、低電圧差動型シリアル信号（Ｃ＋、Ｃ−、Ｄ＋、Ｄ−）からシリアルデータＳＤＡＴＡと第１クロック信号ＳＣＬＫを抽出し、これをＳ／Ｐブロック３０２に送出する手段である。
【００２５】
Ｓ／Ｐブロック３０２は、第１クロック信号ＳＣＬＫに基づいて、ＬＶＤＳレシーバブロック３０１で抽出されたシリアルデータＳＤＡＴＡを８ビットのパラレルデータＰＤＡＴＡに変換する手段である。
【００２６】
ＣＲＣブロック３０３は、Ｓ／Ｐブロック３０２から入力されるパラレルデータＰＤＡＴＡを並列的に処理することでＣＲＣ符号の演算を行うＣＲＣ演算回路を含んで成り、その演算結果に応じて、伝送エラーが生じているか否かを示すエラー検出信号ＥＲＲを生成し、これをＣＰＵ４００に出力する手段である。なお、上記したＣＲＣ演算回路の構成及び動作については、後ほど詳細に説明する。
【００２７】
ＦＩＦＯライトブロック３０４は、第２クロック信号ＦＣＬＫに基づき、ＦＩＦＯブロック３０５に対してパラレルデータＰＤＡＴＡを８ビットずつ書き込む手段である。
【００２８】
ＦＩＦＯブロック３０５は、８ビットのパラレルＰＤＡＴＡが書き込まれる一時記憶手段である。
【００２９】
出力制御ブロック３０６は、第２クロック信号ＦＣＬＫに基づいて、ＦＩＦＯブロック３０５の格納データを８ビットずつパラレルに読み出し、これを撮像信号ＤＡＴＡとしてＣＰＵ４００に出力する手段である。また、出力制御ブロック３０６は、上記の撮像信号ＤＡＴＡとともに、フレーム同期信号（垂直同期信号ＶＳ及び水平同期信号ＨＳ）や第３クロック信号ＰＣＬＫ（第２クロック信号ＦＣＬＫと同等）もＣＰＵ４００に転送する。
【００３０】
分周回路３０７は、第１クロック信号ＳＣＬＫを１／８に分周して第２クロック信号ＦＣＬＫを生成する手段である。
【００３１】
次に、ＣＲＣブロック３０３（特にこれに含まれるＣＲＣ演算回路）の説明に先立ち、ＣＲＣ演算回路の従来構成（順次入力されるシリアルデータを時系列的に処理することでＣＲＣ符号の演算を行うシリアル形式）について説明する。
【００３２】
なお、以下に続く説明においては、１７ビットの生成多項式（ｘ16＋ｘ12＋ｘ5＋１［1 1000 0000 0000 0101］）を用いて、１６ビットのＣＲＣ符号を求める演算方式（いわゆるＣＲＣ−１６方式）を採用した場合を例に挙げて、詳細な説明を行うことにする。
【００３３】
図２は、ＣＲＣ演算回路（シリアル形式）の一構成例を示す概念構成図である。また、図３は、シリアル形式によるＣＲＣ符号の演算過程を示す表である。
【００３４】
図２に示すように、従来のＣＲＣ演算回路は、５桁のシフトレジスタ５０１と、７桁のシフトレジスタ５０２と、４桁のシフトレジスタ５０３と、３つの排他的論理和演算器６０１〜６０３（以下、ＸＯＲ６０１〜ＸＯＲ６０３と呼ぶ）と、を有して成り、８ビット長のシリアルデータＳＤＡＴＡ（Ｓ０〜Ｓ７）を順次に読み込んでシフトレジスタ５０１〜５０３の格納値を８回ループさせた後、その時点でシフトレジスタ５０１〜５０３の各桁に格納されているレジスタ値ＲＥＧ０〜ＲＥＧ１５を１６ビットのＣＲＣ符号（ＣＲＣ［１５：０］）として出力する構成とされている。
【００３５】
上記したＣＲＣ符号の演算過程について、図３を参照しながら考察する。まず、表中の「Ｓ０列」には、Ｓ０入力時のレジスタ値ＲＥＧ０〜ＲＥＧ１５が各々示されている。レジスタ値ＲＥＧ０には、ＸＯＲ６０１の出力値（Ｓ０入力直前のレジスタ値ＲＥＧ１５とＳ０との排他的論理和）が格納されており、表中ではこれを「１５＾Ｓ０」と表記している。レジスタ値ＲＥＧ１〜ＲＥＧ４には、Ｓ０入力直前のレジスタ値ＲＥＧ０〜ＲＥＧ３がシフト格納されており、表中ではこれらを「０」〜「３」と表記している。レジスタ値ＲＥＧ５には、ＸＯＲ６０２の出力値（Ｓ０入力直前のレジスタ値ＲＥＧ４とＸＯＲ６０１の出力値（＝「１５＾Ｓ０」）との排他的論理和）が格納されており、表中ではこれを「４＾１５＾Ｓ０」と表記している。レジスタ値ＲＥＧ６〜ＲＥＧ１１には、Ｓ０入力直前のレジスタ値ＲＥＧ５〜ＲＥＧ１０がシフト格納されており、表中ではこれらを「５」〜「１０」と表記している。レジスタ値ＲＥＧ１２には、ＸＯＲ６０３の出力値（Ｓ０入力直前のレジスタ値ＲＥＧ１１とＸＯＲ６０１の出力値（＝「１５＾Ｓ０」）との排他的論理和）が格納されており、表中ではこれを「１１＾１５＾Ｓ０」と表記している。レジスタ値ＲＥＧ１３〜ＲＥＧ１５には、Ｓ０入力直前のレジスタ値ＲＥＧ１２〜ＲＥＧ１４がシフト格納されており、表中ではこれらを「１２」〜「１４」と表記している。
【００３６】
次に、表中の「Ｓ１列」には、Ｓ１入力時のレジスタ値ＲＥＧ０〜ＲＥＧ１５が各々示されている。レジスタ値ＲＥＧ０には、ＸＯＲ６０１の出力値（Ｓ１入力直前のレジスタ値ＲＥＧ１５（＝「１４」）とＳ１との排他的論理和）が格納されており、表中ではこれを「１４＾Ｓ１」と表記している。レジスタ値ＲＥＧ１〜ＲＥＧ４には、それぞれＳ１入力直前のレジスタ値ＲＥＧ０（＝「１５＾Ｓ０」）、レジスタ値ＲＥＧ１（＝「０」）、レジスタ値ＲＥＧ２（＝「１」）、並びに、レジスタ値ＲＥＧ３（＝「２」）がシフト格納されている。レジスタ値ＲＥＧ５には、ＸＯＲ６０２の出力値（Ｓ１入力直前のレジスタ値ＲＥＧ４（＝「３」）とＸＯＲ６０１の出力値（＝「１４＾Ｓ１」）との排他的論理和）が格納されており、表中ではこれを「３＾１４＾Ｓ１」と表記している。レジスタ値ＲＥＧ６〜ＲＥＧ１１には、それぞれＳ１入力直前のレジスタ値ＲＥＧ５（＝「４＾１５＾Ｓ０」）、レジスタ値ＲＥＧ６（＝「５」）、レジスタ値ＲＥＧ７（＝「６」）、レジスタ値ＲＥＧ８（＝「７」）、レジスタ値ＲＥＧ９（＝「８」）、並びに、レジスタ値ＲＥＧ１０（＝「９」）がシフト格納されている。レジスタ値ＲＥＧ１２には、ＸＯＲ６０３の出力値（Ｓ１入力直前のレジスタ値ＲＥＧ１１（＝「１０」）とＸＯＲ６０１の出力値（＝「１４＾Ｓ１」）との排他的論理和）が格納されており、表中ではこれを「１０＾１４＾Ｓ１」と表記している。レジスタ値ＲＥＧ１３〜ＲＥＧ１５には、それぞれＳ１入力直前のレジスタ値ＲＥＧ１２（＝１１＾１５＾Ｓ０）、レジスタ値ＲＥＧ１３（＝「１２」）、並びに、レジスタ値ＲＥＧ１４（＝「１３」）がシフト格納されている。
【００３７】
表中の「Ｓ２列」〜「Ｓ７列」についても、上記と同様にして、Ｓ２〜Ｓ７入力時のレジスタ値ＲＥＧ０〜ＲＥＧ１５が各々示されている。ここで、Ｓ７入力時のレジスタ値ＲＥＧ０〜ＲＥＧ１５は、１６ビットのＣＲＣ符号（ＣＲＣ［１５：０］）に他ならず、その各桁値は、表中の太枠で囲まれた演算式によって得られていることが分かる。
【００３８】
すなわち、順次入力される８ビット長のシリアルデータＳＤＡＴＡを時系列的に処理せずとも、表中の太枠で囲まれた演算式に基づいて、８ビットのパラレルデータＰＤＡＴＡに並列的な論理演算を施してやれば、１６ビットのＣＲＣ符号（ＣＲＣ［１５：０］）を得ることが可能である。
【００３９】
上記の考察に鑑み、本発明に係るＣＲＣ演算回路は、伝送データからシリアル処理でＣＲＣ符号を算出する演算過程を解析して導き出される所定の演算式（上記の例に即して具体的に述べると、シフトレジスタ５０１〜５０３とＸＯＲ６０１〜６０３を用いてシリアルデータＳＤＡＴＡからシリアル処理でＣＲＣ符号を算出する演算過程を解析して導き出されるものであって、シリアルデータＳＤＡＴＡが８ビット分入力された時点でシフトレジスタ５０１〜５０３の各桁に格納されているレジスタ値ＲＥＧ０〜ＲＥＧ１５を表す演算式）に基づいて、伝送データからパラレル処理でＣＲＣ符号を算出する論理回路を有して成る構成とされている。
【００４０】
図４は、本発明に係るＣＲＣ演算回路（パラレル形式）の一実施形態を示す回路ブロック図である。
【００４１】
図４に示す通り、本実施形態のＣＲＣ演算回路において、上記の論理回路は、パラレルデータＰＤＡＴＡが８ビット分パラレル入力される第０〜第７入力端と、ＣＲＣ符号が１６ビット分パラレル出力される第０〜第１５出力端を有するほか、ＣＲＣ符号を算出するための演算要素として、第０〜第１５Ｄフリップフロップ０〜１５（以下、ＦＦ０〜ＦＦ１５と呼ぶ）と、第１〜第３０排他的論理和演算器２１〜５０（以下、ＸＯＲ２１〜ＸＯＲ５０と呼ぶ）と、を有して成る。
【００４２】
ＦＦ０〜ＦＦ１５のデータ出力端は、各々、第０〜第１５出力端に接続されている。ＦＦ０〜ＦＦ１５のセット入力端（ローエッジトリガ形式）は、いずれもリセット信号ＲＥＳＥＴが入力されるリセット入力端に接続されている。従って、ＣＲＣ符号の初期値は、１６’ｈＦＦＦＦ［1111 1111 1111 1111］となる。ＦＦ０〜ＦＦ１５のクロック入力端は、いずれも第２クロック信号ＦＣＬＫが入力されるクロック入力端に接続されている。
【００４３】
ＸＯＲ２１の一入力端は、第７入力端に接続されている。ＸＯＲ２１の他入力端はＸＯＲ２８の出力端に接続されている。ＸＯＲ２２の一入力端は、ＸＯＲ２１の出力端に接続されている。ＸＯＲ２２の他入力端は、第８出力端に接続されている。ＸＯＲ２２の出力端は、ＦＦ０のデータ入力端に接続されている。ＸＯＲ２３の一入力端は、第０出力端に接続されている。ＸＯＲ２３の他入力端は、ＸＯＲ４９の出力端に接続されている。ＸＯＲ２３の出力端は、ＦＦ８のデータ入力端に接続されている。ＸＯＲ２４の一入力端は、第８出力端に接続されている。ＸＯＲ２４の他入力端は、第４出力端に接続されている。ＸＯＲ２５の一入力端は、第０入力端に接続されている。ＸＯＲ２５の他入力端は、第１５出力端に接続されている。ＸＯＲ２６の一入力端は、ＸＯＲ２４の出力端に接続されている。ＸＯＲ２６の他入力端は、ＸＯＲ２５の出力端に接続されている。ＸＯＲ２７の一入力端は、ＸＯＲ２１の出力端に接続されている。ＸＯＲ２７の他入力端は、ＸＯＲ２６の出力端に接続されている。ＸＯＲ２７の出力端は、ＦＦ１２のデータ入力端に接続されている。ＸＯＲ２８の一入力端は、第３入力端に接続されている。ＸＯＲ２８の他入力端は、第１２出力端に接続されている。ＸＯＲ２８の出力端は、ＦＦ４のデータ入力端に接続されている。ＸＯＲ２９の一入力端は、第１出力端に接続されている。ＸＯＲ２９の他入力端は、ＸＯＲ２８の出力端に接続されている。ＸＯＲ２９の出力端は、ＦＦ９のデータ入力端に接続されている。ＸＯＲ３０の一入力端は、第７入力端に接続されている。ＸＯＲ３０の他入力端は、第８出力端に接続されている。
【００４４】
ＸＯＲ３１の一入力端は、ＸＯＲ２８の出力端に接続されている。ＸＯＲ３１の他入力端は、ＸＯＲ３６の出力端に接続されている。ＸＯＲ３２の一入力端は、ＸＯＲ３０の出力端に接続されている。ＸＯＲ３２の他入力端はＸＯＲ３１の出力端に接続されている。ＸＯＲ３２の出力端は、ＦＦ５のデータ入力端に接続されている。ＸＯＲ３３の一入力端は、第６入力端に接続されている。ＸＯＲ３３の他入力端は、第９出力端に接続されている。ＸＯＲ３４の一入力端は、ＸＯＲ３３の出力端に接続されている。ＸＯＲ３４の他入力端は、ＸＯＲ３６の出力端に接続されている。ＸＯＲ３４の出力端は、ＦＦ１のデータ入力端に接続されている。ＸＯＲ３５の一入力端は、第５出力端に接続されている。ＸＯＲ３５の他入力端は、ＸＯＲ３４の出力端に接続されている。ＸＯＲ３５の出力端は、ＦＦ１３のデータ入力端に接続されている。ＸＯＲ３６の一入力端は、第２入力端に接続されている。ＸＯＲ３６の他入力端は、第１３出力端に接続されている。ＸＯＲ３７の一入力端は、第２出力端に接続されている。ＸＯＲ３７の他入力端は、ＸＯＲ３６の出力端に接続されている。ＸＯＲ３７の出力端は、ＦＦ１０のデータ入力端に接続されている。ＸＯＲ３８の一入力端は、ＸＯＲ３６の出力端に接続されている。ＸＯＲ３８の他入力端はＸＯＲ４３の出力端に接続されている。ＸＯＲ３９の一入力端は、ＸＯＲ３３の出力端に接続されている。ＸＯＲ３９の他入力端は、ＸＯＲ３８の出力端に接続されている。ＸＯＲ３９の出力端は、ＦＦ６のデータ入力端に接続されている。ＸＯＲ４０の一入力端は、第５入力端に接続されている。ＸＯＲ４０の他入力端は第１０出力端に接続されている。
【００４５】
ＸＯＲ４１の一入力端は、ＸＯＲ４０の出力端に接続されている。ＸＯＲ４１の他入力端は、ＸＯＲ４３の出力端に接続されている。ＸＯＲ４１の出力端は、ＦＦ２のデータ入力端に接続されている。ＸＯＲ４２の一入力端は、第６出力端に接続されている。ＸＯＲ４２の他入力端は、ＸＯＲ４１の出力端に接続されている。ＸＯＲ４２の出力端は、ＦＦ１４のデータ入力端に接続されている。ＸＯＲ４３の一入力端は、第１入力端に接続されている。ＸＯＲ４３の他入力端は、第１４出力端に接続されている。ＸＯＲ４４の一入力端は、第３出力端に接続されている。ＸＯＲ４４の他入力端は、ＸＯＲ４３の出力端に接続されている。ＸＯＲ４４の出力端は、ＦＦ１１のデータ入力端に接続されている。ＸＯＲ４５の一入力端は、ＸＯＲ２５の出力端に接続されている。ＸＯＲ４５の他入力端は、ＸＯＲ４０の出力端に接続されている。ＸＯＲ４６の一入力端は、第０入力端に接続されている。ＸＯＲ４６の他入力端は、第４入力端に接続されている。ＸＯＲ４７の一入力端はＸＯＲ４３の出力端に接続されている。ＸＯＲ４７の他入力端は、ＸＯＲ４５の出力端に接続されている。ＸＯＲ４７の出力端は、ＦＦ７のデータ入力端に接続されている。ＸＯＲ４８の一入力端は、第１１出力端に接続されている。ＸＯＲ４８の他入力端は、ＸＯＲ４６の出力端に接続されている。ＸＯＲ４９の一入力端は、第１５出力端に接続されている。ＸＯＲ４９の他入力端は、ＸＯＲ４８の出力端に接続されている。ＸＯＲ４９の出力端は、ＦＦ３のデータ入力端に接続されている。ＸＯＲ５０の一入力端は、第７出力端に接続されている。ＸＯＲ５０の他入力端は、ＸＯＲ４９の出力端に接続されている。ＸＯＲ５０の出力端は、ＦＦ１５のデータ入力端に接続されている。
【００４６】
次に、上記構成から成るＣＲＣ演算回路の動作について具体的に説明する。ＦＦ０は、第２クロック信号ＦＣＬＫのパルスエッジをトリガとし、データ入力端に印加されているＸＯＲ２２の出力信号をＣＲＣ符号の０ビット目として出力する。
【００４７】
ここで、ＸＯＲ２２の出力信号は、ＣＲＣ符号の８ビット目と、ＸＯＲ２１の出力信号との排他的論理和であり、「８＾ＸＯＲ２１」と表記することができる。また、ＸＯＲ２１の出力信号は、ＸＯＲ２８の出力信号と、パラレルデータＰＤＡＴＡの７ビット目（シリアルデータＳＤＡＴＡの７ビット目Ｓ７に相当）との排他的論理和であり、「ＸＯＲ２８＾Ｓ７」と表記することができる。また、ＸＯＲ２８の出力信号は、ＣＲＣ符号の１２ビット目と、パラレルデータＰＤＡＴＡの３ビット目（シリアルデータＳＤＡＴＡの３ビット目Ｓ３に相当）との排他的論理和であり、「１２＾Ｓ３」と表記することができる。
【００４８】
これらを総合すると、ＦＦ０から出力されるＣＲＣ符号の０ビット目は、「８＾１２＾Ｓ３＾Ｓ７」と表記される演算式に基づいて算出される値となるが、この演算式は、先出の図３で示した「Ｓ７入力時のレジスタ値ＲＥＧ０」を表すものと一致している。
【００４９】
また、ＦＦ１〜ＦＦ１５から出力されるＣＲＣ符号の１ビット目〜１５ビット目についても、上記と同様に、図３で示した「Ｓ７入力時のレジスタ値ＲＥＧ１〜ＲＥＧ１５」を表す演算式に基づいて算出される値となる。
【００５０】
このように、本発明に係るＣＲＣ演算回路は、シリアルデータＳＤＡＴＡを順次入力することでＣＲＣ符号を算出していた従来構成と異なり、８ビットのパラレルデータＰＤＡＴＡを並列的に入力することでＣＲＣ符号を算出する構成とされている。このような構成とすることにより、高速の第１クロック信号ＳＣＬＫではなく、これを１／８分周して得られる第２クロック信号ＦＣＬＫに基づいて、ＣＲＣ符号の演算や演算範囲の確定、ＣＲＣ符号の判定タイミング処理などを実施することができるので、シリアルデータＳＤＡＴＡの伝送速度が高められても、ＣＲＣ演算回路の回路設計を容易に行うことができる。
【００５１】
なお、上記したＣＲＣ演算のパラレル処理については、ＣＰＵ４００側でソフトウェア的に実施することも可能ではあるが、このような構成を採用した場合、データの伝送中、常にＣＰＵ４００のタスクをＣＲＣ演算処理に割かねばならず、ＣＰＵ４００の負荷が過大となって、本来の演算処理に支障を来すおそれがある。また、ＣＲＣ演算処理のためだけに、別途のＣＰＵやＤＳＰ［Digital Signal Processor］を新設することは、極めて非効率的である。これに対して、本発明に係るＣＲＣ演算回路であれば、ＦＦ０〜ＦＦ１５とＸＯＲ２１〜ＸＯＲ５０のみを用いて、ハードウェア的に上記のＣＲＣ演算処理を実現することができるので、ＣＰＵタスクの増大や回路規模の拡大を招かずに済む。
【００５２】
なお、上記実施形態では、画像形成装置に搭載されるシリアルインタフェイス装置に本発明を適用した場合を例に挙げて説明を行ったが、本発明の適用対象はこれに限定されるものではなく、その他の用途に用いられるシリアルインタフェイス装置にも広く適用することが可能である。
【００５３】
また、上記実施形態では、受信側のシリアルインタフェイス装置に搭載されるＣＲＣ演算回路を例示して説明を行ったが、本発明の適用対象はこれに限定されるものではなく、送信側のシリアルインタフェイス装置に搭載されるＣＲＣ演算回路にも適用が可能であることは言うまでもない。
【００５４】
また、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。
【００５５】
例えば、上記実施形態では、ＣＲＣ符号の算出方式としてＣＲＣ−１６方式を採用し、８ビットのパラレルデータＰＤＡＴＡからＣＲＣ符号を算出する構成を例に挙げて説明を行ったが、本発明の構成はこれに限定されるものではなく、ＣＲＣ符号の算出方式としては、様々な伝送エラーに対して正常時と異なる値を算出し得る限り、ＣＲＣ−６、ＣＲＣ−８、ＣＲＣ−１２、ＣＲＣ３２、ＣＲＣ−ＣＣＩＴＴなど、いかなる算出方式を用いても構わない。
【００５６】
すなわち、本発明は、上記の実施形態に限定されることなく、採用されたＣＲＣ符号の算出方式に関して、図２や図３で例示した内容と同様の考察を行い、伝送データからシリアル処理でＣＲＣ符号を算出する演算過程を解析して導き出される所定の演算式に基づいて、伝送データからパラレル処理でＣＲＣ符号を算出する論理回路を有して成るＣＲＣ演算回路全般を広く技術的範囲に含むものであると言える。
【産業上の利用可能性】
【００５７】
本発明は、ＣＲＣ演算回路の回路設計を容易とする上で有用な技術であり、例えば、ディジタルスチルカメラやディジタルビデオカメラ、或いは、スキャナ装置などの画像形成装置に搭載されるシリアルインタフェイス装置に好適な技術である。
【図面の簡単な説明】
【００５８】
【図１】は、本発明に係る画像形成装置の一実施形態を示すブロック図である。
【図２】は、ＣＲＣ演算回路（シリアル形式）の一構成例を示す概念構成図である。
【図３】は、シリアル形式によるＣＲＣ符号の演算過程を示す表である。
【図４】は、本発明に係るＣＲＣ演算回路（パラレル形式）の一実施形態を示す回路ブロック図である。
【図５】は、シリアルインタフェイス装置の一従来例を示すブロック図である。
【符号の説明】
【００５９】
０〜１５    Ｄフリップフロップ（ＦＦ）
２１〜５０    排他的論理和演算器（ＸＯＲ）
１００    撮像センサモジュール
２００    送信側高速シリアルインタフェイス装置（送信側シリアルＩ／Ｆ）
３００    受信側高速シリアルインタフェイス装置（受信側シリアルＩ／Ｆ）
３０１    ＬＶＤＳレシーバブロック
３０２    シリアル／パラレル変換ブロック（Ｓ／Ｐブロック）
３０３    ＣＲＣブロック
３０４    ＦＩＦＯライトブロック
３０５    ＦＩＦＯブロック
３０６    出力制御ブロック
３０７    分周回路
４００    中央演算処理装置（ＣＰＵ）
５０１〜５０３    シフトレジスタ
６０１〜６０３    排他的論理和演算器（ＸＯＲ）
【図１】
2010016751.tif 000003
【図２】
2010016751.tif 000004
【図３】
2010016751.tif 000005
【図４】
2010016751.tif 000006
【図５】
2010016751.tif 000007