(57)【要約】【課題】中央処理装置から書き込まれたデータが、第２記憶部の更新を待たずに中央処理装置により読み出される制御装置及び画像形成装置を提供する。【解決手段】第１記憶部及び読出送信手段を備えた機器制御部と、中央処理装置、保持手段、第２記憶部及び書込手段を備えた主制御部と、主制御部と機器制御部とを接続するシリアルバスと、を有し、読出送信手段及び書込手段は、予め定めた周期で、第１記憶部に記憶されたデータが第２記憶部に送信されて第２記憶部のデータが更新されるように動作すると共に、中央処理装置の書込命令に応じて制御データの書込みを第１記憶部及び第２記憶部の双方に対して行う場合は、第２記憶部の更新状況に応じて当該制御データを第２記憶部に直接書込むか又は保持手段に保持して、第２記憶部に直接書込まれた制御データが送信により更新されないように動作する、制御装置とする。【選択図】図７
2015026216.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの機器が接続され、前記機器の駆動を制御する制御データ及び前記機器の状態を示す状態データの各々が記憶される第１記憶部、及び前記第１記憶部に記憶された制御データ及び状態データを読出して送信する読出送信手段を備えた機器制御部と、
中央処理装置、中央処理装置から書込まれた前記制御データを一時的に保持する保持手段、第２記憶部、及び前記機器制御部から送信された制御データ及び状態データを前記第２記憶部に書込む書込手段を備えた主制御部と、
前記主制御部と前記機器制御部とを接続する全二重方式のシリアルバスと、
を有し、
前記読出送信手段及び前記書込手段は、
前記中央処理装置の動作の基準となるシステムタイマのカウント周期以下の周期で、前記第１記憶部に記憶された制御データ及び状態データが読出されて送信され前記第２記憶部に書込まれて、前記第２記憶部の制御データ及び状態データが更新されるように動作すると共に、
前記中央処理装置の書込命令に応じて制御データの書込みを前記第１記憶部及び前記第２記憶部の双方に対して行う書込処理の場合は、前記第２記憶部の更新状況に応じて当該制御データを前記第２記憶部に直接書込むか又は前記保持手段に保持して、前記第２記憶部に直接書込まれた制御データが送信により更新されないように動作する、
制御装置。
【請求項２】
前記書込手段は、前記第２記憶部内の前記制御データの書込み領域の更新前は、前記制御データを前記書込み領域に直接書込み、前記書込み領域に書込んだデータの送信による更新を禁止する、請求項１に記載の制御装置。
【請求項３】
前記書込手段は、前記第２記憶部内の前記制御データの書込み領域の更新中は、前記制御データの前記書込み領域への直接書込みを中止し、当該制御データを前記保持手段に保持する、請求項１又は請求項２に記載の制御装置。
【請求項４】
前記書込手段は、前記第２記憶部内の前記制御データの書込み領域の更新後は、前記書込み領域に書込んだデータの送信による更新を禁止せずに、前記制御データを前記書込み領域に直接書込む、請求項１から請求項３までのいずれか１項に記載の制御装置。
【請求項５】
請求項１から請求項４までのいずれか１項に記載の制御装置と、
前記機器制御部に接続され、画像形成を行なうための少なくとも１つの機器と、
を備えた画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び画像形成装置に関する。
【背景技術】
【０００２】
特許文献１には、少なくとも１つの機器が接続され、前記機器の駆動を制御するデータ及び前記機器の状態を示すデータの各々が記憶される第１記憶部、及び前記第１記憶部に記憶された各データを読出して送信する読出送信手段を備えた機器制御部と、中央処理装置、第２記憶部、及び前記機器制御部から送信されたデータを前記第２記憶部に書込む書込手段を備えた主制御部と、前記主制御部と前記機器制御部とを接続する全二重方式のシリアルバスと、を有し、前記読出送信手段及び前記書込手段は、前記中央処理装置の動作の基準となるシステムタイマのカウント周期以下の周期で、前記第１記憶部に記憶された各データが読出されて送信され前記第２記憶部に書込まれるように動作する、制御装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特願２０１２−１３５９２０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、中央処理装置を有する主制御部と各種機器が接続された機器制御部とが伝送路を介して接続され、機器制御部の第１記憶部に記憶された各データが読出されて送信され主制御部の第２記憶部に書込まれるように動作する制御装置において、中央処理装置から書き込まれたデータが、第２記憶部の更新を待たずに中央処理装置により読み出される制御装置及び画像形成装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、請求項１に記載の発明は、少なくとも１つの機器が接続され、前記機器の駆動を制御する制御データ及び前記機器の状態を示す状態データの各々が記憶される第１記憶部、及び前記第１記憶部に記憶された制御データ及び状態データを読出して送信する読出送信手段を備えた機器制御部と、中央処理装置、中央処理装置から書込まれた前記制御データを一時的に保持する保持手段、第２記憶部、及び前記機器制御部から送信された制御データ及び状態データを前記第２記憶部に書込む書込手段を備えた主制御部と、前記主制御部と前記機器制御部とを接続する全二重方式のシリアルバスと、を有し、前記読出送信手段及び前記書込手段は、前記中央処理装置の動作の基準となるシステムタイマのカウント周期以下の周期で、前記第１記憶部に記憶された制御データ及び状態データが読出されて送信され前記第２記憶部に書込まれて、前記第２記憶部の制御データ及び状態データが更新されるように動作すると共に、前記中央処理装置の書込命令に応じて制御データの書込みを前記第１記憶部及び前記第２記憶部の双方に対して行う書込処理の場合は、前記第２記憶部の更新状況に応じて当該制御データを前記第２記憶部に直接書込むか又は前記保持手段に保持して、前記第２記憶部に直接書込まれた制御データが送信により更新されないように動作する、制御装置である。
【０００６】
請求項２に記載の発明は、前記書込手段は、前記第２記憶部内の前記制御データの書込み領域の更新前は、前記制御データを前記書込み領域に直接書込み、前記書込み領域に書込んだデータの送信による更新を禁止する、請求項１に記載の制御装置である。
【０００７】
請求項３に記載の発明は、前記書込手段は、前記第２記憶部内の前記制御データの書込み領域の更新中は、前記制御データの前記書込み領域への直接書込みを中止し、当該制御データを前記保持手段に保持する、請求項１又は請求項２に記載の制御装置である。
【０００８】
請求項４に記載の発明は、前記書込手段は、前記第２記憶部内の前記制御データの書込み領域の更新後は、前記書込み領域に書込んだデータの送信による更新を禁止せずに、前記制御データを前記書込み領域に直接書込む、請求項１から請求項３までのいずれか１項に記載の制御装置である。
【０００９】
請求項５に記載の発明は、請求項１から請求項４までのいずれか１項に記載の制御装置と、前記機器制御部に接続され、画像形成を行なうための少なくとも１つの機器と、を備えた画像形成装置である。
【発明の効果】
【００１０】
請求項１、請求項５に記載の発明によれば、中央処理装置を有する主制御部と各種機器が接続された機器制御部とが伝送路を介して接続され、機器制御部の第１記憶部に記憶された各データが読出されて送信され主制御部の第２記憶部に書込まれるように動作する制御装置において、中央処理装置から書き込まれたデータが、第２記憶部の更新を待たずに中央処理装置により読み出される。
【００１１】
請求項２に記載の発明によれば、第２記憶部内の書込み領域に直接書き込まれた制御データは送信（転送）により更新されないので、中央処理装置から書き込まれたデータが、中央処理装置により第２記憶部から読み出される。
【００１２】
請求項３に記載の発明によれば、中央処理装置から書き込まれたデータは前記保持手段に保持されているので、中央処理装置から書き込まれたデータが、中央処理装置により保持手段から読み出される。
【００１３】
請求項４に記載の発明によれば、第２記憶部内の書込み領域に直接書き込まれた制御データは送信（転送）により更新されたデータに上書きされるので、中央処理装置から書き込まれたデータが、中央処理装置により第２記憶部から読み出される。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係る画像形成装置の構成例を示すブロック図である。
【図２】主制御部のＳｅｒＤeｓ制御部の構成例を示すブロック図である。
【図３】機器制御部のＳｅｒＤeｓ制御部の構成例を示すブロック図である。
【図４】書込みバッファの構成例を示す模式図である。
【図５】複写レジスタ群の構成例を示す模式図である。
【図６】直接書込みと転送による更新との競合を示す模式図である。
【図７】書込選択回路で実行される書込選択処理の手順を示すフローチャートである。
【図８】更新前のブロックに対する「第１の処理」を説明するための模式図である。
【図９】ブロックの更新を禁止する様子を示す模式図である。
【図１０】更新中のブロックに対する「第２の処理」を説明するための模式図である。
【図１１】更新後のブロックに対する「第３の処理」を説明するための模式図である。
【図１２】従来の制御装置の構成を例示した模式図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【００１６】
＜制御装置を有する画像形成装置＞
図１は、本発明の実施の形態に係る画像形成装置の構成例を示すブロック図である。この画像形成装置１０は、主制御部１２及び機器制御部１４がシリアルバス４０を介して接続された制御装置１１と、機器制御部１４に接続された各種機器を含む機器群１６とを含んで構成されている。シリアルバス４０は、主制御部１２から見た場合には送信用となる信号線Ｔｘ、及び受信用となる信号線Ｒｘを備えた全二重の伝送路である。
【００１７】
機器群１６に含まれる各機器は、画像形成を行なうための機器であって、例えば、感光体や現像ロール等を回転させるモータ、用紙検出のためのセンサ、或いはトナー濃度を検出するためのセンサ等が含まれる。なお、ここでは画像形成装置１０を、電子写真方式で画像形成を行なう画像形成装置として説明したが、インクジェット方式で画像形成を行なう画像形成装置であってもよい。
【００１８】
主制御部１２は、ＣＰＵ（中央処理装置：Central Processing Unit）２０、シリアライザ・デシリアライザ制御部２２（以下、ＳｅｒＤｅｓ制御部２２という）、及び複写レジスタ群２４を備えている。
【００１９】
ＣＰＵ２０は、不図示の不揮発性の記憶部に記憶されたプログラムを実行し、画像形成装置１０全体を制御する。なお、ＣＰＵ２０が実行するプログラムを記憶するための記憶部は、ＨＤＤ（ハードディスクドライブ）、フレキシブルディスクやＤＶＤディスク、光磁気ディスクやＵＳＢ（Universal Serial Bus)メモリ等（不図示）であってもよいし、不図示の通信ＩＦを介して接続された他の装置の記憶媒体であってもよい。
【００２０】
ＣＰＵ２０は、ＣＰＵバス２６を介してＳｅｒＤｅｓ制御部２２と接続されている。ＣＰＵバス２６は、複数の信号線を備えたパラレルバスである。
【００２１】
ＳｅｒＤｅｓ制御部２２は、ＣＰＵ２０からＣＰＵバス２６を介して機器制御部１４に送信する情報（パラレル信号）を受け取ると、当該パラレル信号をパケット化し、各パケットをシリアル信号に変換してシリアルバス４０を介して機器制御部１４に送信する。また、ＳｅｒＤｅｓ制御部２２は、機器制御部１４からシリアルバス４０を介してシリアル形式のパケットを受信すると、当該受信したパケットをパラレル形式のパケットに変換し、当該パラレル形式のパケットをデコードして、当該パケットに含まれるデータを取り出す。
【００２２】
複写レジスタ群２４は、複数のレジスタ（記憶領域）を含むメモリで構成されている。また、複写レジスタ群２４は、各々が転送単位の情報を記憶する複数のブロックを含んで構成されている。以下では、１つのブロックに記憶される転送単位の情報を、「ブロック単位のデータ」という。ブロック単位のデータは、数ワード分（例えば、６４ビット）のデータとしてもよい。
【００２３】
機器制御部１４に含まれる入出力制御レジスタ群３２の各レジスタの記憶内容が、この複写レジスタ群２４に複写される。ここで、複写とは、入出力制御レジスタ群３２からレジスタに記憶されたデータを読出して、当該読出したデータをシリアルバス４０を介して主制御部１２に送信し、複写レジスタ群２４の各レジスタに書込む一連の処理をいう。複写により、複写レジスタ群２４の記憶内容が更新される。
【００２４】
機器制御部１４は、シリアライザ・デシリアライザ制御部３０（以下、ＳｅｒＤｅｓ制御部３０という）、入出力制御レジスタ群３２、及び駆動・受信回路３４を備えている。
【００２５】
ＳｅｒＤｅｓ制御部３０は、主制御部１２からシリアルバス４０を介してシリアル形式のパケットを受信すると、当該受信したパケットをパラレル形式のパケットに変換し、パラレル形式のパケットをデコードして、当該パケットに含まれるデータを取り出す。また、ＳｅｒＤｅｓ制御部３０は、主制御部１２に送信する情報（パラレル信号）をパケット化し、各パケットをシリアル信号に変換してシリアルバス４０を介して主制御部１２に送信する。
【００２６】
入出力制御レジスタ群３２は、複数のレジスタ（記憶領域）を含むメモリで構成されている。入出力制御レジスタ群３２もまた、各々が転送単位の情報を記憶する複数のブロックを含んで構成されている。入出力制御レジスタ群３２の複数のレジスタは、入力レジスタと、出力レジスタとを含んでいる。入力レジスタには、各機器の状態を示すデータが書込まれる。出力レジスタには、主制御部１２のＣＰＵ２０から送信された各機器を制御するデータが書込まれる。また、入出力制御レジスタ群３２には、割込の発生を示すデータが書込まれるレジスタ（以下、割込レジスタという）、及び割込要因を示すデータが書込まれるレジスタ（以下、割込要因レジスタという）も含まれる。
【００２７】
入出力制御レジスタ群３２の各レジスタに記憶された記憶内容は、前述したように、主制御部１２の複写レジスタ群２４にブロック毎に複写される。本実施形態では、ＣＰＵ２０は、複写レジスタ群２４に複写されたデータを読み出すことにより、入出力制御レジスタ群３２に書込まれたデータと同じデータを参照することができる。この他、本実施形態では、ＣＰＵ２０は、シリアルバス４０を介して入出力制御レジスタ群３２に書込まれたデータを読出して取得することもできる。
【００２８】
なお、本実施形態において、複写レジスタ群２４のメモリサイズ、及び入出力制御レジスタ群３２のメモリサイズは、互いに等しく、入出力制御レジスタ群３２から複写レジスタ群２４への複写の際には、入出力制御レジスタ群３２のブロックの１つから読み出されたデータは、当該データが記憶されていた入出力制御レジスタ群３２のブロックに対応する複写レジスタ群２４のブロックに書込まれるものとする。
【００２９】
駆動・受信回路３４は、画像形成装置１０を構成する機器群１６の各機器に接続される。駆動・受信回路３４は、入出力制御レジスタ群３２の出力レジスタに機器を制御するためのデータが書込まれると、そのデータに応じた駆動信号を当該出力レジスタに対応する機器に出力する。機器は出力された駆動信号に応じて駆動される。また、接続された機器から当該機器の状態を示す信号が入力されると、その信号に応じたデータを当該機器の状態を示すデータ用の入力レジスタに書込む。状態を示すデータは、例えば、機器がセンサである場合には、センサの検出結果を示すデータであってもよいし、機器がモータである場合には、モータの回転状態を示すデータであってもよい。
【００３０】
画像形成装置１０全体を制御するＣＰＵ２０は、入力レジスタに書込まれたデータから機器の状態を把握し、出力レジスタに制御用のデータを書込むことにより各機器の駆動を制御している。
【００３１】
ただし、本実施形態では、後述するように、システムタイマの周期以下の周期で、入出力制御レジスタ群３２のデータが複写レジスタ群２４へ複写されるため、ＣＰＵ２０は、機器の状態等を把握する際には、わざわざシリアルバス４０を介して入出力制御レジスタ群３２からデータを取得しなくても、主制御部１２に設けられた複写レジスタ群２４に複写されたデータを読み出すことで、機器の状態等を把握することができる。
【００３２】
＜主制御部のＳｅｒＤｅｓ制御部＞
図２は、主制御部１２のＳｅｒＤｅｓ制御部２２の構成例を示す図である。ＳｅｒＤｅｓ制御部２２は、ＣＰＵバスインタフェース５０、書込みバッファ５１、コントローラ５２、パケット生成回路５４、バッファ５６、パラレルシリアル変換回路５８、シリアルパラレル変換回路６０、バッファ６２、パケットデコード回路６４、及びアドレスカウンタ６６を備えている。
【００３３】
ＣＰＵバスインタフェース５０は、ＣＰＵバス２６を介してＣＰＵ２０と通信するためのインタフェースである。書込みバッファ５１は、ＣＰＵバスインタフェース５０を介してＣＰＵ２０から書込まれたデータを、複写レジスタ群２４の記憶内容が更新されるまで一時的に記憶する記憶部である。コントローラ５２は、ＳｅｒＤｅｓ制御部２２を構成する各構成要素と接続され、プロトコル制御や各構成要素の動作タイミング等を制御することで、ＳｅｒＤｅｓ制御部２２全体を制御する。
【００３４】
パケット生成回路５４は、書込みバッファ５１に一時的に記憶されたデータを読み出して、当該読出したデータに基づいてパケットを生成する。バッファ５６は、パケット生成回路５４で生成されたパケットを一時的に記憶する。パラレルシリアル変換回路（シリアライザ）５８は、バッファ５６に一時的に記憶されたパラレル形式のパケットをシリアル形式のパケットに変換して、シリアルバス４０を介して機器制御部１４に送信する。
【００３５】
シリアルパラレル変換回路（デシリアライザ）６０は、機器制御部１４からシリアルバス４０を介して受信したシリアル形式のパケットをパラレル形式のパケットに変換する。バッファ６２は、シリアルパラレル変換回路６０で変換されたパラレル形式のパケットを一時的に記憶する。パケットデコード回路６４は、バッファ６２に一時的に記憶されたパラレル形式のパケットをデコードして、当該パケットに含まれるデータを取り出す。
【００３６】
アドレスカウンタ６６は、複写レジスタ群２４に入出力制御レジスタ群３２から読出され転送されたデータを書込むときの書込先のアドレスを生成してコントローラ５２に出力する。ここでの「アドレス」とは、複写のために付与されるアドレスカウンタ６６のカウント値であり、複写レジスタ群２４及び入出力制御レジスタ群３２内の、先頭から何番目のブロックであるかを表す番号である。このカウント値は、連続番号情報（シーケンス・ナンバー）としてパケットに含められる。入出力制御レジスタ群３２の１番目のブロックから読み出されたデータは、対応する複写レジスタ群２４の１番目のブロックに書込まれる。
【００３７】
複写レジスタ群２４へのデータの複写は、入出力制御レジスタ群３２から読出され送信されたブロック単位のデータを複写レジスタ群２４の先頭アドレス（先頭ブロック）から順に書込んでいくことにより行なわれるため、ブロック単位のデータが書込まれる毎に、インクリメントされたアドレスが出力される。アドレスカウンタ６６は、複写レジスタ群２４への全データの書込が終了した後、次に書込を開始する前にリセットされる（先頭アドレスのカウント値となる）。
【００３８】
コントローラ５２には、複写レジスタ更新回路５２ａ、読出選択回路５２ｂ、及び書込選択回路５２ｃが、コントローラ５２の機能として設けられている。
【００３９】
複写レジスタ更新回路５２ａは、入出力制御レジスタ群３２の各レジスタから読出され転送されたデータを複写レジスタ群２４に書込んで、複写レジスタ群２４の記憶内容を更新する。
【００４０】
読出選択回路５２ｂは、ＣＰＵ２０から、入出力制御レジスタ群３２に書込まれたデータの読出要求を受けたときに、当該読出要求に基づいて、複写レジスタ群２４に複写されたデータを読み出すのか、或いは入出力制御レジスタ群３２に書込まれたデータを直接読み出すのかを選択して、読出処理を実行し、読み出したデータをＣＰＵ２０に供給する。
【００４１】
書込選択回路５２ｃは、ＣＰＵ２０から入出力制御レジスタ群３２に対する書込要求を受けたときに、当該書込要求に基づいて、入出力制御レジスタ群３２のみに対して書込むのか、或いは入出力制御レジスタ群３２に書込むだけでなく複写レジスタ群２４にも（複写による更新ではなく）直接書込むのかを選択して「書込選択処理」を実行する。
【００４２】
また、書込選択回路５２ｃは、複写レジスタ群２４の更新状況を示す更新情報を、複写レジスタ群２４から取得する。取得された更新情報は、書込選択回路５２ｃに設けられた更新情報記憶領域に記憶される。記憶された更新情報は、後述する書込選択処理の実行時に使用される。ここで「更新情報」とは、複写レジスタ群２４が何番目のブロックまで更新されたかを示す情報である。以下では、この更新情報を「更新管理アドレス」という。
【００４３】
更に、書込選択回路５２ｃは、書込要求に含まれる情報を書込みバッファ５１から取得して、取得した情報に基づいて後述する「書込選択処理」を実行する。
【００４４】
＜機器制御部のＳｅｒＤｅｓ制御部＞
図３は、機器制御部１４のＳｅｒＤｅｓ制御部３０の構成例を示す図である。ＳｅｒＤｅｓ制御部３０は、コントローラ８０、シリアルパラレル変換回路（デシリアライザ）８２、バッファ８４、パケットデコード回路８６、パケット生成回路８８、バッファ９０、パラレルシリアル変換回路（シリアライザ）９２、及びアドレスカウンタ９４を備えている。
【００４５】
コントローラ８０は、ＳｅｒＤｅｓ制御部３０を構成する他の構成要素と接続され、プロトコル制御や各構成要素の動作タイミング等を制御することで、ＳｅｒＤｅｓ制御部３０全体を制御する。
【００４６】
シリアルパラレル変換回路８２は、主制御部１２からシリアルバス４０を介して受信したシリアル形式のパケットをパラレル形式のパケットに変換する。バッファ８４は、シリアルパラレル変換回路８２で変換されたパラレル形式のパケットを一時的に記憶する。パケットデコード回路８６は、バッファ８４に一時的に記憶されたパラレル形式のパケットをデコードして、当該パケットに含まれるデータを取り出す。
【００４７】
パケット生成回路８８は、パケットを生成する。バッファ９０は、パケット生成回路８８で生成されたパケットを一時的に記憶する。パラレルシリアル変換回路９２は、バッファ９０に一時的に記憶されたパラレル形式のパケットをシリアル形式のパケットに変換して、シリアルバス４０を介して主制御部１２に送信する。
【００４８】
アドレスカウンタ９４は、入出力制御レジスタ群３２からデータを読み出して複写レジスタ群２４に複写するときの、データの読出元のアドレスを生成してコントローラ８０に出力する。複写レジスタ群２４へのデータの複写は、ブロック単位のデータを入出力制御レジスタ群３２から読み出して順次主制御部１２に転送することにより行なわれる。このため、ブロック単位のデータが入出力制御レジスタ群３２から読み出される毎に、インクリメントされたアドレスが出力される。アドレスカウンタ９４は、複写レジスタ群２４への複写のための入出力制御レジスタ群３２からのデータの読出しが終了したとき、或いはデータの読出しを開始する際にリセットされる。
【００４９】
コントローラ８０には、レジスタデータ転送回路８０ａが、コントローラ８０の機能の１つとして設けられている。レジスタデータ転送回路８０ａは、入出力制御レジスタ群３２の各レジスタに書込まれているデータを複写レジスタ群２４に複写するため、入出力制御レジスタ群３２からブロック単位のデータを読み出して、パケット生成回路８８に出力し、複写レジスタ群２４に書込ませるためのパケット（以下、複写パケットという）を生成させる。複写パケットは、パラレルシリアル変換回路９２によりシリアル変換され、シリアルバス４０を介して主制御部１２に転送される。
【００５０】
また、コントローラ８０は、入出力制御レジスタ群３２の割込レジスタに割込の発生を示すデータが書込まれると、割込発生を通知する割込パケットをパケット生成回路８８に生成させる。当該生成された割込パケットは、パラレルシリアル変換回路９２でシリアル形式のパケットに変換されて、主制御部１２に送信される。主制御部１２のコントローラ５２は、不図示の割込信号発生回路を備える。割込信号発生回路は、割込パケットを受信すると、割込信号を発生する。ＣＰＵ２０は割込信号を受け取ると、割込が発生したことを把握し、複写レジスタ群２４から割込要因を示すデータを読み出して割込要因に応じた処理を行なう。
【００５１】
なお、主制御部１２のＣＰＵ２０は、システムタイマを基準として動作する。システムタイマは、予め定められた時間間隔（周期）でカウントするものであって、カウント毎にＣＰＵ２０に対してタイマ割込みを発生させる。システムタイマの更新（時計のカウント）は、主制御部１２の基板上に設けられた不図示のタイマＩＣ(Integrated Circuit)から供給されるクロックを基準として行なわれる。システムタイマは、リアルタイムＯＳ（オペレーティングシステム）においては、一般的に知られている技術であるため、ここではこれ以上の説明を省略する。
【００５２】
また、機器制御部１４にも、タイマＩＣ（不図示）が設けられ、上記システムタイマのカウント周期と同じ長さの周期でクロックを出力する。
【００５３】
なお、ＳｅｒＤｅｓ制御部２２、複写レジスタ群２４、ＳｅｒＤｅｓ制御部３０、入出力制御レジスタ群３２、及び駆動・受信回路３４の各々は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアにより構成される。
【００５４】
＜書込みバッファ＞
ここで、書込みバッファ５１について更に詳しく説明する。書込みバッファ５１は、コントローラ５２が書込要求に基づいて「書込選択処理」を実行する前に、書込要求に係る情報を一時的に記憶する。書込要求に係る情報は、複写レジスタ群２４の記憶内容が更新されるまで一時的に記憶される。書込要求には、判定情報、書込みアドレス、及び書込みデータが含まれる。ここで「判定情報」とは、入出力制御レジスタ群３２のみに対して書込む「通常書込み」か、入出力制御レジスタ群３２に書込むだけでなく複写レジスタ群２４にも直接書込む「直接書込み」なのかを判定する判定ビットである。
【００５５】
また、ここでの「書込みアドレス」とは、上記のカウント値ではなく、書込要求においてＣＰＵ２０により指定された、書込み先となる入出力制御レジスタ群３２のレジスタのアドレスである。入出力制御レジスタ群３２のアドレスは、複写レジスタ群２４のアドレスに対応している。従って、ＣＰＵ２０により指定されたアドレスは、複写レジスタ群２４のレジスタのアドレスでもある。また、ここで「書込みデータ」とは、入出力制御レジスタ群３２（及び、複写レジスタ群２４）に書き込まれる制御用データである。
【００５６】
図４は書込みバッファ５１の構成例を示す模式図である。図４に示すように、書込みバッファ５１は、「判定情報」を記憶する判定情報記憶領域５１Ａ、「書込みアドレス」を記憶する書込みアドレス記憶領域５１Ｂ、及び「書込みデータ」を記憶する書込みデータ記憶領域５１Ｃというように、書込要求に含まれる各情報に応じた複数の記憶領域を備えている。また、書込みバッファ５１には、書込要求に係る情報が１ブロック分まで記憶される。図示した例では、１／４ブロック分の情報（斜線部）が、書込みバッファ５１の各記憶領域に記憶されている。
【００５７】
「書込みアドレス」及び「書込みデータ」の各々は、ＳｅｒＤｅｓ制御部２２によりパケット化されて送信される。また、「判定情報」及び「書込みアドレス」の各々は、コントローラ５２の書込選択回路５２ｃにより取得される。
【００５８】
＜複写レジスタ群＞
ここで、複写レジスタ群２４について更に詳しく説明する。図５は複写レジスタ群の構成例を示す模式図である。図５に示すように、複写レジスタ群２４は、複数のブロック２４Ｂ１〜２４Ｂｎを含む。複数のブロック２４Ｂ１〜２４Ｂｎの各々は、転送単位の書込みデータを記憶する記憶領域である。例えば、複写レジスタ群２４は、各ブロックの記憶容量が６４ビットの２５６個のブロックを有していてもよい。なお、複数のブロック２４Ｂ１〜２４Ｂｎを区別する必要がない場合は、ブロック２４Ｂと総称する。
【００５９】
複数のブロック２４Ｂ１〜２４Ｂｎの各々には、各ブロックに対応する複数のフラグ２４Ａ１〜２４Ａｎが設けられている。なお、複数のフラグ２４Ａ１〜２４Ａｎを区別する必要がない場合は、フラグ２４Ａと総称する。フラグ２４Ａは、直接書込みを行なった複写レジスタ群２４のブロック２４Ｂへの送信（転送）による書込をマスク（更新を禁止）するために設けられている。例えば、フラグ２４Ａを「１」として対応するブロック２４Ｂの更新を禁止し、フラグ２４Ａを「０」として対応するブロック２４Ｂの更新を許可する。
【００６０】
＜制御装置の作用＞
次に、本実施形態に係る制御装置１１の作用について説明する。
【００６１】
（入出力制御レジスタ群３２の更新）
ＣＰＵ２０は、機器を制御するための制御用のデータを書込むための書込要求をＣＰＵバス２６を介してＳｅｒＤｅｓ制御部２２に出力する。ＳｅｒＤｅｓ制御部２２のコントローラ５２は、ＣＰＵバスインタフェース５０及び書込みバッファ５１を介して書込要求を受け取ると、パケット生成回路５４、バッファ５６、及びパラレルシリアル変換回路５８を制御して、ＣＰＵ２０から受け取った書込要求をパケット化して送信する。
【００６２】
機器制御部１４のコントローラ８０は、シリアルパラレル変換回路８２、バッファ８４、及びパケットデコード回路８６を制御して、書込要求のパケットをデコードして書込要求を取り出す。
【００６３】
コントローラ８０は、入出力制御レジスタ群３２に含まれる複数のレジスタのうち、上記デコードして得られた書込要求で指定されたアドレスのレジスタ（出力レジスタ）に、当該レジスタに対応する機器を制御するための制御用のデータを書込む。これにより、書込まれた制御用のデータに応じて該当の機器が駆動される。
【００６４】
また、駆動・受信回路３４は、接続された機器から当該機器の状態を示す信号が入力されると、その信号に応じたデータを当該機器の状態を示すデータ用の入力レジスタに書込む。
【００６５】
また、本実施形態において、機器制御部１４には、不図示の割込回路が設けられている。割込回路により割込（例えば、機器の動作異常など）が検出された場合には、機器制御部１４のＳｅｒＤｅｓ制御部３０に設けられたコントローラ８０は、入出力制御レジスタ群３２の割込レジスタに、割込発生を示すデータを書込むと共に、割込要因レジスタに割込要因のデータを書込む。また、コントローラ８０は、パケット生成回路８８に割込パケットを生成させ、パラレルシリアル変換回路９２でシリアル変換して主制御部１２に送信する。
【００６６】
（複写レジスタ群２４の更新）
本実施形態の制御装置１１では、システムタイマのカウント周期以下の周期で、入出力制御レジスタ群３２に記憶された全データを読出してシリアルバス４０を介して送信し複写レジスタ群２４に書込む複写処理が行なわれる。例えば、システムタイマのカウント周期が１ｍｓであれば、複写周期は１ｍｓ以下の周期とされる。本実施形態では、入出力制御レジスタ群３２に記憶された各データを先頭アドレス（先頭ブロック）から順に読出して、読出したデータから複写先のアドレスを指定せずに複数のパケットを生成して送信し、複写レジスタ群２４の先頭アドレス（先頭ブロック）から当該複数のパケットの転送順にデータを書込む。これにより、複写レジスタ群２４の記憶内容が更新される。
【００６７】
以下、この複写処理を詳しく説明する。
機器制御部１４のＳｅｒＤｅｓ制御部３０のコントローラ８０は、機器制御部１４に設けられたタイマＩＣからクロックが出力されると、入出力制御レジスタ群３２から複写レジスタ群２４へのデータ複写のための読出処理を開始する。なお、ここでは、タイマＩＣのクロックが出力された時を読出開始タイミングとしたが、これは一例であって、読出開始タイミングはこれに限定されない。
【００６８】
具体的には、コントローラ８０のレジスタデータ転送回路８０ａは、アドレスカウンタ９４から出力されたアドレスに従って、入出力制御レジスタ群３２の先頭アドレス（先頭ブロック）からブロック単位のデータを順次読み出して、パケット生成回路８８に当該読み出したデータを順次入力する。アドレスカウンタ９４の初期値は、入出力制御レジスタ群３２の先頭アドレスとされる。例えば、１番目から順にカウントアップする場合は、アドレスカウンタ９４の初期値は「１」である。
【００６９】
そして、レジスタデータ転送回路８０ａがブロック単位のデータを読み出す毎に、アドレスカウンタ９４がカウントアップする。レジスタデータ転送回路８０ａは、入出力制御レジスタ群３２から全データを読み出すまで、アドレスカウンタ９４のカウント値が示すアドレスからブロック単位のデータを読み出してパケット生成回路８８に入力することを繰り返す。
【００７０】
パケット生成回路８８は、複写対象となるブロック単位のデータが入力される毎に、当該データを複写レジスタ群２４に書込ませるための複写命令のパケット（以下、複写パケットという）を生成し、バッファ９０に記憶する。なお、複写パケットには、複写先（書込先）のアドレスの情報は含めない。これにより、転送データ量が削減される。なお、送信される複数のパケットには、アドレスカウンタ９４のカウント値が含まれる。
【００７１】
パラレルシリアル変換回路９２は、レジスタデータ転送回路８０ａの制御の下、バッファ９０に記憶された複写パケットをシリアル信号に変換して、シリアルバス４０の信号線Ｒｘに出力する。これにより、入出力制御レジスタ群３２に記憶されている全データから複数の複写パケットが生成されて主制御部１２に転送される。
【００７２】
主制御部１２に転送された複写パケットは、シリアルパラレル変換回路６０によりパラレル形式の複写パケットに変換されて、バッファ６２に記憶される。パケットデコード回路６４は、バッファ６２に記憶された複写パケットをデコードして複写すべきデータを取り出す。
【００７３】
複写レジスタ更新回路５２ａは、パケットデコード回路６４でデコードされて得られたデータを、複写レジスタ群２４の、アドレスカウンタ６６から出力されたアドレスが示すレジスタに書込む。１つの複写パケットにより書込まれるデータは、ブロック単位のデータである。従って、書込まれるデータのサイズは、入出力制御レジスタ群３２からデータを読み出したときの読出しサイズに等しい。
【００７４】
アドレスカウンタ６６の初期値は、複写レジスタ群２４の先頭アドレスとされる。そして、複写レジスタ更新回路５２ａが、複写パケットのデータ（ブロック単位のデータ）を書込む毎に、アドレスカウンタ６６がカウントアップする。複写レジスタ更新回路５２ａは、入出力制御レジスタ群３２から読み出され送信された全データを書込むまで、アドレスカウンタ６６のカウント値が示すアドレスにデータを書込む処理を繰り返す。
【００７５】
このように、入出力制御レジスタ群３２の先頭アドレスから順に同じサイズのデータを読み出して順次複写レジスタ群２４に書込むことを繰り返すことにより、最終的に全データが複写レジスタ群２４に複写される。このため、複写パケットで複写先（書込先）のアドレスを指定しなくても、問題なく複写処理が実行される。これにより、複写処理が簡易化する。
【００７６】
また、本実施形態では、上記説明したように、システムタイマのカウント周期以下の周期で、複写レジスタ群２４へ全データが複写されるように、レジスタデータ転送回路８０ａ及び複写レジスタ更新回路５２ａが構成されている。すなわち、全データの複写開始から複写終了までの時間は、システムタイマのカウント周期以下の周期となる。ここで、複写開始とは、入出力制御レジスタ群３２から複写のためのデータの読出しを開始するタイミングをいい、複写終了とは、複写レジスタ群２４への全データの書込が終了するタイミングをいう。
【００７７】
従って、あるカウント周期の途中で、入出力制御レジスタ群３２のデータが更新された場合、遅くとも次のカウント周期で、当該更新されたデータが複写レジスタ群２４に複写されて、複写レジスタ群２４の記憶内容が更新される。ＣＰＵ２０は、複写レジスタ群２４に複写されたデータを参照することで、システムタイマのカウント周期以下の周期で更新されたデータを参照できる。なお、複写周期は予め設定しておく。
【００７８】
更にまた、入出力制御レジスタ群３２のデータから生成された複数の複写パケットは、予め定められた時間以上の間隔をあけて（ただし、複写開始から複写終了までの時間がシステムタイマのカウント周期以下となるように）１つずつ送信される。従って、複写パケットの転送処理中に割込が発生した場合でも、当該複写パケットが送信された後、次の複写パケットが送信されるまでの間に、割込パケットを主制御部１２に送信することができる。もちろん、複写パケットの送信間隔は、割込パケットの送信がなければ、間隔を詰めて（すなわち、割込パケットを発行する場合に比べて送信間隔を短くして）送信するようにしてもよい。
【００７９】
（ＣＰＵ２０による直接書込処理）
ＣＰＵ２０からの書込要求には、入出力制御レジスタ群３２にのみデータを書込む「通常書込処理」を行う書込要求と、入出力制御レジスタ群３２だけでなく複写レジスタ群２４にも直接データを書込む「直接書込処理」を行う書込要求とがある。ＣＰＵ２０から「直接書込処理」を行う書込要求が出力された場合には、書込選択回路５２ｃの機能により、複写レジスタ群２４に対しても指定されたアドレスにデータを書込む処理（直接書込処理）が行なわれる。
【００８０】
「直接書込処理」を行なう場合、具体的には、書込選択回路５２ｃは、上記例と同様に、書込みバッファ５１を介してＣＰＵ２０から書込要求を受け取ると、書込要求のパケットを生成して、シリアル化し、シリアルバス４０を介して機器制御部１４に送信して、入出力制御レジスタ群３２のレジスタのうち、書込要求で指定されたアドレスのレジスタに、指定されたデータを書込ませる。
【００８１】
そして、書込選択回路５２ｃは、入出力制御レジスタ群３２にデータを書込んだレジスタに対応する複写レジスタ群２４のレジスタにも、書込みバッファ５１を介してＣＰＵ２０から受け取った書込要求で指定されたデータを書込む。なお、直接書込処理を行なった場合には、当該直接書込処理を行なった直後の複写周期で行なわれる複写処理において、当該直接書込を行なった複写レジスタ群２４のレジスタへの書込をマスク（書込を禁止）する。
【００８２】
このように、書込選択回路５２ｃは、ＣＰＵ２０から受け取った書込要求が、「通常書込処理」を行う書込要求か、「直接書込処理」を行う書込要求かに応じて、処理内容を選択して実行する。本実施の形態では、書込選択回路５２ｃは、「直接書込処理」を行う書込要求を受け取ると、複写レジスタ群２４の更新状況に応じて処理内容を選択して実行する。複写レジスタ群２４の更新状況に応じた「書込選択処理」については後述する。
【００８３】
（ＣＰＵ２０によるデータ読出処理）
ＣＰＵ２０は、入出力制御レジスタ群３２に書込まれたデータを参照する場合、入出力制御レジスタ群３２から直接データを取得するのではなく、複写レジスタ群２４からデータを読み出すことで、入出力制御レジスタ群３２に書込まれたデータを参照することができる（通常読出処理）。
【００８４】
従って、ＣＰＵ２０は、データ読出しの際には、複写レジスタ群２４のアドレスを指定した読出要求をＳｅｒＤｅｓ制御部２２に出力する。ＳｅｒＤｅｓ制御部２２のコントローラ５２の読出選択回路５２ｂは、ＣＰＵバスインタフェース５０を介してＣＰＵ２０から複写レジスタ群２４のデータの読出要求を取得した場合には、複写レジスタ群２４に複写されたデータ（読出要求で指定されたアドレスのデータ）を読み出して、ＣＰＵ２０に供給する。入出力制御レジスタ群３２に対する読出要求のパケットの発行はなされない。      
【００８５】
また、入出力制御レジスタ群３２から直接データを読み出す読出要求をＣＰＵ２０が出力した場合には、上述した読出選択回路５２ｂの機能により、入出力制御レジスタ群３２からデータを直接読み出してＣＰＵ２０に転送することができる（直接読出処理）。
【００８６】
読出選択回路５２ｂは、複写レジスタ群２４からデータを読み出す通常の読出要求を受け取った場合には、複写レジスタ群２４の指定アドレスのレジスタからデータを読み出して、ＣＰＵ２０に供給する「通常読出処理」を行う。一方、読出選択回路５２ｂは、入出力制御レジスタ群３２から直接データを読み出す読出要求を受け取った場合には、複写レジスタ群２４からのデータの読出しは行なわず、入出力制御レジスタ群３２からデータを読み出して、ＣＰＵ２０に供給する「直接読出処理」を行なう。
【００８７】
「直接読出処理」を行なう場合、具体的には、読出選択回路５２ｂは、入出力制御レジスタ群３２のアドレスが指定された読出要求をパケット生成回路５４によりパケット化して、バッファ５６に記憶させ、パラレルシリアル変換回路５８により当該バッファ５６に記憶した読出要求のパケットをシリアル信号のパケットに変換して、シリアルバス４０の信号線Ｔｘに出力する。
【００８８】
機器制御部１４のＳｅｒＤｅｓ制御部３０において、読出要求のパケットを受信すると、当該受信したパケットをシリアルパラレル変換回路８２によりパラレル化して、バッファ８４に記憶し、パケットデコード回路８６により当該バッファ８４に記憶した読出要求のパケットをデコードして、読出要求のデータを取り出す。コントローラ８０は、当該読出要求に基づき、当該読出要求の指定アドレスが示す入出力制御レジスタ群３２のレジスタからデータを読み出して、パケット生成回路８８により当該読み出したデータをパケット化し、バッファ９０に記憶し、パラレルシリアル変換回路９２で、バッファ９０に記憶したパケットをシリアル信号に変換して、信号線Ｒｘに出力する。
【００８９】
主制御部１２の読出選択回路５２ｂは、機器制御部１４から送信された読出データのパケットを受け取ると、シリアルパラレル変換回路６０によりパラレル変換し、パケットデコード回路６４によりデコードしてデータを取り出して、ＣＰＵバスインタフェース５０を介してＣＰＵバス２６に伝送しＣＰＵ２０に供給する。
【００９０】
このように直接読出処理を可能に構成することで、ＣＰＵ２０が、入出力制御レジスタ群３２のデータを直接参照したい場合に対応可能となる。
【００９１】
（従来の制御装置との比較）
ここで、図１２に示す従来の制御装置の構成例と比較しながら、本実施形態の制御装置１１について説明する。
【００９２】
図１２（Ａ）に示すように、従来の制御装置は、入出力制御レジスタ群が、主制御部側に設けられていた。主制御部の入出力制御レジスタ群と、機器制御部の駆動・受信回路とはパラレル信号線により接続され、入出力制御レジスタ群から駆動・受信回路に対して、モータやスイッチなどの駆動を制御するデータがパラレル信号線を介して出力され、駆動・受信回路から入出力制御レジスタ群に対して、センサの検出結果等の状態を示すデータがパラレル信号線を介して入力されていた。すなわち、機器の数に比例した分のパラレル信号線で主制御部と機器制御部とを接続する必要があった。しかしながら、主制御部の基板の実装スペース等の問題により、多数のパラレル信号線を配設することは問題があった。
【００９３】
そこで、図１２（Ｂ）に示すように、主制御部及び機器制御部の各々にシリアルＩ／Ｏインタフェース（ＳＩＯ  ＩＦ）を設け、複数のシリアル信号線で主制御部と機器制御部とを接続し、複数のパラレル信号線をいくつかのグループに分け、１つのグループに対して１つのシリアル信号線を対応させて配設し、同一グループに属する複数のパラレル信号をシリアル信号に変換して、対応するシリアル信号線を介して送受信させる構成も考えられる。この構成により、主制御部と機器制御部とを接続する信号線の数を減らすことができるが、駆動・受信回路に接続される機器が増加する等により、機器の変更があった場合には、シリアル信号線が増加してしまう。また、このように機器が増加する場合、グルーピングを新たに設定する必要があり、機器制御部だけでなく、主制御部の作り替えも必要となる。
【００９４】
これに対して、本実施形態の制御装置１１は、主制御部１２及び機器制御部１４を汎用的なシリアルバス４０により接続し、機器制御部１４に入出力制御レジスタ群３２を設けた。これにより、また、主制御部１２と機器制御部１４を接続する信号線の数が削減され、主制御部１２や機器制御部１４の基板面積も小さくでき、コスト削減につながる。また、機能変更（機器群１６の機器の増加や削減など）が生じても、主制御部１２及び機器制御部１４を接続する信号線に変化は生じない。また、主制御部１２の構成は、増加する機器に依存しないため、主制御部１２の作り替えの必要もない。
【００９５】
また、本実施形態では、シリアルバス４０を採用したため、パレラルバスのように、遠隔接続時の信号品質の劣化（スキュー、バラつき等)の問題は生じない。
【００９６】
また、シリアルバス４０は、汎用的な例えば数100Mbpsのシリアル伝送路であるため、当該伝送路のインタフェースとなるＳｅｒＤｅｓ制御部２２やＳｅｒＤｅｓ制御部３０等は、安価なデバイス（ASIC,FPGA）で実現される。また、パケット方式で通信するため、エラーチェックを容易にでき、伝送路の信頼性が向上する。
【００９７】
なお、入出力制御レジスタ群３２を機器制御部１４側に設け、入出力制御レジスタ群３２から常にデータを読出す構成とした場合、データを読み出す際の遅延が問題となる。すなわち、入出力制御レジスタ群３２に対する読出要求をシリアルバス４０を介して送信してからデータが読み出されてＣＰＵ２０に送信されるまでの時間がかかる。しかしながら、本実施形態では、主制御部１２に複写レジスタ群２４を設け、入出力制御レジスタ群３２のデータを複写レジスタ群２４に複写するようにしたため、ＣＰＵ２０は、シリアルバス４０を介さずとも、複写レジスタ群２４に複写されたデータを読み出せば、入出力制御レジスタ群３２に記憶されたデータを取得できる。
【００９８】
従って、データ読出しの遅延は生じず、必要以上に高速な伝送路を用いなくても従来と同等の読出性能が確保される。なお、書込については、ＣＰＵ２０からＳｅｒＤｅｓ制御部２２に対して書込要求を出力しさえすれば、その後は、ＳｅｒＤｅｓ制御部２２でパケットが生成され、機器制御部１４で書込処理されるため、ＣＰＵ２０が書込処理待ちとなることはない。
【００９９】
＜直接書込みと更新との競合＞
次に、図６を参照して直接書込みと転送（機器制御部側からの送信）による更新との競合について説明する。ここで「転送」とは、機器制御部側からのデータの送信を意味する。上記の通り、ＣＰＵ２０が書込処理待ちとなることはない。しかしながら、ＣＰＵ２０から書込みバッファ５１を介して入出力制御レジスタ群３２に書き込まれたデータは、複写レジスタ群２４の記憶内容が更新されるまで、複写レジスタ群２４から読み出すことができない。
【０１００】
図６に示すように「直接書込処理」が行なわれる場合、書込みバッファ５１から読み出されたデータは、入出力制御レジスタ群３２に書き込まれると共に、複写レジスタ群２４にも直接書き込まれる。また、入出力制御レジスタ群３２から複写レジスタ群２４に全データが複写されて、複写レジスタ群２４の記憶内容が更新される。複写は、例えば１ｍｓ等、システムタイマのカウント周期以下の予め定めた周期で行われる。
【０１０１】
従って、ＣＰＵ２０が複写レジスタ群２４からデータを読み出す場合（通常読出処理）において、書込みバッファ５１を介した複写レジスタ群２４への直接書き込みと、入出力制御レジスタ群３２からの複写による複写レジスタ群２４の更新とが競合し、複写レジスタ群２４に直接書き込まれたデータが更新されて読み出せない場合がある。
【０１０２】
例えば、複写レジスタ群２４に直接書き込まれた最新データを「データＡ（＝１１１１００１１）」とし、入出力制御レジスタ群３２からの複写による複写レジスタ群２４の更新データを「データＢ（＝１１１１００００）」とする。更新データは、最新データの１周期前のデータである。ＣＰＵ２０により読み出される読出データを「データＹ」とすると、更新前に複写レジスタ群２４からデータを読み出した場合には、最新データが読み出されて「データＡ」が「データＹ」となる。一方、更新後に複写レジスタ群２４からデータを読み出した場合には、更新データが読み出されて「データＢ」が「データＹ」となる。即ち、データの読み出しタイミングにより、複写レジスタ群２４に直接書き込まれたデータが更新されて読み出せなくなる。
【０１０３】
＜複写レジスタ群の更新状況に応じた書込選択処理＞
本実施の形態では、コントローラ５２の書込選択回路５２ｃは、複写レジスタ群２４の更新状況に応じて処理内容を選択して実行する「書込選択処理」を行う。図７は書込選択回路５２ｃで実行される「書込選択処理」の手順を示すフローチャートである。図７に示すように、ステップ１００で、直接書込処理か否かが判断される。書込選択回路５２ｃは、書込みバッファ５１に記憶された書込要求に含まれる判定情報を取得し、取得した判定情報に基づいて直接書込処理か否かを判断する。「直接書込処理」ではない場合には、ステップ１０６に進み、「通常書込処理」を実行する。
【０１０４】
「直接書込処理」である場合には、ステップ１０２で、「更新管理アドレス」が「直接書込みアドレス」より小さいか否かを判断する。「更新管理アドレス」は、上記の通り、複写レジスタ群２４が何番目のブロックまで更新されたかを示す情報である。書込選択回路５２ｃは、複写レジスタ群２４から「更新管理アドレス」を取得する。また、「直接書込みアドレス」は、書込要求で指定された書込みアドレスが、複写レジスタ群２４の何番目のブロックに在るかを示す情報である。書込選択回路５２ｃは、書込要求に含まれる書込みアドレスから「直接書込みアドレス」を取得する。各情報はカウント値で表される。
【０１０５】
「更新管理アドレス」が「直接書込みアドレス」より小さい場合、即ち、更新前のブロックに直接書込みを行う場合は、ステップ１０４に進み、「第１の処理」を実行する。「更新管理アドレス」が「直接書込みアドレス」以上の場合は、ステップ１０８に進む。そして、ステップ１０８で、「更新管理アドレス」が「直接書込みアドレス」に等しいか否かを判断する。「更新管理アドレス」が「直接書込みアドレス」に等しい場合、即ち、更新中のブロックに直接書込みを行う場合は、ステップ１１０に進み、「第２の処理」を実行する。
【０１０６】
「更新管理アドレス」が「直接書込みアドレス」に等しくない場合は、ステップ１１２に進む。そして、ステップ１１２で、「更新管理アドレス」が「直接書込みアドレス」より大きいか否かを判断する。「更新管理アドレス」が「直接書込みアドレス」より大きい場合、即ち、更新後のブロックに直接書込みを行う場合は、ステップ１１４に進み、「第３の処理」を実行する。なお、ステップ１１２での否定判定はない。
【０１０７】
（第１の処理）
図８は「第１の処理」を説明するための模式図である。「更新管理アドレス」が「直接書込みアドレス」より小さい場合、即ち、更新前のブロックに直接書込みを行う場合は、「第１の処理」を実行する。図示した例では、更新管理アドレスが「１」、直接書込みアドレスが「３」である。図８に示すように、まず、書込みアドレスから取得した「直接書込みアドレス」に係るブロック２４Ｂのフラグ２４Ａを「１」にセットして、「直接書込みアドレス」に係るブロック２４Ｂの更新を禁止する。図示した例では、ブロック２４Ｂ３のフラグ２４Ａ３が「１」にセットされ、ブロック２４Ｂ３の更新が禁止されている。
【０１０８】
バッファ５１から書込要求を読み出して、更新を禁止したブロック２４Ｂ３に対して直接書込みを行う。更新を禁止したブロック２４Ｂ３では、直接書き込まれたデータは複写により更新されなくなる。図９はブロックの更新を禁止する様子を示す模式図である。図９に示すように、フラグ２４Ａが「１」にセットされて更新が禁止されると、直接書込みされた部分（Ｗビット）の更新が禁止される。なお、読出専用の部分（Ｒビット）には、ＣＰＵ２０から直接書き込みができない。ここで「Ｗ」はライトの略記であり、「Ｒ」はリード・オンリーの略記である。
【０１０９】
この場合は、直接書込みしたデータに係るブロックは更新が禁止されているので、ＣＰＵ２０により直接書込要求したデータの読出要求があると、複写レジスタ群２４から直接書込要求したデータが読み出される。
【０１１０】
（第２の処理）
図１０は「第２の処理」を説明するための模式図である。「更新管理アドレス」が「直接書込みアドレス」に等しい場合、即ち、更新中のブロックに直接書込みを行う場合は、「第２の処理」を実行する。図示した例では、更新管理アドレスが「３」、直接書込みアドレスが「３」である。図１０に示すように、「更新管理アドレス」がインクリメントされて更新中のブロックが次に移るまで、複写レジスタ群２４の「直接書込みアドレス」への直接書き込みを中止する。なお、「直接書込みアドレス」に係るブロック２４Ｂのフラグ２４Ａを「０」にセットして、「直接書込みアドレス」に係るブロック２４Ｂの更新を許可する。
【０１１１】
この場合は、複写レジスタ群２４への直接書込みが中止されているので、書込要求は書込みバッファ５１に保持されている。また、「直接書込みアドレス」に係るブロック２４Ｂ３は更新される可能性がある。従って、ＣＰＵ２０により直接書込要求したデータの読出要求があると、書込みバッファ５１から直接書込要求したデータが読み出される。
【０１１２】
（第３の処理）
図１１は「第３の処理」を説明するための模式図である。「更新管理アドレス」が「直接書込みアドレス」より大きい場合、即ち、更新後のブロックに直接書込みを行う場合は、「第３の処理」を実行する。図示した例では、更新管理アドレスが「４」、直接書込みアドレスが「３」である。図１１に示すように、バッファ５１から書込要求を読み出して、「直接書込みアドレス」に係るブロック２４Ｂ３に対して直接書込みを行う。
なお、「直接書込みアドレス」に係るブロック２４Ｂ３のフラグ２４Ａ３を「０」にセットして、「直接書込みアドレス」に係るブロック２４Ｂ３の更新を許可する。
【０１１３】
この場合は、直接書込みしたデータに係るブロック２４Ｂ３は更新後に上書きされているので、ＣＰＵ２０により直接書込要求したデータの読出要求があると、複写レジスタ群２４から直接書込要求したデータが読み出される。
【０１１４】
以上の通り、本実施の形態では、複写レジスタ群２４の更新状況（更新前・更新中・更新後）に応じて、処理内容（第１の処理・第２の処理・第３の処理）を選択して実行する「書込選択処理」を行うので、ＣＰＵ２０から書き込まれたデータが、複写レジスタ群２４の更新を待たずにＣＰＵ２０によって読み出される。
【０１１５】
＜その他の変形例＞
なお、本実施形態では、機器制御部１４が１つ設けられている場合を例に挙げて説明したが、複数設けられていても良い。複数の機器制御部１４の各々と、主制御部１２とがシリアルバス４０を介して接続されるよう構成し、上記のように、入出力制御レジスタ群３２の複写レジスタ群２４に対する複写をシステムタイマのカウント周期以下の周期で行なえばよい。
【０１１６】
また、上記では説明を省略したが、パケットの送受信において、正常に受信された場合には、正常受信を示す応答パケット(ACK)を相手装置に送信し、受信エラーが生じた場合には、受信エラーを示す応答パケット(NACK)を相手装置に送信することで、相手装置に処理完了・異常が通知される。応答パケットNACK受信時には、パケットが再送される。
【０１１７】
例えば、コントローラ５２は、機器制御部１４から複写パケットを受信した場合には、CRCチェック等のエラーチェックを行ない、正常に受信されたことが検出されれば応答パケットACKを返信し、複写レジスタ群２４の先頭アドレスから順番にデータを書込む。また、受信した複写パケットのエラーチェックにおいて、不正が検出されれば、応答パケットNACKを返信する。
【０１１８】
また、例えば、入出力制御レジスタ群３２へのデータの書込要求のパケットを主制御部１２から機器制御部１４に送信した場合も同様に、コントローラ８０は、CRCチェック等を行ない、正常に受信されたことが検出されれば、指定アドレスにデータを書込み、応答パケットACKパケットを送信する。
【０１１９】
また、入出力制御レジスタ群３２に対するデータの読出要求のパケットを主制御部１２から機器制御部１４に送信した場合も同様に、コントローラ８０は、CRCチェック等を行ない、正常に受信されたことが検出されれば、指定アドレスからデータを読み出して、読み出したデータをパケット化して送信し、不正が検出されれば、応答パケットNACKを返信する。なお、これら処理において、応答パケットACK/NACKパケットは、パリティチェックのみでCRCチェックは行なわなくてもよい。
【０１２０】
こうした通信制御は一般的に採用されている技術であるため、ここでは詳細な説明を省略する。
【０１２１】
なお、本実施形態では、予め定められた複写周期毎に、複数の複写パケットの送信、及び応答パケットACKの返信がなされるため、こうした定期的な通信により、シリアルバス４０のリンク断線エラーのチェックも可能である。例えば、予め定められた時間以上、パケットの送受信がなされなかった場合、シリアルバス４０のリンク断線エラーが発生したと判断してもよい。
【０１２２】
また、本実施形態では、複写レジスタ更新回路５２ａ、読出選択回路５２ｂ、及び書込選択回路５２ｃをコントローラ５２の機能として説明したが、これに限定されず、例えば、コントローラ５２とは別の回路により構成し、コントローラ５２が各回路を制御することによって、各機能を実現するように構成してもよい。
【０１２３】
また、本実施形態では、書込先のアドレスを指定しない複数の複写パケットを機器制御部１４から主制御部１２に送信して、複写レジスタ群２４にデータを書込ませる例について説明したが、アドレスを指定した複写パケットを生成して送信することも可能である。この場合には、当該指定されたアドレスにデータが書込まれる。
【符号の説明】
【０１２４】
１０   画像形成装置
１１   制御装置
１２   主制御部
１２   順次主制御部
１４   機器制御部
１６   機器群
２２   シリアライザ・デシリアライザ制御部
２２   制御部
２４Ａ フラグ
２４Ｂ ブロック
２４   複写レジスタ群
２６   バス
３０   シリアライザ・デシリアライザ制御部
３０   制御部
３２   入出力制御レジスタ群
３４   駆動・受信回路
４０   シリアルバス
５０   バスインタフェース
５１   バッファ
５１Ｂ アドレス記憶領域
５１Ｃ データ記憶領域
５１Ａ 判定情報記憶領域
５２   コントローラ
５２ａ 複写レジスタ更新回路
５２ｂ 読出選択回路
５２ｃ 書込選択回路
５４   パケット生成回路
５６   バッファ
５８   パラレルシリアル変換回路
６０   シリアルパラレル変換回路
６２   バッファ
６４   パケットデコード回路
６６   アドレスカウンタ
８０   コントローラ
８０ａ レジスタデータ転送回路
８２   シリアルパラレル変換回路
８４   バッファ
８６   パケットデコード回路
８８   パケット生成回路
９０   バッファ
９２   パラレルシリアル変換回路
９４   アドレスカウンタ
【図１】
2015026216.tif 000003
【図２】
2015026216.tif 000004
【図３】
2015026216.tif 000005
【図５】
2015026216.tif 000006
【図６】
2015026216.tif 000007
【図７】
2015026216.tif 000008
【図１２】
2015026216.tif 000009
【図４】
2015026216.tif 000010
【図８】
2015026216.tif 000011
【図９】
2015026216.tif 000012
【図１０】
2015026216.tif 000013
【図１１】
2015026216.tif 000014