(57)【要約】【課題】制御プログラム更新の際に、更新用の制御プログラムを格納するためのメモリを増設することなく、制御プログラムの更新を実現させることを目的とする。【解決手段】まず、インターフェース制御プログラムにより外部機器１０１と通信を行い、新しい制御プログラムのインターフェース制御プログラム部分を取得し、機器制御プログラムが格納されているメモリ領域１１６へ上書きを行う。次に、機器１１０の制御を新しいインターフェース制御プログラに遷移させて外部機器１０１と通信を行い、新しい制御プログラムの機器制御プログラム部分を取得し、古いインターフェース制御プログラムが格納されているメモリ領域１１５へ上書きを行う。このことにより、制御プログラム更新の際に、更新用の制御プログラムを格納するためのメモリを増設することなく、制御プログラムの更新を実現することができる。【選択図】    図１
2004318350.tif 000002
【特許請求の範囲】
【請求項１】
中央演算処理装置と、外部機器との通信を行うためのインターフェースと、前記インターフェースを介して外部機器との通信を実現するインターフェース制御プログラムおよび前記インターフェース制御プログラム以外に機器に必要な制御を行う機器制御プログラムから成る制御プログラムを格納する不揮発性メモリとを有する機器において、前記不揮発性メモリに格納された第１のインターフェース制御プログラムと第１の機器制御プログラムを前記外部機器から前記インターフェースを介して入力される第２のインターフェース制御プログラムと第２の機器制御プログラムに更新するに際し、
前記第１の機器制御プログラムを消去する工程と、
前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と、
前記中央演算処理装置の制御を前記第２のインターフェース制御プログラムに遷移する工程と、
前記第１のインターフェース制御プログラムを消去する工程と、
前記外部機器より第２の機器制御プログラムを取得して前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納する工程と
を有することを特徴とする制御プログラムの更新方法。
【請求項２】
前記第１の機器制御プログラムおよび前記第１のインターフェース制御プログラムに、それぞれが格納される領域を示す識別子を備え、前記識別子により、前記第２の機器制御プログラムおよび前記第２のインターフェース制御プログラムを格納する領域を判別することを特徴とする請求項１記載の制御プログラムの更新方法。
【請求項３】
前記第２のインターフェース制御プログラムの取得に際し、前記不揮発性メモリに対して様々なプログラム配置をとり得る複数の制御プログラムを一括して取得し、前記第１のインターフェース制御プログラムの格納された領域から判断して、前記複数の制御プログラムのうちから格納する制御プログラムを選択することを特徴とする請求項１または請求項２に記載の制御プログラムの更新方法。
【請求項４】
中央演算処理装置と、外部機器との通信を行うためのインターフェースと、前記インターフェースを介して外部機器との通信を実現するインターフェース制御プログラムおよび前記インターフェース制御プログラム以外に機器に必要な制御を行う機器制御プログラムから成る制御プログラムを格納する不揮発性メモリとを有する機器において、前記不揮発性メモリに格納された第１のインターフェース制御プログラムと第１の機器制御プログラムを前記外部機器から前記インターフェースを介して入力される第２のインターフェース制御プログラムと第２の機器制御プログラムに更新するに際し、
前記第１の機器制御プログラムを消去する工程と、
前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と、
前記中央演算処理装置の制御を前記第２のインターフェース制御プログラムに遷移する工程と、
前記第１のインターフェース制御プログラムを消去する工程と、
前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納する工程と、
前記中央演算処理装置の制御を前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納された前記第２のインターフェース制御プログラムに遷移する工程と、
前記第１の機器制御プログラムが格納されていた領域に格納された前記第２のインターフェース制御プログラムを削除する工程と、
前記外部機器より第２の機器制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と
を有することを特徴とする制御プログラムの更新方法。
【請求項５】
中央演算処理装置と、外部機器との通信を行うためのインターフェースと、前記インターフェースを介して外部機器との通信を実現するインターフェース制御プログラムおよび前記インターフェース制御プログラム以外に機器に必要な制御を行う機器制御プログラムから成る制御プログラムを格納する不揮発性メモリとを有する機器において、前記インターフェース制御プログラムの先頭に、アドレスジャンプが一切発生しないようにシーケンサ処理として記述され前記不揮発性メモリ内のプログラムを指定の位置に複写するメモリ間複写プログラムを備え、前記不揮発性メモリに格納された第１のインターフェース制御プログラムと第１の機器制御プログラムを前記外部機器から前記インターフェースを介して入力される第２のインターフェース制御プログラムと第２の機器制御プログラムに更新するに際し、
前記第１の機器制御プログラムを消去する工程と、
前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と、
前記中央演算処理装置の制御を前記第２のインターフェース制御プログラム中のメモリ間複写プログラムに遷移する工程と、
前記第１のインターフェース制御プログラムを消去する工程と、
前記第２のインターフェース制御プログラムを前記メモリ間複写プログラムを用いて前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に複写する工程と、
前記中央演算処理装置の制御を前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納された前記第２のインターフェース制御プログラムに遷移する工程と、
前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納されている前記第２のインターフェース制御プログラムを消去する工程と、前記外部機器より第２の機器制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と
を有することを特徴とする制御プログラムの更新方法。
【請求項６】
中央演算処理装置と、外部機器との通信を行うためのインターフェースと、前記インターフェースを介して外部機器との通信を実現するインターフェース制御プログラムおよび前記インターフェース制御プログラム以外に機器に必要な制御を行う機器制御プログラムから成る制御プログラムを格納する不揮発性メモリと、アドレスジャンプが一切発生しないようにシーケンサ処理として記述され前記不揮発性メモリ内のプログラムを指定の位置に複写するメモリ間複写プログラムを備える外部メモリとを有する機器において、前記不揮発性メモリに格納された第１のインターフェース制御プログラムと第１の機器制御プログラムを前記外部機器から前記インターフェースを介して入力される第２のインターフェース制御プログラムと第２の機器制御プログラムに更新するに際し、
前記第１の機器制御プログラムを消去する工程と、
前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と、
前記中央演算処理装置の制御を前記外部メモリに備わるメモリ間複写プログラムに遷移する工程と、
前記第１のインターフェース制御プログラムを消去する工程と、
前記第２のインターフェース制御プログラムを前記メモリ間複写プログラムを用いて前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に複写する工程と、
前記中央演算処理装置の制御を前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納された前記第２のインターフェース制御プログラムに遷移する工程と、
前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納されている前記第２のインターフェース制御プログラムを消去する工程と、前記外部機器より第２の機器制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と
を有することを特徴とする制御プログラムの更新方法。
【請求項７】
前記中央演算処理装置がキャッシュ領域を備え、前記メモリ間複写プログラムを実行する際に、前記メモリ間複写プログラムを前記キャッシュ領域にキャッシュして、前記キャッシュ領域にキャッシュされた前記メモリ間複写プログラムを実行することを特徴とする請求項５記載の制御プログラムの更新方法。
【請求項８】
前記インターフェース制御プログラムと前記機器制御プログラムにそれぞれ識別情報を付加し、前記不揮発性メモリに格納された制御プログラムを一意に特定することを特徴とする請求項１または請求項２または請求項３または請求項４または請求項５または請求項６または請求項７のいずれか記載の制御プログラムの更新方法。
【請求項９】
前記第１のインターフェース制御プログラムから前記第２のインターフェース制御プログラムへの遷移を、インターフェースの初期化時に行うことを特徴とする請求項１または請求項２または請求項３または請求項４または請求項５または請求項６または請求項７または請求項８のいずれか記載の制御プログラムの更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部機器と通信を行うためのインターフェースを有し、外部機器から新しい制御プログラムを取得して、自身の不揮発性メモリに格納された制御プログラムを更新する機器に関し、特にその制御プログラム更新手段に関する。
【０００２】
【従来の技術】
従来では、外部機器と通信を行うためのインターフェースを有し、不揮発性メモリ内に格納された制御プログラムにより制御されている機器が、外部機器からインターフェースを通して取得する新しい制御プログラムに制御プログラムを更新する場合、外部機器から新しい制御プログラムを取得するために、制御プログラム更新中でもインターフェース制御を維持する必要があった。そのため、制御プログラムを、制御プログラムが格納されている不揮発性メモリの領域とは別のメモリ領域へ退避させ、退避させた制御プログラムによりインターフェース制御を行うことにより、新しい制御プログラムを取得していた（例えば、特許文献１参照）。
【０００３】
また、制御プログラムを格納する不揮発性メモリの領域を二つ用意することで、制御プログラム更新時に実行されている制御プログラムが格納されているメモリ領域とは別のメモリ領域へ新しい制御プログラムを格納し、格納が完了した時点で、機器の制御を新しいメモリに格納された新しい制御プログラムへ遷移させて制御プログラムの更新を実現しているものもある（例えば、特許文献２参照）。
【０００４】
【特許文献１】
特開２０００−２０７１９０号公報
【０００５】
【特許文献２】
特開２００１−１１７７７８号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、特許文献１の従来技術によると、不揮発性メモリに格納された制御プログラムの更新の際に、更新中に外部機器とのインターフェースを制御するための更新用の制御プログラムを、更新対象となっている不揮発性メモリ領域とは別の領域に格納する必要がある。また、特許文献２の従来技術によると、不揮発性メモリに格納された制御プログラムの更新の際に、更新中に取得した新しい制御プログラムを、更新対象となっている不揮発性メモリ領域とは別の領域に格納する必要がある。そのため、制御プログラムを確保する不揮発性メモリとは別に、更新時に制御プログラムを格納するなんらかのメモリを増設する必要があり、コストや、チップ面積が増大するという問題点があった。
【０００７】
本発明の制御プログラムの更新方法は、上記問題点を解決するために、制御プログラム更新の際に、更新用の制御プログラムを格納するためのメモリを増設することなく、制御プログラムの更新を実現させることを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１記載の制御プログラムの更新方法は、中央演算処理装置と、外部機器との通信を行うためのインターフェースと、前記インターフェースを介して外部機器との通信を実現するインターフェース制御プログラムおよび前記インターフェース制御プログラム以外に機器に必要な制御を行う機器制御プログラムから成る制御プログラムを格納する不揮発性メモリとを有する機器において、前記不揮発性メモリに格納された第１のインターフェース制御プログラムと第１の機器制御プログラムを前記外部機器から前記インターフェースを介して入力される第２のインターフェース制御プログラムと第２の機器制御プログラムに更新するに際し、前記第１の機器制御プログラムを消去する工程と、前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と、前記中央演算処理装置の制御を前記第２のインターフェース制御プログラムに遷移する工程と、前記第１のインターフェース制御プログラムを消去する工程と、前記外部機器より第２の機器制御プログラムを取得して前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納する工程とを有することを特徴とする。
【０００９】
請求項２記載の制御プログラムの更新方法は、請求項１記載の制御プログラムの更新方法において、前記第１の機器制御プログラムおよび前記第１のインターフェース制御プログラムに、それぞれが格納される領域を示す識別子を備え、前記識別子により、前記第２の機器制御プログラムおよび前記第２のインターフェース制御プログラムを格納する領域を判別することを特徴とする。
【００１０】
請求項３記載の制御プログラムの更新方法は、請求項１または請求項２に記載の制御プログラムの更新方法において、前記第２のインターフェース制御プログラムの取得に際し、前記不揮発性メモリに対して様々なプログラム配置をとり得る複数の制御プログラムを一括して取得し、前記第１のインターフェース制御プログラムの格納された領域から判断して、前記複数の制御プログラムのうちから格納する制御プログラムを選択することを特徴とする。
【００１１】
請求項４記載の制御プログラムの更新方法は、中央演算処理装置と、外部機器との通信を行うためのインターフェースと、前記インターフェースを介して外部機器との通信を実現するインターフェース制御プログラムおよび前記インターフェース制御プログラム以外に機器に必要な制御を行う機器制御プログラムから成る制御プログラムを格納する不揮発性メモリとを有する機器において、前記不揮発性メモリに格納された第１のインターフェース制御プログラムと第１の機器制御プログラムを前記外部機器から前記インターフェースを介して入力される第２のインターフェース制御プログラムと第２の機器制御プログラムに更新するに際し、前記第１の機器制御プログラムを消去する工程と、前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と、前記中央演算処理装置の制御を前記第２のインターフェース制御プログラムに遷移する工程と、前記第１のインターフェース制御プログラムを消去する工程と、前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納する工程と、前記中央演算処理装置の制御を前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納された前記第２のインターフェース制御プログラムに遷移する工程と、前記第１の機器制御プログラムが格納されていた領域に格納された前記第２のインターフェース制御プログラムを削除する工程と、前記外部機器より第２の機器制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程とを有することを特徴とする。
【００１２】
請求項５記載の制御プログラムの更新方法は、中央演算処理装置と、外部機器との通信を行うためのインターフェースと、前記インターフェースを介して外部機器との通信を実現するインターフェース制御プログラムおよび前記インターフェース制御プログラム以外に機器に必要な制御を行う機器制御プログラムから成る制御プログラムを格納する不揮発性メモリとを有する機器において、前記インターフェース制御プログラムの先頭に、アドレスジャンプが一切発生しないようにシーケンサ処理として記述され前記不揮発性メモリ内のプログラムを指定の位置に複写するメモリ間複写プログラムを備え、前記不揮発性メモリに格納された第１のインターフェース制御プログラムと第１の機器制御プログラムを前記外部機器から前記インターフェースを介して入力される第２のインターフェース制御プログラムと第２の機器制御プログラムに更新するに際し、前記第１の機器制御プログラムを消去する工程と、前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と、前記中央演算処理装置の制御を前記第２のインターフェース制御プログラム中のメモリ間複写プログラムに遷移する工程と、前記第１のインターフェース制御プログラムを消去する工程と、前記第２のインターフェース制御プログラムを前記メモリ間複写プログラムを用いて前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に複写する工程と、前記中央演算処理装置の制御を前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納された前記第２のインターフェース制御プログラムに遷移する工程と、前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納されている前記第２のインターフェース制御プログラムを消去する工程と、前記外部機器より第２の機器制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程とを有することを特徴とする。
【００１３】
請求項６記載の制御プログラムの更新方法は、中央演算処理装置と、外部機器との通信を行うためのインターフェースと、前記インターフェースを介して外部機器との通信を実現するインターフェース制御プログラムおよび前記インターフェース制御プログラム以外に機器に必要な制御を行う機器制御プログラムから成る制御プログラムを格納する不揮発性メモリと、アドレスジャンプが一切発生しないようにシーケンサ処理として記述され前記不揮発性メモリ内のプログラムを指定の位置に複写するメモリ間複写プログラムを備える外部メモリとを有する機器において、前記不揮発性メモリに格納された第１のインターフェース制御プログラムと第１の機器制御プログラムを前記外部機器から前記インターフェースを介して入力される第２のインターフェース制御プログラムと第２の機器制御プログラムに更新するに際し、前記第１の機器制御プログラムを消去する工程と、前記外部機器より第２のインターフェース制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程と、前記中央演算処理装置の制御を前記外部メモリに備わるメモリ間複写プログラムに遷移する工程と、前記第１のインターフェース制御プログラムを消去する工程と、前記第２のインターフェース制御プログラムを前記メモリ間複写プログラムを用いて前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に複写する工程と、前記中央演算処理装置の制御を前記不揮発性メモリの前記第１のインターフェース制御プログラムが格納されていた領域に格納された前記第２のインターフェース制御プログラムに遷移する工程と、前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納されている前記第２のインターフェース制御プログラムを消去する工程と、前記外部機器より第２の機器制御プログラムを取得して前記不揮発性メモリの前記第１の機器制御プログラムが格納されていた領域に格納する工程とを有することを特徴とする。
【００１４】
請求項７記載の制御プログラムの更新方法は、請求項５記載の制御プログラムの更新方法において、前記中央演算処理装置がキャッシュ領域を備え、前記メモリ間複写プログラムを実行する際に、前記メモリ間複写プログラムを前記キャッシュ領域にキャッシュして、前記キャッシュ領域にキャッシュされた前記メモリ間複写プログラムを実行することを特徴とする。
【００１５】
請求項８記載の制御プログラムの更新方法は、請求項１または請求項２または請求項３または請求項４または請求項５または請求項６または請求項７のいずれか記載の制御プログラムの更新方法において、前記インターフェース制御プログラムと前記機器制御プログラムにそれぞれ識別情報を付加し、前記不揮発性メモリに格納された制御プログラムを一意に特定することを特徴とする。
【００１６】
請求項９記載の制御プログラムの更新方法は、請求項１または請求項２または請求項３または請求項４または請求項５または請求項６または請求項７または請求項８のいずれか記載の制御プログラムの更新方法において、前記第１のインターフェース制御プログラムから前記第２のインターフェース制御プログラムへの遷移を、インターフェースの初期化時に行うことを特徴とする。
【００１７】
以上により、制御プログラム更新の際に、更新用の制御プログラムを格納するためのメモリを増設することなく、制御プログラムの更新を実現することができる。
【００１８】
【発明の実施の形態】
不揮発性メモリに格納された制御プログラムは、外部機器とのインターフェースの制御を行うインターフェース制御プログラムと、その他機器に必要な制御を行う機器制御プログラムから構成される。また、インターフェース制御プログラムと機器制御プログラムは、それぞれ不揮発性メモリ内のどの領域へ格納するか設定することが可能である。
【００１９】
インターフェース制御プログラムと機器制御プログラムから構成される制御プログラムを更新する場合、インターフェース制御プログラムにより機器を制御し、外部機器から新しい制御プログラムの新しいインターフェース制御プログラムを取得する。そして、取得した新しいインターフェース制御プログラムを古い機器制御プログラムが格納されているメモリ領域へ書き込む。すべての新しいインターフェース制御プログラムの書き込みが完了した時点で、機器の制御を新しいインターフェース制御プログラムへ遷移させ、外部機器から新しい制御プログラムの新しい機器制御プログラムを取得する。取得した新しい機器制御プログラムを古いインターフェース制御プログラムが格納されたメモリ領域へ書き込み、制御プログラムの更新を実現する。
【００２０】
好適な実施の形態では、インターフェース制御プログラムと機器制御プログラムから構成される制御プログラムを更新する場合、インターフェース制御プログラムにより機器を制御し、外部機器から新しい制御プログラムの新しいインターフェース制御プログラム部分を取得する。そして、取得した新しいインターフェース制御プログラムを古い機器制御プログラムが格納されているメモリ領域へ書き込む。すべての新しいインターフェース制御プログラムの書き込みが完了した時点で、機器の制御を新しいインターフェース制御プログラムへ遷移させ、外部機器から新しいインターフェース制御プログラム部分を再度取得する。その後、取得した新しいインターフェース制御プログラムを古いインターフェース制御プログラムが格納されたメモリ領域へ書き込む。すべての新しいインターフェース制御プログラムの書き込みが完了した時点で、機器の制御を２度目に書き込んだ新しいインターフェース制御プログラムへ遷移させ、外部機器から新しい制御プログラムの新しい機器制御プログラム部分を取得する。取得した新しい機器制御プログラムを１度目に書き込んだ新しいインターフェース制御プログラムが格納された領域へ書き込み、制御プログラムの更新を実現する。
（実施の形態１）
以下、図１，図２，図３，図４，図５，図１８，図１９を用いて実施の形態１について詳細に説明する。
【００２１】
図１は本発明における制御プログラムの更新方法を説明する概念図、図２は実施の形態１における制御プログラムの更新を行うフローチャート、図３（ａ）は実施の形態１における制御プログラム更新前の不揮発性メモリの状態を示す概念図、図３（ｂ）は実施の形態１における制御プログラム更新中の不揮発性メモリの状態を示す概念図、図３（ｃ）は実施の形態１における制御プログラム更新後の不揮発性メモリの状態を示す概念図、図４（ａ）は実施の形態１における１回目の制御プログラム更新後の制御プログラムの配置を示す概念図、図４（ｂ）は実施の形態１における２回目の制御プログラム更新後の制御プログラムの配置を示す概念図、図５は実施の形態１における制御プログラムの更新を行う第２のフローチャート、図１８は本発明における制御プログラムを２ファイル構成にしてメモリ配置に対応する方法を説明する図、図１９は本発明における制御プログラムを１ファイル構成にしてメモリ配置に対応する方法を説明する図である。
【００２２】
図１において、外部機器１０１はインターフェースケーブル１０２を用いて機器１１０に接続されている。機器１１０は、その内部に機器１１０を制御する中央演算処理装置１１１、中央演算処理装置１１１が処理を行う際に必要なＲＡＭ１１２、外部機器１０１と通信を行うインターフェース１１３、中央演算処理装置１１１を制御するための制御プログラムを格納する不揮発性メモリ１１４を有する。不揮発性メモリ１１４には、制御プログラムを格納するための領域Ａ１１５、領域Ｂ１１６を有する。
【００２３】
本実施の形態１においては、制御プログラムとして不揮発性メモリ１１４の領域Ａ１１５に外部機器１０１と通信を行うためのインターフェース制御処理と制御プログラムの更新処理を行うインターフェース制御プログラム１が、また不揮発性メモリ１１４の領域Ｂ１１６にインターフェース制御プログラム１以外で機器１１０の制御に必要な処理を行う機器制御プログラム１が格納されているものとし、上記の領域Ａ１１５と領域Ｂ１１６に格納された制御プログラムを合わせて制御プログラム１とする。
【００２４】
本実施の形態では、中央演算処理装置１１１を制御するための制御プログラム１を、インターフェース制御プログラム２と機器制御プログラム２から構成される新しい制御プログラム２に更新する方法を説明する。
【００２５】
図２は、制御プログラムの更新を実現するための動作フローであり、図３は制御プログラム更新の際の不揮発性メモリ１１４に格納される制御プログラムの状態を示す。また、制御プログラム２のメモリ配置は図４（ａ）のようになり、不揮発性メモリ１１４に格納された制御プログラム１のインターフェース制御プログラム１と機器制御プログラム１のメモリ配置とは逆になっている。
【００２６】
図２において、図３（ａ）のように不揮発性メモリ１１４に格納された制御プログラム１を、新しい制御プログラム２に更新する場合、インターフェース制御プログラム１が中央演算処理装置１１１を制御し、不揮発性メモリ１１４の機器制御プログラム１が格納された領域Ｂ１１６に対し消去処理を行い、機器制御プログラム１を消去する（Ｓ２０１）。その後、外部機器１０１からインターフェース１１３を通して制御プログラム２のインターフェース制御プログラム２を取得し（Ｓ２０２）、領域Ｂ１１６に格納する（Ｓ２０３）。インターフェース制御プログラム２の格納が完了すると、不揮発性メモリ１１４の内容は図３（ｂ）のようになる。そして、中央演算処理装置１１１の制御を領域Ｂ１１６に格納されたインターフェース制御プログラム２に遷移させる（Ｓ２０４）。次に、インターフェース制御プログラム２により、インターフェース制御プログラム１が格納されている領域Ａ１１５に対し消去処理を行い、インターフェース制御プログラム１を消去する（Ｓ２０５）。その後、外部機器１０１からインターフェース１１３を通して制御プログラム２の機器制御プログラム２を取得し（Ｓ２０６）、領域Ａ１１５に格納する（Ｓ２０７）。すべての機器制御プログラム２の格納が完了し、不揮発性メモリ１１４の内容が図３（ｃ）のように新しいインターフェース制御プログラム２と新しい機器制御プログラム２になると、制御プログラムの更新が終了する。
【００２７】
さらに、再度制御プログラムの更新処理を行う場合は、図５に示すように、上述した手順の領域Ａと領域Ｂが逆になった方法で更新を行い、制御プログラムのメモリ配置は図４（ｂ）のように、１回目の更新後とはさらに逆の配置となる。
【００２８】
上述したように、不揮発性メモリ１１４に格納された制御プログラムを更新する場合、インターフェース制御プログラムと機器制御プログラムが、不揮発性メモリの領域Ａ１１５と領域Ｂ１１６のどちらに配置されているかにより、図２と図５で示す２種類の更新方法があり、それに合わせて図４（ａ），（ｂ）の２種類のメモリ配置を持つ制御プログラムが必要となる。
【００２９】
そこで、不揮発性メモリ上の制御プログラムの２種類のメモリ配置に対応する方法として、以下に２種類の方法を示す。
１つ目は、図１８のように制御プログラムを２ファイル構成にする方法で、２種類のメモリ配置に対応した新しい制御プログラム１８０１と制御プログラム１８０２をそれぞれ用意し、現在動作中の制御プログラム１の格納されている不揮発性メモリ１８０５における配置状態によって、どちらのメモリ配置の制御プログラムを使用するかを外部機器１８０３が判断する。判断の方法としては、制御プログラムにタグ等の識別子１８０６を持たせておき、外部機器１８０３が不揮発性メモリ１８０５上の識別子１８０７を調べるか、もしくは、現時動作中の制御プログラム１から外部機器へ識別子を通知することで（図１８▲１▼）、外部機器１８０３は現在の制御プログラム１の格納されているメモリ配置を知ることができる。例えば、外部機器１８０３は制御プログラムの更新に適したメモリ配置の制御プログラム１８０２を用意し（図１８▲２▼）、インターフェースケーブル１０２を経由して機器１８０４に送信することで（図１８▲３▼）、制御プログラムの更新を行うことができる。図１８の場合、外部機器１８０３は、機器１８０４の現在の制御プログラムの識別子１８０７がＡであるため、更新する新しい制御プログラムとしてメモリ配置がＢである制御プログラム１８０２を送信する。
【００３０】
２つ目は、図１９のように新しい制御プログラムを１ファイル構成にする方法で、２種類のメモリ配置に対応した２種類の制御プログラムをマージさせた制御プログラム１９０１を用意し、外部機器１９０２としてはその新しい１つの制御プログラム１９０１をインターフェースケーブル１０２を経由して機器１９０３に送信するのみとする（図１９▲１▼）。そして、機器１９０３内で制御プログラムの更新を行なうインターフェース制御プログラム１が、自身のメモリ配置から、どのようなメモリ配置の新しい制御プログラムが必要であるかを判断し、外部機器１９０２から送信されてくる新しい制御プログラム１９０１から必要な部分のみを抽出して、制御プログラムの更新を行う（図１９▲２▼）。２種類の制御プログラムがマージされた新しい制御プログラム１９０１から必要なメモリ配置のものを抽出するためには、制御プログラム内に前述のような識別子１９０５、１９０６を埋め込んでおき、その識別子により制御プログラム１９０１の内容を判別できるようにしておく等の方法がある。図１９の場合、外部機器１９０２は更新する新しい制御プログラムとして、２種類のメモリ配置の制御プログラムをマージした制御プログラム１９０１を送信する。例えば、現在の制御プログラム１９０４は、自身の識別子１９０６がＡであるため、新しい制御プログラムの中からメモリ配置１９０５がＢに対応した部分を抽出し、制御ソフトを更新する。
【００３１】
以上により、制御プログラム更新の際に、更新用の制御プログラムを格納するためのメモリを増設することなく、制御プログラムの更新を実現することができる。
（実施の形態２）
以下、図１，図６，図７，図８，図９，図１０，図１１，図１２，図１３，図１４，図１５を用いて実施の形態２について詳細に説明する。
【００３２】
図６は実施の形態２における制御プログラムの更新を行うフローチャート、図７（ａ）は実施の形態２における制御プログラム更新前の不揮発性メモリの状態を示す概念図、図７（ｂ）は実施の形態２における領域Ｂにインターフェース制御プログラム２を取得した時の不揮発性メモリの状態を示す概念図、図７（ｃ）は実施の形態２における領域Ａにインターフェース制御プログラム２を取得した時の不揮発性メモリの状態を示す概念図、図７（ｄ）は実施の形態２における制御プログラム更新後の不揮発性メモリの状態を示す概念図、図８は実施の形態２における制御プログラム更新後の制御プログラムの配置を示す概念図であり、制御プログラムの更新前に不揮発性メモリ１１４に格納された制御プログラム１のメモリ配置と同じである。図９は実施の形態２におけるメモリ間複写プログラムの動作フローチャート、図１０は実施の形態２におけるメモリ間複写プログラムを用いて制御プログラムの更新を行うフローチャート、図１１は実施の形態２における外部メモリを用いた制御プログラムの更新方法を説明する概念図、図１２は実施の形態２における外部メモリを用いて制御プログラムの更新を行うフローチャート、図１３は実施の形態２におけるキャッシュを用いた制御プログラムの更新方法を説明する概念図、図１４は実施の形態２におけるキャッシュ領域を有する中央演算装置のメモリマップ、図１５は実施の形態２におけるキャッシュを用いて制御プログラムの更新を行うフローチャートである。
【００３３】
図１の構成は実施の形態１にて説明したとおりであるので、説明を省略する。本実施の形態２においては、制御プログラムとして不揮発性メモリ１１４の領域Ａ１１５に外部機器１０１と通信を行うためのインターフェース制御処理と制御プログラムの更新処理を行うインターフェース制御プログラム１が、また、不揮発性メモリ１１４の領域Ｂ１１６に、インターフェース制御プログラム以外で機器１１０の制御に必要な処理を行う機器制御プログラム１が格納されているものとし、上記の領域Ａ１１５と領域Ｂ１１６に格納された制御プログラムを合わせて制御プログラム１とする。
【００３４】
本実施の形態では、中央演算処理装置１１１を制御するための制御プログラム１を、インターフェース制御プログラム２と機器制御プログラム２から構成される新しい制御プログラム２に更新する方法を説明する。
【００３５】
図６において、図７（ａ）のように不揮発性メモリ１１４に格納された制御プログラム１を、新しい制御プログラム２に更新する場合、まず、インターフェース制御プログラム１が中央演算処理装置１１１を制御し、不揮発性メモリ１１４の機器制御プログラム１が格納された領域Ｂ１１６に対し消去処理を行い、機器制御プログラム１を消去する（Ｓ６０１）。その後、外部機器１０１からインターフェース１１３を通して制御プログラム２のインターフェース制御プログラム２を取得し（Ｓ６０２）、領域Ｂ１１６に格納する（Ｓ６０３）。インターフェース制御プログラム２の格納が完了すると、不揮発性メモリ１１４の内容は図７（ｂ）のようになる。そして、中央演算処理装置１１１の制御を領域Ｂ１１６に格納された新しいインターフェース制御プログラム２に遷移させる（Ｓ６０４）。次に、新しいインターフェース制御プログラム２により、従来のインターフェース制御プログラム１が格納されている領域Ａ１１５に対し消去処理を行い、従来のインターフェース制御プログラム１を消去する（Ｓ６０５）。その後、外部機器１０１からインターフェース１１３を通して新しいインターフェース制御プログラム２を再度取得し（Ｓ６０６）、領域Ａ１１５に格納する（Ｓ６０７）。インターフェース制御プログラム２の格納が完了すると、不揮発性メモリ１１４の内容は図７（ｃ）のようになる。そして、中央演算処理装置１１１の制御を領域Ａ１１５に格納されたインターフェース制御プログラム２に遷移させる（Ｓ６０８）。次に、領域Ａ１１５に格納されたインターフェース制御プログラム２により、インターフェース制御プログラム２が格納されている領域Ｂ１１６に対し消去処理を行い、領域Ｂ１１６のインターフェース制御プログラム２を消去する（Ｓ６０９）。その後、外部機器１０１からインターフェース１１３を通して制御プログラム２の機器制御プログラム２を取得し（Ｓ６１０）、領域Ｂ１１６に格納する（Ｓ６１１）。機器制御プログラム２の格納が完了すると、不揮発性メモリ１１４の内容は図７（ｄ）のようになり、制御プログラムの更新が終了する。
【００３６】
上記方法では、制御プログラム１のインターフェース制御プログラム１が格納された領域Ａ１１５に新しい制御プログラム２のインターフェース制御プログラム２が格納され、制御プログラム１の機器制御プログラム１が格納された領域Ｂ１１６に制御プログラム２の機器制御プログラム２が格納されるため、再度制御プログラムの更新処理を行う場合においても、上述した方法と同じ図６で示す方法で更新可能であり、また、制御プログラムのメモリ配置も図８に示したメモリ配置の１種類のみで良い。
【００３７】
上記、実施の形態２においては、新しいインターフェース制御プログラムを２回取得することにより、インターフェース制御プログラム部分の更新を実現しているが、インターフェースを介しての通信エラーによる更新失敗の危険性を極力抑えるため、インターフェース制御プログラムの取得回数を１回に抑えつつ、同様の制御プログラムの更新手段を、メモリ内のプログラムを指定の位置に複写することを基本動作とするメモリ間複写プログラムを用いて実現した３つの実施方法について以下説明する。
【００３８】
一つ目の方法としては、図１に示すシステム構成と同じであるが、上記実施の形態２に対し、メモリ間複写プログラムをインターフェース制御プログラムに含む場合が挙げられる。
【００３９】
メモリ間複写プログラムは、図９に示すように分岐処理や他ルーチンの呼び出しによるアドレスジャンプが一切発生しないようにシーケンサ的な処理として記述されており、メモリ間複写プログラムを含むインターフェース制御プログラムが不揮発性メモリ上の機器制御プログラムの領域に配置されている場合でも、メモリ間複写プログラムの位置を特定できるようにインターフェース制御プログラムの先頭に配置されている。
【００４０】
また、実行されるメモリ間複写プログラムの領域に対しては、インターフェース制御プログラムおよび機器制御プログラムの領域が書き換え中であったとしても、中央演算処理装置から問題なくアクセス可能であるものとする。
【００４１】
上記実施の形態２に対し、メモリ間複写プログラムをインターフェース制御プログラム内に備えた場合の制御プログラムの更新方法ついて説明する。
ここで、新しい制御プログラム２の構成は図８のようになり、不揮発性メモリに格納された古い制御プログラム１の構成と同じである。
【００４２】
以下、図１，図７，図１０を用いて説明する。図７（ａ）に示すように、不揮発性メモリ１１４に格納された制御プログラム１を新しい制御プログラム２に更新を行う場合、まず、インターフェース制御プログラム１が中央演算処理装置を制御し、不揮発性メモリの機器制御プログラム１が格納された領域Ｂ１１６に対し消去処理を行い、機器制御プログラム１を消去する（Ｓ１００１）。その後、外部機器からインターフェースを通して制御プログラム２のインターフェース制御プログラム２を取得し（Ｓ１００２）、領域Ｂ１１６に格納する（Ｓ１００３）。このときの不揮発性メモリ１１４の中身は、図７（ｂ）のようになっている。すべてのインターフェース制御プログラム２の格納が完了した時点で（Ｓ１００４）、中央演算処理装置の制御を、インターフェース制御プログラム２に含まれるメモリ間複写プログラムに遷移させる（Ｓ１００５）。具体的には、不揮発性メモリ１１４上の古い機器制御プログラム１が格納されていた領域にダウンロードされたインターフェース制御プログラム２の一番先頭に配置されているメモリ間複写プログラムへアドレスジャンプを行い、中央演算処理装置の制御をメモリ間複写プログラムへと遷移させる。このとき、制御プログラムの内容が、新しいものと古いもので変わっていても、インターフェース制御プログラムの先頭にメモリ間制御プログラムが配置されていることから、アドレスを特定できるので、問題無くアドレスジャンプが可能となる。
【００４３】
次に、メモリ間複写プログラムにより、インターフェース制御プログラム１が格納されている領域Ａ１１５に対し消去処理を行い、インターフェース制御プログラム１を消去する（Ｓ１００６）。その後、領域Ｂ１１６に存在する新しいインターフェース制御プログラム２を領域Ａ１１５に複写する（Ｓ１００７）。このとき不揮発性メモリ１１４の中身は、図７（ｃ）のようになっている。すべてのインターフェース制御プログラム２の複写が完了した時点で、中央演算処理装置の制御を領域Ａ１１５に格納されたインターフェース制御プログラム２に遷移させる（Ｓ１００８）。次に、領域Ａ１１５に格納されたインターフェース制御プログラム２により、インターフェース制御プログラム２が格納されている領域Ｂ１１６に対し消去処理を行い、領域Ｂ１１６のインターフェース制御プログラム２を消去する（Ｓ１００９）。その後、外部機器からインターフェースを通して制御プログラム２の機器制御プログラム２を取得し（Ｓ１０１０）、領域Ｂ１１６に格納する（Ｓ１０１１）。すべての機器制御プログラム２の格納が完了することで（Ｓ１０１２）、不揮発性メモリへ制御プログラム２の格納が完了し、制御プログラムの更新が終了する。更新が終了した状態で、不揮発性メモリ１１４の中身は、図７（ｄ）のようになっている。
【００４４】
二つ目の方法は、一つ目の方法と比較し、メモリ間複写プログラムの構造を簡単にすることができる。この時、機器９１０の構造は、図１１に示すように上記実施の形態２（図１の構成）に対し、メモリ間複写プログラムを実装した制御プログラム本体とは別のメモリ９１７（以降、外部メモリと表記。）を有する構成となる。外部メモリ９１７は実施の形態２の構成において、不揮発性メモリ１１４、または全く別のメモリとして存在し（図１１では別のメモリとして図示）、不揮発メモリ１１４上に存在する場合は、インターフェース制御プログラムおよび機器制御プログラムの領域が書き換え中であっても、問題なくアクセス可能であるものとする。
【００４５】
上記実施の形態２に対し、メモリ間複写プログラムをインターフェース制御プログラムや、機器制御プログラムとは分離された外部メモリに持つシステムでの制御プログラム更新方法について説明する。
【００４６】
ここで、新しい制御プログラム２の構成は図８のようになり、不揮発性メモリに格納された古い制御プログラム１の構成と同じである。
以下、図７，図１１，図１２を用いて説明する。図７（ａ）に示すように、不揮発性メモリ１１４に格納された制御プログラム１を制御プログラム２に更新を行う場合、インターフェース制御プログラム１が中央演算処理装置を制御し、不揮発性メモリの機器制御プログラム１が格納された領域Ｂ１１６に対し消去処理を行い、その領域に書き込まれている機器制御プログラム１を消去する（Ｓ１２０１）。その後、外部機器からインターフェースを通して制御プログラム２のインターフェース制御プログラム２を取得し（Ｓ１２０２）、領域Ｂ１１６に格納する（Ｓ１２０３）。このとき、不揮発性メモリ１１４の内容は、図７（ｂ）のようになっている。すべてのインターフェース制御プログラム２の格納が完了した時点で（Ｓ１２０４）、中央演算処理装置の制御を、外部メモリ９１７に格納されているメモリ間複写プログラムに遷移させる（Ｓ１２０５）。次に、メモリ間複写プログラムにより、古いインターフェース制御プログラム１が格納されている領域Ａ１１５に対し消去処理を行い、インターフェース制御プログラム１を消去する（Ｓ１２０６）。その後、領域Ｂ１１６に存在する新しいインターフェース制御プログラム２を領域Ａ１１５に複写する（Ｓ１２０７）。このとき不揮発性メモリの内容は、図７（ｃ）のようになっている。すべてのインターフェース制御プログラム２の複写が完了した時点で、中央演算処理装置の制御を領域Ａ１１５に格納されたインターフェース制御プログラム２に遷移させる（Ｓ１２０８）。次に、領域Ａ１１５に格納されたインターフェース制御プログラム２により、インターフェース制御プログラム２が格納されている領域Ｂ１１６に対し消去処理を行い、領域Ｂ１１６のインターフェース制御プログラム２を消去する（Ｓ１２０９）。その後、外部機器からインターフェースを通して制御プログラム２の機器制御プログラム２を取得し（Ｓ１２１０）、領域Ｂ１１６に格納する（Ｓ１２１１）。すべての機器制御プログラム２の格納が完了することで（Ｓ１２１２）、不揮発性メモリへ制御プログラム２の格納が完了し、制御プログラムの更新が終了する。更新が終了した状態で、不揮発性メモリ１１４の中身は、図７（ｄ）のようになっている。
【００４７】
三つ目の方法としては、図１３に示すように上記実施の形態２（図１の構成）に対し、中央演算処理装置１３１１にキャッシュ領域１３１７を有し、前記キャッシュ領域１３１７に対してインターフェース制御プログラム１３１５に含まれるメモリ間複写プログラムをキャッシュ可能であるシステム構成である場合にも、同様の制御プログラムの更新が可能である。
【００４８】
不揮発性メモリ１３１４は、中央演算処理装置１３１１のメモリマップに対して図１４に示すように２カ所マップされ、どちらからアクセスされた場合でも、その内容は全く同じように参照されるものとする。また、不揮発性メモリ１３１４に対しては書き込み制御を行うことができ、書き込み可能な設定でなければ実際に書き込むことは出来ないようになっているものとする。中央演算処理装置１３１１内にはキャッシュ領域１３１７を持ち、不揮発性メモリ１３１４上のメモリ間複写プログラムをキャッシュできるシステム構成での、制御プログラム更新方法について説明する。
【００４９】
図１５は中央演算処理装置を用いた制御プログラムの更新を実現するための動作フローであり、図７は制御プログラム更新の際の不揮発性メモリ１３１４に格納される制御プログラムの状態を示す。新しい制御プログラム２の構成は図８のようになり、不揮発性メモリに格納された古い制御プログラム１の構成と同じである。
【００５０】
以下、図７，１３，１４，１５を用いて説明する。図７（ａ）に示すように、不揮発性メモリ１３１４に格納された制御プログラム１を新しい制御プログラム２に更新を行う場合、まず、インターフェース制御プログラム１が中央演算処理装置を制御し、不揮発性メモリの機器制御プログラム１が格納された領域Ｂ１３１６に対し消去処理を行い、機器制御プログラム１を消去する（Ｓ１５０１）。その後、外部機器からインターフェースを通して制御プログラム２のインターフェース制御プログラム２を取得し（Ｓ１５０２）、領域Ｂ１３１６に格納する（Ｓ１５０３）。このとき不揮発性メモリ１３１４の中身は、図７（ｂ）のようになっている。すべてのインターフェース制御プログラム２の格納が完了した時点で（Ｓ１５０４）、不揮発メモリ１３１４に書き換え不可能にする制御処理を実施後（Ｓ１５０５）、キャッシュ領域１３１７を全てフラッシュさせ（Ｓ１５０６）、メモリ間複写プログラムを実施し、キャッシュ領域１３１７内にメモリ間複写プログラムをキャッシュさせる（Ｓ１５０７）。実行するメモリ間複写プログラムは、インターフェース制御プログラム領域１４０２に含まれるものであるが、書き換え対象とするのはインターフェース制御プログラム領域１４０４となっている。その後、不揮発性メモリ１３１４への書き込み禁止制御を解除し（Ｓ１５０８）、もう一度、中央演算処理装置の制御をメモリ複写プログラムへ遷移させる。中央演算処理装置１３１１はメモリ複写プログラムを実行するにあたり、以後、不揮発性メモリ上のプログラムを参照しているのではなく、キャッシュ領域１３１７上に蓄えられたメモリ複写プログラムを参照していることになる。
【００５１】
次に、メモリ間複写プログラムにより、インターフェース制御プログラム１が格納されている領域Ａ１３１５に対し消去処理を行い、インターフェース制御プログラム１を消去する。この時、不揮発メモリ上のメモリ間複写プログラムも消去されるが、実行しているプログラムはキャッシュ１３１７の中のものであり、しかも同じ不揮発性メモリへの操作であるがアドレスが異なっているので、このときに中央演算処理装置１３１１のキャッシュ領域にキャッシュされているメモリ間複写プログラムの内容がフラッシュされることは無い。その後、Ｂ１３１６に存在する新しいインターフェース制御プログラムを領域Ａ１３１５に複写する。このとき不揮発性メモリ１３１４の中身は、図７（ｃ）のようになっている（Ｓ１５０９）。すべてのインターフェース制御プログラム２の複写が完了した時点で、中央演算処理装置１３１１の制御を領域Ａ１３１５に格納されたインターフェース制御プログラム２に遷移させる（Ｓ１５１０）。その後、キャッシュ領域内の内容をフラッシュさせることにより（Ｓ１５１１）、新しいインターフェース制御プログラムへ完全に処理が移行する。次に、領域Ａ１３１５に格納されたインターフェース制御プログラム２により、インターフェース制御プログラム２が格納されている領域Ｂ１３１６に対し消去処理を行い、領域Ｂ１３１６のインターフェース制御プログラム２を消去する（Ｓ１５１２）。その後、外部機器からインターフェースを通して制御プログラム２の機器制御プログラム２を取得し（Ｓ１５１３）、領域Ｂ１３１６に格納する（Ｓ１５１４）。すべての機器制御プログラム２の格納が完了することで（Ｓ１５１５）、不揮発性メモリへ制御プログラム２の格納が完了し、制御プログラムの更新が終了する。更新が終了すると、不揮発性メモリ１３１４の中身は、図７（ｄ）のようになっている。
【００５２】
以上により、制御プログラム更新の際に、更新用の制御プログラムを格納するためのメモリを増設することなく、制御プログラムの更新を実現することができる。
（実施の形態３）
以下、図１，図１６，図１７，図２０，図２１を用いて実施の形態３について詳細に説明する。
【００５３】
図１６は実施の形態３におけるプログラム構成を説明する図、図１７（ａ）は実施の形態３における制御プログラム更新前の不揮発性メモリの状態を示す概念図、図１７（ｂ）は実施の形態３における領域Ｂにインターフェース制御プログラム２を取得した時の不揮発性メモリの状態を示す概念図、図１７（ｃ）は実施の形態３における領域Ａにインターフェース制御プログラム２を取得した時の不揮発性メモリの状態を示す概念図、図１７（ｄ）は実施の形態３における制御プログラム更新後の不揮発性メモリの状態を示す概念図、図２０は一般的なインターフェース制御プログラムの遷移における状態遷移図、図２１は実施の形態３のインターフェース制御プログラムの遷移における状態遷移図である。
【００５４】
図１の構成は実施の形態１にて説明したとおりであるので、説明を省略する。実施の形態２で述べた制御プログラム更新方法において、制御プログラム１、新しい制御プログラム２に、制御プログラムを識別する手段として識別情報を付加する。
【００５５】
図１６において、制御プログラム１、制御プログラム２は、インターフェース制御プログラムに、インターフェース制御プログラムと機器制御プログラムに共通の共通識別情報１６０１、１６１１と、インターフェース制御プログラムであることを示す個別の識別情報１６０２、１６１２を付加し、機器制御プログラムに、インターフェース制御プログラムと機器制御プログラムに共通の共通識別情報１６０１、１６１１と、機器制御プログラムであることを示す個別の識別情報１６０３、１６１３を付加した構成となっている。
【００５６】
ここでは、実施の形態２と同様の方法により、中央演算処理装置１１０を制御するための不揮発性メモリ１１４に格納された制御プログラム１を、インターフェース制御プログラム２と機器制御プログラム２から構成される新しい制御プログラム２に更新する場合の、制御プログラム識別情報の役割について説明する。また、実施の形態１においても対応可能である。
【００５７】
図１７（ａ）は、制御プログラム更新前の状態で、不揮発性メモリ１１４の領域Ａ１１５と領域Ｂ１１６に格納された制御プログラムの共通識別情報１７０１と共通識別情報１７０２が同じ状態であり、領域Ａ１１５の個別識別情報１７０３はインターフェース制御プログラムを示し、領域Ｂ１１６の個別識別情報１７０４は機器制御プログラムを示している。図１７（ｂ）は、機器制御プログラム１の格納されていた不揮発性メモリ１１４の領域Ｂ１１６に、インターフェース制御プログラム２が格納されている状態で、不揮発性メモリ１１４の領域Ａ１１５と領域Ｂ１１６に格納された制御プログラムの共通識別情報１７１１と共通識別情報１７１２が異なる状態であり、領域Ａ１１５と領域Ｂ１１６に格納された個別識別情報１７１３と個別識別情報１７１４がインターフェース制御プログラムを示している。図１７（ｃ）は、インターフェース制御プログラム１の格納されていた不揮発性メモリ１１４の領域Ａ１１５にインターフェース制御プログラム２が格納されている状態で、不揮発性メモリ１１４の領域Ａ１１５と領域Ｂ１１６に格納された制御プログラムの共通識別情報１７２１と共通識別情報１７２２が同じ状態であり、領域Ａ１１５と領域Ｂ１１６に格納された個別識別情報１７２３と個別識別情報１７２４がインターフェース制御プログラムを示している。図１７（ｄ）は、制御プログラム１が制御プログラム２に更新された状態で、不揮発性メモリ１１４の領域Ａ１１５と領域Ｂ１１６に格納された制御プログラムの共通識別情報１７３１と共通識別情報１７３２が同じ状態であり、領域Ａ１１５の個別識別情報１７３３はインターフェース制御プログラムを示し、領域Ｂ１１６の個別識別情報１７３４は機器制御プログラムを示している。
【００５８】
上述したように、制御プログラムに付加された共通識別情報と個別識別情報の内容により、不揮発性メモリに格納された制御プログラムが、現在どのような状態にあるかを一意に特定することが可能となり、更新途中になんらかの原因で更新が中断した場合でも、更新処理の復帰方法として、制御プログラムの状態が図１７（ａ）、図１７（ｂ）の場合は、不揮発性メモリ１１４の領域Ａ１１５のインターフェース制御プログラム１を用いて、制御プログラム更新処理を不揮発性メモリ１１４の領域Ｂ１１６に格納するインターフェース制御プログラム２の取得処理から再開する。制御プログラムの状態が図１７（ｃ）の場合は、不揮発性メモリ１１４の領域Ａ１１５のインターフェース制御プログラム２を用いて、不揮発性メモリ１１４の領域Ｂ１１６に格納する機器制御プログラム２の取得処理からを制御プログラム更新処理を再開する。制御プログラムの状態が図１７（ｄ）の場合は、更新処理は完了しているため更新処理を再開する必要はない。
【００５９】
以上により、制御プログラムの更新途中になんらかの原因で更新処理が中断した場合でも、現在の制御プログラムの状態と、次に必要な更新処理を特定することが可能となり、確実に制御プログラムの更新が実現可能である。
【００６０】
また、ここまでに述べた制御プログラム更新手段では、機器の動作中にインターフェースの制御が、例えば、図１の領域Ａ１１５から領域Ｂ１１６へ移行されることになる。この時、例えば、機器１１０のインターフェース１０２がＵＳＢインターフェースで外部機器１０１であるＷｉｎｄｏｗｓ（登録商標）ＰＣへ接続されている場合であると、ＵＳＢインターフェースの制御が切り替わると、領域Ａ１１５内のインターフェース制御プログラムで制御していた切り替え前のインターフェースの状態と、新しいインターフェース制御プログラム内の状態が一致しなくなる。例えば、図２０において、制御プログラムを更新する前のインターフェースの状態が状態βであっても、インターフェースの制御を新しい制御プログラムに遷移させると、制御プログラム内で管理しているインターフェースの状態が初期状態である状態αとなってしまい、外部機器１０１の管理しているインターフェースの状態である状態βと矛盾が生じる。そのため、外部機器１０１であるＷｉｎｄｏｗｓ（登録商標）ＰＣは機器が取り外されたものと判断し、「デバイス取り外しの警告」を発しデバイス取り外しの処理を行う。この場合、当然制御ソフトウェアの更新も失敗することになる。
【００６１】
そこで、機器１１０と外部機器１０１がＵＳＢインターフェース１０２で接続されている場合には、インターフェースの切り替えにバスリセットを利用する。ＵＳＢインターフェースでは、バスリセット時には初期化処理が行なわれるため、バスリセット発生のタイミングでインターフェースの切り替えを行うと、切り替えられた新しい制御プログラムでインターフェース全体の初期化処理が行なわれ、図２１のように外部機器１０１と機器１１０の管理しているインターフェースの状態に矛盾が発生しなくなり、機器１１０が取り外されたと判断されること無く新しいインターフェース制御プログラムへ移行することができる。ＵＳＢのバスリセットを意図的に発生させるためには、故意にデータ送信を行なわずに外部機器にＴｉｍｅＯｕｔ処理を発生させるか、もしくは外部機器からのトークンに全く応答しないことで致命的なエラーを発生させる等の方法がある。
【００６２】
当然、この初期化処理を利用する方法は、ＵＳＢ以外のインターフェースでも同様に使用することができる。
以上により、制御プログラム更新の際に、更新用の制御プログラムを格納するためのメモリを増設することなく、制御プログラムの更新を実現することができる。
【００６３】
【発明の効果】
以上のように本発明の制御プログラムの更新方法によると、機器を制御する制御プログラムの構成を、インターフェースを制御し外部機器との通信を実現するインターフェース制御プログラムと、前記インターフェース制御プログラム以外に必要な機器の制御を実現する機器制御プログラムとし、制御プログラムを更新する場合、まず、インターフェース制御プログラムにより外部機器と通信を行い、新しい制御プログラムのインターフェース制御プログラム部分を取得し、機器制御プログラムが格納されているメモリ領域へ上書きを行う。次に、機器の制御を新しいインターフェース制御プログラムに遷移させて外部機器と通信を行い、新しい制御プログラムの機器制御プログラム部分を取得し、古いインターフェース制御プログラムが格納されているメモリ領域へ上書きを行う。このことにより、制御プログラム更新の際に、更新用の制御プログラムを格納するためのメモリを増設することなく、制御プログラムの更新を実現することができる。
【図面の簡単な説明】
【図１】本発明における制御プログラムの更新方法を説明する概念図
【図２】実施の形態１における制御プログラムの更新を行うフローチャート
【図３】（ａ）実施の形態１における制御プログラム更新前の不揮発性メモリの状態を示す概念図
（ｂ）実施の形態１における制御プログラム更新中の不揮発性メモリの状態を示す概念図
（ｃ）実施の形態１における制御プログラム更新後の不揮発性メモリの状態を示す概念図
【図４】（ａ）は実施の形態１における１回目の制御プログラム更新後の制御プログラムの配置を示す概念図
（ｂ）は実施の形態１における２回目の制御プログラム更新後の制御プログラムの配置を示す概念図
【図５】実施の形態１における制御プログラムの更新を行う第２のフローチャート
【図６】実施の形態２における制御プログラムの更新を行うフローチャート
【図７】（ａ）実施の形態２における制御プログラム更新前の不揮発性メモリの状態を示す概念図
（ｂ）実施の形態２における領域Ｂにインターフェース制御プログラム２を取得した時の不揮発性メモリの状態を示す概念図
（ｃ）実施の形態２における領域Ａにインターフェース制御プログラム２を取得した時の不揮発性メモリの状態を示す概念図
（ｄ）実施の形態２における制御プログラム更新後の不揮発性メモリの状態を示す概念図
【図８】実施の形態２における制御プログラム更新後の制御プログラムの配置を示す概念図
【図９】実施の形態２におけるメモリ間複写プログラムの動作フローチャート
【図１０】実施の形態２におけるメモリ間複写プログラムを用いて制御プログラムの更新を行うフローチャート
【図１１】実施の形態２における外部メモリを用いた制御プログラムの更新方法を説明する概念図
【図１２】実施の形態２における外部メモリを用いて制御プログラムの更新を行うフローチャート
【図１３】実施の形態２におけるキャッシュを用いた制御プログラムの更新方法を説明する概念図
【図１４】実施の形態２におけるキャッシュ領域を有する中央演算装置のメモリマップ
【図１５】実施の形態２におけるキャッシュを用いて制御プログラムの更新を行うフローチャート
【図１６】実施の形態３におけるプログラム構成を説明する図
【図１７】（ａ）実施の形態３における制御プログラム更新前の不揮発性メモリの状態を示す概念図
（ｂ）実施の形態３における領域Ｂにインターフェース制御プログラム２を取得した時の不揮発性メモリの状態を示す概念図
（ｃ）実施の形態３における領域Ａにインターフェース制御プログラム２を取得した時の不揮発性メモリの状態を示す概念図
（ｄ）実施の形態３における制御プログラム更新後の不揮発性メモリの状態を示す概念図
【図１８】本発明における制御プログラムを２ファイル構成にしてメモリ配置に対応する方法を説明する図
【図１９】本発明における制御プログラムを１ファイル構成にしてメモリ配置に対応する方法を説明する図
【図２０】一般的なインターフェース制御プログラムの遷移における状態遷移図
【図２１】実施の形態３のインターフェース制御プログラムの遷移における状態遷移図
【符号の説明】
１０１    外部機器
１０２    インターフェースケーブル
１１０    機器
１１１    中央演算処理装置
１１２    ＲＡＭ
１１３    インターフェース
１１４    不揮発性メモリ
１１５    領域Ａ
１１６    領域Ｂ
９１０    機器
９１７    外部メモリ
１３１１    中央演算処理装置
１３１４    不揮発性メモリ
１３１５    インターフェース制御プログラム
１３１６    領域Ｂ
１３１７    キャッシュ領域
１４０２    インターフェース制御プログラム領域
１４０４    インターフェース制御プログラム領域
１６０１    共通識別情報
１６０２    識別情報
１６０３    識別情報
１６１１    共通識別情報
１６１２    識別情報
１６１３    識別情報
１７０１    共通識別情報
１７０２    共通識別情報
１７０３    識別情報
１７０４    識別情報
１７１１    共通識別情報
１７１２    共通識別情報
１７１３    識別情報
１７１４    識別情報
１７２１    共通識別情報
１７２２    共通識別情報
１７２３    識別情報
１７２４    識別情報
１７３１    共通識別情報
１７３２    共通識別情報
１７３３    識別情報
１７３４    識別情報
１８０１    制御プログラム
１８０２    制御プログラム
１８０３    外部機器
１８０４    機器
１８０５    不揮発性メモリ
１８０６    識別子
１８０７    識別子
１９０１    制御プログラム
１９０２    外部機器
１９０３    機器
１９０４    制御プログラム
１９０５    識別子
１９０６    識別子
【図１】
2004318350.tif 000003
【図２】
2004318350.tif 000004
【図３】
2004318350.tif 000005
【図４】
2004318350.tif 000006
【図５】
2004318350.tif 000007
【図６】
2004318350.tif 000008
【図７】
2004318350.tif 000009
【図８】
2004318350.tif 000010
【図９】
2004318350.tif 000011
【図１０】
2004318350.tif 000012
【図１１】
2004318350.tif 000013
【図１２】
2004318350.tif 000014
【図１３】
2004318350.tif 000015
【図１４】
2004318350.tif 000016
【図１５】
2004318350.tif 000017
【図１６】
2004318350.tif 000018
【図１７】
2004318350.tif 000019
【図１８】
2004318350.tif 000020
【図１９】
2004318350.tif 000021
【図２０】
2004318350.tif 000022
【図２１】
2004318350.tif 000023