(57)【要約】【課題】プログラムを格納する領域を複数備える制御装置において、ダウンロードした新規プログラムが正常に動作できなかった場合には、正常なプログラムのダウンロードを待つことなく、ダウンロード前の旧プログラムで自動的に再起動できるようにする。【解決手段】ＣＰＵが実行するプログラムを格納する複数のメモリバンクを備える制御装置に、前記ＣＰＵの動作異常を検出すると前記ＣＰＵをリセットするためのリセット信号を発生するウォッチドッグ回路と、前記リセット信号に基づき前記複数のメモリバンクのバンク切替を行うためのバンク切替制御信号を発生するエラー検出回路と、前記エラー検出回路若しくは前記ＣＰＵからのバンク切替制御信号により前記複数のメモリバンクのバンク切替を行うバンク切替回路と、を備えた。【選択図】      図１
2006260283.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（中央処理装置）が実行するプログラムを格納する複数のメモリバンクに、ホストコンピュータから新プログラムをダウンロードする制御装置であって、
前記ＣＰＵの動作異常を検出すると前記ＣＰＵをリセットするためのリセット信号を発生するウォッチドッグ回路と、
前記リセット信号に基づき前記複数のメモリバンクのバンク切替を行うためのバンク切替制御信号を発生するエラー検出回路と、
前記エラー検出回路若しくは前記ＣＰＵからのバンク切替制御信号により前記複数のメモリバンクのバンク切替を行うバンク切替回路と、を備え、
前記ホストコンピュータの新プログラムを前記複数のメモリバンクの内の未選択メモリバンク（現在選択されていないメモリバンク）にダウンロードし、該メモリバンクを前記バンク切替回路によって選択済メモリバンク（選択されたメモリバンク）に切り替えて該選択済メモリバンクのプログラムで起動し、
該選択済メモリバンクのプログラムの実行中に、前記ウォッチドッグ回路からリセット信号が出力された場合、未選択メモリバンクを前記バンク切替回路によって選択済メモリバンクに切り替えると共に前記ＣＰＵをリセットして再度起動する、ことを特徴とする制御装置。
【請求項２】
前記制御装置の起動時に、前記複数のメモリバンクの内の選択済メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較し、両プログラムが同一である場合には、該選択済メモリバンクのプログラムで起動し、両プログラムが同一でない場合には、さらに、
前記複数のメモリバンクの内の未選択メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較し、両プログラムが同一であれば選択済メモリバンクのプログラムで起動し、両プログラムが同一でない場合には、前記ホストコンピュータの新プログラムを該未選択メモリバンクにダウンロードする、ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記選択済メモリバンクのプログラムの実行中に、前記ウォッチドッグ回路からリセット信号が出力された場合、前記エラー検出回路は前記リセット信号に基づいてバンク切替制御信号を発生し、前記バンク切替回路は前記バンク切替制御信号に基づいて未選択メモリバンクを選択済メモリバンクに切り替える、ことを特徴とする請求項１或いは請求項２の何れか１項に記載の制御装置。
【請求項４】
前記制御装置は、前記制御装置の初期起動用のプログラム群を格納するメモリを更に備え、前記プログラム群は少なくとも、前記複数のメモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとが同一であるかを比較する比較プログラムと、前記ホストコンピュータの新プログラムを前記複数のメモリバンクの内の未選択メモリバンクにダウンロードするダウンロードプログラムと、前記新プログラムをダウンロードした未選択メモリバンクを選択済メモリバンクに切り替えるバンク切替プログラムと、を含むことを特徴とする請求項１から請求項３の何れか１項に記載の制御装置。
【請求項５】
プログラムを格納可能な複数のメモリバンクに、ホストコンピュータから新プログラムをダウンロードする制御装置のコンピュータに、
前記複数のメモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとが同一であるかを比較する比較処理と、前記ホストコンピュータの新プログラムを前記複数のメモリバンクの内の未選択メモリバンクにダウンロードするダウンロード処理と、前記新プログラムをダウンロードした未選択メモリバンクを選択済メモリバンクに切り替えるバンク切替処理と、を実行させることを特徴とするプログラム。
【請求項６】
前記比較処理においては、前記複数のメモリバンクの内の選択済メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較する処理を実行させ、両プログラムが同一でない場合には、さらに、
前記複数のメモリバンクの内の未選択メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較する処理を実行させ、両プログラムが同一でない場合には、前記ダウンロード処理を実行させて、前記ホストコンピュータの新プログラムを該未選択メモリバンクにダウンロードする、ことを特徴とする請求項５に記載のプログラム。
【請求項７】
前記ダウンロード処理を実行させた後に前記バンク切替処理を実行させて、前記新プログラムをダウンロードした未選択メモリバンクを選択済メモリバンクに切り替える、ことを特徴とする請求項６に記載のプログラム。
【請求項８】
ＣＰＵが実行するプログラムを格納する複数のメモリバンクを備える制御装置に、ホストコンピュータから新プログラムをダウンロードするプログラムダウンロード方法であって、
前記ホストコンピュータの新プログラムを前記複数のメモリバンクの内の未選択メモリバンクにダウンロードし、該メモリバンクを選択済メモリバンクに切り替えて該選択済メモリバンクのプログラムで起動し、
該選択済メモリバンクのプログラムの実行中に、前記ＣＰＵの動作異常が検出された場合、未選択メモリバンクを選択済メモリバンクに切り替えると共に前記ＣＰＵをリセットして再度起動する、ことを特徴とするプログラムダウンロード方法。
【請求項９】
前記制御装置の起動時に、前記複数のメモリバンクの内の選択済メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較し、両プログラムが同一である場合には、該選択済メモリバンクのプログラムで起動し、両プログラムが同一でない場合には、さらに、
前記複数のメモリバンクの内の未選択メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較し、両プログラムが同一であれば選択済メモリバンクのプログラムで起動し、両プログラムが同一でない場合には、前記ホストコンピュータの新プログラムを該未選択メモリバンクにダウンロードする、ことを特徴とする請求項８に記載のプログラムダウンロード方法。
【請求項１０】
請求項１乃至請求項４のいずれか１項に記載の制御装置を有する通信装置。
【請求項１１】
請求項１乃至請求項４のいずれか１項に記載の制御装置を有するコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置とそのプログラム、及び、プログラムダウンロード方法に関し、特に、プログラムを格納する領域を複数備える制御装置において、ダウンロードした新規プログラムが正常に動作できなかった場合には旧プログラムで自動的に再起動することを可能とする、制御装置とそのプログラム、及び、プログラムダウンロード方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータや通信端末装置などの動作制御を行うプログラムは、通信回線で接続したホストコンピュータからダウンロードすることが出来るようになってきている。プログラムをダウンロードすることによって、旧プログラムのバージョンアップを行うことや、新規プログラムのインストールを行うことなどが可能となっている。
【０００３】
ダウンロードしたプログラムは、通常、正常な動作を行うものであるが、まれには、バグを内蔵したプログラムがダウンロードされる場合も有りうる。バグを内蔵するプログラムがダウンロードされてしまった場合には、このプログラムは使用できないが、そのまま稼動停止状態となってしまうことは避けねばならず、何らかの方法によって復旧できることが望まれる。
【０００４】
ダウンロードしたプログラムにバグがあった場合でも、電源の再投入あるいは遠隔からの制御により確実に復旧できるようなダウンロード方法が提案されている（例えば、特許文献１参照。）。
【０００５】
上述した特許文献１「プログラムダウンロード方法」には、以下のようなダウンロード方法が開示されている。
【０００６】
すなわち、クライアント装置とサーバ装置を通信回線で接続し、サーバ装置からクライアント装置へプログラムをダウンロードするように構成する。クライアント装置には第１のメモリ領域（バンク１）と第２のメモリ領域（バンク２）を設ける。そして、第１のメモリ領域に、サーバ装置から第２のメモリ領域へプログラムをダウンロードする手順と、第２のメモリ領域にあるプログラムとダウンロードすべきプログラムが同一である場合にはダウンロードをスキップする手順を含むプログラムを格納しておく。クライアント装置の立ち上げ時には、第１のメモリ領域から起動し、第２のメモリ領域に同一のプログラムが存在している場合には、プログラムのダウンロードを行わないようにしている。このことにより、ダウンロードに要する時間を短縮し、かつプログラムにバグがあった場合でも、電源の再投入あるいは遠隔からの制御により確実に復旧できるダウンロード方法が提供できる、としている。
【０００７】
【特許文献１】特開平９−１６０７８３号公報（第３−６頁、図１〜３）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１に記載の従来のプログラムダウンロード方法は、クライアント装置のバンク１にダウンロードを実行するプログラムを格納し、バンク２にサーバ装置からプログラムをダウンロードする構成である。そして、ダウンロードされるプログラムにバグがあった場合には、クライアント装置の電源を再投入することで再起動させ、バグの取り除かれた正常なプログラムを再度サーバ装置からダウンロードすることが必要となる。従って、一度サーバ装置からバグを含むプログラムをダウンロードしてしまうと、外部からクライアント装置の電源再投入作業を行わない限り、クライアント装置を復旧できないという問題点を有している。また、仮にサーバ装置のプログラムが正常なものに更新されていなかった場合には、クライアント装置は再稼動を行えないという問題点も有している。
【０００９】
本発明は、上述した事情を改善するために成されたものであり、従って本発明の目的は、プログラムを格納する領域を複数備える制御装置において、ダウンロードした新規プログラムが正常に動作できなかった場合には、正常なプログラムのダウンロードを待つことなく、ダウンロード前の旧プログラムで自動的に再起動することを可能とする、制御装置とそのプログラム、及び、プログラムダウンロード方法、を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の制御装置は、ＣＰＵ（中央処理装置）が実行するプログラムを格納する複数のメモリバンクに、ホストコンピュータから新プログラムをダウンロードする制御装置であって、
前記ＣＰＵの動作異常を検出すると前記ＣＰＵをリセットするためのリセット信号を発生するウォッチドッグ回路と、
前記リセット信号に基づき前記複数のメモリバンクのバンク切替を行うためのバンク切替制御信号を発生するエラー検出回路と、
前記エラー検出回路若しくは前記ＣＰＵからのバンク切替制御信号により前記複数のメモリバンクのバンク切替を行うバンク切替回路と、を備え、
前記ホストコンピュータの新プログラムを前記複数のメモリバンクの内の未選択メモリバンク（現在選択されていないメモリバンク）にダウンロードし、該メモリバンクを前記バンク切替回路によって選択済メモリバンク（選択されたメモリバンク）に切り替えて該選択済メモリバンクのプログラムで起動し、
該選択済メモリバンクのプログラムの実行中に、前記ウォッチドッグ回路からリセット信号が出力された場合、未選択メモリバンクを前記バンク切替回路によって選択済メモリバンクに切り替えると共に前記ＣＰＵをリセットして再度起動する、ことを特徴とする。
【００１１】
また、前記制御装置の起動時に、前記複数のメモリバンクの内の選択済メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較し、両プログラムが同一である場合には、該選択済メモリバンクのプログラムで起動し、両プログラムが同一でない場合には、さらに、
前記複数のメモリバンクの内の未選択メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較し、両プログラムが同一であれば選択済メモリバンクのプログラムで起動し、両プログラムが同一でない場合には、前記ホストコンピュータの新プログラムを該未選択メモリバンクにダウンロードする、ことを特徴とする。
【００１２】
さらに、前記選択済メモリバンクのプログラムの実行中に、前記ウォッチドッグ回路からリセット信号が出力された場合、前記エラー検出回路は前記リセット信号に基づいてバンク切替制御信号を発生し、前記バンク切替回路は前記バンク切替制御信号に基づいて未選択メモリバンクを選択済メモリバンクに切り替える、ことを特徴とする。
【００１３】
また、前記制御装置は、前記制御装置の初期起動用のプログラム群を格納するメモリを更に備え、前記プログラム群は少なくとも、前記複数のメモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとが同一であるかを比較する比較プログラムと、前記ホストコンピュータの新プログラムを前記複数のメモリバンクの内の未選択メモリバンクにダウンロードするダウンロードプログラムと、前記新プログラムをダウンロードした未選択メモリバンクを選択済メモリバンクに切り替えるバンク切替プログラムと、を含むことを特徴とする。
【００１４】
本発明のプログラムは、プログラムを格納可能な複数のメモリバンクに、ホストコンピュータから新プログラムをダウンロードする制御装置のコンピュータに、
前記複数のメモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとが同一であるかを比較する比較処理と、前記ホストコンピュータの新プログラムを前記複数のメモリバンクの内の未選択メモリバンクにダウンロードするダウンロード処理と、前記新プログラムをダウンロードした未選択メモリバンクを選択済メモリバンクに切り替えるバンク切替処理と、を実行させることを特徴とする。
【００１５】
また、前記比較処理においては、前記複数のメモリバンクの内の選択済メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較する処理を実行させ、両プログラムが同一でない場合には、さらに、
前記複数のメモリバンクの内の未選択メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較する処理を実行させ、両プログラムが同一でない場合には、前記ダウンロード処理を実行させて、前記ホストコンピュータの新プログラムを該未選択メモリバンクにダウンロードする、ことを特徴とする。
【００１６】
さらに、前記ダウンロード処理を実行させた後に前記バンク切替処理を実行させて、前記新プログラムをダウンロードした未選択メモリバンクを選択済メモリバンクに切り替える、ことを特徴とする。
【００１７】
本発明のプログラムダウンロード方法は、ＣＰＵが実行するプログラムを格納する複数のメモリバンクを備える制御装置に、ホストコンピュータから新プログラムをダウンロードするプログラムダウンロード方法であって、
前記ホストコンピュータの新プログラムを前記複数のメモリバンクの内の未選択メモリバンクにダウンロードし、該メモリバンクを選択済メモリバンクに切り替えて該選択済メモリバンクのプログラムで起動し、
該選択済メモリバンクのプログラムの実行中に、前記ＣＰＵの動作異常が検出された場合、未選択メモリバンクを選択済メモリバンクに切り替えると共に前記ＣＰＵをリセットして再度起動する、ことを特徴とする。
【００１８】
また、前記制御装置の起動時に、前記複数のメモリバンクの内の選択済メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較し、両プログラムが同一である場合には、該選択済メモリバンクのプログラムで起動し、両プログラムが同一でない場合には、さらに、
前記複数のメモリバンクの内の未選択メモリバンクに格納されているプログラムと前記ホストコンピュータの新プログラムとを比較し、両プログラムが同一であれば選択済メモリバンクのプログラムで起動し、両プログラムが同一でない場合には、前記ホストコンピュータの新プログラムを該未選択メモリバンクにダウンロードする、ことを特徴とする。
【００１９】
本発明の通信装置は、上記制御装置を有する通信装置である。
【００２０】
本発明のコンピュータ装置は、上記制御装置を有するコンピュータ装置である。
【発明の効果】
【００２１】
本発明の制御装置は、ダウンロードした新プログラムにバグなどの不良が有った場合には、ＣＰＵの動作異常がウォッチドッグ回路で検出され、ＣＰＵがリセットされる。従って、制御装置の再起動を自動的に行うことが可能となる。
【発明を実施するための最良の形態】
【００２２】
次に、本発明の実施の形態について図面を参照して説明する。
【００２３】
図１は、本発明の制御装置の一実施形態を示すブロック図である。
【００２４】
図１に示す本実施の形態は、制御装置１の構成の一例を示すものである。本実施形態における制御装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）がメモリ内に記憶されたプログラムを実行することにより、所定の機能を実現するコンピュータ装置である。制御装置１としては、パーソナルコンピュータや通信端末装置などを挙げることができる。
【００２５】
図１に示す制御装置１は、制御装置１の中央処理装置としてのＣＰＵ２と、ＣＰＵ２が実行するプログラムを記憶する記憶装置としての複数のメモリバンクＡ５、メモリバンクＢ６、メモリバンクＣ７を備えている。また、メモリバンクＢ６とメモリバンクＣ７のバンク切替制御を行うバンク切替回路８を備えている。ＣＰＵ２とメモリバンクＡ５、メモリバンクＢ６、メモリバンクＣ７、バンク切替回路８とは、アドレスバス９、データバス１０を介して相互に接続されている。メモリバンクＡ５、メモリバンクＢ６、メモリバンクＣ７は、何れも、電気的に消去・書き込みが可能なフラッシュメモリなどの不揮発性メモリで構成されている。
【００２６】
また、制御装置１は、ＣＰＵ２の暴走を検出してこれをリセットするためのリセット信号を出力するウォッチドッグ（Ｗａｔｃｈｄｏｇ）回路３を備えている。ウォッチドッグ回路３は、ＣＰＵ２から出力されるウォッチドッグパルスが一定時間間隔で入力されている場合は、ＣＰＵ２は正常動作を行っているため、リセット信号を出力しない。ＣＰＵ２からのウォッチドッグパルスが一定間隔以上となった場合、すなわち、ウォッチドッグが発生した場合、ＣＰＵ２は異常であり暴走している、或いは、停止しているため、ウォッチドッグ回路３はリセット信号を出力するよう動作する。
【００２７】
さらに、制御装置１は、ウォッチドッグ回路３から出力されるリセット信号を受信すると、バンク切替回路８に対しバンク切替制御信号を出力するエラー検出回路４を備えている。
【００２８】
またさらに、アドレスバス９、データバス１０に接続される外部Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）ポート１１を備えている。外部Ｉ／Ｏポート１１は、通信回線１３を介してホストコンピュータ１２と接続される。ホストコンピュータ１２は、制御装置１へダウンロードするプログラムを保持している。
【００２９】
なお、図１における制御装置１は、一般的なコンピュータ装置が備えるべき入出力機器や記憶装置（ＲＯＭ、ＲＡＭ）、通信用コントローラなどを備えるものであるが、簡単化のため、これらの機能ブロックについては図示を省略している。
【００３０】
次に、図２を参照して、制御装置１のＣＰＵ２が実行するプログラムについて説明する。
【００３１】
図２は、制御装置のプログラム構成の一例を示す図である。
【００３２】
図１に示した制御装置１は、ＣＰＵ２が実行するプログラムを、図２に示すようにメモリバンクＡ５、メモリバンクＢ６、メモリバンクＣ７に記憶するようになっている。そして、メモリバンクＡ５には、制御装置１の初期起動用のプログラム群（ブートプログラム５１、比較プログラム５２、ダウンロードプログラム５３、バンク切替プログラム５４）を記憶する。メモリバンクＢ６、メモリバンクＣ７には、制御装置１の主プログラム（メモリバンクＢ６に主プログラム６１、メモリバンクＣ７に主プログラム７１）を記憶する。
【００３３】
メモリバンクＢ６とメモリバンクＣ７は、その何れか一方のバンクに制御装置１の主プログラムとして現在用いられている現用プログラムが記憶され、他方のバンクには一世代前のバージョンの主プログラムまたはバグなどの不良があった新プログラムが記憶される。メモリバンクＢ６とメモリバンクＣ７は、バンク切替回路８によって何れか一方のバンクだけが選択されるようになっており、選択されたバンク内の主プログラムによりＣＰＵ２が動作するものである。すなわち、選択されたバンク内のプログラムだけがＣＰＵ２によって読み出されて実行され、選択されていないバンクは使用されないようになっている。そこで、バンク切替回路８によって選択されたバンクを、以降、選択済バンクと称することとし、選択されていない他方のバンクを未選択バンクと称することとする。そして、現在選択されている選択済バンク内の主プログラムを現用プログラムと称することとし、もう一方の未選択バンクには、一世代前のバージョンの主プログラムまたはバグなどの不良があった新プログラムが記憶され、この未選択バンクにホストコンピュータ１２からの新プログラムをダウンロードするものとする。
【００３４】
図２に示すように、メモリバンクＢ６が選択済バンクであるとすると、その主プログラム６１は現用プログラムとなり、他方のメモリバンクＣ７は未選択バンクとなるため、その主プログラム７１は一世代前のバージョンの主プログラムまたはバグなどの不良があった新プログラムとなる。
【００３５】
メモリバンクＡ５には、制御装置１の初期起動用のプログラム群が記憶される。
【００３６】
第１はブートプログラム５１であり、ブートプログラム５１は、制御装置１を起動させるためのブート（Ｂｏｏｔｓｔｒａｐ：起動）手順を実行するプログラムである。
【００３７】
第２は比較プログラム５２であり、比較プログラム５２は、ホストコンピュータ１２が保持しているプログラム（新プログラム）と、メモリバンクＢ６（或いは、メモリバンクＣ７）に記憶されている主プログラムとが等しいか否かを比較する手順を実行するプログラムである。比較プログラム５２は、通信回線１３を介してホストコンピュータ１２から新プログラムを取得し、取得した新プログラムとメモリバンクＢ６（或いは、メモリバンクＣ７）の主プログラムとが等しいか否かを比較するものとする。
【００３８】
第３はダウンロードプログラム５３であり、ダウンロードプログラム５３は、ホストコンピュータ１２のプログラム（新プログラム）を未選択バンク（メモリバンクＣ７、或いは、メモリバンクＢ６）にダウンロードする手順を実行するプログラムである。
【００３９】
第４はバンク切替プログラム５４であり、バンク切替プログラム５４は、メモリバンクＢ６とメモリバンクＣ７の何れかのバンクを選択するためのバンク切替手順を実行するプログラムである。
【００４０】
次に、図３を参照して、本実施形態の動作について説明する。
【００４１】
図３は、本実施形態の動作を説明するフローチャートである。
【００４２】
先ず、制御装置１は、メモリバンクＡ５に記憶されている初期起動用のプログラムで起動し（図３のステップＳ１）、初期起動用のプログラム群の内のブートプログラム５１を実行する（ステップＳ２）。
【００４３】
次に、比較プログラム５２を実行する（ステップＳ３）。比較プログラム５２は、選択済バンク（例えば、メモリバンクＢ６とする。）の主プログラムと、ホストコンピュータ１２が保持している新プログラムとが、同一内容であるかを比較する。そして、両プログラムが一致しているかを判定する（ステップＳ４）。
【００４４】
両プログラムが一致した場合は（ステップＳ４でＹｅｓ）、ステップＳ９に進み、選択済バンク（メモリバンクＢ６）に格納されている主プログラムから起動する（ステップＳ９）。
【００４５】
両プログラムが一致しない場合は（ステップＳ４でＮｏ）、比較プログラム５２を再度実行し、未選択バンク（メモリバンクＣ７）の主プログラムと、ホストコンピュータ１２が保持している新プログラムとが、同一内容であるかを比較する（ステップＳ５）。そして、両プログラムが一致しているかを判定する（ステップＳ６）。
【００４６】
両プログラムが一致した場合は（ステップＳ６でＹｅｓ）、ステップＳ９に進み、選択済バンク（メモリバンクＢ６）に格納されている主プログラムから起動する（ステップＳ９）。
【００４７】
両プログラムが一致しない場合は（ステップＳ６でＮｏ）、ダウンロードプログラム５３を実行し、ホストコンピュータ１２の新プログラムを、未選択バンク（メモリバンクＣ７）にダウンロードする（ステップＳ７）。
【００４８】
ここで、ステップＳ５、Ｓ６の動作について補足説明を行っておく。未選択バンク（メモリバンクＣ７）には通常、一世代前のバージョンの主プログラムが記憶・格納されている。一世代前の主プログラムとホストコンピュータ１２の新プログラムが一致する場合（ステップＳ６でＹｅｓ）、ホストコンピュータ１２には誤って一世代前のプログラムが格納されている。従って、このプログラムはダウンロードせずに、選択済バンク（メモリバンクＢ６）の主プログラムで制御装置１を起動するようにする（ステップＳ９）。
【００４９】
ステップＳ７で未選択バンク（メモリバンクＣ７）にホストコンピュータ１２の新プログラムをダウンロードした後、バンク切替プログラム５４を実行し、これまで未選択バンクであったバンク（メモリバンクＣ７）を選択済バンクに切り替える（ステップＳ８）。そして、ステップＳ９に進み、選択済バンク（メモリバンクＣ７）に格納されている主プログラム、すなわち、ダウンロードした新プログラムで起動する（ステップＳ９）。
【００５０】
ステップＳ９で選択済バンクから起動した後、該選択済バンクの主プログラムを実行する（ステップＳ１０）。
【００５１】
ステップＳ１０での主プログラム実行中において、該主プログラムにバグが無く正常に動作していればウォッチドッグは発生しないため、そのまま該主プログラムの動作を継続する（ステップＳ１１でＮｏ）。該主プログラムにバグなどの不良がありＣＰＵ２が暴走するとウォッチドッグが発生する（ステップＳ１１でＹｅｓ）。
【００５２】
ウォッチドッグが発生すると（ステップＳ１１でＹｅｓ）、ウォッチドッグ回路３はリセット信号を出力する。該リセット信号はエラー検出回路４で受信され、エラー検出回路４は、バンク切替制御信号をバンク切替回路８に対して出力する。バンク切替回路８はバンク切替を行い、選択済バンクを未選択バンクとし、未選択バンクを選択済バンクに切り替える（ステップＳ１２）。ウォッチドッグ回路３からのリセット信号はＣＰＵ２にも入力されるため、ＣＰＵ２がリセットされてステップＳ１に戻るようになり、改めて制御装置１の再起動が行われるようになる。
【００５３】
制御装置１の再起動が行われると、制御装置１は図３に示したステップＳ１からの動作をそのまま再度行う。しかしこの再起動時においては、ホストコンピュータ１２の新プログラム（バグなどの不良があった新プログラム）が再度ダウンロードされることはない。
【００５４】
一例として、選択済バンク（例えば、メモリバンクＢ６）が主プログラム（旧の主プログラム）を有し、未選択バンク（メモリバンクＣ７）がダウンロードした新プログラム（バグなどの不良があった新プログラム）を有しているものとする。
【００５５】
再起動時においても、制御装置１は先ず、メモリバンクＡ５に記憶されている初期起動用のプログラムで起動し（ステップＳ１）、初期起動用のプログラム群の内のブートプログラム５１を実行する（ステップＳ２）。
【００５６】
次に、比較プログラム５２を実行する（ステップＳ３）。比較プログラム５２は、選択済バンク（メモリバンクＢ６）の主プログラム（旧の主プログラム）と、ホストコンピュータ１２が保持している新プログラムとが、同一内容であるかを比較する。そして、両プログラムが一致しているかを判定する（ステップＳ４）。
【００５７】
このとき、両プログラム（選択済バンクの旧の主プログラムとホストコンピュータ１２のバグなどの不良があった新プログラム）とは一致しない。従って、ステップＳ５に進む。
【００５８】
ステップＳ５において、比較プログラム５２を再度実行し、未選択バンク（メモリバンクＣ７）の主プログラムと、ホストコンピュータ１２が保持している新プログラムとが、同一内容であるかを比較する。そして、両プログラムが一致しているかを判定する（ステップＳ６）。
【００５９】
このとき、両プログラムは一致する。未選択バンクはダウンロードした新プログラム（バグなどの不良があった新プログラム）を有し、ホストコンピュータ１２が保持している新プログラムと同一だからである。従って、ステップＳ６でＹｅｓであるため、ステップＳ９に進み、選択済バンク（メモリバンクＢ６）に格納されている主プログラム（旧の主プログラム）から起動する（ステップＳ９）。
【００６０】
以上説明したように、制御装置１の再起動時には、ホストコンピュータ１２の新プログラム（バグなどの不良があった新プログラム）が再度ダウンロードされることはない。
【００６１】
この結果、ホストコンピュータ１２からダウンロードした新プログラムにバグ等の不具合が有った場合であっても、当初の選択済バンクの主プログラム（旧プログラムである）が実行されるようになり、旧プログラムで再起動することが可能となる。
【００６２】
なお、上述した実施形態の比較プログラム５２は、通信回線１３を介してホストコンピュータ１２から新プログラムを取得し、取得した新プログラムとメモリバンクＢ６（或いは、メモリバンクＣ７）の主プログラムとが等しいか否かを比較するよう構成しているが、これを以下のように変更しても良い。
【００６３】
すなわち、比較プログラム５２は、通信回線１３を介してホストコンピュータ１２から新プログラムのプログラム名称及びバージョン番号だけを取得する。そして、取得したプログラム名称及びバージョン番号を、メモリバンクＢ６（或いは、メモリバンクＣ７）の主プログラムのプログラム名称及びバージョン番号と比較するようにする。この比較により、ホストコンピュータ１２の新プログラムとメモリバンクＢ６、Ｃ７の主プログラムとが一致するか否かを判定する。このように変更することにより、ホストコンピュータ１２の新プログラムの規模が大きなものである場合に、比較処理を高速化することが可能となる。
【００６４】
以上説明したように、本実施形態によれば、ダウンロードした新プログラムにバグなどの不良が有った場合には、ＣＰＵ２が暴走或いは停止してウォッチドッグ回路３が働き、ＣＰＵ２をリセットする。従って、制御装置１の電源再投入などを行わずに制御装置１自身で自動的に再起動することが可能となる。
【００６５】
また、ダウンロードした新プログラムに不良があった場合であっても、ダウンロード前のプログラムで再起動することができる。従って、ホストコンピュータ１２の新プログラムが正常なプログラムに更新されるのを待つことなく、ダウンロード前のプログラムで自動的に再起動することが可能となる。
【００６６】
次に、図４を参照して、本発明の制御装置の第２の実施形態について説明する。
【００６７】
図４は、本発明の制御装置の第２の実施形態を示すブロック図である。なお、図４において図１に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略する。
【００６８】
図４に示す第２の実施形態の制御装置１は、図１に示した第１の実施形態のバンク切替回路８を、ＣＰＵ２側のアドレスバス９に挿入した点だけが異なる構成の一例を示すものである。そして、第２の実施形態の制御装置１は、そのプログラム配置も図２の構成と同様である。
【００６９】
また、第２の実施形態における制御装置１の動作についても、第１の実施形態と同様に動作することが可能である。従って、第２の実施形態に関するこれ以上の説明を省略するものとする。
【００７０】
以上説明したように、本発明の第２の実施形態は、第１の実施形態のハードウェア配置を変更した場合であっても、第１の実施形態と同様の動作を行うことが可能であることを示している。従って、制御装置１のハードウェア設計を行う上での各種の変形例を示したものであり、設計の柔軟性を向上させることが可能となる。
【００７１】
以上、本発明の第１および第２の実施形態について説明した。上述した実施形態における制御装置１は、ＣＰＵ２を備えるコンピュータ装置として説明したが、さらなる具体例として、以下に示すような装置に適用することが可能である。
【００７２】
すなわち、制御装置１は、携帯電話機やＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ：パーソナルハンディホンシステム）端末、或いは、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ：携帯情報端末）などの通信端末に備えられるものである。また、基地局装置のような通信装置に備えられる。さらに、パーソナルコンピュータやノートパソコン、或いは、サーバ装置、ワークステーション装置などのコンピュータ装置に備えられる。
【００７３】
このとき、制御装置１のＣＰＵ２は、上述した通信端末や通信装置、或いは、コンピュータ装置のそれぞれの制御に使用される中央処理装置である。
【００７４】
また、制御装置１とホストコンピュータ１２とを接続する通信回線１３は、移動体通信網と接続するための無線回線であってもよい。或いは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：ラン）や電話回線などの有線回線であってもよい。
【００７５】
このとき、制御装置１の外部Ｉ／Ｏポート１１は、基地局装置や移動体通信網と通信するための無線通信部であり、或いは、有線回線を介してホストコンピュータ１２と接続するための有線回線インタフェースである。
【図面の簡単な説明】
【００７６】
【図１】本発明の制御装置の一実施形態を示すブロック図である。
【図２】制御装置のプログラム構成の一例を示す図である。
【図３】本実施形態の動作を説明するフローチャートである。
【図４】本発明の制御装置の第２の実施形態を示すブロック図である。
【符号の説明】
【００７７】
１    制御装置
２    ＣＰＵ
３    ウォッチドッグ回路
４    エラー検出回路
５    メモリバンクＡ
６    メモリバンクＢ
７    メモリバンクＣ
８    バンク切替回路
９    アドレスバス
１０    データバス
１１    外部Ｉ／Ｏポート
１２    ホストコンピュータ
１３    通信回線
【図１】
2006260283.tif 000003
【図２】
2006260283.tif 000004
【図３】
2006260283.tif 000005
【図４】
2006260283.tif 000006