(57)【要約】【課題】外部から転送される書き込みデータのサイズが、自動車用電子制御装置が備えるメモリの書き換え領域サイズ（１ブロックのサイズ）の半分であっても、メモリに対して所期のデータ書き込みを行えるようにする。【解決手段】外部ツール（書き込みツール）は、書き込みデータ（128byte）をエンコードして、自動車用電子制御装置側（ＥＣＵ側）に送信する。自動車用電子制御装置は、受け取った書き込みデータを一時的に保存し、外部ツールへ仮の書き込み終了応答を行う。書き込み終了応答を受け取った外部ツールは、続く書き込みデータをエンコードして、自動車用電子制御装置側に送信する。自動車用電子制御装置は、今回受け取った書き込みデータと、先に一時的に保存しておいた書き込みデータとをまとめて、書き換え領域サイズ(256byte)のデータとして、受け取ったアドレスに応じて、内蔵するフラッシュＲＯＭ（フラッシュメモリ）の書き換えを行う。【選択図】図３
2014139848.tif 000002
【特許請求の範囲】
【請求項１】
電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置であって、
外部から転送される書き込みデータのサイズが、前記不揮発性メモリの書き換え領域サイズの半分以下である場合に、転送された書き込みデータを一時的に保存し、複数の書き込みデータをまとめて前記書き換え領域サイズとして、前記不揮発性メモリに一括して書き込む自動車用電子制御装置。
【請求項２】
外部から転送された書き込みデータのアドレスから、転送された書き込みデータの連続性を判断し、不連続である場合に、不連続領域を既定データとして前記不揮発性メモリに書き込む請求項１記載の自動車用電子制御装置。
【請求項３】
電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置において、前記不揮発性メモリの書き換え領域サイズの半分以下のサイズである書き込みデータを外部から受け取って、前記不揮発性メモリに書き込む方法であって、
外部からの書き込みデータを受け取って一時的に保存し、
外部へ仮の書き込み終了応答を行い、
次の外部からの書き込みデータを受け取って、この受け取った書き込みデータと先に一時的に保存しておいたデータとをまとめて、前記書き換え領域サイズの書き込みを行い、
外部へ書き込み終了応答を行う、
自動車用電子制御装置におけるデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用電子制御装置及び自動車用電子制御装置におけるデータ書き込み方法に関し、詳しくは、外部から転送される書き込みデータのサイズが、不揮発性メモリの書き換え領域サイズの半分以下である場合におけるデータ書き換え技術に関する。
【背景技術】
【０００２】
従来から、ブロック単位で書き換え可能なフラッシュメモリ（不揮発性メモリ）を備え、このフラッシュメモリに記憶したプログラムに基づき、自動車に搭載したエンジンなどの制御対象を制御する自動車用電子制御装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２５７５０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、自動車用電子制御装置が、フラッシュメモリのデータ書き換えを行う場合、ブロック単位で書き換えが可能であるため、外部ツールから転送される書き込みデータのサイズと、前記ブロックのサイズとが一致していれば、外部ツールから暗号化されたデータを受け取り、そのデータを復号化して書き込みデータを作成し、それをそのまま１ブロックに書き込み、正常に書き込みが終了した場合には、外部ツールへ書き込み終了応答及び次の書き込みデータの送信要求を行う、という処理を繰り返すことで、フラッシュメモリの書き換え領域にデータを書き込むことができる。
【０００５】
しかし、例えば、外部ツールから転送される書き込みデータのサイズが１２８byteであるのに対し、フラッシュメモリの書き換え単位のサイズが２５６byteであって、外部から転送される書き込みデータのサイズが、書き換えを行うフラッシュメモリの１ブロックサイズの半分以下であると、従来の書き換え方法を適用した場合、本来１ブロックに書き込むべきデータの書き込みが行えないという問題が生じる。
【０００６】
本願発明は上記問題点に鑑みなされたものであり、外部から転送される書き込みデータのサイズが、自動車用電子制御装置が備えるメモリの書き換え領域サイズ（１ブロックのサイズ）の半分以下であっても、メモリに対して所期のデータ書き込みを行える自動車用電子制御装置及び自動車用電子制御装置におけるデータ書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
そのため、本願発明に係る自動車用電子制御装置及びデータ書き込み方法は、外部から転送された書き込みデータを一時的に保存し、複数の書き込みデータをまとめて書き換え領域サイズとしてから不揮発性メモリに一括して書き込むようにした。
【発明の効果】
【０００８】
上記発明によると、外部から転送される書き込みデータのサイズが、不揮発性メモリの書き換え領域サイズの半分以下であっても、書き換え領域サイズのデータを書き込むことができ、メモリに対して所期のデータ書き込みを行える。
【図面の簡単な説明】
【０００９】
【図１】実施形態における自動車用電子制御装置としてのエンジン・コントロール・ユニットのシステム構成を示すブロック図である。
【図２】実施形態におけるフラッシュＲＯＭの書き換え手順を示す模式図である。
【図３】実施形態におけるフラッシュＲＯＭの書き換え手順を示すフローチャートである。
【図４】実施形態における書き込みデータの判別と判別結果に基づく処理内容との相関を示す対応図である。
【図５】実施形態において「前回データ」が「２５６byte境界」（前半部分データ）であって、これに連続しない「１２８byte境界」（後半部分データ）の「今回データ」を受け取った場合の例を示す。
【図６】実施形態において「前回データ」が「２５６byte境界」（前半部分データ）であって、「今回データ」も「２５６byte境界」（前半部分データ）である場合の例を示す。
【図７】実施形態において「前回データ」が「１２８byte境界」（後半部分データ）であって、「今回データ」も「１２８byte境界」（後半部分データ）である場合の例を示す。
【発明を実施するための形態】
【００１０】
以下に本発明の実施の形態を説明する。
図１は、本発明の実施形態における自動車用電子制御装置を示すブロック図である。
図１に示す自動車用電子制御装置は、自動車の動力源としてのエンジン（内燃機関）を制御するエンジン・コントロール・ユニット（ＥＣＵ）１であり、エンジンの運転状態を検出する各種センサの出力信号を入力し、これらの出力信号に基づいて操作信号を演算し、該操作信号をインジェクタ２やイグナイタ３などの制御対象に対して出力する。
各種センサとしては、エンジンの吸入空気量を検出するエアフローセンサ４やエンジンの回転信号を出力するクランク角センサ５などを備える。
【００１１】
但し、自動車用電子制御装置を、エンジンを制御対象とするエンジン・コントロール・ユニット１に限定するものではなく、例えば、自動変速機や燃料供給装置などを制御対象とする自動車用電子制御装置であってもよい。従って、センサ類や操作信号を出力する制御対象も、前述のものに限定するものではない。
マイクロコンピュータ２０は、各種センサの出力信号を、入出力回路６を介して入力し、また、操作信号を、入出力回路６を介してインジェクタ２やイグナイタ３などの制御対象に対して出力する。
【００１２】
マイクロコンピュータ２０は、入出力回路６との間で信号の送受信を行うＩ／Ｏ２１、ＣＰＵ（中央処理装置）２２、ＲＡＭ２３、フラッシュＲＯＭ２４などを備えている。
フラッシュＲＯＭ（フラッシュメモリ）２４は、電気的にデータの消去及び書き換えが可能な不揮発性メモリであり、マイクロコンピュータ２０は、フラッシュＲＯＭ２４やＲＡＭ２３に格納した各種のプログラムを実行する。尚、データの消去及び書き換えが不能な不揮発性メモリであるＲＯＭを、フラッシュＲＯＭ２４と共に備えてもよい。
フラッシュＲＯＭ２４は、データ書き換えを行わない領域（書き換え禁止領域）を備え、この書き換え禁止領域に、フラッシュＲＯＭ２４のデータ書き換えを行う領域（書き換え領域）におけるデータの消去・書き込みを制御するフラッシュ書き込みプログラムを格納している。
【００１３】
また、入出力回路６はＣＡＮ（Controller Area Network）に接続し、エンジン・コントロール・ユニット１は、ＣＡＮを介して、他のコントロールユニットや外部ツールなどと相互に通信することが可能となっている。
フラッシュ書き込みプログラムに従ったデータ書き換えを行う場合には、フラッシュ書き込みツール３０をＣＡＮに接続することで、エンジン・コントロール・ユニット１は、フラッシュ書き込みツール３０が送信した書き込みデータを、ＣＡＮを介して受け取り、フラッシュ書き込みプログラムに従ってフラッシュＲＯＭ２４のデータ書き換えを行う。
【００１４】
フラッシュ書き込みツール３０は、書き込みデータをマイクロコンピュータ２０に転送する携帯型の外部ツール（携帯型の電子診断装置）であり、例えば、自動車の組み立て工場や整備工場などに配備され、ＣＡＮへの接続を行うコネクタ３４を備えていて、データ書き換えを行う自動車のＣＡＮに接続した状態で、エンジン・コントロール・ユニット１に、フラッシュＲＯＭ（フラッシュメモリ）２４の書き込みデータを転送する。
尚、フラッシュ書き込みツール３０とエンジン・コントロール・ユニット１との接続を、有線に代えて無線とし、フラッシュ書き込みツール３０からエンジン・コントロール・ユニット１に対し、書き込みデータを無線によって転送する構成とすることができる。
【００１５】
フラッシュ書き込みツール３０には、書き込みデータのセット（対応機種、バージョンなど）の確認・選択、書き換え実施指令、書き換え状況の確認などを行うために、液晶モニタ（表示部）３１や操作部３２を備え、また、書き込みデータ（書き換え用のデータ）を保存しておくためのフラッシュメモリ３３を備え、このフラッシュメモリ３３に保存している書き込みデータを、エンジン・コントロール・ユニット１に送信する。
そして、マイクロコンピュータ２０は、フラッシュ書き込みプログラムに従って、フラッシュＲＯＭ２４の書き換え領域を消去し、フラッシュ書き込みツール３０から受け取った書き込みデータを書き込むことで、フラッシュＲＯＭ２４のデータ書き換えを実施する。
【００１６】
本実施形態において、フラッシュＲＯＭ２４は、書き込みサイズが２５６byteであり、データを消去したブロックに対して、２５６byteを１ブロックとしてデータ書き込みを行える。尚、データ消去によって、各バイトのデータはＦＦに置き換えられる。
一方、フラッシュ書き込みツール３０は、フラッシュＲＯＭ２４の書き込みサイズである２５６byteの半分の１２８byteを、転送する書き込みデータのサイズとする。
【００１７】
次に、フラッシュＲＯＭ２４のデータ書き換えの手順を、図２を参照しつつ、図３のフローチャートに従って説明する。
図２は、左側のフラッシュ書き込みツール３０から、ＣＡＮを介して、右側のエンジン・コントロール・ユニット１に向けて、書き込みデータ及び書き込みデータ毎のアドレス情報を転送し、また、右側のエンジン・コントロール・ユニット１から、ＣＡＮを介して、左側のフラッシュ書き込みツール３０に対し、書き込み応答や書き込みデータの送信要求などを示すステータスコードを送信する様子を示す模式図である。そして、図３のフローチャートは、図２に示したデータ・ステータスコードの送受信によるデータ書き換えの手順を示すものである。
【００１８】
まず、フラッシュ書き込みツール３０は、フラッシュメモリ３３から読み出した１２８byteの書き込みデータdata１をエンコード（符号化）し、この符号化した書き込みデータdata1’をアドレスaddr1と共に、ＣＡＮを介して、エンジン・コントロール・ユニット１（マイクロコンピュータ２０）に送信する（ステップＳ１０１）。
書き込みデータdata1’及びアドレスaddr1を受け取ったマイクロコンピュータ２０は、書き込みデータdata1’をデコード（復号化）し、この復号化した１２８byteの書き込みデータdata１を、一時的にプログラム内で保存する（ステップＳ１０２）。
【００１９】
次いで、マイクロコンピュータ２０は、フラッシュ書き込みツール３０に対して仮の書き込み終了応答を返し、次の書き込みデータの送信要求を行う（ステップＳ１０３）。
前述の「仮の書き込み終了応答」とは、実際には、フラッシュＲＯＭ２４に対するデータの書き込みを行っていないものの、フラッシュ書き込みツール３０から次の書き込みデータを送信させるために出力する信号である。
【００２０】
即ち、フラッシュ書き込みツール３０は、１２８byteの書き込みデータを送信する毎に、この１２８byteの書き込みデータの書き換え終了を確認してから、次の書き込みデータを送信するように設定してあり、マイクロコンピュータ２０が１２８byteを１ブロックとしてフラッシュＲＯＭ２４の書き換えを行う場合であれば、実際に書き換えを終了した時点で「書き込み終了応答」をフラッシュ書き込みツール３０側に送信することで、１２８byteデータを単位としてデータの送信・書き込みを順次行えることになる。
しかし、前述のように、フラッシュＲＯＭ２４は、２５６byteを１ブロックとしてデータの書き込みが可能なメモリであるため、１２８byteの書き込みデータを受け取った時点で実際に書き込みを行うと、２５６byteの１ブロックに対して１２８byteのデータを書き込むことになってしまう。
【００２１】
そこで、マイクロコンピュータ２０は、フラッシュ書き込みツール３０が２回に亘って送信した２個の１２８byteのデータを１つにまとめることで、２５６byteの書き込みデータとし、この２個の１２８byteのデータを一括して、フラッシュＲＯＭ２４に書き込むが、「書き込み終了応答」をマイクロコンピュータ２０側から送信しないと、フラッシュ書き込みツール３０は、次の書き込みデータを送信しない。
このため、２個まとめる１２８byteデータの中での最初の１２８byteデータを受け取った時点で、実際には書き込みを実施していないものの、次の１２８byteデータを送信させるために、「書き込み終了応答」をフラッシュ書き込みツール３０に送信するようにしてあり、次の１２８byteデータを送信させるために送信する実際の書き込み終了に対応しない「書き込み終了応答」を、本実施形態では、「仮の書き込み終了応答」と称するものとする。
【００２２】
上記のように、マイクロコンピュータ２０が「仮の書き込み終了応答」を送信すれば、１２８byteを１ブロックとしてデータの書き込みを行うフラッシュＲＯＭ（フラッシュメモリ）を書き換える場合と同様にフラッシュ書き込みツール３０が動作することで、結果的に、２５６byteを１ブロックとしてデータの書き込みが可能なメモリの書き換えを行えることになる。
尚、実際に書き込みを終了した時点で送信する「書き込み終了応答」と、次の１２８byteデータを送信させるために送信する「仮の書き込み終了応答」とは、フラッシュ書き込みツール３０側が受け取る信号としては同じ信号であり、フラッシュ書き込みツール３０側では、実際の終了か仮（偽）の終了かを区別することはないが、マイクロコンピュータ２０が、実際に書き込みを行っていないときに送信した「書き込み終了応答」を、説明上「仮の書き込み終了応答」と称して、実際に書き込みを終了したときに送信する「書き込み終了応答」と区別できるようにしている。
【００２３】
マイクロコンピュータ２０が、フラッシュ書き込みツール３０に対して仮の書き込み終了応答を返し、次の書き込みデータの送信要求を行うと、フラッシュ書き込みツール３０は、前回送信した１２８byteデータに続く１２８byteの書き込みデータdata2をエンコード（符号化）し、このエンコードした書き込みデータdata2’をアドレスaddr2と共に、ＣＡＮを介して、エンジン・コントロール・ユニット１（マイクロコンピュータ２０）に送信する（ステップＳ１０４）。
【００２４】
マイクロコンピュータ２０は、受け取った書き込みデータdata2’をデコード（復号化）し、この復号化した１２８byteの書き込みデータdata2と、先に一時的に保存しておいた前回に受け取った１２８byteの書き込みデータdata1とを１つにまとめて２５６byteの書き込みデータとし、前回に受け取った１２８byteの書き込みデータdata1の先頭アドレスaddr1に対応するアドレスを書き込み開始アドレスとして、２個の１２８byteデータをまとめた２５６byteの書き込みデータを、フラッシュＲＯＭ２４の該当アドレスに書き込む（ステップＳ１０５）。
次いで、マイクロコンピュータ２０は、フラッシュ書き込みツール３０に対して書き込み終了応答を返し、次の書き込みデータの送信要求を行う（ステップＳ１０６）。
【００２５】
上記のステップＳ１０１〜ステップＳ１０６の処理を繰り返すことで、フラッシュＲＯＭ２４のデータを、２５６byteの１ブロック単位で書き換えることができる。
即ち、フラッシュ書き込みツール３０（外部ツール）が送信する書き込みデータdataのサイズが、フラッシュＲＯＭ２４におけるデータの書き込みの単位である２５６byteの半分である１２８byteであっても、マイクロコンピュータ２０は、受け取った１２８byteデータを２個まとめることで、２５６byte単位での書き込みを行うので、フラッシュＲＯＭ２４の書き換え領域の全域で書き換えを行える。
【００２６】
また、フラッシュ書き込みツール３０は、１２８byteのブロックを単位として書き換えが行われる場合と同様に動作すれば、実際には２５６byte単位で書き込みを行うフラッシュＲＯＭ２４の書き換えを行わせることができる。換言すれば、１２８byteのブロックを単位とする書き換えに適合したフラッシュ書き込みツール３０をそのまま用いて、２５６byte単位で書き込みを行うフラッシュＲＯＭ２４の書き換えを行え、フラッシュ書き込みツール３０の汎用性を高めることができる。
【００２７】
尚、上記実施形態では、フラッシュＲＯＭ２４の書き換え単位を２５６byteとしたが、例えば、５１２byte単位で書き換え可能なフラッシュＲＯＭのデータ書き換えを行う場合に、マイクロコンピュータ２０は、連続して受け取った３個の１２８byteデータを一時的に保持し、この３個の１２８byteデータと、最新に受け取った１２８byteデータとの４個データをまとめて５１２byteの書き込みデータとし、５１２byte単位での書き換えを行わせることができる。この場合、最初の３個の１２８byteデータを受け取る毎に、「仮の書き込み終了応答」をフラッシュ書き込みツール３０に送信して、次の１２８byteデータの送信を行わせるようにすればよい。
【００２８】
また、フラッシュＲＯＭ２４の書き換え単位が５１２byteであり、フラッシュ書き込みツール３０が転送する書き込みデータが２５６byteであってもよく、フラッシュＲＯＭ２４の書き換え単位、及び、フラッシュ書き込みツール３０が転送する書き込みデータのサイズを、２５６byte，１２８byteに限定するものではなく、書き込みデータをまとめる数も２個に限定するものではない。
即ち、本願発明に係るデータ書き換えは、フラッシュＲＯＭ２４の書き換え単位（書き換え単位の１ブロックのサイズ）の１／ｎ（ｎ：２以上の正の整数）のサイズの書き込みデータを、外部ツールが転送するシステムに適用できる。
尚、ＣＡＮにおける通信データの最大長さが、例えば２５６byteである場合、ＣＡＮを介して転送する書き込みデータのサイズが２５６byte未満に制限されることになり、書き込みデータと共にアドレスのデータを含む通信データを通信するためには、書き込みデータのサイズを例えば１２８byteとする必要が生じる。
【００２９】
ところで、書き込みデータを転送するフラッシュ書き込みツール３０では、転送単位である１２８byteの書き込みデータが全てＦＦ（換言すれば、消去状態）である場合に、エンジン・コントロール・ユニット１（マイクロコンピュータ２０）との間における通信回数を減らすために、データが全てＦＦである１２８byteの書き込みデータを送信しないような設定がなされる場合がある。
このような設定であっても、転送する書き込みデータのサイズと、書き換えを行うフラッシュＲＯＭ２４の書き換え単位のサイズとが一致していれば、転送された書き込みデータを、書き込みデータと共に送信されたアドレスに従ってその都度書き込むことで、正常にデータを書き換えることができる。
【００３０】
しかし、前述のように、転送する書き込みデータのサイズが、書き換えを行うフラッシュＲＯＭ２４の書き換え単位の半分以下で、フラッシュ書き込みツール３０が転送した書き込みデータを複数まとめて書き込む場合、意図しない書き込みを行うことになってしまう。
例えば、後で受け取る予定の書き込みデータとまとめるために一時的に保存した書き込みデータの次の領域が全てＦＦであると、フラッシュ書き込みツール３０は、このＦＦ領域を飛ばして次の領域のデータを転送することになり、マイクロコンピュータ２０が、保存しておいた書き込みデータと、ＦＦ領域を飛ばして今回転送された書き込みデータとをまとめて書き込むと、今回転送された書き込みデータを本来のアドレスとは異なる位置に書き込むことになってしまう。
即ち、書き込み前にフラッシュＲＯＭ２４の書き換え領域を消去することで、消去した領域のデータが全てＦＦになるから、データが全てＦＦである１２８byteの書き込みデータについては、書き込み動作を行ってもデータとしては変化せず、わざわざ書き込みデータを転送する必要はないので、フラッシュ書き込みツール３０は、当該領域を飛ばして次の領域の書き込みデータ、換言すれば、全てがＦＦではない書き込みデータを転送するようになっている。
【００３１】
そこで、フラッシュ書き込みツール３０が、データが全てＦＦである１２８byteデータを転送せずに、当該領域を飛ばして次の領域の書き込みデータを転送する場合の書き換え処理を、図４に従って説明する。
図４は、フラッシュＲＯＭ２４の書き換え単位が２５６byteで、フラッシュ書き込みツール３０が、１２８byteの書き込みデータを転送する場合を示す。
図４において、「積み残し状態」とは、後で受け取る書き込みデータとまとめるために一時的に保存してある書き込みデータが存在しているか否かを示す。
【００３２】
また、「今回データ」の「２５６byte境界」は、今回受け取った書き込みデータのアドレスが、２５６byte領域の書き込み開始アドレスに一致していて、２５６byte領域の前半部分に書き込むべきデータである場合であり、「今回データ」の「１２８byte境界」は、今回受け取った書き込みデータのアドレスが、２５６byte領域の中央のアドレスに一致している場合、即ち、２個まとめる書き込みデータの２番目のデータであって、２５６byte領域の後半部分に書き込むべきデータである場合を示す。
更に、「前回データ」の「２５６byte境界」は、積み残してある（一時的に保存してある）書き込みデータのアドレスが、２５６byte領域の書き込み開始アドレスに一致している場合であり、「前回データ」の「１２８byte境界」は、積み残してある（一時的に保存してある）書き込みデータのアドレスが、２５６byte領域の中央のアドレスに一致している場合、即ち、２個まとめる書き込みデータの２番目のデータである場合を示す。
【００３３】
「積み残し状態」が「なし」で、一時的に保存している書き込みデータが存在しない場合であって、かつ、「今回データ」が「２５６byte境界」であれば、２５６byteの１ブロックの前半部分に書き込む１２８byteデータを今回受け取ったと判断できるので、今回受け取った書き込みデータを、積み残しデータとして一時的に保存する。
そして、フラッシュ書き込みツール３０側に「仮の書き込み終了応答」を送信して、次の１２８byteデータの送信を待つことになるが、次回の書き込みデータの受け取り時に、「積み残し状態」を「あり」と判断し、かつ、「前回データ」を「２５６byte境界」と判断することになる。
【００３４】
「今回データ」が「１２８byte境界」であって、「積み残し状態」が「あり」で、かつ、「前回データ」が「２５６byte境界」であれば、「今回データ」のアドレスと「前回データ」のアドレスとを比較して、これらが連続しているか不連続であるかを判断する。
ここで、「前回データ」の「２５６byte境界」であるデータに連続する「１２８byte境界」のデータを受け取った場合には、保存している前回受け取りの書き込みデータと、今回受け取った書き込みデータとをまとめて２５６byteデータとし、前回受け取りの書き込みデータのアドレスに対応する書き込み開始アドレスで、２５６byteデータをフラッシュＲＯＭ２４に書き込み、「書き込み終了応答」をフラッシュ書き込みツール３０側に送信する。
【００３５】
一方、「今回データ」が「１２８byte境界」であるものの、保存している書き込みデータ（「２５６byte境界」のデータ）に対して連続しないアドレスのデータである場合は、図５に示すように、前回受け取った書き込みデータの領域と今回受け取った書き込みデータの領域との間に、全域がＦＦであるために書き込みデータの送信が行われなかった１２８byte領域が、偶数（２，４，６，８・・・）だけ存在したものと判断できる。
この場合には、前回受け取って保存してある書き込みデータの後ろに、全てＦＦである１２８byte（既定データ）を付け加えることで２５６byteデータとし、前回受け取って保存してある書き込みデータのアドレスに対応する書き込み開始アドレスで、２５６byteデータをフラッシュＲＯＭ２４に書き込むと共に、今回受け取った書き込みデータの前に全てＦＦである１２８byteを付け加えることで２５６byteデータとし、今回受け取った書き込みデータのアドレスよりも１２８byte分だけ前のアドレスに対応する書き込み開始アドレスに従い、２５６byteデータをフラッシュＲＯＭ２４に書き込む。
【００３６】
尚、全域がＦＦであるために書き込みデータの送信が行われなかった１２８byte領域が、４以上の偶数だけ連続した場合であっても、前述と同じ処理を施す。データ送信されない１２８byte領域が４以上の偶数だけ連続すると、２５６byteの１ブロックの全てで書き込みデータの受け取りを行わない領域が発生することになるが、この場合、書き込み準備として予めフラッシュＲＯＭ２４の書き換え領域を消去し、全て１byteデータをＦＦにしてあるので、書き込み処理を行わなくても、フラッシュ書き込みツール３０側のデータと、フラッシュＲＯＭ２４とが一致することになる。
【００３７】
一方、「今回データ」が「２５６byte境界」であって、「積み残し状態」が「あり」、かつ、「前回データ」が「２５６byte境界」であれば、図６に示すように、前回受け取った書き込みデータの領域と今回受け取った書き込みデータの領域との間に、全域がＦＦであるために書き込みデータの送信が行われなかった１２８byte領域が奇数（１，３，５，７・・・）だけ存在したものと判断できる。
この場合には、前回受け取って保存してある書き込みデータ（「２５６byte境界」のデータ）の後ろに、全てＦＦである１２８byteを付け加えることで２５６byteデータとし、前回受け取って保存してある書き込みデータのアドレスに対応する書き込み開始アドレスで、２５６byteデータをフラッシュＲＯＭ２４に書き込む一方、今回受け取った書き込みデータ（「２５６byte境界」のデータ）の後ろに付加すべきデータが未定であるので、今回受け取った書き込みデータに基づく書き込みを行わずに、今回受け取った書き込みデータを一時的に保存し、「積み残し状態」が「あり」の状態を継続させる。
【００３８】
また、「積み残し状態」が「なし」の状態で、「今回データ」が「１２８byte境界」である場合、図７に示すように、前回受け取った書き込みデータの領域と今回受け取った書き込みデータの領域との間に、全域がＦＦであるために書き込みデータの送信が行われなかった１２８byteが奇数（１，３，５，７・・・）だけ存在し、今回受け取った書き込みデータが含まれる２５６byte領域の前半部分に全てがＦＦである１２８byteが存在したものと判断できる。
そこで、この場合には、今回受け取った書き込みデータの前に全てＦＦである１２８byteを付け加えることで２５６byteデータとし、今回受け取った書き込みデータのアドレスよりも１２８byte分だけ前のアドレスに対応する書き込み開始アドレスで、２５６byteデータをフラッシュＲＯＭ２４に書き込む。
【００３９】
更に、「積み残し状態」が「なし」の状態で、次の書き込みデータが転送されずに、フラッシュ書き込みツール３０から書き込みデータ転送終了コマンドを受信した場合には、書き込みデータの転送が終了したことを示し、かつ、書き込みを行わずに保存してある書き込みデータがないことから、マイクロコンピュータ２０はそのまま書き込まれたデータに対する正当性確認を実施する。
マイクロコンピュータ２０における書き込まれたデータに対する正当性確認は、公知の種々の方法（例えば、巡回冗長検査、パリティ・チェックサム方式など）によって行われる。
【００４０】
「積み残し状態」が「あり」、かつ、「前回データ」が「２５６byte境界」である状態で、次の書き込みデータが転送されずに、フラッシュ書き込みツール３０から書き込みデータ転送終了コマンドを受信した場合には、書き込まれたデータに対する正当性確認を実施する前に、前回受け取って保存してある書き込みデータの後ろに、全てＦＦである１２８byteを付け加えることで２５６byteデータとし、前回受け取って保存してある書き込みデータのアドレスに対応する書き込み開始アドレスで、２５６byteデータをフラッシュＲＯＭ２４に書き込む。そして、書き込み終了後に、書き込まれたデータに対する正当性確認を実施する。
即ち、フラッシュ書き込みツール３０から最後に送信される書き込みデータが、「２５６byte境界」のデータであった場合には、そのまま待機しても次の書き込みデータは送信されないので、フラッシュ書き込みツール３０から書き込みデータ転送終了コマンドを受信した時点で、「前回データ」が最後の書き込みデータであったものと判断して、書き込みを行ってから書き込まれたデータに対する正当性確認に移行する。
【００４１】
また、「積み残し状態」を「あり」と判断し、かつ、「前回データ」を「１２８byte境界」と判断した場合、この「前回データ」である「１２８byte境界」の書き込みデータについては、当該データを「今回データ」として認識したときに、既に書き込んでいるので、新たな書き込み処理は不要である。
即ち、「１２８byte境界」のデータを受信した時点で、その直前の１２８byte領域のデータは確定することになり、その時点で、「１２８byte境界」のデータを後半部分とする２５６byte領域の書き込みが行える。
ここで、次の書き込みデータが転送されずに、フラッシュ書き込みツール３０から書き込みデータ転送終了コマンドを受信した場合には、「積み残し状態」は「あり」であるものの、書き込みを行っていないデータがないことから、マイクロコンピュータ２０はそのまま書き込まれたデータに対する正当性確認を実施する。
【００４２】
上記処理により、フラッシュ書き込みツール３０が、データが全てＦＦである１２８byteデータを転送せずに、当該領域を飛ばして次の領域の書き込みデータを転送する場合であっても、マイクロコンピュータ２０は、フラッシュＲＯＭ２４を２５６byteのブロック単位で書き換えることができる。
【００４３】
ここで、上記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
（イ）請求項１又は２記載の自動車用電子制御装置において、
外部から書き込みデータを転送する外部ツールが、ＣＡＮを介して接続される自動車用電子制御装置。
上記構成によると、外部からの書き込みデータの転送を、ＣＡＮに接続した外部ツールを用いて容易に行える。
【００４４】
（ロ）請求項（イ）記載の自動車用電子制御装置において、
前記外部ツールが、表示部，操作部及び書き込みデータを保存しておくためのフラッシュメモリを備える自動車用電子制御装置。
上記構成によると、外部ツールにおいて、書き込みデータのセット（対応機種、バージョンなど）の確認・選択、書き換え実施指令、書き換え状況の確認などを行える。
【００４５】
（ハ）請求項２記載の自動車用電子制御装置において、外部から転送される書き込みデータのサイズが、前記不揮発性メモリの書き換え領域サイズの半分であり、
書き込みデータを受け取ったときに、当該書き込みデータのアドレスから、前記不揮発性メモリの書き換え領域の前半部分に対応する書き込みデータであるか、後半部分に対応する書き込みデータであるかを判別すると共に、
前半部分に対応する書き込みデータと、後半部分に対応する書き込みデータとが連続するか不連続であるかを判断する自動車用電子制御装置。
上記構成によると、外部から転送される書き込みデータのサイズが、不揮発性メモリの書き換え領域サイズの半分である場合、書き込みデータが、書き換え領域の前半部分と後半部分とのいずれに該当するか、更に、間を飛ばして転送された書き込みデータであるかを判断することで、既定データの付加の要否、既定データを前後のいずれに付加すべきかなどを的確に判断できる。
【００４６】
（ニ）請求項（ハ）記載の自動車用電子制御装置において、
前回受け取った書き込みデータが前半部分に対応し、今回受け取った書き込みデータも前半部分に対応する場合に、前回受け取った書き込みデータの後ろに既定データを付加して前記不揮発性メモリへの書き込みを行い、今回受け取った書き込みデータを次回に書き込む一方、
前回受け取った書き込みデータが前半部分に対応し、今回受け取った書き込みデータが後半部分に対応する場合に、これらが連続する書き込みデータであれば、一括して前記不揮発性メモリへの書き込みを行い、不連続であれば、前回受け取った書き込みデータの後ろに既定データを付加して前記不揮発性メモリへの書き込みを行い、今回受け取った書き込みデータの前に既定データを付加して前記不揮発性メモリへの書き込みを行う自動車用電子制御装置。
上記構成によると、領域を飛ばして書き込みデータが転送されても、個々の書き込みデータを、的確に不揮発性メモリの書き換え領域サイズにまとめて、書き換えを行わせることができる。
【符号の説明】
【００４７】
１…エンジン・コントロール・ユニット（自動車用電子制御装置）、２０…マイクロコンピュータ、２１…Ｉ／Ｏ、２２…ＣＰＵ、２３…ＲＡＭ、２４…フラッシュＲＯＭ（不揮発性メモリ）、３０…フラッシュ書き込みツール（外部ツール）
【図１】
2014139848.tif 000003
【図２】
2014139848.tif 000004
【図３】
2014139848.tif 000005
【図４】
2014139848.tif 000006
【図５】
2014139848.tif 000007
【図６】
2014139848.tif 000008
【図７】
2014139848.tif 000009
【手続補正書】
【提出日】平成26年6月9日(2014.6.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電気的にデータの消去及び書き込みが可能な不揮発性メモリを備え、符号化された書き込みデータをＣＡＮ（Controller Area Network）を介して外部から受信して復号化し、復号化した書き込みデータを前記不揮発性メモリに書き込む自動車用電子制御装置であって、
書き込みデータのサイズが前記不揮発性メモリの書き換え領域サイズの１／ｎ（ｎは２以上の整数）である場合、前記不揮発性メモリの書き換え領域サイズの書き込みデータが揃うまでは復号化した書き込みデータを保存すると共に書き込みデータを受信する毎に仮の書き込み終了応答を外部に送信して次の書き込みデータの送信を要求し、前記不揮発性メモリの書き換え領域サイズの書き込みデータが揃ったときにこれらをまとめて前記不揮発性メモリに一括して書き込むと共に書き込み終了応答を外部に送信して書き込みデータの送信を要求するよう構成され、書き込みデータが不連続である場合に不連続領域を既定データとして前記不揮発性メモリに書き込む、自動車用電子制御装置。
【請求項２】
前記ｎが２であって、書き込みデータのアドレスに基づき前記不揮発性メモリの書き換え領域の前半部分の書き込みデータであるか後半部分の書き込みデータであるかを検出し、
前回受け取った書き込みデータ及び今回受け取った書き込みデータが前半部分のデータである場合に、前回受け取った書き込みデータの後ろに既定データを付加して前記不揮発性メモリへの書き込みを行い、今回受け取った書き込みデータを次回に書き込み、
前回受け取った書き込みデータが前半部分のデータで今回受け取った書き込みデータが後半部分のデータである場合に、これらが連続する書き込みデータであれば一括して前記不揮発性メモリへの書き込みを行い、不連続であれば、前回受け取った書き込みデータの後ろに既定データを付加して前記不揮発性メモリへの書き込みを行うと共に、今回受け取った書き込みデータの前に既定データを付加して前記不揮発性メモリへの書き込みを行う、請求項１記載の自動車用電子制御装置。
【請求項３】
電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置において、符号化された書き込みデータをＣＡＮ（Controller Area Network）を介して外部から受信して復号化し、復号化した書き込みデータを前記不揮発性メモリに書き込む方法であって、
書き込みデータのサイズが前記不揮発性メモリの書き換え領域サイズの１／ｎ（ｎは２以上の整数）である場合、前記不揮発性メモリの書き換え領域サイズの書き込みデータが揃うまでは復号化した書き込みデータを保存すると共に書き込みデータを受信する毎に仮の書き込み終了応答を外部に送信して次の書き込みデータの送信を要求し、
書き込みデータの連続性を検出し、
書き込みデータが連続している場合、これらをまとめて前記不揮発性メモリの書き換え領域サイズとして前記不揮発性メモリに一括して書き込み、
書き込みデータが不連続である場合、不連続領域を既定データとして前記不揮発性メモリの書き換え領域サイズとし前記不揮発性メモリに一括して書き込み、
前記不揮発性メモリに書き込みデータを書き込んだときに書き込み終了応答を外部に送信して次の書き込みデータの送信を要求する、
自動車用電子制御装置におけるデータ書き込み方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
そのため、本願発明に係る自動車用電子制御装置は、電気的にデータの消去及び書き込みが可能な不揮発性メモリを備え、符号化された書き込みデータをＣＡＮ（Controller Area Network）を介して外部から受信して復号化し、復号化した書き込みデータを前記不揮発性メモリに書き込む自動車用電子制御装置であって、書き込みデータのサイズが前記不揮発性メモリの書き換え領域サイズの１／ｎ（ｎは２以上の整数）である場合、前記不揮発性メモリの書き換え領域サイズの書き込みデータが揃うまでは復号化した書き込みデータを保存すると共に書き込みデータを受信する毎に仮の書き込み終了応答を外部に送信して次の書き込みデータの送信を要求し、前記不揮発性メモリの書き換え領域サイズの書き込みデータが揃ったときにこれらをまとめて前記不揮発性メモリに一括して書き込むと共に書き込み終了応答を外部に送信して書き込みデータの送信を要求するよう構成され、書き込みデータが不連続である場合に不連続領域を既定データとして前記不揮発性メモリに書き込むようにした。
また、本願発明に係る自動車用電子制御装置におけるデータ書き込み方法は、電気的にデータの消去及び書き込みが可能な不揮発性メモリを備えた自動車用電子制御装置において、符号化された書き込みデータをＣＡＮ（Controller Area Network）を介して外部から受信して復号化し、復号化した書き込みデータを前記不揮発性メモリに書き込む方法であって、書き込みデータのサイズが前記不揮発性メモリの書き換え領域サイズの１／ｎ（ｎは２以上の整数）である場合、前記不揮発性メモリの書き換え領域サイズの書き込みデータが揃うまでは復号化した書き込みデータを保存すると共に書き込みデータを受信する毎に仮の書き込み終了応答を外部に送信して次の書き込みデータの送信を要求し、書き込みデータの連続性を検出し、書き込みデータが連続している場合、これらをまとめて前記不揮発性メモリの書き換え領域サイズとして前記不揮発性メモリに一括して書き込み、書き込みデータが不連続である場合、不連続領域を既定データとして前記不揮発性メモリの書き換え領域サイズとし前記不揮発性メモリに一括して書き込み、前記不揮発性メモリに書き込みデータを書き込んだときに書き込み終了応答を外部に送信して次の書き込みデータの送信を要求するようにした。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
上記発明によると、外部からＣＡＮを介して受信する書き込みデータのサイズが不揮発性メモリの書き換え領域サイズの１／ｎ（ｎは２以上の整数）であるときに、書き換え領域サイズのデータを書き込むことができ、不揮発性メモリに所期のデータ書き込みを行える。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
（ハ）請求項１記載の自動車用電子制御装置において、外部から転送される書き込みデータのサイズが、前記不揮発性メモリの書き換え領域サイズの半分であり、
書き込みデータを受け取ったときに、当該書き込みデータのアドレスから、前記不揮発性メモリの書き換え領域の前半部分に対応する書き込みデータであるか、後半部分に対応する書き込みデータであるかを判別すると共に、
前半部分に対応する書き込みデータと、後半部分に対応する書き込みデータとが連続するか不連続であるかを判断する自動車用電子制御装置。
上記構成によると、外部から転送される書き込みデータのサイズが、不揮発性メモリの書き換え領域サイズの半分である場合、書き込みデータが、書き換え領域の前半部分と後半部分とのいずれに該当するか、更に、間を飛ばして転送された書き込みデータであるかを判断することで、既定データの付加の要否、既定データを前後のいずれに付加すべきかなどを的確に判断できる。