(57)【特許請求の範囲】
【請求項１】
車両に備えられた複数の制御装置（１００、２００）間で通信を行う通信システム（１０）であって、
送受信されるメッセージの種類と、送信の際に当該メッセージに付される識別ＩＤと、の対応関係を示す互いに同一のリスト（１１１、２１１）が、それぞれの前記制御装置に記憶されており、
それぞれの前記制御装置は、
前記メッセージを送信する際には、前記リストを参照することにより、当該メッセージの種類に対応した前記識別ＩＤを付した状態で前記メッセージを送信し、
前記メッセージを受信する際には、受信された前記メッセージに付されている前記識別ＩＤに基づいて、当該メッセージの種類を特定するように構成されており、
予め定められたトリガー条件が満たされたときには、
送受信される前記メッセージの種類と、送信の際に当該メッセージに付される識別ＩＤと、の対応関係が変更されるよう、それぞれの前記制御装置に記憶されている前記リストが更新され、
前記トリガー条件が満たされたか否かは、前記メッセージに含まれるデータに基づいて判断され、
前記リストには、前記メッセージの種類の数だけ通信レコードが記録されており、
それぞれの前記通信レコードには、
前記メッセージの種類を示すメッセージラベルと、当該メッセージラベルに対応する識別ＩＤと、前記トリガー条件に関する前記データの有無を示すトリガーフラグと、が含まれることを特徴とする通信システム。
【請求項２】
それぞれの前記制御装置には、
前記メッセージラベルと、当該メッセージラベルが付されたメッセージにおける前記データの並びと、の対応関係（１１２、２１２）が記憶されていることを特徴とする、請求項１に記載の通信システム。
【請求項３】
車両に備えられた複数の制御装置（１００、２００）間で通信を行う通信システム（１０）であって、
送受信されるメッセージの種類と、送信の際に当該メッセージに付される識別ＩＤと、の対応関係を示す互いに同一のリスト（１１１、２１１）が、それぞれの前記制御装置に記憶されており、
それぞれの前記制御装置は、
前記メッセージを送信する際には、前記リストを参照することにより、当該メッセージの種類に対応した前記識別ＩＤを付した状態で前記メッセージを送信し、
前記メッセージを受信する際には、受信された前記メッセージに付されている前記識別ＩＤに基づいて、当該メッセージの種類を特定するように構成されており、
予め定められたトリガー条件が満たされたときには、
送受信される前記メッセージの種類と、送信の際に当該メッセージに付される識別ＩＤと、の対応関係が変更されるよう、それぞれの前記制御装置に記憶されている前記リストが更新され、
前記トリガー条件と、当該トリガー条件が満たされたときにおける前記リストの更新方法と、を示すトリガーテーブル（１１３、２１３）が、それぞれの前記制御装置に記憶されていることを特徴とする通信システム。
【請求項４】
車両に備えられた複数の制御装置（１００、２００）間で通信を行う通信システム（１０）であって、
送受信されるメッセージの種類と、送信の際に当該メッセージに付される識別ＩＤと、の対応関係を示す互いに同一のリスト（１１１、２１１）が、それぞれの前記制御装置に記憶されており、
それぞれの前記制御装置は、
前記メッセージを送信する際には、前記リストを参照することにより、当該メッセージの種類に対応した前記識別ＩＤを付した状態で前記メッセージを送信し、
前記メッセージを受信する際には、受信された前記メッセージに付されている前記識別ＩＤに基づいて、当該メッセージの種類を特定するように構成されており、
予め定められたトリガー条件が満たされたときには、
送受信される前記メッセージの種類と、送信の際に当該メッセージに付される識別ＩＤと、の対応関係が変更されるよう、それぞれの前記制御装置に記憶されている前記リストが更新され、
前記メッセージの種類に対応して付され得る前記識別ＩＤの候補の数は、
当該メッセージの種類が重要度の高いものであれば多く、重要度の低いものであれば少ないことを特徴とする通信システム。
【請求項５】
前記トリガー条件は、前記車両の状態を示す情報の変化に対応して設定されていることを特徴とする、請求項１乃至４のいずれか１項に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に備えられた複数の制御装置間で通信を行う通信システムに関する。
【背景技術】
【０００２】
車両には、例えば内燃機関における燃料の噴射を制御するための制御装置や、エアコンの動作を制御するための制御装置など、複数の制御装置が備えられている。また、それぞれの制御装置の間では互いに通信が行われており、これらの全体で一つの通信システムが構成されている。
【０００３】
制御装置間の通信においては、複数のデータを含んだ「メッセージ」と称される単位ごとに情報が送受信されるのが一般的である。メッセージは、当該メッセージを受信すべき制御装置を特定するための識別情報である識別ＩＤが付された状態で、制御装置から通信バスへと送信される。
【０００４】
識別ＩＤと、当該識別ＩＤが付されたメッセージに含まれるデータの種類（例えば、冷却水温度等）との関係は、予め定められている。このため、メッセージを受信した制御装置は、識別ＩＤに基づいてメッセージからデータを取り出すことができる。
【０００５】
ところで、悪意のある第三者が車両の通信バスに装置を接続し、車両の制御装置間で行われている通信に割り込んできた場合には、車両に関する重要な情報が盗み取られてしまったり、車両の各種動作が変更されてしまったりする可能性がある。
【０００６】
ただし、識別ＩＤと、当該識別ＩＤが付されたメッセージに含まれるデータの種類との対応関係は公開されていないのであるから、第三者にとっては不明なはずである。従って、識別ＩＤの付されたメッセージが第三者に読み取られてしまったとしても、メッセージに含まれるデータの意味を、第三者が認識することはできない。
【０００７】
しかしながら、複数のメッセージが読み取られ、それに基づいた解析が行われた場合には、上記対応関係が第三者に知られてしまい、送受信されている情報の把握等が行われてしまう可能性は否定できない。
【０００８】
そこで、下記特許文献１に記載されている通信システムでは、制御装置間で送受信される複数の通信メッセージの中にダミーメッセージを混在させることにより、第三者によるメッセージの解析や情報の取得を困難なものとしている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−１２１０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ダミーメッセージは有効な情報を持っておらず、本来は制御装置間で送受信する必要がないものである。従って、上記特許文献１に記載されているような情報の隠蔽方法では、通信バスを介して送受信される情報量が無駄に増加してしまうという問題がある。また、ダミーメッセージの送受信のために制御装置で行われる処理の負荷も無駄に増加してしまう。
【００１１】
本発明はこのような課題に鑑みてなされたものであり、その目的は、制御装置間で行われる通信の負荷を増加させることなく、第三者によるメッセージの解析を困難なものとすることのできる通信システムを提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明に係る通信システムは、車両に備えられた複数の制御装置間で通信を行う通信システムであって、送受信されるメッセージの種類と、送信の際に当該メッセージに付される識別ＩＤと、の対応関係を示す互いに同一のリストが、それぞれの制御装置に記憶されており、それぞれの制御装置は、メッセージを送信する際には、リストを参照することにより、当該メッセージの種類に対応した識別ＩＤを付した状態でメッセージを送信し、メッセージを受信する際には、受信されたメッセージに付されている識別ＩＤに基づいて、当該メッセージの種類を特定するように構成されている。また、予め定められたトリガー条件が満たされたときには、送受信されるメッセージの種類と、送信の際に当該メッセージに付される識別ＩＤと、の対応関係が変更されるよう、それぞれの制御装置に記憶されているリストが更新される。トリガー条件が満たされたか否かは、メッセージに含まれるデータに基づいて判断される。リストには、メッセージの種類の数だけ通信レコードが記録されている。それぞれの通信レコードには、メッセージの種類を示すメッセージラベルと、当該メッセージラベルに対応する識別ＩＤと、トリガー条件に関するデータの有無を示すトリガーフラグと、が含まれる。
【００１３】
このような通信システムでは、送受信されるメッセージの種類と識別ＩＤとの対応関係を示すリストが、常に固定されているのではなく、予め定められたトリガー条件が満たされたときに変更される。このため、複数のメッセージが第三者に読み取られてしまったとしても、解析によって上記対応関係が知られてしまう可能性は極めて低い。また、ダミーメッセージのような無駄な情報の送受信が行われることが無いので、通信の負荷が増加してしまうことはない。
【００１４】
尚、リストは制御装置のそれぞれに記憶されており、更新された後においても互いに同一な状態が保たれている。このため、リストの更新が行われても、これにより制御装置間における通信に支障が生じてしまうことはない。
【発明の効果】
【００１５】
本発明によれば、制御装置間で行われる通信の負荷を増加させることなく、第三者によるメッセージの解析を困難なものとすることのできる通信システムが提供される。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係る通信システムの構成を模式的に示す図である。
【図２】制御装置間で送受信されるメッセージに含まれる情報の並びを示す図である。
【図３】メッセージに含まれるデータの種類と、メッセージラベルとの対応関係を示す図である。
【図４】通信レコードリストの例を示す図である。
【図５】トリガーテーブルの例を示す図である。
【図６】送信側の制御装置で実行される処理の流れを示すフローチャートである。
【図７】受信側の制御装置で実行される処理の流れを示すフローチャートである。
【図８】通信レコードリストを更新するために行われる処理の流れを示すフローチャートである。
【図９】制御装置間でメッセージが送受信される際において、メッセージに付される識別ＩＤの変化等の例を具体的に示すタイムチャートである。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照しながら本発明の実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【００１８】
図１に示されるように、本実施形態に係る通信システム１０は、車両（不図示）に搭載された制御装置１００と制御装置２００との間で通信を行うためのシステムとして構成されている。制御装置１００と制御装置２００とは通信バス３００により接続されており、両者の間では所謂ＣＡＮ（登録商標）プロトコルによる通信が行われる。
【００１９】
尚、通信バス３００には他の制御装置が接続されており、当該制御装置と制御装置１００等との間でも通信が行われるのであるが、以下では、制御装置１００と制御装置２００との間で行われる通信についてのみ説明することとする。
【００２０】
制御装置１００の構成について説明する。制御装置１００は、ＣＰＵ、ＲＯＭ、ＲＡＭ等（いずれも不図示）を備えたコンピュータシステムとして構成されており、情報記憶部１１０と通信機能部１２０とを備えている。
【００２１】
情報記憶部１１０は、他の制御装置と通信を行う際に必要となる各種の情報が記憶された部分である。情報記憶部１１０には、通信レコードリスト１１１と、対応関係表１１２と、トリガーテーブル１１３とが記憶されている。それぞれの具体的な内容については後に説明する。
【００２２】
通信機能部１２０は、他の制御装置との通信に必要な処理を実行する部分である。通信機能部１２０は、管理機能部１２１と、送信通知機能部１２２と、受信通知機能部１２３とを有している。
【００２３】
管理機能部１２１は、通信機能部１２０の全体を統括管理するものである。後に説明するように、管理機能部１２１は、情報記憶部１１０に記憶されている通信レコードリスト１１１等の情報に基づいて、他の制御装置との間におけるメッセージの送受信に必要な処理を行う。
【００２４】
送信通知機能部１２２は、制御装置１００において実行されているアプリケーションからの送信処理要求を受け取る部分である。送信通知機能部１２２は、受け取った上記送信処理要求に基づいて、管理機能部１２１に送信要求を送信する。送信要求には、他の制御装置に送信すべきメッセージの内容（データ）が含まれる。
【００２５】
受信通知機能部１２３は、他の制御装置からのメッセージが制御装置１００のメッセージボックス（不図示）に格納されたことを、管理機能部１２１に通知する部分である。メッセージボックスにメッセージが格納されると、メッセージボックスから受信通知機能部１２３に向けて受信処理要求が送信される。受信通知機能部１２３は、メッセージボックスからの受信処理要求を受信すると、メッセージボックスからメッセージを受け取るよう、管理機能部１２１に受信要求を送信する。
【００２６】
制御装置２００の構成のうち少なくとも通信に係る部分の構成は、以上に説明した制御装置１００の構成と同一となっている。このため、制御装置２００の構成についてはその説明を省略する。以下の記載においては、例えば、制御装置２００のうち情報記憶部１１０に対応する部分を「情報記憶部２１０」と表記し、通信機能部１２０に対応する部分を「通信機能部２２０」と表記する。このように、制御装置２００の各要素には、制御装置１００における同一要素の符号を２００番台としたもの、を付して表記する。
【００２７】
制御装置１００と制御装置２００との間で送受信される「メッセージ」について、図２を参照しながら説明する。メッセージとは、制御装置間の通信において一度に送受信される情報（複数のデータ）をひとまとめにしたものである。
【００２８】
図２に示されるように、メッセージは、冒頭部分であるヘッダと、当該ヘッダに続く部分であるデータフィールドからなる。ヘッダには、ＩＤとヘッダ情報とが含まれる。
【００２９】
ＩＤ（識別ＩＤ）は、当該メッセージの識別情報となる数値であって、当該メッセージを受信する相手方を特定するために用いられる情報である。また、当該メッセージに含まれる各データの種類を特定するための情報としても用いられる。ただし、後に説明するように、ＩＤとデータの種類との関係は常に固定されているわけではなく、通信が行われる際において動的に変更される。ヘッダ情報は、データフィールドの全体の長さ（ビット長など）を示す情報である。
【００３０】
データフィールドは、例えばエンジン回転数やエンジン水温等を示すデータが複数列挙されている部分である。尚、図２に示されているのはあくまで一例であって、制御装置１００と制御装置２００との間では、複数種類のメッセージが送受信される。互いに種類の異なるメッセージには異なるＩＤが付され、且つ異なる種類のデータ群が含まれる。
【００３１】
図３には、情報記憶部１１０に記憶されている対応関係表１１２の具体的な内容が示されている。本実施形態では、上記のようなメッセージの種類に対応してメッセージラベルが設定されている。メッセージラベルは複数の文字の組み合わせからなる記号であって、メッセージの種類のそれぞれに対応する固有の記号として予め設定されている。
【００３２】
図３の表における各行には、メッセージラベルと、当該メッセージラベルに対応するデータの並びとの関係が示されている。当該表の行数、すなわちメッセージラベルの個数は、制御装置１００と制御装置２００との間で送受信されるメッセージの種類の個数に等しい。各行におけるデータの並びには、データフィールドに並べられたそれぞれのデータの意味（データラベル）が、当該データの長さ（ビット長）と共に列挙されている。
【００３３】
例えば、データフィールドにおいてエンジン回転数、エンジン水温、吸入空気温度、エンジン状態、イモビライザーの順にデータが並べられているようなメッセージ（図３の表における１行目）については、当該種類のメッセージに対応するメッセージラベルとして「ＡＡＡ」が割り当てられている。また、データフィールドにおいて各ランプの状態、パネル照明状態、パネル照明温度、ヘッドランプ状態、ヘッドランプ温度、ハザードランプ状態、ハザードランプ温度の順にデータが並べられているようなメッセージ（図３の表における２行目）については、当該種類のメッセージに対応するメッセージラベルとして「ＡＶＣ」が割り当てられている。
【００３４】
図３に示されるような、メッセージの種類とメッセージラベルとの対応関係は、常に固定されている。また、情報記憶部１１０に記憶されている対応関係表１１２の内容と、情報記憶部２１０に記憶されている対応関係表２１２の内容とは、互いに同一となっている。
【００３５】
図４には、情報記憶部１１０に記憶されている通信レコードリスト１１１の具体的な内容が示されている。通信レコードは、図４の表における各行に示されるものであって、メッセージラベルとＩＤとの対応関係を示す情報のことである。図４に示される表の行数、すなわち通信レコードの個数は、制御装置１００と制御装置２００との間で送受信されるメッセージの種類の個数に等しい。
【００３６】
例えば、図４の１行目の通信レコードによれば、メッセージラベル「ＡＡＡ」にはＩＤ「０００１」が対応していることが示されている。これは、メッセージラベルが「ＡＡＡ」のメッセージ、すなわち、データフィールドにおけるデータの並びが図３の１行目となっているようなメッセージには、そのＩＤとして「０００１」が付されることを意味している。
【００３７】
また、図４の２行目の通信レコードによれば、メッセージラベル「ＡＶＣ」にはＩＤ「０００４」が対応していることが示されている。これは、メッセージラベルが「ＡＶＣ」のメッセージ、すなわち、データフィールドにおけるデータの並びが図３の２行目となっているようなメッセージには、そのＩＤとして「０００４」が付されることを意味している。
【００３８】
情報記憶部１１０に記憶されている通信レコードリスト１１１の内容と、情報記憶部２１０に記憶されている通信レコードリスト２１１の内容とは、互いに同一となっている。ただし、図４の各行に示されるそれぞれの通信レコード、すなわち、メッセージラベルとＩＤとの対応関係は、固定されているのではなく、所定の条件（トリガー条件）が満たされた時において変更される。このような変更が行われても、通信レコードリスト１１１と通信レコードリスト２１１との同一性は保たれる。つまり、通信レコードリスト１１１の内容と通信レコードリスト２１１の内容とは、同時期において同様の方法で変更される。
【００３９】
それぞれの通信レコードには、トリガーフラグが含まれる。トリガーフラグとは、メッセージラベルのそれぞれに対応して設けられたフラグであって、０か１の値を取る変数となっている。トリガーフラグの値が１であるということは、その通信レコードのメッセージラベルで特定されるデータの中に、通信レコードの内容を更新するか否かの判定に用いられるようなデータが含まれていることを意味する。また、トリガーフラグの値が０であるということは、その通信レコードのメッセージラベルで特定されるデータの中に、通信レコードの内容を更新するか否かの判定に用いられるようなデータが含まれていないことを意味する。
【００４０】
図５には、情報記憶部１１０に記憶されているトリガーテーブル１１３の具体的な内容が示されている。トリガーテーブル１１３は、通信レコードの更新が行われる条件（トリガー条件）と、それぞれの条件が満たされた時における通信レコードの具体的な更新方法と、を示すものである。
【００４１】
例えば、図５の１行目によれば、ヘッドランプ状態がＯＮからＯＦＦに変化した際には、「ＡＡＡ」のメッセージラベルに対応しているＩＤと、「ＡＶＣ」のメッセージラベルに対応しているＩＤとを入れ換えるように、図４に示される通信レコードリスト１１１の内容が更新されることが示されている。
【００４２】
また、図５の２行目によれば、ハザードランプ状態がＯＦＦからＯＮに変化した際には、「ＡＡＡ」のメッセージラベルに対応しているＩＤを「０００２」に変更するように、図４に示される通信レコードリスト１１１の内容が更新されることが示されている。
【００４３】
情報記憶部１１０に記憶されているトリガーテーブル１１３の内容と、情報記憶部２１０に記憶されているトリガーテーブル２１３の内容とは、互いに同一となっている。このため、トリガーテーブル１１３とトリガーテーブル２１３とは、同時期において同様の方法で変更されることとなる。
【００４４】
メッセージの送受信が行われる際に、制御装置１００及び制御装置２００で行われる処理の具体的な内容について説明する。以下においては、制御装置１００からメッセージが送信され、当該メッセージが制御装置２００で受信される場合の処理について説明する。尚、制御装置２００からメッセージが送信され、当該メッセージが制御装置１００で受信される場合の処理も、以下に述べるものと同様である。
【００４５】
図６を参照しながら、送信側である制御装置１００で実行される処理について説明する。図６に示される一連の処理に先立って、制御装置１００において実行されているアプリケーションからの送信処理要求が送信通知機能部１２２に送信される。送信通知機能部１２２は、送信処理要求に含まれる一連のデータ、当該データに対応するメッセージラベル、及びメッセージに付されるＩＤのそれぞれを、送信要求の引数として管理機能部１２１に受け渡す。管理機能部１２１は、当該送信要求を受け取ると、図６に示される一連の処理を開始する。
【００４６】
最初のステップＳ０１では、情報記憶部１１０に記憶されている通信レコードリスト１１１（図４）を参照することにより、送信要求のメッセージラベルに対応するＩＤが取得される。例えば、送信要求の引数として渡されたメッセージラベルが「ＡＡＡ」であった場合には、当該メッセージラベルに対応する「０００１」がＩＤとして取得される。
【００４７】
ステップＳ０１に続くステップＳ０２では、送信されるメッセージに付されるＩＤが、送信要求の引数として渡されたＩＤから、ステップＳ０１で取得されたＩＤへと置き換えられる。ステップＳ０２に続くステップＳ０３では、上記のように更新されたＩＤの付されたメッセージが、通信バス３００へと送信される。
【００４８】
ステップＳ０３に続くステップＳ０４では、送信されたメッセージのメッセージラベルについて、それに対応するトリガーフラグの値が１であるか否かが判定される。かかる判定は、通信レコードリスト１１１（図４）を参照することにより行われる。
【００４９】
トリガーフラグの値が１である場合には、送信されたメッセージには、通信レコードが更新されることを示す情報が含まれているということである。この場合、ステップＳ１００に移行する。ステップＳ１００では、通信レコードリスト１１１を更新するための処理（更新の要否を判定する処理も含む）が行われる。
【００５０】
トリガーフラグの値が０である場合には、送信されたメッセージには、通信レコードが更新されることを示す情報が含まれていないということである。この場合、図６に示される一連の処理を終了する。
【００５１】
ステップＳ１００で行われる処理の具体的な内容について、図８を参照しながら説明する。ここでは、送信されたメッセージのデータフィールドに含まれているデータの数だけ、ループＬ１０１に示される処理が繰り返される。ループＬ１０１では、送信されたメッセージに含まれている各データがトリガー条件に関するものであるか否かについて、データフィールドの各データが先頭から順に調査されて行く。例えば、送信されたメッセージのメッセージラベルが「ＡＡＡ」であった場合には、エンジン回転数のデータ、エンジン水温のデータ、の順に調査されて行く。
【００５２】
ループＬ１０１の最初のステップＳ１０１では、調査対象となるデータの位置（データフィールドにおける当該データの位置）及びそのビット長が、対応関係表１１２（図３）を参照することにより取得される。ステップＳ１０１に続くステップＳ１０２では、送信されたメッセージから、ステップＳ１０１で取得された位置のデータが切り出され取得される。
【００５３】
ステップＳ１０２において調査対象のデータが取得された後、図５に示されるトリガーテーブル１１３の行数（つまりトリガー条件の数）だけ、ループＬ１０２に示される処理が繰り返される。ループＬ１０２では、調査対象のデータがトリガーテーブル１１３（図５）の「対象データ」欄に記載されているか否かについての判定が、トリガーテーブル１１３の１行目から順に行われて行く。
【００５４】
ループＬ１０２の最初のステップＳ１０３では、調査対象のデータが、トリガーテーブル１１３の当該行における対象データに該当するか否かが判定される。該当する場合には、調査対象のデータに含まれている情報が、対応するトリガー条件を充足しているか否かが判定される。
【００５５】
ステップＳ１０３において、調査対象のデータがトリガーテーブル１１３の対象データに該当しない場合、又は、調査対象のデータに含まれている情報がトリガー条件を充足していない場合には、トリガーテーブル１１３における次の行に記載されたトリガー条件についての判定（ステップＳ１０３）が再度行われる。つまり、調査対象のデータが、次の行に記載されたトリガー条件の対象データに該当するか否かについての判定が、再度実行される。
【００５６】
調査対象のデータがトリガーテーブル１１３の対象データに該当しており、且つ、調査対象のデータに含まれている情報がトリガー条件を充足している場合には、ステップＳ１０４に移行する。ステップＳ１０４では、トリガーテーブル１１３に記載されている「更新処理の内容」に基づいて、通信レコードリスト１１１の内容が更新される。
【００５７】
例えば、調査対象のデータが、ハザードランプの状態がＯＦＦからＯＮに切り換わったことを示すものであった場合には、図５の２行目に示されたトリガー条件が充足されることとなる。この場合には、「ＡＡＡ」のメッセージラベルに対応しているＩＤを「０００２」に変更するように、通信レコードリスト１１１の内容が更新される。以降においては、ＡＡＡのメッセージラベルに対応するメッセージには、ＩＤとして「０００２」が付されることとなる。また、受信されたメッセージのＩＤが「０００２」であった場合には、当該メッセージに含まれる複数のデータは、「ＡＡＡ」のメッセージラベルに対応して並んでいるものとして扱われる。
【００５８】
ループＬ１０２、及びループＬ１０１の処理が繰り返される結果、送信済みのメッセージに含まれるデータの全てについて、トリガーテーブル１１３に示されるトリガー条件を充足するか否かの判定が行われ、充足する場合には通信レコードリスト１１１の更新が行われる。後に説明するように、このような通信レコードリスト１１１の更新は、メッセージを受信した制御装置２００でも同様に行われる。
【００５９】
図７を参照しながら、受信側である制御装置２００で実行される処理について説明する。制御装置１００からメッセージが送信されると、当該メッセージは通信バス３００を介して制御装置２００に伝達され、制御装置２００のメッセージボックスに格納される。このとき、メッセージボックスからは、メッセージの受信処理要求が受信通知機能部１２３へと送信される。
【００６０】
ステップＳ１１では、制御装置２００の受信通知機能部２２３により、メッセージボックスからの受信処理要求が受理される。当該受信処理要求を受けて、受信通知機能部２２３は、メッセージボックスからメッセージを受け取るよう、管理機能部２２１に受信要求を送信する。これを受けて、管理機能部２２１によるメッセージの取得が行われる（ステップＳ１１）。
【００６１】
ステップＳ１１の後、図４に示される通信レコードリスト２１１の行数（つまり通信レコードの数）だけ、ループＬ１１に示される処理が繰り返される。ループＬ１１では、受信されたメッセージのＩＤに対応する通信レコードが通信レコードリスト２１１に存在するか否か、についての判定が、通信レコードリスト２１１の１行目から順に行われて行く。
【００６２】
ループＬ１１の最初のステップであるステップＳ１２では、受信されたメッセージのＩＤが、通信レコードリスト２１１の当該行に記載されたＩＤと一致しているか否かが判定される。一致していない場合には、通信レコードリスト２１１における次の行についての判定が行われる。
【００６３】
ループＬ１１が最後まで繰り返されても、受信されたメッセージのＩＤに一致するＩＤが通信レコードリスト２１１に見つからなかった場合には、当該メッセージは制御装置２００を対象とするものではないということである。この場合、制御装置２００では当該メッセージの処理を行うことなく、図７に示される一連の処理を終了する。
【００６４】
受信されたメッセージのＩＤに一致するＩＤが通信レコードリスト２１１の中から見つかった場合には、ステップＳ１３に移行する。ステップＳ１３では、受信されたメッセージのＩＤに対応するメッセージラベルが、通信レコードリスト２１１（図４）を参照することにより取得される。その後、取得されたメッセージラベルに対応するデータの並びが、対応関係表２１２（図３）を参照することにより取得される。
【００６５】
例えば、受信されたメッセージのＩＤが「０００１」であった場合には、通信レコードリスト２１１（図４）を参照することにより、当該ＩＤに対応するメッセージラベルとして「ＡＡＡ」が取得される。また、対応関係表２１２（図３）を参照することにより、この「ＡＡＡ」に対応するデータの並び(図３の１行目）が取得される。
【００６６】
ステップＳ１３に続いて実行されるループＬ１２では、上記のように取得されたデータの並びに基づいて、受信されたメッセージのデータフィールドからデータの取得が行われる。ループＬ１２では、データフィールドに含まれるデータの数（つまり、対応関係表２１２の対応行に示されたデータの数）だけ、データを取得するための処理が繰り返し実行される。
【００６７】
ループＬ１２の最初のステップＳ１４では、取得対象となるデータの位置（データフィールドにおける当該データの位置）及びそのビット長が、対応関係表１１２（図３）に示されるデータの並びを参照することにより取得される。ステップＳ１４に続くステップＳ１５では、取得対象となるデータがデータフィールドから切り出される。続くステップＳ１６では、切り出されたデータが制御装置２００のメモリに格納される。以上の処理（データの取得）は、対応関係表１１２の対応行に示されている複数のデータラベル（「エンジン回転数」等）のそれぞれについて、先頭（図３では左側）から順に行われる。
【００６８】
受信されたメッセージから全てのデータが取得されると、ループＬ１２の処理を終了する。ループＬ１２に続くステップＳ１７では、受信されたメッセージに対応するメッセージラベルについて、そのトリガーフラグの値が１であるか否かが判定される。かかる判定は、通信レコードリスト２１１（図４）を参照することにより行われる。
【００６９】
トリガーフラグの値が１である場合には、受信されたメッセージには、通信レコードが更新されることを示す情報が含まれているということである。この場合、ステップＳ１００に移行する。ステップＳ１００では、通信レコードリスト２１１を更新するための処理（更新の要否を判定する処理も含む）が行われる。
【００７０】
トリガーフラグの値が０である場合には、受信されたメッセージには、通信レコードが更新されることを示す情報が含まれていないということである。この場合、図７に示される一連の処理を終了する。
【００７１】
ステップＳ１００で行われる処理の具体的な内容について説明する。図７のステップＳ１００で行われる処理は、図６のステップＳ１００で行われる処理と概ね同一である。このため、図８を再び参照しながら説明することとする。
【００７２】
ここでは、受信されたメッセージのデータフィールドに含まれているデータの数だけ、ループＬ１０１に示される処理が繰り返される。ループＬ１０１では、受信されたメッセージに含まれているデータがトリガー条件を示すものであるか否かについて、データフィールドの各データが先頭から順に調査されて行く。例えば、受信されたメッセージに対応するメッセージラベルが「ＡＡＡ」であった場合には、エンジン回転数のデータ、エンジン水温のデータ、の順に調査されて行く。
【００７３】
ループＬ１０１の最初のステップＳ１０１では、調査対象となるデータの位置（データフィールドにおける当該データの位置）及びそのビット長が、対応関係表２１２（図３）を参照することにより取得される。ステップＳ１０１に続くステップＳ１０２では、受信されたメッセージから、ステップＳ１０１で取得された位置のデータが切り出され取得される。
【００７４】
ステップＳ１０２において調査対象のデータが取得された後、図５に示されるトリガーテーブル２１３の行数（つまりトリガー条件の数）だけ、ループＬ１０２に示される処理が繰り返される。ループＬ１０２では、調査対象のデータがトリガーテーブル２１３の「対象データ」欄に記載されているか否かについての判定が、トリガーテーブル２１３（図５）の１行目から順に行われて行く。
【００７５】
ループＬ１０２の最初のステップＳ１０３では、調査対象のデータがトリガーテーブル２１３の対象データに該当するか否かが判定される。該当する場合には、調査対象のデータに含まれている情報が、トリガー条件を充足しているか否かが判定される。
【００７６】
ステップＳ１０３において、調査対象のデータがトリガーテーブル２１３の対象データに該当しない場合、又は、調査対象のデータに含まれている情報がトリガー条件を充足していない場合には、次のデータが調査対象とされ、ステップＳ１０３の処理が再度実行される。
【００７７】
調査対象のデータがトリガーテーブル２１３の対象データに該当しており、且つ、調査対象のデータに含まれている情報がトリガー条件を充足している場合には、ステップＳ１０４に移行する。ステップＳ１０４では、トリガーテーブル２１３に記載されている「更新処理の内容」に基づいて、通信レコードリスト２１１の内容が更新される。
【００７８】
例えば、調査対象のデータが、ハザードランプの状態がＯＦＦからＯＮに切り換わったことを示すものであった場合には、図５の２行目に示されたトリガー条件が充足されることとなる。この場合には、「ＡＡＡ」のメッセージラベルに対応しているＩＤを「０００２」に変更するように、通信レコードリスト２１１の内容が更新される。以降においては、受信されたメッセージのＩＤが「０００２」であった場合には、当該メッセージに含まれる複数のデータは、「ＡＡＡ」のメッセージラベルに対応して並んでいるものとして扱われる。また、メッセージが送信される際において、ＡＡＡのメッセージラベルに対応するメッセージには、ＩＤとして「０００２」が付されることとなる。
【００７９】
ループＬ１０２、及びループＬ１０１の処理が繰り返される結果、受信されたメッセージに含まれるデータの全てについて、トリガーテーブル２１３に示されるトリガー条件を充足するか否かの判定が行われ、充足する場合には通信レコードリスト２１１の更新が行われる。
【００８０】
図９を参照しながら、制御装置１００と制御装置２００との間でメッセージが送受信される際における、ＩＤの変化の例について説明する。図９の上段には、通信バス３００を介して送受信されるメッセージ、及び当該メッセージのメッセージラベルの変化が示されている。図９の中段には、メッセージの受信側、すなわち制御装置２００において管理されているＩＤや車両状態の変化が示されている。図９の下段には、メッセージの送信側、すなわち制御装置１００において管理されているＩＤや車両状態の変化が示されている。
【００８１】
図９に示される例では、矢印ＣＭ１、ＣＭ２、ＣＭ３、ＣＭ４、ＣＭ５、ＣＭ６で示される各タイミングにおいて、それぞれメッセージＭＳ１、ＭＳ２、ＭＳ３、ＭＳ４、ＭＳ５、ＭＳ６が送受信されている。これらのメッセージは全て、制御装置１００から送信されており、制御装置２００により受信されている。
【００８２】
最初のメッセージＭＳ１は、そのメッセージラベルが「ＡＡＡ」となっており、付されるＩＤは「０００１」となっている。送信側の制御装置１００では、メッセージＭＳ１の送信が行われた直後、メッセージＭＳ１に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値に基づいて行われる。
【００８３】
図４の通信レコードリスト１１１に示されるように、メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値は０である。このため、制御装置１００では、メッセージＭＳ１のデータにはトリガー条件に関するものが含まれていない、との判定がなされる。
【００８４】
制御装置２００の通信レコードリスト２１１（図４）の中には、ＩＤの値が「０００１」となっている通信レコードが存在している。このため、制御装置２００では、メッセージＭＳ１が受信対象であるとの判定がなされ、メッセージＭＳ１の受信が行われる。
【００８５】
受信側の制御装置２００では、メッセージＭＳ１の受信が行われた直後、メッセージＭＳ１に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、制御装置１００において行われた場合と同様に、メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値に基づいて行われる。メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値は０である。制御装置２００でも、メッセージＭＳ１のデータにはトリガー条件に関するものが含まれていない、との判定がなされる。
【００８６】
１回目の送受信（矢印ＣＭ１）が行われた後、２回目の送受信（矢印ＣＭ２）が行われるよりも前の時点（矢印ＡＲ１１）で、車両におけるハザードランプの状態がＯＦＦからＯＮに変化する。この時点では、当該情報は制御装置２００では認識されていない。ハザードランプの状態が変化したことは、２回目の送受信（矢印ＣＭ２）によって制御装置１００から制御装置２００へと伝達される。
【００８７】
２回目に送受信されるメッセージＭＳ２は、そのメッセージラベルが「ＡＶＣ」となっており、付されるＩＤは「０００４」となっている。送信側の制御装置１００では、メッセージＭＳ２の送信が行われた直後、メッセージＭＳ２に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値に基づいて行われる。
【００８８】
図４の通信レコードリスト１１１に示されるように、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値は１である。このため、制御装置１００では、メッセージＭＳ２のデータにはトリガー条件に関するものが含まれている、との判定がなされる。
【００８９】
制御装置１００では、図８を参照しながら説明した処理が行われ、これにより通信レコードリスト１１１の更新が行われる。ここでは、ハザードランプの状態がＯＦＦからＯＮに変化しているので、図５の２行目に示されたトリガー条件が満たされている。従って、「ＡＡＡ」のメッセージラベルに対応しているＩＤを「０００２」に変更するように、通信レコードリスト１１１の内容が更新される。
【００９０】
制御装置２００の情報記憶部２１０に記憶されている通信レコードリスト２１１（図４）の中には、ＩＤの値が「０００４」となっている通信レコードが存在している。このため、制御装置２００では、メッセージＭＳ２が受信対象であるとの判定がなされ、メッセージＭＳ２の受信が行われる。メッセージＭＳ２に含まれているデータ（ハザードランプ状態）により、制御装置２００では、ハザードランプの状態がＯＦＦからＯＮに変化したことが認識される（矢印ＡＲ２１）。
【００９１】
受信側の制御装置２００では、メッセージＭＳ２の受信が行われた直後、メッセージＭＳ２に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、制御装置１００において行われた場合と同様に、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値に基づいて行われる。メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値は１である。制御装置２００でも、メッセージＭＳ２のデータにはトリガー条件に関するものが含まれている、との判定がなされる。
【００９２】
制御装置２００においても、図８を参照しながら説明した処理が行われ、これにより通信レコードリスト２１１の更新が行われる。制御装置１００の場合と同様に、「ＡＡＡ」のメッセージラベルに対応しているＩＤを「０００２」に変更するよう、通信レコードリスト２１１の内容が更新される。
【００９３】
３回目に送受信されるメッセージＭＳ３は、そのメッセージラベルが「ＡＡＡ」となっており、付されるＩＤは「０００２」となっている。送信側の制御装置１００では、メッセージＭＳ３の送信が行われた直後、メッセージＭＳ３に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値に基づいて行われる。
【００９４】
メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値は０である。このため、制御装置１００では、メッセージＭＳ３のデータにはトリガー条件に関するものが含まれていない、との判定がなされる。
【００９５】
制御装置２００では、（メッセージＭＳ１の場合と同様に）メッセージＭＳ３が受信対象であるとの判定がなされ、メッセージＭＳ３の受信が行われる。
【００９６】
受信側の制御装置２００では、メッセージＭＳ３の受信が行われた直後、メッセージＭＳ３に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、メッセージＭＳ１の場合と同様に、メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値に基づいて行われる。メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値は０である。制御装置２００でも、メッセージＭＳ３のデータにはトリガー条件に関するものが含まれていない、との判定がなされる。
【００９７】
３回目の送受信（矢印ＣＭ３）が行われた後、４回目の送受信（矢印ＣＭ４）が行われるよりも前の時点（矢印ＡＲ１２）で、車両におけるヘッドランプの状態がＯＮからＯＦＦに変化する。この時点では、当該情報は制御装置２００では認識されていない。ヘッドランプの状態が変化したことは、４回目の送受信（矢印ＣＭ４）によって制御装置１００から制御装置２００へと伝達される。
【００９８】
４回目に送受信されるメッセージＭＳ４は、そのメッセージラベルが「ＡＶＣ」となっており、付されるＩＤは「０００４」となっている。送信側の制御装置１００では、メッセージＭＳ４の送信が行われた直後、メッセージＭＳ４に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値に基づいて行われる。
【００９９】
図４の通信レコードリスト１１１に示されるように、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値は１である。このため、制御装置１００では、メッセージＭＳ４のデータにはトリガー条件に関するものが含まれている、との判定がなされる。
【０１００】
制御装置１００では、図８を参照しながら説明した処理が行われ、これにより通信レコードリスト１１１の更新が行われる。ここでは、ヘッドランプの状態がＯＮからＯＦＦに変化しているので、図５の１行目に示されたトリガー条件が満たされている。従って、「ＡＡＡ」のメッセージラベルに対応しているＩＤと、「ＡＶＣ」のメッセージラベルに対応しているＩＤとを入れ換えるように、図４に示される通信レコードリスト１１１の内容が更新される。当該更新の後は、「ＡＡＡ」のメッセージラベルに対応しているＩＤが「０００４」となり、「ＡＶＣ」のメッセージラベルに対応しているＩＤが「０００２」となる。
【０１０１】
制御装置２００では、（メッセージＭＳ２の場合と同様に）メッセージＭＳ４が受信対象であるとの判定がなされ、メッセージＭＳ４の受信が行われる。メッセージＭＳ４に含まれているデータ（ヘッドランプ状態）により、制御装置２００では、ヘッドランプの状態がＯＮからＯＦＦに変化したことが認識される（矢印ＡＲ２２）。
【０１０２】
受信側の制御装置２００では、メッセージＭＳ４の受信が行われた直後、メッセージＭＳ４に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、制御装置１００において行われた場合と同様に、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値に基づいて行われる。メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値は１である。制御装置２００でも、メッセージＭＳ４のデータにはトリガー条件に関するものが含まれている、との判定がなされる。
【０１０３】
制御装置２００においても、図８を参照しながら説明した処理が行われ、これにより通信レコードリスト２１１の更新が行われる。ここでも制御装置１００の場合と同様に、「ＡＡＡ」のメッセージラベルに対応しているＩＤと、「ＡＶＣ」のメッセージラベルに対応しているＩＤとを入れ換えるように、通信レコードリスト２１１の内容が更新される。当該更新の後は、「ＡＡＡ」のメッセージラベルに対応しているＩＤが「０００４」となり、「ＡＶＣ」のメッセージラベルに対応しているＩＤが「０００２」となる。
【０１０４】
５回目に送受信されるメッセージＭＳ５は、そのメッセージラベルが「ＡＡＡ」となっており、付されるＩＤは「０００４」となっている。送信側の制御装置１００では、メッセージＭＳ５の送信が行われた直後、メッセージＭＳ５に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値に基づいて行われる。
【０１０５】
メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値は０である。このため、制御装置１００では、メッセージＭＳ５のデータにはトリガー条件に関するものが含まれていない、との判定がなされる。
【０１０６】
制御装置２００では、（メッセージＭＳ１の場合と同様に）メッセージＭＳ５が受信対象であるとの判定がなされ、メッセージＭＳ５の受信が行われる。
【０１０７】
受信側の制御装置２００では、メッセージＭＳ５の受信が行われた直後、メッセージＭＳ５に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、メッセージＭＳ１の場合と同様に、メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値に基づいて行われる。メッセージラベル「ＡＡＡ」に対応するトリガーフラグの値は０である。制御装置２００でも、メッセージＭＳ５のデータにはトリガー条件に関するものが含まれていない、との判定がなされる。
【０１０８】
６回目に送受信されるメッセージＭＳ６は、そのメッセージラベルが「ＡＶＣ」となっており、付されるＩＤは「０００２」となっている。送信側の制御装置１００では、メッセージＭＳ６の送信が行われた直後、メッセージＭＳ６に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値に基づいて行われる。
【０１０９】
図４の通信レコードリスト１１１に示されるように、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値は１である。このため、制御装置１００では、メッセージＭＳ６のデータにはトリガー条件に関するものが含まれている、との判定がなされる。
【０１１０】
制御装置１００では、図８を参照しながら説明した処理が行われる。ここでは、ヘッドランプ等の状態が変化していないので、図５に示されたトリガー条件はいずれも満たされていない。従って、通信レコードリスト１１１の内容は更新されない。
【０１１１】
制御装置２００では、（メッセージＭＳ２の場合と同様に）メッセージＭＳ６が受信対象であるとの判定がなされ、メッセージＭＳ６の受信が行われる。
【０１１２】
受信側の制御装置２００では、メッセージＭＳ６の受信が行われた直後、メッセージＭＳ６に含まれるデータの中に、トリガー条件に関するものが含まれているか否かの判定が行われる。当該判定は、制御装置１００において行われた場合と同様に、メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値に基づいて行われる。メッセージラベル「ＡＶＣ」に対応するトリガーフラグの値は１である。制御装置２００でも、メッセージＭＳ６のデータにはトリガー条件に関するものが含まれている、との判定がなされる。
【０１１３】
制御装置２００においても、図８を参照しながら説明した処理が行われる。ここでも制御装置１００の場合と同様に、通信レコードリスト２１１の内容は更新されない。
【０１１４】
以上のように、本実施形態に係る通信システムでは、メッセージの種類と付されるＩＤとの対応関係が、常に固定されているのではなく、所定の条件（トリガー条件）が満たされた際において動的に変更される。このため、悪意のある第三者が、例えば特定のＩＤが付されたメッセージのみを収集してその内容を解析しようとしても、様々な種類のメッセージが収集されてしまうこととなる。このため、第三者による解析は非常に困難なものとなる。
【０１１５】
図９を参照しながら説明した例では、メッセージラベル「ＡＡＡ」に対して付され得るＩＤの候補の数が３つとなっている。付され得るＩＤの候補の数は、図５に示されるトリガーテーブルを適宜調整することにより、任意に設定することができる。例えば、重要度の高いデータが含まれるメッセージラベルには多くのＩＤが付され得ることとし、重要度の低いデータしか含まれないメッセージラベルには少ないＩＤのみが付され得ることとするのが望ましい。
【０１１６】
トリガー条件としては、本実施形態のように車両の状態を示す情報（ヘッドランプの状態等）に対応して設定されてもよいのであるが、他の情報（例えば、特定の日時等）に対応して設定されてもよい。しかしながら、車両の状態を示す情報に対応してトリガー条件が設定されていれば、制御装置間で送受信される情報が増加しないのでより好ましい。
【０１１７】
以上、具体例を参照しつつ本発明の実施の形態について説明した。しかし、本発明はこれらの具体例に限定されるものではない。すなわち、これら具体例に、当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。例えば、前述した各具体例が備える各要素およびその配置、材料、条件、形状、サイズなどは、例示したものに限定されるわけではなく適宜変更することができる。また、前述した各実施の形態が備える各要素は、技術的に可能な限りにおいて組み合わせることができ、これらを組み合わせたものも本発明の特徴を含む限り本発明の範囲に包含される。
【符号の説明】
【０１１８】
１０：通信システム
１００，２００：制御装置
１１０，２１０：情報記憶部
１１１，２１１：通信レコードリスト
１１２，２１２：対応関係表
１１３，２１３：トリガーテーブル
１２０，２２０：通信機能部
１２１，２２１：管理機能部
１２２，２２２：送信通知機能部
１２３，２２３：受信通知機能部
【図１】
0006394507.tif 000002
【図２】
0006394507.tif 000003
【図３】
0006394507.tif 000004
【図４】
0006394507.tif 000005
【図５】
0006394507.tif 000006
【図６】
0006394507.tif 000007
【図７】
0006394507.tif 000008
【図８】
0006394507.tif 000009
【図９】
0006394507.tif 000010