(57)【要約】【課題】無線機制御部用のバッファが一杯になることに起因する無線機データの取りこぼしが生じる可能性を低減する電子制御装置を提供する。【解決手段】無線機制御部用バッファ５Ａに格納されている無線機データは、無線機データ受信部３２１によって無線機データ用中間バッファ５Ｍに移される。また、車両内通信制御部用バッファ５Ｂに格納されている車両内データは、車両内データ受信部３３１によって車両内データ用中間バッファ５Ｎに移される。このとき、無線機データ受信タスクは、車両内データ受信タスクなどの、種々のデータを移す他の処理よりも優先的に行われる。すなわち、無線機制御部２２が受信した無線機データは、無線機制御部用バッファ５Ａに格納され次第、逐次無線機データ用中間バッファ５Ｍに移される為、無線機制御部用バッファ５Ａが無線機データで一杯になる可能性を抑制することができる。【選択図】図３
2015099502.tif 000002
【特許請求の範囲】
【請求項１】
他の車両又は路側機の少なくとも何れか一方と無線通信を実施する無線機（９１）が受信した無線機データと、自車両内に備えられている車両内機器で生成された車両内データと、に基づいた制御処理を実施する電子制御装置（１）であって、
前記無線機から入力される前記無線機データを第１無線機データ記憶部（５Ａ）に格納する無線機制御部（２２）と、
前記車両内機器から入力される前記車両内データを第１車両内データ記憶部（５Ｂ）に格納する車両内通信制御部（２３）と、
前記第１無線機データ記憶部に格納されている前記無線機データを第２無線機データ記憶部（５Ｐ）に格納する無線機データ制御部（３２）と、
前記第１車両内データ記憶部に格納されている前記車両内データを第２車両内データ記憶部（５Ｑ）に格納する車両内データ制御部（３３）と、
前記第２無線機データ記憶部に格納されている前記無線機データ、及び前記第２車両内データ記憶部に格納されている前記車両内データから、前記制御処理を実施するために必要なデータである制御処理用データを生成する制御処理用データ生成部（３５）と、を備え、
前記無線機データ制御部は、さらに、
前記第１無線機データ記憶部に格納されている前記無線機データを中間無線機データ記憶部（５Ｍ）に移す無線機データ受信部（３２１）と、
前記中間無線機データ記憶部に格納されている前記無線機データを、前記第２無線機データ記憶部に移す無線機データ管理部（３２２）と、を備え、
前記車両内データ制御部は、さらに、
前記第１車両内データ記憶部に格納されている前記車両内データを、中間車両内データ記憶部（５Ｎ）に移す車両内データ受信部（３３１）を備え、
前記無線機データ受信部による処理を、前記車両内データ受信部による処理よりも優先し、かつ、前記無線機データ受信部による処理を、前記無線機データ管理部による処理よりも優先することを特徴とする電子制御装置。
【請求項２】
請求項１において、
前記車両内データ制御部は、さらに、
前記中間車両内データ記憶部に格納されている前記車両内データを前記第２車両内データ記憶部に移す車両内データ管理部（３３２）を備え、
前記車両内データ受信部による処理を、前記車両内データ管理部による処理よりも優先することを特徴とする電子制御装置。
【請求項３】
請求項１または２において、
前記制御処理用データ生成部は、所定の周期で前記制御処理用データを生成し、
前記中間無線機データ記憶部の記憶容量は、
前記無線機から前記無線機制御部に入力される単位時間当りのデータ量と、前記周期と、から定まる、前記周期の間に前記無線機から前記無線機制御部に入力されるデータ量以上の大きさとなっていることを特徴とする電子制御装置。
【請求項４】
請求項３において、
前記中間車両内データ記憶部の記憶容量は、
前記車両内機器から前記車両内通信制御部に入力される単位時間当りのデータ量と、前記周期と、から定まる、前記周期の間に前記車両内機器から前記車両内通信制御部に入力されるデータ量以上の大きさとなっていることを特徴とする電子制御装置。
【請求項５】
請求項１から４の何れか１項において、
前記電子制御装置は、前記無線機データと、前記車両内データと、を含む複数種別のデータに基づいた制御処理を実施する電子制御装置であって、
前記複数種別のデータのうち前記無線機データ及び前記車両内データ以外のデータである余種別データを出力する、余種別データ提供元（９３）から入力される前記余種別データを、第１余種別データ記憶部（５Ｃ）に格納する余種別データ提供元制御部（２４）と、
前記第１余種別データ記憶部に格納されている前記余種別データを第２余種別データ記憶部（５Ｒ）に格納する余種別データ制御部（３４）と、を備え、
前記制御処理用データ生成部は、前記第２無線機データ記憶部に格納されている前記無線機データ、前記第２車両内データ記憶部に格納されている前記車両内データ、及び第２余種別データ記憶部に格納されている前記余種別データから、前記制御処理用データを生成することを特徴とする電子制御装置。
【請求項６】
請求項５において、
前記無線機データ受信部による処理、及び前記車両内データ受信部による処理の両方を、前記余種別データ制御部による処理よりも優先することを特徴とする電子制御装置。
【請求項７】
請求項５又は６において、
前記無線機制御部、前記車両内通信制御部、前記余種別データ提供元制御部、前記無線機データ制御部、前記車両内データ制御部、及び前記余種別データ制御部による処理は何れも単一のＣＰＵによって実行されることを特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用の電子制御装置に関する。
【背景技術】
【０００２】
近年、車車間通信や路車間通信を実施するための無線機で受信した、他の車両や路側機からのデータ（これを無線機データとする）に基づいて、種々の制御処理を実施する電子制御装置が提案されている。この種の電子制御装置は、ＣＰＵ、ＲＡＭ、ＲＯＭなどを備える周知のマイクロコンピュータ（以降、マイコン）を主体として構成されており、ＲＯＭなどの不揮発性メモリに、種々の制御処理に対応するプログラム（すなわちアプリケーション）が格納されている。
【０００３】
また、この種の電子制御装置には、無線機データ以外にも、自車両に備えられたセンサや他の電子制御装置等の車両内機器から出力された、自車両の状態を示すデータ（これを車両内データとする）が入力される。すなわち、電子制御装置は、無線機データ及び車両内データを用いて種々の制御処理を実施する。
【０００４】
例えば特許文献１に開示の電子制御装置は、無線機データ及び車両内データを用いて、ユーザの運転操作を支援するための複数の制御処理を実施する。より具体的には、電波メディア受信機（すなわち無線機）が、路側機から送信されたインフラ情報（すなわち、無線機データ）を逐次受信し、当該無線機データを電子制御装置に逐次出力する。無線機データには、例えば、信号の点灯色などを示す信号情報や、対向車の有無などを示す対向車情報、歩行者の有無を示す歩行者情報などを含んでいる。また、電子制御装置は、自車両内に構築された車内ネットワークを介して、車両内機器から種々の車両内データを逐次受信する。
【０００５】
電子制御装置は、無線機データ及び車両内データから、制御処理に必要なデータ（これを制御処理用データとする）を生成する。そして、電子制御装置は、この生成した制御処理用データとアプリケーションとに基づいて制御処理を実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−２１０９７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、マイコンはソフトウェアとして、マイコンに接続する機器の制御を行う制御部（いわゆるデバイスドライバ）と、種々の制御処理に対応するアプリケーションと、ドライバとアプリケーションとの中間に位置するミドルウェアと、を備える。
【０００８】
前述の制御処理用データを生成するための機能（制御処理用データ生成部とする）は、例えばミドルウェアに設けられる。また、マイコンに接続する機器とは、無線機や、車両内機器などを指し、単に接続機器とも称す。
【０００９】
マイコンは、接続機器毎に制御部を備えており、具体的には、無線機に対応する無線機制御部、及び車両内機器に対応する車両内通信制御部をそれぞれソフトウェアとして備えている。ＲＡＭには、無線機制御部、車両内通信制御部、及び制御処理用データ生成部のそれぞれに対して所定の記憶領域（いわゆるバッファ）が割り当てられており、順に、無線機制御部用バッファ、車両内通信制御部用バッファ、データ生成部用バッファとする。
【００１０】
各制御部は、自身に対応する接続機器からデータが入力されると、その入力されたデータを、その制御部用に確保されているバッファにいったん格納して保持する。制御処理用データ生成部は、各制御部のバッファに保持されているデータを、所定の周期又はタイミングで、制御処理用データ生成部用に確保されているデータ生成部用バッファに移し、制御処理用データを生成する。
【００１１】
ここで、無線機制御部用バッファや車両内通信制御部用バッファなど、デバイスドライバ用に確保されるバッファのサイズは、一般的に、ミドルウェアやアプリケーションのために確保されるバッファのサイズよりも小さい。また、車車通信や路車間通信によって得られるデータである無線機データは、様々な情報を含むため、１回の通信で受信するデータのサイズは、無線機制御部用バッファのサイズに対して大きい。このため、制御処理用データ生成部が、無線機制御部用バッファに格納されているデータを移すことによって当該バッファを解放するまでに、無線機制御部用バッファが無線機データで一杯になってしまう恐れがある。
【００１２】
また、車両内データのサイズは無線機データほど大きくはないが、車両内データを受信する頻度は相対的に多いため、やはり車両内通信制御部用バッファもまた、車両内データで一杯になりやすい。
【００１３】
各制御部は、自身に対応するバッファが一杯になっている場合には、接続機器からのデータが入力されてもその新規データを保存することが出来ない為、その新たに受信したデータを破棄することになる。もちろん、新たに受信したデータを破棄してしまうと、当該データに含まれる内容が制御処理用データに反映されなくなってしまうため、データを破棄することは避けたい。
【００１４】
特に、無線機データは動的に変化する通信相手から受信するデータであるため、以降において再び同じデータを取得できる保証はなく、当該無線機データを破棄することはできるだけ避けたいという要求があった。
【００１５】
本発明は、この事情に基づいて成されたものであり、その目的とするところは、無線機制御部用のバッファが一杯になることに起因する無線機データの取りこぼしが生じる可能性を低減する電子制御装置を提供することにある。
【課題を解決するための手段】
【００１６】
その目的を達成するための本発明は、他の車両又は路側機の少なくとも何れか一方と無線通信を実施する無線機（９１）が受信した無線機データと、自車両内に備えられている車両内機器で生成された車両内データと、に基づいた制御処理を実施する電子制御装置（１）であって、無線機から入力される無線機データを第１無線機データ記憶部（５Ａ）に格納する無線機制御部（２２）と、車両内機器から入力される車両内データを第１車両内データ記憶部（５Ｂ）に格納する車両内通信制御部（２３）と、第１無線機データ記憶部に格納されている無線機データを第２無線機データ記憶部（５Ｐ）に格納する無線機データ制御部（３２）と、第１車両内データ記憶部に格納されている車両内データを第２車両内データ記憶部（５Ｑ）に格納する車両内データ制御部（３３）と、第２無線機データ記憶部に格納されている無線機データ、及び第２車両内データ記憶部に格納されている車両内データから、制御処理を実施するために必要なデータである制御処理用データを生成する制御処理用データ生成部（３５）と、を備え、無線機データ制御部は、さらに、第１無線機データ記憶部に格納されている無線機データを中間無線機データ記憶部（５Ｍ）に移す無線機データ受信部（３２１）と、中間無線機データ記憶部に格納されている無線機データを、第２無線機データ記憶部に移す無線機データ管理部（３２２）と、を備え、車両内データ制御部は、さらに、第１車両内データ記憶部に格納されている車両内データを、中間車両内データ記憶部（５Ｎ）に移す車両内データ受信部（３３１）を備え、無線機データ受信部による処理を、車両内データ受信部による処理よりも優先し、かつ、無線機データ受信部による処理を、無線機データ管理部による処理よりも優先することを特徴とする。
【００１７】
以上の構成では、第１無線機データ記憶部に格納されている無線機データは、無線機データ受信部によって中間無線機データ記憶部に移される。また、第１車両内データに格納されている車両内データは、車両内データ受信部によって中間車両内データ記憶部に移される。このとき、無線機データ受信部が実施する処理は、車両内データ受信部が実施する処理や、無線機データ管理部が実施する処理よりも、優先的に行われる。すなわち、第１無線機データ記憶部に格納されている無線機データを中間無線機データ記憶部に移す処理は、他の処理よりも優先して行われる。
【００１８】
したがって、以上の構成によれば、第１無線機データ記憶部が無線機データで一杯になる可能性を抑制することができる。言い換えれば、無線機制御部用のバッファ（すなわち第１無線機データ記憶部）が一杯になることに起因する無線機データの取りこぼしが生じる可能性を低減することができる。
【００１９】
また、車両内データも、第１車両内データから中間車両内データ記憶部に順次移される。このため、車両内通信制御部用のバッファも一杯になりにくいため、車両内データの取りこぼしも抑制することが出来る。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係る電子制御システム１００の概略的な構成の一例を示すブロック図である。
【図２】本実施形態に係る主制御部１の概略的なソフトウェア構成の一例を示すブロック図である。
【図３】無線機データ、車両内データ、ＧＰＳデータの流れを説明するための図である。
【図４】ＲＡＭ４に割り当てられているバッファの構成を概念的に示すブロック図である。
【図５】各タスクに設定される優先度の一例を示す表である。
【図６】タスク管理部１１１が実施するタスク生成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態の一例について図を用いて説明する。図１は、本実施形態における電子制御システム１００の概略的な構成の一例を示す図である。図１に示すように電子制御システム１００は、主制御部１と、種々のデータ取得元９としての、無線機９１、車両内通信マイコン９２、及びＧＰＳ受信機９３を備える。
【００２２】
これら無線機９１、車両内通信マイコン９２、及びＧＰＳ受信機９３と主制御部１とは、それぞれ相互通信可能に接続されている。なお、データ取得元９は、後述する無線機データ及び車両内データが主制御部１に入力される構成となっていれば良く、データ取得元９の数や機器の種類、回路構成などは任意である。主制御部１が、請求項に記載の電子制御装置に相当する。
【００２３】
無線機９１は、例えば車車間通信および路車間通信の両方、またはいずれか一方を行う無線通信装置であり、無線機９１が備える受信アンテナで受信したデータ（無線機データとする）を、主制御部１に出力する。無線機データには、車車間通信によって他の車両から受信したデータである車車受信データと、路車間通信によって路側機から受信したデータである路車受信データがある。なお、車車間通信及び路車間通信はいずれも同報通信方式で実施される。
【００２４】
車車受信データは、送信元となる車両を他の車両と識別するための送信元車両識別番号や、宛先となる車両を他の車両と識別するための宛先車両識別番号、送信元となる車両の車両状態を表す車両状態情報、などを含んでいる。車両状態情報としては、例えば送信元の車両の、現在位置、走行速度、進行方向、ウィンカースイッチのオン／オフ、ブレーキランプの点灯状態などを含んでいる。すなわち、車車受信データには、当該データを送信した他の車両に関する様々な情報を含まれている。
【００２５】
路車受信データは、路側機が生成するデータであってもよいし、路側機の通信エリア内に存在する他の車両が送信したデータであってもよい。後者のように車両と車両が路側機を介して行う通信は、いわゆる車路車通信ともいう。車路車通信を実施する路側機から取得する路車受信データは、前述の車車受信データと同様の内容を含んでいる。
【００２６】
車路車通信でなく、路側機が生成するデータの内容としては、路側機周辺の交通状況を表す交通状況データなどである。交通状況データとは、例えば、渋滞情報や、路側機周辺において運転者の死角となる領域の車両、歩行者、障害物などの存在の有無などを表す。ここで、路側機周辺とは、路側機の位置を基準として適宜設計される範囲であればよい。例えば歩行者の有無を交通状況データとする場合には、２０ｍ圏内とすればよい。このように路車受信データもまた、路側機周辺に存在する車両や、路側機周辺の交通状況データなど、様々な情報を備えている。
【００２７】
以上で述べたように、無線機９１は、車車受信データ又は路車受信データを受信すると、その受信データを無線機データとして逐次主制御部１に出力する。ここで、無線機９１から主制御部１に無線機データが出力される頻度は、自車両周辺に存在し、自車両と車々間通信を実施する他車両（これを周辺車両とする）の数や、自車両と路車間通信を実施する路側機の数によって異なる。ただし、無線機データには上述したように様々な情報が含まれているため、１つのデータのサイズは後述するＧＰＳデータなどに比べて大きく、１００Ｂｙｔｅから最大１０００Ｂｙｔｅに達する場合もある。
【００２８】
なお、上述した自車両周辺とは、無線機９１が形成する通信エリアを指し、例えば自車両の前方２００ｍ、後方１００ｍ、両側方１００ｍとする。また、周辺車両及び路側機は、それぞれ所定の送信周期（例えば１００ｍｓ毎）で車車受信データ及び路車受信データを送信する。無線機９１は、最大Ｐ台の他車両、及び最大Ｑ台の路側機のそれぞれから無線機データを受信する性能を備えるとすると、無線機９１は、１つの送信周期の間に、最大Ｐ＋Ｑ台の送信元から送信されたデータを受信することになる。一例としてＰ＝２００、Ｑ＝８とすると、１００ｍｓの間に２０８台の送信元から受信した車車受信データ及び路車受信データを受信し、これらを逐次主制御部１に出力する。
【００２９】
車両内通信マイコン９２は、周知のマイクロコンピュータであって、車両に備えられている他のＥＣＵやセンサ（これらを車載機器とする）と、相互通信可能に接続されている。そして、これら車載機器から取得するデータ（これを車両内データとする）を、逐次主制御部１に出力する。
【００３０】
例えば、車載機器は、周知の車速センサ、加速度センサ、ジャイロセンサ、操舵角センサ、ブレーキセンサ、シフトポジションセンサ、ボディＥＣＵ、操舵ＥＣＵなどがある（何れも図示略）。操舵角センサは、ステアリングホイールの回転角（すなわち操舵角）を検出する。ボディＥＣＵは、ドアの施解錠などを制御し、操舵ＥＣＵは、図示しない電動パワーステアリング装置を駆動させることで操舵角や操舵反力を制御する。
【００３１】
車両内データは、各車載機器から出力されるものであって、例えば、走行速度や、Ｇセンサが検出する加速度、ジャイロセンサが検出する回転角速度、ブレーキセンサが検出するブレーキペダルの踏み込み量、ウィンカースイッチのオン／オフなどがある。すなわち、車両内データは、車両内機器で生成された、自車両の状態を表すデータである。
【００３２】
車両内通信マイコン９２と主制御部１との通信速度はこれらを接続するネットワークの規定にもよるが、例えば５１２ｋｂｐｓである。また、車両内通信マイコン９２は、様々な車載機器から非同期で送信されるデータを取得する。したがって、主制御部１が車両内通信マイコン９２から車両内データを受信する間隔は短く、単位時間当りに受信するデータ量は相対的に大きい。
【００３３】
ＧＰＳ受信機９３は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）で用いられる衛星から送信されるＧＰＳ電波を受信することで自装置の現在位置を示すデータ（ＧＰＳデータとする）を取得する。現在位置は例えば緯度及び経度で表される。もちろん、ＧＰＳ受信機９３に代わって、ＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ）で用いられる衛星からの電波を受信することで現在位置を示すデータを取得するＧＮＳＳ受信機を備えていても良い。
【００３４】
なお、ＧＰＳ受信機９３がＧＰＳ電波を受信する周期は、例えば１００ｍｓ程度であって、そのデータのサイズも無線機データほど大きくない。したがって、ＧＰＳ受信機９３から主制御部１に入力される単位時間当りのデータ量は、無線機９１や車両内通信マイコン９２から入力される単位時間当りのデータ量よりも小さい。
【００３５】
主制御部１は、周知のマイクロコンピュータであって、データ取得元９から入力されるデータと、予め定められたアプリケーションソフトウェア（以降、単にアプリケーション）に基づいて、自車両に搭載される電子機器の制御処理を実施する。
【００３６】
主制御部１が実施する制御処理としては、例えば、公知のＡＣＣ（Ａｄａｐｔｉｖｅ  Ｃｒｕｉｓｅ  Ｃｏｎｔｒｏｌ）や、衝突被害軽減ブレーキ機能、レーンキープアシスト（ＬＫＡ：Ｌａｎｅ  Ｋｅｅｐｉｎｇ  Ａｓｓｉｓｔ）などがある。ＡＣＣでは、先行車との距離に基づいて、車間距離を一定に保つように、駆動系及び制動系のシステムを制御する。また、ＬＫＡを実施する場合には、操舵ＥＣＵに、制御の目標値とする操舵角や操舵量などを出力する。
【００３７】
主制御部１のハードウェア構成としては、図１に示されるように、ＣＰＵ２、フラッシュメモリ３、ＲＯＭ４、ＲＡＭ５、入出力ポート（Ｉ／０ポートとする）７、及びそれらを接続するバス６を備えている。データ取得元９から出力された信号は、Ｉ／Ｏポート７を介して入力される。なお、Ｉ／Ｏポート７は、シリアル入出力ポート、パラレル入出力ポート、ビット入出力ポート、アナログ入出力ポートなど、種々のデータの種類や通信形式に応じたポートを備えている。
【００３８】
なお、本実施形態において主制御部１は、１つのＣＰＵを備える構成（いわゆるシングルコア）とする。もちろん、主制御部１は、複数のＣＰＵを備えていても良いが、その場合、本実施形態で言及する処理は何れか１つのＣＰＵで行うものとする。
【００３９】
フラッシュメモリ３は、書き換え可能な不揮発性メモリであって、オペレーションシステム（以降、ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１１などの種々のソフトウェアを記憶している。これらフラッシュメモリ３に格納されているソフトウェアの構成については、図２を用いて後述する。
【００４０】
ＲＯＭ４には、例えば主制御部１の起動時にＯＳをロードするためのプログラムが格納されており、いわゆるブートＲＯＭとしての役割を担う。もちろん、他の態様として、フラッシュメモリ３に格納されているソフトウェアの一部または全部は、このＲＯＭ４に格納されていても良い。
【００４１】
ＲＡＭ５は、フラッシュメモリ３に格納された各プログラムに基づいてＣＰＵ２が実行する各種演算のための作業領域として用いられ、プログラム毎に個別に割り当てられた記憶領域を備えている。また、後述する種々のバッファメモリ（以降、バッファ）５Ａ〜Ｃ、５Ｍ〜Ｃ、５Ｍ〜Ｃも、このＲＡＭ５が備えている。
【００４２】
また、主制御部１が備えるソフトウェアの構成について図２を用いて説明する。図２に示すようにフラッシュメモリ３に格納されるソフトウェアは、システム層１０、サブシステム層２０、ミドルウェア層３０、アプリケーション層４０からなる階層構造を有している。なお、ここではシステム層１０とサブシステム層２０とを区別しているが、サブシステム層２０も纏めてシステム層１０とみなしてもよい。
【００４３】
システム層１０には、ＯＳ１１が格納されている。このＯＳ１１は、周知のリアルタイムＯＳであって、以下で説明する各部２１〜２４、３１〜３５、４１〜４３が実施する処理（すなわち、タスク）の管理や、ＲＡＭなどのメモリ資源の管理などを行う。タスク管理とは、例えば、タスクの生成や、実行させるタスクの選択、割りこみ処理、中断処理などを指す。ＯＳ１１によって実現される種々の機能のうち、このタスク管理を実行する機能をタスク管理部１１１とする。
【００４４】
タスク管理部１１１は、各タスクに予め設定されている優先度に基づいて、実行させるタスクを決定する、いわゆる優先度方式のタスク管理を行う。なお、各タスクの優先度やタスク管理部１１１の作動については、図５及び図６を用いて後述する。
【００４５】
この他、ＯＳ１１は、コンピュータ間の通信の管理する機能や、主制御部１に障害が発生した場合にその障害状態から復旧する機能、複数のタスクから同じ入出力装置に対し、データの要求があった場合に、データ入出力の調停を行う機能などを実現する。
【００４６】
サブシステム層２０は、主制御部１に供給される電力の遮断処理などを管理するシステム管理部２１の他、主制御部１に接続するデータ取得元９に応じた種々のデバイスドライバを備えている。より具体的には、無線機９１のデバイスドライバである無線機制御部２２、車両内通信マイコン９２のデバイスドライバである車両内通信制御部２３、及びＧＰＳ受信機９３のデバイスドライバであるＧＰＳ制御部２４を備えている。無線機制御部２２、車両内通信制御部２３、及びＧＰＳ制御部２４の詳細な作動については、図３を用いて後述する。
【００４７】
ミドルウェア層３０は、サブシステム層２０とアプリケーション層４０間の中間に位置するものであって、データ取得元９のそれぞれから入力される種々のデータを、アプリケーション層４０が備える各アプリケーション４１〜４３に渡す役割を担う。より具体的に、ミドルウェア層３０は、ミドルウェアシステム制御部３１、無線機データ制御部３２、車両内データ制御部３３、ＧＰＳデータ制御部３４、アプリ用データ生成部３５を備えている。このうち、ミドルウェアシステム制御部３１は、ミドルウェア層３０に備えられている各部３２〜３５を制御する。無線機データ制御部３２、車両内データ制御部３３、ＧＰＳデータ制御部３４、アプリ用データ生成部３５については、図３を用いて説明する。
【００４８】
アプリケーション層４０は、前述のＡＣＣや、衝突被害軽減ブレーキ機能など、種々の制御処理を実現するためのソフトウェア、すなわちアプリケーションを備えている。例えば、ＡＣＣを実現するためのアプリケーション４１、衝突被害軽減ブレーキ機能を実現するためのアプリケーション４２、ＬＫＡを実現するためのアプリケーション４３などを備える。なお、以上では、より安全な走行を実現するためアプリケーションを主制御部１が備えるアプリケーションとして例示したが、その他、燃費やバッテリー消費を低減するためのアプリケーションなどであってもよい。こうしたアプリケーションの数や種類は任意である。
【００４９】
次に、図３を用いて、無線機制御部２２、車両内通信制御部２３、及びＧＰＳ制御部２４、無線機データ制御部３２、車両内データ制御部３３、ＧＰＳデータ制御部３４、アプリ用データ生成部３５について説明する。図３は、図２のサブシステム層２０とミドルウェア層３０に対応する図であって、先に説明したシステム管理部２１及びミドルウェアシステム制御部３１については、図示を省略している。
【００５０】
まず、無線機９１が受信した無線機データが渡されていく流れに沿って、無線機制御部２２、無線機データ制御部３２の順に説明する。
【００５１】
無線機制御部２２は、無線機９１のデバイスドライバであって、無線機９１から入力される無線機データを受信する。そして、無線機制御部２２は、受信した無線機データを、ＲＡＭ５において無線機制御部２２用のバッファとして割り当てられた記憶領域（これを無線機制御部用バッファとする）５Ａに格納する。この無線機制御部用バッファ５Ａが請求項に記載の第１無線機データ記憶部に相当する。また、無線機制御部２２は、無線機データを無線機９１から入力されると、無線機データを受信した旨を表すイベント（無線機データ受信イベントとする）を生成して、タスク管理部１１１に送信する。
【００５２】
無線機データ制御部３２は、より細かい機能ブロックとして、無線機データ受信部３２１と無線機データ管理部３２２を備える。また、ＲＡＭ５には、無線機データ制御部３２用のバッファ（これを無線機データ用中間バッファとする）５Ｍとして、所定のサイズの記憶領域が割り当てられている。この無線機データ用中間バッファ５Ｍが請求項に記載の中間無線機データ記憶部に相当する。本実施形態では図３に示すように、無線機データ管理部３２２が、この無線機データ用中間バッファ５Ｍを仮想的に備える構成とする。
【００５３】
なお、ここでの無線機データ管理部３２２が無線機データ用中間バッファ５Ｍを仮想的に備える、とは、無線機データ用中間バッファ５Ｍに格納されているデータを、削除しても良い状態にする権限を無線機データ管理部３２２が有する、という意味である。削除してもよい状態にする、とは、実際に削除してもよいし、そのデータが格納されている記憶領域を、他のデータによって上書きしてもよい状態にすることを指す。もちろん、無線機データ用中間バッファ５Ｍを実際に備えるハードウェアはＲＡＭ５である。
【００５４】
以降においても、或る機能部が或るバッファを仮想的に備える、とは、その機能部がそのバッファに格納されているデータを削除しても良い状態にする権限を有している、という意味である。いずれの場合にも、そのバッファを実際に、すなわちハードウェアとして、実現しているのはＲＡＭ５である。
【００５５】
無線機データ受信部３２１は、タスク管理部１１１からの指示に基づいて、無線機制御部用バッファ５Ａに格納されている無線機データを、無線機データ用中間バッファ５Ｍに移す。これによって、無線機制御部用バッファ５Ａに格納されていた当該無線機データは削除され、無線機制御部用バッファ５Ａのリソースが解放される。なお、無線機データ受信部３２１は、無線機制御部用バッファ５Ａに格納されている無線機データを、無線機データ用中間バッファ５Ｍに移し終えると、その旨を示すイベントを生成して、タスク管理部１１１に送信する。
【００５６】
無線機データ管理部３２２は、タスク管理部１１１からの指示に基づいて、無線機データ用中間バッファ５Ｍに格納されている無線機データを、アプリ用データ生成部３５が仮想的に備える無線機データ用バッファ５Ｐに、纏めて移す。この無線機データ用バッファ５Ｐは、ＲＡＭ５においてアプリ用データ生成部３５が用いる無線機データ用のバッファとして割り当てられた記憶領域である。
【００５７】
なお、ＲＡＭ５には、アプリ用データ生成部３５が用いる車両内データを格納するためのバッファである車両内データ用バッファ５Ｑ、及びアプリ用データ生成部３５が用いるＧＰＳデータを格納するためのバッファであるＧＰＳデータ用バッファ５Ｒが設けられている。これら車両内データ用バッファ５Ｑ、及びＧＰＳデータ用バッファ５Ｒもまた、仮想的にアプリ用データ生成部３５が備えている。これら無線機データ用バッファ５Ｐ、車両内データ用バッファ５Ｑ、ＧＰＳデータ用バッファ５Ｒが、それぞれ請求項に記載の第２無線機データ記憶部、第２車両内データ記憶部、第２余種別データ記憶部に相当する。
【００５８】
また、無線機データ管理部３２２は、無線機データ用中間バッファ５Ｍに格納されている無線機データを、無線機データ用バッファ５Ｐに移す際、無線機データ用中間バッファ５Ｍに格納されている無線機データを複製し、その複製したデータを無線機データ用バッファ５Ｐに格納する。そして、この複製したデータの無線機データ用バッファ５Ｐへの格納が完了すると、無線機データ用中間バッファ５Ｍに格納されてあって、複製の元となったデータを、他のデータによって上書きされても良い状態にする。
【００５９】
本実施形態では、このようにデータの提供先に格納したデータと同じデータが、データの提供元に残っている場合であっても、その提供元に残っているデータを他のデータで上書きしても良い状態にする場合には、データを移す、と表現する。もちろん、本来の、提供先へデータを格納した時に提供元の当該データを削除する場合も、データを移すという意味に含まれる。
【００６０】
すなわち、或るバッファ（提供元）に保存されているデータを他のバッファ（移動先）に移す、とは、そのデータを移動先に保存するとともに、提供元においてそのデータを保存していた記憶領域を自由に使えるようにする（すなわちリソースの解放）という意味である。請求項に記載の、データを移すという表現も同様である。
【００６１】
次に、車両内通信マイコン９２から出力される車両内データの流れに沿って、車両内通信制御部２３、車両内データ制御部３３の順に説明する。
【００６２】
車両内通信制御部２３は、車両内通信マイコン９２のデバイスドライバであって、車両内通信マイコン９２から入力される車両内データを受信する。そして、車両内通信制御部２３は、受信した車両内データを、ＲＡＭ５において車両内通信制御部２３用のバッファとして割り当てられた記憶領域（これを車両内通信制御部用バッファとする）５Ｂに格納する。この車両内通信制御部用バッファ５Ｂが請求項に記載の第１車両内データ記憶部に相当する。また、車両内通信制御部２３は、車両内データが車両内通信マイコン９２から入力されると、車両内データを受信した旨を表すイベント（車両内データ受信イベントとする）を生成して、タスク管理部１１１に送信する。
【００６３】
車両内データ制御部３３は、より細かい機能ブロックとして、車両内データ受信部３３１及び車両内データ管理部３３２を備える。また、ＲＡＭ５には、車両内データ制御部３３用のバッファ（これを車両内データ用中間バッファとする）５Ｎとして、所定のサイズの記憶領域が割り当てられている。この車両内データ用中間バッファ５Ｎは、車両内データ管理部３３２が仮想的に備えている。車両内データ用中間バッファ５Ｎが請求項に記載の中間車両内データ記憶部に相当する。
【００６４】
車両内データ受信部３３１は、タスク管理部１１１からの指示に基づいて、車両内通信制御部用バッファ５Ｂに格納されている車両内データを、車両内データ用中間バッファ５Ｎに移す。これによって、車両内通信制御部用バッファ５Ｂに格納されていた当該車両内データは削除され、車両内通信制御部用バッファ５Ｂのリソースが解放される。なお、車両内データ受信部３３１は、車両内通信制御部用バッファ５Ｂに格納されている車両内データを、車両内データ用中間バッファ５Ｎに移し終えると、その旨を示すイベントを生成して、タスク管理部１１１に送信する。
【００６５】
車両内データ管理部３３２は、タスク管理部１１１からの指示に基づいて、車両内データ用中間バッファ５Ｎに格納されている車両内データを、アプリ用データ生成部３５が仮想的に備える車両内データ用バッファ５Ｑに纏めて移す。
【００６６】
このとき、車両内データ管理部３３２は、無線機データ管理部３２２と同様に、車両内データ用中間バッファ５Ｎに格納されている車両内データを複製し、その複製したデータを車両内データ用バッファ５Ｑに格納する。そして、この複製したデータの車両内データ用バッファ５Ｑへの保存が完了すると、車両内データ用中間バッファ５Ｎに格納されてある複製元のデータを、他のデータによって上書きされても良い状態にする。
【００６７】
また、ＧＰＳ受信機９３から出力されるＧＰＳデータの流れに沿って、ＧＰＳ制御部２４、ＧＰＳデータ制御部３４について説明する。
【００６８】
ＧＰＳ制御部２４は、ＧＰＳ受信機９３のデバイスドライバであって、ＧＰＳ受信機９３から出力されるＧＰＳデータを受信する。そして、ＧＰＳ制御部２４は、受信したＧＰＳデータを、ＲＡＭ５においてＧＰＳ制御部２４用のバッファとして割り当てられた記憶領域（これをＧＰＳ制御部用バッファとする）５Ｃに格納する。
【００６９】
また、ＧＰＳ制御部２４は、ＧＰＳデータをＧＰＳ受信機９３から受信すると、ＧＰＳデータを受信した旨を表すイベント（ＧＰＳデータ受信イベントとする）を生成して、タスク管理部１１１に送信する。このＧＰＳ制御部２４が請求項に記載の余種別データ提供元制御部に相当し、ＧＰＳデータが請求項に記載の余種別データに相当する。ＧＰＳ制御部用バッファ５Ｃが請求項に記載の第１余種別データ記憶部に相当する。
【００７０】
ＧＰＳデータ制御部３４は、タスク管理部１１１からの指示に基づいて、ＧＰＳ制御部用バッファ５Ｃに格納されているＧＰＳデータを、アプリ用データ生成部３５が仮想的に備えるＧＰＳデータ用バッファ５Ｒに移す。これによって、ＧＰＳ制御部用バッファ５Ｃに格納されていた当該ＧＰＳデータは削除され、ＧＰＳ制御部用バッファ５Ｃのリソースが解放される。このＧＰＳデータ制御部３４が請求項に記載の余種別データ制御部に相当する。
【００７１】
アプリ用データ生成部３５は、自身が仮想的に備えるバッファ５Ｐ〜Ｒに格納されている複数種別のデータに基づいて、所定の周期（データ生成周期とする）で、アプリケーション４１〜４３が必要とするデータ、すなわちアプリ用データを生成する。生成されたアプリ用データは各アプリケーション４１〜４３へ渡される。アプリ用データが請求項に記載の制御処理用データに相当し、アプリ用データ生成部３５が請求項に記載の制御処理用データ生成部に相当する。
【００７２】
データ生成周期は、アプリケーション層４０に備えられるアプリケーションによって異なるが、ここでは一例として１００ｍｓとする。アプリ用データ生成部３５は、データ生成周期でアプリ用データを生成できるように、アプリ用データを生成することを要求するイベント（アプリ用データ生成イベントとする）を生成してタスク管理部１１１に出力する。そして、タスク管理部１１１からの指示に基づいて、アプリ用データの生成を実施する。
【００７３】
なお、このアプリ用データを生成するタスク（アプリ用データ生成タスクとする）も含めて種々のタスクは、後述するように、各タスクに設定される優先度に基づいて順次実行される。このため、優先度が相対的に高い他のタスクが存在する場合には、アプリ用データを生成するタスクは、完全なデータ生成周期で実施されるとは限らない。
【００７４】
アプリ用データは、例えば、先行車両と自車両との車間距離を示すデータや、自車位置を緯度及び経度を示す自車位置データなどである。例えば、自車位置データは、ＧＰＳデータ、走行速度を積分して算出される移動距離、角加速度を積分して得られる進行方向などを組み合わせて算出される位置を示す。なお、自車位置データに関しては、自律航法演算の精度を確保するために、他のアプリ用データのデータ生成周期よりも短い周期で生成されてもよい。
【００７５】
ここで、図４を用いてＲＡＭ５内に設けられる各バッファについて述べる。図４はＲＡＭ５によって実現される記憶領域を表した概念図であって、そのメモリアドレスは０番地からＮ番地（Ｎは整数）までとする。上述したようにＲＡＭ５は、種々のバッファ５Ａ〜Ｃ、５Ｍ〜Ｃ、５Ｐ〜Ｃを備えており、各バッファを示す記憶領域において、縦方向の長さが、そのバッファの記憶容量（すなわちサイズ）を概念的に表している。すなわち、縦方向に長いほど、サイズが大きいことを示す。
【００７６】
なお、図４においては、各バッファを記憶領域上において連続して配置しているが、このように連続した配置となっていなくてもよい。例えば、各バッファの間に他の用途に用いられる演算領域が設けられていても良い。また、各バッファを配置する順番も図４に示す順番に限らない。
【００７７】
すなわち、記憶領域上において各バッファはそれぞれ異なる領域に配置されていればよく、それらの場所（アドレス）や順番は任意である。また、ここでは、アプリ用データ生成部３５が仮想的に備える無線機データ用バッファ５Ｐ、車両内データ用バッファ５Ｑ、ＧＰＳデータ用バッファ５Ｒを独立したバッファとしているが、これら一部又は全部を纏めたバッファを備える構成としてもよい。
【００７８】
一般的に、デバイスドライバ用に確保されるバッファのサイズは、ミドルウェア層３０やアプリケーション層４０など、ソフトウェアシステムにおいて、より上層に位置するプログラム用に確保されるバッファよりも小さい。図４に示すように本実施形態においても、無線機制御部用バッファ５Ａ、車両内通信制御部用バッファ５Ｂ、ＧＰＳ制御部用バッファ５Ｃのサイズは、アプリ用データ生成部３５用に確保される各バッファ５Ｐ〜Ｃよりも小さいものとする。
【００７９】
無線機データ用中間バッファ５Ｍのサイズは、無線機９１から主制御部１に入力される単位時間当りのデータ量と、データ生成周期と、に基づいて設定される。本実施形態では、一例として、上述したデータ生成周期の２周期分（すなわち２００ｍｓ）の間に無線機９１から主制御部１に入力されるデータ量の最大値とする。
【００８０】
もちろん、無線機データ用中間バッファ５Ｍのサイズは、これに限らず、データ生成周期１回分の間に無線機９１から主制御部１に入力されるデータ量以上となっていればよい。なお、無線機９１から主制御部１に入力される単位時間当りのデータ量は、本実施形態では、その想定される最大値を用いるが、他の態様として、種々の試験などによって定まる平均値などであってもよい。
【００８１】
車両内データ用中間バッファ５Ｎは、車両内通信マイコン９２から主制御部１に入力される単位時間当りのデータ量に基づいて設定される。本実施形態では、一例として、上述したデータ生成周期の２周期分（すなわち２００ｍｓ）の間に車両内通信マイコン９２から主制御部１に入力されるデータ量の最大値とする。すなわち、車両内通信マイコン９２と主制御部１との間の通信速度の最大通信速度にデータ生成周期の２周期分の時間を乗算した値とする。もちろん、車両内データ用中間バッファ５Ｎのサイズも、無線機データ用中間バッファ５Ｍと同様に、他のサイズとしてもよい。
【００８２】
無線機データ用バッファ５Ｐのサイズは、無線機データ用中間バッファ５Ｍのサイズ以上となっていればよく、また、車両内データ用のバッファ５Ｑのサイズは、車両内データ用バッファ５Ｑのサイズ以上となっていればよい。また、ＧＰＳデータ用バッファ５Ｒのサイズは、ＧＰＳ制御部用バッファ５Ｃのサイズ以上となっていればよい。
【００８３】
次に、ミドルウェア層３０が備える各部３１〜３５が実行するタスクに設定されている優先度について、図５を用いて説明する。図５は、実行部の欄に記載されている機能部が実行するタスクの優先度を示しており、優先度の欄の数字が小さいほど、すなわち表においてより上部に配置されているほど、優先度が高いことを表す。なお、これらのタスクは、タスク管理部１１１によって生成される。タスク管理部１１１は、主制御部１が備える各部からイベントを受信すると、そのイベントに応じたタスクを生成する。このタスク管理部１１１が実施するタスク生成時の処理については、図６を用いて後述する。
【００８４】
最も優先度が高く設定されているミドルウェアシステム制御タスクは、主制御部１全体の動作を制御するタスクであって、ミドルウェアシステム制御部３１によって実行される。ミドルウェアシステム制御タスクでは、例えば、各部３２〜３５が実行中又は実行待機中のタスクを終了及び破棄させ、主制御部１の電源を安全に遮断できる状態にする。
【００８５】
例えば、タスク管理部１１１は、システム管理部２１からシステムを終了させる旨のイベントを受信した場合に、ミドルウェアシステム制御タスクを生成し、当該タスクをミドルウェアシステム制御部３１に実行させる。
【００８６】
ミドルウェアシステム制御部３１は、ミドルウェア層３０及びアプリケーション層４０が備える各部３２〜３５、４１〜４３に、終了通知を送信する。各部は、終了通知を受信すると実行中又は実行待機中のタスクを終了又は破棄する。そして、実行中及び実行待機中のタスクがいずれも無くなると、ミドルウェアシステム制御部３１は、ミドルウェアシステム制御タスクが完了した旨のイベントをタスク管理部１１１に送信する。このようにして、主制御部１の電源を安全に遮断できる状態になると、システム管理部２１が電源を遮断させる。
【００８７】
なお、ミドルウェアシステム制御タスクは、基本的に主制御部１の動作を開始する時と終了する時以外は実行されない為、主制御部１の動作中においては、基本的に以降で述べるタスクのみが実行される。すなわち、優先度が２番目のタスクが実質的に最優先されるタスクとなる。
【００８８】
優先度が２番目に高い無線機データ受信タスクでは、無線機データ受信部３２１が、無線機制御部用バッファ５Ａに格納されている無線機データを、無線機データ管理部３２２が仮想的に備える無線機データ用中間バッファ５Ｍに移す。優先度が３番目に高い車両内データ受信タスクでは、車両内データ受信部３３１が、車両内通信制御部用バッファ５Ｂに格納されている車両内データを、車両内データ管理部３３２が仮想的に備える車両内データ用中間バッファ５Ｎに移す。
【００８９】
優先度が４番目である車両内データ管理タスクでは、車両内データ管理部３３２が、車両内データ用中間バッファ５Ｎに格納されている車両内データを車両内データ用バッファ５Ｑに移す。優先度が５番目であるＧＰＳデータ管理タスクでは、ＧＰＳデータ制御部３４が、ＧＰＳ制御部用バッファ５Ｃに格納されているＧＰＳデータを、ＧＰＳデータ用バッファ５Ｒに移す。
【００９０】
優先度が６番目である無線機データ管理タスクでは、無線機データ管理部３２２が、無線機データ用中間バッファ５Ｍに格納されている無線機データを、無線機データ用バッファ５Ｐに移す。優先度が７番目であるアプリ用データ生成タスクでは、アプリ用データ生成部３５が、バッファ５Ｐ〜５Ｒに格納されている無線機データ、車両内データ、ＧＰＳデータに基づいて、アプリ用データを生成して、アプリケーション４１〜４３に提供する。
【００９１】
次に、図６に示すフローチャートを用いて、タスク管理部１１１が実施するタスク生成処理の流れについて説明する。このフローチャートは、タスク管理部１１１がイベントを受信した時に開始される。
【００９２】
まず、ステップＳ１０１では、受信したイベントに応じたタスクを生成してステップＳ１０３に移る。このステップＳ１０１では、例えば、無線機制御部２２から無線機データ受信イベントを受信した場合には、無線機データ受信タスクを生成する。車両内通信制御部２３から車両内データ受信イベントを受信した場合には、車両内データ受信タスクを生成する。ＧＰＳ制御部２４からＧＰＳデータ受信イベントを受信した場合には、ＧＰＳデータ管理タスクを生成する。
【００９３】
また、無線機データ受信タスクが完了したことを示すイベントを受信した場合には、無線機データ管理タスクを生成する。車両内データ受信タスクが完了したことを示すイベントを受信した場合には、車両内データ管理タスクを生成する。さらに、アプリ用データ生成イベントを受信した場合には、アプリ用データ生成タスクを生成する。
【００９４】
ステップＳ１０３では、ステップＳ１０１で生成したタスク（新規タスクとする）の優先度と、現在実行中のタスクの優先度とを比較し、新規タスクのほうが、実行中タスクよりも優先度が高い場合には、ステップＳ１０３がＹＥＳとなってステップＳ１０５に移る。一方、新規タスクの優先度が、実行中タスクの優先度以下である場合には、ステップＳ１０３がＮＯとなってステップＳ１０７に移る。
【００９５】
このように本実施形態におけるタスク管理部１１１は、優先度方式とＦＣＦＳ（Ｆｉｒｓｔ  Ｃｏｍｅ  Ｆｉｒｓｔ  Ｓｅｒｖｉｃｅ）方式を併用して、実行させるタスクを選択するものとする。すなわち、優先度の高いものから順次実行させるとともに、優先度が等しいタスクが複数ある場合には、より先に実行可能状態となったタスクから実行させる。なお、現在実行中のタスクが無い場合にもステップＳ１０３はＹＥＳと判定する。
【００９６】
ステップＳ１０５では、実行中タスクを中断させ、新規タスクを実行状態とする（いわゆるディスパッチを実施する）。中断されたタスクは、実行可能状態とし、後で中断したところから当該タスクを再開できるように必要なデータは残しておく。ステップＳ１０７では、新規タスクを実行可能状態に設定する。
【００９７】
そして、実行中タスクが終了すると、実行可能状態となっているタスクの中で最も優先度が高いタスクを実行させる。このとき、ステップＳ１０３で中断されていたタスクがある場合でも、その中断されているタスクよりも優先度が高いタスクが実行可能状態となっている場合には、その優先度が高いほうのタスクが実行される。
【００９８】
（実施形態のまとめ）
以上のような構成では、無線機制御部用バッファ５Ａに格納されている無線機データは、無線機データ受信部３２１によって無線機データ用中間バッファ５Ｍに移される。また、車両内通信制御部用バッファ５Ｂに格納されている車両内データは、車両内データ受信部３３１によって車両内データ用中間バッファ５Ｎに移される。
【００９９】
このとき、無線機データ受信タスクは、車両内データ受信タスクや、ＧＰＳデータ管理タスクなどの、種々のデータを移す他の処理よりも優先的に行われる。すなわち、無線機制御部２２が受信した無線機データは、無線機制御部用バッファ５Ａに格納され次第、逐次無線機データ用中間バッファ５Ｍに移される。
【０１００】
したがって、無線機制御部用バッファ５Ａが無線機データで一杯になる可能性を抑制することができる。すなわち、無線機制御部用バッファ５Ａが一杯になることに起因する無線機データの取りこぼしが生じる可能性を低減することができる。
【０１０１】
また、種々のデータを移す処理の中では、車両内データ受信タスクを、無線機データ受信タスクの次に優先して実施する。より具体的には、車両内データ受信タスクを、ＧＰＳデータ管理タスクや車両内データ管理タスクよりも優先して実施する。
【０１０２】
したがって、無線機制御部２２が無線機データを受信していない場合には、車両内通信制御部２３が受信して車両内通信制御部用バッファ５Ｂに格納された車両内データは、逐次、車両内データ用中間バッファ５Ｎに移されていく。このため、車両内通信制御部用バッファ５Ｂも一杯になりにくいため、車両内通信制御部用バッファ５Ｂが一杯になっていることによって車両内データを破棄する事象を抑制することが出来る。
【０１０３】
また、無線機データ管理タスクの優先度を、無線機データ受信タスクよりも低く設定しているため、無線機データ管理タスクが実行される頻度は、相対的に少なくなる。したがって、無線機データ用中間バッファ５Ｍには、無線機データが溜まる傾向が生じる。しかし、無線機データ用中間バッファ５Ｍのサイズは、データ生成周期において無線機制御部２２に入力されるデータ量に基づいたサイズとなっている。したがって、無線機データ用中間バッファ５Ｍが一杯になる可能性は低く、無線機データ用中間バッファ５Ｍが一杯になることによって無線機データを取りこぼす恐れも低減することが出来る。
【０１０４】
同様に、車両内データ管理タスクの優先度を、車両内データ受信タスクよりも低く設定しているが、車両内データ用中間バッファ５Ｎのサイズは、データ生成周期において車両内通信制御部２３に入力されるデータ量に基づいたサイズとなっている。したがって、車両内データ用中間バッファ５Ｎが一杯になることによって車両内データを取りこぼす恐れも低減することが出来る。
【０１０５】
すなわち、以上のような構成によれば、ＧＰＳデータなどに比べて、単位時間当りの受信データ量が大きい無線機データや車両内データのいずれも、各バッファが一杯になってしまうことによって破棄される恐れを低減することができる。すなわち、無線機データ及び車両内データの両方の通信の信頼性を高めることができる。
【０１０６】
なお、各バッファ５Ａ及び５Ｂが一杯となることによって各データを取りこぼしてしまう可能性を低減する他の解決手段として、次の方法も考えられる。すなわち、より大きいサイズの無線機制御部用バッファ５Ａ及び車両内通信制御部用バッファ５Ｂを確保するように、無線機制御部２２及び車両内通信制御部２３の設計を変更する。
【０１０７】
しかしながら、ソフトウェアは、階層化構造、及び、機能毎に部品化した構成をとることで、多様なアプリケーションに対応するとともに、階層単位、又は部品単位での更新を可能にしている。そして、ソフトウェア構成において、より下層に位置するサブシステム層２０が備えるソフトウェアは、多様なアプリケーションに対応できることが好ましい。
【０１０８】
したがって、ソフトウェアの拡張性や更新性などの観点から、サブシステム層２０において備える部品（すなわちデバイスドライバ）を、あるアプリケーションのみに特化させた内容とすることは避けたいという要求が有る。すなわち、デバイスドライバである無線機制御部２２及び車両内通信制御部２３のためのバッファのサイズを変更した構成とすることは避けたい。
【０１０９】
本実施形態では、サブシステム層２０とアプリケーション層４０との中間に位置するミドルウェア層３０が備える各部３２及び３３が、適宜アプリケーションに応じた中間バッファを設ける構成とした。このような構成によれば、サブシステム層２０のレベルにおいてのソフトウェアは変更していないため、ソフトウェアの拡張性や更新性を損なうこと無く、上述した効果を奏することができる。
【０１１０】
なお、以上では、各タスクの優先度は、降順に、無線機データ受信タスク、車両内データ受信タスク、車両内データ管理タスク、ＧＰＳデータ管理タスク、無線機データ管理タスク、アプリ用データ生成タスク、と設定した例を挙げたが、これに限らない。
【０１１１】
他の態様として、それぞれの優先度は、降順に、無線機データ受信タスク、無線機データ管理タスク、車両内データ受信タスク、車両内データ管理タスク、ＧＰＳデータ管理タスク、アプリ用データ生成タスク、と設定してもよい。また、降順に、無線機データ受信タスク、車両内データ受信タスク、無線機データ管理タスク、車両内データ管理タスク、ＧＰＳデータ管理タスク、アプリ用データ生成タスク、と設定してもよい。
【０１１２】
各タスクの優先度は、無線機データ受信タスクのほうが車両内データ受信タスクよりも高く、かつ、無線機データ受信タスクのほうが無線機データ管理タスクよりも高くなっていればよい。ただし、より好ましくは上述したように、無線機データ受信タスクは、車両内データ受信タスクよりも高く、かつ、車両内データ受信タスクは車両内データ管理タスクよりも高くなるように設定する。
【０１１３】
また、本実施形態では、自車両内部の状態を示す車両内データと、自車両周辺の状態を示す無線機データ以外の制御処理に用いるデータとして、ＧＰＳデータを例示したが、その他、ユーザの体調を示すデータなどを用いてもよい。また、ＧＰＳデータは、必須の要素では無い。
【０１１４】
さらに、本実施形態では、主制御部１は、車載機器から出力される車両内データを車両内通信マイコン９２を介して受信する構成としたが、これに限らない。各車載機器から直接主制御部１に車両内データを入力する構成としても良い。車載機器は、主制御部１の外部に限らず、主制御部１の筐体内部に備えられたセンサなどであってもよい。
【符号の説明】
【０１１５】
１００  電子制御システム、１  主制御部（電子制御装置）、２  ＣＰＵ、３  フラッシュメモリ、５  ＲＡＭ、５Ａ  バッファ、５Ｂ  バッファ、５Ｃ  バッファ、５Ｌ  バッファ、５Ｍ  バッファ、５Ｎ  バッファ、５Ｐ  バッファ、５Ｑ  バッファ、５Ｒ  バッファ、１１１  タスク管理部、２２  無線機制御部、２３  車両内通信制御部、２４  ＧＰＳ制御部、３２  無線機データ制御部、３３  車両内データ制御部、３４  ＧＰＳデータ制御部、３５  アプリ用データ生成部、９１  無線機、９２  車両内通信マイコン、９３  ＧＰＳ受信機
【図１】
2015099502.tif 000003
【図２】
2015099502.tif 000004
【図３】
2015099502.tif 000005
【図４】
2015099502.tif 000006
【図５】
2015099502.tif 000007
【図６】
2015099502.tif 000008