特許第6284903号(P6284903)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人名古屋大学の特許一覧 ▶ 株式会社オートネットワーク技術研究所の特許一覧 ▶ 住友電装株式会社の特許一覧 ▶ 住友電気工業株式会社の特許一覧

<>
  • 特許6284903-通信装置及び通信制限プログラム 図000002
  • 特許6284903-通信装置及び通信制限プログラム 図000003
  • 特許6284903-通信装置及び通信制限プログラム 図000004
  • 特許6284903-通信装置及び通信制限プログラム 図000005
  • 特許6284903-通信装置及び通信制限プログラム 図000006
  • 特許6284903-通信装置及び通信制限プログラム 図000007
  • 特許6284903-通信装置及び通信制限プログラム 図000008
  • 特許6284903-通信装置及び通信制限プログラム 図000009
  • 特許6284903-通信装置及び通信制限プログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6284903
(24)【登録日】2018年2月9日
(45)【発行日】2018年2月28日
(54)【発明の名称】通信装置及び通信制限プログラム
(51)【国際特許分類】
   H04L 12/28 20060101AFI20180215BHJP
   G06F 12/14 20060101ALI20180215BHJP
   B60R 16/023 20060101ALI20180215BHJP
   H04L 29/06 20060101ALI20180215BHJP
【FI】
   H04L12/28 200M
   G06F12/14 510A
   B60R16/023 P
   H04L13/00 305C
