(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129339
(43)【公開日】2024-09-27
(54)【発明の名称】通信装置、通信制御方法、及び通信制御プログラム
(51)【国際特許分類】
H04L 12/46 20060101AFI20240919BHJP
H04L 12/28 20060101ALI20240919BHJP
【FI】
H04L12/46 D
H04L12/28 100A
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023038479
(22)【出願日】2023-03-13
(71)【出願人】
【識別番号】395011665
【氏名又は名称】株式会社オートネットワーク技術研究所
(71)【出願人】
【識別番号】000183406
【氏名又は名称】住友電装株式会社
(71)【出願人】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】110000280
【氏名又は名称】弁理士法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】塩澤 孝之
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA02
5K033BA06
5K033CB02
5K033CB06
5K033CB17
5K033CC01
5K033DB13
(57)【要約】
【課題】通信路を伝送されるフレームそれぞれの遅延を抑制する。
【解決手段】
通信装置は、第1フレームの送信タイミングが第1遅延時間を超えるか否かを判定する判定部と、前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、停止要求フレームを生成する生成部と、前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、第2フレームの送信タイミングを推定する推定部と、を備え、前記判定部は、前記第2フレームの送信タイミングが第2遅延時間を超えるか否かを判定し、前記生成部は、前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための前記停止要求フレームを生成する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
複数の車載装置が接続された通信路における通信を制御する通信装置であって、
前記通信路に送信される予定の複数のフレームのうちの第1フレームの送信タイミングが第1遅延時間を超えるか否かを判定する判定部と、
前記判定部によって前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、フレームの送信停止を要求するための停止要求フレームを生成する生成部と、
前記生成部によって生成された前記停止要求フレームを前記通信路を通じて前記複数の車載装置へ送信する送信部と、
前記判定部によって前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、前記第1フレームの送信順が変更されることによって送信タイミングが変化する第2フレームの送信タイミングを推定する推定部と、
を備え、
前記判定部は、前記推定部によって推定された前記第2フレームの送信タイミングが第2遅延時間を超えるか否かを判定し、
前記生成部は、前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための前記停止要求フレームを生成する、
通信装置。
【請求項2】
前記推定部は、前記第1フレームの送信順が変更される前における前記第2フレームの送信タイミングから、前記停止要求フレーム及び前記第1フレームの送信に要する時間が経過した後のタイミングを、前記第2フレームの送信タイミングとして推定する、
請求項1に記載の通信装置。
【請求項3】
前記生成部は、前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレームを識別するための第1識別情報と、前記第2フレームを識別するための第2識別情報とを含む前記停止要求フレームを生成する、
請求項1に記載の通信装置。
【請求項4】
前記停止要求フレームは、前記第1フレーム及び前記第2フレームの送信順に、前記第1識別情報及び前記第2識別情報を含む、
請求項3に記載の通信装置。
【請求項5】
前記第1遅延時間は、前記第1フレームのための許容遅延時間である第1許容遅延時間と、前記通信路を伝送されるフレームの識別情報の数、前記通信路に接続された前記車載装置の数、又は前記通信路におけるフレームの送信頻度とに基づいて設定され、
前記第2遅延時間は、前記第2フレームのための許容遅延時間である第2許容遅延時間と、前記通信路を伝送されるフレームの識別情報の数、前記通信路に接続された前記車載装置の数、又は前記通信路におけるフレームの送信頻度とに基づいて設定される、
請求項1に記載の通信装置。
【請求項6】
前記第1遅延時間は、前記第1フレームの送信元が、1つの通信路に接続された車載装置であるか、複数の通信路に接続された車載装置であるかに基づいて設定され、
前記第2遅延時間は、前記第2フレームの送信元が、1つの通信路に接続された車載装置であるか、複数の通信路に接続された車載装置であるかに基づいて設定される、
請求項1に記載の通信装置。
【請求項7】
前記通信装置は、複数の通信路に接続され、前記複数の通信路間においてフレームを中継する中継装置である、
請求項1から請求項6のいずれか1項に記載の通信装置。
【請求項8】
前記判定部は、前記複数の通信路のうちの第1通信路から第2通信路へ伝送する前記第1フレームの前記中継装置における滞留時間が閾値を超えるか否かをさらに判定し、
前記生成部は、前記第1フレームの送信タイミングが前記第1遅延時間を超える、又は、前記滞留時間が前記閾値を超えると前記判定部によって判定された場合に、前記停止要求フレームを生成する、
請求項7に記載の通信装置。
【請求項9】
前記推定部は、前記第2フレームが前記第1通信路から前記第2通信路へ伝送するフレームである場合に、前記第1フレームの送信順が変更されたときにおける前記第2フレームの前記中継装置における滞留時間をさらに推定し、
前記判定部は、前記推定部によって推定された前記第2フレームの滞留時間が前記閾値を超えるか否かをさらに判定し、
前記生成部は、前記第2フレームの送信タイミングが前記第2遅延時間を超える、又は、前記第2フレームの滞留時間が前記閾値を超えると前記判定部によって判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための前記停止要求フレームを生成する、
請求項8記載の通信装置。
【請求項10】
前記推定部は、前記第1フレームの送信順が変更される前における前記第2フレームの前記中継装置における滞留時間に、前記停止要求フレーム及び前記第1フレームの送信に要する時間を付加した時間を、前記第2フレームの滞留時間として推定する、
請求項9に記載の通信装置。
【請求項11】
前記通信装置は、第1通信プロトコルと、前記第1通信プロトコルよりも伝送速度が高い第2通信プロトコルとを切り替える切替部をさらに備え、
前記切替部は、
前記停止要求フレームを送信してから前記第1フレーム及び前記第2フレームの送信が完了するまでの間、前記第1通信プロトコルから前記第2通信プロトコルに切り替える、
請求項1に記載の通信装置。
【請求項12】
複数の車載装置が接続された通信路における通信を制御する通信制御方法であって、
前記通信路に送信される予定の複数のフレームのうちの第1フレームの送信タイミングが第1遅延時間を超えるか否かを判定するステップと、
前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、前記第1フレームの送信順が変更されることによって送信タイミングが変化する第2フレームの送信タイミングを推定するステップと、
推定された前記第2フレームの送信タイミングが第2遅延時間を超えるか否かを判定するステップと、
前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための停止要求フレームを生成するステップと、
生成された前記停止要求フレームを前記通信路を通じて前記複数の車載装置へ送信するステップと、
を含む、
通信制御方法。
【請求項13】
複数の車載装置が接続された通信路における通信を制御するための通信制御プログラムであって、
コンピュータに、
前記通信路に送信される予定の複数のフレームのうちの第1フレームの送信タイミングが第1遅延時間を超えるか否かを判定するステップと、
前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、前記第1フレームの送信順が変更されることによって送信タイミングが変化する第2フレームの送信タイミングを推定するステップと、
推定された前記第2フレームの送信タイミングが第2遅延時間を超えるか否かを判定するステップと、
前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための停止要求フレームを生成するステップと、
生成された前記停止要求フレームを前記通信路を通じて前記複数の車載装置へ送信するステップと、
を実行させるための、
通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置、通信制御方法、及び通信制御プログラムに関する。
【背景技術】
【0002】
車両には、エンジン、トランスミッション等を制御する制御系ECU(Electronic Control Unit)、ヘッドライト、パワーウインドウ等を制御するボディ系ECU、ナビゲーション装置、マルチメディア機器等の情報系ECU等、多種の車載装置が搭載される。各車載装置は、車載ネットワークに接続され、相互に通信することができる。
【0003】
特許文献1には、フレームに割り当てられた優先順位によってフレームの送信の調停を行う通信制御用コントローラが開示されている。特許文献1に開示された通信制御用コントローラは、調停負けが続くことにより許容遅延時間を超えても通信路を介して送信できないフレームを、高優先のフレームに変更して送信権を取得し、通信プロトコルを低速なCAN(Controller Area Network)から高速なCAN FD(CAN with Flexible Data Rate)に切り替えてフレームを送信する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示された通信制御用コントローラでは、1つのECUにおいてフレームの優先順位を変更する結果、他のECUから送信されるフレームの送信順が繰り下がり、当該フレームの許容遅延時間を超えてしまうおそれがある。
【課題を解決するための手段】
【0006】
本開示の一態様に係る通信装置は、複数の車載装置が接続された通信路における通信を制御する通信装置であって、前記通信路に送信される予定の複数のフレームのうちの第1フレームの送信タイミングが第1遅延時間を超えるか否かを判定する判定部と、前記判定部によって前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、フレームの送信停止を要求するための停止要求フレームを生成する生成部と、前記生成部によって生成された前記停止要求フレームを前記通信路を通じて前記複数の車載装置へ送信する送信部と、前記判定部によって前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、前記第1フレームの送信順が変更されることによって送信タイミングが変化する第2フレームの送信タイミングを推定する推定部と、を備え、前記判定部は、前記推定部によって推定された前記第2フレームの送信タイミングが第2遅延時間を超えるか否かを判定し、前記生成部は、前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための前記停止要求フレームを生成する。
【0007】
本開示は、上記のような特徴的な構成を備える通信装置、前記通信装置における特徴的な処理をステップとする通信制御方法、及び通信装置に特徴的な処理を実行させる通信制御プログラムとして実現することができるだけでなく、前記通信装置を含む車載システムとして実現したり、前記通信装置の一部又は全部を半導体集積回路として実現したりすることができる。
【発明の効果】
【0008】
本開示によれば、通信路を伝送される複数のフレームの遅延を抑制することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係る車載システムの構成の一例を示すブロック図である。
【
図2】
図2は、実施形態に係る中継ECUの構成の一例を示すブロック図である。
【
図3】
図3は、実施形態に係るECUの構成の一例を示すブロック図である。
【
図4】
図4は、実施形態に係る中継ECUの機能の一例を示す機能ブロック図である。
【
図5】
図5は、CANのフレームフォーマットを示す模式図である。
【
図6】
図6は、実施形態に係る車載システムにおける通信の一例を模式的に示す図である。
【
図7】
図7は、管理テーブルの一例を示す図である。
【
図8A】
図8Aは、実施形態に係る中継ECUによる通信制御処理の前半部分を示すフローチャートである。
【
図8B】
図8Bは、実施形態に係る中継ECUによる通信制御処理の後半部分を示すフローチャートである。
【
図9】
図9は、実施形態に係るECUによる通信処理を示すフローチャートである。
【
図10】
図10は、実施形態に係る車載システムの動作の一例を示すシーケンス図である。
【発明を実施するための形態】
【0010】
<本開示の実施形態の概要>
以下、本開示の実施形態の概要を列記して説明する。
【0011】
(1) 本実施形態に係る通信装置は、複数の車載装置が接続された通信路における通信を制御する通信装置であって、前記通信路に送信される予定の複数のフレームのうちの第1フレームの送信タイミングが第1遅延時間を超えるか否かを判定する判定部と、前記判定部によって前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、フレームの送信停止を要求するための停止要求フレームを生成する生成部と、前記生成部によって生成された前記停止要求フレームを前記通信路を通じて前記複数の車載装置へ送信する送信部と、前記判定部によって前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、前記第1フレームの送信順が変更されることによって送信タイミングが変化する第2フレームの送信タイミングを推定する推定部と、を備え、前記判定部は、前記推定部によって推定された前記第2フレームの送信タイミングが第2遅延時間を超えるか否かを判定し、前記生成部は、前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための前記停止要求フレームを生成する。これにより、第1フレームが優先的に送信されることによって送信順が繰り下がる第2フレームの送信タイミングを推定することができ、送信タイミングが第2遅延時間を超える場合に、第2フレームも優先的に送信される。したがって、第1フレームに加え第2フレームの遅延を抑制することができる。
【0012】
(2) 上記(1)において、前記推定部は、前記第1フレームの送信順が変更される前における前記第2フレームの送信タイミングから、前記停止要求フレーム及び前記第1フレームの送信に要する時間が経過した後のタイミングを、前記第2フレームの送信タイミングとして推定してもよい。これにより、第2フレームの送信タイミングを正確に推定することができる。
【0013】
(3) 上記(1)又は(2)において、前記生成部は、前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレームを識別するための第1識別情報と、前記第2フレームを識別するための第2識別情報とを含む前記停止要求フレームを生成してもよい。これにより、停止要求フレームを受信した車載装置は、優先的に送信されるフレームが第1フレーム及び第2フレームであることを認識することができる。
【0014】
(4) 上記(3)において、前記停止要求フレームは、前記第1フレーム及び前記第2フレームの送信順に、前記第1識別情報及び前記第2識別情報を含んでもよい。これにより、停止要求フレームを受信した車載装置は、第1フレーム及び第2フレームの送信順を認識することができる。
【0015】
(5) 上記(1)から(4)のいずれか1つにおいて、前記第1遅延時間は、前記第1フレームのための許容遅延時間である第1許容遅延時間と、前記通信路を伝送されるフレームの識別情報の数、前記通信路に接続された前記車載装置の数、又は前記通信路におけるフレームの送信頻度とに基づいて設定され、前記第2遅延時間は、前記第2フレームのための許容遅延時間である第2許容遅延時間と、前記通信路を伝送されるフレームの識別情報の数、前記通信路に接続された前記車載装置の数、又は前記通信路におけるフレームの送信頻度とに基づいて設定されてもよい。これにより、合理的な第1遅延時間及び第2遅延時間を設定することができる。
【0016】
(6) 上記(1)から(5)のいずれか1つにおいて、前記第1遅延時間は、前記第1フレームの送信元が、1つの通信路に接続された車載装置であるか、複数の通信路に接続された車載装置であるかに基づいて設定され、前記第2遅延時間は、前記第2フレームの送信元が、1つの通信路に接続された車載装置であるか、複数の通信路に接続された車載装置であるかに基づいて設定されてもよい。これにより、合理的な第1遅延時間及び第2遅延時間を設定することができる。
【0017】
(7) 上記(1)から(6)のいずれか1つにおいて、前記通信装置は、複数の通信路に接続され、前記複数の通信路間においてフレームを中継する中継装置であってもよい。これにより、多くのフレームを送受信する中継装置において、各通信路のフレームの通信を一括して制御することができる。
【0018】
(8) 上記(7)において、前記判定部は、前記複数の通信路のうちの第1通信路から第2通信路へ伝送する前記第1フレームの前記中継装置における滞留時間が閾値を超えるか否かをさらに判定し、前記生成部は、前記第1フレームの送信タイミングが前記第1遅延時間を超える、又は、前記滞留時間が前記閾値を超えると前記判定部によって判定された場合に、前記停止要求フレームを生成してもよい。これにより、フレームの送信タイミングに加え、中継装置における滞留によりフレーム送信が遅延するか否かを判定することができる。
【0019】
(9) 上記(8)において、前記推定部は、前記第2フレームが前記第1通信路から前記第2通信路へ伝送するフレームである場合に、前記第1フレームの送信順が変更されたときにおける前記第2フレームの前記中継装置における滞留時間をさらに推定し、前記判定部は、前記推定部によって推定された前記第2フレームの滞留時間が前記閾値を超えるか否かをさらに判定し、前記生成部は、前記第2フレームの送信タイミングが前記第2遅延時間を超える、又は、前記第2フレームの滞留時間が前記閾値を超えると前記判定部によって判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための前記停止要求フレームを生成してもよい。これにより、第1フレームが優先的に送信されることによって送信順が繰り下がる第2フレームの中継装置における滞留時間を推定することができ、滞留時間が閾値を超える場合に、第2フレームも優先的に送信される。したがって、第2フレームの中継装置における滞留による遅延を抑制することができる。
【0020】
(10) 上記(9)において、前記推定部は、前記第1フレームの送信順が変更される前における前記第2フレームの前記中継装置における滞留時間に、前記停止要求フレーム及び前記第1フレームの送信に要する時間を付加した時間を、前記第2フレームの滞留時間として推定してもよい。これにより、第2フレームの滞留時間を正確に推定することができる。
【0021】
(11) 上記(1)から(10)のいずれか1つにおいて、前記通信装置は、第1通信プロトコルと、前記第1通信プロトコルよりも伝送速度が高い第2通信プロトコルとを切り替える切替部をさらに備え、前記停止要求フレームを送信してから前記第1フレーム及び前記第2フレームの送信が完了するまでの間、前記第1通信プロトコルから前記第2通信プロトコルに切り替えてもよい。これにより、送信順を繰り上げた第1フレーム及び第2フレームを第2通信プロトコルによって高い伝送速度で送信することができる。
【0022】
(12) 本実施形態に係る通信制御方法は、複数の車載装置が接続された通信路における通信を制御する通信制御方法であって、前記通信路に送信される予定の複数のフレームのうちの第1フレームの送信タイミングが第1遅延時間を超えるか否かを判定するステップと、前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、前記第1フレームの送信順が変更されることによって送信タイミングが変化する第2フレームの送信タイミングを推定するステップと、推定された前記第2フレームの送信タイミングが第2遅延時間を超えるか否かを判定するステップと、前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための停止要求フレームを生成するステップと、生成された前記停止要求フレームを前記通信路を通じて前記複数の車載装置へ送信するステップと、を含む。これにより、第1フレームが優先的に送信されることによって送信順が繰り下がる第2フレームの送信タイミングを推定することができ、送信タイミングが第2遅延時間を超える場合に、第2フレームも優先的に送信される。したがって、第1フレームに加え第2フレームの遅延を抑制することができる。
【0023】
(13) 本実施形態に係る通信制御プログラムは、複数の車載装置が接続された通信路における通信を制御するための通信制御プログラムであって、コンピュータに、前記通信路に送信される予定の複数のフレームのうちの第1フレームの送信タイミングが第1遅延時間を超えるか否かを判定するステップと、前記第1フレームの送信タイミングが前記第1遅延時間を超えると判定された場合に、前記第1フレームの送信順が変更されることによって送信タイミングが変化する第2フレームの送信タイミングを推定するステップと、推定された前記第2フレームの送信タイミングが第2遅延時間を超えるか否かを判定するステップと、前記判定部によって前記第2フレームの送信タイミングが前記第2遅延時間を超えると判定された場合に、前記第1フレーム及び前記第2フレームが前記通信路を送信されるまで、前記第1フレーム及び前記第2フレームとは異なるフレームの送信停止を要求するための停止要求フレームを生成するステップと、生成された前記停止要求フレームを前記通信路を通じて前記複数の車載装置へ送信するステップと、を実行させる。これにより、第1フレームが優先的に送信されることによって送信順が繰り下がる第2フレームの送信タイミングを推定することができ、送信タイミングが第2遅延時間を超える場合に、第2フレームも優先的に送信される。したがって、第1フレームに加え第2フレームの遅延を抑制することができる。
【0024】
<本開示の実施形態の詳細>
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0025】
[1.車載システム]
図1は、本実施形態に係る車載システムの構成の一例を示すブロック図である。車載システム100は、車両に搭載される。
【0026】
本実施系に係る車載システム100は、中継ECU200と、ECU300A,300B,300C,300D,300Eとを含む。車載システム100は、中継ECU200、ECU300A,300B,300C,300D,300E、及びそれらを繋ぐ通信線(通信バス)によって構成される車載ネットワークである。
【0027】
複数のECU300A,300B,300C,300D,300Eは、車両の各部に配置される。ECU300A,300B,300C,300D,300Eは、車両の各部のハードウェアを個別に制御したり、車両の各部のハードウェアの状態を監視したりする。例えば、ECU300A,300B,300C,300D,300Eは、制御系、ボディ系、情報系のECUである。ECU300A,300B,300C,300D,300Eは、「車載装置」の一例である。なお、以下の説明では、ECU300A,300B,300C,300Dを総称して「ECU300」ともいう。
【0028】
中継ECU200は、ECU300A,300B,300C,300D,300Eのそれぞれと通信バス400A,400Bを介して接続されている。通信バス400A,400Bは、例えばCANバスである。具体的には、バス400Aには、ECU300A,300B,300Cが接続されている。バス400Bには、ECU300D,300Eが接続されている。中継ECU200は、ECU300A,300B,300C,300D,300Eのそれぞれと相互に通信することができる。
【0029】
中継ECU200及びECU300は、周期的又は非周期的にメッセージを送受信するための第1通信プロトコルを使用する。第1通信プロトコルは、例えば、CANである。中継ECU200及びECU300は、第1通信プロトコルよりも伝送速度が高い第2通信プロトコルを使用することができる。第2通信プロトコルは、例えば、CAN FD(CAN with Flexible Data Rate)である。第2通信プロトコルは、例えば、CAN XLであってもよい。本実施形態では、第1通信プロトコルがCANであり、第2通信プロトコルがCAN FDである例について説明する。
【0030】
中継ECU200は、複数のECU300間の通信を中継するゲートウェイとしての機能を有する。ECU300は、フレームを送信することができる。中継ECU200は、異なるバスに接続されたECU間のフレームを中継する。例えば、中継ECU200は、バス400Aに接続されたECU300Aと、バス400Bに接続されたECU300Dとの間でフレームを中継することができる。
【0031】
[2.中継ECUの構成]
図2は、本実施形態に係る中継ECUの構成の一例を示すブロック図である。中継ECU200は、プロセッサ201と、不揮発性メモリ202と、揮発性メモリ203と、通信インタフェース(以下、「通信I/F」ともいう)204A,204Bとを含む。中継ECU200は、「通信装置」の一例である。さらに具体的には、中継ECU200は、「中継装置」の一例である。プロセッサ201と、不揮発性メモリ202と、揮発性メモリ203と、通信I/F204A,204Bとのそれぞれは、通信線であるバス205によって互いに接続されている。プロセッサ201と、不揮発性メモリ202と、揮発性メモリ203と、通信I/F204A,204Bとのそれぞれは、バス205を介して互いにデータを伝送することができる。
【0032】
揮発性メモリ203は、例えばSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等の半導体メモリである。不揮発性メモリ202は、例えばフラッシュメモリ、ハードディスク、ROM(Read Only Memory)等である。不揮発性メモリ202には、コンピュータプログラムである通信制御プログラム210、及び通信制御プログラム210の実行に使用されるデータが格納される。中継ECU200の後述する機能は、通信制御プログラム210がプロセッサ201によって実行されることで発揮される。
【0033】
プロセッサ201は、例えばCPU(Central Processing Unit)である。ただし、プロセッサ201は、CPUに限られない。プロセッサ201は、GPU(Graphics Processing Unit)であってもよい。具体的な一例では、プロセッサ201は、マルチコアプロセッサである。プロセッサ201は、シングルコアプロセッサであってもよい。プロセッサ201は、コンピュータプログラムを実行可能に構成される。ただしプロセッサ201は、例えば、ASIC(Application Specific Integrated Circuit)であってもよいし、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスであってもよい。この場合、ASIC又はプログラマブルロジックデバイスは、通信制御プログラム210と同じ機能を実行可能に構成される。
【0034】
通信I/F204A,204Bは、上述した第1通信プロトコル及び第2通信プロトコルに準拠した通信インタフェースである。通信I/F204A,204Bは、例えばCANインタフェースである。
【0035】
通信I/F204Aは、バス400Aに接続されている。通信I/F204Bは、バス400Bに接続されている。中継ECU200は、通信I/F204Aによって、ECU300A,300B,300Cと通信することができる。中継ECU200は、通信I/F204Bによって、ECU300D,300Eと通信することができる。
【0036】
不揮発性メモリ202には、管理テーブル211が格納されている。管理テーブル211は、通信制御プログラム210によって用いられる。管理テーブル211については後述する。
【0037】
[3.ECUの構成]
図3は、本実施形態に係るECUの構成の一例を示すブロック図である。ECU300は、プロセッサ301と、不揮発性メモリ302と、揮発性メモリ303と、通信I/F304とを含む。プロセッサ301と、不揮発性メモリ302と、揮発性メモリ303と、通信I/F304とのそれぞれは、通信線であるバス305によって互いに接続されている。プロセッサ301と、不揮発性メモリ302と、揮発性メモリ303と、通信I/F304とのそれぞれは、バス305を介して互いにデータを伝送することができる。
【0038】
揮発性メモリ303は、例えばSRAM、DRAM等の半導体メモリである。不揮発性メモリ302は、例えばフラッシュメモリ、ハードディスク、ROM等である。不揮発性メモリ302には、コンピュータプログラムである通信プログラム310、及び通信プログラム310の実行に使用されるデータが格納される。ECU300の後述する機能は、通信プログラム310がプロセッサ301によって実行されることで発揮される。
【0039】
プロセッサ301は、例えばCPUである。ただし、プロセッサ301は、CPUに限られない。プロセッサ301は、GPUであってもよい。具体的な一例では、プロセッサ301は、マルチコアプロセッサである。プロセッサ301は、シングルコアプロセッサであってもよい。プロセッサ301は、コンピュータプログラムを実行可能に構成される。ただしプロセッサ301は、例えば、ASICであってもよいし、FPGA等のプログラマブルロジックデバイスであってもよい。この場合、ASIC又はプログラマブルロジックデバイスは、通信プログラム310と同じ機能を実行可能に構成される。
【0040】
通信I/F304は、上述した第1通信プロトコル及び第2通信プロトコルに準拠した通信インタフェースである。通信I/F304は、例えばCANインタフェースである。
【0041】
通信I/F304は、バス400に接続されている。ECU300は、通信I/F304によって、ECU300及び中継ECU200と通信することができる。
【0042】
[4.中継ECUの機能]
図4は、本実施形態に係る中継ECUの機能の一例を示す機能ブロック図である。
【0043】
中継ECU200のプロセッサ201が通信制御プログラム210を実行することにより、判定部221と、生成部222と、送信部223と、推定部224と、切替部225との各機能が実現される。すなわち、判定部221と、生成部222と、送信部223と、推定部224と、切替部225とのそれぞれは、プロセッサ201によって実現される。
【0044】
図5は、CANのフレームフォーマットを示す模式図である。
図5には、CANの標準フォーマットのデータフレーム構造が示される。図中の上側の線はリセッシブを、下側の線はドミナントを示す。
図5に示すように、CANのデータフレームには、SOF(Start Of Frame)、CAN ID、RTR(Remote transmission Request)、コントロールフィールド、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ、ACK(Acknowledgement)スロット、ACKデリミタ、EOF(End Of Frame)の各フィールドが含まれる。SOFはフレームの開始を示す。CAN IDは、ECU及びフレームの種類を識別するために用いられる。RTRはデータフレームとリモートフレームとを識別するために使用される。データフレームの場合、RTRはドミナントである。コントロールフィールドには通信制御に用いられる情報が格納される。データフィールドには、最大8バイトの実データ(ペイロード)が格納される。CRCシーケンス及びCRCデリミタは合わせてCRCフィールドと呼ばれ、CRCフィールドには一種の誤り検出符号が格納される。ACKスロット及びACKデリミタは合わせてACKフィールドと呼ばれ、ACKフィールドにはCRCフィールド部分までを正常に受信できたか否かを示す情報が格納される。EOFはフレームの終わりを示す。
【0045】
CANでは、フレームにCAN IDと呼ばれる識別情報が含まれる。CAN IDは、フレームの種類を示している。例えば、「エンジン回転数」のデータを含むフレームのCANIDは「0x100」であり、「アクセル開度」のデータを含むフレームのCANIDは「0x200」である等である。
【0046】
CAN IDは、フレームの送信元もまた示している。
図6は、実施形態に係る車載システム100における通信の一例を模式的に示す図である。
図6において、「0x100」等の0xで始まる5桁の16進数の数字はCAN IDを示しており、CAN IDを含む矩形はフレームを示している。
図6の例では、ECU300Aから送信されるフレームのCAN IDは「0x300」であり、ECU300Bから送信されるフレームのCAN IDは「0x200」であり、ECU300Cから送信されるフレームのCAN IDは「0x400」であり、ECU300Dから送信されるフレームのCAN IDは「0x100」であり、ECU300Eから送信されるフレームのCAN IDは「0x500」である。
【0047】
通信バス400A,400Bのそれぞれは、フレームを順次伝送する。通信バス400A,400Bのそれぞれは、同時に複数のフレームを伝送することはできない。すなわち、通信バス400A,400Bのそれぞれにおいて1つのフレームが伝送されている間は、当該フレームによって通信バス400A,400Bは占有される。
【0048】
図6の例では、ECU300BからCAN ID0x200のフレームが通信バス400Aに送出されている。したがって、通信バス400Aにおいて、CAN ID0x200のフレームが伝送されている期間は、他のフレームを伝送することはできない。
【0049】
中継ECU200は、通信バス400A及び400Bの間でフレームを中継する。
図6の例では、中継ECU200は、ECU300Dから送信されたCAN ID0x100のフレームと、ECU300Eから送信されたCAN ID0x500のフレームとを、通信バス400Bから通信バス400Aへ中継する。
図6の例では、中継ECU200は、通信バス400Bから受信したCAN ID0x100のフレーム及びCAN ID0x500のフレームを通信バス400Aへ送出する前であり、CAN ID0x100のフレーム及びCAN ID0x500のフレームを、内蔵するバッファ内に保有している。
【0050】
CAN IDは、通信調停における優先度を示している。CAN IDが小さいほど優先度は高い。すなわち、
図6の例では、0x100,0x200,0x300,0x400,0x500の順番で優先度が低くなる。したがって、通信バス400Aにおいて、CAN ID0x200のフレームが伝送された後、0x100,0x300,0x400,0x500の順番で通信バス400Aにおいてフレームが順次伝送される予定である。
【0051】
しかし、0x100,0x300,0x400,0x500のフレームが全て伝送される前に、他のフレームが割り込む場合がある。例えば、CAN ID0x300のフレームが送信された後、CAN ID0x200のフレームが再び通信バス400Aに送信される場合、CAN ID0x400,0x500のフレームは調停負けにより待機する。したがって、優先度が低いフレーム、例えば、CAN ID0x400,0x500のフレームは、調停負けが続き、許容範囲を超えて遅延するおそれがある。実施形態に係る中継ECU200は、このような調停負けによるフレームの遅延を抑制する。
【0052】
図4に戻り、判定部221は、通信バス400A,400Bに送信される予定の複数のフレームのうちのフレームの送信タイミングが第1遅延時間を超えるか否かを判定する。
【0053】
CANでは、周期的に送信されるフレームと、非周期的に送信されるフレームとがある。周期的に送信されるフレームは、CAN ID毎にフレームの送信間隔(受信間隔)が定められている。具体的な一例では、判定部221は、同一のCAN IDのフレームの前回受信してからの経過時間(以下、単に「経過時間」ともいう)が、第1遅延時間に相当する第1閾値を超えるか否かを判定することにより、送信タイミングが第1遅延時間を超えるか否かを判定する。以下では、経過時間と第1閾値とが比較される対象のフレームを「第1フレーム」ともいう。
【0054】
中継ECU200は、例えば、管理テーブル211を用いて、車載システム100における通信制御を行う。
図7は、管理テーブルの一例を示す図である。管理テーブル211は、各CAN IDのフレームの通信状態を管理するためのテーブルである。
【0055】
管理テーブル211は、CAN ID、受信間隔、最大受信間隔、滞留時間、経過時間、第1閾値、及び第2閾値のそれぞれのカラム(列)を有し、各CAN IDのレコード(行)を含む。管理テーブル211は、CAN ID毎に、受信間隔、最大受信間隔、滞留時間、経過時間、第1閾値、及び第2閾値が登録される。
【0056】
受信間隔、最大受信間隔、第1閾値及び第2閾値は固定値である。「受信間隔」は、CAN ID毎に規定されたフレームの受信間隔である。「最大受信間隔」は、1つのフレームの受信間隔を超えた遅延が許容される限界値である。
図7の例では、CAN ID0x100の受信間隔はP1、最大受信間隔はPM1である。CAN ID0x200の受信間隔はP2、最大受信間隔はPM2である。CAN ID0x300の受信間隔はP3、最大受信間隔はPM3である。CAN ID0x400の受信間隔はP4、最大受信間隔はPM4である。CAN ID0x500の受信間隔はP5、最大受信間隔はPM5である。
【0057】
滞留時間、及び経過時間は、時間経過に応じて逐次更新される値である。管理テーブル211は、所定期間毎にリアルタイムに更新される。すなわち、滞留時間及び経過時間は、所定期間毎に更新される。
【0058】
「滞留時間」は、現時点において、中継ECU200がフレームを保持している時間である。すなわち、「滞留時間」は、あるフレームを中継ECU200が受信してからの経過時間である。「滞留時間」は、通信バス400Bから通信バス400Aへ中継するフレームを中継ECU200が受信した時点で「0」にセットされ、時間経過に応じて増加する。「滞留時間」は、中継ECU200が当該フレームを送信した時点で管理テーブル211から消去される。
【0059】
滞留時間は、中継ECU200において中継されるフレームのCAN IDに対してのみ設定される。
図7の例では、CAN ID0x100の滞留時間はt21である。CAN ID0x500の滞留時間はt25である。CAN ID0x200,0x300,0x400に対しては滞留時間は設定されていない。
【0060】
「経過時間」は、対象のCAN IDのフレームを中継ECU200(及びECU300A,300B,300C,300D,300E)が前回受信してからの経過時間である。「経過時間」は、対象のCAN IDのフレームを中継ECU200が受信した時点で「0」にセットされ、時間経過に応じて増加する。「経過時間」は、対象のCAN IDの次のフレームを中継ECU200が受信した時点でリセットされる。
【0061】
経過時間は、各CAN IDに対して設定される。
図7の例では、CAN ID0x100の経過時間はt11である。CAN ID0x200の経過時間はt12である。CAN ID0x300の経過時間はt13である。CAN ID0x400の経過時間はt14である。CAN ID0x500の経過時間はt15である。
【0062】
第1閾値は、経過時間の閾値である。第1閾値は、CAN ID毎に設定される。
図7の例では、CAN ID0x100に対応する第1閾値はTh11である。CAN ID0x200に対応する第1閾値はTh12である。CAN ID0x300に対応する第1閾値はTh13である。CAN ID0x400に対応する第1閾値はTh14である。CAN ID0x500に対応する第1閾値はTh15である。
【0063】
上述したように、第1閾値は、第1遅延時間に相当する。最大受信間隔は、フレームの許容遅延時間である。第1閾値、すなわち第1遅延時間は、経過時間が最大受信間隔を超えない範囲で設定される。具体的には、第1閾値は、受信間隔よりも大きく、最大受信間隔よりも小さい値に設定される。
【0064】
フレームが前回のフレームの送信(受信)から受信間隔を超えても送信されない場合、すなわち、フレームの送信が遅延している場合、最大受信間隔を超えないようにフレームが送信されることが要求される。現時点をフレームの最も早い送信タイミングであると仮定すると、現時点が第1遅延時間を超える場合、フレームの送信タイミングが最大受信期間を超える可能性がある。
図4に戻り、判定部221は、経過時間が第1閾値を超えるか否かを判定することにより、フレームの送信タイミングが第1遅延時間を超えるか否かを判定する。すなわち、現時点において経過時間が第1閾値を超える場合には、フレームの送信タイミングが最大受信期間を超える可能性がある。
【0065】
第1閾値は、最大受信間隔に基づいて設定される。例えば、第1閾値は、最大受信間隔に加え、通信バス400A,400Bを伝送されるフレームのCAN IDの数に基づいて設定され得る。通信バス400A,400Bを伝送されるフレームのCAN ID数が多い場合には、CAN IDが大きいフレームは調停負けが連続することが想定される。このため、通信バス400A,400Bを伝送されるフレームのCAN ID数が多いほど、第1閾値を小さく設定することができる。
【0066】
例えば、第1閾値は、最大受信間隔に加え、通信バス400A,400Bに接続されたECU300の数に基づいて設定され得る。通信バス400A,400Bに接続されたECUが多ければ、通信バス400A,400Bを伝送されるフレーム数が多くなり、CAN IDが大きいフレームは調停負けが連続することが想定される。このため、通信バス400A,400Bに接続されるECU数が多いほど、第1閾値を小さく設定することができる。
【0067】
例えば、第1閾値は、最大受信間隔に加え、通信バス400A,400Bにおけるフレームの送信頻度に基づいて設定され得る。すなわち、通信バス400A,400Bにおけるフレームの送信頻度が高ければ、通信バス400A,400Bを伝送されるフレーム数が多くなり、CAN IDが大きいフレームは調停負けが連続することが想定される。このため、通信バス400A,400Bにおけるフレームの送信頻度が高いほど、第1閾値を小さく設定することができる。
【0068】
例えば、第1閾値は、最大受信間隔に加え、対応するCAN IDのフレームの送信元が、1つの通信バス400Aに接続された車載装置、すなわちECU300であるか、複数の通信バス400A,400Bに接続された車載装置、すなわち中継ECU200であるかに基づいて設定されてもよい。中継ECU200において、複数のフレームが滞留する場合がある。このような場合、先に送信すべきフレームが滞留すると、後に送信すべきフレームの滞留時間が長くなることが想定される。したがって、中継ECU200においてはフレームの滞留時間を短くすることが好ましい。このため、フレームの送信元が中継ECU200であるCAN IDに対しては第1閾値を小さく設定し、フレームの送信元がECU300であるCAN IDに対しては第1閾値を大きく設定することができる。
【0069】
生成部222は、判定部221によって経過時間が第1閾値を超えると判定された場合、すなわち、フレームの送信タイミングが第1遅延時間を超えると判定された場合、フレームの送信停止を要求するための停止要求フレームを生成する。
【0070】
生成部222は、経過時間が第1閾値を超えると判定されたCAN IDのフレームを、優先的に送信する対象のフレームである優先フレームとして決定する。停止要求フレームのペイロードには、優先フレームのCAN IDが含まれる。停止要求フレームは、優先フレームとは異なるフレームの停止を要求するためのフレームである。
【0071】
停止要求フレームには、車載システムにおいて最小のCAN IDよりも小さいCAN IDが割り当てられる。一例では、停止要求フレームのCAN IDは、車載システムにおいて割り当て可能なCAN IDのうちの最小のCAN IDに設定される。例えば、停止要求フレームのCAN IDは「0x000」又は「0x001」に設定される。これにより、停止要求フレームの優先度は、他のフレームよりも優先度が高くなる。送信部223は、生成部222によって生成された停止要求フレームを通信バス400Aを通じてECU300A,300B,300Cへ送信する。停止要求フレームを受信したECU300A,300B,300Cは、停止要求フレームにおいて指定されたCAN IDのフレームを受信するまで、優先フレーム以外のフレームの送信を停止する。優先的に送信する対象として決定されたCAN IDのフレームをECU300A、300B又は300Cが送信するために保持している場合、当該ECUは、停止要求フレームを受信した場合に、優先フレームを送信する。これにより、優先フレームが他のCAN IDのフレームよりも先に送信される。
【0072】
優先フレームが他のフレームよりも先に送信される結果、他のフレーム(すなわち、優先フレームによって送信が遅れたフレーム)の中に、最大受信間隔を超えても送信されないフレーム(2次的に送信が遅延するフレーム)が生じることが考えられる。実施形態に係る中継ECU200は、2次的に送信が遅延するフレームが生じないように、フレームの送信順を制御する。
【0073】
推定部224は、判定部221によって第1フレームの送信タイミングが第1遅延時間を超えると判定された場合に、第1フレームの送信順が変更されることによって送信タイミングが変化するフレームの送信タイミングを推定する。以下、推定部224によって推定される送信タイミングを、「見込み送信タイミング」ともいう。例えば、推定部224は、優先フレームの送信による遅延時間に基づいて、フレームの見込み送信タイミングを決定する。以下、見込み送信タイミングが決定される対象のフレームを「第2フレーム」ともいう。
【0074】
具体的な一例では、推定部224は、第1フレーム(優先フレーム)の送信順が変更される前における第2フレームの送信タイミングから、停止要求フレーム及び第1フレームの送信に要する時間が経過した後のタイミングを、第2フレームの見込み送信タイミングとして決定することができる。
【0075】
例えば、推定部224は、停止要求フレームのデータサイズと、通信バス400A,400Bにおける伝送速度に基づいて、停止要求フレームの伝送時間を算出することができる。推定部224は、優先フレームのデータサイズと、通信バス400A,400Bにおける伝送速度に基づいて、優先フレームの伝送時間を算出することができる。推定部224は、停止要求フレームの伝送時間と、優先フレームの伝送時間と、フレーム間のインターバル(2回分)とを加算して、優先フレームの送信による遅延時間を算出することができる。
【0076】
推定部224は、各CAN ID(優先フレームに決定されたCAN IDを除く)の経過時間に、算出した遅延時間を加算することで、見込み経過時間を算出する。優先フレーム以外のCAN IDのフレームは、見込み経過時間以降に送信される。したがって、見込み経過時間は、現時点から最も早いフレーム送信可能なタイミングである。見込み経過時間は、推定された送信タイミングの一例である。
【0077】
判定部221は、推定部224によって決定された第2フレームの見込み送信タイミングが第2遅延時間を超えるか否かを判定する。具体的な一例では、判定部221は、見込み経過時間が第1閾値を超えるか否かを判定することにより、送信タイミングが第2遅延時間を超えるか否かを判定する。上述した第1遅延時間と同様に、第1閾値は第2遅延時間に相当する。
【0078】
生成部222は、判定部221によって第2フレームの見込み送信タイミングが第2遅延時間を超えると判定された場合に、第1フレーム及び第2フレームが通信バス400A,400Bを送信されるまでフレームの送信停止を要求するための停止要求フレームを生成する。
【0079】
生成部222は、見込み経過時間が第1閾値を超えると判定されたCAN IDのフレームを、優先フレームとして決定する。停止要求フレームのペイロードには、優先フレームのCAN ID、すなわち、経過時間が第1閾値を超えると判定された第1フレームのCAN IDに加え、見込み経過時間が第1閾値を超えると判定された第2フレームのCAN IDが含まれる。さらに具体的な一例では、停止要求フレームのペイロードには、第1フレーム及び第2フレームの送信順に、CAN IDが含まれる。例えば、経過時間が第1閾値を超えると判定されたCAN IDが0x400であり、見込み経過時間が第1閾値を超えると判定されたCAN IDが0x500である場合、停止要求フレームのペイロードには、0x400,0x500がこの順番で並ぶ。
【0080】
中継ECU200におけるフレームの滞留時間は短いことが望まれ、許容滞留時間内にフレームが送信されることが要求される。判定部221は、複数の通信バス400A,400Bのうちの通信バス400Bから通信バス400Aへ伝送する第1フレームの中継ECU200における滞留時間が第2閾値を超えるか否かをさらに判定することができる。
【0081】
第2閾値は、滞留時間の閾値である。第2閾値は、CAN ID毎に設定される。
図7の例では、CAN ID0x100に対応する第2閾値はTh21である。CAN ID0x200に対応する第2閾値はTh22である。CAN ID0x300に対応する第2閾値はTh23である。CAN ID0x400に対応する第2閾値はTh24である。CAN ID0x500に対応する第2閾値はTh25である。
【0082】
第2閾値は、中継ECU200における許容滞留時間に基づいて設定される。具体的には、第2閾値は、許容滞留時間以下の値に設定される。
【0083】
図4に戻り、生成部222は、CAN IDに対応する経過時間が第1閾値を超える場合に加え、滞留時間が第2閾値を超えると判定部221によって判定された場合にも、停止要求フレームを生成することができる。
【0084】
生成部222は、滞留時間が第2閾値を超えると判定されたCAN IDのフレームを、優先的に送信する対象のフレームである優先フレームとして決定することができる。停止要求フレームのペイロードには、優先フレームのCAN IDが含まれる。
【0085】
推定部224は、第2フレームが通信バス400Bから通信バス400Aへ伝送するフレームである場合に、第1フレームの送信順が変更されたときにおける第2フレームの中継ECU200における滞留時間を推定することができる。以下、推定部224によって推定される滞留時間を、「見込み滞留時間」ともいう。例えば、推定部224は、優先フレームの送信による遅延時間に基づいて、第2フレームの見込み滞留時間を決定する。
【0086】
具体的な一例では、推定部224は、第1フレーム(優先フレーム)の送信順が変更される前における第2フレームの滞留時間から、停止要求フレーム及び第1フレームの送信に要する時間が経過した後の時間を、第2フレームの見込み滞留時間として決定することができる。
【0087】
例えば、推定部224は、第1フレーム(優先フレーム)の送信順が変更される前における第2フレームの中継ECU200における滞留時間に、停止要求フレーム及び優先フレームの送信に要する時間を付加した時間を、第2フレームの見込み滞留時間として決定する。推定部224は、上述したように、停止要求フレームの伝送時間と、優先フレームの伝送時間と、フレーム間のインターバルとを加算して、優先フレームの送信による遅延時間を算出することができる。推定部224は、各CAN ID(優先フレームに決定されたCAN IDを除く)の滞留時間に、算出した遅延時間を加算することで、見込み滞留時間を算出する。
【0088】
判定部221は、推定部224によって決定された第2フレームの見込み滞留時間が第2閾値を超えるか否かをさらに判定することができる。
【0089】
生成部222は、判定部221によって第2フレームの見込み滞留時間が第2閾値を超えると判定された場合に、第1フレーム及び第2フレームが通信バス400A,400Bを送信されるまでフレームの送信停止を要求するための停止要求フレームを生成する。
【0090】
生成部222は、見込み滞留時間が第2閾値を超えると判定されたCAN IDのフレームを、優先フレームとして決定する。停止要求フレームのペイロードには、優先フレームのCAN ID、すなわち、経過時間が第1閾値を超えると判定された第1フレームのCAN ID及び滞留時間が第2閾値を超えると判定された第1フレームのCAN IDの少なくとも1つに加え、見込み滞留時間が第2閾値を超えると判定された第2フレームのCAN IDが含まれる。上述したように、一例では、停止要求フレームのペイロードには、第1フレーム及び第2フレームの送信順に、CAN IDが含まれる。例えば、経過時間が第1閾値を超えると判定されたCAN IDが0x400であり、見込み滞留時間が第2閾値を超えると判定されたCAN IDが0x500である場合、停止要求フレームのペイロードには、0x400,0x500がこの順番で並ぶ。
【0091】
切替部225は、第1通信プロトコルと第2通信プロトコルとを切り替える。切替部225は、停止要求フレームを送信してから優先フレームの送信が完了するまでの間、第1通信プロトコルから第2通信プロトコルに切り替える。
【0092】
停止要求フレームは、低速の第1通信プロトコルによって送信される。停止要求フレームの受信は、第1通信プロトコルから第2通信プロトコルへの切替のトリガーである。中継ECU200は、停止要求フレームを送信すると、第1通信プロトコルから第2通信プロトコルへ切り替える。ECU300は、停止要求フレームを受信すると、第1通信プロトコルから第2通信プロトコルへ切り替える。
【0093】
優先フレームは、高速の第2通信プロトコルによって送信される。優先フレームは、第2通信プロトコルに準拠したフォーマットで作成される。優先フレームの受信は、第2通信プロトコルから第1通信プロトコルへの切替のトリガーである。中継ECU200は、全ての優先フレームを送信すると、第2通信プロトコルから第1通信プロトコルへ切り替える。ECU300は、全ての優先フレームを受信すると、第2通信プロトコルから第1通信プロトコルへ切り替える。
【0094】
推定部224は、第1通信プロトコルの伝送速度に基づいて、停止要求フレームの伝送時間を算出することができる。第1通信プロトコルがCANである場合、伝送速度は例えば500kbpsである。推定部224は、第2通信プロトコルの伝送速度に基づいて、優先フレームの伝送時間を算出することができる。第2通信プロトコルがCAN FDである場合、伝送速度は例えば1Mbpsである。
【0095】
[5.車載システムの動作]
以下、本実施形態に係る車載システムの動作を説明する。
【0096】
図8A及び
図8Bは、実施形態に係る中継ECUによる通信制御処理を示すフローチャートである。通信制御処理は、所定の時間間隔毎に実行される。
【0097】
プロセッサ201は、管理テーブル211において、CAN ID毎に経過時間及び滞留時間を更新する(ステップS101)。
【0098】
プロセッサ201は、CAN ID毎に経過時間と第1閾値とを比較し、経過時間が第1閾値を超えるCAN ID(フレーム)が存在するか否かを判定する。プロセッサ201は、CAN ID毎に滞留時間と第2閾値とを比較し、滞留時間が第2閾値を超えるCAN ID(フレーム)が存在するか否かを判定する(ステップS102)。
【0099】
経過時間が第1閾値を超えるCAN IDが存在せず、且つ、滞留時間が第2閾値を超えるCAN IDが存在しない場合(ステップS102においてNO)、プロセッサ201は、通信制御処理を終了する。
【0100】
経過時間が第1閾値を超えるCAN IDが存在する場合、又は、滞留時間が第2閾値を超えるCAN IDが存在する場合(ステップS102においてYES)、プロセッサ201は、経過時間が第1閾値を超えるCAN IDのフレーム、又は、滞留時間が第2閾値を超えるCAN IDのフレームを、優先フレームに決定する(ステップS103)。
【0101】
プロセッサ201は、CAN ID毎(優先フレームのCAN IDを除く)に、見込み経過時間及び見込み滞留時間を算出する(ステップS104)。この場合において、管理テーブル211において滞留時間が登録されていないCAN IDについては、見込み滞留時間は算出されない。
【0102】
プロセッサ201は、CAN ID毎に見込み経過時間と第1閾値とを比較し、見込み経過時間が第1閾値を超えるCAN ID(フレーム)が存在するか否かを判定する。プロセッサ201は、CAN ID毎に見込み滞留時間と第2閾値とを比較し、見込み滞留時間が第2閾値を超えるCAN ID(フレーム)が存在するか否かを判定する(ステップS105)。
【0103】
見込み経過時間が第1閾値を超えるCAN IDが存在する場合、又は、見込み滞留時間が第2閾値を超えるCAN IDが存在する場合(ステップS105においてYES)、プロセッサ201は、ステップS103に戻り、見込み経過時間が第1閾値を超えるCAN IDのフレーム、又は、見込み滞留時間が第2閾値を超えるCAN IDのフレームを、優先フレームに決定する。
【0104】
プロセッサ201は、再度ステップS104を実行する場合、CAN ID毎(優先フレームのCAN IDを除く)に、新たに優先フレームが追加されたことによる見込み経過時間及び見込み滞留時間を算出する。すなわち、プロセッサ201は、新たに追加された優先フレームの伝送時間を算出し、算出された伝送時間及びフレーム間のインターバルを、見込み経過時間及び見込み滞留時間に加算して、新たな見込み経過時間及び見込み滞留時間を算出する。
【0105】
見込み経過時間が第1閾値を超えるCAN IDが存在せず、且つ、見込み滞留時間が第2閾値を超えるCAN IDが存在しない場合(ステップS105においてNO)、プロセッサ201は、停止要求フレームを生成する(ステップS106)。プロセッサ201は、生成した停止要求フレームを送信する(ステップS107)。
【0106】
プロセッサ201は、第1通信プロトコルから第2通信プロトコルに切り替える(ステップS108)。
【0107】
プロセッサ201は、優先フレームを送信又は受信したか否かを判定する(ステップS109)。中継ECU200が優先フレームの送信元である場合、プロセッサ201は、優先フレームを送信したか否かを判定する。ECU300が優先フレームの送信元でない場合、プロセッサ201は、優先フレームを受信したか否かを判定する。
【0108】
中継ECU200が優先フレームを送信せず、且つ、受信していない場合(ステップS109においてNO)、プロセッサ201はステップS109を再度実行する。
【0109】
中継ECU200が優先フレームを送信又は受信した場合(ステップS109においてYES)、プロセッサ201は、第2通信プロトコルから第1通信プロトコルに切り替える(ステップS110)。以上で、通信制御処理が終了する。
【0110】
図9は、実施形態に係るECUによる通信処理を示すフローチャートである。
【0111】
プロセッサ301は、停止要求フレームを受信したか否かを判定する(ステップS201)。
【0112】
停止要求フレームを受信していない場合(ステップS201においてNO)、プロセッサ301はステップS201を再度実行する。
【0113】
停止要求フレームを受信した場合(ステップS201においてYES)、プロセッサ301は、第1通信プロトコルから第2通信プロトコルに切り替える(ステップS202)。
【0114】
プロセッサ301は、優先フレームを送信又は受信したか否かを判定する(ステップS203)。当該ECU300が優先フレームの送信元である場合、プロセッサ301は、優先フレームを送信したか否かを判定する。当該ECU300が優先フレームの送信元でない場合、プロセッサ301は、優先フレームを受信したか否かを判定する。
【0115】
当該ECU300が優先フレームを送信せず、且つ、受信していない場合(ステップS203においてNO)、プロセッサ301はステップS203を再度実行する。
【0116】
当該ECU300が優先フレームを送信又は受信した場合(ステップS203においてYES)、プロセッサ301は、第2通信プロトコルから第1通信プロトコルに切り替える(ステップS204)。以上で、通信処理が終了する。
【0117】
図10は、実施形態に係る車載システムの動作の一例を示すシーケンス図である。
図10では、中継ECU200が停止要求フレームを生成する段階から後の動作を示している。
【0118】
CAN ID0x400のフレームと、CAN ID0x500のフレームとが、優先フレームに決定されたと想定する。中継ECU200は、停止要求フレームを生成する(ステップS11)。この停止要求フレームのペイロードには、CAN ID0x400及び0x500が含まれる。
【0119】
中継ECU200は、停止要求フレームを通信バス400Aに送信する(ステップS12)。ECU300A,300B,300Cは、停止要求フレームを受信する。
【0120】
中継ECU200及びECU300A,300B,300Cのそれぞれは、第1通信プロトコルから第2通信プロトコルに切り替える(ステップS13)。
【0121】
CAN ID0x400が割り当てられているECU300Cは、CAN ID0x400のフレーム(優先フレーム)を通信バス400Aに送信する(ステップS14)。中継ECU200及びECU300A,300Bは、CAN ID0x400のフレームを受信する。
【0122】
CAN ID0x500を中継する中継ECU200は、CAN ID0x500のフレーム(優先フレーム)を通信バス400Aに送信する(ステップS15)。ECU300A,300B,300Cは、CAN ID0x500のフレームを受信する。
【0123】
中継ECU200及びECU300A,300B,300Cのそれぞれは、第2通信プロトコルから第1通信プロトコルに切り替える(ステップS16)。
【0124】
[6.変形例]
上記の実施形態においては、中継ECU200が管理テーブル211を保持し、フレームの遅延を抑制するための通信制御処理を実行する構成について述べたが、これに限定されない。例えば、通信バス400Aにおける通信制御を行う場合、ECU300A,300B,300Cのうちの1つが通信制御処理を実行することができる。すなわち、ECU300は、「通信装置」の他の例である。この場合、中継ECU200におけるフレームの滞留時間を管理することはできないため、管理テーブル211には、滞留時間及び第2閾値のカラムを省略することができる。ECU300は、滞留時間(又は見込み滞留時間)と第2閾値との比較、及び滞留時間(又は見込み滞留時間)が第2閾値を超える場合における優先フレームの設定の各処理を省略することができる。
【0125】
上記の実施形態においては、中継ECU200が1つの管理テーブル211によってCAN ID毎のフレームの通信状態を管理したが、これに限定されない。管理テーブル211を複数のテーブルに分割してもよい。
【0126】
図11は、管理テーブルの変形例を示す図である。
図11には、第1管理テーブル211A及び第2管理テーブル211Bが示されている。第1管理テーブル211Aは、CAN ID、受信間隔、最大受信間隔、経過時間、及び第1閾値のそれぞれのカラムを有し、各CAN IDのレコード(行)を含む。第1管理テーブル211Aは、CAN ID毎に、受信間隔、最大受信間隔、滞留時間、及び第1閾値が登録される。
【0127】
第2管理テーブル211Bは、CAN ID、受信順、滞留時間、及び第2閾値のそれぞれのカラムを有する。中継ECU200には、同一のCAN IDの複数のフレームが同時に滞留することがある。したがって、第2管理テーブル211Bは、フレーム毎のレコードを含む。
【0128】
第2管理テーブル211Bは、中継ECU200がフレームを受信したときに当該フレームのレコードが追加され、中継ECU200がフレームを送信したときに当該フレームのレコードが削除される。
【0129】
例えば、中継ECU200がCAN ID0x100のフレームを受信した場合、当該フレームについてのレコードを第2管理テーブル211Bに追加する。このレコードにおける受信順のフィールドには「1」が格納される。中継ECU200は、当該フレームを保持している状態で、CAN ID0x100のフレームをさらに受信した場合、新たに受信したフレームについてのレコードを第2管理テーブル211Bに追加する。このレコードにおける受信順のフィールドには「2」が格納される。
【0130】
このようにすることで、中継ECU200において滞留する同一CAN IDの複数フレームを管理することができる。
【0131】
[7.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。
【符号の説明】
【0132】
100 車載システム
200 中継ECU(通信装置、中継装置)
201 プロセッサ
202 不揮発性メモリ
203 揮発性メモリ
204A,204B 通信インタフェース(通信I/F)
210 通信制御プログラム
211 管理テーブル
211A 第1管理テーブル
211B 第2管理テーブル
221 判定部
222 生成部
223 送信部
224 推定部
225 切替部
300,300A,300B,300C,300D,300E ECU(車載装置、通信装置)
301 プロセッサ
302 不揮発性メモリ
303 揮発性メモリ
304 通信インタフェース(通信I/F)
310 通信プログラム
400,400A,400B 通信バス(通信路)