(57)【要約】【課題】安定した動作制御を行うための通信制御方法を提供する。【解決手段】被制御装置の動作を制御するためのデータが記憶される動作設定レジスタ及び前回の通信により受信した前回データを一時保管する別のレジスタを備える通信制御装置により実行される方法である。動作設定レジスタは、データの書き込みが重複することで被制御装置に不安定な動作が生じる可能性のある特定のアドレスを有する。レジスタに保管される前回データと今回の通信により受信した今回データとを比較し（Ｓ４０１）、一致する場合に今回データの書き込み先のアドレスが特定のアドレスと一致するかを確認する（Ｓ４０３）。今回データの書き込み先のアドレスが特定のアドレスであれば、今回データの動作設定レジスタへの書き込みを禁止する（Ｓ４０５）。【選択図】図１１
2014023013.tif 000002
【特許請求の範囲】
【請求項１】
被制御装置の動作を制御するためのデータが記憶される記憶手段と、
前記記憶手段への書き込み先のアドレスを含む前記データを通信により受信する受信手段と、
前回の通信により受信したデータを保持する保持手段と、
前記保持手段に保持された前記前回の通信により受信された前回データと、今回の通信により受信した今回データとの内容が一致した場合、前記今回データの前記記憶手段への書き込みを禁止する通信制御手段と、を備えることを特徴とする、
通信制御装置。
【請求項２】
前記記憶手段は、前記データの書き込みが重複することで前記被制御装置に不安定な動作が生じる可能性のある領域を有し、
前記通信制御手段は、前記今回データの書き込み先のアドレスが前記領域であれば、前記今回データの前記記憶手段への書き込みを禁止することを特徴とする、
請求項１記載の通信制御装置。
【請求項３】
前記通信制御手段は、前記前回データの受信終了から前記今回データの受信終了までの時間を測定し、測定した時間が予め定められた時間以上であれば、前記前回データと前記今回データとの内容が一致しかつ前記今回データの書き込み先のアドレスが特定のアドレスを指している場合であっても、前記今回データの前記記憶手段への書き込みを許可することを特徴とする、
請求項２記載の通信制御装置。
【請求項４】
前記データは誤り検出符号を含んでおり、
前記通信制御手段は、前記今回データの前記記憶手段への書き込みが許可されているときに、前記今回データの前記誤り検出符号を用いたデータ誤り検出を行い、データに誤りが無ければ、前記記憶手段への書き込みを行うとともに、前記保持手段に保持されているデータを前記今回データに更新することを特徴とする、
請求項３記載の通信制御装置。
【請求項５】
前記受信手段は、受信した前記データを内部バスを介して前記記憶手段に送信するものであり、
前記通信制御手段は、前記記憶手段への書き込みを禁止するときに、前記受信手段による前記データの前記内部バスへの送信を禁止することを特徴とする、
請求項４記載の通信制御装置。
【請求項６】
被制御装置の動作を制御するためのデータが記憶され、前記データの書き込みが重複することで前記被制御装置に不安定な動作が生じる可能性のある領域を有する記憶手段、前記記憶手段への書き込み先のアドレスを含む前記データを通信により受信する受信手段、及び前回の通信により受信した前回データを保持する保持手段を備える装置により実行される方法であって、
前記保持手段に保管される前記前回データと今回の通信により受信した今回データとの内容を比較する段階と、
前記比較の結果、前記前回データと前記今回データとの内容が一致するときに、前記今回データの書き込み先のアドレスが前記領域であるか否かを確認する段階と、
前記今回データの書き込み先のアドレスが前記領域であれば、前記今回データの前記記憶手段への書き込みを禁止する段階と、を含むことを特徴とする、
通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアル通信システムにおける通信制御技術に関し、特に、通信エラーが発生したときの通信制御技術に関する。
【背景技術】
【０００２】
複写機や複合機などの画像形成装置では、内蔵するＣＰＵ（Central Processing Unit）と各種モータなどの駆動制御を行う専用半導体装置との間でシリアル通信が行われる。以下、専用半導体装置をＡＳＩＣ（Application Specific Integrated Circuit）という。シリアル通信では、アドレスとデータとを時分割で同じ通信線路により転送するために、配線領域を複数の通信線路を用いるパラレル通信よりも小さくできる。しかし、シリアル通信では、パラレル通信と同等以上の転送レートを実現するために、通信周波数を上げる必要がある。
【０００３】
通信周波数を上げることで通信速度が高速化すると、通信線路へのノイズ混入などにより通信エラーが発生しやすくなる。このような通信エラーを回避するために従来から様々な提案がなされている。特許文献１〜４の発明は、このような提案の例である。
【０００４】
特許文献１には、１度の通信で同一の通信データを２回転送するシリアル通信システムが開示される。１回目の通信データと２回目の通信データとを比較して、比較結果が不一致のときは通信エラーが発生したと判断し、比較結果が一致したときのみデータの内部アクセスが発生する。しかし、１回のシリアル通信で同一データを２回転送するために、通信レートの実行値が半減する。
【０００５】
特許文献２には、ＣＰＵとデバイスとの間でＩ２Ｃバスを用いて通信するデータ通信装置が開示される。ＣＰＵからデバイスに転送する転送データであるクロック信号及びデータ信号がＣＰＵに帰還する。ＣＰＵは、転送データと帰還データの相違を監視することで通信エラーの発生を判断する。通信エラー発生時には、転送データの再送信を行う。
【０００６】
特許文献３には、画像データをシリアル通信により転送する画像転送装置が開示される。画素データは、ライン毎に誤り検出データが負荷されたシリアルデータである。画像転送装置では、誤り検出データにより画素データの誤りの有無を検出する。画像転送装置は、誤りの有無に関わらず画素データをライン単位で一時保管しておき、画素データが誤っていると判断した場合には、該画素データをフレームメモリに書き込まない。
【０００７】
特許文献４には、シリアルデータ転送エラー発生時に、データ転送クロックを調整した上でリトライすることでデータを回復する方法が開示される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−４１０５７号公報
【特許文献２】特開２００７−１４８５９２号公報
【特許文献３】特開２００６−１９１１８８号公報
【特許文献４】特開２００７−３１７２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
画像形成装置は、安定した高い生産性が要求される。画像形成装置に内蔵されるモータなどの駆動部品や各種部品を監視するセンサなどをシリアル通信により制御するためには、単位時間当たりに必要なレジスタアクセス数などから計算すると、数Ｍｂｐｓの通信ボーレートが必要となる。さらに、エラー発生時に再送信（リトライ）が必要な場合までを考慮すると、通信ボーレートはさらに高速になる。ＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）などを含む通信パケットで通信を行う方法は、比較的簡易に通信エラーを監視することができる。このような通信パケットでは、ラインノイズによるエラー発生時にデータ再送などの処理を短時間で行うことができる。そのために、画像形成装置に要求される高い生産性を維持することが可能である。
【００１０】
特許文献１〜４は、いずれも、制御に必要な制御データを送信する側（以下、「主局」という。）から、制御データを受信する側（以下、「従局」という。）に、データを転送する際に発生する通信エラーに注目した回避方法である。従って、主局から従局への通信は成功したが、従局から主局への返信データにノイズが混入した場合に、主局は、従局が通信エラーを起こしていると判断しデータの再送が行われる。
【００１１】
この場合、従局は、一度正常に通信ができていると認識しており、その時点で内部へのアクセスが発生している。そのために、主局から再送が行われた場合、同じアクセスの繰り返しになる。このアクセスが単なるレジスタであって、２回連続でライト（write）やリード（read）しても状態遷移などを伴わない場合であれば、大きな問題にはならない。しかし、動作のスタートトリガのような場合、２回連続でアクセスが発生することで、一度動作開始した後に再度動作を開始してしまい、目的とする動作の効果が得られないことがある。さらに、アクセスにより状態遷移を伴うＦＩＦＯ（First In, First Out）などの場合であっても、本来目的とする動作ができない可能性がある。
【００１２】
本発明は、以上のような従来の問題に鑑み、安定した動作制御を行うための通信制御装置及び通信制御方法を提供することを主たる課題とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決する本発明の通信制御装置は、記憶手段、受信手段、記憶手段とは別の保持手段、及び通信制御手段とを備える。記憶手段は、被制御装置の動作を制御するためのデータが記憶される。受信手段は、前記記憶手段への書き込み先のアドレスを含む前記データを通信により受信する。保持手段は、前回の通信により受信したデータを保持する。通信制御手段は、前記保持手段に保持された前記前回の通信により受信された前回データと、今回の通信により受信した今回データとの内容が一致した場合、前記今回データの前記記憶手段への書き込みを禁止する。
【００１４】
本発明の通信制御方法は、記憶手段、受信手段、及び保持手段を備える装置により実行される方法である。記憶手段は、被制御装置の動作を制御するためのデータが記憶され、前記データの書き込みが重複することで前記被制御装置に不安定な動作が生じる可能性のある領域を有する。受信手段は、前記記憶手段への書き込み先のアドレスを含む前記データを通信により受信する。保持手段は、前回の通信により受信した前回データを保持する。
このような装置が、以下の各段階により通信制御を行う。
（１）前記保持手段に保管される前記前回データと今回の通信により受信した今回データとの内容を比較する段階。
（２）前記比較の結果、前記前回データと前記今回データとの内容が一致するときに、前記今回データの書き込み先のアドレスが前記領域であるか否かを確認する段階。
（３）前記今回データの書き込み先のアドレスが前記領域であれば、前記今回データの前記記憶手段への書き込みを禁止する段階。
【発明の効果】
【００１５】
本発明は、前回データと今回データの内容が一致し、かつ今回データのアクセス先がデータの書き込みが重複することで前記被制御装置に不安定な動作が生じる可能性のある領域であれば、今回データの記憶手段への書き込みを禁止する。これにより、例えば、主局から従局への通信が成功し、従局から主局への返答で通信エラーを発生して、データの再送が行われても、従局の記憶手段の同じアドレスへの複数回の連続した書き込みを防止できる。そのために、目的とする動作に支障が生じずに安定した被制御装置の動作制御が可能になる。
【図面の簡単な説明】
【００１６】
【図１】中間転写ベルトの駆動制御機構の構成図。
【図２】ＩＴＢ寄り制御用偏心カムの構成図。
【図３】メイン制御装置の構成図。
【図４】ＡＳＩＣの構成図。
【図５】通信モジュールの具体的な構成例示図。
【図６】主局と従局との間でシリアル通信に用いられる通信プロトコルの説明図。
【図７】主局と従局との間でシリアル通信に用いられる通信プロトコルの説明図。
【図８】主局と従局との間でシリアル通信に用いられる通信プロトコルの説明図。
【図９】主局と従局との間でシリアル通信に用いられる通信プロトコルの説明図。
【図１０】一時格納部の構成例示図。
【図１１】２回連続ライト実行による弊害を防止する処理手順を表すフローチャート。
【図１２】主局における通信時の処理のフローチャート。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面を参照しつつ詳細に説明する。
図１は、本実施形態のシリアル通信システムを用いた画像形成装置に内蔵される、中間転写ベルト（以下、「ＩＴＢ（Intermediate Transfer Belt）」という。）の駆動制御機構の構成図である。
ＩＴＢ１０１は、ＩＴＢ駆動ローラ１０４とＩＴＢ寄り制御ローラ１０５、及びこれらのローラに従動する従動ローラ１０２、１０３の回転に伴い回転駆動される。また、ＩＴＢ１０１は、これらのローラにより、寄り制御される。ＩＴＢ駆動ローラ１０４は、ＩＴＢ駆動モータ１０６により回転駆動される。ＩＴＢ寄り制御ローラ１０５は、ＩＴＢ寄り制御モータ１０８により駆動されるＩＴＢ寄り制御用偏心カム１０７及びＩＴＢ寄り制御レバー１１５によりＩＴＢ１０１の寄りを制御する。ベルト位置検出センサ１０９は、ＩＴＢ１０１のベルト位置をアナログ値で検出する。
【００１８】
ＩＴＢ駆動モータ１０６及びＩＴＢ寄り制御モータ１０８は、ＩＴＢ駆動制御装置１１０により回転動作が制御される。ＩＴＢ駆動制御装置１１０は、駆動制御用の専用半導体装置である駆動制御ＡＳＩＣ１１１及びモータ駆動部１１２、１１３を備える。ＩＴＢ駆動制御装置１１０は、図１では、駆動制御ＡＳＩＣ１１１及びモータ駆動部１１２、１１３を図示するのみであるが、これ以外に、図示しない各種のモータ制御回路やセンサ駆動回路を備えていてもよい。駆動制御ＡＳＩＣ１１１は、ＰＷＭ（Pulse Width Modulation）信号をモータ駆動部１１２、１１３に送り、ＩＴＢ駆動モータ１０６及びＩＴＢ寄り制御モータ１０８を制御する。ＩＴＢ駆動制御装置１１０は、メイン制御装置２００からの指示により動作する。なおメイン制御装置２００は、画像形成装置の全体動作を制御するものである。メイン制御装置２００は、ベルト位置検出センサ１０９で検出されたベルト位置を表すアナログ値をＡ／Ｄ変換し、ディジタルデータとして処理する。メイン制御装置２００は、ベルト位置検出センサ１０９の検知結果により、中間転写ベルト１０１の位置を計測する。メイン制御装置２００は、この計測結果に応じてＩＴＢ駆動制御装置１１０を制御する。
【００１９】
図２は、ＩＴＢ寄り制御用偏心カム１０７の構成図である。ＩＴＢ寄り制御用偏心カム１０７は、ＩＴＢ寄り制御レバー１１５に一部が当接する。ＩＴＢ寄り制御用偏心カム１０７は、回転中心３００を中心に、ＩＴＢ寄り制御モータ１０８により回転させられる。回転中心３００からＩＴＢ寄り制御用偏心カム１０７がＩＴＢ寄り制御レバー１１５に当接する位置までの距離は、ＩＴＢ寄り制御用偏心カム１０７の回転により変化する。そのために、ＩＴＢ寄り制御レバー１１５が、ＩＴＢ寄り制御レバー支点軸３０１を中心に図２の矢印方向に変位する。ＩＴＢ寄り制御レバー１１５はＩＴＢ寄り制御ローラ１０５に接続されるために、ＩＴＢ寄り制御用偏心カム１０７の変位により、ＩＴＢ寄り制御レバー１１５が変位して、ＩＴＢ寄り制御ローラ１０５の位置が調整される。
【００２０】
駆動制御ＡＳＩＣ１１１は、ベルト位置検出センサ１０９で検出されたＩＴＢ１０１の位置に応じてＩＴＢ寄り制御モータ１０８の回転角を制御するために、メイン制御装置２００の制御に基づき、モータ駆動部１１３に指示を送る。これにより、ＩＴＢ寄り制御ローラ１０５の位置が調整されて、ＩＴＢ１０１の寄り制御が行われ、ＩＴＢ１０１の位置が基準位置からずれている場合でも、基準位置に補正される。
【００２１】
図３は、メイン制御装置２００の構成図である。本実施形態では、メイン制御装置２００とＩＴＢ駆動制御装置１１０との間のシリアル通信について説明するが、メイン制御装置２００は、画像形成装置内の他の駆動部品やセンサなどの構成要素の制御を行う装置との間でも同様にシリアル通信を行う。他の装置とのシリアル通信においても、本実施形態のシリアル通信を適用可能である。
【００２２】
メイン制御装置２００は、ＣＰＵ２０１及びメイン制御ＡＳＩＣ２０２を備える。また、メイン制御装置２００は、メイン制御ＡＳＩＣ２０２にシリアル通信接続ライン線で接続される駆動制御ＡＳＩＣ２０３を備えており、画像形成装置内の他の構成要素の制御が可能である。メイン制御ＡＳＩＣ２０２は、ＩＴＢ駆動制御装置１１０の駆動制御ＡＳＩＣ１１１に、シリアル通信線で接続される。以下、便宜上、メイン制御ＡＳＩＣ２０２を「主局」、駆動制御ＡＳＩＣ１１１を「従局」という。
【００２３】
図４は、主局及び従局のいずれにも適用可能なＡＳＩＣ１０００の構成図である。ＡＳＩＣ１０００は、動作モードを設定するための図示しない外部端子からの入力により、主局あるいは従局として動作する。例えば、ＡＳＩＣ１０００は、２つの外部端子に（Ｌ，Ｌ）が入力されれば主局として動作し、（Ｈ，Ｈ）が入力されれば従局として動作する。入力の他の組合せでは、他の動作モードで動作する。
ＡＳＩＣ１０００は、通信モジュール１００１、ＣＰＵバスインタフェース１００２、内部バスモジュール１００３、ＰＷＭ出力モジュール１００４、モータ駆動モジュール１００５、及び汎用ＩＯモジュール１００６を備える。
【００２４】
通信モジュール１００１は、外部端子からの入力により、主局としての動作、あるいは従局としての動作を行う。ＣＰＵバスインタフェース１００２は、主局として動作する場合のみ有効となり、ＣＰＵ２０１にパラレルバスで接続される。
【００２５】
内部バスモジュール１００３は、ＡＳＩＣ１０００の内部バスであり、ＡＳＩＣ１０００内の各モジュールに接続されている。主局として動作する場合、ＣＰＵバスインタフェース１００２により受信したＣＰＵ２０１からのバスアクセスを、内部バスインタフェースに変換して各モジュールにアクセスする。従局として動作する場合、主局からのシリアル通信を内部バスインタフェースに変換して、各モジュールにアクセスする。
【００２６】
ＰＷＭ出力モジュール１００４及びモータ駆動モジュール１００５は、画像形成装置内の、図示しないブラシレスモータ、ステッピングモータなどの電気負荷を駆動制御するためのパルス信号を出力する。汎用ＩＯモジュール１００６は、フォトインタラプタなどのセンサ信号の入力状態の検知、あるいはアナログ信号をＡ／Ｄ変換するＡＤコンバータを内蔵する。
【００２７】
図５は、通信モジュール１００１の具体的な構成例示図である。通信モジュール１００１は、シリアル−パラレル変換部１１０１、パラレル−シリアル変換部１１０２、通信制御部１１０３、内部バスインタフェース部１１０４、及びレジスタ部１１０５を備える。
シリアル−パラレル変換部１１０１は、受信したシリアルデータをパラレルデータに変換する。パラレル−シリアル変換部１１０２は、パラレルデータをシリアルデータに変換して送信する。通信制御部１１０３は、通信モジュール１００１内の各部間の通信制御を行う。内部バスインタフェース部１１０４は、図４の内部バスモジュール１００３に接続される。レジスタ部１１０５は、設定値などを記憶する。
【００２８】
図６〜図９は、主局（メイン制御ＡＳＩＣ２０２）と従局（駆動制御ＡＳＩＣ１１１）との間でシリアル通信に用いられる通信プロトコルの説明図である。図６〜図９において、ＭＯＳＩ（Master Out Slave In）は主局から従局へ送信されるシリアルデータであり、ＭＩＳＯ（Master In Slave Out）は従局から主局へ送信されるシリアルデータである。
【００２９】
図６は、ライト実行時の通信プロトコルの例示図である。主局は、コマンド、アドレス、データ、ＣＲＣの各フレームデータをシリアル送信する。従局は、各フレームデータを順次受信する。従局は、受信したコマンド、アドレス、データの各フレームデータから自身で作成したＣＲＣ値を、受信したＣＲＣと比較する。比較結果が一致している場合、従局は主局にＡＣＫ（Acknowledgement：肯定応答）コマンドを送信する。比較結果が一致しない場合、従局は主局にＮＡＣＫ（Negative Acknowledgement：否定応答）コマンドを送信する。
ＣＲＣが不一致となるのは、例えば、送信中にデータに対してノイズが混入し、データの特定のビットが反転したと認識された場合などである。
【００３０】
主局から送信されるコマンドにより、ライト命令あるいはリード命令が指示される。また、転送するデータの個数の指示も行う。このデータの個数指示については、後述する。
ＣＲＣは、巡回冗長検査と呼ばれ、任意長のデータ入力に対して固定サイズの値を出力する関数であり、連続する誤りを検出するための誤り検出符号の一種である。パリティ・チェックサム方式に比べて誤り検出精度が高く、高速に演算できる。また、１ビットずつの走査により計算ができるために、ハードウェア構成が容易に済むなどの特徴を持つ。そのために、ネットワークからハードウェア回路におけるデータ転送に幅広く用いられる。
【００３１】
図６において、主局は、従局からＡＣＫコマンドを受信することで、通信が成功したと判断して次の通信に備える。しかし、ＮＡＣＫコマンドを受信した場合、通信が失敗したと判断してデータの再送を行う。再送は、従局からのＡＣＫコマンドの返信まで繰り返される。また、従局から無応答の場合には、所定時間待機した後にデータの再送を行う。ただし、複数回の再送の結果、すべてＮＡＣＫコマンドが返信あるいは無応答の場合、通信を確立できなかったとして、通信エラー表示を行い、通信を停止する。
【００３２】
図１２は、主局における通信時の処理のフローチャートである。
主局は、フレームデータを従局に送信すると、従局からのＡＣＫコマンド又はＮＡＣＫコマンドの送信待機状態になる（Ｓ５０１、Ｓ５０２）。所定の時間内にＡＣＫコマンド又はＮＡＣＫコマンドを受信した場合に主局は、受信したコマンドがＡＣＫコマンドであるかを確認する（Ｓ５０２：Y、Ｓ５０３）。ＡＣＫコマンドである場合に主局は、通信が成功したと判断して送信処理を終了する（Ｓ５０３：Y）。
所定の時間を経過してもＡＣＫコマンド又はＮＡＣＫコマンドを受信しない場合（Ｓ５０２：N、Ｓ５０４）、或いはＮＡＣＫコマンドを受信した場合（Ｓ５０３：N）に、主局は、通信が失敗したと判断してフレームデータを再送する（Ｓ５０５）。
【００３３】
このように主局は、従局からＡＣＫコマンド及びＮＡＣＫコマンドのいずれも受信しなかったり、ＮＡＣＫコマンドを受信した場合、つまり、ＡＣＫコマンドを正しく受信できなかった場合にフレームデータを再送する。主局は、実際に主局から従局へフレームデータが送信できなかった場合の他に、従局からの返信データにノイズ等が混入することでＡＣＫコマンドが変化して、ＡＣＫコマンドを正しく受信できないこともある。そのために主局は、返信データにノイズ等が混入した場合にも、フレームデータを再送することができる。
【００３４】
図７は、リード実行時の通信プロトコルの例示図である。主局は、コマンド、アドレス、ＣＲＣの各フレームデータをシリアル送信する。コマンドは、リード命令を指示する。従局は、各フレームデータを順次受信する。従局は、受信したコマンド及びアドレスの各フレームデータから自身で作成したＣＲＣ値を、受信したＣＲＣと比較する。比較結果が一致している場合、従局は主局にＡＣＫコマンド、受信したアドレスに応じたデータ、及びＣＲＣの各フレームデータを送信する。従局の送信するＣＲＣは、送信するデータから算出される。なお、比較結果が不一致の場合、従局が主局にＮＡＣＫコマンドを送信することはライト実行時と同様であり、この場合にはデータ及びＣＲＣを送信しない。
【００３５】
主局は、従局からＡＣＫコマンドを受信することで通信が成功したと判断し、ＡＣＫコマンドに続いてデータ及びＣＲＣを受信する。主局は、従局から受信したデータからＣＲＣ値を作成して、受信したＣＲＣと比較することで、従局から受信したデータの誤りの有無を検出する。比較結果が一致した場合に、従局から受信したデータを信頼できるものとして扱う。主局がＮＡＣＫコマンドを受信した場合、あるいはＣＲＣの比較結果が不一致の場合、ライト実行動作の場合と同様に、データの再送を行う。
【００３６】
図８は、バースト（連続）ライト実行時の通信プロトコルの例示図である。主局が送信するコマンドは、ライト命令を指示する他に、書き込むデータの連続個数を指示する。なお、書き込み動作の先頭アドレスは、アドレスのフレームデータにより指示される。コマンドのフレームデータは、例えば“10000_0001”と表される。上位２ビットが、ライト命令であるかリード命令であるかを表す。例えば上位２ビットが“10”であればライト命令であり、“01”であればリード命令である。下位６ビットがデータ数を表す。ライト命令時であれば転送するデータ数であり、リード命令時であれば読み込むデータ数である。例えば下位６ビットが“00_1111”であれば、１５データを転送あるいは読み込むことを表す。
ＣＲＣによる誤り検出は、図６の通常のライト実行時と同様であり、その結果に応じてＡＣＫコマンドあるいはＮＡＣＫコマンドが従局から主局に送られる。主局は、これにより通信の成否を判断し、失敗している場合に、データの再送を行う。
【００３７】
図９は、バースト（連続）リード実行時の通信プロトコルの例示図である。主局が送信するコマンドは、リード命令を指示する他に、読み込み動作の先頭アドレス及び読み込むデータの連続個数を指示する。コマンドのフレームデータは、図８で説明したとおりであり、図８の例では、上位２ビットが“01”になり、下位６ビットで読み込むデータの連続個数を指示する。
ＣＲＣによる誤り検出は、図７の通常のリード実行時と同様であり、その結果に応じてＡＣＫコマンドあるいはＮＡＣＫコマンドが従局から主局に送られる。主局は、これにより通信の成否を判断して、失敗している場合に、データの送信を行う。成功している場合に主局は、受信したデータに対してＣＲＣによる誤り検出を行う。主局は、検出の結果受信したデータに誤りがあれば、データの送信を行う。
【００３８】
従局の通信モジュール１００１は、図６〜８の各通信プロトコルにおいて、コマンド、アドレス、データ、ＣＲＣの各フレームデータを一時的に格納する一時格納部（バッファ）を有する。一時格納部は、他の通信で正常にフレームデータを受信するまでこれらのフレームデータを格納する。例えば、フレームデータを正常に受信した場合は、一時格納部に格納されている、前回の通信で受信されたフレームデータを削除し、今回の通信で正常に受信されたフレームデータを格納する。図１０は、このような一時格納部の構成例を示す。この一時格納部は、通信モジュール１００１のレジスタ部１１０５の一部として構成される。
【００３９】
図１０に示すように、一時格納部には、コマンドのデータフレームを格納する格納部、アドレスのデータフレームを格納する格納部、データのデータフレームを格納する格納部、及びＣＲＣのデータフレームを格納する格納部を備える。なお、リード実行時には、データのデータフレームの格納部を全ビット“０”で埋めることが好ましいが、従前のデータのデータフレームをそのまま残してもよい。
バーストライト実行時には、データのフレームデータを格納する格納部に、連続転送されるデータの最後のデータが格納される。バーストライト時に送信されるデータをすべて格納することにすると、格納部の容量が大きくなって回路規模が増大する。そのために、回路規模をできるだけ小さくするように、最後のデータのみを格納することとする。
【００４０】
以上のような通信プロトコルに従って主局と従局との間でシリアル通信が行われることで、画像形成装置内のモータの駆動制御や、センサの状態監視などが実行される。
【００４１】
図６〜図９の通信プロトコルにおいて、主局から従局への通信が成功し、これに対する従局からのＡＣＫコマンドにノイズが混入する場合、主局は、ＡＣＫコマンドを正しく認識できずに通信が正しく行われなかったと判断する。その結果、主局は、同じデータの再送を行う。データの再送は、例えば、モータ駆動モジュール１００５の動作設定レジスタに対するライト実行のように、レジスタへのライト実行で状態遷移が発生するなどの１回目のライト実行と２回のライト実行とで意味合いが異なってくる場合に、大きな弊害となる。
【００４２】
モータ駆動モジュール１００５は、動作設定レジスタに設定された初速度、目標速度、加速度あるいは減速度、電流制御値などに応じて、対応するモータ駆動部に動作制御のためのＰＷＭ信号を出力する。このような動作設定レジスタに対して２回連続ライト実行する場合、モータ駆動モジュール１００５内部で、動作開始待ち状態から動作開始状態への状態遷移が２回発生することになる。つまり、動作設定レジスタへの１回目のライト実行で動作を開始し、初速度から目標とする速度に向けて加減速するようにＰＷＭ信号を出力するが、２回目のライト実行により再度動作開始状態に遷移して、初速度をターゲットとするＰＷＭ信号を出力する。その結果、モータの制御性能が低下して安定した動作制御が行えない。
例えば、ＩＴＢ１０１の寄り制御の場合、モータ駆動モジュール１００５の動作設定レジスタに対する２回連続のライト実行が、結果として、寄り制御の効果が低減、もしくはＩＴＢ１０１の寄り切りという、意図した動作を阻害することになる。
【００４３】
具体的には、ベルト位置検出センサ１０９により監視するＩＴＢ１０１の位置が基準位置から変位したときに、ＩＴＢ１０１の寄り制御が実行される。駆動制御ＡＳＩＣ１１１は、メイン制御ＡＳＩＣ２０２の指示により、ＩＴＢ寄り制御ローラ１０５の位置を調整するために、ＩＴＢ寄り制御モータ１０８の回転角を指定する１回目のライト実行を発生する。ライト実行により、ＩＴＢ寄り制御用偏心カム１０７が所定量回転して、ＩＴＢ１０１を基準位置に戻すようにＩＴＢ寄り制御が行われる。ＩＴＢ寄り制御中に２回目のライト実行が発生し、再度ＩＴＢ寄り制御用偏心カム１０７が所定量回転すると、実質的にはＩＴＢ１０１を基準位置に戻すための設定値の２倍の値が設定される。そのために、基準位置への調整ができないばかりでなく、逆にＩＴＢ１０１を寄り切らせてしまう方向に調整される。
【００４４】
図１１は、このような意図せぬ２回連続ライト実行による弊害を防止する処理手順のフローチャートである。図１１では、特定アドレスへの２回連続したアクセスを防止することで、２回連続ライト実行による弊害を防止する。図１１の処理は、従局の通信モジュール１００１により実行される。
【００４５】
主局から従局に、図６〜図９に示すようなシリアルデータが送信される。従局の通信モジュール１００１は、シリアル−パラレル変換部１１０１により、受信したシリアルデータであるコマンド、アドレス、データ、ＣＲＣの各フレームデータを、順次パラレルデータに変換する。通信制御部１１０３は、変換されたフレームデータを、レジスタ部１１０５内の一時格納部に格納された、前回の通信により送信されたフレームデータと比較する（Ｓ４０１）。
【００４６】
通信制御部１１０３は、フレームデータが一致しない場合、通信完了まで待機する（Ｓ４０１：N、Ｓ４０８）。この場合、同一アドレスへの同一データのライト実行あるいは同一アドレスへのリード実行が発生しない。そのために、意図せぬ動作設定レジスタへのアクセスが発生することはなく、内部バスインタフェース部１１０４から内部バスモジュール１００３へのアクセスを禁止する必要はない。
通信制御部１１０３は、フレームデータが一致する場合、図６〜図９に示す通信プロトコルに基づく通信の終了まで、Ｓ４０１の処理を繰り返す（Ｓ４０１：Y、Ｓ４０２）。つまり、Ｓ４０１、Ｓ４０２では、図６〜図９の各通信プロトコルに従い受信したコマンド、アドレス、データ（ライト時のみ）、ＣＲＣの各フレームデータが、前回の通信により受信したフレームデータとまったく同じデータであるかを判断する。同一アドレスに対する同一データのライト実行あるいは同一アドレスへのリード実行でない限り、意図しない２回連続ライト実行あるいはリード実行が発生しないため、ステップＳ４０８へと移行する。本実施形態では、コマンド、アドレス、データ、ＣＲＣのそれぞれを受信するごとに、一時格納部に格納されている対応するデータと比較する。通信完了後に受信したフレームデータと、一時格納部に格納されているフレームデータとを比較するようにしてもかまわない。
【００４７】
すべてのフレームデータが前回の通信で受信したフレームデータと同じである場合、通信制御部１１０３は、アクセス先を示す指定アドレスが特定のアドレス領域のものであるか否かを判断する（Ｓ４０２：Y、Ｓ４０３）。特定アドレスは、例えば、モータ駆動モジュール１００５内の動作設定レジスタのアドレスなどを個別に指定するアドレスや、所定の範囲内に存在する動作設定レジスタのアドレスをグループとして指定するアドレスである。このような特定アドレスは、重複書き込みが起こることで、モータ駆動部１１３の動作が不安定になる。なお、特定アドレスを示すために用いられるレジスタは、レジスタ部１１０５に格納されていてもよいし、通信制御部１１０３が個別に持っていてもよい。
【００４８】
通信制御部１１０３は、アクセス先が特定アドレスである場合、前回の通信の完了時刻から今回の通信の完了時刻までの時間を測定する。そして、測定時間が所定の時間を超えたか否か判断する（Ｓ４０３：Y、Ｓ４０４）。例えば、所定時間を超えた場合は、通信エラーの発生による再送ではなく、前回の通信時と同一の処理（同一コマンド、同一アドレス、同一データ）を指示する可能性がある。そのために、所定時間以上経過後の同一のフレームデータは、有効な通信として処理を行う（Ｓ４０４：Y）。
【００４９】
通信制御部１１０３は、前回の通信完了から今回の通信完了までの時間が所定時間以内であれば、内部バスインタフェース部１１０４による内部バスモジュール１００３へのアクセスを禁止する（Ｓ４０４：N、Ｓ４０５）。つまり通信制御部１１０３は、前回の通信完了から所定時間以内に受信したデータが、前回の通信で受信したデータとすべて一致し、アクセスが特定アドレスの場合に、内部バスモジュール１００３へのアクセスを禁止する。通信制御部１１０３は、例えば、アクセス許可フラグにより内部バスモジュール１００３へのアクセスの許可の指示する。アクセス許可フラグがオンで、通信が正常に完了した場合に、内部バスモジュール１００３へのアクセスが可能になり、どちらかが欠ける場合にアクセス禁止になる。
【００５０】
内部バスモジュール１００３へのアクセス禁止後、通信制御部１１０３は、ＣＲＣを用いた通信エラーの確認を行う（Ｓ４０６）。なお、通信エラーの確認は、Ｓ４０８で通信が完了した場合、Ｓ４０３でアクセス先が特定アドレスでない場合（Ｓ４０３：N）、あるいはＳ４０４で測定時間が所定時間を超えた場合（Ｓ４０４：Y）も行う。
【００５１】
確認の結果、通信エラーが発生している場合には、主局にＮＡＣＫコマンドを返信する。そして、一時格納部のデータを今回の通信で受信したデータに更新することはなく、判定動作を終了する（Ｓ４０６：Y、Ｓ４１０）。この場合、内部バスインタフェース１００３へのアクセスは発生しない。この段階で通信エラーが発生している場合、主局からのデータの再送が実行される。再送で通信エラーがない場合には、２回連続アクセスと同じ状態になってしまうため、これを防止する目的で、一時格納部の内容を更新しない。
通信エラーが発生していない（正常にフレームデータを受信した）場合、通信制御部１１０３は、一時格納部の内容を今回受信した最新のデータに更新するとともに、主局にＡＣＫコマンドを送信する（Ｓ４０６：N、Ｓ４０７、Ｓ４０９）。そして、フレームデータで指示された処理を実行する。
このようにして、特定アドレスへの２回連続のアクセスを防止する。
【００５２】
以上のように、主局から従局への通信が成功したが、主局側が通信の成功を確認できずにデータの再送を行う場合に、従局の同じ動作設定レジスタの同じアドレスへ複数回連続してアクセスが発生しても、レジスタを更新することはない。そのために、目的とする動作の効果を低減することなく、シリアル通信における通信品質を保つことが可能となる。
【００５３】
なお、特定アドレスへの２回連続したアクセス防止の他に、特定のコマンド（例えばライト）の２連続実行を防止する形態でもよい。この場合、図１１のフローチャートで、Ｓ４０３において、特定アドレスの確認の替わりに、前回のコマンドと同じコマンドであるかを確認する。前回と同じコマンドである場合には、前回の通信の完了時刻から今回の通信の完了時刻までの時間を測定する。そして、測定時間が所定の時間を超えたか否か判断する（Ｓ４０３：Y、Ｓ４０４）。所定時間以上経過していれば、特定のコマンドを有効な通信として扱う（Ｓ４０４：Y）。通信制御部１１０３は、前回の通信完了から今回の通信完了までの時間が所定時間以内であれば、内部バスインタフェース部１１０４による内部バスモジュール１００３へのアクセスを禁止する（Ｓ４０４：N、Ｓ４０５）。
前回とは異なるコマンドである場合には、ＣＲＣを用いた通信エラーの確認処理に移行する（Ｓ４０３：N、Ｓ４０６）。
【００５４】
また、特定アドレスの判断を行わずに、Ｓ４０２の処理からＳ４０４の処理に移行するようにしてもよい。
【符号の説明】
【００５５】
１０１…中間転写ベルト、１０２，１０３…従動ローラ、１０４…ＩＴＢ駆動ローラ、１０５…ＩＴＢ寄り制御ローラ、１０６…ＩＴＢ駆動モータ、１０７…ＩＴＢ寄り制御用偏心カム、１０８…ＩＴＢ寄り制御モータ、１０９…ベルト位置検出センサ。１１０…ＩＴＢ駆動制御装置、１１１，２０３…駆動制御ＡＳＩＣ、１１２，１１３…モータ駆動部、１１５…ＩＴＢ寄り制御レバー。２００…メイン制御装置、２０１…ＣＰＵ、２０２…メイン制御ＡＳＩＣ。１０００…ＡＳＩＣ、１００１…通信モジュール、１００２…ＣＰＵバスインタフェース、１００３…内部バスモジュール、１００４…ＰＷＭ出力モジュール、１００５…モータ駆動モジュール、１００６…汎用ＩＯモジュール。１１０１…シリアル−パラレル変換部、１１０２…パラレル−シリアル変換部、１１０３…通信制御部、１１０４…内部バスインタフェース部、１１０５…レジスタ部。
【図１】
2014023013.tif 000003
【図２】
2014023013.tif 000004
【図３】
2014023013.tif 000005
【図４】
2014023013.tif 000006
【図５】
2014023013.tif 000007
【図６】
2014023013.tif 000008
【図７】
2014023013.tif 000009
【図８】
2014023013.tif 000010
【図９】
2014023013.tif 000011
【図１０】
2014023013.tif 000012
【図１１】
2014023013.tif 000013
【図１２】
2014023013.tif 000014