(57)【要約】【課題】車載ネットワークのセキュリティ性を向上させることができる通信装置、および通信システムを提供することを目的の一つとする。【解決手段】複数の機器が情報を参照する有線ネットワークに対して、複数のビットからなるフレームを送信する送信部と、前記有線ネットワークから前記フレームを受信する受信部と、前記フレームの送信回数によって前記送信部が送信するフレームのビットの順序を入れ替える制御部とを備える通信装置である。【選択図】図２
2017017615.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器が情報を参照する有線ネットワークに対して、複数のビットからなるフレームを送信する送信部と、
前記有線ネットワークから前記フレームを受信する受信部と、
前記フレームの送信回数によって前記送信部が送信するフレームのビットの順序を入れ替える制御部と、
を備える通信装置。
【請求項２】
前記フレームは、通信プロトコルによって定められる規格領域と、少なくともデータの内容が格納される任意領域とを有し、
前記制御部は、前記送信部が送信するフレームのビットの順序を、前記任意領域内で入れ替える、
請求項１に記載の通信装置。
【請求項３】
前記フレームは、データの内容が格納される複数のデータ領域と、データの識別情報が含まれるアライブカウンタ領域とを有し、
前記制御部は、前記アライブカウンタ領域の位置を変えずに前記複数のデータ領域に含まれるデータ領域の位置を入れ替えることで前記ビットの順序を入れ替える、
請求項１または２に記載の通信装置。
【請求項４】
前記制御部は、前記アライブカウンタ領域に含まれる情報によって、前記複数のデータ領域に含まれるデータ領域の位置を決定する、
請求項３に記載の通信装置。
【請求項５】
前記制御部は、前記アライブカウンタ領域に含まれる情報と前記複数のデータ領域に含まれるデータ領域の位置とが対応付けられた対応情報を参照し、前記アライブカウンタ領域に含まれる情報に対応する順序で、前記複数のデータ領域に含まれるデータ領域の位置の順序を入れ替える、
請求項４に記載の通信装置。
【請求項６】
前記フレームは、データの内容が格納される複数のデータ領域と、データの識別情報が含まれるアライブカウンタ領域とを有し、
前記制御部は、前記複数のデータ領域間に前記アライブカウンタ領域を割り込ませることで、前記ビットの順序を入れ替える、
請求項１または２に記載の通信装置。
【請求項７】
請求項１から６のうちいずれか１項記載の通信装置と、
前記有線ネットワークと、
を備える通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、および通信システムに関する。
【背景技術】
【０００２】
従来、車載ネットワークにおいて、多重通信を行うため複数ノードの同時発信情報による衝突を検出もしくは調停する通信システムが知られている（例えば、特許文献１参照）。この通信システムでは、通信フレーム部分にメッセージ種別の識別子と共に、シーケンス番号で示されるセキュリティ情報を含ませている。このセキュリティ情報は、通信フレームの固定された位置に挿入されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１８３３９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
車載システムに於ける通信データは、ノード間の取り決めによって情報のやり取りを行っているが、近年、自動車のノード間で通信される内部情報を読み出して改竄するような事象が発生している。従来の通信システムを利用した車載ネットワークでは、通信フレームの配置が固定的であるため、セキュリティ性が低下する場合があった。
本発明は、このような事情を考慮してなされたものであり、車載ネットワークのセキュリティ性を向上させることができる通信装置、および通信システムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、複数の機器が情報を参照する有線ネットワーク（４）に対して、複数のビットからなるフレームを送信する送信部（５２）と、前記有線ネットワークから前記フレームを受信する受信部（５２）と、前記フレームの送信回数によって前記送信部が送信するフレームのビットの順序を入れ替える制御部（４０、４４）とを備える通信装置（１０）である。
【０００６】
請求項２記載の発明は、請求項１記載の通信装置であって、前記フレームは、通信プロトコルによって定められる規格領域と、少なくともデータの内容が格納される任意領域とを有し、前記制御部は、前記送信部が送信するフレームのビットの順序を、前記任意領域内で入れ替える。
【０００７】
請求項３記載の発明は、請求項１または２に記載の通信装置であって、前記フレームは、データの内容が格納される複数のデータ領域と、データの識別情報が含まれるアライブカウンタ領域とを有し、前記制御部は、前記アライブカウンタ領域の位置を変えずに前記複数のデータ領域に含まれるデータ領域の位置を入れ替えることで前記ビットの順序を入れ替える。
【０００８】
請求項４記載の発明は、請求項３記載の通信装置であって、前記制御部は、前記アライブカウンタ領域に含まれる情報によって、前記複数のデータ領域に含まれるデータ領域の位置を決定する。
【０００９】
請求項５記載の発明は、請求項４記載の通信装置であって、前記制御部は、前記アライブカウンタ領域に含まれる情報と前記複数のデータ領域に含まれるデータ領域の位置とが対応付けられた対応情報を参照し、前記アライブカウンタ領域に含まれる情報に対応する順序で、前記複数のデータ領域に含まれるデータ領域の位置の順序を入れ替える。
【００１０】
請求項６記載の発明は、請求項１または２に記載の通信装置であって、前記フレームは、データの内容が格納される複数のデータ領域と、データの識別情報が含まれるアライブカウンタ領域とを有し、前記制御部は、前記複数のデータ領域間に前記アライブカウンタ領域を割り込ませることで、前記ビットの順序を入れ替える。
【００１１】
請求項７記載の発明は、請求項１から６のうちいずれか１項記載の通信装置と、前記有線ネットワークとを備える通信システムである。
【発明の効果】
【００１２】
請求項１、２、３、６および７記載の発明によれば、制御部が、前記フレームの送信回数によって前記送信部が送信するフレームのビットの順序を入れ替えることにより、車載ネットワークのセキュリティ性を向上させることができる。
【００１３】
請求項４および５記載の発明によれば、前記制御部は、前記アライブカウンタ領域に含まれる情報によって、前記複数のデータ領域に含まれるデータ領域の位置を決定することにより、より車載ネットワークのセキュリティ性を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態に係るＥＣＵ１０（通信装置）を含む通信システム１の概念図である。
【図２】通信システム１の構成を、より簡略化して示す図である。
【図３】ＥＣＵ１０の構成例を示す図である。
【図４】ＥＣＵ１０がバスに送信するフレームの形式例である。
【図５】通信制御部４４により実行される送信処理の流れを示すフローチャートである。
【図６】通信制御部４４により実行される受信処理の流れを示すフローチャートである。
【図７】通信制御部４４によりアライブカウンタＡＣのカウント値がインクリメントされると共に、データの位置がずらされる様子を示す図である。
【図８】第２の実施形態に係る通信システムが備えるＥＣＵ１０Ａの構成例を示す図である。
【図９】データ位置テーブル３８の内容を例示した図である。
【図１０】第２の実施形態に係る通信制御部４４により実行される処理の流れを示すフローチャートである。
【図１１】第２の実施形態の通信制御部４４によりアライブカウンタＡＣのカウント値がインクリメントされると共に、データの位置がずらされる様子を示す図である。
【図１２】第３の実施形態に係る通信制御部４４により実行される送信処理の流れを示すフローチャートである。
【図１３】第３の実施形態に係る通信制御部４４により実行される受信処理の流れを示すフローチャートである。
【図１４】通信制御部４４によりアライブカウンタＡＣが１つずつずらされデータ間に挿入される様子を模式的に示す図である。
【図１５】第４の実施形態に係る通信システムが備えるＥＣＵ１０Ｂの構成例を示す図である。
【図１６】アライブカウンタ位置テーブル３９の内容を例示した図である。
【図１７】第４実施形態に係る通信制御部４４により実行される処理の流れを示すフローチャートである。
【図１８】通信制御部４４によりアライブカウンタＡＣがアライブカウンタ位置テーブル３９に対応する位置に挿入される様子を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照し、本発明の通信装置、および通信システムの実施形態について説明する。
【００１６】
＜第１の実施形態＞
図１は、第１の実施形態に係るＥＣＵ１０（通信装置）を含む通信システム１の概念図である。通信システム１は、ＯＢＤコネクタ２に接続されたバス４と、バス４に接続されたサブ通信バス６およびサブ通信バス８とを備える。また、バス４、サブ通信バス６、およびサブ通信バス８には、車両を制御する複数のＥＣＵ１０や、車両の状態を検出する検出センサ、その他車両に搭載される機器等が接続されている。以下、バス４、サブ通信バス６、およびサブ通信バス８を区別しない場合はバスｎという。バスｎでは、例えば、ＣＡＮ（Controller Area Network）に基づく通信が行われる。ＯＢＤ（On-board diagnostics）コネクタ２は、バスに接続された機器の情報を取得する。また、ＯＢＤコネクタ２は、診断用のデータをバスに接続された機器に送信し、送信した診断用のデータに対する応答を受信する。ＯＢＤコネクタ２は、受信した診断用のデータに対する応答に基づいて、バスｎに接続された機器が正常に動作しているか否か等を診断する。また、各機器を制御するための制御用のデータが、ＯＢＤコネクタ２を介して各機器に送信されると、各機器は送信された制御用のデータに応じて作動する。ＥＣＵ１０は、エンジンを制御するエンジンＥＣＵ９Ａや、シートベルトを制御するシートベルトＥＣＵ９Ｂ等である。車両の状態を検出する検出サンサは、例えばヨーレートセンサや、加速度センサ等である。
【００１７】
図２は、通信システム１の構成を、より簡略化して示す図である。通信システム１は、バス４−１に接続されたＥＣＵ１０−１から１０−３と、バス４−２に接続されたＥＣＵ１０−４から１０−６と、バス４−１および４−２に接続され、バス４−１とバス４−２との間を中継するゲートウェイ装置１１とを備える。図２に示す構成は、図１に示す構成と同様に車両に搭載されてもよいし、他の機器に適用されてもよい。バス４−１及びバス４−２では、バスｎと同様に、例えば、ＣＡＮに基づく通信が行われる。各ＥＣＵ１０は、バス４−１または４−２を流れるデータを取得することができる。以下、ＥＣＵ１０−１から１０−６を区別しない場合は、単にＥＣＵ１０と表記する。バス４−１およびバス４−２は、例えば、ツイストペアケーブルであり、差動電圧方式によって信号を伝達する。
【００１８】
図３は、ＥＣＵ１０の構成例を示す図である。ＥＣＵ１０は、例えば、記憶部３０と、制御部４０と、ＣＡＮコントローラ５０と、ＣＡＮトランシーバ５２とを備える。制御部４０は、例えば、ＣＰＵ（Central Processing Unit）等のプロセッサを有する。
【００１９】
記憶部３０は、例えば、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、ＨＤＤ（Hard Disk Drive）等の不揮発性の記憶装置と、ＲＡＭ（Random Access Memory）、レジスタ等の揮発性の記憶装置によって実現される。記憶部３０は、アプリケーションプログラム３２や、ＣＡＮドライバ３４等のプログラムを格納する。また、記憶部３０は、送信バッファ（不図示）と、受信バッファ（不図示）とを含む一時記憶領域３６を有する。
【００２０】
アプリケーションプログラム３２は、ＥＣＵ１０に割り当てられた情報処理を行うためのプログラムである。ＣＡＮドライバ３４は、アプリケーションプログラム３２とＣＡＮコントローラ５０との間を仲介する。
【００２１】
制御部４０は、中央制御部４２と、通信制御部４４とを備える。中央制御部４２は、アプリケーションプログラム３２を実行することにより機能し、ＥＣＵ１０に与えられた制御を実行する。
【００２２】
通信制御部４４は、ＣＡＮトランシーバ５２により受信されたフレームに含まれる情報（ＩＤ）を参照し、自装置が使用する情報が含まれたフレームであるか否かを判定する。自装置が使用する情報がフレームに含まれる場合、通信制御部４４は、フレームに含まれた情報を取得し、記憶部３０の一時記憶領域３６に格納する。
【００２３】
通信制御部４４は、ＣＡＮトランシーバ５２にフレームを送信させる。本実施例において、通信制御部４４は、フレームの送信回数によってＣＡＮトランシーバ５２が送信するフレームのビットの順序を入れ替える。
【００２４】
ＣＡＮコントローラ５０は、ＣＡＮトランシーバ５２を介して、バス４−１または４−２（以下、バス４という。）との間で種々のデータを送受信する。ＣＡＮコントローラ５０は、バス４にフレームを送信する際には、一時記憶領域３６の送信バッファに格納されたフレームを、例えばＮＲＺ（Non‐Return‐to‐Zero）方式でシリアルの送信信号に変換し、ＣＡＮトランシーバ５２に出力する。ＣＡＮコントローラ５０は、変換後の信号が「０」（ドミナント）のビットには論理レベルがLowの電圧を出力し、「１」（レセシブ）のビットには論理レベルがHighの電圧を出力する。また、ＣＡＮコントローラ５０は、ＣＡＮトランシーバ５２からデータ（フレーム）を受信する際には、受信したフレームを、例えばシリアルの送信信号から制御部４０が解析できる情報に変換し、ＣＡＮコントローラ５０を介して一時記憶領域３６の受信バッファに格納する。
【００２５】
ＣＡＮトランシーバ５２は、フレームを送信する送信部、またはフレームを受信する受信部として機能する。ＣＡＮトランシーバ５２は、ＣＡＮコントローラ５０から取得した送信信号を差動電圧に変換してバス４に送信する。また、ＣＡＮトランシーバ５２は、バス４からデータを取得する際には、バス４の差動電圧を読み取り、所定の電圧範囲に含まれるように整形した受信信号をＣＡＮコントローラ５０に送信する。ＣＡＮコントローラ５０の受信端子Ｒｘにはコンパレータが取り付けられており、所定の閾値電圧とＣＡＮトランシーバ５２からの受信信号とを比較することで、「１」、「０」のデジタルデータを生成して記憶部３０に格納する。
【００２６】
図４は、ＥＣＵ１０がバスに送信するフレームの形式例である。１回の送信において送信されるフレームは、フレームの開始を表すスタートオブフレーム（ＳＯＦ）、データの識別子であるＩＤ、データフレームとリモートフレームを識別するためのリモートトランスミッションリクエスト（ＲＴＲ）、データのバイト数等を表すコントロールフィールド、転送するデータの実体であるデータフィールド、識別情報が付与されるアライブカウンタＡＣ、フレームの誤りをチェックするためのＣＲＣを付加するＣＲＣシーケンス、正しいメッセージを受信したユニットからの通知（ＡＣＫ）を受けるＡＣＫスロット及びＡＣＫデリミタ、フレームの終了を表すエンドオブフレーム（ＥＯＦ）等を含む。フレームにおいて、データフィールドが「データ領域」の一例である。また、データフィールドおよびアライブカウンタＡＣを含む領域が「任意領域」の一例であり、その他領域が「通信プロトコルによって定められる規格領域」の一例である。
【００２７】
バス４では、ＩＤとＲＴＲにより表される優先度に基づく通信調停が行われる。複数のＥＣＵ１０から同時にフレームが送信される場合、各ＥＣＵ１０は、自己が送信したデータとバス状態をモニターした結果を比較する。ここで、リセッシブとドミナントが別々のＥＣＵ１０から同時に送信された場合、ドミナントが優先され、バスの状態はドミナントとなる。このとき、リセッシブを送信したノードは自己が送信したものとバス状態の違いにより、通信調停に負けたと判断して送信を停止する。係る原理により、複数のＥＣＵ１０から同時にフレームが送信開始された場合、他ノードがリセッシブ送信を行っているときにドミナントを送信したノードが通信調停に勝つことになるので、ＩＤの値が小さいフレームほど、優先度が高いということになる。
【００２８】
以下、通信制御部４４により実行される処理の流れについて、フローチャートに即して説明する。図５は、通信制御部４４により実行される送信処理の流れを示すフローチャートである。
【００２９】
まず、通信制御部４４が、送受信回数が１回目であるか否かを判定する（ステップＳ１００）。１回目とは、例えば、ＥＣＵ１０に電源投入されてから１回目という意味である。なお、ＥＣＵ１０は、電源投入された際の初期化処理として、アライブカウンタＡＣのカウント値をゼロに設定する処理を行う。また、アライブカウンタＡＣのカウント値が上限値まで達しオーバフローした際にも、アライブカウンタＡＣのカウント値はゼロに戻され、疑似的に１回目として扱われることになる。
【００３０】
ステップＳ１００でフレームの送受信回数が１回目であると判定された場合、通信制御部４４は、カウント値がゼロに設定されたアライブカウンタＡＣを含むフレームをＣＡＮトランシーバ５２に送信させる（ステップＳ１０２）。この場合、後述するデータをずらす処理は行われない。
【００３１】
ステップＳ１００でフレームの送受信回数が１回目でないと判定された場合、通信制御部４４は、アライブカウンタＡＣのカウント値を１つインクリメントする（ステップＳ１０４）。次に、通信制御部４４は、データフィールドのデータを後述するように（図７参照）ずらす（ステップＳ１０６）。次に、通信制御部４４は、ステップＳ１０４でアライブカウンタＡＣのカウント値を設定し、ステップＳ１０６でデータをずらしたフレームを送信する（ステップＳ１０８）。これにより本フローチャートの１ルーチンの処理は終了する。
【００３２】
図６は、通信制御部４４により実行される受信処理の流れを示すフローチャートである。まず、通信制御部４４が、受信したフレームに含まれるアライブカウンタＡＣのカウント値を取得する（ステップＳ１５０）。次に、通信制御部４４は、ステップＳ１５０で取得されたカウント値に基づいて、ずらされたデータの位置を特定する（ステップＳ１５２）。次に、通信制御部４４は、ステップＳ１５２で特定されたデータの位置に基づいてフレーム（任意領域）を復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する（ステップＳ１５４）。これにより本フローチャートの１ルーチンの処理は終了する。
【００３３】
図７は、通信制御部４４によりアライブカウンタＡＣのカウント値がインクリメントされると共に、データの位置がずらされる様子を示す図である。図中では、フレームのうちデータフィールドに含まれるデータＤ１からＤ４、アライブカウンタＡＣ、およびＣＲＣシーケンスのみを示している。また、データの初期位置は、データの先頭（ＣＲＣシーケンスとは反対側）からデータＤ１、Ｄ２、Ｄ３、Ｄ４の順で配置されているものとして説明する。
【００３４】
フレームの１回目の送信では、データＤ１からＤ４は初期位置に配置される。このときアライブカウンタＡＣのカウント値はゼロに設定されている。フレームの２回目の送信では、通信制御部４４が、アライブカウンタＡＣのカウント値を１つインクリメントすると共に、データＤ１からＤ４の位置を循環的に後方にずらして送信する。すなわち、フレームの２回目の送信では、データＤ４を先頭として、データＤ１、Ｄ２，Ｄ３の順に並べた状態で送信される。フレームの３回目の送信では、通信制御部４４が、アライブカウンタＡＣのカウント値を１つインクリメントすると共に、データＤ１からＤ４の位置を循環的に後方にずらして送信する。この結果、フレームの３回目の送信では、データＤ３を先頭として、データＤ４、Ｄ１、Ｄ２の順に並べた状態で送信される。
【００３５】
フレームを受信するＥＣＵ１０においては、上述した図６の処理により、通信制御部４４が、データＤ１からＤ４の位置を判定する。フレームの１回目の受信では、アライブカウンタＡＣのカウント値は０であるため、通信制御部４４は、データＤ１からＤ４の位置は初期位置であると判断する。フレームの２回目の受信では、アライブカウンタＡＣのカウント値は１であるため、通信制御部４４は、前回送信されたフレームのデータＤ１からＤ４の順序が１つずらされたデータＤ４、Ｄ１、Ｄ２、Ｄ３の順序で送信されたと判断する。フレームの３回目の受信では、アライブカウンタＡＣのカウント値は２であるため、通信制御部４４は、前回送信されたフレームのデータＤ４、Ｄ１、Ｄ２、Ｄ３の順序が１つずらされたデータＤ３、Ｄ４、Ｄ１、Ｄ２の順序で送信されたと判断する。
【００３６】
受信側のＥＣＵ１０の通信制御部４４は、フレームに含まれるデータの順序を、本来のデータの順序に並べ換えた状態で一時記憶領域３６に格納する。この結果、受信側のＥＣＵ１０のアプリケーションプログラム３２（中央制御部４２）は、送信元が意図したデータの内容を受け取ることができる。
【００３７】
また、本実施形態のＥＣＵ１０および通信システム１によれば、データの配置を固定的にせず、送信回数に応じて変更しているため、外部から通信にアクセスし通信データを解析することによる不適切な干渉を妨害することができる。この結果、セキュリティ性を向上させることができる。
【００３８】
以上説明した第１の実施形態の通信システム１によれば、フレームを送信する側の通信制御部４４は、アライブカウンタＡＣのカウント値を１つインクリメントすると共に、各データの位置を循環的に後方にずらして送信する。フレームを受信する側の通信制御部４４は、受信したフレームに含まれるアライブカウンタＡＣのカウント値に基づいて、フレームに含まれるデータの順序を判断して、判断結果に基づいてデータの位置を入れ替える。これらの結果、通信システム１は、車載ネットワークのセキュリティ性を向上させることができる。
【００３９】
また、本実施形態では通信システム１の各ＥＣＵ１０が通信制御部４４を備えるものとして説明したが、図１に示すＯＢＤコネクタ２等に、ＥＣＵ１０の通信制御部４４と同様の機能が搭載されてもよい。この場合、ＯＢＤＡコネクタ２から送信される診断用のデータ、または各ＥＣＵ１０から送信されるデータには、アライブカウンタＡＣのカウント値に基づいて、データがずらされている。
【００４０】
＜第２の実施形態＞
以下、図面を参照し、第２の実施形態に係る通信システムについて説明する。図８は、第２の実施形態に係る通信システムが備えるＥＣＵ１０Ａの構成例を示す図である。第２の実施形態では、ＥＣＵ１０Ａがデータ位置テーブル３８を備え、通信制御部４４がデータ位置テーブル３８を参照してデータの位置を入れ替える点で、第１実施形態と相違する。以下では、係る相違点を中心に説明する。
【００４１】
図９は、データ位置テーブル３８の内容を例示した図である。データ位置テーブル３８は、アライブカウンタＡＣのカウント値と、フレームに含まれるデータの位置との対応関係を示す情報（対応情報）である。図示する例では、アライブカウンタＡＣのカウント値と、データＤ１の位置とが対応付けられている。例えばアライブカウンタＡＣのカウント値が０のとき、アライブカウンタＡＣの位置は１番（送信されるデータの先頭）、アライブカウンタＡＣのカウント値が１のとき、アライブカウンタＡＣの位置は送信されるデータの先頭から４番目、アライブカウンタＡＣのカウント値が２のとき、アライブカウンタＡＣの位置は２番目、・・・アライブカウンタＡＣのカウント値がＮのとき、アライブカウンタＡＣの位置は３番目であることを示している。
【００４２】
以下、データ位置テーブル３８を用いた通信制御部４４の処理について、フローチャートに即して説明する。図１０は、第２の実施形態に係る通信制御部４４により実行される処理の流れを示すフローチャートである。まず、通信制御部４４が、アライブカウンタＡＣのカウント値を取得する（ステップＳ２００）。次に、通信制御部４４は、データ位置テーブル３８を参照し、ステップＳ２００で取得されたアライブカウンタＡＣのカウント値に対応するデータの位置を特定する（ステップＳ２０２）。次に、通信制御部４４は、ステップＳ２０２で特定したデータの位置にデータを入れ替え（ステップＳ２０４）、入れ替えたデータを含むフレームを送信する（ステップＳ２０６）。これにより本フローチャートの１ルーチンの処理は終了する。
【００４３】
ステップＳ２０６により送信されたフレームを受信した側の通信制御部４４は、受信したフレームに含まれるアライブカウンタＡＣのカウント値を取得する。通信制御部４４は、データ位置テーブル３８を参照して、アライブカウンタＡＣのカウント値に対応するデータの位置を特定する。通信制御部４４は、特定した位置に基づいてフレーム（任意領域）を復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する。
【００４４】
図１１は、第２の実施形態の通信制御部４４によりアライブカウンタＡＣのカウント値がインクリメントされると共に、データの位置がずらされる様子を示す図である。図中では、フレームのうちデータフィールドに含まれるデータＤ１からＤ４、アライブカウンタＡＣ、およびＣＲＣシーケンスのみを示している。また、データの初期位置は、データの先頭（ＣＲＣシーケンスとは反対側）からデータＤ１、Ｄ２、Ｄ３、Ｄ４の順で配置されているものとして説明する。
【００４５】
フレームの１回目の送信では、アライブカウンタＡＣのカウント値は０である。通信制御部４４は、データ位置テーブル３８を参照し、アライブカウンタＡＣのカウント値ゼロに対応するようにデータを入れ替えて送信する。アライブカウンタＡＣのカウント値ゼロに対応する位置は、データＤ１からＤ４が初期位置に並べられた位置である。フレームの２回目の送信では、アライブカウンタＡＣのカウント値は１である。通信制御部４４は、データ位置テーブル３８を参照し、アライブカウンタＡＣのカウント値１に対応するようにデータを入れ替えて送信する。アライブカウンタＡＣのカウント値１に対応する位置は、データＤ１を４番目に入れ替えた位置である。フレームの２回目の送信では、データ４を先頭として、次いでデータＤ２、Ｄ３、Ｄ１の順で送信される。フレームの３回目の送信では、アライブカウンタＡＣのカウント値は２である。通信制御部４４は、データ位置テーブル３８を参照し、アライブカウンタＡＣのカウント値２に対応するようにデータを入れ替えて送信する。アライブカウンタＡＣのカウント値２に対応する位置は、データＤ１を２番目に入れ替えた位置である。フレームの３回目の送信では、データ２を先頭として、次いでデータＤ１、Ｄ３、Ｄ４の順で送信される。
【００４６】
送信されたフレームを受信した側の通信制御部４４は、データ位置テーブル３８を参照して、受信したフレームに含まれるアライブカウンタＡＣのカウント値に基づいて、フレーム（任意領域）を復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する。図１１に示すように、通信制御部４４が、カウント値が２に設定されたアライブカウンタを含むフレームを受信した場合、通信制御部４４は、データ位置テーブル３８を参照して、データＤ１の位置が先頭から２番目に入れ替えられたと判断する。通信制御部４４が、判断の結果に基づいて、フレーム（任意領域）を復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する。
【００４７】
以上説明した第２実施形態の通信システム１によれば、通信制御部４４が、データ位置テーブル３８を参照し、アライブカウンタＡＣのカウント値に基づいて送信するデータの順序を入れ替えて送信する。また、通信制御部４４が、データ位置テーブル３８を参照し、受信したフレームに含まれるアライブカウンタＡＣのカウント値に基づいて、データを復元する。この結果、通信システム１は、第１実施形態の効果を奏すると共に、不規則にデータの順序を入れ替えることができる。
【００４８】
＜第３の実施形態＞
以下、図面を参照し、第３実施形態に係る通信システムについて説明する。第１実施形態および第２実施形態では、通信制御部４４が、送信するフレームのデータの位置を入れ替えるものとしたが、第３実施形態の通信システム３００では、通信制御部４４が、フレームの送信回数に基づいて、アライブカウンタＡＣの位置を入れ替える。以下では、係る相違点を中心に説明する。
【００４９】
図１２は、第３の実施形態に係る通信制御部４４により実行される送信処理の流れを示すフローチャートである。まず、通信制御部４４が、記憶部３０に格納されたフレームの送受信結果を参照し、通信システム１におけるこれまでのフレームの送受信回数を特定する（ステップＳ３００）。次に、通信制御部４４は、ステップＳ３００で特定されたフレームの送受信回数が１回目であるか否かを判定する（ステップＳ３０２）。ステップＳ３００で特定されたフレームの送受信回数が１回目である場合、通信制御部４４は、初期位置に挿入されているアライブカウンタＡＣの位置を維持した状態でフレームをＣＡＮトランシーバ５２に送信させる（ステップＳ３０４）。なお、通信制御部４４は、予めアライブカウンタＡＣが初期位置に挿入されていない場合、初期位置にアライブカウンタＡＣを挿入してフレームをＣＡＮトランシーバ５２に送信させてもよい。
【００５０】
ステップＳ３００で特定されたフレームの送受信回数が１回目でない場合、通信制御部４４は、アライブカウンタＡＣの位置を前回の位置から１つずらした位置にアライブカウンタＡＣを挿入する（ステップＳ３０６）。アライブカウンタＡＣの位置を１つずらした位置とは、例えばフレームにおけるデータの先頭側または後方側に一つずらされた位置である。なお、本実施形態では、「１つずらした位置」としているが、これに限られない。ステップＳ３０６の処理を、例えば「Ｎ（Ｎは任意の自然数）つずらした位置」としてもよい。次に、通信制御部４４は、ステップＳ３０６の処理がされたフレームをＣＡＮトランシーバ５２に送信させる（ステップＳ３０８）。これにより本フローチャートの１ルーチンの処理は終了する。
【００５１】
図１３は、第３の実施形態に係る通信制御部４４により実行される受信処理の流れを示すフローチャートである。まず、通信制御部４４が、記憶部３０に格納されたフレームの送受信結果を参照し、通信システム１におけるこれまでのフレームの送受信回数を特定する（ステップＳ３５０）。次に、通信制御部４４は、ステップＳ３５０で特定されたフレームの送受信回数が１回目であるか否かを判定する（ステップＳ３５２）。ステップＳ３５０で特定されたフレームの送受信回数が１回目である場合、通信制御部４４は、アライブカウンタＡＣの位置は初期位置であるとみなしてフレームを復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する（ステップＳ３５４）。ステップＳ３５０で特定されたフレームの送受信回数が１回目でない場合、通信制御部４４は、アライブカウンタＡＣの位置は前回のアライブカウンタＡＣ位置から一つずらされた位置であるとみなしてフレームを復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する（ステップＳ３５６）。これにより本フローチャートの１ルーチンが終了する。
【００５２】
図１４は、通信制御部４４によりアライブカウンタＡＣが１つずつずらされデータ間に挿入される様子を模式的に示す図である。図中では、フレームのうちデータフィールドに含まれるデータＤ１からＤ４、アライブカウンタＡＣ、およびＣＲＣシーケンスのみを示している。また、アライブカウンタＡＣの初期位置は、データ４の後であるものとして説明する。
【００５３】
フレームの１回目の送信では、通信制御部４４は、アライブカウンタＡＣを初期位置に配置した状態でバス４に送信する。フレームの２回目の送信では、通信制御部４４は、アライブカウンタＡＣを初期位置から１つ先頭側にずらしてバス４に送信する。フレームの２回目の送信では、アライブカウンタＡＣはＤ３とＤ４との間に挿入されてバスに送信される。また、フレームの３回目の送信では、通信制御部４４が、アライブカウンタＡＣを２回目の送信位置から１つ先頭側にずらしてバスに送信する。フレームの３回目の送信では、アライブカウンタＡＣはＤ２とＤ３との間に挿入されて送信される。
【００５４】
フレームを受信するＥＣＵ１０においては、上述した図１３の処理により、通信制御部４４が、アライブカウンタＡＣの位置を特定する。フレームの１回目の受信では、アライブカウンタＡＣの位置は、初期位置であるとみなしフレームを復元する。フレームの２回目の受信では、通信制御部４４が、アライブカウンタＡＣの位置は前回のアライブカウンタＡＣ位置から一つずらされた位置、すなわちＤ３とＤ４との間に挿入されているとみなしフレームを復元する。フレームの３回目の受信では、通信制御部４４が、アライブカウンタＡＣの位置は前回のアライブカウンタＡＣ位置から一つずらされた位置、すなわちＤ２とＤ３との間に挿入されているとみなしフレームを復元する。
【００５５】
以上説明した第３実施形態の通信システム１によれば、フレームを送信する側では、設定された基準に従いアライブカウンタＡＣをフレーム内に挿入することにより、設定された基準が記憶されていない受信側においてフレームに含まれるアライブカウンタＡＣの位置を特定させないようにすることができる。一方、設定された基準が記憶されている受信側においては、フレームに含まれるアライブカウンタＡＣの位置を特定することができる。この結果、通信システム１は、車載ネットワークのセキュリティ性を向上させることができる。
【００５６】
＜第４実施形態＞
図１５は、第４の実施形態に係る通信システムが備えるＥＣＵ１０Ｂの構成例を示す図である。第４の実施形態では、ＥＣＵ１０Ｂがアライブカウンタ位置テーブル３９を備え、通信制御部４４がアライブカウンタ位置テーブル３９を参照してデータの位置を入れ替える点で、第３の実施形態と相違する。以下では、係る相違点を中心に説明する。
【００５７】
図１６は、アライブカウンタ位置テーブル３９の内容を例示した図である。アライブカウンタ位置テーブル３９は、通信システム１全体におけるフレームの送信回数と、アライブカウンタＡＣの位置との対応関係を示す情報である。図示する例では、例えば１回目の送信ではアライブカウンタＡＣの位置は５番、２回目の送信ではアライブカウンタＡＣの位置は３番、３回目の送信ではアライブカウンタＡＣの位置は４番等のように、フレームの送信回数はアライブカウンタＡＣの位置に対応付けられている。アライブカウンタ位置テーブル３９は、通信システム１を構成する各ＥＣＵ１０の記憶部３０に格納される。
【００５８】
図１７は、第４実施形態に係る通信制御部４４により実行される処理の流れを示すフローチャートである。まず、通信制御部４４が、記憶部３０に格納されたフレームの送受信結果を参照し、通信システム１におけるこれまでのフレームの送受信回数を特定する（ステップＳ４００）。次に、通信制御部４４は、アライブカウンタ位置テーブル３９を参照し（ステップＳ４０２）、ステップＳ４００で特定されたフレームの送受信回数に対応する位置にアライブカウンタＡＣを挿入する（ステップＳ４０４）。次に、通信制御部４４は、ステップＳ４０４の処理によりアライブカウンタＡＣが挿入されたフレームをＣＡＮトランシーバ５２に送信させる（ステップＳ４０６）。これにより本フローチャートの１ルーチンの処理は終了する。
【００５９】
ステップＳ４０６により送信されたフレームを受信した側の通信制御部４４は、アライブカウンタ位置テーブル３９を参照して、受信したフレームに含まれるアライブカウンタＡＣの位置を特定する。通信制御部４４は、アライブカウンタＡＣの位置に基づいてフレームを復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する。通信制御部４４は、例えば特定した位置のアライブカウンタＡＣの情報を無効として扱いデータを復元する。
【００６０】
図１８は、通信制御部４４によりアライブカウンタＡＣがアライブカウンタ位置テーブル３９に対応する位置に挿入される様子を示す図である。図中では、フレームのうちデータフィールドに含まれるデータＤ１からＤ４、アライブカウンタＡＣ、およびＣＲＣシーケンスのみを示している。また、アライブカウンタＡＣの初期位置は、データ４の後であるものとして説明する。
【００６１】
フレームの１回目の送信では、通信制御部４４は、アライブカウンタ位置テーブル３９を参照し、１回目の送信回数に対応するアライブカウンタＡＣを挿入する位置を特定する。送信回数が１回目に対応するアライブカウンタＡＣの位置が５番目の場合、アライブカウンタＡＣを先頭のデータから５番目に挿入して、フレームを送信する。フレームの２回目の送信では、通信制御部４４は、アライブカウンタ位置テーブル３９を参照し、２回目の送信回数に対応するアライブカウンタＡＣを挿入する位置を特定する。送信回数が２回目に対応するアライブカウンタＡＣの位置が３番目の場合、アライブカウンタＡＣを先頭のデータから３番目に挿入して、フレームを送信する。フレームの３回目の送信では、通信制御部４４は、アライブカウンタ位置テーブル３９を参照し、３回目の送信回数に対応するアライブカウンタＡＣを挿入する位置を特定する。送信回数が３回目に対応するアライブカウンタＡＣの位置が４番目の場合、アライブカウンタＡＣを先頭のデータから４番目に挿入して、フレームを送信する。
【００６２】
送信されたフレームを受信した側の通信制御部４４は、アライブカウンタ位置テーブル３９を参照して、受信したフレームの送信回数に基づいて、フレーム（任意領域）を復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する。図１７に示すように、送信回数が３回目のアライブカウンタＡＣを含むフレームを受信した場合、通信制御部４４は、アライブカウンタ位置テーブル３９を参照して、アライブカウンタＡＣは先頭から４番目に挿入されたと判断する。通信制御部４４が、判断の結果に基づいて、フレーム（任意領域）を復元し、受信データとしてフレームの少なくとも一部を一時記憶領域３６に格納する。
【００６３】
以上説明した第４実施形態の通信システム１によれば、通信制御部４４が、アライブカウンタ位置テーブル３９を参照し、送信するデータに含まれるアライブカウンタＡＣの位置を決定し、決定した結果に基づく位置にアライブカウンタＡＣを挿入したデータを含むフレームを送信する。また、通信制御部４４が、アライブカウンタ位置テーブル３９を参照し、受信したフレームに含まれるアライブカウンタＡＣの位置を特定する。この結果、通信システム１は、第３実施形態の効果を奏すると共に、不規則にアライブカウンタＡＣをフレーム内に挿入させることができる。
【００６４】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００６５】
１‥通信システム、１０‥ＥＣＵ、３０‥記憶部、４０‥制御部、４４‥通信制御部、
ＡＣ‥アライブカウンタ
【図１】
2017017615.tif 000003
【図２】
2017017615.tif 000004
【図３】
2017017615.tif 000005
【図４】
2017017615.tif 000006
【図５】
2017017615.tif 000007
【図６】
2017017615.tif 000008
【図７】
2017017615.tif 000009
【図８】
2017017615.tif 000010
【図９】
2017017615.tif 000011
【図１０】
2017017615.tif 000012
【図１１】
2017017615.tif 000013
【図１２】
2017017615.tif 000014
【図１３】
2017017615.tif 000015
【図１４】
2017017615.tif 000016
【図１５】
2017017615.tif 000017
【図１６】
2017017615.tif 000018
【図１７】
2017017615.tif 000019
【図１８】
2017017615.tif 000020