JP2017228319A - 自動車用電子制御装置 - Google Patents

自動車用電子制御装置 Download PDF

Info

Publication number
JP2017228319A
JP2017228319A JP2017181421A JP2017181421A JP2017228319A JP 2017228319 A JP2017228319 A JP 2017228319A JP 2017181421 A JP2017181421 A JP 2017181421A JP 2017181421 A JP2017181421 A JP 2017181421A JP 2017228319 A JP2017228319 A JP 2017228319A
Authority
JP
Japan
Prior art keywords
program
writing
ecu
data
communication
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
JP2017181421A
Other languages
English (en)
Other versions
JP6445646B2 (ja
Inventor
雄介 阿部
Yusuke Abe
雄介 阿部
康司 湯浅
Koji Yuasa
康司 湯浅
新井 敏央
Toshinaka Arai
敏央 新井
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2017181421A priority Critical patent/JP6445646B2/ja
Publication of JP2017228319A publication Critical patent/JP2017228319A/ja
Application granted granted Critical
Publication of JP6445646B2 publication Critical patent/JP6445646B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】自動車用電子制御装置において、書込みデータの転送に要する時間を短縮する。
【解決手段】書込みツール200からECU100に対し、ECU100上のROM110に書込むためのデータを転送するとき、ECU100は、通信バッファ領域141の通信バッファのうち、車載状態においてECU100が書込みツール200と通信するために使用する通信バッファに加えて、車載状態において書込みツール200以外の装置と通信するために使用する通信バッファを使用して通信を行う。
【選択図】図2

Description

本発明は、自動車用電子制御装置に関する。
自動車用のECU(Electronic Control Unit)などの自動車用電子制御装置は、電気的にデータの消去及び書込みが可能な不揮発性メモリ(例えば、フラッシュROM(Read-Only Memory))を搭載している。電子制御装置は、不揮発性メモリに格納された制御プログラム等によって車載装置(例えば、燃料噴射装置)を制御する。
不揮発性メモリに制御プログラム等のデータを書込むとき、特開2008−146521号公報(特許文献1)に記載されているように、書込みデータを電子制御装置に転送するための書込みツールを電子制御装置に接続する。そして、書込みツールから電子制御装置に書込みデータを転送しながら、電子制御装置が、書込みデータを不揮発性メモリに書込む。
特開2008−146521号公報
ところで、自動車用電子制御装置は、通信相手となる装置ごとに異なる通信バッファを使用することで通信を行う。よって、自動車用電子制御装置は、書込みツールから転送される書込みデータを受信するとき、その書込みツールとの通信用に割当てられた通信バッファしか使用できないため、1回の通信で受信できるデータのサイズは限られていた。
従って、例えば、書込みツールからデータを1回受信するごとにその応答を書込みツールに送信するような同期を取る通信の場合、自動車用電子制御装置は、受信する回数と同じ回数の送信を行うことになる。このため、自動車用電子制御装置と書込みツールとの間で通信する回数が多くなり、書込みデータを転送する時間を長くする原因の1つとなっていた。
そこで、本技術はこのような問題点に鑑み、自動車用電子制御装置において、書込みデータの転送に要する時間を短縮する技術を提供することを目的とする。
上記課題を解決するための自動車用電子制御装置は、少なくとも、車両制御の制御プログラムと通信バッファの設定プログラムの書込みを行う外部書込み装置に接続される自動車用電子制御装置であって、前記自動車用電子制御装置は、一時的に制御プログラム及びデータを保持する揮発性メモリと、電気的にデータの消去及び書込みが可能な不揮発性メモリと、前記外部書込み装置との通信に用いる第1の通信バッファと車両制御を行う外部装置との通信に用いる第2の通信バッファを有する通信回路部と、を含んで構成され、前記外部書込み装置から受信した前記通信バッファの設定プログラムによって、前記第2の通信バッファを前記第1の通信バッファとして割当て、前記第1の通信バッファ及び前記第1の通信バッファとして割当てられた前記第2の通信バッファを用いて制御プログラム及びデータを受信することを特徴とする。
本技術によれば、自動車用電子制御装置において、自動車用電子制御装置と外部書込み装置との間で通信する回数を減らすことができ、書込みデータの転送に要する時間を短縮することができる。
ECU製造工程及びアプリケーションプログラム書込み工程の説明図である。 ECU及び書込みツールの構成図である。 通信バッファ領域の詳細を示す図である。 アプリケーションプログラム書込み工程の手順をフローチャートで示した図である。 プログラム書込み全体処理の概要を示す図である。 通信環境が変更された後の、通信バッファ領域の詳細を示す図である。 書込みツールのデータ転送プログラムが実行する処理のフローチャートである。 書込みツールのデータ転送プログラムが実行する処理のフローチャートである。 書込みツールのデータ転送プログラムが実行する処理のフローチャートである。 書込みツールのデータ転送プログラムが実行する処理のフローチャートである。 ECUのRAM展開プログラムが実行する処理のフローチャートである。 ECUの書込みメインプログラムが実行する処理のフローチャートである。 ECUの書込みメインプログラムが実行する処理のフローチャートである。 ECUの書込みメインプログラムが実行する処理のフローチャートである。 ECUの書込みメインプログラムが実行する処理のフローチャートである。 ECUの書込みサブプログラムが実行する処理のフローチャートである。 アプリケーションプログラムの転送及び書込み処理の実施例のシーケンスを示す図である。
以下、添付された図面を参照して本発明を実施するための実施形態について技術を詳細に説明する。
ECU100に搭載されたROM(例えば、フラッシュROM)に対し、アプリケーションプログラム(例えば、エンジン制御プログラム)を書込むためのECU製造工程10及びアプリケーションプログラム書込み工程20を図1に示す。
ECU製造工程10では、ECU100に搭載されたROMに、ハードウェアの検査プログラムが実行でき、後の工程でアプリケーションプログラムの書込みが可能となるような必要最低限のプログラム(以下、最低限プログラムと略記する)を書込み、検査する。
なお、ECU製造工程10は、例えば、ECUサプライヤ等によって行われる作業の一部である。
アプリケーションプログラム書込み工程20では、ECU100上のROMに対し、書込みツール200(外部書込み装置)を使用することにより、車種に応じたアプリケーションプログラムを書込む。これにより、ECU製造工程10から供給されるECU100は、各車種用のECU100となる。
なお、後の検査工程において、自動車に組付けられたECU100のROMに、その自動車に応じたアプリケーションプログラムが書込まれているか否かを検査する。また、アプリケーションプログラム書込み工程20は、例えば、自動車工場等のECU組付け工程に関連して行われる作業である。
このように、ECU100は、アプリケーションプログラム書込み工程20のROM書込みの前までは各車種共通のものであるため、例えば、ECUサプライヤ等は、各車種共通のECUを製造し、自動車工場等に納品すればよい。従って、ECUサプライヤ等では、車種毎のECU100のプログラミング、製造及び納品管理等が不要となる。
また、自動車工場等では、アプリケーションプログラム書込み工程20のROM書込みの前まで、車種毎のECU100の保持及び管理(在庫状況など)が不要となる。よって、これらの工程により、ECUサプライヤ及び自動車工場等では、製造及び管理等を大幅に削減できるメリットがある。
しかしながら、自動車工場等において、従来では存在しなかったアプリケーションプログラム書込み工程20が新たに追加される。このアプリケーションプログラム書込み工程20において、車種に応じたアプリケーションプログラムを迅速にROMに書込むことが要求される。
この要求に応じるECU100及び書込みツール200の構成を図2に示す。
ECU100は、車両用エンジンにおける燃料噴射や点火等を制御するためのものであり、ROM110、マイクロコンピュータ120、及び、揮発性メモリであるRAM(Random Access Memory)130、通信回路140を含んで構成される。
ECU100は、CAN(Controller Area Network)などの通信回線300によって、書込みツール200に対し着脱可能に接続される。
マイクロコンピュータ120は、CPU、及び、キャッシュメモリ等を備え、ROM110及びRAM130に格納された各種プログラムを実行する。
RAM130には、第1のバッファ領域133及び第2のバッファ領域134が存在する。第1のバッファ領域133及び第2のバッファ領域134は、ROM110にデータを書込むときに使用される。
通信回路140には、通信バッファ領域141が存在する。通信バッファ領域141は、ECU100が通信回路140によって他の装置と通信するときに使用される。
書込みツール200は、ストレージ210(例えば、ハードディスク)及び通信回路240を含んで構成される。
また、書込みツール200は、端末(例えば、パーソナルコンピュータ)及びECU100と接続する装置を含み、書込みツール200を操作する作業者が、書込みツール200に対し対話的に指示を出すことができる。書込みツール200は、ストレージ210に格納されている書込みデータを、ECU100に対して転送する。
ストレージ210には、ECU100に転送されるアプリケーションプログラム等が格納されている。
通信回路240には、通信バッファ領域241が存在する。通信バッファ領域241は、書込みツール200が通信回路240によってECU100と通信するときに使用される。
ここで、ECU100が、書込みツール200と通信するときに使用する通信バッファ領域141の詳細を図3に示す。
ECU100の通信バッファ領域141には、一定のサイズの通信バッファ(例えば、CANにおけるメールボックス)が複数存在する。ECU100は、各装置と通信するとき、通信バッファ領域141の通信バッファのうち、通信相手となる装置との通信用として予め割当てられている通信バッファを使用する。
なお、それぞれの通信バッファは、データの送信に使用される送信バッファ(TX)と、データの受信に使用される受信バッファ(RX)とに分かれている。また、通信相手となる装置との通信用として予め割当てられている通信バッファの数を、車載状態の通信環境で使用する数とする。
一方、書込みツール200の通信バッファ領域241には、一定のサイズの通信バッファが複数存在する。
なお、通信バッファ領域241の通信バッファのサイズは、ECU100の通信バッファ領域141の通信バッファのサイズと同じである。
図3において、ECU100の通信バッファ領域141には、ECU100が書込みツール200と通信するために使用する通信バッファ(以下、書込みツール用通信バッファと略記する)として、2個の通信バッファ(TX1個、RX1個)が、割当てられている。また、通信バッファ領域141のその他の通信バッファは、書込みツール200以外の装置との通信用に割当てられている。
従って、通信バッファのサイズが8バイトであり、かつ、ECU100が、1つのデータの受信ごとに書込みツール200にその応答を返すように、ECU100と書込みツール200との間で同期を取りながら通信を行う場合、1つのデータの受信に1個のRXを使用するため、ECU100が64バイトのデータを取得するまでに、16回の通信が必要になる。
即ち、書込みツール200が64バイトのデータを8バイトに分けて転送し、ECU100は8バイト受信するごとに書込みツール200に応答を返すため、通信回数が16回となる。
アプリケーションプログラム書込み工程20における手順を図4に示す。
ステップ1(図では「S1」と略記する。以下同様)では、作業者が、書込みツール200にECU100を接続する。ECU100は、書込みツール200に接続されると電源が投入され、マイクロコンピュータ120が最低限プログラムを実行することによって、書込みツール200と通信可能になり、書込みツール200から転送されるデータの受信待ち状態となる。
ステップ2では、作業者が、ROM110に書込むためのアプリケーションプログラム(例えば、車種A用のエンジン制御プログラム)等を指定する。書込みツール200は、アプリケーションプログラムが指定されると、指定されたアプリケーションプログラムをECU100に転送する。
ECU100は、転送されたアプリケーションプログラム等を受信しながら、アプリケーションプログラムをROM110に書込む。以下、このステップ2の処理を、プログラム書込み全体処理と呼ぶ。
ステップ3では、作業者が、書込みツール200からECU100を取外す。
なお、この後、ECU100は、各自動車に組付けられる。また、検査工程において、ECU100のROM110に正しいアプリケーションプログラムが書込まれた否か(例えば、組付けられた自動車に応じたアプリケーションプログラムか否か)がチェックされる。正しいアプリケーションプログラムが書込まれていなければ、自動車に組付けられたECU100に対し、書込みツール200を接続し、正しいアプリケーションプログラムを書込む。
図5に、プログラム書込み全体処理の概要を示す。
ステップ11では、書込みツール200は、作業者によって書込みプログラム及びROM110に書込むためのアプリケーションプログラムが指定されると、書込みプログラム及びアプリケーションプログラムを転送するデータ転送プログラムを起動する。そして、書込みツール200は、データ転送プログラムによって、ECU100に対し、書込みプログラム(例えば、書込みプログラム2)の転送を開始するメッセージを送信すると共に、指定された書込みプログラムを転送する。
ここで、作業者が指定する書込みプログラムは、ストレージ210に存在する書込みプログラムデータベース211に格納されている。
書込みプログラムは、ECU100に転送され、通信環境の変更などの初期化処理、書込みデータの受信処理、及び、書込みデータをROM110に書込む処理をECU100上で実行する。
また、書込みプログラムは、書込みメインプログラム及び書込みサブプログラムから構成される。
書込みメインプログラムは、ECU100に転送された後にECU100上で動作し、書込みツール200とECU100との間で、書込みプログラムに応じた通信環境(通信バッファの使用方法、通信速度、暗号化方式等)を確立する。
また、書込みメインプログラムは、書込みツール200から転送されるアプリケーションプログラムを、書込みプログラムに応じた書込み条件(書込むROMの領域のアドレス等)によってROM110に書込む。
書込みサブプログラムは、書込みメインプログラムから起動され、通信バッファ領域141にある受信データを、第1のバッファ領域及び第2のバッファ領域にコピーする。
さらに、作業者が指定するアプリケーションプログラムは、ストレージ210に存在するアプリケーションプログラムデータベース212に格納されている。
各アプリケーションプログラムは、それぞれの車種に応じたエンジン制御用プログラム等である。
ステップ12では、ECU100が、書込みプログラムの転送元である書込みツール200から、書込みプログラムの転送を開始するメッセージを受信すると、ROM110に格納されているRAM展開プログラムを起動する。
ここで、RAM展開プログラムは、ECU100が受信した書込みプログラムをRAM130上に展開する処理を行う。従って、ECU100は、書込みプログラムを受信しながら、RAM展開プログラムによって、受信した書込みプログラムをRAM130に展開する。
ステップ13で、ECU100は、書込みプログラムの展開が完了すると、RAM展開プログラムによって、RAM130に展開した書込みプログラムを起動する。
ステップ14で、ECU100は、書込みプログラムによって、ECU100と書込みツール200との間の通信環境を、その書込みプログラムに応じた通信環境に変更し、書込みツール200に対し、アプリケーションプログラムの送信を要求するメッセージを送信する。
ステップ15で、書込みツール200が、アプリケーションプログラムの送信を要求するメッセージを受信すると、データ転送プログラムによって、ECU100に対し、作業者によって指定されたアプリケーションプログラム(例えば、アプリケーションプログラム1)の転送を開始する。
ステップ16で、ECU100は、書込みツール200からアプリケーションプログラムを受信しながら、書込みメインプログラム及び書込みサブプログラムによって、書込み条件に基づき、受信したアプリケーションプログラムを、ROM110に書込む。
なお、書込み終了後、ECU100は書込みツール200から取外され、電源がOFFになる。次にECU100の電源が投入されたとき、ECU100の通信環境は、初期状態(ステップ1のときと同様の通信環境)に戻る。
また、プログラム書込み全体処理の途中で、何からの異常(例えば、書込みプログラム動作時、書込みツール200との通信が切断された等)が発生した場合は、ECU100が自らをリセットする。そして、ECU100の通信環境は、初期状態に戻る。
従って、書込みプログラムを選択することで、プログラム書込み全体処理において、使用する通信環境及びアプリケーションプログラムの書込み条件等に応じて、より適した書込みプログラムを動作させることができる。
このため、例えば、通信速度がより高速な書込みプログラムを動作させることで高速に通信を行い、プログラム書込み全体処理を高速化することができる。
また、プログラム書込み全体処理のときに、書込みプログラムがECU100に転送されるため、書込みプログラムをROM110に格納する必要がなくなり、ROM110の使用量を削減することができる。
さらに、書込みプログラムを変更することにより、プログラム書込み全体処理に新しい機能を追加することができる。
なお、ECU100に書込みツール200に加えて他の装置が接続された状況でも、ECU100は、プログラム書込み全体処理の間、他の装置との通信を遮断し、書込みツール200のみと通信するようにすれば、プログラム書込み全体処理を実行することができる。
ECU100に書込みツール200に加えて他の装置が接続された状況で、プログラム書込み全体処理を行う例として、ECU100が自動車に組付けられた状態で、アプリケーションプログラムの書込みを実施することが挙げられる。
この場合、通信路の競合を防ぐため、ECU100は、書込みツール200と通信するときに使用する通信環境は、他の装置と共通する通信環境(例えば、通信速度が共通)である必要がある。
このため、作業者は、書込みプログラムを、他の装置と共通の通信環境を確立するものを指定し、プログラム書込み全体処理を実施する。このとき、ECU100は、書込みツール200のみと通信し、他の装置との通信を遮断する。
次に、ECU100が、書込みツール200から転送されるアプリケーションプログラムを受信するときに使用する、通信バッファ領域141の使用方法を説明する。
アプリケーションプログラム書込み工程20のような状況において、ECU100は、書込みツール200以外の装置と通信しないため、書込みツール200以外の装置と通信するために予め割当てられた通信バッファ(以下、他の装置用通信バッファと略記する)は、使用されない。
このため、書込みプログラムは、書込みツール用通信バッファに加えて他の装置用通信バッファを、ECU100と書込みツール200との間の通信に使用するように変更することができる。
変更後の通信バッファ領域141の詳細を示したのが図6である。
図6の例では、ECU100は、書込みツール200と通信するとき、書込みツール用通信バッファとして2個の通信バッファ、及び、他の装置用通信バッファのうちの7個の通信バッファを使用する。
このとき、ECU100が使用する9個の通信バッファは、TXとして1個、RXとして8個を設定する。なお、このとき、書込みツール200の通信バッファ領域241の通信バッファは、TXが8個、RXが1個となる。
例えば、1つの通信バッファのサイズが8バイトであり、かつ、ECU100が、1つのデータの受信ごとに書込みツール200にその応答を返すように、ECU100と書込みツール200との間で同期を取りながら通信を行う場合、1つのデータの受信に8個のRXが使用できるため、ECU100が64バイトのデータを書込みツール200から取得するまで、従来と比較して、9回の通信で済むことになる。
即ち、書込みツール200が64バイトのデータを1つのデータとして8バイトごとに分けて転送し、ECU100は8バイトのデータを8個受信するごとに書込みツール200に応答を返す。このため、通信回数が9回となる。
なお、書込みプログラムは、ECU100が書込みツール200との通信に使用する通信バッファの数を、データの送受信のサイズ、データの送受信のサイズの整数倍、ROM110への1回の書込みのサイズ又はROM110への1回の書込みのサイズの整数倍等に応じた数にしてもよい。
このように、書込みツール用通信バッファに加えて他の装置用通信バッファも使用して通信することができるため、同期を取るような通信では、通信回数が少なくなり、データの転送に要する時間が減少し、データの転送の高速化が図れる。
また、他の装置用通信バッファを使用するため、通信バッファのオーバライトを気にすることなく、書込みツール200が連続してデータを転送することができる。
なお、通信バッファ領域141のうち、どの装置にも割当てられていない未使用の通信バッファがあれば、書込みプログラムが、未使用の通信バッファを、ECU100と書込みツール200との間の通信で使用するように変更することもできる。
次に、プログラム書込み全体処理において動作する各プログラムを説明する。
図7及び図8は、書込みツール200において、書込みプログラム及びアプリケーションプログラムが作業者によって指定されたことを契機として、データ転送プログラムが、書込みツール200によって実行する処理のフローチャートを示す。
ステップ31では、データ転送プログラムが、書込みプログラムの転送を開始することを示すメッセージ(書込みプログラムの転送開始メッセージ)をECU100に送信する。
ステップ32では、データ転送プログラムが、指定された書込みプログラムのデータを、ECU100が1回の通信で受信可能なサイズだけ順次転送する。
ステップ33では、データ転送プログラムが、ECU100から次のデータの要求メッセージを受信したか否かを判定する。データ転送プログラムは、ECU100から次のデータの要求メッセージを受信していれば、処理をステップ34に進める(Yes)一方、ECU100から次のデータの要求メッセージを受信していなければ、処理をステップ33に戻す(No)。
ステップ34では、データ転送プログラムが、指定された書込みプログラムの転送を完了したか否かを判定する。データ転送プログラムは、指定された書込みプログラムの転送を完了していれば、処理をステップ35に進める(Yes)一方、指定された書込みプログラムの転送を完了していなければ、処理をステップ32に戻す(No)。
ステップ35では、データ転送プログラムが、書込みプログラムの転送が完了したことを示すメッセージ(書込みプログラムの転送完了メッセージ)をECU100に送信する。
ステップ36では、データ転送プログラムが、ECU100からメッセージを受信したか否かを判定する。
データ転送プログラムは、ECU100からメッセージを受信していれば、処理をステップ37に進める(Yes)一方、ECU100からメッセージを受信していなければ、処理をステップ36に戻す(No)。
ステップ37では、データ転送プログラムは、ECU100から受信したメッセージが、書込みプログラムが正当に転送された旨のメッセージであるか否かを判定する。
データ転送プログラムは、受信したメッセージが、書込みプログラムが正当に転送された旨のメッセージであれば、処理をステップ38に進める(Yes)一方、受信したメッセージが、書込みプログラムが正当に転送された旨のメッセージでなければ、処理をステップ39に進める(No)。
ステップ38では、データ転送プログラムが、アプリケーション転送処理サブルーチンを実行する。
なお、アプリケーション転送処理サブルーチンは、指定されたアプリケーションプログラムのデータを、複数に分割して転送する処理を行う。以下では、この分割して転送するデータを分割データと呼ぶ。
ステップ39では、データ転送プログラムが、書込みプログラムを再度先頭から転送するような設定(例えば、書込みプログラムのインデックスを先頭に戻すなど)を行う。
図9〜図10は、アプリケーション転送処理サブルーチンの処理のフローチャートを示す。
ステップ41では、データ転送プログラムは、書込みツール200がECU100よりメッセージを受信したか否かを判定する。データ転送プログラムは、ECU100よりメッセージを受信していれば、処理をステップ42に進める(Yes)一方、ECU100よりメッセージを受信していなければ、処理をステップ41に戻す(No)。
ステップ42では、データ転送プログラムは、受信したメッセージが分割データの送信要求を示すメッセージ(分割データの送信要求メッセージ)か否か判定する。データ転送プログラムは、受信したメッセージが分割データの送信要求メッセージなければ、処理をステップ43に進める(Yes)一方、受信したメッセージが分割データの送信要求メッセージであれば、処理をステップ44に進める(No)。
ステップ43では、データ転送プログラムは、受信したメッセージが分割データの再送要求を示すメッセージ(分割データの再送要求メッセージ)か否かを判定する。データ転送プログラムは、受信したメッセージが分割データの再送要求メッセージでなければ、処理をステップ47に進める(Yes)一方、受信したメッセージが分割データの再送要求メッセージであれば、処理をステップ46に進める(No)。
ステップ44では、データ転送プログラムが、指定されたアプリケーションプログラムのインデックスを表わす読出しポインタが指す位置からデータを読出し、その読出したデータにチェックサムを付加することで分割データを作成する。
ここで、データの読出しサイズは、転送した書込みプログラムがECU100において確立する通信環境で使用する各RXのサイズの総計から、チェックサムのサイズを減算した値にする。
また、読出しポインタの初期値は、アプリケーションプログラムの先頭のアドレスである。読出しポインタは、ステップ44が実行されるごとに、データの読出しサイズだけ加算される。
例えば、転送した書込みプログラムが確立する通信環境で使用する各RXのサイズの総計が64バイト、及び、チェックサムのサイズが2バイトである場合、データの読出しサイズは62バイト、分割データのサイズは64バイトとなる。
なお、データ検証用として、チェックサムの他にはCRC(Cyclic Redundancy Check)がある。
また、分割データに対し、書込みツール200側で、何番目に転送した分割データであるかを示すシーケンス番号を分割データに含め、ECU100側で、受信した分割データのシーケンス番号をチェックすることで、正しい順序で分割データが受信できたか否かをチェックするようにしてもよい。
ステップ45では、データ転送プログラムが、作成した分割データをECU100に転送する。このとき、データ転送プログラムは、分割データを転送するため、分割データを通信バッファ領域241のTXのサイズごとに分け、通信バッファ領域241の各TXに格納する。
例えば、分割データが64バイト、及び、1個あたり8バイトのTXが通信バッファ領域241に8個ある場合、データ転送プログラムは、分割データを、8バイトごとに8個のデータに分けて各TXに格納する。
なお、TXに格納されたデータは、通信回路240によって、ECU100に転送される。
ステップ46では、データ転送プログラムが、作成した分割データを再度、ECU100に転送する。
ステップ47では、データ転送プログラムは、受信したメッセージが、分割データがECU100のROM110に正常に書込まれなかったことを示すメッセージ(分割データの書込みNGメッセージ)か否かを判定する。
データ転送プログラムは、受信したメッセージが分割データ書込みNGメッセージでなければ、処理をステップ48に進める(Yes)一方、受信したメッセージが分割データの書込みNGメッセージであれば、処理をステップ50に進める(No)。
ステップ48では、データ転送プログラムが、読出しポインタがアプリケーションプログラムの最後まで到達したか否かの判定によって、アプリケーションプログラムの転送を最後まで完了したか否かを判定する。
データ転送プログラムは、アプリケーションプログラムの転送を最後まで完了していれば、処理をステップ49に進める(Yes)一方、アプリケーションプログラムの転送を最後まで完了していなければ、処理をステップ41に進める(No)。
ステップ49では、データ転送プログラムが、アプリケーションプログラムの転送が完了したことを示すメッセージ(アプリケーションの転送完了メッセージ)をECU100に送信する。
ステップ50では、データ転送プログラムが、アプリケーションプログラムを再度先頭から転送するために、読出しポインタの値をアプリケーションプログラムの先頭アドレスに設定する。
図11は、ECU100が書込みプログラムの転送開始メッセージを受信したことを契機として、RAM展開プログラムがECU100によって実行する処理のフローチャートを示す。
ステップ51では、RAM展開プログラムは、ECU100が書込みツール200からデータを受信したか否かを判定する。
RAM展開プログラムは、書込みツール200からデータを受信していれば、処理をステップ52に進める(Yes)一方、書込みツール200からデータを受信していなければ、処理をステップ51に戻す(No)。
ステップ52では、RAM展開プログラムは、受信したデータが、書込みプログラムの転送完了メッセージであるか否かを判定する。
RAM展開プログラムは、受信したデータが書込みプログラムの転送完了メッセージであれば、処理をステップ53に進める(Yes)一方、受信したデータが書込みプログラムの転送完了メッセージでなければ、処理をステップ56に進める(No)。
ステップ53では、RAM展開プログラムが、チェックサム等によって、転送された書込みプログラムが正当か否かを判定する。
RAM展開プログラムは、転送された書込みプログラムが正当であれば、処理をステップ54に進める(Yes)一方、転送された書込みプログラムが正当でなければ、処理をステップ58に進める(No)。
ステップ54では、RAM展開プログラムが、書込みツール200に対し、書込みプログラムが正当に転送された旨のメッセージを送信する。
ステップ55では、RAM展開プログラムが、RAM130に展開した書込みプログラムのなかの書込みメインプログラムを起動する。
ステップ56では、RAM展開プログラムが、受信した書込みプログラムのデータを通信バッファ領域141のRXからRAM130に展開する。
ステップ57では、RAM展開プログラムが、書込みツール200に対し、次のデータの要求メッセージを送信する。
ステップ58では、RAM展開プログラムが、書込みツール200に対し、書込みプログラムが正当に転送されていない旨のメッセージを送信する。
図12は、書込みメインプログラムが起動されたことを契機として、書込みメインプログラムが、ECU100によって実行する処理のフローチャートを示す。
ステップ61では、書込みメインプログラムは、転送された書込みプログラムに応じて、ECU100が書込みツール200と通信するための通信環境を変更する。なお、ECU100が書込みツール200以外の他の装置と通信可能である場合は、通信環境を変更しないようにしてもよい。
ステップ62では、書込みメインプログラムが、ROM書込み処理サブルーチンを実行する。
なお、ROM書込み処理サブルーチンは、分割データの転送元である書込みツール200から分割データを受信し、分割データに基づいてアプリケーションプログラムのデータをROM110に書込む処理を行う。
図13〜図15は、ROM書込み処理サブルーチンを示す。
ステップ71では、書込みメインプログラムが、第1のバッファ領域133を、書込みツール200から受信する分割データをコピーするためのコピー用の領域に設定する。
ステップ72では、書込みメインプログラムが、書込みサブプログラムを起動する。
ステップ73では、書込みメインプログラムが、ROM110に書込むデータ(アプリケーションプログラムのデータ)のうち、何番目のデータが処理中であるかを表わすカウンタである変数nに1を代入する。
ステップ74では、書込みメインプログラムは、初回の分割データを取得するために、分割データの送信要求メッセージを書込みツール200に送信する。
ステップ75では、書込みメインプログラムは、書込みツール200から受信した分割データがコピー用の領域にコピーされたことを示すメッセージ(分割データのコピー完了メッセージ)を書込みサブプログラムより通知されたか否か判定する。書込みメインプログラムは、分割データのコピー完了メッセージが通知されていれば、処理をステップ76に進める(Yes)一方、分割データのコピー完了メッセージが通知されていなければ、処理をステップ75に戻す(No)。
ステップ76では、書込みメインプログラムが、コピー用の領域に格納された初回の分割データを参照し、分割データに含まれたチェックサムを利用することによって、初回の分割データが正常に受信できたか否かを判定する。
書込みメインプログラムは、初回の分割データが正常に受信できていれば、処理をステップ77に進める(Yes)一方、初回の分割データが正常に受信できていなければ、処理をステップ78に進める(No)。
ステップ77では、書込みメインプログラムが、第1のバッファ領域133を、ROM110に分割データを書込むときに使用する書込み用の領域に設定するとともに、第2のバッファ領域134をコピー用の領域に設定する。
ステップ78では、書込みメインプログラムが、初回の分割データを再度取得するために、分割データの再送要求メッセージを書込みツール200に送信する。
なお、分割データの再送要求メッセージと共に、分割データを正常に受信できなかったことを示すメッセージ(分割データの受信NGメッセージ)を、書込みツール200に送信するようにしてもよい。
ステップ79では、書込みメインプログラムが、2番目の分割データを取得するために分割データの送信要求メッセージを書込みツール200に送信する。
なお、分割データの送信要求メッセージと共に、前回の分割データを正常に受信できたことを示すメッセージ(分割データの受信OKメッセージ)を、書込みツール200に送信してもよい。
ステップ80では、書込みメインプログラムが、書込み用の領域に格納されているn番目の分割データからチェックサムを取り除き、書込み条件に従って、書込み用の領域に格納されているデータをROM110に書込む。
ステップ81では、書込みメインプログラムが、書込みデータのベリファイを実行することによって、n番目のデータがROM110に正常に書込まれたか否か判定する。
書込みメインプログラムは、n番目のデータがROM110に正常に書込まれていれば、処理をステップ82に進める(Yes)一方、n番目のデータがROM110に正常に書込まれていなければ、処理をステップ84に進める(No)。
なお、書込みデータのベリファイは、例えば、書込み用の領域の内容と、書込んだROM110の領域の内容とを比較することで行われる。
ステップ82では、書込みメインプログラムが、分割データのコピー完了メッセージが書込みサブプログラムから通知されたか否かを判定する。書込みメインプログラムは、分割データのコピー完了メッセージが通知されていれば、処理をステップ83に進める(Yes)一方、分割データのコピー完了メッセージが通知されていなければ、処理をステップ82に戻す(No)。
ステップ83では、書込みメインプログラムは、コピー用の領域に格納されたデータが、アプリケーションの転送完了メッセージであるか否か判定する。
書込みメインプログラムは、コピー用の領域に格納されたデータがアプリケーションの転送完了メッセージであれば、処理を終了する(Yes)一方、コピー用の領域に格納されたデータがアプリケーションの転送完了メッセージでなければ、処理をステップ87に進める(No)。
ステップ84では、書込みメインプログラムが、分割データの書込みNGメッセージを、書込みツール200に送信する。
ステップ85では、書込みメインプログラムが、書込みを行ったROM110の領域のデータを消去する。
ステップ86では、書込みメインプログラムが、第1のバッファ領域133を、コピー用の領域に設定する。
ステップ87では、書込みメインプログラムが、コピー用の領域にコピーされたn+1番目の分割データをチェックサムにより検証することによって、n+1番目の分割データが正常に受信できたか否かを判定する。書込みメインプログラムは、n+1番目の分割データが正常に受信できていれば、処理をステップ88に進める(Yes)一方、n+1番目の分割データが正常に受信できていなければ、処理をステップ91に進める(No)。
なお、n+1番目の分割データの検証は、n+1番目の分割データを受信した直後に書込みサブプログラムが行ってもよい。
ステップ88では、書込みメインプログラムが、コピー用に設定されていたバッファ領域を書込み用の領域にすると共に、書込み用に設定されていたバッファ領域をコピー用の領域にする。
ステップ89では、書込みメインプログラムが、n+2番目の分割データを取得するために、分割データの送信要求メッセージを書込みツール200に送信する。
なお、分割データの送信要求メッセージと共に、n番目の分割データをROM110に書込んだ旨のメッセージ(分割データの書込みOKメッセージ)及びn+1番目の分割データを受信した旨のメッセージ(分割データの受信OKメッセージ)を書込みツール200に送信するようにしてもよい。
ステップ90では、書込みメインプログラムが、nに1を加算する。
ステップ91では、書込みメインプログラムが、n+1番目の分割データを再度取得するために、分割データの再送要求メッセージを書込みツール200に送信する。なお、分割データの再送要求メッセージと共に、n+1番目の分割データが正常に受信できなかった旨のメッセージ(分割データの受信NGメッセージ)を、書込みツール200に送信するようにしてもよい。
図16は、ECU100が書込みツール200からデータを受信したことを契機として、書込みサブプログラムがECU100によって実行する処理のフローチャートを示す。
ステップ101では、書込みサブプログラムが、受信した分割データを、通信バッファ領域141のRXからコピー用の領域にコピーする。
ステップ102では、書込みサブプログラムが、分割データのコピー完了メッセージを、書込みメインプログラムに通知する。
なお、コピー用の領域を、通信バッファ領域141のRXに相当する領域に設定し、ECU100が、コピー用の領域を使用してデータを受信するようにしてもよい。この場合、通信バッファ領域141のRXからコピー用の領域に分割データをコピーする処理が不要となる。
また、分割データの送信要求からコピー完了までの処理時間と、データをROM110に書込み及び検証処理に要する時間とで差がある場合、いずれかの時間の長い方の処理が完了したときに、次の分割データの受信処理と、データをROM110に書込む処理とを開始するようにしてもよい。
このように、受信した分割データをECU100のRXにコピーし、ROM110に書込みを行うためのバッファ領域を2つ用意する。そして、2つのバッファ領域のうち、一方のバッファ領域を、ROM110に対する書込み処理に使用している間、他方のバッファ領域を、ECU100が受信した分割データをコピーする処理に使用する。
これにより、ECU100において、一方のバッファ領域を使用しROM110にデータを書込む処理と、分割データの受信、及び、受信した分割データを他方のバッファ領域にコピーする処理とを並列に行うことができる。このため、プログラム書込み全体処理に要する時間を削減することができる。
また、これらの処理を実現するには、ECU100側の処理を変更すればよいため、書込みツール200を大幅に変更することなく、プログラム書込み全体処理に要する時間を削減することができる。
アプリケーションプログラムの転送及び書込み処理の実施例のシーケンスは図17に示すとおりとなる。
ここで、書込みツール200が転送するプログラムの大きさは、180バイトである。また、ECU100の各RXのサイズの総計は64バイトである。
ECU100は、初回の分割データの送信要求メッセージを、書込みツール200に送信する。
書込みツール200は、アプリケーションプログラムのデータのうち、最初の62バイトのデータを読み、2バイトのチェックサムを付加して初回の分割データを作成し、ECU100に転送する。
ECU100は、初回の分割データを受信した後、初回の分割データを通信バッファ領域141のRXから第1のバッファ領域133にコピーする。
次に、ECU100は、初回の分割データの検証を行い、第2の分割データの送信要求メッセージを書込みツール200に送信する。また、ECU100は、第1のバッファ領域133を使用し、データをROM110に書込む処理、及び、書込みデータの検証を行う。
書込みツール200は、第2の分割データの送信要求メッセージを受信すると、次に転送する62バイトのデータを読み、チェックサムを付加して第2の分割データを作成し、ECU100に転送する。
ECU100は、第2の分割データを受信した後、第2の分割データを通信バッファ領域141のRXから第2のバッファ領域134にコピーする。次に、ECU100は、第2の分割データの検証を行う。
また、ECU100は、第2の分割データの検証及び初回の書込みデータの検証が完了すると、第3の分割データの送信要求メッセージを書込みツール200に送信する。さらに、ECU100は、第2のバッファ領域134を使用し、データをROM110に書込む処理、及び、書込みの検証を行う。
書込みツール200が、第3の分割データの送信要求メッセージを受信した後、残りの56バイトのデータを読み、チェックサムを付加して第3の分割データを作成し、ECU100に転送する。
ECU100が、第3の分割データを受信した後の処理は、第2データを受信した後の処理と同様である。
書込みツール200は、第4の分割データの送信要求メッセージを受信すると、アプリケーションの転送完了メッセージをECU100に送信する。
なお、本実施形態はECU100を例にしたものであるが、ECU100に代えて、不揮発性メモリを搭載した他の電子制御装置にも適用できる。
また、1つの書込みツール200に複数のECU100を接続し、1つの書込みツール200が、各ECU100に対し、ROM110に書込むためのデータを時分割に転送するようにしてもよい。
ここで、前記実施形態から把握し得る請求項以外の技術的思想について、以下に効果と共に記載する。
(イ)前記制御プログラム及びデータの受信に使用する通信バッファは、車載状態の通信環境で未使用な通信バッファを含むことを特徴とする請求項1記載の自動車用電子制御装置。
車載状態で、通信相手となるどの装置も使用しない未使用の通信バッファがある場合、制御プログラム及びデータを取得するときにその未使用の通信バッファを使用することで、1つのデータを受信するために使用できる通信バッファのサイズが大きくなるため、通信回数を少なくすることができる。
(ロ)電気的にデータの消去及び書込みが可能な不揮発性メモリを備え、通信バッファを使用する通信によって、前記不揮発性メモリに書込むためのプログラムを所定サイズごとに取得可能な自動車用電子制御装置であって、
前記プログラムの受信を、車載状態の通信環境で使用する数を超える数の通信バッファを使用して行うことを特徴とする自動車用電子制御装置。
(ハ)前記プログラムの受信において使用する通信バッファは、前記車載状態の通信環境で、通信相手となる複数の装置が使用するものであることを特徴とする(ロ)に記載の自動車用電子制御装置。
(ニ)前記プログラムの受信において使用する通信バッファのサイズは、前記所定サイズ又は前記メモリへの書込みサイズに基づいて設定されることを特徴とする(ロ)又は(ハ)に記載の自動車用電子制御装置。
これらの自動車用電子制御装置によると、同期を取るような通信では、通信回数が少なくなり、データの転送に要する時間が減少し、データの転送の高速化が図れる。
(ホ)電気的にデータの消去及び書込みが可能な不揮発性メモリを備え、通信バッファを使用する通信によって、前記不揮発性メモリに書込むためのプログラムを所定サイズごとに取得可能な自動車用電子制御装置が、
前記プログラムの受信を、車載状態の通信環境で使用する数を超える数の通信バッファで行うことを特徴とするデータ通信方法。
このデータ通信方法によると、同期を取るような通信では、通信回数が少なくなり、データの転送に要する時間が減少し、データの転送の高速化が図れる。
100…ECU、110…ROM、141…通信バッファ領域

Claims (1)

  1. 少なくとも、車両制御の制御プログラムと通信バッファの設定プログラムの書込みを行う外部書込み装置に接続される自動車用電子制御装置であって、
    前記自動車用電子制御装置は、
    一時的に制御プログラム及びデータを保持する揮発性メモリと、
    電気的にデータの消去及び書込みが可能な不揮発性メモリと、
    前記外部書込み装置との通信に用いる第1の通信バッファと車両制御を行う外部装置との通信に用いる第2の通信バッファを有する通信回路部と、
    を含んで構成され、
    前記外部書込み装置から受信した前記通信バッファの設定プログラムによって、前記第2の通信バッファを前記第1の通信バッファとして割当て、前記第1の通信バッファ及び前記第1の通信バッファとして割当てられた前記第2の通信バッファを用いて制御プログラム及びデータを受信することを特徴とする自動車用電子制御装置。
JP2017181421A 2017-09-21 2017-09-21 自動車用電子制御装置 Active JP6445646B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017181421A JP6445646B2 (ja) 2017-09-21 2017-09-21 自動車用電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017181421A JP6445646B2 (ja) 2017-09-21 2017-09-21 自動車用電子制御装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016105127A Division JP6216000B2 (ja) 2016-05-26 2016-05-26 自動車用電子制御装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018224148A Division JP6692400B2 (ja) 2018-11-29 2018-11-29 自動車用電子制御装置

Publications (2)

Publication Number Publication Date
JP2017228319A true JP2017228319A (ja) 2017-12-28
JP6445646B2 JP6445646B2 (ja) 2018-12-26

Family

ID=60892062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017181421A Active JP6445646B2 (ja) 2017-09-21 2017-09-21 自動車用電子制御装置

Country Status (1)

Country Link
JP (1) JP6445646B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020147157A (ja) * 2019-03-13 2020-09-17 日立オートモティブシステムズ株式会社 自動車用電子制御装置及びプログラム書込み方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003122622A (ja) * 2001-10-09 2003-04-25 Honda Motor Co Ltd データの受信および書き込みを制御する車両制御装置
JP2004210183A (ja) * 2003-01-07 2004-07-29 Komatsu Ltd 車載プログラムの書き換え制御装置
JP2005056106A (ja) * 2003-08-04 2005-03-03 Nec Corp 集積回路、および情報処理装置
JP5945044B2 (ja) * 2015-06-26 2016-07-05 日立オートモティブシステムズ株式会社 自動車用電子制御装置、自動車用電子制御装置の書込みシステム、及び車両制御の制御プログラムの書込み方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003122622A (ja) * 2001-10-09 2003-04-25 Honda Motor Co Ltd データの受信および書き込みを制御する車両制御装置
JP2004210183A (ja) * 2003-01-07 2004-07-29 Komatsu Ltd 車載プログラムの書き換え制御装置
JP2005056106A (ja) * 2003-08-04 2005-03-03 Nec Corp 集積回路、および情報処理装置
JP5945044B2 (ja) * 2015-06-26 2016-07-05 日立オートモティブシステムズ株式会社 自動車用電子制御装置、自動車用電子制御装置の書込みシステム、及び車両制御の制御プログラムの書込み方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020147157A (ja) * 2019-03-13 2020-09-17 日立オートモティブシステムズ株式会社 自動車用電子制御装置及びプログラム書込み方法
JP7161427B2 (ja) 2019-03-13 2022-10-26 日立Astemo株式会社 自動車用電子制御装置及びプログラム書込み方法

Also Published As

Publication number Publication date
JP6445646B2 (ja) 2018-12-26

Similar Documents

Publication Publication Date Title
JP5451705B2 (ja) 自動車用電子制御装置及びデータ通信方法
JP5547701B2 (ja) 自動車用電子制御装置
US11360698B2 (en) Electronic control unit for vehicle and method of writing data
US11914871B2 (en) Electronic control device and program-update method
JP5945044B2 (ja) 自動車用電子制御装置、自動車用電子制御装置の書込みシステム、及び車両制御の制御プログラムの書込み方法
JP2019159401A (ja) 車両制御システム及び車両制御システムにおけるソフトウェアの整合性確認方法
JP5816256B2 (ja) 自動車用電子制御装置及びデータ通信方法
JP6302004B2 (ja) 書込みプログラム
JP6445646B2 (ja) 自動車用電子制御装置
JP2019109745A (ja) 自動車用電子制御装置
JP6216000B2 (ja) 自動車用電子制御装置
WO2020189281A1 (ja) 電子制御装置及び制御データの設定方法
JP2019040633A (ja) 自動車用電子制御装置
JP5813833B2 (ja) 自動車用電子制御装置
JP5956505B2 (ja) 自動車用電子制御装置
JP2018067176A (ja) 電子制御装置
CN117062066A (zh) 基于tbox的密钥灌装方法、装置、车辆及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20180501

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180615

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: 20181030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181129

R150 Certificate of patent or registration of utility model

Ref document number: 6445646

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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