(57)【要約】【課題】優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制し、且つ、メッセージバッファの数を節約すること。【解決手段】通信線に接続される送信装置であって、複数の送信バッファと、複数のメッセージバッファと、前記複数の送信バッファに格納されたデータの中から、前記複数のメッセージバッファに格納されたデータよりも優先度の高いデータを探索するデータ探索部と、データが格納されていない空きバッファを前記複数のメッセージバッファの中から順に探索する空きバッファ探索部と、前記空きバッファ探索部により探索された空きバッファに、前記データ探索部により探索されたデータを設定するデータ設定部と、前記複数のメッセージバッファに格納されたデータを前記通信線へ送信する送信制御部とを備える、送信装置。【選択図】図１
2018098616.tif 000002
【特許請求の範囲】
【請求項１】
通信線に接続される送信装置であって、
複数の送信バッファと、
複数のメッセージバッファと、
前記複数の送信バッファに格納されたデータの中から、前記複数のメッセージバッファに格納されたデータよりも優先度の高いデータを探索するデータ探索部と、
データが格納されていない空きバッファを前記複数のメッセージバッファの中から順に探索する空きバッファ探索部と、
前記空きバッファ探索部により探索された空きバッファに、前記データ探索部により探索されたデータを設定するデータ設定部と、
前記複数のメッセージバッファに格納されたデータを前記通信線へ送信する送信制御部とを備える、送信装置。
【請求項２】
データが格納されているデータ有状態とデータが格納されていないデータ無状態とのいずれか一方を表すデータ有無情報を前記複数のメッセージバッファのそれぞれについて記憶する管理バッファと、
前記複数のメッセージバッファのうちデータが前記データ設定部により設定されたバッファについては、前記データ有無情報の状態を前記データ無状態から前記データ有状態に変更し、前記複数のメッセージバッファのうち前記通信線へのデータの送信が前記送信制御部により完了したバッファについては、前記データ有無情報の状態を前記データ有状態から前記データ無状態に変更する状態管理部とを備え、
前記空きバッファ探索部は、前記データ有無情報の状態が前記データ有状態であるのか前記データ無状態であるのかに基づいて、データが格納されていない空きバッファを前記複数のメッセージバッファの中から探索する、請求項１に記載の送信装置。
【請求項３】
前記データ探索部は、前記複数の送信バッファに格納されたデータの中で最も優先度の高いデータを探索する、請求項１又は２に記載の送信装置。
【請求項４】
前記送信制御部は、前記複数のメッセージバッファに格納されたデータの中で最も優先度の高いデータを前記通信線へ送信する、請求項１から３のいずれか一項に記載の送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置に関する。
【背景技術】
【０００２】
従来、優先度の高いデータを優先的にバスに出力する出力部を備えたデータ送信装置が知られている。従来のデータ送信装置は、複数のメッセージバッファと、送信バッファに格納されたデータを、当該データの優先度が高いほど領域優先度の高いメッセージバッファに書き込む分配部とを備える。前記出力部は、前記複数のメッセージバッファに格納されたデータのうち領域優先度の高いメッセージバッファに格納されたデータを優先的にバスに出力する。
【０００３】
このデータ送信装置によれば、領域優先度の高いメッセージバッファに格納されたデータをバスへ出力することが、領域優先度の低いメッセージバッファに格納されたデータをバスへ出力することが完了するまで待たされることを防止することができる。このようなデータ送信装置に関する先行技術文献として、例えば、特許文献１が挙げられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０３３３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来技術では、優先度の高いグループ内のデータが格納される領域優先度の高いメッセージバッファと、優先度の低いグループ内のメッセージが格納される領域優先度の低いメッセージバッファとが別々に存在する。そのため、優先度の高いグループ内のデータを領域優先度の高いメッセージバッファに格納することが、優先度の低いグループ内のデータが領域優先度の低いメッセージバッファから無くなるまで待たされることはない。
【０００６】
しかしながら、個々のグループに着目すると、一のグループ内で優先度の高いデータをメッセージバッファに格納することが、当該一のグループ内で優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象が発生するおそれがある。この滞留現象は、優先度の高いグループか低いグループかにかかわらず、発生するおそれがある。
【０００７】
このような滞留現象の発生を抑制するには、領域優先度の異なるメッセージバッファの数を増やして、一つのメッセージバッファに格納されるデータの優先度の範囲を狭める対策案が考えられる。しかしながら、この対策案では、滞留現象の発生を抑制する度合いを強めるほど、必要なメッセージバッファが増えるため、メッセージバッファの数を節約することが難しい。
【０００８】
そこで、本開示の一態様では、優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制でき、且つ、メッセージバッファの数を節約できる、送信装置の提供を目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本開示の一態様では、
通信線に接続される送信装置であって、
複数の送信バッファと、
複数のメッセージバッファと、
前記複数の送信バッファに格納されたデータの中から、前記複数のメッセージバッファに格納されたデータよりも優先度の高いデータを探索するデータ探索部と、
データが格納されていない空きバッファを前記複数のメッセージバッファの中から順に探索する空きバッファ探索部と、
前記空きバッファ探索部により探索された空きバッファに、前記データ探索部により探索されたデータを設定するデータ設定部と、
前記複数のメッセージバッファに格納されたデータを前記通信線へ送信する送信制御部とを備える、送信装置が提供される。
【００１０】
本開示の一態様に係る送信装置によれば、データが格納されていない空きバッファは、前記複数のメッセージバッファの中から順に前記空きバッファ探索部により探索される。そして、前記空きバッファ探索部により探索された空きバッファに、前記データ探索部により探索されたデータが設定される。このため、前記複数のメッセージバッファのうち、データが格納されているバッファ（空き無しバッファ）が一つ以上存在していても、空き無しバッファ以外のバッファ（つまり、空きバッファ）に、前記データ探索部により探索されたデータが設定される。よって、前記複数の送信バッファに格納されたデータの中から探索された優先度の高いデータは、空きバッファが探索されれば、空き無しバッファが空きバッファに変わるまで待たされることなく、その探索された空きバッファに格納される。したがって、優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制することができる。
【００１１】
また、本開示一態様に係る送信装置によれば、前記データ探索部により探索されたデータが設定される空きバッファは、前記複数のメッセージバッファの中から順に探索される。そのため、前記データ探索部により探索されたデータが設定されるバッファは、前記複数のメッセージバッファのうち、特定の一のバッファに固定されずに動的に変化する。よって、前記送信バッファと同じ数のメッセージバッファを必ずしも用意する必要が無くなるので、前記メッセージバッファを前記送信バッファの数よりも減らすことができる。したがって、前記メッセージバッファの数を節約することができる。
【００１２】
また、本開示の一態様に係る送信装置において、
データが格納されているデータ有状態とデータが格納されていないデータ無状態とのいずれか一方を表すデータ有無情報を前記複数のメッセージバッファのそれぞれについて記憶する記憶部と、
前記複数のメッセージバッファのうちデータが前記データ設定部により設定されたバッファについては、前記データ有無情報の状態を前記データ無状態から前記データ有状態に変更し、前記複数のメッセージバッファのうち前記通信線へのデータの送信が前記送信制御部により完了したバッファについては、前記データ有無情報の状態を前記データ有状態から前記データ無状態に変更する状態管理部とを備え、
前記空きバッファ探索部は、前記データ有無情報の状態が前記データ有状態であるのか前記データ無状態であるのかに基づいて、データが格納されていない空きバッファを前記複数のメッセージバッファの中から探索する。
【００１３】
これにより、前記複数のメッセージバッファのそれぞれが、データが格納されているデータ有状態であるのかデータが格納されていないデータ無状態であるのかを、容易に管理することができる。したがって、前記空きバッファ探索部は、データが格納されていない空きバッファを前記複数のメッセージバッファの中から容易に探索できる。
【００１４】
また、本開示の一態様に係る送信装置において、
前記データ探索部は、前記複数の送信バッファに格納されたデータの中で最も優先度の高いデータを探索する。
【００１５】
これにより、データが格納されていない空きバッファは、前記複数のメッセージバッファの中から順に前記空きバッファ探索部により探索される。そして、前記空きバッファ探索部により探索された空きバッファに、前記複数の送信バッファの格納されたデータの中で最も優先度の高いデータが設定される。このため、前記複数のメッセージバッファのうち、空き無しバッファが一つ以上存在していても、空きバッファに、前記複数の送信バッファの格納されたデータの中で最も優先度の高いデータが設定される。よって、前記複数の送信バッファに格納されたデータの中で最も優先度の高いデータは、空きバッファが探索されれば、空き無しバッファが空きバッファに変わるまで待たされることなく、その探索された空きバッファに格納される。したがって、前記複数の送信バッファに格納されたデータの中で最も優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制することができる。
【００１６】
また、本開示の一態様に係る送信装置において、
前記送信制御部は、前記複数のメッセージバッファに格納されたデータの中で最も優先度の高いデータを前記通信線へ送信する。
【００１７】
これにより、前記複数のメッセージバッファの中で最も優先度の高いデータが前記通信線へ送信される。したがって、前記複数のメッセージバッファに格納された最も優先度の高いデータの送信が、前記複数のメッセージバッファに格納された優先度の低いデータの送信が完了するまで待たされる送信滞留現象の発生を抑制することができる。
【発明の効果】
【００１８】
本開示の一態様によれば、優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制でき、且つ、メッセージバッファの数を節約できる。
【図面の簡単な説明】
【００１９】
【図１】送信装置のハードウェア構成とその動作の一例を示す図である。
【図２】メッセージバッファ状態管理装置の機能的構成の一例を示す図である。
【図３】送信装置の動作の流れの一例を示すフローチャートである。
【図４】高優先メッセージの探索処理の流れの一例を示すフローチャートである。
【図５】空きの探索／送信要求処理の流れの一例を示すフローチャートである。
【図６】送信完了処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本開示に係る実施形態を図面を参照して説明する。
【００２１】
図１は、送信装置のハードウェア構成とその動作の一例を示す図である。送信ＥＣＵ（Electronic Control Unit）１は、通信線に接続される送信装置の一例であり、通信バス６０は、通信線の一例である。送信ＥＣＵ１と通信バス６０とは車両に搭載されている。通信バス６０には、送信ＥＣＵ１が通信バス６０へ送信したデータを受信する受信ＥＣＵ等の受信装置（不図示）が少なくとも一つ接続されている。図１に示される通信システムでは、送信ＥＣＵ１と受信ＥＣＵとの間のデータの送受は、ＣＡＮ（Control Area Network）通信により行われる。
【００２２】
送信ＥＣＵ１は、通信バス６０に接続されており、通信バス６０へメッセージを送信する。メッセージは、データの一例である。受信ＥＣＵは、通信バス６０に接続されており、通信バス６０からメッセージを受信する。通信バス６０は、送信ＥＣＵ１と受信ＥＣＵとの間で送受されるメッセージが伝送する伝送路である。
【００２３】
送信ＥＣＵ１は、マイコン１１と、通信コントローラ１７とを備える電子制御装置の一例である。マイコン１１は、送信要求バッファ１２と、メッセージバッファ状態管理装置１０（以下、「管理装置１０」と称する）とを備えるマイクロコンピュータの一例である。通信コントローラ１７は、マイコン１１と通信バス６０との間のメッセージの送受を制御するハードウェア装置である。通信コントローラ１７は、送信完了レジスタ１８と、送信制御部１９と、送信メッセージバッファ２０とを備える。
【００２４】
送信要求バッファ１２は、送信ＥＣＵ１が通信バス６０へ送信することが所定の上位アプリケーションプログラムから要求されたメッセージが格納される記憶領域である。この上位アプリケーションプログラムは、送信ＥＣＵ１内で実行されるプログラム、又は送信ＥＣＵ１以外のＥＣＵ内で実行されるプログラムである。
【００２５】
送信要求バッファ１２は、複数の送信バッファ［ｊ］を有する。ｊは、非負の整数を表し、図１には、Ｍ個の送信バッファ［ｊ］が示されている。また、図１は、優先度が低いメッセージＡが送信バッファ［０］に格納され、優先度が中程度のメッセージＢが送信バッファ［１］に格納され、優先度が高いメッセージＣが送信バッファ［２］に格納されている一状態例を示す。
【００２６】
各メッセージに付与されている優先度は、通信バス６０上を伝送する他のメッセージとの間で行われる通信調停での優先度を表す。例えば、各メッセージに付与されている識別番号は、通信調停での優先度を表し、その識別番号の数値が小さいほど、通信調停での優先度が高い（つまり、他のメッセージとの通信調停で勝ちやすい）ことを表す。識別番号の具体例として、周知のＣＡＮ＿ＩＤが挙げられる。
【００２７】
管理装置１０は、送信メッセージバッファ２０の状態を管理する。送信メッセージバッファ２０は、通信バス６０へ送信されるメッセージが通信バス６０へ送信される前に一時的に格納される記憶領域である。送信メッセージバッファ２０は、複数のメッセージバッファ［ｉ］を有する。ｉは、非負の整数を表し、図１には、Ｎ個のメッセージバッファ［ｉ］が示されている。Ｎは、Ｍよりも小さな正の整数を表す。管理装置１０は、複数のメッセージバッファ［ｉ］のそれぞれの状態が"送信中"であるのか"空き"であるのかを管理する。
【００２８】
管理装置１０は、プロセッサの一例であるＣＰＵ（Central Processing Unit）１５と、ＲＯＭ（Read Only Memory）１６と、ＲＡＭ２１（Random Access Memory）とを備える。ＲＡＭ２１には、保持バッファ１３と、管理バッファ１４とが含まれている。
【００２９】
保持バッファ１３は、送信要求バッファ１２から取得されたメッセージが一時的に格納される記憶領域である。
【００３０】
管理バッファ１４は、データが格納されているデータ有状態とデータが格納されていないデータ無状態とのいずれか一方を表す内部保持情報［ｉ］を複数のメッセージバッファ［ｉ］のそれぞれについて記憶する記憶領域である。内部保持情報「ｉ］は、データ有無情報の一例である。
【００３１】
内部保持情報［ｉ］が"送信中"となっている状態は、データ有状態を表し、つまり、内部保持情報［ｉ］とインデックスｉが同じメッセージバッファ［ｉ］にデータが格納されている状態を表す。より具体的には、内部保持情報［ｉ］とインデックスｉが同じメッセージバッファ［ｉ］に格納されているメッセージが、通信バス６０への送信が完了していない状態を"送信中"とする。
【００３２】
一方、内部保持情報［ｉ］が"空き"となっている状態は、データ無状態を表し、つまり、内部保持情報［ｉ］とインデックスｉが同じメッセージバッファ［ｉ］にデータが格納されていない状態を表す。より具体的には、内部保持情報［ｉ］とインデックスｉが同じメッセージバッファ［ｉ］に、メッセージが格納されていない状態を"空き"とする。
【００３３】
図２は、メッセージバッファ状態管理装置の機能的構成の一例を示す図である。管理装置１０は、メッセージ探索部３１と、空きバッファ探索部３２と、メッセージ設定部３３と、状態管理部３４とを備える。各部の処理機能を、図１を参照して以下説明する。
【００３４】
メッセージ探索部３１は、データ探索部の一例である。メッセージ探索部３１は、送信要求バッファ１２内のＭ個の送信バッファ［ｊ］に格納されたメッセージの中から、送信メッセージバッファ２０内のＮ個のメッセージバッファ［ｉ］に格納されたメッセージよりも優先度の高いメッセージを探索する。メッセージ探索部３１は、例えば、Ｍ個の送信バッファ［ｊ］に格納されたメッセージの中で最も優先度の高いメッセージを探索する。
【００３５】
空きバッファ探索部３２は、空きバッファ探索部の一例である。空きバッファ探索部３２は、データが格納されていない空きバッファをＮ個のメッセージバッファ［ｉ］の中から順に探索する。
【００３６】
メッセージ設定部３３は、データ設定部の一例である。メッセージ設定部３３は、空きバッファ探索部３２により探索された空きバッファに、メッセージ探索部３１により探索されたメッセージを設定する。
【００３７】
状態管理部３４は、状態管理部の一例である。状態管理部３４は、Ｎ個のメッセージバッファ［ｉ］のうちメッセージがメッセージ設定部３３により設定されたバッファについては、内部保持情報［ｉ］の状態を"空き"から"送信中"に変更する。一方、状態管理部３４は、Ｎ個のメッセージバッファ［ｉ］のうち通信バス６０へのメッセージの送信が送信制御部１９により完了したバッファについては、内部保持情報［ｉ］の状態を"送信中"から"空き"に変更する。
【００３８】
したがって、空きバッファ探索部３２は、内部保持情報［ｉ］の状態が"空き"であるのか"送信中"であるのかに基づいて、メッセージが格納されていない空きバッファをＮ個のメッセージバッファ［ｉ］の中から探索できる。
【００３９】
メッセージ探索部３１と、空きバッファ探索部３２、メッセージ設定部３３及び状態管理部３４の各部の処理機能は、ＲＯＭ１６に記憶されたプログラムをＣＰＵ１５が実行することによって実現される。プログラムは、ＣＰＵ１５に処理の手順を実行させるプログラムを含む。ＲＡＭ２１は、ＣＰＵ１５が実行するプログラムによる演算の中間データなどを含む各種データを格納する。
【００４０】
図１において、送信制御部１９は、送信メッセージバッファ２０に格納されたメッセージ（以下、「メッセージＸ」と称する）を通信バス６０へ送信することを制御する。メッセージＡ，Ｂ，Ｃは、それぞれ、メッセージＸの一例である。送信制御部１９は、メッセージＸが送信メッセージバッファ２０に格納された場合、送信メッセージバッファ２０に格納されたメッセージＸを通信バス６０へ送信することを試みる。送信制御部１９は、通信バス６０上を伝送する他のメッセージとの通信調停に勝った場合、そのメッセージＸの通信バス６０への送信が完了したことを表す送信完了データを、送信完了レジスタ１８に格納する。送信完了レジスタ１８は、データ格納部の一例である。送信完了データは、送信完了フラグデータとも称する。通信コントローラ１７は、送信完了レジスタ１８をＮ個のメッセージバッファ［ｉ］のそれぞれについて備える。
【００４１】
送信制御部１９は、通信バス６０へのメッセージＸの送信を完了させたとき、通信バス６０へのメッセージＸの送信が完了したことを表す送信完了データを、その送信が完了したメッセージＸ用の送信完了レジスタ１８に格納する。一方、送信制御部１９は、メッセージＸの送信完了データをその送信が完了したメッセージＸ用の送信完了レジスタ１８に格納してから、通信バス６０へのメッセージの送信を次に実行するまでに、送信完了レジスタ１８からその送信完了データを削除する。
【００４２】
また、通信バス６０へのメッセージＸの送信が完了すると、その送信が完了したメッセージＸが格納されていたメッセージバッファ［ｉ］は、"空き"となる。
【００４３】
次に、送信ＥＣＵ１の一動作例について、図１を参照して説明する。
【００４４】
一動作例の前提条件は、メッセージバッファ［０］に格納された低優先度のメッセージＡと、メッセージバッファ［２］に格納された中優先度のメッセージＢとについて、通信調停での負けにより、通信バス６０への送信が完了していない状況とする。この状況で、高優先度のメッセージＣが送信要求バッファ１２の送信バッファ［２］に格納されてからの動作例について説明する。
【００４５】
メッセージ探索部３１は、送信要求バッファ１２内のＭ個の送信バッファ［ｊ］に格納されたメッセージの中から、送信メッセージバッファ２０内のＮ個のメッセージバッファ［ｉ］に格納されたメッセージよりも優先度の高いメッセージを取得する。この場合、メッセージ探索部３１は、送信バッファ［０］［１］［２］に格納されたメッセージＡ，Ｂ，Ｃのうち、メッセージバッファ［０］［２］に格納されたメッセージＡ，Ｂよりも優先度の高いメッセージＣを取得して保持バッファ１３に格納する。送信バッファから取得されたメッセージは、その送信バッファから無くなる。
【００４６】
空きバッファ探索部３２は、管理バッファ１４に格納された内部保持情報［ｉ］に基づいて、メッセージバッファ［１］が空きバッファであることを特定する。メッセージ設定部３３は、空きバッファ探索部３２により探索された空きのメッセージバッファ［１］に、メッセージ探索部３１により探索されたメッセージＣを設定する。
【００４７】
送信制御部１９は、複数のメッセージバッファ［ｉ］に格納されたメッセージの中で最も優先度の高いメッセージを通信バス６０へ送信する。したがって、送信制御部１９は、メッセージバッファ［０］［１］［２］に格納されたメッセージＡ，Ｃ，Ｂの中で最も優先度の高いメッセージＣをメッセージＡ，Ｂよりも早く通信バス６０へ送信できる。
【００４８】
したがって、最も優先度の高いメッセージＣを送信メッセージバッファ２０に格納することが、優先度の比較的低いメッセージＡ，Ｂが送信メッセージバッファ２０から無くなるまで待たされる滞留現象の発生を抑制することができる。
【００４９】
また、送信メッセージバッファ２０に格納された最も優先度の高いメッセージＣの送信が、送信メッセージバッファ２０に格納された優先度の比較的低いメッセージＡ，Ｂの送信が完了するまで待たされる送信滞留現象の発生を抑制することができる。
【００５０】
図３は、送信装置の動作の流れの一例を示すフローチャートである。送信装置の一例である送信ＥＣＵ１の管理装置１０は、図３に示されるスタートからエンドまでの処理を周期的に繰り返す。
【００５１】
管理装置１０は、通信バス６０へメッセージを送信することが要求されている場合、高優先メッセージの探索処理をステップＳ１００にて実行した後に、空きの探索／送信要求処理をステップＳ２００にて実行する。
【００５２】
図４は、高優先メッセージの探索処理の流れの一例を示すフローチャートである。
【００５３】
ステップＳ１１０にて、管理装置１０のメッセージ探索部３１は、ループカウンタを初期化するため、ｊを０に設定する。
【００５４】
ステップＳ１２０にて、メッセージ探索部３１は、ｊが送信バッファ［ｊ］のバッファ段数Ｍ以下であるか否かを判定する。メッセージ探索部３１は、ｊが送信バッファ［ｊ］のバッファ段数Ｍ以下であると判定した場合、ステップＳ１３０の処理を実行する。
【００５５】
ステップＳ１３０にて、メッセージ探索部３１は、送信バッファ［ｊ］が"空き"か否かを判定する。送信バッファ［ｊ］が"空き"である場合（ステップＳ１３０Ｙｅｓ）、送信バッファ［ｊ］にメッセージが格納されていないことになるので、メッセージ探索部３１は、別の送信バッファが空きであるか否かを探索するため、ｊを一つインクリメントする（ステップＳ１６０）。メッセージ探索部３１は、ｊのインクリメント後、ステップＳ１２０の処理を実行する。
【００５６】
一方、メッセージ探索部３１は、送信バッファ［ｊ］が"空き"ではないと判定した場合（ステップＳ１３０Ｎｏ）、送信バッファ［ｊ］にメッセージが格納されていることになる。この場合、メッセージ探索部３１は、ステップＳ１４０の処理を実行する。
【００５７】
ステップＳ１４０にて、メッセージ探索部３１は、送信バッファ［ｊ］に格納された優先度が、保持バッファ１３に現在格納されているメッセージの優先度よりも高いか否かを判定する。
【００５８】
メッセージ探索部３１は、送信バッファ［ｊ］に格納された優先度が、保持バッファ１３に現在格納されているメッセージの優先度よりも高い場合、その送信バッファ［ｊ］に格納されたメッセージを取得する。そして、メッセージ探索部３１は、保持バッファ１３に現在格納されているメッセージをその取得したメッセージに置換する（ステップＳ１５０）。ステップＳ１５０の後、メッセージ探索部３１は、別の送信バッファについて探索するため、ｊを一つインクリメントする（ステップＳ１６０）。
【００５９】
一方、メッセージ探索部３１は、送信バッファ［ｊ］に格納された優先度が、保持バッファ１３に現在格納されているメッセージの優先度よりも高くない場合、その送信バッファ［ｊ］からメッセージを取得することなく、ステップＳ１６０の処理を実行する。
【００６０】
ステップＳ１６０の処理後、ステップＳ１２０の処理が再び行われる。ステップＳ１２０にて、メッセージ探索部３１は、インデックスｊが送信バッファ［ｊ］のバッファ段数Ｍを超えたと判定した場合、Ｍ個の送信バッファ［ｊ］全てについて探索したことになるので、高優先メッセージの探索処理を終了させる。
【００６１】
高優先メッセージの探索処理が終了すると、保持バッファ１３には、Ｍ個の送信バッファ［ｊ］に格納されたメッセージの中で最も優先度の高いメッセージが格納されていることになる。高優先メッセージの探索処理の終了後、空きの探索／送信要求処理（図５）が実行される。
【００６２】
図５は、空きの探索／送信要求処理の流れの一例を示すフローチャートである。
【００６３】
ステップＳ２１０にて，管理装置１０の空きバッファ探索部３２は、ループカウンタを初期化するため、ｉを０に設定する。
【００６４】
ステップＳ２２０にて、空きバッファ探索部３２は、ｉが内部保持情報［ｉ］の総インデックス数Ｎ以下であるか否かを判定する。空きバッファ探索部３２は、ｉが内部保持情報［ｉ］の総インデックス数Ｎ以下であると判定した場合、ステップＳ２３０の処理を実行する。
【００６５】
ステップＳ２３０にて、空きバッファ探索部３２は、内部保持情報［ｉ］の状態が"空き"か否かを判定する。内部保持情報［ｉ］が"空き"ではない場合（ステップＳ２３０Ｎｏ）、メッセージバッファ［ｉ］にメッセージが格納されていることになる。よって、空きバッファ探索部３２は、別の箇所のメッセージバッファ［ｉ］の空きを探索するため、ｉを一つインクリメントする（ステップＳ２４０）。
【００６６】
空きバッファ探索部３２は、ｉのインクリメント後、ステップＳ２２０の処理を再び実行する。ステップＳ２２０にて、空きバッファ探索部３２は、ｉが内部保持情報［ｉ］の総インデックス数Ｎを超えたと判定した場合（ステップＳ２２０Ｎｏ）、Ｎ個のメッセージバッファ［ｉ］全ての空きについて探索したことになる。この場合、ステップＳ２５０の処理が実行される。
【００６７】
一方、ステップＳ２３０にて、空きバッファ探索部３２は、内部保持情報［ｉ］の状態が"空き"であると判定した場合（ステップＳ２３０Ｙｅｓ）、ステップＳ２４０を実行せずに、ステップＳ２５０の処理を実行する。つまり、空きがあるか否かをまだ探索していないメッセージバッファ［ｉ］があっても、ステップＳ２５０の処理が実行される。
【００６８】
ステップＳ２５０にて、空きバッファ探索部３２は、Ｎ個のメッセージバッファ［ｉ］のいずれかに空きを発見したか否かを判定する。空きバッファ探索部３２は、ｉがＮよりも小さい場合、そのｉ番目のメッセージバッファに空きを発見したと判定する。
【００６９】
ステップＳ２６０には、メッセージ設定部３３は、空きバッファ探索部３２により探索された空きバッファ（ｉ番目のメッセージバッファ）に、保持バッファ１３に現在保持されているメッセージを設定する。ステップＳ２７０にて、状態管理部３４は、そのｉ番目のメッセージバッファとインデックスｉが同じ内部保持情報［ｉ］の状態を、"空き"から"送信中"に変更する。この後、図３のステップＳ１００が再開する。
【００７０】
一方、ステップＳ２５０にて、空きバッファ探索部３２は、ｉがＮ以上である場合、メッセージバッファ［ｉ］のいずれにも空きがないと判定する。この後、図３のステップＳ１００が再開する。
【００７１】
図６は、送信完了処理の流れの一例を示すフローチャートである。状態管理部３４は、図６に示されるスタートからエンドまでの処理を周期的に繰り返す。
【００７２】
ステップ３１０にて、状態管理部３４は、内部保持情報［ｉ］が"送信中"であるインデックスｉを特定する。
【００７３】
ステップＳ３２０にて、状態管理部３４は、ステップＳ３１０にて特定されたインデックスｉのメッセージバッファ［ｉ］の送信完了レジスタ１８に送信完了データが格納されているか否かを判定する。状態管理部３４は、ステップＳ３１０にて特定されたインデックスｉのメッセージバッファ［ｉ］の送信完了レジスタ１８に送信完了データが格納されている場合、内部保持情報［ｉ］の状態を"送信中"から"空き"に変更する。一方、状態管理部３４は、ステップＳ３１０にて特定されたインデックスｉのメッセージバッファ［ｉ］の送信完了レジスタ１８に送信完了データが格納されていない場合、内部保持情報［ｉ］の状態を"送信中"で維持する。
【００７４】
したがって、本実施形態に係る送信装置によれば、メッセージが格納されていない空きバッファは、複数のメッセージバッファ［ｉ］の中から順に空きバッファ探索部３２により探索される。そして、空きバッファ探索部３２により探索された空きバッファに、メッセージ探索部３１により探索されたデータが設定される。このため、複数のメッセージバッファ［ｉ］のうち、メッセージが格納されているバッファ（空き無しバッファ）が一つ以上存在していても、空き無しバッファ以外のバッファ（つまり、空きバッファ）に、メッセージ探索部３１により探索されたデータが設定される。よって、複数の送信バッファ［ｊ］に格納されたメッセージの中から探索された優先度の高いデータは、空きバッファが探索されれば、空き無しバッファが空きバッファに変わるまで待たされることなく、その探索された空きバッファに格納される。したがって、優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制することができる。
【００７５】
また、本実施形態に係る送信装置によれば、メッセージ探索部３１により探索されたメッセージが設定される空きバッファは、複数のメッセージバッファ［ｉ］の中から順に探索される。そのため、メッセージ探索部３１により探索されたメッセージが設定されるバッファは、複数のメッセージバッファ［ｉ］のうち、特定の一のバッファに固定されずに動的に変化する。よって、送信バッファ［ｊ］と同じ数のメッセージバッファを必ずしも用意する必要が無くなるので、メッセージバッファ［ｉ］を送信バッファ［ｊ］の数よりも減らすことができる。したがって、メッセージバッファ［ｉ］の数を節約することができる。
【００７６】
以上、送信装置を実施形態により説明したが、本発明は上記実施形態に限定されるものではない。他の実施形態の一部又は全部との組み合わせや置換などの種々の変形及び改良が、本発明の範囲内で可能である。
【符号の説明】
【００７７】
１  送信ＥＣＵ
１０  メッセージバッファ状態管理装置
１１  マイコン
１２  送信要求バッファ
１３  保持バッファ
１４  管理バッファ
２０  送信メッセージバッファ
３１  メッセージ探索部
３２  空きバッファ探索部
３３  メッセージ設定部
６０  通信バス
【図１】
2018098616.tif 000003
【図２】
2018098616.tif 000004
【図３】
2018098616.tif 000005
【図４】
2018098616.tif 000006
【図５】
2018098616.tif 000007
【図６】
2018098616.tif 000008