IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

<>
  • 特許-通信システム 図1
  • 特許-通信システム 図2
  • 特許-通信システム 図3
  • 特許-通信システム 図4
  • 特許-通信システム 図5
  • 特許-通信システム 図6
  • 特許-通信システム 図7
  • 特許-通信システム 図8
  • 特許-通信システム 図9
  • 特許-通信システム 図10
  • 特許-通信システム 図11
  • 特許-通信システム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-29
(45)【発行日】2023-12-07
(54)【発明の名称】通信システム
(51)【国際特許分類】
   H04L 12/407 20060101AFI20231130BHJP
   B60R 16/023 20060101ALI20231130BHJP
   H04L 12/28 20060101ALI20231130BHJP
   H04L 12/40 20060101ALI20231130BHJP
【FI】
H04L12/407
B60R16/023 P
H04L12/28 100A
H04L12/40 D
【請求項の数】 5
(21)【出願番号】P 2022119747
(22)【出願日】2022-07-27
(62)【分割の表示】P 2019047478の分割
【原出願日】2019-03-14
(65)【公開番号】P2022163093
(43)【公開日】2022-10-25
【審査請求日】2022-07-27
(73)【特許権者】
【識別番号】504139662
【氏名又は名称】国立大学法人東海国立大学機構
(73)【特許権者】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(73)【特許権者】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(73)【特許権者】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】倉地 亮
(72)【発明者】
【氏名】曾 剛
(72)【発明者】
【氏名】高田 広章
(72)【発明者】
【氏名】上田 浩史
【審査官】鈴木 香苗
(56)【参考文献】
【文献】中国特許出願公開第108667705(CN,A)
【文献】特開2003-298599(JP,A)
【文献】特開2007-104232(JP,A)
【文献】特開2012-123545(JP,A)
【文献】特開2008-172709(JP,A)
【文献】特開平01-143537(JP,A)
【文献】特開2006-085537(JP,A)
【文献】米国特許出願公開第2019/0020499(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/407
B60R 16/023
H04L 12/28
H04L 12/40
(57)【特許請求の範囲】
【請求項1】
共有の通信線に接続された複数の通信装置がメッセージを送受信する通信システムであって、
前記複数の通信装置には、
送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部、前記算出部が算出した余裕時間に応じた数値情報を前記メッセージに付して送信する第1送信部、メッセージに付された数値情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う第1調停部を有する第1の通信装置と、
メッセージに対して静的に定められた識別用の数値情報を前記メッセージに付して送信する第2送信部、メッセージに付された数値情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う第2調停部を有する第2の通信装置と
を含み、
前記第1の通信装置の第1調停部及び前記第2の通信装置の第2調停部は、前記通信線に対して重複して送信された複数のメッセージについて、各メッセージに付された数値情報が前記余裕時間に応じた数値情報又は前記識別用の数値情報のいずれであっても同じく数値として比較し、前記複数のメッセージにそれぞれ付された前記数値情報の比較結果に応じて調停を行う、通信システム。
【請求項2】
前記第1送信部及び前記第2送信部は、メッセージを送信できなかった場合に、所定の待機時間の経過後に前記メッセージを再送信し、
前記複数の通信装置には、それぞれ異なる待機時間が設定されている、請求項1に記載の通信システム。
【請求項3】
前記第1の通信装置は、
プロセッサと、
前記算出部、前記第1送信部及び前記第1調停部を有し、前記プロセッサの処理に応じて前記通信線に対するメッセージの送受信を行う通信コントローラと
を備え、
前記通信コントローラは、メッセージの送信を完了すべき時間に係る情報を記憶する記憶部を有し、
前記算出部は、前記プロセッサからメッセージの送信要求を与えられた時点、及び、前記記憶部に記憶した情報に基づいて前記余裕時間を算出する、請求項1又は請求項2に記載の通信システム。
【請求項4】
前記メッセージは、CAN(Controller Area Network)の通信規格に従うメッセージであり、
前記第1送信部は、前記余裕時間に応じた数値情報を、CANのメッセージのアービトレーションフィールドに格納して送信する、請求項1から請求項3までのいずれか1項に記載の通信システム。
【請求項5】
複数の通信線に接続され、一の通信線にて受信したメッセージを他の通信線から送信する処理を行う中継部と、前記一の通信線にて受信したメッセージに付された前記余裕時間に応じた情報を取得する取得部とを有する第3の通信装置を備え、
前記第3の通信装置の算出部は、前記取得部が取得した情報に基づいて、中継するメッセージの余裕時間を算出する、請求項1から請求項4までのいずれか1項に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、共通の通信線を介してメッセージを送受信する通信システムに関する。
【背景技術】
【0002】
従来、車両にはECU(Electronic Control Unit)等の装置が複数搭載されている。これら複数の装置は通信線を介して相互に接続され、メッセージの送受信を行うことにより情報を交換し、協働により車両の種々の機能を実現している。車両内の通信には、CAN(Controller Area Network)の通信規格が広く採用されている。
【0003】
特許文献1においては、車両内に配されるCANの通信線を多系統に分割した場合に、通信線間の通信を効率よく調停することが期待できる車載ネットワーク拡張装置が提案されている。この車載ネットワーク拡張装置は、通信線間で通信の衝突が生じた際に、メッセージに付与された優先度に基づいて通信線間の通信を調停する回路を備えている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2005-277896号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
CANの通信規格においては、通信線に対するメッセージの送信が衝突した場合に、各通信装置にて調停処理(アービトレーション(arbitration)処理)が行われる。調停処理の結果、いずれか1つのメッセージの送信が許可され、これ以外のメッセージの送信は中止される。いずれのメッセージ送信を優先するかは、メッセージに対して付されたIDに基づいて決定される。CANのIDは、その値が小さいほど優先度が高いことを示す。CANのIDは、例えば通信装置又は通信システムの設計段階等において静的に決定される。従来のCANの調停処理においては、優先度が低いメッセージの送信が、優先度が高いメッセージの送信により阻害され続ける虞があった。
【0006】
本開示は、斯かる事情に鑑みてなされたものであって、その目的とするところは、メッセージの送信が長期間に亘って阻害され続けることを抑制できる通信システムを提供することにある。
【課題を解決するための手段】
【0007】
本態様に係る通信システムは、共有の通信線に接続された複数の通信装置がメッセージを送受信する通信システムであって、前記複数の通信装置には、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部、前記算出部が算出した余裕時間に応じた数値情報を前記メッセージに付して送信する第1送信部、メッセージに付された数値情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う第1調停部を有する第1の通信装置と、メッセージに対して静的に定められた識別用の数値情報を前記メッセージに付して送信する第2送信部、メッセージに付された数値情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う第2調停部を有する第2の通信装置とを含み、前記第1の通信装置の第1調停部及び前記第2の通信装置の第2調停部は、前記通信線に対して重複して送信された複数のメッセージについて、各メッセージに付された数値情報が前記余裕時間に応じた数値情報又は前記識別用の数値情報のいずれであっても同じく数値として比較し、前記複数のメッセージにそれぞれ付された前記数値情報の比較結果に応じて調停を行う。
【0008】
本願は、このような特徴的な処理部を備える通信装置として実現することができるだけでなく、かかる特徴的な処理をステップとするメッセージ調停方法として実現したり、かかるステップをコンピュータに実行させるためのコンピュータプログラムとして実現したりすることができる。通信装置の一部又は全部を実現する半導体集積回路として実現したり、通信装置を含むその他の装置又はシステムとして実現したりすることができる。
【発明の効果】
【0009】
上記によれば、メッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【図面の簡単な説明】
【0010】
図1】本実施の形態に係る通信システムの概要を説明するための模式図である。
図2】メッセージの余裕時間を説明するための模式図である。
図3】本実施の形態に係るECUの構成を示すブロック図である。
図4】本実施の形態に係るCANコントローラの構成を示すブロック図である。
図5】第1のメッセージ形式を説明するための模式図である。
図6】第2のメッセージ形式を説明するための模式図である。
図7】第3のメッセージ形式を説明するための模式図である。
図8】本実施の形態に係る通信システムによるメッセージ調停方法を説明するための模式図である。
図9】本実施の形態に係るECUのCANコントローラが行うメッセージ送信処理の手順を示すフローチャートである。
図10】実施の形態2に係るゲートウェイの構成を示すブロック図である。
図11】メッセージの余裕時間及びデッドライン時間の伝播を説明するための模式図である。
図12】実施の形態2に係るゲートウェイが行うメッセージ中継処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0011】
[本開示の実施の形態の説明]
最初に本開示の実施態様を列記して説明する。以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0012】
(1)本態様に係る通信装置は、共有の通信線に接続された他の装置との間でメッセージを送受信する通信装置であって、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部と、前記算出部が算出した余裕時間に応じた情報を前記メッセージに付して送信する送信部と、メッセージに付された前記情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う調停部とを備え、前記調停部は、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う。
【0013】
本態様にあっては、通信装置が送信するメッセージについて、このメッセージの送信を完了すべき時間までの余裕時間を算出する。通信装置は、メッセージの送信を試みる時点で算出された余裕時間に応じた情報を、調停用情報としてこのメッセージに付して送信を試みる。自身のメッセージ送信と、共通の通信線に接続された他の通信装置のメッセージ送信とが同時的に行われてメッセージ送信の衝突が生じた場合、通信装置はいずれのメッセージの送信を優先して行うかを決定する調停処理を行う。このときに通信装置は、各メッセージに付された余裕時間の情報に基づいて、余裕時間が少ないメッセージの送信を優先するように調停処理を行う。これにより、メッセージの余裕時間に応じて優先度を変動させた調停処理が可能となり、特定のメッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【0014】
(2)前記送信部は、前記算出部が算出した余裕時間に応じた情報と、メッセージを識別する識別情報又は装置を識別する識別情報とを前記メッセージに付して送信することが好ましい。
【0015】
本態様にあっては、メッセージの余裕時間に応じた情報と、メッセージの識別情報又は装置の識別情報とを、通信装置が調停用情報としてメッセージに付して送信する。これにより、余裕時間が同じ値の複数のメッセージが同時的に送信された場合であっても、通信装置は識別情報に基づく調停処理を行うことができる。
【0016】
(3)プロセッサと、前記算出部、前記送信部及び前記調停部を有し、前記プロセッサの処理に応じて前記通信線に対するメッセージの送受信を行う通信コントローラとを備え、前記通信コントローラは、メッセージの送信を完了すべき時間に係る情報を記憶する記憶部を有し、前記算出部は、前記プロセッサからメッセージの送信要求を与えられた時点、及び、前記記憶部に記憶した情報に基づいて前記余裕時間を算出することが好ましい。
【0017】
本態様にあっては、通信装置がプロセッサ及び通信コントローラを備える。通信コントローラは、プロセッサの処理に応じてメッセージの送受信を行うと共に、上述の余裕時間の算出及びメッセージの調停等の処理を行う。通信コントローラは、メッセージの送信を完了すべき時間に関する情報を記憶する。通信コントローラは、プロセッサからメッセージの送信要求が与えられた時点、及び、記憶部に記憶した時間に関する情報に基づいて、メッセージの余裕時間を算出する。これにより、プロセッサ及びこのプロセッサ上で実行されるアプリケーションプログラム等は、メッセージの余裕時間の算出及び調停等の処理を行う必要がない。
【0018】
(4)前記メッセージは、CAN(Controller Area Network)の通信規格に従うメッセージであり、前記送信部は、前記余裕時間に応じた情報を、CANのメッセージのアービトレーションフィールドに格納して送信することが好ましい。
【0019】
本態様にあっては、通信装置がCANの通信規格に従ってメッセージの送受信を行う。通信装置は、算出した余裕時間に応じた情報を、CANメッセージのアービトレーションフィールドに格納して送信する。CANの通信規格では、アービトレーションフィールドに格納された値が小さいほど優先度が高いものとしてメッセージの調停(アービトレーション)が行われる。アービトレーションフィールドに余裕時間に応じた情報を格納することで、格納された値が小さい、即ち余裕時間が短いメッセージの送信が優先される。
【0020】
(5)複数の通信線に接続され、一の通信線にて受信したメッセージを他の通信線から送信する処理を行う中継部と、前記一の通信線にて受信したメッセージに付された前記余裕時間に応じた情報を取得する取得部とを備え、前記算出部は、前記取得部が取得した情報に基づいて、中継するメッセージの余裕時間を算出することが好ましい。
【0021】
本態様にあっては、通信装置は複数の通信線に接続され、一の通信線にて受信したメッセージを他の通信線から送信するメッセージの中継処理を行ってもよい。この場合に通信装置は、一の通信線にて受信したメッセージに付された余裕時間に応じた情報を取得する。このメッセージを中継のために他の通信線から送信する場合、通信装置は、取得した情報に基づいて中継するメッセージの余裕時間を算出する。例えば通信装置は、取得した情報に基づく余裕時間をこのメッセージの送信を完了すべき時間として、中継するメッセージの余裕時間を算出することができる。これにより、メッセージが一又は複数の通信装置にて中継される場合に、余裕時間を伝播させてメッセージの送信及び調停等の処理を行うことができる。
【0022】
(6)前記送信部は、前記調停部による調停のための情報として、前記算出部が算出した余裕時間に係る情報、又は、前記メッセージに対して静的に定められた識別情報のいずれかを選択的にメッセージに付して送信することが好ましい。
【0023】
本態様にあっては、通信装置は上記の余裕時間に係る情報を付したメッセージ送信と、静的に定められた識別情報を付したメッセージ送信とを選択的に行うことが可能である。各通信装置による調停は、余裕時間に係る情報と、静的に定められた識別情報とを区別することなく、いずれも同様の数値的な情報として扱うことで可能である。通信装置は、余裕時間に係る情報又は識別情報のいずれを付してメッセージを送信するかを適宜に選択することができる。
【0024】
(7)本態様に係る通信システムは、共有の通信線に接続された複数の通信装置がメッセージを送受信する通信システムであって、前記通信装置は、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部と、前記算出部が算出した余裕時間に応じた情報を前記メッセージに付して送信する送信部と、メッセージに付された前記情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う調停部とを備え、前記調停部は、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う。
【0025】
本態様にあっては、態様(1)と同様に、メッセージの余裕時間に応じて優先度を変動させた調停処理が可能となり、特定のメッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【0026】
(8)前記送信部は、メッセージを送信できなかった場合に、所定の待機時間の経過後に前記メッセージを再送信し、前記待機時間は、前記通信装置毎に異なる時間が設定されていることが好ましい。
【0027】
本態様にあっては、複数の通信装置によるメッセージの送信が重複し、調停処理によりメッセージが送信できなかった場合等に、通信装置は所定の待機時間の経過後にこのメッセージの再送信を試みる。共通の通信線に接続された複数の通信装置について、メッセージの再送信までの待機時間は通信装置毎に異なる時間が設定される。これにより、余裕時間が同じ値の複数のメッセージが同時的に送信されて共に送信できなかった場合であっても、次のメッセージ送信のタイミングに差を設けることができる。
【0028】
(9)前記複数の通信装置には、前記余裕時間に応じた情報を前記調停部の調停に用いる情報としてメッセージに付す通信装置と、メッセージに対して静的に定められた識別情報を前記調停部の調停に用いる情報として前記メッセージに付す通信装置とを含むことが好ましい。
【0029】
本態様にあっては、余裕時間に応じた情報を付してメッセージを送信する通信装置と、静的に定められた識別情報を付してメッセージを送信する通信装置とが通信システム中に混在可能である。
【0030】
(10)本態様に係るメッセージ調停方法は、共通の通信線に接続された複数の通信装置によるメッセージ送信が重複した際の調停を行うメッセージ調停方法であって、各通信装置が、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出し、算出した余裕時間に応じた情報を前記メッセージに付して送信し、メッセージに付された前記情報に基づき、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う。
【0031】
本態様にあっては、態様(1)と同様に、メッセージの余裕時間に応じて優先度を変動させた調停処理が可能となり、特定のメッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【0032】
[本開示の実施形態の詳細]
本開示の実施形態に係る通信システムの具体例を、以下に図面を参照しつつ説明する。本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【0033】
<システム概要>
図1は、本実施の形態に係る通信システムの概要を説明するための模式図である。本実施の形態に係る通信システムは、車両1に搭載された複数のECU2がCANの通信規格に従ってメッセージの送受信を行うシステムである。複数のECU2は、車両1内に配されたCANバス3にそれぞれ接続される。1つのCANバス3には、数個から十数個程度のECU2が接続され得る。車両1には複数のCANバス3が設けられていてもよい。この場合には、車両1にゲートウェイ4が搭載される。ゲートウェイ4は、複数のCANバス3が接続され、これら複数のCANバス3の間のメッセージの送受信を中継する。図示の例では、車両1には2つのCANバス3が設けられている。2つのCANバス3は、ゲートウェイ4に接続されている。各CANバス3には、それぞれ4つのECU2が接続されている。8つのECU2は、2つのCANバス3及び1つのゲートウェイ4を介して、相互にメッセージを送受信することができる。なお、通信システムに含まれるECU2の数、CANバス3の数、ゲートウェイ4の数、装置の接続態様及びネットワークの構成等は、図示のものに限らない。
【0034】
ECU2は、例えば例えば車両1のエンジンの動作を制御するECU、ドアのロック/アンロックを制御するECU、ライトの点灯/消灯を制御するECU、エアバッグの動作を制御するECU、及び、ABS(Antilock Brake System)の動作を制御するECU等の種々のECUが含まれ得る。なお、本実施の形態においては、CANバス3を介した通信を行う通信装置としてECU2及びゲートウェイ4を挙げるが、通信装置はこれらに限るものではない。
【0035】
CANの通信規格に従うメッセージには、CANIDと呼ばれる識別情報が、アービトレーションフィールドと呼ばれるメッセージの先頭領域に格納される。CANIDは、このメッセージに含まれるデータの種別等を示すと共に、このメッセージの優先度を示す情報である。CANIDは、その値が小さいほど優先度が高いメッセージであることを示す。複数のECU2がCANバス3に対して同時的にメッセージの送信を試みた場合、CANの通信システムではメッセージのアービトレーションフィールドに格納されたCANIDの値に基づくアービトレーション(調停)処理が各ECU2にて行われる。アービトレーション処理の結果、最も優先度が高い1つのメッセージが送信を許可され、これ以外のメッセージは送信を待機する必要がある。CANIDは、車両1、通信システム又はECU2の設計段階等において設計者により決定される静的な値である。
【0036】
本実施の形態に係る通信システムでは、メッセージのアービトレーションフィールドに格納する値を各ECU2が動的に変化させることによって、メッセージの優先度を動的に変化させる。詳しくは、本実施の形態に係るECU2は、メッセージの送信を完了すべき時間に対する余裕時間を算出し、算出した余裕時間に係る情報をメッセージのアービトレーションフィールドに格納して送信する。余裕時間は、その値が小さいほど余裕が少ないことを示す。CANの通信規格に従ってアービトレーション処理が行われることによって、余裕時間が少ないメッセージが優先して送信されることとなる。
【0037】
図2は、メッセージの余裕時間を説明するための模式図であり、横軸を時刻tとするメッセージ送信のタイミングチャートを示している。本実施の形態に係るECU2は、例えば所定の送信周期Tでメッセージ送信を繰り返し行っている。図示の例は、ECU2の1番目のメッセージの送信要求時刻をt0とし、2番目のメッセージの送信要求時刻をt1としている。送信周期T=t1-t0である。各メッセージには、送信要求時刻からメッセージの送信を完了すべき時間がデッドライン時間TDとして予め設定されている。図示の例では、送信要求時刻t0に対してデッドライン時間TDが経過した時刻をデッドライン時刻tdとしている。
【0038】
ECU2は、送信要求時刻t0においてメッセージ送信を試みたとしても、自身のメッセージ送信が待機させられる場合がある。これは例えば、既に他のECU2によるメッセージ送信が行われている場合、又は、他のECU2が同時的にメッセージ送信を試みてアービトレーション処理により自身のメッセージ送信の権利が得られなかった場合等である。このような場合にECU2は、所定の待機時間の後にメッセージの再送信を試みる。図示の例では、待機時間が経過した送信開始時刻tsの時点でECU2がメッセージの送信権利を獲得し、送信を開始している。メッセージの送信時間は、メッセージのデータサイズに依存し、図示の例では送信終了時刻teの時点でECU2がメッセージの送信を終了している。送信要求時刻t0からメッセージの送信終了時刻teまでが、このメッセージの遅延時間に相当する。
【0039】
本実施の形態に係る通信システムにおいては、ECU2が送信する各メッセージに対してデッドライン時間TDが予め設定されている。デッドライン時間TDは、メッセージの送信要求時刻t0からこのメッセージの送信を完了すべき時間を規定した設定値である。送信要求時刻t0にデッドライン時間TDを加えた時点をデッドライン時刻tdとすると、メッセージの送信終了時刻teはデッドライン時刻tdより先である必要がある。ただし、デッドライン時刻tdよりメッセージの送信開始時刻tsが先であればよいとする規則での運用であってもよい。デッドライン時間TDは、このメッセージの送信周期T以下の時間が設定される。
【0040】
本実施の形態に係る通信システムにおいては、メッセージの送信開始時刻からデッドライン時刻tdまでの時間を余裕時間とする。ECU2は、送信すべきメッセージの余裕時間を算出する。ECU2は、送信開始時刻tsにてメッセージの送信権を獲得した際に、このメッセージのアービトレーションフィールドに算出した余裕時間を格納して送信を行う。ECU2が算出する余裕時間及びメッセージに格納される余裕時間は、実時間を数値化したものであってよいが、本実施の形態においては通信処理に用いられるクロック信号のクロック数で表される。例えばクロック周期が2μ秒であり、実時間が500μ秒である場合、クロック数は250となる。クロック周期に関する情報は、複数のECU2の間で共有される。メッセージに格納される余裕時間に関する情報は、図2に示すメッセージの送信開始時刻tsからデッドライン時刻tdまでの時間に応じたクロック数とすることができる。又は、メッセージの送信終了時刻teからデッドライン時刻tdまでの時間に応じたクロック数をメッセージに格納してもよい。
【0041】
各ECU2が同様にしてメッセージのアービトレーションフィールドに余裕時間を格納して送信を行う。デッドライン時刻tdまでの余裕時間が短いほど、メッセージに格納される余裕時間の値は小さいものとなる。CANのアービトレーション処理においては、メッセージのアービトレーションフィールドに格納された値が小さいほど、優先度が高いメッセージとして扱われる。即ち、本実施の形態に係る通信システムでは、余裕時間が短いメッセージが優先して送信される。
【0042】
<装置構成>
図3は、本実施の形態に係るECU2の構成を示すブロック図である。本実施の形態に係るECU2は、プロセッサ21、記憶部(ストレージ)22及びCANコントローラ23等を備えて構成されている。プロセッサ21は、記憶部22に記憶されたプログラム22aを読み出して実行することにより、車両1の制御処理等の種々の処理を行う。本実施の形態においてプロセッサ21は、制御処理等において他のECU2へのメッセージ送信が必要となった場合に、送信すべきメッセージをCANコントローラ23へ与えて、このメッセージの送信を指示する。
【0043】
記憶部22は、例えばフラッシュメモリ又はEEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発性のメモリ素子を用いて構成されている。記憶部22は、プロセッサ21が実行する各種のプログラム、及び、プロセッサ21の処理に必要な各種のデータを記憶する。本実施の形態において記憶部22は、プロセッサ21が実行するプログラム22aを記憶している。
【0044】
プログラム22aは、例えばECU2の製造段階において記憶部22に書き込まれてもよい。例えばプログラム22aは、遠隔のサーバ装置などが配信するものをECU2が通信にて取得してもよい。例えばプログラム22aは、メモリカード又は光ディスク等の記録媒体に記録されたプログラム22aをECU2が読み出して記憶部22に記憶してもよい。例えばプログラム22aは、記録媒体に記録されたものを書込装置が読み出してECU2の記憶部22に書き込んでもよい。プログラム22aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体に記録された態様で提供されてもよい。
【0045】
CANコントローラ23は、CANバス3を介したメッセージの送受信を行う。CANコントローラ23は、例えば1つのIC(Integrated Circuit)として構成され得る。CANコントローラ23は、車両1内に配されたCANバス3を介して他のECU2及びゲートウェイ4等に接続され、これら他の車載装置との間でCANの通信規格に従う通信を行う。CANコントローラ23は、プロセッサ21から与えられた送信用のメッセージをCANの通信規格に応じた電気信号に変換してCANバス3へ出力することにより、他の車載装置へのメッセージ送信を行う。CANコントローラ23は、CANバス3の電位をサンプリングして取得することにより他の車載装置からのメッセージを受信し、受信したメッセージをプロセッサ21へ与える。
【0046】
本実施の形態に係るCANコントローラ23は、送信すべきメッセージのデッドライン時間TDに対する余裕時間を算出する。CANコントローラ23は、算出した余裕時間に係る情報を、メッセージのアービトレーションフィールドに格納して送信することができる。CANコントローラ23は、自身のメッセージ送信と、他のECU2のメッセージ送信とが衝突した場合に、CANの通信規格に従うアービトレーション処理を行う。これによりCANコントローラ23は、余裕時間が短いメッセージを優先して送信する。CANコントローラ23は、上記の余裕時間に係る情報と、従来のCANIDとのいずれかを選択的にアービトレーションフィールドに格納してメッセージ送信を行うことが可能な構成であってよい。
【0047】
本実施の形態に係るECU2では、記憶部22に記憶されたプログラム22aをプロセッサ21が読み出して実行することにより、初期化処理部21a及び送信要求処理部21b等がプロセッサ21にソフトウェア的な機能ブロックとして実現される。初期化処理部21aは、ECU2の起動時等に、CANコントローラ23の初期化処理を行う。初期化処理には、例えばメッセージ毎のデッドライン時間の設定処理が含まれ得る。送信要求処理部21bは、例えば車両1の走行制御等の処理において他のECU2へ送信すべきメッセージが生じた場合に、このメッセージを送信する処理を行う。送信要求処理部21bは、送信すべきメッセージを生成してCANコントローラ23へ与えることによって、このメッセージの送信を要求する。
【0048】
図4は、本実施の形態に係るCANコントローラ23の構成を示すブロック図である。図4においては、CANコントローラ23のメッセージ送信に関する機能ブロックを主に図示し、メッセージ受信に関する機能ブロックの図示は省略している。本実施の形態に係るCANコントローラ23は、レジスタ群31、制御回路32及び送受信回路33等を備えている。レジスタ群31は、CANコントローラ23とプロセッサ21との間の種々のデータ授受に用いられる記憶領域である。本実施の形態においてレジスタ群31には、デッドライン保持用レジスタ31a及びメッセージ保持用レジスタ31bが含まれている。
【0049】
デッドライン保持用レジスタ31aは、送信すべきメッセージのデッドライン時間の設定値を記憶するレジスタである。ECU2が複数種類のメッセージを送信する可能性がある場合、レジスタ群31にはデッドライン保持用レジスタ31aが複数存在してもよい。デッドライン時間は、例えばメッセージに付される識別情報、いわゆるCANIDに対して個別に設定される。本実施の形態においてデッドライン保持用レジスタ31aへのデッドライン時間の設定は、ECU2の起動時等にプロセッサ21によって行われる。ただし、プロセッサ21がメッセージ送信の都度にデッドライン時間を設定してもよい。
【0050】
メッセージ保持用レジスタ31bは、他のECU2に対して送信すべきメッセージを記憶するレジスタである。プロセッサ21は、他のECU2に対してメッセージ送信を行う必要が生じた場合に、送信すべきメッセージを生成してメッセージ保持用レジスタ31bに格納する。プロセッサ21がメッセージ保持用レジスタ31bに格納するメッセージは、通常のCANの通信規格に従うメッセージ、即ちアービトレーションフィールドにCANIDが格納されたメッセージであってよい。プロセッサ21が送信すべきメッセージをメッセージ保持用レジスタ31bに格納し、制御回路32に対して送信指示を与えることによって、CANコントローラ23のメッセージ送信が行われる。
【0051】
CANコントローラ23の制御回路32は、メッセージの送受信に関する制御を行う回路である。制御回路32は、カウンタ32a、余裕時間算出部32b及びメッセージ生成部32c等を備えて構成されている。カウンタ32aは、プロセッサ21からメッセージの送信指示が与えられた時点を0時間とし、この時点からの経過時間を計測する。カウンタ32aが計測する時間は、図2の待機時間に相当する。カウンタ32aは、プロセッサ21からの送信指示により初期化され、CANコントローラ23のクロック信号に応じてカウントアップされる。待機時間を数式で記述すると、「(カウンタ32aの値)×(クロック信号の周期)=(待機時間)」である。図2に示すメッセージの遅延時間は、この待機時間にメッセージの送信時間を加えた時間である。また、各メッセージの送信時間は、このメッセージを受信したECU2にて算出することができる。このため、メッセージに付与する余裕時間は、デッドライン時間から待機時間を引いた時間であってよく、デッドライン時間から遅延時間を引いた時間であってもよい。
【0052】
余裕時間算出部32bは、デッドライン保持用レジスタ31aに保持されたデッドライン時間と、カウンタ32aの値とに基づいて、デッドライン時間に対する余裕時間を算出する処理を行う。本実施の形態においてデッドライン保持用レジスタ31aには、デッドライン時間に相当するカウンタの値が格納される。余裕時間算出部32bは、デッドライン保持用レジスタ31aの値から、カウンタ32aが計測した値を減算することによって、余裕時間を算出する。カウンタ32aによる計測及び余裕時間算出部32bによる算出は、このメッセージの送信が完了するまで継続的に行われる。
【0053】
メッセージ生成部32cは、メッセージ保持用レジスタ31bに保持された送信すべきメッセージと、余裕時間算出部32bが算出した余裕時間とに基づいて、CANバス3へ実際に送信されるメッセージを生成する処理を行う。本実施の形態においてメッセージ生成部32cは、余裕時間算出部32bが算出した余裕時間をアービトレーションフィールドに格納したメッセージを生成する。ここで、メッセージ保持用レジスタ31bに保持されたメッセージのアービトレーションフィールドに格納されているCANIDをどのように扱うかに関してはいくつかのバリエーションがあり、詳細については後述する。メッセージ生成部32cは、生成したメッセージを送受信回路33へ与える。
【0054】
CANコントローラ23の送受信回路33は、CANバス3に対するメッセージの送受信、及び、メッセージ送信が衝突した際のアービトレーション処理等を行う。送受信回路33は、送信部33a、受信部33b及び調停部33c等を備えている。送信部33aは、制御回路32から与えられたデジタルのメッセージをCANの通信規格に従う電気信号に変換してCANバス3へ出力することによって、メッセージを送信する。受信部33bは、CANバス3の電位をサンプリングして取得することにより、CANバス3上へ送信されたメッセージを受信する。
【0055】
調停部33cは、CANバス3に対して複数のECU2が同時的にメッセージ送信を行った場合に、いずれのメッセージ送信を実施するかを決定するアービトレーション処理を行う。アービトレーション処理では、アービトレーションフィールドに格納された値が最も小さいメッセージに対して送信権が与えられ、これ以外のメッセージは送信することができない。本実施の形態に係る通信システムでは、余裕時間に係る情報をアービトレーション処理に用いることによって、余裕時間が短いメッセージを優先して送信する通信プロトコルが実現できる。調停部33cは、アービトレーション処理により自装置に対する送信権が与えられたと判断した場合、送信部33aによるメッセージ送信を継続して行わせる。調停部33cは、送信権が与えられなかったと判断した場合、送信部33aによるメッセージ送信を停止する。この場合には、アービトレーション処理によりメッセージ送信を停止した旨が調停部33cから制御回路32へ通知される。この通知に応じて制御回路32は、所定の待機時間の後にメッセージ生成部32cによるメッセージの生成を再度行い、メッセージの再送信を試みる。
【0056】
<メッセージ形式>
上述のように、CANコントローラ23にて生成されてCANバス3へ送信されるメッセージの形式には、いくつかのバリエーションが考えられる。以下、本実施の形態に係る通信システムにて採用され得る3つのバリエーションについて説明する。アービトレーションフィールドに余裕時間を格納する構成を採用することによって、複数のECU2が同じ余裕時間をアービトレーションフィールドに格納したメッセージを同時的に送信する可能性がある。このため、同じ余裕時間が設定された複数のメッセージを区別する方法が必要である。以下の3つのメッセージ形式は、この区別を実現するためのバリエーションである。
【0057】
(第1のメッセージ形式)
図5は、第1のメッセージ形式を説明するための模式図である。CANの通信規格に従うメッセージには、アービトレーションフィールド、コントロールフィールド、データフィールド、CRC(Cyclic Redundancy Check)フィールド及びACKフィールド等が含まれる。第1のメッセージ形式では、アービトレーションフィールドに余裕時間及びCANIDが共に格納される。ただし余裕時間が上位ビット側に格納され、CANIDが下位ビット側に格納される。
【0058】
CANコントローラ23のメッセージ生成部32cは、余裕時間算出部32bが算出した余裕時間に係る情報を送信メッセージのアービトレーションフィールドの上位に格納する。メッセージ生成部32cは、メッセージ保持用レジスタ31bに格納されたメッセージ、即ちプロセッサ21が生成したメッセージのアービトレーションフィールドに設定されたCANIDを取得する。メッセージ生成部32cは、取得したCANIDを送信メッセージのアービトレーションフィールドの下位に格納する。本実施の形態においては、アービトレーションフィールドに余裕時間及びCANIDを格納するため、メッセージ生成部32cが生成するメッセージのアービトレーションフィールドは、拡張フォーマットが採用される。プロセッサ21がメッセージ保持用レジスタ31bに格納するメッセージのアービトレーションフィールドは通常フォーマットである。
【0059】
アービトレーションフィールドは、通常フォーマットでは11ビットであり、拡張フォーマットでは29ビットである。メッセージ生成部32cが生成するメッセージは、例えば拡張フォーマットのアービトレーションフィールドに対して、18ビットが余裕時間の情報格納に割り当てられ、11ビットがCANIDの情報格納に割り当てられる。カウンタ32aを動作させるクロック信号の周期が2μ秒である場合、18ビットは約500m秒の余裕時間を表現し得る。CANIDの11ビットは、2047通りのメッセージを識別し得る。
【0060】
ただし、アービトレーションフィールドのビットの割り当ては上記に限らない。メッセージの種別が十分に少ない場合には、CANIDのビット割り当てが削減され、余裕時間のビット割り当てが増加され得る。例えばアービトレーションフィールドの20ビットを余裕時間に割り当て、9ビットをCANIDに割り当てることが考えられる。この場合にアービトレーションフィールドの情報は、約2秒の余裕時間と、511通りのメッセージのIDとを表現できる。例えばアービトレーションフィールドの24ビットを余裕時間に割り当て、5ビットをCANIDに割り当てることが考えられる。この場合にアービトレーションフィールドの情報は、約33秒の余裕時間と、31通りのメッセージのIDとを表現できる。
【0061】
(第2のメッセージ形式)
図6は、第2のメッセージ形式を説明するための模式図である。第2のメッセージ形式では、アービトレーションフィールドに余裕時間及び装置IDが格納される。CANIDは、データフィールドの一部に格納される。装置IDは、車両1内においてCANバス3に接続される装置に対して一意的に定められるIDである。装置IDは、例えばレジスタ群31の1つに装置IDを保持するレジスタを設け、プロセッサ21が初期化処理の際にこのレジスタに装置IDを設定する。装置IDは記憶部22に予め記憶されており、プロセッサ21は初期化処理の際に記憶部22から装置IDを読み出してCANコントローラ23のレジスタ群31に設定する。第2のメッセージ形式においては、CANIDがメッセージのデータフィールドに格納されるため、データフィールドにある程度の空き容量が必要である。
【0062】
車両1の装置毎に定められる装置IDは、メッセージの種別を識別するCANIDと比較して十分に少なくてよい可能性が高い。例えば拡張フォーマットのアービトレーションフィールドの29ビットに対して、装置IDに4ビットが割り当てられることで、15個の装置が識別される。この場合には、余裕時間に25ビットが割り当てられることとなり、25ビットのデータは約67秒の余裕時間を表現できる。
【0063】
(第3のメッセージ形式)
図7は、第3のメッセージ形式を説明するための模式図である。第3のメッセージ形式では、アービトレーションフィールドに余裕時間に係る情報のみが格納される。CANIDはデータフィールドに格納される。第3のメッセージ形式の場合、アービトレーションフィールドは通常フォーマット又は拡張フォーマットのいずれであってもよい。余裕時間が11ビットで足りる場合には、アービトレーションフィールドは通常フォーマットが採用され得る。
【0064】
第3のメッセージ形式においては、同じ余裕時間が設定された複数のメッセージが送信された場合、アービトレーション処理の結果として複数のECU2が送信権を獲得したと判断する可能性がある。この場合、複数のECU2がメッセージを送信するため、メッセージの送信がエラー等により中断される。メッセージの送信が中断された場合、ECU2は所定の待機時間の経過後にこのメッセージの再送信を試みる。第3のメッセージ形式を採用する場合、通信システムでは各ECU2によるメッセージ再送信までの待機時間が異なる時間に設定される。なお1つのCANバス3に接続される複数の装置について、メッセージの再送信までの待機時間は、必ず異なる時間に設定される。これにより、同じ余裕時間が設定された複数のメッセージが、再送信においても衝突することが回避される。
【0065】
各ECU2の待機時間の設定は、記憶部22に記憶され得る。ただし、記憶部22に待機時間自体を記憶するのではなく、例えばECU2毎に異なる装置ID等の情報に基づいて待機時間が算出されてもよい。待機時間の計時をCANコントローラ23が行う場合には、CANコントローラ23のレジスタ群31に待機時間を保持するレジスタが設けられ、初期化処理においてプロセッサ21がこのレジスタに待機時間を設定する。
【0066】
<メッセージ調停方法>
図8は、本実施の形態に係る通信システムによるメッセージ調停方法を説明するための模式図である。図中の太矢印で示す横軸は、時刻tを表す時間軸である。この時間軸の上側に第1のECU2によるメッセージ送信のタイミングを示し、下側に第2のECU2によるメッセージ送信のタイミングを示す。本例においては、第1のECU2が送信するメッセージのデッドライン時間と、第2のECU2が送信するメッセージのデッドライン時間とは、同じ時間が設定されているものとする。
【0067】
例えば時刻t0において、第1のECU2にてプロセッサ21からCANコントローラ23へのメッセージの送信要求がなされたものとする。この時刻t0の時点では、CANバス3にて他のECU2によるメッセージ送信が行われているため、これが終了するまで、第1のECU2によるメッセージ送信は待機される。次いで、時刻t1において、第2のECU2にてプロセッサ21からCANコントローラ23へのメッセージの送信要求がなされたものとする。この時刻t1の時点においても、CANバス3にて他のECU2によるメッセージ送信が行われており、第2のECU2によるメッセージ送信は待機される。
【0068】
その後、時刻t2の時点で他のECU2によるメッセージ送信が終了し、第1のECU2及び第2のECU2によるメッセージ送信が試みられる。2つのECU2が同時的にメッセージ送信を試みたため、両ECU2ではそれぞれアービトレーション処理が行われる。ここで、第1のECU2によるメッセージ送信のデッドライン時刻をt3とし、第2のECU2によるメッセージ送信のデッドライン時刻をt4とする。本例では、デッドライン時刻t3は、デッドライン時刻t4より早いタイミングで訪れる。このため、時刻t2における第1のECU2が送信するメッセージに付される余裕時間は、第2のECU2が送信するメッセージに付される余裕時間より短い。よって、両ECU2にてアービトレーション処理が行われることにより、第1のECU2がメッセージの送信権を獲得し、第2のECU2はメッセージの送信を待機する必要が生じる。第2のECU2は、第1のECU2によるメッセージ送信が終了した場合に、自身のメッセージの再送信を試みる。
【0069】
図9は、本実施の形態に係るECU2のCANコントローラ23が行うメッセージ送信処理の手順を示すフローチャートである。本実施の形態に係るCANコントローラ23は、例えばECU2の起動時等にプロセッサ21がレジスタ群31に対して記憶する各種の設定値を受け付けることにより、初期化処理を行う(ステップS1)。初期化処理の終了後、CANコントローラ23は、プロセッサ21からメッセージの送信要求が与えられたか否かを判定する(ステップS2)。送信要求が与えられていない場合(S2:NO)、CANコントローラ23は、送信要求が与えられるまで待機する。
【0070】
プロセッサ21からメッセージの送信要求が与えられた場合(S2:YES)、CANコントローラ23は、制御回路32のカウンタ32aによる計時を開始する(ステップS3)。次いでCANコントローラ23は、CANバス3に対するメッセージ送信が可能であるか否かを判定する(ステップS4)。ここでCANコントローラ23は、CANバス3にて他のECU2によるメッセージ送信が行われているか否かに基づいて、メッセージ送信が可能であるか否かを判定する。メッセージ送信が可能でない場合(S4:NO)、CANコントローラ23は、メッセージ送信が可能となるまで待機する。
【0071】
CANバス3に対するメッセージ送信が可能である場合(S4:YES)、CANコントローラ23は、この時点でカウンタ32aのカウント値を取得する(ステップS5)。CANコントローラ23の余裕時間算出部32bは、このメッセージについてデッドライン保持用レジスタ31aに保持されたデッドライン時間と、ステップS5にて取得したカウント値に基づいて、送信完了までの余裕時間を算出する(ステップS6)。CANコントローラ23のメッセージ生成部32cは、算出した余裕時間に関する情報がアービトレーションフィールドに格納されたメッセージを生成する。CANコントローラ23は、生成したメッセージの送信を試みると共に、もし他のECU2のメッセージ送信と衝突した場合にはアービトレーション処理を行う(ステップS7)。
【0072】
CANコントローラ23は、メッセージの送信が完了したか否かを判定する(ステップS8)。例えばアービトレーション処理にて送信権を獲得できなかった場合等、メッセージの送信が完了していない場合(S8:NO)、CANコントローラ23は、ステップS4へ処理を戻す。メッセージの送信が完了した場合(S8:YES)、CANコントローラ23は、カウンタ32aの計測を停止してリセットし(ステップS9)、ステップS2へ処理を戻す。
【0073】
<まとめ>
以上の構成の本実施の形態に係るECU2は、他のECU2へ送信すべきメッセージについて、このメッセージの送信を完了すべき時点(デッドライン時刻)までの余裕時間を算出する。ECU2は、メッセージの送信を試みる時点で算出された余裕時間に応じた情報を、アービトレーション処理のための情報としてこのメッセージに付して送信を試みる。ECU2は、自身のメッセージ送信と、CANバス3に接続された他のECU2のメッセージ送信とが衝突した場合、いずれのメッセージ送信を優先して行うかを決定するアービトレーション処理を行う。ECU2は、各メッセージに付された余裕時間の情報に基づいて、余裕時間が少ないメッセージの送信を優先するようにアービトレーション処理を行う。これにより通信システムは、メッセージの余裕時間に応じて優先度を変動させたアービトレーション処理が可能となり、特定のメッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【0074】
本実施の形態に係るECU2は、メッセージの余裕時間に応じた情報と、CANID又は装置ID等の識別情報とを、アービトレーション処理のための情報としてメッセージに付す。これによりECU2は、余裕時間が同じ値の複数のメッセージが同時的に送信された場合であっても、識別情報に基づいてアービトレーション処理を行うことができる。
【0075】
本実施の形態に係るECU2は、複数のECU2によるメッセージの送信が重複し、メッセージが送信できなかった場合に、所定の待機時間の経過後にこのメッセージの再送信を試みる。CANバス3に接続された複数のECU2について、このメッセージの再送信までの待機時間はECU2毎に異なる時間が設定される。これにより、余裕時間が同じ値のメッセージが同時的に送信されて共に送信ができなかった場合であっても、メッセージの再送信のタイミングに差を設けることができる。
【0076】
本実施の形態に係るECU2は、プロセッサ21及びCANコントローラ23を備える。CANコントローラ23は、プロセッサ21の処理に応じてメッセージの送受信を行うと共に、上述の余裕時間の算出及びアービトレーション処理等を行う。CANコントローラ23は、メッセージの送信を完了すべき時間に関する情報、即ちデッドライン時間をレジスタ群31に記憶する。CANコントローラ23は、プロセッサ21からメッセージの送信要求が与えられた時点、及び、レジスタ群31に記憶したデッドライン時間に基づいて、メッセージの余裕時間を算出する。これにより、プロセッサ21及びこのプロセッサ21上で実行されるプログラム22a等は、メッセージの余裕時間の算出及びアービトレーション処理等を行う必要がない。
【0077】
本実施の形態に係るECU2は、CANの通信規格に従ってメッセージの送受信を行う。ECU2は、算出した余裕時間に応じた情報を、CANのメッセージのアービトレーションフィールドに格納する。CANの通信規格では、アービトレーションフィールドに格納された値が小さいほど優先度が高いものとしてアービトレーション処理が行われる。アービトレーションフィールドに余裕時間に応じた情報を格納することで、格納された値が小さい、即ち余裕時間が短いメッセージの送信が優先して行われる。
【0078】
なお本実施の形態においては、車両1に搭載された通信システムを例に説明を行ったが、本技術の適用は車載の通信システムに限らない。船舶又は飛行機等の移動体に同様の構成の通信システムを搭載してもよい。工場又はオフィス等に設けられた通信システムに同様の構成を採用してもよい。本実施の形態に係る通信システムは、CANの通信規格に従ってメッセージの送受信を行うが、これ以外の通信規格を採用してもよい。通信システムが採用する通信規格は、バス型のネットワークを対象としたものに限らず、例えばスター型又はピアツーピア等の種々のネットワーク構成を対象としてものであってよい。
【0079】
本実施の形態に係るECU2が備えるプロセッサ21及びCANコントローラ23の役割分担は、上述のものに限らない。例えばプロセッサ21が余裕時間を算出してもよい。ECU2はプロセッサ21及びCANコントローラ23を別に備えるのではなく、CANコントローラ23を内蔵したプロセッサを備えてもよい。
【0080】
本実施の形態に係るCANコントローラ23は、カウンタ32aのカウントアップにて時間を計測し、デッドライン保持用レジスタ31aに保持されたデッドライン時間から計測時間を引くことによって余裕時間を算出している。しかし、CANコントローラ23は、デッドライン時間をカウンタ32aの初期値として設定し、カウンタ32aをカウントダウンすることで余裕時間を取得してもよい。
【0081】
(変形例1)
変形例1に係る通信システムは、上述のように余裕時間をアービトレーションフィールドに格納したメッセージを送信するECU2と、従来のCANIDをアービトレーションフィールドに格納したメッセージを送信するECU2とが混在する。メッセージのアービトレーションフィールドに余裕時間又はCANIDのいずれの情報が格納されていても、CANコントローラ23はこれらの情報を単なる2値のデジタル情報として扱うことでアービトレーション処理を行う。CANコントローラ23は、アービトレーションフィールドに格納されたデジタル情報の数値が小さいものを優先すればよい。
【0082】
(変形例2)
変形例2に係るECU2のCANコントローラ23では、送信するメッセージのアービトレーションフィールドに格納する情報を、余裕時間又はCANIDのいずれとするかをプロセッサ21が選択可能である。変形例2に係るCANコントローラ23のレジスタ群31には、余裕時間又はCANIDのいずれをメッセージに付すかの選択を設定するレジスタが含まれている。プロセッサ21は、このレジスタに対して設定を行い、CANコントローラ23へメッセージの送信要求を与える。CANコントローラ23は、レジスタに設定された設定に応じて、余裕時間又はCANIDのいずれかをアービトレーションフィールドに格納し、メッセージを送信する。
【0083】
変形例1及び変形例2に示すように、本実施の形態に係る通信システムでは、アービトレーションフィールドに余裕時間を格納したメッセージの送信と、CANIDを格納した従来形式のメッセージの送信とが混在可能である。このため、既存の通信システムに含まれる一部のECU2にのみ、余裕時間に基づくアービトレーション処理を導入することが可能である。
【0084】
なお変形例1及び変形例2においてECU2は、CANIDを格納する場合には通常フォーマットのアービトレーションフィールドを用い、余裕時間を格納する場合には拡張フォーマットのアービトレーションフィールドを用いてもよい。この場合、アービトレーション処理において、通常フォーマットのアービトレーションフィールドを有するメッセージが優先されてもよい。
【0085】
(実施の形態2)
実施の形態2は、複数のCANバス3間のメッセージ送受信を中継するゲートウェイ4に関する。実施の形態2に係るゲートウェイ4は、一のCANバス3にて受信したメッセージに付された余裕時間を考慮して、他のCANバス3から中継して送信するメッセージの余裕時間を算出する。図10は、実施の形態2に係るゲートウェイ4の構成を示すブロック図である。実施の形態2に係るゲートウェイ4は、プロセッサ41、記憶部(ストレージ)42及び複数のCANコントローラ23等を備えて構成されている。
【0086】
プロセッサ41は、記憶部42に記憶されたプログラム42aを読み出して実行することにより、複数のCANバス3の間のメッセージを中継する処理等の種々の処理を行う。記憶部42は、例えばフラッシュメモリ又はEEPROM等の不揮発性のメモリ素子を用いて構成されている。記憶部42は、プロセッサ41が実行するプログラム42aを含む種々のデータを記憶している。
【0087】
プログラム42aは、例えばゲートウェイ4の製造段階において記憶部42に書き込まれてもよい。例えばプログラム42aは、遠隔のサーバ装置などが配信するものをゲートウェイ4が通信にて取得してもよい。例えばプログラム42aは、メモリカード又は光ディスク等の記録媒体に記録されたプログラム42aをゲートウェイ4が読み出して記憶部42に記憶してもよい。例えばプログラム42aは、記録媒体に記録されたものを書込装置が読み出してゲートウェイ4の記憶部42に書き込んでもよい。プログラム42aは、ネットワークを介した配信の態様で提供されてもよく、記録媒体に記録された態様で提供されてもよい。
【0088】
実施の形態2においてゲートウェイ4は、2つのCANコントローラ23を備えている。ただしゲートウェイ4は、3つ以上のCANコントローラ23を備えていてもよい。CANコントローラ23は、それぞれCANバス3が接続され、CANバス3を介したメッセージの送受信を行う。CANコントローラ23は、ECU2が備えるCANコントローラ23と同じものであってよい。CANコントローラ23は、プロセッサ41から与えられた送信用のメッセージをCANの通信規格に応じた電気信号に変換してCANバス3へ出力することにより、他の車載装置へのメッセージ送信を行う。CANコントローラ23は、CANバス3の電位をサンプリングして取得することにより他の車載装置からのメッセージを受信し、受信したメッセージをプロセッサ41へ与える。
【0089】
実施の形態2に係るゲートウェイ4では、記憶部42に記憶されたプログラム42aをプロセッサ41が読み出して実行することにより、初期化処理部41a、送信要求処理部41b及び中継処理部41c等がプロセッサ41にソフトウェア的な機能ブロックとして実現される。初期化処理部41aは、ゲートウェイ4の起動時等に、CANコントローラ23の初期化処理を行う。送信要求処理部41bは、送信すべきメッセージを生成してCANコントローラ23へ与えることによって、このメッセージの送信を要求する。中継処理部41cは、一のCANコントローラ23にて受信したメッセージを、他のCANコントローラ23から送信する処理を行う。実施の形態2に係るゲートウェイ4は、メッセージを中継する際に、このメッセージの余裕時間及びデッドライン時間を伝播させる。
【0090】
図11は、メッセージの余裕時間及びデッドライン時間の伝播を説明するための模式図である。図11の上段には、ECU2が最初にメッセージを送信した際のタイミングチャートが示されている。ECU2のプロセッサ21からCANコントローラ23へメッセージの送信要求が与えられた時点の送信要求時刻t0に対し、設定されたデッドライン時間が経過した時点がデッドライン時刻tdである。本例では、送信要求時刻t0からある程度の待機時間が経過した時刻t1にECU2のメッセージ送信がなされている。このメッセージは、メッセージ長に依存する所定の送信時間が経過した時刻t2にて送信を終了している。このとき、メッセージのアービトレーションフィールドに格納される余裕時間は、時刻t1からデッドライン時刻tdまでの時間である。
【0091】
図11の下段には、ゲートウェイ4がメッセージを中継する際のタイミングチャートが示されている。ゲートウェイ4は、一のCANバス3に接続されたECU2が送信したメッセージを受信し、このメッセージを他のCANバス3から送信することで、2つのCANバス3間のメッセージ中継を行う。ゲートウェイ4は、受信したメッセージのアービトレーションフィールドに格納された余裕時間を取得する。ゲートウェイ4は、取得した余裕時間から、このメッセージの送信時間と、ゲートウェイ4の内部処理に要した時間とを差し引いた時間を算出する。算出した時間は、中継するメッセージを送信する際の新たなデッドライン時間として用いることができる。図示の例では、ゲートウェイ4の内部処理に要した時間は0とし、時刻t2においてメッセージを受信したゲートウェイ4のプロセッサ41が、時刻t2においてこのメッセージの送信をCANコントローラ23へ要求している。このため、伝播したデッドライン時間は、時刻t2からデッドライン時刻tdまでの時間である。
【0092】
実施の形態2に係るゲートウェイ4のプロセッサ41は、一のCANコントローラ23から与えられた受信メッセージを、他のCANコントローラ23に対して送信メッセージとして与える。このときにプロセッサ41は、受信メッセージに格納された余裕時間から算出した新たなデッドライン時間を、他のCANコントローラ23のデッドライン保持用レジスタ31aに設定し、メッセージの送信を要求する。送信要求を受けたCANコントローラ23は、プロセッサ41によりデッドライン保持用レジスタ31aに新たに設定されたデッドライン時間を用いて、メッセージの送信処理及びアービトレーション処理を行う。ここで行われるメッセージの送信処理及びアービトレーション処理は、ECU2のCANコントローラ23にて行われる上述の処理と同様である。
【0093】
なお、ゲートウェイ4は、受信メッセージの余裕時間を中継メッセージに伝播させるか否かを選択可能であってよい。例えばゲートウェイ4は、メッセージのCANID毎に余裕時間を伝播させるか否かの設定を記憶部42に記憶していてもよい。余裕時間を伝播させない場合、ゲートウェイ4は、中継するメッセージに対して新たなデッドライン時間を設定する。またゲートウェイ4は、余裕時間を伝播させる場合であっても、受信メッセージから取得した余裕時間に対して適宜に時間を増減して新たなデッドライン時間を決定してもよい。
【0094】
図示の例では、送信要求時刻t2からある程度の待機時間が経過した時刻t3にゲートウェイ4のメッセージ送信がなされている。このメッセージは、メッセージ長に依存する所定の送信時間が経過した時刻t4にて送信を終了している。このとき、メッセージのアービトレーションフィールドに格納される余裕時間は、時刻t3からデッドライン時刻tdまでの時間である。
【0095】
実施の形態2に係る通信システムのECU2では、プロセッサ21がデッドライン保持用レジスタ31aに初期設定したデッドライン時間を用いて、CANコントローラ23がメッセージの送信を行う。これに対してゲートウェイ4では、プロセッサ21がメッセージを中継する毎にデッドライン時間を算出し、算出したデッドライン時間をデッドライン保持用レジスタ31aに設定してメッセージの送信をCANコントローラ23に要求する。ゲートウェイ4のCANコントローラ23は、その都度に設定されるデッドライン時間を用いてメッセージの送信を行う。
【0096】
図12は、実施の形態2に係るゲートウェイ4が行うメッセージ中継処理の手順を示すフローチャートである。実施の形態2に係るゲートウェイ4のプロセッサ41は、いずれかのCANコントローラ23にてメッセージを受信したか否かを判定する(ステップS21)。メッセージを受信していない場合(S21:NO)、プロセッサ41は、いずれかのCANコントローラ23にてメッセージを受信するまで待機する。
【0097】
いずれかのCANコントローラ23にてメッセージを受信した場合(S21:YES)、プロセッサ41は、受信したメッセージの中継に際して、受信メッセージに付された余裕時間を伝播させるか否かを判定する(ステップS22)。余裕時間を伝播させるか否かは、例えば受信メッセージに付されたCANIDに基づいて判断される。余裕時間を伝播させない場合(S22:NO)、プロセッサ41は、中継先となるCANコントローラ23のメッセージ保持用レジスタ31bに中継するメッセージを設定し、このメッセージの送信要求を与えて(ステップS26)、処理を終了する。
【0098】
余裕時間を伝播させる場合(S22:YES)、プロセッサ41は、受信したメッセージのアービトレーションフィールドに格納された余裕時間に関する情報を取得する(ステップS23)。プロセッサ41は、取得した余裕時間と、このメッセージの送信に要した時間及びゲートウェイ4の内部処理に要した時間等とに基づいて、新たなデッドライン時間を算出する(ステップS24)。プロセッサ41は、メッセージを受信したCANコントローラ23とは別のCANコントローラ23に対して、算出したデッドライン時間をデッドライン保持用レジスタ31aに設定する(ステップS25)。プロセッサ41は、このCANコントローラ23のメッセージ保持用レジスタ31bに中継するメッセージを設定し、このメッセージの送信要求を与えて(ステップS26)、処理を終了する。
【0099】
以上の構成の実施の形態2に係る通信システムでは、複数のCANバス3が接続されたゲートウェイ4が、一のCANバス3にて受信したメッセージを他のCANバス3から送信するメッセージの中継処理を行う。ゲートウェイ4は、受信したメッセージのアービトレーションフィールドに格納された余裕時間に応じた情報を取得する。ゲートウェイ4は、受信メッセージから取得した余裕時間に基づいて、このメッセージを中継する際のデッドライン時間を算出する。ゲートウェイ4は、算出したデッドライン時間に基づいて、中継により送信するメッセージの余裕時間を算出する。これにより実施の形態2に係る通信システムでは、ゲートウェイ4がメッセージを中継する際に、メッセージのデッドライン時間及び余裕時間を伝播させて、メッセージの送信処理及びアービトレーション処理を行うことができる。
【0100】
実施の形態2に係る通信システムのその他の構成は、実施の形態1に係る通信システムと同様であるため、同様の箇所には同じ符号を付し、詳細な説明を省略する。
【0101】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本開示の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0102】
1 車両
2 ECU(通信装置)
3 CANバス(通信線)
4 ゲートウェイ(通信装置)
21 プロセッサ
21a 初期化処理部
21b 送信要求処理部
22 記憶部
22a プログラム
23 CANコントローラ(通信コントローラ)
31 レジスタ群(記憶部)
31a デッドライン保持用レジスタ
31b メッセージ保持用レジスタ
32 制御回路
32a カウンタ
32b 余裕時間算出部(算出部)
32c メッセージ生成部
33 送受信回路
33a 送信部
33b 受信部
33c 調停部
41 プロセッサ(取得部)
41a 初期化処理部
41b 送信要求処理部
41c 中継処理部
42 記憶部
42a プログラム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12