(57)【要約】【課題】外部から転送されたデータを複数まとめて不揮発性メモリに書き込む処理に要する時間を短縮できる、自動車用電子制御装置を提供する。【解決手段】自動車用電子制御装置に備えられる不揮発性メモリの書き込みサイズが２５６byteで、外部から転送される１２８byteの分割データを２個まとめて不揮発性メモリに書き込むようにする。また、分割データを受信する毎に、書き込みの検証結果を示すステータス信号を外部に出力するようにし、かつ、２個の分割データが揃い次の書き込みの直前である場合は、ステータス信号として前回の書き込みを検証した結果を示すステータス信号を出力し、２個の分割データが揃うまでの間は、ステータス信号として仮のステータス信号を外部に出力し、不揮発性メモリへの書き込みに並行して、次の書き込みに備えた分割データの受信を行うようにした。【選択図】図３
2013182456.tif 000002
【特許請求の範囲】
【請求項１】
電気的にデータの消去及び書き込みが可能な不揮発性メモリを含み、
前記不揮発性メモリの書き込みサイズのデータが、外部から複数の分割データに分けて転送され、前記書き込みサイズ分の複数の分割データが揃ったときに、前記複数の分割データをまとめて前記不揮発性メモリに書き込む一方、
前記分割データを受信する毎に、書き込みの検証結果を示すステータス信号を外部に出力し、かつ、前記書き込みサイズ分の複数の分割データが揃い次の書き込みの直前である場合は、前記ステータス信号として前回の書き込みを検証した結果を示すステータス信号を出力し、前記書き込みサイズ分の複数の分割データが揃うまでの間は、前記ステータス信号として仮のステータス信号を外部に出力し、
前記不揮発性メモリへの書き込みに並行して、次の書き込みに備えた前記分割データの受信を行う、自動車用電子制御装置。
【請求項２】
前記分割データのアドレス情報に基づき、外部から転送されなかった分割データの有無を判別し、転送されたかった分割データがある場合には、当該分割データが予め定められたデータであると見做して他の分割データとまとめて前記不揮発性メモリに書き込む、請求項１記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的にデータの消去及び書き込みが可能な不揮発性メモリを備え、外部から転送されたデータを前記不揮発性メモリに書き込む自動車用電子制御装置に関する。
【背景技術】
【０００２】
特許文献１には、外部から転送される分割データのサイズが、不揮発性メモリの書き込みサイズの半分以下である場合に、転送された分割データを一時的に保存し、複数の分割データをまとめて前記書き込みサイズとして、不揮発性メモリに一括して書き込む、自動車用電子制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２４８５５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、外部から転送された分割データを複数まとめて不揮発性メモリに書き込む場合に、分割データが複数揃うまでは分割データを受信する毎に仮の終了応答を出力して、外部に対して次の分割データの転送を要求し、当該要求に応じて転送された分割データをまとめて不揮発性メモリへの書き込み、書き込みが終了した後に外部に対して終了応答を出力して、次の書き込みのための分割データの転送を受けることになる。
【０００５】
しかし、分割データの受信処理と分割データの書き込み処理とが重なることなく時系列的に実施される場合、不揮発性メモリへのデータ書き込みが全て完了するまでに時間を要してしまうという問題がある。
また、実際の書き込み処理について検証した結果を外部に出力しないと、次の分割データの転送を受けられないので、書き込み処理の直後に当該書き込み処理の検証結果を外部に送信させる場合、書き込み処理の完了から次の分割データを受信するまでの間にタイムラグが生じ、処理時間が長くなってしまうという問題がある。
【０００６】
本発明は上記問題点に鑑みなされたものであり、外部から転送された分割データを複数まとめて不揮発性メモリに書き込む処理に要する時間を短縮できる、自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
そのため、本願発明に係る自動車用電子制御装置は、電気的にデータの消去及び書き込みが可能な不揮発性メモリを含み、
前記不揮発性メモリの書き込みサイズのデータが、外部から複数の分割データに分けて転送され、前記書き込みサイズ分の複数の分割データが揃ったときに、前記複数の分割データをまとめて前記不揮発性メモリに書き込む一方、
前記分割データを受信する毎に、書き込みの検証結果を示すステータス信号を外部に出力し、かつ、前記書き込みサイズ分の複数の分割データが揃い次の書き込みの直前である場合は、前記ステータス信号として前回の書き込みを検証した結果を示すステータス信号を出力し、前記書き込みサイズ分の複数の分割データが揃うまでの間は、前記ステータス信号として仮のステータス信号を外部に出力し、
前記不揮発性メモリへの書き込みに並行して、次の書き込みに備えた前記分割データの受信を行うようにした。
【発明の効果】
【０００８】
上記発明によると、不揮発性メモリの書き込みサイズのデータが、外部から複数の分割データに分けて転送される場合に、分割データの受信処理と、複数の分割データをまとめて不揮発性メモリに書き込む処理とを並行して行わせて、書き込み処理に要する時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】本願発明の実施形態におけるＥＣＵ製造工程及びアプリケーションプログラム書込み工程の説明図である。
【図２】本願発明の実施形態におけるＥＣＵ及び書込みツールの構成図である。
【図３】本願発明の実施形態におけるアプリケーションプログラムの転送及び書込み処理のシーケンスを示す図である。
【図４】本願発明の実施形態における書込みツールの分割データの転送処理の手順を示すフローチャートである。
【図５】本願発明の実施形態におけるＥＣＵの分割データの書き込み処理の手順を示すフローチャートである。
【図６】本願発明の実施形態におけるアプリケーションプログラムの転送及び書込み処理のシーケンスを示す図である。
【図７】本願発明の実施形態におけるアプリケーションプログラムの転送及び書込み処理のシーケンスを示す図である。
【図８】本願発明の実施形態における書込みツールの分割データの転送処理の手順を示すフローチャートで示す図である。
【図９】本願発明の実施形態におけるＥＣＵの分割データの書き込み処理の手順を示すフローチャートである。
【図１０】本願発明の実施形態におけるＥＣＵの分割データの書き込み処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に本発明の実施の形態を説明する。
図１は、自動車に搭載されて、エンジンの燃料噴射装置や自動変速機や各種のポンプなどの車載装置を制御する自動車用電子制御装置であるＥＣＵ（Electronic Control Unit）１００の製造工程１０、及び、ＥＣＵ１００に対するアプリケーションプログラム書込み工程２０を示す。
ＥＣＵ１００は、電気的にデータの消去及び書き込みが可能な不揮発性メモリの一例としてフラッシュＲＯＭ（Read-Only Memory）１１０を備え、このフラッシュＲＯＭ１１０に格納された制御プログラム等によって車載装置を制御する。
【００１１】
製造工程１０では、ＥＣＵ１００のフラッシュＲＯＭ１１０に対して、ハードウェアの検査プログラムを実行し、かつ、後の工程でアプリケーションプログラムの書込みを実行するためのプログラムを書込み、ハードウェアの検査を実施する。尚、製造工程１０は、例えば、ＥＣＵ１００のサプライヤなどによって行われる作業の一部である。
アプリケーションプログラム書込み工程２０では、ＥＣＵ１００のフラッシュＲＯＭ１１０に対し、外部の書込みツール２００を使用することにより、ＥＣＵ１００が搭載される車種に応じたアプリケーションプログラムを書込む。
【００１２】
これにより、製造工程１０から供給されるＥＣＵ１００は、特定の車種に適合した仕様となる。尚、後の検査工程において、自動車に組付けられたＥＣＵ１００のフラッシュＲＯＭ１１０に、その自動車に対応するアプリケーションプログラムが書き込まれているか否かが検査される。また、アプリケーションプログラム書込み工程２０は、例えば、自動車組み立て工場におけるＥＣＵ組付け工程に関連して行われる作業である。
【００１３】
次に、ＥＣＵ１００及び書込みツール２００の構成を図２に従って説明する。
ＥＣＵ１００は、不揮発性メモリであるフラッシュＲＯＭ（フラッシュメモリ）１１０、マイクロコンピュータ１２０、揮発性メモリであるＲＡＭ（Random Access Memory）１３０、通信回路１４０などを備える。
ＥＣＵ１００には、ＣＡＮ（Controller Area Network）などの通信回線３００を介して書込みツール２００が着脱可能に接続される。
【００１４】
マイクロコンピュータ１２０は、ＣＰＵ、及び、キャッシュメモリ等を備え、フラッシュＲＯＭ１１０及びＲＡＭ１３０に格納された各種プログラムを実行する。
ＲＡＭ１３０には、第１のバッファ領域１３３及び第２のバッファ領域１３４を設定してある。第１のバッファ領域１３３及び第２のバッファ領域１３４は、フラッシュＲＯＭ１１０にデータを書込むときに、分割データを一時的に保存するために使用される。
尚、ＲＡＭ１３０に設定される第１のバッファ領域１３３及び第２のバッファ領域１３４に代えて、第１バッファメモリ及び第２バッファメモリを、フラッシュＲＯＭ１１０、ＲＡＭ１３０とは別に設けることができる。即ち、本願におけるバッファとは、データを一時的に保存する記憶装置又は記憶領域である。
【００１５】
書込みツール２００は、例えばハードディスクであるストレージ２１０及び通信回路２４０を備える。また、書込みツール２００は、例えばパーソナルコンピュータなどの端末及びＥＣＵ１００と接続するための装置を含み、書込みツール２００を操作する作業者が、書込みツール２００に対し対話的に指示を出すことができる。
書込みツール２００は、ストレージ２１０に格納されているアプリケーションプログラム等の分割データを、ＥＣＵ１００に対して転送する。
【００１６】
ここで、ＥＣＵ１００のフラッシュＲＯＭ１１０は、書き込みサイズが２５６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のブロックについても、書込みツール２００からマイクロコンピュータ１２０に転送させることで、図３に示した例と同様にして、書き込みを行わせることができることは明らかである。
更に、ＥＣＵ１００に対する外部からのデータ転送は、無線で行わせるものであってもよく、また、転送されるデータは、アプリケーションプログラムに限定されない。
【００７０】
ここで、上記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
（イ）各バイトが全てＦＦである分割データが外部から転送されない、請求項２記載の自動車用電子制御装置。
上記発明によると、各バイトが全てＦＦである分割データについては、外部から転送されず、この転送されなかった分割データに対して組み合わせるべき分割データについては、その前側又は後側に、各バイトが全てＦＦであるデータを付加して、不揮発性メモリの書き込みサイズとする。
【００７１】
（ロ）前記不揮発性メモリの書き込みサイズの半分のサイズの分割データが、外部から転送される、請求項１，２のいずれか１つに記載の自動車用電子制御装置。
上記発明によると、外部から転送される分割データを２個まとめ、不揮発性メモリに対して一括して書き込む。
【００７２】
（ハ）外部から転送される分割データが、車載装置を制御するためのアプリケーションプログラムのデータである、請求項１，２のいずれか１つに記載の自動車用電子制御装置。
上記発明によると、共通の装置として作製した自動車用電子制御装置に対して、搭載される車種に応じたアプリケーションプログラムを書き込ことで、特定の車種に適合した仕様の装置とすることができる。
【符号の説明】
【００７３】
１００…ＥＣＵ（自動車用電子制御装置）、１１０…フラッシュＲＯＭ（不揮発性メモリ）、１２０…マイクロコンピュータ、１３０…ＲＡＭ、２００…書込みツール（外部装置）
【図１】
2013182456.tif 000003
【図２】
2013182456.tif 000004
【図４】
2013182456.tif 000005
【図５】
2013182456.tif 000006
【図８】
2013182456.tif 000007
【図９】
2013182456.tif 000008
【図１０】
2013182456.tif 000009
【図３】
2013182456.tif 000010
【図６】
2013182456.tif 000011
【図７】
2013182456.tif 000012