(57)【特許請求の範囲】
【請求項１】
画像を形成する画像形成部と、
前記画像形成部における画像の形成を制御する、マスタ部とスレーブ部とを含む制御部と、
前記制御部のマスタ部とスレーブ部との間を接続し、シリアル通信を行うシリアル通信回線と、を備え、
前記制御部の前記マスタ部は、
前記スレーブ部に送信されて当該スレーブ部との間の前記シリアル通信回線によるシリアル通信を監視する通信監視用の第１のシリアルデータを生成するとともに、当該スレーブ部から当該シリアル通信回線を介して受信した第２のシリアルデータにより、当該第１のシリアルデータが当該スレーブ部に正しく受信されたか否かを監視する演算モジュールを有し、
前記制御部の前記スレーブ部は、
前記マスタ部から前記シリアル通信回線を介して受信する前記第１のシリアルデータから、当該第１のシリアルデータによって設定されるパルス数のパルス信号を出力するパルス信号出力モジュールと、
前記パルス数の前記パルス信号を受信し、当該パルス数に応じてアナログ電圧を変更して出力するアナログ電圧出力モジュールと、
前記アナログ電圧出力モジュールの出力するアナログ電圧を、アナログデジタル変換して前記第２のシリアルデータに変換するアナログデジタル変換モジュールと、を有する
ことを特徴とする画像形成装置。
【請求項２】
マスタ制御部と、
マスタ制御部によって制御されるスレーブ制御部と、
前記マスタ制御部と前記スレーブ制御部との間でシリアル通信を行うシリアル通信回線と、を備え、
前記マスタ制御部は、
前記スレーブ制御部に送信されて当該スレーブ制御部との間の前記シリアル通信回線によるシリアル通信を監視する通信監視用の第１のシリアルデータを生成するとともに、当該スレーブ制御部から当該シリアル通信回線を介して受信した第２のシリアルデータにより、当該第１のシリアルデータが当該スレーブ制御部に正しく受信されたか否かを監視する演算モジュールを有し、
前記スレーブ制御部は、
前記マスタ制御部から前記シリアル通信回線を介して受信する前記第１のシリアルデータから、当該第１のシリアルデータによって設定されるパルス数のパルス信号を出力するパルス信号出力モジュールと、
前記パルス数の前記パルス信号を受信し、当該パルス数に応じてアナログ電圧を変更して出力するアナログ電圧出力モジュールと、
前記アナログ電圧出力モジュールの出力するアナログ電圧を、デジタル変換して前記第２のシリアルデータに変換するアナログデジタル変換モジュールと、を有する
ことを特徴とする通信監視システム。
【請求項３】
前記スレーブ制御部は、
前記スレーブ制御部の電源電圧を監視する電源監視モジュールと、
前記アナログ電圧出力モジュールの出力するアナログ電圧を設定するデータを記憶する書き換え可能な不揮発性メモリと、
前記電源監視モジュールから前記電源電圧が予め定められた最低電圧未満に低下したこと検知した信号を受信すると、前記不揮発性メモリに前記アナログ電圧出力モジュールが出力するアナログ電圧を設定するデータを書き込むためのメモリタイミングを生成するメモリタイミング生成モジュールと
をさらに備えることを特徴とする請求項２に記載の通信監視システム。
【請求項４】
前記スレーブ制御部は、
前記スレーブ制御部の電源がオンになった際、前記不揮発性メモリに書き込まれたデータにより前記アナログ電圧出力モジュールの出力するアナログ電圧が設定される
ことを特徴とする請求項３に記載の通信監視システム。
【請求項５】
前記スレーブ制御部における前記アナログ電圧出力モジュールは、デジタルポテンショメータで構成されていることを特徴とする請求項２から４のいずれか１項に記載の通信監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、通信監視システム及び通信監視回路に関する。
【背景技術】
【０００２】
特許文献１には、双方向に直列信号を伝送する伝送制御回路の受信側に、受信信号を並列化する直並変換回路と、この直並変換回路の出力を順次格納するメモリを設け、伝送相手方の状態を随時前記メモリに更新登録し、メモリの内容を読み出すことにより、伝送相手方の状況を取り込む伝送制御回路が記載されている。
【０００３】
特許文献２には、制御MPUとIOリンクを介して接続されてコントローラを構成するプロセス入出力装置であって、複数のIOモジュール、これら複数のIOモジュールをIOバス経由で制御する伝送制御モジュール、及び伝送制御モジュールとIOモジュールを収納するIOシェルフで構成され、IOシェルフの隣接する２つの実装スロットごとに同一種のIOモジュールを実装し、その一方を稼働、他方を待機としてIOモジュールを二重化し、プロセスヘの出力データを伝送制御モジュール経由でIOモジュールペアの双方に与えるとともに、プロセスヘの出力をIOモジュールぺア間の稼働/待機切替え回路により決定される稼働側だけが行い、プロセスからの入力をIOモジュールペアの双方へ接続することにより、伝送制御モジュールは前記切替え回路により決定される稼働側のデータのみを制御MPUへ通知するようにした二重化プロセス入出力装置において、IOモジュールペアのパルス入力モジュールにおけるプロセスインタフェース部およびパルスカウンタを二重化する手段と、二重化されて得られた２つのパルスカウント値を比較し不一致であれば重故障と判別して稼働/待機を切り替える手段と、を備えた二重化プロセス入出力装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−１７８０４８号公報
【特許文献２】特開平１１−６５６０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＰＵを備えるマスタ制御部と、マスタ制御部によって制御されて制御対象を制御するスレーブ制御部とを備え、マスタ制御部とスレーブ制御部との間をシリアル(ＳＰＩ：serial peripheral interface)通信でデータを送受信するマスタスレーブ方式による制御が広く用いられている。しかし、いわゆるＳＰＩ通信の規格には、パリティビットチェック、ＣＲＣ（巡回冗長検査：cyclic redundancy check）、チェックサムなどの通信エラー検出のプロトコルが規定されていない。よって、マスタ制御部からスレーブ制御部に一方的にデータを送信すると、通信回線の物理的な異常による欠落、外来ノイズによるデータ化け、通信回線を構成するケーブル等の線材の特性におけるばらつきなどにより、一定の信号波形品質が得られず、通信エラーなどが発生する。このような場合であっても、マスタ制御部は、スレーブ制御部の状態を把握することができない。
本発明は、シリアル通信でデータが送受信されるマスタ制御部とスレーブ制御部とを備え、スレーブ制御部の状態をマスタ制御部が把握できるマスタスレーブ方式によって制御される画像形成装置などを提供する。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、画像を形成する画像形成部と、前記画像形成部における画像の形成を制御する、マスタ部とスレーブ部とを含む制御部と、前記制御部のマスタ部とスレーブ部との間を接続し、シリアル通信を行うシリアル通信回線と、を備え、前記制御部の前記マスタ部は、前記スレーブ部に送信されて当該スレーブ部との間の前記シリアル通信回線によるシリアル通信を監視する通信監視用の第１のシリアルデータを生成するとともに、当該スレーブ部から当該シリアル通信回線を介して受信した第２のシリアルデータにより、当該第１のシリアルデータが当該スレーブ部に正しく受信されたか否かを監視する演算モジュールを有し、前記制御部の前記スレーブ部は、前記マスタ部から前記シリアル通信回線を介して受信する前記第１のシリアルデータから、当該第１のシリアルデータによって設定されるパルス数のパルス信号を出力するパルス信号出力モジュールと、前記パルス数の前記パルス信号を受信し、当該パルス数に応じてアナログ電圧を変更して出力するアナログ電圧出力モジュールと、前記アナログ電圧出力モジュールの出力するアナログ電圧を、アナログデジタル変換して前記第２のシリアルデータに変換するアナログデジタル変換モジュールと、を有することを特徴とする画像形成装置である。
請求項２に記載の発明は、マスタ制御部と、マスタ制御部によって制御されるスレーブ制御部と、前記マスタ制御部と前記スレーブ制御部との間でシリアル通信を行うシリアル通信回線と、を備え、前記マスタ制御部は、前記スレーブ制御部に送信されて当該スレーブ制御部との間の前記シリアル通信回線によるシリアル通信を監視する通信監視用の第１のシリアルデータを生成するとともに、当該スレーブ制御部から当該シリアル通信回線を介して受信した第２のシリアルデータにより、当該第１のシリアルデータが当該スレーブ制御部に正しく受信されたか否かを監視する演算モジュールを有し、前記スレーブ制御部は、前記マスタ制御部から前記シリアル通信回線を介して受信する前記第１のシリアルデータから、当該第１のシリアルデータによって設定されるパルス数のパルス信号を出力するパルス信号出力モジュールと、前記パルス数の前記パルス信号を受信し、当該パルス数に応じてアナログ電圧を変更して出力するアナログ電圧出力モジュールと、前記アナログ電圧出力モジュールの出力するアナログ電圧を、デジタル変換して前記第２のシリアルデータに変換するアナログデジタル変換モジュールと、を有することを特徴とする通信監視システムである。
請求項３に記載の発明は、前記スレーブ制御部は、前記スレーブ制御部の電源電圧を監視する電源監視モジュールと、前記アナログ電圧出力モジュールの出力するアナログ電圧を設定するデータを記憶する書き換え可能な不揮発性メモリと、前記電源監視モジュールから前記電源電圧が予め定められた最低電圧未満に低下したこと検知した信号を受信すると、前記不揮発性メモリに前記アナログ電圧出力モジュールが出力するアナログ電圧を設定するデータを書き込むためのメモリタイミングを生成するメモリタイミング生成モジュールとをさらに備えることを特徴とする請求項２に記載の通信監視システムである。
請求項４に記載の発明は、前記スレーブ制御部は、前記スレーブ制御部の電源がオンになった際、前記不揮発性メモリに書き込まれたデータにより前記アナログ電圧出力モジュールの出力するアナログ電圧が設定されることを特徴とする請求項３に記載の通信監視システムである。
請求項５に記載の発明は、前記スレーブ制御部における前記アナログ電圧出力モジュールは、デジタルポテンショメータで構成されていることを特徴とする請求項２から４のいずれか１項に記載の通信監視システムである。
【発明の効果】
【０００７】
請求項１の発明によれば、第１のシリアルデータと第２のシリアルデータとを送受信しない場合に比べ、シリアル通信でデータが送受信されるマスタ部とスレーブ部とを備え、スレーブ部の状態をマスタ部が把握できるマスタスレーブ方式によって制御される画像形成装置を提供できる。
請求項２の発明によれば、第１のシリアルデータと第２のシリアルデータとを送受信しない場合に比べ、シリアル通信でデータが送受信されるマスタ制御部とスレーブ制御部とを備え、スレーブ制御部の状態をマスタ制御部が把握できるマスタスレーブ方式における通信監視システムを提供できる。
請求項３の発明によれば、不揮発性メモリにアナログ電圧出力モジュールのアナログ電圧を設定するデータを記憶させない場合に比べ、スレーブ制御部に発生した電源リセットの要因をより判別しやすくなる。
請求項４の発明によれば、不揮発性メモリに書き込まれたデータによりアナログ電圧出力モジュールのアナログ電圧を設定しない場合に比べ、スレーブ制御部に発生した電源リセットの要因がより容易に推定できる。
請求項５の発明によれば、デジタルポテンショメータを用いない場合に比べ、より簡易な構成でデジタル信号をアナログ信号に変換できる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態が適用される画像形成装置の一例を示す図である。
【図２】制御部の構成の一例を示す図である。
【図３】通信監視回路を説明する図である。
【図４】マスタ制御部とスレーブ制御部との間で送受信されるデータ列を示す図である。（ａ）は、マスタ制御部からスレーブ制御部に送信されるデータ列、（ｂ）は、スレーブ制御部からマスタ制御部に送信されるデータ列である。
【図５】校正ルーチンにおける、マスタ制御部、スレーブ制御部におけるＩ／Ｏ拡張回路及び通信監視回路に関するシーケンス図である。
【図６】参照テーブルを作成するルーチン（参照テーブル作成ルーチン）を説明するフローチャートである。
【図７】参照テーブルの一例を説明する図である。
【図８】通信監視データＴＣＤｓにおけるカウントパターンＣＰの一例を示す図である。
【図９】通信監視データＴＣＤｓに設定するカウントパターンＣＰを選択するルーチン（カウントパターン選択ルーチン）を説明するフローチャートである。
【図１０】通信監視ルーチンにおける、マスタ制御部、スレーブ制御部におけるＩ／Ｏ拡張回路及び通信監視回路に関するシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
ここでは、マスタ制御部とスレーブ制御部とを備え、マスタスレーブ方式により、それらの間でシリアル(ＳＰＩ：serial peripheral interface)通信によってデータが送受信される装置を、画像形成装置を一例として説明する。
【００１０】
（画像形成システム）
図１は、本実施の形態が適用される画像形成装置１００の一例を示す図である。
この画像形成装置１００は、スキャン機能、プリント機能、コピー機能及びファクシミリ機能を備えた所謂複合機である。
【００１１】
画像形成装置１００は、紙等の記録媒体に記録された画像を読み取る画像読取部１０３と、記録媒体に画像を形成する画像形成部１０２と、ユーザから電源のオン／オフ、スキャン機能、プリント機能、コピー機能及びファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース（user interface）部１０１（以下では、ＵＩ部１０１と表記する。）と、通信回線（不図示）を介して外部に設けられた端末装置（不図示）、ファクシミリ装置（不図示）及びサーバ装置（不図示）との間でデータの送受信を行う送受信部１０４とを備えている。
さらに、画像読取部１０３、画像形成部１０２、ＵＩ部１０１及び送受信部１０４の動作を制御する制御部１を備えている。なお、画像読取部１０３、画像形成部１０２、ＵＩ部１０１及び送受信部１０４をそれぞれ区別しないときは、機能ブロックと表記する。
そして、それぞれの機能ブロックは、制御部１により制御される複数の制御対象を備えているとする。
【００１２】
制御部１は、ＵＩ部１０１、画像形成部１０２、画像読取部１０３及び送受信部１０４から離れて設置されたマスタ制御部１０と、ＵＩ部１０１、画像形成部１０２、画像読取部１０３及び送受信部１０４に近接して設けられたスレーブ制御部２０と、マスタ制御部１０とスレーブ制御部２０との間を接続するシリアル通信回線３０とを備えている。
そして、マスタ制御部１０とスレーブ制御部２０とは、シリアル通信回線３０を介して、データが送受信される。
なお、マスタ制御部をマスタ部、スレーブ制御部をスレーブ部と表記することがある。
【００１３】
制御部１におけるマスタ制御部１０は、論理演算及び算術演算を実行するＡＬＵ（Arithmetic Logical Unit：論理算術演算ユニット）などを備えた演算モジュールの一例としての中央演算処理装置（以下ではＣＰＵと表記する。）（後述する図２におけるＣＰＵ１１）を備えている。
【００１４】
一方、制御部１におけるスレーブ制御部２０は、ＣＰＵを持たず、マスタ制御部１０から受信したデータ（制御対象を制御するための制御コマンド、制御データなど）を、機能ブロックにおける制御対象に送信する。また、スレーブ制御部２０は、機能ブロックにおける制御対象から送信されたデータ（制御対象の状態を表すステータスデータ、制御対象がセンサである場合のセンサデータなど）を、マスタ制御部１０に送信する。
【００１５】
すなわち、マスタ制御部１０は、能動装置、スレーブ制御部２０は、受動装置として機能する。
ここでは、制御部１におけるマスタ制御部１０からスレーブ制御部２０へ送信されるデータ（制御対象を制御するための制御コマンド、制御データなど）を、制御のためのデータ、スレーブ制御部２０からマスタ制御部１０に送信されるデータ（制御対象の状態を表すステータスデータ、制御対象がセンサである場合のセンサデータなど）を、応答のためのデータと表記する。なお、制御のためのデータと応答のためのデータとを区別しない場合は、データと表記する。
【００１６】
なお、スレーブ制御部２０は、マスタ制御部１０のＩ／Ｏ（Input/Output）機能を拡張する拡張Ｉ／Ｏに相当する。
【００１７】
図１では、スレーブ制御部２０を、ＵＩ部１０１、画像形成部１０２、画像読取部１０３及び送受信部１０４のすべての機能ブロックに対して、１個設けているが、それぞれの機能ブロックに、それぞれスレーブ制御部２０を設けてもよく、複数の機能ブロック毎に１個のスレーブ制御部２０を設けてもよい。
【００１８】
この画像形成装置１００では、画像読取部１０３によってスキャン機能が実現され、画像形成部１０２によってプリント機能が実現され、画像読取部１０３及び画像形成部１０２によってコピー機能が実現され、画像読取部１０３、画像形成部１０２及び送受信部１０４によってファクシミリ機能が実現される。
【００１９】
（制御部１）
図２は、制御部１の構成の一例を示す図である。ここでは、一例として、画像形成部１０２に含まれる制御対象を制御するとして説明する。
制御部１は、前述したように、マスタ制御部１０とスレーブ制御部２０とを備えている。そして、マスタ制御部１０とスレーブ制御部２０とは、シリアル通信回線３０で接続されている。シリアル通信回線３０は、マスタ制御部１０側から見て、送信用の通信路Ｔｘと受信用の通信路Ｒｘとの２系統の通信路を備えている。
すなわち、マスタ制御部１０からスレーブ制御部２０に、通信路Ｔｘを介してデータが送信され、スレーブ制御部２０からマスタ制御部１０に、通信路Ｒｘを介してデータが送信される。
なお、マスタ制御部１０、スレーブ制御部２０及びシリアル通信回線３０から構成され、シリアル通信を監視するシステムが、通信監視システムの一例である。
【００２０】
以下では、制御部１におけるマスタ制御部１０とスレーブ制御部２０とを詳細に説明する。
（マスタ制御部１０）
マスタ制御部１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、通信制御ユニット１５を備えている。さらに、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、通信制御ユニット１５の間でデータを送受信するデータバス１４を備えている。
電源がオンになると、ＣＰＵ１１は、ＲＯＭ１２に格納されているプログラム及びデータを、データバス１４を介して、ＲＡＭ１３上に読み出して展開し、プログラムを実行する。
【００２１】
通信制御ユニット１５は、送信モジュール１６、受信モジュール１７、通信制御モジュール１８を備えている。そして、送信モジュール１６は、シリアル通信回線３０の通信路Ｔｘに接続され、受信モジュール１７は、シリアル通信回線３０の通信路Ｒｘに接続されている。
通信制御モジュール１８は、ＣＰＵ１１の制御により、送信モジュール１６及び受信モジュール１７によるデータの送受信を制御する。
【００２２】
（スレーブ制御部２０）
スレーブ制御部２０は、Ｉ／Ｏ拡張回路２１、通信監視回路２２、ウオッチドックタイマ回路２３（以下では、ＷＤＴ２３と表記する。）、電源監視モジュールの一例としての電源監視回路２４、電源リセットモジュールの一例としての電源リセット回路２５を備えている。
【００２３】
［Ｉ／Ｏ拡張回路２１］
Ｉ／Ｏ拡張回路２１は、通信制御ユニット４０、Ｉ／Ｏ拡張ユニット５０、クロック生成回路６０、システムリセット回路７０を備えている。
【００２４】
通信制御ユニット４０は、マスタ制御部１０における通信制御ユニット１５と同様に、受信モジュール４１、送信モジュール４２、通信制御モジュール４３を備えている。そして、受信モジュール４１は、シリアル通信回線３０の通信路Ｔｘに接続され、送信モジュール４２は、シリアル通信回線３０の通信路Ｒｘに接続されている。
すなわち、マスタ制御部１０とスレーブ制御部２０との間のシリアル通信において、マスタ制御部１０の通信制御ユニット１５がマスタインターフェースを、スレーブ制御部２０のＩ／Ｏ拡張回路２１における通信制御ユニット４０がスレーブインターフェースを構成している。
【００２５】
Ｉ／Ｏ拡張ユニット５０は、Ｉ／Ｏ制御モジュール５１、ＩＦ（interface：インターフェース）モジュール５２、アナログデジタル変換モジュールの一例としてのＡ／Ｄモジュール５３、パルス信号出力モジュール５４を備えている。なお、ＩＦモジュール５２は、単数であってもよく、複数であってもよい。
【００２６】
Ｉ／Ｏ制御モジュール５１には、ＩＦモジュール５２、Ａ／Ｄモジュール５３、パルス信号出力モジュール５４が並列に接続されるとともに、通信制御ユニット４０、クロック生成回路６０に接続されている。
Ｉ／Ｏ制御モジュール５１は、通信制御ユニット４０の受信モジュール４１が受信したデータを、ＩＦモジュール５２、Ａ／Ｄモジュール５３、パルス信号出力モジュール５４の内の指定されたいずれかに送信する。また、ＩＦモジュール５２、Ａ／Ｄモジュール５３、パルス信号出力モジュール５４のいずれからか受信したデータを、通信制御ユニット４０の送信モジュール４２に送信する。
【００２７】
図２では、例として、２個のＩＦモジュール５２が、画像形成部１０２の二つの制御対象にそれぞれ接続されているとする。すなわち、ＩＦモジュール５２がデータを受信すると、そのデータが画像形成部１０２の制御対象に送信される。これにより、その制御対象が制御される。
また、画像形成部１０２の制御対象からのデータが、ＩＦモジュール５２に送信され、Ｉ／Ｏ制御モジュール５１及び通信制御ユニット４０を介して、マスタ制御部１０に送信される。
なお、画像形成部１０２における制御対象は、例えば、モータ、ヒータ、温度センサ、湿度センサ、速度センサなどである。
ＵＩ部１０１、画像読取部１０３、送受信部１０４についても同様である。
【００２８】
また、ＩＦモジュール５２の一つが、後述するＷＤＴ２３に接続されている。
パルス信号出力モジュール５４及びＡ／Ｄモジュール５３については、後述する通信監視回路２２の説明において説明する。
【００２９】
クロック生成回路６０は、クロック信号ＣＫを生成して、Ｉ／Ｏ拡張ユニット５０におけるＩ／Ｏ制御モジュール５１に送信する。すなわち、Ｉ／Ｏ制御モジュール５１とＩＦモジュール５２、Ａ／Ｄモジュール５３、パルス信号出力モジュール５４とのデータの送受信は、クロック生成回路６０によって生成されるクロック信号ＣＫに同期して行われる。
【００３０】
システムリセット回路７０は、後述する電源リセット回路２５からの信号を受信すると、Ｉ／Ｏ拡張回路２１をリセットする。
なお、システムリセット回路７０は、Ｉ／Ｏ拡張回路２１がＡＳＩＣ（特定用途向け集積回路；application specific integrated circuit）として構成される場合に、ＡＳＩＣをリセットする回路である。よって、ＡＳＩＣを用いない場合には、後述する電源リセット回路２５が、Ｉ／Ｏ拡張回路２１をリセットしてもよい。
【００３１】
［通信監視回路２２］
通信監視回路２２は、アナログ電圧出力モジュールの一例としてのデジタルポテンショメータ８１（以下では、ＤＰ８１と表記する。）、書き換え可能な不揮発性メモリ８２（以下では、ＮＶメモリ８２と表記する。）、メモリタイミング生成モジュールの一例としてのメモリタイミング生成回路８３を備えている。
ＤＰ８１は、例えば直列接続された複数の抵抗（抵抗アレイ）を備えている。そして、直列接続された複数の抵抗のそれぞれの接続点のいずれかが出力端子（後述する図３における端子ＲＷ）に接続されている。そして、端子ＲＷに接続される抵抗の接続点が、受信したパルス信号に応じて変化することで、出力電圧を変化させている。
ここでは、接続点をタップと表記する。なお、接続点は、ステップと表記されることもある。
【００３２】
ＮＶメモリ８２は、書き換え可能な不揮発性メモリであって、電源の供給がなくとも、書き込まれたデータを保持するメモリである。ここでは、ＤＰ８１の端子ＲＷに接続されている抵抗の接続点（タップ）の位置（タップ位置）を記憶する。なお、ＮＶメモリ８２には、ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）、フラッシュメモリなどを用い得る。
【００３３】
メモリタイミング生成回路８３は、ＮＶメモリ８２に、ＤＰ８１の端子ＲＷに接続されているタップ位置を示すデータを書き込むための一連の制御信号列から構成されるメモリタイミングを生成する。なお、メモリタイミング生成回路８３は、ハードウエアロジックにより構成され、後述する電源監視回路２４から信号を受信すると、自動的にメモリタイミングを生成することが好ましい。
すなわち、メモリタイミング生成回路８３よって生成されたメモリタイミングにより、その際設定されているＤＰ８１のタップ位置を示すデータがＮＶメモリ８２に書き込まれる。
【００３４】
通信監視回路２２は、Ｉ／Ｏ拡張回路２１におけるＩ／Ｏ拡張ユニット５０のパルス信号出力モジュール５４に接続されている。そして、通信監視回路２２は、パルス信号出力モジュール５４から、ＤＰ８１におけるタップ位置を移動させるパルス信号を受信する。
また、通信監視回路２２の出力端子（図３における端子ＲＷ）は、Ｉ／Ｏ拡張回路２１におけるＩ／Ｏ拡張ユニット５０のＡ／Ｄモジュール５３に接続されている。
【００３５】
［ＷＤＴ２３］
ＷＤＴ２３は、Ｉ／Ｏ拡張ユニット５０における一つのＩＦモジュール５２に接続されている。また、ＷＤＴ２３は、後述する電源リセット回路２５に接続されている。
ＷＤＴ２３は、ＷＤＴ２３の備えるタイマをリセットする信号を予め定められた周期で受信する限り、電源リセット回路２５に信号を出力しない。しかし、ＷＤＴ２３は、ＷＤＴ２３のタイマをリセットする信号をこの予め定められた周期で受信しない場合に、タイマがタイムアップすることにより、電源リセット回路２５に信号を送信する。これにより、スレーブ制御部２０が電源リセットされる。
【００３６】
［電源監視回路２４］
電源監視回路２４は、スレーブ制御部２０に供給される電源の電圧（電源電圧）を監視する。そして、電源監視回路２４は、電源電圧が予め定められた最低電圧未満になったことを検知すると、通信監視回路２２のメモリタイミング生成回路８３及び電源リセット回路２５に信号を送信する。
【００３７】
なお、電源監視回路２４は、電源電圧が最低電圧未満になると、通信監視回路２２を電源供給回路（不図示）から切り離す。これにより、電源電圧が最低電圧未満になっても、急激に低下することを抑制し、しばらくの間、通信監視回路２２が動作を継続できるようにしている。
例えば、通信監視回路２２の電源が供給される部分には、コンデンサが設けられている。スレーブ制御部２０が正常に動作している間は、電源供給回路は、通信監視回路２２に電源を供給するとともに、そのコンデンサを充電する。そして、電源監視回路２４は、電源電圧が最低電圧未満になると、通信監視回路２２を電源供給回路からスイッチなどにより切り離す。これにより、通信監視回路２２は、コンデンサに蓄積された電力によってしばらくの間、動作を継続する。なお、通信監視回路２２の動作電圧は、最低電圧より低く設定されていることが望ましい。このようにすることで、通信監視回路２２は、動作電圧が最低電圧より低く設定されていない場合に比べ、より長い時間において動作を継続する。
なお、動作が継続される時間は、ＤＰ８１のタップ位置を示すデータがＮＶメモリ８２に書き込むに要する時間以上であればよい。
【００３８】
［電源リセット回路２５］
電源リセット回路２５は、スレーブ制御部２０を電源リセットする回路である。電源リセット回路２５は、ＷＤＴ２３及び電源監視回路２４に接続されている。そして、電源リセット回路２５は、ＷＤＴ２３又は電源監視回路２４のいずれかから信号を受信すると、Ｉ／Ｏ拡張回路２１におけるシステムリセット回路７０及びマスタ制御部１０におけるＣＰＵ１１に信号を送信する。そして、システムリセット回路７０により、Ｉ／Ｏ拡張回路２１がリセットされ、電源リセット回路２５により、通信監視回路２２が電源リセットされる。すなわち、電源リセット回路２５は、スレーブ制御部２０を電源リセットする。
なお、電源リセットとは、電源を瞬時遮断した後、再度電源を供給することをいう。これにより、スレーブ制御部２０は、初期状態で再起動（再立ち上げ）される。
【００３９】
（通信監視回路２２の詳細）
図３は、通信監視回路２２を説明する図である。
前述したように、通信監視回路２２は、ＤＰ８１、ＮＶメモリ８２、メモリタイミング生成回路８３を備えている。
ＤＰ８１は、直列接続された複数の抵抗（抵抗アレイ）を備えている。抵抗アレイの一方が端子ＲＬ、他方が端子ＲＨである。そして、直列接続された複数の抵抗のそれぞれの接続点（タップ）のいずれかが端子ＲＷに接続される。
ここで、端子ＲＬが基準電位ＧＮＤ（接地電位ＧＮＤ）、端子ＲＨが電源電位ＶＣＣ（通信監視回路２２の電源電圧）に接続されているとする。この場合、端子ＲＷは、電源電位ＶＣＣと基準電位ＧＮＤとの間の電圧になる。そして、端子ＲＷの電圧は、直列接続された抵抗の数、すなわちタップ数（後述するＳＮ）で決まる間隔（分解能）で設定される。なお、タップ数は、例えば１２８、２５６などであることから、端子ＲＷは、アナログ信号（アナログ電圧）を出力することになる。
なお、ＤＰ８１の端子ＲＷは、アナログ信号を出力し続ける。
【００４０】
ＤＰ８１は、アップ／ダウン信号Ｕ／Ｄを受信する端子Ｕ／Ｄ（図３ではＵ／Ｄと表記する。）、パルス信号Ｐを受信する端子Ｐ（図３ではＰと表記する。）、クロック信号ＣＫを受信する端子ＣＫ（図３ではＣＫと表記する。）を備えている。ＤＰ８１は、１個のパルス信号Ｐを受信すると、端子ＲＷに接続されるタップ位置が一つ移動する（変更される）。このとき、アップ／ダウン信号Ｕ／Ｄがアップ（Ｕ）に設定されていると、タップ位置は大きい側（端子ＲＷの電圧が大きくなる方向）に一つ移動する。一方、アップ／ダウン信号Ｕ／Ｄがダウン（Ｄ）に設定されていると、タップ位置は小さい側（端子ＲＷの電圧が小さくなる方向）に一つ移動する。そして、パルス信号Ｐが複数供給されると、端子ＲＷに接続されるタップ位置が、パルス数だけ移動する。
【００４１】
なお、電源監視回路２４は、電源電圧が最低電圧未満になったことを検知すると、通信監視回路２２のメモリタイミング生成回路８３に端子Ｗ（図３ではＷと表記する。）を介して、信号を送信する。
【００４２】
以上説明したように、通信監視回路２２は、電源電位ＶＣＣ及び基準電位ＧＮＤが供給される端子の他、デジタル信号を受信する端子Ｕ／Ｄ、端子Ｐ、端子ＣＫ、端子Ｗ及びアナログ信号を出力する端子ＲＷを備えている。
【００４３】
なお、ＤＰ８１及びＮＶメモリ８２に、これらを一体化したＩＣ（integrated circuit）を使用してもよい。
【００４４】
（制御部１の動作の概要）
制御部１（図２参照）の動作の概要を説明する。
本実施の形態が適用される制御部１は、マスタ制御部１０とスレーブ制御部２０との間でシリアル通信が正常に行われているか否かを監視（通信監視）するとともに、スレーブ制御部２０が電源リセットされた場合において、電源リセットの要因を推定（電源リセット要因の推定）する。
【００４５】
［通信監視］
まず、マスタ制御部１０とスレーブ制御部２０との間でシリアル通信が正常に行われているか否かを監視する場合（通信監視）について説明する。
図４は、マスタ制御部１０とスレーブ制御部２０との間で送受信されるデータ列を示す図である。図４（ａ）は、マスタ制御部１０からスレーブ制御部２０に送信されるデータ列、図４（ｂ）は、スレーブ制御部２０からマスタ制御部１０に送信されるデータ列である。
図４（ａ）に示すように、マスタ制御部１０からスレーブ制御部２０に、制御のためのデータＣＤｓに加え、通信監視用の通信監視データＴＣＤｓが予め定められた周期ｔｐで送信される。
また、図４（ｂ）に示すように、スレーブ制御部２０からマスタ制御部１０に、応答のためのデータＣＤｒに加え、通信監視データＴＣＤｓに応答する通信監視応答データＴＣＤｒが送信される。一例として、通信監視応答データＴＣＤｒも、周期ｔｐで送信されるとする。
例えば、間隔ｔｐは、１０ｍｓである。
【００４６】
通信監視データＴＣＤｓは、後述するように、ＤＰ８１のタップ位置を移動させるためのパルス数を指定するデータを含んでいる。図４では、通信監視データＴＣＤｓに含まれるパルス数を指定するデータであるカウントパターンＣＰを示している。
また、通信監視応答データＴＣＤｒは、後述するように、ＤＰ８１のタップ位置を示すデジタル信号出力ＤＰＯｄを含んでいる。図４では、通信監視応答データＴＣＤｒに含まれるデジタル信号出力ＤＰＯｄを示している。
【００４７】
ここで、カウントパターンＣＰを含む通信監視データＴＣＤｓはシリアルデータであって、第１のシリアルデータの一例である。デジタル信号出力ＤＰＯｄを含む通信監視応答データＴＣＤｒもシリアルデータであって、第２のシリアルデータの一例である。
なお、カウントパターンＣＰ及びデジタル信号出力ＤＰＯｄに付す（Ｔ）はタイミングを表し、Ｔに対して、Ｔ−１は直前、Ｔ＋１は直後を表している。
カウントパターンＣＰ及びデジタル信号出力ＤＰＯｄについては、後述する。
【００４８】
通信監視データＴＣＤｓは、スレーブ制御部２０において、通信制御ユニット４０によって受信されると、Ｉ／Ｏ拡張ユニット５０のＩ／Ｏ制御モジュール５１を介して、パルス信号出力モジュール５４に送信される（図２参照）。
すると、パルス信号出力モジュール５４は、通信監視データＴＣＤｓのカウントパターンＣＰで指定された数のパルスを、通信監視回路２２に送信する。これにより、通信監視回路２２におけるＤＰ８１のタップ位置が移動する（図３参照）。
なお、後述するように、パルス信号出力モジュール５４は、通信監視データＴＣＤｓで指定されたパルス数のパルスを送信する前に、アップ／ダウン信号Ｕ／Ｄを送信して、タップ位置を移動させる方向をアップ（Ｕ）又はダウン（Ｄ）に設定する。
【００４９】
図２に示すように、通信監視回路２２におけるＤＰ８１の端子ＲＷのアナログ信号出力ＤＰＯａ（ここで、ａはアナログ値であることを示す。）が、Ｉ／Ｏ拡張ユニット５０におけるＡ／Ｄモジュール５３に入力する。すると、Ａ／Ｄモジュール５３は、ＤＰ８１のアナログ信号出力ＤＰＯａをシリアル信号に変換してデジタル信号出力ＤＰＯｄ（ここで、ｄはデジタル値であることを示す。）を出力する。Ａ／Ｄモジュール５３が出力するデジタル信号出力ＤＰＯｄが、Ｉ／Ｏ制御モジュール５１及び通信制御ユニット４０を介して、マスタ制御部１０に送信される。
アナログ信号出力ＤＰＯａは、ＤＰ８１のタップ位置を示すアナログ信号であって、アナログ信号出力ＤＰＯａからＡ／Ｄ変換されたデジタル信号出力ＤＰＯｄは、ＤＰ８１のタップ位置を示すデジタル信号である。
【００５０】
そして、マスタ制御部１０は、受信したデジタル信号出力ＤＰＯｄにより、通信監視データＴＣＤｓにおいて送信したカウントパターンＣＰが正しく受信されたか否かを判断する。マスタ制御部１０は、正しく受信されたと判断する場合には、通信監視を継続する。マスタ制御部１０は、正しく受信されていないと判断する場合には、通信エラーなどの通信異常が発生したと判断して、エラーログを記録する。そして、直前に正しく受信されたと判断したタイミング以降に送信したデータを再送したり、スレーブ制御部２０を電源リセットしたりする。
【００５１】
ここで、本実施の形態が適用される場合と、スレーブ制御部２０が通信監視回路２２を備えない本実施の形態が適用されない場合とを比較する。
本実施の形態が適用されない場合とは、マスタ制御部１０とスレーブ制御部２０との間で、通信監視データＴＣＤｓ及び通信監視応答データＴＣＤｒの送受信がされない場合をいう。
【００５２】
本実施の形態が適用されない場合には、マスタ制御部１０は、スレーブ制御部２０にデータ（図４におけるＣＤｓ）を一方的に送信することになる。このため、マスタ制御部１０は、送信したデータがスレーブ制御部２０によって正しく受信されているか否かを判断できない。すなわち、通信エラーが発生しても、マスタ制御部１０は、通信エラーの発生を検知することができない。
この場合、マスタ制御部１０は、機能ブロックにおける制御対象がエラーを含むデータを受信したことによる異常動作などによって発せられる異常（フェイル：fail）信号などを受信することで、通信エラーの発生を知ることになる。
【００５３】
これに対し、本実施の形態が適用される場合では、マスタ制御部１０とスレーブ制御部２０との間において、通信監視データＴＣＤｓ及び通信監視応答データＴＣＤｒの送受信が行われる。よって、マスタ制御部１０は、送信した通信監視データＴＣＤｓがスレーブ制御部２０によって正しく受信されているか否かを判断している。
正しく受信されていると判断される場合には、マスタ制御部１０とスレーブ制御部２０との間において、シリアル通信が正常に行われているとともに、スレーブ制御部２０が正常に動作していると推定しうる。
【００５４】
また、正しく受信されていないと判断された場合でも、再度、通信監視データＴＣＤｓを送信して、通信監視応答データＴＣＤｒを受信することにより、ノイズによる一時的な通信エラーか否かが判別しうる。すなわち、再度送信した通信監視データＴＣＤｓが正しく受信されていると判断された場合には、ノイズによる一時的な通信エラーと判断してよい。ノイズによる通信エラーの場合には、繰り返し通信監視データＴＣＤｓを送信し、通信監視応答データＴＣＤｒを受信することによりノイズの発生頻度（ノイズ混入頻度）を評価しうる。
【００５５】
なお、マスタ制御部１０からスレーブ制御部２０に送信する制御するためのデータＣＤｓを、スレーブ制御部２０からマスタ制御部１０に折り返し送信させることで、マスタ制御部１０からスレーブ制御部２０に正しくデータＣＤｓが送信されているか否かを判断する方式がある（ミラー方式）。
しかし、ミラー方式では、シリアル通信回線３０における受信用の通信路Ｒｘが、折り返しのデータＣＤｓに占有される。すなわち、シリアル通信回線３０の通信レートがミラー方式を使用しない場合の倍になる。このため、制御対象からの応答のためのデータＣＤｒの送信が妨げられるおそれがある。すなわち、画像形成装置１００が必要とする通信レートが確保できないおそれがある。
これに対して、本実施の形態が適用される場合では、図４に示すように、機能ブロックを制御するデータＣＤｓの間に、周期的に通信監視データＴＣＤｓを挿入している。そして、折り返される通信監視応答データＴＣＤｒは、通信監視データＴＣＤｓに対応して送信される。よって、応答のためのデータＣＤｒの送信が妨げられることが抑制される。
【００５６】
［電源リセット要因の推定］
次に、スレーブ制御部２０において、電源リセットが発生した場合について説明する。電源リセットは、例えば、スレーブ制御部２０に電源異常が発生する場合、外部からリセット信号が入力された場合、ＷＤＴ２３のタイムアウトによる場合などに発生する。
【００５７】
まず、スレーブ制御部２０の電源に異常が生じ、電源電圧が最低電圧未満になることにより、スレーブ制御部２０に電源リセットが発生したとする。
この場合、電源監視回路２４は、電源電圧が最低電圧未満に低下したことを検知し、通信監視回路２２のメモリタイミング生成回路８３に信号を送信する。
すると、メモリタイミング生成回路８３は、ＮＶメモリ８２にＤＰ８１のタップ位置を示すデータを書き込むためのメモリタイミングを生成し、ＮＶメモリ８２にＤＰ８１のタップ位置を示すデータを書き込む。
ＮＶメモリ８２には、ＤＰ８１のタップ位置を示すデータが書き込めるように、ＤＰ８１のタップ位置を示すデータが設定されている。しかし、メモリタイミング生成回路８３がメモリタイミングを生成しない限り、ＮＶメモリ８２へのＤＰ８１のタップ位置を示すデータの書き込み（記憶）は行われない。
電源電圧が最低電圧未満に低下したときに限りＮＶメモリ８２へ書き込むことにより、ＮＶメモリ８２に書き換え（書き込み）回数の制限があっても、書き換え回数がこの制限に達することが抑制される。
【００５８】
なお、前述したように、通信監視回路２２は、ＮＶメモリ８２にＤＰ８１のタップ位置を示すデータが書き込まれるまでの間、動作を継続する。
【００５９】
その後、スレーブ制御部２０の電源電圧が回復すると、ＮＶメモリ８２に書き込まれたＤＰ８１のタップ位置を表すデータ（ＮＶメモリ値）により、ＤＰ８１のタップ位置が設定される。
そして、上記したように、ＤＰ８１のアナログ信号出力ＤＰＯａが、Ａ／Ｄモジュール５３によりデジタル信号出力ＤＰＯｄに変換され、マスタ制御部１０に送信される。
マスタ制御部１０は、それまでにスレーブ制御部２０に送信した通信監視データＴＣＤｓにおけるカウントパターンＣＰの履歴を記憶している。よって、スレーブ制御部２０からマスタ制御部１０に送信されたデジタル信号出力ＤＰＯｄと、通信監視データＴＣＤｓのカウントパターンＣＰで指定したパルス数とから、どの時点において、スレーブ制御部２０に電源異常が発生したか判断される。
そして、ＤＰ８１のタップ位置が、直前に送信した通信監視データＴＣＤｓにおけるカウントパターンＣＰによって設定されたタップ位置と一致すれば、スレーブ制御部２０の電源電圧の低下によって、スレーブ制御部２０の電源リセットが発生したと推定される。
【００６０】
また、スレーブ制御部２０の電源リセットが、ＷＤＴ２３によって発生した場合には、図２から分かるように、電源監視回路２４は動作しない。よって、ＮＶメモリ８２に記憶されたＤＰ８１のタップ位置は、直前に送信した通信監視データＴＣＤｓのカウントパターンＣＰによって設定されたタップ位置と一致せず、それより以前に送信した通信監視データＴＣＤｓのカウントパターンＣＰによって設定されたタップ位置と一致するはずである。
よって、スレーブ制御部２０の電源リセットが、電源電圧が最低電圧未満に低下したことによって発生したのではないと推定しうる。
【００６１】
そして、スレーブ制御部２０の電源リセットが、外部からのリセット信号によって発生する場合には、リセット信号は、電源リセット回路２５に入力される。この場合においても、図２から分かるように、電源監視回路２４は動作しない。よって、ＮＶメモリ８２書き込まれたＤＰ８１のタップ位置は、直前に送信した通信監視データＴＣＤｓのカウントパターンＣＰよって設定されたタップ位置と一致せず、それ以前に送信した通信監視データＴＣＤｓのカウントパターンＣＰによって設定されたタップ位置と一致するはずである。
どの時点で送信した通信監視データＴＣＤｓのカウントパターンＣＰであるかにより、スレーブ制御部２０に発生した電源リセットが、ＷＤＴ２３によるか、外部からのリセット信号によるかを推定しうる。
【００６２】
これに対して、本実施の形態が適用されない場合では、通信監視データＴＣＤｓと通信監視応答データＴＣＤｒとのやり取りが行われないため、スレーブ制御部２０の電源リセットが、スレーブ制御部２０の電源電圧の最低電圧未満への低下によるか、ＷＤＴ２３によるか、外部からのリセット信号によるかを推定しえない。
【００６３】
Ｉ／Ｏ拡張回路２１は、例えば、ＡＳＩＣで構成される。
この場合、汎用性を考慮して、Ｉ／Ｏ拡張ユニット５０には、多数のＩＦモジュールが設けられる。これらには、特定の機能ブロックの特定の制御対象を制御する専用モジュールの他に、シリアル信号を出力するＩＦモジュール、センサからのアナログ信号をシリアル信号に変換するＡ／Ｄ変換器として機能するＩＦモジュールなど、汎用ＩＦモジュールが含まれる。そして、いくつかの汎用ＩＦモジュールは用いられず、余剰となっている。
【００６４】
そこで、本実施の形態では、機能ブロックの制御に用いられないＩＦモジュールの内、Ａ／Ｄ変換器として機能するＩＦモジュールをＡ／Ｄモジュール５３、パルス信号をシリアルに出力するＩＦモジュール５２をパルス信号出力モジュール５４として用いている。
すなわち、汎用性を考慮したＡＳＩＣで構成されたＩ／Ｏ拡張回路２１に、通信監視回路２２を設けることで、マスタ制御部１０とスレーブ制御部２０との間のシリアル通信の監視、及び、スレーブ制御部２０における電源リセットの要因の推定を行っている。
【００６５】
また、マスタ制御部１０における通信制御ユニット１５、スレーブ制御部２０におけるＩ／Ｏ拡張回路２１の通信制御ユニット４０は、ＳＰＩ通信の規格にて構築されていて、変更することが容易でない。よって、本実施の形態では、通信制御ユニット１５及び通信制御ユニット４０を変更することなく、それらの外部に通信監視回路２２を設け、シリアル通信を監視している。
【００６６】
しかも、本実施の形態では、通信監視回路２２にＤＰ８１を用いることにより、Ｉ／Ｏ拡張ユニット５０におけるパルス信号出力モジュール５４からのパルスによりＤＰ８１のタップ位置を移動させ、ＤＰ８１のアナログ出力信号ＤＰＯａをＡ／Ｄモジュール５３によりデジタル信号出力ＤＰＯｄに変換している。これにより、通信監視回路２２に接続されるＩ／Ｏ拡張ユニット５０におけるＩＦモジュールの数を２個（Ａ／Ｄモジュール５３、パルス信号出力モジュール５４）に抑制している。すなわち、ＤＰ８１を用いることで、通信監視回路２２を端子数が少ない回路構成とし、ＡＳＩＣで構成されたＩ／Ｏ拡張回路２１に実装（接続）しやすくしている。
すなわち、ＡＳＩＣで構成されたＩ／Ｏ拡張回路２１の構成を変更することなく、シリアル通信を監視する機能を付加している。
【００６７】
（校正ルーチン）
本実施の形態では、ＤＰ８１のアナログ信号出力ＤＰＯａをデジタル信号出力ＤＰＯｄに変換している。そして、デジタル信号出力ＤＰＯｄに基づいて、マスタ制御部１０からスレーブ制御部２０に正しくデータが送信されているか否かを判断している。
よって、アナログ信号出力ＤＰＯａから変換されたデジタル信号出力ＤＰＯｄから、正しくＤＰ８１のタップ位置が求められることが必要となる。
ここでは、デジタル信号出力ＤＰＯｄと、ＤＰ８１のタップ位置との対応を校正する校正ルーチンを設けている。
【００６８】
図５は、校正ルーチンにおける、マスタ制御部１０、スレーブ制御部２０におけるＩ／Ｏ拡張回路２１及び通信監視回路２２に関するシーケンス図である。なお、図５には、マスタ制御部１０及びスレーブ制御部２０に電源がオンになった場合のシーケンスも示している。なお、マスタ制御部１０の電源がオンの状態で、スレーブ制御部２０の電源がオンになった場合のシーケンスも同様である。
【００６９】
まず、マスタ制御部１０及びスレーブ制御部２０の電源がオンになると、ＮＶメモリ８２に書き込まれていたＮＶメモリ値により、ＤＰ８１は、タップ位置が設定される（ステップ１０１。図５においては、Ｓ１０１と表記する。以下同様である。）。
なお、ＤＰ８１のタップ位置が設定されると、ＤＰ８１は、タップ位置に対応したアナログ信号出力ＤＰＯａをＩ／Ｏ拡張回路２１におけるＡ／Ｄモジュール５３に出力する。すると、Ａ／Ｄモジュール５３は、アナログ信号出力ＤＰＯａに対応するデジタル信号出力ＤＰＯｄを出力する。
【００７０】
ここで、マスタ制御部１０は、スレーブ制御部２０に対して、デジタル信号出力ＤＰＯｄの取得を指示するＤＰＯ取得コマンドを送信する（ステップ１０２）。すると、スレーブ制御部２０のＩ／Ｏ拡張回路２１は、マスタ制御部１０に、デジタル信号出力ＤＰＯｄを送信する。なお、デジタル信号出力ＤＰＯｄの送信は、Ｉ／Ｏ拡張回路２１におけるＩ／Ｏ制御モジュール５１及び通信制御ユニット４０を介して行われるが、Ｉ／Ｏ拡張回路２１が送信すると表記する。以下同様である。
【００７１】
マスタ制御部１０は、受信したデジタル信号出力ＤＰＯｄをＲＡＭ１３の予め定められた番地（アドレス）に格納する(ステップ１０３)。なお、厳密には、マスタ制御部１０における、受信モジュール１７が、デジタル信号出力ＤＰＯｄを受信し、ＣＰＵ１１が、デジタル信号出力ＤＰＯｄをＲＡＭ１３に格納するが、マスタ制御部１０が受信したデジタル信号出力ＤＰＯｄをＲＡＭ１３に格納すると表記する。以下同様である。
ここで、ＲＡＭ１３に格納されたデジタル信号出力ＤＰＯｄは、マスタ制御部１０及びスレーブ制御部２０の電源がオンになったときのデジタル信号出力ＤＰＯｄであって、初期値である。ここでは、ＤＰＯｉｎｉと表記する。
【００７２】
ここから、校正ルーチンが開始される。
まず、マスタ制御部１０は、ＤＰ８１を最大タップ位置にアップさせるコマンド（カウントアップ（Ｕ）開始コマンド）を、スレーブ制御部２０のＩ／Ｏ拡張回路２１に送信する（ステップ１０４）。これにより、通信監視回路２２のＤＰ８１は、最大タップ位置に移動する（ステップ１０５）。すると、ＤＰ８１は、最大タップ位置に対応したアナログ信号出力ＤＰＯａをＩ／Ｏ拡張回路２１に出力する。
【００７３】
マスタ制御部１０は、スレーブ制御部２０に、ＤＰＯ取得コマンドを送信する（ステップ１０６）。すると、スレーブ制御部２０のＩ／Ｏ拡張回路２１は、アナログ信号出力ＤＰＯａに対応したデジタル信号出力ＤＰＯｄを、マスタ制御部１０に送信する。
マスタ制御部１０は、受信したデジタル信号出力ＤＰＯｄをＲＡＭ１３の予め定められた番地（アドレス）に格納する(ステップ１０７)。ここで、ＲＡＭ１３に格納されたデジタル信号出力ＤＰＯｄは、ＤＰ８１を最大タップ位置に設定した場合のデジタル信号出力ＤＰＯｄであって、最大値である。よって、デジタル信号出力ＤＰＯｍａｘと表記する。
【００７４】
次に、マスタ制御部１０は、ＤＰ８１を最小タップ位置にダウンさせるコマンド（カウントダウン（Ｄ）開始コマンド）を、スレーブ制御部２０のＩ／Ｏ拡張回路２１に送信する（ステップ１０８）。すると、通信監視回路２２のＤＰ８１は、最小タップ位置に移動する（ステップ１０９）。すると、ＤＰ８１は、最小タップ位置に対応したアナログ信号出力ＤＰＯａをＩ／Ｏ拡張回路２１に出力する。
【００７５】
マスタ制御部１０が、スレーブ制御部２０に、ＤＰＯ取得コマンドを送信する（ステップ１１０）。すると、スレーブ制御部２０のＩ／Ｏ拡張回路２１は、アナログ信号出力ＤＰＯａに対応したデジタル信号出力ＤＰＯｄを、マスタ制御部１０に送信する。
マスタ制御部１０は、受信したデジタル信号出力ＤＰＯｄをＲＡＭ１３の予め定められた番地（アドレス）に格納する(ステップ１１１)。ここで、ＲＡＭ１３に格納されたデジタル信号出力ＤＰＯｄは、ＤＰ８１を最小タップ位置に設定した場合のデジタル信号出力ＤＰＯｄであって、最小値である。よって、デジタル信号出力ＤＰＯｍｉｎと表記する。
【００７６】
そして、後述するように、マスタ制御部１０は、ＤＰ８１のタップ数ＴＮ、デジタル信号出力ＤＰＯｍａｘ、ＤＰＯｍｉｎに基づいて、参照テーブルを作成する（参照テーブル作成）（ステップ１１２）。
これにより、校正ルーチンが終了する。
【００７７】
以上説明した校正ルーチンは、マスタ制御部１０、スレーブ制御部２０の電源がオンになった際、及びスレーブ制御部２０の電源がオンになった際に、実行される。
【００７８】
次に、参照テーブルを作成するルーチン（参照テーブル作成ルーチン）を説明する。
図６は、参照テーブルを作成するルーチン（参照テーブル作成ルーチン）を説明するフローチャートである。
図７は、参照テーブルの一例を説明する図である。
【００７９】
はじめに、図６により、参照テーブル作成ルーチンを説明する。
マスタ制御部１０のＣＰＵ１１は、ＲＡＭ１３に格納されているＤＰ８１のタップ数ＳＮを読み出す（ステップ２０１）。
【００８０】
次に、ＲＡＭ１３に格納されている最大タップ位置に対応するデジタル信号出力ＤＰＯｍａｘと、最小タップ位置に対応するデジタル信号出力ＤＰＯｍｉｎを読み出す（ステップ２０２）。
そして、ＤＰ８１の１タップ当たりのデジタル信号出力Ｄｓｎを、Ｄｓｎ＝（ＤＰＯｍａｘ−ＤＰＯｍｉｎ）／ＳＮとして算出する（ステップ２０３）。
次に、ＤＰ８１の１タップにおける上限又は下限の変動幅Ｄｓｗを、Ｄｓｗ＝Ｄｓｎ／２として、算出する（ステップ２０４）。
【００８１】
次に、変数ｎを０と置き（ステップ２０５）、変数ｎがタップ数ＳＮ＋１でないか否かが判断される（ステップ２０６）。
ステップ２０６で、肯定（Ｙｅｓ）の判断がされた場合、すなわち、変数ｎがタップ数ＳＮ＋１でない場合には、変数ｎに“１”を加える（ステップ２０７）。
そして、それぞれのタップ位置における最小値ＤＰＯＢ（ｎ）、中央値ＤＰＯＣ（ｎ）、最大値ＤＰＯＴ（ｎ）を、ＤＰＯＢ（ｎ）＝ＤＰＯｍｉｎ＋（ｎ−１）×Ｄｓｎ−Ｄｓｗ、ＤＰＯＣ（ｎ）＝ＤＰＯｍｉｎ＋（ｎ−１）×Ｄｓｎ、ＤＰＯＴ（ｎ）＝ＤＰＯｍｉｎ＋（ｎ−１）×Ｄｓｎ＋Ｄｓｗとして算出し、それぞれの値をＲＡＭ１３の予め定められ番地（アドレス）に書き込む（ステップ２０８）。
そして、ステップ２０６に戻る。
【００８２】
一方、ステップ２０６において、否定（Ｎｏ）の判断がされた場合、すなわち、変数ｎがタップ数ＳＮ＋１である場合には、参照テーブル作成ルーチンを終了する。
【００８３】
このようにして、図７に示す参照テーブルが作成される。なお、図７において、ｎ＝１がＤＰ８１の最小タップ位置に対応し、ｎ＝ＳＮが、ＤＰ８１の最大タップ位置に対応する。
ここでは、参照テーブルをＲＡＭ１３上に作成するとしたが、不揮発性の書き換え可能なメモリ上に作成してもよい。
【００８４】
そして、作成した参照テーブルを参照することで、図５のステップ１０２でＲＡＭ１３に格納された、初期値であるデジタル信号出力ＤＰＯｉｎｉに対応するタップ位置が分かる。
なお、他のルーチンにより、参照テーブルを作成してもよい。
【００８５】
（通信監視データＴＣＤｓ）
次に、通信監視データＴＣＤｓに含まれるパルス数を指定するデータであるカウントパターンＣＰを説明する。
図８は、通信監視データＴＣＤｓにおけるカウントパターンＣＰの一例を示す図である。
ここでは、一例として、ＤＰ８１のタップ数ＳＮは１２８であるとする。そして、カウントパターンＣＰの数ＣＰＮは６であるとする。以下では、それぞれのカウントパターンＣＰをＣＰ［ｍ］（ｍ＝１〜６（ＣＰＮ））と表記する。
【００８６】
カウントパターンＣＰ［ｍ］は、８ビットの内、下位７ビットが、ＤＰ８１のタップ位置を移動させる数（カウント数）ＣＰＴ［ｍ］を示す。それぞれのカウント数ＣＰＴ［ｍ］は、ＣＰ［１］が８５、ＣＰ［２］が４２、ＣＰ［３］が１２、ＣＰ［４］が５１、ＣＰ［５］が１、ＣＰ［６］が６３である。
すなわち、カウントパターンＣＰ［１］、ＣＰ［２］は、下位７ビットのビットパターンがビットを交互に１、０としたビットトグルパターンである。カウントパターンＣＰ［３］、ＣＰ［４］は、下位７ビットのビットパターンが同じビットが２つ連続するビットダブルパターンである。カウントパターンＣＰ［５］、ＣＰ［６］は、下位７ビットのビットパターンが、ビットが３以上連続するビット連続パターンである。
なお、他のビットパターンを用いてもよい。
【００８７】
図９は、通信監視データＴＣＤｓに設定するカウントパターンＣＰを選択するルーチン（カウントパターン選択ルーチン）を説明するフローチャートである。
まず、変数ｍを“０”に設定する（ステップ３０１）。次に、変数ｍに“１”を加える（ステップ３０２）。そして、変数ｍが“１”以上且つＣＰＮ以下であるか否かが判断される（ステップ３０３）。
ステップ３０３において、Ｙｅｓ（肯定）と判断された場合、すなわち、変数ｍが“１”以上且つＣＰＮ以下である場合には、カウントパターンＣＰ［ｍ］において、タップ位置を移動させるカウント数ＣＰＴ［ｍ］が、ＤＰ８１のタップ数ＳＮから、直前に設定されたＤＰ８１のタップ位置ＤＰＴ（Ｔ−１）を引いた値（ＣＰＴ［ｍ］＜ＳＮ−ＤＰＴ（Ｔ−１））より小さいか否かが判断される（ステップ３０４）。
なお、タップ位置ＤＰＴ（Ｔ−１）は、直前に受信したデジタル信号出力ＤＰＯｄから参照テーブルを参照して求められている。
なお、ステップ３０３において、Ｎｏ（否定）と判断された場合については、後述する。
【００８８】
ステップ３０４において、Ｙｅｓ（肯定）と判断された場合、すなわち、ＣＰＴ［ｍ］＜ＳＮ−ＤＰＴ（Ｔ−１）である場合には、ＤＰ８１のタップ位置をカウント数ＣＰＴ［ｍ］アップさせても、最大タップ位置に到達しない。よって、ＤＰ８１のタップ位置をアップ（Ｕ）させる方向に設定する（アップ（Ｕ）に設定）（ステップ３０５）。
そして、ＣＰＴ［ｍ］に対応するカウントパターンＣＰ［ｍ］を選択する（ステップ３０６）。これにより、カウントパターン選択ルーチンを終了する。
【００８９】
一方、ステップ３０４において、Ｎｏ（否定）と判断された場合、すなわち、ＣＰＴ［ｍ］≧ＳＮ−ＤＰＴ（Ｔ−１）である場合には、移動させるカウント数ＣＰＴ［ｍ］が、直前に設定されたＤＰ８１のタップ位置ＤＰＴ（Ｔ−１）より小さい（ＣＰＴ［ｍ］＜ＤＰＴ（Ｔ−１））か否かが判断される（ステップ３０７）。
ステップ３０７において、肯定（Ｙｅｓ）の判断がされた場合、すなわち、ＣＰＴ［ｍ］＜ＤＰＴ（Ｔ−１）である場合には、ＤＰ８１のタップ位置をカウント数ＣＰＴ［ｍ］ダウンさせても、最小タップ位置に到達しない。よって、ＤＰ８１のタップ位置をダウン（Ｄ）させる方向に設定する（ダウン（Ｄ）に設定）（ステップ３０８）。
そして、ＣＰＴ［ｍ］に対応するカウントパターンＣＰ［ｍ］を選択する（ステップ３０６）。これにより、カウントパターン選択ルーチンを終了する。
【００９０】
さて、ステップ３０７において、否定（Ｎｏ）の判断がされた場合、すなわち、ＣＰＴ［ｍ］≧ＤＰＴ（Ｔ−１）である場合には、ＤＰ８１のタップ位置をダウンさせると、最小タップ位置に到達してしまう。よって、ステップ３０２に戻って、変数ｍに“１”を加える。そして、ステップ３０３以降において、図８に示した次のカウントパターンＣＰ［ｍ］について、選択可能か否かが判断される。
【００９１】
さて、ステップ３０３で、Ｎｏ（否定）と判断された場合、すなわち、変数ｍが１以上且つカウントパターンＣＰの数ＣＰＮ以下でない場合、例えば、変数ｍがＣＰＮを超える場合には、ステップ３０１に戻って、変数ｍを“０”に設定する。そして、ステップ３０３以降において、図８に示した最初のカウントパターンＣＰ［１］について、選択可能か否かが判断される。
【００９２】
このようにすることで、図８に示したカウントパターンＣＰ［ｍ］が順に試みられる。そして、カウントパターンＣＰ［１］からカウントパターンＣＰ［ＣＰＮ］のすべてが試みられたのち、最初のカウントパターンＣＰ［１］に戻る。すなわち、特定のカウントパターンに片寄ることが抑制される。
なお、他のルーチンにより、カウントパターンＣＰを選択してもよい。
【００９３】
そして、タップ位置を移動させるカウント数ＣＰＴ［ｍ］を選択することで、ＤＰ８１の最大タップ位置を超えてタップ位置が選択されること、及び、最小タップ位置未満のタップ位置が選択されることを抑制している。
なお、最大タップ位置を超えてタップ位置が選択された場合、又は、最小タップ位置未満のタップ位置が選択された場合には、読み出されたタップ位置ＤＰＴは、最大タップ位置又は最小タップ位置となってしまう。すなわち、実際に設定されるタップ位置が、設定したカウント数ＣＰＴから求められるタップ位置と異なってしまう。
【００９４】
（通信監視）
図１０は、通信監視ルーチンにおける、マスタ制御部１０、スレーブ制御部２０におけるＩ／Ｏ拡張回路２１及び通信監視回路２２に関するシーケンス図である。
マスタ制御部１０は、直前のデジタルポテンショメータ８１のタップ位置ＤＰＴ（Ｔ−１）に基づいて、図９に示したカウントパターン選択ルーチンにより、通信監視データＴＣＤｓに設定するカウントパターンＣＰを選択する（カウントパターン選択ルーチン）（ステップ４０１）。
そして、マスタ制御部１０は、スレーブ制御部２０のＩ／Ｏ拡張回路２１に通信監視データＴＣＤｓ（タップ位置を移動させるカウント数ＣＰＴ）を送信する（ステップ４０２）。次に、タップ位置を移動させる方向（Ｕ／Ｄ）を指定するコマンド（Ｕ／Ｄコマンド）を送信する（ステップ４０３）。
すると、ＤＰ８１は、タップ位置を移動させる方向（Ｕ／Ｄ）にカウントパターンＣＰで指定されるカウント数ＣＰＴに従って、タップ位置を移動させる（ステップ４０４）。
これにより、ＤＰ８１は、アナログ信号出力ＤＰＯａをスレーブ制御部２０のＩ／Ｏ拡張回路２１に出力する。
【００９５】
マスタ制御部１０が、スレーブ制御部２０に、ＤＰＯ取得コマンドを送信する（ステップ４０５）。すると、スレーブ制御部２０のＩ／Ｏ拡張回路２１からマスタ制御部１０に、デジタル信号出力ＤＰＯｄが送信される。
マスタ制御部１０は、図７に示した参照テーブルを参照して、デジタル信号出力ＤＰＯｄに対応するタップ位置ＤＰＴ（Ｔ）を確定（算出）する（ステップ４０６）。
【００９６】
そして、マスタ制御部１０は、ＲＡＭ１３に格納されている直前のタップ位置ＤＰＴ（Ｔ−１）と確定したタップ位置ＤＰＴ（Ｔ）との差ＧＰ（絶対値）を算出する（ステップ４０７）。
次いで、差ＧＰが、送信した通信監視データＴＣＤｓにおけるカウントパターンＣＰのカウント数ＣＰＴと一致するか否かが判断される（ステップ４０８）。
ステップ４０８で、肯定（Ｙｅｓ）の判断がされた場合、すなわち、差ＧＰと送信した通信監視データＴＣＤｓのカウントパターンＣＰにより指定されたカウント数ＣＰＴとが一致した場合には、通信にエラーが生じていないとともに、スレーブ制御部２０が正常に動作していると判断（推定）される。よって、ステップ４０１に戻って、通信監視ルーチンを継続する。
【００９７】
一方、ステップ４０７で、否定（Ｎｏ）の判断がされた場合、すなわち、差ＧＰと送信した通信監視データＴＣＤｓのカウントパターンＣＰにより指定されたカウント数ＣＰＴとが一致しない場合は、通信にエラー（通信異常）が発生したと判断される。この場合、マスタ制御部１０では、ＲＡＭ１３にエラーログを記録する。
通信異常が発生したと判断された場合、スレーブ制御部２０を電源リセットするようにしてもよい。また、ステップ４０１に戻って、通信監視データＴＣＤｓを再度送信し、通信エラーが再び発生するか否かを判断するようにしてもよい。このとき、通信エラーが発生しない場合には、ノイズによって、一時的に通信エラーが発生したと考えられる。そして、再度通信エラーが発生する場合に、スレーブ制御部２０を電源リセットするようにしてもよい。
【００９８】
また、マスタ制御部１０が、ＤＰＯ取得コマンドを、予め定められた周期（図３の周期ｔｐ）で送信できなかった場合であっても、送信した通信監視データ通信監視データＴＣＤｓ及びタップ位置を移動させる方向（Ｕ／Ｄ）の設定から、次の周期におけるＤＰ８１のタップ位置を計算して、照合が行える。
【００９９】
なお、スレーブ制御部２０が電源リセットされた後、電源が回復した場合、図５に示した校正ルーチンで説明したように、ＮＶメモリ値によるＤＰ８１のタップ位置の設定が行われ（図５のステップ１０１）、次いで、マスタ制御部１０にデジタル信号出力ＤＰＯｄが送信され、初期デジタル信号出力ＤＰＯｉｎｉとしてＲＡＭ１３に格納される。よって、図１０のステップ４０６に示したように、参照テーブルからタップ位置ＤＰＴを確定し、送信した通信監視データＴＣＤｓの履歴を参照することにより、電源リセットの要因を推定しうる。
【符号の説明】
【０１００】
１…制御部、１０…マスタ制御部、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…データバス、１５…通信制御ユニット、１６…送信モジュール、１７…受信モジュール、１８…通信制御モジュール、２０…スレーブ制御部、２１…Ｉ／Ｏ拡張回路、２２…通信監視回路、２３…ＷＤＴ、２４…電源監視回路、２５…電源リセット回路、３０…シリアル通信回線、４０…通信制御ユニット、４１…受信モジュール、４２…送信モジュール、４３…通信制御モジュール、５０…Ｉ／Ｏ拡張ユニット、５１…Ｉ／Ｏ制御モジュール、５２…ＩＦモジュール、５３…Ａ／Ｄモジュール、５４…パルス信号出力モジュール、６０…クロック生成回路、７０…システムリセット回路、８１…デジタルポテンショメータ（ＤＰ）、８２…ＮＶメモリ、８３…メモリタイミング生成回路、１００…画像形成装置、１０１…ＵＩ部、１０２…画像形成部、１０３…画像読取部、１０４…送受信部
【図１】
0006413698.tif 000002
【図２】
0006413698.tif 000003
【図３】
0006413698.tif 000004
【図４】
0006413698.tif 000005
【図５】
0006413698.tif 000006
【図６】
0006413698.tif 000007
【図７】
0006413698.tif 000008
【図８】
0006413698.tif 000009
【図９】
0006413698.tif 000010
【図１０】
0006413698.tif 000011