説明

自動車用電子制御装置及び自動車用電子制御装置におけるデータ書き込み方法

【課題】外部から転送される書き込みデータのサイズが、自動車用電子制御装置が備えるメモリの書き換え領域サイズ(1ブロックのサイズ)の半分であっても、メモリに対して所期のデータ書き込みを行えるようにする。
【解決手段】外部ツール(書き込みツール)は、書き込みデータ(128byte)をエンコードして、自動車用電子制御装置側(ECU側)に送信する。自動車用電子制御装置は、受け取った書き込みデータを一時的に保存し、外部ツールへ仮の書き込み終了応答を行う。書き込み終了応答を受け取った外部ツールは、続く書き込みデータをエンコードして、自動車用電子制御装置側に送信する。自動車用電子制御装置は、今回受け取った書き込みデータと、先に一時的に保存しておいた書き込みデータとをまとめて、書き換え領域サイズ(256byte)のデータとして、受け取ったアドレスに応じて、内蔵するフラッシュROM(フラッシュメモリ)の書き換えを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動車用電子制御装置及び自動車用電子制御装置におけるデータ書き込み方法に関し、詳しくは、外部から転送される書き込みデータのサイズが、不揮発性メモリの書き換え領域サイズの半分以下である場合におけるデータ書き換え技術に関する。
【背景技術】
【0002】
従来から、ブロック単位で書き換え可能なフラッシュメモリ(不揮発性メモリ)を備え、このフラッシュメモリに記憶したプログラムに基づき、自動車に搭載したエンジンなどの制御対象を制御する自動車用電子制御装置が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−257502号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、自動車用電子制御装置が、フラッシュメモリのデータ書き換えを行う場合、ブロック単位で書き換えが可能であるため、外部ツールから転送される書き込みデータのサイズと、前記ブロックのサイズとが一致していれば、外部ツールから暗号化されたデータを受け取り、そのデータを復号化して書き込みデータを作成し、それをそのまま1ブロックに書き込み、正常に書き込みが終了した場合には、外部ツールへ書き込み終了応答及び次の書き込みデータの送信要求を行う、という処理を繰り返すことで、フラッシュメモリの書き換え領域にデータを書き込むことができる。
【0005】
しかし、例えば、外部ツールから転送される書き込みデータのサイズが128byteであるのに対し、フラッシュメモリの書き換え単位のサイズが256byteであって、外部から転送される書き込みデータのサイズが、書き換えを行うフラッシュメモリの1ブロックサイズの半分以下であると、従来の書き換え方法を適用した場合、本来1ブロックに書き込むべきデータの書き込みが行えないという問題が生じる。
【0006】
本願発明は上記問題点に鑑みなされたものであり、外部から転送される書き込みデータのサイズが、自動車用電子制御装置が備えるメモリの書き換え領域サイズ(1ブロックのサイズ)の半分以下であっても、メモリに対して所期のデータ書き込みを行える自動車用電子制御装置及び自動車用電子制御装置におけるデータ書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
そのため、本願発明に係る自動車用電子制御装置及びデータ書き込み方法は、外部から転送された書き込みデータを一時的に保存し、複数の書き込みデータをまとめて書き換え領域サイズとしてから不揮発性メモリに一括して書き込むようにした。
【発明の効果】
【0008】
上記発明によると、外部から転送される書き込みデータのサイズが、不揮発性メモリの書き換え領域サイズの半分以下であっても、書き換え領域サイズのデータを書き込むことができ、メモリに対して所期のデータ書き込みを行える。
【図面の簡単な説明】
【0009】
【図1】実施形態における自動車用電子制御装置としてのエンジン・コントロール・ユニットのシステム構成を示すブロック図である。
【図2】実施形態におけるフラッシュROMの書き換え手順を示す模式図である。
【図3】実施形態におけるフラッシュROMの書き換え手順を示すフローチャートである。
【図4】実施形態における書き込みデータの判別と判別結果に基づく処理内容との相関を示す対応図である。
【図5】実施形態において「前回データ」が「256byte境界」(前半部分データ)であって、これに連続しない「128byte境界」(後半部分データ)の「今回データ」を受け取った場合の例を示す。
【図6】実施形態において「前回データ」が「256byte境界」(前半部分データ)であって、「今回データ」も「256byte境界」(前半部分データ)である場合の例を示す。
【図7】実施形態において「前回データ」が「128byte境界」(後半部分データ)であって、「今回データ」も「128byte境界」(後半部分データ)である場合の例を示す。
【発明を実施するための形態】
【0010】
以下に本発明の実施の形態を説明する。
図1は、本発明の実施形態における自動車用電子制御装置を示すブロック図である。
図1に示す自動車用電子制御装置は、自動車の動力源としてのエンジン(内燃機関)を制御するエンジン・コントロール・ユニット(ECU)1であり、エンジンの運転状態を検出する各種センサの出力信号を入力し、これらの出力信号に基づいて操作信号を演算し、該操作信号をインジェクタ2やイグナイタ3などの制御対象に対して出力する。
各種センサとしては、エンジンの吸入空気量を検出するエアフローセンサ4やエンジンの回転信号を出力するクランク角センサ5などを備える。
【0011】
但し、自動車用電子制御装置を、エンジンを制御対象とするエンジン・コントロール・ユニット1に限定するものではなく、例えば、自動変速機や燃料供給装置などを制御対象とする自動車用電子制御装置であってもよい。従って、センサ類や操作信号を出力する制御対象も、前述のものに限定するものではない。
マイクロコンピュータ20は、各種センサの出力信号を、入出力回路6を介して入力し、また、操作信号を、入出力回路6を介してインジェクタ2やイグナイタ3などの制御対象に対して出力する。
【0012】
マイクロコンピュータ20は、入出力回路6との間で信号の送受信を行うI/O21、CPU(中央処理装置)22、RAM23、フラッシュROM24などを備えている。
フラッシュROM(フラッシュメモリ)24は、電気的にデータの消去及び書き換えが可能な不揮発性メモリであり、マイクロコンピュータ20は、フラッシュROM24やRAM23に格納した各種のプログラムを実行する。尚、データの消去及び書き換えが不能な不揮発性メモリであるROMを、フラッシュROM24と共に備えてもよい。
フラッシュROM24は、データ書き換えを行わない領域(書き換え禁止領域)を備え、この書き換え禁止領域に、フラッシュROM24のデータ書き換えを行う領域(書き換え領域)におけるデータの消去・書き込みを制御するフラッシュ書き込みプログラムを格納している。
【0013】
また、入出力回路6はCAN(Controller Area Network)に接続し、エンジン・コントロール・ユニット1は、CANを介して、他のコントロールユニットや外部ツールなどと相互に通信することが可能となっている。
フラッシュ書き込みプログラムに従ったデータ書き換えを行う場合には、フラッシュ書き込みツール30をCANに接続することで、エンジン・コントロール・ユニット1は、フラッシュ書き込みツール30が送信した書き込みデータを、CANを介して受け取り、フラッシュ書き込みプログラムに従ってフラッシュROM24のデータ書き換えを行う。
【0014】
フラッシュ書き込みツール30は、書き込みデータをマイクロコンピュータ20に転送する携帯型の外部ツール(携帯型の電子診断装置)であり、例えば、自動車の組み立て工場や整備工場などに配備され、CANへの接続を行うコネクタ34を備えていて、データ書き換えを行う自動車のCANに接続した状態で、エンジン・コントロール・ユニット1に、フラッシュROM(フラッシュメモリ)24の書き込みデータを転送する。
尚、フラッシュ書き込みツール30とエンジン・コントロール・ユニット1との接続を、有線に代えて無線とし、フラッシュ書き込みツール30からエンジン・コントロール・ユニット1に対し、書き込みデータを無線によって転送する構成とすることができる。
【0015】
フラッシュ書き込みツール30には、書き込みデータのセット(対応機種、バージョンなど)の確認・選択、書き換え実施指令、書き換え状況の確認などを行うために、液晶モニタ(表示部)31や操作部32を備え、また、書き込みデータ(書き換え用のデータ)を保存しておくためのフラッシュメモリ33を備え、このフラッシュメモリ33に保存している書き込みデータを、エンジン・コントロール・ユニット1に送信する。
そして、マイクロコンピュータ20は、フラッシュ書き込みプログラムに従って、フラッシュROM24の書き換え領域を消去し、フラッシュ書き込みツール30から受け取った書き込みデータを書き込むことで、フラッシュROM24のデータ書き換えを実施する。
【0016】
本実施形態において、フラッシュROM24は、書き込みサイズが256byteであり、データを消去したブロックに対して、256byteを1ブロックとしてデータ書き込みを行える。尚、データ消去によって、各バイトのデータはFFに置き換えられる。
一方、フラッシュ書き込みツール30は、フラッシュROM24の書き込みサイズである256byteの半分の128byteを、転送する書き込みデータのサイズとする。
【0017】
次に、フラッシュROM24のデータ書き換えの手順を、図2を参照しつつ、図3のフローチャートに従って説明する。
図2は、左側のフラッシュ書き込みツール30から、CANを介して、右側のエンジン・コントロール・ユニット1に向けて、書き込みデータ及び書き込みデータ毎のアドレス情報を転送し、また、右側のエンジン・コントロール・ユニット1から、CANを介して、左側のフラッシュ書き込みツール30に対し、書き込み応答や書き込みデータの送信要求などを示すステータスコードを送信する様子を示す模式図である。そして、図3のフローチャートは、図2に示したデータ・ステータスコードの送受信によるデータ書き換えの手順を示すものである。
【0018】
まず、フラッシュ書き込みツール30は、フラッシュメモリ33から読み出した128byteの書き込みデータdata1をエンコード(符号化)し、この符号化した書き込みデータdata1’をアドレスaddr1と共に、CANを介して、エンジン・コントロール・ユニット1(マイクロコンピュータ20)に送信する(ステップS101)。
書き込みデータdata1’及びアドレスaddr1を受け取ったマイクロコンピュータ20は、書き込みデータdata1’をデコード(復号化)し、この復号化した128byteの書き込みデータdata1を、一時的にプログラム内で保存する(ステップS102)。
【0019】
次いで、マイクロコンピュータ20は、フラッシュ書き込みツール30に対して仮の書き込み終了応答を返し、次の書き込みデータの送信要求を行う(ステップS103)。
前述の「仮の書き込み終了応答」とは、実際には、フラッシュROM24に対するデータの書き込みを行っていないものの、フラッシュ書き込みツール30から次の書き込みデータを送信させるために出力する信号である。
【0020】
即ち、フラッシュ書き込みツール30は、128byteの書き込みデータを送信する毎に、この128byteの書き込みデータの書き換え終了を確認してから、次の書き込みデータを送信するように設定してあり、マイクロコンピュータ20が128byteを1ブロックとしてフラッシュROM24の書き換えを行う場合であれば、実際に書き換えを終了した時点で「書き込み終了応答」をフラッシュ書き込みツール30側に送信することで、128byteデータを単位としてデータの送信・書き込みを順次行えることになる。
しかし、前述のように、フラッシュROM24は、256byteを1ブロックとしてデータの書き込みが可能なメモリであるため、128byteの書き込みデータを受け取った時点で実際に書き込みを行うと、256byteの1ブロックに対して128byteのデータを書き込むことになってしまう。
【0021】
そこで、マイクロコンピュータ20は、フラッシュ書き込みツール30が2回に亘って送信した2個の128byteのデータを1つにまとめることで、256byteの書き込みデータとし、この2個の128byteのデータを一括して、フラッシュROM24に書き込むが、「書き込み終了応答」をマイクロコンピュータ20側から送信しないと、フラッシュ書き込みツール30は、次の書き込みデータを送信しない。
このため、2個まとめる128byteデータの中での最初の128byteデータを受け取った時点で、実際には書き込みを実施していないものの、次の128byteデータを送信させるために、「書き込み終了応答」をフラッシュ書き込みツール30に送信するようにしてあり、次の128byteデータを送信させるために送信する実際の書き込み終了に対応しない「書き込み終了応答」を、本実施形態では、「仮の書き込み終了応答」と称するものとする。
【0022】
上記のように、マイクロコンピュータ20が「仮の書き込み終了応答」を送信すれば、128byteを1ブロックとしてデータの書き込みを行うフラッシュROM(フラッシュメモリ)を書き換える場合と同様にフラッシュ書き込みツール30が動作することで、結果的に、256byteを1ブロックとしてデータの書き込みが可能なメモリの書き換えを行えることになる。
尚、実際に書き込みを終了した時点で送信する「書き込み終了応答」と、次の128byteデータを送信させるために送信する「仮の書き込み終了応答」とは、フラッシュ書き込みツール30側が受け取る信号としては同じ信号であり、フラッシュ書き込みツール30側では、実際の終了か仮(偽)の終了かを区別することはないが、マイクロコンピュータ20が、実際に書き込みを行っていないときに送信した「書き込み終了応答」を、説明上「仮の書き込み終了応答」と称して、実際に書き込みを終了したときに送信する「書き込み終了応答」と区別できるようにしている。
【0023】
マイクロコンピュータ20が、フラッシュ書き込みツール30に対して仮の書き込み終了応答を返し、次の書き込みデータの送信要求を行うと、フラッシュ書き込みツール30は、前回送信した128byteデータに続く128byteの書き込みデータdata2をエンコード(符号化)し、このエンコードした書き込みデータdata2’をアドレスaddr2と共に、CANを介して、エンジン・コントロール・ユニット1(マイクロコンピュータ20)に送信する(ステップS104)。
【0024】
マイクロコンピュータ20は、受け取った書き込みデータdata1’をデコード(復号化)し、この復号化した128byteの書き込みデータdata2と、先に一時的に保存しておいた前回に受け取った128byteの書き込みデータdata1とを1つにまとめて256byteの書き込みデータとし、前回に受け取った128byteの書き込みデータdata1の先頭アドレスaddr1に対応するアドレスを書き込み開始アドレスとして、2個の128byteデータをまとめた256byteの書き込みデータを、フラッシュROM24の該当アドレスに書き込む(ステップS105)。
次いで、マイクロコンピュータ20は、フラッシュ書き込みツール30に対して書き込み終了応答を返し、次の書き込みデータの送信要求を行う(ステップS106)。
【0025】
上記のステップS101〜ステップS106の処理を繰り返すことで、フラッシュROM24のデータを、256byteの1ブロック単位で書き換えることができる。
即ち、フラッシュ書き込みツール30(外部ツール)が送信する書き込みデータdataのサイズが、フラッシュROM24におけるデータの書き込みの単位である256byteの半分である128byteであっても、マイクロコンピュータ20は、受け取った128byteデータを2個まとめることで、256byte単位での書き込みを行うので、フラッシュROM24の書き換え領域の全域で書き換えを行える。
【0026】
また、フラッシュ書き込みツール30は、128byteのブロックを単位として書き換えが行われる場合と同様に動作すれば、実際には256byte単位で書き込みを行うフラッシュROM24の書き換えを行わせることができる。換言すれば、128byteのブロックを単位とする書き換えに適合したフラッシュ書き込みツール30をそのまま用いて、256byte単位で書き込みを行うフラッシュROM24の書き換えを行え、フラッシュ書き込みツール30の汎用性を高めることができる。
【0027】
尚、上記実施形態では、フラッシュROM24の書き換え単位を256byteとしたが、例えば、512byte単位で書き換え可能なフラッシュROMのデータ書き換えを行う場合に、マイクロコンピュータ20は、連続して受け取った3個の128byteデータを一時的に保持し、この3個の128byteデータと、最新に受け取った128byteデータとの4個データをまとめて512byteの書き込みデータとし、512byte単位での書き換えを行わせることができる。この場合、最初の3個の128byteデータを受け取る毎に、「仮の書き込み終了応答」をフラッシュ書き込みツール30に送信して、次の128byteデータの送信を行わせるようにすればよい。
【0028】
また、フラッシュROM24の書き換え単位が512byteであり、フラッシュ書き込みツール30が転送する書き込みデータが256byteであってもよく、フラッシュROM24の書き換え単位、及び、フラッシュ書き込みツール30が転送する書き込みデータのサイズを、256byte,128byteに限定するものではなく、書き込みデータをまとめる数も2個に限定するものではない。
即ち、本願発明に係るデータ書き換えは、フラッシュROM24の書き換え単位(書き換え単位の1ブロックのサイズ)の1/n(n:2以上の正の整数)のサイズの書き込みデータを、外部ツールが転送するシステムに適用できる。
尚、CANにおける通信データの最大長さが、例えば256byteである場合、CANを介して転送する書き込みデータのサイズが256byte未満に制限されることになり、書き込みデータと共にアドレスのデータを含む通信データを通信するためには、書き込みデータのサイズを例えば128byteとする必要が生じる。
【0029】
ところで、書き込みデータを転送するフラッシュ書き込みツール30では、転送単位である128byteの書き込みデータが全てFF(換言すれば、消去状態)である場合に、エンジン・コントロール・ユニット1(マイクロコンピュータ20)との間における通信回数を減らすために、データが全てFFである128byteの書き込みデータを送信しないような設定がなされる場合がある。
このような設定であっても、転送する書き込みデータのサイズと、書き換えを行うフラッシュROM24の書き換え単位のサイズとが一致していれば、転送された書き込みデータを、書き込みデータと共に送信されたアドレスに従ってその都度書き込むことで、正常にデータを書き換えることができる。
【0030】
しかし、前述のように、転送する書き込みデータのサイズが、書き換えを行うフラッシュROM24の書き換え単位の半分以下で、フラッシュ書き込みツール30が転送した書き込みデータを複数まとめて書き込む場合、意図しない書き込みを行うことになってしまう。
例えば、後で受け取る予定の書き込みデータとまとめるために一時的に保存した書き込みデータの次の領域が全てFFであると、フラッシュ書き込みツール30は、このFF領域を飛ばして次の領域のデータを転送することになり、マイクロコンピュータ20が、保存しておいた書き込みデータと、FF領域を飛ばして今回転送された書き込みデータとをまとめて書き込むと、今回転送された書き込みデータを本来のアドレスとは異なる位置に書き込むことになってしまう。
即ち、書き込み前にフラッシュROM24の書き換え領域を消去することで、消去した領域のデータが全てFFになるから、データが全てFFである128byteの書き込みデータについては、書き込み動作を行ってもデータとしては変化せず、わざわざ書き込みデータを転送する必要はないので、フラッシュ書き込みツール30は、当該領域を飛ばして次の領域の書き込みデータ、換言すれば、全てがFFではない書き込みデータを転送するようになっている。
【0031】
そこで、フラッシュ書き込みツール30が、データが全てFFである128byteデータを転送せずに、当該領域を飛ばして次の領域の書き込みデータを転送する場合の書き換え処理を、図4に従って説明する。
図4は、フラッシュROM24の書き換え単位が256byteで、フラッシュ書き込みツール30が、128byteの書き込みデータを転送する場合を示す。
図4において、「積み残し状態」とは、後で受け取る書き込みデータとまとめるために一時的に保存してある書き込みデータが存在しているか否かを示す。
【0032】
また、「今回データ」の「256byte境界」は、今回受け取った書き込みデータのアドレスが、256byte領域の書き込み開始アドレスに一致していて、256byte領域の前半部分に書き込むべきデータである場合であり、「今回データ」の「128byte境界」は、今回受け取った書き込みデータのアドレスが、256byte領域の中央のアドレスに一致している場合、即ち、2個まとめる書き込みデータの2番目のデータであって、256byte領域の後半部分に書き込むべきデータである場合を示す。
更に、「前回データ」の「256byte境界」は、積み残してある(一時的に保存してある)書き込みデータのアドレスが、256byte領域の書き込み開始アドレスに一致している場合であり、「前回データ」の「128byte境界」は、積み残してある(一時的に保存してある)書き込みデータのアドレスが、256byte領域の中央のアドレスに一致している場合、即ち、2個まとめる書き込みデータの2番目のデータである場合を示す。
【0033】
「積み残し状態」が「なし」で、一時的に保存している書き込みデータが存在しない場合であって、かつ、「今回データ」が「256byte境界」であれば、256byteの1ブロックの前半部分に書き込む128byteデータを今回受け取ったと判断できるので、今回受け取った書き込みデータを、積み残しデータとして一時的に保存する。
そして、フラッシュ書き込みツール30側に「仮の書き込み終了応答」を送信して、次の128byteデータの送信を待つことになるが、次回の書き込みデータの受け取り時に、「積み残し状態」を「あり」と判断し、かつ、「前回データ」を「256byte境界」と判断することになる。
【0034】
「今回データ」が「128byte境界」であって、「積み残し状態」が「あり」で、かつ、「前回データ」が「256byte境界」であれば、「今回データ」のアドレスと「前回データ」のアドレスとを比較して、これらが連続しているか不連続であるかを判断する。
ここで、「前回データ」の「256byte境界」であるデータに連続する「128byte境界」のデータを受け取った場合には、保存している前回受け取りの書き込みデータと、今回受け取った書き込みデータとをまとめて256byteデータとし、前回受け取りの書き込みデータのアドレスに対応する書き込み開始アドレスで、256byteデータをフラッシュROM24に書き込み、「書き込み終了応答」をフラッシュ書き込みツール30側に送信する。
【0035】
一方、「今回データ」が「128byte境界」であるものの、保存している書き込みデータ(「256byte境界」のデータ)に対して連続しないアドレスのデータである場合は、図5に示すように、前回受け取った書き込みデータの領域と今回受け取った書き込みデータの領域との間に、全域がFFであるために書き込みデータの送信が行われなかった128byte領域が、偶数(2,4,6,8・・・)だけ存在したものと判断できる。
この場合には、前回受け取って保存してある書き込みデータの後ろに、全てFFである128byte(既定データ)を付け加えることで256byteデータとし、前回受け取って保存してある書き込みデータのアドレスに対応する書き込み開始アドレスで、256byteデータをフラッシュROM24に書き込むと共に、今回受け取った書き込みデータの前に全てFFである128byteを付け加えることで256byteデータとし、今回受け取った書き込みデータのアドレスよりも128byte分だけ前のアドレスに対応する書き込み開始アドレスに従い、256byteデータをフラッシュROM24に書き込む。
【0036】
尚、全域がFFであるために書き込みデータの送信が行われなかった128byte領域が、4以上の偶数だけ連続した場合であっても、前述と同じ処理を施す。データ送信されない128byte領域が4以上の偶数だけ連続すると、256byteの1ブロックの全てで書き込みデータの受け取りを行わない領域が発生することになるが、この場合、書き込み準備として予めフラッシュROM24の書き換え領域を消去し、全て1byteデータをFFにしてあるので、書き込み処理を行わなくても、フラッシュ書き込みツール30側のデータと、フラッシュROM24とが一致することになる。
【0037】
一方、「今回データ」が「256byte境界」であって、「積み残し状態」が「あり」、かつ、「前回データ」が「256byte境界」であれば、図6に示すように、前回受け取った書き込みデータの領域と今回受け取った書き込みデータの領域との間に、全域がFFであるために書き込みデータの送信が行われなかった128byte領域が奇数(1,3,5,7・・・)だけ存在したものと判断できる。
この場合には、前回受け取って保存してある書き込みデータ(「256byte境界」のデータ)の後ろに、全てFFである128byteを付け加えることで256byteデータとし、前回受け取って保存してある書き込みデータのアドレスに対応する書き込み開始アドレスで、256byteデータをフラッシュROM24に書き込む一方、今回受け取った書き込みデータ(「256byte境界」のデータ)の後ろに付加すべきデータが未定であるので、今回受け取った書き込みデータに基づく書き込みを行わずに、今回受け取った書き込みデータを一時的に保存し、「積み残し状態」が「あり」の状態を継続させる。
【0038】
また、「積み残し状態」が「なし」の状態で、「今回データ」が「128byte境界」である場合、図7に示すように、前回受け取った書き込みデータの領域と今回受け取った書き込みデータの領域との間に、全域がFFであるために書き込みデータの送信が行われなかった128byteが奇数(1,3,5,7・・・)だけ存在し、今回受け取った書き込みデータが含まれる256byte領域の前半部分に全てがFFである128byteが存在したものと判断できる。
そこで、この場合には、今回受け取った書き込みデータの前に全てFFである128byteを付け加えることで256byteデータとし、今回受け取った書き込みデータのアドレスよりも128byte分だけ前のアドレスに対応する書き込み開始アドレスで、256byteデータをフラッシュROM24に書き込む。
【0039】
更に、「積み残し状態」が「なし」の状態で、次の書き込みデータが転送されずに、フラッシュ書き込みツール30から書き込みデータ転送終了コマンドを受信した場合には、書き込みデータの転送が終了したことを示し、かつ、書き込みを行わずに保存してある書き込みデータがないことから、マイクロコンピュータ20はそのまま書き込まれたデータに対する正当性確認を実施する。
マイクロコンピュータ20における書き込まれたデータに対する正当性確認は、公知の種々の方法(例えば、巡回冗長検査、パリティ・チェックサム方式など)によって行われる。
【0040】
「積み残し状態」が「あり」、かつ、「前回データ」が「256byte境界」である状態で、次の書き込みデータが転送されずに、フラッシュ書き込みツール30から書き込みデータ転送終了コマンドを受信した場合には、書き込まれたデータに対する正当性確認を実施する前に、前回受け取って保存してある書き込みデータの後ろに、全てFFである128byteを付け加えることで256byteデータとし、前回受け取って保存してある書き込みデータのアドレスに対応する書き込み開始アドレスで、256byteデータをフラッシュROM24に書き込む。そして、書き込み終了後に、書き込まれたデータに対する正当性確認を実施する。
即ち、フラッシュ書き込みツール30から最後に送信される書き込みデータが、「256byte境界」のデータであった場合には、そのまま待機しても次の書き込みデータは送信されないので、フラッシュ書き込みツール30から書き込みデータ転送終了コマンドを受信した時点で、「前回データ」が最後の書き込みデータであったものと判断して、書き込みを行ってから書き込まれたデータに対する正当性確認に移行する。
【0041】
また、「積み残し状態」を「あり」と判断し、かつ、「前回データ」を「128byte境界」と判断した場合、この「前回データ」である「128byte境界」の書き込みデータについては、当該データを「今回データ」として認識したときに、既に書き込んでいるので、新たな書き込み処理は不要である。
即ち、「128byte境界」のデータを受信した時点で、その直前の128byte領域のデータは確定することになり、その時点で、「128byte境界」のデータを後半部分とする256byte領域の書き込みが行える。
ここで、次の書き込みデータが転送されずに、フラッシュ書き込みツール30から書き込みデータ転送終了コマンドを受信した場合には、「積み残し状態」は「あり」であるものの、書き込みを行っていないデータがないことから、マイクロコンピュータ20はそのまま書き込まれたデータに対する正当性確認を実施する。
【0042】
上記処理により、フラッシュ書き込みツール30が、データが全てFFである128byteデータを転送せずに、当該領域を飛ばして次の領域の書き込みデータを転送する場合であっても、マイクロコンピュータ20は、フラッシュROM24を256byteのブロック単位で書き換えることができる。
【0043】
ここで、上記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
(イ)請求項1又は2記載の自動車用電子制御装置において、
外部から書き込みデータを転送する外部ツールが、CANを介して接続される自動車用電子制御装置。
上記構成によると、外部からの書き込みデータの転送を、CANに接続した外部ツールを用いて容易に行える。
【0044】
(ロ)請求項(イ)記載の自動車用電子制御装置において、
前記外部ツールが、表示部,操作部及び書き込みデータを保存しておくためのフラッシュメモリを備える自動車用電子制御装置。
上記構成によると、外部ツールにおいて、書き込みデータのセット(対応機種、バージョンなど)の確認・選択、書き換え実施指令、書き換え状況の確認などを行える。
【0045】
(ハ)請求項2記載の自動車用電子制御装置において、外部から転送される書き込みデータのサイズが、前記不揮発性メモリの書き換え領域サイズの半分であり、
書き込みデータを受け取ったときに、当該書き込みデータのアドレスから、前記不揮発性メモリの書き換え領域の前半部分に対応する書き込みデータであるか、後半部分に対応する書き込みデータであるかを判別すると共に、
前半部分に対応する書き込みデータと、後半部分に対応する書き込みデータとが連続するか不連続であるかを判断する自動車用電子制御装置。
上記構成によると、外部から転送される書き込みデータのサイズが、不揮発性メモリの書き換え領域サイズの半分である場合、書き込みデータが、書き換え領域の前半部分と後半部分とのいずれに該当するか、更に、間を飛ばして転送された書き込みデータであるかを判断することで、既定データの付加の要否、既定データを前後のいずれに付加すべきかなどを的確に判断できる。
【0046】
(ニ)請求項(ハ)記載の自動車用電子制御装置において、
前回受け取った書き込みデータが前半部分に対応し、今回受け取った書き込みデータも前半部分に対応する場合に、前回受け取った書き込みデータの後ろに既定データを付加して前記不揮発性メモリへの書き込みを行い、今回受け取った書き込みデータを次回に書き込む一方、
前回受け取った書き込みデータが前半部分に対応し、今回受け取った書き込みデータが後半部分に対応する場合に、これらが連続する書き込みデータであれば、一括して前記不揮発性メモリへの書き込みを行い、不連続であれば、前回受け取った書き込みデータの後ろに既定データを付加して前記不揮発性メモリへの書き込みを行い、今回受け取った書き込みデータの前に既定データを付加して前記不揮発性メモリへの書き込みを行う自動車用電子制御装置。
上記構成によると、領域を飛ばして書き込みデータが転送されても、個々の書き込みデータを、的確に不揮発性メモリの書き換え領域サイズにまとめて、書き換えを行わせることができる。
【符号の説明】
【0047】
1…エンジン・コントロール・ユニット(自動車用電子制御装置)、20…マイクロコンピュータ、21…I/O、22…CPU、23…RAM、24…フラッシュROM(不揮発性メモリ)、30…フラッシュ書き込みツール(外部ツール)

