(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024093195
(43)【公開日】2024-07-09
(54)【発明の名称】異常フレーム判定装置、異常フレーム判定方法、及び異常フレーム判定プログラム
(51)【国際特許分類】
H04L 43/0876 20220101AFI20240702BHJP
H04L 12/28 20060101ALI20240702BHJP
【FI】
H04L43/0876
H04L12/28 100A
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022209408
(22)【出願日】2022-12-27
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】230120499
【弁護士】
【氏名又は名称】藤江 和典
(74)【代理人】
【識別番号】100201385
【弁理士】
【氏名又は名称】中安 桂子
(72)【発明者】
【氏名】竹内 錬磨
(72)【発明者】
【氏名】川上 達郎
(72)【発明者】
【氏名】福島 理天
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA08
5K033BA06
5K033EA06
(57)【要約】
【課題】
複数のデータフレームのうちいずれのデータフレームが異常フレームであるかを判定する装置等を提供する。
【解決手段】
データフレームを所定の周期で送信するECUに接続された異常フレーム判定装置は、ECUから送信されたと推定される第1のデータフレームを受信する受信部101と、第1のデータフレームと、第1のデータフレームの直前に受信部が受信した第2のデータフレームとの受信間隔を算出する受信間隔算出部104と、異常フレームの検出に使用する判定値を保存する保存部106と、受信間隔が閾値よりも短い場合に判定値に所定の値を加算する判定値更新部107と、判定値が限界値に達した場合であって、受信間隔が、第1のデータフレームと第2のデータフレームとが近接して受信されたか否かの基準となる近接受信間隔よりも長い場合に、第2のデータフレームが異常フレームであると判定する、異常フレーム判定部110と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
データフレームを所定の周期で送信する電子制御装置(20)に接続された異常フレーム判定装置であって、
前記電子制御装置から送信されたと推定される第1のデータフレームを受信する受信部(101)と、
前記第1のデータフレームと、前記第1のデータフレームの直前に前記受信部が受信した第2のデータフレームとの受信間隔を算出する受信間隔算出部(104)と、
異常フレームの検出に使用する判定値を保存する保存部(106)と、
前記受信間隔が閾値よりも短い場合に前記判定値に所定の値を加算する、判定値更新部(107)と、
前記判定値が限界値に達した場合であって、前記受信間隔が、前記第1のデータフレームと前記第2のデータフレームとが近接して受信されたか否かの基準となる近接受信間隔よりも長い場合に、前記第2のデータフレームが前記異常フレームであると判定する、異常フレーム判定部(110)と、
を備える、異常フレーム判定装置(10)。
【請求項2】
前記異常フレーム判定部はさらに、前記受信間隔が前記近接受信間隔以下の場合に、前記第1のデータフレーム又は前記第2のデータフレームの少なくとも一方が前記異常フレームであると判定する、
請求項1記載の異常フレーム判定装置。
【請求項3】
前記異常フレーム判定部は、前記判定値が前記限界値に最初に達した場合であって、前記受信間隔が前記近接受信間隔よりも長い場合に、前記第2のデータフレームが前記異常フレームであると判定する、
請求項1記載の異常フレーム判定装置。
【請求項4】
前記異常フレーム判定部は、前記判定値の初期値に前記所定の値が所定の回数加算されたことにより前記判定値が前記限界値に達した場合に、前記判定値が前記限界値に最初に達したと判定する、
請求項3記載の異常フレーム判定装置。
【請求項5】
前記判定値更新部はさらに、前記受信間隔が前記閾値よりも長い場合に、前記判定値から前記所定の値を減算し、
前記異常フレーム判定部は、前記判定値から前記所定の値が減算された後に前記所定の値が所定の回数加算されたことにより前記判定値が前記限界値に達した場合に、前記判定値が前記限界値に最初に達したと判定する、
請求項3記載の異常フレーム判定装置。
【請求項6】
前記異常フレーム判定部は、前記限界値未満の前記判定値に前記所定の値が加算されたことにより前記判定値が前記限界値に達した場合であって、前記受信間隔が前記近接受信間隔よりも長い場合に、前記第2のデータフレームが前記異常フレームであると判定する、
請求項1記載の異常フレーム判定装置。
【請求項7】
異常フレーム判定部は、前記限界値以上の前記判定値に前記所定の値がさらに加算された場合、前記第1のデータフレーム又は前記第2のデータフレームの少なくとも一方が前記異常フレームであると判定する、
請求項1記載の異常フレーム判定装置。
【請求項8】
前記閾値は、前記所定の周期以下の値である、
請求項1記載の異常フレーム判定装置。
【請求項9】
前記閾値は、前記電子制御装置から送信された前記データフレームである前記第1のデータフレームと前記第2のデータフレームとの前記受信間隔の最小値と等しい、
請求項8記載の異常フレーム判定装置。
【請求項10】
前記所定の値は、前記受信間隔と前記閾値との差分であり、
前記限界値は、前記閾値の2倍から前記所定の周期を減じた値以下の値である、
請求項1記載の異常フレーム判定装置。
【請求項11】
前記限界値は、前記閾値の2倍から、前記電子制御装置から送信された前記データフレームである前記第1のデータフレームと前記第2のデータフレームとの前記受信間隔の最大値を減じた値と等しい、
請求項10記載の異常フレーム判定装置。
【請求項12】
前記判定値更新部はさらに、前記受信間隔が前記閾値よりも長い場合に、前記判定値から前記差分を減算し、
前記異常フレーム判定部は、前記差分が減算された後に前記差分が2回加算されたことにより前記判定値が前記限界値に達した場合であって、前記受信間隔が前記近接受信間隔よりも長い場合に、前記第2のデータフレームが前記異常フレームであると判定する、
請求項10記載の異常フレーム判定装置。
【請求項13】
前記所定の値は、前記受信間隔と前記閾値との差分であり、
前記近接受信間隔は、前記閾値から前記限界値を減じた値以下の値である、
請求項1記載の異常フレーム判定装置。
【請求項14】
前記近接受信間隔は、前記電子制御装置から送信された前記データフレームである前記第1のデータフレームと前記第2のデータフレームとの前記受信間隔の最大値から、前記電子制御装置から送信された前記データフレームである前記第1のデータフレームと前記第2のデータフレームとの前記受信間隔の最小値を減じた値と等しい、
請求項13記載の異常フレーム判定装置。
【請求項15】
前記所定の値は、前記受信間隔と前記閾値との差分に基づく値である、
請求項1記載の異常フレーム判定装置。
【請求項16】
前記判定値の最大値は、前記限界値と等しい、
請求項1記載の異常フレーム判定装置。
【請求項17】
データフレームを所定の周期で送信する電子制御装置(20)に接続された異常フレーム判定装置(10)で実行される異常フレーム判定方法であって、
前記電子制御装置から送信されたと推定される第1のデータフレームを受信し(S101)、
前記第1のデータフレームと、前記第1のデータフレームの直前に受信した第2のデータフレームとの受信間隔を算出し(S103)、
前記受信間隔が閾値よりも短い場合に、保存部に保存され、異常フレームの検出に使用する判定値に所定の値を加算し(S105)、
前記判定値が限界値に達した場合であって、前記受信間隔が、前記第1のデータフレームと前記第2のデータフレームとが近接して受信されたか否かの基準となる近接受信間隔よりも長い場合に、前記第2のデータフレームが前記異常フレームであると判定する(S109)、
異常フレーム判定方法。
【請求項18】
データフレームを所定の周期で送信する電子制御装置(20)に接続された異常フレーム判定装置(10)で実行可能な異常フレーム判定プログラムであって、
前記電子制御装置から送信されたと推定される第1のデータフレームを受信し(S101)、
前記第1のデータフレームと、前記第1のデータフレームの直前に受信した第2のデータフレームとの受信間隔を算出し(S103)、
前記受信間隔が閾値よりも短い場合に、保存部に保存され、異常フレームの検出に使用する判定値に所定の値を加算し(S105)、
前記判定値が限界値に達した場合であって、前記受信間隔が、前記第1のデータフレームと前記第2のデータフレームとが近接して受信されたか否かの基準となる近接受信間隔よりも長い場合に、前記第2のデータフレームが前記異常フレームであると判定する(S109)、
異常フレーム判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子制御装置から送信されるデータフレームの中から異常なデータフレームを判定する装置、並びに当該装置で実行される方法及びプログラムに関する。
【背景技術】
【0002】
従来より、自動車には様々な種類の電子制御装置が搭載されており、これらの電子制御装置を通信ネットワークで互いに接続することにより、車載システムを構成している。このような車載システムでは、外部からの不審なアクセスやデータがないかを検出するために、ネットワーク侵入検知システム(NIDS:Network-based Intrusion Detection System)が用いられることが知られている。
【0003】
例えば、特許文献1は、通信システムにて通信されているメッセージの正/不正を簡易な構成で判定することのできる通信システムを開示している。この通信システムでは、複数のECUがメッセージを通信可能にするために通信用バスに接続されている。各ECUには、規定の通信間隔が設定されており、メッセージを送信するECUは、この規定の通信間隔に基づいてメッセージを送信する。そして、受信したメッセージの通信間隔が規定の通信間隔よりも短い場合には、メッセージが正常ではないと判定する。
【0004】
特許文献2は、電子制御ユニット間で送受信するメッセージを中継する中継接続ユニットが開示されている。この中継接続ユニットでは、予め規定した設定時間内に受信したメッセージの受信回数をカウントし、受信回数が設定回数を超えた場合にはメッセージが正常ではないと判定する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2013/094072号
【特許文献2】特開2009-253557号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載されているメッセージの通信間隔は、受信されたメッセージに付与されるタイムスタンプが示す時刻を利用して算出することができる。しかしながら、タイムスタンプの時間分解能によっては、実際の時刻と付与されたタイムスタンプが示す時刻にずれが生じることがある。そのため、このような時刻のずれによって、メッセージの正/不正が誤って判定されることが起こりうる。また、特許文献2に記載されている手法によれば、タイムスタンプの時間分解能による誤判定の可能性は低くなるが、設定時間内に受信した全てのメッセージの受信時刻を一時的に保存しておく必要があるため、メモリの消費量が増大するおそれがある。さらに、特許文献2に記載されている手法では、受信回数がカウントされたメッセージのうち、いずれのメッセージが正常ではないメッセージであるかを特定することはできない。
【0007】
そこで、本発明の目的は、受信したデータフレームに不正なデータフレームがあるかどうかを判定するとともに、受信したデータフレームのいずれが不正なデータフレームであるかを判定することにある。
【課題を解決するための手段】
【0008】
本開示の一態様による異常フレーム判定装置(10)は、データフレームを所定の周期で送信する電子制御装置(20)に接続された異常フレーム判定装置であって、前記電子制御装置から送信されたと推定される第1のデータフレームを受信する受信部(101)と、前記第1のデータフレームと、前記第1のデータフレームの直前に前記受信部が受信した第2のデータフレームとの受信間隔を算出する受信間隔算出部(104)と、異常フレームの検出に使用する判定値を保存する保存部(106)と、前記受信間隔が閾値よりも短い場合に前記判定値に所定の値を加算する、判定値更新部(107)と、前記判定値が限界値に達した場合であって、前記受信間隔が、前記第1のデータフレームと前記第2のデータフレームとが近接して受信されたか否かの基準となる近接受信間隔よりも長い場合に、前記第2のデータフレームが前記異常フレームであると判定する、異常フレーム判定部(110)と、を備える。
【発明の効果】
【0009】
上述のような構成により、本開示の異常フレーム判定装置は、受信したデータフレームに不正なデータフレームが含まれることを高い精度で判定できることに加えて、受信したデータフレームのうちいずれのデータフレームが異常なデータフレームであるかを判定することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態1又は2のログ判定装置を有する車載システムを説明する図
【
図2】実施形態1又は2のログ判定装置の構成例を示す図
【
図3】実施形態1又は2のタイムスタンプ付与部によって付与されるタイムスタンプを説明する図
【
図4】実施形態1のデータフレームの受信間隔及び判定値を説明する図
【
図5】実施形態1のデータフレームの受信間隔及び判定値を説明する図
【
図6】実施形態1のデータフレームの受信間隔及び判定値を説明する図
【
図7】実施形態1のデータフレームの受信間隔及び判定値を説明する図
【
図8】実施形態1の異常フレーム判定装置の動作を説明する図
【
図9】実施形態1の異常フレーム判定装置の動作を説明する図
【
図10】実施形態2の異常フレーム判定装置の動作を説明する図
【
図11】実施形態2の異常フレーム判定装置の動作を説明する図
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照して説明する。
【0012】
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
【0013】
特許請求の範囲の従属項に記載の構成及び方法は、特許請求の範囲の独立項に記載の発明において任意の構成及び方法である。従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明において任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明において任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
【0014】
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
【0015】
複数の実施形態がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせてもよい。また、複数の実施形態それぞれに開示の構成を集めて組み合わせてもよい。
【0016】
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。
【0017】
1.各実施形態に共通する構成
(1)車載システム1
図1は、異常フレーム判定装置10、複数の電子制御装置20(以下、ECU(Electric Control Unitlectric))、及びこれらの装置を互いに接続する通信ネットワーク2から構成された車載システム1を示している。以下に示す各実施形態では、ゲートウェイとして構成された電子制御装置が異常フレーム判定装置10としての機能を有し、ECU20から送信されたデータフレームを受信して、後述する一連の異常フレームの判定処理を行う構成を説明している。しかしながら、本実施形態の異常フレーム判定装置10はゲートウェイの電子制御装置に限定されるものではない。例えば、本実施形態の異常フレーム判定装置10は、異常フレーム判定専用の電子制御装置として車載システム1に設けられていてもよく、あるいは、車載システム1を構成する各ECU20が異常フレーム判定装置10としての機能を有するものであってもよい。
【0018】
通信ネットワーク2には、例えば、CAN(Controller Area Network)、LIN(Local Interconnect Network)といった通信方式の他、Ethernet(登録商標)やWi-Fi(登録商標)、Bluetooth(登録商標)等、任意の通信方式を用いることができるが、以下の例ではCANを用いる例を説明する。
【0019】
ECU20は、異常フレーム判定装置10に、データフレームを周期的に、すなわち、所定の周期で送信する「電子制御装置」である。ECU20が所定の周期で送信するデータフレームには、車両に搭載されたセンサ等によって検出された様々なデータや車両を制御する制御値等が含まれている。
【0020】
ここで、「電子制御装置」とは、物理的に独立した電子制御装置の他、仮想化技術を用いて実現した仮想化電子制御装置であってもよい。
【0021】
なお、各実施形態では、異常フレーム判定装置10及びECU20が車両に搭載された車載システム1を構成する装置である例を挙げて説明している。しかしながら、異常フレーム判定装置10は車両に搭載される装置に限定されるものではなく、任意のシステムに適用することができる。
【0022】
(2)異常フレーム判定装置10の構成
図2を用いて、異常フレーム判定装置10の構成を説明する。異常フレーム判定装置10は、受信部101、タイマ102、タイムスタンプ付与部103、受信間隔算出部104、データベース105、保存部106、判定値更新部107、および判定部108を備えている。判定部108は、異常有無判定部109及び異常フレーム判定部110を実現する。
【0023】
受信部101は、ECU20から送信されたと推定されるデータフレーム(「第1のデータフレーム」に相当)をCANを介して受信する。受信部101が受信するデータフレームは原則としてECU20から送信されたデータフレームである。しかしながら、外部の攻撃者が、ECU20が送信元であるように偽装したデータフレームを不正アクセスによって挿入した場合、受信部101は、不正なデータフレームをECU20から送信されたデータフレームと誤認して受信する。つまり、受信部101は、ECU20から実際に送信されたデータフレームだけでなく、ECU20から送信されたと誤認されるデータフレームも受信する。
【0024】
タイマ102は、異常フレーム判定装置10の時計である。タイマ102の構成は任意であり、例えば、異常フレーム判定装置10の起動と同時に内部クロックをカウントするフリーランカウンタ、または内部クロックを分周してカウントとする分周カウンタから構成されてもよく、あるいは、GPSが取得した絶対時刻を参照するタイマであってもよい。
【0025】
タイムスタンプ付与部103は、タイマ102の時刻に基づいて、受信部101がデータフレームを受信した時刻を示すタイムスタンプをデータフレームに付与する。タイムスタンプ付与部103は、受信部101が受信したデータフレームを予め設定された周期でサンプリングしてタイムスタンプを付与する。そのため、データフレームに付与されるタイムスタンプ時刻と受信部101がデータフレームを実際に受信した時刻は、厳密には異なることがある。
【0026】
図3を参照して、タイムスタンプ付与部103によって付与されるタイムスタンプ、及びデータフレームの受信間隔を説明する。
図3(a)は、受信部101が実際にデータフレームを受信した時刻におけるデータフレームF
1~F
4を示している。この例では、受信部101はデータフレームを約10msの受信間隔で受信している。
図3(b)、
図3(c)は、
図3(a)の各データフレームを2.5ms及び5msの周期でサンプリングした場合に付与されるタイムスタンプの時刻におけるデータフレームF
1~F
4をそれぞれ示している。
図3(a)と、
図3(b)及び
図3(c)との比較から明らかなとおり、データフレームの実際の受信時刻とデータフレームに付与される時刻との間にずれが生じており、このずれはサンプリング周期が長くなるほど顕著になる。
【0027】
例えば、データフレームF
1とF
2の受信間隔は実際は約10msであるにもかかわらず、
図3(b)に示すタイムスタンプ時刻に基づく受信間隔は7.5msである。また、
図3(c)に示すタイムスタンプ時刻に基づく受信間隔は5msである。このように、
図3(b)及び
図3(c)に示すデータフレームF
1とF
2の受信間隔は、ECU20が実際にデータフレームを送信した送信間隔よりも短い。そのため、2つのデータフレームの受信間隔のみに基づいてデータフレームが異常であるかどうかを判定すると、データフレームF
1又はデータフレームF
2が正常ではないデータフレーム(以下、異常フレームと称する)であると判定される可能性がある。
【0028】
また、データフレームF
3とF
4の受信間隔は実際は約10msであるにもかかわらず、
図3(b)に示すタイムスタンプ時刻に基づく受信間隔は12.5msである。また、
図3(c)に示すタイムスタンプ時刻に基づく受信間隔は15msである。このように、
図3(b)及び
図3(c)に示すデータフレームF
3とF
4の受信間隔は、ECU20が実際にデータフレームを送信した送信間隔よりも長い。
【0029】
受信間隔算出部104は、データフレームに付与されたタイムスタンプの時刻に基づいて、受信部101が受信したデータフレーム(「第1のデータフレーム」に対応)と、当該データフレームの直前に受信部101が受信したデータフレーム(「第2のデータフレーム」に対応)との受信間隔Pを算出する。
【0030】
上述したとおり、ECU20は所定の周期でデータフレームを送信する。そのため、異常フレーム判定装置10の受信部101が受信するデータフレームの受信間隔は、原則、ECU20の送信間隔と等しくなる。しかしながら、不正アクセスによって挿入された異常フレームを受信した場合、データフレームの受信間隔は送信間隔よりも短くなる。また、
図3に示すように、タイムスタンプ時刻と実際の受信時刻とにずれが生じることによって、あるいは、通信ネットワーク2が混雑していることでデータフレームが遅れることによって、データフレームの受信間隔が送信間隔よりも短く又は長くなることがある。
【0031】
データベース105は、受信部101が受信するデータフレームの受信間隔の閾値PTを保存する。データベース105はさらに、後述する異常有無判定部109が受信部101が受信したデータフレームに異常フレームがあるか否かを判定する基準、すなわち、異常フレームを検出する基準となる判定値Cの限界値CLを保存する。データベース105は、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリを想定している。なお、受信部101が異なる識別情報(例えば、ECU-ID、CAN-IDなど)や異なるデータ種別を有する複数の種類のデータフレームを受信する場合には、データベース105には、データフレームの種類毎の受信間隔の閾値及び限界値が保存される。そして、後述する判定部108は、同じ識別情報やデータ種別を有するデータフレームについて、異常フレームの有無、及び、いずれのデータフレームが異常フレームであるかを判定する。
【0032】
本実施形態の閾値及び限界値は固定値であることを想定している。この場合、閾値及び限界値は例えば、異常フレーム判定装置10の製造工場や車載システム1が搭載された車両を販売するディーラにおいてデータベース105に保存される。しかしながら、閾値及び限界値は、各種のパラメータによって動的に変化する可変値であってもよい。例えば、通信ネットワーク2が混雑している場合、データフレームが遅延して受信される可能性が高い。そこで、通信ネットワーク2の負荷が高い場合には、受信間隔の閾値や限界値が通常時と比較して大きくなるように値が自動的に設定されてもよい。データベース105に保存される閾値PT、限界値CLについては後述する。
【0033】
保存部106は、異常フレームの検出に使用する判定値Cを保存する。保存部106に保存される判定値は、後述する判定値更新部107によって適宜更新される。保存部106はRAM等の揮発性メモリを想定しており、異常フレーム判定装置10の電源がOFFになると判定値のデータは消去される。この場合、電源が再びONになると、判定値は予め設定された初期値(CIni)にリセットされる。ただし、保存部106は、ハードディスク(HDD)やフラッシュメモリ等であってもよい。
【0034】
保存部106はさらに、判定値更新部107によって更新される前の判定値の値を保存してもよい。例えば、保存部106は、更新される前の判定値の値を少なくとも2つ、すなわち、判定値更新部107によって更新される直前の判定値C1と、判定値C1に更新される前の判定値C2を保存してもよい。これらの判定値(C、C1、C2)は、判定値更新部107が更新を行う度に変化する。判定値が新たに更新されると、それまで判定値Cとして保存されていた値は判定値C1となり、判定値C1として保存されていた値は判定値C2となる。
【0035】
判定値更新部107は、受信間隔算出部104が算出した受信間隔Pと、データベース105に保存されている閾値PTとを比較する。そして、比較結果に応じて、保存部106に保存されている判定値を更新する。具体的には、判定値更新部107は、受信間隔が閾値「より」も短い場合に、判定値に「所定の」値を「加算」して判定値を更新する。判定更新部107はさらに、受信間隔が閾値「より」も長い場合に、判定値から「所定の」値を「減算」して判定値を更新する。更新された判定値は、保存部106に上書きして保存される。
【0036】
ここで、「より」とは、比較対象と同じ値を含む場合および含まない場合の両方が含まれる。
「所定の」とは、常に一定の場合の他、条件に応じて一意に定まる場合も含む。
「加算」する、とは、正の値を加える演算はもちろん、負の値を加える演算をも含む。また、「加算」する、とは、所定の値を加える演算が行われていれば足り、例えば、判定値の最大値又は最小値に達していることによって、演算前後の値は変化していなくともよい。
「減算」する、とは、正の値を減ずる演算はもちろん、負の値を減ずる演算をも含む。また、「減算」する、とは、所定の値を減ずる演算が行われていれば足り、例えば、判定値の最大値又は最小値に達していることによって、演算前後の値は必ずしも変化していなくともよい。
【0037】
所定の値とは、例えば、受信間隔算出部104が算出したデータフレームの受信間隔と、受信間隔の閾値との「差分」に基づいて算出される値である。一例として、受信間隔と閾値との「差分」そのものを所定の値としてもよい。具体的には、受信間隔が閾値よりも短い場合には、判定値更新部107は、保存部106に保存されている判定値に、所定の値としてデータフレームの受信間隔と閾値との差分(すなわち、PT-P)を加算して判定値を更新する。また、受信間隔が閾値よりも長い場合には、判定値更新部107は、判定値に、所定の値としてデータフレームの受信間隔と閾値との差分(すなわち、P-PT)を減算して判定値を更新する。この場合、判定値は、受信間隔と閾値との差分の合計値であるといえる。以下の実施形態は、所定の値が受信間隔と閾値との差分である場合を例に挙げて説明する。
【0038】
ここで、本発明の「差分」とは、減算が含まれていれば足り、単純差(y-x)のみならず、二乗差(y2-x2)、差の平方根((y-x)1/2)、重みづけ差(by-ax:a、bは定数)なども含む。
【0039】
判定値は、受信間隔と閾値との差分そのものの合計値でなくともよく、差分の大きさに予め対応付けられた数値の合計値であってもよい。例えば、データフレームの受信間隔と閾値との差分が予め複数の範囲に分類され、データベース105には、受信間隔と閾値との差分の範囲と、各範囲に対応する数値とがテーブルに保存されている。そして、受信間隔と閾値との差分が特定の差分範囲内にある場合には、当該範囲に対応する数値を所定の値として加算又は減算することで、判定値を更新する。
【0040】
他の例では、判定値は、データフレームの受信間隔が閾値よりも短い回数を示す値である。例えば、判定値更新部107は、受信間隔が閾値よりも短い場合には、保存部106に保存されている判定値に所定の値として“1”を加算し、受信間隔が閾値よりも長い場合には、判定値から所定の値として“1”を減算する。なお、判定値に加算する所定の値は必ずしも“1”でなくともよく、その他の任意の数値に設定してもよい。
【0041】
判定値には、予め最小値及び最大値が設定されていてもよい。この場合、判定値が最小値の状態で、受信間隔が閾値よりも長い場合には、判定値更新部107は、減算処理後の判定値を最小値に差し替える、あるいは、減算処理を行わなくてもよい。同様に、判定値が最大値に達した後に、受信間隔が閾値よりも短い場合には、判定値更新部107は、加算処理後の判定値を最大値に差し替える、あるいは、加算処理を行わなくともよい。ただし、後述するように、異常フレーム判定部110が加算及び減算した順序に基づいて、判定値が限界値に最初に達したか否かを判定する場合には、減算処理又は加算処理が実際には実行されない場合であっても、判定値更新部107は、受信間隔が閾値よりも長い場合には減算処理を、受信間隔が閾値よりも短い場合には加算処理を行ったとみなす。一例として、判定値の最大値は、判定値の限界値CLと等しくともよい。また、一例として、判定値の最小値はゼロ(0)に設定されてもよい。この場合、判定値は必ず正の値となる。また、判定値の最小値は、判定値の初期値CIniと等しくともよい。
【0042】
判定部108の異常有無判定部109は、判定値更新部107によって更新された判定値Cと、データベース105に保存されている限界値CLとを比較する。そして、判定値Cが限界値CLに達したと判定した場合、すなわち、判定値Cが限界値CL以上であると判定した場合(C≧CL)、受信部101において受信したデータフレームに異常フレームがあると判定する。なお、判定値の最大値と限界値が等しい場合、判定値は限界値よりも大きい値にならないため、判定値Cが限界値CLと等しい場合(C=CL)に、異常有無判定部109は異常フレームがあると判定する。
【0043】
判定部108の異常フレーム判定部110は、異常有無判定部109が異常フレームがあると判定した場合に、受信部101が受信したデータフレームのうちいずれが異常フレームであるかを判定する。異常フレーム判定部110による判定方法については各実施形態で後述する。
【0044】
なお、異常フレーム判定部110が特定のデータフレームを異常フレームであると判定した場合、異常フレーム判定部110はさらに、異常フレームであると判定したデータフレームを破棄してもよい。あるいは、異常フレームであることを示す情報をデータフレームに付与してもよい。
【0045】
(3)各種パラメータの設定
次に、各実施形態で使用されるパラメータの設定について説明する。
(a)閾値(PT)
受信間隔の閾値PTは、ECU20がデータフレームを送信する所定の周期T以下の値に設定する(すなわち、閾値PT≦所定の周期T)。2つのデータフレームの受信間隔が所定の周期T以下の場合には、いずれかのデータフレームが不正に挿入された異常フレームである可能性があるためである。しかしながら、上述したように、ECU20から送信されたデータフレームの受信時刻は、タイムスタンプ時刻と実際の受信時刻とのずれや通信ネットワーク2の混雑によってずれる可能性がある。そのため、2つの正常なデータフレームの受信間隔が所定の周期T以下となることも起こりうる。そこで、より好適には、受信間隔の閾値PTは、ECU20から送信された正常な2つのデータフレームの受信間隔の最小値PMinと等しい値に設定する(すなわち、閾値PT=受信間隔の最小値PMin)。閾値を受信間隔の最小値と等しい値に設定することにより、受信部101が異常フレームを受信せず、ECU20から送信された正常なデータフレームのみを受信している場合、2つのデータフレームの受信間隔は必ず閾値PTよりも長くなる。
【0046】
受信間隔の最小値PMinは、例えば、実際に車載システム1に搭載されたECU20を用いて所定の周期Tでデータフレームを送信した場合に計測された受信間隔の最小値を最小値PMinに設定してもよい。別の例では、ECU20がデータフレームを送信する所定の周期Tの90%や80%の値を最小値PMinとして設定してもよい。
【0047】
(b)限界値(CL)
判定値の限界値CLは、ECU20から送信された2つの正常なデータフレームの間に不正なデータフレームが挿入された場合に、後の正常なデータフレームの受信時に判定値が限界値に達するような値に設定されることが望ましい。例えば、限界値は、閾値PTの2倍から所定のTを減じた値以下の値に設定する(すなわち、限界値CL≦2×閾値PT-所定の周期T)。
【0048】
図4は、2つの正常なデータフレームF
1、F
3の間に異常フレームF
2が挿入された場合の一例を説明する図である。
図4(a)は、データフレームに付与されたタイムスタンプの時刻、及びタイムスタンプの時刻に基づく受信間隔を示している。データフレームF
1~F
3を受信した時刻はそれぞれ、t、t+x、t+Tである。つまり、この例では、正常なデータフレームF
1、F
3の受信間隔は、ECU20が送信した所定の周期Tと等しい。また、
図4(b)は、データフレームF
1~F
3の受信間隔に応じて変化する判定値を示している。また、データフレームF
1を受信した時点での判定値Cは、判定値の初期値C
Iniであり、この例では0である。
【0049】
図4に示すとおり、データフレームF
1、F
2の受信間隔P
1は閾値P
Tよりも短いため、判定値更新部107は、データフレームF
1、F
2の受信間隔P
1と閾値P
Tとの差分(P
T-P
1)を判定値Cに加算する。ここで、データフレームF
1、F
2の受信時刻はそれぞれt、t+xであるため、受信間隔P
1は、(t+x)-x、すなわちxである。したがって、差分(P
T-x)が判定値Cに加算される。また、データフレームF
2、F
3の受信間隔P
2は閾値P
Tよりも短いため、判定値更新部107は、データフレームF
2、F
3の受信間隔P
2と閾値P
Tとの差分(P
T-P
2)を判定値Cに加算する。ここで、データフレームF
2、F
3の受信時刻はそれぞれt+x、t+Tであるため、受信間隔P
2は、(t+T)-(t+x)、すなわちT-xである。したがって、差分P
T-T-x)が判定値Cに加算される。
【0050】
図4の例では、データフレームF
3の受信後に判定値Cは限界値C
Lに達する。したがって、以下の式が成立する。
C
L≦(P
T-x)+(P
T-(T-x))
C
L≦2P
T-T
以上の式に示すとおり、限界値C
Lは閾値P
Tの2倍から所定のTを減じた値以下の値に設定される。
【0051】
なお、
図4は、正常なデータフレームF
1、F
3の受信間隔が所定の周期Tである場合を例に挙げて説明した。しかしながら、タイムスタンプ時刻と実際の受信時刻とのずれや通信ネットワーク2の混雑による遅延によって、正常なデータフレームF
1、F
3の受信間隔が所定の周期Tよりも長くなった場合、上述した限界値の設定では、データフレームF
3の受信後に判定値Cが限界値C
Lに達しないことが起こりうる。
【0052】
そこで、より好適には、限界値CLは、閾値の2倍から、ECU20から送信された正常な2つのデータフレームの受信間隔の最大値PMaxを減じた値と等しい値に設定する(すなわち、限界値CL=2×閾値PT-受信間隔の最大値PMax)。このように限界値を設定することにより、ECU20から送信された2つの正常なデータフレームの間に不正なデータフレームが挿入された場合に、後の正常なデータフレームの受信時に必ず判定値が限界値に達することになる。
【0053】
受信間隔の最大値PMaxは、例えば、実際に車載システム1に搭載されたECU20を用いて所定の周期Tでデータフレームを送信した場合に計測された受信間隔の最大値を最大値PMaxに設定してもよい。別の例では、ECU20がデータフレームを送信する所定の周期Tの110%や120%の値を最大値PMaxとして設定してもよい。
【0054】
なお、上述した限界値は、受信間隔と閾値との差分を所定の値とする場合に使用される設定の一例にすぎず、この例に限定されるものではない。例えば、受信間隔と閾値との差分の大きさに対応付けられた数値を所定の値とする場合には、上述した限界値とは異なる値に限界値を設定してもよい。
【0055】
(c)近接受信間隔(D)
次に、後述する実施形態で使用する近接受信間隔Dについて説明する。近接受信間隔Dは、2つのデータフレームが近接して受信されたか否かの基準となる受信間隔である。すなわち、2つのデータフレームの受信間隔が近接受信間隔以下の場合、これらの2つのデータフレームは近接して受信されたデータフレームであると判定されることになる。
【0056】
近接受信間隔Dは、2つのデータフレームが近接して受信された場合に、判定値が直ちに限界値に達するように設定する。つまり、閾値PTと近接受信間隔Dの差分が限界値以上となるように、近接受信間隔Dを設定する。この場合、以下の式が成立する。
PT-D≧CL
D≦PT-CL
以上の式に示すとおり、近接受信間隔Dは閾値PTから限界値CLを減じた値以下の値に設定する。
【0057】
なお、上述したように、好適には、閾値PTは正常なデータフレームの受信間隔の最小値PMinと等しい値に設定され、限界値CLは、閾値の2倍から正常なデータフレームの受信間隔の最大値PMaxを減じた値に設定される。閾値PT、限界値CLがこれらの値に設定される場合、近接受信間隔Dは以下の式で表されてもよい。
D=(受信間隔の最小値PMin)-{2×(受信間隔の最小値PMin)-受信間隔の最大値PMax}
D=受信間隔の最大値PMax-受信間隔の最小値PMin
すなわち、近接受信間隔Dは、正常なデータフレームの受信間隔の最大値PMaxから、正常なデータフレームの受信間隔の最小値PMinを減じた値と等しい値に設定される。
【0058】
2.第1の実施形態
(1)異常フレームの判定方法
次に、本実施形態における異常フレーム判定部110による異常フレームの判定方法を説明する。
【0059】
異常フレーム判定部110はまず、判定値が限界値に「最初に」達したか否かを判定する。一例として、異常フレーム判定部110は、限界値未満の判定値に所定の値が加算されたことにより判定値が限界値に達した場合に、判定値が限界値に最初に達したものと判定する。別の例では、判定値の初期値CIniに所定の値が予め設定された所定の回数加算されたことにより判定値が限界値に達した場合、あるいは、判定値更新部107によって所定の値が減算された後に、所定の値が判定値に所定の回数加算されたことにより判定値が初めて限界値に達した場合に、異常フレーム判定部110は判定値が限界値に最初に達したと判定してもよい。例えば、上述したように、限界値が、2つの正常なデータフレームの間に異常フレームが挿入されると、後の正常なデータフレームの受信時に判定値が限界値に達するように設定される場合には、所定の回数として2回が設定されることが望ましい。この場合、2つの正常なデータフレームの間に異常フレームが挿入されたことにより、初期値に所定の値が2回加算されると、異常フレーム判定部110は判定値が限界値に最初に達したと判定する。
【0060】
ここで「最初に」とは、例えば、装置を起動してから初めて達する場合はもちろん、所定の期間内で初めて、あるいは、所定の条件を満たしてから初めて達する場合も含む。
【0061】
図5は、4つのデータフレーム(F
1~F
4)を受信した場合の一例を説明する図である。
図5(a)は、データフレームに付与されたタイムスタンプの時刻、及びタイムスタンプの時刻に基づく受信間隔を示しており、
図5(b)は、データフレームF
1~F
4の受信間隔に応じて変化する判定値を示している。
図5の例では、4つのデータフレームのうち、データフレーム(F
1、F
2、F
4)は正常なデータフレームであり、データフレームF
3が異常フレームである。
【0062】
ここで、以下の例では、判定値の初期値CIniが判定値の最小値であり、所定の回数として2回が設定されている場合を例に挙げて説明する。
【0063】
例えば、
図5に示す例では、データフレームF
1とデータフレームF
2の受信間隔P
1は閾値P
Tよりも長いため、判定値更新部107は、判定値から受信間隔と閾値の差分(P
1-P
T)を減算する。ただし、この例では、減算処理をする前の判定値の値は、判定値の最小値である初期値(C
Ini=0)であるため、更新後の判定値は初期値のままである。次いで、データフレームF
2とデータフレームF
3の受信間隔P
2、及びデータフレームF
3とデータフレームF
4の受信間隔P
3はいずれも閾値P
Tよりも短いため、判定値更新部107は、判定値に受信間隔と閾値の差分を加算する。
図5(b)に示すとおり、判定値に受信間隔と閾値との差分(P
T-P
3)を加算すると、判定値Cは限界値C
Lに達するため、異常有無判定部109は異常フレームがあると判定する。
【0064】
ここで、
図5では、判定値更新部107が、データフレームF
2の受信後に所定の値を減算した後に、データフレームF
3及びデータフレームF
4の受信後に所定の値を2回判定値に加算したことによって判定値が限界値に達している。そのため、データフレームF
4の受信後に異常有無判定部109が異常フレームがあると判定したとき、異常フレーム判定部110は判定値が限界値に最初に達したと判定する。
【0065】
なお、
図5では、判定値更新部107が、判定値の初期値C
Iniに、所定の値を2回加算したことによって判定値が限界値に達している。また、判定値更新部107が、限界値未満の判定値(すなわち、初期値にC
IniにP
T-P
2を加算した後の判定値)に所定の値を加算したことによって判定値が限界値に達している。したがって、これらのことからも、異常フレーム判定部110は判定値が限界値に最初に達したと判定することができる。
【0066】
図6は、
図5のデータフレームF
4の後に、異常フレームF
5をさらに受信した場合を示している。データフレームF
4とデータフレームF
5の受信間隔P
4は閾値P
Tよりも短いため、判定値更新部107は、判定値に受信間隔と閾値の差分(P
T-P
4)を加算する。ただし、更新前の判定値は、判定値の限界値、すなわち最大値であるため、更新後の判定値は限界値C
Lのままである。そして、更新後の判定値Cは限界値C
Lに達しているため、異常有無判定部109は異常フレームがあると判定する。ここで、データフレームF
5の受信後に異常有無判定部109が異常フレームがあると判定したとき、判定値更新部107が判定値に対して3回加算されたことにより判定値が限界値に達している。そのため、異常フレーム判定部110は判定値が限界値に最初に達したとは判定しない。
図5で説明したとおり、異常有無判定部109は、データフレームF
4の受信後に判定値が限界値に達しているため、データフレームF
5の受信後に判定値が限界値に達したとき、判定値が限界値に達したのが最初ではないことは明らかである。
【0067】
また、
図6の例では、データフレームF
5の受信後に異常有無判定部109が異常フレームがあると判定したとき、判定値更新部107は、限界値以上である判定値に所定の値が加算されている。このことからも、データフレームF
5の受信後に判定値が限界値に達したときに、判定値が限界値に達したのが最初ではないと判定することができる。
【0068】
あるいは、異常フレーム判定部110は、所定の値が減算された後に所定の値が2回加算されたことにより判定値が限界値に達した場合であって、且つ、所定の値が減算された後の判定値が判定値の初期値である場合に、判定値が限界値に最初に達したと判定してもよい。所定の値が2回目に加算された後の判定値をC、判定値Cに更新される前の判定値であって、所定の値が1回目に加算された後の判定値をC1とすると、減算された後の判定値とは、判定値C1に更新される前の判定値C2であり、保存部106に保存されている。所定の値が減算された後の判定値が初期値以外の値である場合、異常有無判定部109が異常フレームがあると判定したときに受信したデータフレームや、その直前に受信したデータフレームよりもさらに前に受信した異常フレームが原因で加算された値が判定値に含まれている。これに対し、所定の値が減算された後の判定値が初期値である場合、この判定値には、過去に異常フレームを受信したことによって加算された値の影響はない。そこで、所定の値が減算された後の判定値が、判定値の初期値である場合に、判定値が限界値に最初に達したと判定してもよい。
【0069】
なお、異常フレーム判定部110が、判定値が限界値に達したのが最初であるか否かを判定する方法は、上述した例に限定されるものではない。例えば、異常有無判定部109が過去に異常フレームがあると判定してから所定の期間が経過している場合には、異常フレーム判定部110は判定が限界値に達したのが最初であると判定してもよい。
【0070】
そして、異常フレーム判定部110は、判定値が限界値に達したのが最初ではないと判定した場合、異常フレームがあると判定した時に受信したデータフレーム、又はその直前に受信したデータフレームの少なくとも一方が異常フレームであると判定する。
図6の例では、データフレームF
5を受信した時点で異常有無判定部109が異常フレームがあると判定した場合、異常フレーム判定部110は判定値が限界値に達したのが最初ではないと判定し、異常フレームがあると判定した時に受信したデータフレームF
5、又はその直前に受信したデータフレームF
4の少なくとも一方が異常フレームであると判定する。つまり、異常フレーム判定部110は、限界値以上の判定値に所定の値がさらに加算された場合には、異常フレームがあると判定した時に受信したデータフレームF
5、又はその直前に受信したデータフレームF
4の少なくとも一方が異常フレームであると判定する。
【0071】
これに対し、異常フレーム判定部110が、判定値が限界値に達したのが最初であると判定した場合、異常フレーム判定部110はさらに、異常フレームがあると判定した時に受信したデータフレームと、その直前に受信したデータフレームとが近接して受信されたか否かを判定する。2つのデータフレームが近接して受信されたか否かは、2つのデータフレームの受信間隔が近接受信間隔Dよりも短いか否かによって判定する。
【0072】
上述したとおり、近接受信間隔Dは、2つのデータフレームが近接して受信されたか否かの基準となる受信間隔であり、2つのデータフレームの受信間隔が近接受信間隔よりも長い場合、これらのデータフレームは近接して受信されていないと判定する。また、2つのデータフレームの受信間隔が近接受信間隔以下の場合、これらの2つのデータフレームは近接して受信されたと判定する。2つのデータフレームの受信間隔が近接受信間隔以下の場合、閾値と2つのデータフレームの受信間隔との差分は限界値よりも大きい値となり、判定値は直ちに限界値に達する。
【0073】
異常フレーム判定部110は、2つのデータフレームの受信間隔が近接受信間隔よりも長いと判定した場合、異常フレーム判定部110は、異常フレームがあると判定した時に受信したデータフレームの直前に受信したデータフレームが異常フレームであると判定する。これに対し、2つのデータフレームの受信間隔が近接受信間隔以下であり、2つのデータフレームが近接して受信されたと判定した場合には、異常フレームがあると判定した時に受信したデータフレーム、又はその直前に受信したデータフレームの少なくとも一方が異常フレームであると判定する。例えば、
図5の例では、データフレームF
4の受信後に、判定値は限界値に最初に達する。また、データフレームF
3とデータフレームF
4との受信間隔は近接受信間隔よりも長い。そのため、異常フレーム判定部110は、異常フレームがあると判定した時に受信したデータフレームF
4の直前に受信したデータフレームF
3が異常フレームであると判定する。
【0074】
図7は、3つのデータフレーム(F
1~F
3)を受信した場合の一例を説明する図である。
図7(a)、
図7(b)は、データフレームに付与されたタイムスタンプの時刻、及びタイムスタンプの時刻に基づく受信間隔を示しており、
図7(c)は、データフレームF
1~F
3の受信間隔に応じて変化する判定値を示している。
図7(a)、
図7(b)はいずれもデータフレームF
2とデータフレームF
3とが近接して受信している場合を示しているが、
図7(a)ではデータフレームF
2が異常フレームであるのに対し、
図7(b)ではデータフレームF
3が異常フレームである。
【0075】
図7(a)では、上述したように、データフレームF
2とデータフレームF
3とは近接して受信しているため、これらの受信間隔P
2は近接受信間隔Dよりも短い。ここで、正常なデータフレームF
1とデータフレームF
3の受信間隔(P
1+P
2)が、ECU20の送信間隔である所定の周期Tと同じである場合、正常なデータフレームF
1と異常フレームF
2との受信間隔は閾値P
Tよりも長くなる。そのため、データフレームF
2を受信した時点では、判定値に加算処理はされない。そして、データフレームF
3の受信時に、閾値P
Tと受信間隔P
2との差分(P
T-P
2)が判定値に加算されることで、判定値Cが限界値C
Lに達する。
【0076】
同様に、
図7(b)では、データフレームF
2とデータフレームF
3とは近接して受信しているため、これらの受信間隔P
2は近接受信間隔Dよりも短い。ここで、正常なデータフレームF
1及びデータフレームF
2の受信間隔P
1は閾値P
Tよりも長いため、データフレームF
2を受信した時点では、判定値に加算処理はされない。そして、データフレームF
3の受信時に、閾値P
Tと受信間隔P
2との差分(P
T-P
2)が判定値に加算されることで、判定値Cが限界値C
Lに達する。
【0077】
図7(a)、
図7(b)において、データフレームF
1とデータフレームF
2の受信間隔P
1、データフレームF
1とデータフレームF
3の受信間隔(P
1+P
2)はいずれも閾値P
Tよりも長く、正常なデータフレームの受信間隔である。つまり、正常なデータフレームF
1の次に受信する正常なデータフレームの受信時刻は、データフレームF
2の受信時刻、データフレームF
3の受信時刻のどちらにもなりうる。また、
図7(a)、
図7(b)のいずれも、判定値は
図7(c)に示すように変化するため、データフレームF
2とデータフレームF
3のいずれが異常フレームであるかを特定することは困難である。つまり、2つのデータフレームを近接して受信した場合には、2つのデータフレームのいずれが異常フレームであるかを判定することは難しい。そこで、この場合は、異常検知時のデータフレームと、その直前に受信したデータフレームの少なくとも一方が異常フレームであると判定する。
図7の場合、データフレームF
2、F
3の少なくとも一方が異常フレームであると判定する。
【0078】
(2)異常フレーム判定装置10の動作
【0079】
次に、
図8を参照して異常フレーム判定装置10の動作を説明する。なお、
図8は異常フレーム判定装置10における、異常フレームの判定方法を示すだけでなく、異常フレーム判定装置10で実行されるプログラムの処理手順を示すものである。そして、これらの処理は、
図8に示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。以下の実施形態のフロー図においても同様である。また、
図8に示す処理手順は、異常フレーム判定装置10がデータフレームを受信する度に繰り返し実行される。
【0080】
受信部101は、ECU20から送信されたと推定されるデータフレームを受信する(S101)。
タイムスタンプ付与部103は、受信したデータフレームに対してタイムスタンプを付与する(S102)。
受信間隔算出部104は、S102で付与されたタイムスタンプが示す時刻に基づいて、S101にて受信したデータフレームと、当該データフレームの直前に受信部101が受信したデータフレームとの受信間隔Pを算出する(S103)。
判定値更新部107は、S103で算出した受信間隔Pと、受信間隔の閾値P
Tとを比較する(S104)。ここで、受信間隔が閾値よりも短い場合(S104:YES)には、次のS105の処理に進む。これに対し、受信間隔が閾値よりも長い場合(S104:NO)には、S106の処理に進む。なお、
図8では、受信間隔が閾値と等しい場合にも、S106の処理に進むフローチャートを例示している。しかしながら、受信間隔が閾値と等しい場合にS105の処理に進んでもよい。S105及びS106はいずれも、判定値更新部107における判定値の更新処理である。
【0081】
受信間隔が閾値よりも短い場合(S104:YES)、判定値更新部107は、保存部106に保存されている判定値Cに、S103で算出した受信間隔Pと閾値PTとの差分(PT-P)を加算して、判定値を更新する(S105)。ここで、加算後の判定値Cが判定値の最大値Cmax以上である場合には、判定値の最大値を更新後の判定値とする。
【0082】
次いで、異常有無判定部109は、S105で更新した判定値Cと限界値CLとを比較する(S107)。
ここで、判定値が限界値に達している場合(S107:YES)には、異常有無判定部109は、データフレームに異常フレームがあると判定する(S108)。
そして、異常フレーム判定部110は、受信したデータフレームのいずれが異常フレームであるかを判定する(S109)。S109の処理の詳細については詳述する。
【0083】
これに対し、受信間隔が閾値よりも長い場合(S104:NO)、判定値更新部107は、保存部106に保存されている判定値Cから、S103で算出した受信間隔Pと閾値PTとの差分(P-PT)を減算して、判定値を更新する(S106)。ここで、減算後の判定値Cが判定値の最小値Cmin以下である場合には、判定値の最小値を更新後の判定値とする。
【0084】
そして、S105又はS106で更新した判定値Cを保存部106に記録して処理を終了する(S110)。
【0085】
図9は、S109の処理を説明する図である。
異常フレーム判定部110は、判定値が限界値に達したのが最初であるか否かを判定する(S201)。上述した通り、判定値が限界値に達したのが最初であるか否かを判定する方法は、任意の方法を用いることができる。
判定値が限界値に達したのが最初であると判定した場合(S201:YES)、異常フレーム判定部110はさらに、S101で受信したデータフレームと、当該データフレームの直前に受信したデータフレームの受信間隔が近接受信間隔よりも短いか否か、すなわち、2つのデータフレームを近接して受信したか否かを判定する(S202)。
そして、受信間隔が近接受信間隔よりも長く、受信したデータフレームとその直前に受信したデータフレームが近接して受信されていない場合には、直前のフレームが異常フレームであると判定する(S203)。
これに対し、判定値が限界値に達したのが最初ではない場合(S201:NO)、又は、受信間隔が近接受信間隔以下の場合には、受信したデータフレームとその直前に受信したデータフレームの少なくとも一方が異常フレームであると判定する(S204)。
【0086】
(3)小括
本実施形態によれば、所定の条件を満たす場合には、受信したデータフレームの直前に受信したデータフレームが異常フレームであると判定し、所定の条件を満たさない場合であっても、受信したデータフレーム又はその直前のデータフレームの少なくとも一方が異常フレームであると判定することができる。
【0087】
3.第2の実施形態
上述した実施形態では、判定値が限界値に達した後、判定値は最大値である限界値のまま保存部106に保存される構成を説明した。本実施形態では、判定値が限界値に達した場合、判定値を初期値にリセットする。以下、本実施形態の構成を実施形態1との相違点を中心に説明する。
【0088】
本実施形態の異常フレーム判定装置10の構成は実施形態1と同じであり、
図2を参照して説明する。異常フレーム判定装置10の各構成は、実施形態1と同様の機能を有する。本実施形態では、判定値が限界値に達すると、判定値は初期値C
Iniにリセットされるため、判定値が限界値に達する場合とは、判定値がリセットされた後に限界値に最初に達する場合に相当する。したがって、本実施形態の異常フレーム判定部110は、判定値が限界値に達したのが最初であるか否かを判定する必要はない。
【0089】
図10、
図11を参照して、本実施形態の異常フレーム判定装置10の動作を説明する。
図8と共通する処理については説明を省略する。
図8では、S109で異常フレームを判定した後、S105又はS106で更新した後の判定値を保存部106に保存(S110)した。しかしながら、本実施形態では、
図10に示すように、S109で異常フレームを判定した後、判定値Cを初期値C
Iniに更新することで、判定値をリセットする(S301)。また、S103で算出した受信間隔が閾値よりも長い(S104:NO)、又は判定値が限界値に達していない場合(S107:NO)にのみ、S105又はS106で更新後の判定値を保存部106に保存(S302)する。
【0090】
さらに、
図11は、
図10のS109の処理を説明する図である。
図9とは異なり、S201の処理が行われない。これは、本実施形態において、判定値が限界値に達する場合とは、必ず、判定値がリセットされた後に限界値に最初に達する場合であるためである。
【0091】
本実施形態によれば、判定値が限界値に最初に達したか否かを判定することなく、受信したデータフレームの直前に受信したデータフレームが、あるいは、受信したデータフレーム又はその直前のデータフレームの少なくとも一方が異常フレームであると判定することができる。
【0092】
4.総括
以上、本発明の異常フレーム判定装置等の特徴について説明した。
【0093】
各実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
【0094】
実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
【0095】
各実施形態に記載した処理、フロー、及び方法として把握できる機能ブロック、については、一のステップでその前段の他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
【0096】
各実施形態、及び特許請求の範囲で使用する、第1、第2、乃至、第N(Nは整数)、の用語は、同種の2以上の構成や方法を区別するために使用しており、順序や優劣を限定するものではない。
【0097】
各実施形態は、車両に搭載される異常フレーム判定装置を前提としているが、本発明は、特許請求の範囲で特に限定する場合を除き、車両用以外の専用又は汎用の装置も含むものである。
【0098】
また、本発明の異常フレーム判定装置の形態の例として、以下のものが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
【0099】
また異常フレーム判定装置に、アンテナや通信用インターフェースなど、必要な機能を追加してもよい。
【0100】
加えて、本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録した本発明を実現するためのプログラム、及びこれを実行可能な専用又は汎用CPU及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
【0101】
専用や汎用のハードウェアの非遷移的実体的記録媒体(例えば、外部記憶装置(ハードディスク、USBメモリ、CD/BD等)、又は内部記憶装置(RAM、ROM等))に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【符号の説明】
【0102】
10 異常フレーム判定装置、20 電子制御装置、101 受信部、104 受信間隔算出部、106 保存部、107 判定値更新部、110 異常フレーム判定部