JP2006301960A - 自動車用制御ユニット - Google Patents

自動車用制御ユニット Download PDF

Info

Publication number
JP2006301960A
JP2006301960A JP2005122734A JP2005122734A JP2006301960A JP 2006301960 A JP2006301960 A JP 2006301960A JP 2005122734 A JP2005122734 A JP 2005122734A JP 2005122734 A JP2005122734 A JP 2005122734A JP 2006301960 A JP2006301960 A JP 2006301960A
Authority
JP
Japan
Prior art keywords
program
storage area
memory
control software
rewriting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005122734A
Other languages
English (en)
Other versions
JP4548601B2 (ja
Inventor
Mitsuhiro Natsume
充啓 夏目
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2005122734A priority Critical patent/JP4548601B2/ja
Priority to US11/407,130 priority patent/US20060259207A1/en
Publication of JP2006301960A publication Critical patent/JP2006301960A/ja
Priority to US12/805,254 priority patent/US8607215B2/en
Application granted granted Critical
Publication of JP4548601B2 publication Critical patent/JP4548601B2/ja
Priority to US14/073,898 priority patent/US20140068590A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 不揮発性メモリに搭載されている制御用のソフトウェアの書き換え処理を、より短時間で行うことができる自動車用制御ユニットを提供する。
【解決手段】 ECU1において、フラッシュROM5には、現行バージョンプログラムを格納するための主格納エリア20と、更新バージョンプログラムを格納するための副格納エリア21とが形成されている。プログラム書換えツール5aは、外部から取得した更新バージョンプログラムを副格納エリア21に格納するプログラム格納処理と、更新バージョンプログラムの副格納エリア21への書き込みに成功した場合は、現在主格納エリア20として使用されているメモリ領域に代え、更新バージョンプログラムの格納が完了した副格納エリア21を、新たな主格納エリアとして切り替える一方、副格納エリア21への書き込みに失敗した場合は当該切替えを行わないメモリ切替え処理とを含むプログラム書換え処理を実行する。
【選択図】 図1

Description

この発明は、自動車用制御ユニットに関する。
特開2003−337748号公報 特開2003−172199号公報 特開2001−229014号公報
自動車には、各種機器(被制御要素)を制御するためにECUが搭載されている。ECUは、CPUからなる主制御部を有し、自動車上に搭載される電子機器の制御処理を予め定められた制御用ソフトウェアの実行に基づいて実施する。この制御用ソフトウェアは、バージョンアップやバグ修正等のために、内容を随時更新できるよう、フラッシュROM(フラッシュメモリ)に記憶されることが多い(特許文献1〜3)。
アプリケーションの更新処理は、従来は車両持込にて販売店などで行われることが多かったが、近年では無線通信による車両外部インフラ(例えば携帯電話網など)の普及により、カーナビゲーションシステムにおける機能追加や地図データの更新、さらにはカーオーディオシステムで使用する音楽ソフト配信など、ユーザー自身の手で実行させるシーンも十分想定されるようになってきた。この場合、ユーザーが車両を使用しながら、制御用ソフトウェアの更新バージョンを上記車両外部インフラから無線受信する形でダウンロードし、フラッシュROMに書き込む形で更新処理がなされる。
上記の状況では、ユーザーが旧バージョンの制御用ソフトウェアの機能を使用しながら、これをリアルタイムで新バージョンに更新する処理に該当するから、フラッシュROM内の旧バージョンの制御用ソフトウェアを上書き(あるいは無効化)する形で書換え処理を行った場合、その新バージョンのソフトウェアの書き込み処理中に、何らかの要因(例えば通信途絶、書換え処理のバグや暴走、ハードウェア異常など)でその書き込み処理に失敗してしまった場合は、新バージョンはもちろんのこと、旧バージョンのソフトウェアも使用不能あるいは機能不全を来たすこととなり、ユーザーへの機能提供に深刻な影響が及ぶ。
本発明の課題は、不揮発性メモリに搭載されている制御用ソフトウェアの書換え処理を、書換え失敗時においてもユーザーへの機能提供を確保した上で行なうことができる自動車用制御ユニットを提供することにある。
課題を解決するための手段及び発明の効果
上記の課題を解決するために、本発明の自動車用制御ユニットは、
自動車上に搭載される電子機器の制御処理を司る制御用ソフトウェアを格納するとともに、記憶内容が電気的に書換え可能であって、外部からのリセット信号を受けても当該記憶内容を保持する不揮発性メモリと、該制御用ソフトウェアの実行メモリとなるRAMと、制御用ソフトウェアの実行に基づいて電子機器の制御処理を行なうCPUとを備え、
不揮発性メモリは、制御用ソフトウェアの現在使用中のバージョンプログラムである現行バージョンプログラムを格納するための主格納エリアと、現行バージョンプログラムからの更新点を含む更新バージョンプログラムを格納するための副格納エリアとを有し、さらに、
外部から取得した更新バージョンプログラムを副格納エリアに格納するプログラム格納処理と、更新バージョンプログラムの副格納エリアへの書き込みに成功した場合は、現在主格納エリアとして使用されているメモリ領域に代え、更新バージョンプログラムの格納が完了した副格納エリアを、新たな主格納エリアとして切り替える一方、副格納エリアへの書き込みに失敗した場合は当該切替えを行なわないメモリ切替え処理とを含むプログラム書換え処理とを実行するプログラム書換え手段を有してなることを特徴とする。更新バージョンプログラムは、例えば無線通信網を介して受信取得されるものであるが、これに限られるものではない。
上記本発明によると、制御用ソフトウェアを格納する不揮発性メモリに、制御用ソフトウェアの現行バージョンプログラムを格納する主格納エリアと、新たに取得する更新バージョンプログラムを格納するための副格納エリアとを設け、外部から取得した更新バージョンプログラムを、現在使用中の現行バージョンプログラムを格納する主格納エリアとは別に確保された副格納エリアに格納する。そして、更新バージョンプログラムの副格納エリアへの書き込みに成功した場合は、現在主格納エリアとして使用されているメモリ領域に代え、更新バージョンプログラムの格納が完了した副格納エリアを、新たな主格納エリアとして切り替える一方、副格納エリアへの書き込みに失敗した場合は当該切替えを行なわない。これにより、万一更新バージョンプログラムの書き込みに失敗しても、現行バージョンプログラムは主格納エリア内に無傷で残り、また、例えば不完全な更新バージョンプログラムしか書き込まれてない副格納エリアを主格納エリアに切り替える処理も行われないから、現行バージョンプログラムを引き続き使用することができ、書換え失敗時においてもユーザーへの機能提供を確保することができる。
不揮発性メモリは、その記憶領域が複数の書換え単位ブロックに分割されるとともに、該書換え単位ブロックを単位とする形でのみ記憶内容の消去、書き込み及び書き換えが可能とされたものを使用できる(代表例はフラッシュメモリ(あるいは、フラッシュROM)である)。この場合、主格納エリアと副格納エリアとは、互いに異なる書換え単位ブロック内に形成することが望ましい。
例えばフラッシュメモリは、最近は大容量化の開発が急速に進み、サイズの大きい制御用ソフトウェアを問題なく格納できるようになってきた。本発明において、主格納エリアと副格納エリアは、プログラムがアドレス空間内にてリロケータブルに記述されていれば、例えばメモリ内の空き領域の大きさと位置とを考慮して、主格納エリアと副格納エリアとをメモリ空間内で随時位置を変えて形成するようなことも可能である。しかし、フラッシュメモリは記憶内容の電気的な書き換えが可能ではあるが、読み出し時の駆動電圧と書き込み消去時の駆動電圧が異なるため、RAMのようなビット単位の書き換えが不能であり、上記のごとく、一定の大きさのブロック単位でしか書き込みができない物理構造となっている。この構造では、もし上記のように、不揮発性メモリに割り振られたアドレス空間内での位置に制限なく、主格納エリアと副格納エリアとを設定すると、主格納エリアと副格納エリアとの双方が同じ書換え単位ブロックに形成されてしまうこともありえ、例えば副格納エリアへの更新バージョン書き込み時に暴走などの不具合が生じたとき、主格納エリア内のプログラムデータが破壊される惧れがある。しかし、主格納エリアと副格納エリアとを、互いに異なる書換え単位ブロック内に形成すれば、このような不具合は生じない。
この場合、不揮発性メモリは、各々固有の前記書換え単位ブロックの集合よりなる固定メモリとして構成された第一メモリと第二メモリとを有するものとし、プログラム書換え手段は、同じ制御用ソフトウェアに対し、更新バージョンプログラムを新たに取得する毎に、副格納エリアを第一メモリと第二メモリとに交互に形成するように構成することができる。このようにすると、主格納エリアと副格納エリアとの形成先を第一メモリと第二メモリとの間で交替的に指定することで、同じ制御用ソフトウェアのプログラム更新処理を繰り返し実施する処理を、簡便かつ合理的に行なうことができる。また、この方式を採用する場合の当然の帰結として、副格納エリアの形成側として使用されるメモリには、現行バージョンプログラムよりも古いバージョンのプログラムしか書き込まれていないから、上書きや消去に関する自由度が高い。従って、更新バージョンプログラム書き込みに際して、データ退避などの余分な処理は最小限に留めることができ、該書き込み処理のステップ数も少なくて済む。この場合、プログラム書換え手段は、現行バージョンプログラムに先行する旧バージョンプログラムが主格納エリアとして使用していたメモリエリアに上書きする形で副格納エリアを設定すると、書換え時に新たに消費するメモリ領域を最小限に留めることができ、不揮発性メモリの容量をより有効活用することができる。
上記の第一メモリと第二メモリとは、同じ不揮発性メモリチップのメモリ空間内に区画形成することも可能であるし、第一メモリと第二メモリとを個別の不揮発性メモリチップとして構成することもできる。前者の場合は不揮発性メモリチップの個数が減り、ハードウェアコストの低減に寄与するが、不揮発性メモリチップのハードウェア異常が生じた場合は、第一メモリと第二メモリとが一蓮托生となってしまう問題がある。他方、第一メモリと第二メモリとを個別の不揮発性メモリチップで構成すると、余分な不揮発性メモリチップやメモリ切替えのためのスイッチ機構なども必要となり、ハードウェアコストは増大するが、片方の不揮発性メモリチップが故障しても、他方の不揮発性メモリチップをバックアップ用として活用できる利点がある。
次に、プログラム書換え手段は、副格納エリアに対し更新バージョンプログラムを、そのバージョンを特定するバージョン情報とともに書き込むものとして構成できる。この場合、当該更新後の制御用ソフトウェアを実行するに際して、第一メモリと第二メモリとにそれぞれ格納されているバージョンの異なるプログラムの格納エリアにそれぞれアクセスして、各プログラムに付与されているバージョン情報を読み出して比較し、新しいバージョンとして識別されたプログラムを現行バージョンプログラムとして使用する制御用ソフトウェア起動手段を設けることができる。本発明では、同じ制御用ソフトウェアの現行バージョンプログラムと更新バージョンプログラムとが、不揮発性メモリ内に一時的に並存する形となるので、上記のようにバージョン情報を書き込むことで両者を適確に識別でき、更新後に古いバージョンのプログラムを誤って実行してしまう不具合を防止できる。
この場合、プログラム書換え手段は、副格納エリアに対し、更新バージョンプログラムを正常に書き込み終了するに対応して正常終了情報をバージョン情報とともに書き込むものとすることができる。そして、制御用ソフトウェア起動手段は、当該正常終了情報を有するプログラムについてのみ起動を許可するものとすることができる。つまり、実行対象プログラムを上記バージョン情報の識別だけで特定しようとすると、更新バージョンプログラムがバージョン情報とともに書き込み処理に供されたとき、書き込みが正常完了していなくとも、バージョン情報だけが新しくなっていれば、当該不完全なプログラムが実行に供されてしまう矛盾を招来する。しかし、正常終了情報をバージョン情報とともに書き込むことで、更新バージョンプログラムが正常に使える状態で書き込まれているかどうかを適確に把握でき、こうした矛盾を解消することができる。この場合、バージョン情報が新しいバージョンを示している場合であって正常終了情報が随伴している場合に、更新バージョンプログラムが移行の現行バージョンプログラムとして実施に供され、結果として、副格納エリアは主格納エリアに切り替えられたこととなる。
第一メモリと第二メモリは、それぞれ機能の異なる複数の制御用ソフトウェアのプログラムを格納するものとすることができる。この場合、プログラム書換え手段は、個々の制御用ソフトウェアにプログラム更新が発生する毎に、いずれのメモリに該制御用ソフトウェアの主格納エリア及び副格納エリアを形成するかを独立に定めるものとすることができる。その結果、第一メモリ及び第二メモリには、異なる制御用ソフトウェアの主格納エリアと副格納エリアとが、各制御用ソフトウェアの更新回数に応じて混在形成されることとなる。しかしながら、前述のバージョン情報の書き込んでおくことにより、混在形成された種々の制御用ソフトウェアの主格納エリアと副格納エリアとを問題なく識別でき、不揮発性メモリ内に共存している複数の制御用ソフトウェアのそれぞれについて、更新後に古いバージョンのプログラムを誤って実行してしまう不具合を防止できる。
上記の不揮発性メモリには、プログラム書換え手段の機能実現用ファームウェアである書換用ファームウェアを格納しておくことができる。この場合、CPUは、更新バージョンプログラムを取得した場合に、書換用ファームウェアによるプログラム書換え処理を、現行バージョンプログラムの実行処理とは独立して行なうものとすることができる。これにより、現行バージョンプログラムの実行処理のバックグラウンドでプログラム書換え処理を行なうことができ、対象となる制御用ソフトウェアに基づく機能が、プログラム書換えのために使用不能となる期間を低減ないし排除することが可能となる。
この場合、複数の制御用ソフトウェアの起動状態を管理する制御用ソフトウェア起動管理手段と、制御用ソフトウェア起動管理手段による起動管理状態に基づいて、全制御用ソフトウェアが共通に作動休止している共通休止作動期間を特定する共通休止作動期間特定手段とを設けることができる。書換用ファームウェアは、特定された共通休止作動期間にプログラム書換え処理を行なうものとして構成できる。このようにすると、複数の制御用ソフトウェアに共通する休止期間を用いてプログラム書換え処理を行なうので、プログラム書換えのためのバックグラウンド処理負荷により個々の制御用ソフトウェア処理に対する圧迫が加わり難くなる。これにより、特定の制御用ソフトウェアの処理速度だけが極端に低下して当該制御用ソフトウェアに対応する自動車機能の動作レスポンスが遅れたりする不具合を効果的に抑制することができる。
この場合、書換用ファームウェアは、プログラム書換え処理を、時系列的に順次到来する複数の共通休止作動期間にまたがる時分割処理にて行なうようにすると、更新対象の制御用ソフトウェアのサイズが大きい場合でも、上記効果を享受することができる。
例えば、制御用ソフトウェア起動管理手段が、複数の制御用ソフトウェアの実行タスクを予め定められた時系列順序にて周期的に起動管理するスケジューラを有する場合、書換用ファームウェアは、プログラム書換え処理を行なう場合に、スケジューラにおける複数のアプリケーションの実行タスク配列に、プログラム書換え処理のタスクを組み込む形で時分割処理を行なうものとして構成できる。これにより、プログラム書換えの(個々のアプリケーションから見た)バックグラウンド処理による負荷が、特定のアプリケーションにしわ寄せされる不具合を効果的に防止できる。
上記の態様では、スケジューラが共通休止作動期間特定手段を兼ねており、アプリケーションの実行タスク配列にプログラム書換え処理のタスクを組み込むことで、共通休止作動期間を強制的に形成する形になっていた。他方、共通休止作動期間特定手段は、共通休止作動期間を複数のアプリケーションのいずれに対しても外部からの起動要求が存在しない期間として特定するものとすることも可能である。この場合、該共通休止作動期間において更新バージョンプログラムが取得されていない場合は、CPUに対し、通常動作モードよりも消費電力量が少ないスリープモードへ移行するためのスリープ設定を行い、共通休止作動期間において更新バージョンプログラムが取得されている場合は、書換用ファームウェアによるプログラム書換え処理を立ち上げるスリープ制御手段を設けることができる。つまり、どのアプリケーションに対しても対応する自動車機能への動作要求がなく、通常であれば省電力のためにスリープモードに移行させてしまうような軽処理負荷の期間が到来するのを待ってプログラム書換え処理を立ち上げることで、個々のアプリケーションの実行処理を圧迫する惧れをさらに低減できる。
以下、本発明の実施の形態を、図面を参照して説明する。
図1は、本発明の自動車用制御ユニットの概念が適用されるECUの電気的な構成図である。ECU1は、CPU3からなる主制御部を有し、自動車上に搭載される電子機器(制御対象機器:被制御要素)の制御処理を該主制御部による予め定められたアプリケーション(制御用ソフトウェア)18の実行に基づいて実施するものであり、具体的には、CPU3、ROM5、RAM4及び入出力部(I/Oポート)2がバス接続されたマイクロプロセッサからなる。ECU1は、本実施形態では自動車のボデー系の制御を司るボデー系ECUとして構成される。各アプリケーション18はプラットフォーム5b上で動作するものであり、RAM4内に個別のワークエリアが確保されている。プラットフォーム5bは、ベースとなるハードウェアが相違する場合にも、各アプリケーションに共通の動作環境を与えるためのものであり、該アプリケーションに対する基本ソフト(OS)のほか、アプリケーションやハードウェアとの連携を図るインターフェースプログラムなどを含んで構成されるが、概念的には周知の部分なので説明の詳細は省略する。
アプリケーションは、車両利用者による車両各部の操作に係る機能であるボデー系機能を実現するものである。このボデー系機能とは、具体的には、ドア開閉に伴う制御、窓開閉に伴う制御、ライトスイッチのオン/オフに伴う制御、キーレスエントリ方式等に採用されるワイヤレスドアロック機構の制御、・・・といったものをいう。具体的には、以下のようなものを例示できる:
・運転席ドア、助手席ドア、後部右側座席ドア、後部左側座席ドア、ルーフなどのロック/ロック解除、パワーウィンドウ動作など。
・エアコン、カーオーディオ、カーナビゲーションシステムなどの電源動作など。
・ルームランプ、コックピットランプ、ヘッドライト、スモールランプ、ハザードランプ、テールランプなどのスイッチ点灯制御など。
ECU1は、必要に応じて外部からのスイッチやセンサからの入力信号等も参照しつつ、各アプリケーションの実行により、前述した各種ボデー系の制御対象機器(被制御要素)の動作制御を司る。また、ECU1は、ある条件で、例えば、車両が駐車状態にある場合、又はあるスイッチ操作がない場合にはスリープモードに移行する。このスリープモードへの移行は、具体的には全てのアプリケーションが動作終了し、次の動作開始のための待機状態になっている場合に、ECU1全体を低消費電力モード(ここでは、CPU3の動作クロックを与える主クロック回路8を停止したスタンバイモードとする)へ移行させる形で行なうものであり、その制御はスリープ管理ソフトウェア5cが担う。
図3に示すように、プラットフォームの機能の一部として形成されたスケジューラ(制御用ソフトウェア起動管理手段の機能の一部をなす)によって、複数のアプリケーション1,2‥nの実行タスクは、予め定められた時系列順序にて周期的に起動管理される。あるアプリケーションの実行タスクが到来し、かつ、対応する機能への動作要求が外部から入力されている場合は、そのアプリケーションは起動されることになるし、動作要求が入力されていなければそのアプリケーションの実行タスクはスキップされる。そして、各アプリケーションは、対応する機能への動作要求が入力されない状態で一定時間経過すれば、上記のスリープ状態に移行可能となる。ここで、敢えて移行「可能」と記載したのは、他のソフトウェアに係る機能への動作要求入力が存在する場合は、CPU3全体をスリープモードに移行させることができないからである。
また、一旦スリープモードへ移行したCPU3は、いずれかのアプリケーションに対する外部からの起動要求を、外部ウェイクアップ信号として受けることによりウェイクアップするが、CPU3が一時的にでもウェイクアップしていないと入力を認識できない起動要求信号も存在する。このような入力をトリガーとして特定のアプリケーションを起動したい場合は、スリープ中であっても対応するアプリケーションを周期的に一定時間だけウェイクアップさせ、上記受信入力等がなければ再びスリープ状態に移行する処理が必要となる。すなわち、複数のアプリケーションのいずれに対しても外部からの作動要求がない場合にCPU3をスリープモードへ移行させ、その後、一定のスリープ期間と、外部からの作動要求の有無を確認するために通常モードへウェイクアップさせる一定のウェイクアップ期間とからなるスリープ/ウェイクアップ周期を繰り返す処理(以下、内部ウェイクアップ処理という)が必要となり、この機能は、スリープ管理ソフトウェア5cと、CPU3とは別ハードウェアとして構成されたスリープ制御回路7とによって実現される。
内部ウェイクアップ処理に関しては、要求されるウェイクアップ周期が、一般にはアプリケーション毎に異なり、かつ、外部ウェイクアップ信号によりウェイクアップしてから、再びスリープに移行するタイミングもまちまちである。スリープ管理ソフトウェア5cはタイマールーチンを有し、各アプリケーションに対する外部からの起動要求信号の受信タイミングを把握し、全てのアプリケーションへの起動要求信号の入力が途絶えた場合に、共通休止作動期間に入ったものと判定する。そして、各アプリケーションから要求されるウェイクアップ周期も統括的に把握するとともに、最も短いウェイクアップ周期を見出し、上記共通休止作動期間に入ってから予め定められた時間経過すれば、スリープ制御回路7内に設けられたスリープタイマーにその見出されたウェイクアップ周期をセットして主クロック回路8の動作を停止し、CPU3をスリープさせる(図3も参照)。
一旦スリープしたCPU3は、演算回路としての動作を停止しているのだから、ウェイクアップ処理を自分で行なうことはできない。そこで、スリープ制御回路7は、スリープタイマーにセットされたウェイクアップ周期が経過すると、主クロック回路8に起動信号(内部ウェイクアップ信号)を送ってこれを起動させ、CPU3の動作を再開させる(スリープ制御回路7に自分で目覚し時計(スリープタイマー)をセットして眠りに入り、時刻が到来すればその目覚し時計に起こしてもらう、とイメージすればわかりやすいであろう)。そして、CPU3に対しても、割り込み起動信号(内部ウェイクアップ信号)を送る。CPU3はこれを受け、予め定められた割り込み処理によりウェイクアップのためのリソース設定処理等を行い、ウェイクアップする。
次に、ECU1は、図2に示すように、シリアル通信バス30を介して他のECU1’、1”等と接続されており、図1に示すように、シリアル通信バス30と各ECUの内部バスとは、シリアル通信インターフェース6を介して接続されている。このシリアル通信により、例えば、リセット指示又はウェイクアップ要因を判断するためのデータや、アプリケーション(制御用ソフトウェア)のバージョンアップに関するデータ、つまり更新バージョンプログラムのデータを受信する。符号6Bは、受信したデータを一次格納するための受信バッファである。
アプリケーション18が格納されているROM5は、記憶内容が電気的に書換え可能であって、外部からのリセット信号を受けても当該記憶内容を保持する不揮発性メモリ、本実施形態では、フラッシュROM(フラッシュメモリ)にて構成されている(以下、フラッシュROM5ともいう)。フラッシュROM5は、読み出し時の駆動電圧と書き込み消去時の駆動電圧が異なり、後者(例えば9V)が前者(例えば5V:リセット信号も同レベルのエッジトリガ信号である)よりも高く設定されている。つまり、書き込み/消去の信号電圧がリセット信号よりも電圧で制御されるため、リセット信号を受けてもフラッシュROM5の記憶内容は保持される。フラッシュROM(不揮発性メモリ)5は、その記憶領域が、複数の書換え単位ブロック15に分割されており、該書換え単位ブロック15を単位とする形で記憶内容の消去、書き込み及び書き換えが可能である。図1では、1つの書換え単位ブロック15内に2つのアプリケーションが格納されるように描いているが、アプリケーションのサイズによってその個数が変わることはもちろんであり、特にサイズの大きいアプリケーションの場合、複数の書換え単位ブロックにまたがって格納されることもありえる。本実施形態においてフラッシュROM(不揮発性メモリ)5は、単一のメモリチップからなり、各々固有の書換え単位ブロックの集合よりなる固定メモリとして構成された第一メモリ5Pと第二メモリ5Sとが区画形成されている。
また、フラッシュROM5には、アプリケーション(制御用ソフトウェア)更新用のファームウェアとして、書換用ファームウェア5aが格納されている。アプリケーションの更新先となるECU1において、フラッシュROM5(不揮発性メモリ)には、アプリケーション(制御用ソフトウェア)の現在使用中のバージョンプログラムである現行バージョンプログラムを格納するための主格納エリア20と、現行バージョンプログラムからの更新点を含む更新バージョンプログラムを格納するための副格納エリア21とが形成されている。そして、書換用ファームウェア5aは、外部から取得した更新バージョンプログラムを副格納エリア21に格納するプログラム格納処理と、更新バージョンプログラムの副格納エリア21への書き込みに成功した場合は、現在主格納エリア20として使用されているメモリ領域に代え、更新バージョンプログラムの格納が完了した副格納エリア21を、新たな主格納エリアとして切り替える一方、副格納エリア21への書き込みに失敗した場合は当該切替えを行なわないメモリ切替え処理とを含むプログラム書換え処理(以下、リプログラム処理ともいう)を実行するためのファームウェアである。書換用ファームウェア5aは、プラットフォーム5b及びスリープ管理ソフトウェア5cとともに、アプリケーション群の格納先となる第一メモリ5P及び第二メモリ5Sとは異なるベースメモリ5Bに格納されており、CPU3は、更新バージョンプログラムを取得した場合に、書換用ファームウェア5aによるプログラム書換え処理を、現行バージョンプログラムの実行処理とは独立して行なうようになっている。
図1において、アプリケーション1’,アプリケーション2’,‥と、識別の番号に「’」を付与したものが更新バージョンプログラム、「’」を付与していないものが現行バージョンプログラムであり、番号の同じアプリケーションは、同一アプリケーションであってバージョンが相違するものであることを意味する。書換用ファームウェアによるリプログラム処理は、同じアプリケーションに対し、更新バージョンプログラムを新たに取得する毎に、副格納エリアを第一メモリ5Pと第二メモリ5Sとに交互に形成する形で実施される。
第一メモリ5Pと第二メモリ5Sは、それぞれ機能の異なる複数のアプリケーションのプログラムが格納される。同一アプリケーションに対する主格納エリア20と副格納エリア21とは、一方が第一メモリ5Pに、他方が第二メモリ5Sに形成されている(メモリが異なるのだから、同一アプリケーションに対する主格納エリア20と副格納エリア21とは、互いに異なる書換え単位ブロック内に形成されていることは明らかである)。具体的には、書換用ファームウェア5aは、個々のアプリケーションにプログラム更新が発生する毎に、いずれのメモリ5P,5Sに該アプリケーションの主格納エリア20及び副格納エリア21を形成するかを独立に定める。その結果、第一メモリ5P及び第二メモリ5Sには、異なるアプリケーションの主格納エリア20と副格納エリア21とが、各アプリケーションの更新回数に応じて混在形成されている。つまり、2つのアプリケーション1及びアプリケーション2とで、副格納エリアが異なるメモリに形成されているのは、両アプリケーション間でバージョンアップ(更新)の回数が異なるからである。
また、書換用ファームウェア5aは、副格納エリア21に対し更新バージョンプログラムを、そのバージョンを特定するバージョン情報とともに書き込む。また、副格納エリアに対し、更新バージョンプログラムを正常に書き込み終了するに対応して正常終了ID(情報)をバージョン情報とともに書き込む。アプリケーション1については、主格納エリア20内の現行バージョンプログラムについてもバージョン情報と正常終了IDとが書き込まれているが、これは、前回の更新時には、その主格納エリア20が副格納エリアとして使用されていたためであり、該バージョン情報と正常終了IDとはそのときに書き込まれたものである。一方、アプリケーション2については、副格納エリア21内の更新バージョンプログラムに対し正常終了IDが付与されていない。これは、通信途絶等の要因によって更新バージョンプログラムの書き込みが失敗したことを意味している。
以下、図1の制御対象機器がカーナビゲーションシステムであり、そのカーナビゲーションシステムの機能制御用アプリケーションをバージョンアップのために更新する場合を例にとり、より詳細に説明するが、本発明はもちろんこれに限定されるものではない。図2において、ECU1で使用するアプリケーションの更新バージョンプログラムが、ECU1’に接続された無線通信ユニット31により受信されたとする。この更新バージョンプログラムの受信は種々の形態で行なうことができる。例えば、定期バージョンアップのように、サーバーからの更新バージョンプログラムの配信時刻が決まっており、その時刻に合せて更新バージョンプログラムをECU1’が一方的に配信されてくる場合は、その更新バージョンプログラムを無線通信ユニット31にて自発的に受信すればよい。また、ユーザー側の希望により更新バージョンプログラムをダウンロードして取得する場合は、無線通信ユニット31からサーバーに更新バージョンプログラムの配信要求を無線送信し、これを受けてサーバーから送られてくる更新バージョンプログラムを無線通信ユニット31で受ける方式も可能であるし、ユーザーが携帯電話端末から配信要求を無線送信し、その携帯電話端末にて更新バージョンプログラムを受けた後、Blue Toothなどの近距離無線により無線通信ユニット31へ転送する方式を採用してもよい。いずれの場合も受信した更新バージョンプログラムは、ECU1’内の固定記憶部(例えばフラッシュROM)内にダウンロードされる。図2において、ECU1’はECU1にシリアル通信バス30を介して更新バージョンプログラムの受信を通知する。
図4に示すように、上記リプログラム処理を行なう場合、スケジューラにおける複数のアプリケーションの実行配列に上記のリプログラム処理のタスクが組み込まれる。図5は、そのスケジューラの管理処理に係るフローチャートであり、S101において更新バージョンプログラムの受信通知を受けるとS102に進み、スケジューラに書換用ファームウェアによるリプログラム処理のタスクを組み入れる。これにより、リプログラム処理は、各アプリケーションのバックグラウンドにて並列に実行されることとなる。
まず、図6は、副格納エリア決定処理の流れを示すものである。まずS51で、更新対象となるアプリケーション名を取得する。S52では第一メモリ5Pにてそのアプリケーションの格納エリアを検索する。S53で対応するアプリケーションの格納エリアが存在した場合、S54に進んで、その格納エリアに書き込まれているバージョン情報を読み取る。次に、S55では第二メモリ5Sにてそのアプリケーションの格納エリアを検索する。S56で対応するアプリケーションの格納エリアが存在した場合、S57に進んで、その格納エリアに書き込まれているバージョン情報を読み取る。
そして、S58では、各メモリから読み取った2つのバージョン情報を比較し、S59でどちらが古いバージョンかを判定する。そして、第一メモリ5P側が古ければ、該第一メモリ5P側の格納エリアを副格納エリアとして指定し(S61)、第二メモリ5S側が古ければ、該第二メモリ5S側の格納エリアを副格納エリアとして指定する(S62)。つまり、当該アプリケーションの、現行バージョンプログラムに先行するさらに古いバージョンプログラムが格納されている格納エリアを、最新の更新バージョンプログラムを格納するための副格納エリアとして、ここに該更新バージョンプログラムを上書きする処理とするのである。
なお、S53及びS54で、第一メモリ5Pないし第二メモリ5Sにそれぞれ、対応するアプリケーションが格納されていなかった場合、そのアプリケーションは、高々1バージョンしかインストール実績がないものであることを意味するから、該アプリケーションが非格納となっているメモリ側に、更新バージョンプログラムの格納先となる副格納エリアを新たに作成することとなる(S62,S63)。
次に、図7はリプログラム処理の流れを示すフローチャートである。S1では、更新バージョンプログラムの受信元となっているECU1’に、プログラムデータの送信要求を送る。ECU1’はこれを受け、更新バージョンプログラムを一定のブロックに区切ってデータフレームを作成し、シリアル通信バス30に送出するので、S2でそのデータブロックを受信する。一本のプログラム全体の送信が完了した場合はECU1’からプログラム送信完了通知が送られてくるので、S3でこれを確認する。
プログラム送信完了通知がなければS4に進み、受け取ったデータブロックを図1のRAM4内に形成されているプログラム書換え用ワークエリア4aに一旦バッファリングする。そして、そのバッファリングしたデータブロックを、フラッシュROMの副格納エリア21に書き込む。S6で、スケジューラによるリプログラム処理への1周期分の割当時間が経過していなければ、次のデータブロックの受信・書き込みのためS1へ戻り、以下の処理を繰り返す。他方、S6において次周期でタイムオーバーになることが見込まれる場合にはS7に進み、更新バージョンプログラムの書き込み処理を途中で終了するため、フラッシュROMの副格納エリア21への書き込み中ファイルを一旦クローズする。
そして、図4の下に示すように、スケジューラによるアプリケーション起動サイクルの次の周期にて、再びリプログラム処理のタスクがめぐってくれば、続きのデータブロックの受信・書き込み処理が再開される。スケジューラはタイマー計測により、リプログラム処理のタスクが到来したかどうかを常時把握しており、該タスクの到来時には、他の全てのアプリケーション(制御用ソフトウェア)は動作を休止(起動スタンバイ状態)している。リプログラム処理(プログラム書換え処理)が共通休止作動期間に実行されていること、また、スケジューラが制御用ソフトウェア起動管理手段と共通休止作動期間を特定する共通休止作動期間特定手段の機能を兼ねていることは明らかである。さらに、一度のリプログラム処理のタスクで更新バージョンプログラム全体の受信・書き込みが完了しない場合は、図7のリプログラム処理が、スケジューラによる実行周期が到来するたびに繰り返されるので、プログラム処理が、時系列的に順次到来する複数の共通休止作動期間にまたがる時分割処理にて実行される形になっていることも明らかである。
最初のデータブロックを受信・書き込みする際には、対象となる更新バージョンプログラムのバージョン情報を副格納エリアに書き込む一方、正常終了IDはリセット(消去)しておく。そして、全てのデータブロックの受信・書き込みを完了し、S3でプログラム送信完了通知を受けた場合はS8に進み、正常終了IDを書き込んでリプログラム処理は終了する。スケジューラでは、これに対応してリプログラム処理のタスクを実行周期から削除する処理を行なう。他方、更新バージョンプログラムの受信・書き込みが途中で失敗した場合は、正常終了IDが書き込まれないままとなる。図1の第一メモリ5Pには、アプリケーション2の更新バージョンプログラムが副格納エリア21に書き込まれているが、受信・書き込みが失敗したため、正常終了IDが欠落している。
図8は、リプログラム処理後におけるアプリケーションの起動処理の流れを示すものである。S151で、起動するアプリケーション名を取得する。S152では第一メモリ5Pにてそのアプリケーションの格納エリアを検索する。S153で対応するアプリケーションの格納エリアが存在した場合、S154に進んで、その格納エリアに書き込まれているバージョン情報を読み取る。次に、S155では第二メモリ5Sにてそのアプリケーションの格納エリアを検索する。S156で対応するアプリケーションの格納エリアが存在した場合、S157に進んで、その格納エリアに書き込まれているバージョン情報を読み取る。
そして、S158では、各メモリから読み取った2つのバージョン情報を比較し、S159でどちらが古いバージョンかを判定する。そして、第一メモリ5P側が新しければS160に進み、該第一メモリ5P側の格納エリアに正常終了IDがあるかどうかを判定する。他方、第二メモリ5S側が新しければS162に進み、該第二メモリ5S側の格納エリアに正常終了IDがあるかどうかを判定する。いずれの場合も、正常終了IDがあれば、新バージョンの格納されているメモリ側からアプリケーションを起動し(S160→S161又はS162→S163)、正常終了IDがない場合は、旧バージョンの格納されているメモリ側からアプリケーションを起動する(S160→S163又はS162→S161)。アプリケーションの起動先と指定されるのは、上記の副格納エリアであることは明らかであり、起動先として指定された瞬間から、更新バージョンプログラムは現行バージョンプログラムとして認知され、それまで副格納エリアであったものが主格納エリアに昇格し、他方主格納エリアであったものは副格納エリアに格下げされることとなる(次のプログラム更新処理時には、この関係は再び逆転する)。
一方、S153及びS156で、第一メモリ5Pないし第二メモリ5Sにそれぞれ、対応するアプリケーションが格納されていなかった場合、そのアプリケーションは、他方のメモリ側に1バージョンしかインストールされていないことを意味するから、各々そのメモリの側からアプリケーションを立ち上げることとなる(S167,S170)。いずれの場合も、その唯一インストールされているアプリケーションバージョンについて、正常終了IDが存在しているかどうかを確認した後(S166,S169)、アプリケーションの立ち上げ処理に移行するようにしている。
上記のリプログラム処理は、複数のアプリケーションの実行周期にタスクを組み入れる形で行っていたが、この方式では、アプリケーションが動作中の場合でも、スケジューラによりリプログラム処理に対して強制的にタイムシェアリングがなされるので、アプリケーションの動作を圧迫する可能性もある。そこで、リプログラム処理を、複数のアプリケーションの全てに対して外部からの動作要求が存在しない期間、すなわち、本来であればCPUがスリープ状態に移行してもよい期間を狙って実行するようにすれば、こうした不安を解消することができる(この場合、共通休止作動期間はアプリケーションの全てに対して外部からの動作要求が存在しない該期間として特定されることとなる)。
本実施形態では、スリープモードが、通常モードから時系列的に直接移行可能な第一レベルスリープモードと、該第一レベルスリープモードが所定時間継続した場合に移行可能なスリープモードであって、該第一レベルスリープモードよりもさらに消費電力が小さい第二レベルスリープモードとを有する場合を例にとる。この場合、図1のスリープ管理ソフトウェア(スリープ制御手段)5cは、更新バージョンプログラムの取得の如何によらず、共通休止作動期間において第一レベルスリープモードによるスリープ設定を行い、かつ、更新バージョンプログラムが取得されている場合には、第二レベルスリープモードへの移行に代えてプログラム書換え処理を立ち上げるようにする。例えば、長期間の駐車時など、個々のアプリケーションの起動要求が極度に減少する期間においては、上記のように第二レベルスリープモードが設定されることが多く(当業者は第二レベルスリープモードに入ることを「深い眠りに入る」等とも称している)、これを狙ってプログラム書換え処理を行なえば、アプリケーションの実働処理とのバッティングがほとんど起こらず、また、サイズの大きいプログラムを一括して書き換えることも可能となる。例えば、図1においてスリープ管理ソフトウェア5c及びスリープ制御回路7(スリープ制御手段)は、複数のアプリケーションのいずれに対しても外部からの作動要求がない場合にCPU3をスリープモードへ移行させ、その後、一定のスリープ期間と、外部からの作動要求の有無を確認するために一定期間通常モードへウェイクアップさせるウェイクアップ期間とからなるスリープ/ウェイクアップ周期を繰り返す機能(ウェイクアップ制御手段)を有するものとして構成できる。この場合、図9に示すように、第二レベルスリープモードは、該スリープ/ウェイクアップ周期におけるスリープ期間の長さが、第一レベルスリープモードよりも長く設定される。
図10は、この場合のスリープ管理処理の具体例を示す。この処理は、スリープ期間中であっても、周期的に到来する内部ウェイクアップ期間を利用して実施可能である。まず、図1のRAM4内には図示しないスリープフラグが形成されており、そのスリープフラグの設定状態により、現在設定されているのが第一レベルスリープモードであるか第二レベルスリープモードであるかを識別できる。図10のS201では、このスリープフラグをリードし、S202及びS203で、設定されているのがいずれのレベルのスリープモードであるかを判定する。まず、外部からの起動指令によりウェイクアップした直後などでのタイミングでは、スリープ設定自体が行われておらず、S203からS208に進み、全てのアプリケーションからのスリープ要求があるかどうかを確認する。スリープ要求があればS209で第一レベルスリープモードの設定(第一レベルスリープモードに対応したスリープ時間を、スリープ制御回路7内のスリープタイマーにセットする)を行い、S210でスリープフラグを対応する状態とし、さらに、S211でスリープタイマーを起動する。
一方、S202でスリープフラグが第一レベルスリープ設定を示している場合はS204に進み、スリープタイマーをリードする。そして、S205で第二レベルスリープモードへ移行するための規定時間を超えていればS206へ進み、第二レベルスリープ設定を行い、S207でスリープフラグを対応する内容に書き換える。また、S202でスリープフラグが第一レベルスリープ設定となっていない場合はS203に進み、第二レベルスリープ設定となっていれば処理サイクルを終了する。
図11は、この場合のリプログラム処理の流れを示すものであり、S0においてスリープフラグをリードし、第二レベルスリープ設定になっていれば、図7と同じS7以下のリプログラム処理を実行する(この場合、第二レベルスリープ設定でのウェイクアップ時に処理が実行されることとなる)。S6’で、外部からのウェイクアップ指令があるかどうかを確認し、ウェイクアップ指令がなければS1に戻ってリプログラム処理を継続する。他方、ウェイクアップ指令を受けた場合は、この処理を優先するためにS7に進んで一旦クローズ処理とする。リプログラム処理が再開するのは、次に再び第二レベルスリープが設定されるときである。
一方、バスに対する接続切替えによって、不揮発性メモリの同じアドレス空間を第一メモリ5Pと第二メモリ5Sとの間で共用化する形で使用してもよい。この場合、副格納エリア側のメモリをバスに接続し、更新バージョンプログラムの書き込み処理を行なう。この場合、図12に示すように、独立したメモリチップとして構成されたフラッシュROM(不揮発性メモリ)を設け、各々第一メモリ5P及び第二メモリ5Sとして個別に機能させるとともに、スイッチ9によりどちらか一方を選択的にバスに接続するようにする。書き込み処理が正常に完了すれば、バスに接続されているメモリの更新バージョンプログラムをそのまま新しい現行バージョンプログラムとして実行に供すればよい(結果として、副格納エリアは主格納エリアに切り替えられたこととなる)。このとき、それまで主格納エリア側として機能していたメモリはバスから切り離されたままだからCPU3からは見えなくなり、更新処理が成功しているにも拘わらず当該メモリ内の古いバージョンのプログラムが実行されることは、ハードウェア的にありえない。他方、書き込み処理が正常に完了しなかった場合(あるいは、時分割処理などで途中終了した場合)は、バスに接続されているメモリを主格納エリア側のものに切替え、更新前の現行バージョンプログラムを実行に供すればよい(つまり、前の主格納エリアがそのまま使用され、切替えは行われない)。このとき、副格納エリア側として機能していたメモリはバスから切り離され、書き込みに失敗した不完全な更新バージョンプログラムが実行されることは、ハードウェア的にありえない。この方式によれば、前述のバージョン情報や正常終了情報の書き込みは必ずしも必須ではなくなる。
ただし、上記の方式では、第一メモリ5Pと第二メモリ5Sのうち、バス接続されるものについては、格納されているプログラムが全て現行バージョンプログラムとなる必要がある(つまり、形成されている格納エリアが全て主格納エリアとなる)。この場合、第一メモリ5Pと第二メモリ5Sとの一方において、あるアプリケーションの更新バージョンプログラムを書き込んだ場合、残余のアプリケーションとともに、そのメモリの記憶内容を他方のメモリに丸ごとコピーする処理が必要となる。これにより、次の更新に伴うメモリ切替え時に、当該切替えによって主格納エリア側となるメモリに、非更新のアプリケーションについては、その最新のバージョンを保存することができる。
なお、図12において、プラットフォーム5b、書換用ファームウェア5a及びスリープ管理ソフトウェア5cとは、別のROM5Bに格納されている。このROM5BはマスクROMとして構成しても、フラッシュROMで構成してもいずれでもよい。
図13は、この場合のリプログラム処理の一例を示すものである。メモリ切替え後のメモリコピー処理にある程度の時間を要するので、図11と同様にスリープ時を利用したリプログラム処理となっている。先頭のS500では、スリープフラグの設定内容をリードし、第二レベルスリープ設定がなされているかどうかを確認する。S505では、更新バージョンプログラムの受信が完了したかどうかを確認している。受信完了していなければ、図7と同様のS1〜S7の処理を行なう。ここで、S5において、プログラム送信完了通知を受け取っていればS501に進み、副格納エリア側として使用していたメモリの内容を、主格納エリア側として使用していたメモリにコピーする(メモリコピー処理)。このコピー処理は、副格納エリア側メモリをバスに接続→RAM4へ内容コピー→主格納エリア側メモリをバスに接続→RAM4の内容を主格納エリア側メモリに書き込み、の手順を繰り返すことで実行可能である
なお、途中で外部からウェイクアップ信号が割り込んだ場合はS7に進み、一旦クローズ処理とする。そして、再び第二レベルスリープ設定が確認できれば(S500)、今度は「受信完了」なのでS505からS506へ進む。そして、メモリ切替えがまだであればS501へ進み、メモリコピー処理の続きを行なう。S503でコピー完了が確認できれば、S504へ進み、スイッチ9(図12)に切替信号を出し、副格納エリア側として使用していたメモリをバスに接続する一方、主格納エリア側として使用していたメモリをバスから切り離すメモリ切替え処理を行なう。なお、リプログラミング処理が完了し、次の更新バージョンプログラムも受信していない場合は、S505→S506→リターンとなって、リプログラムに係る処理は実質的に何も行われない。
本発明の自動車用制御ユニットとして構成されたECUの第一例を示すブロック図。 複数のECUが接続された車内ネットワークの概念説明図。 スケジューラの概念図。 リプログラム処理をスケジューラに組み入れて実行する概念を示す図。 スケジューラ管理処理の一例を示すフローチャート。 副格納エリア決定処理の一例を示すフローチャート。 リプログラム処理の第一例を示すフローチャート。 アプリケーション起動処理の一例を示すフローチャート。 複数段階にスリープ設定を行なう一例を示すタイミングチャート。 スリープ管理処理の一例を示すフローチャート。 リプログラム処理の第二例を示すフローチャート。 本発明の自動車用制御ユニットとして構成されたECUの第二例を示すブロック図。 リプログラム処理の第三例を示すフローチャート。
符号の説明
1 ECU(自動車用制御ユニット)
3 CPU
4 RAM
5 フラッシュROM(不揮発性メモリ)
5a 書換用ファームウェア
5P 第一メモリ
5S 第二メモリ
20 主格納エリア
21 副格納エリア

Claims (12)

  1. 自動車上に搭載される電子機器の制御処理を司る制御用ソフトウェアを格納するとともに、記憶内容が電気的に書換え可能であって、外部からのリセット信号を受けても当該記憶内容を保持する不揮発性メモリと、該制御用ソフトウェアの実行メモリとなるRAMと、前記制御用ソフトウェアの実行に基づいて前記電子機器の制御処理を行なうCPUとを備え、
    前記不揮発性メモリは、前記制御用ソフトウェアの現在使用中のバージョンプログラムである現行バージョンプログラムを格納するための主格納エリアと、前記現行バージョンプログラムからの更新点を含む更新バージョンプログラムを格納するための副格納エリアとを有し、さらに、
    外部から取得した前記更新バージョンプログラムを前記副格納エリアに格納するプログラム格納処理と、前記更新バージョンプログラムの前記副格納エリアへの書き込みに成功した場合は、現在主格納エリアとして使用されているメモリ領域に代え、前記更新バージョンプログラムの格納が完了した前記副格納エリアを、新たな主格納エリアとして切り替える一方、前記副格納エリアへの書き込みに失敗した場合は当該切替えを行わないメモリ切替え処理とを含むプログラム書換え処理とを実行するプログラム書換え手段を有してなることを特徴とする自動車用制御ユニット。
  2. 前記不揮発性メモリは、その記憶領域が複数の書換え単位ブロックに分割されるとともに、該書換え単位ブロックを単位とする形でのみ記憶内容の消去、書き込み及び書き換えが可能とされ、前記主格納エリアと前記副格納エリアとを互いに異なる書換え単位ブロック内に形成する請求項1記載の自動車用制御ユニット。
  3. 前記不揮発性メモリは、各々固有の前記書換え単位ブロックの集合よりなる固定メモリとして構成された第一メモリと第二メモリとを有し、
    前記プログラム書換え手段は、同じ制御用ソフトウェアに対し、前記更新バージョンプログラムを新たに取得する毎に、前記副格納エリアを前記第一メモリと第二メモリとに交互に形成する請求項2記載の自動車用制御ユニット。
  4. 前記プログラム書換え手段は、前記副格納エリアに対し前記更新バージョンプログラムを、そのバージョンを特定するバージョン情報とともに書き込むものであり、
    当該更新後の制御用ソフトウェアを実行するに際して、前記第一メモリと前記第二メモリとにそれぞれ格納されているバージョンの異なるプログラムの格納エリアにそれぞれアクセスして、各プログラムに付与されているバージョン情報を読み出して比較し、新しいバージョンとして識別されたプログラムを前記現行バージョンプログラムとして使用する制御用ソフトウェア起動手段が設けられている請求項3記載の自動車用制御ユニット。
  5. 前記プログラム書換え手段は、前記副格納エリアに対し、前記更新バージョンプログラムを正常に書き込み終了するに対応して正常終了情報を書き込むものであり、前記制御用ソフトウェア起動手段は当該正常終了情報を有するプログラムについてのみ起動を許可するものである請求項4記載の自動車用制御ユニット。
  6. 前記第一メモリと前記第二メモリは、それぞれ機能の異なる複数の制御用ソフトウェアのプログラムを格納するものであり、前記プログラム書換え手段は、個々の制御用ソフトウェアにプログラム更新が発生する毎に、いずれのメモリに該制御用ソフトウェアの主格納エリア及び副格納エリアを形成するかを独立に定めるものであり、
    前記第一メモリ及び前記第二メモリには、異なる制御用ソフトウェアの主格納エリアと副格納エリアとが、各制御用ソフトウェアの更新回数に応じて混在形成される請求項4又は請求項5に記載の自動車用制御ユニット。
  7. 前記不揮発性メモリには、前記プログラム書換え手段の機能実現用ファームウェアである書換用ファームウェアが格納され、
    前記CPUは、前記更新バージョンプログラムを取得した場合に、前記書換用ファームウェアによる前記プログラム書換え処理を、前記現行バージョンプログラムの実行処理とは独立して行なう請求項1ないし請求項6のいずれか1項に記載の自動車用制御ユニット。
  8. 前記複数の制御用ソフトウェアの起動状態を管理する制御用ソフトウェア起動管理手段と、
    前記制御用ソフトウェア起動管理手段による起動管理状態に基づいて、全制御用ソフトウェアが共通に作動休止している共通休止作動期間を特定する共通休止作動期間特定手段とを備え、
    前記書換用ファームウェアは、特定された前記共通休止作動期間に前記プログラム書換え処理を行なう請求項7記載の自動車用制御ユニット。
  9. 前記書換用ファームウェアは、前記プログラム書換え処理を、時系列的に順次到来する複数の前記共通休止作動期間にまたがる時分割処理にて行なう請求項8記載の自動車用制御ユニット。
  10. 前記制御用ソフトウェア起動管理手段は、前記複数の実行タスクを予め定められた時系列順序にて周期的に起動管理するスケジューラを有し、
    前記書換用ファームウェアは、前記プログラム書換え処理を行なう場合に、前記スケジューラにおける前記複数の制御用ソフトウェアの実行タスク配列に、前記プログラム書換え処理のタスクを組み込む形で前記時分割処理を行なう請求項9記載の自動車用制御ユニット。
  11. 前記共通休止作動期間特定手段は、前記共通休止作動期間を前記複数のアプリケーションのいずれに対しても外部からの起動要求が存在しない期間として特定するものであり、
    前記共通休止作動期間にて前記更新バージョンプログラムが取得されていない場合は、前記CPUに対し、通常動作モードよりも消費電力量が少ないスリープモードへ移行するためのスリープ設定を行い、前記共通休止作動期間において前記更新バージョンプログラムが取得されている場合は、前記書換用ファームウェアによる前記プログラム書換え処理を立ち上げるスリープ制御手段を有する請求項9又は請求項10に記載の自動車用制御ユニット。
  12. 前記スリープモードは、前記通常モードから時系列的に直接移行可能な第一レベルスリープモードと、該第一レベルスリープモードが所定時間継続した場合に移行可能なスリープモードであって、該第一レベルスリープモードよりもさらに消費電力が小さい第二レベルスリープモードとを有し、前記スリープ制御手段は、前記更新バージョンプログラムの取得の如何によらず、前記共通休止作動期間において前記第一レベルスリープモードによるスリープ設定を行い、かつ、前記更新バージョンプログラムが取得されている場合には、前記第二レベルスリープモードへの移行に代えて前記プログラム書換え処理を立ち上げる請求項11記載の自動車用制御ユニット。

JP2005122734A 2005-04-20 2005-04-20 自動車用制御ユニット Active JP4548601B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005122734A JP4548601B2 (ja) 2005-04-20 2005-04-20 自動車用制御ユニット
US11/407,130 US20060259207A1 (en) 2005-04-20 2006-04-20 Electronic control system for automobile
US12/805,254 US8607215B2 (en) 2005-04-20 2010-07-21 Electronic control system for rewriting control software in an automobile
US14/073,898 US20140068590A1 (en) 2005-04-20 2013-11-07 Electronic control system for automobile

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005122734A JP4548601B2 (ja) 2005-04-20 2005-04-20 自動車用制御ユニット

Publications (2)

Publication Number Publication Date
JP2006301960A true JP2006301960A (ja) 2006-11-02
JP4548601B2 JP4548601B2 (ja) 2010-09-22

Family

ID=37470173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005122734A Active JP4548601B2 (ja) 2005-04-20 2005-04-20 自動車用制御ユニット

Country Status (1)

Country Link
JP (1) JP4548601B2 (ja)

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008222051A (ja) * 2007-03-13 2008-09-25 Denso Corp マイクロコンピュータ、プログラム、電子制御装置、及び通信システム
JP2009087107A (ja) * 2007-10-01 2009-04-23 Hitachi Ltd 車両用制御システム
JP2010117984A (ja) * 2008-11-14 2010-05-27 Toshiba Corp 主記憶データ書き換え装置及び方法
WO2010098019A2 (en) 2009-02-24 2010-09-02 Fujitsu Ten Limited Program update device, program update method, and information processing device
JP2010198387A (ja) * 2009-02-25 2010-09-09 Kyocera Corp 電子機器
US7869917B2 (en) 2007-02-09 2011-01-11 Toyota Jidosha Kabushiki Kaisha Vehicle control apparatus and control method of same
JP2012500516A (ja) * 2008-08-11 2012-01-05 ティーティーアイ インベンションズ ディー エルエルシー 車両において、ネットワーク化された携帯機器を使用するためのシステム及び方法
US8135533B2 (en) 2007-01-15 2012-03-13 Denso Corporation Electronic engine control apparatus having improved configuration for ensuring excellent engine startability
JP2012103935A (ja) * 2010-11-11 2012-05-31 Brother Ind Ltd 端末装置及びプログラム
JP2013107497A (ja) * 2011-11-21 2013-06-06 Denso Corp 車両用のデータ書き換えシステム、並びにこのデータ書き換えシステムに用いられる車載装置及び書き換え装置
JP2013254264A (ja) * 2012-06-05 2013-12-19 Denso Corp 電子制御装置
JP2013254263A (ja) * 2012-06-05 2013-12-19 Denso Corp 電子制御装置
JP2014522061A (ja) * 2011-08-10 2014-08-28 マイクロソフト コーポレーション 接続型スタンバイのためのプロセスの一時停止及び/又は制限
JP2014522062A (ja) * 2011-08-10 2014-08-28 マイクロソフト コーポレーション 接続型スタンバイのためのプロセスの一時停止及び/又は制限
JP2014523059A (ja) * 2011-08-10 2014-09-08 マイクロソフト コーポレーション 接続型スタンバイのためのプロセスの一時停止及び/又は制限
JP2016060407A (ja) * 2014-09-19 2016-04-25 日産自動車株式会社 車両制御プログラム書換システム及び車両制御プログラム書換方法
JP2016072675A (ja) * 2014-09-26 2016-05-09 Kddi株式会社 管理装置、車両、管理方法およびコンピュータプログラム
JP2018060323A (ja) * 2016-10-04 2018-04-12 株式会社オートネットワーク技術研究所 車載更新システム、車載更新装置、車載機器及び更新方法
JP2018092241A (ja) * 2016-11-30 2018-06-14 株式会社デンソー 車載電子制御装置
JP2018200510A (ja) * 2017-05-25 2018-12-20 株式会社デンソーテン ソフトウェア更新装置、ソフトウェア更新システム、及び、ソフトウェア更新方法
DE102018210956A1 (de) 2017-07-13 2019-01-17 Denso Corporation Elektronische steuereinheit und aktualisierungssoftware-verteilungssystem
US10241807B2 (en) 2014-09-26 2019-03-26 Hitachi Automotive Systems, Ltd. Vehicle control device, reprogramming system
CN110175035A (zh) * 2018-02-20 2019-08-27 松下电器产业株式会社 电子设备、程序更新方法及计算机程序
JP6573052B1 (ja) * 2018-03-28 2019-09-11 住友電気工業株式会社 制御装置、制御方法、およびコンピュータプログラム
WO2019187535A1 (ja) * 2018-03-28 2019-10-03 住友電気工業株式会社 制御装置、制御方法、およびコンピュータプログラム
JP2019168834A (ja) * 2018-03-22 2019-10-03 株式会社デンソー 電子制御装置
CN110704076A (zh) * 2019-10-15 2020-01-17 上海元城汽车技术有限公司 数据处理方法和装置、车载控制器及计算机可读存储介质
JP2020052960A (ja) * 2018-09-28 2020-04-02 株式会社デンソーテン 車両制御装置および車両制御方法
JP2020119419A (ja) * 2019-01-28 2020-08-06 日立オートモティブシステムズ株式会社 電子制御装置及びプログラム更新方法
JP2020144682A (ja) * 2019-03-07 2020-09-10 パナソニックIpマネジメント株式会社 プログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラム
CN111722856A (zh) * 2019-03-19 2020-09-29 上海汽车集团股份有限公司 车载微控制器中固件的升级方法和装置
CN112099819A (zh) * 2020-08-20 2020-12-18 深圳市元征科技股份有限公司 一种数据处理方法、数据处理装置及车载终端
US10871959B2 (en) 2017-01-25 2020-12-22 Hitachi Automotive Systems, Ltd. Vehicle control device and program update system
CN112602057A (zh) * 2018-08-10 2021-04-02 株式会社电装 电子控制装置、车辆用电子控制系统、改写的执行控制方法、改写的执行控制程序以及规格数据的数据结构
CN112639723A (zh) * 2018-08-10 2021-04-09 株式会社电装 车辆用主装置、车辆用电子控制系统、激活请求的指示方法以及激活请求的指示程序
JP2021111133A (ja) * 2020-01-10 2021-08-02 Necプラットフォームズ株式会社 更新装置、リアルタイムシステム、更新方法及び更新プログラム
WO2021171906A1 (ja) * 2020-02-28 2021-09-02 株式会社日立製作所 情報処理装置、及びプログラム起動方法
DE112020001541T5 (de) 2019-12-09 2022-01-05 Panasonic Intellectual Property Management Co., Ltd. Informationsverarbeitungsvorrichtung, beweglicher gegenstand und informationsverarbeitungsverfahren
EP4071604A1 (en) 2021-04-07 2022-10-12 Yazaki Corporation Updating method for in-vehicle software and in-vehicle system
US11886869B2 (en) 2020-01-31 2024-01-30 Panasonic Intellectual Property Management Co., Ltd. Information processing device and information processing method for updating a program by partially relocating the program
JP7436896B1 (ja) 2022-08-29 2024-02-22 富士通クライアントコンピューティング株式会社 情報処理装置、情報処理システム及び情報処理プログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6760813B2 (ja) 2016-10-14 2020-09-23 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
WO2020032118A1 (ja) * 2018-08-10 2020-02-13 株式会社デンソー 車両用マスタ装置、車両用電子制御システム、アクティベート要求の指示方法及びアクティベート要求の指示プログラム
WO2020032192A1 (ja) 2018-08-10 2020-02-13 株式会社デンソー 電子制御装置、車両用電子制御システム、アクティベートの実行制御方法及びアクティベートの実行制御プログラム
WO2020032122A1 (ja) * 2018-08-10 2020-02-13 株式会社デンソー 電子制御装置、車両用電子制御システム、書換えの実行制御方法、書換えの実行制御プログラム及び諸元データのデータ構造
JP7047819B2 (ja) 2018-08-10 2022-04-05 株式会社デンソー 電子制御装置、車両用電子制御システム、アクティベートの実行制御方法及びアクティベートの実行制御プログラム
JP7362583B2 (ja) 2020-09-23 2023-10-17 株式会社東芝 情報処理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024044A (ja) * 2000-07-10 2002-01-25 Toshiba Corp 制御装置
JP2004249914A (ja) * 2003-02-21 2004-09-09 Matsushita Electric Ind Co Ltd 車載装置
JP2005100428A (ja) * 2004-10-12 2005-04-14 Fujitsu Ltd 無線端末装置及び該装置へのソフトウェア供給装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002024044A (ja) * 2000-07-10 2002-01-25 Toshiba Corp 制御装置
JP2004249914A (ja) * 2003-02-21 2004-09-09 Matsushita Electric Ind Co Ltd 車載装置
JP2005100428A (ja) * 2004-10-12 2005-04-14 Fujitsu Ltd 無線端末装置及び該装置へのソフトウェア供給装置

Cited By (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135533B2 (en) 2007-01-15 2012-03-13 Denso Corporation Electronic engine control apparatus having improved configuration for ensuring excellent engine startability
US7869917B2 (en) 2007-02-09 2011-01-11 Toyota Jidosha Kabushiki Kaisha Vehicle control apparatus and control method of same
JP2008222051A (ja) * 2007-03-13 2008-09-25 Denso Corp マイクロコンピュータ、プログラム、電子制御装置、及び通信システム
JP2009087107A (ja) * 2007-10-01 2009-04-23 Hitachi Ltd 車両用制御システム
JP2012500516A (ja) * 2008-08-11 2012-01-05 ティーティーアイ インベンションズ ディー エルエルシー 車両において、ネットワーク化された携帯機器を使用するためのシステム及び方法
US8725962B2 (en) 2008-11-14 2014-05-13 Kabushiki Kaisha Toshiba Device and method for rewriting main memory data
JP2010117984A (ja) * 2008-11-14 2010-05-27 Toshiba Corp 主記憶データ書き換え装置及び方法
WO2010098019A2 (en) 2009-02-24 2010-09-02 Fujitsu Ten Limited Program update device, program update method, and information processing device
JP2010198387A (ja) * 2009-02-25 2010-09-09 Kyocera Corp 電子機器
JP2012103935A (ja) * 2010-11-11 2012-05-31 Brother Ind Ltd 端末装置及びプログラム
JP2014523059A (ja) * 2011-08-10 2014-09-08 マイクロソフト コーポレーション 接続型スタンバイのためのプロセスの一時停止及び/又は制限
JP2014522061A (ja) * 2011-08-10 2014-08-28 マイクロソフト コーポレーション 接続型スタンバイのためのプロセスの一時停止及び/又は制限
JP2014522062A (ja) * 2011-08-10 2014-08-28 マイクロソフト コーポレーション 接続型スタンバイのためのプロセスの一時停止及び/又は制限
JP2013107497A (ja) * 2011-11-21 2013-06-06 Denso Corp 車両用のデータ書き換えシステム、並びにこのデータ書き換えシステムに用いられる車載装置及び書き換え装置
US9104522B2 (en) 2011-11-21 2015-08-11 Denso Corporation Data rewrite system for vehicle, in-vehicle apparatus and rewrite apparatus
JP2013254263A (ja) * 2012-06-05 2013-12-19 Denso Corp 電子制御装置
JP2013254264A (ja) * 2012-06-05 2013-12-19 Denso Corp 電子制御装置
JP2016060407A (ja) * 2014-09-19 2016-04-25 日産自動車株式会社 車両制御プログラム書換システム及び車両制御プログラム書換方法
JP2016072675A (ja) * 2014-09-26 2016-05-09 Kddi株式会社 管理装置、車両、管理方法およびコンピュータプログラム
US10241807B2 (en) 2014-09-26 2019-03-26 Hitachi Automotive Systems, Ltd. Vehicle control device, reprogramming system
CN110300953A (zh) * 2016-10-04 2019-10-01 株式会社自动网络技术研究所 车载更新系统、车载更新装置、车载设备及更新方法
JP2018060323A (ja) * 2016-10-04 2018-04-12 株式会社オートネットワーク技術研究所 車載更新システム、車載更新装置、車載機器及び更新方法
WO2018066353A1 (ja) * 2016-10-04 2018-04-12 株式会社オートネットワーク技術研究所 車載更新システム、車載更新装置、車載機器及び更新方法
JP2018092241A (ja) * 2016-11-30 2018-06-14 株式会社デンソー 車載電子制御装置
US10871959B2 (en) 2017-01-25 2020-12-22 Hitachi Automotive Systems, Ltd. Vehicle control device and program update system
JP2018200510A (ja) * 2017-05-25 2018-12-20 株式会社デンソーテン ソフトウェア更新装置、ソフトウェア更新システム、及び、ソフトウェア更新方法
DE102018210956A1 (de) 2017-07-13 2019-01-17 Denso Corporation Elektronische steuereinheit und aktualisierungssoftware-verteilungssystem
CN110175035A (zh) * 2018-02-20 2019-08-27 松下电器产业株式会社 电子设备、程序更新方法及计算机程序
JP7031411B2 (ja) 2018-03-22 2022-03-08 株式会社デンソー 電子制御装置
JP2019168834A (ja) * 2018-03-22 2019-10-03 株式会社デンソー 電子制御装置
WO2019187535A1 (ja) * 2018-03-28 2019-10-03 住友電気工業株式会社 制御装置、制御方法、およびコンピュータプログラム
JP6573052B1 (ja) * 2018-03-28 2019-09-11 住友電気工業株式会社 制御装置、制御方法、およびコンピュータプログラム
CN112602057A (zh) * 2018-08-10 2021-04-02 株式会社电装 电子控制装置、车辆用电子控制系统、改写的执行控制方法、改写的执行控制程序以及规格数据的数据结构
CN112639723A (zh) * 2018-08-10 2021-04-09 株式会社电装 车辆用主装置、车辆用电子控制系统、激活请求的指示方法以及激活请求的指示程序
JP2020052960A (ja) * 2018-09-28 2020-04-02 株式会社デンソーテン 車両制御装置および車両制御方法
JP2020119419A (ja) * 2019-01-28 2020-08-06 日立オートモティブシステムズ株式会社 電子制御装置及びプログラム更新方法
US11914871B2 (en) 2019-01-28 2024-02-27 Hitachi Astemo, Ltd. Electronic control device and program-update method
JP7232062B2 (ja) 2019-01-28 2023-03-02 日立Astemo株式会社 電子制御装置及びプログラム更新方法
EP3920020A4 (en) * 2019-01-28 2022-11-16 Hitachi Astemo, Ltd. ELECTRONIC CONTROL DEVICE AND PROGRAM UPDATE METHOD
JP2020144682A (ja) * 2019-03-07 2020-09-10 パナソニックIpマネジメント株式会社 プログラム更新システム、制御システム、移動体、プログラム更新方法及びプログラム
CN111722856A (zh) * 2019-03-19 2020-09-29 上海汽车集团股份有限公司 车载微控制器中固件的升级方法和装置
CN111722856B (zh) * 2019-03-19 2024-04-09 上海汽车集团股份有限公司 车载微控制器中固件的升级方法和装置
CN110704076A (zh) * 2019-10-15 2020-01-17 上海元城汽车技术有限公司 数据处理方法和装置、车载控制器及计算机可读存储介质
US11947970B2 (en) 2019-12-09 2024-04-02 Panasonic Intellectual Property Management Co., Ltd. Information processing device, moving object, and information processing method
DE112020001541T5 (de) 2019-12-09 2022-01-05 Panasonic Intellectual Property Management Co., Ltd. Informationsverarbeitungsvorrichtung, beweglicher gegenstand und informationsverarbeitungsverfahren
JP2021111133A (ja) * 2020-01-10 2021-08-02 Necプラットフォームズ株式会社 更新装置、リアルタイムシステム、更新方法及び更新プログラム
US11886869B2 (en) 2020-01-31 2024-01-30 Panasonic Intellectual Property Management Co., Ltd. Information processing device and information processing method for updating a program by partially relocating the program
WO2021171906A1 (ja) * 2020-02-28 2021-09-02 株式会社日立製作所 情報処理装置、及びプログラム起動方法
JP7477990B2 (ja) 2020-02-28 2024-05-02 日立Astemo株式会社 情報処理装置、及びプログラム起動方法
CN112099819A (zh) * 2020-08-20 2020-12-18 深圳市元征科技股份有限公司 一种数据处理方法、数据处理装置及车载终端
US11816473B2 (en) 2021-04-07 2023-11-14 Yazaki Corporation Updating method for in-vehicle software and in-vehicle system
EP4071604A1 (en) 2021-04-07 2022-10-12 Yazaki Corporation Updating method for in-vehicle software and in-vehicle system
JP7436896B1 (ja) 2022-08-29 2024-02-22 富士通クライアントコンピューティング株式会社 情報処理装置、情報処理システム及び情報処理プログラム

Also Published As

Publication number Publication date
JP4548601B2 (ja) 2010-09-22

Similar Documents

Publication Publication Date Title
JP4548601B2 (ja) 自動車用制御ユニット
US8607215B2 (en) Electronic control system for rewriting control software in an automobile
JP6376312B1 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
KR100415371B1 (ko) 컴퓨터
JP4577075B2 (ja) 自動車用制御ユニット
EP3200077B1 (en) Vehicle control device, reprogramming system
JPH10133940A (ja) メモリ装置
JP3351398B2 (ja) データ通信装置
JP6447469B2 (ja) 書換システム
JP2002244877A (ja) プリンタ装置およびそのプログラム更新方法
JP4501159B2 (ja) 自動車用制御ユニット
JP2002278850A (ja) 半導体装置
EP3584697B1 (en) Information processing device
JP4446169B2 (ja) 自動車用制御装置
JP2001147862A (ja) フラッシュメモリ書込方法
JP4446170B2 (ja) 自動車用スリープ制御システム
JP7219813B2 (ja) 演算処理装置、車両制御装置及び更新方法
JPH09293025A (ja) メモリアクセス制御方法及び装置
JP6699598B2 (ja) 車両制御装置
JP2008003668A (ja) 制御プログラム書換システム、書換プログラム及び制御プログラム書換方法、並びに情報処理装置、情報処理装置制御プログラム及び情報処理装置制御方法
JP2007084232A (ja) エレベータ制御プログラム更新装置
CN113126883A (zh) 一种数据处理方法、系统及存储介质
JP2021060747A (ja) マイクロコンピュータ
JP2024014218A (ja) 書換制御装置、電子制御装置、書換制御システム、及び書換制御方法
CN115480795A (zh) 一种支持休眠功能的车载ecu控制单元的升级方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100527

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100616

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100629

R151 Written notification of patent or utility model registration

Ref document number: 4548601

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250