(57)【要約】【課題】不正なプログラムの注入によるネットワークへの不正なメッセージ送信を抑制し得る通信装置及び通信コントローラを提供する。【解決手段】本実施の形態に係る通信装置は、記憶部に記憶されたプログラムを実行することによって通信に係る処理を行うプロセッサと、該プロセッサの処理に応じて通信線に対するメッセージの送受信を行う通信コントローラとを備え、イーサネット（登録商標）の通信規格に応じた通信を行う通信装置において、前記通信コントローラは、前記プロセッサにより値が設定され、イーサネットの通信に係る設定値を記憶する複数のレジスタと、前記複数のレジスタに対する値の設定を許可する第１モード、及び、前記複数のレジスタに対する値の設定を制限する第２モードを切り替える切替部とを有する。【選択図】図２
2018121120.tif 000002
【特許請求の範囲】
【請求項１】
記憶部に記憶されたプログラムを実行することによって通信に係る処理を行うプロセッサと、該プロセッサの処理に応じて通信線に対するメッセージの送受信を行う通信コントローラとを備え、イーサネット（登録商標）の通信規格に応じた通信を行う通信装置において、
前記通信コントローラは、
前記プロセッサにより値が設定され、イーサネットの通信に係る設定値を記憶する複数のレジスタと、
前記複数のレジスタに対する値の設定を許可する第１モード、及び、前記複数のレジスタに対する値の設定を制限する第２モードを切り替える切替部と
を有することを特徴とする通信装置。
【請求項２】
前記通信コントローラは、
前記プロセッサから与えられた送信用のメッセージを蓄積する複数のキューと、
前記複数のキューに蓄積されたメッセージから、送信すべき一のメッセージを選択する送信メッセージ選択部と
を有し、
前記複数のレジスタには、前記送信メッセージ選択部によるメッセージの選択を規定する設定値を記憶するレジスタを含むこと
を特徴とする請求項１に記載の通信装置。
【請求項３】
前記送信メッセージ選択部は、ＣＢＳ（Credit Based Shaper）又はＢＬＳ（Burst Limiting Shaper）のアルゴリズムに従ってメッセージを選択し、
前記複数のレジスタには、前記アルゴリズムにおける処理を規定する設定値を記憶するレジスタを含むこと
を特徴とする請求項２に記載の通信装置。
【請求項４】
前記複数のレジスタには、前記キューに対する送信を要求することが可能な最低の周期である最低送信要求周期を設定するレジスタを含み、
前記通信コントローラは、前記最低送信要求周期よりも短い周期で前記プロセッサから送信用のメッセージが与えられた場合、該メッセージの送信を制限すること
を特徴とする請求項２に記載の通信装置。
【請求項５】
前記切替部は、
前記通信コントローラへのリセット信号の入力に応じて、前記第１モードへの切り替えを行い、
前記第１モードへの切り替え後、所定時間が経過した場合に前記第２モードへの切り替えを行うこと
を特徴とする請求項１乃至請求項４のいずれか１つに記載の通信装置。
【請求項６】
前記リセット信号の入力から前記所定時間が経過するまでの間に前記プロセッサが実行するプログラムを記憶する第２の記憶部を備え、
前記第２の記憶部は、データの書き換えが不可能であること
を特徴とする請求項５に記載の通信装置。
【請求項７】
外部装置を接続する接続部を備え、
前記切替部は、
前記接続部に所定の外部装置が接続された場合に、前記第１モードへの切り替えを行い、
前記接続部に外部装置が接続されていない場合、又は、前記接続部に前記所定の外部装置以外の外部装置が接続されている場合に、前記第２モードへの切り替えを行うこと
を特徴とする請求項１乃至請求項６のいずれか１つに記載の通信装置。
【請求項８】
プロセッサの処理に応じて通信線に対するメッセージの送受信をイーサネットの通信規格に従って行う通信コントローラにおいて、
前記プロセッサにより値が設定され、イーサネットの通信に係る設定値を記憶する複数のレジスタと、
前記複数のレジスタに対する値の設定を許可する第１モード、及び、前記複数のレジスタに対する値の設定を制限する第２モードを切り替える切替部と
を備えることを特徴とする通信コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イーサネット（登録商標）の通信規格に従って通信を行う通信装置及び通信コントローラに関する。
【背景技術】
【０００２】
車両に搭載されるＥＣＵ（Electronic Control Unit）は高機能化しており、これに伴ってＥＣＵにて実行されるプログラムも複雑化している。また車両には複数のＥＣＵが搭載され、これらが車内ネットワークを介してメッセージの送受信を行うことにより、情報を交換しながら協調して処理を進めている。近年では、車載のＥＣＵが通信を行うための通信規格として、イーサネットの通信規格が注目されている。
【０００３】
特許文献１においては、車載制御装置を車載ネットワークに登録させる登録装置を介して、通信規約のうち車載ネットワーク上の実装に依拠する部分を定義する定義データを、車載制御装置に配信する機能を有する通信規約発行装置を設けた車載ネットワークシステムが提案されている。
【０００４】
特許文献２においては、計算機に内蔵された通信装置のアドレス情報と認証用データとの組を予め記憶しておき、入出力ポートに接続された通信装置から自装置のアドレス情報と認証用データを含む認証用パケットが入力されたとき、入力パケット内のアドレス情報に対応する予め記憶された認証用データと入力パケット内の認証用データとを比較し、入出力ポートに接続された通信装置の認証を行うパケット交換装置が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１６８８６５号公報
【特許文献２】特開２００１−１８６１８６号公報
【非特許文献】
【０００６】
【非特許文献１】K. Koscher, A. Czeskis, F. Roesner, S. Patel, T. Kohno, S. Checkoway, D. McCoy, B. Kantor, D. Anderson, H. Shacham, and S. Savage. Experimental security analysis of a modern automobile. In Proc. of the IEEE Symposium on Security and Privacy, pages 447-462, 2010.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら非特許文献１においては、ＥＣＵに不正なプログラムを注入することによって、車両内のネットワークへ不正なメッセージ送信を行うことが可能であることが報告されている。不正なプログラムによる不正なメッセージ送信が行われることにより、ネットワークに接続された他のＥＣＵに誤動作などが発生する虞がある。このような不正なメッセージ送信に対しては、特許文献１に記載の車載ネットワークシステム及び特許文献２に記載のパケット交換装置では有効な対策となり得なかった。
【０００８】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、不正なプログラムの注入によるネットワークへの不正なメッセージ送信を抑制し得る通信装置及び通信コントローラを提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係る通信装置は、記憶部に記憶されたプログラムを実行することによって通信に係る処理を行うプロセッサと、該プロセッサの処理に応じて通信線に対するメッセージの送受信を行う通信コントローラとを備え、イーサネットの通信規格に応じた通信を行う通信装置において、前記通信コントローラは、前記プロセッサにより値が設定され、イーサネットの通信に係る設定値を記憶する複数のレジスタと、前記複数のレジスタに対する値の設定を許可する第１モード、及び、前記複数のレジスタに対する値の設定を制限する第２モードを切り替える切替部とを有することを特徴とする。
【００１０】
また、本発明に係る通信装置は、前記通信コントローラが、前記プロセッサから与えられた送信用のメッセージを蓄積する複数のキューと、前記複数のキューに蓄積されたメッセージから、送信すべき一のメッセージを選択する送信メッセージ選択部とを有し、前記複数のレジスタには、前記送信メッセージ選択部によるメッセージの選択を規定する設定値を記憶するレジスタを含むことを特徴とする。
【００１１】
また、本発明に係る通信装置は、前記送信メッセージ選択部が、ＣＢＳ（Credit Based Shaper）又はＢＬＳ（Burst Limiting Shaper）のアルゴリズムに従ってメッセージを選択し、前記複数のレジスタには、前記アルゴリズムにおける処理を規定する設定値を記憶するレジスタを含むことを特徴とする。
【００１２】
また、本発明に係る通信装置は、前記複数のレジスタには、前記キューに対する送信を要求することが可能な最低の周期である最低送信要求周期を設定するレジスタを含み、前記通信コントローラは、前記最低送信要求周期よりも短い周期で前記プロセッサから送信用のメッセージが与えられた場合、該メッセージの送信を制限することを特徴とする。
【００１３】
また、本発明に係る通信装置は、前記切替部が、前記通信コントローラへのリセット信号の入力に応じて、前記第１モードへの切り替えを行い、前記第１モードへの切り替え後、所定時間が経過した場合に前記第２モードへの切り替えを行うことを特徴とする。
【００１４】
また、本発明に係る通信装置は、前記リセット信号の入力から前記所定時間が経過するまでの間に前記プロセッサが実行するプログラムを記憶する第２の記憶部を備え、前記第２の記憶部は、データの書き換えが不可能であることを特徴とする。
【００１５】
また、本発明に係る通信装置は、外部装置を接続する接続部を備え、前記切替部は、前記接続部に所定の外部装置が接続された場合に、前記第１モードへの切り替えを行い、前記接続部に外部装置が接続されていない場合、又は、前記接続部に前記所定の外部装置以外の外部装置が接続されている場合に、前記第２モードへの切り替えを行うことを特徴とする。
【００１６】
また、本発明に係る通信コントローラは、プロセッサの処理に応じて通信線に対するメッセージの送受信をイーサネットの通信規格に従って行う通信コントローラにおいて、前記プロセッサにより値が設定され、イーサネットの通信に係る設定値を記憶する複数のレジスタと、前記複数のレジスタに対する値の設定を許可する第１モード、及び、前記複数のレジスタに対する値の設定を制限する第２モードを切り替える切替部とを備えることを特徴とする。
【００１７】
本発明において通信装置は、イーサネットの通信規格に応じた通信を行う。通信装置は、記憶部に記憶されたプログラムを読み出して実行することにより通信に係る処理を行うプロセッサと、プロセッサの通信処理に応じて通信線に対するメッセージの送受信を行う通信コントローラとを備える。例えばプロセッサは、車載機器の制御処理又は車載センサにより情報検出処理等を行って、これらの処理の結果として他の通信装置へ送信すべき情報が得られた場合、この情報を含む送信用のメッセージを生成し、生成した送信用のメッセージを通信コントローラへ与える。通信コントローラは、プロセッサから与えられた送信用のメッセージを電気信号に変換して通信線へ出力することによって、他の通信装置へのメッセージ送信を行う。また通信コントローラは、イーサネットの通信に係る設定値を記憶する複数のレジスタを有している。このレジスタには、例えば送受信されるメッセージのサイズ（フレーム長）及び自装置の識別情報（ＭＡＣ（Media Access Control）アドレス）等の設定値が記憶される。プロセッサは、通信コントローラのレジスタに対する設定値の書き込みを行った後、この通信コントローラを利用した他の通信装置とのメッセージ送受信を行うことが可能となる。
このような構成において、例えば通信装置のプログラムが不正に書き換えられた場合、不正なプログラムを実行したプロセッサが通信コントローラのレジスタの設定値を不正に変更する虞がある。これにより、例えば通信コントローラが不正なメッセージを最優先で送信するなど、不正なメッセージ送信が行われる虞がある。
そこで通信コントローラは、レジスタに対する値の設定を許可する第１モードと、設定を制限する第２モードとの切り替えを行う。このモード切替を適切に行うことによって、不正なプログラムによるレジスタの設定値の変更を制限することができる。
【００１８】
また本発明においては、通信コントローラが送信用のメッセージを蓄積する複数のキューを備える。プロセッサから与えられた送信用のメッセージは複数のキューのいずれかに蓄積され、通信コントローラは複数のキューから一のメッセージを選択して送信する。モード変更により設定値の変更が制限されるレジスタには、キューからのメッセージ選択を規定する設定値を記憶するレジスタを含む。
例えば送信するメッセージの選択をイーサネットのＣＢＳ（Credit Based Shaper）又はＢＬＳ（Burst Limiting Shaper）のアルゴリズムに従って行う場合、このアルゴリズムの処理を規定する設定値を記憶するレジスタに対する設定変更を制限する構成とすることができる。アルゴリズムの処理を規定する設定値は、例えばＣＢＳの場合にクレジットの増減量、上限及び下限等の値とすることができ、また例えばＢＬＳの場合にクレジットの増減量、最大値及び再開値等の値とすることができる。
このように、キューからの送信すべきメッセージの選択に係る設定値に対する変更を制限することによって、例えば不正なメッセージを最優先で送信するよう通信コントローラの設定値を変更するなどの不正な処理を防止できる。
【００１９】
また本発明において通信コントローラには、プロセッサからの送信用のメッセージを蓄積する複数のキューに対してそれぞれ最低送信要求周期を設定することができる。通信コントローラは、各キューに対してプロセッサが送信用のメッセージを与える頻度、即ち各キューに対するプロセッサからの送信要求周期が、キュー毎に設定された最低送信要求周期より短い場合、プロセッサから与えられるメッセージの送信を制限する（送信しない）。これにより、例えば不正なプログラムが短い周期で不正なメッセージ送信を繰り返すことを防止できる。
【００２０】
また本発明において通信コントローラは、通信装置内の他の構成要素から入力されるリセット信号に応じて、レジスタに対する設定が可能な第１モードへの切り替えを行う。リセット信号には、通信装置の電源投入などによるパワーオンリセットの信号を含む。また通信コントローラは、第１モードへの切り替えを行った後、所定時間が経過した場合にレジスタの設定が制限される第２モードへの切り替えを行う。
通信装置ではリセット直後にブートプログラムなどの特別なプログラムの実行がプロセッサにより行われるが、リセット後の所定時間のみ通信コントローラを第１モードへ切り替えることによって、この特別なプログラムの実行中にのみレジスタの設定を許可し、他のプログラムの実行中にはレジスタの設定を制限することができる。
【００２１】
また本発明においては、通信装置に外部装置を接続する接続部を設ける。この接続部に所定の外部装置が接続された場合に通信コントローラを第１モードへ切り替え、それ以外の場合には通信コントローラを第２モードとする。所定の外部装置は、例えば通信装置との間で行う認証処理に成功した装置などとすることができる。これにより、例えば車両の検査又は修理等を行う際に、ディーラ又は修理工場等に備えられた検査装置などを通信装置に接続してレジスタの設定を行うことができるため、通信コントローラの設定変更を容易に行うことが可能となる。
【発明の効果】
【００２２】
本発明による場合は、通信コントローラのレジスタに対する値の設定を許可する第１モードと設定を制限する第２モードとを切り替え可能とすることにより、不正なプログラムによるレジスタの設定値の変更を制限することができ、不正なプログラムによるネットワークへの不正なメッセージ送信を抑制することができる。
【図面の簡単な説明】
【００２３】
【図１】実施の形態１に係る車載通信システムの構成を示すブロック図である。
【図２】実施の形態１に係るイーサネットコントローラの構成を示すブロック図である。
【図３】イーサネットコントローラのレジスタ群の一構成例を示す模式図である。
【図４】イーサネットコントローラの送信キューの一構成例を示す模式図である。
【図５】ＣＢＳのアルゴリズムの概略を説明するための模式図である。
【図６】ＢＬＳのアルゴリズムの概略を説明するための模式図である。
【図７】ＥＣＵの起動時にプロセッサが行う処理の手順を示すフローチャートである。
【図８】ＥＣＵのイーサネットコントローラが行うモード切替処理の手順を示すフローチャートである。
【図９】イーサネットコントローラが行うレジスタ群への設定値書込制限処理の手順を示すフローチャートである。
【図１０】イーサネットコントローラが行うメッセージ送信要求時の制限処理の手順を示すフローチャートである。
【図１１】実施の形態２に係る通信システムの構成を示すブロック図である。
【図１２】実施の形態２に係るＥＣＵが行うモード切替処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２４】
（実施の形態１）
図１は、実施の形態１に係る車載通信システムの構成を示すブロック図である。本実施の形態に係る車載通信システムは、車両１に搭載された複数のＥＣＵ１０が中継装置２を中心にスター型に接続されたネットワーク構成をなしており、中継装置２を介して複数のＥＣＵ１０が通信を行う。即ち、各ＥＣＵ１０は通信線を介して中継装置２に接続され、中継装置２には複数のＥＣＵ１０が個別の通信線を介して接続される。中継装置２は、一のＥＣＵ１０からのメッセージを受信して、このメッセージに含まれる送信先の情報に基づいて、他のＥＣＵ１０へ受信したメッセージを送信する処理を行うことによって、ＥＣＵ１０間のメッセージの送受信を中継する処理を行う。なお複数のＥＣＵ１０は通信機能に関して略同じ構成であるため、図１においては一つのＥＣＵ１０について詳細構成を示し、他のＥＣＵ１０については詳細構成の図示を省略してある。
【００２５】
ＥＣＵ１０は、プロセッサ１１、マスクＲＯＭ（Read Only Memory）１２、フラッシュメモリ１３、入出力部１４、ＲＡＭ（Random Access Memory）１５及びイーサネットコントローラ２０等を備えて構成されている。プロセッサ１１は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro-Processing Unit）等の演算処理装置である。プロセッサ１１は、マスクＲＯＭ１２に記憶されたブートプログラム１２ａ及びフラッシュメモリ１３に記憶されたアプリケーションプログラム１３ａ等を読み出して実行することにより、種々の演算処理及び制御処理等を行う。
【００２６】
マスクＲＯＭ１２は、記憶されている情報（プログラム及びデータ等）を書き換えることができない不揮発性のメモリ素子である。本実施の形態においてマスクＲＯＭ１２には、プロセッサ１１が実行するブートプログラム１２ａが予め記憶されている。ブートプログラム１２ａは、ＥＣＵ１０の起動後にプロセッサ１１によって最初に実行されるプログラムである。プロセッサ１１は、ブートプログラム１２ａを実行することにより、ＥＣＵ１０が有するハードウェア及びソフトウェアのリソースの初期化並びに動作条件の設定等の処理を行う。なおＥＣＵ１０の起動には、ＥＣＵ１０に対する電力供給が開始され、例えばパワーオンリセットの解除などがなされて各部の動作が開始されること、及び、例えばユーザがリセットスイッチなどに対する操作を行うことによってＥＣＵ１０の動作を初期化し、その後にリセットが解除されて各部の動作が開始されること（いわゆる再起動）等を含む。
【００２７】
フラッシュメモリ１３は、データ書き換えが可能な不揮発性のメモリ素子である。本実施の形態においてフラッシュメモリ１３には、プロセッサ１１が実行するアプリケーションプログラム１３ａが記憶される。アプリケーションプログラム１３ａは、各ＥＣＵ１０に特有の機能を実現するための処理を行うプログラムであり、例えばバージョンアップ又は不具合の修正等によりプログラムの一部又は全部が書き換えられ得る。プロセッサ１１は、起動後にブートプログラム１２ａの処理を行い、その後にアプリケーションプログラム１３ａの処理を行う。
【００２８】
入出力部１４は、例えば車両に搭載された各種のセンサ３などから入力される信号の受け付け、及び、各種のアクチュエータ４などへの制御信号などの出力等を行う。入出力部１４は、センサ３及びアクチュエータ４等と信号線を介してそれぞれ接続され、この信号線を介して信号の入出力を行う。入出力部１４は、例えばセンサ３からのアナログの入力信号をサンプリングしてデジタルのデータに変換してプロセッサ１１へ与える。また入出力部１４は、プロセッサ１１から与えられた制御命令に応じてアクチュエータ４に対する制御信号を出力する。なおＥＣＵ１０は、センサ３及びアクチュエータ４等との間の信号入出力の両機能を備えている必要はなく、入力又は出力のいずれか一方のみの機能を備える構成であってもよく、入出力の機能を備えていない構成であってもよい。
【００２９】
ＲＡＭ１５は、例えばＳＲＡＭ（Static Random Access Memory）又はＤＲＡＭ（Dynamic Random Access Memory）等の揮発性のメモリ素子である。ＲＡＭ１５は、プロセッサ１１の処理過程において発生した各種のデータを一時的に記憶する。
【００３０】
イーサネットコントローラ２０は、プロセッサ１１の制御に応じて、車両に搭載された他のＥＣＵ１０との間で中継装置２を介したメッセージの送受信を行う。イーサネットコントローラ２０は、例えばプロセッサ１１から与えられた送信用のメッセージをイーサネットの通信規格に従った信号として通信線へ出力することにより、メッセージ送信を行う。イーサネットコントローラ２０は、通信線の電位をサンプリングすることで通信線上の信号を取得し、メッセージの受信を行う。プロセッサ１１は、イーサネットコントローラ２０が受信したメッセージを取得して処理を行うことができる。
【００３１】
図２は、実施の形態１に係るイーサネットコントローラ２０の構成を示すブロック図である。本実施の形態に係るイーサネットコントローラ２０は、制御部２１、レジスタ群２２、入出力部２３、送信キュー２４、受信バッファ２５、送信部２６及び受信部２７等を備えて構成されている。制御部２１は、イーサネットコントローラ２０内の各部の動作を制御することによって、他のＥＣＵ１０とのメッセージの送受信に係る処理を行う。
【００３２】
レジスタ群２２は、イーサネットコントローラ２０によるイーサネットの通信規格に応じたメッセージ送受信に関する設定値を記憶する。レジスタ群２２は、設定値を記憶するレジスタを複数備えたものであり、アドレスを指定することによって一のレジスタに対する設定値の読み出し及び書き込みをプロセッサ１１が直接的に行うことが可能である。またレジスタ群２２は、揮発性のメモリであり、イーサネットコントローラ２０への電力供給が断たれた場合などには設定値が消失する。このため、ＥＣＵ１０の起動後などには、まずプロセッサ１１によりレジスタ群２２への設定値の書き込みを行う必要があり、レジスタ群２２に適切な設定値が設定された後、イーサネットコントローラ２０によるメッセージの送受信が可能となる。
【００３３】
入出力部２３は、プロセッサ１１との間で、制御命令及び送受信メッセージ等の各種の情報の入出力を行う。制御部２１は、プロセッサ１１から入出力部２３へ入力される制御命令に応じて、レジスタ群２２の各レジスタへの設定値の記憶、レジスタからの設定値の読み出し、他のＥＣＵ１０へのメッセージ送信、及び、受信したメッセージのプロセッサ１１への出力等の処理を行う。
【００３４】
送信キュー２４は、プロセッサ１１から与えられた送信用のメッセージを一時的に蓄積する、ファースト・イン・ファーストアウト型のメモリ（キュー）である。本実施の形態において送信キュー２４は複数のキューを有しており、制御部２１は、プロセッサ１１から入力された送信用のメッセージの優先度などに応じて、このメッセージをいずれかのキューに蓄積する。また制御部２１は、複数のキューから適宜に一のメッセージを選択して他のＥＣＵ１０への送信を行う。受信バッファ２５は、他のＥＣＵ１０からの受信メッセージを一時的に蓄積するメモリである。制御部２１は、受信メッセージを受信バッファ２５に記憶すると共に、適宜のタイミングで受信バッファから読み出した受信メッセージをプロセッサ１１へ出力する。
【００３５】
送信部２６は、制御部２１からデジタル情報として与えられる送信用のメッセージを、イーサネットの通信規格に応じた電気信号に変換して通信線へ出力することによって、メッセージを送信する。受信部２７は、通信線の信号レベルをサンプリングして取得することによってメッセージを受信し、受信したメッセージを制御部２１へ与える。なおイーサネットの通信規格では、１つの通信線に接続されたＥＣＵ１０及び中継装置２の２つの装置が同時的にメッセージを送信することが可能である。このため受信部２７は、通信線の信号レベルをサンプリングして取得したデータから、自装置の送信部２６が送信したメッセージを差し引くことによって、中継装置２が送信したメッセージを取得することができる。
【００３６】
また本実施の形態に係るイーサネットコントローラ２０の制御部２１には、モード切替部２１ａ及び送信メッセージ選択部２１ｂ等が設けられている。モード切替部２１ａは、レジスタ群２２の一部又は全部のレジスタに対する値の設定（書き込み）を許可するフルコントロールモードと、レジスタに対する値の書き込みを制限（禁止）する制限モードとを切り替える処理を行う。例えばイーサネットコントローラ２０にはリセット信号（図示は省略する）が入力されており、このリセット信号によりイーサネットコントローラ２０がリセットされ、更にリセットが解除された場合に、モード切替部２１ａは、イーサネットコントローラ２０の動作モードをフルコントロールモードとする。その後、モード切替部２１ａは、タイマによる計時を行って、フルコントロールモードへの切り替えから所定時間が経過した場合に、イーサネットコントローラ２０の動作モードを制限モードとする。なおイーサネットコントローラ２０へ入力されるリセット信号は、ＥＣＵ１０に対する電源投入によるパワーオンリセットの信号、及び、ＥＣＵ１０に設けられたリセットスイッチなどに対するユーザの操作に応じて出力されるリセットの信号等を含み得る。
【００３７】
モード切替部２１ａがフルコントロールモードから制限モードへの切り替えを行う所定時間は、プロセッサ１１がマスクＲＯＭ１２に記憶されたブートプログラム１２ａを実行する時間に応じて定めることができる。プロセッサ１１は、リセット信号によりリセットされ、更にリセットが解除された場合に、マスクＲＯＭ１２からブートプログラム１２ａを読み出して実行する。モード切替の所定時間は、例えばこのブートプログラム１２ａの実行時間と同じとすることができる。またモード切替の所定時間は、ブートプログラム１２ａの実行時間よりも短い時間に設定されていてもよく、この場合にはモード切替までの所定時間がブートプログラム１２ａの作成に対する制約条件として機能することとなる。またモード切替の所定時間は、ブートプログラム１２ａの実行時間よりも長い時間に設定されていてもよく、この場合にはブートプログラム１２ａの実行の最終段階においてプロセッサ１１からイーサネットコントローラ２０へモード切替の命令などを与えることが好ましい。これらにより、プロセッサ１１がブートプログラム１２ａを実行している間のみイーサネットコントローラ２０がフルコントロールモードとなってレジスタ群２２に対する値の書き込みが可能となり、ブートプログラム１２ａの実行が終了した後はイーサネットコントローラ２０を制限モードとしてレジスタ群２２に対する値の書き込みを禁止することができる。
【００３８】
送信メッセージ選択部２１ｂは、送信キュー２４に蓄積された複数のメッセージの中から、送信部２６にて送信する一のメッセージを選択する処理を行う。キューは、ファースト・イン・ファーストアウト型のメモリであるため、先に蓄積されたメッセージから順に読み出される。ただし本実施の形態に係る送信キュー２４は、複数のキューを有している。このため送信メッセージ選択部２１ｂは、いずれのキューの先頭に蓄積されているメッセージを送信するかの選択、換言すればキューの選択を行う。本実施の形態において送信メッセージ選択部２１ｂは、ＣＢＳ又はＢＬＳのアルゴリズムに従って選択を行う。
【００３９】
図３は、イーサネットコントローラ２０のレジスタ群２２の一構成例を示す模式図である。本実施の形態に係るイーサネットコントローラ２０が有するレジスタ群２２には、例えば最大フレーム長、最小フレーム長、ＭＡＣアドレス、最低送信要求周期１〜４、ＣＢＳ増加量、ＣＢＳ減少量、ＣＢＳ上限値、ＣＢＳ下限値及びモードレジスタ等の複数のレジスタを含んでいる。なお図３に示すレジスタは一例であって、これに限るものではなく、イーサネットコントローラ２０は図示しない種々のレジスタを有していてよく、図示したレジスタのいくつかを有していない構成であってもよい。また図３においては、レジスタに対する読み出しのみが可能であるものを"Ｒ可"と示し、読み出し及び書き込みが可能であるものを"Ｒ／Ｗ可"と示してある。
【００４０】
イーサネットコントローラ２０のレジスタ群２２は、一次元のアドレスが各レジスタに付されている。図示の例では、１６進数で０ｘ００００００００〜０ｘ０００００４１４のアドレスが各レジスタに対して付されている。ただし図示の例は、レジスタ群２２の一部のみを抜き出したものであり、レジスタ群２２のアドレス空間は０ｘ０００００００〜０ｘＦＦＦＦＦＦＦである。プロセッサ１１は、アドレスを指定して読出命令をイーサネットコントローラ２０に対して与えることにより、アドレスで指定されたレジスタに格納された値の読み出しを行うことができる。またプロセッサ１１は、アドレス及びデータを指定して書込命令をイーサネットコントローラ２０に対して与えることにより、アドレスで指定されたレジスタに対するデータの書き込みを行うことができる。ただし本実施の形態においては、レジスタに対する書き込みが許可されていない場合があり、このようなレジスタに対する書き込み命令に対してイーサネットコントローラ２０はプロセッサ１１へエラーを通知する。
【００４１】
また、本実施の形態に係るイーサネットコントローラ２０は、フルコントロールモード及び制限モードの２種の動作モードで動作する。フルコントロールモードは、レジスタ群２２の全てのレジスタに対する読み出し及び書き込みをプロセッサ１１が行うことが可能なモードである。これに対して制限モードは、レジスタ群２２の一部のレジスタ（少なくとも図３に示すレジスタ）に対するプロセッサ１１による書き込みが制限され（不可能となり）、許可されたレジスタのみ書き込みを行うことができるモードである。
【００４２】
レジスタ群２２の最大フレーム長は、イーサネットコントローラ２０が送信するメッセージ（フレーム）の長さ（ビット数又はバイト数等）の最大値を設定するためのレジスタである。最小フレーム長は、送信するメッセージの長さの最小値を設定するためのレジスタである。ＭＡＣアドレスは、自装置に対して付される識別情報を設定するためのレジスタであり、このレジスタに設定された値が自装置のＭＡＣアドレスとして送信するメッセージに付される。
【００４３】
レジスタ群２２のＣＢＳ増加量、ＣＢＳ減少量、ＣＢＳ上限値及びＣＢＳ下限値は、送信メッセージ選択部２１ｂによるメッセージの選択に係る設定値を記憶するレジスタである。本例では、送信メッセージ選択部２１ｂがＣＢＳのアルゴリズムに従ってメッセージ選択を行うものとしてある。もし送信メッセージ選択部２１ｂがＢＬＳのアルゴリズムに従ってメッセージ選択を行う場合、ＣＢＳ増加量、ＣＢＳ減少量、ＣＢＳ上限値及びＣＢＳ下限値に代えて、例えばＢＬＳ増加量、ＢＬＳ減少量、ＢＬＳ最大値（max level）及びＢＬＳ再開値（resume level）等の設定値を記憶するレジスタを設ければよい。
【００４４】
レジスタ群２２の最低送信要求周期１〜４は、送信キュー２４に対するプロセッサ１１からのメッセージ送信要求を受け付けることができる最低の周期を設定するためのレジスタである。本例では、送信キュー２４が４つのキューを有しているものとし、各キューについて個別に最低送信要求周期を定めることができる。イーサネットコントローラ２０は、１つのキューに対してプロセッサ１１からメッセージ送信要求を受け付けた後、対応するレジスタにて定められた最低送信要求周期が経過するまで、このキューに対するプロセッサ１１からのメッセージ送信要求を受け付けない。イーサネットコントローラ２０がフルコントロールモードで動作している際に、プロセッサが最低送信要求周期１〜４のレジスタに対して設定値を書き込むことによって、上述のような周期によるメッセージ送信の制限が実施される。なおイーサネットコントローラ２０は、動作モードに関わらず設定された周期によるメッセージ送信の制限を行ってもよく、制限モードにおいてのみ制限を行ってもよい。
【００４５】
例えば、フルコントロールモードにて最低送信要求周期１のレジスタに１００ミリ秒の設定値が書き込まれた場合、イーサネットコントローラ２０は、制限モードへ切り替えられた後、プロセッサ１１から第１のキューに係るメッセージの送信要求を受け付ける都度に内部のタイマ機能によって経過時間を計時し、設定された１００ｍｓが経過するまで、プロセッサ１１からの第１のキューに係る送信要求を受け付けない。なお最低送信要求周期１〜４には４つのキュー毎に異なる設定値を書き込むことができ、イーサネットコントローラ２０はキュー毎に経過時間を計時することができる。
【００４６】
レジスタ群２２のモードレジスタは、イーサネットコントローラ２０の動作モードの切り替えを行うためのレジスタである。プロセッサ１１がモードレジスタに対して所定の値を書き込むことによって、イーサネットコントローラ２０の動作モードがフルコントロールモードから制限モードへ切り替えられる。また制限モードにおいては、モードレジスタに対する値の書き込みを行うことができない。このため、プロセッサ１１は、イーサネットコントローラ２０の動作モードをフルコントロールモードから制限モードへ切り替えることはできるが、制限モードからフルコントロールモードへ切り替えることはできない。
【００４７】
このように、本実施の形態に係るイーサネットコントローラ２０は、制限モードにおいてレジスタ群２２に対する設定値の書き込みを制限する。例えばＥＣＵ１０の起動直後、イーサネットコントローラ２０はフルコントロールモードで動作を開始すると共に、プロセッサ１１はマスクＲＯＭ１２に記憶されたブートプログラム１２ａを読み出して実行する。このときにブートプログラム１１ａを実行しているプロセッサ１１は、イーサネットコントローラ２０のレジスタ群２２に対する設定値の書き込みを制限なしで行うことができる。ブートプログラム１２ａはＥＣＵ１０の初期設定などを行うためのプログラムであり、これを実行することによってプロセッサ１１は、イーサネットコントローラ２０のレジスタ群２２に対する設定値の書き込みを行う。即ちブートプログラム１２ａの実行によりプロセッサ１１は、最大フレーム長及び最小フレーム長のレジスタに対するフレーム長の設定、ＭＡＣアドレスのレジスタに対する自身のＭＡＣアドレスの設定、ＣＢＳアルゴリズムに関連するレジスタに対する設定、及び、送信キュー２４の最低送信要求周期に関する周期の設定等を行う。
【００４８】
これらのレジスタに対する設定を終えた後、ブートプログラム１２ａを実行するプロセッサ１１は、レジスタ群２２のモードレジスタに対する書き込みを行ってイーサネットコントローラ２０の動作モードをフルコントロールモードから制限モードへ切り替える。又は、モードレジスタに対する書き込みを行わなくてよく、この場合には所定時間の経過によりイーサネットコントローラ２０はフルコントロールモードから制限モードへ切り替わる。その後、プロセッサ１１はフラッシュメモリ１３に記憶されたアプリケーションプログラム１３ａの実行を開始する。アプリケーションプログラム１３ａの実行中は、イーサネットコントローラ２０は制限モードで動作するため、レジスタ群２２に対する設定値の書き込みを行うことはできない。イーサネットコントローラ２０は、制限モードへ切り替えられた後、フルコントロールモードへの切り替えを行うことはできない。例えばＥＣＵ１０が電源オフ状態となった後に電源を再投入された場合、又は、リセット操作などがなされて再起動された場合等にのみ、イーサネットコントローラ２０はフルコントロールモードとなる。
【００４９】
図４は、イーサネットコントローラ２０の送信キュー２４の一構成例を示す模式図である。本実施の形態に係るイーサネットコントローラ２０の送信キュー２４は、第１キュー〜第４キューの４つのキューを有している。また本実施の形態に係るイーサネットコントローラ２０は、イーサネットの規格のうち、車載向けの規格であるイーサネットＡＶＢ（Audio/Video Bridging）又はこれを拡張したイーサネットＴＳＮ（Time Sensitive Networking）を採用している。これらの規格に従って、本実施の形態に係るプロセッサ１１は、「AVB Class A」、「AVB Class B」及び「Best Effort」の３種のメッセージを生成してイーサネットコントローラ２０へ与える。イーサネットコントローラ２０の第１キューは「AVB Class A」のメッセージを蓄積するキューであり、第２キューは「AVB Class B」のメッセージを蓄積するキューであり、第３キュー及び第４キューは「Best Effort」のメッセージを蓄積するキューである。イーサネットコントローラ２０の制御部２１は、プロセッサ１１から「AVB Class A」のメッセージを与えられた場合にこのメッセージを第１キューに蓄積し、「AVB Class B」のメッセージを与えられた場合にこのメッセージを第２キューに蓄積し、「Best Effort」のメッセージを与えられた場合にこのメッセージを第３キュー又は第４キューに蓄積する。「Best Effort」のメッセージを第３キュー又は第４キューのいずれに蓄積するかは、プロセッサ１１が判断して指示する構成とするが、イーサネットコントローラ２０が判断する構成としてもよい。
【００５０】
イーサネットコントローラ２０の制御部２１の送信メッセージ選択部２１ｂは、送信キュー２４の４つのキューに蓄積されたメッセージの中から、次に送信するメッセージを１つ選択する処理を行っている。送信メッセージ選択部２１ｂは、第１キュー及び第２キューのそれぞれについて、ＣＢＳのアルゴリズムによりキューの先頭に蓄積されたメッセージを送信するか否かの判断を行う。また送信メッセージ選択部２１ｂは、第１キュー及び第２キューについて送信すると判断したメッセージと、第３キュー又は第４キューの先頭に蓄積されたメッセージとについて、優先度に基づくメッセージ選択を行う。本実施の形態において送信メッセージ選択部２１ｂは、第１キューから第４キューまでこの順に、第１キューが最も優先度が高く、第４キューが最も優先度が低いものとして、優先度に基づくメッセージの選択を行う。
【００５１】
図５は、ＣＢＳのアルゴリズムの概略を説明するための模式図であり、送信キュー２４の第１キューに蓄積されたメッセージが送信されるまでをタイミングチャートにて示してある。図５の上段には第１キューに対する送信用のメッセージの蓄積状態を示しており、本例では第１キューに対して時刻ｔ１にてメッセージＡ１が蓄積され、時刻ｔ２にてメッセージＡ２が蓄積され、時刻ｔ５にてメッセージＡ３が蓄積されている。
【００５２】
図５の中段には第１キューに対して与えられる「クレジット」の変化を示している。ＣＢＳのアルゴリズムで用いられるクレジットは、定められた量で増減する数値情報であり、正負の値を取り得る。クレジットは、例えば制御部２１内のカウンタなどを用いて実現される。クレジットの初期値は０である。クレジットの値は、第１キューに蓄積されたメッセージが送信されている期間に所定量で減少していく。このときの減少量は、レジスタ群２２のＣＢＳ減少量として設定された値が用いられる。またクレジットの値は、第１キュー以外のキューに蓄積されたメッセージが送信されている期間、及び、メッセージが送信されていない期間に所定量で増加していく。このときの増加量は、レジスタ群２２のＣＢＳ増加量として設定された値が用いられる。更にクレジットの値の増減には上限及び下限が設けられている。クレジットの上限はレジスタ群２２のＣＢＳ上限値として設定された値が用いられ、クレジットの下限はレジスタ群２２のＣＢＳ下限値として設定された値が用いられる。
【００５３】
図５の下段にはイーサネットコントローラ２０が送信したメッセージを示している。ＣＢＳのアルゴリズムにおいてイーサネットコントローラ２０は、クレジットの値が０以上である場合に、第１キューの先頭に蓄積されたメッセージの送信を開始することができる。
【００５４】
本例では、時刻ｔ０において第１キューにはメッセージが蓄積されておらず、他のキューに蓄積されたメッセージの送信が開始されたものとする。他のメッセージの送信が行われている間、第１キューのクレジットは設定された増加量に従って増加していく。その後、時刻ｔ１において第１キューにメッセージＡ１が蓄積され、更に時刻ｔ２においてメッセージＡ２が蓄積されたものとする。しかし他のメッセージの送信が完了するまでは、第１キューに蓄積されたメッセージＡ１及びＡ２の送信が開始されることはなく、クレジットの値は増加し続ける。
【００５５】
時刻ｔ３において他のメッセージの送信が完了したものとする。このときに第１キューのクレジットは０以上であるため、第１キューの先頭に蓄積されたメッセージＡ１の送信が開始される。メッセージＡ１が送信されている間、第１キューのクレジットは設定された減少量に従って減少していく。その後、時刻ｔ４にてメッセージＡ１の送信が完了した場合、第１キューからはメッセージＡ１が取り除かれ、メッセージＡ２が先頭となる。時刻ｔ４においてクレジットの値は０未満まで減少しているため、この時点でメッセージＡ２の送信は行われない。また本例では、このときに他のキューにはメッセージは蓄積されておらず、他のメッセージ送信は行われないものとし、メッセージが送信されていない状態であるためクレジットは増加していく。
【００５６】
時刻ｔ５にて第１キューにメッセージＡ３が蓄積されるが、この時点でもクレジットの値は０未満であるため、メッセージの送信は行われず、クレジットの増加が継続される。そして時刻ｔ６においてクレジットの値が０に達したとき、第１キューの先頭に蓄積されたメッセージＡ２の送信が開始される。メッセージＡ２が送信されている間、第１キューのクレジットは減少していく。その後、時刻ｔ７にてメッセージＡ２の送信が完了した場合、第１キューからはメッセージＡ２が取り除かれ、メッセージＡ３が先頭となる。時刻ｔ７においてクレジットの値は０未満であるため、この時点でメッセージＡ３の送信は行われない。
【００５７】
このように、ＣＢＳのアルゴリズムを採用するイーサネットコントローラ２０は、第１キューに蓄積されたメッセージを送信しているか否かに応じてクレジットの値を増減させ、クレジットの値が０以上である場合に第１キューの先頭に蓄積されたメッセージの送信を行う。なお本実施の形態において送信キュー２４には４つのキューが存在しているが、第１キューは送信の優先度が最も高いため、クレジットの値が０以上であれば第１キューに蓄積されたメッセージは送信される。これに対して第２キューは第１キューよりも優先度が低いため、第２キューのクレジットの値が０以上であっても、第１キューのクレジットの値が同様に０以上であれば、第１キューのメッセージ送信が完了するまで第２キューのメッセージ送信を行うことはできない。また第３キュー及び第４キューについてはＣＢＳのアルゴリズムは適用されず、第１キュー及び第２キューのメッセージ送信が行われていない際に、第３キュー又は第４キューに蓄積されたメッセージが送信される。
【００５８】
また、送信メッセージ選択部２１ｂは、ＣＢＳのアルゴリズムに代えて、ＢＬＳのアルゴリズムに従ってメッセージを選択してもよい。図６は、ＢＬＳのアルゴリズムの概略を説明するための模式図である。なお本例では、説明を簡略化するために、送信キュー２４の第１キュー及び第３キューのみが用いられる場合を示す。図６の１段目には第１キューに対する送信用のメッセージの蓄積状態を示しており、第１キューに蓄積されるメッセージをＡ１，Ａ２，Ａ３，Ａ４…で表す。同様に、図６の２段目には第３キューに対する送信用のメッセージの蓄積状態を示しており、第３キューに蓄積されるメッセージをＸ１，Ｘ２，Ｘ３，Ｘ４…で表す。本例では、時刻ｔ０において第１キューにメッセージＡ１及びＡ２が蓄積され、第２キューにメッセージＸ１が蓄積されているものとする。
【００５９】
図６の３段目には第１キューに対して与えられるクレジットの変化を示している。ＢＬＳのアルゴリズムで用いられるクレジットは、定められた量で増減する数値情報であり、０以上の値を取り得る。クレジットは、例えば制御部２１内のカウンタなどを用いて実現される。クレジットの初期値は０である。クレジットの値は、第１キューに蓄積されたメッセージが送信されている期間に所定量で増加していく。このときの増加量は、レジスタ群２２のＢＬＳ増加量として設定された値が用いられる。またクレジットの値は、第１キュー以外のキューに蓄積されたメッセージが送信されている期間、及び、メッセージが送信されていない期間に所定量で減少していく。このときの減少量は、レジスタ群２２のＢＬＳ減少量として設定された値が用いられる。クレジットの値の増減には上限及び下限が設けられており、クレジットの上限はレジスタ群２２のＢＬＳ最大値として設定された値が用いられ、クレジットの下限は０である。またＢＬＳのアルゴリズムでは、０から最大値までの間に、再開値が設定される。再開値は、第１キューに蓄積されたメッセージを送信する期間と、他のキューに蓄積されたメッセージを送信する期間との切替を行うか否かを判定する閾値として用いられる値である。
【００６０】
図６の４段目にはイーサネットコントローラ２０が送信したメッセージを示している。ＢＬＳのアルゴリズムにおいてイーサネットコントローラ２０は、クレジットの値に応じて、第１キューに蓄積されたメッセージを送信する期間（以下、送信期間と言う）と、他のキューに蓄積されたメッセージを送信する期間（以下非送信期間と言う）とを切り替える。イーサネットコントローラ２０は、クレジットの値が再開値以下となった場合に非送信期間から送信期間への切り替えを行い、クレジットの値が最大値に達した場合に送信期間から非送信期間への切り替えを行う。イーサネットコントローラ２０は、送信期間において第１キューに蓄積されたメッセージを先頭から順に送信し、非送信期間において他のキューに蓄積されたメッセージを送信する。
【００６１】
本例では、時刻ｔ０において第１キューにはメッセージＡ１及びＡ２が蓄積され、第３キューにはメッセージＸ１が蓄積されている。このときクレジットの値は０であり、第１キューに蓄積されたメッセージを送信することが可能な送信期間であるため、イーサネットコントローラ２０は第１キューの先頭に蓄積されたメッセージＡ１の送信を開始する。メッセージＡ１が送信されている間、第１キューのクレジットは設定された増加量に従って増加していく。その後、時刻ｔ１にてメッセージＡ１の送信が完了した場合、第１キューからはメッセージＡ１が取り除かれ、メッセージＡ２が先頭となる。また本例では時刻ｔ１においてクレジットが最大値に達していないため、第１キューのメッセージ送信期間が継続されており、イーサネットコントローラ２０は第１キューの先頭に蓄積されたメッセージＡ２の送信を開始する。メッセージＡ２が送信されている間、クレジットは継続的に増加していく。
【００６２】
時刻ｔ２にてメッセージＡ２の送信が完了した場合、第１キューからメッセージＡ２が取り除かれ、第１キューは空となる。またこの時点で第１キューのクレジットは最大値に達し、これによって送信期間から非送信期間への切り替えが行われ、イーサネットコントローラ２０は第３キューに蓄積されたメッセージＸ１の送信を開始する。メッセージＸ１が送信されている間、第１キューのクレジットは設定された減少量に従って減少していく。その後、時刻ｔ３にてメッセージＸ１の送信が完了した場合、第３キューからメッセージＸ１が取り除かれ、第３キューは空となる。第１キュー及び第３キューにはメッセージが蓄積されていないため、イーサネットコントローラ２０によるメッセージ送信が行われない状態が時刻ｔ４まで続く。ただしこの間も第１キューのクレジットは減少していく。
【００６３】
時刻ｔ４にて第３キューに新たなメッセージＸ２が蓄積されたものとする。この時点ではクレジットの値が再開値まで減少していないため非送信期間が維持されており、イーサネットコントローラ２０は第３キューに蓄積されたメッセージＸ２の送信を開始する。その後、メッセージＸ２の送信が完了していない時刻ｔ５において第１キューにメッセージＡ３が蓄積され、更にその後の時刻ｔ６にて第３キューにメッセージＸ３が蓄積されたものとする。また時刻ｔ６においてクレジットの値が再開値まで減少し、これによって非送信期間から送信期間への切り替えが行われるが、既に送信を開始しているメッセージＸ２の送信が完了するまでは、メッセージＸ２の送信が継続して行われ、クレジットの値は減少し続ける。
【００６４】
時刻ｔ７にてメッセージＸ２の送信が完了した場合、第３キューからメッセージＸ２が取り除かれ、メッセージＸ３が先頭となる。この時点では第１キューのメッセージを送信できる送信期間となっているため、イーサネットコントローラ２０は、第１キューの先頭に蓄積されたメッセージＡ３の送信を開始する。メッセージＡ３が送信されている間、第１キューのクレジットは増加していく。その後、時刻ｔ８にてメッセージＡ３の送信が完了した場合、第１キューからはメッセージＡ３が取り除かれ、第１キューは空となる。この時点においてクレジットの値は最大値に達しておらず、第１キューに蓄積されたメッセージの送信期間が継続されているが、第１キューにはメッセージが蓄積されていないため、イーサネットコントローラ２０は第３キューに蓄積されているメッセージＸ３の送信を開始する。メッセージＸ３が送信されている間、クレジットは減少していく。その後、メッセージＸ３の送信が完了する前の時刻ｔ９にて、第１キューにメッセージＡ４が蓄積され、第３キューにメッセージＸ４が蓄積されたものとする。
【００６５】
時刻ｔ１０にてメッセージＸ３の送信が完了した場合、第３キューからメッセージＸ３が取り除かれ、メッセージＸ４が先頭となる。この時点では第１キューのメッセージを送信できる送信期間となっているため、イーサネットコントローラ２０は、第１キューの先頭に蓄積されたメッセージＡ４の送信を開始する。メッセージＡ４が送信されている間、第１キューのクレジットは増加していく。その後、時刻ｔ１１にてメッセージＡ４の送信が完了した場合、第１キューからはメッセージＡ４が取り除かれ、第１キューは空となる。またこのときに第１キューのクレジットは最大値に達し、これによって送信期間から非送信期間への切り替えが行われ、イーサネットコントローラ２０は第３キューに蓄積されているメッセージＸ４の送信を開始する。メッセージＸ４が送信されている間、第１キューのクレジットは減容していく。その後、時刻ｔ１２にてメッセージＸ４の送信が完了した場合、第３キューからはメッセージＸ４が取り除かれ、第３キューは空となる。
【００６６】
このように、ＢＬＳのアルゴリズムを採用するイーサネットコントローラ２０は、クレジットの値が最大値又は再開値に達した場合に第１キューに蓄積されたメッセージの送信期間と非送信期間との切替を行う。送信期間には第１キューに蓄積されたメッセージが優先的に送信され、非送信期間には他のキューに蓄積されたメッセージが優先的に送信される。
【００６７】
イーサネットコントローラ２０の制御部２１の送信メッセージ選択部２１ｂは、ＣＢＳのアルゴリズム又はＢＬＳのアルゴリズムに従って、送信キュー２４の第１キュー〜第４キューに蓄積されたメッセージの中から、次に送信するメッセージを１つ選択する。いずれのアルゴリズムを採用する場合であっても、例えばクレジットの増加量及び減少量等はレジスタ群２２に記憶された設定値が用いられる。このため、例えば不正なプログラムによりこれらのレジスタの設定値が不正に書き換えられた場合、イーサネットコントローラ２０による送信メッセージの選択が適切に行われなくなり、重要な情報が送信できなくなるなどの不具合が発生する虞がある。本実施の形態に係るイーサネットコントローラ２０は、フルコントロールモード及び制限モードの切り替えを行い、レジスタ群２２の設定値の変更を制限することによって、このような不具合が発生することを防止している。
【００６８】
図７は、ＥＣＵ１０の起動時にプロセッサ１１が行う処理の手順を示すフローチャートである。本実施の形態に係るＥＣＵ１０のプロセッサ１１は、ＥＣＵ１０の起動又は再起動等がなされることにより、例えばリセットＩＣなどによるパワーオンリセットが行われ、その後にリセットが解除される（ステップＳ１）ことにより、処理を開始する。まずプロセッサ１１は、マスクＲＯＭ１２に記憶されたブートプログラム１２ａを読み出して実行を開始する（ステップＳ２）。ブートプログラム１２ａを実行するプロセッサ１１は、イーサネットコントローラ２０のレジスタ群２２の各レジスタに対する設定値の書き込みを行う（ステップＳ３）。
【００６９】
レジスタ群２２への設定値の書き込みを終了した後、ブートプログラム１２ａを実行するプロセッサ１１は、イーサネットコントローラ２０のレジスタ群２２に含まれるモードレジスタに対する書き込みを行うことにより、フルコントロールモードから制限モードへのモード切替を行う（ステップＳ４）。イーサネットコントローラ２０のモード切替の完了後、プロセッサ１１は、ブートプログラム１２ａの実行を終了し、フラッシュメモリ１３に記憶されたアプリケーションプログラム１３ａを読み出して実行を開始し（ステップＳ５）、処理を終了する。
【００７０】
図８は、ＥＣＵ１０のイーサネットコントローラ２０が行うモード切替処理の手順を示すフローチャートである。本実施の形態に係るＥＣＵ１０のイーサネットコントローラ２０は、ＥＣＵ１０の起動又は再起動等がなされることにより、例えばリセットＩＣなどによるパワーオンリセットが行われ、その後にリセットが解除される（ステップＳ１１）ことにより、処理を開始する。イーサネットコントローラ２０の制御部２１は、内部に備えるタイマ機能などにより、起動からの経過時間の計時を開始する（ステップＳ１２）。また起動後のイーサネットコントローラ２０は、フルコントロールモードで動作する（ステップＳ１３）。
【００７１】
制御部２１は、レジスタ群２２のモードレジスタに対して制限モードへの切り替えを行う値が書き込まれたか否かに基づいて、モード切替の指示がプロセッサ１１から与えられたか否かを判定する（ステップＳ１４）。モード切替の指示が与えられていない場合（Ｓ１４：ＮＯ）、制御部２１は、ステップＳ１２にて計時を開始した起動からの経過時間が所定時間を経過したか否かを更に判定する（ステップＳ１５）。起動から所定時間が経過していない場合（Ｓ１５：ＮＯ）、制御部２１は、ステップＳ１３へ処理を戻し、フルコントロールモードでの動作を継続して行う。
【００７２】
モード切替の指示が与えられた場合（Ｓ１４：ＹＥＳ）、又は、起動から所定時間が経過した場合（Ｓ１５：ＹＥＳ）、制御部２１は、フルコントロールモードから制限モードへの切り替えを行う（ステップＳ１６）。また制御部２１は、ステップＳ１２にて開始した計時を終了する（ステップＳ１７）。その後、イーサネットコントローラ２０は、制限モードでの動作を継続的に行う（ステップＳ１８）。
【００７３】
図９は、イーサネットコントローラ２０が行うレジスタ群２２への設定値書込制限処理の手順を示すフローチャートである。イーサネットコントローラ２０の制御部２１は、レジスタ群２２の各レジスタに対する設定値の書込要求がプロセッサ１１から与えられたか否かを判定する（ステップＳ２１）。レジスタへの設定値の書込要求が与えられていない場合（Ｓ２１：ＮＯ）、制御部２１は、書込要求が与えられるまで待機する。設定値の書込要求が与えられた場合（Ｓ２１：ＹＥＳ）、制御部２１は、自身の動作モードが制限モードであるか否かを判定する（ステップＳ２２）。
【００７４】
動作モードが制限モードである場合（Ｓ２２：ＹＥＳ）、制御部２１は、プロセッサ１１から書き込みを要求されたレジスタ群２２のアドレスが、制限モードでの書き込み制限を行うべきアドレス範囲であるか否かを判定する（ステップＳ２３）。動作モードが制限モードでない場合（Ｓ２２：ＮＯ）、又は、書込要求に係るアドレスが制限アドレス範囲内でない場合（Ｓ２３：ＮＯ）、制御部２１は、プロセッサ１１から要求されたレジスタ群２２のアドレスに対して、プロセッサ１１から与えられたデータを書き込んで（ステップＳ２４）、ステップＳ２１へ処理を戻す。これに対して、書込要求に係るアドレスが制限アドレス範囲内である場合（Ｓ２３：ＹＥＳ）、制御部２１は、プロセッサ１１に対してエラーを通知し（ステップＳ２５）、レジスタ群２２への書き込みを行わずにステップＳ２１へ処理を戻す。
【００７５】
図１０は、イーサネットコントローラ２０が行うメッセージ送信要求時の制限処理の手順を示すフローチャートである。なおイーサネットコントローラ２０は、本図に示す処理を、送信キュー２４の各キューについてそれぞれ行っている。またイーサネットコントローラ２０は、自身のタイマ機能により、プロセッサ１１からメッセージの送信要求を受け付けた場合に、この送信要求受付からの経過時間を計時する処理を、各キューに対して行っているものとする。イーサネットコントローラ２０の制御部２１は、他のＥＣＵ１０に対するメッセージの送信要求がプロセッサ１１から与えられたか否かを判定する（ステップＳ３１）。送信要求が与えられていない場合（Ｓ３１：ＮＯ）、制御部２１は、送信要求が与えられるまで待機する。送信要求が与えられた場合（Ｓ３１：ＹＥＳ）、制御部２１は、イーサネットコントローラ２０の動作モードが制限モードであるか否かを判定する（ステップＳ３２）。
【００７６】
動作モードが制限モードである場合（Ｓ３２：ＹＥＳ）、制御部２１は、プロセッサ１１による前回の送信要求からの経過時間を取得する（ステップＳ３３）。制御部２１は、ステップＳ３３にて取得した前回要求からの経過時間が、レジスタ群２２に設定された最低送信要求周期を経過しているか否かを判定する（ステップＳ３４）。最低送信要求周期を経過している場合（Ｓ３４：ＹＥＳ）、制御部２１は、プロセッサ１１からの送信要求と共に与えられたメッセージを、送信キュー２４に蓄積し（ステップＳ３５）、ステップＳ３１へ処理を戻す。最低送信要求周期を経過していない場合（Ｓ３４：ＮＯ）、制御部２１は、プロセッサ１１にエラーを通知し（ステップＳ３６）、送信要求と共に与えられたメッセージを破棄して、ステップＳ３１へ処理を戻す。
【００７７】
また、動作モードが制限モードでない場合（Ｓ３２：ＮＯ）、即ち動作モードがフルコントロールモードである場合、制御部２１は、プロセッサ１１からの送信要求と共に与えられたメッセージを、送信キュー２４に蓄積し（ステップＳ３５）、ステップＳ３１へ処理を戻す。ステップＳ３５にて送信キュー２４に蓄積されたメッセージは、制御部２１の送信メッセージ選択部２１ｂにより適宜に選択されて送信部２６へ与えられ、送信部２６から通信線に対して送信される。
【００７８】
以上の構成の実施の形態１に係るＥＣＵ１０は、フラッシュメモリ１３に記憶されたアプリケーションプログラム１３ａを読み出して実行することにより通信に係る処理を行うプロセッサ１１と、プロセッサ１１の通信処理に応じて通信線に対するメッセージの送受信を行うイーサネットコントローラ２０とを備え、イーサネット（例えばイーサネットＡＶＢ又はイーサネットＴＳＮ）の通信規格に応じた通信を行う。例えばプロセッサ１１は、センサ３による検出結果又はアクチュエータ４の制御情報等のように、他のＥＣＵ１０へ送信すべき情報が得られた場合、この情報を含む送信用のメッセージを生成し、生成した送信用のメッセージをイーサネットコントローラ２０へ与える。イーサネットコントローラ２０は、プロセッサ１１から与えられた送信用のメッセージを電気信号に変換して通信線へ出力することによって、他のＥＣＵ１０へのメッセージ送信を行う。またイーサネットコントローラ２０は、イーサネットの通信に係る設定値を記憶するレジスタ群２２を有している。このレジスタ群２２には、例えば送受信するメッセージの最大フレーム長及び最小フレーム長、並びに、自装置のＭＡＣアドレス等の設定値が記憶される。プロセッサ１１は、イーサネットコントローラ２０のレジスタ群２２に対する設定値の書き込みを行った後、このイーサネットコントローラ２０を利用した他のＥＣＵ１０とのメッセージ送信を行うことが可能となる。
【００７９】
このような構成において、例えばＥＣＵ１０のアプリケーションプログラム１３ａが不正に書き換えられた場合、不正なアプリケーションプログラム１３ａを実行したプロセッサ１１がイーサネットコントローラ２０のレジスタ群２２の設定値を不正に変更する虞がある。これにより、例えばイーサネットコントローラ２０が不正なメッセージを最優先で送信するなど、不正なメッセージ送信が行われる虞がある。
【００８０】
そこで本実施の形態に係るイーサネットコントローラ２０は、レジスタ群２２に対する値の設定を許可するフルコントロールモードと、設定を制限する制限モードとの切替を行う。このモード切替を適切に行うことによって、不正なアプリケーションプログラム１３ａによるレジスタ群２２の設定値の変更を制限することができる。
【００８１】
また本実施の形態に係るイーサネットコントローラ２０は、プロセッサ１１から与えられる送信用のメッセージを蓄積する複数のキューで構成された送信キュー２４を備える。プロセッサ１１から与えられた送信用のメッセージは送信キュー２４のいずれかのキューに蓄積され、イーサネットコントローラ２０の送信メッセージ選択部２１ｂは、送信キュー２４の複数のキューから一のメッセージを選択して送信する。上記の制限モードにより設定値の変更が制限されるレジスタ群２２のレジスタには、送信キュー２４からのメッセージ選択を規定する設定値を記憶するレジスタを含む。
【００８２】
例えば送信するメッセージの選択をＣＢＳ又はＢＬＳのアルゴリズムに従って行う場合、イーサネットコントローラ２０は、このアルゴリズムの処理を規定する設定値を記憶するレジスタに対する設定変更を制限モードにて制限する構成とすることができる。アルゴリズムの処理を規定する設定値は、例えばＣＢＳの場合にクレジットの増減量、上限及び下限等の値とすることができ、また例えばＢＬＳの場合にクレジットの増減量、最大値及び再開値等の値とすることができる。このように、送信キュー２４からの送信すべきメッセージの選択に係る設定値に対する変更を制限することによって、例えば不正なメッセージを最優先で送信するようイーサネットコントローラ２０の設定値を変更するなどの不正な処理を防止できる。
【００８３】
また本実施の形態に係るイーサネットコントローラ２０には、プロセッサ１１からの送信用のメッセージを蓄積する送信キュー２４の複数のキューに対してそれぞれ最低送信要求周期を設定することができる。イーサネットコントローラ２０は、各キューに対してプロセッサ１１が送信用のメッセージを与える頻度、即ち各キューに対するプロセッサ１１からの送信要求の周期が、キュー毎に設定された最低送信要求周期より短い場合、プロセッサ１１からの送信要求を受け付けず、送信要求と共に与えられたメッセージの送信を行わない。これにより、例えば不正なアプリケーションプログラム１３ａが短い周期で不正なメッセージ送信を繰り返すことを防止できる。
【００８４】
また本実施の形態に係るイーサネットコントローラ２０は、ＥＣＵ１０内の他の構成要素（例えばリセットＩＣなど）から入力されるリセット信号に応じて、レジスタ群２２に対する設定が可能なフルコントロールモードへの切り替えを行う。リセット信号には、ユーザによるＥＣＵ１０のリセット操作による信号、及び、ＥＣＵ１０の電源投入などによるパワーオンリセットの信号等を含む。またイーサネットコントローラ２０は、フルコントロールモードとなった後、所定時間が経過した場合に、レジスタ群２２に対する設定が制限される制限モードへの切り替えを行う。ＥＣＵ１０ではリセット直後にマスクＲＯＭ１２に記憶されたブートプログラム１２ａの実行がプロセッサ１１により行われるが、リセット後の所定時間のみイーサネットコントローラ２０をフルコントロールモードとすることによって、ブートプログラム１２ａの実行中にのみレジスタ群２２の設定を許可し、その後に実行されるアプリケーションプログラム１３ａの実行中にはレジスタ群２２の設定を制限することができる。
【００８５】
なお本実施の形態においては、車両に搭載されるＥＣＵ１０を例に説明を行ったが、これに限るものではなく、航空機若しくは船舶等の移動体に搭載される通信装置、又は、工場若しくはオフィス等に設置される通信装置等のように、車載以外の通信装置に対して本技術を適用してもよい。また通信システムに含まれる全てのＥＣＵ１０について、本実施の形態に示したレジスタ群２２の制限を行う機能が備えられていることが好ましいが、このような制限機能を含まないＥＣＵが通信システムに含まれていてもよい。またＥＣＵ１０は、書き換え不可能な記憶部としてマスクＲＯＭ１２を備える構成としたが、これに限るものではない。例えば、紫外線照射によりデータの消去を行うことはできるが電気的なデータ書き換えを行うことができないＥＰＲＯＭ（Erasable Programmable Read Only Memory）、又は、ヒューズの切断など物理的な構成によりデータ書き換えが不可能となるＥＥＰＲＯＭ若しくはフラッシュメモリ等の不揮発性のメモリ素子等を、マスクＲＯＭ１２に代えて採用してもよい。
【００８６】
またイーサネットコントローラ２０が制限モードにて書き込みを制限するレジスタの例を図３に示したが、書き込みを制限するレジスタは図示のものに限らず、様々な設定値を記憶するレジスタを制限の対象としてよい。またイーサネットコントローラ２０は、制限モードにおいて、レジスタ群２２の全てのレジスタの書き込みを制限してもよく、一部のレジスタのみ書き込みを制限してもよい。また制限モードにおいて書き込みを制限するのみでなく、レジスタからの設定値の読み出しをも制限する構成としてよい。またイーサネットコントローラ２０は、ＣＢＳ又はＢＬＳのアルゴリズムに従って送信キュー２４から送信メッセージを選択する構成としたが、これに限るものではなく、これ以外のアルゴリズムを採用して送信メッセージの選択を行ってよい。
【００８７】
（実施の形態２）
図１１は、実施の形態２に係る通信システムの構成を示すブロック図である。なお図１１においては、図１において示した他のＥＣＵ１０、中継装置２、センサ３及びアクチュエータ４等の図示を省略してある。実施の形態２に係る通信システムは、ＥＣＵ２１０に対して通信線を介して接続される設定装置２０７を備えている。設定装置２０７は、例えば車両１のディーラ又は整備工場等において整備又は点検等を行う際に用いられる装置である。設定装置２０７をＥＣＵ２１０に接続することによって、イーサネットコントローラ２０のレジスタ群２２に対する設定値の書き込みを行うことができる。設定装置２０７は、液晶パネルなどの表示部２７１と、スイッチ又はタッチパネル等の操作部２７２とを有している。
【００８８】
実施の形態２に係るＥＣＵ２１０は、ブートプログラム１２ａをフラッシュメモリ１３に記憶している。ＥＣＵ２１０のフラッシュメモリ１３には、ブートプログラム１２ａ及びアプリケーションプログラム１３ａ等が記憶されている。また実施の形態２に係るＥＣＵ２１０は、通信線を介して設定装置２０７を接続するためのコネクタ２１６を備えている。実施の形態２に係るＥＣＵ２１０は、コネクタ２１６を介して認証された設定装置２０７が接続された場合、イーサネットコントローラ２０のレジスタ群２２に対して、設定値の書き込みを行うことが可能となる。
【００８９】
また実施の形態２に係るＥＣＵ２１０のマスクＲＯＭ１２には、認証プログラム２１２ｂ及び認証情報２１２ｃ等が記憶されている。認証プログラム２１２ｂは、コネクタ２１６に設定装置２０７が接続された場合にプロセッサ１１が実行するプログラムであり、設定装置２０７との間で認証処理を行う。認証情報２１２ｃは、認証プログラム２１２ｂが設定装置２０７との間で認証処理を行うための情報であり、例えば装置のＩＤ及びパスワード等の情報である。
【００９０】
実施の形態２に係るＥＣＵ２１０は、通常動作において、常に制限モードでの動作を行っている。即ち電源投入などにより起動したＥＣＵ２１０は、起動後に制限モードで動作を開始し、通常の動作を行っている限りにおいて、その後にフルコントロールモードへ切り替えられることはない。よってＥＣＵ２１０は、ブートプログラム１２ａ及びアプリケーションプログラム１３ａの実行を制限モードで行うため、ブートプログラム１２ａにはイーサネットコントローラ２０のレジスタ群２２に対する設定処理は含まれていない。実施の形態２に係るＥＣＵ２１０は、コネクタ２１６に設定装置２０７が接続された場合にのみ、イーサネットコントローラ２０をフルコントロールモードで動作させることが可能となる。
【００９１】
実施の形態２に係るＥＣＵ２１０は、コネクタ２１６に設定装置２０７が接続されたことを検出した場合、プロセッサ１１がマスクＲＯＭ１２から認証プログラム２１２ｂを読み出して実行することにより、設定装置２０７との間で認証処理を行う。ＥＣＵ２１０は、マスクＲＯＭ１２に記憶された認証情報２１２ｃに基づいて認証処理を行い、認証処理に成功した場合にのみ、イーサネットコントローラ２０の動作モードを制限モードからフルコントロールモードへ切り替える操作を受け付ける。
【００９２】
認証処理に成功した場合、設定装置２０７を操作する操作者は、ＥＣＵ２１０に関する各種の情報を取得して表示部２７１に表示させることができ、ＥＣＵ２１０に関する各種の設定変更の操作を操作部２７２にて行うことができる。また実施の形態２に係る設定装置２０７は、ＥＣＵ２１０のイーサネットコントローラ２０の動作モードの切り替えを行うことができ、フルコントロールモードへの切り替えを行うことでレジスタ群２２への値の書き込みを行うことができる。
【００９３】
設定装置２０７の操作部２７２に対してモード切替の操作がなされた場合、この操作内容が設定装置２０７からコネクタ２１６を介してＥＣＵ２１０のプロセッサ１１へ与えられる。これによりＥＣＵ２１０のプロセッサ１１は、モードの切替操作を受け付ける。ＥＣＵ２１０は、設定装置２０７からフルコントロールモードへの切替操作を受け付けた場合に、制限モードからフルコントロールモードへの切り替えを行う。フルコントロールモードにおいてＥＣＵ２１０は、設定装置２０７との間で通信線を介した通信を行い、イーサネットコントローラ２０のレジスタ群２２に対する値の書込要求を受け付けて、要求された値をレジスタ群２２のレジスタに対して書き込む。
【００９４】
またＥＣＵ２１０は、設定装置２０７から制限モードへの切替操作を受け付けた場合に、フルコントロールモードから制限モードへの切り替えを行う。なおＥＣＵ２１０は、例えば設定装置２０７の接続が解除された場合、又は、フルコントロールモードへの切り替えから所定時間が経過した場合等に、設定装置２０７から制限モードへの切替操作を受け付けていなくとも、フルコントロールモードから制限モードへの切り替えを自動的に行う構成としてよい。
【００９５】
図１２は、実施の形態２に係るＥＣＵ２１０が行うモード切替処理の手順を示すフローチャートである。実施の形態２に係るＥＣＵ２１０のプロセッサ１１は、コネクタ２１６に対する設定装置２０７の接続を検知したか否かを判定する（ステップＳ５１）。接続を検知していない場合（Ｓ５１：ＮＯ）、プロセッサ１１は、接続を検知するまで待機する。設定装置２０７の接続を検知した場合（Ｓ５１：ＹＥＳ）、プロセッサ１１は、マスクＲＯＭ１２に記憶された認証プログラム２１２ｂを実行し、マスクＲＯＭ１２に記憶された認証情報２１２ｃを用いて、設定装置２０７との間で認証処理を行う（ステップＳ５２）。プロセッサ１１は、認証処理に成功したか否かを判定する（ステップＳ５３）。認証処理に成功していない場合（Ｓ５３：ＮＯ）、プロセッサ１１は、設定装置２０７に対してエラーを通知し（ステップＳ５４）、処理を終了する。
【００９６】
認証処理に成功した場合（Ｓ５３：ＹＥＳ）、プロセッサ１１は、コネクタ２１６に対する設定装置２０７の接続が解除されたか否かを判定する（ステップＳ５５）。接続が解除された場合（Ｓ５５：ＹＥＳ）、プロセッサ１１は、イーサネットコントローラ２０の動作モードを制限モードに切り替えて（ステップＳ５６）、処理を終了する。接続が解除されていない場合（Ｓ５５：ＮＯ）、プロセッサ１１は、設定装置２０７の操作部２７２に対する操作の有無を検知することにより、フルコントロールモード及び制限モードの切替操作がなされたか否かを判定する（ステップＳ５７）。切替操作がなされていない場合（Ｓ５７：ＮＯ）、プロセッサ１１は、ステップＳ５５へ処理を戻す。切替操作がなされた場合（Ｓ５７：ＹＥＳ）、プロセッサ１１は、イーサネットコントローラ２０の動作モードを、切替操作に応じたモードに切り替えて（ステップＳ５８）、ステップＳ５５へ処理を戻す。
【００９７】
以上の構成の実施の形態２に係るＥＣＵ２１０は、外部装置として設定装置２０７を接続することができるコネクタ２１６を備えている。ＥＣＵ２１０は、コネクタ２１６に通信線を介して設定装置２０７を接続した場合に、イーサネットコントローラ２０の動作モードを制限モードからフルコントロールモードへと切り替えることが可能となる。ＥＣＵ２１０は、コネクタ２１６に設定装置２０７が接続されていない場合には、イーサネットコントローラ２０の動作モードを制限モードとする。ＥＣＵ２１０は、コネクタ２１６に設定装置２０７が接続された場合、設定装置２０７との間で認証処理を行い、認証処理に成功した後で設定装置２０７の操作部２７２にてイーサネットコントローラ２０の動作モードの切替操作を受け付ける。これにより、例えば車両１の検査又は修理等を行う際に、ディーラ又は修理工場等に備えられた設定装置２０７をＥＣＵ２１０に接続してレジスタ群２２に設定値を書き込むことができるため、イーサネットコントローラ２０の設定変更を容易に行うことが可能となる。
【００９８】
なお実施の形態２においては、ブートプログラム１２ａをマスクＲＯＭ１２ではなくフラッシュメモリ１３に記憶する構成としたが、これに限るものではない。ＥＣＵ２１０は、実施の形態１に係るＥＣＵ１０と同様に、ブートプログラム１２ａをマスクＲＯＭ１２に記憶する構成としてもよい。この構成の場合、ＥＣＵ２１０は、実施の形態１にて説明した起動時及び起動から所定時間経過後のモード切替と、実施の形態２にて説明した設定装置２０７に対する切替操作に基づくモード切替との両方を行う構成としてもよい。
【００９９】
またＥＣＵ２１０は、設定装置２０７の接続検知に応じて認証処理を行い、認証処理に成功した場合には自動的に制限モードからフルコントロールモードへ切り替えを行う構成としてもよい。この構成の場合には、設定装置２０７をＥＣＵ２１０に接続するという操作は、モード切替のための明示的な操作に相当する。また認証処理後にモードの切替操作を受け付けるプログラムは、認証プログラム２１２ｂであってもよく、これ以外のプログラムであってもよい。ただしモードの切替操作を受け付けてモード切替を行うプログラムは、マスクＲＯＭ１２に記憶されていることが好ましい。
【０１００】
またＥＣＵ２１０は、コネクタ２１６に通信線を介して設定装置２０７を接続する構成としたが、これに限るものではない。例えばＥＣＵ２１０は、設定装置２０７との間で無線通信を行う構成としてもよい。また例えば、設定装置２０７を接続するのではなく、ＥＣＵ２１０に操作部を設けてモード切替の操作を受け付ける構成としてもよい。
【０１０１】
また、実施の形態２に係る通信システムのその他の構成は、実施の形態１に係る通信システムの構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【符号の説明】
【０１０２】
１  車両
２  中継装置
３  センサ
４  アクチュエータ
１０  ＥＣＵ（通信装置）
１１  プロセッサ
１２  マスクＲＯＭ（第２の記憶部）
１２ａ  ブートプログラム
１３  フラッシュメモリ（記憶部）
１３ａ  アプリケーションプログラム（プログラム）
１４  入出力部
１５  ＲＡＭ
２０  イーサネットコントローラ（通信コントローラ）
２１  制御部
２１ａ  モード切替部（切替部）
２１ｂ  送信メッセージ選択部
２２  レジスタ群（複数のレジスタ）
２３  入出力部
２４  送信キュー（複数のキュー）
２５  受信バッファ
２６  送信部
２７  受信部
２０７  設定装置
２１０  ＥＣＵ
２１２ｂ  認証プログラム
２１２ｃ  認証情報
２１６  コネクタ（接続部）
２７１  表示部
２７２  操作部
【図１】
2018121120.tif 000003
【図２】
2018121120.tif 000004
【図３】
2018121120.tif 000005
【図４】
2018121120.tif 000006
【図５】
2018121120.tif 000007
【図６】
2018121120.tif 000008
【図７】
2018121120.tif 000009
【図８】
2018121120.tif 000010
【図９】
2018121120.tif 000011
【図１０】
2018121120.tif 000012
【図１１】
2018121120.tif 000013
【図１２】
2018121120.tif 000014