【特許請求の範囲】
【請求項1】
電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置であって、
外部から転送される書き込みデータのサイズが、前記不揮発性メモリの書き換え領域サイズの半分以下である場合に、転送された書き込みデータを一時的に保存し、複数の書き込みデータをまとめて前記書き換え領域サイズとして、前記不揮発性メモリに一括して書き込む自動車用電子制御装置。
【請求項2】
外部から転送された書き込みデータのアドレスから、転送された書き込みデータの連続性を判断し、不連続である場合に、不連続領域を既定データとして前記不揮発性メモリに書き込む請求項1記載の自動車用電子制御装置。
【請求項3】
電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置において、前記不揮発性メモリの書き換え領域サイズの半分以下のサイズである書き込みデータを外部から受け取って、前記不揮発性メモリに書き込む方法であって、
外部からの書き込みデータを受け取って一時的に保存し、
外部へ仮の書き込み終了応答を行い、
次の外部からの書き込みデータを受け取って、この受け取った書き込みデータと先に一時的に保存しておいたデータとをまとめて、前記書き換え領域サイズの書き込みを行い、
外部へ書き込み終了応答を行う、
自動車用電子制御装置におけるデータ書き込み方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−248558(P2011−248558A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−120114(P2010−120114)
【出願日】平成22年5月26日(2010.5.26)
【出願人】(509186579)日立オートモティブシステムズ株式会社 (2,205)
【Fターム(参考)】