(57)【要約】【課題】ステートマシンの状態遷移の評価を行う回路の、回路規模の増大を軽減する制御回路、情報処理回路、制御方法、及び、情報処理方法。【解決手段】処理する手順をステートマシンにより制御する制御回路であって、ステートを遷移する毎に遷移後のステートのステート値を取得して出力するステート値取得手段と、前記ステート値の変化が、遷移の前後で昇順である場合に、正常な遷移と判断する監視手段と、を有する制御回路、及び、その制御回路を有する情報処理回路。【選択図】図１０
2011170426.tif 000002
【特許請求の範囲】
【請求項１】
処理する手順をステートマシンにより制御する制御回路であって、
ステートを遷移する毎に遷移後のステートのステート値を取得して出力するステート値取得手段と、
前記ステート値の変化が、遷移の前後で昇順である場合に、正常な遷移と判断する監視手段と、
を有することを特徴とする制御回路。
【請求項２】
前記監視手段は、さらに、前記ステート値が遷移の前後で昇順に変化した後の、異なる遷移のステート値が遷移の前後で降順に変化する場合に、正常な遷移と判断することを特徴とする請求項１記載の制御回路。
【請求項３】
前記監視手段は、さらに、前記ステート値が遷移の前後で降順に変化した後の、異なる遷移のステート値が遷移の前後で昇順に変化する場合に、異常な遷移と判断することを特徴とする請求項２記載の制御回路。
【請求項４】
請求項１ないし３何れか一項に記載の制御回路を複数有し、
一の前記制御回路が有する前記監視手段が異常な遷移と判断した遷移の情報と、該遷移を生じた制御回路とを対応づける情報を保持する情報保持手段を有することを特徴とする情報処理回路。
【請求項５】
処理する手順をステートマシンにより制御する制御方法であって、
ステートを遷移する毎に遷移後のステートのステート値を取得して出力するステート値取得ステップと、
前記ステート値の変化が、遷移の前後で昇順である場合に、正常な遷移と判断する監視ステップと、
を有することを特徴とする制御方法。
【請求項６】
前記監視ステップにおいて、さらに、前記ステート値が遷移の前後で昇順に変化した後の、異なる遷移のステート値が遷移の前後で降順に変化する場合に、正常な遷移と判断することを特徴とする請求項５記載の制御方法。
【請求項７】
前記監視ステップにおいて、さらに、前記ステート値が遷移の前後で降順に変化した後の、異なる遷移のステート値が遷移の前後で昇順に変化する場合に、異常な遷移と判断することを特徴とする請求項６記載の制御方法。
【請求項８】
請求項５ないし７何れか一項に記載の制御方法を実行する複数の制御回路を含む情報処理回路における情報処理方法であって、
一の前記制御回路が実行する前記監視ステップにおいて、異常な遷移と判断する遷移の情報と、該遷移を生じた制御回路とを対応づける情報を保持する情報保持手段から情報を取得する情報取得ステップを有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御回路、情報処理回路、制御方法、及び、情報処理方法に関する。
【背景技術】
【０００２】
従来から、ＡＳＩＣや電気回路の開発では、作成したものが仕様通りに動作するか否かを評価する。例えば、信号波形を取得し目視確認する方法は、時間がかかる、確認精度が落ちる等の問題がある。
【０００３】
そこで、信号波形の一つであるステートマシンの状態遷移を評価するために、小機能部毎に、レジスタを実装する回路がある。レジスタには、状態毎のステート値、及び、状態遷移のエラーが発生する際のエラー要因とステート値又はステート値の変化等とが対応づけられた情報、が格納される。このレジスタ値を読み込むことにより、ステートマシンの状態遷移を評価する。なお、小機能部とは、例えば、ハードウェアのモジュールをいう。
【０００４】
例えば、特開２００２−３１２２０３号公報（特許文献１）には、生成回路で生成されるステートマシンの状態遷移の異常動作を検出及び補正する誤動作検出回路の発明が開示されている。特許文献１に開示の誤動作検出回路は、生成回路、排他論理和回路、論理和回路、論理積回路、及び、論理否定回路を有する。より詳細には、生成回路によって生成された現在のＳｔａｔｅを表す第１ステート値（第１レジスタに保存）と、第１ステート値の所定ビットを含みかつ連続する１つ以上のビットを反転することにより生成回路によって生成された第２ステート値（第２レジスタに保存）との、値の異同をビットごとに判定する。判定条件に漏れた場合には、異常動作検出信号を出力し、この信号に対応する第２ステート値のビットの補正を排他論理和回路で出力させる。
【０００５】
また、予め、ＡＳＩＣに正常な状態遷移のパターンを期待値として登録しておき、実際に処理を実行した際のステート値の変化との比較を行い、仕様に沿わない状態遷移を行っているか否かを評価する回路がある。また、全ての状態遷移パターンを登録しない回路の発明では、ステートの異常遷移動作を検知すると、自動的に正しいステートに補正する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に開示のステートマシンの状態遷移の評価方法は、使用する小機能部の個数分だけレジスタを実装し、その一つ一つをＲｅａｄして確認しなければならない。実際にＡＳＩＣでは多くのステートを使用しているので、それらを全て網羅すると、回路規模が大きくなってしまう、確認の手間がかかる等の問題があった。
【０００７】
また正常な状態遷移のパターンとの期待値比較を行う例は、予め全ての正しい状態遷移パターンについてテーブルに登録しなければならない。また、全ての状態遷移パターンを登録しない例は、使用目的が異なる。ＡＳＩＣにこの機能を搭載した場合、ステート値は補正しても、実際の回路で発生する異常な動作自体を解消するわけではない。
【０００８】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、ステートマシンの状態遷移の評価を行う回路の、回路規模の増大を軽減する制御回路、情報処理回路、制御方法、及び、情報処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の制御回路は次の如き構成を採用した。本発明の制御回路は、処理する手順をステートマシンにより制御する制御回路であって、ステートを遷移する毎に遷移後のステートのステート値を取得して出力するステート値取得手段と、前記ステート値の変化が、遷移の前後で昇順である場合に、正常な遷移と判断する監視手段と、を有する構成とすることができる。
【００１０】
これにより、ステートマシンの状態遷移の評価を行う回路の、回路規模の増大を軽減する制御回路を提供することができる。
【００１１】
また、上記目的を達成するために、本発明の情報処理回路は、次の如き構成を採用した。本発明の情報処理回路は、本発明の制御回路を複数有し、一の前記制御回路が有する前記監視手段が、異常な遷移と判断した遷移の情報と、該遷移を生じた制御回路とを対応づける情報を保持する情報保持手段を有する構成とすることができる。
【００１２】
これにより、ステートマシンの状態遷移の評価を行う回路の、回路規模の増大を軽減する情報処理回路を提供することができる。
【００１３】
なお、上記課題を解決するため、本発明は、上記制御回路が実行する制御方法、及び、上記情報処理回路が実行する情報処理方法としてもよい。
【発明の効果】
【００１４】
本発明の制御回路、情報処理回路、制御方法、及び、情報処理方法によれば、ステートマシンの状態遷移の評価を行う回路の、回路規模の増大を軽減する制御回路、情報処理回路、制御方法、及び、情報処理方法を提供することが可能になる。
【図面の簡単な説明】
【００１５】
【図１】図１は、従来のＡＳＩＣのハードウェア構成について説明する図である。
【図２】図２は、特許文献１に記載のステートマシンのハードウェア構成を示す図である。
【図３】図３は、特許文献１に記載のステートマシンを用いた際の、状態遷移チャートを示す図である。
【図４】図４は、図３の状態遷移チャートによる異常動作検出表である。
【図５】図５は、図３とは異なるステートマシンを用いた際の、状態遷移チャートを示す図である。
【図６】図６は、図５の状態遷移チャートによる異常動作検出表である。
【図７】図７は、スキャナ読取装置の制御部のブロック構成図を説明する図である。
【図８】図８は、ＩＯ制御部３００の構成を説明する図である。
【図９】図９は、画像処理部２００のハードウェア構成の例を示す図である。
【図１０】図１０は、入力インタフェース２１０の構成を説明する図である。
【図１１】図１１は、ステート値が状態遷移により昇順に変化する例を示す図である。
【図１２】図１２は、次ステート生成回路３１の状態遷移を説明する図である。
【図１３】図１３は、編集部２３０が実行する副走査方向の画像の追加と削除の概念について説明する図である。
【図１４】図１４は、スキャナ読み取りの際の副走査方向のライン数制御の状態遷移を説明する図である。
【図１５】図１５は、入力インタフェース２１０の構成を説明する図である。
【図１６】図１６は、次条件ステート生成回路５１の状態遷移を説明する図である。
【図１７】図１７は、スキャナ読み取りの際の副走査方向のライン数制御の状態遷移を説明する図である。
【図１８】図１８は、異常状態遷移動作を検知する処理について説明するフロー図である。
【発明を実施するための形態】
【００１６】
本発明の実施の形態の理解を容易にするために、後の説明する実施の形態に先んじて、従来のハードウェアにおけるステートマシンの評価について、図１ないし図６を用いて説明する。
【００１７】
図１は、従来のＡＳＩＣのハードウェア構成について説明する図である。図１のハードウェアであるトップ機能部１は、ソフト３に接続されている。トップ機能部１は、４つの小機能部と、２つのレジスタとを有する。より詳細には、小機能部は、Ａモジュール１１、Ｂモジュール１２、Ｃモジュール１３、及び、Ｄモジュール１４である。また、レジスタは、ステータスレジスタ１８、及び、ステータスレジスタ１９である。
【００１８】
４つの小機能部は、例えば、それぞれ、異なる機能を実現する。４つの小機能部は、また、それぞれが、ステータスマシンを有し、並行動作することにより、トップ機能部１の機能を実現する。
【００１９】
ステータスレジスタ１８は、Ａモジュール１１のステート値を格納する。ステータスレジスタ１９は、Ｂモジュール１２のステート値を格納する。トップ機能部１の外に設けられるソフト３は、ステータスレジスタ１８及びステータスレジスタ１９に格納されるステート値を読込み、Ａモジュール１１及びＢモジュール１２の、現在のステートの状態や、エラー発生の要因を確認する。
【００２０】
Ｃモジュール１３、及び、Ｄモジュール１４は、対応するステータスレジスタがないため、ステートの状態や、エラー発生の要因の確認を行うことができない。一方で、全ての小機能部に対して、ステータスレジスタを実装すると、回路規模の増大や、ステートの状態等の確認に時間を要することになる。
【００２１】
図２は、特許文献１に記載のステートマシンのハードウェア構成を示す図である。図２のハードウェア１０１は、生成回路１１０、第２レジスタ１２１、第２ステート値出力回路１７０、第１レジスタ１２０、異常動作検出回路１８０を有する。
【００２２】
生成回路１１０は、現在のステートを表す第１ステート値を生成する。生成回路１１０は、さらに、第１ステート値の所定ビットを含み、かつ、連続する１つ以上のビットを反転することにより、第２ステート値を生成する。
【００２３】
第１レジスタ１２０は、第１ステート値を保存する。第２レジスタ１２１は、第２ステート値を保存する。異常動作検出回路１８０は、第１ステート値と第２ステート値との値の異動をビット毎に判定し、判定条件を満たさない場合、異常動作検出信号１６１を出力する。異常動作検出回路１８０は、異常動作検出信号に対応する第２ステート値のビットの補正の情報を、第２ステート値出力回路１７０に出力する。
【００２４】
第２ステート値出力回路１７０は、状態遷移した後の第２ステート値を出力する。第２ステート値出力回路１７０は、さらに、異常動作検出回路１８０から出力される補正の情報により、異常な遷移動作に対応するステート値を補正する。
【００２５】
図３は、特許文献１に記載のステートマシンを用いた際の、状態遷移チャートを示す図である。
【００２６】
図３の状態遷移において、正常動作（正常遷移）の場合の遷移先のステートは、以下の条件がある。便宜上、最下位ビットから順に、ビットＡ、ビットＢ、ビットＣとする。
（１）  ビットＡのみを反転
（２）  ビットＡ及びビットＢのみを反転
（３）  全ビットを反転
【００２７】
図４は、図３の状態遷移チャートによる異常動作検出表である。図３において、正常動作は○、異常動作は×で表される。×が付されている状態遷移が行われた場合に、異常動作検出信号が出力される。
【００２８】
図３及び図４に示す動作のステートマシンは、どのステート状態からも、３つの遷移先に遷移できる。
【００２９】
図５は、図３とは異なるステートマシンを用いた際の、状態遷移チャートを示す図である。図５の状態遷移チャートは、ステート値が０００、００１、及び、１１０のステートを、状態遷移前のステートとする際に、正常な状態遷移と判定する遷移先が、図３とは異なる。
【００３０】
より詳細には、ステート値が０００の場合は、ステート値が００１及び０１１の２つの遷移先に遷移できる。ステート値が００１の場合は、ステート値が０１０及び１１０の２つの遷移先に遷移できる。
【００３１】
そこで、図２のハードウェア１０１の異常動作検出回路１８０では、異常動作を正常動作と判定してしまう。図６は、図５の状態遷移チャートによる異常動作検出表である。図５において、正常動作は○、異常動作は×、異常動作を正常動作と判定する場合は△で表される。
【００３２】
さらに複雑な状態遷移を行う小機能部の異常遷移動作を全て検知させるためには、遷移条件に合わせて異常動作検出回路を複雑にし、小機能部毎に異常遷移動作検出回路を実装するため、機能部毎に異なる異常動作検出回路が必要になる。
【００３３】
以下、本実施の形態を図面に基づき説明する。
【００３４】
〔本実施の形態〕
図７は、スキャナ読取装置の制御部のブロック構成図を説明する図である。図７のスキャナ読取装置は、読取部１００、画像処理部２００、ＩＯ制御部（以下、「コントローラ」という。）３００、ハードディスク（以下、「ＨＤＤ」という。）４００、メモリ５００、ネットワーク６００、及び、ＣＰＵ８００を有する。
【００３５】
読取部１００は、図示しないスキャナにより原稿を光学的に読み取った信号から画像データを生成する。より詳細には、スキャナは原稿に対するランプ照射の反射光を集光し、ＣＣＤにより電気信号に変換する。読取部１００は、スキャナからの電気信号を、ディジタル信号に変換した後、画像処理部２００に出力する。
【００３６】
画像処理部２００は、各種の画像処理を行う。例えば、スキャナの読取時に生成する信号劣化の補正、原稿画像の縮小・拡大等の編集等を行う。画像処理部２００が、画像処理した画像データは、ＩＯ制御部３００に出力される。
【００３７】
ＩＯ制御部３００は、画像データを各部へ出力する。ＨＤＤ４００は、画像データを格納する。メモリ５００は、処理の前後の画像データを格納する。メモリ５００は、また、各部が機能を実現する際のワークメモリでもよい。ネットワーク６００は、他の装置等が接続され、スキャナ読取装置に対して、画像データや処理の指示等が送受信される。
【００３８】
ＣＰＵ８００は、スキャナ読取装置の各部の制御を行う。ＣＰＵ８００は、また、各部が実現するステートマシンにおいて、異常な遷移が発生する場合に、エラー割り込みの処理を実行し、エラーが発生した箇所の特定、及び、エラーに係る情報の表示の制御等を行う。
【００３９】
図８は、ＩＯ制御部３００の構成を説明する図である。ＩＯ制御部３００は、データ制御ブロック３２０、ＨＤＤインタフェース３４０、メモリインタフェース３５０、ネットワークインタフェース３６０、及び、ＣＰＵインタフェース３９０を有する。
【００４０】
データ制御ブロック３２０は、画像処理部２００から入力される画像データを、ＣＰＵ８００からの制御により、各インタフェースに出力する。
【００４１】
ＨＤＤインタフェース３４０、メモリインタフェース３５０、及び、ネットワークインタフェース３６０は、データ制御ブロック３２０の命令に基づいて、画像データを各部に出力する。
【００４２】
ＨＤＤインタフェース３４０は、ハードディスク４００へのインタフェースである。メモリインタフェース３５０は、メモリ５００へのインタフェースである。メモリインタフェース３５０は、メモリ５００へのアクセス制御、メモリ５００の記憶領域を有効に活用するための、画像データの圧縮／伸張を行う。ネットワークインタフェース３６０は、ネットワーク６００に接続される外部ＰＣとのインタフェースである。
【００４３】
ＣＰＵインタフェース３９０は、ＣＰＵ８００からの制御信号を受け付け、データ制御ブロック３２０に出力する。
【００４４】
図９は、画像処理部２００のハードウェア構成の例を示す図である。図９の画像処理部２００は、入力インタフェース２１０、スキャナ補正部２２０、編集部２３０、２値化部２４０、出力インタフェース２５０、ＣＰＵインタフェース２６０、及び、エラーステータスレジスタ２７０を有する。
【００４５】
入力インタフェース２１０、スキャナ補正部２２０、編集部２３０、及び、出力インタフェース２５０が、小機能部である。各小機能部は、ステートマシンを持っており、制御によりステートマシンのステートが遷移し、ステート値が変化する。
【００４６】
ＣＰＵインタフェース２６０は、ＣＰＵ８００への信号の送受信を行うインタフェースである。ＣＰＵインタフェース２６０は、また、エラーステータスレジスタ２７０へ、エラー割り込み信号を格納する。ＣＰＵインタフェース２６０は、また、エラーが発生した状態遷移を特定する情報を、エラーステータスレジスタ２７０から取得する。
【００４７】
エラーステータスレジスタ２７０は、エラー割り込み信号と、エラーが発生した状態遷移又はその状態遷移に係る機能部等とを対応づける情報を保持する。
【００４８】
図１０は、入力インタフェース２１０の構成を説明する図である。入力インタフェース２１０は、ステートマシン２１１、及び、異常検知部２１２を有する。なお、図１０では、入力インタフェース２１０について説明するが、他の小機能部、すなわち、スキャナ補正部２２０、編集部２３０、及び、出力インタフェース２５０も同様に、ステートマシンと異常検知部とを有する構成である。
【００４９】
ステートマシン２１１は、次ステート生成回路２１、及び、現ステート保持レジスタ２２を有する。次ステート生成回路２１は、制御信号に基づいて、現ステート保持レジスタ２２に保持される現在のステート値から、次のステートのステート値を生成する。
【００５０】
現ステート保持レジスタ２２は、現在のステートのステート値を保持する。現ステート保持レジスタ２２に保持されるステート値は、次ステート生成回路２１、及び、異常検知部２１２に出力される。
【００５１】
異常検知部２１２は、コンバータ３０、次ステート生成回路３１、フリップフロップ３２、フリップフロップ３３、及び、現ステート保持レジスタ３４を有する。
【００５２】
コンバータ３０は、ステートマシン２１１の次ステート生成回路２１から出力される次のステート値Ａと、現ステート保持レジスタ２２が保持する現在のステート値Ｂと、が、Ａ＜Ｂの場合に、値１を出力し、Ａ≧Ｂの場合に、値０を出力する。
【００５３】
次ステート生成回路３１は、コンバータ３０から出力される値と、ＥＸＥＣ信号と、現ステート保持レジスタ３４に保持されるステート値と、から、次のステートのステート値を生成する。
【００５４】
ＦＦ（０）３３、及び、ＦＦ（１）３２は、ディレイフリップフロップ（Ｄ−ＦＦ）である。次ステート生成回路３１から出力される信号は、ＦＦ（０）３３及びＦＦ（１）３２に入力され、ＦＦ（１）３２＝１の場合に、エラー割り込みをＣＰＵ８００に通知する。
【００５５】
現ステート保持レジスタ３４は、異常検知部２１２の現在のステート値を保持し、次ステート生成回路３１に出力する。
【００５６】
図１１は、ステート値が状態遷移により昇順に変化する例を示す図である。図１１の例は、４つのステートを有する。正常に状態遷移が行われる場合には、ステート値は「１→２→３→４」と変化する。図１１のように動作順を考慮してステート値が昇順に変化する設計により、状態遷移の仕方に規則性を持たせることができる。
【００５７】
この規則を、正常な状態遷移のパターンとして、図１０のコンバータ３０等が用いることにより、全ての正常な状態遷移パターンを期待値として登録するよりも、レジスタ等の構成を少なくすることができる。
【００５８】
図１２は、異常検知部２１２の次ステート生成回路３１の状態遷移を説明する図である。次ステート生成回路３１は、ステート０ないしステート２の３つのステートを遷移するステートマシンである。
【００５９】
図１２のステートマシンは、先ず、初期化等でリセットされる場合に、次ステート生成回路３１のステート値を０とする。これにより、ＦＦ（０）３３及びＦＦ（１）３２への入力を、（０，０）とする。ここで、（ａ，ｂ）のうち、ａは、ＦＦ（０）３３への入力、ｂは、ＦＦ（１）３２への入力である。
【００６０】
次ステート生成回路３１のステート値が０、かつ、ＥＸＥＣがｅｎａｂｌｅの状態で、コンバータ３０からの出力Ｃ＝０、すなわち、ステートマシン２１１の次ステート生成回路２１が、ステート値が昇順又は同値の遷移になった時に、次ステート生成回路３１の出力を（０，１）とする。
【００６１】
次ステート生成回路３１のステート値が１、かつ、ＥＸＥＣがｅｎａｂｌｅの状態で、コンバータ３０からの出力Ｃ＝１、すなわち、ステートマシン２１１の次ステート生成回路２１が、ステート値が降順の遷移になった時は、異常遷移である。そこで、次ステート生成回路３１のステート値を２、出力を（１，０）とし、エラー割り込みを、ＣＰＵ８００に出力させる。
【００６２】
次ステート生成回路３１のステート値が１、かつ、ＥＸＥＣがｄｉｓａｂｌｅになった時に、正常な終了条件であるので、次ステート生成回路３１のステート値を０、出力を（０，０）に遷移する。
【００６３】
以上の繰り返しにより、状態遷移の異常を検知することができる。
【００６４】
図１３は、以下の実施の形態の説明において編集部２３０が実行する副走査方向の画像の追加と削除の概念について説明する図である。図１３（ａ）は、入力画像データ、（ｂ）は、出力画像データの例である。
【００６５】
図１３（ａ）及び（ｂ）の図中において、ステートＳ０ないしＳ５は、画像データにおいて追加又は削除される部分に対応する。また、ＳＡＬは、先端追加ライン数、ＳＣＬは、先端削除ライン数、ＶＬは、入力画像ライン数、ＥＡＬは、後端追加ライン数、ＥＣＬは、後端削除ライン数、白抜き矢印は、画像データの進行方向である。
【００６６】
図１３において、ステートＳ０では、初期化が終了する。ステートＳ１では、出力画像データの先端に、ＳＡＬライン分、画像データ（白画像）を追加する。ステートＳ２では、入力画像データの先端ＳＣＬライン分、画像データを削除する。
【００６７】
ステートＳ３では、ＶＬライン分、入力画像データを出力画像データに出力する。ステートＳ４では、出力画像データの後端に、ＥＡＫライン分、画像データ（白画像）を追加する。ステートＳ５では、画像データの追加と削除を終了する。
【００６８】
なお、ステートＳ１、ステートＳ２、ステートＳ４の処理は、条件に応じて行わない場合もある。
【００６９】
図１４は、スキャナ読み取りの際の副走査方向のライン数制御の状態遷移を説明する図である。図１４の状態遷移図は、図１３の状態遷移を行うステートマシンの状態遷移を昇順に設計している。
【００７０】
図１４では、初期化時に（Ａ１）のリセット処理を行い、ステートＳ０に遷移しステート値を０にセットする。ＥＸＥＣがｅｎａｂｌｅになったら、ＳＡＬ、ＳＣＬの条件に応じて、それぞれ、ステートＳ１、ステートＳ２、及び、ステートＳ３に遷移する。
【００７１】
（Ａ２）のＳＡＬ≠０の場合は、ステートＳ１に遷移し、ステート値を１とする。（Ａ３）のＳＡＬ＝０かつＳＣＬ＝０の場合は、ステートＳ３に遷移し、ステート値を３とする。（Ａ４）のＳＣＬ≠０かつＳＡＬ＝０の場合は、ステートＳ２に遷移し、ステート値を２とする。
【００７２】
ステートＳ１では、先端を追加（ＳＡＬ）した後、（Ａ５）ＳＣＬ＝０の場合に、ステートＳ３に遷移し、ステート値を３とする。また、（Ａ６）ＳＣＬ≠０の場合に、ステートＳ２に遷移し、ステート値を２とする。
【００７３】
ステートＳ２では、先端を削除（ＳＣＬ）した後、ステートＳ３に遷移し、ステート値を３とする。
【００７４】
ステートＳ３では、画像が入力（ＶＬ）した後、（Ａ７）ＥＡＬ≠０の場合に、ステートＳ４に遷移し、ステート値を４とする。また、（Ａ８）ＥＡＬ＝０の場合に、ステートＳ５に遷移し、ステート値を５とする。
【００７５】
ステートＳ４では、後端を追加（ＥＡＬ）した後、ステートＳ５に遷移し、ステート値を５とする。
【００７６】
ステートＳ５では、追加を完了し、（Ａ９）ＥＸＥＣがｄｉｓａｂｌｅの場合に、ステートＳ０に進み、処理を終了する。
【００７７】
なお、図１４の状態遷移のうち、（Ａ１）及び（Ａ９）の遷移を除く他の状態遷移は、全て、ＥＸＥＣがｅｎａｂｅｌｅの場合に行われる。
【００７８】
図１０のハードウェア回路と図１２の遷移条件、及び、ＥＸＥＣのＯＮ、ＯＦＦを利用してエラーを検出することができる。例えば、ＲＥＳＥＴ信号に予期しないノイズがのり、処理途中にリセットがかかってしまうことがある。図１４の（Ａ１）の条件から、ＲＥＳＥＴがかかったらどのステートからでもステートＳ０に遷移する。しかし、図１２のようにステート値を昇順に設計していることから、リセットがかかった際のステート値の変化は降順となる。
【００７９】
状態遷移をした瞬間のＥＸＥＣは、（Ａ９）の条件とは異なり、Ｅｎａｂｌｅであるので、図１２に示すステートマシンのステート１における条件Ｃ＝１を満たし、次ステート生成回路３１のステートマシンはステート１からステート２へと遷移し、エラー割り込みをＣＰＵに出力する。図１４の設計によるハードウェア回路は、例えば、上記の異常動作を検知することができる。
【００８０】
図１５は、入力インタフェース２１０の構成を説明する図である。入力インタフェース２１０は、ステートマシン２１１ａ、及び、異常検知部２１２ａを有する。なお、図１５では、入力インタフェース２１０について説明するが、他の小機能部、すなわち、スキャナ補正部２２０、編集部２３０、及び、出力インタフェース２５０も同様に、ステートマシンと異常検知部とを有する構成である。
【００８１】
なお、図１０の構成と図１５の構成との違いは、ステート値が降順の遷移をも、正常遷移とする場合を含むか否かである。
【００８２】
図１５の入力インタフェース２１０は、ステートマシン２１１ａ、及び、異常検知部２１２ａを有する。
【００８３】
ステートマシン２１１ａは、次ステート生成回路４１、及び、現ステート保持レジスタ４２を有する。次ステート生成回路４１、及び、現ステート保持レジスタ４２の機能及び構成は、ステートマシン２１１が有する、次ステート生成回路２１、及び、現ステート保持レジスタ２２と同一である。ステートマシン２１１とステートマシン２１１ａとの違いは、現ステート保持レジスタ４２からの出力が、異常検知部２１２ａが有する２つのコンバータに、それぞれ入力されることである。
【００８４】
異常検知部２１２ａは、コンバータ５０、コンバータ５９、次条件ステート生成回路５１、ＦＦ（１）５２、ＦＦ（０）５３、現ステート保持レジスタ５４、インバータ５５、及び、ＡＮＤ回路５６を有する。
【００８５】
コンバータ５０は、ステートマシン２１１ａの次ステート生成回路４１から出力される次のステート値Ａと、現ステート保持レジスタ４２が保持する現在のステート値Ｂと、が、Ａ＜Ｂの場合に、値１を出力し、Ａ≧Ｂの場合に、値０を出力する。
【００８６】
コンバータ５９は、ステートマシン２１１ａの次ステート生成回路４１から出力される次のステート値Ａと、現ステート保持レジスタ４２が保持する現在のステート値Ｂと、が、Ａ＞Ｂの場合に、値１を出力し、Ａ≦Ｂの場合に、値０を出力する。
【００８７】
次条件ステート生成回路５１は、コンバータ５０から出力される値Ａと、コンバータ５９から出力される値Ｂと、ＥＸＥＣ信号と、現ステート保持レジスタ５４に保持されるステート値と、から、次のステートのステート値を生成する。
【００８８】
ＦＦ（０）５３、及び、ＦＦ（１）５２は、ディレイフリップフロップ（Ｄ−ＦＦ）である。次条件ステート生成回路５１から出力される信号は、ＦＦ（０）５３及びＦＦ（１）５２に入力される。ＦＦ（１）５２からの出力は、ＡＮＤ回路５６に出力され、ＦＦ（０）５３からの出力は、インバータ５５に出力される。
【００８９】
ＡＮＤ回路５６と、インバータ５５とは、ＦＦ（１）５２＝１、かつ、ＦＦ（０）５３＝０の場合に、ＡＮＤ回路５６から出力されるエラー割り込みの信号Ｅの値を１とし、ＣＰＵ８００に通知する。
【００９０】
現ステート保持レジスタ５４は、異常検知部２１２ａの現在のステート値を保持し、次条件ステート生成回路５１に出力する。
【００９１】
図１６は、異常検知部２１２ａの次条件ステート生成回路５１の状態遷移を説明する図である。次条件ステート生成回路５１は、ステート０ないしステート３の４つのステートを遷移するステートマシンである。
【００９２】
図１６のステートマシンは、先ず、初期化等でリセットされる場合に、次条件ステート生成回路５１のステート値を０とする。これにより、ＦＦ（０）５３及びＦＦ（１）５２への入力を、（０，０）とする。ここで、（ａ，ｂ）のうち、ａは、ＦＦ（０）５３への入力、ｂは、ＦＦ（１）５２への入力である。
【００９３】
次条件ステート生成回路５１のステート値が０、かつ、ＥＸＥＣがｅｎａｂｌｅの状態で、コンバータ５０からの出力Ｃ＝０、すなわち、ステートマシン２１１ａの次ステート生成回路４１が、ステート値が昇順又は同値の遷移になった時に、次条件ステート生成回路５１の出力を（０，１）とする。
【００９４】
次条件ステート生成回路５１のステート値が１、かつ、ＥＸＥＣがｅｎａｂｌｅの状態で、コンバータ５０からの出力Ｃ＝１、コンバータ５９からの出力Ｄ＝０の場合、すなわち、ステートマシン２１１ａの次ステート生成回路４１が、ステート値が降順の遷移になった時は、次条件ステート生成回路５１を、ステート値が３のステートに遷移させる。
【００９５】
次条件ステート生成回路５１のステート値が１、かつ、ＥＸＥＣがｄｉｓａｂｌｅになった場合は、例えば、リセット信号にノイズがのり、処理中にも関わらずリセットがかかってしまう時のような、異常な終了条件である。そこで、次条件ステート生成回路５１のステート値を２に遷移させる。
【００９６】
次条件ステート生成回路５１のステート値が３、かつ、ＥＸＥＣがｅｎａｂｌｅの状態で、コンバータ５９からの出力Ｄ＝１の場合は異常遷移である。これは、遷移によるステート値の変化が、昇順→降順→昇順となるからである。そこで、次条件ステート生成回路５１のステート値を２に遷移させ、ＡＮＤ回路５６から、ＣＰＵ８００に対し、エラー割り込みを出力させる。
【００９７】
次条件ステート生成回路５１のステート値が３、かつ、ＥＸＥＣがｄｉｓａｂｌｅになった場合は、正常な終了条件である。すなわち、遷移によるステート値の変化が、昇順→降順で終了となるからである。そこで、次条件ステート生成回路５１のステート値を、０とし、Ｄ−ＦＦへの出力を（０，０）とする。
【００９８】
以上の繰り返しにより、状態遷移の異常を検知することができる。
【００９９】
図１７は、スキャナ読み取りの際の副走査方向のライン数制御の状態遷移を説明する図である。図１７の状態遷移図は、図１６の状態遷移を行うステートマシンの状態遷移を昇順に設計している。
【０１００】
図１７では、初期化時に（Ｂ１）のリセット処理を行い、ステートＳ３に遷移しステート値を３にセットする。ＥＸＥＣがｅｎａｂｌｅになったら、ＳＡＬ、ＳＣＬの条件に応じて、それぞれ、ステートＳ４、ステートＳ５、及び、ステートＳ６に遷移する。
【０１０１】
（Ｂ２）のＳＡＬ≠０の場合は、ステートＳ４に遷移し、ステート値を４とする。（Ｂ３）のＳＡＬ＝０かつＳＣＬ＝０の場合は、ステートＳ６に遷移し、ステート値を６とする。（Ｂ４）のＳＣＬ≠０かつＳＡＬ＝０の場合は、ステートＳ５に遷移し、ステート値を５とする。
【０１０２】
ステートＳ４では、先端を追加（ＳＡＬ）した後、（Ｂ５）ＳＣＬ＝０の場合に、ステートＳ６に遷移し、ステート値を６とする。また、（Ｂ６）ＳＣＬ≠０の場合に、ステートＳ５に遷移し、ステート値を５とする。
【０１０３】
ステートＳ５では、先端を削除（ＳＣＬ）した後、ステートＳ６に遷移し、ステート値を６とする。
【０１０４】
ステートＳ６では、画像が入力（ＶＬ）した後、（Ｂ７）ＥＡＬ≠０の場合に、ステートＳ２に遷移し、ステート値を２とする。また、（Ｂ８）ＥＡＬ＝０の場合に、ステートＳ１に遷移し、ステート値を１とする。
【０１０５】
（Ｂ７）及び（Ｂ８）の条件による状態遷移は、それまでの状態遷移によるステート値の変化が昇順であり、（Ｂ７）及び（Ｂ８）の状態遷移によるステート値の変化が降順であるため、正常な状態遷移である。
【０１０６】
ステートＳ２では、後端を追加（ＥＡＬ）した後、ステートＳ１に遷移し、ステート値を１とする。ステートＳ１への遷移は、それまでのステート値の変化が、昇順→降順であり、ここでも降順であるため、正常な状態遷移である。
【０１０７】
ステートＳ１では、追加を完了し、（Ｂ９）ＥＸＥＣがｄｉｓａｂｌｅの場合に、ステートＳ３に進み、処理を終了する。
【０１０８】
なお、図１７の状態遷移のうち、（Ｂ１）及び（Ｂ９）の遷移を除く他の状態遷移は、全て、ＥＸＥＣがｅｎａｂｅｌｅの場合に行われる。
【０１０９】
以上が、図１７の状態遷移図において、正常な状態遷移を行う場合の制御の説明である。
【０１１０】
図１８は、異常状態遷移動作を検知する処理について説明するフロー図である。図１８の処理は、ＳＴＥＰ１及びＳＴＥＰ２の２つのステップに大別される。ＳＴＥＰ１は、正常動作中に行われ、ＳＴＥＰ２は、異常な状態遷移が発生する場合に実行される。
【０１１１】
ＳＴＥＰ１のステップＳ１０１では、異常検知部２１２ａのステート値、すなわち、次条件ステート生成回路５１により生成されるステート値が、２か否かが判断される。２の場合は、ＳＴＥＰ２のステップＳ１０２に進む。２ではない場合には、処理を終了する。
【０１１２】
ステップＳ１０１に続くステップＳ１０２では、エラー割り込み信号が、ＡＮＤ回路５６からＣＰＵ８００に対して出力される。ステップＳ１０２に続いてステップＳ１０３に進み、エラーステータスレジスタ２７０に、異常な状態遷移の情報を格納する。
【０１１３】
ステップＳ１０３に続いてステップＳ１０４に進み、ＣＰＵ８００が、エラーステータスレジスタ２７０に格納されている情報を読み込む。この情報は、ステップＳ１０３で格納した、異常な状態遷移の情報に対応づけられて、エラーステータスレジスタ２７０に格納されている。
【０１１４】
ステップＳ１０４に続いてステップＳ１０５に進み、図示しない表示手段が、ステップＳ１０４で読み込まれた情報に基づいて、異常な状態遷移に係る情報を表示する。これにより、開発者が、異常な状態遷移の箇所を特定して、デバッグ等を行うことができる。
【０１１５】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【産業上の利用可能性】
【０１１６】
以上のように、本発明にかかる制御回路は、開発の容易化に有用であり、特に、複合機の制御回路に適している。
【符号の説明】
【０１１７】
１１   モジュールＡ
１２   モジュールＢ
１３   モジュールＣ
１４   モジュールＤ
１８   ステータスレジスタＡ
１９   ステータスレジスタＢ
２１   次ステート生成回路
２２   現ステート保持レジスタ
３０   コンバータ
３１   次ステート生成回路
３２、３３    フリップフロップ
３４   現ステート保持レジスタ
４１   次ステート生成回路
４２   現ステート保持レジスタ
５０、５９    コンバータ
５１   次条件ステート生成回路
５４   現ステート保持レジスタ
５５   インバータ
５６   回路
１００ 読取部
１０１ ハードウェア
１１０ 生成回路
１２０ 第１レジスタ
１２１ 第２レジスタ
１６１ 異常動作検出信号
１７０ ステート値出力回路
１８０ 異常動作検出回路
２００ 画像処理部
２１０ 入力インタフェース
２１１、２２１、２３１、２５１、２１１ａ  ステートマシン
２１１ 制御信号
２１２、２２２、２３２、２５２、２１２ａ  異常検知部
２２０ スキャナ補正部
２３０ 編集部
２４０ ２値化部
２５０ 出力インタフェース
２６０ ＣＰＵインタフェース
２７０ エラーステータスレジスタ
３００ 制御部
３２０ データ制御ブロック
３４０ ＨＤＤインタフェース
３５０ メモリインタフェース
３６０ ネットワークインタフェース
３９０ ＣＰＵインタフェース
４００ ＨＤＤ
５００ メモリ
６００ ネットワーク
【先行技術文献】
【特許文献】
【０１１８】
【特許文献１】特開２００２−３１２２０３号公報
【図１】
2011170426.tif 000003
【図２】
2011170426.tif 000004
【図３】
2011170426.tif 000005
【図４】
2011170426.tif 000006
【図５】
2011170426.tif 000007
【図６】
2011170426.tif 000008
【図７】
2011170426.tif 000009
【図８】
2011170426.tif 000010
【図９】
2011170426.tif 000011
【図１０】
2011170426.tif 000012
【図１１】
2011170426.tif 000013
【図１２】
2011170426.tif 000014
【図１３】
2011170426.tif 000015
【図１４】
2011170426.tif 000016
【図１５】
2011170426.tif 000017
【図１６】
2011170426.tif 000018
【図１７】
2011170426.tif 000019
【図１８】
2011170426.tif 000020