【請求項の数】13
【全頁数】24
(21)【出願番号】特願2015-100994(P2015-100994)
(22)【出願日】2015年5月18日
(65)【公開番号】特開2016-219944(P2016-219944A)
(43)【公開日】2016年12月22日
【審査請求日】2017年6月19日
(73)【特許権者】
【識別番号】504139662
【氏名又は名称】国立大学法人名古屋大学
(73)【特許権者】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(73)【特許権者】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(73)【特許権者】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】本田 晋也
(72)【発明者】
【氏名】高田 広章
(72)【発明者】
【氏名】倉地 亮
(72)【発明者】
【氏名】上田 浩史
【審査官】 大石 博見
(56)【参考文献】
【文献】 特開平8−180001(JP,A)
【文献】 特開平5−173920(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28
B60R 16/023
G06F 12/14
H04L 29/06
(57)【特許請求の範囲】
【請求項1】
他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える通信装置において、
前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しが制限されていること
を特徴とする通信装置。
【請求項2】
前記複数のレジスタに対する値の書き込み及び読み出しが可能な第1モードと、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第2モードとを切り替える切替部を備えること
を特徴とする請求項1に記載の通信装置。
【請求項3】
前記切替部は、前記第1モードから前記第2モードへの切替を行った後、前記第2モードから前記第1モードへの切り替えを行わないようにしてあること
を特徴とする請求項2に記載の通信装置。
【請求項4】
前記切替部は、
自装置の起動から所定期間を前記第1モードとし、
前記所定期間の経過後に前記第1モードから前記第2モードへの切替を行い、
該切替後は前記第2モードから前記第1モードへの切り替えを行わないようにしてあること
を特徴とする請求項2又は請求項3に記載の通信装置。
【請求項5】
前記第2モードにおいて書き込みが制限されるレジスタに値を書き込むプログラムを記憶した記憶部を備え、
前記処理部は、自装置の起動後に前記プログラムを実行し、
前記切替部は、前記プログラムを前記処理部が実行する期間を前記所定期間として切り替えを行うようにしてあること
を特徴とする請求項4に記載の通信装置。
【請求項6】
前記複数のレジスタには、前記通信部が他装置へ送信するメッセージを格納する複数の送信メッセージ格納用レジスタを含み、
前記第2モードにおいて前記複数の送信メッセージ格納用レジスタのうちの一又は複数の送信メッセージ格納用レジスタに対する書き込みを制限するようにしてあること
を特徴とする請求項2乃至請求項5のいずれか1つに記載の通信装置。
【請求項7】
前記複数のレジスタには、前記送信メッセージ格納用レジスタに格納されたメッセージを前記通信部が送信する周期の設定を格納する送信周期設定用レジスタを含み、
前記送信周期設定用レジスタに格納された周期の設定よりも短い周期でのメッセージ送信を規制する規制部を備えること
を特徴とする請求項6に記載の通信装置。
【請求項8】
前記メッセージには、該メッセージを識別するための識別情報を含み、
前記複数のレジスタには、該送信メッセージ格納用レジスタへの格納を許可する識別情報の設定を格納する識別情報設定用レジスタを含み、
前記識別情報設定用レジスタに格納された識別情報以外のメッセージの前記送信メッセージ格納用レジスタへの格納を制限する制限部を備えること
を特徴とする請求項6又は請求項7に記載の通信装置。
【請求項9】
前記第1モード及び前記第2モードの切り替えに係る操作を受け付ける操作受付部を更に備え、
前記切替部は、前記操作受付部が受け付けた操作に応じて切り替えを行うようにしてあること
を特徴とする請求項2乃至請求項8のいずれか1つに記載の通信装置。
【請求項10】
外部装置を接続する接続部を更に備え、
前記操作受付部は、前記接続部に接続された外部装置に対してなされた操作を、前記接続部を介して受け付けるようにしてあること
を特徴とする請求項9に記載の通信装置。
【請求項11】
前記接続部に接続された外部装置との間で認証処理を行う認証処理部を更に備え、
前記操作受付部は、前記認証処理部による認証処理に成功した場合に、操作受付を行うようにしてあること
を特徴とする請求項10に記載の通信装置。
【請求項12】
他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える通信装置において、
前記複数のレジスタに対する値の書き込み及び読み出しが可能な第1モード、並びに、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第2モードを切り替える切替部を備え、
前記処理部は、
前記第2モードにおいて書き込みが制限されるレジスタに対して値を書き込み、
該レジスタに対する値の書き込み後に、前記切替部により前記第1モードから前記第2モードへの切り替えを行わせるようにしてあること
を特徴とする通信装置。
【請求項13】
他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部と、前記複数のレジスタに対する値の書き込み及び読み出しが可能な第1モード、並びに、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第2モードを切り替える切替部を備える通信装置を、
前記第2モードにおいて書き込みが制限されるレジスタに対して値を書き込む手段と、
該レジスタに対する値の書き込み後に、前記切替部により前記第1モードから前記第2モードへの切り替えを行わせる手段
として動作させること
を特徴とする通信制限プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに対する不正なメッセージの送信を防止する通信装置及び通信制限プログラムに関する。
【背景技術】
【0002】
近年、車両に搭載されるECU(Electronic Control Unit)は高機能化しており、これに伴ってECUにて実行されるプログラムも複雑化している。また車両には複数のECUが搭載され、これらがCAN(Controller Area Network)などのネットワークを介して接続されている。複数のECUは、ネットワークを介して情報を交換しながら処理を進めている。
【0003】
特許文献1においては、CANシステムの第1ノードがフレームの受信に失敗してエラーパッシブ状態となっている場合に再送要求フレームを送信し、第2ノードがCANバスに対して送信されたフレームを記憶しておき、再送が要求されたフレームを第1ノードへ再送することにより、耐障害性の向上を目指したCANシステムが記載されている。
【0004】
特許文献2においては、CANコントローラがフレームの入力からCANバスへの送信開始までの送信レイテンシを計測し、このフレームに送信レイテンシに関する情報を含めて送信を行うと共に、このフレームを受信したCANコントローラが送信レイテンシに応じて実行すべき処理を決定する構成とすることにより、フレームの受信側における誤動作を防止することを目的とした通信システムが記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2014−86812号公報
【特許文献2】特開2011−103577号公報
【非特許文献】
【0006】
【非特許文献1】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.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら非特許文献1においては、ECUに不正なプログラムを注入することによって、車両内のネットワークへ不正なメッセージ送信を行うことが可能であることが報告されている。不正なプログラムによる不正なメッセージ送信が行われることにより、ネットワークに接続された他のECUに誤動作などが発生する虞がある。このような不正なメッセージ送信に対しては、特許文献1に記載のCANシステム及び特許文献2に記載の通信システムでは有効な対策となり得なかった。
【0008】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、不正なプログラムの注入によるネットワークへの不正なメッセージ送信を抑制し得る通信装置及び通信制限プログラムを提供することにある。
【課題を解決するための手段】
【0009】
本発明に係る通信装置は、他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える通信装置において、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しが制限されていることを特徴とする。
【0010】
また、本発明に係る通信装置は、前記複数のレジスタに対する値の書き込み及び読み出しが可能な第1モードと、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第2モードとを切り替える切替部を備えることを特徴とする。
【0011】
また、本発明に係る通信装置は、前記切替部は、前記第1モードから前記第2モードへの切替を行った後、前記第2モードから前記第1モードへの切り替えを行わないようにしてあることを特徴とする。
【0012】
また、本発明に係る通信装置は、前記切替部が、自装置の起動から所定期間を前記第1モードとし、前記所定期間の経過後に前記第1モードから前記第2モードへの切替を行い、該切替後は前記第2モードから前記第1モードへの切り替えを行わないようにしてあることを特徴とする。
【0013】
また、本発明に係る通信装置は、前記第2モードにおいて書き込みが制限されるレジスタに値を書き込むプログラムを記憶した記憶部を備え、前記処理部は、自装置の起動後に前記プログラムを実行し、前記切替部は、前記プログラムを前記処理部が実行する期間を前記所定期間として切り替えを行うようにしてあることを特徴とする。
【0014】
また、本発明に係る通信装置は、前記複数のレジスタには、前記通信部が他装置へ送信するメッセージを格納する複数の送信メッセージ格納用レジスタを含み、前記第2モードにおいて前記複数の送信メッセージ格納用レジスタのうちの一又は複数の送信メッセージ格納用レジスタに対する書き込みを制限するようにしてあることを特徴とする。
【0015】
また、本発明に係る通信装置は、前記複数のレジスタには、前記送信メッセージ格納用レジスタに格納されたメッセージを前記通信部が送信する周期の設定を格納する送信周期設定用レジスタを含み、前記送信周期設定用レジスタに格納された周期の設定よりも短い周期でのメッセージ送信を規制する規制部を備えることを特徴とする。
【0016】
また、本発明に係る通信装置は、前記メッセージには、該メッセージを識別するための識別情報を含み、前記複数のレジスタには、該送信メッセージ格納用レジスタへの格納を許可する識別情報の設定を格納する識別情報設定用レジスタを含み、前記識別情報設定用レジスタに格納された識別情報以外のメッセージの前記送信メッセージ格納用レジスタへの格納を制限する制限部を備えることを特徴とする。
【0017】
また、本発明に係る通信装置は、前記第1モード及び前記第2モードの切り替えに係る操作を受け付ける操作受付部を更に備え、前記切替部は、前記操作受付部が受け付けた操作に応じて切り替えを行うようにしてあることを特徴とする。
【0018】
また、本発明に係る通信装置は、外部装置を接続する接続部を更に備え、前記操作受付部は、前記接続部に接続された外部装置に対してなされた操作を、前記接続部を介して受け付けるようにしてあることを特徴とする。
【0019】
また、本発明に係る通信装置は、前記接続部に接続された外部装置との間で認証処理を行う認証処理部を更に備え、前記操作受付部は、前記認証処理部による認証処理に成功した場合に、操作受付を行うようにしてあることを特徴とする。
【0020】
また、本発明に係る通信装置は、他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える通信装置において、前記複数のレジスタに対する値の書き込み及び読み出しが可能な第1モード、並びに、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第2モードを切り替える切替部を備え、前記処理部は、前記第2モードにおいて書き込みが制限されるレジスタに対して値を書き込み、該レジスタに対する値の書き込み後に、前記切替部により前記第1モードから前記第2モードへの切り替えを行わせるようにしてあることを特徴とする。
【0021】
また、本発明に係る通信制限プログラムは、他装置との通信に係る値を格納する複数のレジスタを有する通信部と、該通信部のレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部と、前記複数のレジスタに対する値の書き込み及び読み出しが可能な第1モード、並びに、前記複数のレジスタのうちの一部のレジスタに対する値の書き込み又は読み出しを制限した第2モードを切り替える切替部を備える通信装置を、前記第2モードにおいて書き込みが制限されるレジスタに対して値を書き込む手段と、該レジスタに対する値の書き込み後に、前記切替部により前記第1モードから前記第2モードへの切り替えを行わせる手段として動作させることを特徴とする。
【0022】
本発明において通信装置は、他装置との通信に係る値を格納する複数のレジスタを有する通信部と、このレジスタに対する値の書き込み及び読み出しを行って通信処理を行う処理部とを備える。例えばCANプロトコルに従った通信を行う通信装置の場合、通信部をCANコントローラとし、処理部をCPU(Central Processing Unit)などとすることができる。ただし本発明の適用はCANプロトコルに限定されるものではなく、これ以外の有線又は無線の種々の通信プロトコルに適用することができる。
本発明においては、通信部のレジスタに対する書き込み及び読み出しが可能な第1モードと、これらのうちの一部のレジスタに対する書き込み及び読み出しを制限した第2モードとの切り替えを行う。通信装置の起動から所定期間を第1モードとし、所定期間の経過後に第1モードから第2モードへの切り替えを行う。第2モードへの切り替えを行った後は、第1モードへの切り替えは行わない。
これにより、通信装置の起動から所定期間の経過後は、通信部の一部のレジスタに対する書き込み及び読み出しが制限された状態となる。このような通信に関するリソースの使用を制限することによって、通信装置に注入された不正なプログラムによる通信リソースの不正な使用を制限することができる。
【0023】
また本発明においては、通信装置の起動後に処理部が実行する第1プログラムを記憶した第1記憶部と、第1プログラムの実行後に処理部が実行する第2プログラムを記憶した第2記憶部とを通信装置が備える。第1モード及び第2モードの切り替えは、第1プログラムを処理部が実行する期間を上記の所定期間として行う。即ち、第1プログラムの実行は第1モードで行われ、第2プログラムの実行は第2モードで行われる。これにより、通信部のレジスタの使用に制限のない第1モードでの動作を、第1記憶部に記憶した第1プログラムの実行期間に限定することができる。不正なプログラムが第2記憶部に注入された場合であっても、第2記憶部に記憶された不正プログラムの実行は、通信部のレジスタの使用が制限された第2モードで行われる。
【0024】
また本発明においては、第1記憶部を記憶内容の書き換えが不可能な構成とする。例えば、第1記憶部をマスクROM(Read Only Memory)などの書き換え不可能なメモリ素子を用いて構成する。これにより第1記憶部には不正なプログラムを注入することが不可能となり、不正なプログラムが第1モードで実行されることがなくなる。
【0025】
また本発明においては、第1プログラムの実行により、第2モードにて書き込み及び読み出しを制限するレジスタをいずれとするかの設定を行う。これにより第2モードにて使用を制限するレジスタを自装置の処理内容などに適したものに設定することができると共に、使用を制限するレジスタを可変とすることで通信部の汎用性を高めることができる。
【0026】
また本発明においては、通信部の複数のレジスタに、他装置へ送信するメッセージを格納するための複数の送信メッセージ格納用レジスタを含む。処理部は、他装置へ送信するメッセージを通信部の送信メッセージ格納用レジスタに格納することによって、このメッセージの送信を行うことができる。第2モードにおいては、複数の送信メッセージ格納用レジスタのうちの一又は複数に対する書き込み及び読み出しを制限する。これにより不正なプログラムによる送信メッセージ格納用レジスタの使用を制限することができ、不正なメッセージ送信を制限することができる。
【0027】
また本発明においては、通信部の複数のレジスタに、送信メッセージ格納用レジスタに格納されたメッセージを通信部が送信する周期の設定を格納する送信周期設定用レジスタを含む。通信部によるメッセージ送信は、送信周期設定用レジスタに設定された周期より短い周期で行うことが制限され、設定された周期より長い周期でしか行うことができない。これにより通信装置によるメッセージ送信の最低周期を定めることができ、この周期より短い周期で不正なプログラムが頻繁にメッセージ送信を繰り返すことを防止できる。
【0028】
また本発明においては、通信装置が送受信するメッセージには、このメッセージを識別する識別情報を含む。識別情報は、例えばCANプロトコルにおいてメッセージに付されるCAN−IDとすることができる。通信部の複数のレジスタには、送信メッセージ格納用レジスタへの格納を許可するメッセージの識別情報に関する設定を格納する識別情報設定用レジスタを含む。通信部の送信メッセージ格納用レジスタに対するメッセージの格納は、識別情報設定用レジスタに設定された識別情報が付されたメッセージのみに限定し、これ以外の識別情報が付されたメッセージの格納を制限する。これにより通信装置が送信するメッセージの種別などを識別情報により制限することができ、不正なプログラムが不正な識別情報を付したメッセージを送信することを防止できる。
【0029】
また本発明においては、明示的なモード切替の操作が行われた場合には、第1モード及び第2モードの切り替えを行う。これにより、例えば車両の試験、製造又は整備等の際にレジスタに対する値の書き込みを行うことが可能となる。
【0030】
また本発明においては、通信装置に外部装置を接続することが可能な接続部を設ける。外部装置にはスイッチ又はタッチパネル等による操作部が設けられ、通信装置のモード切替に関する操作を行うことができる。通信装置は、外部装置にてなされた操作を、接続部を介して受け付け、受け付けた操作に応じてモード切替を行うことができる。
【0031】
また本発明においては、通信装置及び外部装置の間で認証処理を行う。通信装置は、認証処理に成功した場合にのみ、モード切替に係る操作の受け付けを行う。これにより、接続部に接続された外部装置によるレジスタの値の書き換えが困難化される。
【発明の効果】
【0032】
本発明による場合は、他装置とのメッセージ送受信を行う通信部のレジスタの使用を制限することにより、不正なプログラムの注入によるネットワークへの不正なメッセージ送信を抑制することができる。
【図面の簡単な説明】
【0033】
図1】本実施の形態に係る通信システムの構成を示すブロック図である。
図2】レジスタ群の一構成例を示す模式図である。
図3】ECUの処理部が起動時に行う処理の手順を示すフローチャートである。
図4】ECUのCANコントローラが行うモード切替処理の手順を示すフローチャートである。
図5】CANコントローラが行う制限処理の手順を示すフローチャートである。
図6】CANコントローラが行う制限処理の手順を示すフローチャートである。
図7】CANコントローラが行う制限処理の手順を示すフローチャートである。
図8】実施の形態2に係る通信システムの構成を示すブロック図である。
図9】実施の形態2に係るECUが行うモード切替処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0034】
(実施の形態1)
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。図1は、本実施の形態に係る通信システムの構成を示すブロック図である。本実施の形態に係る通信システムは、図示しない車両に搭載された複数のECU(通信装置)1がCANバス2に接続され、このCANバス2を介して複数のECU1が通信を行う構成である。なお複数のECU1は通信機能に関して略同じ構成であるため、図1においては一つのECU1について詳細構成を示し、他のECU1については詳細構成の図示を省略してある。
【0035】
ECU1は、処理部10、マスクROM(第1記憶部)11、EEPROM(第2記憶部)12、RAM13、入出力部14及びCANコントローラ(通信部)15等を備えて構成されている。処理部10は、CPU(Central Processing Unit)又はMPU(Micro-Processing Unit)等の演算処理装置を用いて構成されている。処理部10は、マスクROM11に記憶されたブートプログラム11a及びEEPROM12に記憶されたアプリケーションプログラム12a等を読み出して実行することにより、種々の演算処理及び制御処理等を行う。
【0036】
マスクROM11は、記憶されている情報(プログラム及びデータ等)を書き換えることができない不揮発性のメモリ素子である。本実施の形態においてマスクROM11には、処理部10が実行するブートプログラム11aが予め記憶されている。ブートプログラム11aは、ECU1の起動後に処理部10によって最初に実行されるプログラムである。処理部10は、ブートプログラム11aを実行することにより、ECU1が有するハードウェア及びソフトウェアのリソースの初期化並びに動作条件の設定等の処理を行う。なおECU1の起動には、ECU1に対する電力供給が開始され、例えばパワーオンリセットの解除などがなされて各部の動作が開始されること、及び、例えばユーザがリセットスイッチなどに対する操作を行うことによってECU1の動作を初期化し、その後にリセットが解除されて各部の動作が開始されること(いわゆる再起動)等を含む。
【0037】
EEPROM12は、データ書き換えが可能な不揮発性のメモリ素子である。本実施の形態においてEEPROM12には、処理部10が実行するアプリケーションプログラム12aが記憶される。アプリケーションプログラム12aは、各ECU1に特有の機能を実現するための処理を行うプログラムであり、例えばバージョンアップ又は不具合の修正等によりプログラムの一部又は全部が書き換えられ得る。処理部10は、起動後にブートプログラム11aの処理を行い、その後にアプリケーションプログラム12aの処理を行う。
【0038】
RAM13は、例えばSRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)等の揮発性のメモリ素子である。RAM13は、処理部10の処理過程において発生した各種のデータを一時的に記憶する。
【0039】
入出力部14は、例えば車両に搭載された各種のセンサ3などから入力される信号の受け付け、及び、各種のアクチュエータ4などへの制御信号などの出力等を行う。入出力部14は、センサ3及びアクチュエータ4等と信号線を介してそれぞれ接続され、この信号線を介して信号の入出力を行う。入出力部14は、例えばセンサ3からのアナログの入力信号をサンプリングしてデジタルのデータに変換して処理部10へ与える。また入出力部14は、処理部10から与えられた制御命令に応じてアクチュエータ4に対する制御信号を出力する。なおECU1は、センサ3及びアクチュエータ4等との間の信号入出力の両機能を備えている必要はなく、入力又は出力のいずれか一方のみの機能を備える構成であってもよく、入出力の機能を備えていない構成であってもよい。
【0040】
CANコントローラ15は、処理部10の制御に応じて、車両に搭載された他のECU1との間でCANバス2を介したメッセージの送受信を行う。CANコントローラ15は、例えば処理部10から与えられた送信用のメッセージをCANプロトコルに従ったドミナント/レセシブの2値信号としてCANバス2へ出力することにより、メッセージ送信を行う。CANコントローラ15は、CANバス2の電位をサンプリングすることでCANバス2上の信号を取得し、メッセージの受信を行う。処理部10は、CANコントローラ15が受信したメッセージを取得して処理を行うことができる。またCANコントローラ15は、CANバス2へのメッセージ送信の衝突検知、及び、衝突が発生した場合のメッセージ送信順位の調停処理等を行う。
【0041】
また本実施の形態に係るCANコントローラ15は、レジスタ群16を有している。図2は、レジスタ群16の一構成例を示す模式図である。本実施の形態に係るCANコントローラ15が有するレジスタ群16には、例えばモードレジスタ、送信要求レジスタ1〜4、送信キャンセルレジスタ1〜4、送信完了レジスタ1〜4、送信キャンセル完了レジスタ1〜4、受信完了レジスタ1〜4、送信メッセージ格納用レジスタ1〜4、送信許可設定用レジスタ1〜4、送信周期設定用レジスタ1〜4、送信識別情報設定用レジスタ1〜4、受信メッセージ格納用レジスタ1〜4、受信許可設定用レジスタ1〜4、及び、受信識別情報設定用レジスタ1〜4等の複数のレジスタを含んでいる。なお図2に示すレジスタは一例であって、これに限るものではなく、CANコントローラ15は図示しない種々のレジスタを有していてよく、図示したレジスタのいくつかを有していない構成であってもよい。また図2においては、レジスタに対する読み出しのみが可能であるものを”R可”と示し、読み出し及び書き込みが可能であるものを”R/W可”と示し、読み出し及び書き込みが不可能であるものを”R/W不可”と示してある。
【0042】
CANコントローラ15のレジスタ群16は、一次元のアドレスが各レジスタに付されている。図示の例では、16進数で0x000〜0x030のアドレスが各レジスタに対して付されている。処理部10は、アドレスを指定して読出命令をCANコントローラ15に対して与えることにより、アドレスで指定されたレジスタに格納された値の読み出しを行うことができる。また処理部10は、アドレス及びデータを指定して書込命令をCANコントローラ15に対して与えることにより、アドレスで指定されたレジスタに対するデータの書き込みを行うことができる。ただし本実施の形態においては、レジスタに対する値の読み出しのみが許可されている場合、並びに、レジスタに対する読み出し及び書き込みが共に許可されていない場合があり、このようなレジスタに対する読出命令又は書き込み命令に対してCANコントローラ15は処理部10へエラーを通知する。
【0043】
また、本実施の形態に係るCANコントローラ15は、フルコントロールモード及び制限モードの2種の動作モードで動作する。フルコントロールモードは、レジスタ群16の全てのレジスタに対するアクセス(読み出しのみ可能なレジスタに対しては読み出し、読み出し及び書き込みが可能レジスタに対しては読み出し及び書き込み)を処理部10が行うことができるモードである。これに対して制限モードは、レジスタ群16の一部のレジスタに対する処理部10のアクセスが制限され(不可能となり)、許可されたレジスタへのアクセスのみを行うことができるモードである。ECU1の起動直後、即ちCANコントローラ15の起動直後には、CANコントローラ15はフルコントロールモードで動作する。
【0044】
レジスタ群16のモードレジスタは、CANコントローラ15の動作モードの切り替えを行うためのレジスタである。処理部10がモードレジスタに対して所定の値を書き込むことによって、CANコントローラ15の動作モードがフルコントロールモードから制限モードへ切り替えられる。また制限モードにおいては、モードレジスタに対する値の書き込みを行うことができない。このため、処理部10は、CANコントローラ15の動作モードをフルコントロールモードから制限モードへ切り替えることはできるが、制限モードからフルコントロールモードへ切り替えることはできない。
【0045】
CANコントローラ15は、他のECU1へ送信するメッセージを格納するための4つのレジスタ(送信メッセージ格納用レジスタ1〜4)を有している。処理部10は、送信メッセージ格納用レジスタ1〜4のいずれかにメッセージを書き込み、更に対応する送信要求レジスタ1〜4へ送信要求を書き込むことによって、CANコントローラ15に対してメッセージ送信を行わせることができる。また処理部10は、対応する送信キャンセルレジスタ1〜4へキャンセル要求を書き込むことによって、メッセージ送信の完了前に送信をキャンセルすることができる。
【0046】
レジスタ群16の送信完了レジスタ1〜4及びキャンセル完了レジスタ1〜4は、CANコントローラ15が値を書き込むレジスタである。CANコントローラ15は、処理部10の送信要求に応じてメッセージ送信を行い、送信を完了した場合に対応する送信完了レジスタ1〜4に対して送信完了を示す値を書き込む。またCANコントローラ15は、処理部10のキャンセル要求に応じてメッセージ送信を中断し、中断に成功した場合にキャンセル完了レジスタ1〜4にキャンセル完了を示す値を書き込む。ただしメッセージ送信を中断することができなかった場合、CANコントローラ15は、キャンセル完了レジスタ1〜4にキャンセル失敗を示す値を書き込む。処理部10は、送信完了レジスタ1〜4及びキャンセル完了レジスタ1〜4の値を読み出すことによって、送信要求及びキャンセル要求に対する処理結果を確認することができる。
【0047】
また本実施の形態において4つの送信メッセージ格納用レジスタ1〜4は、フルコントロールモードでの動作時には処理部10が全てを使用することができるが、制限モードでの動作時にはその一部の使用が制限される。レジスタ群16の送信許可設定用レジスタ1〜4は、各送信メッセージ格納用レジスタ1〜4について制限モードでの使用を許可するか否かの設定を格納するためのレジスタである。CANコントローラ15がフルコントロールモードで動作している際に、処理部10が送信許可設定用レジスタ1〜4のいずれかに対してレジスタの使用を許可しない旨の値を書き込むことによって、制限モードへの切替後には対応する送信メッセージ格納用レジスタ1〜4に対する読み出し及び書き込みが不可能となる。送信許可設定用レジスタ1〜4は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて読み出し及び書き込みを行うことはできず、設定を変更することができない。
【0048】
例えば、本実施の形態に係るECU1は、送信許可設定用レジスタ1に対して使用を許可する旨の情報を書き込み、送信許可設定レジスタ2〜4に対して使用を許可しない旨の情報を書き込む。これによりフルコントロールモードから制限モードへ切り替えられた後、ECU1は、送信メッセージ格納用レジスタ1を用いたメッセージ送信を行うことはできるが、送信メッセージ格納用レジスタ2〜4を用いたメッセージ送信を行うことができなくなる。
【0049】
また本実施の形態においてCANコントローラ15は、送信メッセージ格納用レジスタ1〜4に格納されたメッセージの送信を行うことができる周期が、送信メッセージ格納用レジスタ1〜4毎に定められている。CANコントローラ15は、前回のメッセージ送信を終えた後、定められた所定期間(最低送信間隔)が経過するまで、対応する送信メッセージ格納用レジスタ1〜4に関する処理部10からの送信要求を受け付けない。レジスタ群16の送信周期設定用レジスタ1〜4は、各送信メッセージ格納用レジスタ1〜4についてこの所定期間を送信周期として設定を格納するためのレジスタである。CANコントローラ15がフルコントロールモードで動作している際に、処理部10が送信周期設定用レジスタ1〜4のいずれかに対して送信周期の設定を書き込むことによって、上述のような送信周期によるメッセージ送信の制限が実施される。なおCANコントローラ15は、動作モードに関わらず設定された送信周期によるメッセージ送信の制限を行ってもよく、制限モードにおいてのみ制限を行ってもよい。送信周期設定用レジスタ1〜4は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて書き込みを行うことはできず、設定を変更することができない。なお送信周期設定用レジスタ1〜4は、制限モードにおいて、書き込みのみでなく読み出しをも制限する構成としてもよい。
【0050】
例えば、本実施の形態に係るECU1は、送信周期設定用レジスタ1に対して送信周期を100msとする設定を書き込む。なお送信メッセージ格納用レジスタ2〜3の使用を許可しない場合には、送信周期設定用レジスタ2〜4の設定を行わなくてもよい。制限モードへ切り替えられた後、CANコントローラ15は、送信を行う毎に内部のタイマ機能により送信からの経過時間を計時し、前回のメッセージ送信から設定された100msが経過するまで、処理部10からの送信要求を受け付けない。なおCANコントローラ15は、送信メッセージ格納用レジスタ1〜4毎に個別に経過時間の計時を行うことができる。
【0051】
また本実施の形態において4つの送信メッセージ格納用レジスタ1〜4は、格納することができるメッセージのCAN−IDが送信メッセージ格納用レジスタ1〜4毎に定められている。CANコントローラ15は、処理部10から送信メッセージ格納用レジスタ1〜4へのメッセージの書込要求が与えられた場合、メッセージに含まれるCAN−IDが、書き込もうとする送信メッセージ格納用レジスタ1〜4に対して定められたCAN−IDである場合にのみ、処理部10から与えられたメッセージを送信メッセージ格納用レジスタ1〜4へ書き込む。レジスタ群16の送信識別情報設定用レジスタ1〜4は、対応する送信メッセージ格納用レジスタ1〜4に格納できるメッセージのCAN−IDを設定するためのレジスタである。CANコントローラ15がフルコントロールモードで動作している際に、処理部10が送信識別情報設定用レジスタ1〜4のいずれかに対してCAN−IDの設定を書き込むことによって、上述のようなCAN−IDによるメッセージ格納の制限が実施される。なおCANコントローラ15は、動作モードに関わらず設定されたCAN−IDによるメッセージ格納の制限を行ってもよく、制限モードにおいてのみ制限を行ってもよい。送信識別情報設定用レジスタ1〜4は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて読み出し及び書き込みを行うことはできず、設定を変更することができない。
【0052】
例えば、本実施の形態に係るECU1は、送信識別情報設定用レジスタ1にCAN−IDとして”0010”の値を書き込む。なお送信メッセージ格納用レジスタ2〜4の使用を許可しない場合には、送信識別情報設定用レジスタ2〜4の設定を行わなくてもよい。制限モードへ切り替えられた後、CANコントローラ15は、送信メッセージ格納用レジスタ1に対してメッセージを書き込む要求が処理部10から与えられた場合、このメッセージに付されたCAN−IDが”0010”である場合にのみ、送信メッセージ格納用レジスタ1にメッセージを格納する。
【0053】
また、CANコントローラ15は、他のECU1から受信したメッセージを格納するための4つのレジスタ(受信メッセージ格納用レジスタ1〜4)を有している。CANコントローラ15は、他のECU1からメッセージを受信した場合、この受信メッセージ格納用レジスタ1〜4のいずれかにメッセージを書き込むとともに、対応する受信完了レジスタ1〜4に受信完了を示す情報を書き込む。処理部10は、受信完了レジスタ1〜4の値を定期的に読み出してチェックすることにより、他のECU1〜のメッセージを受信したか否かを判定し、メッセージを受信した場合に受信メッセージ格納用レジスタ1〜4からメッセージを読み出すことができる。
【0054】
また本実施の形態において4つの受信メッセージ格納用レジスタ1〜4は、フルコントロールモードでの動作時には処理部10が全てを使用することができるが、制限モードでの動作時にはその一部の使用が制限される。レジスタ群16の受信許可設定用レジスタ1〜4は、各受信メッセージ格納用レジスタ1〜4について制限モードでの使用を許可するか否かの設定を格納するためのレジスタである。CANコントローラ15がフルコントロールモードで動作している際に、受信許可設定用レジスタ1〜4のいずれかに対してレジスタの使用を許可しない旨の値を書き込むことによって、制限モードへの切替後には対応する受信メッセージ格納用レジスタ1〜4に対する読み出し及び書き込みが不可能となる。受信許可設定用レジスタ1〜4は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて書き込みを行うことはできず、設定を変更することができない。なお受信許可設定用レジスタ1〜4は、制限モードにおいて、書き込みのみでなく読み出しをも制限する構成としてもよい。
【0055】
例えば、本実施の形態に係るECU1は、受信許可設定用レジスタ1,2に対して使用を許可する旨の情報を書き込み、受信許可設定レジスタ3,4に対して使用を許可しない旨の情報を書き込む。これによりフルコントロールモードから制限モードへ切り替えられた後、ECU1は、受信メッセージ格納用レジスタ1,2を用いたメッセージ受信を行うことはできるが、受信メッセージ格納用レジスタ3,4を用いたメッセージ受信を行うことができなくなる。
【0056】
また本実施の形態において4つの受信メッセージ格納用レジスタ1〜4は、格納することができるメッセージのCAN−IDがメッセージ格納用レジスタ1〜4毎に定められている。CANコントローラ15は、他のECU1からのメッセージを受信した場合、受信メッセージに含まれるCAN−IDが受信メッセージ格納用レジスタ1〜4に対して定められたCAN−IDである場合にのみ、この受信メッセージを対応する受信メッセージ格納用レジスタ1〜4へ書き込む。レジスタ群16の受信識別情報設定用レジスタ1〜4は、対応する受信メッセージ格納用レジスタ1〜4に格納できるメッセージのCAN−IDを設定するためのレジスタである。CANコントローラ15がフルコントロールモードで動作している際に、処理部10が受信識別情報設定用レジスタ1〜4のいずれかに対してCAN−IDの設定を書き込むことによって、上述のようなCAN−IDによるメッセージ格納の制限が実施される。なおCANコントローラ15は、動作モードに関わらず設定されたCAN−IDによるメッセージ格納の制限を行ってもよく、制限モードにおいてのみ制限を行ってもよい。受信識別情報設定用レジスタ1〜4は、フルコントロールモードにおいて読み出し及び書き込みを行うことができるが、制限モードにおいて読み出し及び書き込みを行うことはできず、設定を変更することができない。
【0057】
例えば、本実施の形態に係るECU1は、受信識別情報設定用レジスタ1にCAN−IDとして”0012”の値を書き込み、受信識別情報設定用レジスタ2に”0020”の値を書き込む。なお受信メッセージ格納用レジスタ3,4の使用を許可しない場合には、受信識別情報設定用レジスタ3,4の設定を行わなくてもよい。制限モードへ切り替えられた後、CANコントローラ15は、他のECU1からのメッセージを受信した場合、受信メッセージに含まれるCAN−IDが”0012”又は”0020”である場合にのみメッセージを受信メッセージ格納用レジスタ1,2に格納する。これら以外のCAN−IDのメッセージを受信した場合、CANコントローラ15は、受信メッセージを破棄する。
【0058】
このように、本実施の形態に係るCANコントローラ15は、制限モードにおいてレジスタ群16に対するアクセスの制限を行う。ECU1の起動直後、CANコントローラ15はフルコントロールモードで動作を開始する。このとき処理部10はマスクROM11に記憶されたブートプログラム11aを読み出して実行する。このときにブートプログラム11aを実行している処理部10は、CANコントローラ15のレジスタ16に対するアクセスを制限なしで行うことができる。ブートプログラム11aは、ECU1の初期設定などを行うためのプログラムであり、これを実行することによって処理部10は、CANコントローラ15のレジスタ群16に対するアクセス制限に条件設定を行う。即ちブートプログラム11aの実行により処理部10は、送信許可設定レジスタ1〜4に対する送信メッセージ格納用レジスタ1〜4の使用可否の設定、送信周期設定用レジスタ1〜4に対する送信周期の設定、送信識別情報設定用レジスタ1〜4に対するCAN−IDの設定、受信許可設定レジスタ1〜4に対する受信メッセージ格納用レジスタ1〜4の使用可否の設定、及び、受信識別情報設定用レジスタ1〜4に対するCAN−IDの設定等を行う。
【0059】
これらのレジスタに対する設定を終えた後、ブートプログラム11aを実行する処理部10は、モードレジスタに対する書き込みを行ってCANコントローラ15の動作モードをフルコントロールモードから制限モードへ切り替える。制限モードへの切替完了後、処理部10は、ブートプログラム11aの実行を終了し、EEPROM12に記憶されたアプリケーションプログラム12aの実行を開始する。アプリケーションプログラム12aの実行中は、CANコントローラ15は制限モードで動作するため、レジスタ群16に対するアクセス制限が行われる。CANコントローラ15は、制限モードへ切り替えられた後、フルコントロールモードへの切り替えを行うことはできない。例えばECU1が電源オフ状態となった後に電源を再投入された場合、又は、リセット操作などがなされて再起動された場合等にのみ、CANコントローラ15はフルコントロールモードとなる。
【0060】
よってブートプログラム11aは、アプリケーションプログラム12aの実行に必要なレジスタが使用可能となり、且つ、実行に不要なレジスタが使用不可能となるように、レジスタ群16のアクセス制限の条件を設定するように、予め適切に作成されている。
【0061】
なお本実施の形態においては、処理部10がモードレジスタに対する書き込みを行うことでCANコントローラ15がフルコントロールモードから制限モードへの切り替えを行う構成としたが、これに限るものではない。例えばCANコントローラ15は、起動からの経過時間(例えばクロック数など)を計時し、所定時間が経過した場合には、処理部10がモードレジスタに対する書き込みを行っていない場合であっても、強制的にフルコントロールモードから制限モードへの切り替えを行う構成としてもよい。この場合、切り替えの判断基準となる所定時間は、例えばブートプログラム11aの実行に要する時間を設定することができる。ただし所定時間はブートプログラム11aの実行時間に無関係に定められていてもよく、この場合にはモード切替までの所定時間がブートプログラム11aの作成に対する制約条件として機能することとなる。
【0062】
図3は、ECU1の処理部10が起動時に行う処理の手順を示すフローチャートである。本実施の形態に係るECU1の処理部10は、ECU1の起動又は再起動等がなされることにより、例えばリセットICなどによるパワーオンリセットが行われ、その後にパワーオンリセットが解除される(ステップS1)ことにより、処理を開始する。まず処理部10は、マスクROM11に記憶されたブートプログラム11aを読み出して実行を開始する(ステップS2)。ブートプログラム11aを実行する処理部10は、CANコントローラ15のレジスタ群16に含まれる送信許可設定レジスタ1〜4、送信周期設定用レジスタ1〜4、送信識別情報設定用レジスタ1〜4、受信許可設定レジスタ1〜4、及び、受信識別情報設定用レジスタ1〜4に対する設定値の書き込みを行うことにより、レジスタ群16に対するアクセス制限の条件を設定する(ステップS3)。
【0063】
アクセス制限の条件設定を完了した後、ブートプログラム11aを実行する処理部10は、CANコントローラ15のレジスタ群16に含まれるモードレジスタに対する書き込みを行うことにより、フルコントロールモードから制限モードへのモード切替を行う(ステップS4)。CANコントローラ15のモード切替の完了後、処理部10は、ブートプログラム11aの実行を終了し、EEPROM12に記憶されたアプリケーションプログラム12aを読み出して実行を開始し(ステップS5)、起動時の処理を終了する。
【0064】
図4は、ECU1のCANコントローラ15が行うモード切替処理の手順を示すフローチャートである。本実施の形態に係るECU1のCANコントローラ15は、ECU1の起動又は再起動等がなされることにより、例えばリセットICなどによるパワーオンリセットが行われ、その後にパワーオンリセットが解除される(ステップS11)ことにより、処理を開始する。CANコントローラ15は、内部に備えるタイマ機能などにより、起動からの経過時間の計時を開始する(ステップS12)。また起動後のCANコントローラ15は、フルコントロールモードで動作する(ステップS13)。
【0065】
CANコントローラ15は、レジスタ群16のモードレジスタに対して制限モードへの切り替えを行う値が書き込まれたか否かに基づいて、モード切替の指示が処理部10から与えられたか否かを判定する(ステップS14)。モード切替の指示が与えられていない場合(S14:NO)、CANコントローラ15は、ステップS12にて計時を開始した起動からの経過時間が所定時間を経過したか否かを更に判定する(ステップS15)。起動から所定時間が経過していない場合(S15:NO)、CANコントローラ15は、ステップS13へ処理を戻し、フルコントロールモードでの動作を継続して行う。
【0066】
モード切替の指示が与えられた場合(S14:YES)、又は、起動から所定時間が経過した場合(S15:YES)、CANコントローラ15は、フルコントロールモードから制限モードへの切り替えを行う(ステップS16)。またCANコントローラ15は、ステップS12にて開始した計時を終了する(ステップS16)。その後、CANコントローラ15は、制限モードでの動作を継続的に行う(ステップS18)。
【0067】
図5は、CANコントローラ15が行うメッセージ送信要求時の制限処理の手順を示すフローチャートであり、CAN−IDに基づく制限処理である。CANコントローラ15は、レジスタ群16の送信メッセージ格納用レジスタ1〜4のいずれかに対するメッセージの書込要求が処理部10から与えられたか否かを判定する(ステップS21)。メッセージの書込要求が与えられていない場合(S21:NO)、CANコントローラ15は、書込要求が与えられるまで待機する。メッセージの書込要求が与えられた場合(S21:YES)、CANコントローラ15は、自身の動作モードが制限モードであるか否かを判定する(ステップS22)。
【0068】
動作モードが制限モードである場合(S22:YES)、CANコントローラ15は、書き込みを要求された送信メッセージ格納用レジスタ1〜4に対応する送信許可設定レジスタ1〜4の値をチェックする(ステップS23)。ステップS23の結果に基づいて、CANコントローラ15は、書込を要求された送信メッセージ格納用レジスタ1〜4の使用が許可されているか否かを判定する(ステップS24)。使用が許可されていない場合(S24:NO)、CANコントローラ15は、処理部10に対してエラーを通知し(ステップS29)、ステップS21へ処理を戻す。
【0069】
送信メッセージ格納用レジスタ1〜4の使用が許可されている場合(S24:YES)、CANコントローラ15は、処理部10から与えられたメッセージに含まれるCAN−IDを取得する(ステップS25)。CANコントローラ15は、書き込みを要求された送信メッセージ格納用レジスタ1〜4に対応する送信識別情報設定用レジスタ1〜4の値をチェックし(ステップS26)、ステップS25にて取得したCAN−IDが送信メッセージ格納用レジスタ1〜4への格納を許可されたCAN−IDであるか否かを判定する(ステップS27)。許可されたCAN−IDである場合(S27:YES)、CANコントローラ15は、処理部10から与えられたメッセージを送信メッセージ格納用レジスタ1〜4に格納して(ステップS28)、ステップS21へ処理を戻す。許可されたCAN−IDでない場合(S27:NO)、CANコントローラ15は、処理部10に対してエラーを通知し(ステップS29)、ステップS21へ処理を戻す。
【0070】
また、動作モードが制限モードではない場合(S22:NO)、即ち動作モードがフルコントロールモードである場合、CANコントローラ15は、処理部10から与えられたメッセージを送信メッセージ格納用レジスタ1〜4に格納して(ステップS28)、ステップS21へ処理を戻す。
【0071】
図6は、CANコントローラ15が行うメッセージ送信要求時の制限処理の手順を示すフローチャートであり、送信周期に基づく制限処理である。なおCANコントローラ15は、自身のタイマ機能により、メッセージ送信を行った場合に、このメッセージ送信からの経過時間を計時する処理を行っているものとする。CANコントローラ15は、他のECU1に対するメッセージの送信要求が処理部10から与えられたか否かを判定する(ステップS31)。送信要求が与えられていない場合(S31:NO)、CANコントローラ15は、送信要求が与えられるまで待機する。送信要求が与えられた場合(S31:YES)、CANコントローラ15は、自身の動作モードが制限モードであるか否かを判定する(ステップS32)。
【0072】
動作モードが制限モードである場合(S32:YES)、CANコントローラ15は、送信要求が与えられた送信要求レジスタ1〜4に対応する送信許可設定レジスタ1〜4の値をチェックする(ステップS33)。ステップS33の結果に基づいて、CANコントローラ15は、要求された送信メッセージ格納用レジスタ1〜4のメッセージ送信が許可されているか否かを判定する(ステップS34)。メッセージの送信が許可されていない場合(S34:NO)、CANコントローラ15は、処理部10に対してエラーを通知し(ステップS39)、ステップS31へ処理を戻す。
【0073】
メッセージの送信が許可されている場合(S34:YES)、CANコントローラ15は、対応する送信メッセージ格納用レジスタ1〜4に格納されたメッセージの送信を前回に行ってからの経過時間を取得する(ステップS35)。CANコントローラ15は、送信を要求された送信メッセージ格納用レジスタ1〜4に対応する送信周期報設定用レジスタ1〜4の値をチェックする(ステップS36)。CANコントローラ15は、ステップS35にて取得した前回送信からの経過時間が、送信周期設定用レジスタ1〜4に設定された送信周期を経過したか否かを判定する(ステップS37)。送信周期を経過した場合(S37:YES)、CANコントローラ15は、送信要求に対応する送信メッセージ格納用レジスタ1〜4に格納されたメッセージを読み出してCANバス2へ出力することによりメッセージ送信を行い(ステップS38)、ステップS31へ処理を戻す。送信周期を経過していない場合(S37:NO)、CANコントローラ15は、処理部10に対してエラーを通知し(ステップS39)、ステップS31へ処理を戻す。
【0074】
また、動作モードが制限モードでない場合(S32:NO)、即ち動作モードがフルコントロールモードである場合、CANコントローラ15は、送信要求に対応する送信メッセージ格納用レジスタ1〜4に格納されたメッセージを読み出してCANバス2へ出力することによりメッセージ送信を行い(ステップS38)、ステップS31へ処理を戻す。
【0075】
図7は、CANコントローラ15が行うメッセージ受信時の制限処理の手順を示すフローチャートであり、メッセージ受信に関する制限処理である。CANコントローラ15は、他のECU1からのメッセージを受信したか否かを判定する(ステップS51)。メッセージを受信していない場合(S51:NO)、CANコントローラ15は、他のECU1からのメッセージを受信するまで待機する。他のECU1からのメッセージを受信した場合(S51:YES)、CANコントローラ15は、自身の動作モードが制限モードであるか否かを判定する(ステップS52)。
【0076】
動作モードが制限モードである場合(S52:YES)、CANコントローラ15は、他のECU1から受信したメッセージに含まれるCAN−IDを取得する(ステップS53)。またCANコントローラ15は、レジスタ群16の受信許可設定レジスタ1〜4の値をチェックすると共に(ステップS54)、受信識別情報設定用レジスタ1〜4の値をチェックする(ステップS55)。CANコントローラ15は、使用が許可されている受信メッセージ格納用レジスタ1〜4に対して設定されたCAN−IDと、受信メッセージから取得したCAN−IDとが一致するか否かに基づいて、このメッセージの受信が許可されているか否かを判定する(ステップS56)。
【0077】
このメッセージの受信が許可されている場合(S56:YES)、CANコントローラ15は、他のECU1から受信したメッセージを、このメッセージのCAN−IDが受信許可のIDとして設定された受信メッセージ格納用レジスタ1〜4に格納する(ステップS57)。次いでCANコントローラ15は、メッセージを格納した受信メッセージ格納用レジスタ1〜4に対応する受信完了レジスタ1〜4に受信完了の旨を示す情報を書き込んで(ステップS58)、ステップS51へ処理を戻す。このメッセージの受信が許可されていない場合(S56:NO)、CANコントローラ15は、受信したメッセージを破棄して(ステップS59)、ステップS51へ処理を戻す。
【0078】
また、動作モードが制限モードでない場合(S52:NO)、即ち動作モードがフルコントロールモードである場合、CANコントローラ15は、他のECU1から受信したメッセージを、受信メッセージ格納用レジスタ1〜4に格納し(ステップS57)、対応する受信完了レジスタ1〜4に受信完了の旨を示す情報を書き込んで(ステップS58)、ステップS51へ処理を戻す。
【0079】
以上の構成の本実施の形態に係るECU1は、他のECU1との通信に係る値を格納するレジスタ群16を有するCANコントローラ15と、このレジスタ群16に対する値の書き込み及び読み出しを行って通信処理を行う処理部10とを備える。ECU1は、CANコントローラ15のレジスタ群16に対する書き込み及び読み出しが可能なフルコントロールモード(第1モード)と、レジスタ群16のうちの一部のレジスタに対する書き込み及び読み出しを制限(禁止)した制限モード(第2モード)との切り替えを行う。ECU1は、起動から所定期間をフルコントロールモードとし、所定期間の経過後にフルコントロールモードから制限モードへの切り替えを行う。制限モードへの切り替えを行った後は、ECU1はフルコントロールモードへの切り替えを行わない。
【0080】
これにより、ECU1の起動から所定期間の経過後は、CANコントローラ15の一部のレジスタに対する書き込み及び読み出しが制限された状態となる。通信に関するリソースの使用を制限することによって、ECU1に注入された不正なプログラムによる通信リソースの不正な使用を制限することができる。よって本実施の形態に係るECU1は、他のECU1とのメッセージ送受信を行うCANコントローラ15のレジスタの使用を制限することにより、不正なプログラムの注入によるネットワークへの不正なメッセージ送信を抑制することができる。
【0081】
またECU1は、起動後に処理部10が実行するブートプログラム11a(第1プログラム)を記憶したマスクROM11(第1記憶部)と、ブートプログラム11aの実行後に処理部10が実行するアプリケーションプログラム12a(第2プログラム)を記憶したEEPROM12(第2記憶部)とを備える。フルコントロールモード及び制限モードの切り替えは、ブートプログラム11aを処理部10が実行する期間を上記の所定期間として行う。即ち、ブートプログラム11aの実行はフルコントロールモードで行われ、アプリケーションプログラム12aの実行は制限モードで行われる。これにより、CANコントローラ15のレジスタ群16の使用に制限のないフルコントロールモードでの動作を、マスクROM11に記憶したブートプログラム11aの実行期間に限定することができる。不正なプログラムがEEPROM12に注入された場合であっても、EEPROM12に記憶された不正なプログラムの実行は、CANコントローラ15のレジスタ群16の使用が制限された制限モードで行われる。
【0082】
またECU1のブートプログラム11aを記憶する記憶部には、記憶内容の書き換えが不可能なマスクROM11を用いる。マスクROM11には不正なプログラムを注入することが不可能であり、不正なプログラムがフルコントロールモードで実行されることがない。
【0083】
またECU1は、ブートプログラム11aを処理部10にて実行することにより、制限モードにて書き込み及び読み出しを制限するレジスタをいずれとするかの設定を行う。例えばECU1は、送信許可設定レジスタ1〜4に対する値の書き込みを行うことにより、制限モードへ切替後に使用可能な送信メッセージ格納用レジスタ1〜4をいずれとするかの設定を行う。また例えばECU1は、受信許可設定レジスタ1〜4に対する値の書き込みを行うことにより、制限モードへ切替後に使用可能な受信メッセージ格納用レジスタ1〜4をいずれとするかの設定を行う。これにより制限モードにて使用を制限するレジスタを、自装置の処理内容などに適したものに設定することができる。また制限モードにて使用を制限するレジスタを下辺とすることができるため、CANコントローラ15の汎用性を高めることができる。
【0084】
またCANコントローラ15のレジスタ群16には、他のECU1へ送信するメッセージを格納するための4つの送信メッセージ格納用レジスタ1〜4を含む。処理部10は、他のECU1へ送信するメッセージをCANコントローラ15の送信メッセージ格納用レジスタ1〜4に格納することによって、このメッセージの送信を行うことができる。制限モードにおいては、4つの送信メッセージ格納用レジスタ1〜4のうちの一又は複数に対する書き込み及び読み出しを制限する。これにより不正なプログラムによる送信メッセージ格納用レジスタ1〜4の使用を制限することができ、不正なメッセージ送信を制限することができる。
【0085】
またCANコントローラ15のレジスタ群16には、送信メッセージ格納用レジスタ1〜4に格納されたメッセージをCANコントローラ15が送信する周期の設定を格納する送信周期設定用レジスタ1〜4を含む。CANコントローラ15によるメッセージの送信は、送信周期設定用レジスタ1〜4に設定された周期より短い周期で行うことが制限(禁止)され、設定された周期より長い周期でしか行うことができない。これによりECU1によるメッセージ送信の最低周期を定めることができ、この周期より短い周期で不正なプログラムが頻繁にメッセージ送信を繰り返すことを防止できる。
【0086】
またCANコントローラ15のレジスタ群16には、送信メッセージ格納用レジスタ1〜4への格納を許可するメッセージのCAN−IDに関する設定を格納する送信識別情報設定用レジスタ1〜4を含む。CANコントローラ15の送信メッセージ格納用レジスタ1〜4に対するメッセージの格納は、識別情報設定用レジスタ1〜4に設定されたCAN−IDが付されたメッセージにのみ限定し、これ以外のCAN−IDが付されたメッセージの格納を制限(禁止)する。これによりECU1が送信するメッセージの種別などをCAN−IDにより制限することができ、不正なプログラムが不正なCAN−IDを付したメッセージを送信することを防止できる。
【0087】
なお本実施の形態においては、車載の通信システムに含まれる各ECU1がCANプロトコルに従った通信を行う構成としたが、これに限るものではない。各ECU1が、CAN以外のプロトコル、例えばTCP/IP、イーサネット(登録商標)又はFlexRay等のプロトコルに従った通信を行う構成としてもよい。また車両に搭載される通信システムを例に説明を行ったが、これに限るものではなく、航空機若しくは船舶等の移動体に搭載される通信システム、又は、工場若しくはオフィス等に設置される通信システム等のように、車載以外の通信システムに対して本技術を適用してもよい。
【0088】
また通信システムに含まれる全てのECU1について、本実施の形態に示したレジスタ群16の制限を行う機能が備えられていることが好ましいが、このような制限機能を含まないECUが通信システムに含まれていてもよい。またECU1は、書き換え不可能な記憶部としてマスクROM11を備える構成としたが、これに限るものではない。例えば、紫外線照射によりデータの消去を行うことはできるが電気的なデータ書き換えを行うことができないEPROM(Erasable Programmable Read Only Memory)、又は、ヒューズの切断など物理的な構成によりデータ書き換えが不可能となるEEPROM若しくはフラッシュメモリ等の不揮発性のメモリ素子等を、マスクROM11に代えて採用してもよい。またECU1は、制限モードにおいてメッセージの送信及び受信の両方に対する制限を行う構成としたが、これに限るものではなく、メッセージ送信にのみ制限を行う構成としてもよい。
【0089】
(実施の形態2)
図8は、実施の形態2に係る通信システムの構成を示すブロック図である。なお図8においては、図1において示した他のECU1、センサ3及びアクチュエータ4等の図示を省略してある。実施の形態2に係る通信システムは、ECU201に対して通信線206を介して接続される設定装置205を備えている。設定装置205は、例えば車輌のディーラ又は整備工場等において整備又は点検等を行う際に用いられる装置である。設定装置205をECU201に接続することによって、CANコントローラ15のレジスタ群16に対する値の書き込みを行うことができる。設定装置205は、液晶パネルなどの表示部251と、スイッチ又はタッチパネル等の操作部252とを有している。
【0090】
実施の形態2に係るECU201は、実施の形態1に係るECU1が備えるマスクROM11を備えず、ブートプログラム11aをEEPROM12に記憶している。ECU201のEEPROM12には、ブートプログラム11a及びアプリケーションプログラム12a等が記憶されている。
【0091】
また実施の形態2に係るECU201は、通信線206を介して設定装置205を接続するためのコネクタ217を備えている。実施の形態2に係るECU201は、コネクタ217を介して認証された設定装置205が接続された場合、CANコントローラ15のレジスタ群16の書き込みが制限されているレジスタに対して、値の書き込みを行うことが可能となる。
【0092】
また実施の形態2に係るECU201は、ROM218を備えている。ROM218は、マスクROM又はEEPROM等を用いて構成される。ただしROM218は、例えばEEPROMなどのデータ書き換え可能なメモリ素子を用いて構成されている場合であっても、ECU201の通常動作時においてデータの書き換えを行うことはできない。ROM218には、認証プログラム218a及び認証情報218b等が記憶されている。認証プログラム218aは、コネクタ217に設定装置205が接続された場合に処理部10が実行するプログラムであり、設定装置205との間で認証処理を行う。認証情報218bは、認証プログラム218aが設定装置205との間で認証処理を行うための情報であり、例えば装置のID及びパスワード等の情報である。
【0093】
実施の形態2に係るECU201は、通常動作において、常に制限モードでの動作を行っている。即ち電源投入などにより起動したECU201は、起動後に制限モードで動作を開始し、通常の動作を行っている限りにおいて、その後にフルコントロールモードへ切り替えられることはない。よってECU201は、ブートプログラム11a及びアプリケーションプログラム12aの実行を制限モードで行うため、ブートプログラム11aにはCANコントローラ15のレジスタ群16に対する設定処理は含まれていない。実施の形態2に係るECU201は、コネクタ217に設定装置205が接続された場合にのみ、CANコントローラ15をフルコントロールモードで動作させることが可能となる。
【0094】
実施の形態2に係るECU201は、コネクタ217に設定装置205が接続されたことを検出した場合、処理部10がROM218から認証プログラム218aを読み出して実行することにより、設定装置205との間で認証処理を行う。ECU201は、ROM218に記憶された認証情報218bに基づいて認証処理を行い、認証処理に成功した場合にのみ、CANコントローラ15の動作モードを制限モードからフルコントロールモードへ切り替える操作を受け付ける。
【0095】
認証処理に成功した場合、設定装置205を操作する操作者は、ECU201に関する各種の情報を取得して表示部251に表示させることができ、ECU201に関する各種の設定変更の操作を操作部252にて行うことができる。また実施の形態2に係る設定装置205は、ECU201のCANコントローラ15の動作モードの切り替えを行うことができ、フルコントロールモードへの切り替えを行うことでレジスタ群16への値の書き込みを行うことができる。
【0096】
設定装置205の操作部252に対してモード切替の操作がなされた場合、この操作内容が設定装置205からコネクタ217を介してECU201の処理部10へ与えられる。これによりECU201の処理部10は、モードの切替操作を受け付ける。ECU201は、設定装置205からフルコントロールモードへの切替操作を受け付けた場合に、制限モードからフルコントロールモードへの切り替えを行う。フルコントロールモードにおいてECU201は、設定装置205との間で通信線206を介した通信を行い、CANコントローラ15のレジスタ群16に対する値の書込要求を受け付けて、要求された値をレジスタ群16のレジスタに対して書き込む。
【0097】
またECU201は、設定装置205から制限モードへの切替操作を受け付けた場合に、フルコントロールモードから制限モードへの切り替えを行う。なおECU201は、例えば設定装置205の接続が解除された場合、又は、フルコントロールモードへの切り替えから所定時間が経過した場合等に、設定装置205から制限モードへの切替操作を受け付けていなくとも、フルコントロールモードから制限モードへの切り替えを自動的に行う構成としてよい。
【0098】
図9は、実施の形態2に係るECU201が行うモード切替処理の手順を示すフローチャートである。実施の形態2に係るECU201の処理部10は、コネクタ217に対する設定装置205の接続を検知したか否かを判定する(ステップS71)。接続を検知していない場合(S71:NO)、処理部10は、接続を検知するまで待機する。
【0099】
設定装置205の接続を検知した場合(S71:YES)、処理部10は、ROM218に記憶された認証プログラム218aを実行し、ROM218に記憶された認証情報218bを用いて、設定装置205との間で認証処理を行う(ステップS72)。処理部10は、認証処理に成功したか否かを判定する(ステップS73)。認証処理に成功していない場合(S73:NO)、処理部10は、設定装置205に対してエラーを通知し(ステップS74)、処理を終了する。
【0100】
認証処理に成功した場合(S73:YES)、処理部10は、設定装置205の操作部252に対する操作の有無を検知することにより、操作の受け付けを行う(ステップS75)。処理部10は、受け付けた操作が動作モードの切替操作であるか否かを判定する(ステップS76)。切替操作である場合(S76:YES)、処理部10は、受け付けた操作内容に応じて、制限モードからフルコントロールモードへ又はフルコントロールモードから制限モードへのモード切替を行い(ステップS77)、ステップS75へ処理を戻す。受け付けた操作が切替操作ではない場合(S76:NO)、処理部10は、例えばCANコントローラ15のレジスタ群16に対する値の書込など、受け付けた操作内容に応じた他の処理を行って(ステップS78)、ステップS75へ処理を戻す。
【0101】
以上の構成の実施の形態2に係るECU201は、明示的なモード切替の操作が行われた場合には、制限モード及びフルコントロールモードの切り替えを行う。これにより、例えば車両の試験、製造又は整備等の際に、CANコントローラ15のレジスタ群16に対する値の書き込みを行うことが可能となる。
【0102】
またECU201は、通信線206を介して設定装置205を接続するためのコネクタ217を備える。設定装置205には操作部252が設けられ、ECU201のモード切替に関する操作を行うことができる。ECU201は、設定装置205の操作部252にてなされた操作を、コネクタ217を介して受け付け、受け付けた操作に応じてモード切替を行うことができる。
【0103】
またECU201は、コネクタ217に接続された設定装置205との間で認証処理を行う。ECU201は、認証処理に成功した場合にのみ、モード切替に係る操作の受け付けを行う。これにより、コネクタ217に接続される外部の装置を用いたCANコントローラ15のレジスタ群16に対する値の書き換えが困難化される。
【0104】
なお実施の形態2においては、ECU201がマスクROMを備えず、ブートプログラム11aをEEPROM12に記憶する構成としたが、これに限るものではない。ECU201は、実施の形態1に係るECU1と同様に、ブートプログラム11aを記憶したマスクROM11を備える構成としてもよい。この構成の場合、ECU201は、実施の形態1にて説明した起動から所定期間経過後のモード切替と、実施の形態2にて説明した設定装置205による切替操作に基づくモード切替との両方を行う構成としてもよい。
【0105】
またECU201は、設定装置205の接続検知に応じて認証処理を行い、認証処理に成功した場合には自動的に制限モードからフルコントロールモードへ切り替えを行う構成としてもよい。この構成の場合には、設定装置205をECU201に接続するという操作が、モード切替のための明示的な操作に相当する。また認証処理後にモードの切替操作を受け付けるプログラムは、認証プログラム218aであってもよく、これ以外のプログラムであってもよい。ただしモードの切替操作を受け付けてモード切替を行うプログラムは、ROM218に記憶されていることが好ましい。
【0106】
またECU201は、コネクタ217に通信線206を介して設定装置205を接続する構成としたが、これに限るものではない。例えばECU201は、設定装置205との間で無線通信を行う構成としてもよい。また例えば、設定装置205を接続するのではなく、ECU201に操作部を設けてモード切替の操作を受け付ける構成としてもよい。
【0107】
また、実施の形態2に係る通信システムのその他の構成は、実施の形態1に係る通信システムの構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
【符号の説明】
【0108】
1 ECU(通信装置)
2 CANバス
3 センサ
4 アクチュエータ
10 処理部
11 マスクROM(第1記憶部)
11a ブートプログラム(通信制限プログラム)
12 EEPROM(第2記憶部)
12a アプリケーションプログラム
13 RAM
14 入出力部
15 CANコントローラ(通信部、規制部、制限部)
16 レジスタ群(複数のレジスタ)
201 ECU(通信装置)
205 設定装置(外部装置)
217 コネクタ(接続部)
218 ROM
218a 認証プログラム
218b 認証情報
251 表示部
252 操作部
図1
図2
図3
図4
図5
図6
図7
図8
図9