(57)【要約】  本発明は，シリアルインターフェイスを介して制御装置の複数のセグメントを有するフラッシュメモリをフラッシュプログラミングすることによって，制御装置のソフトウェアアップデートを実施する方法に関するものである。この場合，フラッシュプログラムに課すべき要請が決定され，ソフトウェアの状態と移行を定義する状態自動装置によってフラッシュプログラミングのシーケンスが具現化されて，状態自動装置の各状態と各移行の可用性要請，安全性要請および信頼性要請が検査される。さらに，本発明は，対応する状態自動装置と可用性要請，安全性要請および信頼性要請を自動的に検査するためのコンピュータプログラムに関する。【選択図】    図１
2007507016.tif 000002
【特許請求の範囲】
【請求項１】
シリアルのインターフェイスを介して制御装置の複数のセグメントを有するフラッシュメモリをフラッシュプログラミングする，制御装置のソフトウェアアップデート方法であって，少なくとも次のステップ，
ａ）前記フラッシュプログラミングに課すべき要請を決定し；
ｂ）ソフトウェアの状態と移行を定義する状態自動装置によって前記フラッシュプログラミングのシーケンスを決定し；
ｃ）前記状態自動装置の各状態および各移行の可用性要請，安全性要請および信頼性要請を検査する；
を含むことを特徴とする，制御装置のソフトウェアアップデート方法。
【請求項２】
前記制御装置の前記ソフトウェアのため，
特に「初期状態」，「正規状態」および「ソフトウェアアップデート」からなる種々の駆動状態と，前記駆動状態間の移行と，移行条件と，
について特定されることを特徴とする，請求項１に記載の制御装置のソフトウェアアップデート方法。
【請求項３】
前記制御装置の前記ソフトウェアの，前記フラッシュプログラミングのために重要なメモリブロックは，プログラミング可能な前記メモリブロックとプログラミング不可能な前記メモリブロックに分割され，
これに応じて，新たにプログラミングする前記ソフトウェアのコンポーネントが，前記メモリブロックに対応づけられることを特徴とする，請求項１または２に記載の制御装置のソフトウェアアップデート方法。
【請求項４】
前記ソフトウェアの前記メモリブロックは，それぞれ前記制御装置のメモリに対応づけられ，
特にプログラミング可能な前記メモリブロックは，前記フラッシュメモリの少なくとも１つのセグメントに対応づけられ，あるいは，プログラム不可能な前記メモリブロックは，前記制御装置のＲＯＭに対応づけられることを特徴とする，請求項３に記載の制御装置のソフトウェアアップデート方法。
【請求項５】
前記制御装置の前記フラッシュメモリの前記セグメント内には，前記フラッシュプログラミングを実施するために必要なソフトウェア機能を準備するブートブロック，プログラム状態およびデータ状態が格納され，
前記制御装置の前記ＲＯＭ内には，前記フラッシュプログラミングを実施するために必要なソフトウェア機能を準備するスタートアップブロックが格納されることを特徴とする，請求項１〜４のいずれかに記載の制御装置のソフトウェアアップデート方法。
【請求項６】
前記フラッシュプログラミングの安全要請，信頼性要請および可用性要請が特定されることを特徴とする，請求項１〜５のいずれかに記載の制御装置のソフトウェアアップデート方法。
【請求項７】
前記状態自動装置によってフラッシュプログラミングを実施する場合に，「ソフトウェアアップデート」の駆動状態において，とることの可能なサブ状態，前記サブ状態間の移行および移行条件が特定されることを特徴とする，請求項２〜６のいずれかに記載の制御装置のソフトウェアアップデート方法。
【請求項８】
制御装置のソフトウェアアップデートをフラッシュプログラミングによって実施するための状態自動装置であって：
前記ソフトウェアアップデートを実施する際に取り得ることの可能な，前記制御装置のソフトウェアにおけるすべてのサブ状態と，前記サブ状態間の移行と，移行条件とが定義され，
前記ソフトウェアアップデートの実施の間に障害が発生した場合に，前記障害が発生する前に最後に有効であった状態，あるいはエラーのない状態における情報を，永続的に失われることのないように格納することを特徴とする，状態自動装置。
【請求項９】
前記サブ状態は，「中断／エラー報告」状態と，「終了／成功報告」状態とからなり，
認証およびシグニチャテストのためのサブ状態と，フラッシュメモリのセグメントの消去およびプログラミングのためのサブ状態とについて具現化されていることを特徴とする，請求項８に記載の状態自動装置。
【請求項１０】
プログラムコードエレメントからなるコンピュータプログラムであって，
前記コンピュータプログラムによって，前記プログラムコードエレメントがコンピュータ上またはコンピュータシステム上で実施される場合に，自動的に，請求項８または９に記載の状態自動装置の各状態と各移行の予め定められた可用性要請，安全要請および信頼性要請がテストされることを特徴とする，コンピュータプログラム。
【請求項１１】
フラッシュプログラミングを実施するために必要なソフトウェア機能を準備する，フラッシュメモリの第１のセグメント（フラッシュセグメントＡ）に格納されているブートブロックのフラッシュプログラミング方法であって，
少なくとも以下のステップ，
ａ）新しくプログラミングする古いブートブロックを，第２のメモリ（ＲＡＭ）の空領域へコピーし；
ｂ）前記第２のメモリ（ＲＡＭ）内の前記古いブートブロックをアクティブにし，かつ前記フラッシュメモリ内の前記古いブートブロックを非アクティブにし；
ｃ）新しいブートブロックを，前記フラッシュメモリの第２のセグメント（フラッシュセグメントＣ）内に一時的に格納し；
ｄ）前記第２のセグメント（フラッシュセグメントＣ）を前記第１のセグメント（フラッシュセグメントＡ）へコピーすることにより，前記新しいブートブロックをプログラミングし；
ｅ）前記第１のセグメント（フラッシュセグメントＡ）内の前記新しいブートブロックをアクティブにして，前記第２のメモリ（ＲＡＭ）内の前記古いブートブロックを非アクティブにする，
を含むことを特徴とする，ブートブロックのフラッシュプログラミング方法。
【請求項１２】
ブートブロックは，前記フラッシュメモリ内において，前記フラッシュプログラミングの新規スタートのために有効なブートブロックとして常にマーキングされることを特徴とする，請求項１１に記載のブートブロックのフラッシュプログラミング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，シリアルインターフェイスを介してフラッシュプログラミングにより電子制御装置のソフトウェアアップデートを実施する方法に関する。
【背景技術】
【０００２】
電子制御装置において，プログラム状態およびデータ状態のためのメモリ技術としていわゆるフラッシュを使用することが増加している。このメモリ技術は，シリアルインターフェイスを介して制御装置の該当するフラッシュメモリに新規プログラミングすることによって制御装置のソフトウェアアップデートを可能にする。この場合，シリアルインターフェイスは，例えば車両の中央のオフボード診断インターフェイスであり，これを介していわゆるフラッシュプログラミングツールによって，車両の電子制御装置のフラッシュメモリに新しくプログラミングされる。したがって，該当する電子制御装置を車両から取り外すことなくソフトウェアアップデートが可能であるので，制御装置を交換または取り外す場合と比較して著しいコスト削減をもたらす。上述した種類のフラッシュプログラミングの場合，特に車両のサービス，かつ安全上重要な電子制御装置の領域において，高い安全性および信頼性の要請を満たされなければならない。
【０００３】
現在使用されているフラッシュテクノロジーによれば，フラッシュメモリのフラッシュ領域全体を消去し，あるいは新しくプログラミングすることだけができる。ここで，フラッシュメモリの，物理的に関連し合う，閉成された消去またはプログラミング可能な最小のメモリユニットは，セグメントと称される。したがって，フラッシュプログラミングにおいては，フラッシュセグメントの消去とプログラミングのステップが区別される。このとき，さらに，同じフラッシュモジュールの他のセグメントが新たにプログラミングされる間に，同時にフラッシュセグメントからプログラムを実施することはできないことに注意しなければならない。したがって，フラッシュモジュールのためのプログラミングシーケンスを制御するためのプログラム部分は，フラッシュプログラミングを実施する間少なくとも一時的に，他のメモリモジュール，または他のフラッシュモジュールあるいは制御装置のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の空き領域に待避させなければならない。
【０００４】
オフボード診断インターフェイスの伝送パワーは制限されているため，電子制御装置のフラッシュメモリが大きい場合には，フラッシュプログラミング時間が非常に長くなる。したがって，製造およびサービスの分野において，フラッシュプログラミング時間を短縮する要請がしばしば生じる。
【０００５】
さらに，フラッシュプログラミングにおいて，責任の理由から常に，許可されていないフラッシュプログラミングまたは操作されたプログラム状態またはデータ状態によるフラッシュプログラミングができる限り阻止されるように，注意しなければならない。結局，いわゆるオフボード診断インターフェイスを介してのフラッシュプログラミングは，常に比較的長いタイムスパンを要求できることに，注意が必要である。この場合，場合によって発生する障害によるプログラミングシーケンスの中断が，常に考慮される。この種の障害としては，例えば車両またはフラッシュプログラミングツールの電圧供給障害，ネットワーク内の他の制御装置による許容されない反応，プログラミングを要する電子制御装置とそのために使用されるフラッシュプログラミングツールとの間の通信接続の中断あるいは操作エラー等がある。また，誤ってなされた認証およびシグニチャテストも，フラッシュプログラミングの中断をもたらすことがある。したがって，常にフラッシュプログラミングの可用性または即座に新規スタートができる保証が必要である。
【発明の開示】
【発明の効果】
【０００６】
本発明に基づく請求項１に記載の方法と請求項８に記載の状態自動装置が効果的である。また，他の利点および好適な実施形態については，従属請求項に記載されている。
【０００７】
請求項１によれば，シリアルインターフェイスを介して制御装置の複数のセグメントを有するフラッシュメモリをフラッシュプログラミングすることによって，制御装置のソフトウェアアップデートを実施する方法が提供される。かかる方法の第１のステップにおいて，フラッシュプログラミングに課すべき要請が決定されるので，フラッシュプログラミングのシーケンスが，制御装置のソフトウェアの状態と移行を定義する状態自動装置によって特定される。最終的に，状態自動装置の各状態と各移行の可用性，安全性および信頼性の要請が検査される。
【０００８】
好ましくは，フラッシュプログラミングに課すべき要請を定める場合に，まず，制御装置のソフトウェアが種々の駆動状態に特定される。このとき，種々の駆動状態は，好ましくは，「初期状態」，「正規状態」および「ソフトウェアアップデート」の状態に区別される。さらに，上述した駆動状態間の移行と移行条件が定義される。本方法の他の好ましい実施形態においては，制御装置のソフトウェアの，フラッシュプログラミングのために重要なメモリブロックが，プログラミング可能なメモリブロックとプログラミング不可能なメモリブロックに分割されて，それに応じてソフトウェアの新しくプログラミングすべきコンポーネントが制御ブロックに対応づけられる。さらに好ましくは，ソフトウェアのメモリブロックがそれぞれ制御装置のメモリに，特にプログラミング可能なメモリブロックがフラッシュメモリのセグメントに，またはプログラミング不可能なメモリブロックが電子制御装置のＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ−Ｍｅｍｏｒｙ）に対応づけられる。オフボード診断インターフェイスの伝送パワーが制限されているため，フラッシュメモリが大きい場合には，極めて長いフラッシュプログラミング時間がもたらされる。
【０００９】
したがって，フラッシュプログラミング時間を短縮することが望ましく，例えば，新しくプログラミングが必要なフラッシュセグメントを減少させることによって可能である。これは，好ましくは，個々のソフトウェア機能のフラッシュプログラミングによって，あるいは電子制御装置のプログラム状態とデータ状態について別々にフラッシュプログラミングすることによって達成される。この場合，しばしば，プログラム状態は制御装置製造時にすでにプログラミングされ，データ状態は後に，例えば車両の製造の最後にそれぞれの車両固有にプログラミングされる。これに基づいて，本発明に基づく方法の他の好ましい実施形態においては，それぞれ制御装置のフラッシュメモリのセグメント内に，いわゆるブートブロック，プログラム状態およびデータ状態が格納される。これは，種々のソフトウェア機能およびプログラム状態とデータ状態が異なるフラッシュセグメントに格納されることを意味している。
【００１０】
この場合，フラッシュプログラミングの間にオフボード診断インターフェイスを介して制御装置とフラッシュプログラミングツールとの間で通信するために必要な，制御装置のすべてのプログラム部分は，対応するフラッシュプログラミングルーチン，いわゆるフラッシュローダーと共に，電子制御装置のＲＯＭ内あるいは他のフラッシュセグメント内に格納されなければならない。制御装置とフラッシュプログラミングツールの間の通信に必要なプログラム部分は，プログラミング可能な部分とプログラミング不可能な部分に分割される。すなわち，以下でスタートアップブロックと称される，ＲＯＭ内に格納されるベース範囲と，以下でブートブロックと称される，フラッシュに格納されるベース範囲とに分割される。スタートアップブロックとブートブロックは，共に，オフボード診断インターフェイスを介してフラッシュプログラミングするために必要な制御装置のマイクロコントローラのソフトウェア機能を提供する。
【００１１】
スタートアップブロックとブートブロックに分割することは，種々の理由から重要である。すなわち，ブートブロック自体が上述したようにフラッシュメモリに格納される場合に，新しくプログラミングすることができる。さらに，ブートブロック内に，フラッシュプログラミングの実際のステータスが失われないように格納されるので，例えばフラッシュプログラミングが中断された後に，再セットアップが可能である。これに対して，セットアップブロックの変更できないベース機能と，電子制御装置のハードウェアバリアントのための識別子は，制御装置に設けられた，安価で新しくプログラミングすることのできないＲＯＭに格納することができる。本発明によれば，さらに，プログラム状態とデータ状態がそれぞれフラッシュメモリの他のセグメントに格納される。
【００１２】
本発明に基づく方法の他の好ましい実施形態においては，フラッシュプログラミングの安全性，信頼性および可用性についての要請が具現化される。制御装置のマイクロコントローラの駆動状態が「ソフトウェアアップデート」へ移行することは，フラッシュメモリツールによって促される。例えば，エンジン制御装置の場合に，走行プログラムの終了と「ソフトウェアアップデート」の駆動状態への移行の前に実施されなければならないエンジン停止状態チェック等，場合によっては必要な蓋然性チェックの他に，製造およびサービスに使用する場合には，他の安全措置が必要である。したがって，例えば責任の理由から，許可されていないフラッシュプログラミングまたは操作されたプログラム状態あるいはデータ状態によるフラッシュプログラミングをできる限り阻止することが必要である。少なくとも上述したようなフラッシュプログラミングを認識し，かつ立証できなければならない。
【００１３】
したがって，フラッシュプログラミングアクセスは，通常２つの異なる暗号化方法を行うことにより，安全性が確保される。第１の暗号化方法は認証であって，本来のアクセス権限の検査に相当し，蓋然性チェックの後に実施される。この場合，デジタルキーを用いて，フラッシュプログラミングツールのユーザが，そもそもソフトウェアアップデートを実施する権限を有しているか否かについてチェックされる。第２の暗号化方法は，いわゆるシグニチャチェックである。この場合，新しくプログラミングするプログラム状態またはデータ状態のデータ一貫性についてチェックされる。
【００１４】
シグニチャチェックでは，フラッシュプログラミングツールによって他のデジタルキーを用いて，新たにプログラミングするプログラム状態またはデータ状態が制御装置ハードウェアに適しているか，そして新たにプログラミングするプログラム状態またはデータ状態が，例えば車両メーカーによりサービス機構へ引き渡された後に，許容できない操作をされていないかについてチェックする。上述した検査が成功して終了した後に初めて，フラッシュメモリの該当するセグメントの消去とプログラミングが許可される。このプログラミングの許可は，上述したブートブロックによって行われる。
【００１５】
フラッシュプログラミングの安全性および信頼性要求を具現化する場合に，フラッシュプログラミングの後に，プログラミングの間のエラーを認識することができるようにするために，実際にフラッシュメモリへプログラミングされたプログラム状態とデータ状態に基づく制御装置のマイクロコントローラのシグニチャが考慮されることにも，注意しなければならない。シグニチャチェックが成功した後，考慮されたシグニチャ自体はフラッシュメモリに格納される。このために特別なメモリ構造，いわゆるプログラム状態ロジスティックとデータ状態ロジスティックがプログラム状態およびデータ状態の一部としてフラッシュメモリに格納される。シグニチャチェックが成功した後のみ，ブートブロックは，例えば走行プログラムのような，新しいプログラムの活性化を許可する。
【００１６】
さらに，本発明に基づく方法において，好ましくはフラッシュプログラミングの可用性要請も具現化される。オフボード診断インターフェイスを介してのフラッシュプログラミングは，上述した最適化措置にもかかわらず比較的長いタイムスパンを要求することが可能であるため，一般に，障害によるプログラムシーケンスの中断について常に考慮されなければならない。このような障害としては，例えば車両またはフラッシュプログラミングツールの電圧供給障害，ネットワーク内の他の障害装置による許容できない反応，電子制御装置と電子制御装置に使用されるフラッシュプログラミングツールとの間の通信接続の中断または操作エラー等がある。誤ってなされた認証やシグニチャチェックも，通常，フラッシュプログラミングを中断させる要因となる。したがって，フラッシュプログラミングのシーケンス設計においては，考えられるすべての状況の下でフラッシュプログラミングの可用性を保証することが重要である。
【００１７】
例えば，すべての状況において中断した後に，いつでもプログラムシーケンスが新規にスタートさせることができることについて保証されていることを意味している。このため，本発明に基づく方法の他の好ましい実施形態においては，状態自動装置によってフラッシュプログラムを実施する場合に，「ソフトウェアアップデート」の駆動状態においてとることの可能なサブ状態，サブ状態間の移行および移行条件が具現化される。このとき，サブ状態としては，サブ状態「中断／エラー報告」または「終了／成功報告」等がある。さらに好ましくは，認証およびシグニチャチェックのためのサブ状態およびフラッシュメモリのセグメントの消去とプログラミングのためのサブ状態も具現化することができる。さらに，ブートブロックの待避とフラッシュプログラミングのためのサブ状態の具現化も行うことが望ましい。上述したサブ状態間の移行とこれに対応する移行条件の具現化は，本発明において同様に行われる。
【００１８】
さらに，本発明は，プログラムコードエレメントからなるコンピュータプログラムを含んでいる。このコンピュータプログラムによってコンピュータ上またはコンピュータシステム上でプログラムコードエレメントを実施する場合，自動的に，上述した状態自動装置の各状態および各移行の予め定義された可用性，安全性および信頼性の要求について検査される。
【００１９】
そして，本発明は，上述したブートブロックをフラッシュプログラミングする方法に関する。例えば，フラッシュプログラミングを実施するために必要なソフトウェア機能性を準備する，ブートブロックのフラッシュプログラミングを実施する方法が提供される。この場合，ブートブロックは，フラッシュメモリの第１のセグメント内に格納されている。第１のステップにおいて，新しくプログラミングされる古いブートブロックが，空ＲＡＭ領域へコピーされる。すなわち，まだアクティブな古いブートブロックをフラッシュプログラミングの間に制御装置の他のメモリモジュール内へ待避させなければならず，ブートブロックがリロケーション可能であることを意味している。
【００２０】
その後，第２のステップにおいて，ＲＡＭ内の古いブートブロックが活性化されて，フラッシュメモリ（ここでブートブロックは第１のセグメント内に格納されている）内では非活性化される。さらに，新しいブートブロックがフラッシュメモリの第２のセグメントに一時的に格納される。このとき，かかるステップは，フラッシュメモリの第２のセグメントの消去，フラッシュメモリの第２のセグメントへの新しいブートブロックのプログラミング，およびフラッシュメモリの第２のセグメント内の新しいブートブロックのためのシグニチャチェックを含む。この処理ステップの間に処理が中断した場合には，その後に，フラッシュメモリの第１のセグメント内における古い，有効なブートブロックによって，フラッシュプログラミングを新しく開始することができる。
【００２１】
本発明に基づく方法の他のステップにおいて，フラッシュメモリの第２のセグメントをフラッシュメモリの第１のセグメント内へコピーすることによって，最終的に新しいブートブロックがプログラミングされる。この場合，かかるステップは，第１のフラッシュセグメントの消去，第２のフラッシュセグメントを第１のフラッシュセグメントへコピーすることによる第１のフラッシュセグメントへの新しいブートブロックのプログラミング，および第１のフラッシュセグメント内の新しいブートブロックのためのシグニチャチェックを含む。この処理ステップの間に処理が中断した場合には，その後，第２のフラッシュセグメント内の新しい，有効なブートブロックによって，フラッシュプログラミングを新しく開始することができる。好ましくは，フラッシュメモリ内では常に，ブートブロックは，フラッシュプログラミングの新規スタートのために有効なブートブロックとしてマーキングされる。この場合にこの有効なマーキング自体が，フラッシュメモリ内に失われないように格納されなければならず，かかる情報によって再セットアップすることが可能である。
【００２２】
その後，本発明に基づく方法の最終ステップにおいて，フラッシュメモリの第１のセグメント内の新しいブートブロックが活性化されて，同時にＲＡＭ内の古いブートブロックが非活性化される。
【発明を実施するための最良の形態】
【００２３】
本発明の他の利点および好ましい実施形態を，図を用いて詳細に説明する。
【００２４】
図１には，フラッシュプログラミングによって制御装置のソフトウェアアップデートを実施するための制御装置における，ソフトウェアのメモリブロックの対応づけが示されている。図１に示すように，制御装置１は，イクロコントローラ２を有する。マイクロコントローラ２は，マイクロプロセッサ３と３つの異なるメモリ，すなわちＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ−Ｍｅｍｏｒｙ）４，フラッシュメモリ５およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６を有する。さらに，制御装置１は，オフボード診断インターフェイス８に結合するためのシリアルインターフェイス７を有しており，オフボード診断インターフェイスを介してフラッシュプログラミングツールを接続することができる。
【００２５】
図１の下部には，制御装置１のソフトウェアの，フラッシュプログラミングにとって重要なメモリブロックのメモリ割当てが示されている。メモリブロックは，プログラミング可能なメモリブロックとプログラミング不可能なメモリブロックとに分割されており，これに応じてソフトウェアの新たにプログラミングするコンポーネントが，メモリブロックに対応づけられている。マイクロコントローラ２のプログラム部分は，フラッシュプログラミングの間オフボード診断インターフェイス８を介してマイクロコントローラ２とフラッシュプログラミングツールの間で通信するために必要な，いわゆるスタートアップブロック９といわゆるブートブロック１０に分割されている。スタートアップブロック９とブートブロック１０は，一緒になって，オフボード診断インターフェイス８を介してのフラッシュプログラミングのために必要なマイクロコントローラ２のソフトウェア機能を提供する。
【００２６】
スタートアップブロック９とブートブロック１０に分割することは，種々の理由から重要である。すなわち，図１の場合において，フラッシュメモリ１１のセグメントＡに格納されているブートブロック１０自体は，新たにプログラミングすることができる。さらにブートブロック１０は，フラッシュプログラミングの実際のステータスが失われないように格納されることができるので，例えば処理が中断した場合にも，その後再セットアップが可能である。これに対してスタートアップブロック９の，変更不可のベース機能は，コスト的に好ましい，新たにプログラミングできないＲＯＭ１２に格納することができる。フラッシュメモリの他のセグメントについては，フラッシュセグメントＢには，プログラム状態が格納され，フラッシュセグメントＣにはデータ状態が格納されている。
【００２７】
図２には，フラッシュプログラミングを実施する場合の安全要請の仕様として，フラッシュプログラミングツール１３と制御装置のマイクロコントローラ２との間の通信の可能なシーケンスが示されている。「ソフトウェアアップデート」の駆動状態へ移行する前に実施されなければならない，フラッシュプログラミングツール１３の側からの送信とマイクロコントローラ２の返信とによって実施される蓋然性チェック１４の後に，本来のアクセス権限に関するチェックが実施される。このアクセス権限に関するチェックのステップが，認証１５である。この場合，デジタルキーを用いて，フラッシュプログラミングツール１３のユーザがソフトウェアアップデートを行う権限を有しているか否かについて調べられる。
【００２８】
次いで，他の検査ステップ１６において，新たにプログラミングするプログラム状態またはデータ状態のデータ一貫性について検査される。この検査ステップは，シグニチャテストとも称される。ここでは，フラッシュプログラミングツール１３によって他のデジタルキーを用いて新たにプログラミングするプログラム状態またはデータ状態が制御装置ハードウェアに合っているか，そして新たにプログラミングするプログラム状態またはデータ状態がその引渡し元から許容されない操作をされていないか，について調べられる。この検査において成功して終了した後にはじめて，ステップ１７においてフラッシュセグメントが消去され，次にステップ１８において，対応するフラッシュセグメントがプログラミングされる。
【００２９】
フラッシュプログラミングの後に，プログラミングの間のエラーを認識することができるようにするために，マイクロコントローラ２によって実際にフラッシュメモリ内にプログラミングされたプログラム状態とデータ状態に基づいてシグニチャが計算される。シグニチャテスト１９が成功した後に，この計算されたシグニチャテスト自体がフラッシュメモリに格納される。このため，特別なメモリ構造，いわゆるプログラムおよびデータ状態ロジスティックがプログラムおよびデータ状態の一部として，フラッシュメモリに格納される。シグニチャテスト１９が成功した後にだけ，ブートブロックは，例えば走行プログラムのような，新しいプログラムを活性化する。
【００３０】
図３は，プログラム状態およびデータ状態をフラッシュプログラミングする場合のブートブロックの状態と移行を概略的に示している。まず，ステップ２０において，オフボード診断インターフェイスを介してフラッシュプログラミングツールとマイクロコントローラとを結合する際に，制御装置が識別されて，マイクロコントローラの「ソフトウェアアップデート」の駆動状態への移行が開始される。このとき，ステップ２１において，エラーが認識された場合には，すぐにプログラミングプロセスが中断され，同時にエラー報告Ｆが出力される。次いで，他のステップ２２において，結合されているフラッシュプログラミングツールのユーザの認証が行われる。ここでも，ステップ２３においてエラーが認識された場合には，処理が中断され，エラー報告Ｆが出力される。これに続いて，シグニチャテスト２４が行われ，ハードウェア−／プログラム状態−／データ状態ロジスティックについてのデータ一貫性のテストを行う。シグニチャテスト２４においてエラー２５認識された場合には，ここでも，処理が中断され，信号化されたエラー報告Ｆが出力される。
【００３１】
このステップを実施した後に，プログラム状態が格納されているフラッシュセグメントの消去２６が行われ，続いてステップ２７において，新しいプログラム状態がプログラミングされて，新しいプログラム状態のためのシグニチャテスト２８が実施される。ステップ２６，２７，２８と同じステップが，ステップ２９，３０，３１においてデータ状態のフラッシュプログラミングに関して行われる。プログラム状態またはデータ状態についてのシグニチャテストにおいて，エラーが認識された場合には，ここでも処理が中断され，エラー報告Ｆが出力される。これに対してエラーが認識されない場合には，ステップ３２において，リセット処理により「初期状態」の駆動状態へのマイクロコントローラの移行が行われる。
【００３２】
図４は，ブートブロックのフラッシュプログラミングにおける処理ステップを示している。まず，アクティブなブートブロック”Ａ”をフラッシュプログラミングの間，マイクロコントローラの他のメモリモジュールへ待避させなければならない。このため，ブートブロック”Ａ”は，リロケーション可能でなければならない。これは，例えば，ブートブロック”Ａ”を，フラッシュプログラミングの間，空ＲＡＭ領域へコピーすることによって行うことができる。
【００３３】
次に，ブートブロック”Ａ”をＲＡＭから実施する。このとき，ブートブロックのフラッシュプログラミングが誤って行われた後でも，プログラムシーケンスを新規にスタートがさせることが可能でなければならない。処理が中断した場合，その後可用性を維持するためには，エラーのないブートブロックで十分である。処理の第１のステップにおいて，古いブートブロック”Ａ”が，空ＲＡＭ領域へコピーされる。第２のステップにおいては，ＲＡＭ内の古いブートブロックが活性化され（これがマーキング”Ａ”によって見分けられるようにされている），フラッシュメモリ内で非活性化される。新しいブートブロックが，フラッシュセグメントＣ内にバッファされる。このとき，フラッシュセグメントＣが消去されて，新しいブートブロックがフラッシュセグメントＣ内へプログラミングされて，フラッシュセグメントＣ内の新しいブートブロックについてシグニチャテストが実施される。この処理ステップの間に処理が中断した場合には，その後，フラッシュセグメントＡ内の有効な古いブートブロックによってフラッシュプログラミングを新たに開始することができる。
【００３４】
第３のステップにおいて，新しいブートブロックがプログラミングされる。このプログラミングは，フラッシュセグメントＣをフラッシュセグメントＡへコピーした後に行われる。このステップは，フラッシュセグメントＡの消去，フラッシュセグメントＣをＡへコピーすることによる，フラッシュセグメントＡにおける新しいブートブロックのプログラミング，およびフラッシュセグメントＡ内の新しいブートブロックのシグニチャテストを有する。この処理ステップの間に処理が中断した場合には，その後，フラッシュセグメントＣ内の有効な新しいブートブロックによってフラッシュプログラミングを新たにスタートさせることができる。フラッシュメモリ内のそれぞれ有効なブートブロックは，マーキングされなければならず，この有効なマーキング自体が，失われないようにフラッシュメモリ内に格納される。このため，かかる情報によって再セットアップが可能である。
【図面の簡単な説明】
【００３５】
【図１】本発明方法の実施形態に基づく，制御装置のフラッシュプログラミングのために重要なメモリブロックの仕様を概略的に示している。
【図２】本発明方法の他の実施形態に基づく，安全要請および安全措置の仕様を概略的に示している。
【図３】電子制御装置のプログラム状態およびデータ状態をフラッシュプログラミングする場合のブートブロックの状態と移行を概略的に示している。
【図４】ブートブロックのフラッシュプログラミングを実施するための，本発明に基づく方法の実施形態のシーケンスを概略的に示している。
【図１】
2007507016.tif 000003
【図２】
2007507016.tif 000004
【図３】
2007507016.tif 000005
【図４】
2007507016.tif 000006
【国際調査報告】
2007507016.tif 000007
2007507016.tif 000008
2007507016.tif 000009
2007507016.tif 000010
2007507016.tif 000011
2007507016.tif 000012
2007507016.tif 000013
2007507016.tif 000014
2007507016.tif 000015
2007507016.tif 000016