(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
[本発明の実施形態の説明]
最初に本発明の実施態様を列挙して説明する。以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0016】
(1)本発明の一態様に係る通信システムは、データを受信し、時間範囲を繰り返し設定する受信装置と、前記受信装置に第1時間間隔でデータを繰り返し送信し、前記受信装置が前記時間範囲内に受信したデータの数が2以上である場合に、前記受信装置にデータを送信する送信間隔を前記第1時間間隔とは異なる第2時間間隔に変更する送信装置とを備える。
【0017】
(2)本発明の一態様に係る通信システムでは、前記受信装置は、先行して設定した先行時間範囲内に受信したデータの数に基づいて、前記時間範囲を設定する。
【0018】
(3)本発明の一態様に係る通信システムでは、前記受信装置が前記時間範囲内に受信したデータの数が2以上である場合、前記受信装置が受信した複数のデータに基づく処理の実行は省略される。
【0019】
(4)本発明の一態様に係る通信システムでは、前記送信装置は、前記第2時間間隔でデータを前記受信装置に送信した後、前記送信間隔を前記第1時間間隔に戻す。
【0020】
(5)本発明の一態様に係る通信システムでは、前記受信装置は、前記時間範囲内に受信したデータの数が2以上であった回数を計数し、前記送信装置は、前記受信装置が計数した回数が所定回数以上となった場合に、前記送信間隔を前記第2時間間隔に変更し、前記所定回数は2以上である。
【0021】
(6)本発明の一態様に係る受信装置は、データを受信する受信部と、繰り返し設定される時間範囲内に前記受信部が受信したデータの数が2以上である場合に、繰り返し送信されるデータの送信間隔の変更を指示する変更データを送信するデータ送信部とを備える。
【0022】
(7)本発明の一態様に係る送信間隔変更方法は、コンピュータが、時間範囲を繰り返し設定するステップと、設定した時間範囲内に受信されたデータの数が2以上である場合、繰り返し送信されるデータの送信間隔の変更を指示する変更データの送信を指示するステップとを実行する。
【0023】
(8)本発明の一態様に係るコンピュータプログラムは、コンピュータに、時間範囲を繰り返し設定するステップと、設定した時間範囲内に受信されたデータの数が2以上である場合、繰り返し送信されるデータの送信間隔の変更を指示する変更データの送信を指示するステップとを実行させる。
【0024】
上記の一態様に係る通信システムにあっては、受信装置は、例えば、設定した時間範囲に受信したデータの数が1である場合、受信したデータは正規のデータであるとみなし、受信したデータに基づいて処理を実行する。不正なデータが第1時間間隔で受信装置に繰り返し送信されていると仮定する。この場合、時間範囲内に受信装置が受信したデータの数が2以上となる可能性がある。
【0025】
時間範囲内に受信装置が受信したデータの数が2以上である場合、送信装置は、データの送信間隔を第1時間間隔から第2時間間隔に変更する。受信装置は、データの送信間隔に応じて時間範囲を設定する。これにより、時間範囲に受信装置が受信するデータは正規のデータのみとなり、正規のデータに基づく処理の実行が実現される。
【0026】
上記の一態様に係る通信システムにあっては、受信装置は、例えば、先行時間範囲内において受信したデータの数が1である場合、第1時間間隔に対応する時間範囲を設定し、先行時間範囲内において受信したデータの数が2以上である場合、第2時間間隔に対応する時間範囲を設定する。これにより、データの送信間隔に対応する適切な時間範囲が設定される。
【0027】
上記の一態様に係る通信システムにあっては、時間範囲内に受信装置が受信したデータの数が2以上である場合、受信装置が受信した複数のデータ中に不正なデータが含まれているとして、複数のデータに基づく処理の実行を省略する。これにより、受信装置が不正なデータに基づいて誤った処理を行うことが防止される。
【0028】
上記の一態様に係る通信システムにあっては、前述したように、時間範囲内に受信装置が受信したデータの数が2以上である場合、送信装置は、送信間隔を第1時間間隔から第2時間間隔に変更する。不正なデータが第1時間間隔で受信装置に繰り返し送信されていると仮定する。この場合、送信装置が第2時間間隔でデータを送信した後において、送信間隔が第1時間間隔に戻っても、不正なデータが受信されるタイミングと、正規のデータが受信されるタイミングとは大きく異なり、時間範囲内に受信装置が受信するデータの数が1となる可能性は高い。
【0029】
また、システムは、基本的に、送信装置が第1時間間隔でデータを送信することを前提として設計される。このため、送信装置が第2時間間隔でデータを送信した後、送信間隔を、最適な時間間隔である第1時間間隔に戻す。
【0030】
上記の一態様に係る通信システムにあっては、時間範囲内に受信装置が受信したデータの数が2以上であった回数が所定回数以上となった場合、不正なデータが第1時間間隔で繰り返し送信されている可能性が高いとして、送信装置は送信間隔を第2時間間隔に変更する。
【0031】
上記の一態様に係る受信装置、送信間隔変更方法及びコンピュータプログラムにあっては、例えば、設定した時間範囲に受信されたデータの数が1である場合、受信されたデータは正規のデータであるとみなし、受信されたデータに基づいて処理が実行される。繰り返し送信されているデータの送信間隔と略一致する時間間隔で不正なデータが繰り返し送信されていると仮定する。この場合、時間範囲内に受信されるデータの数が2以上となる可能性がある。
【0032】
時間範囲内に受信されたデータの数が2以上である場合、データの送信間隔を第1時間間隔から第2時間間隔に変更する。データの送信間隔に応じて時間範囲を設定する。これにより、時間範囲に受信されるデータは正規のデータのみとなり、正規のデータに基づく処理の実行が実現される。
【0033】
[本発明の実施形態の詳細]
本発明の実施形態に係る通信システムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0034】
(実施形態1)
図1は、実施形態1における通信システム1の要部構成を示すブロック図である。通信システム1は、車両に好適に搭載されており、第1通信装置11、第2通信装置12及び通信バス13を備える。通信バス13には、第1通信装置11及び第2通信装置12が接続されている。通信バス13には、更に、第1通信装置11及び第2通信装置12とは異なる図示しない通信装置も接続されている。
【0035】
通信バス13に接続される通信装置として、ECUが挙げられる。ECUには、例えば、センサ及び車載機器が接続されている。この場合、ECUは、自装置に接続されているセンサが検出した検出値を示す情報を取得し、取得した情報含むデータを、通信バス13を介して送信する。更に、ECUは、通信バス13を介して受信したデータに基づいて、自装置に接続されている車載機器の動作を制御する。
【0036】
また、通信バス13に接続される通信装置として、2つの通信装置間の通信を中継する中継装置が挙げられる。中継装置には、通信バス13に加えて、通信バス13とは異なる通信バスが接続されている。中継装置は、通信バス13を介してデータを受信し、受信したデータを、通信バス13とは異なる通信バスを介して送信する。更に、中継装置は、通信バス13とは異なる通信バスを介してデータを受信し、受信したデータを、通信バス13を介して送信する。これにより、中継装置は、通信バス13に接続されている通信装置と、通信バス13とは異なる通信バスに接続されている通信装置との通信を中継する。
【0037】
通信バス13に接続されている複数の通信装置は、CAN(Controller Area Network)プロトコル、又は、CAN−FD(Controller Are Network with Flexible Data rate)に従った通信を行う。
【0038】
従って、通信バス13に接続されている複数の通信装置夫々は、識別情報を含むデータを送信する。識別情報は、データを識別するための情報である。また、通信バス13に接続されている1つの通信装置が送信したデータは、通信バス13に接続されている他の全ての通信装置が受信する。通信バス13に接続されている複数の通信装置夫々は、通信バス13を介してデータを受信した場合、受信したデータに含まれる識別情報に基づいて、受信したデータを破棄すべきか否かを判定する。通信バス13に接続されている複数の通信装置夫々は、データを破棄すべきと判定した場合、受信したデータを破棄し、データを破棄すべきではないと判定した場合、受信したデータに基づく処理を実行する。
【0039】
複数の通信装置が同時にデータの送信を開始した場合、複数の通信装置が送信するデータに含まれる識別情報に基づいて、調停が行われる。これにより、複数の通信装置中の1つの通信装置はデータの送信を継続する。残りの通信装置は、データの送信を停止し、他の通信装置が行っているデータの送信が終了するまで待機する。このデータの送信が終了した後、残りの通信装置は、再びデータの送信を開始する。従って、複数の通信装置が同時にデータの送信を開始した場合、少なくとも1つの通信装置に関して、データを送信するタイミングが遅れる。
【0040】
通信バス13を介して送信されるデータとして、周期的に送信されるデータと、突発的に送信されるデータとがある。周期的に送信されるデータは、車両の速度、又は、車両の外側の照度等を示す情報を含むデータである。突発的に送信されるデータは、例えば、車両のドアの施錠又は解錠を指示する情報を含むデータである。
【0041】
以下に、第1通信装置11及び第2通信装置12が行う通信について説明する。
図2は、第1通信装置11及び第2通信装置12が行う通信を説明するための図表である。第1通信装置11は、識別情報として第1識別情報を含む第1データを、通信バス13を介して周期的に送信する。第1データに基づく処理を実行する処理装置は、第2通信装置12である。第2通信装置12は、第1データを受信した場合、受信した第1データに基づく処理を実行する。
【0042】
また、第2通信装置12は、識別情報として第2識別情報を含む第2データを、通信バス13を介して送信する。第2データに基づく処理を実行する処理装置は、第1通信装置11である。第1通信装置11は、第2データを受信した場合、受信した第2データを記憶し、この第2データに基づく処理を実行する。
第1通信装置11及び第2通信装置12夫々は、送信装置及び受信装置として機能する。
【0043】
図3は、第1通信装置11の要部構成を示すブロック図である。第1通信装置11は、通信部21、時計部22、記憶部23及び制御部24を有する。これらは、内部バス25に接続されている。通信部21は、内部バス25の他に通信バス13に接続されている。
【0044】
制御部24は、送信されるデータに含めるデータ情報を取得する。通信部21は、制御部24の指示に従って、第1識別情報に加えて、制御部24が取得したデータ情報を含む第1データを、通信バス13を介して送信する。また、通信部21は、通信バス13を介して送信されたデータを受信する。通信部21は、受信したデータに含まれている識別情報が第2識別情報である場合、第2データを受信した旨を制御部24に通知する。
【0045】
通信部21と、通信バス13に接続されている他の通信装置とが同時にデータの送信を開始した場合、調停が行われる。調停の結果、通信部21がデータの送信を停止した場合、通信部21は、通信バス13を介した送信が終了した後に、再び、データを送信する。また、制御部24が通信部21に第1データの送信を指示した時点において、通信バス13を介したデータが送信されている場合、通信部21は、データの送信が終了した後に第1データの送信を開始する。
【0046】
制御部24は、時計部22から、現在の時刻を示す時計時刻情報を取得する。
記憶部23は不揮発性メモリである。記憶部23には、コンピュータプログラムP1が記憶されている。更に、記憶部23には、第1データの送信に係る基準時刻を示す基準時刻情報と、第1通信装置11が第1データを送信すべき送信時刻を示す送信時刻情報とが記憶されている。基準時刻情報が示す基準時刻と、送信時刻情報が示す送信時刻とは制御部24によって変更される。
【0047】
制御部24は、一又は複数のCPU(Central Processing Unit)を有する。制御部24が有する一又は複数のCPUは、コンピュータプログラムP1を実行することによって、第1データを送信するための第1データ送信処理を実行する。コンピュータプログラムP1は、制御部24が有する一又は複数のCPUに、第1データ送信処理を実行させるために用いられる。
【0048】
なお、コンピュータプログラムP1は、制御部24が有する一又は複数のCPUが読み取り可能に、記憶媒体E1に記憶されていてもよい。この場合、図示しない読み出し装置によって記憶媒体E1から読み出されたコンピュータプログラムP1が記憶部23に記憶される。記憶媒体E1は、光ディスク、フレキシブルディスク、磁気ディスク、磁気光ディスク又は半導体メモリ等である。光ディスクは、CD(Compact Disc)−ROM(Read Only Memory)、DVD(Digital Versatile Disc)−ROM、又は、BD(Blu-ray(登録商標) Disc)等である。磁気ディスクは、例えばハードディスクである。また、図示しない通信網に接続されている図示しない外部装置からコンピュータプログラムP1をダウンロードし、ダウンロードしたコンピュータプログラムP1を記憶部23に記憶してもよい。
【0049】
図4は、第1データ送信処理の手順を示すフローチャートである。第1データ送信処理では、制御部24は、まず、データ情報を取得する(ステップS1)。第1通信装置11がECUである場合、データ情報は、例えば、ECUに接続されているセンサが検出した車両の速度、又は、車両外の照度等の検出値を示す情報である。第1通信装置11が中継装置である場合、データ情報は、通信バス13とは異なる通信バスを介して受信したデータに含まれる情報である。
【0050】
次に、制御部24は、第1識別情報に加えて、ステップS1で取得したデータ情報を含む第1データの送信を通信部21に指示する(ステップS2)。これにより、通信部21は、通信バス13を介して第1データを送信する。前述したように、通信バス13を介したデータの送信状況が通信バス13を介して第1データを送信することができない状況である場合、通信部21は、データの送信状況が、通信バス13を介して第1データを送信することができる状況となるまで待機する。従って、制御部24がステップS2を実行してから通信部21が第1データを送信するまでの期間は、通信バス13を介したデータの送信状況に応じて変動する。
【0051】
制御部24は、ステップS2を実行した後、時計部22から時計時刻情報を取得し(ステップS3)、基準時刻情報が示す基準時刻を、取得した時計時刻情報が示す時刻に変更する(ステップS4)。次に、送信時刻情報が示す送信時刻を、基準時刻情報が示す基準時刻から第1基準時間が経過した時刻に変更する(ステップS5)。第1基準時間は、予め設定されており、例えば、300msである。
【0052】
次に、制御部24は、第2データを通信部21が受信したか否かを判定する(ステップS6)。前述したように、第2データは、第2識別情報を含むデータである。制御部24は、通信部21が第2データを受信したと判定した場合(S6:YES)、ステップS5と同様に、送信時刻を、基準時刻情報が示す基準時刻から第2基準時間経過した時刻に変更する(ステップS7)。第2基準時間も予め設定されている。第2基準時間は、第1基準時間未満であり、例えば、100msである。
【0053】
制御部24は、通信部21が第2データを受信していないと判定した場合(S6:NO)、又は、ステップS7を実行した後、時計部22から時計時刻情報を取得し(ステップS8)、取得した時計時刻情報が示す時刻が、送信時刻情報が示す送信時刻を経過したか否かを判定する(ステップS9)。制御部24は、時刻が送信時刻を経過していないと判定した場合(S9:NO)、ステップS6を実行し、時計部22の時刻が送信時刻を経過するまで、通信部21が第2データを受信したか否かを監視する。
【0054】
制御部24は、時刻が送信時刻を経過したと判定した場合(S9:YES)、第1データ送信処理を終了し、再び、第1データ送信処理を実行する。この第1データ送信処理のステップS2において、制御部24は、通信部21に指示して、第1データを再び送信させる。
【0055】
以上のように、第1通信装置11の通信部21は、通常、第1基準時間に略一致する第1時間間隔で、第1データを第2通信装置12に繰り返し送信する。通信部21が第2データを第2通信装置12から受信した場合、制御部24は通信部21が第1データを送信する送信間隔を、第2基準時間に略一致する第2時間間隔に変更する。
【0056】
通信部21が第2時間間隔で第1データを第2通信装置12に送信した後、通信部21が第2データを第2通信装置12から新たに受信しない限り、制御部
24は、第1データの送信間隔を第1時間間隔に戻す。第2データのデータ情報は、第1データの送信間隔の変更を指示する情報である。
【0057】
なお、制御部24が第1データの送信を指示してから通信部21が第1データを送信するまでの期間は、前述したように、通信バス13を介したデータの送信状況に応じて変動する。制御部24が第1データの送信を指示してから通信部21が第1データを送信するまでの期間の変動幅の最大値をTaで表し、第1基準時間及び第2基準時間夫々をTr1及びTr2で表す。この場合、第1時間間隔は、(Tr1−Ta)以上であり、かつ、(Tr1+Ta)以下である時間間隔である。また、第2時間間隔は、(Tr2−Ta)以上であり、かつ、(Tr2+Ta)以下である時間間隔である。
【0058】
第1基準時間Tr1及び第2基準時間Tr2夫々は変動幅の最大値Taよりも十分に長い。このため、第1時間間隔及び第2時間間隔夫々は、第1基準時間Tr1及び第2基準時間Tr2に略一致する。第2基準時間Tr2は第1基準時間Tr1とは異なるため、第2時間間隔は第1時間間隔とは異なる。
【0059】
図5は、第2通信装置12の要部構成を示すブロック図である。第2通信装置12は、通信部31、時計部32、記憶部33及び制御部34を有する。これらは、内部バス35に接続されている。通信部31は、内部バス35の他に通信バス13に接続されている。
【0060】
通信部31は、通信バス13を介して送信されたデータを受信する。従って、第1通信装置11の通信部21が通信バス13を介して送信した第1データは、第2通信装置12の通信部31によって受信される。通信部31は、受信したデータに含まれている識別情報が第1識別情報である場合、即ち、受信したデータが第1データである場合、受信したデータに含まれるデータ情報を制御部34に与える。通信部31は受信部として機能する。
また、通信部21は、制御部24の指示に従って、第2識別情報に加えて、第1データの送信間隔を第2時間間隔に変更することを指示するデータ情報を含む第2データを、通信バス13を介して送信する。
【0061】
通信部31と、通信バス13に接続されている他の通信装置とが同時にデータの送信を開始した場合、調停が行われる。調停の結果、通信部31がデータの送信を停止した場合、通信部31は、通信バス13を介した送信が終了した後に、再び、データを送信する。また、制御部34が通信部31に第2データの送信を指示した時点において、通信バス13を介したデータが送信されている場合、通信部31は、データの送信が終了した後に第2データの送信を開始する。
【0062】
制御部34は、時計部32から、現在の時刻を示す時計時刻情報を取得する。
記憶部33は不揮発性メモリである。記憶部33には、コンピュータプログラムP2が記憶されている。また、記憶部33には、第1データを受信した受信時刻を示す受信時刻情報が記憶されている。受信時刻情報が示す受信時刻は制御部34によって変更される。更に、記憶部33には、第1データを受信する受信時刻範囲を示す範囲情報が記憶されている。受信時刻範囲は、受信時刻範囲が開始される開始時刻と、受信時刻範囲が終了する終了時刻とによって表される。範囲情報は、具体的には、受信時刻範囲の開始時刻及び終了時刻を示す。範囲情報が示す受信時刻範囲、即ち、開始時刻及び終了時刻は、制御部34によって繰り返し設定される。
【0063】
制御部34は、一又は複数のCPUを有する。制御部34が有する一又は複数のCPUは、コンピュータプログラムP2を実行することによって、第1データ受信処理及びデータ情報処理を実行する。第1データ受信処理は、第1データの受信に係る処理である。データ情報処理は、データ情報に関する処理である。コンピュータプログラムP2は、制御部34が有する一又は複数のCPUに、第1データ受信処理及びデータ情報処理を実行させるために用いられる。制御部34は、時分割方式で、第1データ受信処理及びデータ情報処理を並行して実行する。
【0064】
なお、コンピュータプログラムP2は、制御部34が有する一又は複数のCPUが読み取り可能に、記憶媒体E2に記憶されていてもよい。この場合、図示しない読み出し装置によって記憶媒体E2から読み出されたコンピュータプログラムP2が記憶部33に記憶される。記憶媒体E2は、光ディスク、フレキシブルディスク、磁気ディスク、磁気光ディスク又は半導体メモリ等である。また、図示しない通信網に接続されている図示しない外部装置からコンピュータプログラムP2をダウンロードし、ダウンロードしたコンピュータプログラムP2を記憶部33に記憶してもよい。
【0065】
図6及び
図7は、第1データ受信処理の手順を示すフローチャートである。第1データ受信処理では、制御部34は、まず、時計部32から時計時刻情報を取得し(ステップS21)、取得した時刻が、範囲情報によって示されている受信時刻範囲内の時刻であるか否かを判定する(ステップS22)。制御部34は、時刻が受信時刻範囲内の時刻ではないと判定した場合(S22:NO)、ステップS21を実行し、時計部32の時刻が受信時刻範囲内の時刻となるまで待機する。
【0066】
時計部32の時刻が受信時刻範囲外の時刻である間に通信部31が第1データを受信した場合、受信した第1データの削除又は放置を行うことによって、受信した第1データを破棄する。
【0067】
制御部34は、時刻が受信時刻範囲内の時刻であると判定した場合(S22:YES)、第1データを通信部31が受信したか否かを判定する(ステップS23)。制御部34は、通信部31が第1データを受信したと判定した場合(S23:YES)、時計部32から時計時刻情報を取得する(ステップS24)。次に、制御部34は、受信時刻情報が示す受信時刻を、ステップS24で取得した時計時刻情報が示す時刻に更新し(ステップS25)、通信部31が受信した第1データに含まれるデータ情報を記憶部33に書き込む(ステップS26)。
【0068】
制御部34は、通信部31が第1データを受信していないと判定した場合(S23:NO)、又は、ステップS26を実行した後、時計部32から時計時刻情報を取得し(ステップS27)、取得した時計時刻情報が示す時刻が、範囲情報が示す受信時刻範囲内の時刻であるか否かを判定する(ステップS28)。
【0069】
制御部34は、時刻が受信時刻範囲内の時刻であると判定した場合(S28:YES)、ステップS23を実行し、時計部32の時刻が受信時刻範囲外の時刻となるまで、第1データを通信部31が受信したか否かを繰り返し判定する。
時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が1である場合、制御部34は、通信部31が受信した第1データに含まれるデータ情報を記憶部33に書き込む。更に、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2以上である場合、制御部34は、通信部31が受信した全ての第1データに含まれる全てのデータ情報を記憶部33に書き込む。
【0070】
通信システム1では、第三者が通信装置を通信バス13に不正に接続し、通信バス13に不正に接続した通信装置(以下、不正装置という)に、不正な第1データを送信させる可能性がある。時計部32の時刻が受信時刻範囲内の時刻である間に、不正装置が不正な第1データを送信した場合、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信する第1データの数が2以上となる可能性がある。
【0071】
制御部34は、時刻が受信時刻範囲内の時刻ではない、即ち、時刻が受信時刻範囲外の時刻であると判定した場合(S28:NO)、時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2以上であるか否かを判定する(ステップS29)。
【0072】
制御部34は、第1データの数が2以上であると判定した場合(S29:YES)、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した複数の第1データに不正な第1データが含まれているとして、これらの第1データに対応する全てのデータ情報を削除する(ステップS30)。制御部34は、ステップS30を実行することにより、これらのデータ情報を破棄する。
【0073】
制御部34は、ステップS30を実行した後、第2識別情報に加えて、第1データの送信間隔を第2時間間隔に変更することを指示するデータ情報を含む第2データの送信を通信部31に指示する(ステップS31)。これにより、通信部31は、第2データを、通信バス13を介して送信する。前述したように、第1通信装置11の通信部21が第2データを受信した場合、第1通信装置11の制御部
24は、第1データの送信間隔を第2時間間隔に変更する。第2データは変更データに相当する。通信部31はデータ送信部としても機能する。
【0074】
制御部34は、第1データの数が2未満であると判定した場合(S29:NO)、又は、ステップS31を実行した後、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数に応じて、範囲情報が示す受信時刻範囲を新たに設定する(ステップS32)。具体的には、受信時刻範囲の開始時刻及び終了時刻を新たに設定する。
【0075】
図8は、受信時刻範囲の設定の説明図である。
図8では、第1識別情報を含むデータである第1データを白抜きの四角で表している。
時計部32の時刻が受信時刻範囲内の時刻である間に通信部
31が受信した第1データの数が1である場合、受信時刻情報が示す受信時刻を基準として受信時刻範囲を新たに設定する。受信時刻は、時計部32の時刻が受信時刻範囲内の時刻である間に通信部
31が第1データを受信した最初の時刻である。制御部34は、受信時刻から第1基準時間が経過した時刻を中心に受信時刻範囲を新たに設定する。第1基準時間は、前述したように、第1時間間隔に略一致する。
【0076】
受信時刻範囲の設定で用いる第1時間幅及び第2時間幅が予め設定されている。以下では、第1時間幅及び第2時間幅夫々をTw1及びTw2で表す。前述したように、第1基準時間及び第2基準時間夫々は、Tr1及びTr2で表される。第1通信装置11において、制御部24が第1データの送信を指示してから通信部21が第1データを送信するまでの期間の変動幅の最大値はTaで表される。
【0077】
第1時間幅Tw1及び第2時間幅Tw2は、下記の不等式を満たす。
Ta<Tw1<Tw2<Tr2
前述したように、第2基準時間Tr2は、第1基準時間Tr1未満である。
【0078】
時計部32の時刻が受信時刻範囲内の時刻である間に通信部
31が受信した第1データの数が1である場合、制御部34は、受信時刻から第1基準時間Tr1経過した時刻から、第1時間幅Tw1遡った時刻を開始時刻に設定する。更に、制御部34は、受信時刻から第1基準時間Tr1経過した時刻から、更に、第1時間幅Tw1経過した時刻を終了時刻に設定する。
言い換えると、受信時刻から(Tr1−Tw1)経過した時刻を開始時刻に設定し、受信時刻から(Tr1+Tw1)経過した時刻を終了時刻に設定する。
【0079】
時計部32の時刻が受信時刻範囲内の時刻である間に通信部
31が受信した第1データの数が2以上である場合も、受信時刻情報が示す受信時刻を基準として受信時刻範囲を新たに設定する。制御部34は、受信時刻から第2基準時間Tr2が経過した時刻を中心に受信時刻範囲を新たに設定する。
【0080】
具体的には、制御部34は、受信時刻から第2基準時間Tr2経過した時刻から、第1時間幅Tw1遡った時刻を開始時刻に設定する。更に、制御部34は、受信時刻から第2基準時間Tr2経過した時刻から、更に、第1時間幅Tw1経過した時刻を終了時刻に設定する。
【0081】
言い換えると、受信時刻から(Tr2−Tw1)経過した時刻を開始時刻に設定し、受信時刻から(Tr2+Tw1)経過した時刻を終了時刻に設定する。第2基準時間Tr2は第1基準時間Tr1未満であるため、新たに設定される受信時刻範囲は、これまで設定されていた受信時刻範囲に近い。
【0082】
前述したように、第1データの数が2以上である場合、第1通信装置11の通信部21が送信する送信間隔が、第2基準時間Tr2に略一致する第2時間間隔に変更される。この変更に応じて、制御部34は、第2時間間隔に対応する受信時刻範囲を新たに設定する。
【0083】
時計部32の時刻が受信時刻範囲内の時刻である間に通信部
31が受信した第1データの数がゼロである場合、受信時刻範囲の中心時刻を基準として、次の受信時刻範囲を新たに設定する。
【0084】
具体的には、制御部34は、受信時刻範囲の中心時刻から第1基準時間Tr1経過した時刻から、第2時間幅Tw2遡った時刻を開始時刻に設定する。更に、制御部34は、受信時刻範囲の中心時刻から第1基準時間Tr1経過した時刻から、更に、第2時間幅Tw2経過した時刻を終了時刻に設定する。
【0085】
言い換えると、受信時刻範囲の中心時刻から(Tr1−Tw2)経過した時刻を開始時刻に設定し、受信時刻範囲内の中心時刻から(Tr1+Tw2)経過した時刻を終了時刻に設定する。第2時間幅Tw2は第1時間幅Tw1よりも長い。このため、第1データの数がゼロである場合に設定される受信時刻範囲は、第1データの数が1である場合に設定される受信時刻範囲よりも長い。
第1データの数がゼロである場合、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が第1データを受信する可能性を高めるため、長い受信時刻範囲を新たに設定する。
【0086】
制御部34は、ステップS32を実行した後、第1データ受信処理を終了し、再び、第1データ受信処理を実行する。
【0087】
以上のように、第2通信装置12では、制御部34は、受信時刻範囲を繰り返し設定する。また、制御部34は、時計部32の時刻が、先行して設定した受信時刻範囲内の時刻である間に通信部31が受信した第1データの数に基づいて、受信時刻範囲を新たに設定する。受信時刻範囲は時間範囲に相当する。
【0088】
制御部34は、例えば、第1データ受信処理のステップS32を実行した場合にデータ情報処理を実行する。データ情報処理では、制御部34は、記憶部33に第1データのデータ情報が記憶されているか否かを判定する。制御部34は、第1データのデータ情報が記憶されていると判定した場合、データ情報に係る処理を実行する。
【0089】
第2通信装置12がECUであり、かつ、第2通信装置12に車載機器が接続されている場合、制御部34は、データ情報に基づく制御信号の出力を図示しない出力部に指示する。出力部は、制御信号を車載機器に出力する。車載機器は、出力部から入力された制御信号に従って動作する。この場合、データ情報に係る処理は、制御信号の出力の指示である。
【0090】
第2通信装置12が中継装置である場合、制御部34は、データ情報を含むデータの送信を図示しない通信部に指示する。この通信部は、通信バス13とは異なる通信バスを介してデータを送信する。この場合、データ情報に係る処理は、データ情報を含むデータの送信の指示である。
【0091】
制御部34は、データ情報に係る処理を実行した後、記憶部33に記憶されているデータ情報を削除し、データ情報処理を終了する。
また、制御部34は、第1データのデータ情報が記憶されていないと判定した場合、データ情報処理を終了する。
【0092】
前述したように、第1データ受信処理では、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信したデータの数が2以上である場合、制御部34は、ステップS32を実行する前に、通信部31が受信した複数の第1データを削除する。従って、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信したデータの数が2以上である場合、データ情報処理で制御部34は、通信部31が受信した複数のデータに基づく処理を実行せず、この実行は省略される。
【0093】
図9は、通信システム1が奏する効果の説明図である。
図9には、第1通信装置11の通信部21が行う第1データの送信と、第2通信装置12の通信部31が行う第1データの受信とが示されている。白抜きの四角は第1通信装置11が送信する正規の第1データを示す。黒の四角は、不正装置が通信バス13を介して送信した不正な第1データを示す。
【0094】
第1通信装置11の通信部21が第1時間間隔で正規の第1データを送信していると仮定する。時計部32の時刻が受信時刻範囲内の時刻である間に第2通信装置12の通信部31が受信した第1データの数が1である場合、第2通信装置12の制御部34は、通信部31が受信した第1データは正規の第1データであるとして、通信部31が受信した第1データに基づく処理を実行する。
【0095】
更に、第2通信装置12の制御部34は、通信部31が第1データを受信した受信時刻から第1基準時間が経過した時刻を中心とした受信時刻範囲を新たに設定する。このとき、第2通信装置12の通信部31は第2データを送信しないので、第1通信装置11の通信部21は、継続して、第1時間間隔で第1データを送信する。
【0096】
不正装置が第1時間間隔で不正な第1データを繰り返し送信し、時刻が受信時刻範囲内の時刻である間に第2通信装置12の通信部31が正規の第1データと不正な第1データとを受信したと仮定する。この場合、時刻が受信時刻範囲内の時刻である間に第2通信装置12の通信部31が受信した第1データの数が2以上であるので、第2通信装置12の制御部34は、通信部31が受信した全ての第1データを破棄し、通信部31が受信した複数の第1データに基づく処理の実行を省略する。これにより、制御部34が不正な第1データに基づいて誤った処理を行うことが防止される。
【0097】
また、第2通信装置12の通信部31は、第2データを第1通信装置11の通信部21に送信する。これにより、第1通信装置11の通信部21は第2時間間隔で第1データを送信する。更に、第2通信装置12の制御部34は、通信部31が第1データを最初に受信した受信時刻から第2基準時間が経過した時刻を中心とした受信時刻範囲を新たに設定する。
【0098】
第2時間間隔は第1時間間隔とは異なる。このため、時刻が受信時刻範囲内の時刻である間に第2通信装置12の通信部31が受信する第1データは正規の第1データのみとなり、第2通信装置12の制御部34は、正規の第1データに基づく処理を実行する。正規の第1データに基づく処理の実行が実現される。
【0099】
第1通信装置11の通信部21が第2時間間隔で第1データを送信した後において、正規の第1データの送信間隔が第1時間間隔に戻っても、第2通信装置12の通信部31が正規の第1データを受信するタイミングは、通信部31が不正な第1データを受信するタイミングと大きく異なっている。このため、送信間隔を第1時間間隔に戻しても、時計部32の時刻が受信時刻範囲内の時刻である間で第2通信装置12の通信部31が受信する第1データの数が1となる可能性が高い。また、通信システム1は、基本的に、第1通信装置11の通信部21が第1時間間隔でデータを送信することを前提として設計される。
【0100】
以上のことから、第1通信装置11では、通信部21が第2時間間隔で第1データを送信した後において、通信部21が新たに第2データを受信しない限り、制御部24は、送信間隔を、最適な時間間隔である第1時間間隔に戻す。
【0101】
前述したように、第2通信装置12の制御部34は、時計部32の時刻が、先行して設定した受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が1である場合に、第1時間間隔に対応する受信時刻範囲を新たに設定する。また、制御部34は、時計部32の時刻が、先行して設定した受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2以上である場合に、第2時間間隔に対応する受信時刻範囲を新たに設定する。これにより、制御部34は、正規の第1データの送信間隔に対応する適切な受信時刻範囲を設定することができる。
【0102】
(実施形態2)
実施形態1では、第1通信装置11の制御部24が第1データの送信間隔を第2時間間隔に変更する変更条件は、時計部32の時刻が受信時刻範囲内に第2通信装置12の通信部31が受信した第1データの数が2以上であることである。変更条件を更に制限してもよい。
以下では、実施形態2について、実施形態1と異なる点を説明する。後述する構成を除く他の構成については、実施形態1と共通しているため、実施形態1と共通する構成部には実施形態1と同一の参照符号を付してその説明を省略する。
【0103】
実施形態2における記憶部33には、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2以上であった異常回数を示す異常回数情報が更に記憶されている。異常回数情報が示す異常回数は制御部34によって変更される。
【0104】
実施形態2における通信システム1を実施形態1における通信システム1と比較した場合、第2通信装置12の制御部34が実行する第1データ受信処理の内容が異なる。
図10及び
図11は、実施形態2における第1データ受信処理の手順を示すフローチャートである。実施形態2における第1データ受信処理のステップS41〜S50,S53夫々は、実施形態1における第1データ受信処理のステップS21〜S30,S31と同様である。このため、ステップS41〜S50,S53の詳細な説明を省略する。
【0105】
制御部34は、時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2以上であると判定した(S49:YES)、ステップS50を実行し、その後、異常回数情報が示す異常回数を1だけインクリメントする(ステップS51)。次に、制御部34は、異常回数情報が示す異常回数が基準回数以上であるか否かを判定する(ステップS52)。基準回数は、2以上の整数であり、予め設定されている。
【0106】
制御部34は、異常回数が基準回数以上であると判定した場合(S52:YES)、ステップS53を実行する。これにより、通信部31は、第2データを、通信バス13を介して送信する。実施形態1の説明で述べたように、第1通信装置11の通信部21が第2データを受信した場合、第1通信装置11の制御部
24は、第1データの送信間隔を第2時間間隔に変更する。次に、制御部34は、異常回数情報が示す異常回数をゼロに変更する(ステップS54)。
【0107】
制御部34は、時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2未満であると判定した(S49:NO)、異常回数情報が示す異常回数をゼロに変更する(ステップS55)。
制御部34は、異常回数が基準回数未満であると判定した場合(S52:NO)、又は、ステップS54,S55の一方を実行した後、受信時刻範囲を設定する(ステップS56)。ステップS56では、制御部34は、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数と、異常回数情報が示す異常回数とに基づいて受信時刻範囲を設定する。
【0108】
異常回数が基準回数未満である場合において、時計部32の時刻が時刻範囲内の時刻である間に通信部31が受信した第1データの数が1以上であるとき、制御部34は、実施形態1において、第1データの数が1である場合に行った受信時刻範囲の設定と同様の設定を行う(
図8参照)。従って、制御部34は、通信部31が第1データを最初に受信した受信時刻から第1基準時間が経過した時刻を中心として受信時刻範囲を新たに設定する。
【0109】
異常回数が基準回数以上である場合、制御部34は、実施形態1において、第1データの数が2以上である場合に行った受信時刻範囲の設定と同様の設定を行う(
図8参照)。従って、制御部34は、通信部31が第1データを最初に受信した受信時刻から第2基準時間が経過した時刻を中心として受信時刻範囲を新たに設定する。
【0110】
異常回数が基準回数未満である場合において、時計部32の時刻が時刻範囲内の時刻である間に通信部31が受信した第1データの数がゼロであるとき、制御部34は、実施形態1において、第1データの数がゼロである場合に行った受信時刻範囲の設定と同様の設定を行う(
図8参照)。従って、通信部31が第1データを最初に受信した受信時刻から第1基準時間が経過した時刻を中心として、長い受信時刻範囲を新たに設定する。
【0111】
制御部34は、ステップS56を実行した後、第1データ受信処理を終了し、再び、第1データ受信処理を実行する。
【0112】
以上のように、第2通信装置12の制御部34は、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2以上であった異常回数を計数する。異常回数が基準回数以上となった場合、即ち、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2以上である現象が連続して基準回数以上発生した場合、通信部31は第2データを送信する。これにより、第1通信装置11の通信部21が第2データを受信し、第1通信装置11の制御部24は第1データの送信間隔を第1時間間隔から第2時間間隔に変更する。
【0113】
このように、第2通信装置12の制御部34は、異常回数が基準回数以上となった場合、不正な第1データが第1時間間隔で繰り返し送信されている可能性が高いとして、第1通信装置11の制御部24は、第1データの送信間隔を第2時間間隔に変更する。
実施形態2における通信システム1及び第2通信装置12夫々は、実施形態1における通信システム1及び第2通信装置12が奏する効果を同様に奏する。
【0114】
なお、実施形態2における第2通信装置12において、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2未満である場合に、制御部34は、異常回数情報が示す異常回数をゼロに変更しなくてもよい。具体的には、第1データ受信処理において、制御部34は、時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2未満であると判定した場合(S49:NO)、ステップS55を実行せずに、ステップS56を実行してもよい。
【0115】
この場合、時計部32の時刻が受信時刻範囲内の時刻である間に通信部31が受信した第1データの数が2以上である現象が断続的に発生して異常回数が基準回数以上となったときであっても、第2通信装置12の通信部31は第2データを送信し、第1通信装置11の制御部24は第1データの送信間隔を第2時間間隔に変更する。
【0116】
なお、実施形態1,2において、第1通信装置11の制御部24は、第1データの送信間隔を第2時間間隔に変更した後、第1データの送信間隔を第1時間間隔に戻さずに、第1データの送信間隔を第2時間間隔に維持してもよい。この場合においては、第1データの送信間隔を第2時間間隔に変更した後、例えば、第2通信装置12の制御部34は、受信時刻から第2基準時間が経過した時刻を中心に受信時刻範囲を設定する。
【0117】
また、受信時刻範囲の設定に関して、基準となる時刻は、受信時刻、即ち、第2通信装置12において、時計部32の時刻が受信時刻範囲内の時刻である間に通信部
31が最初に受信した時刻に限定されない。基準となる時刻は、設定されている受信時刻範囲の中心時刻であってもよい。時計部32の時刻が受信時刻範囲内の時刻である間に通信部
31が受信した第1データの数が2以上である場合、基準となる時刻は、複数の第1データの受信時刻の平均時刻であってもよい。
【0118】
更に、第1通信装置11では、時刻ではなく、タイマが計時する計時時間に基づいて、第1データを繰り返し送信してもよい。また、第2通信装置12では、タイマが計時する計時時間に基づいて、時計部32の時刻が受信時刻範囲内の時刻であるか否かに相当する判定を行ってもよい。
【0119】
更に、第1基準時間Tr1は、第2基準時間Tr2とは異なっていればよいので、第2基準時間Tr2未満であってもよい。
また、通信バス13を介した通信に用いられる通信プロトコルは、CANプロトコル又はCAN−FDプロトコルに限定されず、例えば、イーサネット(登録商標)に対応する通信プロトコルであってもよい。
【0120】
開示された実施形態1,2はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。