(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態を、
図1〜
図3に基づいて説明する。
図1は、本発明の書換えシステムの一実施形態を示すブロック図である。
図2は、
図1に示すECUのフラッシュROMの構成を示すブロック図である。
図3は、
図1に示すECUのRAMの構成を示すブロック図である。
【0015】
本発明の書換えシステム1は、複数のECU(コンピュータ)10と、これらECU10のプログラムを書換えるための書換え装置20と、を備えている。複数のECU10は、車両の各部に配置され、通信ライン30により互いに通信可能に接続されている。本実施形態では、複数のECU10は、通信ライン30によりバス接続され、互いに通信可能に接続されている。通信ライン30には、上記書換え装置20を着脱自在に接続するための接続部40が設けられている。
【0016】
複数のECU10はそれぞれ、インタフェース(以下、I/F)11と、入力回路12と、出力回路13と、マイクロコンピュータ(以下マイコン)14と、を有している。I/F11は、他のECU10及び書換え装置20と通信を行うための通信インタフェースである。本実施形態では、I/F11は、各種通信(CAN、LIN、その他通信方式)に対応した信号の入出力が可能なインタフェースである。
【0017】
入力回路12は、ローカルスイッチ(以下、ローカルSW)50からの信号が入力される回路である。
図1では、入力回路12には、ローカルSW50からの信号のみ入力されているが、これに限ったものではなく、他に各種センサの出力をA/D変換したAD入力やPWM入力などが入力されていてもよい。
【0018】
出力回路13は、バルブ61やモータ62などの負荷が接続される回路である。
図1では、出力回路13には、バルブ61とモータ62しか接続されていないが、これに限ったものではなく、車両に搭載された負荷が接続されていればよい。また、出力回路13は、チャンネルCH1〜CHn(nは任意の整数)の複数の出力端子を有し、各出力端子に負荷が接続される。そして、ECU10は、各出力端子から負荷を駆動する駆動信号を出力する。
【0019】
マイコン14は、制御部、遮断部としてのCPU(Central Processing Unit)14Aと、フラッシュROM(Read Only Memory)14Bと、RAM(Random Access Memory)14Cと、から構成されている。CPU14Aは、ECU10全体の制御を司り、処理プログラムに従って各種の処理を行う。フラッシュROM14Bは、CPU14Aが行う処理のプログラム等を格納するメモリである。RAM14Cは、CPU14Aでの各種の処理過程で利用するワークエリア、各種データを格納するデータ記憶エリアなどを有するメモリである。また、上記CPU14Aには、各出力端子に流れる電流を検出して、過電流が流れていると判定した場合、その出力端子からの駆動信号の出力を停止する過電流遮断機能が実装されている。
【0020】
フラッシュROM14Bは、
図2に示すように、書換え対象外エリアA1と、書換え対象エリアA2と、の2つのエリアが形成されている。
【0021】
書換え対象外エリアA1には、書換え対象とならない記憶内容(プログラムや設定値)が記憶されている。本実施形態では、書換え対象外エリアA1内には、基本制御プログラムエリアA11と、通信制御プログラムエリアA12と、変数エリアA13と、設定値エリアA14と、書換えプログラムエリアA15と、が形成されている。
【0022】
基本制御プログラムエリアA11には、各種プログラムを周期的に実行するための基本プログラムが記憶されている。通信制御プログラムエリアA12には、CANやLINなどの通信処理を実行するための通信プログラムが記憶されている。変数エリアA13には、エリア内の各プログラムを実行する上で必要な変数が記憶されている。設定値エリアA14には、エリア内の各プログラムを実行する上で必要な設定値(閾値や最小値、最大値、条件分岐に使用する値、カウンター値、初期値等)が記憶されている。書換えプログラムエリアA15には、書換え対象エリアA2の書換え処理を実行するための書換えプログラムが記憶されている。
【0023】
書換え対象エリアA2は、入力判定制御プログラムエリアA21と、ベースアプリ制御プログラムエリアA22と、特殊アプリ制御プログラムエリアA23と、出力判定制御プログラムエリアA24と、が形成されている。
【0024】
入力判定制御プログラムエリアA21には、I/F11を介した通信、入力回路12を介した入力の入力判定処理を実行するための入力判定プログラムが記憶されている。ベースアプリ制御プログラムエリアA22には、入力判定処理の結果に応じた負荷ON/OFF判定処理を実行するためのベースアプリプログラムが記憶されている。
【0025】
特殊アプリ制御プログラムエリアA23には、負荷のON/OFF判定を処理する上で、単純な入力判定処理以外の処理が必要な場合に使用されるプログラムが記憶されている。この特殊アプリ制御プログラムエリアA23には、例えばPWM出力する際の周波数やオンデューティ比の設定処理、入力されたアナログデータを使用した計算処理、閾値や最小値、最大値等の固定値を利用した処理、数個の入力判定処理結果の組み合わせによる負荷のON/OFF判定処理、入力判定処理結果により複数の負荷のON/OFF判定処理を実行するためのプログラムが格納されている。
【0026】
出力判定制御プログラムエリアA24には、負荷のON/OFF判定処理結果を基に出力判定処理するプログラムが記憶されている。
【0027】
また、書換え対象エリアA2は、入力判定制御設定値エリアA25と、ベースアプリ制御設定値エリアA26と、特殊アプリ制御設定値エリアA27と、出力判定制御設定値エリアA28と、が形成されている。
【0028】
エリアA25〜A28には、上記エリアA21〜A28に記憶されたプログラムを実行するのに必要な設定値が記憶されている。
【0029】
RAM14Cには、
図3に示すように、上述したワークエリア、データ記憶エリア以外に、フラッシュROM14Bの各プログラムエリアA21〜A24、設定値エリアA25〜A28を書き換える前に、一時的に仮置きするプログラム仮置きエリアA31〜A34、設定値仮置きエリアA35〜A38が形成されている。
【0030】
書換え装置20は、図示しないマイコンを備えている。マイコンは、周知のCPU、ROM、RAMを有している。書換え装置20は図示しない記憶装置を有し、記憶装置内に複数の書換えデータが格納されている。
【0031】
また、記憶装置には、書換えデータ毎に、書換え対象となるECU10のID(識別情報)が記憶されている。これにより、書換えデータをどのECU10宛に送信すればよいかが分かる。
【0032】
次に、上述した構成の書換えシステム1の動作について
図4〜
図7のフローチャートを参照して以下説明する。まず、作業者が、通信ライン30に設けた接続部40に書換え装置20を接続する。書換え装置20のCPU(以下、単に書換え装置20と略記)は、通信ライン30への接続に応じて
図5〜
図7の書換え処理を開始する。
【0033】
また、作業者は、書換え対象となるECU10のローカルSW50を操作して、各ECU10に書換え信号を入力する。各ECU10のCPU14A(以下、単にECU10と略記)は、電源供給に応じて
図4の処理を開始する。ECU10は、ローカルSW50から書換え信号を入力すると(ステップS1でY)、書換え処理を起動して(ステップS2)、処理を終了する。
【0034】
一方、ECU10は、ローカルSW50から書換え信号が入力されていなければ(ステップS1でN)、後述する書換え処理のステップS31にて送信される他のECU10からの書換え要求を受信したか否かを判定する(ステップS3)。他のECU10からの書換え要求を受信していなければ(ステップS3でN)、ECU10は、通常処理を起動して(ステップS4)、処理を終了する。
【0035】
これに対して、他のECU10からの書換え要求を受信していれば(ステップS3でY)、ECU10は、書換え処理及び通常処理の双方を起動せずに、直ちに処理を終了する。即ち、通信ライン30に接続されている複数のECU10のうち、ローカルSW50から書換え信号が入力されるECU10が一つでもあれば、書換え信号が入力されていないECU10は、通信処理(送受信処理)を行わない。または、ECU10は、他のECU10への影響を及ぼすような処理は行わない。
【0036】
図5に示すように書換え処理において、ECU10は、書換え要求を送信する(ステップS31)。書換え装置20は、書換え処理を実行してから所定時間T1以内にECU10からの書換え要求が受信できないと(ステップS11でN)、書換えを中止して(ステップS12)、書換え処理を終了する。
【0037】
書換え装置20は、書換え処理を実行してから所定時間T1以内にECU10からの書換え要求を受信すると(ステップS11でY)、図示しない記憶装置内に書き込まれた複数のECU10に対する書換えデータの一つを順番に読み出して、読み出した書換えデータを送信する(ステップS13)。
【0038】
ECU10は、書換え要求信号を送信した後(ステップS31)、所定時間T2内に自身宛の書換えデータを受信したか否かを判定する(ステップS32)。所定時間T2を経過しても自身宛の書換えデータを受信できなかった場合(ステップS32でN)、ECU10は、書換えを中止して(ステップS33)、書換え処理を終了する。
【0039】
自身宛の書換えデータを受信した場合(ステップS32でY)、ECU10は、一時的に、RAM14Cに受信した書換えデータを仮置き(記憶)する(ステップS34)。ECU10は、書換えデータを仮置きするときは、
図3に示すように、書換えデータの内容にエリアA31〜A38に記憶させる。
【0040】
その後、ECU10は、RAM14C内に仮置きした書換えデータの読み出し処理を実行する(ステップS35)。そして、ECU10は、ステップS35で読み出した書換えデータとステップS32で受信した書換えデータとが一致しているか否かをチェックする(ステップS36)。
【0041】
一致していなければ(ステップS36でN)、ECU10は、書換えを中止して(ステップS33)、書換え処理を終了する。これに対して、一致していれば(ステップS36でY)、ECU10は、チェック信号を書換え装置20に送信する(ステップS37)。
【0042】
書換え装置20は、書換えデータ送信後に(ステップS13)、所定時間T3内にチェック信号を受信できなければ(ステップS14でN)、書換えを中止して(ステップS12)、書換え処理を終了する。これに対して、所定時間T3内にチェック信号を受信すると(ステップS14でY)、書換え装置20は、図示しない記憶装置に記憶された全ての書換え対象ECU10に対する書換えデータを送信したか否かを判定する(ステップS15)。
【0043】
全ての書換え対象ECU10に対する書換えデータの送信が終了していなければ(ステップS15でN)、書換え装置20は、ステップS13に戻り、次のECU10に対応する書換えデータを読み出して送信する。全ての書換え対象ECU10に対する書換えデータの送信が終了していれば(ステップS15でY)、書換え装置20は、書換え動作テスト開始信号を書換え対象となるECU10宛に送信した後(ステップS16)、後述する書換え動作テスト処理を実行する(ステップS17)。
【0044】
ECU10は、チェック信号送信後(ステップS37)の所定時間T4内に書換え動作開始信号の受信ができなければ(ステップS38でN)、ステップS32に戻る。一方、ECU10は、書換え動作開始信号を受信すると(ステップS38でY)、後述する書換え動作テスト処理を実行する(ステップS39)。
【0045】
次に、ECU10及び書換え装置20が行う書換え動作テスト処理を
図7に基づいて説明する。書換え動作テスト処理は、ECU10が、RAM14C内に仮置きされた書換えデータに従って処理を実行した結果、動作不良がないか否かをテストする処理である。なお、
図7に示す書換え動作テスト処理は一例であり、動作確認を行えるような処理であれば
図7に示す書換え動作テスト処理に限定されるものではない。
【0046】
図7に示すように、書換え装置20は、第1CH1動作テスト信号を送信する(ステップS171)。第1CH1動作テスト信号は、チャンネルCH1の出力端子(以下、単に「チャンネルCH1」と略記する。)のみから駆動信号を出力させる信号である。本実施例では、第1CH1動作テスト信号は、例えば、チャンネルCH1から駆動信号が出力される状態(ON状態)、駆動信号が出力されない状態(OFF状態)が100ms毎に交互に繰り返されるような信号に設定されている。
【0047】
ECU10は、第1CH1動作テスト信号を受信すると(ステップS381でY)、RAM14C内に仮置きされた書換えデータのプログラムに従って、第1CH1動作テスト信号に応じて入力判定及び出力判定を行う動作テスト処理を実行する(ステップS382)。ECU10が、動作テスト処理を実行することにより、各チャンネルCH1〜CHnから駆動信号が出力される。次に、ECU10は、各チャンネルCH1〜CHnからの出力波形を確認して動作確認を行う(ステップS383)。
【0048】
ECU10は、チャンネルCH1がON状態、OFF状態を交互に繰り返す出力波形であり、かつ、その他のチャンネルCH2〜CHnがOFF状態を保持する出力波形であれば動作良好であると判定する(ステップS383でY)。その後、ECU10は、各チャンネルCH1〜CHnの出力波形を示す状態信号を書換え装置20に送信し(ステップS384)、書換え装置20からの第2CH1動作テスト信号の受信を待つ(ステップS385)。
【0049】
一方、ECU10は、チャンネルCH1がON状態、OFF状態を交互に繰り返す出力波形でない、または、その他のチャンネルCH2〜CHnがOFF状態を保持する出力波形でなければ動作不良であると判定する(ステップS383でN)。その後、ECU10は、各チャンネルCH1〜CHnの出力波形を示す状態信号を書換え装置20に送信し(ステップS389)、直ちに書換え処理を終了する。
【0050】
書換え装置20は、ECU10から状態信号を受信すると、その状態信号に基づいて動作確認を行う(ステップS172)。書換え装置20は、チャンネルCH1がON状態、OFF状態を交互に繰り返す出力波形であることを示す状態信号でない、又は、その他のチャンネルCH2〜CHnがOFF状態を保持する出力波形であることを示す状態信号でなければ(ステップS172でN)、動作不良(NG)と判定して(ステップS173)、直ちに書換え処理を終了する。また、書換え装置20は、第1CH1動作テスト信号送信後(ステップS171)、所定時間T4以内に状態信号を受信できなかった場合も(ステップS172でN)、動作不良(NG)と判定して(ステップS173)、直ちに書換え処理を終了する。
【0051】
一方、書換え装置20は、チャンネルCH1がON状態、OFF状態を交互に繰り返す出力波形であることを示す状態信号であり、かつ、その他のチャンネルCH2〜CHnがOFF状態を保持する出力波形であることを示す状態信号であれば(ステップS172でY)、第2CH1動作テスト信号を送信する(ステップS174)。第2CH1動作テスト信号は、例えば、チャンネルCH1の出力波形がON状態を保持するような信号である。
【0052】
ECU10は、第2CH1動作テスト信号を受信すると(ステップS385でY)、RAM14C内に仮置きされた書換えデータのプログラムに従って、第2CH1動作テスト信号に応じて入力判定及び出力判定を行う動作テスト処理を実行する(ステップS386)。ECU10が、動作テスト処理を実行することにより、各チャンネルCH1〜CHnから駆動信号が出力される。次に、ECU10は、各チャンネルCH1〜CHnからの出力波形を確認して動作確認を行う(ステップS387)。
【0053】
ところで、各ECU10の出力回路13には、作業者によって予め各チャンネルCH1〜CHnに過電流が流れるような負荷が接続されている。ECU10は、チャンネルCH1がON状態で所定時間T5経過後に過電流遮断機能が働いてOFF状態となる出力波形であり、かつ、その他のチャンネルCH2〜CHnがOFF状態を保持する出力波形であれば動作良好であると判定する(ステップS387でY)。
【0054】
その後、ECU10は、各チャンネルCH1〜CHnの出力波形を示す状態信号を書換え装置20に送信し(ステップS388)、その後、チャンネルCH2〜CHnの動作テストを順番に繰り返し、動作不良がなければ
図6のステップS40へ進む。チャンネルCH2〜CHnの動作テストにおいて、ECU10は、上述したステップS381〜S390のチャンネルCH1をチャンネルCH2〜CHnに代えて同様に動作するため、ここでは詳細な説明を省略する。
【0055】
一方、ECU10は、チャンネルCH1がON状態で所定時間T5経過後に過電流遮断機能が働いてOFF状態となる出力波形でない、又は、その他のチャンネルCH2〜CHnがOFF状態を保持する出力波形でなければ動作不良であると判定する(ステップS387でN)。
【0056】
その後、ECU10は、各チャンネルCH1〜CHnの出力波形を示す状態信号を書換え装置20に送信し(ステップS390)、直ちに動作テスト処理を終了する。
【0057】
書換え装置20は、ECU10から状態信号を受信すると、その状態信号に基づいて動作確認を行う(ステップS175)。書換え装置20は、チャンネルCH1がON状態で所定時間T5経過後に過電流遮断機能が働いてOFF状態となる出力波形であることを示す状態信号でない、又は、その他のチャンネルCH2〜CHnがOFF状態を保持する出力波形であることを示す状態信号でなければ(ステップS175でN)、動作不良(NG)と判定して(ステップS173)、直ちに書換え処理を終了する。また、書換え装置20は、第2CH1動作テスト信号送信後(ステップS174)、所定時間T4以内に状態信号を受信できなかった場合も(ステップS175でN)、動作不良(NG)と判定して(ステップS173)、直ちに書換え処理を終了する。
【0058】
一方、書換え装置20は、チャンネルCH1がON状態で所定時間T5経過後に過電流遮断機能が働いてOFF状態となる出力波形であることを示す状態信号であり、かつ、その他のチャンネルCH2〜CHnがOFF状態を保持する出力波形であることを示す状態信号であれば(ステップS175でY)、その後、チャンネルCH2〜CHnの動作テストを順番に繰り返し、動作不良がなければ
図6のステップS18に進む。チャンネルCH2〜CHnの動作テストにおいて、ECU10は、上述したステップS171〜175のチャンネルCH1をチャンネルCH2〜CHnに代えて同様に動作するため、ここでは詳細な説明を省略する。
【0059】
図6のステップS18において、書換え装置20は、ROM書換え信号を送信する。ECU10は、書換え動作テスト後(ステップS39)、所定時間T6内にROM書換え信号が受信できなければ(ステップS40でN)、書換えを中止して(ステップS33)、直ちに書換え処理を終了する。一方、ECU10は、所定時間T6内にROM書換え信号を受信できれば(ステップS40でY)、RAM14C内に形成された複数のエリアA31〜A38に一つに記憶された書換えデータをフラッシュROM14Bの該当エリアA21〜A28に書き換える(ステップS41)。
【0060】
その後、ECU10は、ステップS41で書き換えたフラッシュROM14の書換えデータの読み出し処理を実行する(ステップS42)。そして、ECU10は、ステップS41で書き換えたフラッシュROM14Bの書換えデータと、RAM14Cの書換えデータとが一致しているか否かをチェックする(ステップS43)。
【0061】
一致していなければ(ステップS43でN)、ECU10は、書換えを中止して(ステップS33)、書換え処理を終了する。これに対して、一致していれば(ステップS43でY)、ECU10は、チェック信号を書換え装置20に送信する(ステップS44)。その後、全てのエリアA31〜A38の書換えデータのフラッシュROM14Bへの書換えが終了していなければ(ステップS45でN)、ECU10は再びステップS41に戻り、次のエリアA31〜A38の書換えデータをフラッシュROM14Bの該当エリアA21〜A28に書換える。一方、全てのエリアA31〜A38の書換えデータのフラッシュROM14Bへの書換えが終了していれば(ステップS45でY)、ECU10はROM書換え終了信号を送信した後(ステップS45)、書換え処理を終了する。
【0062】
書換え装置20は、ROM書換え開始信号の送信後に(ステップS18)、所定時間T7内にチェック信号を受信できなければ(ステップS19でN)、書換えを中止して(ステップS12)、書換え処理を終了する。これに対して、所定時間T6内にチェック信号を受信すると(ステップS19でY)、書換え装置20は、ROM書換え終了信号の受信を待つ(ステップS20)。書換え装置20は、チェック信号を受信してから所定時間T8内にROM書換え終了信号が受信できなければ(ステップS20でN)、再びステップS19に進みチェック信号の受信を待つ。一方、書換え装置20は、ROM書換え終了信号が受信できれば(ステップS20でY)、書換え処理を終了する。
【0063】
上述した実施形態によれば、ECU10が、書換え装置20から送信された書換えデータをRAM14Cに一時的に記憶させ、RAM14Cに記憶された書換えデータに従って動作確認を行った後、動作不良がなければフラッシュROM14BにRAM14Cに一時的に記憶された書換えデータを記憶させる。これにより、フラッシュROM14Bには、動作不良がない書換えデータを書き込むことができ、フラッシュROM14Bにバックアップ領域を設ける必要がないため、コストダウンを図ることができる。
【0064】
また、上述した実施形態によれば、フラッシュROM14Bは、書換え対象外エリアA1と書換え対象エリアA2とを有する。これにより、書換えることができないデータは書換え対象外エリアA1に記憶させ、書換えないようにすることができる。
【0065】
また、上述した実施形態によれば、ECU10は、書換え装置20が第1CH1〜CHn動作テスト信号、第2CH1〜CHn動作テスト信号を受信すると、これら動作テスト信号に従って複数のチャンネルCH1〜CHnから駆動信号を出力させ、出力端子から出力した駆動信号に基づいて動作確認を行う。これにより、書換え装置20との通信により簡単に動作確認を行うことができる。
【0066】
また、上述した実施形態によれば、ECU10は、所定時間以内に過電流遮断機能が働いて遮断されれば動作不良がないと判定する。これにより、ECU10の持つ過電流遮断機能を利用して動作確認を行うことができる。
【0067】
なお、上述した実施形態によれば、ECU10の持つ過電流遮断機能を利用して動作確認を行っていたが、これに限ったものではない。過電流遮断機能を有していないECU10であれば、第1CH1〜CHn動作テスト信号のみによる動作確認を行って、第2CH1〜CHn動作テスト信号による動作確認は行わなくてもよい。
【0068】
また、上述した実施形態によれば、ECU10がチャンネルCH1〜CHnの出力波形を示す状態信号を送信でき、書換え装置20が状態信号に基づいて動作確認を行っていたが、これに限ったものではない。書換えを実行する作業員が、ECU10のチャンネルCH1〜CHnの出力波形をオシロスコープに出力し、それを目視して動作確認を行い、その旨をECU10や書換え装置20に入力するようにしてもよい。
【0069】
また、書換え対象のECU10が、ローカルスイッチの状態のみで出力判定する場合は、作業員がテスト用にローカルスイッチを入力するようにしてもよい。
【0070】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。