(57)【特許請求の範囲】
【請求項１】
第１の記憶手段に記憶された制御用のファームウェアにしたがって動作を行う電子制御装置であって、
この電子制御装置は、ファームウェアバージョンアップ機能として、外部の上位機器から入力される新しいファームウェアをダウンロードして第２の記憶手段に一時記憶し、この第２の記憶手段に一時記憶された前記新しいファームウェアを、前記従来のファームウェアが存在していた前記第１の記憶手段に書き込むファームウェア書込み手段によって前記新しいファームウェアの書き込みを行なう電子制御装置において、
この電子制御装置は、ソフトウェア的に電源オン時のプログラムが動作を開始するプログラムリセットベクタに分岐するプログラムリセット分岐手段を具備し、
前記プログラムリセット分岐手段には、前記ファームウェア書込み手段へアクセスして、当該電子制御装置のマルチタスクＯＳ上で起動しているプログラムを終了させると共に、前記新しいファームウェアの書き込みが終了するまで前記マルチタスクＯＳを動作させず、この新しいファームウェアの書き込みの終了後、前記第１の記憶手段にあるマルチタスク起動プログラムへ分岐する機能が含まれることを特徴とする電子制御装置。
【請求項２】
前記ファームウェアのバージョンアップに関する各種情報を記録するバージョンアップ情報記憶手段と、
このバージョンアップ情報記憶手段に記憶された前記バージョンアップに関する各種情報を読み出すバージョンアップ情報読出し手段と、
このバージョンアップ情報読出し手段によって読み出された前記バージョンアップに関する各種情報にしたがってバージョンアップされるファームウェアを限定するファームウェア限定手段と
を具備することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
当該電子制御装置内で、現在実行中の作業および実行待機中の作業を検知する作業検知手段と、
この作業検知手段で検知した前記実行中の作業および実行待機中の作業が終了する時点まで前記ファームウェアバージョンアップ機能の動作の開始を延ばすバージョンアップ開始制御手段と
を具備することを特徴とする請求項１または請求項２に記載の電子制御装置。
【請求項４】
前記第１の記憶手段がフラッシュＲＯＭであることを特徴とする請求項１ないし請求項３のいずれかに記載の電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子制御装置に関し、特に制御用プログラムを容易に書き換え可能な電子制御装置に関する。
【０００２】
【従来の技術】
近年、電子制御装置を動作させるプログラム（ファームウェア）を格納する記憶媒体が、一度、プログラムを書き込んだらソフトウェア的に書き換えることができないＲＯＭ（ワンタイムＲＯＭやＥＰＲＯＭなど）から、ソフト的にプログラムの書き込みが可能なＲＯＭ（フラッシュＲＯＭなど）に移行しつつある。
これは、ファームウェアのバージョンアップ等を行なう際に、いちいち、メディアをハード的に交換しなければならないというコストの増大を伴う制約を抑えるためにであり、また、バージョンアップ時にはメディアを搭載したままで、ソフト的にファームウェアを書き換えることができるなどの利便性の向上を図るためにでもある。
【０００３】
この書き換え方法としては、特開平８−３０７４８０号公報に見られるように通信手段を用いる方法や、特開平１１−６５８３５号公報に見られるように外付けＲＯＭ等の外部装置からのダウンロードによる方法等があった。
しかし、通信手段を用いる方法は、書き換え先のプログラムが動作していないことが絶対条件となるため、近年のプログラムの大型化／マルチタスク化によって、この条件に沿って書き換えを行なうのは少なからず困難を伴う。
また、外部装置からのダウンロードの方法では、書き換えの際に必ず外部装置およびそれを操作する作業者が必要であるため、大量の同一電子制御装置に対してファームウェアのバージョンアップを行なう際には非常にコストがかかる。
このため、特別な外部装置なしにファームウェアのバージョンアップが可能な電子制御装置が望まれている。
【０００４】
また、通常、ファームウェアが格納されているＲＯＭの書き換えを行なうのには時間がかかる。従来の技術ではファームウェア全体をバージョンアップすることしか想定されていないため、バージョンアップに相当の時間が必要になる。しかも、ファームウェアの書き換え中は、他の機能が全く使えないため、装置としての利便性に欠ける面がある。
例えば、ＦＡＸの送信待機中、ファームウェアのバージョンアップに時間が掛かった場合など、時間通りに送信できない場合が考えられる。
これらの問題を解決するため、バージョンアップ時間を短縮することができ、バージョンアップと当面の作業との優先順位を考慮して作業を行うことができる電子制御装置の実現が望まれている。
【０００５】
【発明が解決しようとする課題】
上述のごとく、従来の電子制御装置を動作させるプログラム（ファームウェア）は、これを書き込んだらソフトウェア的に書き換えることができないメディアに記憶されていたため、メディアを取り替えなければファームウェアを書き換えることができないなど、利便性にかける面があった。これを避けるために、通信手段を用いる方法や、外部装置からのダウンロードによる方法などが発表されているが、書き換え作業が容易でなく、時間やコストがかかったり、書き換え作業中は、他の機能が使えないなどの問題があった。
本発明は、比較的簡単な方法でこの問題を解決して、格納されているファームウェアの書き換えを、外部装置を必要とせずに、ソフト的に容易に、かつ、現在、実行中の作業や実行待機中の作業を中断することなく実現でき、また、ファームウェアの部分的な書き換えも可能な電子制御装置の実現を課題とする。
【０００６】
【課題を解決するための手段】
上記の課題を達成するため、本発明は、第１の記憶手段に記憶された制御用のファームウェアにしたがって動作を行う電子制御装置であって、
この電子制御装置は、ファームウェアバージョンアップ機能として、外部の上位機器から入力される新しいファームウェアをダウンロードして第２の記憶手段に一時記憶し、この第２の記憶手段に一時記憶された前記新しいファームウェアを、前記従来のファームウェアが存在していた前記第１の記憶手段に書き込むファームウェア書込み手段によって前記新しいファームウェアの書き込みを行なう電子制御装置において、
この電子制御装置は、ソフトウェア的に電源オン時のプログラムが動作を開始するプログラムリセットベクタに分岐するプログラムリセット分岐手段を具備し、
前記プログラムリセット分岐手段には、前記ファームウェア書込み手段へアクセスして、当該電子制御装置のマルチタスクＯＳ上で起動しているプログラムを終了させると共に、前記新しいファームウェアの書き込みが終了するまで前記マルチタスクＯＳを動作させず、この新しいファームウェアの書き込みの終了後、前記第１の記憶手段にあるマルチタスク起動プログラムへ分岐する機能が含まれることを特徴とする。
これにより、内蔵の記憶手段に記憶されているファームウェアをソフト的に書き替えることが可能になり、ファームウェアのバージョンアップを外部機器を頼らず、容易に実行可能な電子制御装置を、廉価に実現することができる。
また、バージョンアップされた新しいファームウェアは予め外部からダウンロードされて内部に一時保管されるので、特別な外部装置や操作する人間を必要とせずにファームウェアのバージョンアップが可能となる。
また、マルチタスク化されているプログラムにおいてのフラッシュＲＯＭ書き換え作業も、電源ＯＮ時の直後に、かつ、マルチタスク移行前に動作するプログラム上において行なえるので、書き換え作業中に書き換え先のファームウェアが動作することでファームウェアバージョンアップ作業が失敗する心配が無くなる。
【０００７】
【発明の実施の形態】
以下、本発明にかかる電子制御装置を添付図面を参照にして詳細に説明することにする。
【０００８】
図１に、本発明の電子制御装置の一実施の形態における、最低限必要な構成のブロック図を示す。
図１において、符号１１はＣＰＵ部で各部の制御のための計算などを行なう。符号１２はファームウェア部で、ＣＰＵ部１１を用いて、電子機器の制御を行なうプログラムを格納する。具体的にはプログラム的に書換え可能なメディアであるフラッシュＲＯＭなどで形成されている。
【０００９】
符号１３は揮発性メモリ部であり、バージョンアップするファームウェアを記録しておく。具体的には大容量のＤＲＡＭ等である。符号１４は不揮発性メモリ部である。電源がＯＦＦになっても消去してはならないデータを記録しておく。具体的にはリチウム電池でバックアップされているＳＲＡＭ等である。
【００１０】
符号１５はダウンロード部であり、外部との物理的接続およびファームウェアダウンロードの制御を行なう。具体的にはＰＳＴＮ、ＩＳＤＮなどの電話回線やＬＡＮ等との接続が出来る装置である。
符号１６は表示・操作部である。表示並びに入力操作を行なう。ファームウェアのバージョンアップ等を指示することが可能である。
この他に、プリンタ装置であればプリンタ部、スキャナ装置であれば読取部、ＰＣであればビデオボードやＨＤＤなどが接続されることとなる。
【００１１】
図２に、本発明の実施の形態におけるメモリマッピングの例を示す。
図２で、符号２１はブート領域である。電源ＯＮ時に最初に動作するプログラムを記録している領域であって、このプログラムはＣＰＵや周辺機器等の初期化を行なう。ファームウェアのバージョンアップ時にファームウェア領域２３を書き換えるプログラムもこの領域に記録されている。このプログラムが破壊された場合は致命的なエラーを引き起こす可能性があるため、通常この領域は書き換えられることは無い。よって、フラッシュＲＯＭ上ではなくＥＰＲＯＭなどソフト的に書き換え不可能なメディア上に有る場合もある。
【００１２】
符号２２はプログラムリセットベクタである。電源ＯＮ時にＰＣ（プログラムカウンタ）がイニシャルされるアドレスである。エレキハード的にリセットがかかった場合は、プログラムは必ずこのアドレスから動作を開始する。
符号２３はファームウェア領域である。この装置を制御するプログラムを記録している領域で、通常プログラムはこの領域上で動作している。ファームウェアのバージョンアップに備え、フラッシュＲＯＭなどソフト的に書き換え可能なメディアが割り当てられる。
【００１３】
符号２４は揮発性メモリ領域で、プログラムで読み書きできるが、電源ＯＦＦ／ＯＮされると値が不定になる領域である。一般にプログラム上で大量且つ高速で処理するデータを格納する。
符号２５は不揮発性メモリ領域で、プログラムで読み書きでき、電源ＯＦＦ／ＯＮされても値を保持している領域である。一般にユーザーが登録したデータや装置の設定値などを格納する。
【００１４】
図３に、本発明の装置における、ファームウェアのバージョンアップ動作のプログラムのフローチャートを示す。
この動作は、表示・操作部１６よりユーザーやサービスマンが明示的に要求した場合に行なわれる。
【００１５】
ステップ１００で本プログラムの「ファームウェアバージョンアップ手続き」に入る。
次に、ステップ１０１でダウンロード部１５から、バージョンアップされているファームウェアを読み込む。さらにステップ１０２で、読み込んだファームウェアを揮発性メモリ部１３に記録する。ここで揮発性としたのは、揮発性メモリが不揮発性メモリに比べて容量単価が安く、装置内に組み込まれるメモリは、同じ価格であれば揮発性メモリの方がより大きい容量のものとなるという理由からである。
ファームウェアのデータサイズが充分に小さい場合や、装置に搭載されている不揮発性メモリが充分に大きい場合には、不揮発性メモリ部１４に読み込んでも構わない。
【００１６】
次に、ステップ１０３で、ファームウェア書き換え情報を揮発性メモリ部１３または不揮発性メモリ部１４に書き込む。このファームウェア書き換え情報には「ファームウェア部のどのアドレス」から、「どれだけのサイズ」ファームウェアを書き換えるかが記録されている。
次に、ステップ１０４で、現在動作中や待機中の作業があるかどうかチェックし、もし、それらがあればこの場でループし、以降のファームウェアのバージョンアップは、今すぐ行なわない。全ての作業が終了してからバージョンアップを行なうことになる。
ここまでのプログラムは、マルチタスクで動作することを想定しているため、この部分でループをしていても他のプログラム作業が中断されることは無い。もし、シングルタスクプログラムであれば、この「ファームウェアのバージョンアップ」プログラム自身が待機中の作業となり、他のプログラムを動作させる。
【００１７】
次に、ステップ１０５で、プログラムがプログラムリセットベクタに分岐する。これにより、マルチタスクＯＳ上で起動しているプログラムは終了する。
以降バージョンアップが終了するまで、マルチタスクＯＳは動作せず、また書換え対象ファームウェア上をプログラムが動作することは無い。
またエレキハード的にリセットを発生させている訳ではないので、揮発性メモリ部の全データはそのまま保持されている。
次に、ステップ１０６で、ステップ１０３で書き込んである書換え情報に従って、ファームウェアを揮発性メモリ部１３からファームウェア部１２にコピーする。
【００１８】
さらに、ステップ１０７で、書き込んだファームウェアデータに関してベリファイを行なう。
もし、ベリファイが失敗した場合は、ステップ１０８に進み、バージョンアップ動作が正常に終了しなかったと判断して、サービスマンコールを行なう。ここでは１回だけ、書き込み＆ベリファイを行なっているが、これを何回か繰り返す制御を入れても良い。
ベリファイが成功した場合は、ステップ１０９に進み、バージョンアップ動作が正常終了したと判断して、ファームウェア部１２にある、マルチタスクＯＳ起動プログラムヘ分岐する。以降はバージョンアップされたファームウェアが動作することになる。
【００１９】
以上説明したように、本発明によれば、特別な外部装置や作業を必要とせずにファームウェアのバージョンアップが可能になる。また、装置の進行中の作業や待機中の作業に特別な注意を払うことなくバージョンアップが行え、バージョンアップの失敗も少なくなる。
【００２０】
【発明の効果】
以上説明したように本発明の請求項１の発明では、第１の記憶手段に記憶された制御用のファームウェアにしたがって動作を行う電子制御装置であって、この電子制御装置は、ファームウェアバージョンアップ機能として、外部の上位機器から入力される新しいファームウェアをダウンロードして第２の記憶手段に一時記憶し、この第２の記憶手段に一時記憶された前記新しいファームウェアを、前記従来のファームウェアが存在していた前記第１の記憶手段に書き込むファームウェア書込み手段によって前記新しいファームウェアの書き込みを行なう電子制御装置において、この電子制御装置は、ソフトウェア的に電源オン時のプログラムが動作を開始するプログラムリセットベクタに分岐するプログラムリセット分岐手段を具備し、前記プログラムリセット分岐手段には、前記ファームウェア書込み手段へアクセスして、当該電子制御装置のマルチタスクＯＳ上で起動しているプログラムを終了させると共に、前記新しいファームウェアの書き込みが終了するまで前記マルチタスクＯＳを動作させず、この新しいファームウェアの書き込みの終了後、前記第１の記憶手段にあるマルチタスク起動プログラムへ分岐する機能が含まれることを特徴とする。
これにより、バージョンアップされた新しいファームウェアは予め外部からダウンロードされて内部に一時保管されるので、特別な外部装置や操作する人間を必要とせずにファームウェアのバージョンアップが可能となる。また、マルチタスク化されているプログラムにおいてのフラッシュＲＯＭ書き換え作業も、電源ＯＮ時の直後に、かつ、マルチタスク移行前に動作するプログラム上において行なえるので、書き換え作業中に書き換え先のファームウェアが動作することでファームウェアバージョンアップ作業が失敗する心配が無くなる。
【００２１】
本発明の請求項２の発明はで、ファームウェアのバージョンアップに関する各種情報を記録するバージョンアップ情報記憶手段と、このバージョンアップ情報記憶手段に記憶されたバージョンアップに関する各種情報を読み出すバージョンアップ情報読出し手段と、このバージョンアップ情報読出し手段によって読み出されたバージョンアップに関する各種情報にしたがってバージョンアップされるファームウェアを限定するファームウェア限定手段とを具備することを特徴とする。
これにより、部分的なファームウェアバージョンアップが可能となり、バージョンアップ時間が短縮され、ユーザーの利便性が向上する。またバージョンアップ中の不測の電源断などに因るバージョンアップの失敗が起きる可能性も少なくなる。
【００２２】
本発明の請求項３の発明では、当該電子制御装置内で、現在実行中の作業および実行待機中の作業を検知する作業検知手段と、この作業検知手段で検知した実行中の作業および実行待機中の作業が終了する時点までファームウェアバージョンアップ機能の動作の開始を延ばすバージョンアップ開始制御手段とを具備することを特徴とする。
これにより、現在実行中の作業や実行待機中の作業を中断することなく、ファームウェアのバージョンアップを行なうことができ、装置の使用上の利便性が向上する。
【００２３】
本発明の請求項４の発明は、第１の記憶手段がフラッシュＲＯＭであることを特徴とする。
これにより、ソフト的に書き換えが可能になると共に、電源のＯＦＦ中も、不測の電源断でもファームウェアが保護される。
【図面の簡単な説明】
【図１】本発明の電子制御装置の構成を示すブロック図。
【図２】本発明におけるメモリマッピングの一例を示す配置図。
【図３】本発明の装置におけるファームウェアのバージョンアップ動作のフローチャート。
【符号の説明】
１１    ＣＰＵ部
１２    ファームウェア部
１３    揮発性メモリ部
１４    不揮発性メモリ部
１５    ダウンロード部
１６    表示・操作部
【図１】
0004076113.tif 000002
【図２】
0004076113.tif 000003
【図３】
0004076113.tif 000004