(57)【要約】【課題】  自動車用電子制御装置において、不揮発性メモリ上のプログラムを変更することなく、任意のプログラムを追加することを可能とする。【解決手段】  揮発性メモリ１３０上の特定のメモリ番地から開始される領域に、外部からプログラムを転送可能な自動車用電子制御装置１００において、不揮発性メモリ１２０上のプログラムから、前記揮発性メモリ１３０上のメモリ番地から開始されるプログラムを実行するように自動車用電子制御装置１００を構成する。【選択図】図２
2016081150.tif 000002
【特許請求の範囲】
【請求項１】
揮発性メモリ上の特定のメモリ番地から開始される領域に、外部からプログラムを転送可能な自動車用電子制御装置であって、
不揮発性メモリ上のプログラムから、前記揮発性メモリ上のメモリ番地から開始されるプログラムを実行する自動車用電子制御装置。
【請求項２】
請求項１に記載の自動車用電子制御装置であって、
前記プログラムの転送を他の装置との通信によって行う自動車用電子制御装置。
【請求項３】
請求項２に記載の自動車用電子制御装置であって、
前記揮発性メモリ上のメモリ番地から開始されるプログラムを周期またはイベントを契機として実行する自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用電子制御装置に関する。
【背景技術】
【０００２】
自動車用のＥＣＵ（Electronic Control Unit）などの電子制御装置は、不揮発性メモリに格納された車載装置制御プログラム等により、周期またはイベントを契機として、センサ情報の取得や制御指令値の演算を行うことで、車載装置（例えば、燃料噴射装置）を制御する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３５６８７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
電子制御装置は、特許第３５６８７０４号公報（特許文献１）に記載されているように、不揮発性メモリの書き換えを実現するために、リセットスタート後に不揮発性メモリの書き換えの要否判断を行う。
【０００５】
この時、書き換えが必要と判断と判断された場合、揮発性メモリであるＲＡＭ（Random Access Memory）内の書換制御プログラムにて書換処理が行われた後、終了する。また、書き換えが不要と判断された場合は、不揮発性メモリに書かれた車載装置制御プログラム（例えば、エンジン制御プログラム）にジャンプする。車載装置制御プログラムでは、周期またはイベントを契機として車載装置を制御するための処理が実行される
この時、車載装置制御プログラムを書き換えることなく、車載装置制御プログラムと同一の実行タイミング内で、任意の処理を追加または変更し、実行することはできない。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【０００７】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、揮発性メモリ上の特定のメモリ番地から開始される領域に、外部からプログラムを転送可能な自動車用電子制御装置であって、不揮発性メモリ上のプログラムから、前記揮発性メモリ上のメモリ番地から開始されるプログラムを実行することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、不揮発性メモリに格納された制御プログラムを書き換えることなく、制御プログラムと同一の実行タイミング内に、任意のプログラムを追加および変更し、実行することが出来る。
【図面の簡単な説明】
【０００９】
【図１】ＥＣＵ及びプログラム転送ツールの構成図。
【図２】プログラム書換および実行処理の概要。
【図３】ＥＣＵの書換制御プログラムが実行する処理のフローチャート。
【図４】ＥＣＵの車載装置制御プログラムが実行する処理のフローチャート。
【図５】書換可能プログラムが空処理である時に実行する処理のフローチャート。
【図６】書換可能プログラムが任意の処理である時に、実行する処理のフローチャート。
【発明を実施するための形態】
【００１０】
以下、図面を用いて本発明の実施形態を説明する。
【００１１】
図１は、本発明の実施形態に係るＥＣＵ及びプログラム転送ツールの構成例を示している。
【００１２】
ＥＣＵ１００は、自動車用エンジンにおける燃料噴射や点火等を制御するためのものであり、マイクロコンピュータ１１０、不揮発性メモリであるＲＯＭ（Read Only Memory）１２０、揮発性メモリであるＲＡＭ１３０、及び、通信回路１４０を含んで構成される。ＥＣＵ１００は、ＣＡＮ（Controller Area Network）などの通信回線３００によって、プログラム転送ツール２００に対し着脱可能に接続される。
【００１３】
マイクロコンピュータ１１０は、ＣＰＵ（Central Processing Unit）、及び、キャッシュメモリ等を備え、ＲＯＭ１２０及びＲＡＭ１３０に格納された各種プログラムを実行する。
【００１４】
通信回路１４０は、ＥＣＵ１００がプログラム転送ツール２００を含む他の装置と通信するときに使用される。
【００１５】
プログラム転送ツール２００は、ストレージ２１０（例えばハードディスク）及び通信回路２２０を含んで構成される。また、プログラム転送ツール２００は、端末（例えば、パーソナルコンピュータ）及びＥＣＵ１００と接続する装置を含み、プログラム転送ツール２００を操作する作業者が、プログラム転送ツール２００に対し対話的に指示を出すことができる。プログラム転送ツール２００はストレージ２１０に格納されているプログラムデータを、ＥＣＵ１００に対して転送する。
【００１６】
ストレージ２１０には、ＥＣＵ１００に転送される任意の処理が、プログラムデータとして格納されている。なお、プログラムデータとして格納される任意の処理は、複数であってもよい。
【００１７】
通信回路２２０は、プログラム転送ツール２００がＥＣＵ１００と通信するときに使用される。
【００１８】
ここで、ＥＣＵ１００のプログラム書換および実行処理の概要を図２に示す。
【００１９】
ステップ１（図では「Ｓ１」と略記する。以下同様）では、書換制御プログラム１２１が起動され、特殊モードと判定されるとプログラム転送ツール２００と通信を行い、プログラム転送ツール２００よりプログラムデータ（例えば、任意の処理を含むプログラム）を取得する。なお、書込みデータは、一括して転送してよく、時分割に転送してもよい。
【００２０】
ステップ２で、書換制御プログラム１２１は、取得したプログラムデータを、ＲＡＭ１３０の書換可能プログラム領域１３１に書き込む。この時、書換可能プログラム領域１３１に書き込まれたプログラムデータが、書換可能プログラム１３２である。なお、書換可能プログラム領域１３１は、ＲＡＭ１３０上の固定されたメモリ番地から開始される領域であって、書換可能プログラム１３２のプログラムサイズより、十分大きい領域である。
【００２１】
ステップ３で、車載装置制御プログラム１２２は、センサ情報の取得や制御指令値の演算など車載装置（例えば、燃料噴射装置）の制御処理と同一の実行タイミングで、書換可能プログラム１３２を実行する。
【００２２】
書換制御プログラム１２１において実行する処理のフローチャートを図３に示す。
【００２３】
ステップ１１では、特殊モードか否かを判定する。特殊モードとは、ステップ１３を実行するための動作モードのことを指し、通常モード（特殊モード以外の通常動作時）では、外部から入力され得ないＡ／Ｄ入力値や通信データ等の特定のデータの組み合わせが、ＥＣＵ１００に入力されているか否かで判定する。書換制御プログラム１２１は、特定のデータの組み合わせがＥＣＵ１００に入力されていれば、特殊モードであると判定し、処理をステップ１３に進める（Ｙｅｓ）一方、特定のデータの組み合わせがＥＣＵ１００に入力されていなければ、特殊モードではないと判定し、処理をステップ１２に進める。なお、特殊モードの判定条件として、認証手続き（例えば、公開鍵認証）を加えることで、セキュリティを確保することが可能となる。
【００２４】
ステップ１２では、何も実行しない空処理をプログラムデータとして作成する。空処理の作成にあたっては、ステップ１記載のプログラム転送ツール２００と通信する必要はなく、書換制御プログラム１２１の内部で作成できるものである。
【００２５】
ステップ１３では、ステップ１によりプログラム転送ツール２００から任意の処理を取得し、プログラムデータとして保持する。
【００２６】
ステップ１４では、ステップ１２またはステップ１３にて作成したプログラムデータを、ステップ２により、書換可能プログラム領域１３１を書き換える。この時、書換可能プログラム領域１３１に書き込まれたプログラムを、書換可能プログラム１３２と呼ぶ。
【００２７】
ステップ１５では、車載装置制御プログラム１２２を起動する。
【００２８】
車載装置制御プログラム１２２において実行する処理のフローチャートを図４に示す。
【００２９】
ステップ２１では、ステップ３により、書換可能プログラム１３２を実行ループの中で繰り返し実行する。書換可能プログラム１３２は、書換可能プログラム領域１３１の先頭メモリ番地に格納された書換可能プログラム１３２を実行し、書換可能プログラム１３２の終了をもって、終了する。すなわち、書換可能プログラム１３２の内容をステップ１４により書き換えることで、実行する処理を追加および変更することが可能となる。なお、処理の実行タイミングは、周期的な実行だけでなく、イベント（例えば、割込み処理）を契機（処理開始要因）とした非周期的な実行としてもよい。また、ステップ２１は、車載装置制御プログラム内で１箇所の実行とは限らず、複数箇所で実行してもよい。その時、複数箇所に分かれたステップ２１は、それぞれ異なる書換可能プログラムを実行してもよい。
【００３０】
書換可能プログラムが空処理である時に実行する処理のフローチャートを図５に示す。
【００３１】
書換可能プログラムが任意の処理である時に、実行する処理のフローチャートを図６に示す。
【００３２】
ステップ３１では、任意の処理を実行する。
【００３３】
ここで、かかる書換可能プログラムの実行処理の理解を容易ならしめるために、具体的な適用事例を想定して説明する。
【００３４】
（適用事例１）  
適用事例１は、任意の処理として、ＲＡＭやＲＯＭに保存された制御データをモニタする処理を追加する場合である。
【００３５】
自動車用のＥＣＵの場合、市場に出荷する際、防水シール処理がなされることが多い。そのため、ＩＣＥ（In-Circuit Emulator）等の外部モニタツールを接続できなくなる。そこで、ＣＡＮ（Controller Area Network）等の通信により、制御データを取得する。しかし、通信で送受信可能なデータ数には制限があるため、全ての制御データをモニタすることはできない。
【００３６】
そこで、ステップ１３にて読み込む任意の処理として、モニタする制御データを外部から指定する処理を取得する。車載装置制御プログラムからこの処理を実行することで、出荷時はモニタ対象外であった制御データを、後から指定することでモニタすることが可能になる。
【００３７】
本適用事例１は、不具合発生により市場から回収したＥＣＵの原因解析や、無線通信を備えたＥＣＵからの制御データの収集に使用することができる。
【００３８】
（適用事例２）  
適用事例２は、任意の処理として、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の不揮発性メモリを書き換える処理を追加する場合である。
【００３９】
自動車用のＥＣＵでは、意図しない不揮発性メモリ領域の書き換えを防ぐために、市場に出荷する際、任意の不揮発性メモリ領域を書き換える処理を組み込むことが禁止される場合がある。
【００４０】
そこで、ステップ１３にて読み込む任意の処理として、不揮発性メモリの指定領域を任意の値に書き換える処理を取得する。車載装置制御プログラムからこの処理を実行することで、不揮発性メモリ領域の一部のみを書き換えることが可能になる。
【００４１】
本適用事例２は、不具合発生により市場から回収したＥＣＵの原因解析に使用することができる。
【００４２】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【符号の説明】
【００４３】
１００…ＥＣＵ
１１０…マイクロコンピュータ
１２０…ＲＯＭ
１２１…書換制御プログラム
１２２…車載装置制御プログラム
１３０…ＲＡＭ
１３１…書換可能プログラム領域
１３２…書換可能プログラム
１４０…通信回路
２００…プログラム転送ツール
２１０…ストレージ
２２０…通信回路
３００…通信回線
【図１】
2016081150.tif 000003
【図２】
2016081150.tif 000004
【図３】
2016081150.tif 000005
【図４】
2016081150.tif 000006
【図５】
2016081150.tif 000007
【図６】
2016081150.tif 000008