(57)【特許請求の範囲】
【請求項１】
他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える通信装置において、
前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しが制限されていること
を特徴とする通信装置。
【請求項２】
前記複数のレジスタに対する値の書き込み及び読み出しが可能な第１モードと、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第２モードとを切り替える切替部を備えること
を特徴とする請求項１に記載の通信装置。
【請求項３】
前記切替部は、前記第１モードから前記第２モードへの切替を行った後、前記第２モードから前記第１モードへの切り替えを行わないようにしてあること
を特徴とする請求項２に記載の通信装置。
【請求項４】
前記切替部は、
自装置の起動から所定期間を前記第１モードとし、
前記所定期間の経過後に前記第１モードから前記第２モードへの切替を行い、
該切替後は前記第２モードから前記第１モードへの切り替えを行わないようにしてあること
を特徴とする請求項２又は請求項３に記載の通信装置。
【請求項５】
前記第２モードにおいて書き込みが制限されるレジスタに値を書き込むプログラムを記憶した記憶部を備え、
前記処理部は、自装置の起動後に前記プログラムを実行し、
前記切替部は、前記プログラムを前記処理部が実行する期間を前記所定期間として切り替えを行うようにしてあること
を特徴とする請求項４に記載の通信装置。
【請求項６】
前記複数のレジスタには、前記通信部が他装置へ送信するメッセージを格納する複数の送信メッセージ格納用レジスタを含み、
前記第２モードにおいて前記複数の送信メッセージ格納用レジスタのうちの一又は複数の送信メッセージ格納用レジスタに対する書き込みを制限するようにしてあること
を特徴とする請求項２乃至請求項５のいずれか１つに記載の通信装置。
【請求項７】
前記複数のレジスタには、前記送信メッセージ格納用レジスタに格納されたメッセージを前記通信部が送信する周期の設定を格納する送信周期設定用レジスタを含み、
前記送信周期設定用レジスタに格納された周期の設定よりも短い周期でのメッセージ送信を規制する規制部を備えること
を特徴とする請求項６に記載の通信装置。
【請求項８】
前記メッセージには、該メッセージを識別するための識別情報を含み、
前記複数のレジスタには、該送信メッセージ格納用レジスタへの格納を許可する識別情報の設定を格納する識別情報設定用レジスタを含み、
前記識別情報設定用レジスタに格納された識別情報以外のメッセージの前記送信メッセージ格納用レジスタへの格納を制限する制限部を備えること
を特徴とする請求項６又は請求項７に記載の通信装置。
【請求項９】
前記第１モード及び前記第２モードの切り替えに係る操作を受け付ける操作受付部を更に備え、
前記切替部は、前記操作受付部が受け付けた操作に応じて切り替えを行うようにしてあること
を特徴とする請求項２乃至請求項８のいずれか１つに記載の通信装置。
【請求項１０】
外部装置を接続する接続部を更に備え、
前記操作受付部は、前記接続部に接続された外部装置に対してなされた操作を、前記接続部を介して受け付けるようにしてあること
を特徴とする請求項９に記載の通信装置。
【請求項１１】
前記接続部に接続された外部装置との間で認証処理を行う認証処理部を更に備え、
前記操作受付部は、前記認証処理部による認証処理に成功した場合に、操作受付を行うようにしてあること
を特徴とする請求項１０に記載の通信装置。
【請求項１２】
他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える通信装置において、
前記複数のレジスタに対する値の書き込み及び読み出しが可能な第１モード、並びに、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第２モードを切り替える切替部を備え、
前記処理部は、
前記第２モードにおいて書き込みが制限されるレジスタに対して値を書き込み、
該レジスタに対する値の書き込み後に、前記切替部により前記第１モードから前記第２モードへの切り替えを行わせるようにしてあること
を特徴とする通信装置。
【請求項１３】
他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部と、前記複数のレジスタに対する値の書き込み及び読み出しが可能な第１モード、並びに、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第２モードを切り替える切替部を備える通信装置を、
前記第２モードにおいて書き込みが制限されるレジスタに対して値を書き込む手段と、
該レジスタに対する値の書き込み後に、前記切替部により前記第１モードから前記第２モードへの切り替えを行わせる手段
として動作させること
を特徴とする通信制限プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに対する不正なメッセージの送信を防止する通信装置及び通信制限プログラムに関する。
【背景技術】
【０００２】
近年、車両に搭載されるＥＣＵ（Electronic Control Unit）は高機能化しており、これに伴ってＥＣＵにて実行されるプログラムも複雑化している。また車両には複数のＥＣＵが搭載され、これらがＣＡＮ（Controller Area Network）などのネットワークを介して接続されている。複数のＥＣＵは、ネットワークを介して情報を交換しながら処理を進めている。
【０００３】
特許文献１においては、ＣＡＮシステムの第１ノードがフレームの受信に失敗してエラーパッシブ状態となっている場合に再送要求フレームを送信し、第２ノードがＣＡＮバスに対して送信されたフレームを記憶しておき、再送が要求されたフレームを第１ノードへ再送することにより、耐障害性の向上を目指したＣＡＮシステムが記載されている。
【０００４】
特許文献２においては、ＣＡＮコントローラがフレームの入力からＣＡＮバスへの送信開始までの送信レイテンシを計測し、このフレームに送信レイテンシに関する情報を含めて送信を行うと共に、このフレームを受信したＣＡＮコントローラが送信レイテンシに応じて実行すべき処理を決定する構成とすることにより、フレームの受信側における誤動作を防止することを目的とした通信システムが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−８６８１２号公報
【特許文献２】特開２０１１−１０３５７７号公報
【非特許文献】
【０００６】
【非特許文献１】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.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら非特許文献１においては、ＥＣＵに不正なプログラムを注入することによって、車両内のネットワークへ不正なメッセージ送信を行うことが可能であることが報告されている。不正なプログラムによる不正なメッセージ送信が行われることにより、ネットワークに接続された他のＥＣＵに誤動作などが発生する虞がある。このような不正なメッセージ送信に対しては、特許文献１に記載のＣＡＮシステム及び特許文献２に記載の通信システムでは有効な対策となり得なかった。
【０００８】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、不正なプログラムの注入によるネットワークへの不正なメッセージ送信を抑制し得る通信装置及び通信制限プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係る通信装置は、他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える通信装置において、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しが制限されていることを特徴とする。
【００１０】
また、本発明に係る通信装置は、前記複数のレジスタに対する値の書き込み及び読み出しが可能な第１モードと、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第２モードとを切り替える切替部を備えることを特徴とする。
【００１１】
また、本発明に係る通信装置は、前記切替部は、前記第１モードから前記第２モードへの切替を行った後、前記第２モードから前記第１モードへの切り替えを行わないようにしてあることを特徴とする。
【００１２】
また、本発明に係る通信装置は、前記切替部が、自装置の起動から所定期間を前記第１モードとし、前記所定期間の経過後に前記第１モードから前記第２モードへの切替を行い、該切替後は前記第２モードから前記第１モードへの切り替えを行わないようにしてあることを特徴とする。
【００１３】
また、本発明に係る通信装置は、前記第２モードにおいて書き込みが制限されるレジスタに値を書き込むプログラムを記憶した記憶部を備え、前記処理部は、自装置の起動後に前記プログラムを実行し、前記切替部は、前記プログラムを前記処理部が実行する期間を前記所定期間として切り替えを行うようにしてあることを特徴とする。
【００１４】
また、本発明に係る通信装置は、前記複数のレジスタには、前記通信部が他装置へ送信するメッセージを格納する複数の送信メッセージ格納用レジスタを含み、前記第２モードにおいて前記複数の送信メッセージ格納用レジスタのうちの一又は複数の送信メッセージ格納用レジスタに対する書き込みを制限するようにしてあることを特徴とする。
【００１５】
また、本発明に係る通信装置は、前記複数のレジスタには、前記送信メッセージ格納用レジスタに格納されたメッセージを前記通信部が送信する周期の設定を格納する送信周期設定用レジスタを含み、前記送信周期設定用レジスタに格納された周期の設定よりも短い周期でのメッセージ送信を規制する規制部を備えることを特徴とする。
【００１６】
また、本発明に係る通信装置は、前記メッセージには、該メッセージを識別するための識別情報を含み、前記複数のレジスタには、該送信メッセージ格納用レジスタへの格納を許可する識別情報の設定を格納する識別情報設定用レジスタを含み、前記識別情報設定用レジスタに格納された識別情報以外のメッセージの前記送信メッセージ格納用レジスタへの格納を制限する制限部を備えることを特徴とする。
【００１７】
また、本発明に係る通信装置は、前記第１モード及び前記第２モードの切り替えに係る操作を受け付ける操作受付部を更に備え、前記切替部は、前記操作受付部が受け付けた操作に応じて切り替えを行うようにしてあることを特徴とする。
【００１８】
また、本発明に係る通信装置は、外部装置を接続する接続部を更に備え、前記操作受付部は、前記接続部に接続された外部装置に対してなされた操作を、前記接続部を介して受け付けるようにしてあることを特徴とする。
【００１９】
また、本発明に係る通信装置は、前記接続部に接続された外部装置との間で認証処理を行う認証処理部を更に備え、前記操作受付部は、前記認証処理部による認証処理に成功した場合に、操作受付を行うようにしてあることを特徴とする。
【００２０】
また、本発明に係る通信装置は、他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える通信装置において、前記複数のレジスタに対する値の書き込み及び読み出しが可能な第１モード、並びに、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第２モードを切り替える切替部を備え、前記処理部は、前記第２モードにおいて書き込みが制限されるレジスタに対して値を書き込み、該レジスタに対する値の書き込み後に、前記切替部により前記第１モードから前記第２モードへの切り替えを行わせるようにしてあることを特徴とする。
【００２１】
また、本発明に係る通信制限プログラムは、他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部と、前記複数のレジスタに対する値の書き込み及び読み出しが可能な第１モード、並びに、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第２モードを切り替える切替部を備える通信装置を、前記第２モードにおいて書き込みが制限されるレジスタに対して値を書き込む手段と、該レジスタに対する値の書き込み後に、前記切替部により前記第１モードから前記第２モードへの切り替えを行わせる手段として動作させることを特徴とする。
【００２２】
本発明において通信装置は、他装置との通信に係る値を格納する複数のレジスタを有する通信部と、このレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える。例えばＣＡＮプロトコルに従った通信を行う通信装置の場合、通信部をＣＡＮコントローラとし、処理部をＣＰＵ（Central Processing Unit）などとすることができる。ただし本発明の適用はＣＡＮプロトコルに限定されるものではなく、これ以外の有線又は無線の種々の通信プロトコルに適用することができる。
本発明においては、通信部のレジスタに対する書き込み及び読み出しが可能な第１モードと、これらのうちの一部のレジスタに対する書き込み及び読み出しを制限した第２モードとの切り替えを行う。通信装置の起動から所定期間を第１モードとし、所定期間の経過後に第１モードから第２モードへの切り替えを行う。第２モードへの切り替えを行った後は、第１モードへの切り替えは行わない。
これにより、通信装置の起動から所定期間の経過後は、通信部の一部のレジスタに対する書き込み及び読み出しが制限された状態となる。このような通信に関するリソースの使用を制限することによって、通信装置に注入された不正なプログラムによる通信リソースの不正な使用を制限することができる。
【００２３】
また本発明においては、通信装置の起動後に処理部が実行する第１プログラムを記憶した第１記憶部と、第１プログラムの実行後に処理部が実行する第２プログラムを記憶した第２記憶部とを通信装置が備える。第１モード及び第２モードの切り替えは、第１プログラムを処理部が実行する期間を上記の所定期間として行う。即ち、第１プログラムの実行は第１モードで行われ、第２プログラムの実行は第２モードで行われる。これにより、通信部のレジスタの使用に制限のない第１モードでの動作を、第１記憶部に記憶した第１プログラムの実行期間に限定することができる。不正なプログラムが第２記憶部に注入された場合であっても、第２記憶部に記憶された不正プログラムの実行は、通信部のレジスタの使用が制限された第２モードで行われる。
【００２４】
また本発明においては、第１記憶部を記憶内容の書き換えが不可能な構成とする。例えば、第１記憶部をマスクＲＯＭ（Read Only Memory）などの書き換え不可能なメモリ素子を用いて構成する。これにより第１記憶部には不正なプログラムを注入することが不可能となり、不正なプログラムが第１モードで実行されることがなくなる。
【００２５】
また本発明においては、第１プログラムの実行により、第２モードにて書き込み及び読み出しを制限するレジスタをいずれとするかの設定を行う。これにより第２モードにて使用を制限するレジスタを自装置の処理内容などに適したものに設定することができると共に、使用を制限するレジスタを可変とすることで通信部の汎用性を高めることができる。
【００２６】
また本発明においては、通信部の複数のレジスタに、他装置へ送信するメッセージを格納するための複数の送信メッセージ格納用レジスタを含む。処理部は、他装置へ送信するメッセージを通信部の送信メッセージ格納用レジスタに格納することによって、このメッセージの送信を行うことができる。第２モードにおいては、複数の送信メッセージ格納用レジスタのうちの一又は複数に対する書き込み及び読み出しを制限する。これにより不正なプログラムによる送信メッセージ格納用レジスタの使用を制限することができ、不正なメッセージ送信を制限することができる。
【００２７】
また本発明においては、通信部の複数のレジスタに、送信メッセージ格納用レジスタに格納されたメッセージを通信部が送信する周期の設定を格納する送信周期設定用レジスタを含む。通信部によるメッセージ送信は、送信周期設定用レジスタに設定された周期より短い周期で行うことが制限され、設定された周期より長い周期でしか行うことができない。これにより通信装置によるメッセージ送信の最低周期を定めることができ、この周期より短い周期で不正なプログラムが頻繁にメッセージ送信を繰り返すことを防止できる。
【００２８】
また本発明においては、通信装置が送受信するメッセージには、このメッセージを識別する識別情報を含む。識別情報は、例えばＣＡＮプロトコルにおいてメッセージに付されるＣＡＮ−ＩＤとすることができる。通信部の複数のレジスタには、送信メッセージ格納用レジスタへの格納を許可するメッセージの識別情報に関する設定を格納する識別情報設定用レジスタを含む。通信部の送信メッセージ格納用レジスタに対するメッセージの格納は、識別情報設定用レジスタに設定された識別情報が付されたメッセージのみに限定し、これ以外の識別情報が付されたメッセージの格納を制限する。これにより通信装置が送信するメッセージの種別などを識別情報により制限することができ、不正なプログラムが不正な識別情報を付したメッセージを送信することを防止できる。
【００２９】
また本発明においては、明示的なモード切替の操作が行われた場合には、第１モード及び第２モードの切り替えを行う。これにより、例えば車両の試験、製造又は整備等の際にレジスタに対する値の書き込みを行うことが可能となる。
【００３０】
また本発明においては、通信装置に外部装置を接続することが可能な接続部を設ける。外部装置にはスイッチ又はタッチパネル等による操作部が設けられ、通信装置のモード切替に関する操作を行うことができる。通信装置は、外部装置にてなされた操作を、接続部を介して受け付け、受け付けた操作に応じてモード切替を行うことができる。
【００３１】
また本発明においては、通信装置及び外部装置の間で認証処理を行う。通信装置は、認証処理に成功した場合にのみ、モード切替に係る操作の受け付けを行う。これにより、接続部に接続された外部装置によるレジスタの値の書き換えが困難化される。
【発明の効果】
【００３２】
本発明による場合は、他装置とのメッセージ送受信を行う通信部のレジスタの使用を制限することにより、不正なプログラムの注入によるネットワークへの不正なメッセージ送信を抑制することができる。
【図面の簡単な説明】
【００３３】
【図１】本実施の形態に係る通信システムの構成を示すブロック図である。
【図２】レジスタ群の一構成例を示す模式図である。
【図３】ＥＣＵの処理部が起動時に行う処理の手順を示すフローチャートである。
【図４】ＥＣＵのＣＡＮコントローラが行うモード切替処理の手順を示すフローチャートである。
【図５】ＣＡＮコントローラが行う制限処理の手順を示すフローチャートである。
【図６】ＣＡＮコントローラが行う制限処理の手順を示すフローチャートである。
【図７】ＣＡＮコントローラが行う制限処理の手順を示すフローチャートである。
【図８】実施の形態２に係る通信システムの構成を示すブロック図である。
【図９】実施の形態２に係るＥＣＵが行うモード切替処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００３４】
（実施の形態１）
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。図１は、本実施の形態に係る通信システムの構成を示すブロック図である。本実施の形態に係る通信システムは、図示しない車両に搭載された複数のＥＣＵ（通信装置）１がＣＡＮバス２に接続され、このＣＡＮバス２を介して複数のＥＣＵ１が通信を行う構成である。なお複数のＥＣＵ１は通信機能に関して略同じ構成であるため、図１においては一つのＥＣＵ１について詳細構成を示し、他のＥＣＵ１については詳細構成の図示を省略してある。
【００３５】
ＥＣＵ１は、処理部１０、マスクＲＯＭ（第１記憶部）１１、ＥＥＰＲＯＭ（第２記憶部）１２、ＲＡＭ１３、入出力部１４及びＣＡＮコントローラ（通信部）１５等を備えて構成されている。処理部１０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro-Processing Unit）等の演算処理装置を用いて構成されている。処理部１０は、マスクＲＯＭ１１に記憶されたブートプログラム１１ａ及びＥＥＰＲＯＭ１２に記憶されたアプリケーションプログラム１２ａ等を読み出して実行することにより、種々の演算処理及び制御処理等を行う。
【００３６】
マスクＲＯＭ１１は、記憶されている情報（プログラム及びデータ等）を書き換えることができない不揮発性のメモリ素子である。本実施の形態においてマスクＲＯＭ１１には、処理部１０が実行するブートプログラム１１ａが予め記憶されている。ブートプログラム１１ａは、ＥＣＵ１の起動後に処理部１０によって最初に実行されるプログラムである。処理部１０は、ブートプログラム１１ａを実行することにより、ＥＣＵ１が有するハードウェア及びソフトウェアのリソースの初期化並びに動作条件の設定等の処理を行う。なおＥＣＵ１の起動には、ＥＣＵ１に対する電力供給が開始され、例えばパワーオンリセットの解除などがなされて各部の動作が開始されること、及び、例えばユーザがリセットスイッチなどに対する操作を行うことによってＥＣＵ１の動作を初期化し、その後にリセットが解除されて各部の動作が開始されること（いわゆる再起動）等を含む。
【００３７】
ＥＥＰＲＯＭ１２は、データ書き換えが可能な不揮発性のメモリ素子である。本実施の形態においてＥＥＰＲＯＭ１２には、処理部１０が実行するアプリケーションプログラム１２ａが記憶される。アプリケーションプログラム１２ａは、各ＥＣＵ１に特有の機能を実現するための処理を行うプログラムであり、例えばバージョンアップ又は不具合の修正等によりプログラムの一部又は全部が書き換えられ得る。処理部１０は、起動後にブートプログラム１１ａの処理を行い、その後にアプリケーションプログラム１２ａの処理を行う。
【００３８】
ＲＡＭ１３は、例えばＳＲＡＭ（Static Random Access Memory）又はＤＲＡＭ（Dynamic Random Access Memory）等の揮発性のメモリ素子である。ＲＡＭ１３は、処理部１０の処理過程において発生した各種のデータを一時的に記憶する。
【００３９】
入出力部１４は、例えば車両に搭載された各種のセンサ３などから入力される信号の受け付け、及び、各種のアクチュエータ４などへの制御信号などの出力等を行う。入出力部１４は、センサ３及びアクチュエータ４等と信号線を介してそれぞれ接続され、この信号線を介して信号の入出力を行う。入出力部１４は、例えばセンサ３からのアナログの入力信号をサンプリングしてデジタルのデータに変換して処理部１０へ与える。また入出力部１４は、処理部１０から与えられた制御命令に応じてアクチュエータ４に対する制御信号を出力する。なおＥＣＵ１は、センサ３及びアクチュエータ４等との間の信号入出力の両機能を備えている必要はなく、入力又は出力のいずれか一方のみの機能を備える構成であってもよく、入出力の機能を備えていない構成であってもよい。
【００４０】
ＣＡＮコントローラ１５は、処理部１０の制御に応じて、車両に搭載された他のＥＣＵ１との間でＣＡＮバス２を介したメッセージの送受信を行う。ＣＡＮコントローラ１５は、例えば処理部１０から与えられた送信用のメッセージをＣＡＮプロトコルに従ったドミナント／レセシブの２値信号としてＣＡＮバス２へ出力することにより、メッセージ送信を行う。ＣＡＮコントローラ１５は、ＣＡＮバス２の電位をサンプリングすることでＣＡＮバス２上の信号を取得し、メッセージの受信を行う。処理部１０は、ＣＡＮコントローラ１５が受信したメッセージを取得して処理を行うことができる。またＣＡＮコントローラ１５は、ＣＡＮバス２へのメッセージ送信の衝突検知、及び、衝突が発生した場合のメッセージ送信順位の調停処理等を行う。
【００４１】
また本実施の形態に係るＣＡＮコントローラ１５は、レジスタ群１６を有している。図２は、レジスタ群１６の一構成例を示す模式図である。本実施の形態に係るＣＡＮコントローラ１５が有するレジスタ群１６には、例えばモードレジスタ、送信要求レジスタ１〜４、送信キャンセルレジスタ１〜４、送信完了レジスタ１〜４、送信キャンセル完了レジスタ１〜４、受信完了レジスタ１〜４、送信メッセージ格納用レジスタ１〜４、送信許可設定用レジスタ１〜４、送信周期設定用レジスタ１〜４、送信識別情報設定用レジスタ１〜４、受信メッセージ格納用レジスタ１〜４、受信許可設定用レジスタ１〜４、及び、受信識別情報設定用レジスタ１〜４等の複数のレジスタを含んでいる。なお図２に示すレジスタは一例であって、これに限るものではなく、ＣＡＮコントローラ１５は図示しない種々のレジスタを有していてよく、図示したレジスタのいくつかを有していない構成であってもよい。また図２においては、レジスタに対する読み出しのみが可能であるものを”Ｒ可”と示し、読み出し及び書き込みが可能であるものを”Ｒ／Ｗ可”と示し、読み出し及び書き込みが不可能であるものを”Ｒ／Ｗ不可”と示してある。
【００４２】
ＣＡＮコントローラ１５のレジスタ群１６は、一次元のアドレスが各レジスタに付されている。図示の例では、１６進数で０ｘ０００〜０ｘ０３０のアドレスが各レジスタに対して付されている。処理部１０は、アドレスを指定して読出命令をＣＡＮコントローラ１５に対して与えることにより、アドレスで指定されたレジスタに格納された値の読み出しを行うことができる。また処理部１０は、アドレス及びデータを指定して書込命令をＣＡＮコントローラ１５に対して与えることにより、アドレスで指定されたレジスタに対するデータの書き込みを行うことができる。ただし本実施の形態においては、レジスタに対する値の読み出しのみが許可されている場合、並びに、レジスタに対する読み出し及び書き込みが共に許可されていない場合があり、このようなレジスタに対する読出命令又は書き込み命令に対してＣＡＮコントローラ１５は処理部１０へエラーを通知する。
【００４３】
また、本実施の形態に係るＣＡＮコントローラ１５は、フルコントロールモード及び制限モードの２種の動作モードで動作する。フルコントロールモードは、レジスタ群１６の全てのレジスタに対するアクセス（読み出しのみ可能なレジスタに対しては読み出し、読み出し及び書き込みが可能レジスタに対しては読み出し及び書き込み）を処理部１０が行うことができるモードである。これに対して制限モードは、レジスタ群１６の一部のレジスタに対する処理部１０のアクセスが制限され（不可能となり）、許可されたレジスタへのアクセスのみを行うことができるモードである。ＥＣＵ１の起動直後、即ちＣＡＮコントローラ１５の起動直後には、ＣＡＮコントローラ１５はフルコントロールモードで動作する。
【００４４】
レジスタ群１６のモードレジスタは、ＣＡＮコントローラ１５の動作モードの切り替えを行うためのレジスタである。処理部１０がモードレジスタに対して所定の値を書き込むことによって、ＣＡＮコントローラ１５の動作モードがフルコントロールモードから制限モードへ切り替えられる。また制限モードにおいては、モードレジスタに対する値の書き込みを行うことができない。このため、処理部１０は、ＣＡＮコントローラ１５の動作モードをフルコントロールモードから制限モードへ切り替えることはできるが、制限モードからフルコントロールモードへ切り替えることはできない。
【００４５】
ＣＡＮコントローラ１５は、他のＥＣＵ１へ送信するメッセージを格納するための４つのレジスタ（送信メッセージ格納用レジスタ１〜４）を有している。処理部１０は、送信メッセージ格納用レジスタ１〜４のいずれかにメッセージを書き込み、更に対応する送信要求レジスタ１〜４へ送信要求を書き込むことによって、ＣＡＮコントローラ１５に対してメッセージ送信を行わせることができる。また処理部１０は、対応する送信キャンセルレジスタ１〜４へキャンセル要求を書き込むことによって、メッセージ送信の完了前に送信をキャンセルすることができる。
【００４６】
レジスタ群１６の送信完了レジスタ１〜４及びキャンセル完了レジスタ１〜４は、ＣＡＮコントローラ１５が値を書き込むレジスタである。ＣＡＮコントローラ１５は、処理部１０の送信要求に応じてメッセージ送信を行い、送信を完了した場合に対応する送信完了レジスタ１〜４に対して送信完了を示す値を書き込む。またＣＡＮコントローラ１５は、処理部１０のキャンセル要求に応じてメッセージ送信を中断し、中断に成功した場合にキャンセル完了レジスタ１〜４にキャンセル完了を示す値を書き込む。ただしメッセージ送信を中断することができなかった場合、ＣＡＮコントローラ１５は、キャンセル完了レジスタ１〜４にキャンセル失敗を示す値を書き込む。処理部１０は、送信完了レジスタ１〜４及びキャンセル完了レジスタ１〜４の値を読み出すことによって、送信要求及びキャンセル要求に対する処理結果を確認することができる。
【００４７】
また本実施の形態において４つの送信メッセージ格納用レジスタ１〜４は、フルコントロールモードでの動作時には処理部１０が全てを使用することができるが、制限モードでの動作時にはその一部の使用が制限される。レジスタ群１６の送信許可設定用レジスタ１〜４は、各送信メッセージ格納用レジスタ１〜４について制限モードでの使用を許可するか否かの設定を格納するためのレジスタである。ＣＡＮコントローラ１５がフルコントロールモードで動作している際に、処理部１０が送信許可設定用レジスタ１〜４のいずれかに対してレジスタの使用を許可しない旨の値を書き込むことによって、制限モードへの切替後には対応する送信メッセージ格納用レジスタ１〜４に対する読み出し及び書き込みが不可能となる。送信許可設定用レジスタ１〜４は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて読み出し及び書き込みを行うことはできず、設定を変更することができない。
【００４８】
例えば、本実施の形態に係るＥＣＵ１は、送信許可設定用レジスタ１に対して使用を許可する旨の情報を書き込み、送信許可設定レジスタ２〜４に対して使用を許可しない旨の情報を書き込む。これによりフルコントロールモードから制限モードへ切り替えられた後、ＥＣＵ１は、送信メッセージ格納用レジスタ１を用いたメッセージ送信を行うことはできるが、送信メッセージ格納用レジスタ２〜４を用いたメッセージ送信を行うことができなくなる。
【００４９】
また本実施の形態においてＣＡＮコントローラ１５は、送信メッセージ格納用レジスタ１〜４に格納されたメッセージの送信を行うことができる周期が、送信メッセージ格納用レジスタ１〜４毎に定められている。ＣＡＮコントローラ１５は、前回のメッセージ送信を終えた後、定められた所定期間（最低送信間隔）が経過するまで、対応する送信メッセージ格納用レジスタ１〜４に関する処理部１０からの送信要求を受け付けない。レジスタ群１６の送信周期設定用レジスタ１〜４は、各送信メッセージ格納用レジスタ１〜４についてこの所定期間を送信周期として設定を格納するためのレジスタである。ＣＡＮコントローラ１５がフルコントロールモードで動作している際に、処理部１０が送信周期設定用レジスタ１〜４のいずれかに対して送信周期の設定を書き込むことによって、上述のような送信周期によるメッセージ送信の制限が実施される。なおＣＡＮコントローラ１５は、動作モードに関わらず設定された送信周期によるメッセージ送信の制限を行ってもよく、制限モードにおいてのみ制限を行ってもよい。送信周期設定用レジスタ１〜４は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて書き込みを行うことはできず、設定を変更することができない。なお送信周期設定用レジスタ１〜４は、制限モードにおいて、書き込みのみでなく読み出しをも制限する構成としてもよい。
【００５０】
例えば、本実施の形態に係るＥＣＵ１は、送信周期設定用レジスタ１に対して送信周期を１００ｍｓとする設定を書き込む。なお送信メッセージ格納用レジスタ２〜３の使用を許可しない場合には、送信周期設定用レジスタ２〜４の設定を行わなくてもよい。制限モードへ切り替えられた後、ＣＡＮコントローラ１５は、送信を行う毎に内部のタイマ機能により送信からの経過時間を計時し、前回のメッセージ送信から設定された１００ｍｓが経過するまで、処理部１０からの送信要求を受け付けない。なおＣＡＮコントローラ１５は、送信メッセージ格納用レジスタ１〜４毎に個別に経過時間の計時を行うことができる。
【００５１】
また本実施の形態において４つの送信メッセージ格納用レジスタ１〜４は、格納することができるメッセージのＣＡＮ−ＩＤが送信メッセージ格納用レジスタ１〜４毎に定められている。ＣＡＮコントローラ１５は、処理部１０から送信メッセージ格納用レジスタ１〜４へのメッセージの書込要求が与えられた場合、メッセージに含まれるＣＡＮ−ＩＤが、書き込もうとする送信メッセージ格納用レジスタ１〜４に対して定められたＣＡＮ−ＩＤである場合にのみ、処理部１０から与えられたメッセージを送信メッセージ格納用レジスタ１〜４へ書き込む。レジスタ群１６の送信識別情報設定用レジスタ１〜４は、対応する送信メッセージ格納用レジスタ１〜４に格納できるメッセージのＣＡＮ−ＩＤを設定するためのレジスタである。ＣＡＮコントローラ１５がフルコントロールモードで動作している際に、処理部１０が送信識別情報設定用レジスタ１〜４のいずれかに対してＣＡＮ−ＩＤの設定を書き込むことによって、上述のようなＣＡＮ−ＩＤによるメッセージ格納の制限が実施される。なおＣＡＮコントローラ１５は、動作モードに関わらず設定されたＣＡＮ−ＩＤによるメッセージ格納の制限を行ってもよく、制限モードにおいてのみ制限を行ってもよい。送信識別情報設定用レジスタ１〜４は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて読み出し及び書き込みを行うことはできず、設定を変更することができない。
【００５２】
例えば、本実施の形態に係るＥＣＵ１は、送信識別情報設定用レジスタ１にＣＡＮ−ＩＤとして”００１０”の値を書き込む。なお送信メッセージ格納用レジスタ２〜４の使用を許可しない場合には、送信識別情報設定用レジスタ２〜４の設定を行わなくてもよい。制限モードへ切り替えられた後、ＣＡＮコントローラ１５は、送信メッセージ格納用レジスタ１に対してメッセージを書き込む要求が処理部１０から与えられた場合、このメッセージに付されたＣＡＮ−ＩＤが”００１０”である場合にのみ、送信メッセージ格納用レジスタ１にメッセージを格納する。
【００５３】
また、ＣＡＮコントローラ１５は、他のＥＣＵ１から受信したメッセージを格納するための４つのレジスタ（受信メッセージ格納用レジスタ１〜４）を有している。ＣＡＮコントローラ１５は、他のＥＣＵ１からメッセージを受信した場合、この受信メッセージ格納用レジスタ１〜４のいずれかにメッセージを書き込むとともに、対応する受信完了レジスタ１〜４に受信完了を示す情報を書き込む。処理部１０は、受信完了レジスタ１〜４の値を定期的に読み出してチェックすることにより、他のＥＣＵ１〜のメッセージを受信したか否かを判定し、メッセージを受信した場合に受信メッセージ格納用レジスタ１〜４からメッセージを読み出すことができる。
【００５４】
また本実施の形態において４つの受信メッセージ格納用レジスタ１〜４は、フルコントロールモードでの動作時には処理部１０が全てを使用することができるが、制限モードでの動作時にはその一部の使用が制限される。レジスタ群１６の受信許可設定用レジスタ１〜４は、各受信メッセージ格納用レジスタ１〜４について制限モードでの使用を許可するか否かの設定を格納するためのレジスタである。ＣＡＮコントローラ１５がフルコントロールモードで動作している際に、受信許可設定用レジスタ１〜４のいずれかに対してレジスタの使用を許可しない旨の値を書き込むことによって、制限モードへの切替後には対応する受信メッセージ格納用レジスタ１〜４に対する読み出し及び書き込みが不可能となる。受信許可設定用レジスタ１〜４は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて書き込みを行うことはできず、設定を変更することができない。なお受信許可設定用レジスタ１〜４は、制限モードにおいて、書き込みのみでなく読み出しをも制限する構成としてもよい。
【００５５】
例えば、本実施の形態に係るＥＣＵ１は、受信許可設定用レジスタ１，２に対して使用を許可する旨の情報を書き込み、受信許可設定レジスタ３，４に対して使用を許可しない旨の情報を書き込む。これによりフルコントロールモードから制限モードへ切り替えられた後、ＥＣＵ１は、受信メッセージ格納用レジスタ１，２を用いたメッセージ受信を行うことはできるが、受信メッセージ格納用レジスタ３，４を用いたメッセージ受信を行うことができなくなる。
【００５６】
また本実施の形態において４つの受信メッセージ格納用レジスタ１〜４は、格納することができるメッセージのＣＡＮ−ＩＤがメッセージ格納用レジスタ１〜４毎に定められている。ＣＡＮコントローラ１５は、他のＥＣＵ１からのメッセージを受信した場合、受信メッセージに含まれるＣＡＮ−ＩＤが受信メッセージ格納用レジスタ１〜４に対して定められたＣＡＮ−ＩＤである場合にのみ、この受信メッセージを対応する受信メッセージ格納用レジスタ１〜４へ書き込む。レジスタ群１６の受信識別情報設定用レジスタ１〜４は、対応する受信メッセージ格納用レジスタ１〜４に格納できるメッセージのＣＡＮ−ＩＤを設定するためのレジスタである。ＣＡＮコントローラ１５がフルコントロールモードで動作している際に、処理部１０が受信識別情報設定用レジスタ１〜４のいずれかに対してＣＡＮ−ＩＤの設定を書き込むことによって、上述のようなＣＡＮ−ＩＤによるメッセージ格納の制限が実施される。なおＣＡＮコントローラ１５は、動作モードに関わらず設定されたＣＡＮ−ＩＤによるメッセージ格納の制限を行ってもよく、制限モードにおいてのみ制限を行ってもよい。受信識別情報設定用レジスタ１〜４は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて読み出し及び書き込みを行うことはできず、設定を変更することができない。
【００５７】
例えば、本実施の形態に係るＥＣＵ１は、受信識別情報設定用レジスタ１にＣＡＮ−ＩＤとして”００１２”の値を書き込み、受信識別情報設定用レジスタ２に”００２０”の値を書き込む。なお受信メッセージ格納用レジスタ３，４の使用を許可しない場合には、受信識別情報設定用レジスタ３，４の設定を行わなくてもよい。制限モードへ切り替えられた後、ＣＡＮコントローラ１５は、他のＥＣＵ１からのメッセージを受信した場合、受信メッセージに含まれるＣＡＮ−ＩＤが”００１２”又は”００２０”である場合にのみメッセージを受信メッセージ格納用レジスタ１，２に格納する。これら以外のＣＡＮ−ＩＤのメッセージを受信した場合、ＣＡＮコントローラ１５は、受信メッセージを破棄する。
【００５８】
このように、本実施の形態に係るＣＡＮコントローラ１５は、制限モードにおいてレジスタ群１６に対するアクセスの制限を行う。ＥＣＵ１の起動直後、ＣＡＮコントローラ１５はフルコントロールモードで動作を開始する。このとき処理部１０はマスクＲＯＭ１１に記憶されたブートプログラム１１ａを読み出して実行する。このときにブートプログラム１１ａを実行している処理部１０は、ＣＡＮコントローラ１５のレジスタ１６に対するアクセスを制限なしで行うことができる。ブートプログラム１１ａは、ＥＣＵ１の初期設定などを行うためのプログラムであり、これを実行することによって処理部１０は、ＣＡＮコントローラ１５のレジスタ群１６に対するアクセス制限に条件設定を行う。即ちブートプログラム１１ａの実行により処理部１０は、送信許可設定レジスタ１〜４に対する送信メッセージ格納用レジスタ１〜４の使用可否の設定、送信周期設定用レジスタ１〜４に対する送信周期の設定、送信識別情報設定用レジスタ１〜４に対するＣＡＮ−ＩＤの設定、受信許可設定レジスタ１〜４に対する受信メッセージ格納用レジスタ１〜４の使用可否の設定、及び、受信識別情報設定用レジスタ１〜４に対するＣＡＮ−ＩＤの設定等を行う。
【００５９】
これらのレジスタに対する設定を終えた後、ブートプログラム１１ａを実行する処理部１０は、モードレジスタに対する書き込みを行ってＣＡＮコントローラ１５の動作モードをフルコントロールモードから制限モードへ切り替える。制限モードへの切替完了後、処理部１０は、ブートプログラム１１ａの実行を終了し、ＥＥＰＲＯＭ１２に記憶されたアプリケーションプログラム１２ａの実行を開始する。アプリケーションプログラム１２ａの実行中は、ＣＡＮコントローラ１５は制限モードで動作するため、レジスタ群１６に対するアクセス制限が行われる。ＣＡＮコントローラ１５は、制限モードへ切り替えられた後、フルコントロールモードへの切り替えを行うことはできない。例えばＥＣＵ１が電源オフ状態となった後に電源を再投入された場合、又は、リセット操作などがなされて再起動された場合等にのみ、ＣＡＮコントローラ１５はフルコントロールモードとなる。
【００６０】
よってブートプログラム１１ａは、アプリケーションプログラム１２ａの実行に必要なレジスタが使用可能となり、且つ、実行に不要なレジスタが使用不可能となるように、レジスタ群１６のアクセス制限の条件を設定するように、予め適切に作成されている。
【００６１】
なお本実施の形態においては、処理部１０がモードレジスタに対する書き込みを行うことでＣＡＮコントローラ１５がフルコントロールモードから制限モードへの切り替えを行う構成としたが、これに限るものではない。例えばＣＡＮコントローラ１５は、起動からの経過時間（例えばクロック数など）を計時し、所定時間が経過した場合には、処理部１０がモードレジスタに対する書き込みを行っていない場合であっても、強制的にフルコントロールモードから制限モードへの切り替えを行う構成としてもよい。この場合、切り替えの判断基準となる所定時間は、例えばブートプログラム１１ａの実行に要する時間を設定することができる。ただし所定時間はブートプログラム１１ａの実行時間に無関係に定められていてもよく、この場合にはモード切替までの所定時間がブートプログラム１１ａの作成に対する制約条件として機能することとなる。
【００６２】
図３は、ＥＣＵ１の処理部１０が起動時に行う処理の手順を示すフローチャートである。本実施の形態に係るＥＣＵ１の処理部１０は、ＥＣＵ１の起動又は再起動等がなされることにより、例えばリセットＩＣなどによるパワーオンリセットが行われ、その後にパワーオンリセットが解除される（ステップＳ１）ことにより、処理を開始する。まず処理部１０は、マスクＲＯＭ１１に記憶されたブートプログラム１１ａを読み出して実行を開始する（ステップＳ２）。ブートプログラム１１ａを実行する処理部１０は、ＣＡＮコントローラ１５のレジスタ群１６に含まれる送信許可設定レジスタ１〜４、送信周期設定用レジスタ１〜４、送信識別情報設定用レジスタ１〜４、受信許可設定レジスタ１〜４、及び、受信識別情報設定用レジスタ１〜４に対する設定値の書き込みを行うことにより、レジスタ群１６に対するアクセス制限の条件を設定する（ステップＳ３）。
【００６３】
アクセス制限の条件設定を完了した後、ブートプログラム１１ａを実行する処理部１０は、ＣＡＮコントローラ１５のレジスタ群１６に含まれるモードレジスタに対する書き込みを行うことにより、フルコントロールモードから制限モードへのモード切替を行う（ステップＳ４）。ＣＡＮコントローラ１５のモード切替の完了後、処理部１０は、ブートプログラム１１ａの実行を終了し、ＥＥＰＲＯＭ１２に記憶されたアプリケーションプログラム１２ａを読み出して実行を開始し（ステップＳ５）、起動時の処理を終了する。
【００６４】
図４は、ＥＣＵ１のＣＡＮコントローラ１５が行うモード切替処理の手順を示すフローチャートである。本実施の形態に係るＥＣＵ１のＣＡＮコントローラ１５は、ＥＣＵ１の起動又は再起動等がなされることにより、例えばリセットＩＣなどによるパワーオンリセットが行われ、その後にパワーオンリセットが解除される（ステップＳ１１）ことにより、処理を開始する。ＣＡＮコントローラ１５は、内部に備えるタイマ機能などにより、起動からの経過時間の計時を開始する（ステップＳ１２）。また起動後のＣＡＮコントローラ１５は、フルコントロールモードで動作する（ステップＳ１３）。
【００６５】
ＣＡＮコントローラ１５は、レジスタ群１６のモードレジスタに対して制限モードへの切り替えを行う値が書き込まれたか否かに基づいて、モード切替の指示が処理部１０から与えられたか否かを判定する（ステップＳ１４）。モード切替の指示が与えられていない場合（Ｓ１４：ＮＯ）、ＣＡＮコントローラ１５は、ステップＳ１２にて計時を開始した起動からの経過時間が所定時間を経過したか否かを更に判定する（ステップＳ１５）。起動から所定時間が経過していない場合（Ｓ１５：ＮＯ）、ＣＡＮコントローラ１５は、ステップＳ１３へ処理を戻し、フルコントロールモードでの動作を継続して行う。
【００６６】
モード切替の指示が与えられた場合（Ｓ１４：ＹＥＳ）、又は、起動から所定時間が経過した場合（Ｓ１５：ＹＥＳ）、ＣＡＮコントローラ１５は、フルコントロールモードから制限モードへの切り替えを行う（ステップＳ１６）。またＣＡＮコントローラ１５は、ステップＳ１２にて開始した計時を終了する（ステップＳ１６）。その後、ＣＡＮコントローラ１５は、制限モードでの動作を継続的に行う（ステップＳ１８）。
【００６７】
図５は、ＣＡＮコントローラ１５が行うメッセージ送信要求時の制限処理の手順を示すフローチャートであり、ＣＡＮ−ＩＤに基づく制限処理である。ＣＡＮコントローラ１５は、レジスタ群１６の送信メッセージ格納用レジスタ１〜４のいずれかに対するメッセージの書込要求が処理部１０から与えられたか否かを判定する（ステップＳ２１）。メッセージの書込要求が与えられていない場合（Ｓ２１：ＮＯ）、ＣＡＮコントローラ１５は、書込要求が与えられるまで待機する。メッセージの書込要求が与えられた場合（Ｓ２１：ＹＥＳ）、ＣＡＮコントローラ１５は、自身の動作モードが制限モードであるか否かを判定する（ステップＳ２２）。
【００６８】
動作モードが制限モードである場合（Ｓ２２：ＹＥＳ）、ＣＡＮコントローラ１５は、書き込みを要求された送信メッセージ格納用レジスタ１〜４に対応する送信許可設定レジスタ１〜４の値をチェックする（ステップＳ２３）。ステップＳ２３の結果に基づいて、ＣＡＮコントローラ１５は、書込を要求された送信メッセージ格納用レジスタ１〜４の使用が許可されているか否かを判定する（ステップＳ２４）。使用が許可されていない場合（Ｓ２４：ＮＯ）、ＣＡＮコントローラ１５は、処理部１０に対してエラーを通知し（ステップＳ２９）、ステップＳ２１へ処理を戻す。
【００６９】
送信メッセージ格納用レジスタ１〜４の使用が許可されている場合（Ｓ２４：ＹＥＳ）、ＣＡＮコントローラ１５は、処理部１０から与えられたメッセージに含まれるＣＡＮ−ＩＤを取得する（ステップＳ２５）。ＣＡＮコントローラ１５は、書き込みを要求された送信メッセージ格納用レジスタ１〜４に対応する送信識別情報設定用レジスタ１〜４の値をチェックし（ステップＳ２６）、ステップＳ２５にて取得したＣＡＮ−ＩＤが送信メッセージ格納用レジスタ１〜４への格納を許可されたＣＡＮ−ＩＤであるか否かを判定する（ステップＳ２７）。許可されたＣＡＮ−ＩＤである場合（Ｓ２７：ＹＥＳ）、ＣＡＮコントローラ１５は、処理部１０から与えられたメッセージを送信メッセージ格納用レジスタ１〜４に格納して（ステップＳ２８）、ステップＳ２１へ処理を戻す。許可されたＣＡＮ−ＩＤでない場合（Ｓ２７：ＮＯ）、ＣＡＮコントローラ１５は、処理部１０に対してエラーを通知し（ステップＳ２９）、ステップＳ２１へ処理を戻す。
【００７０】
また、動作モードが制限モードではない場合（Ｓ２２：ＮＯ）、即ち動作モードがフルコントロールモードである場合、ＣＡＮコントローラ１５は、処理部１０から与えられたメッセージを送信メッセージ格納用レジスタ１〜４に格納して（ステップＳ２８）、ステップＳ２１へ処理を戻す。
【００７１】
図６は、ＣＡＮコントローラ１５が行うメッセージ送信要求時の制限処理の手順を示すフローチャートであり、送信周期に基づく制限処理である。なおＣＡＮコントローラ１５は、自身のタイマ機能により、メッセージ送信を行った場合に、このメッセージ送信からの経過時間を計時する処理を行っているものとする。ＣＡＮコントローラ１５は、他のＥＣＵ１に対するメッセージの送信要求が処理部１０から与えられたか否かを判定する（ステップＳ３１）。送信要求が与えられていない場合（Ｓ３１：ＮＯ）、ＣＡＮコントローラ１５は、送信要求が与えられるまで待機する。送信要求が与えられた場合（Ｓ３１：ＹＥＳ）、ＣＡＮコントローラ１５は、自身の動作モードが制限モードであるか否かを判定する（ステップＳ３２）。
【００７２】
動作モードが制限モードである場合（Ｓ３２：ＹＥＳ）、ＣＡＮコントローラ１５は、送信要求が与えられた送信要求レジスタ１〜４に対応する送信許可設定レジスタ１〜４の値をチェックする（ステップＳ３３）。ステップＳ３３の結果に基づいて、ＣＡＮコントローラ１５は、要求された送信メッセージ格納用レジスタ１〜４のメッセージ送信が許可されているか否かを判定する（ステップＳ３４）。メッセージの送信が許可されていない場合（Ｓ３４：ＮＯ）、ＣＡＮコントローラ１５は、処理部１０に対してエラーを通知し（ステップＳ３９）、ステップＳ３１へ処理を戻す。
【００７３】
メッセージの送信が許可されている場合（Ｓ３４：ＹＥＳ）、ＣＡＮコントローラ１５は、対応する送信メッセージ格納用レジスタ１〜４に格納されたメッセージの送信を前回に行ってからの経過時間を取得する（ステップＳ３５）。ＣＡＮコントローラ１５は、送信を要求された送信メッセージ格納用レジスタ１〜４に対応する送信周期報設定用レジスタ１〜４の値をチェックする（ステップＳ３６）。ＣＡＮコントローラ１５は、ステップＳ３５にて取得した前回送信からの経過時間が、送信周期設定用レジスタ１〜４に設定された送信周期を経過したか否かを判定する（ステップＳ３７）。送信周期を経過した場合（Ｓ３７：ＹＥＳ）、ＣＡＮコントローラ１５は、送信要求に対応する送信メッセージ格納用レジスタ１〜４に格納されたメッセージを読み出してＣＡＮバス２へ出力することによりメッセージ送信を行い（ステップＳ３８）、ステップＳ３１へ処理を戻す。送信周期を経過していない場合（Ｓ３７：ＮＯ）、ＣＡＮコントローラ１５は、処理部１０に対してエラーを通知し（ステップＳ３９）、ステップＳ３１へ処理を戻す。
【００７４】
また、動作モードが制限モードでない場合（Ｓ３２：ＮＯ）、即ち動作モードがフルコントロールモードである場合、ＣＡＮコントローラ１５は、送信要求に対応する送信メッセージ格納用レジスタ１〜４に格納されたメッセージを読み出してＣＡＮバス２へ出力することによりメッセージ送信を行い（ステップＳ３８）、ステップＳ３１へ処理を戻す。
【００７５】
図７は、ＣＡＮコントローラ１５が行うメッセージ受信時の制限処理の手順を示すフローチャートであり、メッセージ受信に関する制限処理である。ＣＡＮコントローラ１５は、他のＥＣＵ１からのメッセージを受信したか否かを判定する（ステップＳ５１）。メッセージを受信していない場合（Ｓ５１：ＮＯ）、ＣＡＮコントローラ１５は、他のＥＣＵ１からのメッセージを受信するまで待機する。他のＥＣＵ１からのメッセージを受信した場合（Ｓ５１：ＹＥＳ）、ＣＡＮコントローラ１５は、自身の動作モードが制限モードであるか否かを判定する（ステップＳ５２）。
【００７６】
動作モードが制限モードである場合（Ｓ５２：ＹＥＳ）、ＣＡＮコントローラ１５は、他のＥＣＵ１から受信したメッセージに含まれるＣＡＮ−ＩＤを取得する（ステップＳ５３）。またＣＡＮコントローラ１５は、レジスタ群１６の受信許可設定レジスタ１〜４の値をチェックすると共に（ステップＳ５４）、受信識別情報設定用レジスタ１〜４の値をチェックする（ステップＳ５５）。ＣＡＮコントローラ１５は、使用が許可されている受信メッセージ格納用レジスタ１〜４に対して設定されたＣＡＮ−ＩＤと、受信メッセージから取得したＣＡＮ−ＩＤとが一致するか否かに基づいて、このメッセージの受信が許可されているか否かを判定する（ステップＳ５６）。
【００７７】
このメッセージの受信が許可されている場合（Ｓ５６：ＹＥＳ）、ＣＡＮコントローラ１５は、他のＥＣＵ１から受信したメッセージを、このメッセージのＣＡＮ−ＩＤが受信許可のＩＤとして設定された受信メッセージ格納用レジスタ１〜４に格納する（ステップＳ５７）。次いでＣＡＮコントローラ１５は、メッセージを格納した受信メッセージ格納用レジスタ１〜４に対応する受信完了レジスタ１〜４に受信完了の旨を示す情報を書き込んで（ステップＳ５８）、ステップＳ５１へ処理を戻す。このメッセージの受信が許可されていない場合（Ｓ５６：ＮＯ）、ＣＡＮコントローラ１５は、受信したメッセージを破棄して（ステップＳ５９）、ステップＳ５１へ処理を戻す。
【００７８】
また、動作モードが制限モードでない場合（Ｓ５２：ＮＯ）、即ち動作モードがフルコントロールモードである場合、ＣＡＮコントローラ１５は、他のＥＣＵ１から受信したメッセージを、受信メッセージ格納用レジスタ１〜４に格納し（ステップＳ５７）、対応する受信完了レジスタ１〜４に受信完了の旨を示す情報を書き込んで（ステップＳ５８）、ステップＳ５１へ処理を戻す。
【００７９】
以上の構成の本実施の形態に係るＥＣＵ１は、他のＥＣＵ１との通信に係る値を格納するレジスタ群１６を有するＣＡＮコントローラ１５と、このレジスタ群１６に対する値の書き込み及び読み出しを行って通信処理を行う処理部１０とを備える。ＥＣＵ１は、ＣＡＮコントローラ１５のレジスタ群１６に対する書き込み及び読み出しが可能なフルコントロールモード（第１モード）と、レジスタ群１６のうちの一部のレジスタに対する書き込み及び読み出しを制限（禁止）した制限モード（第２モード）との切り替えを行う。ＥＣＵ１は、起動から所定期間をフルコントロールモードとし、所定期間の経過後にフルコントロールモードから制限モードへの切り替えを行う。制限モードへの切り替えを行った後は、ＥＣＵ１はフルコントロールモードへの切り替えを行わない。
【００８０】
これにより、ＥＣＵ１の起動から所定期間の経過後は、ＣＡＮコントローラ１５の一部のレジスタに対する書き込み及び読み出しが制限された状態となる。通信に関するリソースの使用を制限することによって、ＥＣＵ１に注入された不正なプログラムによる通信リソースの不正な使用を制限することができる。よって本実施の形態に係るＥＣＵ１は、他のＥＣＵ１とのメッセージ送受信を行うＣＡＮコントローラ１５のレジスタの使用を制限することにより、不正なプログラムの注入によるネットワークへの不正なメッセージ送信を抑制することができる。
【００８１】
またＥＣＵ１は、起動後に処理部１０が実行するブートプログラム１１ａ（第１プログラム）を記憶したマスクＲＯＭ１１（第１記憶部）と、ブートプログラム１１ａの実行後に処理部１０が実行するアプリケーションプログラム１２ａ（第２プログラム）を記憶したＥＥＰＲＯＭ１２（第２記憶部）とを備える。フルコントロールモード及び制限モードの切り替えは、ブートプログラム１１ａを処理部１０が実行する期間を上記の所定期間として行う。即ち、ブートプログラム１１ａの実行はフルコントロールモードで行われ、アプリケーションプログラム１２ａの実行は制限モードで行われる。これにより、ＣＡＮコントローラ１５のレジスタ群１６の使用に制限のないフルコントロールモードでの動作を、マスクＲＯＭ１１に記憶したブートプログラム１１ａの実行期間に限定することができる。不正なプログラムがＥＥＰＲＯＭ１２に注入された場合であっても、ＥＥＰＲＯＭ１２に記憶された不正なプログラムの実行は、ＣＡＮコントローラ１５のレジスタ群１６の使用が制限された制限モードで行われる。
【００８２】
またＥＣＵ１のブートプログラム１１ａを記憶する記憶部には、記憶内容の書き換えが不可能なマスクＲＯＭ１１を用いる。マスクＲＯＭ１１には不正なプログラムを注入することが不可能であり、不正なプログラムがフルコントロールモードで実行されることがない。
【００８３】
またＥＣＵ１は、ブートプログラム１１ａを処理部１０にて実行することにより、制限モードにて書き込み及び読み出しを制限するレジスタをいずれとするかの設定を行う。例えばＥＣＵ１は、送信許可設定レジスタ１〜４に対する値の書き込みを行うことにより、制限モードへ切替後に使用可能な送信メッセージ格納用レジスタ１〜４をいずれとするかの設定を行う。また例えばＥＣＵ１は、受信許可設定レジスタ１〜４に対する値の書き込みを行うことにより、制限モードへ切替後に使用可能な受信メッセージ格納用レジスタ１〜４をいずれとするかの設定を行う。これにより制限モードにて使用を制限するレジスタを、自装置の処理内容などに適したものに設定することができる。また制限モードにて使用を制限するレジスタを下辺とすることができるため、ＣＡＮコントローラ１５の汎用性を高めることができる。
【００８４】
またＣＡＮコントローラ１５のレジスタ群１６には、他のＥＣＵ１へ送信するメッセージを格納するための４つの送信メッセージ格納用レジスタ１〜４を含む。処理部１０は、他のＥＣＵ１へ送信するメッセージをＣＡＮコントローラ１５の送信メッセージ格納用レジスタ１〜４に格納することによって、このメッセージの送信を行うことができる。制限モードにおいては、４つの送信メッセージ格納用レジスタ１〜４のうちの一又は複数に対する書き込み及び読み出しを制限する。これにより不正なプログラムによる送信メッセージ格納用レジスタ１〜４の使用を制限することができ、不正なメッセージ送信を制限することができる。
【００８５】
またＣＡＮコントローラ１５のレジスタ群１６には、送信メッセージ格納用レジスタ１〜４に格納されたメッセージをＣＡＮコントローラ１５が送信する周期の設定を格納する送信周期設定用レジスタ１〜４を含む。ＣＡＮコントローラ１５によるメッセージの送信は、送信周期設定用レジスタ１〜４に設定された周期より短い周期で行うことが制限（禁止）され、設定された周期より長い周期でしか行うことができない。これによりＥＣＵ１によるメッセージ送信の最低周期を定めることができ、この周期より短い周期で不正なプログラムが頻繁にメッセージ送信を繰り返すことを防止できる。
【００８６】
またＣＡＮコントローラ１５のレジスタ群１６には、送信メッセージ格納用レジスタ１〜４への格納を許可するメッセージのＣＡＮ−ＩＤに関する設定を格納する送信識別情報設定用レジスタ１〜４を含む。ＣＡＮコントローラ１５の送信メッセージ格納用レジスタ１〜４に対するメッセージの格納は、識別情報設定用レジスタ１〜４に設定されたＣＡＮ−ＩＤが付されたメッセージにのみ限定し、これ以外のＣＡＮ−ＩＤが付されたメッセージの格納を制限（禁止）する。これによりＥＣＵ１が送信するメッセージの種別などをＣＡＮ−ＩＤにより制限することができ、不正なプログラムが不正なＣＡＮ−ＩＤを付したメッセージを送信することを防止できる。
【００８７】
なお本実施の形態においては、車載の通信システムに含まれる各ＥＣＵ１がＣＡＮプロトコルに従った通信を行う構成としたが、これに限るものではない。各ＥＣＵ１が、ＣＡＮ以外のプロトコル、例えばＴＣＰ／ＩＰ、イーサネット（登録商標）又はＦｌｅｘＲａｙ等のプロトコルに従った通信を行う構成としてもよい。また車両に搭載される通信システムを例に説明を行ったが、これに限るものではなく、航空機若しくは船舶等の移動体に搭載される通信システム、又は、工場若しくはオフィス等に設置される通信システム等のように、車載以外の通信システムに対して本技術を適用してもよい。
【００８８】
また通信システムに含まれる全てのＥＣＵ１について、本実施の形態に示したレジスタ群１６の制限を行う機能が備えられていることが好ましいが、このような制限機能を含まないＥＣＵが通信システムに含まれていてもよい。またＥＣＵ１は、書き換え不可能な記憶部としてマスクＲＯＭ１１を備える構成としたが、これに限るものではない。例えば、紫外線照射によりデータの消去を行うことはできるが電気的なデータ書き換えを行うことができないＥＰＲＯＭ（Erasable Programmable Read Only Memory）、又は、ヒューズの切断など物理的な構成によりデータ書き換えが不可能となるＥＥＰＲＯＭ若しくはフラッシュメモリ等の不揮発性のメモリ素子等を、マスクＲＯＭ１１に代えて採用してもよい。またＥＣＵ１は、制限モードにおいてメッセージの送信及び受信の両方に対する制限を行う構成としたが、これに限るものではなく、メッセージ送信にのみ制限を行う構成としてもよい。
【００８９】
（実施の形態２）
図８は、実施の形態２に係る通信システムの構成を示すブロック図である。なお図８においては、図１において示した他のＥＣＵ１、センサ３及びアクチュエータ４等の図示を省略してある。実施の形態２に係る通信システムは、ＥＣＵ２０１に対して通信線２０６を介して接続される設定装置２０５を備えている。設定装置２０５は、例えば車輌のディーラ又は整備工場等において整備又は点検等を行う際に用いられる装置である。設定装置２０５をＥＣＵ２０１に接続することによって、ＣＡＮコントローラ１５のレジスタ群１６に対する値の書き込みを行うことができる。設定装置２０５は、液晶パネルなどの表示部２５１と、スイッチ又はタッチパネル等の操作部２５２とを有している。
【００９０】
実施の形態２に係るＥＣＵ２０１は、実施の形態１に係るＥＣＵ１が備えるマスクＲＯＭ１１を備えず、ブートプログラム１１ａをＥＥＰＲＯＭ１２に記憶している。ＥＣＵ２０１のＥＥＰＲＯＭ１２には、ブートプログラム１１ａ及びアプリケーションプログラム１２ａ等が記憶されている。
【００９１】
また実施の形態２に係るＥＣＵ２０１は、通信線２０６を介して設定装置２０５を接続するためのコネクタ２１７を備えている。実施の形態２に係るＥＣＵ２０１は、コネクタ２１７を介して認証された設定装置２０５が接続された場合、ＣＡＮコントローラ１５のレジスタ群１６の書き込みが制限されているレジスタに対して、値の書き込みを行うことが可能となる。
【００９２】
また実施の形態２に係るＥＣＵ２０１は、ＲＯＭ２１８を備えている。ＲＯＭ２１８は、マスクＲＯＭ又はＥＥＰＲＯＭ等を用いて構成される。ただしＲＯＭ２１８は、例えばＥＥＰＲＯＭなどのデータ書き換え可能なメモリ素子を用いて構成されている場合であっても、ＥＣＵ２０１の通常動作時においてデータの書き換えを行うことはできない。ＲＯＭ２１８には、認証プログラム２１８ａ及び認証情報２１８ｂ等が記憶されている。認証プログラム２１８ａは、コネクタ２１７に設定装置２０５が接続された場合に処理部１０が実行するプログラムであり、設定装置２０５との間で認証処理を行う。認証情報２１８ｂは、認証プログラム２１８ａが設定装置２０５との間で認証処理を行うための情報であり、例えば装置のＩＤ及びパスワード等の情報である。
【００９３】
実施の形態２に係るＥＣＵ２０１は、通常動作において、常に制限モードでの動作を行っている。即ち電源投入などにより起動したＥＣＵ２０１は、起動後に制限モードで動作を開始し、通常の動作を行っている限りにおいて、その後にフルコントロールモードへ切り替えられることはない。よってＥＣＵ２０１は、ブートプログラム１１ａ及びアプリケーションプログラム１２ａの実行を制限モードで行うため、ブートプログラム１１ａにはＣＡＮコントローラ１５のレジスタ群１６に対する設定処理は含まれていない。実施の形態２に係るＥＣＵ２０１は、コネクタ２１７に設定装置２０５が接続された場合にのみ、ＣＡＮコントローラ１５をフルコントロールモードで動作させることが可能となる。
【００９４】
実施の形態２に係るＥＣＵ２０１は、コネクタ２１７に設定装置２０５が接続されたことを検出した場合、処理部１０がＲＯＭ２１８から認証プログラム２１８ａを読み出して実行することにより、設定装置２０５との間で認証処理を行う。ＥＣＵ２０１は、ＲＯＭ２１８に記憶された認証情報２１８ｂに基づいて認証処理を行い、認証処理に成功した場合にのみ、ＣＡＮコントローラ１５の動作モードを制限モードからフルコントロールモードへ切り替える操作を受け付ける。
【００９５】
認証処理に成功した場合、設定装置２０５を操作する操作者は、ＥＣＵ２０１に関する各種の情報を取得して表示部２５１に表示させることができ、ＥＣＵ２０１に関する各種の設定変更の操作を操作部２５２にて行うことができる。また実施の形態２に係る設定装置２０５は、ＥＣＵ２０１のＣＡＮコントローラ１５の動作モードの切り替えを行うことができ、フルコントロールモードへの切り替えを行うことでレジスタ群１６への値の書き込みを行うことができる。
【００９６】
設定装置２０５の操作部２５２に対してモード切替の操作がなされた場合、この操作内容が設定装置２０５からコネクタ２１７を介してＥＣＵ２０１の処理部１０へ与えられる。これによりＥＣＵ２０１の処理部１０は、モードの切替操作を受け付ける。ＥＣＵ２０１は、設定装置２０５からフルコントロールモードへの切替操作を受け付けた場合に、制限モードからフルコントロールモードへの切り替えを行う。フルコントロールモードにおいてＥＣＵ２０１は、設定装置２０５との間で通信線２０６を介した通信を行い、ＣＡＮコントローラ１５のレジスタ群１６に対する値の書込要求を受け付けて、要求された値をレジスタ群１６のレジスタに対して書き込む。
【００９７】
またＥＣＵ２０１は、設定装置２０５から制限モードへの切替操作を受け付けた場合に、フルコントロールモードから制限モードへの切り替えを行う。なおＥＣＵ２０１は、例えば設定装置２０５の接続が解除された場合、又は、フルコントロールモードへの切り替えから所定時間が経過した場合等に、設定装置２０５から制限モードへの切替操作を受け付けていなくとも、フルコントロールモードから制限モードへの切り替えを自動的に行う構成としてよい。
【００９８】
図９は、実施の形態２に係るＥＣＵ２０１が行うモード切替処理の手順を示すフローチャートである。実施の形態２に係るＥＣＵ２０１の処理部１０は、コネクタ２１７に対する設定装置２０５の接続を検知したか否かを判定する（ステップＳ７１）。接続を検知していない場合（Ｓ７１：ＮＯ）、処理部１０は、接続を検知するまで待機する。
【００９９】
設定装置２０５の接続を検知した場合（Ｓ７１：ＹＥＳ）、処理部１０は、ＲＯＭ２１８に記憶された認証プログラム２１８ａを実行し、ＲＯＭ２１８に記憶された認証情報２１８ｂを用いて、設定装置２０５との間で認証処理を行う（ステップＳ７２）。処理部１０は、認証処理に成功したか否かを判定する（ステップＳ７３）。認証処理に成功していない場合（Ｓ７３：ＮＯ）、処理部１０は、設定装置２０５に対してエラーを通知し（ステップＳ７４）、処理を終了する。
【０１００】
認証処理に成功した場合（Ｓ７３：ＹＥＳ）、処理部１０は、設定装置２０５の操作部２５２に対する操作の有無を検知することにより、操作の受け付けを行う（ステップＳ７５）。処理部１０は、受け付けた操作が動作モードの切替操作であるか否かを判定する（ステップＳ７６）。切替操作である場合（Ｓ７６：ＹＥＳ）、処理部１０は、受け付けた操作内容に応じて、制限モードからフルコントロールモードへ又はフルコントロールモードから制限モードへのモード切替を行い（ステップＳ７７）、ステップＳ７５へ処理を戻す。受け付けた操作が切替操作ではない場合（Ｓ７６：ＮＯ）、処理部１０は、例えばＣＡＮコントローラ１５のレジスタ群１６に対する値の書込など、受け付けた操作内容に応じた他の処理を行って（ステップＳ７８）、ステップＳ７５へ処理を戻す。
【０１０１】
以上の構成の実施の形態２に係るＥＣＵ２０１は、明示的なモード切替の操作が行われた場合には、制限モード及びフルコントロールモードの切り替えを行う。これにより、例えば車両の試験、製造又は整備等の際に、ＣＡＮコントローラ１５のレジスタ群１６に対する値の書き込みを行うことが可能となる。
【０１０２】
またＥＣＵ２０１は、通信線２０６を介して設定装置２０５を接続するためのコネクタ２１７を備える。設定装置２０５には操作部２５２が設けられ、ＥＣＵ２０１のモード切替に関する操作を行うことができる。ＥＣＵ２０１は、設定装置２０５の操作部２５２にてなされた操作を、コネクタ２１７を介して受け付け、受け付けた操作に応じてモード切替を行うことができる。
【０１０３】
またＥＣＵ２０１は、コネクタ２１７に接続された設定装置２０５との間で認証処理を行う。ＥＣＵ２０１は、認証処理に成功した場合にのみ、モード切替に係る操作の受け付けを行う。これにより、コネクタ２１７に接続される外部の装置を用いたＣＡＮコントローラ１５のレジスタ群１６に対する値の書き換えが困難化される。
【０１０４】
なお実施の形態２においては、ＥＣＵ２０１がマスクＲＯＭを備えず、ブートプログラム１１ａをＥＥＰＲＯＭ１２に記憶する構成としたが、これに限るものではない。ＥＣＵ２０１は、実施の形態１に係るＥＣＵ１と同様に、ブートプログラム１１ａを記憶したマスクＲＯＭ１１を備える構成としてもよい。この構成の場合、ＥＣＵ２０１は、実施の形態１にて説明した起動から所定期間経過後のモード切替と、実施の形態２にて説明した設定装置２０５による切替操作に基づくモード切替との両方を行う構成としてもよい。
【０１０５】
またＥＣＵ２０１は、設定装置２０５の接続検知に応じて認証処理を行い、認証処理に成功した場合には自動的に制限モードからフルコントロールモードへ切り替えを行う構成としてもよい。この構成の場合には、設定装置２０５をＥＣＵ２０１に接続するという操作が、モード切替のための明示的な操作に相当する。また認証処理後にモードの切替操作を受け付けるプログラムは、認証プログラム２１８ａであってもよく、これ以外のプログラムであってもよい。ただしモードの切替操作を受け付けてモード切替を行うプログラムは、ＲＯＭ２１８に記憶されていることが好ましい。
【０１０６】
またＥＣＵ２０１は、コネクタ２１７に通信線２０６を介して設定装置２０５を接続する構成としたが、これに限るものではない。例えばＥＣＵ２０１は、設定装置２０５との間で無線通信を行う構成としてもよい。また例えば、設定装置２０５を接続するのではなく、ＥＣＵ２０１に操作部を設けてモード切替の操作を受け付ける構成としてもよい。
【０１０７】
また、実施の形態２に係る通信システムのその他の構成は、実施の形態１に係る通信システムの構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【符号の説明】
【０１０８】
１  ＥＣＵ（通信装置）
２  ＣＡＮバス
３  センサ
４  アクチュエータ
１０  処理部
１１  マスクＲＯＭ（第１記憶部）
１１ａ  ブートプログラム（通信制限プログラム）
１２  ＥＥＰＲＯＭ（第２記憶部）
１２ａ  アプリケーションプログラム
１３  ＲＡＭ
１４  入出力部
１５  ＣＡＮコントローラ（通信部、規制部、制限部）
１６  レジスタ群（複数のレジスタ）
２０１  ＥＣＵ（通信装置）
２０５  設定装置（外部装置）
２１７  コネクタ（接続部）
２１８  ＲＯＭ
２１８ａ  認証プログラム
２１８ｂ  認証情報
２５１  表示部
２５２  操作部
【図１】
0006284903.tif 000002
【図２】
0006284903.tif 000003
【図３】
0006284903.tif 000004
【図４】
0006284903.tif 000005
【図５】
0006284903.tif 000006
【図６】
0006284903.tif 000007
【図７】
0006284903.tif 000008
【図８】
0006284903.tif 000009
【図９】
0006284903.tif 000010