(57)【要約】【課題】メッセージの送信が長期間に亘って阻害され続けることを抑制できる通信装置、通信システム及びメッセージ調停方法を提供する。【解決手段】本実施の形態に係る通信装置は、共有の通信線に接続された他の装置との間でメッセージを送受信する通信装置であって、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部と、前記算出部が算出した余裕時間に応じた情報を前記メッセージに付して送信する送信部と、メッセージに付された前記情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う調停部とを備え、前記調停部は、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う。【選択図】図４
2020150456.tif 000002
【特許請求の範囲】
【請求項１】
共有の通信線に接続された他の装置との間でメッセージを送受信する通信装置であって、
送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部と、
前記算出部が算出した余裕時間に応じた情報を前記メッセージに付して送信する送信部と、
メッセージに付された前記情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う調停部と
を備え、
前記調停部は、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う、通信装置。
【請求項２】
前記送信部は、前記算出部が算出した余裕時間に応じた情報と、メッセージを識別する識別情報又は装置を識別する識別情報とを前記メッセージに付して送信する、請求項１に記載の通信装置。
【請求項３】
プロセッサと、
前記算出部、前記送信部及び前記調停部を有し、前記プロセッサの処理に応じて前記通信線に対するメッセージの送受信を行う通信コントローラと
を備え、
前記通信コントローラは、メッセージの送信を完了すべき時間に係る情報を記憶する記憶部を有し、
前記算出部は、前記プロセッサからメッセージの送信要求を与えられた時点、及び、前記記憶部に記憶した情報に基づいて前記余裕時間を算出する、請求項１又は請求項２に記載の通信装置。
【請求項４】
前記メッセージは、ＣＡＮ（Controller Area Network）の通信規格に従うメッセージであり、
前記送信部は、前記余裕時間に応じた情報を、ＣＡＮのメッセージのアービトレーションフィールドに格納して送信する、請求項１から請求項３までのいずれか１項に記載の通信装置。
【請求項５】
複数の通信線に接続され、
一の通信線にて受信したメッセージを他の通信線から送信する処理を行う中継部と、
前記一の通信線にて受信したメッセージに付された前記余裕時間に応じた情報を取得する取得部と
を備え、
前記算出部は、前記取得部が取得した情報に基づいて、中継するメッセージの余裕時間を算出する、請求項１から請求項４までのいずれか１項に記載の通信装置。
【請求項６】
前記送信部は、前記調停部による調停のための情報として、前記算出部が算出した余裕時間に係る情報、又は、前記メッセージに対して静的に定められた識別情報のいずれかを選択的にメッセージに付して送信する、請求項１から請求項５までのいずれか１項に記載の通信装置。
【請求項７】
共有の通信線に接続された複数の通信装置がメッセージを送受信する通信システムであって、
前記通信装置は、
送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部と、
前記算出部が算出した余裕時間に応じた情報を前記メッセージに付して送信する送信部と、
メッセージに付された前記情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う調停部と
を備え、
前記調停部は、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う、通信システム。
【請求項８】
前記送信部は、メッセージを送信できなかった場合に、所定の待機時間の経過後に前記メッセージを再送信し、
前記待機時間は、前記通信装置毎に異なる時間が設定されている、請求項７に記載の通信システム。
【請求項９】
前記複数の通信装置には、
前記余裕時間に応じた情報を前記調停部の調停に用いる情報としてメッセージに付す通信装置と、
メッセージに対して静的に定められた識別情報を前記調停部の調停に用いる情報として前記メッセージに付す通信装置と
を含む、請求項７又は請求項８に記載の通信システム。
【請求項１０】
共通の通信線に接続された複数の通信装置によるメッセージ送信が重複した際の調停を行うメッセージ調停方法であって、
各通信装置が、
送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出し、
算出した余裕時間に応じた情報を前記メッセージに付して送信し、
メッセージに付された前記情報に基づき、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う、メッセージ調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、共通の通信線を介してメッセージを送受信する通信装置、通信システム及びメッセージ調停方法に関する。
【背景技術】
【０００２】
従来、車両にはＥＣＵ（Electronic Control Unit）等の装置が複数搭載されている。これら複数の装置は通信線を介して相互に接続され、メッセージの送受信を行うことにより情報を交換し、協働により車両の種々の機能を実現している。車両内の通信には、ＣＡＮ（Controller Area Network）の通信規格が広く採用されている。
【０００３】
特許文献１においては、車両内に配されるＣＡＮの通信線を多系統に分割した場合に、通信線間の通信を効率よく調停することが期待できる車載ネットワーク拡張装置が提案されている。この車載ネットワーク拡張装置は、通信線間で通信の衝突が生じた際に、メッセージに付与された優先度に基づいて通信線間の通信を調停する回路を備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７７８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＡＮの通信規格においては、通信線に対するメッセージの送信が衝突した場合に、各通信装置にて調停処理（アービトレーション（arbitration）処理）が行われる。調停処理の結果、いずれか１つのメッセージの送信が許可され、これ以外のメッセージの送信は中止される。いずれのメッセージ送信を優先するかは、メッセージに対して付されたＩＤに基づいて決定される。ＣＡＮのＩＤは、その値が小さいほど優先度が高いことを示す。ＣＡＮのＩＤは、例えば通信装置又は通信システムの設計段階等において静的に決定される。従来のＣＡＮの調停処理においては、優先度が低いメッセージの送信が、優先度が高いメッセージの送信により阻害され続ける虞があった。
【０００６】
本開示は、斯かる事情に鑑みてなされたものであって、その目的とするところは、メッセージの送信が長期間に亘って阻害され続けることを抑制できる通信装置、通信システム及びメッセージ調停方法を提供することにある。
【課題を解決するための手段】
【０００７】
本態様に係る通信装置は、共有の通信線に接続された他の装置との間でメッセージを送受信する通信装置であって、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部と、前記算出部が算出した余裕時間に応じた情報を前記メッセージに付して送信する送信部と、メッセージに付された前記情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う調停部とを備え、前記調停部は、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う。
【０００８】
本願は、このような特徴的な処理部を備える通信装置として実現することができるだけでなく、かかる特徴的な処理をステップとするメッセージ調停方法として実現したり、かかるステップをコンピュータに実行させるためのコンピュータプログラムとして実現したりすることができる。通信装置の一部又は全部を実現する半導体集積回路として実現したり、通信装置を含むその他の装置又はシステムとして実現したりすることができる。
【発明の効果】
【０００９】
上記によれば、メッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態に係る通信システムの概要を説明するための模式図である。
【図２】メッセージの余裕時間を説明するための模式図である。
【図３】本実施の形態に係るＥＣＵの構成を示すブロック図である。
【図４】本実施の形態に係るＣＡＮコントローラの構成を示すブロック図である。
【図５】第１のメッセージ形式を説明するための模式図である。
【図６】第２のメッセージ形式を説明するための模式図である。
【図７】第３のメッセージ形式を説明するための模式図である。
【図８】本実施の形態に係る通信システムによるメッセージ調停方法を説明するための模式図である。
【図９】本実施の形態に係るＥＣＵのＣＡＮコントローラが行うメッセージ送信処理の手順を示すフローチャートである。
【図１０】実施の形態２に係るゲートウェイの構成を示すブロック図である。
【図１１】メッセージの余裕時間及びデッドライン時間の伝播を説明するための模式図である。
【図１２】実施の形態２に係るゲートウェイが行うメッセージ中継処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
［本開示の実施の形態の説明］
最初に本開示の実施態様を列記して説明する。以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１２】
（１）本態様に係る通信装置は、共有の通信線に接続された他の装置との間でメッセージを送受信する通信装置であって、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部と、前記算出部が算出した余裕時間に応じた情報を前記メッセージに付して送信する送信部と、メッセージに付された前記情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う調停部とを備え、前記調停部は、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う。
【００１３】
本態様にあっては、通信装置が送信するメッセージについて、このメッセージの送信を完了すべき時間までの余裕時間を算出する。通信装置は、メッセージの送信を試みる時点で算出された余裕時間に応じた情報を、調停用情報としてこのメッセージに付して送信を試みる。自身のメッセージ送信と、共通の通信線に接続された他の通信装置のメッセージ送信とが同時的に行われてメッセージ送信の衝突が生じた場合、通信装置はいずれのメッセージの送信を優先して行うかを決定する調停処理を行う。このときに通信装置は、各メッセージに付された余裕時間の情報に基づいて、余裕時間が少ないメッセージの送信を優先するように調停処理を行う。これにより、メッセージの余裕時間に応じて優先度を変動させた調停処理が可能となり、特定のメッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【００１４】
（２）前記送信部は、前記算出部が算出した余裕時間に応じた情報と、メッセージを識別する識別情報又は装置を識別する識別情報とを前記メッセージに付して送信することが好ましい。
【００１５】
本態様にあっては、メッセージの余裕時間に応じた情報と、メッセージの識別情報又は装置の識別情報とを、通信装置が調停用情報としてメッセージに付して送信する。これにより、余裕時間が同じ値の複数のメッセージが同時的に送信された場合であっても、通信装置は識別情報に基づく調停処理を行うことができる。
【００１６】
（３）プロセッサと、前記算出部、前記送信部及び前記調停部を有し、前記プロセッサの処理に応じて前記通信線に対するメッセージの送受信を行う通信コントローラとを備え、前記通信コントローラは、メッセージの送信を完了すべき時間に係る情報を記憶する記憶部を有し、前記算出部は、前記プロセッサからメッセージの送信要求を与えられた時点、及び、前記記憶部に記憶した情報に基づいて前記余裕時間を算出することが好ましい。
【００１７】
本態様にあっては、通信装置がプロセッサ及び通信コントローラを備える。通信コントローラは、プロセッサの処理に応じてメッセージの送受信を行うと共に、上述の余裕時間の算出及びメッセージの調停等の処理を行う。通信コントローラは、メッセージの送信を完了すべき時間に関する情報を記憶する。通信コントローラは、プロセッサからメッセージの送信要求が与えられた時点、及び、記憶部に記憶した時間に関する情報に基づいて、メッセージの余裕時間を算出する。これにより、プロセッサ及びこのプロセッサ上で実行されるアプリケーションプログラム等は、メッセージの余裕時間の算出及び調停等の処理を行う必要がない。
【００１８】
（４）前記メッセージは、ＣＡＮ（Controller Area Network）の通信規格に従うメッセージであり、前記送信部は、前記余裕時間に応じた情報を、ＣＡＮのメッセージのアービトレーションフィールドに格納して送信することが好ましい。
【００１９】
本態様にあっては、通信装置がＣＡＮの通信規格に従ってメッセージの送受信を行う。通信装置は、算出した余裕時間に応じた情報を、ＣＡＮメッセージのアービトレーションフィールドに格納して送信する。ＣＡＮの通信規格では、アービトレーションフィールドに格納された値が小さいほど優先度が高いものとしてメッセージの調停（アービトレーション）が行われる。アービトレーションフィールドに余裕時間に応じた情報を格納することで、格納された値が小さい、即ち余裕時間が短いメッセージの送信が優先される。
【００２０】
（５）複数の通信線に接続され、一の通信線にて受信したメッセージを他の通信線から送信する処理を行う中継部と、前記一の通信線にて受信したメッセージに付された前記余裕時間に応じた情報を取得する取得部とを備え、前記算出部は、前記取得部が取得した情報に基づいて、中継するメッセージの余裕時間を算出することが好ましい。
【００２１】
本態様にあっては、通信装置は複数の通信線に接続され、一の通信線にて受信したメッセージを他の通信線から送信するメッセージの中継処理を行ってもよい。この場合に通信装置は、一の通信線にて受信したメッセージに付された余裕時間に応じた情報を取得する。このメッセージを中継のために他の通信線から送信する場合、通信装置は、取得した情報に基づいて中継するメッセージの余裕時間を算出する。例えば通信装置は、取得した情報に基づく余裕時間をこのメッセージの送信を完了すべき時間として、中継するメッセージの余裕時間を算出することができる。これにより、メッセージが一又は複数の通信装置にて中継される場合に、余裕時間を伝播させてメッセージの送信及び調停等の処理を行うことができる。
【００２２】
（６）前記送信部は、前記調停部による調停のための情報として、前記算出部が算出した余裕時間に係る情報、又は、前記メッセージに対して静的に定められた識別情報のいずれかを選択的にメッセージに付して送信することが好ましい。
【００２３】
本態様にあっては、通信装置は上記の余裕時間に係る情報を付したメッセージ送信と、静的に定められた識別情報を付したメッセージ送信とを選択的に行うことが可能である。各通信装置による調停は、余裕時間に係る情報と、静的に定められた識別情報とを区別することなく、いずれも同様の数値的な情報として扱うことで可能である。通信装置は、余裕時間に係る情報又は識別情報のいずれを付してメッセージを送信するかを適宜に選択することができる。
【００２４】
（７）本態様に係る通信システムは、共有の通信線に接続された複数の通信装置がメッセージを送受信する通信システムであって、前記通信装置は、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出する算出部と、前記算出部が算出した余裕時間に応じた情報を前記メッセージに付して送信する送信部と、メッセージに付された前記情報に基づいて、前記通信線に対するメッセージ送信が重複した際の調停を行う調停部とを備え、前記調停部は、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う。
【００２５】
本態様にあっては、態様（１）と同様に、メッセージの余裕時間に応じて優先度を変動させた調停処理が可能となり、特定のメッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【００２６】
（８）前記送信部は、メッセージを送信できなかった場合に、所定の待機時間の経過後に前記メッセージを再送信し、前記待機時間は、前記通信装置毎に異なる時間が設定されていることが好ましい。
【００２７】
本態様にあっては、複数の通信装置によるメッセージの送信が重複し、調停処理によりメッセージが送信できなかった場合等に、通信装置は所定の待機時間の経過後にこのメッセージの再送信を試みる。共通の通信線に接続された複数の通信装置について、メッセージの再送信までの待機時間は通信装置毎に異なる時間が設定される。これにより、余裕時間が同じ値の複数のメッセージが同時的に送信されて共に送信できなかった場合であっても、次のメッセージ送信のタイミングに差を設けることができる。
【００２８】
（９）前記複数の通信装置には、前記余裕時間に応じた情報を前記調停部の調停に用いる情報としてメッセージに付す通信装置と、メッセージに対して静的に定められた識別情報を前記調停部の調停に用いる情報として前記メッセージに付す通信装置とを含むことが好ましい。
【００２９】
本態様にあっては、余裕時間に応じた情報を付してメッセージを送信する通信装置と、静的に定められた識別情報を付してメッセージを送信する通信装置とが通信システム中に混在可能である。
【００３０】
（１０）本態様に係るメッセージ調停方法は、共通の通信線に接続された複数の通信装置によるメッセージ送信が重複した際の調停を行うメッセージ調停方法であって、各通信装置が、送信すべきメッセージについて、該メッセージの送信を完了すべき時間までの余裕時間を算出し、算出した余裕時間に応じた情報を前記メッセージに付して送信し、メッセージに付された前記情報に基づき、前記通信線に対して重複して送信された複数のメッセージについて、余裕時間が少ないメッセージを優先する調停を行う。
【００３１】
本態様にあっては、態様（１）と同様に、メッセージの余裕時間に応じて優先度を変動させた調停処理が可能となり、特定のメッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【００３２】
［本開示の実施形態の詳細］
本開示の実施形態に係る通信システムの具体例を、以下に図面を参照しつつ説明する。本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００３３】
＜システム概要＞
図１は、本実施の形態に係る通信システムの概要を説明するための模式図である。本実施の形態に係る通信システムは、車両１に搭載された複数のＥＣＵ２がＣＡＮの通信規格に従ってメッセージの送受信を行うシステムである。複数のＥＣＵ２は、車両１内に配されたＣＡＮバス３にそれぞれ接続される。１つのＣＡＮバス３には、数個から十数個程度のＥＣＵ２が接続され得る。車両１には複数のＣＡＮバス３が設けられていてもよい。この場合には、車両１にゲートウェイ４が搭載される。ゲートウェイ４は、複数のＣＡＮバス３が接続され、これら複数のＣＡＮバス３の間のメッセージの送受信を中継する。図示の例では、車両１には２つのＣＡＮバス３が設けられている。２つのＣＡＮバス３は、ゲートウェイ４に接続されている。各ＣＡＮバス３には、それぞれ４つのＥＣＵ２が接続されている。８つのＥＣＵ２は、２つのＣＡＮバス３及び１つのゲートウェイ４を介して、相互にメッセージを送受信することができる。なお、通信システムに含まれるＥＣＵ２の数、ＣＡＮバス３の数、ゲートウェイ４の数、装置の接続態様及びネットワークの構成等は、図示のものに限らない。
【００３４】
ＥＣＵ２は、例えば例えば車両１のエンジンの動作を制御するＥＣＵ、ドアのロック／アンロックを制御するＥＣＵ、ライトの点灯／消灯を制御するＥＣＵ、エアバッグの動作を制御するＥＣＵ、及び、ＡＢＳ（Antilock Brake System）の動作を制御するＥＣＵ等の種々のＥＣＵが含まれ得る。なお、本実施の形態においては、ＣＡＮバス３を介した通信を行う通信装置としてＥＣＵ２及びゲートウェイ４を挙げるが、通信装置はこれらに限るものではない。
【００３５】
ＣＡＮの通信規格に従うメッセージには、ＣＡＮＩＤと呼ばれる識別情報が、アービトレーションフィールドと呼ばれるメッセージの先頭領域に格納される。ＣＡＮＩＤは、このメッセージに含まれるデータの種別等を示すと共に、このメッセージの優先度を示す情報である。ＣＡＮＩＤは、その値が小さいほど優先度が高いメッセージであることを示す。複数のＥＣＵ２がＣＡＮバス３に対して同時的にメッセージの送信を試みた場合、ＣＡＮの通信システムではメッセージのアービトレーションフィールドに格納されたＣＡＮＩＤの値に基づくアービトレーション（調停）処理が各ＥＣＵ２にて行われる。アービトレーション処理の結果、最も優先度が高い１つのメッセージが送信を許可され、これ以外のメッセージは送信を待機する必要がある。ＣＡＮＩＤは、車両１、通信システム又はＥＣＵ２の設計段階等において設計者により決定される静的な値である。
【００３６】
本実施の形態に係る通信システムでは、メッセージのアービトレーションフィールドに格納する値を各ＥＣＵ２が動的に変化させることによって、メッセージの優先度を動的に変化させる。詳しくは、本実施の形態に係るＥＣＵ２は、メッセージの送信を完了すべき時間に対する余裕時間を算出し、算出した余裕時間に係る情報をメッセージのアービトレーションフィールドに格納して送信する。余裕時間は、その値が小さいほど余裕が少ないことを示す。ＣＡＮの通信規格に従ってアービトレーション処理が行われることによって、余裕時間が少ないメッセージが優先して送信されることとなる。
【００３７】
図２は、メッセージの余裕時間を説明するための模式図であり、横軸を時刻ｔとするメッセージ送信のタイミングチャートを示している。本実施の形態に係るＥＣＵ２は、例えば所定の送信周期Ｔでメッセージ送信を繰り返し行っている。図示の例は、ＥＣＵ２の１番目のメッセージの送信要求時刻をｔ０とし、２番目のメッセージの送信要求時刻をｔ１としている。送信周期Ｔ＝ｔ１−ｔ０である。各メッセージには、送信要求時刻からメッセージの送信を完了すべき時間がデッドライン時間ＴＤとして予め設定されている。図示の例では、送信要求時刻ｔ０に対してデッドライン時間ＴＤが経過した時刻をデッドライン時刻ｔｄとしている。
【００３８】
ＥＣＵ２は、送信要求時刻ｔ０においてメッセージ送信を試みたとしても、自身のメッセージ送信が待機させられる場合がある。これは例えば、既に他のＥＣＵ２によるメッセージ送信が行われている場合、又は、他のＥＣＵ２が同時的にメッセージ送信を試みてアービトレーション処理により自身のメッセージ送信の権利が得られなかった場合等である。このような場合にＥＣＵ２は、所定の待機時間の後にメッセージの再送信を試みる。図示の例では、待機時間が経過した送信開始時刻ｔｓの時点でＥＣＵ２がメッセージの送信権利を獲得し、送信を開始している。メッセージの送信時間は、メッセージのデータサイズに依存し、図示の例では送信終了時刻ｔｅの時点でＥＣＵ２がメッセージの送信を終了している。送信要求時刻ｔ０からメッセージの送信終了時刻ｔｅまでが、このメッセージの遅延時間に相当する。
【００３９】
本実施の形態に係る通信システムにおいては、ＥＣＵ２が送信する各メッセージに対してデッドライン時間ＴＤが予め設定されている。デッドライン時間ＴＤは、メッセージの送信要求時刻ｔ０からこのメッセージの送信を完了すべき時間を規定した設定値である。送信要求時刻ｔ０にデッドライン時間ＴＤを加えた時点をデッドライン時刻ｔｄとすると、メッセージの送信終了時刻ｔｅはデッドライン時刻ｔｄより先である必要がある。ただし、デッドライン時刻ｔｄよりメッセージの送信開始時刻ｔｓが先であればよいとする規則での運用であってもよい。デッドライン時間ＴＤは、このメッセージの送信周期Ｔ以下の時間が設定される。
【００４０】
本実施の形態に係る通信システムにおいては、メッセージの送信開始時刻からデッドライン時刻ｔｄまでの時間を余裕時間とする。ＥＣＵ２は、送信すべきメッセージの余裕時間を算出する。ＥＣＵ２は、送信開始時刻ｔｓにてメッセージの送信権を獲得した際に、このメッセージのアービトレーションフィールドに算出した余裕時間を格納して送信を行う。ＥＣＵ２が算出する余裕時間及びメッセージに格納される余裕時間は、実時間を数値化したものであってよいが、本実施の形態においては通信処理に用いられるクロック信号のクロック数で表される。例えばクロック周期が２μ秒であり、実時間が５００μ秒である場合、クロック数は２５０となる。クロック周期に関する情報は、複数のＥＣＵ２の間で共有される。メッセージに格納される余裕時間に関する情報は、図２に示すメッセージの送信開始時刻ｔｓからデッドライン時刻ｔｄまでの時間に応じたクロック数とすることができる。又は、メッセージの送信終了時刻ｔｅからデッドライン時刻ｔｄまでの時間に応じたクロック数をメッセージに格納してもよい。
【００４１】
各ＥＣＵ２が同様にしてメッセージのアービトレーションフィールドに余裕時間を格納して送信を行う。デッドライン時刻ｔｄまでの余裕時間が短いほど、メッセージに格納される余裕時間の値は小さいものとなる。ＣＡＮのアービトレーション処理においては、メッセージのアービトレーションフィールドに格納された値が小さいほど、優先度が高いメッセージとして扱われる。即ち、本実施の形態に係る通信システムでは、余裕時間が短いメッセージが優先して送信される。
【００４２】
＜装置構成＞
図３は、本実施の形態に係るＥＣＵ２の構成を示すブロック図である。本実施の形態に係るＥＣＵ２は、プロセッサ２１、記憶部（ストレージ）２２及びＣＡＮコントローラ２３等を備えて構成されている。プロセッサ２１は、記憶部２２に記憶されたプログラム２２ａを読み出して実行することにより、車両１の制御処理等の種々の処理を行う。本実施の形態においてプロセッサ２１は、制御処理等において他のＥＣＵ２へのメッセージ送信が必要となった場合に、送信すべきメッセージをＣＡＮコントローラ２３へ与えて、このメッセージの送信を指示する。
【００４３】
記憶部２２は、例えばフラッシュメモリ又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）等の不揮発性のメモリ素子を用いて構成されている。記憶部２２は、プロセッサ２１が実行する各種のプログラム、及び、プロセッサ２１の処理に必要な各種のデータを記憶する。本実施の形態において記憶部２２は、プロセッサ２１が実行するプログラム２２ａを記憶している。
【００４４】
プログラム２２ａは、例えばＥＣＵ２の製造段階において記憶部２２に書き込まれてもよい。例えばプログラム２２ａは、遠隔のサーバ装置などが配信するものをＥＣＵ２が通信にて取得してもよい。例えばプログラム２２ａは、メモリカード又は光ディスク等の記録媒体に記録されたプログラム２２ａをＥＣＵ２が読み出して記憶部２２に記憶してもよい。例えばプログラム２２ａは、記録媒体に記録されたものを書込装置が読み出してＥＣＵ２の記憶部２２に書き込んでもよい。プログラム２２ａは、ネットワークを介した配信の態様で提供されてもよく、記録媒体に記録された態様で提供されてもよい。
【００４５】
ＣＡＮコントローラ２３は、ＣＡＮバス３を介したメッセージの送受信を行う。ＣＡＮコントローラ２３は、例えば１つのＩＣ（Integrated Circuit）として構成され得る。ＣＡＮコントローラ２３は、車両１内に配されたＣＡＮバス３を介して他のＥＣＵ２及びゲートウェイ４等に接続され、これら他の車載装置との間でＣＡＮの通信規格に従う通信を行う。ＣＡＮコントローラ２３は、プロセッサ２１から与えられた送信用のメッセージをＣＡＮの通信規格に応じた電気信号に変換してＣＡＮバス３へ出力することにより、他の車載装置へのメッセージ送信を行う。ＣＡＮコントローラ２３は、ＣＡＮバス３の電位をサンプリングして取得することにより他の車載装置からのメッセージを受信し、受信したメッセージをプロセッサ２１へ与える。
【００４６】
本実施の形態に係るＣＡＮコントローラ２３は、送信すべきメッセージのデッドライン時間ＴＤに対する余裕時間を算出する。ＣＡＮコントローラ２３は、算出した余裕時間に係る情報を、メッセージのアービトレーションフィールドに格納して送信することができる。ＣＡＮコントローラ２３は、自身のメッセージ送信と、他のＥＣＵ２のメッセージ送信とが衝突した場合に、ＣＡＮの通信規格に従うアービトレーション処理を行う。これによりＣＡＮコントローラ２３は、余裕時間が短いメッセージを優先して送信する。ＣＡＮコントローラ２３は、上記の余裕時間に係る情報と、従来のＣＡＮＩＤとのいずれかを選択的にアービトレーションフィールドに格納してメッセージ送信を行うことが可能な構成であってよい。
【００４７】
本実施の形態に係るＥＣＵ２では、記憶部２２に記憶されたプログラム２２ａをプロセッサ２１が読み出して実行することにより、初期化処理部２１ａ及び送信要求処理部２１ｂ等がプロセッサ２１にソフトウェア的な機能ブロックとして実現される。初期化処理部２１ａは、ＥＣＵ２の起動時等に、ＣＡＮコントローラ２３の初期化処理を行う。初期化処理には、例えばメッセージ毎のデッドライン時間の設定処理が含まれ得る。送信要求処理部２１ｂは、例えば車両１の走行制御等の処理において他のＥＣＵ２へ送信すべきメッセージが生じた場合に、このメッセージを送信する処理を行う。送信要求処理部２１ｂは、送信すべきメッセージを生成してＣＡＮコントローラ２３へ与えることによって、このメッセージの送信を要求する。
【００４８】
図４は、本実施の形態に係るＣＡＮコントローラ２３の構成を示すブロック図である。図４においては、ＣＡＮコントローラ２３のメッセージ送信に関する機能ブロックを主に図示し、メッセージ受信に関する機能ブロックの図示は省略している。本実施の形態に係るＣＡＮコントローラ２３は、レジスタ群３１、制御回路３２及び送受信回路３３等を備えている。レジスタ群３１は、ＣＡＮコントローラ２３とプロセッサ２１との間の種々のデータ授受に用いられる記憶領域である。本実施の形態においてレジスタ群３１には、デッドライン保持用レジスタ３１ａ及びメッセージ保持用レジスタ３１ｂが含まれている。
【００４９】
デッドライン保持用レジスタ３１ａは、送信すべきメッセージのデッドライン時間の設定値を記憶するレジスタである。ＥＣＵ２が複数種類のメッセージを送信する可能性がある場合、レジスタ群３１にはデッドライン保持用レジスタ３１ａが複数存在してもよい。デッドライン時間は、例えばメッセージに付される識別情報、いわゆるＣＡＮＩＤに対して個別に設定される。本実施の形態においてデッドライン保持用レジスタ３１ａへのデッドライン時間の設定は、ＥＣＵ２の起動時等にプロセッサ２１によって行われる。ただし、プロセッサ２１がメッセージ送信の都度にデッドライン時間を設定してもよい。
【００５０】
メッセージ保持用レジスタ３１ｂは、他のＥＣＵ２に対して送信すべきメッセージを記憶するレジスタである。プロセッサ２１は、他のＥＣＵ２に対してメッセージ送信を行う必要が生じた場合に、送信すべきメッセージを生成してメッセージ保持用レジスタ３１ｂに格納する。プロセッサ２１がメッセージ保持用レジスタ３１ｂに格納するメッセージは、通常のＣＡＮの通信規格に従うメッセージ、即ちアービトレーションフィールドにＣＡＮＩＤが格納されたメッセージであってよい。プロセッサ２１が送信すべきメッセージをメッセージ保持用レジスタ３１ｂに格納し、制御回路３２に対して送信指示を与えることによって、ＣＡＮコントローラ２３のメッセージ送信が行われる。
【００５１】
ＣＡＮコントローラ２３の制御回路３２は、メッセージの送受信に関する制御を行う回路である。制御回路３２は、カウンタ３２ａ、余裕時間算出部３２ｂ及びメッセージ生成部３２ｃ等を備えて構成されている。カウンタ３２ａは、プロセッサ２１からメッセージの送信指示が与えられた時点を０時間とし、この時点からの経過時間を計測する。カウンタ３２ａが計測する時間は、図２の待機時間に相当する。カウンタ３２ａは、プロセッサ２１からの送信指示により初期化され、ＣＡＮコントローラ２３のクロック信号に応じてカウントアップされる。待機時間を数式で記述すると、「（カウンタ３２ａの値）×（クロック信号の周期）＝（待機時間）」である。図２に示すメッセージの遅延時間は、この待機時間にメッセージの送信時間を加えた時間である。また、各メッセージの送信時間は、このメッセージを受信したＥＣＵ２にて算出することができる。このため、メッセージに付与する余裕時間は、デッドライン時間から待機時間を引いた時間であってよく、デッドライン時間から遅延時間を引いた時間であってもよい。
【００５２】
余裕時間算出部３２ｂは、デッドライン保持用レジスタ３１ａに保持されたデッドライン時間と、カウンタ３２ａの値とに基づいて、デッドライン時間に対する余裕時間を算出する処理を行う。本実施の形態においてデッドライン保持用レジスタ３１ａには、デッドライン時間に相当するカウンタの値が格納される。余裕時間算出部３２ｂは、デッドライン保持用レジスタ３１ａの値から、カウンタ３２ａが計測した値を減算することによって、余裕時間を算出する。カウンタ３２ａによる計測及び余裕時間算出部３２ｂによる算出は、このメッセージの送信が完了するまで継続的に行われる。
【００５３】
メッセージ生成部３２ｃは、メッセージ保持用レジスタ３１ｂに保持された送信すべきメッセージと、余裕時間算出部３２ｂが算出した余裕時間とに基づいて、ＣＡＮバス３へ実際に送信されるメッセージを生成する処理を行う。本実施の形態においてメッセージ生成部３２ｃは、余裕時間算出部３２ｂが算出した余裕時間をアービトレーションフィールドに格納したメッセージを生成する。ここで、メッセージ保持用レジスタ３１ｂに保持されたメッセージのアービトレーションフィールドに格納されているＣＡＮＩＤをどのように扱うかに関してはいくつかのバリエーションがあり、詳細については後述する。メッセージ生成部３２ｃは、生成したメッセージを送受信回路３３へ与える。
【００５４】
ＣＡＮコントローラ２３の送受信回路３３は、ＣＡＮバス３に対するメッセージの送受信、及び、メッセージ送信が衝突した際のアービトレーション処理等を行う。送受信回路３３は、送信部３３ａ、受信部３３ｂ及び調停部３３ｃ等を備えている。送信部３３ａは、制御回路３２から与えられたデジタルのメッセージをＣＡＮの通信規格に従う電気信号に変換してＣＡＮバス３へ出力することによって、メッセージを送信する。受信部３３ｂは、ＣＡＮバス３の電位をサンプリングして取得することにより、ＣＡＮバス３上へ送信されたメッセージを受信する。
【００５５】
調停部３３ｃは、ＣＡＮバス３に対して複数のＥＣＵ２が同時的にメッセージ送信を行った場合に、いずれのメッセージ送信を実施するかを決定するアービトレーション処理を行う。アービトレーション処理では、アービトレーションフィールドに格納された値が最も小さいメッセージに対して送信権が与えられ、これ以外のメッセージは送信することができない。本実施の形態に係る通信システムでは、余裕時間に係る情報をアービトレーション処理に用いることによって、余裕時間が短いメッセージを優先して送信する通信プロトコルが実現できる。調停部３３ｃは、アービトレーション処理により自装置に対する送信権が与えられたと判断した場合、送信部３３ａによるメッセージ送信を継続して行わせる。調停部３３ｃは、送信権が与えられなかったと判断した場合、送信部３３ａによるメッセージ送信を停止する。この場合には、アービトレーション処理によりメッセージ送信を停止した旨が調停部３３ｃから制御回路３２へ通知される。この通知に応じて制御回路３２は、所定の待機時間の後にメッセージ生成部３２ｃによるメッセージの生成を再度行い、メッセージの再送信を試みる。
【００５６】
＜メッセージ形式＞
上述のように、ＣＡＮコントローラ２３にて生成されてＣＡＮバス３へ送信されるメッセージの形式には、いくつかのバリエーションが考えられる。以下、本実施の形態に係る通信システムにて採用され得る３つのバリエーションについて説明する。アービトレーションフィールドに余裕時間を格納する構成を採用することによって、複数のＥＣＵ２が同じ余裕時間をアービトレーションフィールドに格納したメッセージを同時的に送信する可能性がある。このため、同じ余裕時間が設定された複数のメッセージを区別する方法が必要である。以下の３つのメッセージ形式は、この区別を実現するためのバリエーションである。
【００５７】
（第１のメッセージ形式）
図５は、第１のメッセージ形式を説明するための模式図である。ＣＡＮの通信規格に従うメッセージには、アービトレーションフィールド、コントロールフィールド、データフィールド、ＣＲＣ（Cyclic Redundancy Check）フィールド及びＡＣＫフィールド等が含まれる。第１のメッセージ形式では、アービトレーションフィールドに余裕時間及びＣＡＮＩＤが共に格納される。ただし余裕時間が上位ビット側に格納され、ＣＡＮＩＤが下位ビット側に格納される。
【００５８】
ＣＡＮコントローラ２３のメッセージ生成部３２ｃは、余裕時間算出部３２ｂが算出した余裕時間に係る情報を送信メッセージのアービトレーションフィールドの上位に格納する。メッセージ生成部３２ｃは、メッセージ保持用レジスタ３１ｂに格納されたメッセージ、即ちプロセッサ２１が生成したメッセージのアービトレーションフィールドに設定されたＣＡＮＩＤを取得する。メッセージ生成部３２ｃは、取得したＣＡＮＩＤを送信メッセージのアービトレーションフィールドの下位に格納する。本実施の形態においては、アービトレーションフィールドに余裕時間及びＣＡＮＩＤを格納するため、メッセージ生成部３２ｃが生成するメッセージのアービトレーションフィールドは、拡張フォーマットが採用される。プロセッサ２１がメッセージ保持用レジスタ３１ｂに格納するメッセージのアービトレーションフィールドは通常フォーマットである。
【００５９】
アービトレーションフィールドは、通常フォーマットでは１１ビットであり、拡張フォーマットでは２９ビットである。メッセージ生成部３２ｃが生成するメッセージは、例えば拡張フォーマットのアービトレーションフィールドに対して、１８ビットが余裕時間の情報格納に割り当てられ、１１ビットがＣＡＮＩＤの情報格納に割り当てられる。カウンタ３２ａを動作させるクロック信号の周期が２μ秒である場合、１８ビットは約５００ｍ秒の余裕時間を表現し得る。ＣＡＮＩＤの１１ビットは、２０４７通りのメッセージを識別し得る。
【００６０】
ただし、アービトレーションフィールドのビットの割り当ては上記に限らない。メッセージの種別が十分に少ない場合には、ＣＡＮＩＤのビット割り当てが削減され、余裕時間のビット割り当てが増加され得る。例えばアービトレーションフィールドの２０ビットを余裕時間に割り当て、９ビットをＣＡＮＩＤに割り当てることが考えられる。この場合にアービトレーションフィールドの情報は、約２秒の余裕時間と、５１１通りのメッセージのＩＤとを表現できる。例えばアービトレーションフィールドの２４ビットを余裕時間に割り当て、５ビットをＣＡＮＩＤに割り当てることが考えられる。この場合にアービトレーションフィールドの情報は、約３３秒の余裕時間と、３１通りのメッセージのＩＤとを表現できる。
【００６１】
（第２のメッセージ形式）
図６は、第２のメッセージ形式を説明するための模式図である。第２のメッセージ形式では、アービトレーションフィールドに余裕時間及び装置ＩＤが格納される。ＣＡＮＩＤは、データフィールドの一部に格納される。装置ＩＤは、車両１内においてＣＡＮバス３に接続される装置に対して一意的に定められるＩＤである。装置ＩＤは、例えばレジスタ群３１の１つに装置ＩＤを保持するレジスタを設け、プロセッサ２１が初期化処理の際にこのレジスタに装置ＩＤを設定する。装置ＩＤは記憶部２２に予め記憶されており、プロセッサ２１は初期化処理の際に記憶部２２から装置ＩＤを読み出してＣＡＮコントローラ２３のレジスタ群３１に設定する。第２のメッセージ形式においては、ＣＡＮＩＤがメッセージのデータフィールドに格納されるため、データフィールドにある程度の空き容量が必要である。
【００６２】
車両１の装置毎に定められる装置ＩＤは、メッセージの種別を識別するＣＡＮＩＤと比較して十分に少なくてよい可能性が高い。例えば拡張フォーマットのアービトレーションフィールドの２９ビットに対して、装置ＩＤに４ビットが割り当てられることで、１５個の装置が識別される。この場合には、余裕時間に２５ビットが割り当てられることとなり、２５ビットのデータは約６７秒の余裕時間を表現できる。
【００６３】
（第３のメッセージ形式）
図７は、第３のメッセージ形式を説明するための模式図である。第３のメッセージ形式では、アービトレーションフィールドに余裕時間に係る情報のみが格納される。ＣＡＮＩＤはデータフィールドに格納される。第３のメッセージ形式の場合、アービトレーションフィールドは通常フォーマット又は拡張フォーマットのいずれであってもよい。余裕時間が１１ビットで足りる場合には、アービトレーションフィールドは通常フォーマットが採用され得る。
【００６４】
第３のメッセージ形式においては、同じ余裕時間が設定された複数のメッセージが送信された場合、アービトレーション処理の結果として複数のＥＣＵ２が送信権を獲得したと判断する可能性がある。この場合、複数のＥＣＵ２がメッセージを送信するため、メッセージの送信がエラー等により中断される。メッセージの送信が中断された場合、ＥＣＵ２は所定の待機時間の経過後にこのメッセージの再送信を試みる。第３のメッセージ形式を採用する場合、通信システムでは各ＥＣＵ２によるメッセージ再送信までの待機時間が異なる時間に設定される。なお１つのＣＡＮバス３に接続される複数の装置について、メッセージの再送信までの待機時間は、必ず異なる時間に設定される。これにより、同じ余裕時間が設定された複数のメッセージが、再送信においても衝突することが回避される。
【００６５】
各ＥＣＵ２の待機時間の設定は、記憶部２２に記憶され得る。ただし、記憶部２２に待機時間自体を記憶するのではなく、例えばＥＣＵ２毎に異なる装置ＩＤ等の情報に基づいて待機時間が算出されてもよい。待機時間の計時をＣＡＮコントローラ２３が行う場合には、ＣＡＮコントローラ２３のレジスタ群３１に待機時間を保持するレジスタが設けられ、初期化処理においてプロセッサ２１がこのレジスタに待機時間を設定する。
【００６６】
＜メッセージ調停方法＞
図８は、本実施の形態に係る通信システムによるメッセージ調停方法を説明するための模式図である。図中の太矢印で示す横軸は、時刻ｔを表す時間軸である。この時間軸の上側に第１のＥＣＵ２によるメッセージ送信のタイミングを示し、下側に第２のＥＣＵ２によるメッセージ送信のタイミングを示す。本例においては、第１のＥＣＵ２が送信するメッセージのデッドライン時間と、第２のＥＣＵ２が送信するメッセージのデッドライン時間とは、同じ時間が設定されているものとする。
【００６７】
例えば時刻ｔ０において、第１のＥＣＵ２にてプロセッサ２１からＣＡＮコントローラ２３へのメッセージの送信要求がなされたものとする。この時刻ｔ０の時点では、ＣＡＮバス３にて他のＥＣＵ２によるメッセージ送信が行われているため、これが終了するまで、第１のＥＣＵ２によるメッセージ送信は待機される。次いで、時刻ｔ１において、第２のＥＣＵ２にてプロセッサ２１からＣＡＮコントローラ２３へのメッセージの送信要求がなされたものとする。この時刻ｔ１の時点においても、ＣＡＮバス３にて他のＥＣＵ２によるメッセージ送信が行われており、第２のＥＣＵ２によるメッセージ送信は待機される。
【００６８】
その後、時刻ｔ２の時点で他のＥＣＵ２によるメッセージ送信が終了し、第１のＥＣＵ２及び第２のＥＣＵ２によるメッセージ送信が試みられる。２つのＥＣＵ２が同時的にメッセージ送信を試みたため、両ＥＣＵ２ではそれぞれアービトレーション処理が行われる。ここで、第１のＥＣＵ２によるメッセージ送信のデッドライン時刻をｔ３とし、第２のＥＣＵ２によるメッセージ送信のデッドライン時刻をｔ４とする。本例では、デッドライン時刻ｔ３は、デッドライン時刻ｔ４より早いタイミングで訪れる。このため、時刻ｔ２における第１のＥＣＵ２が送信するメッセージに付される余裕時間は、第２のＥＣＵ２が送信するメッセージに付される余裕時間より短い。よって、両ＥＣＵ２にてアービトレーション処理が行われることにより、第１のＥＣＵ２がメッセージの送信権を獲得し、第２のＥＣＵ２はメッセージの送信を待機する必要が生じる。第２のＥＣＵ２は、第１のＥＣＵ２によるメッセージ送信が終了した場合に、自身のメッセージの再送信を試みる。
【００６９】
図９は、本実施の形態に係るＥＣＵ２のＣＡＮコントローラ２３が行うメッセージ送信処理の手順を示すフローチャートである。本実施の形態に係るＣＡＮコントローラ２３は、例えばＥＣＵ２の起動時等にプロセッサ２１がレジスタ群３１に対して記憶する各種の設定値を受け付けることにより、初期化処理を行う（ステップＳ１）。初期化処理の終了後、ＣＡＮコントローラ２３は、プロセッサ２１からメッセージの送信要求が与えられたか否かを判定する（ステップＳ２）。送信要求が与えられていない場合（Ｓ２：ＮＯ）、ＣＡＮコントローラ２３は、送信要求が与えられるまで待機する。
【００７０】
プロセッサ２１からメッセージの送信要求が与えられた場合（Ｓ２：ＹＥＳ）、ＣＡＮコントローラ２３は、制御回路３２のカウンタ３２ａによる計時を開始する（ステップＳ３）。次いでＣＡＮコントローラ２３は、ＣＡＮバス３に対するメッセージ送信が可能であるか否かを判定する（ステップＳ４）。ここでＣＡＮコントローラ２３は、ＣＡＮバス３にて他のＥＣＵ２によるメッセージ送信が行われているか否かに基づいて、メッセージ送信が可能であるか否かを判定する。メッセージ送信が可能でない場合（Ｓ４：ＮＯ）、ＣＡＮコントローラ２３は、メッセージ送信が可能となるまで待機する。
【００７１】
ＣＡＮバス３に対するメッセージ送信が可能である場合（Ｓ４：ＹＥＳ）、ＣＡＮコントローラ２３は、この時点でカウンタ３２ａのカウント値を取得する（ステップＳ５）。ＣＡＮコントローラ２３の余裕時間算出部３２ｂは、このメッセージについてデッドライン保持用レジスタ３１ａに保持されたデッドライン時間と、ステップＳ５にて取得したカウント値に基づいて、送信完了までの余裕時間を算出する（ステップＳ６）。ＣＡＮコントローラ２３のメッセージ生成部３２ｃは、算出した余裕時間に関する情報がアービトレーションフィールドに格納されたメッセージを生成する。ＣＡＮコントローラ２３は、生成したメッセージの送信を試みると共に、もし他のＥＣＵ２のメッセージ送信と衝突した場合にはアービトレーション処理を行う（ステップＳ７）。
【００７２】
ＣＡＮコントローラ２３は、メッセージの送信が完了したか否かを判定する（ステップＳ８）。例えばアービトレーション処理にて送信権を獲得できなかった場合等、メッセージの送信が完了していない場合（Ｓ８：ＮＯ）、ＣＡＮコントローラ２３は、ステップＳ４へ処理を戻す。メッセージの送信が完了した場合（Ｓ８：ＹＥＳ）、ＣＡＮコントローラ２３は、カウンタ３２ａの計測を停止してリセットし（ステップＳ９）、ステップＳ２へ処理を戻す。
【００７３】
＜まとめ＞
以上の構成の本実施の形態に係るＥＣＵ２は、他のＥＣＵ２へ送信すべきメッセージについて、このメッセージの送信を完了すべき時点（デッドライン時刻）までの余裕時間を算出する。ＥＣＵ２は、メッセージの送信を試みる時点で算出された余裕時間に応じた情報を、アービトレーション処理のための情報としてこのメッセージに付して送信を試みる。ＥＣＵ２は、自身のメッセージ送信と、ＣＡＮバス３に接続された他のＥＣＵ２のメッセージ送信とが衝突した場合、いずれのメッセージ送信を優先して行うかを決定するアービトレーション処理を行う。ＥＣＵ２は、各メッセージに付された余裕時間の情報に基づいて、余裕時間が少ないメッセージの送信を優先するようにアービトレーション処理を行う。これにより通信システムは、メッセージの余裕時間に応じて優先度を変動させたアービトレーション処理が可能となり、特定のメッセージの送信が長期間に亘って阻害され続けることを抑制できる。
【００７４】
本実施の形態に係るＥＣＵ２は、メッセージの余裕時間に応じた情報と、ＣＡＮＩＤ又は装置ＩＤ等の識別情報とを、アービトレーション処理のための情報としてメッセージに付す。これによりＥＣＵ２は、余裕時間が同じ値の複数のメッセージが同時的に送信された場合であっても、識別情報に基づいてアービトレーション処理を行うことができる。
【００７５】
本実施の形態に係るＥＣＵ２は、複数のＥＣＵ２によるメッセージの送信が重複し、メッセージが送信できなかった場合に、所定の待機時間の経過後にこのメッセージの再送信を試みる。ＣＡＮバス３に接続された複数のＥＣＵ２について、このメッセージの再送信までの待機時間はＥＣＵ２毎に異なる時間が設定される。これにより、余裕時間が同じ値のメッセージが同時的に送信されて共に送信ができなかった場合であっても、メッセージの再送信のタイミングに差を設けることができる。
【００７６】
本実施の形態に係るＥＣＵ２は、プロセッサ２１及びＣＡＮコントローラ２３を備える。ＣＡＮコントローラ２３は、プロセッサ２１の処理に応じてメッセージの送受信を行うと共に、上述の余裕時間の算出及びアービトレーション処理等を行う。ＣＡＮコントローラ２３は、メッセージの送信を完了すべき時間に関する情報、即ちデッドライン時間をレジスタ群３１に記憶する。ＣＡＮコントローラ２３は、プロセッサ２１からメッセージの送信要求が与えられた時点、及び、レジスタ群３１に記憶したデッドライン時間に基づいて、メッセージの余裕時間を算出する。これにより、プロセッサ２１及びこのプロセッサ２１上で実行されるプログラム２２ａ等は、メッセージの余裕時間の算出及びアービトレーション処理等を行う必要がない。
【００７７】
本実施の形態に係るＥＣＵ２は、ＣＡＮの通信規格に従ってメッセージの送受信を行う。ＥＣＵ２は、算出した余裕時間に応じた情報を、ＣＡＮのメッセージのアービトレーションフィールドに格納する。ＣＡＮの通信規格では、アービトレーションフィールドに格納された値が小さいほど優先度が高いものとしてアービトレーション処理が行われる。アービトレーションフィールドに余裕時間に応じた情報を格納することで、格納された値が小さい、即ち余裕時間が短いメッセージの送信が優先して行われる。
【００７８】
なお本実施の形態においては、車両１に搭載された通信システムを例に説明を行ったが、本技術の適用は車載の通信システムに限らない。船舶又は飛行機等の移動体に同様の構成の通信システムを搭載してもよい。工場又はオフィス等に設けられた通信システムに同様の構成を採用してもよい。本実施の形態に係る通信システムは、ＣＡＮの通信規格に従ってメッセージの送受信を行うが、これ以外の通信規格を採用してもよい。通信システムが採用する通信規格は、バス型のネットワークを対象としたものに限らず、例えばスター型又はピアツーピア等の種々のネットワーク構成を対象としてものであってよい。
【００７９】
本実施の形態に係るＥＣＵ２が備えるプロセッサ２１及びＣＡＮコントローラ２３の役割分担は、上述のものに限らない。例えばプロセッサ２１が余裕時間を算出してもよい。ＥＣＵ２はプロセッサ２１及びＣＡＮコントローラ２３を別に備えるのではなく、ＣＡＮコントローラ２３を内蔵したプロセッサを備えてもよい。
【００８０】
本実施の形態に係るＣＡＮコントローラ２３は、カウンタ３２ａのカウントアップにて時間を計測し、デッドライン保持用レジスタ３１ａに保持されたデッドライン時間から計測時間を引くことによって余裕時間を算出している。しかし、ＣＡＮコントローラ２３は、デッドライン時間をカウンタ３２ａの初期値として設定し、カウンタ３２ａをカウントダウンすることで余裕時間を取得してもよい。
【００８１】
（変形例１）
変形例１に係る通信システムは、上述のように余裕時間をアービトレーションフィールドに格納したメッセージを送信するＥＣＵ２と、従来のＣＡＮＩＤをアービトレーションフィールドに格納したメッセージを送信するＥＣＵ２とが混在する。メッセージのアービトレーションフィールドに余裕時間又はＣＡＮＩＤのいずれの情報が格納されていても、ＣＡＮコントローラ２３はこれらの情報を単なる２値のデジタル情報として扱うことでアービトレーション処理を行う。ＣＡＮコントローラ２３は、アービトレーションフィールドに格納されたデジタル情報の数値が小さいものを優先すればよい。
【００８２】
（変形例２）
変形例２に係るＥＣＵ２のＣＡＮコントローラ２３では、送信するメッセージのアービトレーションフィールドに格納する情報を、余裕時間又はＣＡＮＩＤのいずれとするかをプロセッサ２１が選択可能である。変形例２に係るＣＡＮコントローラ２３のレジスタ群３１には、余裕時間又はＣＡＮＩＤのいずれをメッセージに付すかの選択を設定するレジスタが含まれている。プロセッサ２１は、このレジスタに対して設定を行い、ＣＡＮコントローラ２３へメッセージの送信要求を与える。ＣＡＮコントローラ２３は、レジスタに設定された設定に応じて、余裕時間又はＣＡＮＩＤのいずれかをアービトレーションフィールドに格納し、メッセージを送信する。
【００８３】
変形例１及び変形例２に示すように、本実施の形態に係る通信システムでは、アービトレーションフィールドに余裕時間を格納したメッセージの送信と、ＣＡＮＩＤを格納した従来形式のメッセージの送信とが混在可能である。このため、既存の通信システムに含まれる一部のＥＣＵ２にのみ、余裕時間に基づくアービトレーション処理を導入することが可能である。
【００８４】
なお変形例１及び変形例２においてＥＣＵ２は、ＣＡＮＩＤを格納する場合には通常フォーマットのアービトレーションフィールドを用い、余裕時間を格納する場合には拡張フォーマットのアービトレーションフィールドを用いてもよい。この場合、アービトレーション処理において、通常フォーマットのアービトレーションフィールドを有するメッセージが優先されてもよい。
【００８５】
（実施の形態２）
実施の形態２は、複数のＣＡＮバス３間のメッセージ送受信を中継するゲートウェイ４に関する。実施の形態２に係るゲートウェイ４は、一のＣＡＮバス３にて受信したメッセージに付された余裕時間を考慮して、他のＣＡＮバス３から中継して送信するメッセージの余裕時間を算出する。図１０は、実施の形態２に係るゲートウェイ４の構成を示すブロック図である。実施の形態２に係るゲートウェイ４は、プロセッサ４１、記憶部（ストレージ）４２及び複数のＣＡＮコントローラ２３等を備えて構成されている。
【００８６】
プロセッサ４１は、記憶部４２に記憶されたプログラム４２ａを読み出して実行することにより、複数のＣＡＮバス３の間のメッセージを中継する処理等の種々の処理を行う。記憶部４２は、例えばフラッシュメモリ又はＥＥＰＲＯＭ等の不揮発性のメモリ素子を用いて構成されている。記憶部４２は、プロセッサ４１が実行するプログラム４２ａを含む種々のデータを記憶している。
【００８７】
プログラム４２ａは、例えばゲートウェイ４の製造段階において記憶部４２に書き込まれてもよい。例えばプログラム４２ａは、遠隔のサーバ装置などが配信するものをゲートウェイ４が通信にて取得してもよい。例えばプログラム４２ａは、メモリカード又は光ディスク等の記録媒体に記録されたプログラム４２ａをゲートウェイ４が読み出して記憶部４２に記憶してもよい。例えばプログラム４２ａは、記録媒体に記録されたものを書込装置が読み出してゲートウェイ４の記憶部４２に書き込んでもよい。プログラム４２ａは、ネットワークを介した配信の態様で提供されてもよく、記録媒体に記録された態様で提供されてもよい。
【００８８】
実施の形態２においてゲートウェイ４は、２つのＣＡＮコントローラ２３を備えている。ただしゲートウェイ４は、３つ以上のＣＡＮコントローラ２３を備えていてもよい。ＣＡＮコントローラ２３は、それぞれＣＡＮバス３が接続され、ＣＡＮバス３を介したメッセージの送受信を行う。ＣＡＮコントローラ２３は、ＥＣＵ２が備えるＣＡＮコントローラ２３と同じものであってよい。ＣＡＮコントローラ２３は、プロセッサ４１から与えられた送信用のメッセージをＣＡＮの通信規格に応じた電気信号に変換してＣＡＮバス３へ出力することにより、他の車載装置へのメッセージ送信を行う。ＣＡＮコントローラ２３は、ＣＡＮバス３の電位をサンプリングして取得することにより他の車載装置からのメッセージを受信し、受信したメッセージをプロセッサ４１へ与える。
【００８９】
実施の形態２に係るゲートウェイ４では、記憶部４２に記憶されたプログラム４２ａをプロセッサ４１が読み出して実行することにより、初期化処理部４１ａ、送信要求処理部４１ｂ及び中継処理部４１ｃ等がプロセッサ４１にソフトウェア的な機能ブロックとして実現される。初期化処理部４１ａは、ゲートウェイ４の起動時等に、ＣＡＮコントローラ２３の初期化処理を行う。送信要求処理部４１ｂは、送信すべきメッセージを生成してＣＡＮコントローラ２３へ与えることによって、このメッセージの送信を要求する。中継処理部４１ｃは、一のＣＡＮコントローラ２３にて受信したメッセージを、他のＣＡＮコントローラ２３から送信する処理を行う。実施の形態２に係るゲートウェイ４は、メッセージを中継する際に、このメッセージの余裕時間及びデッドライン時間を伝播させる。
【００９０】
図１１は、メッセージの余裕時間及びデッドライン時間の伝播を説明するための模式図である。図１１の上段には、ＥＣＵ２が最初にメッセージを送信した際のタイミングチャートが示されている。ＥＣＵ２のプロセッサ２１からＣＡＮコントローラ２３へメッセージの送信要求が与えられた時点の送信要求時刻ｔ０に対し、設定されたデッドライン時間が経過した時点がデッドライン時刻ｔｄである。本例では、送信要求時刻ｔ０からある程度の待機時間が経過した時刻ｔ１にＥＣＵ２のメッセージ送信がなされている。このメッセージは、メッセージ長に依存する所定の送信時間が経過した時刻ｔ２にて送信を終了している。このとき、メッセージのアービトレーションフィールドに格納される余裕時間は、時刻ｔ１からデッドライン時刻ｔｄまでの時間である。
【００９１】
図１１の下段には、ゲートウェイ４がメッセージを中継する際のタイミングチャートが示されている。ゲートウェイ４は、一のＣＡＮバス３に接続されたＥＣＵ２が送信したメッセージを受信し、このメッセージを他のＣＡＮバス３から送信することで、２つのＣＡＮバス３間のメッセージ中継を行う。ゲートウェイ４は、受信したメッセージのアービトレーションフィールドに格納された余裕時間を取得する。ゲートウェイ４は、取得した余裕時間から、このメッセージの送信時間と、ゲートウェイ４の内部処理に要した時間とを差し引いた時間を算出する。算出した時間は、中継するメッセージを送信する際の新たなデッドライン時間として用いることができる。図示の例では、ゲートウェイ４の内部処理に要した時間は０とし、時刻ｔ２においてメッセージを受信したゲートウェイ４のプロセッサ４１が、時刻ｔ２においてこのメッセージの送信をＣＡＮコントローラ２３へ要求している。このため、伝播したデッドライン時間は、時刻ｔ２からデッドライン時刻ｔｄまでの時間である。
【００９２】
実施の形態２に係るゲートウェイ４のプロセッサ４１は、一のＣＡＮコントローラ２３から与えられた受信メッセージを、他のＣＡＮコントローラ２３に対して送信メッセージとして与える。このときにプロセッサ４１は、受信メッセージに格納された余裕時間から算出した新たなデッドライン時間を、他のＣＡＮコントローラ２３のデッドライン保持用レジスタ３１ａに設定し、メッセージの送信を要求する。送信要求を受けたＣＡＮコントローラ２３は、プロセッサ４１によりデッドライン保持用レジスタ３１ａに新たに設定されたデッドライン時間を用いて、メッセージの送信処理及びアービトレーション処理を行う。ここで行われるメッセージの送信処理及びアービトレーション処理は、ＥＣＵ２のＣＡＮコントローラ２３にて行われる上述の処理と同様である。
【００９３】
なお、ゲートウェイ４は、受信メッセージの余裕時間を中継メッセージに伝播させるか否かを選択可能であってよい。例えばゲートウェイ４は、メッセージのＣＡＮＩＤ毎に余裕時間を伝播させるか否かの設定を記憶部４２に記憶していてもよい。余裕時間を伝播させない場合、ゲートウェイ４は、中継するメッセージに対して新たなデッドライン時間を設定する。またゲートウェイ４は、余裕時間を伝播させる場合であっても、受信メッセージから取得した余裕時間に対して適宜に時間を増減して新たなデッドライン時間を決定してもよい。
【００９４】
図示の例では、送信要求時刻ｔ２からある程度の待機時間が経過した時刻ｔ３にゲートウェイ４のメッセージ送信がなされている。このメッセージは、メッセージ長に依存する所定の送信時間が経過した時刻ｔ４にて送信を終了している。このとき、メッセージのアービトレーションフィールドに格納される余裕時間は、時刻ｔ３からデッドライン時刻ｔｄまでの時間である。
【００９５】
実施の形態２に係る通信システムのＥＣＵ２では、プロセッサ２１がデッドライン保持用レジスタ３１ａに初期設定したデッドライン時間を用いて、ＣＡＮコントローラ２３がメッセージの送信を行う。これに対してゲートウェイ４では、プロセッサ２１がメッセージを中継する毎にデッドライン時間を算出し、算出したデッドライン時間をデッドライン保持用レジスタ３１ａに設定してメッセージの送信をＣＡＮコントローラ２３に要求する。ゲートウェイ４のＣＡＮコントローラ２３は、その都度に設定されるデッドライン時間を用いてメッセージの送信を行う。
【００９６】
図１２は、実施の形態２に係るゲートウェイ４が行うメッセージ中継処理の手順を示すフローチャートである。実施の形態２に係るゲートウェイ４のプロセッサ４１は、いずれかのＣＡＮコントローラ２３にてメッセージを受信したか否かを判定する（ステップＳ２１）。メッセージを受信していない場合（Ｓ２１：ＮＯ）、プロセッサ４１は、いずれかのＣＡＮコントローラ２３にてメッセージを受信するまで待機する。
【００９７】
いずれかのＣＡＮコントローラ２３にてメッセージを受信した場合（Ｓ２１：ＹＥＳ）、プロセッサ４１は、受信したメッセージの中継に際して、受信メッセージに付された余裕時間を伝播させるか否かを判定する（ステップＳ２２）。余裕時間を伝播させるか否かは、例えば受信メッセージに付されたＣＡＮＩＤに基づいて判断される。余裕時間を伝播させない場合（Ｓ２２：ＮＯ）、プロセッサ４１は、中継先となるＣＡＮコントローラ２３のメッセージ保持用レジスタ３１ｂに中継するメッセージを設定し、このメッセージの送信要求を与えて（ステップＳ２６）、処理を終了する。
【００９８】
余裕時間を伝播させる場合（Ｓ２２：ＹＥＳ）、プロセッサ４１は、受信したメッセージのアービトレーションフィールドに格納された余裕時間に関する情報を取得する（ステップＳ２３）。プロセッサ４１は、取得した余裕時間と、このメッセージの送信に要した時間及びゲートウェイ４の内部処理に要した時間等とに基づいて、新たなデッドライン時間を算出する（ステップＳ２４）。プロセッサ４１は、メッセージを受信したＣＡＮコントローラ２３とは別のＣＡＮコントローラ２３に対して、算出したデッドライン時間をデッドライン保持用レジスタ３１ａに設定する（ステップＳ２５）。プロセッサ４１は、このＣＡＮコントローラ２３のメッセージ保持用レジスタ３１ｂに中継するメッセージを設定し、このメッセージの送信要求を与えて（ステップＳ２６）、処理を終了する。
【００９９】
以上の構成の実施の形態２に係る通信システムでは、複数のＣＡＮバス３が接続されたゲートウェイ４が、一のＣＡＮバス３にて受信したメッセージを他のＣＡＮバス３から送信するメッセージの中継処理を行う。ゲートウェイ４は、受信したメッセージのアービトレーションフィールドに格納された余裕時間に応じた情報を取得する。ゲートウェイ４は、受信メッセージから取得した余裕時間に基づいて、このメッセージを中継する際のデッドライン時間を算出する。ゲートウェイ４は、算出したデッドライン時間に基づいて、中継により送信するメッセージの余裕時間を算出する。これにより実施の形態２に係る通信システムでは、ゲートウェイ４がメッセージを中継する際に、メッセージのデッドライン時間及び余裕時間を伝播させて、メッセージの送信処理及びアービトレーション処理を行うことができる。
【０１００】
実施の形態２に係る通信システムのその他の構成は、実施の形態１に係る通信システムと同様であるため、同様の箇所には同じ符号を付し、詳細な説明を省略する。
【０１０１】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本開示の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０２】
１  車両
２  ＥＣＵ（通信装置）
３  ＣＡＮバス（通信線）
４  ゲートウェイ（通信装置）
２１  プロセッサ
２１ａ  初期化処理部
２１ｂ  送信要求処理部
２２  記憶部
２２ａ  プログラム
２３  ＣＡＮコントローラ（通信コントローラ）
３１  レジスタ群（記憶部）
３１ａ  デッドライン保持用レジスタ
３１ｂ  メッセージ保持用レジスタ
３２  制御回路
３２ａ  カウンタ
３２ｂ  余裕時間算出部（算出部）
３２ｃ  メッセージ生成部
３３  送受信回路
３３ａ  送信部
３３ｂ  受信部
３３ｃ  調停部
４１  プロセッサ（取得部）
４１ａ  初期化処理部
４１ｂ  送信要求処理部
４１ｃ  中継処理部
４２  記憶部
４２ａ  プログラム
【図１】
2020150456.tif 000003
【図２】
2020150456.tif 000004
【図３】
2020150456.tif 000005
【図４】
2020150456.tif 000006
【図５】
2020150456.tif 000007
【図６】
2020150456.tif 000008
【図７】
2020150456.tif 000009
【図８】
2020150456.tif 000010
【図９】
2020150456.tif 000011
【図１０】
2020150456.tif 000012
【図１１】
2020150456.tif 000013
【図１２】
2020150456.tif 000014