(57)【要約】【課題】特定の要因による通信異常の継続を回避することができる通信装置及びプログラムを得る。【解決手段】制御基板１２Ａは、予め定められたビット列を制御基板１２Ｂに対して送信する第１送信部５０と、第１送信部５０から送信されたビット列の受信に応じて制御基板１２Ｂから返信されたビット列を受信する受信部５２と、第１送信部５０によりビット列が送信された場合の送信対象とされたビット列と、受信部５２により受信されたビット列との対応するビット同士の比較結果が通信に異常が発生していることを示す場合、送信対象とするビットの値を変えずにビット数を増加させて送信する第２送信部５４と、を備える。【選択図】図２
2018041151.tif 000002
【特許請求の範囲】
【請求項１】
予め定められたビット列を受信側の通信装置に対して送信する第１送信部と、
前記第１送信部から送信されたビット列の受信に応じて前記受信側の通信装置から返信されたビット列を受信する受信部と、
前記第１送信部によりビット列が送信された場合の送信対象とされたビット列と、前記受信部により受信されたビット列との対応するビット同士の比較結果が通信に異常が発生していることを示す場合、送信対象とするビットの値を変えずにビット数を増加させて送信する第２送信部と、
を備えた通信装置。
【請求項２】
前記第１送信部は、０が連続するビット列及び１が連続するビット列の各ビット列を交互に前記受信側の通信装置に対して送信し、
前記通信に異常が発生していることを示す場合は、前記受信部により受信された各ビット列内において、ビットの値が変化している場合である
請求項１に記載の通信装置。
【請求項３】
前記増加させるビット数は、前記受信部により受信された各ビット列内における先頭のビットから前記値が変化しているビットまでのビットの個数の最大値である
請求項２に記載の通信装置。
【請求項４】
前記通信に異常が発生していることを示す場合は、前記受信部により受信された各ビット列内において、ビットの値が変化し、かつ先頭のビットが、前記第１送信部により各ビット列が送信された場合の送信対象とされた各ビット列の先頭のビットとは異なり、末尾のビットが、前記第１送信部により各ビット列が送信された場合の送信対象とされた各ビット列の末尾のビットと同じ場合である
請求項２又は請求項３に記載の通信装置。
【請求項５】
前記通信に異常が発生していることを示す場合は、前記第１送信部によりビット列が送信された場合の送信対象とされたビット列と、前記受信部により受信されたビット列との対応するビットに異なるビットが存在する場合である
請求項１に記載の通信装置。
【請求項６】
前記増加させるビット数は、前記異なるビットの数の２倍に１を加算した値である
請求項５に記載の通信装置。
【請求項７】
前記第２送信部は、前記比較結果が通信に異常が発生していることを示す場合、前記通信に異常が発生していることを示す情報を、通常時の送信間隔とは異なる送信間隔で前記受信側の通信装置に対して送信する
請求項１から請求項６の何れか１項に記載の通信装置。
【請求項８】
送信側の通信装置から送信されたビット列を受信する受信部と、
前記受信部により受信されたビット列を返信する送信部と、
通信に異常が発生している場合、前記送信側の通信装置により送信対象とするビットの値が変えられずにビット数が増加されて送信されたビット列であって、前記受信部により受信されたビット列の予め定められたビットを抽出し、抽出したビットを前記送信側の通信装置が送信対象としたビットとして特定する特定部と、
を備えた通信装置。
【請求項９】
前記特定部は、前記送信側の通信装置により出力される信号の波形の鈍りに起因する通信異常が発生している場合、前記受信部により受信されたビット列の末尾のビットを抽出する
請求項８に記載の通信装置。
【請求項１０】
前記特定部は、外乱ノイズに起因する通信異常が発生している場合、前記受信部により受信されたビット列における数の多いビットを抽出する
請求項８に記載の通信装置。
【請求項１１】
コンピュータを、請求項１から請求項７の何れか１項に記載の通信装置の第１送信部、受信部、及び第２送信部として機能させるためのプログラム。
【請求項１２】
コンピュータを、請求項８から請求項１０の何れか１項に記載の通信装置の受信部、送信部、及び特定部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、デバイス間に接続されてクロック信号を授受するクロック信号線と、前記デバイス間に接続されて前記クロック信号に同期してデータ信号を授受するデータ信号線と、を備えた画像処理装置が開示されている。この画像処理装置は、前記クロック信号線と前記データ信号線のうち少なくとも何れかの信号線に接続され、該信号線を通して授受される前記クロック信号又は／及び前記データ信号の不正状態を検出する不正状態検出手段をさらに備えている。そして、この画像処理装置は、前記不正状態検出手段が前記クロック信号又は／及び前記データ信号の不正状態を検出すると、不正状態となっている該クロック信号に同期する該データ信号または不正状態となっている該データ信号を破棄すると共に、該データ信号の送信側にクロック信号及びデータ信号の再送信を要求する信号制御手段をさらに備えている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１８６６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
２つの通信装置間で通信を行うにあたり、通信が可能な状態でも、送信側の通信装置が送信対象とするビット列と、受信側の通信装置が受信したビット列とが異なるという通信異常が継続的に発生する場合があった。この場合、通信異常を検知した受信側の通信装置が送信側の通信装置にデータの再送要求を行っても、再度同様の通信異常が発生し、通信異常は継続する可能性が高い。
【０００５】
本発明は、特定の要因による通信異常の継続を回避することができる通信装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１に記載の通信装置は、予め定められたビット列を受信側の通信装置に対して送信する第１送信部と、前記第１送信部から送信されたビット列の受信に応じて前記受信側の通信装置から返信されたビット列を受信する受信部と、前記第１送信部によりビット列が送信された場合の送信対象とされたビット列と、前記受信部により受信されたビット列との対応するビット同士の比較結果が通信に異常が発生していることを示す場合、送信対象とするビットの値を変えずにビット数を増加させて送信する第２送信部と、を備えている。
【０００７】
また、請求項２に記載の発明は、請求項１に記載の発明において、前記第１送信部が、０が連続するビット列及び１が連続するビット列の各ビット列を交互に前記受信側の通信装置に対して送信し、前記通信に異常が発生していることを示す場合が、前記受信部により受信された各ビット列内において、ビットの値が変化している場合であるものである。
【０００８】
また、請求項３に記載の発明は、請求項２に記載の発明において、前記増加させるビット数が、前記受信部により受信された各ビット列内における先頭のビットから前記値が変化しているビットまでのビットの個数の最大値であるものである。
【０００９】
また、請求項４に記載の発明は、請求項２又は請求項３に記載の発明において、前記通信に異常が発生していることを示す場合が、前記受信部により受信された各ビット列内において、ビットの値が変化し、かつ先頭のビットが、前記第１送信部により各ビット列が送信された場合の送信対象とされた各ビット列の先頭のビットとは異なり、末尾のビットが、前記第１送信部により各ビット列が送信された場合の送信対象とされた各ビット列の末尾のビットと同じ場合であるものである。
【００１０】
また、請求項５に記載の発明は、請求項１に記載の発明において、前記通信に異常が発生していることを示す場合が、前記第１送信部によりビット列が送信された場合の送信対象とされたビット列と、前記受信部により受信されたビット列との対応するビットに異なるビットが存在する場合であるものである。
【００１１】
また、請求項６に記載の発明は、請求項５に記載の発明において、前記増加させるビット数が、前記異なるビットの数の２倍に１を加算した値であるものである。
【００１２】
また、請求項７に記載の発明は、請求項１から請求項６の何れか１項に記載の発明において、前記第２送信部が、前記比較結果が通信に異常が発生していることを示す場合、前記通信に異常が発生していることを示す情報を、通常時の送信間隔とは異なる送信間隔で前記受信側の通信装置に対して送信するものである。
【００１３】
一方、上記目的を達成するために、請求項８に記載の通信装置は、送信側の通信装置から送信されたビット列を受信する受信部と、前記受信部により受信されたビット列を返信する送信部と、通信に異常が発生している場合、前記送信側の通信装置により送信対象とするビットの値が変えられずにビット数が増加されて送信されたビット列であって、前記受信部により受信されたビット列の予め定められたビットを抽出し、抽出したビットを前記送信側の通信装置が送信対象としたビットとして特定する特定部と、を備えている。
【００１４】
また、請求項９に記載の発明は、請求項８に記載の発明において、前記特定部が、前記送信側の通信装置により出力される信号の波形の鈍りに起因する通信異常が発生している場合、前記受信部により受信されたビット列の末尾のビットを抽出するものである。
【００１５】
また、請求項１０に記載の発明は、請求項８に記載の発明において、前記特定部が、外乱ノイズに起因する通信異常が発生している場合、前記受信部により受信されたビット列における数の多いビットを抽出するものである。
【００１６】
一方、上記目的を達成するために、請求項１１に記載のプログラムは、コンピュータを、請求項１から請求項７の何れか１項記載の通信装置の第１送信部、受信部、及び第２送信部として機能させるためのものである。
【００１７】
また、上記目的を達成するために、請求項１２に記載のプログラムは、コンピュータを、請求項８から請求項１０の何れか１項に記載の通信装置の受信部、送信部、及び特定部として機能させるためのものである。
【発明の効果】
【００１８】
請求項１及び請求項１１に記載の発明によれば、特定の要因による通信異常の継続を回避することができる。
【００１９】
請求項２に記載の発明によれば、通信装置から出力される信号の波形の鈍りに起因する通信異常の継続を回避することができる。
【００２０】
請求項３に記載の発明によれば、送信対象とするビットのビット数を予め定められたビット数に増加させて送信する場合に比較して、送信対象とするビットのビット数をより適切なビット数に増加させて送信することができる。
【００２１】
請求項４に記載の発明によれば、先頭のビット及び末尾のビットを考慮しない場合に比較して、より確実に通信装置から出力される信号の波形の鈍りに起因する通信異常の継続を回避することができる。
【００２２】
請求項５に記載の発明によれば、外乱ノイズに起因する通信異常の継続を回避することができる。
【００２３】
請求項６に記載の発明によれば、送信対象とするビットのビット数を予め定められたビット数に増加させて送信する場合に比較して、送信対象とするビットのビット数をより適切なビット数に増加させて送信することができる。
【００２４】
請求項７に記載の発明によれば、特定の要因による通信異常が継続している場合に、通信異常が発生していることを受信側の装置に通知することができる。
【００２５】
請求項８及び請求項１２に記載の発明によれば、特定の要因による通信異常の継続を回避することができる。
【００２６】
請求項９に記載の発明によれば、通信装置から出力される信号の波形の鈍りに起因する通信異常の継続を回避することができる。
【００２７】
請求項１０に記載の発明によれば、外乱ノイズに起因する通信異常の継続を回避することができる。
【図面の簡単な説明】
【００２８】
【図１】実施の形態に係る画像形成装置の構成を示すブロック図である。
【図２】実施の形態に係る送信側の制御基板及び受信側の制御基板の機能ブロック図である。
【図３】実施の形態に係る移行情報の送信間隔の一例を示す概略図である。
【図４】実施の形態に係る送信側の制御基板から出力される信号の波形の鈍りに起因する通信異常が発生している場合における送信側の制御基板の送信ビット列及び受信ビット列の一例を示す概略図である。
【図５】実施の形態に係る外乱ノイズに起因する通信異常が発生している場合における送信側の制御基板の送信ビット列、受信ビット列、及び各ビット列の排他的論理和の一例を示す概略図である。
【図６】実施の形態に係る送信側の制御基板が送信対象とするビット列、及びビット数を増加させて送信するビット列の一例を示す概略図である。
【図７】実施の形態に係る送信側の制御基板が送信対象とするビット列、及びビット数を増加させて送信するビット列の一例を示す概略図である。
【図８】実施の形態に係る送信側の制御基板が送信対象とするビット列、及びビット数を増加させて送信するビット列の一例を示す概略図である。
【図９】実施の形態に係る受信側の制御基板における送信側の制御基板が送信対象としたビット列の特定処理の一例の説明に供する概略図である。
【図１０】実施の形態に係る受信側の制御基板における送信側の制御基板が送信対象としたビット列の特定処理の一例の説明に供する概略図である。
【図１１】実施の形態に係る受信側の制御基板における送信側の制御基板が送信対象としたビット列の特定処理の一例の説明に供する概略図である。
【図１２】実施の形態に係る第１送信処理の一例を示すフローチャートである。
【図１３】実施の形態に係る第１受信処理の一例を示すフローチャートである。
【図１４】実施の形態に係る第２送信処理の一例を示すフローチャートである。
【図１５】実施の形態に係る第２受信処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下、図面を参照して、本発明を実施するための形態例を詳細に説明する。なお、ここでは、本発明を、用紙への画像形成、用紙に形成された画像の読み取り、及びファクシミリの送受信等の複数の機能を有する画像形成装置に適用した場合について説明する。
【００３０】
まず、図１を参照して、本実施の形態に係る画像形成装置１０の構成について説明する。図１に示すように、画像形成装置１０は、複数（図１に示す例では、２つ）の制御基板１２Ａ、１２Ｂ、画像読取部３４、及び画像形成部３６を備えている。なお、本実施の形態では、一例として、制御基板１２Ａが画像読取部３４を制御し、制御基板１２Ｂが画像形成部３６を制御する場合について説明する。
【００３１】
制御基板１２Ａは、ＣＰＵ（Central Processing Unit）２０Ａ、及び各種プログラムや各種パラメータ等が予め記憶されたＲＯＭ（Read Only Memory）２２Ａを備えている。また、制御基板１２Ａは、ＣＰＵ２０Ａによる各種プログラムの実行時のワークエリア等として用いられるＲＡＭ（Random Access Memory）２４Ａ、フラッシュメモリ等の不揮発性の記憶部２６Ａ、通信部２８Ａ、及び入出力Ｉ／Ｆ（InterFace）３０Ａを備えている。
【００３２】
そして、ＣＰＵ２０Ａ、ＲＯＭ２２Ａ、ＲＡＭ２４Ａ、記憶部２６Ａ、通信部２８Ａ、及び入出力Ｉ／Ｆ３０Ａの各部がアドレスバス、データバス、及び制御バス等のバス３２Ａを介して互いに接続されている。また、入出力Ｉ／Ｆ３０Ａには、例えばＣＣＤ（Charge Coupled Device）ラインセンサ等の画像読取センサ等を含み、用紙に形成された画像を読み取る画像読取部３４が接続されている。画像読取部３４は、用紙に形成された画像を読み取って得られた画像データを、入出力Ｉ／Ｆ３０Ａを介してＣＰＵ２０Ａに出力する。
【００３３】
一方、制御基板１２Ｂは、ＣＰＵ２０Ｂ、ＲＯＭ２２Ｂ、ＲＡＭ２４Ｂ、記憶部２６Ｂ、通信部２８Ｂ、及び入出力Ｉ／Ｆ３０Ｂを備えている。なお、制御基板１２Ｂの各構成部品の機能は、制御基板１２Ａの対応する各構成部品と同様の機能であるため、ここでの詳細な説明を省略する。
【００３４】
そして、ＣＰＵ２０Ｂ、ＲＯＭ２２Ｂ、ＲＡＭ２４Ｂ、記憶部２６Ｂ、通信部２８Ｂ、及び入出力Ｉ／Ｆ３０Ｂの各部がアドレスバス、データバス、及び制御バス等のバス３２Ｂを介して互いに接続されている。また、入出力Ｉ／Ｆ３０Ｂには、例えば電子写真方式により、入力された画像データにより示される画像を用紙に形成する画像形成部３６が接続されている。
【００３５】
また、制御基板１２Ａと制御基板１２Ｂとは、通信部２８Ａ、２８Ｂを介して互いにデータの送受信が可能に接続されている。なお、本実施の形態では、制御基板１２Ａと制御基板１２Ｂとがシリアル通信を行う場合について説明する。
【００３６】
ところで、本実施の形態に係る画像形成装置１０は、通常の動作モードである通常モードで動作している場合に、制御基板１２Ａと制御基板１２Ｂとの間の通信に異常が発生した場合、該異常の原因を特定する動作モードである特定モードで動作可能とされている。例えば、画像形成装置１０は、制御基板１２Ａと制御基板１２Ｂとの間の通信において、予め定められた通信プロトコルを満たさないことによって通知されるエラーを検知した場合等に、特定モードで動作する。なお、画像形成装置１０は、例えば、１日１回等の定期的なタイミングで、特定モードで動作してもよい。
【００３７】
図２を参照して、制御基板１２Ａ及び制御基板１２Ｂの機能的な構成を説明する。なお、ここでは、一例として、制御基板１２Ａが送信側の通信装置であり、制御基板１２Ｂが受信側の通信装置である場合の機能的な構成を説明する。
【００３８】
図２に示すように、本実施の形態に係る制御基板１２Ａは、第１送信部５０、受信部５２、及び第２送信部５４を備えている。一方、制御基板１２Ｂは、受信部６０、送信部６２、及び特定部６４を備えている。
【００３９】
第１送信部５０は、通常モードでの動作中に制御基板１２Ａから制御基板１２Ｂへのデータ送信に関する通信異常の発生を検知した場合に、特定モードへ移行することを示す移行情報を制御基板１２Ｂに送信する。具体的には、例えば、第１送信部５０は、上記予め定められた通信プロトコルを満たさないことによって通知されるエラーを検知した場合に、移行情報を制御基板１２Ｂに送信する。
【００４０】
また、本実施の形態に係る第１送信部５０は、一例として図３に示すように、移行情報を制御基板１２Ｂに送信する場合、通常モードでのデータの送信間隔とは異なる送信間隔で移行情報を複数回制御基板１２Ｂに送信する。なお、以下では、通常モードでのデータの送信間隔を「通常送信間隔」といい、上記移行情報の送信間隔を「移行情報送信間隔」という。また、図３では、移行情報送信間隔が通常送信間隔より短い例を示しているが、これに限定されず、移行情報送信間隔が通常送信間隔より長くてもよい。
【００４１】
すなわち、移行情報の内容は特に限定されず、制御基板１２Ａと制御基板１２Ｂとの間で予め定められた移行情報送信間隔で移行情報が制御基板１２Ａから制御基板１２Ｂへ送信されることによって、制御基板１２Ｂは特定モードに移行する。
【００４２】
まず、特定モードでの制御基板１２Ａ及び制御基板１２Ｂの各機能部の機能を説明する。第１送信部５０は、予め定められたビット列を制御基板１２Ｂに対して通信部２８Ａを介して送信する。本実施の形態では、第１送信部５０は、予め定められたビット数（例えば、４ビット）の分、「１」が連続するビット列、及び該ビット数の分、「０」が連続するビット列を制御基板１２Ｂに送信する。また、第１送信部５０は、これらの「１」が連続するビット列、及び「０」が連続するビット列を予め定められた回数（例えば、３回）繰り返して、制御基板１２Ｂに送信する。
【００４３】
受信部５２は、第１送信部５０から送信されたビット列の受信に応じて制御基板１２Ｂから返信されたビット列を受信する。具体的には、受信部５２は、後述する制御基板１２Ｂの送信部６２から返信されたビット列を受信する。
【００４４】
第２送信部５４は、第１送信部５０によりビット列が送信された場合の送信対象とされたビット列と、受信部５２により受信されたビット列との対応するビット同士を比較する。そして、第２送信部５４は、比較結果が通信に異常が発生していることを示す場合、送信対象とするビットの値を変えずにビット数を増加させて送信する。
【００４５】
一方、受信部６０は、制御基板１２Ａの第１送信部５０から送信されたビット列を、通信部２８Ｂを介して受信する。送信部６２は、受信部６０により受信されたビット列を、通信部２８Ｂを介して制御基板１２Ａに返信（すなわち、そのまま送信）する。
【００４６】
図４及び図５を参照して、通信異常の原因を特定する場合における各機能部の機能について詳細に説明する。なお、本実施の形態では、上記通信異常として、以下に示す２種類の通信異常を適用した場合について説明する。１種類目の通信異常は、データの送信時に制御基板１２Ａから出力される信号の波形が鈍ることによって、制御基板１２Ａが送信対象としたビット列と、制御基板１２Ｂが受信したビット列とが異なってしまう、という通信異常である。この１種類目の通信異常は、例えば上記信号を出力する出力回路のハードウェア上の電気的な要因等に起因して発生する。
【００４７】
なお、ここでいう信号の波形の鈍りとは、信号の「０」から「１」への切り替わりが正常時に比べて遅れること、及び信号の「１」から「０」への切り替わりが正常時に比べて遅れることを意味する。また、以下では、信号の「０」から「１」への切り替わりが正常時に比べて遅れることを「立ち上がり鈍り」といい、信号の「１」から「０」への切り替わりが正常時に比べて遅れることを「立ち下り鈍り」という。
【００４８】
２種類目の通信異常は、外乱ノイズに起因して、制御基板１２Ａが送信対象としたビット列と、制御基板１２Ｂが受信したビット列とが異なってしまう、という通信異常である。この２種類目の通信異常は、例えば画像形成装置１０を駆動させる際のモータの駆動等に起因して発生する電気的なノイズに起因して発生する。すなわち、これらの２種類の通信異常は、通信が可能な状態であっても継続的に発生するものである。
【００４９】
まず、図４を参照して、立ち上がり鈍り、及び立ち下り鈍りが発生した場合について説明する。なお、図４の上段は、第１送信部５０により送信対象とされたビット列（以下、「送信ビット列」という）の一例を示している。また、図４の下段は、第１送信部５０により送信された図４の上段の送信ビット列が受信部６０により受信された後に送信部６２により送信され、受信部５２により受信されたビット列（以下、「受信ビット列」という）の一例を示している。また、図４の上段は、一例として、第１送信部５０が「１」が４ビット連続するビット列ｂ１及び「０」が４ビット連続するビット列ｂ０を３回ずつ交互に送信した場合の送信ビット列を示している。
【００５０】
第２送信部５４は、送信ビット列と受信ビット列との対応するビット同士を比較し、比較結果に基づいて、信号の波形の鈍りが発生しているか否かを判定する。
【００５１】
本実施の形態では、第２送信部５４は、ビット列ｂ１と、ビット列ｂ１に対応する受信ビット列のビット列Ｂ１と、を比較し、立ち上がり鈍りが発生しているか否かを判定する。
【００５２】
具体的には、第２送信部５４は、ビット列Ｂ１が以下の３つの条件を満たす場合に、立ち上がり鈍りが発生していると判定する。
（Ａ）先頭のビットが「０」である（すなわち、対応するビット列ｂ１の先頭のビットと異なる）こと。
（Ｂ）末尾のビットが「１」である（すなわち、対応するビット列ｂ１の末尾のビットと同じである）こと。
（Ｃ）ビット列Ｂ１内での「０」から「１」への変化点が一箇所であること。
【００５３】
そして、第２送信部５４は、各ビット列Ｂ１について上記の判定を行い、立ち上がり鈍りが発生していると判定した場合は、ビット列Ｂ１内での「０」から「１」への変化点の最大値を、立ち上がり鈍りのビット長を示すビット長情報７０として記憶部２６Ａに記憶する。なお、ここでいう変化点とは、ビット列Ｂ１内でのビットが「０」から「１」へ変化した場合の先頭のビットから最初の「１」のビット（すなわち、値が変化したビット）までのビットの個数を示す。例えば、図４に示す各ビット列Ｂ１の変化点の最大値は、「３」となる。
【００５４】
一方、本実施の形態では、第２送信部５４は、ビット列ｂ０と、ビット列ｂ０に対応する受信ビット列のビット列Ｂ０と、を比較し、立ち下がり鈍りが発生しているか否かを判定する。
【００５５】
具体的には、第２送信部５４は、ビット列Ｂ０が以下の３つの条件を満たす場合に、立ち下がり鈍りが発生していると判定する。
（Ｄ）先頭のビットが「１」である（すなわち、対応するビット列ｂ０の先頭のビットと異なる）こと。
（Ｅ）末尾のビットが「０」である（すなわち、対応するビット列ｂ０の末尾のビットと同じである）こと。
（Ｆ）ビット列Ｂ０内での「１」から「０」への変化点が一箇所であること。
【００５６】
そして、第２送信部５４は、各ビット列Ｂ０について上記の判定を行い、立ち下がり鈍りが発生していると判定した場合は、ビット列Ｂ０内での「１」から「０」への変化点の最大値を、立ち下がり鈍りのビット長を示すビット長情報７０として記憶部２６Ａに記憶する。なお、ここでいう変化点とは、ビット列Ｂ０内でのビットが「１」から「０」へ変化した場合の先頭のビットから最初の「０」のビット（すなわち、値が変化したビット）までのビットの個数を示す。例えば、図４に示す各ビット列Ｂ０の変化点の最大値は、「３」となる。なお、本実施の形態では、第２送信部５４は、立ち上がり鈍り及び立ち下がり鈍りの双方が発生していると判定した場合は、立ち上がり鈍りと立ち下がり鈍りとにおける上記変化点の最大値の大きい方の値をビット長情報７０として記憶部２６Ａに記憶する。
【００５７】
次に、図５を参照して、外乱ノイズに起因する通信異常が発生した場合について説明する。なお、図５の上段は、第１送信部５０により送信された送信ビット列の一例を示している。また、図５の下段は、第１送信部５０により送信された図５の上段の送信ビット列が受信部６０により受信された後に送信部６２により送信され、受信部５２により受信された受信ビット列の一例を示している。また、図５の上段は、一例として、第１送信部５０が「１」が５ビット連続するビット列ｂ１及び「０」が５ビット連続するビット列ｂ０を２回ずつ交互に送信した場合の送信ビット列を示している。
【００５８】
第２送信部５４は、送信ビット列と受信ビット列との対応するビット同士を比較し、比較結果に基づいて、外乱ノイズに起因する通信異常が発生しているか否かを判定する。
【００５９】
具体的には、第２送信部５４は、各ビット列ｂ０、ｂ１について、対応するビット列Ｂ０、Ｂ１との排他的論理和を導出し、導出結果の「１」の数（すなわち、異なるビットの数）が１以上で、かつ予め定められた閾値（例えば、ビット列ｂ１のビット数の半分の値）以下である場合に、外乱ノイズに起因する通信異常が発生していると判定する。また、第２送信部５４は、次の（１）式で示す値ＮＢを、外乱ノイズに対応するためのビット長情報７４として記憶部２６Ａに記憶する。但し、（１）式におけるＭＡは、各ビット列についての導出結果における上記閾値以下である「１」の数の最大値である。例えば、図５に示す例では、ビット長情報７４として「５」が記憶される。
ＮＢ＝ＭＡ×２＋１  ・・・（１）
【００６０】
なお、例えば、第２送信部５４は、上記排他的論理和の導出結果の「１」の数が上記閾値を超える場合は、原因不明の通信異常が発生していることを、画像形成装置１０の表示部に表示すること等によって報知してもよい。
【００６１】
また、第２送信部５４は、上記２種類の通信異常の何れか、又は双方が発生している場合、発生している通信異常の種類、及び該種類に対応して記憶されたビット長情報７０、７４を示す情報（以下、「通信異常情報」という）を制御基板１２Ｂに送信する。本実施の形態では、第２送信部５４は、上記通常送信間隔及び上記移行情報送信間隔とは異なり、かつ通信異常の種類及びビット長情報７０、７４の組み合わせ毎に異なる送信間隔で通信異常情報を制御基板１２Ｂに送信する。なお、以下では、通信異常情報の送信間隔を「異常情報送信間隔」という。
【００６２】
一方、制御基板１２Ｂの受信部６０が、通常モードでの動作中に、上記移行情報送信間隔で第１送信部５０により送信された移行情報を複数回受信すると、制御基板１２Ｂは特定モードへ移行する。
【００６３】
また、受信部６０は、特定モードでの動作中に、上記異常情報送信間隔で第１送信部５０により送信された通信異常情報を複数回受信すると、受信した通信異常情報の受信間隔に対応する通信異常の種類及びビット長情報７０、７４を、通信異常情報７８として記憶部２６Ｂに記憶する。
【００６４】
次に、上記の特定モードでの特定結果に従って、通常モードで通信を行う場合の各機能部の機能について説明する。
【００６５】
第２送信部５４は、制御基板１２Ａにおいて制御基板１２Ｂに送信するビット列が発生した場合、ビット列の各ビットの値を変えずにビット数を増加させて制御基板１２Ｂに送信する。
【００６６】
具体的には、第２送信部５４は、信号の波形の鈍りに起因する通信異常が発生している場合、一例として図６に示すように、送信対象とするビット列の各ビット数をビット長情報７０として記憶部２６Ａに記憶されている値に増加させて送信する。なお、図６の上段は、第２送信部５４が送信対象とするビット列を示し、図６の下段は第２送信部５４が実際に送信するビット列を示している。また、図６では、ビット長情報７０として「４」が記憶されている場合の例を示している。なお、この場合、第２送信部５４は、送信対象とするビット列の各ビット数を、ビット長情報７０として記憶部２６Ａに記憶されている値に所定のマージンを加算した値に増加させて送信してもよい。
【００６７】
一方、第２送信部５４は、外乱ノイズに起因する通信異常が発生している場合、一例として図７に示すように、送信対象とするビット列の各ビット数をビット長情報７４として記憶部２６Ａに記憶されている値に増加させて送信する。なお、図７の上段は、第２送信部５４が送信対象とするビット列を示し、図７の下段は第２送信部５４が実際に送信するビット列を示している。また、図７では、ビット長情報７４として「５」が記憶されている場合の例を示している。なお、この場合、第２送信部５４は、送信対象とするビット列の各ビット数を、ビット長情報７４として記憶部２６Ａに記憶されている値にマージンを加算した値に増加させて送信してもよい。
【００６８】
また、第２送信部５４は、上記２種類の通信異常の双方が発生している場合、一例として図８に示すように、送信対象とするビット列の各ビット数をビット長情報７０、７４として記憶部２６Ａに各々記憶されている値を加算して得られた値に増加させて送信する。なお、図８の上段は、第２送信部５４が送信対象とするビット列を示し、図８の下段は第２送信部５４が実際に送信するビット列を示している。また、図８では、ビット長情報７０として「３」が記憶され、ビット長情報７４として「３」が記憶されている場合の例を示している。なお、この場合、第２送信部５４は、送信対象とするビット列の各ビット数を、ビット長情報７０、７４として記憶部２６Ａに各々記憶されている値を加算して得られた値にマージンを加算した値に増加させて送信してもよい。
【００６９】
一方、受信部６０は、第２送信部５４により送信されたビット列を受信する。特定部６４は、受信部６０により受信されたビット列から予め定められたビットを抽出し、抽出したビットを第２送信部５４が送信対象としたビットとして特定する。
【００７０】
具体的には、信号の波形の鈍りに起因する通信異常が発生している場合、一例として図９に示すように、特定部６４は、受信部６０が受信したビット列を、先頭から通信異常情報７８に含まれるビット長情報７０の値で区切る。そして、特定部６４は、区切って得られた各ビット列の末尾のビットを抽出し、抽出したビットで構成されるビット列を第２送信部５４が送信対象としたビット列として特定する。なお、図９の１段目と２段目は図６と同様であり、図９の３段目は受信部６０が実際に受信したビット列を示し、図９の４段目は特定部６４が特定したビット列を示している。また、図９では、ビット長情報７０の値が「４」の場合の例を示している。
【００７１】
一方、外乱ノイズに起因する通信異常が発生している場合、一例として図１０に示すように、特定部６４は、受信部６０が受信したビット列を、先頭から通信異常情報７８に含まれるビット長情報７４の値で区切る。そして、特定部６４は、区切って得られた各ビット列における数が多いビットを抽出し、抽出したビットで構成されるビット列を第２送信部５４が送信対象としたビット列として特定する。なお、図１０の１段目と２段目は図７と同様であり、図１０の３段目は受信部６０が実際に受信したビット列を示し、図１０の４段目は特定部６４が特定したビット列を示している。また、図１０では、ビット長情報７４の値が「５」の場合の例を示している。
【００７２】
また、上記２種類の通信異常の双方が発生している場合、一例として図１１に示すように、特定部６４は、受信部６０が受信したビット列を、先頭から通信異常情報７８に含まれるビット長情報７０、７４の値の和で区切る。また、特定部６４は、区切って得られた各ビット列における先頭からビット長情報７０の値の個数までのビットは無視する。そして、特定部６４は、区切って得られた各ビット列における末尾からビット長情報７４の値の個数までのビット列内の数が多いビットを抽出し、抽出したビットで構成されるビット列を第２送信部５４が送信対象としたビット列として特定する。なお、図１１の１段目と２段目は図８と同様であり、図１１の３段目は受信部６０が実際に受信したビット列を示し、図１１の４段目は特定部６４が特定したビット列を示している。また、図１１では、ビット長情報７０の値が「３」であり、ビット長情報７４の値が「３」である場合の例を示している。
【００７３】
次に、図１２〜図１５を参照して、本実施の形態に係る画像形成装置１０の作用を説明する。なお、図１２は、制御基板１２ＡのＣＰＵ２０Ａによって実行される第１送信処理プログラムの処理の流れを示すフローチャートである。本第１送信処理プログラムは、例えば、画像形成装置１０の電源がオン状態とされた場合、ユーザにより実行開始の指示が入力された場合、及び定期的なタイミング等に実行される。また、本第１送信処理プログラムはＲＯＭ２２Ａに予めインストールされている。
【００７４】
また、図１３は、制御基板１２ＢのＣＰＵ２０Ｂによって実行される第１受信処理プログラムの処理の流れを示すフローチャートである。本第１受信処理プログラムは、例えば、画像形成装置１０の電源がオン状態とされた場合、ユーザにより実行開始の指示が入力された場合、及び定期的なタイミング等に実行される。また、本第１受信処理プログラムはＲＯＭ２２Ｂに予めインストールされている。
【００７５】
また、図１４は、制御基板１２ＡのＣＰＵ２０Ａによって実行される第２送信処理プログラムの処理の流れを示すフローチャートである。本第２送信処理プログラムは、例えば、送信対象とするビット列が発生した場合等に実行される。また、本第２送信処理プログラムはＲＯＭ２２Ａに予めインストールされている。
【００７６】
また、図１５は、制御基板１２ＢのＣＰＵ２０Ｂによって実行される第２受信処理プログラムの処理の流れを示すフローチャートである。本第２受信処理プログラムは、例えば、通信部２８Ｂが制御基板１２Ａから送信されたビット列を受信した場合等に実行される。また、本第２受信処理プログラムはＲＯＭ２２Ｂに予めインストールされている。
【００７７】
なお、制御基板１２ＡのＣＰＵ２０Ａが第１送信処理プログラム及び第２送信処理プログラムを実行することで、図２に示す第１送信部５０、受信部５２、及び第２送信部５４として動作する。また、制御基板１２ＢのＣＰＵ２０Ｂが第１受信処理プログラム及び第１受信処理プログラムを実行することで、図２に示す受信部６０、送信部６２、及び特定部６４として動作する。
【００７８】
図１２のステップ１００で、第１送信部５０は、前述したように、上記予め定められた通信プロトコルを満たさないことによって通知されるエラーを検知したか否かを判定する。この判定が否定判定となった場合は、処理はステップ１００に戻り、肯定判定となった場合は、処理はステップ１０２に移行する。
【００７９】
ステップ１０２で、第１送信部５０は、上記移行情報送信間隔で上記移行情報を予め定められた回数、制御基板１２Ｂに送信する。次のステップ１０４で、第１送信部５０は、予め定められたビット数の分、「１」が連続するビット列、及び該ビット数の分、「０」が連続するビット列を制御基板１２Ｂに送信する。また、第１送信部５０は、これらの「１」が連続するビット列、及び「０」が連続するビット列を予め定められた回数繰り返して、制御基板１２Ｂに送信する。
【００８０】
次のステップ１０６で、受信部５２は、ステップ１０４で送信されたビット列の受信に応じて制御基板１２Ｂから返信されたビット列を受信するまで待機する。後述する第１受信処理のステップ１４４の処理により送信されたビット列を受信部５２が受信すると、ステップ１０６の判定が肯定判定となり、処理はステップ１０８に移行する。
【００８１】
ステップ１０８で、第２送信部５４は、ステップ１０４で送信されたビット列と、ステップ１０６で受信されたビット列とに基づいて、信号の波形に鈍りが発生しているか否かを判定する。具体的には、第２送信部５４は、前述したように、ステップ１０６で受信されたビット列のうち、ビット列Ｂ１が上記（Ａ）〜（Ｃ）の条件を満たしているか否かを判定することによって、立ち上がり鈍りが発生しているか否かを判定する。
【００８２】
また、第２送信部５４は、前述したように、ステップ１０６で受信されたビット列のうち、ビット列Ｂ０が上記（Ｄ）〜（Ｆ）の条件を満たしているか否かを判定することによって、立ち下がり鈍りが発生しているか否かを判定する。そして、第２送信部５４は、立ち上がり鈍り及び立ち下がり鈍りの少なくとも一方が発生していると判定した場合に、信号の波形に鈍りが発生していると判定する。
【００８３】
ステップ１０８の判定が否定判定となった場合は、処理はステップ１１２に移行し、肯定判定となった場合は、処理はステップ１１０に移行する。ステップ１１０で、第２送信部５４は、前述したように、ステップ１０６で受信された各ビット列におけるビットの変化点の最大値をビット長情報７０として記憶部２６Ａに記憶する。
【００８４】
ステップ１１２で、第２送信部５４は、前述したように、ステップ１０４で送信されたビット列と、ステップ１０６で受信されたビット列との排他的論理和を導出することによって、外乱ノイズに起因する通信異常が発生しているか否かを判定する。なお、本実施の形態では、第２送信部５４は、ステップ１０８で信号の波形に鈍りが発生していないと判定されたビット列Ｂ０、Ｂ１について、外乱ノイズに起因する通信異常が発生しているか否かを判定する。
【００８５】
ステップ１１２の判定が否定判定となった場合は、処理はステップ１１６に移行し、肯定判定となった場合は、処理はステップ１１４に移行する。ステップ１１４で、第２送信部５４は、上記（１）式に従って、外乱ノイズに対応するためのビット長情報７４を記憶部２６Ａに記憶する。
【００８６】
ステップ１１６で、第２送信部５４は、信号の波形の鈍りに起因する通信異常、及び外乱ノイズに起因する通信異常の少なくとも一方が発生しているか否かを判定する。例えば、第２送信部５４は、記憶部２６Ａにビット長情報７０が記憶されている場合は信号の波形の鈍りに起因する通信異常が発生していると判定する。また、例えば、第２送信部５４は、記憶部２６Ａにビット長情報７４が記憶されている場合は外乱ノイズに起因する通信異常が発生していると判定する。ステップ１１６の判定が肯定判定となった場合は、処理はステップ１１８に移行する。
【００８７】
ステップ１１８で、第２送信部５４は、前述したように、発生している通信異常に応じた通信異常情報を異常情報送信間隔で制御基板１２Ｂに送信した後、本第１送信処理を終了する。一方、ステップ１１６の判定が否定判定となった場合は、本第１送信処理が終了する。
【００８８】
一方、図１３のステップ１４０で、受信部６０は、移行情報を受信するまで待機する。上記第１送信処理のステップ１０２の処理により移行情報間隔で送信された移行情報を受信部６０が受信すると、ステップ１４０の判定が肯定判定となり、処理はステップ１４２に移行する。
【００８９】
ステップ１４２で、受信部６０は、制御基板１２Ａにより送信されたビット列を受信するまで待機する。上記第１送信処理のステップ１０４の処理により送信されたビット列を受信部６０が受信すると、ステップ１４２の判定が肯定判定となり、処理はステップ１４４に移行する。
【００９０】
ステップ１４４で、送信部６２は、ステップ１４２で受信されたビット列を、そのまま制御基板１２Ａに送信する。ステップ１４６で、受信部６０は、通信異常情報を受信するまで待機する。上記第１送信処理のステップ１１８の処理により送信された通信異常情報を異常情報送信間隔で受信部６０が受信すると、ステップ１４６の判定が肯定判定となり、処理はステップ１４８に移行する。
【００９１】
ステップ１４８で、受信部６０は、前述したように、ステップ１４６で受信された通信異常情報の受信間隔に対応する通信異常情報７８を記憶部２６Ｂに記憶した後、本第１受信処理を終了する。一方、ステップ１４６において、予め定められた期間を経過しても受信部６０が通信異常情報を受信しない場合は、ステップ１４６の判定が否定判定となり、本第１受信処理が終了する。
【００９２】
また、図１４のステップ１６０で、第２送信部５４は、記憶部２６Ａにビット長情報７０及びビット長情報７４の少なくとも一方が記憶されているか否かを判定する。この判定が否定判定となった場合は、処理はステップ１６４に移行し、肯定判定となった場合は、処理はステップ１６２に移行する。
【００９３】
ステップ１６２で、第２送信部５４は、前述したように、送信対象とするビット列の各ビットの値は変えずにビット数を増加させて制御基板１２Ｂに送信する。例えば、第２送信部５４は、記憶部２６Ａにビット長情報７０又はビット長情報７４が記憶されている場合は、送信対象とするビット列の各ビット数を、記憶されているビット長情報７０又はビット長情報７４の値に増加させて制御基板１２Ｂに送信する。また、例えば、第２送信部５４は、記憶部２６Ａにビット長情報７０及びビット長情報７４の双方が記憶されている場合は、送信対象とするビット列の各ビット数をビット長情報７０、７４の各々の値を加算して得られた値に増加させて制御基板１２Ｂに送信する。ステップ１６２の処理が終了すると、本第２送信処理が終了する。
【００９４】
一方、ステップ１６４で、第２送信部５４は、送信対象とするビット列をそのまま制御基板１２Ｂに送信した後、本第２送信処理を終了する。
【００９５】
また、図１５のステップ１８０で、受信部６０は、制御基板１２Ａにより送信されたビット列を、通信部２８Ｂを介して受信する。次のステップ１８２で、特定部６４は、記憶部２６Ｂに通信異常情報７８が記憶されているか否かを判定する。この判定が否定判定となった場合は、本第２受信処理が終了し、肯定判定となった場合は、処理はステップ１８４に移行する。
【００９６】
ステップ１８４で、特定部６４は、前述したように、受信部６０により受信されたビット列から予め定められたビットを抽出し、抽出したビットで構成されるビット列を第２送信部５４が送信対象としたビット列として特定する。例えば、通信異常情報７８として、信号の波形の鈍りに起因する通信異常が発生していることを示す情報及びビット長情報７０のみが記憶されている場合、特定部６４は、ステップ１８０で受信されたビット列をビット長情報７０の値で区切る。そして、特定部６４は、区切って得られた各ビット列の末尾のビットを抽出し、抽出したビットで構成されるビット列を第２送信部５４が送信対象としたビット列として特定する。
【００９７】
また、例えば、通信異常情報７８として、外乱ノイズに起因する通信異常が発生していることを示す情報及びビット長情報７４のみが記憶されている場合、特定部６４は、ステップ１８０で受信されたビット列をビット長情報７４の値で区切る。そして、特定部６４は、区切って得られた各ビット列における数が多いビットを抽出し、抽出したビットで構成されるビット列を第２送信部５４が送信対象としたビット列として特定する。
【００９８】
また、例えば、通信異常情報７８として、上記２種類の通信異常が発生していることを示す情報及びビット長情報７０、７４が記憶されている場合、特定部６４は、ステップ１８０で受信されたビット列をビット長情報７０、７４の値の和で区切る。また、特定部６４は、区切って得られた各ビット列における先頭からビット長情報７０の値の個数までのビットは無視する。そして、特定部６４は、区切って得られた各ビット列における末尾からビット長情報７４の値の個数までのビット列内の数が多いビットを抽出し、抽出したビットで構成されるビット列を第２送信部５４が送信対象としたビット列として特定する。
【００９９】
ステップ１８４の処理が終了すると、本第２受信処理が終了する。制御基板１２Ｂは、通信に異常が発生していない場合は、ステップ１８０で受信されたビット列を用いて以降の予め定められた処理（例えば、画像形成処理等）を行う。一方、制御基板１２Ｂは、通信に異常が発生している場合は、ステップ１８４で特定されたビット列を用いて以降の予め定められた処理を行う。
【０１００】
なお、上記実施の形態では、上記２種類の通信異常の双方を検知する場合について説明したが、これに限定されない。上記２種類の通信異常の何れか一方のみを検知する形態としてもよい。また、上記２種類の通信異常のうち、外乱ノイズに起因する通信異常のみを検知する場合は、第１送信部５０により送信されるビット列は「０」又は「１」が連続するビット列でなくても構わない。
【０１０１】
また、上記実施の形態におけるビット列ｂ０、ｂ１のビット数及びビット列ｂ０、ｂ１の繰り返し回数は特に限定されない。該ビット数及び繰り返し回数は、例えば通信異常の特定に費やされる期間として許容される期間、及び要求される通信精度等に応じて、適宜決めればよい。
【０１０２】
また、上記実施の形態では、本発明を画像形成装置１０の制御基板１２Ａ及び制御基板１２Ｂに適用した場合について説明したが、これに限定されない。例えば、ビット列の送受信を行う他の通信装置に本発明を適用してもよい。
【０１０３】
また、上記実施の形態では、第１送信処理プログラム及び第２送信処理プログラムがＲＯＭ２２Ａに予めインストールされている場合について説明したが、これに限定されない。例えば、第１送信処理プログラム及び第２送信処理プログラムが、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）等の記憶媒体に格納されて提供される形態、又はネットワークを介して提供される形態としてもよい。
【０１０４】
また、上記実施の形態では、第１受信処理プログラム及び第２受信処理プログラムがＲＯＭ２２Ｂに予めインストールされている場合について説明したが、これに限定されない。例えば、第１受信処理プログラム及び第２受信処理プログラムが、ＣＤ−ＲＯＭ等の記憶媒体に格納されて提供される形態、又はネットワークを介して提供される形態としてもよい。
【０１０５】
さらに、上記実施の形態では、各種処理を、プログラムを実行することにより、コンピュータを利用してソフトウェア構成により実現する場合について説明したが、これに限定されない。例えば、各種処理を、ハードウェア構成や、ハードウェア構成とソフトウェア構成の組み合わせによって実現する形態としてもよい。
【０１０６】
その他、上記実施の形態で説明した画像形成装置１０、及び制御基板１２Ａ、１２Ｂの構成（図１及び図２参照）は一例であり、本発明の主旨を逸脱しない範囲内において不要な部分を削除したり、新たな部分を追加したりしてもよいことは言うまでもない。
【０１０７】
また、上記実施の形態で説明した各種処理の流れ（図１２〜図１５参照）も一例であり、本発明の主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよいことは言うまでもない。
【符号の説明】
【０１０８】
１０  画像形成装置
１２Ａ、１２Ｂ  制御基板
２０Ａ、２０Ｂ  ＣＰＵ
２２Ａ、２２Ｂ  ＲＯＭ
２６Ａ、２６Ｂ  記憶部
５０  第１送信部
５２  受信部
５４  第２送信部
６０  受信部
６２  送信部
６４  特定部
【図１】
2018041151.tif 000003
【図２】
2018041151.tif 000004
【図３】
2018041151.tif 000005
【図４】
2018041151.tif 000006
【図５】
2018041151.tif 000007
【図６】
2018041151.tif 000008
【図７】
2018041151.tif 000009
【図８】
2018041151.tif 000010
【図９】
2018041151.tif 000011
【図１０】
2018041151.tif 000012
【図１１】
2018041151.tif 000013
【図１２】
2018041151.tif 000014
【図１３】
2018041151.tif 000015
【図１４】
2018041151.tif 000016
【図１５】
2018041151.tif 000017