(57)【要約】【課題】CPUが処理すべきプログラムの内容および／またはそのプログラムを格納する記憶装置が破壊された場合にも再起動後のCPUが必要最低限の処理を継続できるようにし、また、暴走後に再起動されたCPUの挙動を適切なものにするファクシミリ装置を提供する。【解決手段】ファクシミリの通信制御を行うCPUと、通信制御のために前記CPUが処理すべき主プログラムの内容を予め格納する第１の記憶装置と、通信制御のために前記CPUが処理すべき副プログラムの内容を予め格納する第２の記憶装置と、ユーザーからの指示に応じて前記CPUによる処理を開始させる起動部と、前記CPUが暴走した場合、その暴走状態を検出してCPUを再起動させる暴走監視部とを備え、前記暴走監視部は、暴走状態が検出されて再起動されたときはCPUに第２の記憶装置をアクセスさせて副プログラムが処理されるようにし起動部により起動されたときはCPUに第１の記憶装置をアクセスさせて主プログラムが処理されるようにすることを特徴とするファクシミリ装置。【選択図】図１
2009194641.tif 000002
【特許請求の範囲】
【請求項１】
ファクシミリの通信制御を行うCPUと、
通信制御のために前記CPUが処理すべき主プログラムの内容を予め格納する第１の記憶装置と、
通信制御のために前記CPUが処理すべき副プログラムの内容を予め格納する第２の記憶装置と、
ユーザーからの指示に応じて前記CPUによる処理を開始させる起動部と、
前記CPUが暴走した場合、その暴走状態を検出してCPUを再起動させる暴走監視部とを備え、
前記暴走監視部は、暴走状態が検出されて再起動されたときはCPUに第２の記憶装置をアクセスさせて副プログラムが処理されるようにし起動部により起動されたときはCPUに第１の記憶装置をアクセスさせて主プログラムが処理されるようにすることを特徴とするファクシミリ装置。
【請求項２】
送信すべき原稿の読み取りを行うための原稿読取部と、
受信されたファクシミリデータを印字するための印字部とをさらに備え、
原稿読取部は、原稿の読み取り動作が可能な通常モードおよび省電力のために読み取り動作を停止する待機モードの状態をとり得るものであり、
印字部は、ファクシミリデータの印字動作が可能な通常モードおよび省電力のために印字動作を停止する待機モードの状態をとり得るものであり、
前記主プログラムは、所定の条件に基づいて原稿読取部および印字部が通常モードをとるべき要求、および待機モードをとるべき要求をCPUにさせ、
前記副プログラムは、原稿読取部および印字部が待機モードをとるべき要求をCPUにさせるが通常モードの状態をとるべき要求をさせない請求項１に記載のファクシミリ装置。
【請求項３】
原稿読取部および印字部に電源をそれぞれ供給し、かつ、前記CPUからの要求に基づいて原稿読取部および印字部への電源を供給しおよび遮断し得る電源部をさらに備え、
前記主プログラムは、前記条件に基づいて前記電源部が原稿読取部への電源を供給すべき要求および電源を遮断すべき要求をCPUにさせ、
前記副プログラムは、前記電源部が原稿読取部への電源を遮断すべき要求をCPUにさせるが電源を供給すべき要求をさせない請求項２に記載のファクシミリ装置。
【請求項４】
原稿読取部および印字部に電源をそれぞれ供給し、かつ、前記CPUからの要求に基づいて原稿読取部および印字部への電源を供給しおよび遮断し得る電源部をさらに備え、
前記主プログラムは、前記条件に基づいて前記電源部が印字部への電源を供給すべき要求および電源を遮断すべき要求をCPUにさせ、
前記副プログラムは、前記電源部が印字部への電源を遮断すべき要求をCPUにさせるが電源を供給すべき要求をさせない請求項２または３に記載のファクシミリ装置。
【請求項５】
２つ以上の状態が識別可能な状態信号をCPUの指令に応じて出力しかつ次の指令がくるまでその状態を維持する状態出力ポートと、
前記信号の状態をCPUが読み取るための状態入力ポートとをさらに備え、
前記主プログラムは、原稿読取部および印字部が通常モードをとるべき要求をさせるときさらに前記状態出力ポートに第１の状態信号を出力すべき指令をCPUにさせ、待機モードをとるべき要求をさせるときさらに第２の状態信号を出力すべき指令をCPUにさせ、
前記副プログラムは、CPUに前記信号の状態を読み取らせ、読み取られた状態に基づいて原稿読取部および印字部が通常モードをとるべきか待機モードをとるべきかを決定する請求項３または４に記載のファクシミリ装置。
【請求項６】
ファクシミリの通信に係る表示を行う表示部をさらに備え、
前記主プログラムは、前記表示部が表示をすべき要求をさらにCPUにさせ、
前記副プログラムは、前記表示部が表示を消灯させるべき要求をCPUにさせるが表示をすべき要求をさせない請求項１〜５の何れか一つに記載のファクシミリ装置。
【請求項７】
ファクシミリの通信に係る報知を音声として出力する音声出力部をさらに備え、
前記主プログラムは、所定の条件に基づいて前記音声出力部が音声出力を行うべき要求をさらにCPUにさせ、
前記副プログラムは、前記音声出力部が音声出力を停止すべき要求をさらにCPUにさせるが音声出力を行うべき要求をさせない請求項１〜６の何れか一つに記載のファクシミリ装置。
【請求項８】
原稿読取部、印字部および電源部を制御する主制御部をさらに備え、
前記CPUは、主制御部を介して原稿読取部、印字部および電源部への要求を行う請求項３または４に記載のファクシミリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファクシミリ装置に関し、より詳細にはCPUの暴走を検出する機能を有するファクシミリ装置に関する。
【背景技術】
【０００２】
ファクシミリ装置は、相手方から画像が送信されたときにいつでもその画像を受信できるように常時電源が投入された状態で使用されるのが通例である。一般のオフィスなどでそばに人がいなくなる夜間にも電源が投入された状態で受信待機状態を維持するのが通例である。そのような夜間の受信で装置に障害が発生し、受信した内容が失われてしまうことは許されない。
【０００３】
このように、ファクシミリ装置は常時電源が投入された状態で使用されるので、使用前に電源が投入され使用後に電源が遮断されるような機器に比べてより高い信頼性が望まれる。このようなファクシミリ装置の制御にも近年はCPUあるいはマイクロコンピュータが使用されている。一般に、CPUは外乱ノイズやプログラムのバグに起因して暴走（ハングアップ）状態に陥ることがあるので、ファクシミリ装置のように高信頼性が要求される機器においては、CPUの暴走に対する保護が付加されたものが多い。
【０００４】
よく知られた保護の手法の一つは、ウォッチドッグタイマーといわれる外部回路を付加するものである。これは、CPUが暴走状態に陥った際、CPUをその外部回路によって強制的に再起動させるものである。即ち、CPUが正常動作している間はウォッチドッグタイマーを所定期間内にリセットするようプログラムしておき、プログラムが暴走した結果ウォッチドッグタイマーが所定期間内にリセットされないとやがてウォッチドッグタイマーがオーバーフローしCPUが強制的にリセットされる。
【０００５】
また、機器が複数のコントローラ（メインコントローラ、ファクシミリコントローラ、プリンタコントローラ等）から構成される場合、ファクシミリコントローラやプリンタコントローラからメインコントローラに一定間隔で通信確認コマンドを送り、それが受信できなければそのコントローラが暴走したと判断し、そのコントローラへリスタート（リセット）信号を発行し再起動させるものが知られている（例えば、特許文献１参照）。
【特許文献１】特開２００１−７１５９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
装置が前述のような暴走に対する保護機能を備えている場合でも、例えば、CPUが処理すべきプログラムを格納している記憶装置がハード的に破壊したり前記記憶装置に記憶されたデータが破壊されたりすると再起動後のCPUは、正規のプログラム処理をすることができなくなる。データが破壊されるとは、例えば、前記プログラムがフラッシュメモリーなどの書換え可能な記憶装置に格納されている場合に、そのデータが書換えあるいは消去されてしまう事態である。
【０００７】
近年は、機器の制御プログラムがバージョンアップされる場合が多い。そのような機器では、既に販売された機器に対するバージョンアップを実現するため、記憶装置をソケットに実装して交換可能にしたものがある。さらに、バージョンアップに伴う費用と時間の負担を軽減するため、前記記憶装置が基板に実装された状態でプログラムの更新を行うための特別なプログラム（書換えプログラム）をCPUに処理させる機能を持たせるものもある。
【０００８】
ところが、例えば、CPUが暴走した際、前述の書換えプログラムがたまたま実行されると前記記憶装置に記憶されたデータが破壊されてしまう可能性がある。CPUが暴走したときの状態は予め予想できないため、書換えプログラムが実行されないという保証を得ることはできない。
【０００９】
プログラムが誤って書き換えられるリスクを抑える観点からは、前記記憶装置をソケットに実装して人手により交換する方が有利かもしれないが、記憶装置がハード的に破壊した場合には事情は同じである。また、ソケットや交換用部品に要する負担が大きい。
【００１０】
この発明は、以上のような事情を考慮してなされたものであって、CPUが処理すべきプログラムの内容および／またはそのプログラムを格納する記憶装置が破壊された場合にも再起動後のCPUが必要最低限の処理を継続できるようにし、また、暴走後に再起動されたCPUの挙動を適切なものにするファクシミリ装置を提供するものである。
【課題を解決するための手段】
【００１１】
この発明は、ファクシミリの通信制御を行うCPUと、通信制御のために前記CPUが処理すべき主プログラムの内容を予め格納する第１の記憶装置と、通信制御のために前記CPUが処理すべき副プログラムの内容を予め格納する第２の記憶装置と、ユーザーからの指示に応じて前記CPUによる処理を開始させる起動部と、前記CPUが暴走した場合、その暴走状態を検出してCPUを再起動させる暴走監視部とを備え、前記暴走監視部は、暴走状態が検出されて再起動されたときはCPUに第２の記憶装置をアクセスさせて副プログラムが処理されるようにし起動部により起動されたときはCPUに第１の記憶装置をアクセスさせて主プログラムが処理されるようにすることを特徴とするファクシミリ装置を提供する。
【発明の効果】
【００１２】
この発明のファクシミリ装置において、前記暴走監視部は、暴走状態が検出されて再起動されたときはCPUに第２の記憶装置をアクセスさせて副プログラムが処理されるようにし、起動部により起動されたときはCPUに第１の記憶装置をアクセスさせて主プログラムが処理されるようにするので、CPUが処理すべきプログラムの内容および／またはそのプログラムを格納する記憶装置が破壊された場合にも再起動後のCPUが必要最低限の処理を継続できるようにし、また、暴走後に再起動されたCPUの挙動を適切なものにすることができる。
【００１３】
即ち、この発明によれば、異なる記憶装置に主プログラムと副プログラムとを予め異なる記憶装置に書き込んでおき、CPUの暴走状態が検出された後は副プログラムを起動することにより、たとえ主プログラムの内容が破壊されていても装置の停止時間を最小限に抑えることが可能になる。また、CPUの暴走状態が検出された後は、異なる記憶装置をアクセスするので、第１の記憶装置がハードウェア的に破壊されている場合や、第１の記憶装置内の特定の領域でプログラムがループして暴走しているような場合でも再起動後のCPUはそれらの不具合に影響されずに処理を実行することが可能である。
【００１４】
この発明において、CPUは、マイクロコンピュータ（MPU）を含むものである。後述の実施の形態においては、FAXコントロール部がこの発明のCPUに相当する。
この発明において、起動部は、ユーザーからの指示に応じてCPUを起動させるものである。具体的な態様は、例えば、装置に設けられた主電源スイッチである。後述の実施の形態においては、主スイッチが起動部に相当する。
また、この発明において、暴走監視部は、CPUの暴走状態を検出してCPUをリセットして再起動させ、かつ、再起動後にCPUがアクセスすべきプログラムの格納先を規定する回路である。CPUの暴走を検出する具体的な態様は、例えば、ウォッチドッグタイマーである。また、CPUの起動後にアクセスするプログラムのアクセス先を規定する回路の具体的な態様は、例えば、CPUのアドレス空間に対して第１および第２の記憶装置を対応付けるアドレス制御回路である。
【００１５】
前記アドレス制御回路は、第１および第２の記憶装置を所定のアドレス空間に配置し、暴走状態が検出されて再起動された場合の起動アドレスと正常動作時の起動アドレスとを異ならせるような回路であってもよい。例えば、CPUが、通常のリセット信号とウォッチドッグタイマーのオーバーフローにより発生したリセット信号に応じて、リスタート先のアドレス（いわゆる、リセットベクター）をアドレス空間上の異なるアドレスから取得するように構成されている場合、通常のリセット信号に対応するベクタ領域にメインプログラムの先頭アドレスを設定しておき、ウォッチドッグタイマーに係るリセット信号に対応するベクタ領域にはサブプログラムの先頭アドレスを設定しておけばよい。
【００１６】
また、CPUが通常のリセット信号とウォッチドッグタイマーに係るリセット信号とでリセットベクターを分ける機能を有していない場合は、前述のいずれのリセット信号によりリスタートされるかに応じて、アドレス空間上でリセットベクターが配置されるアドレスに対して割り当てられる物理的なメモリ素子を動的に変更するようにしてもよい。即ち、通常のリセット信号によりリスタートする際は、リセットベクター領域に第１記憶素子が割り当てられてメインプログラムの先頭を示すように構成し、ウォッチドッグタイマーに係るリセット信号によりリスタートする際は、リセットベクター領域に第２記憶素子が割り当てられてサブプログラムの先頭を示すように構成してもよい。
【００１７】
CPUのアドレス空間に物理的な記憶装置を割り当てるアドレス制御回路（いわゆるアドレスデコード回路）において、CPUのリセット時、リセットベクター領域に割り当てられる物理的な記憶装置を動的に変更する手法が知られている（例えば、岡田  正編著、ドランジスタ技術増刊  メモリIC活用ハンドブック  初版、CQ出版株式会社発行、1989年7月10日発行、p.74-75参照）。その手法をこの発明に適用することが可能である。
暴走監視部は、後述する実施形態のFAX暴走監視部に相当する。
【００１８】
さらに、この発明において、第１および第２の記憶装置は、物理的に互いに異なる記憶装置である。各記憶装置の具体的な態様は、例えば、フラッシュメモリーに代表される不揮発性半導体記憶装置である。ただし、他の種類の不揮発性半導体記憶装置あるいは半導体以外の不揮発性記憶装置であってもよい。書換え可能であるか否かは問わない。また、第１と第２の記憶装置とで、記憶装置の種類が異なっていてもよい。
【００１９】
以下、この発明の好ましい態様について説明する。後述する実施形態において、第１記憶装置は第１ROMに相当し、第２の記憶装置は第２ROMに相当する。
送信すべき原稿の読み取りを行うための原稿読取部と、受信されたファクシミリデータを印字するための印字部とをさらに備え、原稿読取部は、原稿の読み取り動作が可能な通常モードおよび省電力のために読み取り動作を停止する待機モードの状態をとり得るものであり、印字部は、ファクシミリデータの印字動作が可能な通常モードおよび省電力のために印字動作を停止する待機モードの状態をとり得るものであり、前記主プログラムは、所定の条件に基づいて原稿読取部および印字部が通常モードをとるべき要求、および待機モードをとるべき要求をCPUにさせ、前記副プログラムは、原稿読取部および印字部が待機モードをとるべき要求をCPUにさせるが通常モードの状態をとるべき要求をさせないようにしてもよい。このようにすれば、サブプログラムは原稿読取部および／または印字部を通常モードで動作させないので、原稿読取部および／または印字部の制御あるいは動作に起因して暴走が発生する場合、再起動後に同一原因で暴走と再起動が繰り返されることを回避することがでる。従って、暴走再発のリスクをより少なくすることができる。
【００２０】
また、原稿読取部および印字部に電源をそれぞれ供給し、かつ、前記CPUからの要求に基づいて原稿読取部および印字部への電源を供給しおよび遮断し得る電源部をさらに備え、前記主プログラムは、前記条件に基づいて前記電源部が原稿読取部への電源を供給すべき要求および電源を遮断すべき要求をCPUにさせ、前記副プログラムは、前記電源部が原稿読取部への電源を遮断すべき要求をCPUにさせるが電源を供給すべき要求をさせないようにしてもよい。このようにすれば、再起動後に原稿読み取りの動作をさせることのない原稿読取部への電源の供給を遮断することによって、無駄な電力の消費を抑えることができる。特に、夜間の受信待機状態で暴走状態が検出されてCPUが再起動された場合、再起動後に原稿読取部に電源が供給されて無駄な電力が消費されるといった事態を回避することができる。
【００２１】
さらに、原稿読取部および印字部に電源をそれぞれ供給し、かつ、前記CPUからの要求に基づいて原稿読取部および印字部への電源を供給しおよび遮断し得る電源部をさらに備え、前記主プログラムは、前記条件に基づいて前記電源部が印字部への電源を供給すべき要求および電源を遮断すべき要求をCPUにさせ、前記副プログラムは、前記電源部が印字部への電源を遮断すべき要求をCPUにさせるが電源を供給すべき要求をさせないようにしてもよい。このようにすれば、再起動後に印字動作をさせることのない印字部への電源の供給を遮断することによって、無駄な電力の消費を抑えることができる。特に、夜間の受信待機状態で暴走状態が検出されてCPUが再起動された場合、再起動後に印字部へ電源が供給されて無駄な電力が消費されるといった事態を回避することができる。
【００２２】
さらに、２つ以上の状態が識別可能な状態信号をCPUの指令に応じて出力しかつ次の指令がくるまでその状態を維持する状態出力ポートと、前記信号の状態をCPUが読み取るための状態入力ポートとをさらに備え、前記主プログラムは、原稿読取部および印字部が通常モードをとるべき要求をさせるときさらに前記状態出力ポートに第１の状態信号を出力すべき指令をCPUにさせ、待機モードをとるべき要求をさせるときさらに第２の状態信号を出力すべき指令をCPUにさせ、前記副プログラムは、CPUに前記信号の状態を読み取らせ、読み取られた状態に基づいて原稿読取部および印字部が通常モードをとるべきか待機モードをとるべきかを決定してもよい。このようにすれば、暴走状態が検知されてCPUが再起動された後においても、サブプログラムは、暴走前のモードに応じた処理を決定することができる。従って、再起動された後のCPUの挙動を適切なものにすることができる。暴走状態において印字状態出力ポートがたまたま書き換えられることも考えられなくないが、そのような事象が高い確率で発生する訳ではなく、ほとんどの場合は有効に機能すると考えられる。
【００２３】
また、ファクシミリの通信に係る表示を行う表示部をさらに備え、前記主プログラムは、前記表示部が表示をすべき要求をさらにCPUにさせ、前記副プログラムは、前記表示部が表示を消灯させるべき要求をCPUにさせるが表示をすべき要求をさせないようにしてもよい。このようにすれば、前記表示部を消灯させた状態でファクシミリの通信が行われるので、無駄な電力の消費を回避することができる。特に、夜間の受信待機状態で暴走状態が検出された場合、再起動後、周囲に人がいない状態で表示をしても意味がないのでこの機能が有効である。また、表示部が消灯していることによって、使用者に暴走の発生を認識させることができる。
【００２４】
さらにまた、ファクシミリの通信に係る報知を音声として出力する音声出力部をさらに備え、前記主プログラムは、所定の条件に基づいて前記音声出力部が音声出力を行うべき要求をさらにCPUにさせ、前記副プログラムは、前記音声出力部が音声出力を停止すべき要求をさらにCPUにさせるが音声出力を行うべき要求をさせないようにしてもよい。このようにすれば、音声が出力されない状態でファクシミリの通信が行われるので、無駄な電力の消費を回避することができる。特に、夜間の受信待機状態で暴走状態が検出されたに場合、再起動後、周囲に人がいない状態で音声による報知をしても意味がないのでこの機能が省電力に有効である。
【００２５】
原稿読取部、印字部および電源部を制御する主制御部をさらに備え、前記CPUは、主制御部を介して原稿読取部、印字部および電源部への要求を行ってもよい。
ここで示した種々の好ましい態様は、それら複数を組み合わせることもできる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を用いてこの発明をさらに詳述する。なお、以下の説明は、すべての点で例示であって、この発明を限定するものと解されるべきではない。
【００２７】
ファクシミリ装置の全体構成
まず、この発明に係るファクシミリ装置の全体構成について例を挙げて説明する。
【００２８】
図１は、本発明のファクシミリ装置の一例として、ファクシミリ機能を有するデジタル複合機の概略構成を示すブロック図である。図１に示すように、デジタル複合機1は、複数のユニットから構成されている。即ち、デジタル複合機1は、複数の付設ユニットを制御するメインコントロールユニット（MCUユニット）101、ファクシミリ通信機能の制御を行うＦＡＸユニット102、送信原稿を読み取るための原稿読取部103、操作パネル104、印字部107、電源部108および主スイッチ131からなる。ユーザーが主スイッチ131を投入すると、電源部108からMCUユニット101へ電源が供給され、コントロール部119が処理を開始する。MCUユニット101は、電源部108を制御して各ユニットへ電源を供給させる。また、図１の構成において、電源部以外の各ユニットは、それぞれCPUを有している。MCUユニット101は、各ユニットへのリセット信号を解除して各ユニットの動作を開始させる。
【００２９】
デジタル複合機1は、印字部107の制御を行い、外部から受信された画像データを解析して印字用紙に印字するためのデータに変換する。メインコントロールユニット（MCUユニット）101は、原稿読取部103の制御を行い、原稿読取部103で読み取られた原稿の画像を印字用紙に印字するためのデータに変換する。FAXユニット102は、ファクシミリ機能の制御を行い、原稿読取部103で読み取られた原稿画像の画像データを相手先に発信したり、着信したファクシミリデータを印字用紙に描画するデータに変換したりする。前記データは、印字部107で印刷される。
【００３０】
操作パネル104には、相手先番号等が液晶表示される表示部105、テンキー等の操作部106およびファックスの操作や状態に関するメッセージを音声で知らせる音声出力部130がある。印字部107は、受信された画像データを印刷するものであり、電源部108は各ユニットへの電源供給、および夜間FAXモード（この発明の待機モード）と通常モード（この発明の通常モード）とにおいて、主としてMCUユニット101からの指令に応じて各ユニットへの電源の供給を切り替える。
【００３１】
次に、FAXユニット102の詳細について説明する。FAXユニット102が有するNCU 109は、回線にハード的に接続するための通信ユニットである。モデム110は、電話回線を用いたファクシミリ通信を制御するモデムである。画像メモリ111は、ファクシミリ通信で送受されるFAX画像を記憶するメモリ素子である。RAM112は、FAXコントロール部118としてのCPUのワークメモリとして使用される。ROM113は、FAXコントロール部118がFAXユニット102を機能させるためのメインプログラムの内容を格納する。ROM114はFAXコントロール部118がハングアップしたとき再起動後に処理するサブプログラムの内容を格納する。夜間FAX制御部115は、FAXユニット102が前記通常モードで動作すべきか夜間FAXモードで動作すべきかを判断する。また、FAX-MCU I/F制御部116によってMCUユニット101と通信を行う。FAX画像処理部117はFAXデータの圧縮、符号化を行う。これらのFAXユニット全体の制御は、FAXコントロール部118によって行われている。
【００３２】
続いて、メインコントロールユニット（MCUユニット）101について説明する。MCUユニット101は各ユニットを制御する。制御は、コントロール部119としてのCPUが制御プログラムを実行することによって実現される。RAM120はCPUのワークメモリとして使用される。ROM121は、CPUがMCUユニットを動かし、各ユニットを制御すための制御プログラムの内容を格納する。MCU画像処理部122は、FAXユニット102とやり取りする画像データの圧縮、符号化を行う。
【００３３】
暴走監視部の構成
次に、暴走監視部の詳細な構成について説明する。図４は、この実施形態に係る暴走監視部123の詳細構成を示すブロック図である。また、図３は、この実施形態において、CPUのアドレス空間（後述するアドレス制御部126の出力信号CS0、CS2〜CS6によって定められる）を表形式で示す説明図、いわゆるアドレスマップである。
【００３４】
暴走監視部は、CPUの暴走を検出するウォッチドッグタイマー124、CPUへのリセット信号を発生するリセット信号発生部125、リセット信号解除後にCPUがアクセスする記憶装置を決定するアドレス制御部126から構成される。ウォッチドッグタイマー124、リセット信号発生部125およびアドレス制御部126の実体は、それぞれの機能に応じた論理回路である。これらの回路は例えば、IC（集集積回路）として半導体のチップ上に実装されてもよい。
【００３５】
図４に示すように、アドレス制御部126に入力されるA26〜A31は、CPUのアドレスバス信号である。バス制御信号は、CPUからの信号あるいはそれらの信号に基づいて作成される信号である。出力信号CS0、CS2〜CS6はチップセレクト信号であって図３の「回路ブロック名」の欄に記された各素子への選択的なアクセスを可能にする。
【００３６】
CPUであるFAXコントロール部118は、MCUユニット101からのリセット信号とウォッチドッグタイマー123のオーバーフローによるリセット信号との何れかによりリセットされる。通常の動作では、MCUユニット101からのリセット信号でリセットされる。即ち、主スイッチ131が遮断されると、MCUユニット101からのリセット信号がアサートされて動作を停止する。主スイッチが投入されるとMCUユニット101からのリセット信号がネゲートされてスタートする。
【００３７】
そのスタートの際、CPUは、スタートした後に処理すべきプログラムの参照先のアドレス（リセットベクター）を取得する。リセットベクターを取得するアドレスは予め定められている。この実施形態においては、MCUユニット101からのリセット信号が解除された場合のリセットベクターの取得先は、16進表現でHFFFF_FF00番地である（図３参照）。アドレス制御部126は、CPUが前記リセットベクターを取得する場合に限り、CPUのアドレス空間のHFFFF_FF00番地に第１ROMを割り当てる。従って、このリセットベクター取得時にはチップセレクト信号CS0がアサートされる。
【００３８】
CPUは、第１ROMの所定の領域からリセットベクターを取得する。取得される値は、メインプログラムの先頭のアドレス、即ち、16進表現でH0000_0000である。前記リセットベクター取得後は、H0000_0000〜H03FF_FFFF番地をアクセスする場合に限りチップセレクト信号CS0がアサートされる。このようにして、CPUはメインプログラムの先頭から処理を開始する。
【００３９】
ウォッチドッグタイマー124は、FAXコントロール部118が起動すると同時に内部クロックによるタイマーのカウントを開始するように構成されている。そして、FAXコントロール部118が動作する間、タイマーのカウントを続ける。所定期間が経過するとタイマーがオーバーフローし、オーバーフロー信号が出力される。前記タイマーは、FAXコントロール部118からの指令によってリセットされる。
【００４０】
メインプログラムおよびサブプログラムは、前述の所定期間が経過するまでの間にFAXコントロール部118がウォッチドッグタイマー123へのリセット指令を発するようプログラムされている。リセット指令は、所定期間より短い間隔で繰り返し発せられる。従って、FAXコントロール部118がメインプログラムまたはサブプログラムを実行する限りウォッチドッグタイマー123がオーバーフローすることはない。
【００４１】
しかし、何らかの原因でFAXコントロール部118がメインプログラムまたはサブプログラムを正しく実行できなくなると、ウォッチドッグタイマー123へのリセット指令が発せられなくなる。これが暴走状態である。暴走状態に陥ると、やがてウォッチドッグタイマー123はオーバーフローし、オーバーフロー信号を出力する。この信号はリセット信号発生部125へ入力される。リセット信号発生部125は、オーバーフロー信号に応答してリセット信号を発し、MCUユニット101に係りなくFAXコントロール部118をリセットする。そのリセット信号は、同時にアドレス制御部126へ入力される。
【００４２】
アドレス制御部126は、前記リセット信号に応答して、当該リセット信号によるリスタート時のリセットベクター取得左記として予め定められたアドレス（HFFFF_FF00番地）に第2ROMを割り当てる。従って、このリセットベクター取得時にはチップセレクト信号CS6がアサートされる。CPUは、第2ROMの所定の領域からリセットベクターを取得する。取得される値は、サブプログラムの先頭のアドレス、即ち、16進表現でH1800_0000である。前記リセットベクター取得後は、H1800_0000〜H1BFF_FFFF番地をアクセスする場合に限りチップセレクト信号CS6がアサートされる。このようにして、CPUはサブプログラムの先頭から処理を開始する。
【００４３】
通常動作時の動作
続いて、デジタル複合機１が正常動作しているときの動作について説明する。
デジタル複合機1の主スイッチが投入されると、電源部108からMCUユニット101に電源が供給される。さらに、電源部108からMCUユニット101へのリセット信号が解除されてコントロール部119が処理の実行を開始する。コントロール部119の処理によって、MCUユニット101は、初期化の処理の段階で、FAXユニット102、原稿読み取り部103、操作パネル104および印字部107の各ユニットへ電源を供給するように電源部108を制御する。また、各ユニットへのリセット信号を解除する。これによって、各ユニットの動作のCPUが処理を開始する。主スイッチが投入された後、デジタル複合機1は通常モードで動作する。
【００４４】
その後、使用者が操作部106を用いて夜間FAXモードへの移行指示を与えることにより、あるいは、夜間FAX制御部115が有するクロックタイマ機能が第１の所定時刻に達したことにより移行要求が発せられ、デジタル複合機1は、夜間FAXモードに移行する。より詳細には、操作部106を用いて夜間FAXモードへの移行指示が入力された場合はその指示が操作パネル104からMCUユニット101へ送られる。夜間FAX制御部115から夜間FAXモードへの移行要求が発せられた場合はその要求がFAXユニット102からMCUユニット101へ送られる。
【００４５】
MCUユニット101のコントロール部119は、それらの指示または要求に応答し、各ユニットを待機モードに移行させるべく指令を発する。各ユニットは、MCUユニット101からの指令に応答して待機モードへ移行する。即ち、FAXユニット102においては、FAXコントロール部118が前記指令に応答してFAXユニット102を夜間FAXモードに移行させる。原稿読取部103は、通常モードに移行する。操作パネル104は、一部の表示を除き、あるいは全部の表示を消灯させ、音声出力を停止する。印字部107は、待機モードに移行する。
【００４６】
あるいは、MCUユニット101は、電源部108を制御し、各ユニットにおいて夜間FAXモード中に動作しない部分への不要な電源供給を遮断する。即ち、原稿読取部103、操作パネル104および印字部107へのリセット信号をアサートして動作を停止させた後、それらのユニットへの電源供給を遮断する。これは、いわば、究極の待機モードである。この場合、デジタル複合機1は、ファクシミリの送受信を行うFAXユニット102のみが動作し、一部の必要な部分への電源供給を除いて他のユニットへの電源供給は遮断される。
【００４７】
夜間FAXモード中にファクシミリデータを受信すると、夜間FAX制御部115からMCUユニット101へ印字の要求が発せられる。要求を受けたMCUユニット101のコントロール部119は、印字動作を行うため印字部107を通常モードへ復帰させるべく指令を発する。
【００４８】
あるいは、印字部への電源の供給が遮断されている場合、MCUユニット101は、電源部108を制御し、印字動作に必要な部分への電源供給を開始させる。さらに、印字部107へのリセット信号をネゲートする。印字部107のCPUは処理を開始し、結果的に印字部107は通常モードに移行する。そして、印字部107は、受信されたファクシミリデータの印字を実行する。印字が終了すると、印字部107は印字終了をMCUユニット101に通知する。MCUユニット101は、印字終了の通知に応答して印字部107を再び待機モードに移行させる。あるいは、印字部107へのリセット信号をアサートした後、印字部107への電源を遮断して究極の待機モードに移行させる。こうして、夜間FAXモードが継続する。
【００４９】
その後、使用者が操作部106の所定のキーあるいは専用のスイッチを用いてFAX夜間モードから通常モードへの移行指示を与えることにより、あるいは、夜間FAX制御部115が有するクロックタイマ機能が第２の所定時刻に達したことにより、デジタル複合機1は夜間FAXモードから通常モードに移行する。より詳細には、操作部106あるいは専用のスイッチを用いて通常モードへの移行指示が入力された場合はその指示がMCUユニット101へ送られる。夜間FAX制御部115から通常モードへの移行要求が発せられた場合はその要求がFAXユニット102からMCUユニット101へ送られる。
【００５０】
MCUユニット101のコントロール部119は、各ユニットが通常動作に移行するように指令を発する。あるいは、各ユニットへの電源供給が遮断されている場合、電源部108を制御して各ユニットへの電源供給を開始させる。さらに、各ユニットへのリセット信号をネゲートして各ユニットのCPUに処理を開始させる。各ユニットは、MCUユニット101からの指令あるいはリセット解除に応答して通常モードへ移行する。FAXユニット102においては、FAXコントロール部118がFAXユニット102の通常モードの処理を開始する。また、原稿読取部103は、通常モードに移行する。操作パネル104は、通常動作時の表示を行い、また、設定に応じて音声出力を行う。印字部107は、通常モードに移行する。
【００５１】
CPUの暴走状態が検出された場合の処理の流れ
次に、デジタル複合機1においてFAX暴走監視部123がFAXコントロール部118の暴走状態を検出した際の動作の流れを図２に沿って説明する。
【００５２】
図２は、この実施形態において、FAXコントロール部118の暴走状態が検出された際の各回路ブロックの処理の流れを、フローチャートの形式で示した説明図である。なお、図２のフローチャートの実行主体は、主としてFAX暴走監視部123の各回路ブロックであり、一部の処理以外はCPU（FAXコントロール部118）ではない点に留意されたい。即ち、処理の流れを理解し易くするため図２をフローチャート形式で示しているが、FAXコントロール部118が処理する主プログラム（以下、メインプログラム）あるいは副プログラム（以下、サブプログラム）の内容を全てのステップが示している訳ではない。
【００５３】
主スイッチが投入されて正常に動作が開始されるとき、FAX暴走監視部123のアドレス制御部126は、第1ROMに格納されたメインプログラムの処理が開始されるようFAXコントロール部118にリセットベクターを取得させる（STEP S201）。
【００５４】
メインプログラムは、所定期間内にウォッチドッグタイマー（以下、WATCHDOCタイマー）をリセットする指令をFAXコントロール部118（CPU）に実行させる（STEP S202）。これによって、CPUが暴走した場合はWATCHDOCタイマーがオーバーフローし、CPUのハングアップ状態が検出される。
【００５５】
WATCHDOCタイマーがオーバーフローしていない限り（STEP S203のNO）は、CPUは正常動作しておりハングアップしていないものとされる。FAX暴走監視部123によるCPUの再起動は行われず、結果的にサブプログラムの処理は行われない。
【００５６】
また、メインプログラムは、デジタル複合機1が通常モードで動作中かFAX夜間モードで動作中かを示す信号（状態信号）を所定の出力ポートに出力する（図１、図４には出力ポートを図示していない）。なお、この出力ポートは、この発明の状態出力ポートに相当する。FAXコントロール部118は、所定の入力ポートを読み取ることによってこの状態信号を知ることができる。この入力ポートは、この発明の状態入力ポートに相当する。
【００５７】
WATCHDOCタイマーがオーバーフローした場合（STEP S203のYES）、アドレス制御回路126は、FAXコントロール部118にサブプログラムの先頭を指すリセットベクターを取得させるように第２ROMをリセットベクター領域に動的に配置する（STEP S204）。前記リセット信号が解除されてリスタートすると（STEP S205）、FAXコントロール部118は第２ROMに格納されたサブプログラムを実行する（STEP S206）。
【００５８】
サブプログラムを実行するFAXコントロール部118は、状態入力ポートから状態信号を読み取り（STEP S207）、リスタート前の状態がFAX夜間モードか通常モードかを判断する（STEP S208）。その判断結果に応じて、処理すべき機能を選択する。
サブプログラムの機能として、次の５つが用意されている。
【００５９】
第１の機能：プログラムの実行履歴（ログ）を取る機能が用意されている。
この機能によって、リスタート後に再びトラブルが発生する場合、その原因の解析が容易になる。
【００６０】
第２の機能：夜間FAXモードの印字動作を抑制する機能が用意されている。具体的には、夜間FAXモードでファクシミリデータを受信した場合、受信したデータを画像メモリ111に保留しておき印字部107に印字させないようにする。夜間FAXモード中に電源を供給する対象は、FAXユニット102とMCUユニット101に限られる。
この機能により、夜間FAXモード中の電力消費をより抑制すると共に、印字部の制御あるいは動作に起因して暴走が発生する場合、再起動後に同一原因で暴走が繰り返されることを回避することができる。同一原因で暴走が繰り返される場合は、印字動作をさせるための電源投入が繰り返される虞があり、この観点からも無駄な電力消費を抑制することができる。
【００６１】
第３の機能：音声出力を無音にし、あるいは表示部のLEDおよびバックライトを消灯する機能が用意されている。
この機能により、無駄な電力の消費を抑制することができる。
【００６２】
第４の機能：メインプログラムを書き換えて更新あるいは再度書き込む機能が用意されている。
この機能によって、メインプログラムのバージョンアップ（ファームアップ）を行うこと、あるいは正規の内容を再度書き込むことが可能になる。暴走の原因がメインプログラムのバグに起因する場合は、バージョンアップによってその原因が解消される可能性がある。また、メインプログラムの内容が破壊された場合、正規の内容を再度書き込んで復旧できる可能性がある。
【００６３】
第５の機能：通信速度、通信プロトコル（通信方式）を通常モードから変更する機能が用意されている。
この機能によって、通信速度を多少犠牲にしても、より安定した状態で通信することにより、暴走が通信に起因する場合にその再発を防止できる可能性がある。具体的には、通常モードよりも低い通信速度で通信すること、データ化けのチェックをより厳重にして通信を行う。
【００６４】
フローチャートの説明を続ける。読み取られた状態信号が夜間FAXモードを示している場合（STEP S208のYES）、FAXコントロール部118は前述の第１〜５の機能を実行する（STEP 209）。一方、前記状態信号が通常モードの場合（STEP S208のNO）、FAXコントロール部118は前述の第１、第４および第５の機能を実行する（STEP S211）。そのようにサブプログラムが作られている。
【００６５】
ここで、ただし、通常モードでリスタートした場合、第４の機能（ファームアップ）の実行は留保しておき、夜間FAXモードに入ってから実行する。装置の使用頻度の少ない夜間にメインプログラムを書き換える（STEP S210）ためである。
以上が、暴走状態が検出されたときの動作の流れである。
【００６６】
ここで、前記の第５の機能についての説明を補足する。ファクシミリ通信においては、送信元の端末の信号送出レベルが異常に小さかったり経由する電話回線の状況によって大きなノイズが重畳されたりすることがある。このため、受信した信号波形の歪みが大きすぎて送信元の信号が受信側で認識できず誤検知する場合がある。場合によっては、ハングアップに至ることもある。このように、外的な要因（相手先の端末の状態や経由する電話回線の状況等）によってハングアップに至ったケースではこの外的な要因を取り除かない限り同じ動作(ハングアップと再起動)が繰り返される。
【００６７】
通常、通信のリトライを実行したり通信タイムアウトにより回線を切り離す処理を行ったりして、通信が無限ループに陥ることやハングアップに至ることを回避するようにしている。しかし劣悪な通信環境では、通信のリトライを繰り返しても正規の信号が受け取れずファクシミリ通信が完了できないことがある。このような状態に対処するため、受信端末側で受信感度を変更したり、信号が受け取りやすいように信号の検出時間を変更したりすることが考えられるが、夜間FAXモード中は操作者が装置の周囲にいないと想定されるので、人が介在して設定変更を行う対処は期待できない。前述の機能は、夜間FAXモード中に正規の信号が受信できない場合を想定し、サブプログラムの通信設定をメインプログラムのそれに比べて変えておく(受信感度を上げ、検知時間を長くする等の変更)ことにより、より安定した受信を可能にする意味がある。
【００６８】
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
【図面の簡単な説明】
【００６９】
【図１】本発明のファクシミリ装置の一例として、ファクシミリ機能を有するデジタル複合機の概略構成を示すブロック図である。
【図２】この実施形態において、FAXコントロール部118の暴走状態が検出された際の各回路ブロックの処理の流れを、フローチャートの形式で示した説明図である。
【図３】この実施形態において、CPUのアドレス空間を示す説明図である。
【図４】この実施形態に係る暴走監視部の詳細構成を示すブロック図である。
【符号の説明】
【００７０】
1：デジタル複合機
101：メインコントロールユニット、MCUユニット
102：FAXユニット
103：原稿読取部
104：操作パネル
105：表示部
106：操作部
107：印字部
108：電源部
109：NCU、通信ユニット
110：モデム
111：画像メモリ
112：RAM
113：ROM、第１記憶装置
114：ROM、第２記憶装置
115：夜間FAX制御部
116：FAX-MCU I/F 制御部
117：FAX画像処理部
118：FAXコントロール部
119：コントロール部
120：RAM
121：ROM
122：MCU画像処理部
123：FAX暴走監視部
124：ウォッチドッグタイマー、WATCH DOCタイマー
125：リセット信号発生部
126：アドレス制御部
130：音声出力部
131：主スイッチ
【図１】
2009194641.tif 000003
【図２】
2009194641.tif 000004
【図３】
2009194641.tif 000005
【図４】
2009194641.tif 000006