(57)【要約】【課題】書き換え可能不揮発メモリに内蔵されたプログラムの書き換えの失敗をリカバリする。【解決手段】画像形成装置本体１から給紙ユニット８の組み込みプログラムの書き換えの指示がされると、バージョンアップ用のデータが画像形成装置本体１から給紙ユニット８に送信されて、ＣＰＵ１４の内蔵ＲＯＭのプログラムやデータが書き換えられる。その際、ＣＰＵは書き換えデータを所定単位毎にチェックして、所定単位ごとに書き換え動作を実行し、さらに、書き換えを行ったデータのデータ量をチェックして、データ書き換え動作を実行する。書き換えに失敗した場合には、再度電源の投入をし直すことで、装置の初期化処理において前回のバージョンアップの成功したか判定され、不成功であれば、再度バージョンアップを行わせる旨をオペレータに知らせて再バージョンアップを行わせる。【選択図】図２
2005100362.tif 000002
【特許請求の範囲】
【請求項１】
データを書き換え可能に記憶するメモリと、
書き換え指示信号に応じて前記メモリの前記データの書き換え動作を実行するプロセッサとを備え、
前記プロセッサは、前記書き換え指示信号に応じて受信した書き換えデータを、所定単位毎にチェックして、所定単位ごとに書き換え動作を実行して、さらに、前記書き換えを行ったデータのデータ量をチェックして、データ書き換え動作を実行することを特徴とする電子装置。
【請求項２】
前記書き換えデータの前記所定単位毎のチェックとは、所定単位毎にデータのアドレスチェック及びデータのエラーチェックを実行する動作であることを特徴とする請求項１に記載の電子装置。
【請求項３】
前記書き換え動作を実行するためのプログラムを、前記メモリに記憶することを特徴とする請求項１または２に記載の電子装置。
【請求項４】
前記プロセッサは、前記書き換えデータの最後に、前記書き換えデータが正常であることを示す所定データを書き込むことを特徴とする請求項１乃至３のいずれか１項に記載の電子装置。
【請求項５】
前記所定単位のデータとは、少なくとも前記書き換えデータの１行分のデータであることを特徴とする請求項１乃至４のいずれか１項に記載の電子装置。
【請求項６】
前記データとは、前記電子装置を制御するためのプログラムまたはデータであることを特徴とする請求項１乃至５のいずれか１項に記載の電子装置。
【請求項７】
前記書き換え指示信号及び前記書き換えデータは、外部装置から送信されることを特徴とする請求項１乃至６のいずれか１項に記載の電子装置。
【請求項８】
印字データに基づいて画像形成を行う画像形成装置に接続される排紙装置を更に備え、
前記メモリに書き換え可能に記憶されるデータは、前記排紙装置を制御するためのプログラムデータであることを特徴とする請求項１乃至７のいずれか１項に記載の電子装置を用いたオプション装置。
【請求項９】
印字データに基づいて画像形成を行う画像形成装置に接続される給紙装置を更に備え、
前記メモリに書き換え可能に記憶されるデータは、前記給紙装置を制御するためのプログラムデータであることを特徴とする請求項１乃至７のいずれか１項に記載の電子装置を用いたオプション装置。
【請求項１０】
前記プロセッサは、前記書き換えデータを所定単位ごとにチェックした結果がエラーである場合には、前記書き換えデータの再送信を要求する信号を外部装置に出力することを特徴とする請求項１乃至９のいずれか１項に記載の電子装置。
【請求項１１】
前記プロセッサは、前記書き換えを行ったデータのデータ量をチェックした結果がエラーである場合には、前記書き換えデータの再送信を要求する信号を外部装置に出力することを特徴とする請求項１乃至９のいずれか１項に記載の電子装置。
【請求項１２】
前記プロセッサは、前記書き換えデータを所定単位ごとにチェックした結果がエラーである場合には、エラー発生を示す信号を出力して、前記書き換え動作を停止させることを特徴とする請求項１乃至９のいずれか１項に記載の電子装置。
【請求項１３】
前記プロセッサは、前記書き換えを行ったデータのデータ量をチェックした結果がエラーである場合には、エラー発生を示す信号を出力して、前記書き換え動作を停止させることを特徴とする請求項１乃至９のいずれか１項に記載の電子装置。
【請求項１４】
データを所定単位でメモリに書き込む工程と、
前記メモリに書き込む所定単位のデータをチェックする工程と、
前記書き込んだデータのデータ量をチェックする工程と
を有することを特徴とするメモリへのデータ書き換え方法。
【請求項１５】
前記所定単位のデータをチェックする工程とは、所定単位のデータのアドレスをチェックする工程と、所定単位のデータのエラーをチェックする工程とを含むことを特徴とする請求項１４に記載のメモリへのデータ書き換え方法。
【請求項１６】
更に、前記書き込んだデータが正常であることを示す所定データを書き込む工程を有することを特徴とする請求項１４または１５に記載のデータ書き換え方法。
【請求項１７】
更に、前記所定単位のデータをチェックした結果がエラーである場合には、前記書き換えデータの再送信を要求する信号を外部装置に出力する工程を有することを特徴とする請求項１４乃至１６のいずれか１項に記載のデータ書き換え方法。
【請求項１８】
更に、前記書き換えたデータのデータ量をチェックした結果がエラーである場合には、前記書き換えデータの再送信を要求する信号を外部装置に出力する工程を有することを特徴とする請求項１４乃至１６のいずれか１項に記載のデータ書き換え方法。
【請求項１９】
更に、前記所定単位のデータをチェックした結果がエラーである場合には、エラー発生を示す信号を出力して、前記書き換え動作を停止する工程を有することを特徴とする請求項１４乃至１６のいずれか１項に記載のデータ書き換え方法。
【請求項２０】
更に、前記書き換えたデータのデータ量をチェックした結果がエラーである場合には、エラー発生を示す信号を出力して、前記書き換え動作を停止する工程を有することを特徴とする請求項１４乃至１６のいずれか１項に記載のデータ書き換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば画像形成装置または画像形成装置のオプション装置において実行される制御プログラムのバージョンアップに関し、特に、バージョンアップ時の通信エラーを検出し、通信エラー発生時に再度バージョンアップ動作をさせ、バージョンアップを確実に遂行できる画像形成装置のオプション装置とそれを用いた画像形成装置およびプログラム制御機器のバージョンアップ方法に関するものである。
【背景技術】
【０００２】
複写機やプリンタ、ディジタル複合機などの画像形成装置には、たとえば用紙のソートやステープル等の機能を有するフィニッシャや原稿フィーダなどといったオプションで装着されるオプション装置が用意されているものがある。これらオプション装置には、ＣＰＵを搭載した制御基板を持ち、ＣＰＵの内蔵メモリや制御基板に搭載されたメモリに記録されたプログラムを前記ＣＰＵにより実行することで、本体との連携や動作等を制御するものがある。このようなオプション装置の制御プログラムに誤りが発見された場合には、そのプログラムの誤りを修正する必要があり、また、オプション装置の機能拡張のために制御プログラムを更新する必要が生じることもある。このような場合にプログラムを修正する方法としては、以下の二つが一般的であった。
（１）プログラム等を記録したＲＯＭなどの記録媒体を交換する方法。
（２）オプション装置の制御プログラム等を記録する媒体として書き換え可能な不揮発性媒体を用い、その媒体に記録されたプログラムを書き換える方法。
（２）の方法では、通信を通じてプログラムを送信し、フラッシュメモリに格納されたプログラムのバージョンアップを行う方法も提案されている（特許文献１等参照）。これら２つの方法の内でも、装置の停止時間が短く、遠隔的な保守等を実現できる点から、通信を利用した（２）の方法が有利であり、実際に用いられる場合も多くなっている。
【特許文献１】特開平９−９７２２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら装置に内蔵された制御プログラム等を書き換える（２）の方法では以下のような課題があった。
課題１：ユーザにプログラム全体を書き換えさせる場合には、ユーザのオペレーションミスや書き換え途中の電源オフなどによりプログラムの書き換えに失敗する可能性がある。プログラムの書き換えに失敗するとオプション装置が動作不能となる場合もある。
課題２：通信によりプログラムのバージョンアップを行う場合、通信エラー等が発生し、それによってプログラムやデータの一部が欠損すると結果的にプログラムの書き換え（バージョンアップ）に失敗し、オプション装置が動作不能となる場合があった。
【０００４】
本発明は上記従来例に鑑みて成されたもので、従来のプログラム書き換え可能な装置及び書き換え方法を改良することを目的とする。また、通信によってプログラムやデータをバージョンアップする場合に、より確実にバージョンアップを実行可能な装置及び書き換え方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、以下のような構成を有する。
【０００６】
電子装置であって、データを書き換え可能に記憶するメモリと、
書き換え指示信号に応じて前記メモリの前記データの書き換え動作を実行するプロセッサとを備え、
前記プロセッサは、前記書き換え指示信号に応じて受信した書き換えデータを、所定単位毎にチェックして、所定単位ごとに書き換え動作を実行して、さらに、前記書き換えを行ったデータのデータ量をチェックして、データ書き換え動作を実行する。
【０００７】
あるいは、メモリへのデータ書き換え方法であって、
データを所定単位で前記メモリに書き込む工程と、
前記メモリに書き込む所定単位のデータをチェックする工程と、
前記書き込んだデータのデータ量チェックする工程とを有する。
【発明の効果】
【０００８】
本発明によれば、書き換え指示信号に応じて受信した書き換えデータを、所定単位毎にチェックして、所定単位ごとに書き換え動作を実行して、さらに、前記書き換えを行ったデータのデータ量をチェックして、データ書き換え動作を実行することで、書き換えられるデータの一部が欠損した場合でも再度の書き換えが促され、安全なプログラムの書き換えが可能となる。また、書き換えのためのデータの量をチェックすることで、データの欠落によるデータの書き換えの失敗を未然に防止できる。
【発明を実施するための最良の形態】
【０００９】
［第１実施形態］
以下、本発明の実施の形態について図面を参照して説明する。図１は、第１の実施形態に係わる画像形成装置の構成を示す概略断面図である。画像形成装置は、本実施形態ではプリンタとしているが、複写機や複合機としてもまったく同様に本発明を適用できる。
【００１０】
＜画像形成装置の構成および画像形成動作＞
画像形成装置１００は、画像形成装置本体１と、給紙ユニット８および排紙ユニット１２という２つのオプション装置とから構成される。画像形成装置本体１は、電子写真処理部２と、搬送部３と、画像形成制御基板（本体コントローラ）４と、オペレーションパネル１８とを有する。電子写真処理部２は、電子写真方式により画像を用紙上に形成する。搬送部３は、給紙ユニット８から電子写真処理部を経由して排紙ユニット１２へと用紙を搬送する紙搬送経路を構成する。画像形成制御基板（本体コントローラ）４は、画像形成部ＣＰＵ５が搭載されており、ＣＰＵ５自身や基板４に搭載されたメモリに格納されたプログラムをＣＰＵ５により実行することで、画像形成処理やオプション装置との連携等、画像形成装置本体１に係る制御を実現する。画像形成制御基板（本体コントローラ）４は、給紙ユニット８とデータを交換するための通信部６や、排紙ユニット１２とデータを交換するための通信部７を備えている。オペレーションパネル１８は、画像形成制御基板（本体コントローラ）４とオペレーションパネル制御信号１９により接続されている。これによって、オペレーションパネル１８に装置状態に応じた表示を行ったり、オペレータによる入力を行わせることができる。
【００１１】
さらに画像形成装置本体１は、コンピュータ２０と通信ライン２１により接続されている。これによって、コンピュータ２０から印刷のためのデータを画像形成装置１００に送信して印刷させることや、書き換え用のプログラムやデータを画像形成装置１００にダウンロードすることができる。
【００１２】
給紙ユニット８は、紙センサ１１および給紙ユニット制御基板（給紙ユニットコントローラ）９を有しており、それには給紙ユニットＣＰＵ１０が搭載されている。給紙ユニットＣＰＵ１０は、画像形成部ＣＰＵ５による制御の下で、給紙ユニット８を制御する。
【００１３】
排紙ユニット１２は、各排紙ビンに用紙が満載されていることを検知するトレイ満載検知センサ１５，１６，１７と、排紙ユニット制御基板１３とを有する。排紙ユニット制御基板１３には、画像形成部ＣＰＵ５に制御下で排紙ユニット１２を制御する排紙ユニットＣＰＵ１４が搭載されている。
【００１４】
上記構成において画像形成装置１００は、コンピュータ２０からの指令に従って画像形成動作を実行する。画像形成装置１００は、画像形成に必要な紙の枚数を計算し、給紙ユニット８に対して用紙枚数等を含む紙搬送情報を通信部６を通じて送信し、給紙を予約する。
【００１５】
また画像形成装置１００は、コンピュータ２０からの指定に従い、排紙ユニット１２に対して、排出先のビンの指定などを含む排紙状態を規定するための紙搬送情報を通信部７を介して送信し、排紙を予約する。
【００１６】
給紙ユニット８は、給紙の予約のために受信した紙搬送情報に従い、給紙を開始する。給紙された紙は、紙搬送部３によって画像形成装置本体１に搬送される。給紙ユニット８は、給紙された紙がセンサ１１を抜けた時点で、紙が給紙カセットに存在するかどうかを判定する。
【００１７】
画像形成装置本体１に搬送された紙は、電子写真処理部２によって画像が形成され、排紙ユニット１２へ排紙される。排紙ユニット１２は、排紙の予約のために受信した紙搬送情報に従い、画像形成装置本体１から搬送される紙を指定にしたがってビンへと排出する。
【００１８】
１枚の紙が完全にビン上に搬出されたタイミングで、排紙ユニット１２は、満載センサ１５−１７の出力信号を確認して、そのビンに用紙が満載されているか否かを判定する。 
給紙ユニット８は、紙無しが発生したら、その状況を通信部６を通じて画像形成装置本体１に通知する。排紙ユニット１２は、満載が発生したら、その状況を通信部７を通じて画像形成装置本体１に通知する。
【００１９】
以上のようにして、画像形成装置１００は動作し、画像形成装置本体１とオプションの給紙ユニット８および排紙ユニット１２は連携している。もちろん、給排紙の予約や紙切れや満載の通知に限らず、そのほかのオプションユニットの状態の画像形成装置本体１への通知や、画像形成装置本体１からオプションユニットへの命令等の送信も必要に応じて行われる。
【００２０】
＜オプション装置の制御プログラムの書き換え処理＞
上記構成の画像形成装置において、オプション装置である給紙ユニット８及び排紙ユニット１２のそれぞれの制御基板（コントローラ）９、１３に搭載されたメモリあるいはそれぞれのＣＰＵ１０、１４内蔵のメモリに格納されたプログラムやデータを、以下のようにして書き変えることができる。なお本実施形態では、プログラムはＣＰＵに内蔵されたフラッシュメモリに格納されている。
【００２１】
ＣＰＵ５は、オペレーションパネル１８を通じて、オペレータがバージョンアップ作業を実施することを知る。なお、上述したプログラムやデータの書き換えをバージョンアップと呼ぶ。バージョンアップ作業が実行されると、ＣＰＵ５は、オペレーションパネル１８上にバージョンアップ作業の状況を表示する。そしてＣＰＵ５は、バージョンアップ作業が正常に終了したかどうかをオペレーションパネル１８を使用してオペレータに通知する。
【００２２】
オペレータは、オペレーションパネル１８によりバージョンアップの作業にトラブルが生じたことを認識した場合には、再度バージョンアップ作業をやり直す。
【００２３】
図２に各ＣＰＵと入出力要素との関連を説明する。オペレータの操作等に応じて、外部コンピュータ２０より通信部２１を通じて印刷命令がＣＰＵ５に伝えられる。ＣＰＵ５は、電子写真処理部２を制御し、画像形成処理を行う。ＣＰＵ５は、通信部６を通じて、給紙ユニット８に対して紙搬送情報を送信し、給紙を予約する。ＣＰＵ５は、通信部７を通じて排紙ユニット１２に対して紙搬送情報を送信して排紙を予約する。
【００２４】
通信バッファ３１，３２，３３は、複数のＣＰＵが同一の通信ラインに接続できるようにするためのインターフェースＩＣである。通信部６および通信部７を構成する通信線には、それぞれ終端抵抗３４，３５が接続されている。バッファ３６は、オペレーションパネル用のバッファである。バッファ３７は、通信ライン２１のインターフェースＩＣである。ＣＰＵ５，ＣＰＵ１４，ＣＰＵ１０は、プログラムを記憶するフラッシュメモリと処理を実行するためのＲＡＭと通信を制御する通信Ｉ／Ｆ を内蔵する。
【００２５】
ＣＰＵ１０は、通信部６を通じて紙搬送情報を取得する。この紙搬送情報のなかには、給紙ユニット８から給紙すべき紙の枚数が何枚であるかの情報が含まれている。ＣＰＵ１０は、給紙動作を制御するとともに、給紙ユニット８の内部に紙が存在するかどうかをセンサ１１の値を入力ポートから入力し、紙無しが発生しているかどうかを判断する。
【００２６】
ＣＰＵ１４は、通信部７を通じて紙搬送情報を取得する。この紙搬送情報のなかには、排紙オプション１２に対して各トレイへ排出すべき紙の枚数が何枚であるかの情報が含まれている。ＣＰＵ１４は、排紙動作を制御するとともに満載状況センサ１５，１６，１７の値を入力ポートから入力し、満載が発生しているかどうかを判断する。
【００２７】
図３はＣＰＵ１０に内蔵されたフラッシュメモリのアドレスマップである。このＣＰＵ１０内蔵のフラッシュメモリは、消去再書込み可能な不揮発性メモリであり、一定サイズを単位として消去でき、再書込みすることができる。アドレスＦＥ００００（１６進表現。以下同様である。）〜ＦＥ２ＦＦＦには通信部６等により発生する割り込みのための割り込み処理プログラムが格納される。アドレスＦＥ３０００〜ＦＦ３ＦＦＦには紙搬送制御プログラムが格納される。アドレスＦＦ４０００〜ＦＦ９ＦＦＦにはデータテーブルが格納される。アドレスＦＦＡ０００〜ＦＦＦＦＦＦにはバージョンアッププログラムが格納される。通信でバージョンアップを実行する場合にはアドレスＦＥ００００〜ＦＦ９ＦＦＦが書き換えられる。実際の給紙動作はＦＥ００００〜ＦＦ９ＦＦＦに格納されたプログラムとデータとにより行われる。
【００２８】
（画像形成装置本体における処理手順）
図４乃至図７のフローに示す手順により本発明に係る画像形成装置におけるプログラムのバージョンアップ処理は遂行される。各図を参照してその内容を説明する前に、まずそれらの手順の関係を説明する。図４は、画像形成装置本体１のＣＰＵ５により実行される手順であり、印刷処理の他、オペレータによりバージョンアップの指示を受けた場合の処理が記載されている。これにより、たとえば装置のメーカから供給されるバージョンアップされたプログラムへと現行のプログラムを書き換えることができる。図５は、図４の手順による制御の下でバージョンアップをするオプションユニットの動作を示す。図５においては、たとえばステップＳ１２１から開始される処理は、ステップＳ１２４、Ｓ１２５を除いて図３のバージョンアッププログラムエリアに格納される。その一部として図７に記載されたプログラムもバージョンアッププログラムエリアに格納されている。ただし、図７においても、ステップＳ１６５以降は紙搬送制御プログラムエリアに格納されても良い。また、図５のステップＳ１２４，Ｓ１２５は紙搬送制御プログラムエリアに格納される。
【００２９】
図７は、オプションユニットの立ち上がり時に行われるオプションユニット制御ＣＰＵにより処理を表したもので、プログラムのバージョンアップが正常に行われなかった場合に再度バージョンアップする手順を示す。図６は、オプションユニットが立ち上がり、再度のバージョンアップを行う場合に、その処理に対応して行われる画像形成装置本体１のＣＰＵ５における処理を示す。特に図７の手順に対応したプログラムは、そのうちの再バージョンアップ処理に係る部分がバージョンアッププログラムエリアに格納されており、バージョンアップの対象とはならない。そのため、オプションユニットの制御プログラムのバージョンアップが正常に行われなかった場合でも正常に実行可能である。
【００３０】
まず図４に従って手順を説明する。図４は、ＣＰＵ５によるバージョンアップ処理を含む処理フローチャートである。
Ｓ１０１：電源オンにより装置が立ち上がる。本体１の電源電力は給紙ユニット８や排紙ユニット１２というオプションユニットにも供給され、それらオプションユニットも立ち上がる。
Ｓ１０２：画像形成装置本体１と給紙ユニット８と排紙ユニット１２の初期化を実行する。初期化が終了すると画像形成可能な状態（レディ状態）となる。給紙ユニット８または排紙ユニット１２のプログラムに不具合（バージョンアップが正常に完了しなかったことなど）が発見され、その通知を受けた場合には、ステップＳ１０２のシーケンスの中でバージョンアップを再実行する。この部分についての詳細は図６に示す。
Ｓ１０３：オペレータがオペレーションパネル１８を使用してバージョンアップ開始指示を実行したかどうかを監視する。バージョンアップ開始指示がなければ通常の印字動作を実行する。なお、ステップＳ１０２の処理と、ステップＳ１０３以下の処理とを独立したタスクとし、ステップＳ１０３以下はコンピュータ２０から何らかの信号を受信した場合に起動されるようにしてもよい。
Ｓ１０４：バージョンアップ指示を受信していない場合には、印刷命令が外部コンピュータ２０から到着したかどうかを監視する。
Ｓ１０５：印刷命令に従って印刷処理を実行する。印刷処理が終了したらステップＳ１０３に戻り、バージョンアップ開始指示または印字命令を待つ。 
Ｓ１０６：ステップＳ１０３においてバージョンアップの指示を受信していると判定された場合、バージョンアップを指示されたオプションユニットに対してバージョンアップの準備を実行するための準備コマンドを発行する。
Ｓ１０７：オプション側のバージョンアップ準備が整ったら、たとえばオペレーションパネル１８にバージョンアップファイルの送信を促すメッセージを表示するなどして、オペレータに対してコンピュータ２０からのバージョンアップファイルの送信を促す。バージョンアップファイルとは、更新後のフラッシュメモリの内容を含むファイルである。
Ｓ１０８：外部コンピュータ２０からのバージョンアップファイルの送信が始まるのを待つ。
Ｓ１０９：外部コンピュータ２０からのバージョンアップファイルをそれを構成する一定サイズのデータのまとまりごとに受信する。
Ｓ１１０：ステップＳ１０９で受信したデータがファイル送信の終了を通知するためのデータ（終了通知データ）であるかを判断する。
Ｓ１１１：終了通知データ以外の場合には、受信したデータをバージョンアップ対象のオプションユニットに送信する。このデータによりオプションユニットはバージョンアップすなわちＲＯＭに格納したプログラムやデータの書き換えを実行する。
【００３１】
（給紙オプションユニットにおけるバージョンアップ処理手順）
図５は、ＣＰＵ１０のバージョンアップ実行時のフローチャートである。画像形成装置本体１の電源オンに連動して給紙オプションが電源オンされた時点からＣＰＵ１０により実行開始される。Ｓ１２１：画像形成装置本体１の電源オンに連動して給紙ユニットが電源オンされる。
Ｓ１２２：ＣＰＵ５からの指示に従って給紙ユニット８の初期化を実行する。給紙ユニット８のプログラムに不具合が発見されたら再度バージョンアップを実行するが、その詳細は、図７にて説明する。不具合が発見されなければ、通常の初期化処理のみを行う。
Ｓ１２３：ＣＰＵ５からバージョンアップ準備コマンドが到着したかを監視する。
Ｓ１２４：またＣＰＵ５から給紙命令が到着したかを監視する。
Ｓ１２５：給紙命令が到着したら、給紙処理を実行する。
Ｓ１２６：バージョンアップ準備コマンドが到着したら、バージョンアップ処理が中断し、プログラムに不具合が発生することに備えて、プログラムが正常に動作できるかどうかを判定するための暗号をクリアする。ここで暗号もＣＰＵ１０に内蔵された消去再書込み可能な不揮発性メモリに記憶されている。なお、ここでは暗号としているが、たとえば書き換え対象となる領域を含むメモリの領域について計算されたＣＲＣ等の誤り訂正符号を保存しても良い。ステップＳ１２６では、計算対象の領域についてこの誤り訂正符号を再計算し、誤りが検出された場合には不具合があるものと判断できる。また、暗号と呼んでいるが、情報の秘匿を目的とするわけではないので、必ずしも暗号である必要はない。この暗号は、たとえば、図３のバージョンアップ対象領域の末尾の領域５０１に保存される。
Ｓ１２７：通信による書き換えエリアであるＦＥ００００ からＦＦ９ＦＦＦまでの範囲をクリアする。
Ｓ１２８：バージョンアップの準備が完了したことをＣＰＵ５に通知する。
Ｓ１２９：ＣＰＵ５ から実際のバージョンアップデータの受信を始める。
Ｓ１３０：受信したバージョンアップデータをＦＥ００００ からＦＦ９ＦＦＦまでの範囲に順次書き込む。なお、バージョンアップ処理の詳細については、図９を用いて後で説明する。
Ｓ１３１：すでに受信した行数があらかじめバージョンアップに必要な行数に達しているかどうかを判断する。すなわち、ステップＳ１３１では、受信すべき量のデータを受信できたか否かが判断される。たとえば、バージョンアップの際には、割り込みプログラムエリア、紙搬送制御プログラムエリア、データテーブルエリアをすべて一括して書き換えるように決めておけば、そのデータ量は一定であるから、バージョンアップに必要なデータを全て受信できたか否かの判定は、ステップＳ１３１で受信したデータ量（行数）を計算すれば容易に行える。
Ｓ１３２：受信データが必要行数書き込まれたと判断したら、バージョンアップが完了したとみなす。そして、受信データの最終行データにプログラムが正常に動作できるかどうかを判定するための暗号を書き込む。前述したように、暗号としてバージョンアップ対象領域を対象とする誤り訂正符号を計算し、それを書き込んでもよい。また、暗号に限らず、例えばオプション装置の装置コード情報などを書き込んでも良い。
【００３２】
（給紙オプションユニットにおける不具合発生時のバージョンアップ処理手順）
図６において、給紙ユニット８のプログラムに不具合が発見された場合に再度バージョンアップを実行するためのＣＰＵ５のフローチャートを示す。図６は、図４のＳ１０２の一部を詳細に説明しているものである。特に給紙ユニット８のプログラムに不具合があるかどうかを確認する部分を説明する。排紙オプション１２へのアクションも同一のフローチャートで処理できる。
Ｓ１４２：給紙ユニット８からプログラムに不具合が発生しているか正常であるかのステータスを取得する。不具合が無ければステップＳ１５１へ分岐する。このステータスは、後述する図７の手順において、給紙ユニット８が画像形成装置本体１に対して送信する。Ｓ１４３：給紙ユニット８のプログラムに不具合が発生している旨の通知を受信した場合には、給紙ユニット８のバージョンアップが必要である旨を示すメッセージをオペレーションパネルに表示する。
Ｓ１４４：そして、オペレータによるバージョンアップの指示を待つ。バージョンアップの指示が入力されたなら、バージョンアップをスタートさせるためのステップＳ１４５へ分岐する。
Ｓ１４５：この時点でＣＰＵ５は、給紙ユニット８に対し、これからバージョンアップファイルを給紙ユニット８に通知するための準備を給紙ユニットにさせるべく、準備コマンドを給紙ユニット８に送信する。
Ｓ１４６：オペレーションパネル上には、バージョンアップファイルのダウンロードの開始指示を待機している旨を表示する。
Ｓ１４７：外部コンピュータ２０からのデータ受信の開始を監視する。
Ｓ１４８：データ受信がスタートしたら、データを受信する。
Ｓ１４９：データがバージョンアップファイルの末尾を示す最終データであるかどうかを判定する。
Ｓ１５０：最終データ（すなわちデータの終了を示すデータ）でなければ、データを給紙ユニット８に送信する。
Ｓ１５１：最終データまでの通信が終了し、バージョンアップファイルの受信を終了したなら、給紙ユニット８のメカ初期化の終了を待つ。
【００３３】
図７は、給紙ユニット８の制御プログラムの不具合を初期化処理において検査し、発見された場合には再度バージョンアップを実行するためのＣＰＵ１０により実行される手順のフローチャートを示す。図７は、図５のＳ１２２の一部を詳細に説明しているものである。
【００３４】
ＣＰＵ１０は、まず給紙ユニット８のプログラムが正常であるかどうかを判定するために、暗号を読み取る（Ｓ１６２）。そして、読み取った暗号がただしければ（暗号が誤り訂正符号であれば、誤りが検出されない場合）プログラムは正常であると判断する（Ｓ１６３）。そして、プログラムが正常であればその旨を画像形成装置本体１のＣＰＵ５に通知し（Ｓ１６４）、不具合が発生していればその旨を画像形成装置本体１のＣＰＵ５に通知する（Ｓ１６７）。図６の手順は、これらの通知を受信した時点から開始されている。 
プログラムが正常であれば、メカの初期化を実行する（Ｓ１６５）。一方プログラムに不具合があった場合には、ＣＰＵ５からバージョンアップ準備コマンドが到着するのを待つ（Ｓ１６８）。
【００３５】
このあと、準備コマンドを受信して暗号の領域及び書き換え対象の領域をクリアし（ステップＳ１２６〜Ｓ１２８）、バージョンアップデータを受信して消去再書き込み可能型不揮発メモリ（フラッシュメモリ）に書き込む（ステップＳ１２９〜Ｓ１３２）シーケンスは図５と同一である。そして正常に暗号を書き込めたら（ステップＳ１３３）、Ｓ１６４に戻って、ＣＰＵ５にプログラムが正常になっていることを通知する（Ｓ１６４）。その後、メカ初期化を実行し（Ｓ１６５）、画像形成装置本体１のＣＰＵ５に終了を通知する（Ｓ１６６）。
【００３６】
以上の手順により、本実施形態の画像形成装置は、制御プログラム等のバージョンアップを行った際に、その処理が失敗していたとしても、次回の装置の立ち上げ時にその失敗を検出し、バージョンアップの再試行を行うことができる。そのために、バージョンアップの失敗によってバージョンアップの体操となった装置が全く動作不能となるといった状態を防止できる。
【００３７】
（バージョンアップ処理の詳細）
次に図９を用いて、図５及び図７におけるＳ１３０のバージョンアップデータを消去再書き込み可能型不揮発メモリ（フラッシュメモリ）に書き込む方法について詳細に説明する。
【００３８】
ＣＰＵ１０は、ＣＰＵ５から送信されるコマンドに基づいて、予め定められた行数のバージョンアップデータ、つまり、図３におけるアドレスＦＥ００００〜ＦＦ９ＦＦＦの割込みプログラム、紙搬送制御プログラム、データ・テーブルのデータを書き込む作業を行う。
【００３９】
まず、１行分のデータをフラッシュメモリに書き込み、１行分の書き込みデータのチェックサムを行う（Ｓ２００）。なおデータ１行毎のチェックサムデータはＣＰＵ５から１行分のデータが送信される毎に送信されてくる。そして、チェックサムの結果がＯＫ、つまりＣＰＵ５から送信されてくるチェックサムデータと一致するかどうかをチェックする（Ｓ２０１）。一致すれば、書き込みデータの行数をカウントアップした後、Ｓ１３２に進む。なお、チェックサムが正しくない場合には、ＣＰＵ５に対してデータの再送信を要求する信号を出力してＳ１２９に戻る。
【００４０】
ここでカウントするデータの行数とは、たとえば、画像形成装置本体１と給紙ユニット８とを接続する通信部６による通信方式等に依存して決まる、一度に受信するデータの単位をいう。たとえば、１６ビットのパラレル通信で接続されていれば、１行のデータ量は１６ビットということができる。書き換えるべきデータ量をこの１行当たりの単位データ量で除算した値が、受信すべき行数となる。なお、単に受信したデータ量を積算（カウントアップ）するものであってもよい。つまり、バージョンアップデータを１行毎にチェックサムし、１行毎に正しくデータが通信されているかをチェックしている。そして、その後さらに、図５及び図７のＳ１３２で説明されている、通信データの行数のチェックを実行して、正しくデータが通信できているかをより確実にチェックしている。
【００４１】
このように、バージョンアップデータを１行毎にチェックし、かつ、データの行数までチェックしている理由について図１０を用いて説明する。
【００４２】
図１０は画像形成装置及び通信装置の通信制御に関わる制御ブロック図である。画像形成装置１の画像形成制御基板（本体コントローラ）４には、ＰＣデータ処理部４０、オプションユニット制御部５０、オプション通信制御部６０が設けられており、ＰＣデータ処理部４０は、ＰＣからダウンロードしたバージョンアップデータを受信処理して、給紙ユニットや排紙ユニットを制御するためのオプションユニット制御部に送信する機能を有しており、オプションユニット制御部５０は、ＰＣデータ処理部からのバージョンアップデータを受信して、オプション装置のいずれにデータを送信するかを制御する機能を有している。オプション通信制御部６０は、オプションユニット制御部５０によって決定されたオプション装置（給紙ユニットまたは排紙ユニット）に対するデータ通信を制御する機能を有している。
【００４３】
つまり、ＰＣからダウンロードされたバージョンアップデータは、ＰＣデータ処理４０、オプションユニット制御部５０、オプション通信制御部６０という複数の処理制御部を介在することによって、メモリMにデータを蓄積しながら、オプションユニットに送信される。処理制御部を複数介在してメモリMのデータが通信されるために、処理の各段階において、メモリMとのデータ送受信の際にデータに異常が発生してしまったり、データに欠落が発生する確率が高くなってくる。
【００４４】
より具体的には、ＰＣデータ処理部４０によるデータ受信及び送信処理のスピードのほうが、オプション通信制御部６０の処理スピードよりも早いために、オプション通信制御部への送信処理されるデータがコントローラ４内の所定量のメモリMに蓄積されて送信処理待ちの状態になる。メモリMには所定量以上のデータは蓄積できないため、メモリＭに所定量データが蓄積されるとＰＣデータ処理部４０は一旦ＰＣからのデータ受信をストップする。そして、オプション通信制御部６０におけるデータ処理が進むと、再度ＰＣからのデータ受信を再開してメモリＭからオプション通信制御部６０に対してデータの送信を再開する。このデータ受信のストップと再開を繰り返していると、ストップしたときや再開したときにメモリMに受信されるデータ、またはメモリMから送信されるデータに欠落が発生しやすくなる。ＰＣから送信されてくるデータの量が多い場合には、オプション通信制御部６０における処理のほうが遅いために、データ通信のストップ及び再開の頻度が多くなるので、メモリMとのデータ送受信の過程でデータの欠落等の不具合を引き起こす可能性がでてくるのである。
【００４５】
そのため、例えば、一般的に行われている、バージョンアップデータの先頭のアドレスまたはデータと、最終のアドレスまたはデータとをチェックすることによって送信データのエラーを検出する方法では、途中のデータ行に欠落が発生した場合であっても、送信データが正しいと判定してしまうため、そのままバージョンアップされてオプション装置を制御してしまうことになり、動作に不具合が生じてしまう。
【００４６】
これに対して、上記に説明したような、バージョンアップデータを１行毎にチェックサムし、さらに、その後、通信データの行数のチェックを実行することによって、通信途中にデータが欠落した場合でも確実にデータのエラーを検出することができるのである。なお、図９において、バッファ３１，３７、給紙ユニット８、給紙ユニット制御基板９、排紙ユニット１２、排紙ユニット制御基板１３については、図２において説明しているので説明は省略する。
【００４７】
なお第１実施形態は、画像形成装置のオプション装置を例に説明されているが、もちろん、画像形成装置本体でも同一の制御が可能であることはいうまでもない。また排紙ユニット１２についても同様の手順によりフラッシュメモリのプログラム等の書き換えが可能である。
【００４８】
また、図５および図７のＳ１３１において、受信した行数があらかじめバージョンアップに必要な行数に達しているかどうかを判断した結果、必要な行数に達していない場合に、再度ＣＰＵ５からデータを受信しなおすようにしているが、例えば、ＣＰＵ５に対して、コンピュータ２０または画像形成装置のオペレーションパネルなどにエラーを表示するための信号またはデータを再送信の要求を促す表示をおこなうための信号を出力するようにしてもよい。
【００４９】
また、図９のＳ２０１において、チェックサムの結果がエラーである場合にＣＰＵ５に対してデータを再送信するよう要求する信号を出力するようにしているが、例えば、ＣＰＵ５に対して、コンピュータ２０または画像形成装置のオペレーションパネルなどにエラーを表示するための信号またはデータを再送信の要求を促す表示をおこなうための信号を出力するようにしてもよい。
【００５０】
［第２実施形態］
第２実施形態における各ＣＰＵと入出力要素との関連は第１実施形態と同一である。第１実施形態と比較し、アドレスチェックを行う点で異なっている。第１の実施例では、１行毎にチェックサムを実行した、本実施例では、さらに１行毎にアドレスをチェックを実行する。
【００５１】
図８を使って、通信の誤りチェックの方法を説明する。なお図８のプログラムについても図５と同様に、ステップＳ１２４、Ｓ１２５以外のステップは図３のバージョンアッププログラムエリアに格納される。なお、図５と共通するステップについては説明を省略する。
Ｓ１２９：バージョンアップデータをＣＰＵ５から受信する。
Ｓ１７１：通信データ行数を計算する。行数から受信すべきアドレスを計算する。たとえば、データを図３の書き換え対象の領域の先頭から順次受信するとすれば、先頭のアドレスは予め分かっているので、その値に１行数分の受信したデータ量を加算すれば、次に受信すべきアドレスが計算できる。
Ｓ１７２：受信すべきアドレスと実際に受信したアドレスを比較する。受信データには、そのデータのアドレスが含まれているので、ステップＳ１７１で計算したアドレスを受信したアドレスと比較すればよい。
Ｓ１３０：比較の結果一致していたら、フラッシュメモリにデータを書き込む。なお、ここの書き込みシーケンスは第１の実施例で説明したものと同様であるため省略する。（図９参照）
Ｓ１７３：比較の結果アドレスに不一致が発生したら 、エラー発生をＣＰＵ５に通知する。
Ｓ１７４：エラーの場合には、その後無限ループとし、以下のすべての動作を停止する。 
以上の手順により、各データ行毎にアドレスチェック行い、受信するバージョンアップ用のデータの誤りを判定し、より安全にバージョンアップ動作を行うことができる。なお、図８と同様の変更を、図７にも施せば、給紙ユニット８の初期化処理における再バージョンアップ処理においても、図８と同様にステップＳ１７１〜ステップＳ１７４を、ステップＳ１２９とステップＳ１３０との間に挿入すれば、アドレスのチェックを行うことができ、より安全に再バージョンアップを行うことができる。
なお、本実施例では、１行毎にアドレスチェックを行っているが、行数は送信するデータ量に対するエラー発生率等にもとづいて適宜変更可能である。
【００５２】
なお、Ｓ１７３において、アドレス不一致が発生した場合に、エラー発生をＣＰＵ５に通知しているが、データ再送信の要求信号をＣＰＵ５に出力するようにしてもよい。
【００５３】
［第３実施形態］
第３実施形態における各ＣＰＵと入出力要素との関連は第１実施形態と同一である。第３実施形態は第１実施形態と比較し、ダウンロードされるファイルが複数に分割されている点で相違する。
【００５４】
本実施形態では、外部装置２０が記憶しているバージョンアップファイルは、図３で示された割り込み処理部の第１ファイルと紙搬送制御の第２ファイルとデータテーブルの第３ファイルに分割されている。そしてこの３個のファイルをダウンロードしてはじめてバージョンアップが完了する。この場合、通信行数を確認すれば、３個のファイルがダウンロードされたかどうかを容易に判定できる。そして、オペレータのミスによるバージョンアップを未然に防止することが可能となる。
【００５５】
以上、本発明の最良の形態として画像形成装置を説明した。しかし、画像形成装置のみならず、消去書き込み可能メモリに記憶されたプログラムやデータ（いわゆる広義のファームウエア）を書き換えることが可能な装置一般について本発明を適用することができる。
【００５６】
また、バージョンアッププログラムは書き換えの対象とならないために、バージョンアッププログラムについては書き換え不可能なＲＯＭに記録しても良い。
【００５７】
さらに、上記実施形態では、データを外部の装置から受信してそれによりフラッシュメモリの内容を書き換えているが、画像形成装置にストレージを備え、そのストレージから読み込んだデータによりフラッシュメモリを書き換える場合にも、本発明を適用することができる。
【図面の簡単な説明】
【００５８】
【図１】第１実施形態の画像形成装置の構成図
【図２】第１実施形態の画像形成装置のＣＰＵ接続図
【図３】第１実施形態における画像形成装置のＣＰＵ１０が内蔵するメモリのメモリーマップの図
【図４】第１実施形態の画像形成装置のＣＰＵ５により電源立ち上げ後に実行される処理のフローチャート
【図５】第１実施形態の画像形成装置のＣＰＵ１０により実行されるバージョンアップ処理のフローチャート
【図６】第１実施形態の画像形成装置のＣＰＵ５により実行される給紙ユニットにエラー発生時の処理のフローチャート
【図７】第１実施形態の画像形成装置のＣＰＵ１０により実行される再バージョンアップ処理のフローチャート
【図８】第２実施形態の画像形成装置のＣＰＵ５により実行される誤り検出処理のフローチャート
【図９】第１実施形態のＣＰＵ１０により実行されるバージョンアップ処理のフローチャート
【図１０】第１実施形態の画像形成装置の画像形成制御基板内の構成図
【図１】
2005100362.tif 000003
【図２】
2005100362.tif 000004
【図３】
2005100362.tif 000005
【図４】
2005100362.tif 000006
【図５】
2005100362.tif 000007
【図６】
2005100362.tif 000008
【図７】
2005100362.tif 000009
【図８】
2005100362.tif 000010
【図９】
2005100362.tif 000011
【図１０】
2005100362.tif 000012