(57)【要約】【課題】プログラム書換装置から電子制御装置にプログラムデータを効率よく書込むことができるようにする。【解決手段】プログラム書換装置は、有効データ領域であると判断した場合は、当該有効データ領域の先頭アドレスを特定し、無効データ領域であると判断した場合は、有効データ領域の先頭アドレス及び送信サイズ、並びに当該有効データ領域の各データを送信し、ＥＣＵは、プログラム書換装置から受信した情報に基づいて、未使用領域範囲を計算して当該未使用領域へ無効データを書込むと共に有効データ領域の先頭アドレスから有効データを書込んでから書込完了通知を送信する。これにより、プログラム書換装置からＥＣＵへ有効データ領域のデータを纏めて送信することができ、送受信時の応答フレームにオーバーヘッドを生じることなくデータを効率良く送信することができる。【選択図】図５
2017078897.tif 000002
【特許請求の範囲】
【請求項１】
プログラム書換装置（１２）から電子制御装置（２）にプログラムデータを送信することによりプログラム記憶手段（８）に記憶されているプログラムを書換えるプログラム書換システムにおいて、
前記プログラム書換装置は、
プログラムデータの先頭アドレスから順に有効データ領域か無効データ領域かを判断する判断手段（１３）と、
前記判断手段が有効データ領域であると判断した場合は、当該有効データ領域の先頭アドレスを特定する先頭アドレス特定手段（１３）と、
前記判断手段が無効データ領域であると判断した場合は、前記先頭アドレス特定手段が特定した有効データ領域の先頭アドレス及び当該有効データ領域の各データを送信する第１送信手段（１３）と、
書込完了通知を受信する第１受信手段（１３）と、を備え、
プログラムデータの全ての送信を終了するまで前記各手段による動作を繰返し、
前記電子制御装置は、
前記第１送信手段が送信した有効データ領域の先頭アドレス及び当該有効データ領域の各データを受信する第２受信手段（６）と、
前記第２受信手段が受信した有効データ領域のデータを記憶するデータ記憶手段（７）と、
前記第２受信手段が受信した先頭アドレスと前回受信した有効データ領域の末尾アドレスに基づいて無効データ領域範囲を計算する計算手段（６）と、
前記プログラム記憶手段に前回書込んだ有効データ領域に続けて前記計算手段が計算した無効データ領域範囲に無効データを書込むと共に前記先頭アドレスから有効データ領域のデータを書込むプログラム書込手段（６）と、
前記プログラム書込手段による有効データ領域の書込みが終了した場合は、書込完了通知を送信する第２送信手段（６）と、を備えたプログラム書換システム。
【請求項２】
前記プログラム書換装置は、
前記判断手段が無効データ領域であると判断した場合は、有効データ領域の送信サイズを特定する送信サイズ特定手段（１３）を備え、
前記第１送信手段は、前記送信サイズ特定手段が特定した送信サイズを送信し、
前記電子制御装置の前記第２受信手段は、送信サイズを受信し、
前記第２送信手段は、前記第２受信手段が受信した送信サイズ分のデータを前記データ記憶手段の空き領域に記憶できる場合は、書込完了通知を直ちに送信する請求項１に記載のプログラム書換システム。
【請求項３】
請求項１または２のプログラム書換システムにおいて使用されるプログラム書換装置。
【請求項４】
請求項１または２のプログラム書換システムにおいて使用される電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置のプログラムを書換えるプログラム書換装置、プログラム書換装置、及び電子制御装置に関する。
【背景技術】
【０００２】
電子制御装置のプログラムを書換えるプログラム書換装置として、ブロック単位でプログラムを書換えるものが提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１２２６３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のものは、所定のブロック単位でデータの有効／無効を判断するため、ブロック単位でデータを送信して書換えている。この場合、プログラム書換装置からブロック単位を構成するデータを送信フレームにより電子制御装置に送信すると、電子制御装置ではデータを受信したところで応答フレームをプログラム書換装置に通知することで、プログラム書換装置が次のデータを送信することを繰り返す。このため、送受信時の応答フレームにオーバーヘッドを生じている。
【０００５】
また、有効データと無効データの判断処理をプログラムデータの全領域を実施してから送信を開始しているので、電子制御装置はデータ受信後データの復元処理を生じている。
さらに、未使用領域の無効データの書込みを行うためのデータ通信が発生している。
【０００６】
本発明は上記事情に鑑みてなされたもので、その目的は、プログラム書換装置から電子制御装置にプログラムデータを効率よく書込むことができるプログラム書換システム、プログラム書換装置、及び電子制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
請求項１の発明によれば、プログラム書換装置の判断手段がプログラムデータの先頭アドレスから順に有効データ領域か無効データ領域かを判断し、有効データ領域であると判断した場合は、先頭アドレス特定手段が有効データ領域の先頭アドレスを特定する。有効データ領域が終了して無効データ領域となると、判断手段が無効データ領域であると判断し、第１送信手段が有効データ領域の先頭アドレス及び当該有効データ領域の各データを送信する。
【０００８】
電子制御装置の第２受信手段が有効データ領域の先頭アドレス及び当該有効データ領域の各データを受信すると、データ記憶手段が有効データ領域のデータを記憶する。一方、計算手段は、第２受信手段が受信した先頭アドレスと前回受信した有効データ領域の末尾アドレスに基づいて無効データ領域範囲を計算する。プログラム書込手段は、プログラム記憶手段に前回書込んだ有効データ領域に続けて計算手段が計算した無効データ領域範囲に無効データを書込むと共に当該無効データ領域に続けて今回の有効データ領域にデータ記憶手段が記憶しているデータを書込む。そして、第２送信手段は、プログラム書込手段による有効データ領域へのデータの書込みが終了した場合は書込完了通知を送信する。
【０００９】
プログラム書換装置の第１受信手段は、書込完了通知を受信したときは、電子制御装置による無効データ領域及び有効データ領域へのデータ書込みが完了したことを確認することができる。
【００１０】
以上のようにして、プログラム書換装置は、プログラムデータの全ての有効データ領域の先頭アドレス及び当該有効データ領域の各データを電子制御装置に順に送信し、電子制御装置は、先頭アドレスに基づいて無効データ領域を特定し、当該無効データ領域に無効データを書込むと共に有効データ領域の先頭アドレスから有効データを書込むことで、プログラムデータの全てを書込むことができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態における全体の電気的構成を示すブロック図
【図２】有効データ領域と無効データ領域とを示す図
【図３】プログラム書換装置によるリプログ処理を示すフローチャート
【図４】ＥＣＵによるリプログ処理を示すフローチャート
【図５】プログラム書換装置とＥＣＵの動作シーケンスを示す図
【図６】プログラム書換装置からＥＣＵへのデータ送信動作を示す図
【図７】プログラム書換装置とＥＣＵの動作シーケンスを示す図
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態について図面を参照して説明する。
車両１には、図１に示すように、エンジンを制御するエンジンＥＣＵ、カーエアコンを制御するエアコンＥＣＵ、ブレーキの作動を制御するブレーキＥＣＵ等の複数のＥＣＵ２（電子制御装置に相当）が搭載されている。ＥＣＵ２は、車載ＬＡＮ３を通じてコネクタ４と接続されている。ＥＣＵ２はマイクロコンピュータ５を主体として構成されている。マイクロコンピュータ５は、ＣＰＵ６（第２受信手段、計算手段、プログラム書込手段、第２送信手段に相当）、ＲＡＭ７（データ記憶手段に相当）、例えばフラッシュメモリからなるＰＲＯＭ８等から構成されている。ＣＰＵ６は、入力回路９、出力回路１０、外部通信インターフェース１１などの周辺回路と接続されており、ＰＲＯＭ８に記憶されているプログラムに基づいて動作する。
【００１３】
プログラム書換装置１２は、コネクタ４に接続された状態でＥＣＵ２との間で情報を送受信する外部装置であり、ＥＣＵ２と共にプログラム書換システムを構成する。プログラム書換装置１２は、ＣＰＵ１３（判断手段、先頭アドレス特定手段、第１送信手段、第１受信手段、送信サイズ特定手段に相当）を主体として構成されており、ＰＲＯＭ８（プログラム記憶手段に相当）に記憶されているプログラムを書換える場合は、ＥＣＵ２に対して新規のプログラムデータ（以下、リプログデータ）をシリアル通信により送信する。
【００１４】
ＥＣＵ２のＣＰＵ６は、外部通信インターフェース１１を通じてプログラム書換装置１２との間でシリアル通信を行い、リプログデータを受信してＲＡＭ７に一時的に書込む。
リプログデータは、図２に示すように、有効データ領域と無効データ領域とからなり、有効データ領域と次の有効データ領域との間が未使用領域である無効データ領域となる。無効データ領域は無効データが書込まれている領域であり、本実施形態では、無効データとして１６進数で「ＦＦ」を書込んでいる。尚、無効データとして１６進数で「００」を書込む場合もあるし、他のデータを書込む場合もある。
ＥＣＵ２は、リプログ指令操作を受付けると、プログラム書換装置１２から車載ＬＡＮ３を介してＥＣＵ２にリプログデータを送信する。
【００１５】
次に、プログラム書換装置１２からＥＣＵ２にリプログデータを送信する際のデータ通信について説明する。
プログラム書換装置１２は、リプログ指令操作を受付けると、図３に示すように、例えば図示しない記憶装置に予め記憶されているリプログデータを取得し（Ｓ１０１）、当該リプログデータの先頭アドレスから順に有効データ領域かを判断する（Ｓ１０２）。具体的には、１６進数で「ＦＦ」となるデータが連続するバイト数を特定し、その連続バイト数が４バイト未満かを判断する。つまり、有効データ領域の場合は、１６進数で「ＦＦ」となるデータが４バイト連続することはないので、４バイト未満の場合は有効データ領域であると判断するのである。尚、無効データ領域に「００」を書込むような場合は、１６進数で「００」となるデータが連続するバイト数を判断することになる。
【００１６】
有効データ領域であると判断した場合は（Ｓ１０２：ＹＥＳ）、当該有効データ領域の先頭となる該当行アドレスを先頭アドレスとして記憶する（Ｓ１０３）。このように該当行アドレスを先頭アドレスとして記憶するのは有効データ領域であると最初に判断した場合のみである。
【００１７】
次に、無効データ領域かを判断する（Ｓ１０４）。具体的には、１６進数で「ＦＦ」となるデータが４バイト以上連続した場合は、無効データ領域であると判断する。
無効データ領域でないと判断した場合は（Ｓ１０４：ＮＯ）、以上の動作を繰返し、無効データ領域であると判断した場合は（Ｓ１０４：ＹＥＳ）、有効データ領域のサイズである送信サイズを求め、上述ようにして特定した先頭アドレスと送信サイズを送信する（Ｓ１０５）。送信サイズを求めるには、有効データ領域の末尾アドレスから当該有効データ領域の先頭アドレスの一つ前のアドレスを差し引いて求める。
【００１８】
次に、先頭アドレスから送信サイズ分のデータを送信し（Ｓ１０６）、書込完了通知を受信したかを判断する（Ｓ１０７）。尚、図３のフローチャートでは、有効データ領域のデータを送信した後に、書込完了通知を受信したかを判断するようになっているが、後述するように先頭アドレスと送信サイズを送信した直後に書込完了通知を受信する場合があることから、実際には、有効データ領域のデータを送信する前であっても書込完了通知を受信可能となっている。
【００１９】
ＥＣＵ２は、図４に示すように、先頭アドレスと送信サイズを受信すると（Ｓ２０１：ＹＥＳ）、送信サイズがＲＡＭ７の空き容量以上かを判断する（Ｓ２０２）。このＲＡＭ７は、プログラム書換装置１２から連続して受信するデータを一時的に記憶するためのメモリである。ＲＡＭ空き容量値が送信サイズ以下の場合は（Ｓ２０２：ＹＥＳ）、有効データ領域の受信が終了したかを判断する（Ｓ２０５）。具体的には、受信したデータは初受信か、またはデータのアドレスが連続しているかを判断する。つまり、有効データ領域のデータを受信開始した場合は、受信したデータは初受信となり、有効データ領域のデータの受信中は受信したデータのアドレスは連続していることから、このような条件を満足する場合は、有効データ領域のデータを受信していると判断するのである。
【００２０】
ここで、プログラム書換装置１２とＥＣＵ２との間のデータの送受信は、図６に示すように、プログラム書換装置１２が送信開始を示すFirst Frame（ＦＦ）を送信すると、ＥＣＵ２は、自己の受信性能を示すFlow Control（ＦＣ)を送信する。つまり、プログラム書換装置１２に対して自己の受信性能を通知する。そして、プログラム書換装置１２は、受信した受信性能に従ってデータをConsecutive Flame（ＣＦ）で送信する。この場合、ＲＡＭ空き容量が送信サイズ以下の場合は受信性能が低いことから、ＦＣによりプログラム書換装置１２に対してデータの送信を待機することを要求する。つまり、ＲＡＭ空き容量が送信サイズに対して不足している場合は受信したデータを連続してＲＡＭ７に記憶することができないことから、プログラム書換装置１２に対してデータの送信を待機することを要求し、ＲＡＭ空き容量を確保し次第プログラム書換装置１２に対してデータ送信を要求するのである。
【００２１】
以上のようにして、有効データ領域のデータの受信が終了すると（Ｓ２０５：ＹＥＳ）、未使用領域への無効データ書込範囲を計算する（Ｓ２０６）。つまり、前回受信した有効データ領域の末尾アドレスと今回受信した有効データ領域の先頭アドレスとの間は未使用領域である無効データ領域であることから、ＰＲＯＭ８における無効データ領域に無効データである１６進数の「ＦＦ」を書込むと共に今回受信した有効データ領域のデータを先頭アドレスから書込む（Ｓ２０７）。
【００２２】
尚、図２に示すようにリプログデータの先頭から有効データ領域のデータを取得した場合は、前回受信した有効データ領域が存在しないことから、先頭アドレスから有効データ領域にデータを書込むことになる。
【００２３】
次に、書込完了通知を送信済かを判断する（Ｓ２０８）。この場合、書込完了通知を送信済みでないことから（Ｓ２０８：ＮＯ）、書込完了通知を送信する（Ｓ２０９）。
プログラム書換装置１２は、書込完了通知を受信すると（Ｓ１０７：ＹＥＳ）、リプログデータの末尾かを判断し（Ｓ１０８）、末尾でない場合は（Ｓ１０８：ＮＯ）、上述した動作を繰返して実行し、末尾となった場合は（Ｓ１０８：ＹＥＳ）、動作を終了する。
【００２４】
一方、ＥＣＵ２は、有効データ領域の先頭アドレスと送信サイズを受信する毎に上記動作を繰返す。
以上のような動作の結果、常にＲＡＭ空き容量が送信サイズ以下の場合は、図５に示すようなシーケンスを実行するようになる。つまり、プログラム書換装置１２は、ＥＣＵ２が無効データ領域及び有効データ領域の書込みを完了するまで待機してから次の有効データ領域を探索する。
【００２５】
さて、ＥＣＵ２は、先頭アドレスと送信サイズを受信した場合に（Ｓ２０１：ＹＥＳ）、ＲＡＭ空き容量が送信サイズを上回っている場合は（Ｓ２０２：ＮＯ）、ＲＡＭ空き容量値を更新する（Ｓ２０３）。つまり、今回受信する有効データ領域分だけＲＡＭ空き容量を減算することで、次に受信する有効データ領域のデータが受信可能かを計算可能とするのである。
【００２６】
次に、書込完了通知を送信してから（Ｓ２０４）、ステップＳ２０５へ移行する。つまり、ＲＡＭ空き容量が送信サイズを上回っている場合は、有効データ領域の各データを受信してＲＡＭ７に記憶することができることから、先頭アドレスと送信サイズを受信したところで書込完了通知を直ちに送信するのである。
【００２７】
プログラム書換装置１２は、上述したように図３のフローチャートでは動作順番が逆になっているが、有効データ領域の先頭アドレスと送信サイズを送信してから（Ｓ１０５）、書込完了通知を受信した場合は（Ｓ１０７：ＹＥＳ）、有効データ領域のデータを送信してから（Ｓ１０６）、リプログデータの末尾かを判断し（Ｓ１０８）、末尾でない場合は（Ｓ１０８：ＮＯ）、ステップＳ１０２に移行することにより上述した動作を繰返して実行し、末尾となった場合は（Ｓ１０８：ＹＥＳ）、動作を終了する。
【００２８】
従って、動作開始時にＲＡＭ空き容量が有効データ領域の合計容量を上回っている場合は、図７に示すようなシーケンスを実行することになる。つまり、プログラム書換装置１２は、リプログデータのデータ送信後に書込完了通知を受信するまで待機することなくリプログデータのデータ送信前に書込完了通知を受信して次の動作を実行することができるので、プログラム書換装置１２とＥＣＵ２とが並列処理を実行するようになり、リプログデータの書換時間を短縮することができる。
【００２９】
このような実施形態によれば、次のような効果を奏することができる。
プログラム書換装置１２は、有効データ領域であると判断した場合は、当該有効データ領域の先頭アドレスを特定し、無効データ領域であると判断した場合は、有効データ領域の先頭アドレス及び当該有効データ領域の各データを送信し、ＥＣＵ２は、有効データ領域の先頭アドレス及び当該有効データ領域の各データを受信すると、未使用領域範囲を計算して当該未使用領域へ無効データを書込むと共に有効データ領域を先頭アドレスから書込んでから書込完了通知を送信するので、プログラム書換装置１２からＥＣＵ２へ有効データ領域のデータを纏めて送信することができ、送受信時の応答フレームにオーバーヘッドを生じることなくデータを効率良く送信することができる。
【００３０】
プログラム書換装置１２が、有効データと無効データの判断処理をリプログデータに対して部分的に実行して送信するので、ＥＣＵ２は、復元処理が不要になり通信時間を短縮することができる。
【００３１】
さらに、プログラム書換装置１２は、有効データ領域の先頭アドレス及び当該有効データ領域の各データを送信し、ＥＣＵ２は、有効データ領域のデータを受信すると、未使用領域に無効データを書込むと共に有効データ領域の先頭アドレスから当該有効データ領域の各データを書込むので、未使用領域の無効データの書込みを行うためのデータ通信も不要である。
【００３２】
加えて、プログラム書換装置１２は、有効データ領域の先頭アドレスを送信する場合は、当該有効データ領域の送信サイズを同時に送信し、ＥＣＵ２は、送信サイズに基づいてＲＡＭ空き容量が送信サイズを上回っている場合は書込完了通知を直ちに送信するので、プログラム書換装置１２とＥＣＵ２とが並列動作を実行可能となり、リプログデータの書換時間を一層短縮することができる。
【００３３】
（その他の実施形態）
本発明は、上記実施形態に限定されることなく、次のように変形または拡張できる。
上記実施形態では、プログラム書換装置１２は、有効データ領域の先頭アドレスを送信する場合は、当該有効データ領域の送信サイズも同時に送信し、ＥＣＵ２は、受信した送信サイズに基づいてＲＡＭ空き容量が送信サイズを上回っていた場合は書込完了通知を直ちに送信するようにしたが、プログラム書換装置１２が送信サイズを送信せず、ＥＣＵ２がＲＡＭ空き容量と送信サイズとを比較しないようにしても良い。つまり、プログラム書換装置１２が送信サイズを送信するのは、ＥＣＵ２が有効データ領域のデータを受信するのに先立って書込完了通知を送信することを可能とするためであり、このような動作を省略するようにしても良い。要するに、本発明は、プログラム書換装置１２からＥＣＵ２に有効データ領域のデータを纏めて送信することに特徴を有することから、斯様な特徴を実施するための構成以外の構成は省略可能である。
【符号の説明】
【００３４】
図面中、２はＥＣＵ（電子制御装置）、６はＣＰＵ（第２受信手段、計算手段、プログラム書込手段、第２送信手段）、７はＲＡＭ（データ記憶手段）、８はＰＲＯＭ（プログラム記憶手段）、１２はプログラム書換装置、１３はＣＰＵ（判断手段、先頭アドレス特定手段、第１送信手段、第１受信手段、送信サイズ特定手段）である。
【図１】
2017078897.tif 000003
【図２】
2017078897.tif 000004
【図３】
2017078897.tif 000005
【図４】
2017078897.tif 000006
【図５】
2017078897.tif 000007
【図６】
2017078897.tif 000008
【図７】
2017078897.tif 000009