(57)【要約】【課題】車載ネットワーク上で通信をおこなう通信ノードの動作状態を把握可能なファジングを実現する。【解決手段】通信ノード試験装置１は、車載ネットワーク上で通信をおこなう通信ノード２に接続し、制御部１ａと記憶部１ｂを有する。制御部１ａは、通信ノード２に対し、通信ノード２の動作に不具合を発生させる可能性を持つ試験データであるファズを作成して、通信ノード２にファズを送信してファジングによる試験を実行する。また、制御部１ａは、通信ノード２から送信されたエラーフレームの有無およびデータフレームの応答情報に応じて、通信ノード２の動作状態を判定する。記憶部１ｂは、作成されたファズと、通信ノード２の動作状態の判定結果とを記憶する。【選択図】図１
2018098707.tif 000002
【特許請求の範囲】
【請求項１】
車載ネットワーク上で通信をおこなう通信ノードに対し、ファズを作成して、前記通信ノードに前記ファズを送信してファジングによる試験を実行し、前記ファズに対して、前記通信ノードから送信されたエラーフレームの有無およびデータフレームに含まれる応答情報にもとづいて前記通信ノードの動作状態を判定する制御部と、
前記ファズと、前記通信ノードの動作状態の判定結果とを記憶する記憶部と、
を有する通信ノード試験装置。
【請求項２】
前記通信ノードは、前記車載ネットワークの通信プロトコルに依存する制御をおこなう第１の通信ノード制御部と、前記通信プロトコルに非依存な制御をおこなう第２の通信ノード制御部とを含み、
前記制御部は、前記第１の通信ノード制御部を試験対象にした第１のファズを作成し、前記第２の通信ノード制御部を試験対象にした第２のファズを作成し、前記第１のファズまたは前記第２のファズを前記通信ノードに送信して、前記通信ノードの内部機能の試験対象を切り分ける、
請求項１に記載の通信ノード試験装置。
【請求項３】
前記制御部は、
前記第１のファズを前記通信ノードに送信して前記ファジングを実行した際に、
前記エラーフレームを受信した場合に、前記第１の通信ノード制御部の動作状態を正常と判定し、
前記エラーフレームを受信しない場合に、前記第１の通信ノード制御部の動作状態を異常と判定する、
請求項２に記載の通信ノード試験装置。
【請求項４】
前記制御部は、
前記第２のファズを前記通信ノードに送信して前記ファジングを実行した際に、
前記エラーフレームを受信した場合に、前記第２の通信ノード制御部の動作状態を異常と判定し、
前記エラーフレームを受信せず、かつ前記応答情報が異常受信を示す第１の値の場合に、前記第２の通信ノード制御部の動作状態を異常と判定し、
前記エラーフレームを受信せず、かつ前記応答情報が正常受信を示す第２の値の場合に、前記第２の通信ノード制御部の動作状態を正常と判定する、
請求項２に記載の通信ノード試験装置。
【請求項５】
前記制御部は、前記第２の通信ノード制御部に対して前記ファジングを実行する場合、前記第２のファズに対して、前記通信ノードに含まれるＦＩＦＯメモリの容量段数に等しい数のダミーデータを生成し、前記第２のファズに前記ダミーデータを付加して前記通信ノードに送信する、
請求項２に記載の通信ノード試験装置。
【請求項６】
コンピュータが、
車載ネットワーク上で通信をおこなう通信ノードに対し、ファズを作成し、
前記通信ノードに前記ファズを送信してファジングによる試験を実行し、
前記ファズに対して、前記通信ノードから送信されたエラーフレームの有無およびデータフレームに含まれる応答情報にもとづいて前記通信ノードの動作状態を判定する、
通信ノード試験方法。
【請求項７】
コンピュータに、
車載ネットワーク上で通信をおこなう通信ノードに対し、ファズを作成し、
前記通信ノードに前記ファズを送信してファジングによる試験を実行し、
前記ファズに対して、前記通信ノードから送信されたエラーフレームの有無およびデータフレームに含まれる応答情報にもとづいて前記通信ノードの動作状態を判定する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ノード試験装置、通信ノード試験方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ＥＣＵ（Electronic Control Unit）と呼ばれる通信ノードの間で通信をおこなう自動車の車載ネットワークに適用されるＣＡＮ（Controller Area Network）の技術が進展しており、自動車制御を支える主要技術として重要性が増大している。
【０００３】
一方、ＩＴ分野においては、ＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）上のネットワーク機器の脆弱性を発見する試験手法として、ファジング（fuzzing）が知られている。
【０００４】
ファジングを実施するための専用ツールであるファジングツールは、ファズと呼ばれる試験データを大量に作成し、ファズを試験対象のネットワーク機器に対して送信する。この場合、ファジングツールは、ファズを１個送信する毎に、ネットワーク疎通を確認するためのコマンドであるｐｉｎｇを送信する。
【０００５】
そして、ｐｉｎｇ応答の有無により、ネットワーク機器の応答や挙動が確認される。たとえば、ファジングツールがｐｉｎｇ応答を受信できなかった場合、試験対象のネットワーク機器では、そのｐｉｎｇの直前に送信されたファズを受信したことが原因で、何らかの問題が発生したと推測される。
【０００６】
このようなファジングを生産者がネットワーク機器の出荷前に実施することで、ネットワーク機器の脆弱性を発見することができるので、脆弱性を事前に修正しておくことが可能になる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−１９２２１６号公報
【特許文献２】特開２０１４−１８３４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＣＡＮには、上述のｐｉｎｇに相当するようなコマンドを用いてネットワーク疎通を確認するための制御が存在しない。このため、ＴＣＰ／ＩＰ上のネットワーク機器に実施しているファジングをＣＡＮに対して適用しても試験対象のＥＣＵの動作状態を把握することが困難である。
【０００９】
１つの側面では、本発明は、車載ネットワーク上で通信をおこなう通信ノードの動作状態を把握可能なファジングを実現した通信ノード試験装置、通信ノード試験方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、通信ノード試験装置が提供される。通信ノード試験装置は、制御部と記憶部を有する。制御部は、車載ネットワーク上で通信をおこなう通信ノードに対し、ファズを作成して、通信ノードにファズを送信してファジングによる試験を実行し、ファズに対して、通信ノードから送信されたエラーフレームの有無およびデータフレームに含まれる応答情報にもとづいて通信ノードの動作状態を判定する。記憶部は、ファズと、通信ノードの動作状態の判定結果とを記憶する。
【００１１】
また、上記課題を解決するために、コンピュータが上記通信ノード試験装置と同様の制御を実行する通信ノード試験方法が提供される。
また、上記課題を解決するために、コンピュータに上記通信ノード試験装置と同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１２】
１態様によれば、車載ネットワーク上で通信をおこなう通信ノードの動作状態を把握可能なファジングを実現することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態の通信ノード試験装置の構成の一例を示す図である。
【図２】第２の実施形態の通信ノード試験システムの構成の一例を示す図である。
【図３】第２の実施形態の通信ノード試験システムの構成の一例を示す図である。
【図４】第２の実施形態の通信ノード試験装置のハードウェア構成の一例を示す図である。
【図５】第２の実施形態の通信ノード試験装置の機能構成の一例を示す図である。
【図６】ＥＣＵの機能構成の一例を示す図である。
【図７】ＥＣＵ間の通信動作の一例を説明するための図である。
【図８】ＣＡＮの標準フォーマットのデータフレームの構成を示す図である。
【図９】ＣＡＮの拡張フォーマットのデータフレームの構成を示す図である。
【図１０】ビットスタッフィングルールを説明するための図である。
【図１１】エラーフレームの構成を示す図である。
【図１２】データフレームに対するエラー検出を説明するための図である。
【図１３】ＣＡＮコンポーネントに対するファジングの実行フェーズのフローチャートを示す図である。
【図１４】ファズにダミーデータを付加したファジングの動作の一例を説明するための図である。
【図１５】ＥＣＵ制御部に対するファジングの実行フェーズのフローチャートを示す図である。
【図１６】ＥＣＵのファジングのフローチャートを示す図である。
【図１７】データフレームの周期性の監視も含めてＥＣＵ制御部の動作を判定する場合のフローチャートを示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して実施形態を詳細に説明する。
［第１の実施形態］
第１の実施形態の通信ノード試験装置について図１を用いて説明する。図１は、第１の実施形態の通信ノード試験装置の構成の一例を示す図である。通信ノード試験装置１は、車載ネットワーク上で通信をおこなう通信ノード２に接続してファジングによる試験をおこなう装置であり、制御部１ａと記憶部１ｂを有する。
【００１５】
制御部１ａは、車載ネットワーク上で通信をおこなう通信ノード２に対し、通信ノード２の動作に不具合を発生させる可能性を持つ試験データであるファズを作成して、通信ノード２にファズを送信してファジングによる試験を実行する。
【００１６】
また、制御部１ａは、通信ノード２から送信されたエラーフレームの有無およびデータフレームの応答情報（たとえば、確認応答スロット（ＡＣＫ（Acknowledgement）スロットの値）に応じて、通信ノード２の動作状態を判定する。記憶部１ｂは、ファズと、通信ノード２の動作状態の判定結果とを記憶する。また、記憶部１ｂは、自身が送信したデータに対して、自身が送信したはずのデータが実際のネットワーク上でどう流れたか、エラーフレームの受信があったかなかったかなどを記憶してもよい。
【００１７】
一方、通信ノード２は、車載ネットワークの通信プロトコルに依存する制御をおこなう通信ノード制御部２ａ（第１の通信ノード制御部）と、車載ネットワークの通信プロトコルに非依存な制御をおこなう通信ノード制御部２ｂ（第２の通信ノード制御部）とを含む。
【００１８】
ここで図１の例で、通信ノード２に対してファジングをおこなう場合、制御部１ａは、通信ノード制御部２ａの動作に不具合を発生させるための複数のパターンのファズ（第１のファズ）として、ファズｆ１−１、ｆ１−２、ｆ１−３を作成するものとする。
【００１９】
また、制御部１ａは、通信ノード制御部２ｂの動作に不具合を発生させるための複数のパターンのファズ（第２のファズ）として、ファズｆ２−１、ｆ２−２、ｆ２−３を作成するものとする。そして、制御部１ａは、これら作成したファズを通信ノード２に送信することで、通信ノード２の内部機能の試験対象を切り分けてファジングを実行する。
【００２０】
たとえば、制御部１ａは、ファズｆ１−１、ｆ１−２、ｆ１−３を通信ノード２に送信した際に、ファズｆ１−１、ｆ１−２の応答で正常応答を受信したが、ファズｆ１−３の応答で異常応答を受信したとする。この場合、制御部１ａは、通信ノード２のファジングにおいて、通信ノード制御部２ａがファズｆ１−３を受信したことによって異常が生じたことを検出する。
【００２１】
なお、異常応答とは、制御部１ａがエラーフレームを受信すべきでないのに受信した場合、エラーフレームを受信すべきなのに受信しない場合、またはＡＣＫスロットの値が所望値でない場合、またはこれらの組合せが該当する。
【００２２】
また、制御部１ａは、ファズｆ２−１、ｆ２−２、ｆ２−３を通信ノード２に送信した際に、ファズｆ２−１、ｆ２−３の応答で正常応答を受信したが、ファズｆ２−２の応答で異常応答を受信したとする。この場合、制御部１ａは、通信ノード２のファジングにおいて、通信ノード制御部２ｂがファズｆ２−２を受信したことによって異常が生じたことを検出する。
【００２３】
このように、通信ノード試験装置１は、車載ネットワーク上で通信をおこなう通信ノードにファズを送信し、通信ノード２から返信されたエラーフレームの有無およびＡＣＫスロットの値にもとづいて通信ノード２の動作状態を判定する。これにより、通信ノード試験装置１において、車載ネットワーク上で通信をおこなう通信ノード２の動作状態を把握可能なファジングを実現することができる。
【００２４】
［第２の実施形態］
次に、第２の実施形態について説明する。第２の実施形態は、通信ノード試験装置が、車載ネットワークに適用されるＣＡＮにおいて、ＣＡＮ上の通信ノードの動作状態を把握するためのファジングを実施するものである。なお、以降では試験対象となる通信ノードをＥＣＵと呼ぶ。まず、通信ノード試験装置が適用されるシステム構成について図２、図３を用いて説明する。
【００２５】
図２は、第２の実施形態の通信ノード試験システムの構成の一例を示す図である。通信ノード試験システム１−１は、図１に示した通信ノード試験装置１の機能を有する通信ノード試験装置１０と、ＥＣＵ２０とを備え、通信ノード試験装置１０とＥＣＵ２０は、互いに接続されている。ＣＡＮのファジングをおこなう場合、基本的に、通信ノード試験システム１−１のように、通信ノード試験装置１０に、試験対象として１台のＥＣＵが接続される。
【００２６】
図３は、第２の実施形態の通信ノード試験システムの構成の一例を示す図である。通信ノード試験システム１−２は、通信ノード試験装置１０と、ＥＣＵ２０−１、２０−２、２０−３、２０−４などの複数のＥＣＵとを備え、通信ノード試験装置１０と複数のＥＣＵとはバス２００で接続されている。
【００２７】
通信ノード試験システム１−２では、通信ノード試験装置１０と、複数のＥＣＵとがバス接続して、通信ノード試験装置１０がＣＡＮ上の全ＥＣＵをターゲットにして、ファジングをおこなう構成である。この場合、各ＥＣＵにはデータフレームの送信時に、それぞれのＥＣＵがデータフレームに含めて送信すべきＩＤ（Identifier）が割り当てられるので、通信ノード試験装置１０は、ＩＤにもとづき試験対象とするＥＣＵを識別することができる。
【００２８】
次に、通信ノード試験装置１０のハードウェア構成について図４を用いて説明する。図４は、第２の実施形態の通信ノード試験装置のハードウェア構成の一例を示す図である。通信ノード試験装置１０は、プロセッサ１００によって装置全体が制御されている。プロセッサ１００には、バス１０３を介してメモリ１０１と複数の周辺機器が接続されている。プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２９】
メモリ１０１は、通信ノード試験装置１０の主記憶装置として使用される。メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０１には、プロセッサ１００による処理に要する各種データが格納される。
【００３０】
また、メモリ１０１は、通信ノード試験装置１０の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ（Solid State Drive）などの半導体記憶装置やＨＤＤ（Hard Disk Drive）などの磁気記録媒体を含んでもよい。
【００３１】
バス１０３に接続されている周辺機器としては、入出力インタフェース１０２、および通信インタフェース１０４がある。
入出力インタフェース１０２は、プロセッサ１００からの命令にしたがって通信ノード試験装置１０の状態を表示する表示装置として機能するモニタ（たとえばＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）など）が接続されていてもよい。また、入出力インタフェース１０２は、キーボードやマウスなどの情報入力装置（保守端末を含む）を接続可能であって、情報入力装置から送られてくる信号をプロセッサ１００に送信する。
【００３２】
また、入出力インタフェース１０２は、周辺機器を接続するための通信インタフェースとして機能する。たとえば、入出力インタフェース１０２は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなう光学ドライブ装置を接続することができる。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Re Writable）などがある。
【００３３】
また、入出力インタフェース１０２は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１０２との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなう装置である。メモリカードは、カード型の記録媒体である。
【００３４】
また、入出力インタフェース１０２はシリアル通信装置やＬＡＮ装置などでもよく、これらによって外部ネットワークに接続されてもよい。装置外部で生成したファズデータが入出力インタフェース１０２経由で本装置に入力されてもよい。
【００３５】
通信インタフェース１０４は、試験対象となるＥＣＵに接続して、ＥＣＵへのファズの送信処理およびＥＣＵから送信された各種フレームの受信処理をおこなう。
以上のようなハードウェア構成によって、通信ノード試験装置１０の処理機能を実現することができる。たとえば、通信ノード試験装置１０は、プロセッサ１００がそれぞれ所定のプログラムを実行することで通信ノード試験をおこなうことができる。
【００３６】
通信ノード試験装置１０は、たとえば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施形態の処理機能を実現する。通信ノード試験装置１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００３７】
たとえば、通信ノード試験装置１０に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。また、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３８】
次に、通信ノード試験装置１０の機能構成について、図５を用いて説明する。図５は、第２の実施形態の通信ノード試験装置の機能構成の一例を示す図である。通信ノード試験装置１０は、ファズ作成部１１、ファズデータベース１２、ファジング実行部１３、送信処理部１４ａ、受信処理部１４ｂ、動作状態判定部１５、ファジング結果データベース１６およびユーザインタフェース部１７を備える。
【００３９】
ファズ作成部１１は、ファズを作成し、作成したファズをファズデータベース１２に格納する。ファジング実行部１３は、試験対象のＥＣＵに向けて送信すべきファズをファズデータベース１２から抽出し、抽出したファズを送信処理部１４ａへ送信する。
【００４０】
送信処理部１４ａは、Ｄ／Ａ変換により、デジタル信号のファズをアナログ信号に変換して、試験対象のＥＣＵへファズを送信する送信インタフェース処理をおこなう。受信処理部１４ｂは、Ａ／Ｄ変換により、試験対象のＥＣＵから送信されたアナログ信号のデータをデジタル信号に変換する受信インタフェース処理をおこなう。
【００４１】
動作状態判定部１５は、ＥＣＵから送信された、受信インタフェース処理後のデータにもとづきＥＣＵの動作状態を判定する。また、動作状態判定部１５は、判定したファジング結果をファジング結果データベース１６に格納する。
【００４２】
なお、動作状態判定部１５は、判定処理として、即時反応判定処理、中期反応判定処理および長期反応判定処理をおこなう。即時反応判定処理については図１３で後述し、中期反応判定処理については図１５で後述し、長期反応判定処理については図１７で後述する。
【００４３】
ユーザインタフェース部１７は、ファジングを実行する試験者に、ＧＵＩ（Graphical User Interface）などを提供して、ユーザインタフェース処理をおこなう。たとえば、ファズの内容やファジング結果の表示、またはファジング実行の操作入力などのユーザインタフェース処理をおこなう。また、ユーザインタフェース部１７に保守端末が接続することができる。
【００４４】
また、ユーザインタフェース部１７は、ネットワーク装置でもよい。例えばシリアル通信装置やＬＡＮ装置でもよく、外部のネットワークより、これらの通信装置経由でファズが入力されてもよい。
【００４５】
次に、ＣＡＮの通信プロトコルの主な特徴について以下に説明する。
（１）ＣＡＮの通信は、ブロードキャスト通信である。したがって、あるＣＡＮに接続されたＥＣＵがフレームを送信すると、同一ＣＡＮに接続されているすべてのＥＣＵにフレームが到達する。
【００４６】
（２）ＣＡＮは、２本の伝送ラインの間に発生する差動電圧を信号レベルとして検出する方式を取っており、差動電圧ありをデジタル信号の“０”（ドミナント）、差動電圧なしをデジタル信号の“１”（リセッシブ）と規格されている。
【００４７】
したがって、ＣＡＮに接続されるＥＣＵは、ドミナント“０”と、リセッシブ“１”の２値でデータを扱う。また、ドミナント“０”は、リセッシブ“１”よりも優勢である。よって、両者が同時にＣＡＮのバスに流れると、ＣＡＮのバスの信号レベルは、ドミナント“０”になる。
【００４８】
（３）ＣＡＮの通信フレームには、データフレーム、エラーフレーム、リモートフレームおよびオーバロードフレームという４種のフレームフォーマットが存在する。データフレームは、データ送信に用いられるフレームである。エラーフレームは、通信エラーが発生したときに送信されるフレームである。
【００４９】
リモートフレームは、特定のＥＣＵにデータフレームを要求する際に用いられるフレームである。オーバロードフレームは、ＥＣＵ内のＣＡＮコントローラが前回フレームの処理を終了させるための待ち時間を作るために用いられるフレームである。なお、リモートフレームとオーバロードフレームについては、本願発明に直接関係はないので以降では説明は省略する。
【００５０】
（４）上記の（２）の特徴に起因して、データフレームに設定されるＩＤの値によって、データフレームには優先順位が定められる。すなわち、ＩＤの値が小さいほど先頭に“０”が多く設定されるので、ＩＤの値が小さいデータフレームほど優先順位が高くなる。
【００５１】
したがって、２つ以上のデータフレームが同時にＣＡＮに送信された場合、優先順位の高いデータフレームがＣＡＮに流れ、優先順位の低いデータフレームは、優先順位が高いデータフレームが流れ終わるのを待って送信されることになる。またこの場合、ＩＤによる優先順位決定が再度おこなわれるので、優先順位が低いＩＤを持つデータフレームは、送信タイミングに遅延が生じることがある。
【００５２】
（５）ＥＣＵは、自身が受け取るべきデータフレームのＩＤが定められており、各ＥＣＵでは、自身が受け取るべきＩＤ以外のデータフレームが到達した場合は、受信処理をせずに廃棄する。
【００５３】
（６）ＥＣＵは、自身が送信したデータフレームに対し、後述のＡＣＫフィールドを利用して送信エラーを監視する。
（７）ＥＣＵ同士は、ビットスタッフィングルールにもとづく通信をおこなう。ビットスタッフィングルールについては図１０で後述する。
【００５４】
次に、ＥＣＵの機能構成について、図６を用いて説明する。図６は、ＥＣＵの機能構成の一例を示す図である。ＥＣＵ２０は、ＥＣＵ制御部２１およびＣＡＮコンポーネント２２を備える。
【００５５】
なお、ＥＣＵ制御部２１は、図１に示した通信ノード制御部２ｂ（動作がＣＡＮの通信プロトコルに非依存）に該当し、ＣＡＮコンポーネント２２は、図１に示した通信ノード制御部２ａ（動作がＣＡＮの通信プロトコルに依存）に該当する。
【００５６】
ＥＣＵ制御部２１は、プロセッサや記憶装置などを含み、ＥＣＵ全体の制御をおこなう。また、ＥＣＵ制御部２１は、データ（データコンテンツ）およびＩＤの生成処理や、送信されたデータにもとづいて外部機器に対する出力制御などをおこなう。
【００５７】
出力制御としてはたとえば、外部機器としてモータがＥＣＵに接続されているとすれば、ＥＣＵ制御部２１は、送信されたデータを解析し、解析結果にもとづいてモータの駆動制御をおこなったりする。
【００５８】
ＣＡＮコンポーネント２２は、ＣＡＮの通信プロトコルにもとづくデータの通信制御をおこない、ＣＡＮコンポーネント２２は、ＣＡＮトランシーバ２２ａおよびＣＡＮコントローラ２２ｂを含む。また、ＣＡＮコントローラ２２ｂは、メモリｍ１を含む。
【００５９】
ＣＡＮトランシーバ２２ａは、データの送受信インタフェース処理をおこなう。ＣＡＮコントローラ２２ｂは、ＣＡＮのフレームの組み立てまたは分解処理をおこなう。メモリｍ１は、データの格納をおこなう。
【００６０】
なお、ＥＣＵ制御部２１は、ユーザプログラムが実装されて、ユーザプログラムに応じた制御をおこなうことができる。また、ＥＣＵ制御部２１は、ＣＡＮの通信プロトコルに非依存であり、ＣＡＮコンポーネント２２では、ＣＡＮの通信プロトコルに依存した制御がおこなわれる。
【００６１】
さらに、メモリｍ１は、ＣＡＮでは受信メールボックスとも呼ばれ、たとえば、ＦＩＦＯ（First In First Out）が使用される。この場合、ＣＡＮトランシーバ２２ａが受信したデータは、受信された順にＦＩＦＯに格納され、受信された順に読み出される。
【００６２】
次に、ＥＣＵ２０の機能を送信側と受信側とに分けてデータフレームを送受信する場合の動作について図７を用いて説明する。
図７は、ＥＣＵ間の通信動作の一例を説明するための図である。送信側ＥＣＵ２０１は、ＥＣＵ制御部２１−１と、ＣＡＮトランシーバ２２ａ−１およびＣＡＮコントローラ２２ｂ−１を含むＣＡＮコンポーネント２２−１を備える。
【００６３】
受信側ＥＣＵ２０２は、ＥＣＵ制御部２１−２と、ＣＡＮトランシーバ２２ａ−２およびＣＡＮコントローラ２２ｂ−２を含むＣＡＮコンポーネント２２−２を備える。また、送信側ＥＣＵ２０１と、受信側ＥＣＵ２０２とはＣＡＮで接続される。
【００６４】
送信側ＥＣＵ２０１において、ＥＣＵ制御部２１−１は、送信すべきデータとＩＤとを決定して、ＣＡＮコントローラ２２ｂ−１に渡す。ＣＡＮコントローラ２２ｂ−１は、渡された入力信号に対してＣＡＮの通信プロトコルに沿ったデータフレームを作成し、ＣＡＮトランシーバ２２ａ−１に渡す。
【００６５】
ＣＡＮトランシーバ２２ａ−１は、デジタルの入力信号に対してＤ／Ａ変換をおこなってアナログ信号に変換し、ＣＡＮを通じて、該アナログ信号を受信側ＥＣＵ２０２に送信する。
【００６６】
受信側ＥＣＵ２０２において、ＣＡＮトランシーバ２２ａ−２は、ＣＡＮを通じて送信された該アナログ信号を受信すると、Ａ／Ｄ変換をおこなってデジタル信号に変換してＣＡＮコントローラ２２ｂ−２に渡す。
【００６７】
ＣＡＮコントローラ２２ｂ−２は、ＣＡＮトランシーバから２２ａ−２から渡された入力信号のエラーチェックなどをおこない、データとＩＤを取り出してＥＣＵ制御部２１−２に渡す。ＥＣＵ制御部２１−２は、データおよびＩＤを元に出力制御などの所定の処理をおこなう。
【００６８】
次に、ＣＡＮのデータフレームの構成について図８、図９を用いて説明する。図８は、ＣＡＮの標準フォーマットのデータフレームの構成を示す図である。ＣＡＮの標準フォーマットのデータフレームＦ１は、ヘッダ部、データ部およびテール（tail）部を含む。
【００６９】
ヘッダ部は、ＳＯＦ（Start Of Frame）、ＩＤ、ＲＴＲ（Remote Transmission Request）、ＩＤＥ（Identifier Extension）、予約ビットｒ０およびＤＬＣ（Data Length Code）を含む。データ部は、データフィールド（ＤＡＴＡ）を含む。
【００７０】
テール部は、ＣＲＣ（Cyclic Redundancy Check）シーケンス、ＣＲＣデリミタ、ＡＣＫスロット、ＡＣＫデリミタおよびＥＯＦ（End Of Frame）を含む。
ＳＯＦは、データフレームの開始先頭を示す１ビット長のフィールドであり、ドミナントが設定される。なお、データフレームが流れていないときのバスはバスアイドルと呼ばれ、バスアイドルはリセッシブの状態である。よって、バスアイドルのリセッシブからドミナントへ変化することで、ＥＣＵは、データフレームの同期をとることができる。
【００７１】
ＩＤは、データの内容や送信側ＥＣＵなどを識別するために使用される１１ビット長のフィールドである。ＲＴＲは、データフレームとリモートフレームを識別するための１ビット長のフィールドであり、データフレームの場合は、ドミナントが設定される。
【００７２】
一方、ＲＴＲに続く、ＩＤＥ、予約ビットｒ０およびＤＬＣによってコントロールフィールドが形成される。ＩＤＥは１ビット長であり、標準フォーマットの場合、ドミナントが設定される。予約ビットｒ０は１ビット長であり、ドミナントが設定される。また、ＤＬＣは、４ビット長であり、コントロールフィールドに続くデータフィールド（ＤＡＴＡ）において、何バイトのデータが送信されるかを表す。
【００７３】
データフィールドは、送信すべきデータが設定される０−６４ビット長のフィールドであり、ＤＬＣによって設定されたデータ長となる。
また、データフィールドに続く、ＣＲＣシーケンスとＣＲＣデリミタとによってＣＲＣフィールドが形成される。ＣＲＣシーケンスは、１５ビット長のフィールドであり、ＣＲＣ演算（誤り検出演算）の結果が設定される。ＣＲＣデリミタは、ＣＲＣシーケンスの終了を示す１ビット長のフィールドであり、リセッシブが設定される。
【００７４】
ここで、送信側ＥＣＵは、ＳＯＦ、ＩＤ、コントロールフィールドおよびデータフィールドの送信値にもとづくＣＲＣ演算をおこない、ＣＲＣシーケンスにその演算結果が設定される。
【００７５】
また、受信側ＥＣＵは、送信側ＥＣＵと同様にして、ＳＯＦ、ＩＤ、コントロールフィールドおよびデータフィールドの受信値にもとづいてＣＲＣ演算をおこなう。そして、受信側ＥＣＵは、その演算結果を、受信したデータフレームのＣＲＣシーケンスに設定されている値と比較することで、データフレームを正常に受信できたか否かの判定をおこなう。
【００７６】
一方、ＣＲＣフィールドに続き、ＡＣＫスロットとＡＣＫデリミタによってＡＣＫフィールドが形成される。ＡＣＫスロットは、１ビット長のフィールドである。ＡＣＫデリミタは、ＡＣＫスロットの終了を示す１ビット長のフィールドでありリセッシブが設定される。
【００７７】
また、ＡＣＫフィールドに続いて、ＥＯＦが形成されており、ＥＯＦは、データフレームの終了末尾を示す７ビット長のフィールドでリセッシブである。なお、ＥＯＦに続くＩＴＭ（Intermission）は、データフレームに含まれない。ＩＴＭには、リセッシブの３ビットが送信され、その後バスアイドルになることが示される。
【００７８】
ここで、ＡＣＫフィールドにもとづくエラー検出について説明する。送信側ＥＣＵは、データを送信する場合、ＡＣＫスロットをリセッシブに設定してデータフレームを送信する。
【００７９】
受信側ＥＣＵは、送信されたデータフレームのＣＲＣフィールド部分までのデータを正常に受信できた場合は、ＡＣＫスロットの期間中にドミナントを設定して確認応答として送信する。
【００８０】
受信側ＥＣＵが、送信されたデータフレームのＣＲＣフィールド部分までのデータを正常に受信できない場合は、ＡＣＫスロットの期間中はリセッシブのままとなる。この場合、送信側ＥＣＵは、リセッシブ状態のＡＣＫスロットを検出することにより、送信エラーと判断する。
【００８１】
なお、送信側ＥＣＵに複数の受信側ＥＣＵが接続している場合、複数の受信側ＥＣＵの少なくとも１台がデータを受信できたならば、その受信側ＥＣＵは、ＡＣＫスロットの期間中にドミナントを設定する。
【００８２】
また、上述したように、ＣＡＮでは、ドミナントとリセッシブが同時に送信された場合は、ドミナントが優先されてドミナントとなる。このため、バスが受信側ＥＣＵによってドミナント状態にセットされるときのみ、送信側ＥＣＵは、エラーのない状態でデータフレームを送信することになる。
【００８３】
ただし、複数の受信側ＥＣＵの少なくとも１台がデータを受信できれば、上記のように、バスはドミナント状態になるので、ＡＣＫフィールドによるエラー検出は、複数の受信側ＥＣＵすべてが正常に受信できたかの判断に使用されない。
【００８４】
ＡＣＫフィールドによるエラー検出は、あくまで送信側ＥＣＵが送信したデータを正常に受信できた受信側ＥＣＵが存在するか、または送信側ＥＣＵがデータフレームを正常に送信しているかが判断されるものである。
【００８５】
図９は、ＣＡＮの拡張フォーマットのデータフレームの構成を示す図である。ＣＡＮの拡張フォーマットのデータフレームＦ１ａは、ヘッダ部、データ部およびテール部を含む。
【００８６】
ヘッダ部は、ＳＯＦ、Ｂａｓｅ−ＩＤ、ＳＲＲ（Substitute Remote Request Bit）、ＩＤＥ、Ｅｘ−ＩＤ、ＲＴＲ、予約ビットｒ１、ｒ０およびＤＬＣを含む。データ部は、データフィールド（ＤＡＴＡ）を含む。
【００８７】
テール部は、ＣＲＣシーケンス、ＣＲＣデリミタ、ＡＣＫスロット、ＡＣＫデリミタおよびＥＯＦを含む。なお、拡張フォーマットは、ヘッダ部が標準フォーマットと異なり、データ部とテール部は標準フォーマットと同じである。よって、ヘッダ部の中の標準フォーマットとは異なるフィールドについて以下説明する。
【００８８】
Ｂａｓｅ−ＩＤは、標準フォーマットにおけるＩＤに相当するもので、拡張フォーマットではＢａｓｅ−ＩＤと呼ばれる。呼び名が違うだけなので、Ｂａｓｅ−ＩＤは、標準フォーマットと同じ１１ビット長のフィールドである。
【００８９】
ＳＲＲは、１ビット長のフィールドであり、リセッシブが設定される。ＩＤＥは、拡張フォーマットの場合、リセッシブが設定される。
Ｅｘ−ＩＤ（拡張ＩＤ）は、１８ビット長のフィールドであり、Ｂａｓｅ−ＩＤと併せて２９ビット長となり、これによりＩＤを表す（拡張フォーマットの２９ビット長ＩＤの範囲は0x00000000〜0x1FFFFFFFとなる）。
【００９０】
また、拡張フォーマットは、コントロールフィールド内に２つの予約ビットｒ１、ｒ０を有し、共に１ビット長で双方にドミナントが設定される。
次に、ＣＡＮの通信プロトコルの１つであるビットスタッフィングルールについて図１０を用いて説明する。図１０は、ビットスタッフィングルールを説明するための図である。ビットスタッフィングルールとは、ＣＡＮのバス上で同一の値（リセッシブまたはドミナント）が連続して５ビット連続した場合、それまで送信されていた値とは反対の値の１ビット（スタッフビット）を挿入するルールである。
【００９１】
図１０の例で説明すると、図７に示した送信側ＥＣＵ２０１と受信側ＥＣＵ２０２の通信において、送信側ＥＣＵ２０１は、リセッシブを８ビット連続して送信したいとする。この場合、送信側ＥＣＵ２０１内のＣＡＮコンポーネント２２−１は、まず、５ビット連続でリセッシブを送信し、次にスタッフビットとしてドミナントを１ビット挿入して送信し、その後にリセッシブを３ビット連続で送信することになる。
【００９２】
また、受信側ＥＣＵ２０２でも同じビットスタッフィングルールで動作しており、受信側ＥＣＵ２０２内のＣＡＮコンポーネント２２−２がスタッフビットを適切に除去し、スタッフビットが除去されたデータが、受信側ＥＣＵ２０２内のＥＣＵ制御部２１−２に渡されることになる。
【００９３】
このようなビットスタッフィングルールが採用されることで、ＣＡＮのバス上で同一の値が延々と連続して同期が取れなくなるということを防止することができる。なお、データフレームにおけるビットスタッフィングルールは、固定ビットの構造を持つフィールドを除くすべてのフィールドに対して適用される。
【００９４】
次に、エラーフレームの構成について図１１を用いて説明する。図１１は、エラーフレームの構成を示す図である。エラーフレームＦ２は、エラーフラグとエラーデリミタを含む。エラーフレームＦ２は、通信中にエラーが発生したときに、ＣＡＮに接続されるＥＣＵに異常を知らせるためのフレームである。
【００９５】
エラーフラグは、ドミナントの６ビットから１２ビット長で、エラーが発生したことを示すフィールドである。エラーデリミタは、リセッシブの８ビット長でエラーフレームの終了を示すフィールドである。
【００９６】
ここで、データフレーム（またはリモートフレーム）の通信時にエラーが検出された場合、エラーを検出したＥＣＵは、エラーフレームを送信する。この場合、エラーを検出したＥＣＵは、ビットスタッフィングルールを違反する形で、６ビットの同一ドミナントを含むエラーフラグを送信して、スタッフィングエラーを意図的に発生させる。
【００９７】
他のＥＣＵは、このスタッフィングエラーによって、エラーが発生したことを判断し、エラーフラグを送り返す。エラーを検出したＥＣＵから送信されたエラーフラグと、スタッフィングエラーを検出したＥＣＵから送信されたエラーフラグとは、ＣＡＮのバス上で重複する場合があるため、バスには６ビットから１２ビット長のエラーフラグが現れることになる。
【００９８】
次に、ＣＡＮのエラー検出について図１２を用いて説明する。図１２は、データフレームに対するエラー検出を説明するための図である。エラーの内容はエラーフレームが送られたタイミングで判別され、以下の５種類のエラー検出がある。
【００９９】
・ビットモニタリング
送信側ＥＣＵが送信したデータと、バスに流れているデータとが異なる場合、ビットエラーとして検出される。
【０１００】
・アクナレッジチェック
ＡＣＫスロットにおいて、どの受信側ＥＣＵもドミナントを返信せず、リセッシブのままであった場合、ＡＣＫエラーとして検出される。
【０１０１】
・ＣＲＣチェック
受信側ＥＣＵが演算したＣＲＣの値と、データフレームに含まれるＣＲＣの値（ＣＲＣシーケンスの値）とが一致しない場合、ＣＲＣエラーとして検出される。
【０１０２】
・フォームチェック
ＣＲＣデリミタ、ＡＣＫデリミタおよびＥＯＦがドミナントになっている場合（通常はリセッシブ）、フォームエラーとして検出される。
【０１０３】
・スタッフチェック
ビットスタッフィングルールが守られていない場合、すなわち、ビットスタッフィングエリア内で同一レベルが６ビット以上連続した場合、スタッフエラーとして検出される。
【０１０４】
なお、送信側ＥＣＵは、上記のビットモニタリング、フォームチェックおよびアクナレッジチェックに関するエラー検出をおこなう。また、受信側ＥＣＵは、上記のＣＲＣチェック、フォームチェックおよびスタッフチェックに関するエラー検出をおこなう。
【０１０５】
次に、通信ノード試験装置１０を用いてＥＣＵ２０にファジングを実行する動作について以降詳しく説明する。なお、ＥＣＵ２０の機能は、図６で上述したように、ＥＣＵ制御部２１と、ＣＡＮコンポーネント２２とに大きく分かれるので、ＥＣＵ制御部２１に対するファジングと、ＣＡＮコンポーネント２２に対するファジングとの２つに分けておこなうものとする。また、ファジングをおこなうシステム構成としては、通信ノード試験装置１０とＥＣＵ２０とが１：１に接続された、上述の図２の構成を想定するものとする。
【０１０６】
なお、通常、ファジングは、対象製品に問題を引き起こしそうなデータ（ファズ）を大量に送り込み、そのときの対象製品の動作を監視し、対象製品の脆弱性を検出する。
たとえば、ある対象製品に極端に長い文字列や、通常用いないようなコードなどを送り込み、その結果、予期せぬ異常動作などが発生した場合、その対象製品に何らかの不具合がある可能性が高いと判断される。通信ノード試験装置１０においても、このようなファジングをＣＡＮ上で通信をおこなうＥＣＵ２０に対して自動的に実行する。
【０１０７】
最初に、ＥＣＵ２０内のＣＡＮコンポーネント２２を対象にファジングを実行する場合について説明する。
（ＣＡＮコンポーネント２２の特徴）
ＥＣＵ２０内のＣＡＮコンポーネント２２は、ＣＡＮの通信プロトコルに従っていないデータを受信すると、エラーフレームを送信する。よって、ＥＣＵ２０がＣＡＮの通信プロトコルに従っていないデータを受信したときに、ＥＣＵ２０からエラーフレームが送信されない場合、ＥＣＵ２０内のＣＡＮコンポーネント２２に不具合が生じていると推測される。
【０１０８】
また、ＥＣＵ２０内のＣＡＮコンポーネント２２は、正常なデータを受信すると、ＡＣＫスロットをドミナントに変更する。よって、ＥＣＵ２０がＣＡＮの通信プロトコルに従っていないデータを受信したときに、ＡＣＫスロットをドミナントに変更した場合、ＥＣＵ２０内のＣＡＮコンポーネント２２に不具合が生じていると推測される。
【０１０９】
すなわち、この場合、ＣＡＮの通信プロトコルに従わない異常データをＣＡＮコンポーネント２２が受信したにもかかわらず、正常受信と判断されているので、ＣＡＮコンポーネント２２に不具合が生じていると推測できる。
【０１１０】
（準備フェーズ）
通信ノード試験装置１０のファズ作成部１１は、上記のＣＡＮコンポーネント２２の特徴に鑑みて、ファズとして、ＣＡＮの通信プロトコルに従っていないファズを作成して準備する。この場合、ファズとしてはたとえば、以下のようなものが作成される。
【０１１１】
（１ａ）データフレームのＣＲＣシーケンスに格納されているＣＲＣと、ＥＣＵ２０が計算して求めるＣＲＣとが異なるように、データフレーム内のデータ、ＩＤ、コントロールフィールドを設定したファズ。
【０１１２】
（２ａ）データフレームのフィールドにおいて、本来リセッシブであるビットをドミナントにしたファズ、または、本来ドミナントであるビットをリセッシブにしたファズ。
（３ａ）データフレームのＤＬＣフィールドに格納してある値と、データフィールドの実際のデータの長さが異なるように設定したファズ。
【０１１３】
（４ａ）ビットスタッフィングルールに違反するファズ。
なお、上記の（１ａ）、（２ａ）、（３ａ）、（４ａ）のようなファズは、試験者が作成して、ユーザインタフェース部１７を介してファズデータベース１２に格納しておくこともできる。
【０１１４】
次に、ＣＡＮコンポーネント２２に対するファジングの実行フェーズについて図１３を用いて説明する。図１３は、ＣＡＮコンポーネントに対するファジングの実行フェーズのフローチャートを示す図である。
【０１１５】
〔ステップＳ１１〕ファジング実行部１３は、準備フェーズで準備したファズを１個（この１個はデータフレームの塊である場合を含む）ファズデータベース１２の中から選択し、試験対象のＥＣＵ２０に送信する。
【０１１６】
〔ステップＳ１２〕動作状態判定部１５は、試験対象のＥＣＵ２０から送信されたエラーフレームを受信したか否かを判別する。ファズを完全に送信し終わる前にエラーフレームを受信した場合は処理がステップＳ１３へすすみ、エラーフレームを受信しない場合は処理がステップＳ１４へすすむ。
【０１１７】
〔ステップＳ１３〕動作状態判定部１５は、ＥＣＵ２０内のＣＡＮコンポーネント２２の動作を正常と判断する。
〔ステップＳ１４〕動作状態判定部１５は、ＡＣＫスロットの値がリセッシブかドミナントかを判別する。リセッシブの場合は処理がステップＳ１５へすすみ、ドミナントの場合は処理がステップＳ１６へすすむ。
【０１１８】
〔ステップＳ１５〕エラーフレームが通信ノード試験装置１０に到達せず、かつＡＣＫスロットがリセッシブの場合、動作状態判定部１５は、送信したファズで試験対象のＥＣＵ２０内のＣＡＮコンポーネント２２が暴走、または動作停止が起きていると検出し、異常と判定する。
【０１１９】
〔ステップＳ１６〕エラーフレームが通信ノード試験装置１０に到達せず、かつＡＣＫスロットがドミナントの場合、ファズとして異常データを送信したにもかかわらず、ＥＣＵ２０内のＣＡＮコンポーネント２２で正常なデータを受信しているものと動作している。したがって、動作状態判定部１５は、試験対象のＥＣＵ２０内のＣＡＮコンポーネント２２は誤動作していると検出し、異常と判定する。
【０１２０】
上記のフローにおいて、ステップＳ１２により、エラーフレームが通信ノード試験装置１０に到達しない場合、ＡＣＫスロットの値にかかわらず、試験対象のＥＣＵ２０内のＣＡＮコンポーネント２２が異常と判断されることになる。
【０１２１】
なお、上記のファジングで異常と判定された場合、判定直前に送信したファズが原因であるといえるので、通信ノード試験装置１０は、ＥＣＵ２０内のＣＡＮコンポーネント２２がどのようなファズで異常となったかを即時に把握することができる。
【０１２２】
このことは、通信ノード試験装置１０で異常を検知するタイミングと、ＥＣＵ２０で異常が引き起こされたタイミングとはほぼ同一と考えられるため、図１３のフローに示した実行フェーズの処理が即時反応判定処理となる。
【０１２３】
次に、ＥＣＵ２０内のＥＣＵ制御部２１を対象にファジングを実行する場合について説明する。まず、ＥＣＵ制御部２１の特徴について説明する。
（ＥＣＵ制御部２１の特徴）
ＥＣＵ制御部２１がＣＡＮコンポーネント２２を介してデータを受信する場合、ＣＡＮコンポーネント２２内には、図６で上述したように、メモリｍ１に該当するＦＩＦＯがあるので、受信データはＦＩＦＯに格納される。
【０１２４】
ＣＡＮコンポーネント２２で受信されたデータは、ＦＩＦＯで格納された後にＥＣＵ制御部２１へ渡されるので、ＥＣＵ制御部２１がデータを受信するタイミングと、ＣＡＮコンポーネント２２がデータを受信するタイミングとに遅延が生じることになる。
【０１２５】
したがって、ＥＣＵ制御部２１のファジングを実行する場合、このような遅延を考慮して、通信ノード試験装置１０は、ＥＣＵ制御部２１に対して、どの内容のファズでエラーとなったのかがわかるようにファズの送信制御をおこなう。
【０１２６】
（準備フェーズ）
通信ノード試験装置１０のファズ作成部１１は、ＥＣＵ制御部２１向けのファズとして、ＣＡＮの通信プロトコルとしては正しいが、データフレームのデータフィールドに設定されるデータの値が設計者の設定した範囲を超えるようなファズを作成して準備する。この場合、ファズとしてはたとえば、以下のようなものが作成される。
【０１２７】
（１ｂ）ＣＡＮの通信プロトコルとしては正しいが、データの最大値、または最小値が設定値を逸脱し、最大値を超える、または最小値を下回るファズ。また、データフィールド６４ビットは、８ビット×８個だが、そのうち１個が最大値を超える、または最小値を下回るといった形式もありうる。また最大値、最小値だけでなく、１個前のデータとの差分が一定値を超える、下回るなどの設定をしたファズもありうる。
【０１２８】
（２ｂ）ＣＡＮのデータフィールドの６４ビットは、８ビット×８個、１６ビット×４個などのように、複数のデータブロックの組合せで形成される。したがって、これらのデータブロックが当初設定のものとは異なるようなファズ。
【０１２９】
（１ｂ）、（２ｂ）は、より詳しくは、設定条件から逸脱するようなファズと言える。
なお、上記の（１ｂ）、（２ｂ）のようなファズは、試験者が作成して、ユーザインタフェース部１７を介してファズデータベース１２に格納しておくこともできる。
【０１３０】
次に、ダミーデータを付加したファズについて図１４を用いて説明する。通信ノード試験装置１０は、上記の（１ｂ）、（２ｂ）のようなファズを試験対象のＥＣＵ２０に送信する場合、上記のＥＣＵ制御部２１の特徴に鑑みて、ダミーデータを付加して送信する。
【０１３１】
図１４は、ファズにダミーデータを付加したファジングの動作の一例を説明するための図である。ＥＣＵ制御部２１に対するファジングは、ＥＣＵ制御部２１を試験対象にファズを送信して異常が検知された場合、ＦＩＦＯでの遅延があるので、通信ノード試験装置１０で異常が検知されたタイミングと、ＥＣＵ２０で異常が引き起こされたタイミングとに時間差がある。
【０１３２】
このため、ＣＡＮコンポーネント２２を試験対象にしたファジングと同様にファズを順々に送信すると、どのファズで異常を起こしたかを検出することが容易でない。したがって、ＥＣＵ制御部２１を試験対象にしたファジングでは、ＦＩＦＯの容量段数分のダミーデータをファズに付加してＥＣＵ２０に送信し、どのファズで異常を引き起こしたかを判定可能にする。
【０１３３】
たとえば、ＦＩＦＯの容量段数が３２段とした場合、ファジング実行部１３は、ファズデータベース１２からファズ＃１を抽出し、ファズ＃１にＦＩＦＯ３２段分の遅延時間に相当するダミーデータを付加したファズデータ群ｇ１を生成する。遅延時間が分からない場合、例えば３２個のダミーデータなどとする。
【０１３４】
また、ファジング実行部１３は、ファズデータベース１２からファズ＃２を抽出し、ファズ＃２にＦＩＦＯ３２段分の遅延時間に相当するダミーデータを付加したファズデータ群ｇ２を生成する。遅延時間が分からない場合、例えば３２個のダミーデータなどとする。同様に、ファジング実行部１３は、ファズデータベース１２からファズ＃３を抽出し、ファズ＃３にＦＩＦＯ３２段分の遅延時間に相当するダミーデータを付加したファズデータ群ｇ３を生成する。遅延時間が分からない場合、例えば３２個のダミーデータなどとする。
【０１３５】
そして、ファジング実行部１３は、時刻ｔ１でファズデータ群ｇ１を送信し、時刻ｔ２でファズデータ群ｇ２を送信し、時刻ｔ３でファズデータ群ｇ３を送信する。
このとき、時刻ｔ１と時刻ｔ２との時間差である時間ｔａの経過後に、ＥＣＵ制御部２１に異常が生じ、ＥＣＵ２０からエラーフレームが送信されたとする。この場合、動作状態判定部１５は、ファズデータ群ｇ１の先頭に位置するファズ＃１が原因で異常を引き起こしたものと判定する。
【０１３６】
また、時刻ｔ１と時刻ｔ３との時間差である時間ｔａ×２の経過後に、ＥＣＵ制御部２１に異常が生じ、ＥＣＵ２０からエラーフレームが送信されたとする。この場合、動作状態判定部１５は、ファズデータ群ｇ２の先頭に位置するファズ＃２が原因で異常を引き起こしたものと判定する。
【０１３７】
このように、通信ノード試験装置１０は、ＥＣＵ制御部２１を試験対象にしたファジングは、ＦＩＦＯの容量段数分のダミーデータをファズに付加してＥＣＵ２０に送信する。これにより、通信ノード試験装置１０は、どのファズで異常を引き起こしたかを推測することができる。
【０１３８】
次に、ＥＣＵ制御部２１に対するファジングの実行フェーズについて図１５を用いて説明する。図１５は、ＥＣＵ制御部に対するファジングの実行フェーズのフローチャートを示す図である。
【０１３９】
〔ステップＳ２１〕ファジング実行部１３は、準備フェーズで準備したファズ（ファズデータ群）を試験対象のＥＣＵ２０に送信する。
〔ステップＳ２２〕動作状態判定部１５は、試験対象のＥＣＵ２０から送信されたエラーフレームを受信したか否かを判別する。エラーフレームを受信した場合は処理がステップＳ２３へすすみ、エラーフレームを受信しない場合は処理がステップＳ２４へすすむ。
【０１４０】
〔ステップＳ２３〕通信ノード試験装置１０から、ＣＡＮの通信プロトコルとしては正しいファズを送信しているが、試験対象のＥＣＵ２０でエラーと判断されている。したがって、動作状態判定部１５は、試験対象のＥＣＵ２０内のＥＣＵ制御部２１は誤動作していると検出し、異常と判定する。
【０１４１】
〔ステップＳ２４〕動作状態判定部１５は、ＡＣＫスロットの値がリセッシブ（異常受信を示す第１の値）かドミナント（正常受信を示す第２の値）かを判別する。リセッシブの場合は処理がステップＳ２５へすすみ、ドミナントの場合は処理がステップＳ２６へすすむ。
【０１４２】
〔ステップＳ２５〕エラーフレームが通信ノード試験装置１０に到達せず、かつＡＣＫスロットがリセッシブの場合、動作状態判定部１５は、送信したファズで試験対象のＥＣＵ２０内のＥＣＵ制御部２１が暴走、または動作停止が起きていると検出し、異常と判定する。
【０１４３】
〔ステップＳ２６〕エラーフレームが通信ノード試験装置１０に到達せず、かつＡＣＫスロットがドミナントの場合、動作状態判定部１５は、試験対象のＥＣＵ２０内のＥＣＵ制御部２１の動作が正常と判定する。
【０１４４】
上記のフローにおいて、通信ノード試験装置１０が異常を検知するタイミングと、ＥＣＵ２０で異常が引き起こされたタイミングとに時間差があるので、図１５のフローに示した実行フェーズの処理が中期反応判定処理となる。
【０１４５】
なお、上記では、ＥＣＵ制御部２１のファジングにおいて、ＦＩＦＯの容量段数分のダミーデータをファズに付加して送信する制御としたが、送信したファズの回数からＦＩＦＯの容量段数分遡って逆算することで、どのファズによって異常を引き起こしたのかを推測することもできる。
【０１４６】
たとえば、ＦＩＦＯの容量段数が３２ならば、動作状態判定部１５は、あるファズの送信時に異常を検知したとき、該ファズから３２個遡ったファズの内容によって異常を引き起こしたと判断する。
【０１４７】
または他の判定処理として、たとえば、Ｎｏ．１ファズからＮｏ．４ファズまでが以下のように準備されているとする。
Ｎｏ．１ファズ＝｛データｄ１−１：周期＝１００ｍｓ、送信数＝５｝、｛データｄ１−２：周期＝５０ｍｓ、送信数＝１０｝
Ｎｏ．２ファズ＝｛データｄ２−１：周期＝２００ｍｓ、送信数＝１０｝
Ｎｏ．３ファズ＝｛データｄ３−１：周期＝１５０ｍｓ、送信数＝１０｝、｛データｄ３−２：周期＝８０ｍｓ、送信数＝１５｝
Ｎｏ．４ファズ＝｛データｄ４−１：周期＝２００ｍｓ、送信数＝１０｝
上記のようなＮｏ．１ファズからＮｏ．４ファズまでを使用してファジングをおこなう場合、Ｎｏ．４ファズの最初のデータでＡＣＫスロットがリセッシブのままであったとする。この場合は、動作状態判定部１５は、３２個遡ってＮｏ．２ファズのデータｄ２−１で異常を引き起こしたと判定することができる。
【０１４８】
次に、ＥＣＵ制御部２１とＣＡＮコンポーネント２２との両方に向けたファジングをおこなう場合の全体の流れについて図１６を用いて説明する。図１６は、ＥＣＵのファジングのフローチャートを示す図である。
【０１４９】
〔ステップＳ３１〕ファジング実行部１３は、ファズを試験対象のＥＣＵ２０へ送信する。
〔ステップＳ３２〕ファズがＣＡＮコンポーネント２２向けの場合は処理がステップＳ３３へすすみ、ファズがＥＣＵ制御部２１向けの場合は処理がステップＳ３９へすすむ。
【０１５０】
〔ステップＳ３３〕動作状態判定部１５は、ＣＡＮコンポーネント２２向けのファズの送信後にエラーフレームを受信したか否かを判別する。エラーフレームを受信した場合は処理がステップＳ３４へすすみ、エラーフレームを受信しない場合は処理がステップＳ３５へすすむ。
【０１５１】
〔ステップＳ３４〕動作状態判定部１５は、試験対象のＥＣＵ２０内のＣＡＮコンポーネント２２が正常と判断し、正常である旨をログに書き込む（ファジング結果データベース１６に正常である旨の判定結果を書き込む）。また、次のファズを送信するために、ステップＳ３１の処理に戻る。
【０１５２】
〔ステップＳ３５〕動作状態判定部１５は、ＡＣＫスロットの値がリセッシブかドミナントかを判別する。リセッシブの場合は処理がステップＳ３６へすすみ、ドミナントの場合は処理がステップＳ３７へすすむ。
【０１５３】
〔ステップＳ３６〕エラーフレームが通信ノード試験装置１０に到達せず、かつＡＣＫスロットがリセッシブの場合、動作状態判定部１５は、送信したファズで試験対象のＥＣＵ２０内のＣＡＮコンポーネント２２が暴走、または動作停止が起きていると検出し、異常と判定する。
【０１５４】
〔ステップＳ３７〕エラーフレームが通信ノード試験装置１０に到達せず、かつＡＣＫスロットがドミナントの場合、動作状態判定部１５は、試験対象のＥＣＵ２０内のＣＡＮコンポーネント２２は誤動作していると検出し、異常と判定する。
【０１５５】
〔ステップＳ３８〕動作状態判定部１５は、試験対象のＥＣＵ２０内のＣＡＮコンポーネント２２が異常である旨をログに書き込む（ファジング結果データベース１６に異常である旨の判定結果を書き込む）。また、次のファズを送信するためにステップＳ３１の処理に戻る。
【０１５６】
〔ステップＳ３９〕動作状態判定部１５は、ＥＣＵ制御部２１向けのファズの送信後にエラーフレームを受信したか否かを判別する。エラーフレームを受信した場合は処理がステップＳ４０へすすみ、エラーフレームを受信しない場合は処理がステップＳ４１へすすむ。
【０１５７】
〔ステップＳ４０〕動作状態判定部１５は、試験対象のＥＣＵ２０内のＥＣＵ制御部２１は誤動作していると検出し、異常と判定する。
〔ステップＳ４１〕動作状態判定部１５は、ＡＣＫスロットの値がリセッシブかドミナントかを判別する。リセッシブの場合は処理がステップＳ４２へすすみ、ドミナントの場合は処理がステップＳ４３へすすむ。
【０１５８】
〔ステップＳ４２〕エラーフレームが通信ノード試験装置１０に到達せず、かつＡＣＫスロットがリセッシブの場合、動作状態判定部１５は、送信したファズで試験対象のＥＣＵ２０内のＥＣＵ制御部２１が暴走、または動作停止が起きていると検出し、異常と判定する。
【０１５９】
〔ステップＳ４３〕エラーフレームが通信ノード試験装置１０に到達せず、かつＡＣＫスロットがドミナントの場合、動作状態判定部１５は、試験対象のＥＣＵ２０内のＥＣＵ制御部２１の動作が正常と判定し、正常である旨をログに書き込む。また、次のファズを送信するためにステップＳ３１の処理に戻る。
【０１６０】
〔ステップＳ４４〕動作状態判定部１５は、試験対象のＥＣＵ２０内のＥＣＵ制御部２１が異常である旨をログに書き込む。また、次のファズを送信するためにステップＳ３１の処理に戻る。
【０１６１】
次に、ＥＣＵ２０から送信されるデータフレームの周期にもとづいて、ＥＣＵ制御部２１の動作状態を判定することについて図１７を用いて説明する。ＥＣＵ２０の通信では、データフレームを周期的に対向側に送信することがおこなわれる。このため、上述してきたファジングとは別に、データフレームの周期性を監視して、ＥＣＵ２０内のＥＣＵ制御部２１の動作状態が正常であるか異常であるかを判断することもできる。
【０１６２】
図１７は、データフレームの周期性の監視も含めてＥＣＵ制御部の動作を判定する場合のフローチャートを示す図である。
〔ステップＳ５１〕動作状態判定部１５は、試験対象のＥＣＵ２０から送信されるデータフレームの周期性を監視する。データフレームの周期性が異常の場合は処理がステップＳ５２へすすみ、データフレームの周期性が正常の場合は処理がステップＳ５３へすすむ。
【０１６３】
〔ステップＳ５２〕動作状態判定部１５は、データフレームの周期性が異常であると検出すると、試験対象のＥＣＵ２０内のＥＣＵ制御部２１に異常があると判定する。
〔ステップＳ５３〕動作状態判定部１５は、データフレームの周期性が正常であると検出すると、試験対象のＥＣＵ２０内のＥＣＵ制御部２１を対象にしたファジングを実行する。すなわち、ステップＳ５３において、図１５で上述したフローが実行されることになる。
【０１６４】
このように、試験対象のＥＣＵ２０は、ＥＣＵ２０が本来送信する周期でデータを送信しているので、通信ノード試験装置１０がこの周期から逸脱したデータを受信した場合、異常があったと判定することができる。そして、ＥＣＵ２０から送信されるデータフレームの周期性を監視して、ＥＣＵ２０の動作状態を判定する処理が、長期反応判定処理となる。
【０１６５】
なお、上記では、図２のシステム構成にもとづくファジングについて説明した。これに対し、図３のような通信ノード試験装置１０と複数のＥＣＵとが１：Ｎに接続されたシステム構成でファジングをおこなうこともできる。
【０１６６】
この場合、通信ノード試験装置１０は、ファズの中に試験対象とするＥＣＵのＩＤをセットしてＣＡＮに送信することにより、Ｎ台のＥＣＵの中から、試験対象とするＥＣＵを選択してファジングをおこなうことができる。
【０１６７】
なお、上記で説明した通信ノード試験装置１０の処理機能は、コンピュータによって実現することができる。その場合、通信ノード試験装置１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１６８】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）などがある。
【０１６９】
プログラムを流通させる場合、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１７０】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１７１】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１７２】
１  通信ノード試験装置
１ａ  制御部
１ｂ  記憶部
２  通信ノード
２ａ  第１の通信ノード制御部
２ｂ  第２の通信ノード制御部
ｆ１−１、ｆ１−２、ｆ１−３  第１のファズ
ｆ２−１、ｆ２−２、ｆ２−３  第２のファズ
【図１】
2018098707.tif 000003
【図２】
2018098707.tif 000004
【図３】
2018098707.tif 000005
【図４】
2018098707.tif 000006
【図５】
2018098707.tif 000007
【図６】
2018098707.tif 000008
【図７】
2018098707.tif 000009
【図８】
2018098707.tif 000010
【図９】
2018098707.tif 000011
【図１０】
2018098707.tif 000012
【図１１】
2018098707.tif 000013
【図１２】
2018098707.tif 000014
【図１３】
2018098707.tif 000015
【図１４】
2018098707.tif 000016
【図１５】
2018098707.tif 000017
【図１６】
2018098707.tif 000018
【図１７】
2018098707.tif 000019