(57)【要約】【課題】通信バス間におけるメッセージの転送処理を許容遅延時間内に完了できない事態を低減しうる通信制御装置を提供する。【解決手段】通信制御装置１００は、複数の通信バス間におけるメッセージの転送処理を行う。通信制御装置１００は、制御部６０と、転送処理完了時間を算出するためのパラメータと、転送処理完了時間として許容可能な遅延時間である許容遅延時間とを、メッセージのデータＩＤに紐付けて格納する記憶部５０と、を備える。制御部６０は、メッセージを受信すると、該メッセージの転送データ生成順番を最後に設定し、パラメータを読み出して、受信したメッセージの転送処理完了時間を算出し、算出した転送処理完了時間が許容遅延時間を超える場合、受信したメッセージの転送データ生成順番を、転送データ生成順番が１つ前のメッセージの転送データ生成順番と入れ替える。【選択図】図２
2019213163.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信バス間に接続され、該通信バス間におけるメッセージの転送処理を行う通信制御装置であって、
前記メッセージを受信すると、転送先の前記通信バスに適合した転送データを、設定された転送データ生成順番に基づいて生成する制御部と、
前記メッセージの転送処理を完了するまでの時間である転送処理完了時間を算出するためのパラメータと、前記転送処理完了時間として許容可能な遅延時間である許容遅延時間とを、前記メッセージのデータＩＤに紐付けて格納する記憶部と、を備え、
前記制御部は、
前記メッセージを受信すると、該メッセージの前記転送データ生成順番を最後に設定し、
前記パラメータを読み出して、受信した前記メッセージの前記転送処理完了時間を算出し、
算出した前記転送処理完了時間が前記許容遅延時間を超える場合、受信した前記メッセージの前記転送データ生成順番を、転送データ生成順番が１つ前のメッセージの転送データ生成順番と入れ替える、通信制御装置。
【請求項２】
請求項１に記載の通信制御装置において、
前記制御部は、
前記転送データ生成順番を入れ替えると、入れ替えた後の前記転送データ生成順番において、前記転送処理完了時間を算出し、
前記入れ替えた後の前記転送データ生成順番において算出した前記転送処理完了時間が前記許容遅延時間を超える場合、受信した前記メッセージの前記転送データ生成順番を、転送データ生成順番がさらに１つ前のメッセージの転送データ生成順番と入れ替える、通信制御装置。
【請求項３】
請求項２に記載の通信制御装置において、
前記制御部は、受信した前記メッセージの前記転送処理完了時間が前記許容遅延時間を超えなくなるまで、前記転送データ生成順番を入れ替える処理を繰り返す、通信制御装置。
【請求項４】
請求項１から３のいずれか一項に記載の通信制御装置において、
前記制御部は、受信した前記メッセージよりも前記転送データ生成順番が前のメッセージの前記転送データを生成する時間と、受信した前記メッセージの前記転送データを生成する時間と、受信した前記メッセージの前記転送データを転送先の前記通信バスに送信する時間と、を足し合わせて、前記転送処理完了時間を算出する、通信制御装置。
【請求項５】
請求項１から４のいずれか一項に記載の通信制御装置において、
受信した各メッセージについて、前記転送データの生成処理を開始してからの経過時間をカウントするタイムカウンタをさらに備える、通信制御装置。
【請求項６】
請求項５に記載の通信制御装置において、
前記制御部は、前記メッセージを受信すると、前記転送データを生成中のメッセージに対する前記転送データの生成処理を中断し、
前記タイムカウンタは、前記転送データの生成処理が中断すると、前記経過時間のカウントの値を記憶して前記経過時間のカウントを停止する、通信制御装置。
【請求項７】
請求項６に記載の通信制御装置において、
前記制御部は、前記転送データ生成順番の入れ替えが完了すると、前記タイムカウンタが記憶している前記経過時間のカウントの値から、前記転送データの生成処理を開始する、通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置に関する。
【背景技術】
【０００２】
近年、コネクテッドカー及び自動運転車など、車載通信における通信の情報量が多い自動車の開発が進んでいる。現在、車載通信では主にＣＡＮ（Controller Area Network）通信が使われている。例えば特許文献１には、ＣＡＮ通信において、送信優先度を制御することで送信データの送信機会を均等化させる発明が開示されている。
【０００３】
車載通信における通信の情報量が多くなると、通信バスの負荷が大きくなる。これに対し、複数の通信バスを設けることで、通信の情報量の増加に対応することが考えられている。
【０００４】
複数の通信バスを設けた場合、通信バス間のメッセージの送受信は、通信バス間におけるメッセージの転送処理を制御する通信制御装置によって行われる。ここで、「メッセージ」とは、ＣＡＮ通信などの車載通信において送受信されるデータのまとまりである。「メッセージ」は、「フレーム」とも呼ばれる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１１９４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
通信バス間におけるメッセージの転送処理において、データの内容に応じて定められた優先度のみに基づいて、転送処理用の転送データを生成する順番を決定すると、優先度の低いメッセージの転送処理を許容遅延時間内に完了できない事態が起こりうる。
【０００７】
かかる観点に鑑みてなされた本発明の目的は、通信バス間におけるメッセージの転送処理を許容遅延時間内に完了できない事態を低減しうる通信制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、第１の観点に係る通信制御装置は、
複数の通信バス間に接続され、該通信バス間におけるメッセージの転送処理を行う通信制御装置であって、
前記メッセージを受信すると、転送先の前記通信バスに適合した転送データを、設定された転送データ生成順番に基づいて生成する制御部と、
前記メッセージの転送処理を完了するまでの時間である転送処理完了時間を算出するためのパラメータと、前記転送処理完了時間として許容可能な遅延時間である許容遅延時間とを、前記メッセージのデータＩＤに紐付けて格納する記憶部と、を備え、
前記制御部は、
前記メッセージを受信すると、該メッセージの前記転送データ生成順番を最後に設定し、
前記パラメータを読み出して、受信した前記メッセージの前記転送処理完了時間を算出し、
算出した前記転送処理完了時間が前記許容遅延時間を超える場合、受信した前記メッセージの前記転送データ生成順番を、転送データ生成順番が１つ前のメッセージの転送データ生成順番と入れ替える。
【発明の効果】
【０００９】
第１の観点に係る通信制御装置によれば、通信バス間におけるメッセージの転送処理を許容遅延時間内に完了できない事態を低減しうる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係る通信制御装置が複数の通信バス間に接続されている様子を示す図である。
【図２】一実施形態に係る通信制御装置の構成例を示すブロック図である。
【図３】記憶部が格納するテーブルの一例を示す図である。
【図４】タイムカウンタの動作を説明するための図である。
【図５】一実施形態に係る通信制御装置の動作の一例を示すフローチャートである。
【図６】図５のフローチャートのステップＳ１０３を説明するための図である。
【図７】図５のフローチャートのステップＳ１０４及びＳ１０５を説明するための図である。
【図８】図５のフローチャートのステップＳ１０６を説明するための図である。
【図９】図５のフローチャートのステップＳ１０４及びＳ１０５を説明するための図である。
【図１０】図５のフローチャートのステップＳ１０６を説明するための図である。
【図１１】図５のフローチャートのステップＳ１０４及びＳ１０５を説明するための図である。
【図１２】図５のフローチャートのステップＳ１１３を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本開示の実施形態について、図面を参照して説明する。
【００１２】
図１に示すように、通信制御装置１００は、複数の通信バス１〜３の間に接続されている。図１に示す例では、通信バス１、通信バス２及び通信バス３の通信プロトコルは、それぞれ、ＣＡＮ、ＣＡＮ  ＦＤ（CAN with Flexible Data rate）及びイーサネット（登録商標）（Ethernet）である。ＣＡＮ  ＦＤ及びイーサネットは、ＣＡＮよりも通信速度の速い通信プロトコルである。
【００１３】
なお、通信バス１、通信バス２及び通信バス３の通信プロトコルを、それぞれ、ＣＡＮ、ＣＡＮ  ＦＤ及びイーサネットとしたのは一例であり、通信バス１〜３の通信プロトコルは、これに限定されない。
【００１４】
また、本実施形態においては、通信制御装置１００が３つの通信バス１〜３の間に接続されている場合を例に挙げて説明するが、通信制御装置１００が接続される通信バスの数はこれに限定されない。通信制御装置１００が接続される通信バスの数は、２つでもよいし、４つ以上でもよい。
【００１５】
通信バス１には、電子制御ユニット（ＥＣＵ：Electronic Control Unit）２０１が接続されている。通信バス２には、電子制御ユニット２０２が接続されている。通信バス３には、電子制御ユニット２０３が接続されている。電子制御ユニット２０１〜２０３は、自動車などの車両に搭載されている電装品を制御する制御ユニットである。
【００１６】
図１においては、通信バス１に２つの電子制御ユニット２０１が接続されているが、通信バス１に接続される電子制御ユニット２０１の個数はこれに限定されない。通信バス１には、１つ又は３つ以上の電子制御ユニット２０１が接続されてよい。通信バス２に接続される電子制御ユニット２０２の個数、及び、通信バス３に接続される電子制御ユニット２０３の個数についても同様である。
【００１７】
通信制御装置１００は、自動車などの車両に搭載されていてよい。通信制御装置１００は、通信バス１〜３の間におけるメッセージの転送処理を行う。
【００１８】
図２に示すように、一実施形態に係る通信制御装置１００は、受信部１０−１〜１０−３と、受信バッファ２０−１〜２０−３と、送信バッファ３０−１〜３０−３と、送信部４０−１〜４０−３と、記憶部５０と、制御部６０と、タイムカウンタ７０とを備える。
【００１９】
受信部１０−１〜１０−３は、それぞれ、通信バス１〜３に接続されている。
【００２０】
受信部１０−１は、図１に示す電子制御ユニット２０１から通信バス１を介してメッセージを受信すると、通信バス１の通信プロトコルに応じた処理を行い、該メッセージを受信バッファ２０−１に格納する。通信プロトコルに応じた処理は、例えば、受信したメッセージのＣＲＣチェックなどである。
【００２１】
受信部１０−２及び１０−３の機能は、受信部１０−１の機能と同様であるため、受信部１０−２及び１０−３の説明は省略する。以後、受信部１０−１〜１０−３について、特に区別する必要がない場合は、受信部１０と総称する場合がある。
【００２２】
受信バッファ２０−１〜２０−３は、それぞれ、受信部１０−１〜１０−３に接続されている。
【００２３】
受信バッファ２０−１は、受信部１０−１からメッセージを受け取ると、該メッセージを格納する。また、受信バッファ２０−１は、受信部１０−１から受け取ったメッセージを、制御部６０の転送データ生成部６６に出力する。
【００２４】
受信バッファ２０−２及び２０−３の機能は、受信バッファ２０−１の機能と同様であるため、受信バッファ２０−２及び２０−３の説明は省略する。以後、受信バッファ２０−１〜２０−３について、特に区別する必要がない場合は、受信バッファ２０と総称する場合がある。
【００２５】
送信バッファ３０−１〜３０−３は、それぞれ、送信部４０−１〜４０−３に接続されている。
【００２６】
送信バッファ３０−１は、転送データ生成部６６から転送データを受け取ると、該転送データを格納する。また、送信バッファ３０−１は、転送データ生成部６６から受け取った転送データを、送信部４０−１に出力する。ここで、「転送データ」とは、転送先の通信プロトコルに適合するように転送データ生成部６６によって処理されたデータである。送信バッファ３０−１は、通信バス１の通信プロトコルに適合するように処理されたデータを、転送データ生成部６６から受け取る。
【００２７】
送信バッファ３０−２及び３０−３の機能は、送信バッファ３０−１の機能と同様であるため、送信バッファ３０−２及び３０−３の説明は省略する。以後、送信バッファ３０−１〜３０−３について、特に区別する必要がない場合は、送信バッファ３０と総称する場合がある。
【００２８】
送信部４０−１〜４０−３は、それぞれ、通信バス１〜３に接続されている。
【００２９】
送信部４０−１は、送信バッファ３０−１から転送データを受け取ると、通信バス１の通信プロトコルに応じた送信制御を行い、該転送データを、通信バス１を介して図１に示す電子制御ユニット２０１に送信する。通信プロトコルに応じた送信制御は、例えば、通信バス１の状態のチェックなどである。
【００３０】
送信部４０−２及び４０−３の機能は、送信部４０−１の機能と同様であるため、送信部４０−２及び４０−３の説明は省略する。以後、送信部４０−１〜４０−３について、特に区別する必要がない場合は、送信部４０と総称する場合がある。
【００３１】
記憶部５０は、制御部６０に接続され、制御部６０から取得した情報を格納する。記憶部５０は、制御部６０のワーキングメモリとして機能してよい。記憶部５０は、制御部６０で実行されるプログラムを格納してよい。記憶部５０は、例えば、半導体メモリで構成されるが、これには限られず、磁気記憶媒体で構成されてよいし、他の記憶媒体で構成されてよい。記憶部５０は、制御部６０の一部として制御部６０に含まれてよい。
【００３２】
記憶部５０は、メッセージが含むデータＩＤに、転送先ポートと、許容遅延時間と、各種パラメータとを紐付けたテーブルを格納している。図３に、記憶部５０が格納しているテーブルの一例を示す。
【００３３】
図３に示す例においては、記憶部５０は、「データＩＤ」に、「転送先ポート」と、「許容遅延時間」と、「転送データ生成時間」と、「転送速度」と、「ヘッダとフッタの合計ビット数」とを紐付けたテーブルを格納している。
【００３４】
データＩＤは、各メッセージに含まれるＩＤであり、メッセージがどのような内容のデータを含むメッセージであるかを示す。データＩＤは、例えば、メッセージに含まれるデータが車速であることを示す。
【００３５】
転送先ポートは、メッセージの転送先がどの通信バスであるかを示す。例えば、転送先ポートが１ｃｈであるとき、メッセージの転送先は、通信バス１である。
【００３６】
許容遅延時間は、通信制御装置１００がメッセージの転送処理完了時間として、許容可能な遅延時間である。ここで、「転送処理完了時間」とは、通信制御装置１００がメッセージを受信してからメッセージの転送処理を完了するまでの時間である。
【００３７】
転送データ生成時間は、転送データ生成部６６が転送データを生成する際にかかる時間である。転送データ生成時間は、例えば予め測定した値を、記憶部５０に格納しておいてよい。
【００３８】
転送速度は、送信部４０がメッセージを通信バスに送信する際にデータを送信できる速度である。
【００３９】
ヘッダとフッタの合計ビット数は、メッセージが含むヘッダのビット数と、メッセージが含むフッタのビット数とを合計したビット数である。
【００４０】
制御部６０は、通信制御装置１００の各構成部を制御する。制御部６０は、例えば、制御手順を規定したプログラムを実行するＣＰＵ（Central Processing Unit）等のプロセッサで構成されてよい。制御部６０は、例えば、記憶部５０に格納されているプログラムを読み込み、各種プログラムを実行する。
【００４１】
制御部６０は、フレーム情報抽出部６１と、スケジューリング部６２と、転送データ生成部６６とを備える。フレーム情報抽出部６１、スケジューリング部６２及び転送データ生成部６６により実行される処理は、制御部６０を構成するプロセッサにより実行される。なお、制御部６０を構成するプロセッサは、単一のプロセッサで構成される必要はなく、複数のプロセッサにより構成されていてもよい。
【００４２】
フレーム情報抽出部６１は、受信バッファ２０に格納されているメッセージから、フレーム情報として、メッセージのデータＩＤと、メッセージのデータサイズとを抽出し、スケジューリング部６２に出力する。
【００４３】
スケジューリング部６２は、受信部１０が受信したメッセージから転送先の通信バスに適合した転送データを生成する際の順番をスケジューリングする。以後、転送データを生成する際の順番を、「転送データ生成順番」とも称する。
【００４４】
スケジューリング部６２は、スケジューラ６３と、算出部６４と、判定部６５とを備える。
【００４５】
スケジューラ６３は、転送データ生成部６６が受信バッファ２０からメッセージを受け取ると、受け取ったメッセージの転送データ生成順番を最後に設定する。
【００４６】
スケジューラ６３は、判定部６５から転送データ生成順番の入れ替えの指示を受け取ると、受け取った指示に基づいて、転送データ生成順番を入れ替える。
【００４７】
スケジューラ６３は、現状の転送データ生成順番を記憶している。
【００４８】
算出部６４は、記憶部５０が格納しているテーブルから「転送データ生成時間」と、「転送速度」と、「ヘッダとフッタの合計ビット数」とを読み出して、受信バッファ２０が受け取ったメッセージの転送処理完了時間を算出する。算出部６４による転送処理完了時間の具体的な算出方法の一例については、図５に示すフローチャートの説明において後述する。
【００４９】
判定部６５は、転送データ生成部６６が受け取ったメッセージに対して算出部６４が算出した転送処理完了時間と、該メッセージの許容遅延時間とを比較し、転送処理完了時間が許容遅延時間を超えているかを判定する。この際、判定部６５は、転送データ生成部６６が受け取ったメッセージの許容遅延時間を、記憶部５０から、該メッセージのデータＩＤに紐付けられている許容遅延時間を読み出すことにより取得してよい。
【００５０】
判定部６５は、メッセージの転送処理完了時間が許容遅延時間を超えていると判定した場合、該メッセージの転送データ生成順番を、転送データ生成順番が１つ前のメッセージの転送データ生成順番と入れ替えるようにスケジューラ６３に指示する。
【００５１】
転送データ生成部６６は、受信バッファ２０からメッセージを受け取る。転送データ生成部６６は、スケジューラ６３が記憶している転送データ生成順番に基づいて、転送データを生成する。
【００５２】
転送データ生成部６６は、転送データを生成すると、記憶部５０が格納しているテーブルを参照し、転送データの転送先ポートに対応する送信バッファ３０に、生成した転送データを格納する。
【００５３】
転送データ生成部６６は、受信バッファ２０から新たなメッセージを受け取ると、転送データの生成処理を中断する。
【００５４】
タイムカウンタ７０は、転送データ生成部６６がメッセージの転送データを生成する処理を開始してからの経過時間をカウントする。以後、転送データ生成部６６が転送データを生成する処理のことを、「転送データ生成処理」とも称する。
【００５５】
図４を参照して、タイムカウンタ７０の動作について説明する。図４においては、転送データ生成部６６は、時間ｔ０において、受信したメッセージの転送データ生成処理を開始するものとする。
【００５６】
転送データ生成部６６は、時間ｔ０において開始した転送データ生成処理を、時間ｔ２に完了し、生成した転送データを送信バッファ３０に格納する。図４に示す時間ａは、時間ｔ２から時間ｔ０を引いた時間を表す。すなわち、時間ａは、転送データ生成部６６が転送データ生成処理を開始してから、生成した転送データを送信バッファ３０に格納するまでの時間を示す。
【００５７】
送信バッファ３０は、時間ｔ２に、転送データ生成部６６からの転送データの受け取りを開始し、受け取った転送データを、送信部４０に出力する。送信部４０は、送信バッファ３０から受け取った転送データを、送信部４０が接続している通信バスに送信する。送信部４０は、転送データの送信処理を、時間ｔ３に完了する。図４に示す時間ｂは、時間ｔ３から時間ｔ２を引いた時間を表す。すなわち、時間ｂは、送信バッファ３０が転送データ生成部６６から転送データを受け取ってから、送信部４０が転送データの送信処理を完了するまでの時間を示す。
【００５８】
タイムカウンタ７０は、図４に示す時間Ｔをカウントする。図４において、時間ｔ１は、現在、転送データ生成部６６による転送データ生成処理が時間ｔ１まで進んでいることを意味する。すなわち、タイムカウンタ７０は、転送データ生成部６６が転送データ生成処理を開始してから、現時点で転送データ生成処理が進んでいる部分までの時間Ｔをカウントする。
【００５９】
タイムカウンタ７０は、転送データ生成部６６が受信バッファ２０から受け取ったそれぞれのメッセージごとに、転送データ生成部６６がメッセージの転送データ生成処理を開始してからの経過時間をカウントする。
【００６０】
タイムカウンタ７０は、転送データ生成部６６が新たなメッセージを受信バッファ２０から受け取ると、制御部６０から、経過時間のカウントの停止指示を受け取る。タイムカウンタ７０は、カウントの停止指示を受け取ると、現在転送データを生成していたメッセージのカウントの値を記憶し、経過時間のカウントを停止する。
【００６１】
タイムカウンタ７０は、制御部６０から、経過時間のカウントの再開指示を受け取ると、記憶していたカウントの値から、経過時間のカウントを再開する。
【００６２】
タイムカウンタ７０は、転送データ生成部６６が現在転送データを生成しているメッセージについての転送データ生成処理を完了すると、転送データ生成部６６からの指示を受けて、カウントの値をクリアする。
【００６３】
図５に示すフローチャートを参照して、一実施形態に係る通信制御装置１００の動作の一例について説明する。図５に示すフローチャートの説明においては、図６〜図１２を適宜参照して説明する。
【００６４】
図５に示すフローチャートの説明においては、転送データ生成部６６が、２つのメッセージを受信バッファ２０から受け取っている状態において、新たなメッセージを受信バッファ２０から受け取った場合を例に挙げて説明する。
【００６５】
通信制御装置１００の制御部６０は、受信バッファ２０が新たなメッセージを受信したかを常時監視している（ステップＳ１０１）。
【００６６】
受信バッファ２０が新たなメッセージを受信していない場合（ステップＳ１０１のＮｏ）、制御部６０は、ステップＳ１０１の処理を繰り返す。
【００６７】
受信バッファ２０が新たなメッセージを受信した場合（ステップＳ１０１のＹｅｓ）、フレーム情報抽出部６１は、受信バッファ２０に格納されたメッセージからフレーム情報を抽出する（ステップＳ１０２）。以後、新たに受信したメッセージのことを「受信メッセージ」と称して説明する。フレーム情報抽出部６１は、フレーム情報として、受信メッセージのデータＩＤと、受信メッセージのデータサイズとを抽出し、スケジューリング部６２に出力する。また、受信バッファ２０は、受信メッセージを転送データ生成部６６に出力する。
【００６８】
スケジューラ６３は、受信メッセージの転送データ生成順番を一番最後に設定する（ステップＳ１０３）。本説明においては、２つのメッセージが転送データ生成部６６において処理中であるため、スケジューラ６３は、受信メッセージの転送データ生成順番を、３番目に設定する。この様子を、図６に示す。なお、既に転送データ生成部６６において処理中であった２つのメッセージは、「メッセージ１」及び「メッセージ２」であるものとする。
【００６９】
算出部６４は、受信メッセージの転送処理完了時間を算出する（ステップＳ１０４）。図７を参照して、算出部６４による受信メッセージの転送処理完了時間の算出について説明する。
【００７０】
図７において、受信部１０は、時間ｔ１に受信メッセージを受信し、送信部４０は、時間ｔ２に、受信メッセージから生成した転送データの送信を完了するものとする。この場合、転送処理完了時間は、図７において、ｃRXとして表される時間である。
【００７１】
算出部６４は、受信メッセージの転送処理完了時間ｃRXを、以下の数式（１）により算出する。
ｃRX＝（ａ1−Ｔ1）＋（ａ2−Ｔ2）＋ａRX＋ｂRX    （１）
ここで、ａ1は、メッセージ１の転送データ生成時間である。ａ2は、メッセージ２の転送データ生成時間である。ａRXは、受信メッセージの転送データ生成時間である。算出部６４は、図３に示すような記憶部５０が格納するテーブルを参照して、各メッセージのデータＩＤに紐付けられた転送データ生成時間を読み出す。
【００７２】
また、式（１）において、Ｔ1は、メッセージ１について、タイムカウンタ７０が記憶しているカウントの値である。すなわち、Ｔ1は、メッセージ１の転送データ生成処理がＴ1だけ進んでいることを意味する。Ｔ2は、メッセージ２について、タイムカウンタ７０が記憶しているカウントの値である。図７に示す例においては、Ｔ2はゼロである。算出部６４は、タイムカウンタ７０からＴ1及びＴ2を読み出す。
【００７３】
また、式（１）において、ｂRXは、転送データ生成部６６が受信メッセージから生成した転送データが送信部４０によって送信される際にかかる時間である。以後、転送データが送信部４０によって送信される際にかかる時間を「転送データ送信時間」と称して説明する。
【００７４】
算出部６４は、転送データ送信時間ｂRXを、以下の数式（２）により算出する。
ｂRX＝（転送データ全体のビット数）／（転送先の通信バスの転送速度）    （２）
ここで、算出部６４は、式（２）における「転送データ全体のビット数」を、フレーム情報抽出部６１が抽出した受信メッセージのデータサイズと、記憶部５０が格納するテーブルから読み出した「ヘッダとフッタの合計ビット数」とを足し合わせることにより算出する。また、算出部６４は、式（２）における「転送先の通信バスの転送速度」を、記憶部５０が格納しているテーブルの「転送速度」を参照して読み出す。
【００７５】
なお、送信部４０による転送データの送信処理は、転送データ生成部６６による転送データ生成処理と独立して実行しうる。そのため、数式（１）によるｃRXの算出において、図７に示すｂ1及びｂ2は足し合わされていない。
【００７６】
判定部６５は、算出部６４が算出した受信メッセージの転送処理完了時間ｃRXが、受信メッセージの許容遅延時間を超えるかを判定する（ステップＳ１０５）。判定部６５は、受信メッセージの許容遅延時間を、記憶部５０が格納するテーブルから読み出す。図７において、受信メッセージの許容遅延時間を、ＷRXとして示す。図７に示す例では、受信メッセージの転送処理完了時間ｃRXは、受信メッセージの許容遅延時間ＷRXを超えている。なお、図７において、メッセージ１及びメッセージ２の許容遅延時間を、それぞれ、Ｗ1及びＷ2として示している。図７に示す例では、メッセージ１の転送データの送信は、Ｗ1を超えずに完了している。また、メッセージ２の転送データの送信は、Ｗ2を超えずに完了している。
【００７７】
判定部６５が、算出部６４が算出した受信メッセージの転送処理完了時間ｃRXが、受信メッセージの許容遅延時間を超えていると判定すると（ステップＳ１０５のＹｅｓ）、スケジューラ６３は、受信メッセージの転送データ生成順番を、転送データ生成順番が１つ前のメッセージであるメッセージ２の転送データ生成順番と入れ替える（ステップＳ１０６）。この様子を図８に示す。図８に示すように、スケジューラ６３は、受信メッセージの転送データ生成順番を２番目にし、メッセージ２の転送データ生成順番を３番目にする。
【００７８】
図９に、受信メッセージとメッセージ２の転送データ生成順番を入れ替え、受信メッセージの転送データ生成順番を２番目にしたときの様子を示す。この状態で、算出部６４は、再度ステップＳ１０４を実行し、受信メッセージの転送処理完了時間を算出する。
【００７９】
算出部６４は、受信メッセージの転送データ生成順番を２番目にしたときの受信メッセージの転送処理完了時間ｃRXを、以下の数式（３）により算出する。
ｃRX＝（ａ1−Ｔ1）＋ａRX＋ｂRX    （３）
【００８０】
判定部６５は、算出部６４が数式（３）により算出した受信メッセージの転送処理完了時間ｃRXが、受信メッセージの許容遅延時間を超えるかを判定する（ステップＳ１０５）。図９に示す例では、数式（３）により算出した受信メッセージの転送処理完了時間ｃRXは、依然として、受信メッセージの許容遅延時間ＷRXを超えている。
【００８１】
したがって、判定部６５は、再度ステップＳ１０６に進み、スケジューラ６３は、受信メッセージの転送データ生成順番を、転送データ生成順番がさらに１つ前のメッセージであるメッセージ１の転送データ生成順番と入れ替える。この様子を図１０に示す。図１０に示すように、スケジューラ６３は、受信メッセージの転送データ生成順番を１番目にし、メッセージ１の転送データ生成順番を２番目にする。
【００８２】
図１１に、受信メッセージとメッセージ１の転送データ生成順番を入れ替え、受信メッセージの転送データ生成順番を１番目にしたときの様子を示す。この状態で、算出部６４は、再度ステップＳ１０４を実行し、受信メッセージの転送処理完了時間を算出する。
【００８３】
算出部６４は、受信メッセージの転送データ生成順番を１番目にしたときの受信メッセージの転送処理完了時間ｃRXを、以下の数式（４）により算出する。
ｃRX＝ａRX＋ｂRX    （４）
【００８４】
判定部６５は、算出部６４が数式（４）により算出した受信メッセージの転送処理完了時間ｃRXが、受信メッセージの許容遅延時間を超えるかを判定する（ステップＳ１０５）。図１１に示す例では、数式（４）により算出した受信メッセージの転送処理完了時間ｃRXは、受信メッセージの許容遅延時間ＷRXを超えていない。したがって、ステップＳ１０５の判定はＮｏとなり、判定部６５は、ステップＳ１０７に進む。
【００８５】
転送データ生成部６６は、タイムカウンタ７０から受信メッセージのカウントの値を読み出し、読み出したカウントの値を再開位置として、転送データ生成処理を開始する（ステップＳ１０７）。受信メッセージに対しては、これまで転送データ生成処理が実行されていなかったため、タイムカウンタ７０によるカウントの値はゼロである。したがって、転送データ生成部６６は、受信メッセージの最初の部分から転送データ生成処理を開始する。転送データ生成部６６は、転送データ生成処理を開始すると、経過時間のカウントを開始するように、カウント開始のトリガをタイムカウンタ７０に送信する。転送データ生成部６６は、転送データを生成すると、記憶部５０が格納するテーブルから転送先ポートを読み出し、対応する送信バッファ３０に、生成した転送データを格納する。
【００８６】
制御部６０は、転送データ生成部６６が転送データ生成処理を実行している間も、受信バッファ２０が新たなメッセージを受信したかを監視している（ステップＳ１０８）。
【００８７】
受信バッファ２０が新たなメッセージを受信した場合（ステップＳ１０８のＹｅｓ）、転送データ生成部６６は、転送データ生成処理を中断する。タイムカウンタ７０は、転送データ生成処理の中断時点でのカウントの値を記憶し、経過時間のカウントを停止する（ステップＳ１０９）。制御部６０は、ステップＳ１０９を実行した後、ステップＳ１０２に戻る。
【００８８】
受信バッファ２０が新たなメッセージを受信していない場合（ステップＳ１０８のＮｏ）、転送データ生成部６６は、転送データ生成処理が完了したか判定する（ステップＳ１１０）。転送データ生成処理が完了していない場合（ステップＳ１１０のＮｏ）、転送データ生成部６６は、ステップＳ１１０の処理を繰り返す。転送データ生成処理が完了した場合（ステップＳ１１０のＹｅｓ）、転送データ生成部６６は、転送データ生成処理が完了した旨を、スケジューリング部６２に通知する。また、転送データ生成部６６は、転送データ生成処理が完了したメッセージのカウントの値をクリアするように、タイムカウンタ７０に指示する。
【００８９】
スケジューラ６３は、転送データ生成処理が完了していないメッセージがあるか判定する（ステップＳ１１１）。
【００９０】
転送データ生成処理が完了していないメッセージがない場合（ステップＳ１１１のＮｏ）、制御部６０は、スケジューラ６３が記憶している転送データ生成順番をクリアして（ステップＳ１１２）、ステップＳ１０１に戻る。
【００９１】
転送データ生成処理が完了していないメッセージがある場合（ステップＳ１１１のＹｅｓ）、スケジューラ６３は、転送データ生成処理が完了していない待機中のメッセージの転送データ生成順番を１つ繰り上げる（ステップＳ１１３）。図１２に、メッセージ１及びメッセージ２の転送データ生成順番を繰り上げる様子を示す。スケジューラ６３は、待機中のメッセージの転送データ生成順番を繰り上げると、転送データ生成順番が１番目のメッセージを転送データ生成部６６に通知する。転送データ生成部６６は、転送データ生成順番が１番目のメッセージに対し、ステップＳ１０７の処理を実行する。
【００９２】
本実施形態に係る通信制御装置１００によれば、制御部６０は、メッセージを受信すると、該メッセージの転送データ生成順番を最後に設定する。その後、制御部６０は、記憶部５０からパラメータを読み出して、受信したメッセージの転送処理完了時間を算出する。そして、制御部６０は、算出した転送処理完了時間が許容遅延時間を超える場合、受信したメッセージの転送データ生成順番を、転送データ生成順番が１つ前のメッセージの転送データ生成順番と入れ替える。これにより、本実施形態に係る通信制御装置１００は、通信バス間におけるメッセージの転送処理を許容遅延時間内に完了できない事態を低減しうる。また、本実施形態に係る通信制御装置１００の制御部６０の処理において、制御部６０は、クロック周波数の高いプロセッサで構成されることを要求しないため、プロセッサのコストを低減しうる。
【００９３】
また、本実施形態に係る通信制御装置１００によれば、制御部６０は、転送データ生成順番を入れ替えると、入れ替えた後の転送データ生成順番において、転送処理完了時間を算出する。そして、制御部６０は、入れ替えた後の転送データ生成順番において算出した転送処理完了時間が許容遅延時間を超える場合、受信したメッセージの転送データ生成順番を、転送データ生成順番がさらに１つ前のメッセージの転送データ生成順番と入れ替える。これにより、本実施形態に係る通信制御装置１００は、通信バス間におけるメッセージの転送処理を許容遅延時間内に完了できない事態をさらに低減しうる。
【００９４】
また、本実施形態に係る通信制御装置１００によれば、制御部６０は、受信したメッセージの転送処理完了時間が許容遅延時間を超えなくなるまで、転送データ生成順番を入れ替える処理を繰り返す。これにより、本実施形態に係る通信制御装置１００は、通信バス間におけるメッセージの転送処理を許容遅延時間内に完了できない事態をさらに低減しうる。
【００９５】
本開示に係る一実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は修正を行うことが容易であることに注意されたい。従って、これらの変形又は修正は本開示の範囲に含まれることに留意されたい。例えば、各手段に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段等を１つに組み合わせたり、あるいは分割したりすることが可能である。
【符号の説明】
【００９６】
１、２、３  通信バス
１０  受信部
２０  受信バッファ
３０  送信バッファ
４０  送信部
５０  記憶部
６０  制御部
６１  フレーム情報抽出部
６２  スケジューリング部
６３  スケジューラ
６４  算出部
６５  判定部
６６  転送データ生成部
７０  タイムカウンタ
１００  通信制御装置
２０１、２０２、２０３  電子制御ユニット（ＥＣＵ）
【図１】
2019213163.tif 000003
【図２】
2019213163.tif 000004
【図３】
2019213163.tif 000005
【図４】
2019213163.tif 000006
【図５】
2019213163.tif 000007
【図６】
2019213163.tif 000008
【図７】
2019213163.tif 000009
【図８】
2019213163.tif 000010
【図９】
2019213163.tif 000011
【図１０】
2019213163.tif 000012
【図１１】
2019213163.tif 000013
【図１２】
2019213163.tif 000014