(57)【要約】【課題】更新プログラムと更新データを運転者に不便を感じさせること無く車載制御装置へ書込める車載プログラム書込み装置を提供する。【解決手段】中継装置１２０は予め決められた第１の時間帯以前に、外部センタ１００から送信された複数の車載制御装置１３０，１４０，１５０の更新プログラムデータをイグニッション１７０がオン状態の場合に受信する手段と、外部センタから第１の時間帯の範囲内に送信された書込み開始指令を受信した場合に車載制御装置をウェイクアップ起動し、リプロモードへ遷移させる手段と、車載制御装置は中継装置へリプロモード遷移を通知し、中継装置は車載制御装置からのリプロモード遷移通知とメモリへ蓄積された当該車載制御装置の更新プログラムデータの有無に基づき当該車載制御装置へ更新プログラムと更新データの書き込みを第１の時間帯に実行する車両に搭載されたプログラム書換え装置。【選択図】図９
2018129093.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、
外部センタから送信された前記複数の車載制御装置の１または複数の更新プログラムと、更新データと、前記１または複数の車載制御装置を特定する１または複数の車載制御装置番号を含む管理情報を有する更新プログラムデータを受信しメモリへ蓄積する中継装置を備え、
前記複数の車載制御装置のおのおのは前記制御プログラムを実行する通常動作モードと前記制御プログラムを前記更新プログラムへ書き換えるリプロモードを有し、前記複数の車載制御装置と前記中継装置はＣＡＮバスによる車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は、メモリ蓄積完了表示器と書込み開始指令ボタンと書込み完了表示器を有し、イグニッションがオン状態の場合に前記外部センタから送信された前記１または複数の車載制御装置の前記更新プログラムデータを受信完了した場合に前記メモリ蓄積完了表示器を点灯し、
前記メモリ蓄積完了表示器が点灯している状態において前記書込み開始指令ボタンをオンにすると、前記１または複数の車載制御装置を特定するＣＡＮＩＤおよびリプロモードコマンドを前記ＣＡＮバスへ送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させて前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを開始して、
書込みを完了した後に前記書込み完了表示器を点灯し、前記メモリ蓄積完了表示器が消灯状態であれば前記書込み開始指令ボタンをオンにしても前記更新プログラムと前記更新データの書込みを実行しないことを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項２】
請求項１に記載の車載プログラム書込み装置において、
前記メモリ蓄積完了表示器が点灯しかつ前記イグニッションがオン状態でかつ前記車両のシフトギヤ位置がパーキングである場合に前記書込み開始指令ボタンをオンにすると、
前記１または複数の車載制御装置を特定する前記ＣＡＮＩＤおよびリプロモードコマンドを前記ＣＡＮバスへ送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させて前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを開始して、
書込みを完了した後に前記書込み完了表示器を点灯し、
前記メモリ蓄積完了表示器が消灯または前記イグニッションがオフ状態または前記車両の前記シフトギヤ位置がパーキング以外の位置であれば前記書込み開始指令ボタンをオンにしても前記更新プログラムと前記更新データの書込みを実行しないことを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項３】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記複数の車載制御装置の１または複数の更新プログラムと更新データと前記１または複数の車載制御装置を特定する１または複数の車載制御装置番号を含む管理情報とを有する更新プログラムデータを受信してメモリへ蓄積する中継装置を備え、
前記複数の車載制御装置のおのおのは前記制御プログラムを実行する通常動作モードと前記制御プログラムを前記更新プログラムへ書き換えるリプロモードを有し、前記複数の車載制御装置と前記中継装置はＣＡＮバスによる車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は予め決められた第１の時間帯以前に前記外部センタから送信された前記１または複数の車載制御装置の前記更新プログラムデータをイグニッションがオン状態の場合に受信する手段を有し、
前記外部センタから前記第１の時間帯に送信された書込み開始指令を受信し、前記第１の時間帯に前記複数の車載制御装置をウェイクアップ起動し、前記１または複数の車載制御装置を特定するＣＡＮＩＤおよびリプロモードコマンドを前記ＣＡＮバスへ送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させる手段と、
前記１または複数の車載制御装置のおのおのは前記中継装置へリプロモード遷移を通知し、
前記中継装置は前記１または複数の車載制御装置からの前記リプロモード遷移通知と前記メモリへ蓄積された前記１または複数の車載制御装置の前記更新プログラムデータの有無に基づき前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを前記第１の時間帯に実行する手段とを有することを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項４】
請求項３に記載の車載プログラム書込み装置において、
前記第１の時間帯に前記複数の車載制御装置をウェイクアップ起動し、前記１または複数の車載制御装置を特定する前記ＣＡＮＩＤおよびリプロモードコマンドを前記ＣＡＮバスへ送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させる手段と、
前記１または複数の車載制御装置のおのおのは前記中継装置へリプロモード遷移を通知し、
前記中継装置は前記１または複数の車載制御装置からの前記リプロモード遷移通知と前記メモリへ蓄積された前記１または複数の車載制御装置の前記更新プログラムデータの有無に基づき前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを前記第１の時間帯に実行する手段は、前記イグニッションがオフの場合に実行することを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項５】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記複数の車載制御装置の１または複数の更新プログラムと更新データと前記１または複数の車載制御装置を特定する１または複数の車載制御装置番号を含む管理情報と書込み開始指令を実行する第２の時間帯を含む更新プログラムデータを受信してメモリへ蓄積する中継装置を備え、
前記複数の車載制御装置のおのおのは前記制御プログラムを実行する通常動作モードと前記制御プログラムを前記更新プログラムへ書き換えるリプロモードを有し、
前記複数の車載制御装置と前記中継装置はＣＡＮバスによる車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は前記第２の時間帯以前に前記外部センタから送信された前記１または複数の車載制御装置の前記更新プログラムデータをイグニッションがオン状態の場合に受信する手段を有し、
前記車両に搭載された時計に基づいて前記第２の時間帯に前記複数の車載制御装置をウェイクアップ起動し、
前記１または複数の車載制御装置を特定するＣＡＮＩＤおよびリプロモードコマンドを前記ＣＡＮバスへ送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させる手段と、
前記１または複数の車載制御装置のおのおのは前記中継装置へリプロモード遷移を通知し、
前記中継装置は前記１または複数の車載制御装置からの前記リプロモード遷移通知と前記メモリへ蓄積された前記１または複数の車載制御装置の前記更新プログラムデータの有無に基づき前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを前記第２の時間帯に実行する手段を有することを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項６】
請求項５に記載の車載プログラム書込み装置において、
前記車両に搭載された時計に基づいて前記第２の時間帯に前記複数の車載制御装置をウェイクアップ起動し、
前記１または複数の車載制御装置を特定する前記ＣＡＮＩＤおよびリプロモードコマンドを前記ＣＡＮバスへ送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させる手段と、
前記１または複数の車載制御装置のおのおのは前記中継装置へリプロモード遷移を通知し、
前記中継装置は前記１または複数の車載制御装置からの前記リプロモード遷移通知と前記メモリへ蓄積された前記１または複数の車載制御装置の前記更新プログラムデータの有無に基づき前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを前記第２の時間帯に実行する手段は、前記イグニッションがオフの状態で実行することを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項７】
請求項３乃至６のいずれか１項に記載の車載プログラム書込み装置において、前記中継装置は、前記外部センタから前記１または複数の車載制御装置の前記更新プログラムデータの受信を完了すると前記車両内のメモリ蓄積完了表示器を点灯し、かつ前記外部センタへメモリ蓄積完了通知を行うことを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項８】
請求項３乃至７のいずれか１項に記載の車載プログラム書込み装置において、前記複数の車載制御装置のおのおのは、前記更新プログラムと前記更新データの書込み完了後に前記中継装置へ書込み完了を通知する手段を有し、
前記中継装置は前記１または複数の車載制御装置の全てからの書込み完了通知を受信した後に、
前記車両内の書込み完了表示器を点灯しかつ前記外部センタへ更新完了通知を実行することを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項９】
車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記複数の車載制御装置の１または複数の更新プログラムと更新データと前記１または複数の車載制御装置を特定する１または複数の車載制御装置番号を含む管理情報と第２の時間帯を含む更新プログラムデータを受信しメモリへ蓄積する中継装置を備え、
前記複数の車載制御装置のおのおのは前記制御プログラムを実行する通常動作モードと前記制御プログラムを前記更新プログラムへ書き換えるリプロモードを有し、
前記複数の車載制御装置と前記中継装置はＣＡＮバスによる車載ネットワークで接続された車載プログラム書込み装置において、
前記中継装置は、
メモリ蓄積完了表示器と書込み開始指令ボタンと書込み完了表示器を有し、
前記中継装置はイグニッションがオン状態の場合に前記外部センタから送信された前記１または複数の車載制御装置の前記更新プログラムデータを受信完了した場合に前記メモリ蓄積完了表示器を点灯する手段と、
前記メモリ蓄積完了表示器が点灯しかつ前記書込み開始指令ボタンをオンにした時刻が前記第２の時間帯の範囲内であれば前記１または複数の車載制御装置を特定するＣＡＮＩＤおよびリプロモードコマンドを前記ＣＡＮバスへ送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させて前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを開始する手段と、
書込みを完了後に前記書込み完了表示器を点灯する手段と、
前記メモリ蓄積完了表示が消灯または前記書込み開始指令ボタンをオンにした時刻が前記第２の時間帯の範囲外であれば書込みを実行しない手段を有することを特徴とする車両に搭載された車載プログラム書込み装置。
【請求項１０】
請求項９に記載の車載プログラム書込み装置において、
前記メモリ蓄積完了表示器が点灯しかつ前記イグニッションがオン状態でかつ前記車両のシフトギヤ位置がパーキングでかつ前記書込み開始指令ボタンをオンにした時刻が前記第２の時間帯の範囲内であれば前記１または複数の車載制御装置を特定する前記ＣＡＮＩＤを送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させて前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを開始する手段と、
書込みを完了後に前記書込み完了表示器を点灯する手段と、
前記メモリ蓄積完了表示が消灯または前記イグニッションがオフ状態または前記車両の前記シフトギヤ位置がパーキング以外の位置または前記書込み開始指令ボタンをオンにした時刻が前記第２の時間帯の範囲外であれば書込みを実行しない手段を有することを特徴とする車両に搭載された車載プログラム書込み装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載プログラム書込み装置に関するものである。
【背景技術】
【０００２】
車両に搭載された車載制御装置の制御動作を記述した制御プログラムは、マイコン内のフラッシュメモリ等の不揮発性メモリに格納されている。また制御プログラム内で用いられる初期値などのデータも不揮発性メモリに格納されている。これらのプログラムやデータは、車両を市場に出荷した以降については変更しないのが通常ではあるが、バグが検出された場合や、より良いサービスを提供することを理由に、制御プログラムやデータの更新を行っている。
【０００３】
自動車の制御プログラムやデータの更新処理は、車両を販売店へ持込み、そこで書換えが行われるが、近年では車両外部のインフラである携帯電話網などの無線通信で行う方式が考案されている。
【０００４】
特許文献１では、車両外部の情報管理基地局装置は、車両に搭載されている無線通信機を介して停止中の車両に対してアップデートリクエストを送信し、これを受信した車両は、スリープ状態からウェイクアップして、車両に搭載された車載制御装置を起動し、情報管理基地局装置から送信されたアップデートプログラムを車載制御装置へ書込むことを行っている。
【０００５】
また、特許文献２では、外部ツールと車両に搭載された書込み装置を通信ケーブルで接続し、外部ツールから送信された更新プログラムを書込み装置へ蓄積し、その後に通信ケーブルを外した状態で書込み装置から車載制御装置へ更新プログラムを書込むことを行っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４３６１９０２号公報
【特許文献２】特許第４５９３０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の方式では、アップデートプログラムを事前に蓄積しておく手段が無いため、情報管理基地局装置から車載制御装置への更新プログラム転送時間と車載制御装置への書込み時間の合計が更新プログラムの書込みに要する時間になるので、時間がかかるという問題が発生する。すなわち、運転者が急に更新プログラムを書込み中の自動車を運転したいという状況になった場合、書込み完了するまで待たされることになる。
【０００８】
特許文献２の方式では、書込み中は通信が不要となるので、他の車両へ通信ケーブルを接続することで更新プログラムを書込み装置へ蓄積することができる。結果として書込み時間は、外部との通信を介さずに実行できるので短縮できる点と、車両の書込み処理と他の車両への通信ケーブルを介した更新プログラムの蓄積処理を並列に実行できる点で書込み時間の短縮化を実現している。しかし、逆に言えば、並列実行するためには、１つの車両については、蓄積処理を終了した後にすぐに書込み処理をする必要があるということになる。この点で、自動車運転者は車両を使用しない都合も良い時間帯を選択することができない。
【０００９】
そこで本発明は、自動車の所有者や、自動車を利用する運転者にとって、不便さを感じさせずに車載制御装置の制御プログラムやデータを更新することを課題とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、例えば請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、車両に搭載された機器の動作を制御プログラムで制御する複数の車載制御装置と、外部センタから送信された前記複数の車載制御装置の１または複数の更新プログラムと、更新データと、前記１または複数の車載制御装置を特定する１または複数の車載制御装置番号を含む管理情報を有する更新プログラムデータを受信しメモリへ蓄積する中継装置を備え、前記複数の車載制御装置のおのおのは前記制御プログラムを実行する通常動作モードと前記制御プログラムを前記更新プログラムへ書き換えるリプロモードを有し、前記複数の車載制御装置と前記中継装置はＣＡＮバスによる車載ネットワークで接続された車載プログラム書込み装置において、前記中継装置は、メモリ蓄積完了表示器と書込み開始指令ボタンと書込み完了表示器を有し、イグニッションがオン状態の場合に前記外部センタから送信された前記１または複数の車載制御装置の前記更新プログラムデータを受信完了した場合に前記メモリ蓄積完了表示器を点灯し、前記メモリ蓄積完了表示器が点灯している状態において前記書込み開始指令ボタンをオンにすると、前記１または複数の車載制御装置を特定するＣＡＮＩＤおよびリプロモードコマンドを前記ＣＡＮバスへ送信して前記１または複数の車載制御装置を前記リプロモードへ遷移させて前記１または複数の車載制御装置へ前記更新プログラムと前記更新データの書き込みを開始して、書込みを完了した後に前記書込み完了表示器を点灯し、前記メモリ蓄積完了表示器が消灯状態であれば前記書込み開始指令ボタンをオンにしても前記更新プログラムと前記更新データの書込みを実行しないことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、更新プログラムと更新データを運転者に不便を感じさせること無く車載制御装置へ書込める車載プログラム書込み装置を提供することができる。
【００１２】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】車載プログラム書込み装置の全体構成を示す図。
【図２】車載制御装置の構成を示す図。
【図３】中継装置の構成を示す図。
【図４】中継装置マイコンの割込みテーブル。
【図５】車載制御装置マイコンの割込みテーブル。
【図６】外部センタの送信データ構成を示す図。
【図７】中継装置の蓄積データ構成を示す図。
【図８】中継装置のメモリ構成を示す図。
【図８Ａ】車載制御装置のメモリ構成を示す図。
【図９】外部センタの書込み開始指令による書込み処理概要を示す図。
【図１０】書込みボタンによる書込み処理概要を示す図。
【図１１】中継装置のメモリ蓄積処理を示す図。
【図１２】外部センタへの書込み完了通知送信データ構成を示す図。
【図１３】中継装置の書込み開始指令の蓄積データ構成を示す図。
【図１４】書込み開始指令受信処理を示すフローチャート。
【図１５】書込み開始処理を示すフローチャート。
【図１６】車載制御装置のウェイクアップ受信処理を示すフローチャート。
【図１７】車載制御装置番号RECECUID[n]で指示された車載制御装置のリプロモード受信処理を示すフローチャート。
【図１８】車載制御装置番号RECECUID[n]で指示された車載制御装置へ更新プログラムを送信する中継装置の処理を示すフローチャート。
【図１９】車載制御装置番号RECECUID[n]で指示された車載制御装置の書込み処理を示すフローチャート。
【図２０】車載制御装置番号RECECUID[n]で指示された車載制御装置からの書込み完了結果を配列RESULTECU[n]へ格納する中継装置の処理を示すフローチャート。
【図２１】中継装置の書込み完了処理を示すフローチャート。
【図２２】書込み開始指令ボタンによる書込み開始指令処理を示すフローチャート。
【図２３】ボタンによる書込み開始処理を示すフローチャート。
【発明を実施するための形態】
【００１４】
運転者に不便を感じさせないためには、自動車を使用しない時間帯に、安全かつ短時間で更新プログラムと更新データを車載制御装置へ書込むことが必要である。本発明では、まず安全と書込み時間短縮を実現するため、外部センタから無線で送信された車載制御装置の更新プログラムデータを、イグニッションがオンの状態の場合に取得し、中継装置へ蓄積する手段を前提とする。これは１つには、無線で更新プログラムデータを受信するので、ビルの蔭や屋内駐車場など、電波が届かない場所に車両が停車していると受信できない場合が考えられるので、イグニッションがオン状態で走行中などに中継装置に更新プログラムデータを受信したほうがより確実かつ安全に受信できるからである。２つには、外部センタから直接車載制御装置へ無線を介して書込むよりも、車両内の中継装置から車載制御装置へ書込むほうが書込み時間を短縮できるからである。
【００１５】
本発明は、運転者が自動車を使用しない時間帯に更新プログラムと更新データを車載制御装置への書込みを実現する手段である。本発明手段を説明する前に、プログラム更新手順を考察する。まず車載制御装置のプログラム更新は、車両所有者の同意無しに実行することはできない。そのため、事前に電話やメールなどでプログラム更新の同意や自動車を使用しない第１の時間帯を確認しておく必要がある。ここで第１の時間帯とは、車両所有者が指定した都合の良い年、月、日における時間帯ならプログラム更新しても良いと合意した時間帯のことである。従って夜中の２時〜３時の時間帯に自宅駐車場でプログラム更新を希望するかも知れない。ただし、外部センタがその時間帯で他の車両へ更新プログラムデータを送信予定である場合には、車両所有者と調整して、他の時間帯へ変更することも有り得る。また、他の車両所有者は、時間帯など指定せずに、都合の良い時に自分でプログラム更新をしたいと希望するかも知れない。このように、時間帯を指定するケースでは、夜中の時間帯が想定されるので、車両には運転者が乗車しておらず、イグニッションはオフ状態で更新プログラムの書込みを実現する必要がある。本ケースを第１のケースとする。一方、時間帯を指定せずに運転者が都合の良い時に自分でプログラム更新するケースを第２のケースと定義する。以下、本発明による第１のケースと第２のケースの実現手段を説明する。
【００１６】
最初に、第１のケースの実現手段を説明する。本手段は、運転者が自動車に乗車していないので、外部センタからの指令に基づき、車両所有者の希望する時間帯（第１の時間帯と呼ぶ）にプログラム更新を実行することを基本とする。
【００１７】
請求項１の手段は、外部センタから第１の時間帯の以前に更新プログラムデータを中継装置へ蓄積した後に、中継装置は、外部センタから第１の時間帯の範囲内に送信された書込み開始指令を受信した場合に車載制御装置をウェイクアップ起動し、リプロモード（プログラム書換えモード）へ遷移させ、車載制御装置からのリプロモード遷移通知とメモリへ蓄積された車載制御装置の更新プログラムデータの有無に基づいて車載制御装置へ更新プログラムと更新データの書き込みを第１の時間帯に実行する手段である。この結果、車両所有者が不便に感じない時間帯で車載制御装置のプログラムとデータの更新を完了することができる。
【００１８】
請求項２の手段は、請求項１において、外部センタから第１の時間帯の範囲内に送信された書込み開始指令を受信しかつイグニッションがオフ状態の場合に車載制御装置をウェイクアップ起動し、リプロモード（プログラム書換えモード）へ遷移させ、車載制御装置からのリプロモード遷移通知とメモリへ蓄積された車載制御装置の更新プログラムデータの有無に基づいて車載制御装置へ更新プログラムと更新データの書き込みを第１の時間帯に実行する手段である。
【００１９】
請求項３の手段は、外部センタから書込み開始指令を受信しなくても中継装置が自動的に書込みを実行する手段を提供している。すなわち本手段は、外部センタから受信した更新プログラムデータ内の書込みを実行する第２の時間帯と車両に搭載された時計から取得した時刻を比較し、時刻が第２の時間帯の範囲内または範囲外か判断することで書込み開始指令処理を実行できる。すなわち、既に更新プログラムデータが中継装置のメモリに蓄積完了していれば、車載ネットワークに接続された車載制御装置へウェイクアップパターンを送信して車載制御装置をウェイクアップ起動し、次に車載制御装置へリプロモードへの遷移コマンドを送信して、車載制御装置がリプロモードへ遷移した通知を受けた後に更新プログラムと更新データの書込み処理を実行する手段である。以上のように、本手段は、現在時刻を車両内の時計から取得し、その時刻が第２の時間帯の範囲内であるかチェックすることで車両所有者との約束を守ることができる。すなわち第１の時間帯と第２の時間帯を同一に設定することで実現できる。
【００２０】
請求項４の手段は、請求項３において、書込み開始指令処理を実行するための条件として、イグニッションがオフ状態であることを追加した請求項である。
【００２１】
請求項５の手段は、請求項１〜４において、車両内にメモリ蓄積完了表示器を設置し、外部センタから送信された更新プログラムデータを中継装置が蓄積完了した場合に点灯する手段である。車両への更新プログラムデータは数日前に送信することを想定した場合、本表示器が点灯することによって運転者は、プログラム更新の準備が整ったことを認識できるので安心感を与えることができる。
【００２２】
請求項６の手段は、請求項１〜５において、車両内に書込み完了表示器を設置し、車載制御装置を全て書込み完了した後に、表示器の点灯と外部センタへ書込み完了通知を行う手段である。これにより、運転者は、例えば翌日の朝に、車両の書込み完了表示器が点灯していれば完了を確認できるので安心できる。また外部センタも完了を知ることができる。
【００２３】
次に、第２のケースの実現手段を説明する。本ケースは運転者が自動車に乗車しているケースである。
【００２４】
請求項７の手段は、運転者が更新プログラムデータを蓄積完了したことを確認できるメモリ蓄積完了表示器と運転者が書込み開始指令を指示するための書込み開始指令ボタンと書込みが終了したことを示す書込み完了表示器を設置し、運転者はメモリ蓄積完了表示器の点灯を確認した後に、運転者の都合良い時間に書込み開始指令ボタンをオンにすることで中継装置は車載制御装置へ書込みを実行し、さらに書込み完了表示器が点灯することで書込み完了を運転者へ知らせる手段である。このように、２つの表示器と１つのボタンがあれば、運転者は安心して確実に書込み作業を実行することができる。
【００２５】
請求項８の手段は、請求項７において運転者の都合良い時間にイグニッションをオン状態に設定し、かつ車両のシフトギヤをパーキング位置に設定した後に、書込み開始指令ボタンをオンにすることで中継装置は車載制御装置へ書込みを実行し、さらに書込み完了表示器が点灯することで書込み完了を運転者へ知らせる手段である。このように、２つの表示器と１つのボタンがあれば、運転者は安心して確実に書込み作業を実行することができる。
【００２６】
請求項９の手段は、たとえ運転者が乗車していても必ずしも運転者が所有者というわけでは無いので、車両所有者と約束した第１の時間帯に書込みを実行するための手段である。本手段は、車両所有者との約束の第１の時間帯に書き込みを実行するには、更新プログラムデータに第２の時間帯のデータ（第２の時間帯は第１の時間帯と同一に設定しておく）を設定して中継装置へ送信し、中継装置は書込み開始指令ボタンがオン状態になった時刻が第２の時間帯の範囲内であるか時計を用いてチェックし、その結果範囲内でありかつメモリ蓄積完了表示器が点灯している場合に車載制御装置へ書込みを実行し、書込み完了後に書込み完了表示器を点灯して運転者へ知らせる手段である。
【００２７】
請求項１０の手段は、中継装置は書込み開始指令ボタンがオン状態になった時刻が第２の時間帯の範囲内であるか時計を用いてチェックし、その結果範囲内でありかつメモリ蓄積完了表示器が点灯かつイグニッションがオン状態で車両のシフトギヤ位置がパーキングの場合に車載制御装置へ書込みを実行し、書込み完了後に書込み完了表示器を点灯して運転者へ知らせる手段である。
【００２８】
以上のように本発明によれば、運転者が車両に乗車しているケースでも、乗車していないケースでも約束の時間帯に書込み開始を実行する手段や都合の良い時に書込み開始指令ボタンを押すことにより、更新プログラムを書込むことが可能となる。
【００２９】
以下、図面を用いて本発明の実施例を説明する。
【００３０】
まず、実施例で用いるハードウェア構成、ソフトウェア構成、及びデータ構成を説明する。
【００３１】
図１は、車載プログラム書込み装置の全体構成を示すものである。
【００３２】
外部センタ１００は、更新プログラムデータを車両１１０へ無線で送信し、その書込み完了結果を車両から受信する機能をもつ。無線中継基地１０１は、外部センタ１００と車両１１０間の無線データを中継する。車両１１０には、更新プログラムデータの蓄積と車載制御装置へ更新プログラムと更新データを分割送信する機能を有する中継装置１２０、制御対象（エンジン）１３５を制御する車載制御装置１３０、制御対象（トランスミッション）１４５を制御する車載制御装置１４０、制御対象（モータ）１５５を制御する車載制御装置１５０、車両に搭載されたバッテリ電源１７２、車両に搭載された電子機器にバッテリ電源を供給するイグニッションスイッチＩＧＮ１７０、時計１８０、書込み開始指令ボタン１８２、メモリ蓄積完了表示器１８４、書込み完了表示器１８６がある。中継装置１２０は、外部センタ１００とデータ送受信を行う無線送受信機１２１とマイコン１２２で構成されている。さらに中継装置１２０は、車載ネットワーク１６０と接続し、時計１８０と信号線１８１を介して接続し、書き込み開始指令ボタン１８２と信号線１８３を介して接続し、メモリ蓄積完了表示器１８４と信号線１８５を介して接続し、書込み完了表示器１８６と信号線１８７を介して接続されている。ここで書込み開始指令ボタン１８２とメモリ蓄積完了表示器１８４と書込み完了表示器１８６は、説明を分かりやすくするために個別に用意したが、タッチパネル付きの表示器などで操作と表示を１つの装置で代替しても良い。無線送受信機１２１は、マイコン１２２と信号線１２８を介して接続されている。マイコン１２２は、演算器を含むＣＰＵ１２３、マイコンの動作を制御するプログラムを格納する内部ＲＯＭ１２４、更新プログラムデータを格納するための更新データＲＯＭ１２５、ＲＡＭ１２６、車載ネットワークのプロトコル処理を行う車載ＬＡＮ通信部１２７で構成されている。
【００３３】
車載ネットワーク１６０は、中継装置１２０と車載制御装置１３０，１４０，１５０を接続する車載ネットワークである。バッテリ電源１７２は、電源線１７３を介して中継装置１２０や車載制御装置１３０，１４０，１５０など全ての車載電子機器へ電源を供給している。またイグニッション１７０は車載電子機器を起動するための信号であり、信号線１７１を介して中継装置１２０と車載制御装置１３０，１４０，１５０へ接続されている。イグニッション１７０をオン状態にすると、接続された電子機器は起動し、START状態にするとエンジンがスタートする。車載制御装置１３０は車載ネットワーク１６０に接続され、制御対象であるエンジン１３５を、信号線１３６を介して制御する。マイコン１３１は車載制御装置１３０の動作を制御し、車載ＬＡＮ通信部１３２は車載ネットワーク１６０と接続されている。ＲＯＭ１３３は、制御対象１３５を制御するためのプログラムとデータを格納するフラッシュメモリであり、ＲＡＭ１３４はＳＲＡＭである。
【００３４】
車載制御装置１４０は車載ネットワーク１６０に接続され、制御対象であるトランスミッション１４５を、信号線１４６を介して制御する。マイコン１４１は車載制御装置１４０の動作を制御し、車載ＬＡＮ通信部１４２は車載ネットワーク１６０と接続されている。ＲＯＭ１４３は、制御対象１４５を制御するためのプログラムとデータを格納するフラッシュメモリであり、ＲＡＭ１４４はＳＲＡＭである。車載制御装置１４０はトランスミッションのシフトギヤ位置信号１４７を中継装置１２１へ出力している。
【００３５】
車載制御装置１５０は車載ネットワーク１６０に接続され、制御対象であるモータ１５５を、信号線１５６を介して制御する。マイコン１５１は車載制御装置１５０の動作を制御し、車載ＬＡＮ通信部１５２は車載ネットワーク１６０と接続されている。ＲＯＭ１５３は、制御対象１５５を制御するためのプログラムとデータを格納するフラッシュメモリであり、ＲＡＭ１５４はＳＲＡＭである。
【００３６】
次に車載制御装置１３０の起動に係わる回路について図２を用いて説明する。本実施例では、車載制御装置は１３０，１４０，１５０の３つで構成しているが、起動に係わる回路は同一である。このため、図２でまとめて説明する。車載制御装置１３０の入力には、バッテリ電源線１７３とイグニッション信号線１７１と車載ネットワーク１６０がある。リレー回路２１０がオン状態になるとバッテリ電源線１７３と電源線２２０が接続され、バッテリ電源がＤＣ−ＤＣ回路２３０へ供給される。ＤＣ−ＤＣ回路２３０はバッテリ電圧をマイコンの電圧へ降圧してマイコンの電源端子２４０へ供給する。これによりマイコン１３１はパワーオンリセットして起動できる。ここでリレー回路２１０をオン状態にする信号が３つあるので説明する。
【００３７】
１つ目はイグニッション信号IGN １７１であり、２つ目は車載ネットワークのドライバＩＣ CAN BD ２００のウェイクアップ検知信号WakeUp ２５０であり、３つ目はマイコン１３１の自己保持信号PowerKeep ２６０である。この３つの信号はＯＲ回路２７０を介して信号２６０へ出力され、リレー回路２１０のオン、オフ動作を制御している。ウェイクアップ検知信号WakeUp ２５０は車載ネットワーク１６０を介してウェイクアップ信号を受信するとオン状態となる信号である。ウェイクアップ機能は、自動車で一般的に使用されている機能であり、ＣＡＮネットワークやＦｌｅｘＲａｙネットワークでもサポートされている。また信号線２９０は車載ネットワークのドライバＩＣ CAN BD ２００とマイコン１３１を接続する信号であり、通信データのやり取りを行う信号線である。
【００３８】
次に自己保持信号PowerKeep ２６０を説明する。マイコン１３１がこの信号をオン状態にすると、イグニッション信号IGN １７１とウェイクアップ検知信号WakeUp ２５０がオフ状態になっても回路構成からリレー回路２１０はオン状態を維持できることがわかる。従って、更新プログラムをフラッシュメモリへ書込み際には、本信号をオン状態に設定しておけば、マイコンの電源を維持できるので安全を確保できる。シフトギヤ位置信号１４７だけが車載制御装置１４０から中継装置１２０へ出力されている。他の車載制御装置１３０，１５０は出力しない。
【００３９】
次に中継装置１２０の起動に係わる回路について図３を用いて説明する。中継装置１２０の入力には、バッテリ電源線１７３、時計の信号線１８１、書込み開始指令ボタンの信号線１８３、メモリ蓄積完了表示器の信号線１８５、書込み完了表示器の信号線１８７、イグニッション信号線１７１、シフトギヤ位置信号１４７と車載ネットワーク１６０がある。また無線送受信機１２１はマイコン１２２と信号線１２８を介して接続されている。リレー回路３１０がオン状態になるとバッテリ電源線１７３と電源線３７０が接続され、バッテリ電源がＤＣ−ＤＣ回路３２０へ供給される。ＤＣ−ＤＣ回路３２０はバッテリ電圧をマイコンの電圧へ降圧してマイコンの電源端子３８０へ供給する。これによりマイコン１２２はパワーオンリセットして起動できる。ここで車載制御装置と同様に、リレー回路３１０をオン状態にする信号が３つあるので説明する。
【００４０】
１つ目はイグニッション信号１７１であり、２つ目は車載ネットワークのドライバＩＣCAN BD ３００のウェイクアップ検知信号WakeUp ３４０であり、３つ目はマイコン１２２の自己保持信号PowerKeep ３５０である。この３つの信号はOR回路３３０を介して信号３６０へ出力され、リレー回路３１０のオン、オフ動作を制御している。ウェイクアップ検知信号WakeUp ３４０は車載ネットワーク１６０を介してウェイクアップ信号を受信するとオン状態となる信号である。ウェイクアップ機能は、自動車で一般的に使用されている機能である。また信号線３９０は車載ネットワークのドライバＩＣ CAN BD ３００とマイコン１２２を接続する信号であり、通信データのやり取りを行う信号線である。
【００４１】
次に自己保持信号PowerKeep ３５０を説明する。マイコン１２２がこの信号をオン状態にすると、イグニッション信号１７１とウェイクアップ検知信号WakeUp ３４０がオフ状態になっても回路構成からリレー回路３１０はオン状態を維持できることがわかる。従って、更新プログラムをフラッシュメモリへ書込み際には、本信号をオン状態に設定しておけば、マイコン１２２の電源を維持できるので安全を確保できる。
【００４２】
次に中継装置のマイコンの割り込みテーブル構成を図４に示す。
【００４３】
割り込みテーブル４００は、マイコンの外部や内部で発生した割り込みを本テーブルに登録したアドレスへ分岐させるテーブルである。中継装置では、無線送受信機から更新プログラムデータを受信した時に処理を行う中継装置のメモリ蓄積処理プログラム（図１１参照）のアドレス４１０、書込み開始指令ボタンが押されたかチェックするための500ms周期割り込みプログラムのアドレス４２０、1000ms周期で起動する書込み開始指令受信処理プログラム（図１４参照）のアドレス４３０が設定されている。請求項１，２では、図１４の書込み開始指令受信処理プログラムは図１１の中継装置のメモリ蓄積処理プログラムの中から起動されることに注意が必要である。
【００４４】
車載制御装置１３０，１４０，１５０のマイコンの割り込みテーブル構成を図５に示す。車載制御装置の割り込みテーブルは、全て同一なので、まとめて説明する。
【００４５】
割り込みテーブル５００は、マイコンの外部や内部で発生した割り込みを本テーブルに登録したアドレスへ分岐させるテーブルである。前述したように車載制御装置では、イグニッションＩＧＮがオンになった場合や、車載ネットワークからウェイクアップパターンを受信するとマイコンの電源がオンとする。５１０は電源オンの時に実行するプログラムのアドレスを登録してある。これにより図１６の車載制御装置のウェイクアップ受信処理プログラムが起動される。５２０は、中継装置から更新プログラムと更新データを受信した時に実行するプログラムのアドレスが登録してある。これにより図１９のRECECUID[n]の書込み処理プログラムが起動される。
【００４６】
次に、外部センタ１００が送信する送信データ構成を図６に示す。
【００４７】
６００は更新プログラムデータの送信データ構成であり、６２０は書込み開始指令コマンドの送信データ構成である。送信データ６００の先頭のヘッダは送信開始を指示する情報であり、VINは車両を一意に特定する車両番号である。CMDはコマンドの種類である。CMDが”SNDPROG”であれば受信データが更新プログラムデータを意味し、”WRITE”であれば受信データが書込み開始指令を意味する。ST2は本発明の請求項３，４，９，１０の第２の時間帯のスタート時刻であり、ET2は第２の時間帯のエンド時刻を示している。請求項１，２，７，８では不要な情報である。Nは送信された更新プログラムデータの数を示している。SIZE[1]は最初に送信する更新プログラムデータのサイズであり、バイト単位で表現している。SIZE[N]は最後に送信する更新プログラムデータのサイズである。
【００４８】
次にECU[1]は最初に送信する更新プログラムデータ情報であり、ECU[N]は最後に送信する更新プログラムデータ情報である。更新プログラムデータ情報の数もNと同じである。EOFは送信データの最後を示す情報である。
【００４９】
次にECU[N]の内部データ構成６１０を説明する。ECU[N]は、他のECU[1]などの内部データ構成と同一なのでECU[N]でまとめて説明する。本実施例では、ECU[N]の更新プログラムデータは更新プログラムと更新データと管理情報で構成されている。まずECUIDは車両内の車載制御装置を一意に特定する車載制御装置番号である。VNOは更新プログラムと更新データのバージョン番号、PADRは車載制御装置のＲＯＭの書込みアドレスである。更新プログラムと更新データをＲＯＭへ書込む時に必要となる先頭アドレスである。PSIZEは更新プログラムと更新データのサイズである。サイズの単位はバイトである。PROGDATAは、更新プログラムと更新データ本体を示している。次に６２０の書込み開始指令コマンドの送信データ構成を説明する。VINは一意に車両を特定するための車両番号、CMDは書込み開始指令コマンドである。この６２０は請求項１，２では必要な情報であるが、請求項３，４，７，８，９，１０では不要な情報である。
【００５０】
次に中継装置１２０が外部センタから受信し蓄積したデータ構成を、図７を用いて説明する。図７からわかるように、蓄積データ構成７００は、図６のヘッダとEOFを除いた構成と類似している。まずRECVINは受信データVINを保持する変数、RECCMDは受信データCMDを保持する変数であり、更新プログラムデータを受信した場合は”SNDPROG”である。RECST2は受信データST2を保持する変数、RECET2は受信データET2を保持する変数、RECNは受信データNを保持する変数、RECSIZE[1]〜RECSIZE[RECN]は受信データSIZE[1]〜SIZE[N]を保持する配列であり、RECECUID[1]〜RECECUID[RECN]は受信データECUID[1]〜ECUID[N]を保持する配列、RECECUVNO[1]〜RECECUVNO[RECN]は受信データECUVNO[1]〜ECUVNO[N]を保持する配列である。RECECUPADR[1]〜RECECUPADR[RECN]は受信データECUPADR[1]〜ECUPADR [N]を保持する配列であり、RECECUPSIZE[1]〜RECECUPSIZE[RECN]は受信データECUPSIZE[1]〜ECUPSIZE[N]を保持する配列であり、RECECUPROGDATA[1]〜RECECUPROGDATA[REN]は受信データECUPROGDATA[1]〜ECUPROGDATA[N]を保持する配列である。次にメモリ蓄積完了ビットは、メモリ蓄積処理で蓄積完了後にオンにセットされる。書込み完了ビットは、全ての更新プログラムと更新データが車載制御装置へ書込み完了した場合にセットされる。
【００５１】
次にRECVINとRECCMD”WRITE”は、外部センタから書込み開始指令を受信した場合に、それぞれ受信データVINとCMD”WRITE”を保持する変数である。
【００５２】
以上述べた変数と配列は、図１の更新データＲＯＭ１２５に格納される。従って、これらのデータはマイコン１２２の電源がオフになっても消えることは無く保持される。
【００５３】
次に図８の中継装置のメモリ構成について説明する。内部ＲＯＭ１２４には無線送受信機１２１から割り込み４１０経由で起動される無線送受信機からの受信処理プログラム８２１内にメモリ蓄積処理プログラムと書込み開始指令受信処理プログラムが格納されている。書込み開始指令受信処理プログラムは、請求項３，４に対応するため、1000ms周期で起動するプログラムでもある。また書込み開始指令ボタンによる書込み開始指令処理プログラム８２２と無線送受信機への送信処理プログラム８２３も格納されている。また定数データ領域８３０には、当該車両を一意に特定できる車両Noや車両に搭載されている車載制御装置を一意に特定できるECUIDとCANID変換テーブルがある。本実施例では車載制御装置の更新プログラムを車載ネットワークCANへ特定の車載制御装置へ送信する場合、特定のCANIDを指定して送信している。すなわち車載制御装置は、特定のCANIDを指定された送信データだけを受信できる。
【００５４】
このように、車載制御装置ごとに異なるCANIDを割り当てることで、中継装置と車載制御装置間で通信が可能となる。このため、車載制御装置を一意に特定するためのECUIDとCANIDの変換テーブルが定数データ領域８３０に格納されている。同様に中継装置にも専用のCANIDが割り当てられており、車載制御装置が中継装置へ送信データを送信する場合には、中継装置専用のCANIDを指定して送信すれば良い。また、当該車両に搭載されている車載制御装置台数Nmaxやウェイクアップ最大待ち時間、モード変更最大待ち時間も格納されている。ウェイクアップ最大待ち時間とは、イグニッションがオフ状態の場合に中継装置が車載制御装置を起動する際に、どのくらいの時間待てば全ての車載制御装置が立ち上がり、応答を車載ネットワークへ送信できるかを示す最大時間である。従って中継装置は、ウェイクアップパターンを車載ネットワークへ送信した後、ウェイクアップ最大待ち時間経過後に受信バッファを確認すれば必ず全ての車載制御装置からの応答を確認することができる。ウェイクアップは特定の車載制御装置だけを起動するのでなく、全ての車載制御装置を起動する。同様に、モード変更最大待ち時間も、中継装置が車載ネットワークへリプロモードなどのモード変更を送信した場合、どのくらいの時間待てば、指定した車載ネットワークへモード変更を完了したという意味の返信が返ってくるかを示す最大時間できる。モード変更の送信はCANIDを指定するので、特定の車載制御装置だけがモード変更される。次に更新データＲＯＭ１２５は、外部センタから受信したデータを格納するためのフラッシュメモリである。図７の蓄積データ７００が格納される。ＲＡＭ１２６は、内部ＲＯＭ８２０のプログラムが使用するワークエリアでありＩＧＮ状態や時計データ、シフトギヤ位置などのデータが読込まれ、ＳＲＡＭで構成されている。イグニッションの状態や時計のデータ、車載制御装置の書込み完了ビットRESULTECU[1]〜RESULTECU[REC]がプログラム実行中に格納される。
【００５５】
図８Ａは、車載制御装置のメモリ構成である。本実施例では、全ての車載制御装置のメモリ構成は同一であるため、本図を用いて説明する。ＲＯＭ１３３には更新プログラムと更新データを受信するウェイクアップ受信処理プログラム８Ａ０４とリプロモードコマンドを受信するリプロモード受信処理プログラム８Ａ０５と更新プログラムと更新データを８Ａ０３の領域へ書込む書込み処理プログラム８Ａ０６がＲＯＭ１３３のプログラム領域８Ａ０１に格納されている。定数データ領域８Ａ０２には、車載制御装置自身を一意に特定するための自ECUIDとECUIDと対を成すCANID変換データと、中継装置へ送信する際に使用する中継装置ECUIDとそのCANID変換データ、ウェイクアップ最大待ち時間、モード変更最大待ち時間が格納されている。ＲＡＭ１３４には、イグニッションの状態などプログラム８Ａ０４、８Ａ０５、８Ａ０６が実行中に使用するワークエリアである。ただし、車載制御装置１４０だけがシフトギヤ位置情報を保持している。
【００５６】
以上の構成を前提にして、本発明の請求項１〜６の処理概要を図９に示し、請求項７〜１０の処理概要を図１０に示す。
【００５７】
最初に、プログラム更新を発見した時点から更新処理を実施するまでの経緯を考察する。まず車載制御プログラムにバグや改良点が車両メーカで発見されると、更新プログラムと更新データを作成する。次に、車両の所有者に対して、販売店などを経由して不良の内容説明とその改善内容を文書で通知する。その後販売店は、対策を実施するために車両の所有者へ電話などでプログラム更新の承認を確認し、更新プログラムの書込みを実施している時間帯は車両を運転できないことを説明し、それを承知頂いた上で、車両のプログラム更新を行う都合の良い年月日の時間帯を聞いて、外部センタへその時間帯を連絡する。このように、車両の所有者に不便を感じさせないようにするには、車両の所有者に都合の良い日の時間帯にプログラム更新をすることが重要である。
【００５８】
外部センタは、通知された時間帯に更新プログラムデータを所有者の車両へ書込むために、前記通知された時間帯以前に、前記所有者の車両の中継装置へ更新プログラムデータを送信し、蓄積しておく必要がある。以上の経緯が請求項１〜６に関するものであり、図９の処理フローで実現する。
【００５９】
一方、更新プログラムデータが車載中継装置に蓄積されていれば、外部センタからの書込み開始指令を待つこと無く、運転者の都合の良いタイミングでプログラム更新を行いたいケースも考えられる。このケースが請求項７〜１０に対応するもので図１０の処理フローで実現する。ただし、運転者が車両の所有者とは限らないので、所有者が時間帯を指定している場合は、時間帯の範囲外では書込みを抑止する必要がある。この抑止処理を実現する発明が請求項９，１０のケースである。以下、詳細は省いた概要を図９と図１０で説明する。
【００６０】
図９は外部センタの書込み開始指令による書込み処理概要である。ただし書込み開始指令を事前に更新プログラムデータ内に入れて送信するケースも含んでいる。
【００６１】
外部センタと中継装置と車載制御装置の処理概要をそれぞれの時間軸９０１，９０２，９０３に沿って説明する。
【００６２】
まず外部センタは、車両所有者と約束した予め決められた時間帯より前の時刻に更新プログラムデータ９０４を中継装置へ送信する。中継装置は、イグニッションがオン状態であれば受信を行う。最初に中継装置の電源を確保するためにPowerKeep信号をオン９０５し、更新データＲＯＭへ更新プログラムデータを蓄積する。次にメモリ蓄積完了ビットをオン９０６し、メモリ蓄積完了表示器を点灯９０７する。次に外部装置へメモリ蓄積完了通知９０８を行い、PowerKeep信号をオフ９０９する。以上の処理が完了した後に、請求項１，２の場合は予め決められた時間帯において、外部装置は書込み開始指令９１０を中継装置へ送信する。請求項３，４の場合は書込み開始指令を受信せずに、現在時刻が既に受信した第２の時間帯であることを車載時計から自立的に判断する。中継装置は、PowerKeep信号をオン９１１し、車載制御装置へウェイクアップパターンを送信９１２する。車載制御装置はウェイクアップパターンを受信すると電源がオンするのでプログラムを実行し、PowerKeep信号をオン９１４する。車載制御装置からウェイクアップ応答９１３を受信した後に、プログラム更新要求があった車載制御装置へリプロモード遷移要求９１５を送信し、車載制御装置からリプロモード応答９１６が返ってきたことを確認して、更新プログラムと更新データを分割して書き込み処理９１７〜９１８を繰り返し送信する。当該車載制御装置の更新プログラムと更新データを全て送信した後に書込み終了を送信９１９する。車載制御装置は書込み終了を受信すると、中継装置へ書込み完了応答９２０を送信した後にPowerKeep信号をオフ９２１する。中継装置は、車載制御装置から書込み完了応答９２０が返ってきたら、当該車載制御装置の更新プログラムと更新データ処理は完了したので、車載制御装置の書込み完了ビットをオン９２２し、次に他の車載制御装置の更新プログラムデータがあれば、全ての更新プログラムと更新データを車載制御装置へ送信する処理９２３を繰り返す。その後、書込みが全ての車載制御装置で成功（OK）であれば書込み完了ビットをオン９２４し、書き込み完了表示器を点灯９２５し、メモリ蓄積完了ビットをオフ９２６し、メモリ蓄積完了表示器を消灯９２７して、書込み完了通知９２８を外部センタへ通知した後、PowerKeep信号をオフ９２９して終了する。本処理概要は、概要であり、車載制御装置に故障があった場合には書込み失敗するので書込み失敗を外部センタへ通知する必要があるが、以降の詳細処理フローにおいて説明する。
【００６３】
次に、本発明の請求項７〜１０の処理概要を図１０の書込みボタンによる書込み処理概要を用いて説明する。
【００６４】
図１０は、外部センタと中継装置と車載制御装置の処理概要である。外部センタ、中継装置、車載制御装置それぞれの時間軸１００１、１００２、１００３に沿って説明する。
【００６５】
まず外部センタは、車両所有者と約束した時間帯が予め決められていれば、その時間帯より前の時刻に更新プログラムデータ１００４を中継装置へ送信する。ただし請求項７，８では、必ずしも車両所有者と予め第２の時間帯を決めておく必要は無い。請求項９，１０では、決めておく必要がある。中継装置は、イグニッションがオン状態であれば受信を行う。最初に中継装置の電源を確保するためにPowerKeep信号をオン１００５し、更新データＲＯＭへ更新プログラムデータを蓄積する。次にメモリ蓄積完了ビットをオン１００６し、メモリ蓄積完了表示器を点灯１００７して運転者へ通知する。次に外部装置へメモリ蓄積完了通知１００８を行い、PowerKeep信号をオフ１００９を行う。以上の処理は、図９と同一であるが、以降の処理が異なる。まず運転者は、メモリ蓄積完了表示器が点灯していることを確認して、イグニッションをオンし（請求項８，１０）、さらにシフトギヤをパーキング位置に設定（請求項８，１０）してから、中継装置に接続されている書込み開始指令ボタンをオンすることで書込み開始指令を実行する。もし、メモリ蓄積完了表示器が消灯またはイグニッションがオフの状態（請求項８，１０）またはシフトギヤがパーキング以外の位置（請求項８，１０）であれば、書込み開始指令ボタンを押しても、書込みは実行されない。ここでは、条件が成立した場合の処理フローを説明する。まず、中継装置はボタンが押されたことを確認した後、自身の電源を確保するために、PowerKeep信号をオン１０１１する。次にプログラム更新要求があった車載制御装置へリプロモード遷移要求１０１２を送信する。車載制御装置は、リプロモードへ遷移した後に、中継装置へリプロモード応答１０１３を送信して、PowerKeep信号をオン１０１４する。中継装置は、車載制御装置からリプロモード応答１０１３が返ってきたことを確認して、更新プログラムと更新データを分割して書き込み処理１０１５〜１０１６を繰り返し送信する。当該車載制御装置の更新プログラムと更新データを全て送信した後に書込み終了通知を送信１０１７する。車載制御装置は、書込み終了通知１０１７を受信すると、リプロモードから通常動作モードへ変更した後に中継装置へ書込み完了応答１０１８を送信してPowerKeep信号をオフ１０１９する。中継装置は、車載制御装置から書込み完了応答１０１８が返ってきたら、当該車載制御装置の更新プログラムと更新データ処理は完了したので、車載制御装置の書込み完了ビットをオン１０２０し、次に他の車載制御装置の更新プログラムデータがあれば、全ての更新プログラムと更新データを車載制御装置へ送信する処理１０２１を繰り返す。その後、書込みが全ての車載制御装置で成功（OK）であれば書込み完了ビットをオン１０２２し、書き込み完了表示器を点灯１０２３し、メモリ蓄積完了ビットをオフ１０２４し、メモリ蓄積完了表示器を消灯１０２５して、書込み完了通知１０２６を外部センタへ通知した後、PowerKeep信号をオフ１０２７して終了する。本処理は、概要であり、車載制御装置に故障があった場合には書込み失敗するので書込み失敗を外部センタへ通知する必要があるが、以降の詳細処理フローにおいて説明する。
【００６６】
次に、図９と図１０の共通の処理であるメモリ蓄積処理の詳細を図１１の中継装置のメモリ蓄積処理を用いて説明する。まず無線送受信機からの受信割り込み１１００がマイコンへ入力すると、本プログラムが起動する。最初に中継装置のPowerKeep信号をオン１１０１し、次に受信データを更新データＲＯＭへ格納する処理１１０２を実行する。処理内容は図６のデータ６００を図７の蓄積データ７００へ変換して更新データＲＯＭヘ蓄積することである。詳細は、下記である。
受信データ自車両NoのVINを更新データＲＯＭの変数RECVINへ書込み、
受信データコマンドのCMDを更新データＲＯＭの変数RECCMDへ書込み、
受信データ第２の時間帯の開始時刻ST2を更新データＲＯＭの変数RECST2へ書込み、
受信データ第２の時間帯の終了時刻ET2を更新データＲＯＭの変数RECET2へ書込み、
受信データ更新プログラムデータの数Nを更新データＲＯＭの変数RECNへ書込み、
受信データ各受信データサイズSIZE[1]〜SIZE[RECN]を更新データＲＯＭの配列RECSIZE[1]〜RECSIZE[RECN]へ書込み、
受信データ車載制御装置番号ECUID[1]〜ECUID[RECN]を更新データＲＯＭの配列RECECUID[1]〜RECECUID[RECN]へ書込み、
受信データの更新プログラムと更新データのバージョンVNO[1]〜VNO[RECN]を更新データＲＯＭの配列RECECUVNO[1]〜RECECUVNO[RECN]へ書込み、
受信データの更新プログラムと更新データの書込み先頭アドレスPADR[1]〜PADR[RECN]を更新データＲＯＭの配列RECECUPADR[1]〜RECECUPADR[RECN]へ書込み、
受信データの更新プログラムと更新データサイズPSIZE[1]〜PSIZE[RECN]を更新データＲＯＭの配列RECECUPSIZE[1]〜RECECUPSIZE[RECN]へ書込み、
受信データの更新プログラムと更新データ本体PROGDATA[1]〜PROGDATA[RECN]を更新データＲＯＭの配列RECECUPROGDATA[1]〜RECECUPROGDATA[RECN]へ書込む。
【００６７】
ここで、注意すべきことは、更新すべき車載制御装置番号はRECECUID[n]、n＝１〜RECNに格納されること、車載制御装置のＲＯＭへ更新プログラムと更新データを書き込む先頭アドレスはRECECUPADR[n]、n＝１〜RECNに格納されることである。また請求項１，２，７，８の実施例としてはRECST2とRECET2は不要であり、請求項３，４，９，１０の実施例で必要となる情報である。
【００６８】
次に１１０３で受信したデータが自車両への送信データであるか判定するため、RECVINと内部ＲＯＭ１２４の定数データ領域に格納されている車両Noが一致するかチェックする。もし一致しなければ、１１０９のPowerKeep信号をオフして終了である。一致すれば当該車両への受信データなので、１１０４のRECCMDが”SNDPROG”かチェックする。もし一致しなければ他のコマンドであるため、１４００の書込み開始指令処理を実行する。一致すれば受信データが更新プログラムデータであるため、１１０５の車両のイグニッションがオン状態であるかチェックする。もし一致しなければ次の外部センタからの送信まで待つため１１０９のPowerKeep信号をオフして終了する。一致すれば１１０６のメモリ蓄積完了ビットをオンし、１１０７のメモリ蓄積完了表示器を点灯し、１１０８の外部センタへメモリ蓄積完了通知を行い、１１０９のPowerKeep信号をオフして終了する。ここで外部センタへのメモリ蓄積完了通知は、通知データを無線送受信機への送信処理プログラム８２３へ渡して実行される。ここで１４００の書込み開始指令受信処理は、請求項１，２の場合では外部センタから書込み開始指令コマンド”WRITE”を受信した場合に実行されるが、請求項３，４，７，８，９，１０では受信しないので実行されることは無い。請求項３，４では図１４に示すように、書込み開始指令受信処理は1000ms周期起動で周期的に実行される。
【００６９】
以上で請求項すべてに係わるメモリ蓄積完了処理の詳細を説明した。
【００７０】
次に、予め決められた時間帯に外部センタから送信される書込み開始指令コマンドの送信データ構成を、図６の６２０を用いて説明する。６２０の先頭のヘッダは送信開始を指示する情報であり、VINは車両を一意に特定する車両番号である。CMDは書込み開始指令コマンドである。EOFは送信終了を指示する情報である。ここでCMDが”SNDPROG”であれば受信データは更新プログラムデータを意味し、”WRITE”であれば受信データは書込み開始指令を意味する。ここでは書込み開始指令であるため、”WRITE”コマンドとなる。このように、”SNDPROG”コマンドと”WRITE”コマンドではCMD以降のデータが大きく異なる。また本”WRITE”コマンドを受信するのは、請求項１，２の場合である。
【００７１】
次に図１２を用いて中継装置が書込み完了後に外部センタへ送信する書込み完了通知の送信データ構成を説明する。１２００のCENTERIDは外部センタを一意に特定するための外部センタの番号、CMDは書込み完了または未完了を意味するコマンドである。”COMPLETE”であれば書込み完了であり、”INCOMPLETE”であれば書込み未完了の通知となる。VINは車両を一意に特定するための車両番号である。
【００７２】
図１３は中継装置の書込み開始指令の蓄積データ構成１３００である。図７の最後に同一の構成が記載されている。ヘッダとEOFを除いてRECVINとRECCMDが更新データＲＯＭに保持される。ただし、請求項３，４，７，８，９，１０の場合は、図１３に示すデータ構成は不要である。請求項３，４，９，１０では既に第２の時間帯は受信済みだからであり、請求項７，８の場合は、運転者は自由に書込み開始をボタンにより実行できるためのである。
【００７３】
次に外部センタから書込み開始指令を受信したケースと1000ms周期で書込み開始を判断するケースの書込み処理の詳細を図１４〜図２１を用いて説明する。本ケースは請求項１〜４の実施例である。書込み開始指令は図１１の１４００の書込み開始指令受信処理からの分岐または1000ms周期起動により開始される。
【００７４】
図１４に書込み開始指令受信処理の詳細を説明する。まず１４００は外部センタから書込み開始指令を受信したか、または1000ms周期で起動された場合に実行される。１４０１で中継装置の電源を確定するためPowerKeep信号をオンに設定する。次に１４０２は請求項１，２の実施例の場合に実行される。請求項３，４の場合は無視され１４０３を実行する。１４０２において不一致ならば１４０７のPowerKeep信号をオフにして終了する。もし一致すれば書き込み開始指令コマンドであるため、１４０３を実行する。１４０３においてメモリ蓄積完了ビットがオンかチェックする。もしオンでなければ１４０７のPowerKeep信号をオフして終了する。もしオンならば、各請求項の実施例ごとに動作が異なるので以下説明する。
【００７５】
請求項１の実施例では１４０３がYESであれば１４０４，１４０５，１４０６を省略して１５００の書込み開始処理と１４０７のPowerKeep信号をオフにして終了する。
【００７６】
請求項２の実施例では１４０３がYESであれば１４０４のイグニッションがオフかチェックし、もしNOならば１４０７のPowerKeep信号をオフして終了する。YESならば１４０５と１４０６を省略し、１５００を実行する。
【００７７】
請求項３の実施例では１４０４を省略して１４０５と１４０６を実行する。１４０６がYESなら１１５００を実行する。
【００７８】
請求項４では１４０４を実行し、YESなら１４０５と１４０６を実行する。１４０５において時計の現在時刻を変数Tへセットし、１４０６の判定RECST2＜T＜RECET2を実行する。もしNOであれば、予め決められた時間帯では無いので、１４０７のPowerKeep信号をオフにして終了する。もしYESであれば、予め決められた時間帯の範囲内であるから１５００の書込み開始処理を実行する。１５００では書込み開始処理を実行し、次に１４０７のPowerKeep信号をオフにして終了する。このように、請求項２，３、４の実施例では、メモリ蓄積完了ビットがオンであることを確認した後、イグニッションの状態や第２の時間帯を参照すべきか異なるので注意が必要である。各実施例において全ての条件が成立すると、書き込み開始処理１５００を実行する。
【００７９】
次に１５００の書込み開始処理の詳細を、図１５を用いて説明する。
【００８０】
最初に全ての車載制御装置を起動するため、１５０１の車載ネットワークのCANバスへウェイクアップパターンを送信する。次に１５０２の変数WKMAXTIMEへウェイクアップ最大待ち時間をセットし、１５０３の判定文  WKMAXTIME＞経過時間  の判定を行う。この判定文は、ウェイクアップパターンを受信した車載制御装置の電源がオンとなって立ち上がったことを示すウェイクアップ受信を待つための時間の確保である。もし１５０３でYESであれば最大待ち時間以内であり、まだ立ち上がらずにいる車載制御装置が存在するかもしれないことを意味する。従って、NOになるまで待ってから１５０４の処理を実行する。すなわち全ての車載制御装置が立ち上がっている状態で１５０４を実行している。図１５の処理の途中ではあるが、ウェイクアップパターンを受信した車載制御装置の動作を図１６の車載制御装置のウェイクアップ受信処理を用いて説明する。まずウェイクアップパターンを受信すると、前述したように、１６００の全ての車載制御装置の電源がオンとなる。次に１６０１のPowerKeep信号をオンし、１６０２のCANバスからウェイクアップ受信確認をWakeUp信号によって確認する。すなわちWakeUp信号がオンであれば自身の立上げ要因がウェイクアップであることがわかる。次に１６０３により中継装置専用のCANIDを送信バッファのCANIDフィールドへ設定し、”WAKEUP_RESPONSE”を送信バッファのCMDフィールドへ設定し、自分自身の車載制御装置ECUIDを送信バッファのDATAフィールドへ設定する。次に１６０４で送信バッファの内容をCANバスへ送信し、終了する。このように、車載制御装置は、自身の立上げ完了を中継装置へCANバスを介して通知している。次に図１５の１５０４へ戻って説明を行う。すなわち全ての車載制御装置が立ち上がった後に更新すべき車載制御装置をリプロモードにしなければならない。このため、まず更新すべきRECECUID[n]（n＝１）の車載制御装置をリプロモードにする処理を行う。最初に１５０４で変数nへ１をセットし、１５０５で送信バッファのCANIDフィールドへRECECUID[n]専用CANIDの設定と、送信バファのCMDフィールドへリプロモードコマンドを意味する”REPRO_MODE”の設定と、送信バッファのDATAフィールドへ中継装置専用のECUIDを設定し、送信バッファをCANバスへ送信する。次に１５０６では変数REPＲＯＭAXTIMEへモード変更最大待ち時間を設定し、次の１５０７では車載制御装置番号RECECUID[n]からの応答を待つため、経過時間が最大時間を越えるまで待つ。超えた場合はNOとなるので、１５０８において車載制御装置RECECU[n]からの受信データを調べる処理を行う。ここでも図１５の処理の説明の途中ではあるが、リプロモードを受信した車載制御装置番号RECECUID[n]の車載制御装置の動作を図１７のRECECUID[n]のリプロモード受信処理を説明する。まず１７０１でPowerKeep信号をオンする。既にウェイクアップ時にオンしているので何の効果も無いが、何度オンにしても影響は無い。次に１７０２では受信バッファのCANIDフィールドのデータを変数CANIDへ設定し、受信バッファのCMDフィールドのデータを変数CMANDへ設定する。次に１７０３において変数CMANDが”REPRO_MODE”か判定し、NOならば終了し、YESならば１７０４において受信バッファのDATAフィールドのデータを変数DATAへ設定する。次に、１７０５において車載制御装置をリプロモードへ設定し、リプロモードに設定したことを中継装置へ通知するために１７０６において送信バッファのCANIDフィールドへ中継装置専用CANIDを設定し、送信バッファのCMDフィールドへリプロモード設定完了を意味する”REPRO_RESPONSE”を設定し、送信バッファのDATAフィールドへ車載制御装置自身のECUIDを設定する。次に１７０７で送信バッファをCANバスへ送信することで中継装置へリプロモード設定完了を通知している。以上で図１７の車載制御装置の説明を終了し、再び中継装置の図１５の１５０８へ戻る。１５０８では、受信バッファのCANIDフィールドのデータを変数CANIDへ設定し、受信バッファのCMDフィールドのデータを変数CMDへ設定し、受信バッファのDATAフィールドのデータを変数DATAへ設定している。次に１５０９において変数CMDが”REPRO_RESPONSE”であるかチェックする。ここでYESであれば１８００においてRECECUID[n]の車載制御装置へ更新プログラム送信処理を実行する。もしNOであればRECECUID[n]の車載制御装置が異常であるため、１５１０において車載制御装置の書込み完了ビット配列RESULTECU[n]へ”NG”を設定している。次に１５１１において変数nがRECNと一致するかチェックし、NOであれば１５１２においてnをインクリメントして再度１５０５の実行を繰り返す。
【００８１】
すなわち１５１１は、受信した全ての更新プログラムと更新データを該当する車載制御装置へ送信完了したかチェックしている。YESであれば２１００の書込み完了処理を実行して終了する。
【００８２】
次に１８００のRECECUID[n]へ更新プログラム送信処理の詳細を、図１８を用いて説明する。また２１００の書込み完了処理は、その後に説明する。
【００８３】
図１８では、中継装置がRECECUID[n]の車載制御装置へ更新プログラムと更新データを４バイト単位で送信し、送信完了後に書込み完了結果を車載制御装置から受信してその結果を記憶する処理を行っている。
【００８４】
まず１８０１では変数CMMANDへコマンド”WRITE”を設定し、次の１８０２では変数ECUIDへRECECUID[n]を設定し、変数SNDPADRへERCECUPADR[n]を設定し、変数PSIZEへRECECUPSIZE[n]を設定し、変数PROGDATAADRへRECECUPROGDATA[n]の先頭アドレスを設定し、変数SNDPDATAへPROGDATAADRから４バイトデータを設定し、変数SNDSIZEへ０を設定している。次に１８０３では変数CANIDへ送信先の車載制御装置ECUID専用CANIDを設定し、１８０４では送信バッファのCANIDフィールドへ変数CANID、送信バッファのCMDフィールドへ変数CMMAND、送信バッファのPADRフィールドへ変数SNDPADR、送信バッファのDATAフィールドへ変数SNDPDATAを設定している。次の１８０５では送信バッファの内容をCANバスへ送信している。以上の処理で更新プログラムと更新データの最初の書込みアドレスと更新プログラムと更新データの最初の４バイトデータを車載制御措置へ送信できた。次に１８０６では、更新プログラムと更新データの次の４バイトデータを送信するための準備を行っている。すなわち変数PROGDATAADRを４インクリメントし、変数SNDPDATAへ変数PROGDATAADRで示すアドレスから４バイトデータをセットし、変数SNDPADRを４インクリメントし、変数SNDSIZEも４インクリメントしている。これにより、更新プログラムと更新データの次の４バイトデータと、書込みアドレスをそれぞれ設定できたことになる。次の１８０７では、更新プログラムと更新データを当該車載制御装置へ全て送信したかチェックするため、変数SNDSIZEと変数PSIZEが一致したかチェックしている。NOであれば１８０４へ戻り送信処理を繰り返す。YESであれば１８０８を実行し、変数CMMANDへ送信完了を意味する”END”を設定し、送信バッファのCANIDフィールドへECUID専用のCANIDを設定し、送信バッファのCMDフィールドへ変数CMMANDを設定し、送信バッファの内容をCANバスへ送信する。以上でRECECUID[n]の車載制御装置へ更新プログラムと更新データを全て送信したことになるので、２０００のRECECUID[n]の書込み完了処理を実行して終了する。図１８の処理は、図１５の１８００から実行されているので、図１５の１５１１からわかるように、全ての更新プログラムと更新データを送信していることがわかる。
【００８５】
以上中継装置から車載制御装置へ更新プログラムと更新データを送信する処理を説明したが、次に図１９を用いて、更新プログラムと更新データを受信する車載制御装置の書込み処理を説明する。またその後で２０００のRECECUID[n]の書込み完了処理と２１００の書込み完了処理を説明する。
【００８６】
図１９の車載制御装置RECECUID[n]の書込み処理は、受信割り込みで起動される。
【００８７】
本プログラムは、図８Aの車載制御装置の制御プログラム、データ格納エリア８A0３領域へ更新プログラムと更新データを書込む処理を行うが、本領域はフラッシュメモリであるため、本来ならば最初に本領域に既に書込まれているプログラムとデータを消去してから書込む必要がある。しかし本実施例では消去処理は発明の本質とは無関係であることと簡単化のために省略して説明する。１９０１では受信バッファのCANIDフィールドのデータを変数CANIDへ設定し、受信バッファのCMDフィールドのデータを変数CMANDへ設定している。次に、１９０２では変数CANIDと自車載制御装置のCANIDの一致チェックを行い、NOならば他の車載制御装置への送信データと判断し終了する。YESなら１９０３において変数CMANDが”WRITE”であるかチェックし、YESなら書込みコマンドと判定し、１９０４において変数SNDPADRへ受信バッファのPADRフィールドのデータSNDPADRをセットし、変数SNDPDATAへ受信バッファのDATAフィールドのデータSNDPDATAをセットする。次の１９０５〜１９０７は、図８Aの８A0３の制御プログラム、データを書き換える処理である。まず１９０５において書込みアドレス設定レジスタMADRへ変数SNDPADRを設定し、１９０６にて書込みデータ設定レジスタMDATAへ変数SNDPDATAを設定し、１９０７においてコマンドレジスタMCOMへ書込みコマンドWRITEを設定している。書込みの実行はMCOMレジスタへWRITEコマンドが設定された時点で開始されるので、更新プログラムと更新データの４バイトを保持する変数SNDPDATAが８A0３の領域のアドレスSNDPADRへ書込まれたことになる。次に１９０８において書込みが成功したかチェックするため状態レジスタＲＯＭStatusにエラーERRORを検出したかを判定している。YESであれば４バイトの書込みは失敗したことを意味するので、１９０９で変数ERRStatusへ”NG”をセットして終了する。もしNOならば４バイトの書込みは成功したので終了する。以上述べた処理は４バイトの書込み処理であるが、本処理は図１８の１８０５において送信されたデータに基づいて行われた処理である。図１８では１８０７で更新プログラムと更新データの全てを送信する処理を繰り返すので、本処理も同様に受信する度に繰返すことになる。一方、１９０３においてNOである場合は、更新プログラムと更新データ全てを書込み完了した後に中継装置から送信されるコマンド”END”であるかチェックし、当該制御装置の書込み完了を中継装置へ通知する処理である。まず１９１０において変数CMANDが”END”であるかチェックし、NOならば終了とする。YESならば１９１１にて変数CANIDへ中継装置専用CANIDをセットし、１９１２にて変数CMMANDへ”END”の応答を意味する”RESPONSE”をセットし、１９１３では変数SNDPDATAへ変数ERRStatusをセットし、１９１４において送信バッファのCANIDフィールドへ変数CANIDをセットし、送信バッファのCMDフィールドへ変数CMMANDをセットし、送信バッファのDATAフィールドへ変数SNDPDATAをセットし、次の１９１５において送信バッファの内容をCANバスへ送信している。以上で、４バイトの書込み処理とその結果を中継装置へ通知を終了したので、次の１９１６では車載制御装置の動作モードをリプロモードから通常動作モードへ変更し、１９１７でPowerKeep信号をオフして終了している。
【００８８】
次に図１８の２０００のRECECUID[n]の書込み完了処理について詳細に説明する。
【００８９】
図２０がRECECUID[n]の書込み完了処理フローである。２０１０では”CANバスから受信有り？”をチェックしている。これは車載制御装置RECECUID[n]から”RESPONSE”応答の受信をチェックしている処理である。YESであれば２０２０において変数RESCANIDへ受信バッファのCANIDフィールドのデータCANIDを設定し、変数RESCMDへ受信バッファのCMDフィールドのデータCMMANDを設定し、変数RESULTへ受信バッファのDATAフィールドのデータSNDPDATAを設定する。次に２０３０では変数CANIDが中継装置専用CANIDと一致するかチェックし、NOであれば中継装置の受信データでは無いので終了する。もしYESであれば、次の２０４０において変数RESCMDがコマンド”RESPONSE”と一致するかチェックし、NOならば終了する。もしYESならば変数RESULTには書込み完了結果が格納されているので、次の２０５０でRECECUIDの書込み完了ビット配列RESULTECU[n]へ変数RESULTを格納して終了する。以上で、RECECUID[n]の更新プログラムと更新データ書込み完了結果がRESULTECU[n]に格納された。
【００９０】
処理全体構成を振り返って見れば分かるように、書込み開始は図１４の処理から開始され、書込み開始条件が成立すると、図１５の処理が実行され、ここで全ての更新プログラムと更新データをその車載制御装置へ書込む処理を呼び出す処理を繰返している。この繰返しの中に図１８のRECECUID[n]へ更新プログラム送信処理が存在し、さらに図１８の処理の中で図２０のRECECUID[n]の書込み完了処理が実行されている。従って、図２０のRECECUID[n]の書込み完了処理は、更新プログラムと更新データに対応する車載制御装置の全てに対して実行されたことになる。
【００９１】
次に図１５において、全ての更新プログラムと更新データを対応する車載制御装置へ書込み完了した後に、実行される２１００の書込み完了処理を図２１を用いて説明する。
【００９２】
２１０１では変数nへ１をセットし、２１０２でRECECUID[n]の車載制御装置の書込み完了ビットRESULTECU[n]が”OK”かチェックしている。NOであれば書込み異常が発生したことを意味するので２１１２において図７に記載の書込み完了ビットをオフに設定し、２１１３で書込み完了表示器を消灯し、２１１４で外部センタへ書込み失敗を意味する書込み未完了通知を行い、最後に２１１５で中継装置のPowerKeep信号をオフにして終了する。一方、２１０２においてYESであれば変数nがRECNと一致したかチェックし、NOならば変数nをインクリメントして２１０２を繰り返し実行する。YESであれば、全ての書込み処理の結果が”OK”であることを意味するので、２１０５において書込み完了ビットをオンに設定し、２１０６において書込み完了表示器を点灯し、２１０７において外部センタへ正常に書込み完了が終了したことを意味する書込み完了通知を行い、２１０８において、全ての処理が終了したのでメモリ蓄積完了ビットをオフに設定し、２１０９においてメモリ蓄積完了表示器を消灯し、２１１０で中継装置のPowerKeep信号をオフにして終了する。
【００９３】
次に車両に搭載された書込み開始指令ボタンにより書込み開始を実現するケースの実施例を詳細に説明する。本ケースは、請求項７〜１０に関するものである。
【００９４】
本実施例は、図１０の書込みボタンによる書込み処理概要の詳細な処理動作を説明する。ただし、既に図１１の中継装置のメモリ蓄積完了処理は、詳細に説明したので、図１０の１０１０以降の処理について説明する。
【００９５】
図２２は、書込み開始指令ボタンによる書込み開始指令処理の詳細フローである。本処理プログラム２２００は500ms毎に起動するプログラムである。本プログラムが起動すると、２２０１において書込み開始指令ボタンがオンであるかチェックし、NOであれば終了する。もしYESならば２２０２のメモリ蓄積完了ビットがオンかチェックし、NOであれば終了する。もしYESならば請求項７〜１０の実施例により異なるので、下記に動作を説明する。
【００９６】
請求項７の実施例では、２２０３，２２０４，２２０５，２２０６を省略して２３００を実行する。すなわちボタンによる書込み開始処理を実行して終了する。
【００９７】
請求項８の実施例では、２２０３においてイグニッションがオンかチェックし、NOならば終了し、YESならば２２０４のシフトギヤ位置がパーキングかチェックしてNOならば終了する。YESならば２２０５と２２０６を省略して２３００のボタンによる書込み開始処理を実行して終了する。
【００９８】
請求項９の実施例では、２２０３，２２０４を省略して２２０５と２２０６を実行する。２２０５で車載時計から現在時刻を取得して変数Tへセットし、２２０６で変数Tが第２の時間帯の開始時刻RECST2と終了時刻RECET2の範囲内にあるかチェックしてNOならば終了する。YESならば２３００のボタンによる書込み開始処理を実行して終了する。
【００９９】
請求項１０の実施例では、２２０３でイグニッションがオンかチェクし、NOならば終了し、YESならば２２０４においてシフトギヤ位置がパーキングかチェックし、NOならば終了する。YESならば２２０５において変数Tへ車載時計から現在時刻をセットし、２２０６において変数Tが第２の時間帯の開始時刻RECST2と終了時刻RECET2の範囲内にあるかチェックし、NOならば終了する。YESならば２３００のボタンによる書込み開始処理を実行して終了する。
【０１００】
以上で請求項７〜１０の実施例の動作を説明した。
【０１０１】
次に図２３のボタンによる書込み開始処理を詳細に説明する。
【０１０２】
２３０１において変数nへ１をセットし、２３０２において送信バッファのCANIDフィールドへRECECUID[n]専用のCANIDをセットし、送信バッファのCMDフィールドへリプロモードコマンド”REPRO_MODE”をセット、送信バッファのDATAフィールドへ中継装置のECUIDをセットし、送信バッファの内容をCANバスへ送信している。以上の処理は、イグニッションがオンであるため車載制御装置の電源はオンであるので、中継装置はウェイクアップパターンを送信せずに、リプロモード遷移要求コマンド”REPRO_MODE”を送信している。次に２３０３において変数REPＲＯＭAXTIMEへモード変更最大待ち時間をセットし、２３０４にてREPＲＯＭAXTIME時間が経過するまで待つ処理を行っている。経過した場合はNOとなり、２３０５において変数CANIDへ受信バッファのCANIDフィールドのデータCANIDをセットし、変数CMDへ受信バッファのCMDフィールドのデータCMDをセットし、変数DATAへ受信バッファのDATAフィールドのデータDATAをセットしている。次に、２３０６において変数CMDが”REPRO_RESPONSE”と一致するかチェックし、NOならば異常と判定して２３０７のRESULTECU[n]へ”NG”を設定する。もしYESならば１８００の”RECECUID[n]へ更新プログラム送信処理”を実行し、２３０８の変数nがRECNと一致したかチェックする。NOであれば、全ての更新プログラムと更新データを送信していないので、２３０９において変数nをインクリメントして２３０２を繰返し実行する。もし２３０８においてYESであれば２１００の書込み完了処理を実行して終了する。以上述べた処理２３０１〜２３１０は、図１５の１５０４〜１５１３と全く同一である。従って１８００の”RECECUID[n]へ更新プログラム送信処理”と２１００の書込み完了処理は、再度説明する必要は無いので省略する。
【０１０３】
以上で、請求項１〜１０における実施例とその動作を詳細に説明した。
【０１０４】
以上説明した如く、本発明によれば、車両に搭載された中継装置は、イグニッションがオン状態において外部のセンタから送信された更新プログラムデータを走行に係わる車載制御装置の制御動作とは無関係に中継装置が受信できるので、運転者が不便を感じることは無く更新プログラムデータを蓄積できる。
【０１０５】
また、更新プログラムと更新データの書込み処理は、自動車の運転者が乗車していない場合には、自動車が自宅または他の駐車場に駐車している場合でもあるいは真夜中であってもイグニッションがオフ状態であっても、約束の時間帯に車両制御装置の制御プログラムとデータの更新が可能となる。
【０１０６】
また、自動車の運転者が乗車している場合には、運転者の都合の良い時間に、書込み開始指令ボタンを押すことによって書込みを実行したり、また所有者との約束の時間帯に限定して書込みを実行したりすることができる。
【０１０７】
以上のように、更新プログラムと更新データを高速にかつ運転者に不便を感じさせること無く、車載制御装置へ書込むことができる。
【符号の説明】
【０１０８】
１００  外部センタ
１０１  無線中継基地
１２０  中継装置
１２１  無線送受信機
１２２，１３１，１４１，１５１  マイコン
１３０，１４０，１５０  車載制御装置
１６０  車載ネットワーク
１７０  イグニッションスイッチ
【図１】
2018129093.tif 000003
【図２】
2018129093.tif 000004
【図３】
2018129093.tif 000005
【図４】
2018129093.tif 000006
【図５】
2018129093.tif 000007
【図６】
2018129093.tif 000008
【図７】
2018129093.tif 000009
【図８】
2018129093.tif 000010
【図８Ａ】
2018129093.tif 000011
【図９】
2018129093.tif 000012
【図１０】
2018129093.tif 000013
【図１１】
2018129093.tif 000014
【図１２】
2018129093.tif 000015
【図１３】
2018129093.tif 000016
【図１４】
2018129093.tif 000017
【図１５】
2018129093.tif 000018
【図１６】
2018129093.tif 000019
【図１７】
2018129093.tif 000020
【図１８】
2018129093.tif 000021
【図１９】
2018129093.tif 000022
【図２０】
2018129093.tif 000023
【図２１】
2018129093.tif 000024
【図２２】
2018129093.tif 000025
【図２３】
2018129093.tif 000026