JP6528700B2 - 車載制御装置、及び車載制御装置を含む車載ネットワーク - Google Patents

車載制御装置、及び車載制御装置を含む車載ネットワーク Download PDF

Info

Publication number
JP6528700B2
JP6528700B2 JP2016028329A JP2016028329A JP6528700B2 JP 6528700 B2 JP6528700 B2 JP 6528700B2 JP 2016028329 A JP2016028329 A JP 2016028329A JP 2016028329 A JP2016028329 A JP 2016028329A JP 6528700 B2 JP6528700 B2 JP 6528700B2
Authority
JP
Japan
Prior art keywords
node
rewriting
nodes
completed
control program
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.)
Active
Application number
JP2016028329A
Other languages
English (en)
Other versions
JP2017146800A (ja
Inventor
上原 一浩
一浩 上原
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2016028329A priority Critical patent/JP6528700B2/ja
Priority to DE102017202282.5A priority patent/DE102017202282B4/de
Publication of JP2017146800A publication Critical patent/JP2017146800A/ja
Application granted granted Critical
Publication of JP6528700B2 publication Critical patent/JP6528700B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、車載制御装置、及び車載制御装置を含む車載ネットワークに関する。
従来、車載制御装置の一例として、特許文献1に開示されたマイクロコンピュータがある。このマイクロコンピュータは、CPUが書き換えプログラムを実行すると、最初にフラッシュメモリのFLASHステータスをクリアしてから、このメモリの全領域の書換えを行ない、最後にFLASHステータスに書き換え完了コードを書込む。
特開2008−165729号公報
ところで、車載制御装置は、複数のノードが連携して制御を行う車載制御システムにおける、一つのノードである場合が考えられる。このような車載制御システムでは、制御プログラムが新しい制御プログラムに書き換えられたノードと、制御プログラムが新しい制御プログラムに書き換えられていないノードとが混在することも考えられる。この場合、車載制御システムは、制御プログラムが書き換えられたノードと、制御プログラムが書き換えられていないノードとで制御が実行されてしまい、新しい制御プログラムに応じた制御を行うことができないという問題がある。
本開示は、上記問題点に鑑みなされたものであり、新しい制御プログラムに書き換えられたノードと新しい制御プログラムに書き換えられていないノードが混在した状態で車載制御システムにおける制御が実行されてしまうことを抑制できる車載制御装置、及び車載制御装置を含む車載ネットワークを提供することを目的とする。
上記目的を達成するために本開示は、
制御プログラムを実行して制御を行う制御モードと、制御プログラムに基づいた制御を行うことなくリプロプログラムを実行して制御プログラムの書き換えを行うリプログモードとの実行モードを有した複数のノード(10〜40、10a)を含み、各ノードが制御モード時に連携して制御を行う車載制御システム(100、110、120、130)における、ノードの実行モードを決定する車載制御装置であり、
車載制御システムに含まれている複数のノードの一つである車載制御装置であって、
複数のノードの全てが、制御プログラムの書き換えが完了しているか否かを判定する判定部(S11、S12、S12a〜S12c)と、
全てのノードが制御プログラムの書き換えを完了していると判定部が判定した場合、実行モードを制御モードに決定し、全てのノードが制御プログラムの書き換えを完了していると判定部が判定していない場合、実行モードをリプログモードに決定する決定部(S13、S14、S13a、S14a)と、を備え
判定部(S11、S12、S12a、S12b)は、自ノードで制御プログラムの書き換えが完了していること、及び他のノードの夫々から取得した制御プログラムの書き換えが完了していることを示す完了情報とに基づいて、複数のノードの全てが、制御プログラムの書き換えが完了しているか否かを判定し、
書換装置から制御プログラムの書き換え用データを受信して、制御プログラムの書き換えを行うものであり
自ノードで制御プログラムの書き換えが完了している場合、及び他のノードの夫々から完了情報を取得するたびに、制御プログラムの書き換えが完了していることを書換装置に通知する個別通知部(S38)を備えていることを特徴とする。
このように、車載制御装置は、全ノードが、制御プログラムの書き換えが完了しているか否かを判定する。つまり、車載制御装置は、自ノードだけではなく、他ノードが制御プログラムの書き換えが完了しているか否かを判定する。そして、車載制御装置は、全ノードが制御プログラムの書き換えを完了していると判定した場合、実行モードを制御モードに決定する。一方、車載制御装置は、全ノードが制御プログラムの書き換えを完了していると判定していない場合、すなわち、少なくとも一つのノードが制御プログラムの書き換えを完了していない場合、実行モードをリプログモードに決定する。
よって、車載制御装置は、複数のノードにおいて新プログラムのノードと旧プログラムのノードとが混在している場合に、自ノードの実行モードをリプログモードに決定する。このため、車載制御装置は、新プログラムのノードと旧プログラムのノードが混在した車載制御システムで、制御系統における制御が実行されることを抑制できる。
なお、特許請求の範囲、及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
第1実施形態における車載制御システムの概略構成を示すブロック図である。 第1実施形態における車載制御装置の概略構成を示すブロック図である。 第1実施形態における第1ノードのROMの構成を示すイメージ図である。 第1実施形態における第2ノードのROMの構成を示すイメージ図である。 第1実施形態における第1ノードの起動処理を示すフローチャートである。 第1実施形態における第2ノードの起動処理を示すフローチャートである。 第1実施形態における第1ノードの処理動作を示すフローチャートである。 図7のAB間の処理動作を示すフローチャートである。 第1実施形態における第2ノードの処理動作を示すフローチャートである。 第1実施形態における車載制御システムの処理動作を示すシーケンス図である。 第1実施形態における書換ツール400の処理動作を示すフローチャートである。 第2実施形態における第1ノードの起動処理を示すフローチャートである。 第3実施形態における第1ノードの起動処理を示すフローチャートである。 第4実施形態における車載制御システムの概略構成を示すブロック図である。 第4実施形態における中継ノードの中継情報を示す図面である。 第5実施形態における車載制御システムの概略構成を示すブロック図である。 第5実施形態における第1ノードの起動処理を示すフローチャートである。 第7実施形態における車載制御システムの概略構成を示すブロック図である。
以下において、図面を参照しながら、発明を実施するための複数の形態を説明する。各形態において、先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において、構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を参照し適用することができる。
(第1実施形態)
図1〜図11を用いて、第1実施形態に関して説明する。なお、本実施形態では、車載制御装置として第1ノード10を採用する。
まず、図1〜図4を用いて、第1ノード10の構成、及び第1ノード10を含む車載制御システム100の構成に関して説明する。車載制御システム100は、車両に搭載可能に構成されている。また、車載制御システム100は、車両に設けられた車載ネットワークの一部として設けられていると言える。
車載制御システム100は、車両における複数の制御系統の一つを統合的に制御するために、第1ノード10を含む複数のノードを備えて構成されている。制御系統とは、例えば、エンジン制御系やボデー制御系などである。よって、車載制御システム100としては、例えばエンジン制御系のシステムを採用できる。
車載制御システム100は、例えば、第1ノード10に加えて、第2ノード20、第3ノード30を備えて構成されている。つまり、本実施形態では、車載制御システム100に含まれている複数のノード10〜30の一つである第1ノード10が車載制御装置に相当すると言える。なお、車載制御システム100は、同一制御系統におけるノードとして、第1ノード10、第2ノード20、第3ノード30を含んでいると言える。第1ノード10、第2ノード20、第3ノード30は、制御系統の制御を実行するための関連するノードであるため関連ノードと言える。
各ノード10〜30は、実行モードとして、制御プログラムを実行して制御を行う制御モードと、制御プログラムに基づいた制御を行うことなくリプロプログラムを実行して制御プログラムの書き換えを行うリプログモードとを有している。なお、制御モードは、制御プログラム実行モードと言える。また、リプログモードは、リプロプログラム実行モードと言える。また、以下においては、制御プログラムの書き換えを、単に書き換えとも記載する。
また、車載制御システム100は、第1ノード10と第2ノード20と第3ノード30が通信バス200を介して通信可能に構成されている。つまり、各ノード10〜30は、自ノード10〜30が接続されている通信バス200を介して通信を行うことができる。
車載制御システム100は、車両の外部に設けられた書換ツール400と通信可能に構成されている。つまり、車載制御システム100は、例えば第1ノード10が書換ツール400と通信可能に構成されている。第2ノード20と第3ノード30は、通信バス200を介して第1ノード10と通信可能に構成されているため、第1ノード10を介して書換ツール400と通信可能に構成されていると言える。このため、車載制御システム100は、マスタとしての第1ノード10と、スレーブとしての第2ノード20及び第3ノード30を備えていると言える。
各ノード10〜30の実行モードが制御モードである場合、車載制御システム100は、各ノード10〜30が制御プログラムを実行することで、各ノード10〜30が制御系統における制御を連携して行う。
一方、各ノード10〜30の実行モードがリプログモードである場合、車載制御システム100は、各ノード10〜30がリプロプログラムを実行することで、各ノード10〜30の制御プログラムが書き換えられる。このとき、車載制御システム100は、第1ノード10が書換ツール400と通信を行いつつ、第2ノード20及び第3ノード30とも通信を行うことで、制御プログラムが書き換えられる。
つまり、車載制御システム100は、全ノード10〜30が制御プログラムを実行することで制御系統における制御を行うことができる。例えば、全ノード10〜30の少なくとも一つのノードにおける実行モードがリプロプグモードであった場合、車載制御システム100は、そのノードがリプロプログラムを実行するため、制御系統における制御を行うことができない。また、全ノード10〜30の一つのノードがリプロプグモードを実行し、他のノードが制御プログラムを実行した場合、各ノード10〜30は、制御プログラムを実行した際に行なわれる通信が途絶するため、制御系統における制御を行うことができない。
なお、上記のように、車載制御システム100は、各ノード10〜30が連携して制御を行うものである。このため、制御システム100は、システム仕様の変更時など、全ノード10〜30の制御プログラムを書き換える必要がある。つまり、車載制御システム100は、例えば、第1ノード10と第3ノード30が新プログラムで、第2ノードだけが旧プログラムのように、新プログラムのノードと旧プログラムのノードとが混在しないようにする必要がある。
これは、車載制御システム100は、新プログラムのノードと旧プログラムのノードとが混在した場合、制御系統として、新プログラムに応じた制御を行うことができなくなるためである。よって、車載制御システム100は、全ノード10〜30で制御プログラムの書き換えを確実に実施する必要がある。言い換えると、車載制御システム100は、全ノード10〜30で新プログラムに揃える必要がある。
なお、新プログラムは、新しい制御プログラムに書き換えられた後の制御プログラムである。一方、旧プログラムは、新しい制御プログラムに書き換えられる前の制御プログラムである。
また、新プログラムは、新しいバージョンの制御プログラムと言える。よって、旧プログラムは、新プログラムよりも古いバージョンの制御プログラムと言える。従って、新プログラムと旧プログラムは、バージョン違いの制御プログラムと言える。
第1ノード10は、図2に示すように、CPU13、ROM14、RAM15、データ送受信部16などを備えて構成されている。CPU13は、後程説明するROM14に予め記憶された制御プログラムやリプロプログラムを実行する。ROM14には、制御プログラム、リプログラム、第1フラグ11、第2フラグ12が記憶されている。RAM15は、CPU13が演算処理を行う際に、演算結果などを一時的に記憶するための記憶部である。データ送受信部16は、通信バス200を介して、第2ノード20、第3ノード30、及び書換ツール400と通信を行うための通信部である。このように、第1ノード10は、ECU(Electronic Control Unit)とも言える。
第2ノード20及び第3ノード30は、第1ノード10と同様に、CPU13、ROM14、RAM15、データ送受信部16などを備えて構成されている。このため、第2ノード20及び第3ノード30の構成に関する図示や詳細な説明は、省略する。第1ノード10と、第2ノード20と第3ノード30とは、主に、制御プログラムの内容、つまり制御内容、及びROM14の記憶内容が異なる。なお、第3ノード30は、第2ノード20と制御内容が異なるものの、同様の構成を有している。よって、以下においては、第2ノード20を代表例として用いて説明する。
なお、各ノード10〜30の処理動作に関しては、後程説明する。また、第2ノード20と第3ノード30の処理動作に関しても、第2ノード20を代表例として用いて説明する。
ここで、図3、図4を用いて、第1ノード10のROM14における記憶内容と、第2ノード20のROM14の記憶内容に関して説明する。
図3に示すように、第1ノード10のROM14は、書き換え領域に制御プログラム、第1フラグ11、第2フラグ12が記憶されており、非書き換え領域にリプロプログラムが記憶されている。また、第1ノード10のROM14は、非書き換え領域に、関連ノードを識別するID情報が記憶されている。
一方、図4に示すように、第2ノード20のROM14には、書き換え領域に制御プログラム、第1フラグ21が記憶されており、非書き換え領域にリプログラムが記憶されている。つまり、第2ノード20のROM14には、第2フラグ12が記憶されていない。なお、図1に示すように、第3ノード30の第1フラグには、符号31を付与している。
第1フラグ11、21は、自ノードにおける書き換え完了可否を判断するための情報である。第1フラグ11、21は、書き換えが完了していることを示す情報と、書き換えが完了していないことを示す情報のいずれかが設定されている。例えば、書き換えが完了していることを示す情報として1、書き換えが完了していないことを示す情報として0を採用できる。なお、第1フラグ11は、第1ノード10によって設定される。一方、第2フラグ21は、第2ノード20によって設定される。
よって、第1ノード10は、第1フラグ11を確認することで、自ノード10における書き換えが完了しているか否かを判定できる。同様に、第2ノード20は、第2フラグ21を確認することで、自ノード20における書き換えが完了しているか否かを判定できる。
第2フラグ12は、自ノード10だけではなく第2ノード20及び第3ノード30における書き換え完了可否を判断するための情報である。つまり、第2フラグ12は、車載制御システム100に含まれている全ノード10〜30における書き換えが完了しているか否かを判断するための情報である。本実施形態では、一例として、書き換えが完了したノードをカウントしたカウント値である第2フラグ12を採用する。よって、第1ノード10は、第2フラグ12を確認することで、第1ノード10、第2ノード20、第3ノード30の全てにおいて書き換えが完了しているか否かを判定できる。
書換ツール400は、書換装置に相当する。書換ツール400は、ディーラや工場の作業者によって操作可能に構成されている。書換ツール400は、作業者による操作に応じて、書き換えを行う。書換ツール400は、書き換えを行う際に、ケーブルとコネクタなどを介して車両と接続される。また、書換ツール400は、書き換えが完了した後など書き換えを行わないとき車両から外されている。なお、書換ツール400は、ライタとも言える。
ここで、各ノード10〜30の処理動作の前に、図10、図11を用いて、書換ツール400の処理動作に関して説明する。書換ツール400は、車両と接続された状態で、作業者によって書き換えが指示された場合に、図11のフローチャートを実行する。なお、後程説明するが、各ノード10〜30は、書換ツール400からの各要求に応答してACKを返信する。
ステップS60では、消去要求コマンドを送信する。書換ツール400は、図10に示すように、第1ノード10〜第3ノード30の夫々に対して、個別に消去要求コマンドを送信する。書換ツール400は、各ノードに対して消去要求コマンドを送信する際に、送信対象のノードのID情報と共に送信する。書換ツール400は、例えば、第1ノード10に対して消去要求コマンドを送信する場合、第1ノード10のID情報と消去要求コマンドとを送信する。この消去要求コマンドは、ROM14に記憶されている制御プログラムの消去を要求するコマンドである。
ステップS61では、消去要求コマンドに対する応答を受信か否かを判定する。書換ツール400は、消去要求コマンドに対する応答、すなわちACKを受信したか否かを判定する。そして、書換ツール400は、ACKを受信したと判定した場合はステップS62へ進み、ACKを受信したと判定してない場合はステップS61を繰り返す。
なお、書換ツール400は、消去要求コマンドを送信してから所定時間、ACKを受信できなかった場合、図11の処理を終了するものであってもよい。つまり、書換ツール400は、カウントアウト処理を行ってもよい。また、書換ツール400は、以下の判定においてもカウントアウト処理を行ってもよい。さらに、後程説明する各ノード10〜30に関しても、カウントアウト処理を行ってもよい。
ステップS62では、書き換え要求コマンドを送信する。書換ツール400は、図10に示すように、第1ノード10〜第3ノード30の夫々に対して、個別に書き換え要求コマンドを送信する。書換ツール400は、消去要求コマンドを送信する場合と同様に、送信対象のノードのID情報と共に、書き換え要求コマンドを送信する。この書き換え要求コマンドは、制御プログラムが消去されたROM14に、新たな制御プログラムの書き込みを要求するコマンドである。
ステップS63では、書き換え要求コマンドに対する応答を受信か否かを判定する。書換ツール400は、書き換え要求コマンドに対するACKを受信したか否かを判定する。そして、書換ツール400は、ACKを受信したと判定した場合はステップS64へ進み、ACKを受信したと判定してない場合はステップS63を繰り返す。なお、書換ツール400は、書き換え要求コマンドに対するACKを受信した後、対象ノードに対して、対象ノードのID情報と新たな制御プログラムのデータとを送信する。
ステップS64では、ベリファイ要求コマンドを送信する。書換ツール400は、図10に示すように、第1ノード10〜第3ノード30の夫々に対して、個別にベリファイ要求コマンドを送信する。書換ツール400は、消去要求コマンドを送信する場合と同様に、送信対象のノードのID情報と共に、ベリファイ要求コマンドを送信する。このベリファイ要求コマンドは、新たな制御プログラムが正常に書き込まれたか否かを検証することを要求するコマンドである。
ステップS65では、ベリファイ要求コマンドに対する応答を受信か否かを判定する。書換ツール400は、リファイ要求コマンドに対するACKを受信したか否かを判定する。そして、書換ツール400は、ACKを受信したと判定した場合はステップS66へ進み、ACKを受信したと判定してない場合はステップS65を繰り返す。
ステップS66では、第2フラグ設定完了通知を受信したか否かを判定する。以下においては、第2フラグ設定完了通知を、単に完了の通知とも称する。また、第2フラグ設定完了の通知は、各ノード10〜30の夫々で書き換えが完了したことを示す情報である。書換ツール400は、完了の通知を受信したと判定した場合はステップS67へ進み、完了の通知を受信したと判定してない場合はステップS66を繰り返す。なお、後程説明するが、第1ノード10は、第2フラグ12の設定が完了するたびに、すなわち第2フラグ12にカウント値を記憶するたびに、完了の通知を書換ツール400に送信する。
ステップS67では、全ノードの書き換え完了か否かを判定する。書換ツール400は、全ノード10〜30の完了の通知を受信した場合に全ノードの書き換えが完了したと判定し、全ノード10〜30の完了の通知を受信してない場合に全ノードの書き換えが完了していないと判定する。そして、書換ツール400は、全ノード10〜30の書き換えが完了したと判定した場合は図11の処理を終了して、全ノード10〜30の書き換えが完了したと判定してない場合はステップS60へ戻る。つまり、書換ツール400は、全ノード10〜30の書き換えが完了するまで、図11のフローチャートを実行する。
ここで、図5〜図10を用いて、各ノード10〜30の処理動作に関して説明する。
まず、図5を用いて、第1ノード10の起動処理に関して説明する。第1ノード10は、例えば、イグニッションスイッチがオンになると、図5のフローチャートを実行する。
ステップS10では、電源オン及びリセット解除する。第1ノード10は、自ノード10の電源をオンすると共に、自ノード10のリセットを解除する。
ステップS11では、第1フラグ11=OKであるか否かを判定する。第1ノード10は、第1フラグ11の記憶内容を確認して、第1フラグ11=OKであるか否か、すなわち、自ノード10における書き換えが完了しているか否かを判定する。第1ノード10は、第1フラグ11が1の場合に第1フラグ11=OK、すなわち、書き換えが完了しているとみなしてステップS12へ進む。また、第1ノード10は、第1フラグ11が0の場合に第1フラグ11=OKではない、すなわち、書き換えが完了していないとみなしてステップS14へ進む。
ステップS12では、第2フラグ12=全書き換え対象ノード数であるか否かを判定する(判定部)。第1ノード10は、第2フラグ12の記憶内容を確認して、第2フラグ12=全書き換え対象ノード数であるか否か、すなわち、書き換え対象ノードの全てにおいて書き換えが完了しているか否かを判定する。ここで、全書き換え対象ノードとは、車載制御システムに含まれている第1ノード10、第2ノード20、第3ノード30である。よって、全書き換え対象ノード数は3である。
第1ノード10は、第2フラグ12のカウント値が3である場合に、第2フラグ=全書き換え対象ノード数、すなわち、書き換え対象ノード10〜30の全てにおいて書き換えが完了しているとみなしてステップS13へ進む。なお、書き換え対象ノード10〜30の全てにおいて書き換えが完了している状態は、全ノード10〜30が新プログラムに書き換えられている状態とみなせる。
一方、第1ノード10は、第2フラグ12のカウント値が3でない場合に、第2フラグ=全書き換え対象ノード数ではない、すなわち、全書き換え対象ノード10〜30のうち少なくとも一つで書き換えが完了していないとみなしてステップS14へ進む。なお、書き換え対象ノード10〜30のうち少なくとも一つで書き換えが完了していない状態は、全ノード10〜30のうち少なくとも一つが旧プログラムのままで、残りが新プログラムに書き換えられている状態とみなせる。
後程詳しく説明するが、第1ノード10は、自ノード10で書き換えが完了した場合、及び、第2ノード20や第3ノード30から完了の通知を受信した場合に第2フラグ12のカウント値をカウントアップする。よって、第1ノード10は、自ノード10で書き換えが完了していること、及び他のノード20、30の夫々から取得した完了の通知とに基づいて、全ノード10〜30での書き換えが完了しているか否かを判定すると言える。つまり、第1ノード10は、ステップS12によって、複数のノード10〜30の全てが、書き換えを完了しているか否かを判定する(判定部)。
このように、第1ノード10は、カウント値によって、複数のノード10〜30の全てが書き換えを完了しているか否かを判定している。このため、第1ノード10は、情報量が増大することを抑制しつつ、複数のノード10〜30の全てが書き換えを完了しているか否かを判定できる。つまり、第1ノード10は、書き換えが完了したことを示す情報を各ノード10〜30に対応して個別に記憶しておくよりも、情報量を減らすことができ、且つ複数のノード10〜30の全てが書き換えを完了しているか否かを判定できる。
また、第1ノード10は、上記のように車載制御システム100に含まれている一つのノードである。よって、第1ノード10は、ステップS12の判定を行うことで、車載制御システム100の制御に影響する全ノード10〜30が新プログラムに書き換えられているか否かを判定できる。
ステップS13では、制御プログラム実行モードに設定する(決定部)。一方、ステップS14では、リプロプログラム実行モードに設定する(決定部)。つまり、第1ノード10は、全ノード10〜30が制御プログラムの書き換えを完了している場合、実行モードを制御モードに決定する。そして、第1ノード10は、全ノード10〜30が制御プログラムの書き換えを完了していると判定していない場合、実行モードをリプログモードに決定する。
ステップS15では、電源オフであるか否かを判定する。そして、第1ノード10は、電源オフと判定した場合は図5の処理を終了し、電源オフと判定してない場合はステップS11へ戻る。
なお、本実施形態では、ステップS12の判定で、全ノード10〜30で書き換えが完了しているか否かを判定する例を採用している。従って、本実施形態では、ステップS11を省略することもできる。この場合、第1ノード10は、起動処理時に、第1フラグ11が1であるか否かの判定を行わなくてもよい。しかしながら、第1ノード10は、ステップS11の判定を行うことで、自ノード10での書き換えが完了していない場合に、第2フラグ12を確認することなくステップS14に進むことができる。さらに、後程説明するが、他のノード20、30は、ステップS10と同様に、自ノードでの書き換えが完了しているか否かを判定する。よって、第1ノード10は、ステップS11の判定を行うことで、他のノード20、30との変更点を少なくすることができる。
次に、図6を用いて、第2ノード20の起動処理に関して説明する。
ステップS20は、ステップS10と同様に、自ノード20の電源オン及びリセット解除を行う。ステップS21では、ステップS11と同様に、第1フラグ21=OKであるか否かを判定する。なお、第2ノード20は、第1ノード10とは異なり、第2フラグを有していない。よって、第2ノード20は、第1フラグ21=OKであると判定した場合はステップS22へ進み、ステップS22で実行モードを制御モードに決定する。また、第2ノード20は、第1フラグ21=OKであると判定していない場合はステップS23へ進み、ステップS23で実行モードをリプログモードに決定する。
なお、ステップS24では、ステップS15と同様に、電源オフであるか否かを判定する。そして、第2ノード20は、電源オフと判定した場合は図6の処理を終了し、電源オフと判定してない場合はステップS21へ戻る。
次に、図7、図8を用いて、第1ノード10における制御プログラムを書き換える際の処理動作に関して説明する。第1ノード10は、例えば、イグニッションスイッチがオンになると、図7のフローチャートを実行する。図7に示す処理動作を行う場合、第1ノード10の実行モードは、リプログモードである。詳述すると、第1ノード10は、例えばリプログモード移行後に、消去要求コマンドが送信される。なお、第1ノード10は、この処理動作中に第1フラグ11及び第2フラグ12の設定を行う。また、本実施形態では、図7の処理がスタートした時点で、第1フラグ11に1が設定されており、第2フラグ12のカウント値が全ノード数3となっていることを前提とする。
ステップS30では、電源オン及びリセット解除する。第1ノード10は、自ノード10の電源をオンすると共に、自ノード10のリセットを解除する。
ステップS31では、自ノード10への消去要求コマンドを受信したか否かを判定する。第1ノード10は、消去要求コマンドを受信した場合、消去要求コマンドと共に受信したID情報に基づいて、自ノード10への消去要求コマンドを受信したか否かを判定する。第1ノード10は、自ノード10への消去要求コマンドを受信したと判定した場合、ステップS32へ進み、自ノード10への消去要求コマンドを受信したと判定してない場合、図8のステップS42へ進む。ステップS42以降の処理に関しては、後程説明する。
ステップS32では、第2フラグ12=全書き換え対象ノード数であるか否かを判定する。第1ノード10は、第2フラグ12のカウント値が3であると判定した場合にステップS33へ進み、第2フラグ12のカウント値が3であると判定しなかった場合にステップS41へ進む。上記のように、第2フラグ12のカウント値は、図7の処理がスタートした時点で3となっている。よって、第1ノード10は、YES判定の場合、最初に自ノード10が書き換えを行うとみなすことができ、NO判定の場合、2番目以降に自ノード10が書き換えを行うとみなすことができる。
ステップS41では、第1フラグ11=NG、第2フラグ12=Nとする。第1ノード10は、消去要求コマンドを受信して、2番目以降に自ノード10の書き換えを行うとみなした場合、第1フラグ11に0を設定し、第2フラグ12のカウント値を前回値に保持する。つまり、第1ノード10は、2番目以降に自ノード10が書き換えを行う場合、第1フラグ11及び第2フラグ12を更新しない。
一方、ステップS33では、第1フラグ11=NG、第2フラグ12=0とする。つまり、第1ノード10は、消去要求コマンドを受信して、最初に自ノード10が書き換えを行うとみなした場合、第1フラグ11をリセットし、すなわち第1フラグ11に0を設定し、第2フラグ12のカウント値をリセットする。このように、第1ノード10は、複数のノード10〜30のいずれかに対する消去要求コマンドを最初に受信したときに、カウント値を初期化する。
第1ノード10は、自ノード10で制御プログラムの書き換えが完了していること、及び他のノード20、30から完了情報を取得したことをカウントし、第2フラグ12のカウント値として記憶する。このため、第1ノード10は、消去要求コマンドを最初に受信したときにカウント値を初期化しておくことで、全ノード10〜30における書き換えの進捗を確認できる。完了情報に関しては、後程説明する。
なお、第1ノード10は、図10に示すように、消去要求コマンドを受信すると、第1フラグ11と第2フラグ12をリセットすると共に、制御プログラムを消去し、且つ書換ツール400にACKを送信する。その後、第1ノード10は、図10に示すように、書換ツール400から書き換え要求コマンドを受信するとACKを返信し、書換ツール400から新たな制御プログラムのデータと受信する。このデータは、制御プログラムの書き換え用データである。
そして、ステップS34では、自ノード書き換えを行う。第1ノード10は、受信した新たな制御プログラムのデータをROM14の書き換え領域に書き込む(書き換え処理)。
ステップS35では、自ノードの書き換えが完了したか否かを判定する。第1ノード10は、自ノード10の書き換えが完了したと判定した場合はステップS36へ進み、自ノード10の書き換えが完了したと判定しなかった場合はステップS35を繰り返す。つまり、第1ノード10は、新たな制御プログラムの書き込みが完了するまでステップS35の判定を繰り返す。なお、第1ノード10は、図10に示すように、書き換え処理が終了すると書換ツール400にACKを送信すると共に、書換ツール400からベリファイ要求コマンドを受信する。
そして、ステップS36では、第1フラグ11=OK、第2フラグ12=+1とする。つまり、第1ノード10は、自ノード10の書き換えが完了したことで、第1フラグ11に1を設定し、第2フラグ12のカウント値をカウントアップする。その後、ステップS37では、自ノード10へのベリファイ要求コマンドに対する応答(ACK)を書換ツール400へ送信する。
ステップS38では、第2フラグ設定完了通知を書換ツール400へ送信する(個別通知部)。つまり、第1ノード10は、自ノード10で書き換えが完了している場合、制御プログラムの書き換えが完了していることを書換ツール400に通知する。また、第1ノード10は、他のノード20、30の夫々から、ベリファイ要求コマンドに対するACKを取得するたびに、書き換えが完了していることを書換ツール400に通知する。つまり、第1ノード10は、第2フラグ12の設定が完了するたびに、すなわち第2フラグ12にカウント値をカウントアップするたびに、完了の通知を書換ツール400に送信する。なお、他のノード20、30の夫々から送信された、ベリファイ要求コマンドに対するACKは、制御プログラムの書き換えが完了していることを示す情報であり、上記完了情報に相当する。
このように、第1ノード10は、各ノード10〜30での書き換えが完了するたびに、書換ツール400に対して完了の通知を行うため、書換ツール400に書き換え状況を把握させることができる。つまり、書換ツール400は、第1ノード10からの完了の通知によって、各ノード10〜30における書き換えの進捗を把握でき、書き換え完了ノードと未完了ノードとを容易に切り分けることができる。
ステップS39では、全書き換え対象ノード数=第2フラグの値であるか否かを判定する。第1ノード10は、ステップS32と同様に、第2フラグ12のカウント値が3であるか否かを判定する。そして、第1ノード10は、第2フラグ12のカウント値が3であると判定した場合にステップS40へ進み、第2フラグ12のカウント値が3であると判定しなかった場合にステップS31へ戻る。
ステップS40では、電源オフであるか否かを判定する。第1ノード10は、電源オフであると判定しなかった場合はステップS31へ戻り、電源オフであると判定した場合は図7の処理を終了する。
ここで、図8のフローチャートを用いて、ステップS42以降の処理に関して説明する。
ステップS42では、他ノード20、30への消去要求コマンドを受信したか否かを判定する。第1ノード10は、消去要求コマンドを受信した場合、消去要求コマンドと共に受信したID情報に基づいて、他ノード20、30への消去要求コマンドを受信したか否かを判定する。第1ノード10は、他ノード20、30への消去要求コマンドを受信したと判定した場合、ステップS43へ進み、他ノード20、30への消去要求コマンドを受信したと判定してない場合、ステップS42を繰り返す。
ステップS43では、第2フラグ12=全書き換え対象ノード数であるか否かを判定する。第1ノード10は、第2フラグ12のカウント値が3であると判定した場合にステップS44へ進み、第2フラグ12のカウント値が3であると判定しなかった場合にステップS47へ進む。上記のように、第2フラグ12のカウント値は、図7の処理がスタートした時点で3となっている。よって、第1ノード10は、YES判定の場合、最初に他のノード20、30が書き換えを行うとみなすことができ、NO判定の場合、2番目以降に他のノード20、30が書き換えを行うとみなすことができる。
ステップS44では、第1フラグ11=OK、第2フラグ12=0とする。つまり、第1ノード10は、消去要求コマンドを受信して、最初に他ノード20、30が書き換えを行うとみなした場合、第2フラグ12のカウント値をリセットする。このように、第1ノード10は、複数のノード10〜30のいずれかに対する消去要求コマンドを最初に受信したときに、カウント値を初期化する。よって、第1ノード10は、消去要求コマンドを最初に受信したときにカウント値を初期化しておくことで、全ノード10〜30における書き換えの進捗を確認できる。しかしながら、第1ノード10は、受信した消去要求コマンドが自ノード10に対する要求ではないため、第1フラグ11をリセットしない。
一方、ステップS47では、第1フラグ11=OK、第2フラグ12=Nとする。第1ノード10は、消去要求コマンドを受信して、2番目以降に他ノード20、30が書き換えを行うとみなした場合、第1フラグ11にリセットすることなく、第2フラグ12のカウント値を前回値に保持する。つまり、第1ノード10は、2番目以降に他ノード20、30が書き換えを行う場合、第1フラグ11及び第2フラグ12を更新しない。
ステップS45では、他ノードの書き換えが完了したか否かを判定する。第1ノード10は、他ノード20、30の書き換えが完了したと判定した場合、ステップS46へ進み、他ノード20、30の書き換えが完了したと判定してない場合、ステップS45を繰り返す。
つまり、第1ノード10は、第2ノード20への消去要求コマンドを受信しており、且つ、第2ノード20からベリファイ要求コマンドに対するACKを受信した場合、第2ノード20での書き換えが完了したと判定して、ステップS46へ進む。また、第1ノード10は、第2ノード20への消去要求コマンドを受信しており、且つ、第2ノード20からベリファイ要求コマンドに対するACKを受信してない場合、第2ノード20での書き換えが完了したと判定せずに、ステップS45を繰り返す。
同様に、第1ノード10は、第3ノード30への消去要求コマンドを受信しており、且つ、第3ノード30からベリファイ要求コマンドに対するACKを受信した場合、第3ノード30での書き換えが完了したと判定して、ステップS46へ進む。また、第1ノード10は、第3ノード30への消去要求コマンドを受信しており、且つ、第3ノード30からベリファイ要求コマンドに対するACKを受信してない場合、第3ノード30での書き換えが完了したとせずに、ステップS45を繰り返す。
ステップS46では、第1フラグ11=OK、第2フラグ12=N+1とする。第1ノード10は、他ノード20、30での書き換えが完了したと判定した場合、第2フラグ12のカウント値をカウントアップする。つまり、第1ノード10は、第2ノード20での書き換えが完了したと判定した場合、及び第3ノード30での書き換えが完了したと判定した場合、第2フラグ12のカウント値をカウントアップする。しかしながら、第1ノード10は、自ノード10における書き換えではないため、第1フラグ11を更新しない。
次に、図9を用いて、第2ノード20における制御プログラムを書き換える際の処理動作に関して説明する。第2ノード20は、例えば、イグニッションスイッチがオンになると、図9のフローチャートを実行する。図9は、第2ノード20におけるリプロモード時の処理動作を示す。図9に示す処理動作を行う場合、第2ノード20の実行モードは、リプログモードである。詳述すると、第2ノード20は、例えばリプログモード移行後に、消去要求コマンドが送信される。なお、第2ノード20は、この処理動作中に第1フラグ21の設定を行う。また、本実施形態では、図9の処理がスタートした時点で、第1フラグ21に1が設定されていることを前提とする。
ステップS50では、電源オン及びリセット解除する。第2ノード20は、自ノード20の電源をオンすると共に、自ノード20のリセットを解除する。
ステップS51では、自ノード20への消去要求コマンドを受信したか否かを判定する。第2ノード20は、消去要求コマンドを受信した場合、消去要求コマンドと共に受信したID情報に基づいて、自ノード20への消去要求コマンドを受信したか否かを判定する。第2ノード20は、自ノード20への消去要求コマンドを受信したと判定した場合、ステップS52へ進み、自ノード20への消去要求コマンドを受信したと判定してない場合、ステップS51を繰り返す。
ステップS52では、第1フラグ21=NGとする。つまり、第2ノード20は、消去要求コマンドを受信して、自ノード20が書き換えを行うとみなした場合、第1フラグ21をリセット、すなわち第1フラグ21に0を設定する。
なお、第2ノード20は、図10に示すように、消去要求コマンドを受信すると、第1フラグ21をリセットすると共に、制御プログラムを消去し、且つ書換ツール400にACKを送信する。その後、第2ノード20は、図10に示すように、書換ツール400から書き換え要求コマンドを受信するとACKを返信し、書換ツール400から新たな制御プログラムのデータと受信する。このデータは、制御プログラムの書き換え用データである。
そして、ステップS53では、自ノード書き換えを行う。第2ノード20は、受信した新たな制御プログラムのデータをROM14の書き換え領域に書き込む(書き換え処理)。
ステップS54では、自ノードの書き換えが完了したか否かを判定する。第2ノード20は、自ノード20の書き換えが完了したと判定した場合はステップS55へ進み、自ノード20の書き換えが完了したと判定しなかった場合はステップS54を繰り返す。つまり、第2ノード20は、新たな制御プログラムの書き込みが完了するまでステップS54の判定を繰り返す。なお、第2ノード20は、図10に示すように、書き換え処理が終了すると書換ツール400にACKを送信すると共に、書換ツール400からベリファイ要求コマンドを受信する。
そして、ステップS55では、第1フラグ21=OKとする。つまり、第2ノード20は、自ノード10の書き換えが完了したことで、第1フラグ21に1を設定する。その後、ステップS56では、自ノード20へのベリファイ要求コマンドに対する応答(ACK)を書換ツール400へ送信する。
ステップS57では、電源オフであるか否かを判定する。第2ノード20は、電源オフであると判定しなかった場合はステップS50へ戻り、電源オフであると判定した場合は図9の処理を終了する。なお、第3ノード30の処理動作は、上記し図10にも示すように、第2ノード20と同様である。
以上のように、第1ノード10は、全ノード10〜30が、制御プログラムの書き換えが完了しているか否かを判定する。つまり、第1ノード10は、自ノード10だけではなく、他ノード20、30が制御プログラムの書き換えが完了しているか否かを判定する。
そして、第1ノード10は、全ノード10〜30が制御プログラムの書き換えを完了していると判定した場合、実行モードを制御モードに決定する。よって、第1ノード10は、全ノード10〜30が新プログラムの場合、又は新プログラムの場合に、自ノード10の実行モードを制御モードに決定する。
一方、第1ノード10は、全ノード10〜30が制御プログラムの書き換えを完了していると判定していない場合、すなわち、少なくとも一つのノードが制御プログラムの書き換えを完了していない場合、実行モードをリプログモードに決定する。よって、第1ノード10は、複数のノード10〜30において新プログラムのノードと旧プログラムのノードとが混在している場合に、自ノード10の実行モードをリプログモードに決定する。このため、第1ノード10は、新プログラムのノードと旧プログラムのノードが混在した車載制御システム100で、制御系統における制御が実行されることを抑制できる。
また、第1ノード10は、車載制御システム100における全ノード10〜30で書き換えが完了しているか否かを判定できるため、車載制御システム100の単位で全ノード10〜30の書き換え完了を担保できるとも言える。さらに、車載制御システム100は、第1ノード10を含んでいるため、新プログラムのノードと旧プログラムのノードが混在した状態で、制御系統における制御が実行されることを抑制できると言える。
なお、車載制御システム100は、第1ノード10を含む四つ以上のノードを備えたものであってもよいし、第1ノード10を含む二つのノードを備えたものであってもよい。つまり、車載制御システム100は、第1ノード10を含む複数のノードを備えたものであればよい。
以上、本発明の好ましい実施形態について説明した。しかしながら、本発明は、上記実施形態に何ら制限されることはなく、本発明の趣旨を逸脱しない範囲において、種々の変形が可能である。以下に、本発明のその他の形態として、第2実施形態〜第7実施形態に関して説明する。上記実施形態及び下記実施形態の夫々は、単独で実施することも可能であるが、適宜組み合わせて実施することも可能である。本発明は、実施形態において示された組み合わせに限定されることなく、種々の組み合わせによって実施可能である。
(第2実施形態)
図12を用いて、第2実施形態の第1ノード10に関して説明する。ここでは、主に、第2実施形態における第1実施形態と異なる箇所に関して説明する。なお、本実施形態では、便宜的に、上記実施形態と同じ符号を用いる。
第2実施形態の第1ノード10は、第1フラグ11の値と、第2フラグ12のカウント値の両方を確認して、全ノード10〜30で書き換えが完了しているか否かを判定する点が上記実施形態と異なる。
第2実施形態の第1ノード10は、例えば、イグニッションスイッチがオンになると、図12のフローチャートを実行する。
ステップS11では、第1フラグ11=OKであるか否かを判定する(判定部、個別判定部)。第1ノード10は、第1フラグ11の記憶内容を確認して、第1フラグ11=OKであるか否か、すなわち、自ノード10における書き換えが完了しているか否かを判定する。第1ノード10は、第1フラグ11が1の場合に第1フラグ11=OK、すなわち、書き換えが完了しているとみなしてステップS12aへ進む。また、第1ノード10は、第1フラグ11が0の場合に第1フラグ11=OKではない、すなわち、書き換えが完了していないとみなしてステップS14へ進む。
ステップS12aでは、第2フラグ12=他書き換え対象ノード数であるか否かを判定する。第1ノード10は、第2フラグ12の記憶内容を確認して、第2フラグ12=他書き換え対象ノード数であるか否かを判定する。ここで、他書き換え対象ノードとは、車載制御システムに含まれている複数のノードのうち第1ノード10を除く、第2ノード20、第3ノード30である。よって、全書き換え対象ノード数は2である。
第1ノード10は、第2フラグ12のカウント値が2である場合に、第2フラグ=他書き換え対象ノード数であり、他書き換え対象ノード20、30において書き換えが完了しているとみなしてステップS13へ進む。このように、第1ノード10は、第2フラグ12のカウント値が他のノード20、30の数と一致し、且つ、第1フラグ11の値が1の場合に、全ノード10〜30が書き換えを完了していると判定する(判定部、統括判定部)。
一方、第1ノード10は、第2フラグ12のカウント値が2でない場合に、第2フラグ=他書き換え対象ノード数ではない、すなわち、他書き換え対象ノード20、30のうち少なくとも一つで書き換えが完了していないとみなしてステップS14へ進む。
このように、第2実施形態の第1ノード10は、上記実施形態と同様の効果を奏することができる。また、第2実施形態の第1ノード10は、第1フラグ11の値で自ノード10の書き換えが完了しているか否か判定できる。このため、第1ノード10は、他ノード20、30の書き換えが完了したことさえカウントしておけば、自ノード10の書き換えが完了したことをカウントする必要がない。そして、第1ノード10は、第1フラグ11と第2フラグ12を確認することで、全ノード10〜30で書き換えが完了しているか否かを判定できる。
(第3実施形態)
図13を用いて、第3実施形態の第1ノード10に関して説明する。ここでは、主に、第3実施形態における第1、2実施形態と異なる箇所に関して説明する。なお、本実施形態では、便宜的に、上記実施形態と同じ符号を用いる。
第3実施形態の第1ノード10は、第1フラグ11の値と、第2フラグ12の情報の両方を確認して、全ノード10〜30で書き換えが完了しているか否かを判定する点が上記実施形態と異なる。また、第3実施形態の第1ノード10は、他ノード20、30の夫々に対応して、書き換えが完了しているか否かの情報を記憶している。以下においては、第2ノード20に対応した情報を第2ノード情報、第3ノード30に対応した情報を第3ノード情報と称する。
そして、第3実施形態の第1ノード10は、第2ノード20での書き換えが完了したと判定した場合、第2ノード情報を書き換え完了に更新する。同様に、第3実施形態の第1ノード10は、第3ノード30での書き換えが完了したと判定した場合、第3ノード情報を書き換え完了に更新する。
そして、第3実施形態の第1ノード10は、例えば、イグニッションスイッチがオンになると、図13のフローチャートを実行する。
ステップS12bでは、第2ノード情報と第3ノード情報とを確認して、他書き換え対象ノードの書き換えが完了しているか否かを判定する。なお、他書き換え対象ノードは、第2実施形態と同様、第2ノード20、第3ノード30である。
第1ノード10は、第2ノード情報と第3ノード情報の両方が書き換え完了を示している場合に、他書き換え対象ノード20、30において書き換えが完了しているとみなしてステップS13へ進む。このように、第1ノード10は、第2ノード情報と第3ノード情報の両方が書き換え完了を示しており、且つ、第1フラグ11の値が1の場合に、全ノード10〜30が書き換えを完了していると判定する(判定部、統括判定部)。
一方、第1ノード10は、第2ノード情報と第3ノード情報の少なくとも一つが書き換え完了を示していない場合に、他書き換え対象ノード20、30のうち少なくとも一つで書き換えが完了していないとみなしてステップS14へ進む。この第3実施形態の第1ノード10は、上記実施形態と同様の効果を奏することができる。また、各ノード10〜30に対応した第1ノード情報〜第3ノード情報を持つことで、ノード10〜30夫々の書き換え状況を個別に管理することができる。
(第4実施形態)
図14、図15を用いて、第4実施形態の第1ノード10に関して説明する。ここでは、主に、第4実施形態における第1〜3実施形態と異なる箇所に関して説明する。なお、本実施形態では、便宜的に、上記実施形態と同じ符号を用いることもある。
第4実施形態の第1ノード10は、自ノード10が接続されている第1通信バス210とは異なる第2通信バス220に接続されている第3ノード30と共に、車載制御システム110に含まれている点が上記実施形態と異なる。
車載制御システム110に含まれている複数のノード10〜30は、異なる通信バス210、220に接続されたノードを含んでいる。つまり、第1ノード10と第2ノード20は、第1通信バス210に接続されている。一方、第3ノード30は、第2通信バス220に接続されている。なお、第3ノード30は、第1ノード10や第2ノード20とは異なるドメインの第2通信バス220に接続していると言える。
この第1通信バス210と第2通信バス220は、中継ノード300に接続されている。そして、第1ノード10と第3ノード30や、第2ノード20と第3ノード30は、中継ノード300を介して通信可能に構成されている。このように、車載制御システム110は、異なる通信バス210、220に接続されたノードどうしが、中継ノード300を介して通信可能に構成されている。
なお、中継ノード300は、中継ID情報310を記憶している。中継ID情報は、各ノード10〜20を示すID情報である。中継ノード300を介した通信では、例えば、図15に示すような中継フレーム情報が用いられる。
従って、第1ノード10は、第1通信バス210を介して第2ノード20からの完了情報を取得可能であるだけでなく、中継ノード300を介して第3ノード30からの完了情報を取得可能に構成されている。つまり、第1ノード10は、中継ID情報に従い中継ノード300から送信された、他ノードへの各要求コマンドとACKを受信し、第2フラグ12の設定を実施する。なお、第1ノード10は、第1実施形態や第2実施形態や第3実施形態で説明したいずれかの方法で、全ノード10〜30の書き換え完了を判定する。また、要求コマンドは、消去要求コマンド、書き換え要求コマンド、ベリファイ要求コマンドなどである。
この第4実施形態の第1ノード10は、上記実施形態と同様の効果を奏することができる。つまり、第4実施形態の第1ノード10は、車載制御システム110に含まれている第3ノード30が、自ノード10とは異なる第2通信バス220に接続されていても、上記実施形態と同様の効果を奏することができる。
(第5実施形態)
図16、図17を用いて、第5実施形態の第1ノード10aに関して説明する。ここでは、主に、第5実施形態における第1〜4実施形態と異なる箇所に関して説明する。なお、本実施形態では、便宜的に、上記実施形態と同じ符号を用いることもある。
第1ノード10aは、車載制御システム120に含まれていない点が第1ノード10と異なる。また、第1ノード10aは、車載制御システム120に含まれている複数のノード20〜40の実行モードを決定する点が第1ノード10と異なる。
車載制御システム120は、通信バス200に接続された第2ノード20〜第4ノード40を備えて構成されている。第4ノード40は、第2ノード20や第3ノード30と同様であり、自ノード40に第1フラグ41を備えて構成されている。
第1ノード10aは、通信バス200に接続されているものの、車載制御システム120に含まれていない。第1ノード10aは、第1ノード10と同様に、他ノード20〜40から送信された完了情報を取得可能に構成されている。そして、第1ノード10aは、他ノード20〜40での書き換えが完了したか否かを判定するために、完了情報を取得するたびに第2フラグ12のカウント値をカウントアップすると共に、車載制御システム120に含まれているノードの数を記憶している。本実施形態におけるノードの数は3である。なお、第1ノード10aは、第1ノード10と異なり、第1フラグ11を備えていなくてもよい。
第1ノード10aは、例えば、イグニッションスイッチがオンになると、図17のフローチャートを実行する。
ステップS12cでは、全書き換え対象ノードにおける書き換えが完了しているか否かを判定する(判定部)。ここでの書き換え対象ノードは、車載制御システム120に含まれている第2ノード20〜第4ノード40の3つである。第1ノード10aは、第2フラグ12のカウント値を確認して、全書き換え対象ノードにおける書き換えが完了しているか否かを判定する。このように、第1ノード10aは、車載制御システム120に含まれている複数のノード20〜40の夫々から取得した完了情報に基づいて、複数のノード20〜40の全てが書き換えを完了しているか否かを判定する。
第1ノード10は、第2フラグ12のカウント値が3であると判定した場合に、全書き換え対象ノード20〜40において書き換えが完了しているとみなしてステップS13aへ進む。一方、第1ノード10は、第2フラグ12のカウント値が3であると判定してない場合に、全書き換え対象ノード20〜40のうち少なくとも一つで書き換えが完了していないとみなしてステップS14aへ進む。
なお、第1ノード10は、第3実施形態のように、他ノード20〜40の夫々に対応した書き換えが完了しているか否かの情報を記憶し、その情報を確認して、書き換え対象ノードの書き換えが完了しているか否かを判定してもよい。
ステップS13aでは、制御プログラム実行モードに決定する。このとき、第1ノード10aは、車載制御システム120に含まれている複数のノード20〜40の実行モードを制御モードに決定する。つまり、第1ノード10aは、自ノード10aが含まれていない車載制御システム120における複数のノード20〜40の実行モードを制御モードに決定する。よって、第1ノード10aは、複数のノード20〜40の少なくとも一つに対して、実行モードを制御モードにするように指示する。このように、第1ノード10aは、車載制御システム120に含まれている複数のノード20〜40の全てで書き換えが完了していると判定した場合、複数のノード20〜40の実行モードを制御モードに決定すると言える。
ステップS14aでは、リプロプログラム実行モードに決定する。このとき、第1ノード10aは、車載制御システム120に含まれている複数のノード20〜40の実行モードをリプログモードに決定する。つまり、第1ノード10aは、自ノード10aが含まれていない車載制御システム120における複数のノード20〜40の実行モードをリプログモードに決定する。よって、第1ノード10aは、複数のノード20〜40の少なくとも一つに対して、実行モードをリプログモードにするように指示する。このように、第1ノード10aは、車載制御システム120に含まれている複数のノード20〜40の少なくとも一つで書き換えが完了していないと判定した場合、複数のノード20〜40の実行モードをリプログモードに決定すると言える。
このように、第1ノード10aは、車載制御システム120に属していなくても第1ノード10と同様の効果を奏することができる。また、第1ノード10a及び車載制御システム120を含んでいる車載ネットワークは、車載制御システム120に属していない第1ノード10aが車載制御システム120の実行モードを決定できるため、設計自由度を向上できる。
(第6実施形態)
第6実施形態の車載ネットワークに関して説明する。ここでは、主に、第6実施形態における第1〜5実施形態と異なる箇所に関して説明する。なお、本実施形態では、便宜的に、上記実施形態と同じ符号を用いることもある。
第6実施形態の車載ネットワークは、第1実施形態と同様に、複数のノード10〜30を含む車載制御システム100を備えて構成されている。しかしながら、第6実施形態の車載ネットワークは、主に、第2ノード20と第3ノード30が第1ノード10と同様に書き換え完了を判定する点、及び、全ノード10〜30が書換ツール400に書き換え完了の通知を行う点が第1実施形態と異なる。
複数のノード10〜30の夫々は、全ノード10〜30で書き換えが完了しているか否かを判定する(判定部)。つまり、第2ノード20と第3ノード30は、第1ノード10と同様に、全ノード10〜30で書き換えが完了しているか否かを判定する。
そして、複数のノード10〜30の夫々は、全ノード10〜30が書き換えを完了していると判定した場合に実行モードを制御モードに決定する(決定部)。つまり、第2ノード20と第3ノード30は、第1ノード10と同様に、全ノード10〜30が書き換えを完了していると判定した場合、自ノードの実行モードを制御モードに決定する。
また、複数のノード10〜30の夫々は、全ノード10〜30が書き換えを完了していると判定していない場合、すなわち、少なくとも一つのノードが書き換えを完了していないと判定した場合、実行モードをリプログモードに決定する(決定部)。つまり、第2ノード20と第3ノード30は、第1ノード10と同様に、少なくとも一つのノードが書き換えを完了していないと判定した場合、自ノードの実行モードをリプログモードに決定する。
さらに、複数のノード10〜30の夫々は、実行モードを制御モードに決定した場合、全てのノード10〜30で書き換えが完了していることを、書換ツール400に対して通知する(完了通知部)。つまり、第2ノード20と第3ノード30は、第1ノード10と同様に、自ノードで書き換えが完了している場合、及び、他のノードの夫々からベリファイ要求コマンドに対するACKを取得するたびに、書き換えが完了していることを書換ツール400に通知する。これによって、書換ツール400は、全ノード10〜30からの第2フラグ設定完了通知が受信できたかを確認することで、逐次、正規のノードが接続されているか否かを確認することが可能である。
なお、各ノード10〜30は、第1実施形態や第2実施形態や第3実施形態で説明したいずれかの方法で、全ノード10〜30の書き換え完了を判定してもよい。また、車載ネットワークは、第4実施形態と同様に、中継ノード300や複数のノード10〜30を含む車載制御システム110を備えて構成されていてもよい。
各ノード10〜30は、上記第1ノード10と同様の効果を奏することができる。よって、第6実施形態の車載ネットワークは、新プログラムのノードと旧プログラムのノードが混在した状態で、制御系統における制御が実行されることを抑制できる。
(第7実施形態)
図18を用いて、第7実施形態の車載ネットワークに関して説明する。ここでは、主に、第7実施形態における第1〜6実施形態と異なる箇所に関して説明する。なお、本実施形態では、便宜的に、上記実施形態と同じ符号を用いることもある。
本実施形態では、複数の車載制御システム100、130を含む車載ネットワークを採用する。よって、第7実施形態の車載ネットワークは、第1車載制御システム100と第2車載制御システム130とを備えている点が上記実施形態と異なる。本実施形態では、複数の車載制御システムを区別するために、第1車載制御システム100と第2車載制御システム130と称する。なお、第1車載制御システム100は、上記実施形態の車載制御システム100と同様である。また、第1通信バス210は、上記実施形態の通信バス200と同様である。本発明は、これに限定されず、三つ以上の車載制御システムを含む車載ネットワークであっても採用できる。
第2車載制御システム130は、第2通信バス220に接続された第5ノード50、第6ノード60、第7ノード70を備えて構成されている。よって、第5ノード50、第6ノード60、第7ノード70は、同じ車載制御システム130に含まれたノードと言える。各ノード50〜70は、第1ノード10〜第3ノード30と同様に、実行モードとして制御モードとリプログモードを有している。第2車載制御システム130は、各ノード50〜70が制御モード時に連携して制御を行う。
第5ノード50は、第1ノード10と同様に、第1フラグ51と第2フラグ52とを備えて構成されている。また、第5ノード50は、第2車載制御システム130におけるマスタノードと言える。
第5ノード50は、第2車載制御システム130における全ノード50〜70で書き換えが完了しているか否かを判定する(判定部)。そして、第5ノード50は、第2車載制御システム130における全ノード50〜70が書き換えを完了していると判定した場合に実行モードを制御モードに決定する(決定部)。また、第5ノード50は、第2車載制御システム130における全ノード50〜70が書き換えを完了していると判定していない場合、すなわち、少なくとも一つのノードが書き換えを完了していないと判定した場合、実行モードをリプログモードに決定する(決定部)。
第6ノード60は、第2ノード20と同様に、第1フラグ61を備えて構成されている。また、第7ノード70は、第3ノード30と同様に、第1フラグ71を備えて構成されている。この第6ノード60と第7ノード70は、第2車載制御システム130におけるスレーブノードと言える。
第1通信バス210と第2通信バス220は、第4実施形態と同様に、中継ノード300に接続されている。よって、第1車載制御システム100と第2車載制御システム130は、中継ノード300を介して、通信可能に構成されている。
第1ノード10は、上記実施形態と同様の効果を奏することができる。また、第5ノード50は、第1ノード10と同様の効果を奏することができる。さらに、第7実施形態の車載ネットワークは、新プログラムのノードと旧プログラムのノードが混在した状態で、制御系統における制御が実行されることを抑制できる。同様に、第7実施形態の車載ネットワークは、新プログラムのノードと旧プログラムのノードが混在した状態で、制御系統における制御が実行されることを抑制できる。
100〜130…車載制御システム、200…通信バス、210…第1通信バス、220…第2通信バス、300…中継ノード、310…中継ID情報、400…書換ツール、10〜70、10a…第1ノード〜第7ノード、11…第1フラグ、12…第2フラグ、21…第1フラグ、31…第1フラグ、13…CPU、14…ROM、15…RAM、16…データ送受信部

Claims (5)

  1. 制御プログラムを実行して制御を行う制御モードと、前記制御プログラムに基づいた制御を行うことなくリプロプログラムを実行して前記制御プログラムの書き換えを行うリプログモードとの実行モードを有した複数のノード(10〜40、10a)を含み、各ノードが前記制御モード時に連携して制御を行う車載制御システム(100、110、120、130)における、前記ノードの前記実行モードを決定する車載制御装置であり、
    前記車載制御システムに含まれている複数の前記ノードの一つである前記車載制御装置であって、
    複数の前記ノードの全てが、前記制御プログラムの書き換えが完了しているか否かを判定する判定部(S11、S12、S12a〜S12c)と、
    全ての前記ノードが前記制御プログラムの書き換えを完了していると前記判定部が判定した場合、前記実行モードを前記制御モードに決定し、全ての前記ノードが前記制御プログラムの書き換えを完了していると前記判定部が判定していない場合、前記実行モードを前記リプログモードに決定する決定部(S13、S14、S13a、S14a)と、を備え
    前記判定部(S11、S12、S12a、S12b)は、自ノードで前記制御プログラムの書き換えが完了していること、及び他の前記ノードの夫々から取得した前記制御プログラムの書き換えが完了していることを示す完了情報とに基づいて、複数の前記ノードの全てが、前記制御プログラムの書き換えが完了しているか否かを判定し、
    書換装置から前記制御プログラムの書き換え用データを受信して、前記制御プログラムの書き換えを行うものであり
    自ノードで前記制御プログラムの書き換えが完了している場合、及び他の前記ノードの夫々から前記完了情報を取得するたびに、前記制御プログラムの書き換えが完了していることを前記書換装置に通知する個別通知部(S38)を備えている車載制御装置。
  2. 前記判定部(S12)は、自ノードで前記制御プログラムの書き換えが完了したこと及び前記完了情報を取得したことをカウントしたカウント値と、複数の前記ノードの数とが一致している場合に、複数の前記ノードの全てが、前記制御プログラムの書き換えを完了していると判定する請求項に記載の車載制御装置。
  3. 前記判定部は、
    前記車載制御装置における前記制御プログラムの書き換えが完了している否かを判定する個別判定部(S11)と、
    他の前記ノードの夫々から取得した前記制御プログラムの書き換えが完了したことを示す完了情報をカウントしたカウント値と他の前記ノードの数とが一致し、且つ、前記個別判定部で前記制御プログラムの書き換えが完了していると判定されている場合に、複数の前記ノードの全てが、前記制御プログラムの書き換えを完了していると判定する統括判定部(S12a)と、を含む請求項に記載の車載制御装置。
  4. 書換装置から前記制御プログラムの消去を要求する消去要求コマンドを受信した後に、前記制御プログラムの書き換え用データを受信して、前記制御プログラムの書き換えを行うものであり、
    複数の前記ノードのいずれかに対する前記消去要求コマンドを最初に受信したときに、前記カウント値を初期化する請求項又はに記載の車載制御装置。
  5. 前記車載制御システム(110)に含まれている複数の前記ノードは、異なる通信バスに接続された前記ノードを含んでおり、異なる前記通信バスに接続された前記ノードどうしが中継ノード(300)を介して通信可能に構成されており、
    前記中継ノードを介して前記完了情報を取得可能に構成されている請求項乃至のいずれか一項に記載の車載制御装置。
JP2016028329A 2016-02-17 2016-02-17 車載制御装置、及び車載制御装置を含む車載ネットワーク Active JP6528700B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016028329A JP6528700B2 (ja) 2016-02-17 2016-02-17 車載制御装置、及び車載制御装置を含む車載ネットワーク
DE102017202282.5A DE102017202282B4 (de) 2016-02-17 2017-02-14 Fahrzeugeigene steuerungsvorrichtung und fahrzeugeigenes netzwerk mit der fahrzeugeigenen steuerungsvorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016028329A JP6528700B2 (ja) 2016-02-17 2016-02-17 車載制御装置、及び車載制御装置を含む車載ネットワーク

Publications (2)

Publication Number Publication Date
JP2017146800A JP2017146800A (ja) 2017-08-24
JP6528700B2 true JP6528700B2 (ja) 2019-06-12

Family

ID=59410057

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016028329A Active JP6528700B2 (ja) 2016-02-17 2016-02-17 車載制御装置、及び車載制御装置を含む車載ネットワーク

Country Status (2)

Country Link
JP (1) JP6528700B2 (ja)
DE (1) DE102017202282B4 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021165999A (ja) * 2020-04-08 2021-10-14 株式会社オートネットワーク技術研究所 車載装置、情報処理方法及びコンピュータプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856370B2 (en) 2004-11-05 2014-10-07 International Business Machines Corporation Concurrent flashing of data processing units in hierarchical networks
JP4743182B2 (ja) 2006-12-07 2011-08-10 株式会社デンソー マイクロコンピュータ
JP5111486B2 (ja) * 2009-12-24 2013-01-09 本田技研工業株式会社 制御用プログラムの更新装置および更新方法
JP5821640B2 (ja) 2012-01-06 2015-11-24 株式会社リコー 情報処理装置
JP2013223094A (ja) * 2012-04-16 2013-10-28 Toshiba Corp 通信システム、管理サーバ装置及びプログラム更新制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021165999A (ja) * 2020-04-08 2021-10-14 株式会社オートネットワーク技術研究所 車載装置、情報処理方法及びコンピュータプログラム
WO2021205825A1 (ja) * 2020-04-08 2021-10-14 株式会社オートネットワーク技術研究所 車載装置、情報処理方法及びコンピュータプログラム
JP7415756B2 (ja) 2020-04-08 2024-01-17 株式会社オートネットワーク技術研究所 車載装置、情報処理方法及びコンピュータプログラム

Also Published As

Publication number Publication date
DE102017202282A1 (de) 2017-08-17
JP2017146800A (ja) 2017-08-24
DE102017202282B4 (de) 2023-12-07

Similar Documents

Publication Publication Date Title
US10552143B2 (en) Relay device, program update system, and program update method
JP6665728B2 (ja) 車載更新装置、車載更新システム及び通信装置の更新方法
CN113873498B (zh) 服务器、管理方法、非临时存储介质及软件更新装置、中心、空中下载主机
JP7035635B2 (ja) 車両制御システム及び車両制御システムにおけるソフトウェアの整合性確認方法
WO2019216330A1 (ja) 車載更新装置、更新処理方法及び更新処理プログラム
CN104580351A (zh) 从远程装置编程车辆模块以及相关方法和系统
JP6147792B2 (ja) プログラム書換装置及びプログラム書換方法
JP7092241B2 (ja) 保存装置、通信システム、保存方法及びコンピュータプログラム
JP6060782B2 (ja) 中継装置
WO2018230084A1 (ja) 更新制御装置、制御方法、およびコンピュータプログラム
JP2019159399A5 (ja)
JP2023168511A (ja) 制御装置、方法、プログラム、および車両
US12050903B2 (en) OTA master, system, method, non-transitory storage medium, and vehicle
JP2006221274A (ja) 車両用電子制御装置および制御プログラムの書換え方法
JP2019109745A (ja) 自動車用電子制御装置
JP6528700B2 (ja) 車載制御装置、及び車載制御装置を含む車載ネットワーク
CN114385202A (zh) 服务器、软件更新系统、分发方法及非临时存储介质
CN107102849A (zh) 用于周期性点火开关断开的文件替换的方法和设备
JP5630485B2 (ja) 車載通信システム
JP6935694B2 (ja) 電子制御装置
WO2019221058A1 (ja) 車載中継装置、通信システム、バス決定方法及びコンピュータプログラム
US20220405083A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
US20230032451A1 (en) Center, method, and non-transitory storage medium
CN115509565A (zh) Ota管理器、系统、方法、非暂时性存储介质以及车辆
JP7211189B2 (ja) 更新処理システム及び更新処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190327

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190429

R151 Written notification of patent or utility model registration

Ref document number: 6528700

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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