説明

車載通信装置

【課題】通信バスを経て送信されるメッセージの送信順序と送信されたメッセージを読み出す読み出し順序との間で順序のズレを防止して、通信効率をよくする。
【解決手段】本発明の車載通信装置1は、メッセージボックス4に格納されたメッセージの状態を管理して、メッセージボックス4に格納されたメッセージの状態に応じて新たに受信したメッセージをメッセージボックス4に書き込む、又はメッセージボックス4に格納された新たなメッセージを読み込むものである。具体的には、直前にメッセージを格納した又は出力した領域が終端領域ならば、先端領域が書き込み又は読み込み領域と指定される。一方、終端領域以外ならば、直前にメッセージを格納した又は出力した領域における直後の領域が、書き込み又は読み込み領域と指定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は車載通信装置に関する。
【背景技術】
【0002】
近年、自動車には多くの安全・快適機能が搭載され、こうした個々の制御を司るECU(Electronic Control Unit)を車載ネットワークで接続して連携動作させている。このような車載ネットワークの代表的なものにCAN(Controller Area Network)があり、シリアル通信ネットワークとして広く採用されている(特許文献1)。このようにシリアル通信において個々のECUと連携して制御する場合には、あるECUにおける制御用アプリケーションは、別のECUからシリアル通信バスを介して制御メッセージ(データ)を受信する必要があり、受信側のECUでは、受信したメッセージをメッセージボックスと呼ばれるバッファに格納し、適宜読み出して所定のアプリケーションでメッセージを使用する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−245794号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般的に、メッセージ(受信データ)がメッセージボックスに格納される場合は、メッセージはメッセージボックスの空き領域の先端領域に格納され、メッセージボックスに格納されたメッセージを読み出す場合は、メッセージボックスの先端領域から終端領域に向けてメッセージを検索し、検索で得られたメッセージから順に読み出す。
【0005】
この場合、メッセージボックスからメッセージを検索し読み出す最中に、新たなメッセージがメッセージボックスに格納されることがある。つまり、既に読み出したメッセージの領域(先端領域)が空き領域となり、その先端領域に新たなメッセージが格納される。その結果、送信側のECUから送信されたメッセージの送信順序と、受信側のEUCでメッセージを読み出す読み出し順序との間で、順序のズレが生じる可能性がある。
【0006】
具体的には、図9に示す状況下で、メッセージの送信順序と読み出し順序との間において順序のズレが生じる。
最初、2つのメッセージ5M、6Mがメッセージボックスの先端領域から順番に格納されたメッセージボックス(状態1A)で、メッセージの読み出しが始まる(状態1B)。メッセージの読み出しが始まると、メッセージボックスの先端領域から終端領域に向けてメッセージを検索し、検索で得られたメッセージから順に読み出す。そのため、メッセージボックスの先端領域に格納されたメッセージ5Mが、最初に読み出される。その結果、メッセージボックスの先端領域が空き領域となり、次にメッセージ6Mが読み出す(状態1C)。
このメッセージ6Mの読み出しの途中で、受信側のECUにおいて割り込み処理が発生してメッセージ6Mの読み出しが遅延している間に新たなメッセージ7M、8Mがメッセージボックスに送信されると、メッセージ7M、8Mはメッセージボックスの空き領域の先端側から順に格納される。つまり、メッセージ6Mの読み出しが割り込み処理により遅延している間に、メッセージ7Mは先端領域に格納され、メッセージ8Mはメッセージ6Mの直後の領域に格納される(状態1D)。そして、割り込み処理が終るとメッセージ6Mの続きが読み出され、メッセージ6Mの読み出しが完了すれば直ぐに次に並んだ領域のメッセージ8Mの読み出しが開始される(状態1E)。メッセージ8Mの読み出しが完了すると次の格納領域は空き領域であるから、未読み出しのメッセージを検索して、先端領域に格納されたメッセージ7Mの読み出しが行われる(状態1F)。
その結果、送信側のECUから送信されたメッセージの送信順序(5M→6M→7M→8M)と、受信側のEUCでメッセージを読み出す受信順序(5M→6M→8M→7M)との間で、順序のズレが生じる。
したがって、メッセージの読み出し順序が送信側の送信順序と異なる結果、ECUでの制御に支障をきたす恐れがある。それ故、メッセージの読み出し順序と送信順序が異なること前提に使用する必要があり、利便性が悪かった。
【0007】
本発明の課題は、通信バスを経て送信されるメッセージの送信順序と送信されたメッセージを読み出す読み出し順序との間で順序のズレを防止して、通信効率のよい車載通信装置を提供することにある。
【課題を解決するための手段及び発明の効果】
【0008】
本発明の車載通信装置は、以下の構成を有する。
受信データであるメッセージを格納するメッセージボックスを有するノードが複数接続された車載通信装置において、
ノードには、メッセージボックスのメッセージ格納領域の中で、先端領域を示す先端領域情報と、終端領域を示す終端領域情報と、メッセージを直前に格納した格納領域を示す格納領域情報と、メッセージを直前に出力した出力領域を示す出力領域情報と、を管理する状態管理手段を備え、
状態管理手段は、
新たにメッセージを書き込む書き込み領域として、格納領域と終端領域が同一の場合には、先端領域を指定し、格納領域と終端領域が同一でない場合には、格納領域の直後の領域を指定するとともに、
新たにメッセージを読み込む読み込み領域として、出力領域と終端領域が同一の場合には、先端領域を指定し、出力領域と終端領域が同一でない場合には、出力領域の直後の領域を指定することを特徴とする。
【0009】
メッセージを直前に格納した格納領域が終端領域でなければ、その格納領域の直後の領域が受信データの書き込み領域として指定される。同様に、メッセージを直前に出力した出力領域が終端領域でなければ、その出力領域の直後の領域が受信データの読み込み領域として指定される。
そのため、格納領域又は出力領域が終端領域でなければ、メッセージボックスの先端領域から終端領域に向かって順序よく受信データの書き込み及び読み込みを指定することができる。
また、メッセージを直前に格納した格納領域又はメッセージを直前に出力した出力領域が終端領域ならば、先端領域が受信データの書き込み又は読み込みと領域として指定される。よって、終端領域に受信データが格納され、又は終端領域から受信データが読み出されても、再度、先端領域を受信データの書き込み領域又は読み込み領域と指定する。そのため、再び、メッセージボックスの先端領域から終端領域に向かって順序よく受信データの書き込み及び読み込みを指定することができる。
したがって、通信バスを経て送信される受信データの送信順序のとおりに、受信データを読み出すことが可能となる。
【0010】
また、本発明の車載通信装置は、状態管理手段には、指定された書き込み領域もしくは読み込み領域に対して、新たにメッセージの書き込みもしくは読み込みが行われる時に、格納領域情報もしくは出力領域情報を、その書き込み領域もしくは読み込み領域に更新する更新手段を有することができる。
【0011】
指定された領域(書き込み領域)にメッセージが書き込まれた時もしくは指定された領域(読み込み領域)からメッセージが読み込まれた時に、メッセージを直前に格納した領域を示す格納領域情報もしくはメッセージを直前に出力した領域を示す出力領域情報を更新する。
つまり、新たにメッセージが書き込まれ又は読み込まれることで、直前にメッセージ格納した領域又は直前にメッセージを出力した領域が変化する。そのため、書き込み領域を示す情報に格納領域情報を、読み込み領域を示す情報に出力領域情報を更新することで、複数のメッセージが送信されても、通信バスを経て送信される送信順序のとおりに、データを読み出すことができる。
【0012】
また、メッセージ格納領域は連続する複数の単位領域で構成され、その単位領域には、先端領域情報と終端領域情報と格納領域情報及び出力領域情報が、有又は否の単位情報として、メッセージと共に収納されていることができる。
【0013】
単位領域毎に、その領域が先端領域、終端領域、格納領域又は出力領域に該当するか否かを判断できる、4つの情報が収納される。よって、格納領域情報又は出力領域情報を参照してメッセージの書き込み又は読み込みをする場合でも、単位領域毎に4つの情報が収納されているので、単位領域毎で情報の検索性が容易となり、メッセージの書き込み及び読み込みの速度が低下することを防止できる。
【0014】
そして、状態管理手段は、読み込み時間帯を定めてメッセージ格納領域に格納されたメッセージの読み込みを指示しており、読み込み時間帯におけるメッセージの読み込み途中に割り込み処理が発生して読み込み処理が遅延している間に、新たなメッセージボックスへの書き込み処理を行うことができる。
【0015】
上述したように従来の車載通信装置では、送信側から新たなたなメッセージが送信されると、受信側ではメッセージボックスの空き領域の先端側から順にメッセージを格納する。よって、メッセージを格納する受信側において、格納されたメッセージの読み込み途中に割り込み処理が発生し、メッセージの読み込み処理が遅延している間に新たなメッセージが送信されると図9に示すようにメッセージの送信順序と読み出し順序が異なる場合がある。
しかし、本発明においては、メッセージは指定された書き込み領域に書き込みをするので、割り込み処理が発生し、メッセージの読み込み処理が遅延している間に新たなメッセージが送信されても、メッセージの送信順序と読み込み順序が乱れることがない。そして、より一層、通信バスを経て送信される受信データの送信順序のとおりに、受信データを読み出すことできる。
【0016】
更に、状態管理手段は、長文のメッセージの書き込みに際して、分割して書き込みを指示しており、分割されたメッセージは格納領域情報と出力領域情報によって、正しい順序で書き込み・読み込みが行われることができる。
【0017】
長文のメッセージをメッセージボックスに書き込む際、分割して書き込みが指示される。
従来の車載通信装置は、メッセージの書き込み・読み込みが正しい順序で行われない可能性を考慮して、メッセージの中に、分割されるメッセージの順序を示すデータを埋め込む必要があった。更に、メッセージが正常に受信されたか否かを確認するために、受信側から送信側に受信確認メッセージを送信する必要もあり、通信が非効率で、ECUの処理負荷も大きかった。
しかし、本発明の車載通信装置は格納領域情報と出力領域情報により、正しい順序でメッセージの書き込み・読み込みができるので、メッセージの順序を示すデータを埋め込む必要が無く、通信及びECUの効率化を図ることができる。
【図面の簡単な説明】
【0018】
【図1】本発明の車載通信装置のブロック図。
【図2】メッセージ格納領域の各単位領域に単位情報が収納された状態を示す図。
【図3】メッセージの書き込み又は読み込みの過程を示すタイムチャート。
【図4】図3のタイムチャートにおけるメッセージボックスの単位情報を示す図。
【図5】実施例の書き込み処理手順を示すフローチャート。
【図6】実施例の読み込み処理手順を示すフローチャート。
【図7】変形例の書き込み処理手順を示すフローチャート。
【図8】変形例の読み込み処理手順を示すフローチャート。
【図9】従来の通信装置のタイムチャートを示す参考図。
【発明を実施するための形態】
【0019】
以下、本発明を実施するための形態を添付の図面を用いて説明する。
図1は本発明の車載通信装置1を示すブロック図である。図1を用い車載通信装置1の概要を説明する。
図1は、シリアル通信を行うプロトコルであるCANを利用して、通信を行うバスに接続されたデバイス(ノード)、つまり、CANノード2のブロック図を示したものである。
CAN通信のデータは、決められたフォーマットのメッセージとして送信側CANノード3から送信される。受信側CANノード2では、メッセージを受信するバッファであるメッセージボックス4に、送信側CANノード3から送信されたメッセージを受信データとして格納し、そして、出力する。
本発明の車載通信装置1は、送信側CANノード3から送信されたメッセージを書き込む及び読み込む順序を課題とするため、CANノード2の説明では、CANノード2はメッセージの受信を主として説明するが、CANノード2はメッセージの受信だけなく、送信も可能なものである。
【0020】
本発明の車載通信装置1は、メッセージボックス4に格納されたメッセージの状態を管理して、メッセージボックス4に格納されたメッセージの状態に応じて新たに受信したメッセージをメッセージボックス4に書き込む、又はメッセージボックス4に格納された新たなメッセージを読み込むものである。
メッセージの書き込み又は読み込みは、直前にメッセージを格納した又は出力したメッセージボックス4の領域が終端領域であるか否かに応じ、書き込み又は読み込み領域が指定される。
具体的には、直前にメッセージを格納した又は出力した領域が終端領域ならば、先端領域が書き込み又は読み込み領域と指定される。一方、終端領域以外ならば、直前にメッセージを格納した又は出力した領域における直後の領域が、書き込み又は読み込み領域と指定される。
【0021】
メッセージを送受信するCANノード2は、具体的には、制御ECU2aである。制御ECU2aがメッセージボックスの状態を管理して、メッセージボックス4の適切な領域にメッセージを書き込み、又は、適切な領域からのメッセージの読み込みを行う。
【0022】
この制御ECU2aは、通常のマイクロプロセッサと同様の構造を有する。
各種演算や情報処理を司るCPU5、CPU5の作業領域としての一時記憶部であるRAM6、各種情報を記憶するROM7、及び図1には図示されていないが不揮発性のメモリを備える。
ROM7には、車両利用者による車両各部の操作に係る機能を実現する各アプリケーションが記憶される。当該アプリケーションは、RAM6の各アプリケーションに対応したワークエリア上でCPU5により実行される。
そして、制御ECU2aは、通信バス8を介して他の複数のECUと接続され、他のECUが送信するメッセージや、必要に応じて外部からの入力信号等を参照し、各アプリケーションを実行し、制御対象機器の動作制御を司る。
【0023】
制御ECU2aは、具体的には、図1に示すように、送信側ECU3aが送信するメッセージを格納するメッセージボックス4と、メッセージボックス4の状態を管理する状態管理手段9とを有する。制御ECU2aは、状態管理手段9を用いて、自身の制御処理に関するメッセージをメッセージボックス4の適切な領域に書き込み又は適切な領域から読み込み、所定の制御処理を実行する。
【0024】
メッセージボックス4は、送信側ECU3aからシリアル通信バス8を経て送信されるメッセージ(受信データ)を格納するバッファである。送信されるメッセージを格納するため、メッセージボックス4はメッセージ格納領域4aを有する。メッセージ格納領域4aは、連続する複数の単位領域4bで構成され、その単位領域4bには、メッセージと共に単位情報が収納される。単位情報とは、ある情報が存在するか否か(有又は否)を示す情報である。具体的には、所定の単位領域4bにおいて、先端領域情報、終端領域情報、格納領域情報、又は出力領域情報が存在するか否かの有無を示すものである。
ここで、先端領域情報とは、メッセージボックス4のメッセージ格納領域4aの中で先端領域を示す情報である。終端領域情報とは、メッセージボックス4のメッセージ格納領域4aの中で終端領域を示す情報である。格納領域情報とは、メッセージボックス4のメッセージ格納領域4aの中で、メッセージを直前に格納した格納領域を示す情報である。出力領域情報とは、メッセージボックス4のメッセージ格納領域4aの中で、メッセージを直前に出力した出力領域を示す情報である。
なお、「メッセージを直前に格納した格納領域」とは、ある時点を基準に最新のメッセージが格納されたメッセージボックス4の領域を意味する。また、「メッセージを直前に出力した領域」とは、ある時点を基準にメッセージボックス4から出力された最新のメッセージが格納されていた領域を意味する。
【0025】
図2は、これらの先端領域情報、終端領域情報、格納領域情報又は出力領域情報がメッセージ格納領域4aの連続する単位領域4bに存在するか否かを示す図である。具体的には、連続する4つの単位領域4bを有するメッセージ格納領域4aにおいて、単位領域毎に、その領域が先端領域、終端領域、格納領域、出力領域に該当するか否かを示した図である。図中で「1」を格納する箇所は、所定の情報が有ること(有)を示し、「0」を格納する箇所は、所定の情報がないこと(否)を示す。なお、図2は、4つの単位領域4bからメッセージ格納領域4aが構成されるが、メッセージ格納領域4aは、各ECUの仕様に合わせて任意の数の単位領域を採用できる。
【0026】
単位領域4bに単位情報と共に収納されるメッセージは、状態管理手段9により管理される。状態管理手段9は、先端領域情報、終端領域情報、格納領域情報及び出力領域情報を管理することで、メッセージを書き込み又は読み込みに関連する処理を行う。具体的には、状態管理手段9は、メッセージボックス4に新たにメッセージを書き込む書き込み領域と新たにメッセージを読み込む読み込み領域を指定する。より具体的には、メッセージを直前に格納した格納領域と終端領域が同一の場合には、先端領域を書き込み領域として指定し、格納領域と終端領域が同一でない場合には、格納領域の直後の領域を書き込み領域として指定する。また、メッセージを直前に出力した出力領域と終端領域が同一の場合には、先端領域を読み込み領域として指定し、出力領域と終端領域が同一でない場合には、出力領域の直後の領域を読み込み領域として指定する。そして、状態管理手段9は、指定した書き込み領域にメッセージを書き込む、書き込む指示、又は指定した読み込み領域からメッセージを読み込む、読み込み指示を行う。
【0027】
状態管理手段9が行うメッセージの読み込み指示は、メッセージの読み込みを行う読み込み時間帯を定めて指示する。一方、メッセージの書き込み指示は、メッセージが送信される毎に随時行う随時書き込み指示である。
また、読み込み指示によるメッセージの読み込み処理は、処理が遅延する場合がある。具体的には、読み込み時間帯におけるメッセージの読み込みの途中において、受信側の制御ECU2aで割り込み処理が発生すると処理が遅延する。そのため、割り込み処理により読み込み処理が遅延している間に、新たなメッセージが送信されると、随時書き込み処理により新たなメッセージがメッセージボックスへ書き込まれる。
なお、メッセージには長文のメッセージもある。メッセージボックスの1つの単位領域4bではメッセージ全体が収納しきれない長文のメッセージについては、状態管理手段9は、メッセージの書き込みに際し、分割して書き込むことを指示する。そして、分割して書き込まれたメッセージは、それぞれ、読み込み処理により読み込まれる。
【0028】
また、状態管理手段9は図1に示す更新手段10を有することで、メッセージを書き込む書き込み領域及びメッセージを読み込む読み込み領域を更新する。詳細には、更新手段10は、状態管理手段9により指定された書き込み領域もしくは読み込み領域に対し、新たにメッセージの書き込みもしくは読み込みが行われる時に、格納領域情報もしくは出力領域情報を、その書き込み領域もしくは読み込み領域に更新する。
つまり、「メッセージを直前に格納した格納領域」=「終端領域」の場合は、先端領域を示す情報に格納領域情報を更新し、「メッセージを直前に格納した格納領域」≠「終端領域」の場合は、メッセージを直前に格納した領域の直後の領域を示す情報に格納領域情報を更新する。また、「メッセージを直前に出力した出力領域」=「終端領域」の場合は、先端領域を示す情報に出力領域情報を更新し、「メッセージを直前に出力した出力領域」≠「終端領域」の場合は、メッセージを直前に出力した領域の直後の領域を示す情報に出力領域情報を更新する。
【0029】
一方、送信側の制御ECU3aから送信されるメッセージの中には、別の制御ECUに向けて送信されるメッセージもあり、受信側の制御ECU2aは、自身に必要なメッセージのみを抽出する必要がある。そのため、状態管理手段9は、自身に必要なメッセージだけを抽出するフィルタ機能又はマスク機能を有する。フィルタ機能は、フィルタとして設定されている値(フィルタ値11)とメッセージに含まれるID値が完全に一致するメッセージのみを抽出してメッセージボックス4に格納する機能である。マスク機能は、メッセージに含まれるID値の一部のビットをマスキング(マスクしたビットに対応する値は何でもよいとする)し、マスキングされた以外のID値とフィルタとして設定されている値(フィルタ値11)が一致するメッセージのみを抽出してメッセージボックス4に格納する機能である。
図1における状態管理手段9は、メッセージボックス4の全体に対して、フィルタ値11が設定される。そのため、送信されたメッセージのID値が、フィルタ値11と一致又は一部と一致したメッセージのみが、メッセージボックス4に格納され、出力される。
【0030】
以上の構成により、送信側の制御ECU3aから送信されるメッセージの送信順序と送信されたメッセージの読み出す読み出し順序との間で順序の乱れを防止する制御を実行する。その処理手順の概念的なタイムチャートが図3に示される。
【0031】
図3を用いてメッセージの送信順序と読み出し順序との間の乱れを防止する処理を説明する。
最初に、送信側の制御ECU3aから通信バス8を介してメッセージ0M、1Mが制御ECU2aに送信され、メッセージボックス4に格納される。
メッセージボックス4のメッセージ格納領域4aにメッセージが格納されていない場合、メッセージはメッセージボックス4の先端領域(0)に格納される。よって、メッセージ0Mは先端領域(0)に格納される。
このとき、最初の状態ではメッセージボックス4には何もメッセージが格納されておらず、格納領域情報に関する単位情報は全ての単位領域4bで全部「0」(否)であるから、メッセージボックス4の先端領域(0)にメッセージ0Mが格納され、次にメッセージ1Mは先にメッセージ0Mが格納された領域の次の領域(1)に格納され、格納した領域(1)の格納領域の単位情報を「1」(有)とする(状態0)。
【0032】
メッセージ0Mが格納されるまでは、メッセージボックス4には何もメッセージが格納されていないため、全ての単位領域4bにおいて出力領域情報に関する単位情報も全部「0」である。そのため、書き込まれたメッセージの読み込み時間帯になると、出力領域情報に関する単位情報も全部「0」であるから、最初の読み込みが行われる。つまり、メッセージボックスの先端領域(0)のメッセージ0Mの読み込みが行われる(状態1)。
【0033】
このメッセージ0Mの読み込みが終ると、格納されていたメッセージ0Mをクリアする(状態2)。そして、次の領域(1)に格納されたメッセージ1Mの読み込みが開始される。
このメッセージ1Mの読み込みの途中に受信側の制御ECU2aで割り込み処理が発生してメッセージ1Mの読み込み処理が遅延する。そして、メッセージ1Mの読み込み処理が遅延している間に、新たなメッセージ2M、3Mが、送信側の制御ECU3aから通信バス8を介して受信側の制御ECU2aに送信され、随時時書き込み処理によりメッセージ2M、3Mの書き込みがされる。
送信されたメッセージ2Mは、格納領域の単位情報「1」となっている次の領域(2)に格納されており(状態2−1)、次のメッセージ3Mは、先にメッセージ2Mが格納された領域(2)の次の領域(3)に格納され、格納した領域(3)の格納領域の単位情報だけが「1」となり(状態2−2)、次の書き込み領域として先端領域(0)が指定される。
割り込み処理が終ると、再びメッセージ1Mの読み込みが行われ、メッセージ1Mの読み込みが終ると、格納されていたメッセージ1Mをクリアする(状態3)。そして、次の領域(2)に新しく格納されたメッセージ2Mの読み込みが開始される。
メッセージ2Mの読み込みが終了すると(状態4)、最後に格納されたメッセージ3Mが読み込まれ、格納されたメッセージ3Mをクリアすると、次の読み込み領域として先端領域(0)が指定される。そして、この領域(0)のメッセージボックス4にはメッセージが書き込まれていないから、メッセージの読み込み処理を終了する。そのため、領域(3)の格納領域及び出力領域に関する単位情報のみが「1」となる(他の領域の格納領域及び出力領域に関する単位情報は「0」である)。
【0034】
以上のとおり、メッセージボックス4の先端領域から終端領域に向けてメッセージが書き込まれ又メッセージボックス4の先端領域から終端領域に向けてメッセージが読み込まれる。そして、メッセージが終端領域まで書き込まれた場合には、再度、先端領域からメッセージが書き込まれる。同様に、メッセージが先端領域から終端領域まで読み込まれた場合には、再度、先端領域からメッセージが読み込まれる。
したがって、送信側の制御ECU3aから送信されたメッセージの送信順序と同様の順序で受信側の制御ECU2aは、メッセージを読み込むことができる。
【0035】
図4は、図3のタイムチャートにおける(状態0)ないし(状態4)におけるメッセージボックス4の単位情報4bを示す図である。
各状態において、メッセージボックス4の単位領域4bが「先端領域」、「終端領域」、「格納領域」、「出力領域」に該当する場合は「1」、メッセージボックス4の単位領域4bがそれぞれの領域に該当しない場合は「0」としている。
具体的には、(状態1)では、先端識別情報は、領域(0)が「1」となり、領域(1)から領域(3)は「0」である。終端識別情報は、領域(0)から領域(2)が「0」となり、領域(3)が「1」である。先端識別情報及び終端識別情報は、メッセージボックス4の先端領域及び終端領域を示すものであるため、他の状態でも先端識別情報及び終端識別情報に関する単位情報は同じとなる。
また、(状態1)では、格納領域情報は領域(0)、領域(2)及び領域(3)が「0」となり、領域(1)が「1」となる。また、出力領域情報は、領域(0)が「1」となり、領域(1)から領域(3)が「0」となる。
【0036】
(状態1)の格納領域情報は、新たにメッセージがメッセージボックス4に書き込まれるに従って、格納領域情報であることを示す「1」が、メッセージボックス4の終端領域に向けて移動するように、更新される。また、出力領域情報であることを示す「1」も、新たにメッセージがメッセージボックス4から読み込まれるに従って、同様にメッセージボックス4の終端領域に向けて移動するように、更新される。
【0037】
より詳細には、車載通信装置1の制御処理手順を示す、図5のフローチャートに開示される。図5のフローチャートは、具体的には、メッセージを直前に格納した格納領域を示す格納領域情報が更新される処理手順を示したものである。つまり、新たなメッセージが書き込まれる毎に、格納領域情報は、該格納領域情報が示す領域の直ぐ次に並んだ領域を示す情報に更新される処理手順を示したものである。ただし、当該格納領域情報が示す領域が終端領域である場合は、格納領域情報は先端領域を示す情報に更新される。
【0038】
以下のS1ないしS10の処理により、送信側の制御ECU3aから送信されるメッセージをメッセージボックス4に所定の順序で書き込みを行う。
前提として、メッセージボックス4のメッセージ格納領域4aは、領域(0)を先端領域とし、領域(3)を終端領域とする連続する領域(0)、(1)、(2)及び(3)の単位領域4bを有するとして、以下、説明をする。以下の説明で、領域(N)とは、メッセージ格納領域4aにおける任意の単位領域4bを示し、Nは0ないし3の数を示す。メッセージボックス4は予めメッセージが格納されておらず、単位領域4bにおける格納領域情報に関する単位情報は全部「0」(否)であるから、先端領域の領域(0)からメッセージを書き込むとして以下、説明する。なお、メッセージボックス4のメッセージ格納領域4aは、これに限られることなく、制御ECUの仕様に合わせて適宜設定することができる。
先ず、S1において、制御ECU2aは、他の制御ECU3aから送信されたメッセージのID値がフィルタ値11と一致(又は一部が一致)するか否かを判定する。メッセージボックス4のフィルタ値11と送信されたメッセージのID値が一致する場合(S1:YES)は、S2に進み、フィルタ値11とメッセージのID値が不一致の場合(S1:NO)は、メッセージをメッセージボックス4に格納しないため、制御を終了する。
【0039】
S2に進むと、制御ECU2aは、メッセージ格納領域4aの領域(N)に、他の制御ECU3aが送信されたメッセージを格納して、S3に進む。具体的には、メッセージ格納領域4aの領域(0)にメッセージを格納してS3に進む。
S3に進むと、メッセージ格納領域4aの領域(N)が終端領域であるか否かを判定する。領域(N)が終端領域(領域(3))である場合(S3:YES)には、S4に進み、領域(N)が終端領域でない場合(S3:NO)には、S9に進む。具体的には、メッセージ格納領域4aの領域(0)は終端領域(3)でないため、S9に進む。
【0040】
S9に進むと、更新手段10は、単位領域4bの領域(N−1)において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの領域(N)において、格納領域情報に関する単位情報を「0」から「1」に更新する。つまり、新たなメッセージが書き込まれる毎に、格納領域情報は、該格納領域情報が示す領域の直ぐ次に並んだ領域を示す情報に更新する。そして、S10に進む。ただし、S2でデータを書き込んだ領域が領域(N=0)の場合には、領域(−1)は存在しないため、更新手段10は、単位領域4bの領域(N)のみを格納領域情報に関する単位情報を「0」から「1」に更新する。具体的には、更新手段10は、単位領域4bの領域(0)において、格納領域情報に関する単位情報を「0」から「1」に更新する。そして、S10に進む。
【0041】
S10に進むと、メッセージ格納領域4aの単位領域4bの位置を示す変数Nをインクリメント(変数NをN+1に設定)して制御を終了する。具体的には、Nを1に設定して制御を終了する。そのため、次に送信側の制御ECU3aから新たなメッセージが送信されると、S1〜S3、S9及びS10の処理を変数N(=1)として行う。つまり、領域(1)にデータの書き込みを行う。そして、変数Nが3になるまで同一の処理を繰り返す。変数Nが3の場合に、S3において、領域(3)が終端領域(3)と同一であるので、S4に進む。
【0042】
S4に進むと、更新手段10は、単位領域4bの領域(N−1)において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの領域(N)において、格納領域情報に関する単位情報を「0」から「1」に更新する。つまり、終端領域に新たなメッセージが書き込まれることで、格納領域情報は、終端領域を示す情報に更新する。具体的には、更新手段10は、単位領域4bの領域(2)において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、更新手段10は、単位領域4bの領域(3)において、格納領域情報に関する単位情報を「0」から「1」に更新する。そして、S5に進む。
【0043】
S5に進むと、送信側の制御ECU3aから新たなメッセージが送信された場合に、制御ECU2aは、送信されたメッセージのID値がフィルタ値11と一致(又は一部が一致)するか否かを判定する。メッセージボックス4のフィルタ値11と送信されたメッセージのID値が一致する場合(S5:YES)は、S6に進み、フィルタ値11とメッセージのID値が不一致の場合(S5:NO)は、S5に戻り、送信側の制御ECU3aから新たな別のメッセージが送信されるのを待ち、別のメッセージのID値が一致するか否かを判定する。
【0044】
S6に進むと、制御ECU2aは、メッセージ格納領域4aの先端領域に他の制御ECU3aが送信されたメッセージを格納して、S7に進む。具体的には、メッセージ格納領域4aの領域(0)にメッセージを格納してS7に進む。
【0045】
S7に進むと、更新手段10は、単位領域4bの終端領域において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの先端領域において、格納領域情報に関する単位情報を「0」から「1」に更新する。つまり、格納領域情報が示す領域が終端領域であるので、格納領域情報を、先端領域を示す情報に更新する。具体的には、終端領域である領域(N=3)において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、先端領域である領域(N=0)において、格納領域情報に関する単位情報を「0」から「1」に更新する。そして、S8に進む。
S8に進むと、メッセージ格納領域4aの単位領域4bの位置を示す変数Nを1に設定して制御を終了する。
【0046】
以上の構成のもとで、送信側の制御ECU3aから送信されるメッセージをメッセージボックス4に所定の順序で書き込みを行う。
一方、図6のフローチャートは、メッセージを直前に出力した出力領域を示す出力領域情報が更新される処理手順を示したものである。つまり、新たなメッセージが読み込まれる毎に、出力領域情報は、該出力領域情報が示す領域の直ぐ次に並んだ領域を示す情報に更新される処理手順を示したものである。ただし、当該出力領域情報が示す領域が終端領域である場合は、出力領域情報は先端領域を示す情報に更新される。
【0047】
具体的には、メッセージボックス4に書き込まれたメッセージは、状態管理手段9により定められた読み込み時間帯になると、読み込みがされる。ここで、書き込み処理が行われるまでは、メッセージボックス4には何もメッセージが格納されていないため、全ての単位領域4bにおいて出力領域情報に関する単位情報も全部「0」である。そのため、書き込まれたメッセージの読み込み時間帯になると、出力領域情報に関する単位情報は全部「0」であるから、最初の読み込みが行われる。つまり、メッセージボックスの先端領域(0)からメッセージが読み込まれる。
そして、メッセージの書き込み処理と同様の処理を行う。詳細には、以下のS11ないしS18の処理により、メッセージボックス4に書き込まれたメッセージを所定の順序で読み込みを行う。
前提として、メッセージボックス4のメッセージ格納領域4aは、領域(0)を先端領域とし、領域(3)を終端領域とする連続する領域(0)、(1)、(2)及び(3)の単位領域4bを有するとして、以下、説明をする。以下の説明で、領域(M)とは、メッセージ格納領域4aにおける任意の単位領域4bを示し、Mは0ないし3の数を示す。
【0048】
先ず、S11において、制御ECU2aは、メッセージボックス4のメッセージ格納領域4aの領域(M)からメッセージを読み込んで、S12に進む。具体的には、領域(0)からメッセージを読み込んで、S12に進む。
S12に進むと、メッセージ格納領域4aの領域(M)が終端領域であるか否かを判定する。領域(M)が終端領域である場合(S12:YES)には、S13に進み、領域(M)が終端領域でない場合(S12:NO)には、S17に進む。具体的には、領域(0)は終端領域(3)でないため、S17に進む。
【0049】
S17に進むと、更新手段10は、単位領域4bの領域(M−1)において、出力領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの領域(M)において、出力領域情報に関する単位情報を「0」から「1」に更新する。つまり、新たなメッセージが読み込まれる毎に、出力領域情報は、該出力領域情報が示す領域の直ぐ次に並んだ領域を示す情報に更新する。そして、S18に進む。ただし、S11でデータを読み込んだ領域が領域(M=0)の場合には、領域(−1)は存在しないため、更新手段は、単位領域4bの領域(M)のみを出力領域情報に関する単位情報を「0」から「1」に更新する。具体的には、更新手段10は、単位領域4bの領域(0)において、出力領域情報に関する単位情報を「0」から「1」に更新する。そして、S18に進む。
【0050】
S18に進むと、メッセージ格納領域4aの単位領域4bの位置を示す変数Nをインクリメント(変数MにM+1を設定)して制御を終了する。具体的には、Mを1に設定して制御を終了する。そのため、メッセージを読み込んだ直ぐ次の領域にメッセージが格納されている場合には、S11及びS12、S17及びS18の処理を繰り返す。そして、変数Mが3の場合に、S12において、領域(3)が終端領域(3)と同一であるので、S13に進む。
【0051】
S13に進むと、更新手段10は、単位領域4bの領域(M−1)において、出力領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの領域(M)において、出力領域情報に関する単位情報を「0」から「1」に更新する。つまり、終端領域から新たなメッセージが読み込まれることで、出力領域情報は、終端領域を示す情報に更新する。具体的には、更新手段10は、単位領域4bの領域(2)において、出力領域情報に関する単位情報を「1」から「0」に更新する。また、更新手段10は、単位領域4bの領域(3)において、出力領域情報に関する単位情報を「0」から「1」に更新する。そして、S14に進む。
【0052】
S14に進むと、メッセージボックス4の先端領域(0)に新たなメッセージが格納されている場合には、制御ECU2aは、メッセージ格納領域4aの先端領域から新たなメッセージを読み込んで、S15に進む。具体的には、メッセージ格納領域4aの領域(0)からメッセージを読み込んで、S14に進む。なお、新たなメッセージが格納されていない場合には、新たなメッセージが格納されるのを待ち、格納された新たなメッセージを読み込んで、S15に進む。
【0053】
S15に進むと、更新手段10は、単位領域4bの終端領域において、出力領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの先端領域において、出力領域情報に関する単位情報を「0」から「1」に更新する。つまり、出力領域情報が示す領域が終端領域であるので、出力領域情報を、先端領域を示す情報に更新する。具体的には、終端領域である領域(M=3)において、出力領域情報に関する単位情報を「1」から「0」に更新する。また、先端領域である領域(M=0)において、出力領域情報に関する単位情報を「0」から「1」に更新する。そして、S16に進む。
S16に進むと、メッセージ格納領域4aの単位領域4bの位置を示す変数Mを1に設定して制御を終了する。
【0054】
以上により、車載通信装置1は、通信バス8を経て送信されるメッセージの送信順序と送信されたメッセージを読み込む順序との間で順序のズレを防止して、通信効率のよい制御処理を実行する。
本実施例では、再度、書き込み又は読み込み処理をする場合には、各単位領域4bにおける格納領域情報又は出力領域情報に関する単位情報の「1」の領域を検索することで、検索された領域の直後の領域が書き込み領域又は読み込み領域となる(ただし、検索された領域が終端領域の場合には、先端領域が書き込み領域又は読み込み領域となる)。
つまり、送信側制御ECU3aからメッセージが送信されることで、再度、書き込み処理がされる場合、又は、読み込み時間帯の終了後、再度、読み込み処理をする場合は、格納領域情報及び出力領域情報に関する単位情報で「1」の領域を検索することで、容易に書き込み領域及び読み込み領域を指定でき、検索性に優れる。
なお、本実施例では、メッセージをメッセージ0Mないし3Mとして説明した。しかし、メッセージが長文であり、メッセージの書き込みに際して、メッセージを0M、1M、2M及び3Mに分割して書き込みを指示した場合においても、同様の処理となる。この場合には、従来のように、メッセージが正常に受信されたか否かを確認するために、受信側から送信側に受信確認メッセージを送信する必要もなく、通信が効率的で、ECUの処理負荷を低下することができる。
【0055】
次に、本発明の車載通信装置1の変形例を説明する。実施例と同様の構成は、実施例と同様の符号を付して、実施例の説明を流用して説明を省略する。図7及び図8は、変形例の処理手順を示すフローチャートであり、図7及び図8を用いて変形例を説明する。
図5に示す実施例の書き込み処理のフローチャートでは、S4、S7及びS9で格納領域情報に関する単位情報を更新するものである。
しかし、変形例の図7では、S4、S7及びS9において、格納領域情報に関する単位情報を更新した後に、メッセージの読み込み処理が終了したか否かを判定するものである。
また、図6に示す実施例の読み込み処理のフローチャートでは、S13、S15及びS17で出力領域情報に関する単位情報を更新するものである。
しかし、変形例の図8では、S13、S15及びS17において、出力領域情報に関する単位情報を更新した後に、メッセージの読み込んだ直後の領域が空き領域であるか否かを判定するものである。
【0056】
次に、変形例において、送信側の制御ECU3aから送信されるメッセージをメッセージボックス4に所定の順序で書き込み処理手順を図7のフローチャートから説明する。図7は、図5の実施例のフローチャートにおけるS4の後にS100、S7の後にS101、S9の後にS102を追加したフローチャートである。よって、S100ないしS102(S5も一部変更あり)以外の処理は、図5におけるフローチャートの処理と同様である。
【0057】
図7におけるS4において、更新手段10は、単位領域4bの領域(N−1)において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの領域(N)において、格納領域情報に関する単位情報を「0」から「1」に更新する。つまり、終端領域に新たなメッセージが書き込まれることで、格納領域情報は、終端領域を示す情報に更新する。そして、S100に進む。
【0058】
S100に進むと、メッセージの読み込み処理が終っているか否かを判定する。読み込み時間帯の終了により、読み込み処理が終了している場合(S100:YES)には、更新手段10は、単位領域4bの領域(N)において、格納領域情報に関する単位情報を「1」から「0」に更新して、制御を終える。読み込み処理が終了していない場合(S100:NO)には、S5に進む。
【0059】
S5に進むと、送信側の制御ECU3aから新たなメッセージが送信された場合に、制御ECU2aは、送信されたメッセージのID値がフィルタ値11と一致(又は一部が一致)するか否かを判定する。メッセージボックス4のフィルタ値11と送信されたメッセージのID値が一致する場合(S5:YES)は、S6に進み、フィルタ値11とメッセージのID値が不一致の場合(S5:NO)は、S100に戻る。
【0060】
また、図7におけるS7において、更新手段10は、単位領域4bの終端領域において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの先端領域において、格納領域情報に関する単位情報を「0」から「1」に更新する。つまり、格納領域情報が示す領域が終端領域であるので、格納領域情報を、先端領域を示す情報に更新する。具体的には、終端領域である領域(N=3)において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、先端領域である領域(N=0)において、格納領域情報に関する単位情報を「0」から「1」に更新する。そして、S101に進む。
【0061】
S101に進むと、メッセージの読み込み処理が終っているか否かを判定する。読み込み時間帯の終了により、読み込み処理が終了している場合(S101:YES)には、更新手段10は、先端領域において、格納領域情報に関する単位情報を「1」から「0」に更新して、制御を終える。読み込み処理が終了していない場合(S101:NO)には、S8に進む。
【0062】
また、図7におけるS9において、更新手段10は、単位領域4bの領域(N−1)において、格納領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの領域(N)において、格納領域情報に関する単位情報を「0」から「1」に更新する。つまり、新たなメッセージが書き込まれる毎に、格納領域情報は、該格納領域情報が示す領域の直ぐ次に並んだ領域を示す情報に更新する。そして、S102に進む。
【0063】
S102に進むと、メッセージの読み込み処理が終っているか否かを判定する。読み込み時間帯の終了により、読み込み処理が終了している場合(S102:YES)には、更新手段10は、単位領域4bの領域(N)において、格納領域情報に関する単位情報を「1」から「0」に更新して、制御を終える。読み込み処理が終了していない場合(S102:NO)には、S10に進む。
【0064】
以上より、読み込み処理が終了した場合には、メッセージ格納領域4aにおける全ての単位領域4bにおいて、格納領域情報に関する単位情報は、全部「0」にクリアされる。そのため、次に、メッセージを格納する場合には、メッセージボックス4の先端領域からメッセージを格納する。
【0065】
同様にメッセージボックス4にから所定の順序でメッセージを読み込み処理手順を図8のフローチャートから説明する。図8は、図6の実施例のフローチャートにおけるS13の後にS200、S15の後にS201、S17の後にS202を追加したフローチャートである。よって、S200ないしS202以外の処理は、図6におけるフローチャートの処理と同様である。
【0066】
図8におけるS13において、更新手段10は、単位領域4bの領域(M−1)において、出力領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの領域(M)において、出力領域情報に関する単位情報を「0」から「1」に更新する。つまり、終端領域から新たなメッセージが読み込まれることで、出力領域情報は、終端領域を示す情報に更新する。そして、S200に進む。
【0067】
S200に進むと、先端領域が空き領域であるか否かを判定する。先端領域が空き領域の場合(S200:YES)には、更新手段10は、終端領域において、出力領域情報に関する単位情報を「1」から「0」に更新して、読み込み時間帯を終了して制御を終える。先端領域が空き領域でない場合(S200:NO)には、S14に進む。
【0068】
また、図8におけるS15において、更新手段10は、単位領域4bの終端領域において、出力領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの先端領域において、出力領域情報に関する単位情報を「0」から「1」に更新する。つまり、出力領域情報が示す領域が終端領域であるので、出力領域情報を、先端領域を示す情報に更新する。そして、S201に進む。
【0069】
S201に進むと、先端領域の直後の領域である領域(1)が空き領域であるか否かを判定する。領域(1)が空き領域の場合(S201:YES)には、更新手段10は、先端領域において、出力領域情報に関する単位情報を「1」から「0」に更新して、読み込み時間帯を終了して制御を終える。領域(1)が空き領域でない場合(S201:NO)には、S16に進む。
【0070】
また、図8におけるS17において、更新手段10は、単位領域4bの領域(M−1)において、出力領域情報に関する単位情報を「1」から「0」に更新する。また、単位領域4bの領域(M)において、出力領域情報に関する単位情報を「0」から「1」に更新する。つまり、新たなメッセージが読み込まれる毎に、出力領域情報は、該出力領域情報が示す領域の直ぐ次に並んだ領域を示す情報に更新する。そして、S202に進む。
【0071】
S202に進むと、領域(M+1)が空き領域であるか否かを判定する。領域(M+1)が空き領域の場合(S202:YES)には、更新手段10は、単位領域4bの領域(M)において、出力領域情報に関する単位情報を「1」から「0」に更新して、読み込み時間帯を終了して制御を終える。領域(M+1)が空き領域でない場合(S202:NO)には、S18に進む。
【0072】
以上により、次に読み込むメッセージがない場合には、メッセージ格納領域4aにおける全ての単位領域4bにおいて、出力領域情報に関する単位情報は、全部「0」にクリアされる。そして、読み込み時間帯が終了することで、読み込み処理が終了する。そのため、次に、読み込み時間帯が開始され、メッセージを出力する場合には、メッセージボックス4の先端領域からメッセージを出力する。
【0073】
したがって、変形例では、最後に格納されたメッセージが読み込まれると、格納領域と出力領域の単位情報が全て「0」にクリアして最初の状態となる。そのため、読み込み処理を終えると、先端領域から再度、書き込み及び読み込みを行う。それ故、読み込み処理後に再度、書き込み及び読み込みをする場合には、書き込み及び読み込み領域を検索することなく、メッセージを書き込み及び読み込みをすることができ、データの格納及び出力速度を向上させることが可能となる。
【0074】
なお、実施例及び変形例は、適宜組み合わせることができ、本発明の通信装置は、CAN通信に限らず、LIN通信やその他の通信装置において適宜使用することができる。
【符号の説明】
【0075】
1 車載通信装置
2 受信側CANノード(受信側制御ECU2a)
3 送信側CANノード(送信側制御ECU3a)
4 メッセージボックス 4a メッセージ格納領域
4b 単位領域 5 CPU
6 RAM 7 ROM
8 通信バス(CANバス) 9 状態管理手段
10 更新手段 11 フィルタ値

【特許請求の範囲】
【請求項1】
受信データであるメッセージを格納するメッセージボックスを有するノードが複数接続された車載通信装置において、
前記ノードには、前記メッセージボックスのメッセージ格納領域の中で、先端領域を示す先端領域情報と、終端領域を示す終端領域情報と、前記メッセージを直前に格納した格納領域を示す格納領域情報と、前記メッセージを直前に出力した出力領域を示す出力領域情報と、を管理する状態管理手段を備え、
前記状態管理手段は、
新たに前記メッセージを書き込む書き込み領域として、前記格納領域と前記終端領域が同一の場合には、前記先端領域を指定し、前記格納領域と前記終端領域が同一でない場合には、前記格納領域の直後の領域を指定するとともに、
新たに前記メッセージを読み込む読み込み領域として、前記出力領域と前記終端領域が同一の場合には、前記先端領域を指定し、前記出力領域と前記終端領域が同一でない場合には、前記出力領域の直後の領域を指定することを特徴とする車載通信装置。
【請求項2】
前記状態管理手段には、指定された前記書き込み領域もしくは前記読み込み領域に対して、新たにメッセージの書き込みもしくは読み込みが行われる時に、前記格納領域情報もしくは前記出力領域情報を、その書き込み領域もしくは読み込み領域に更新する更新手段を有することを特徴とする請求項1に記載の車載通信装置。
【請求項3】
前記メッセージ格納領域は連続する複数の単位領域で構成され、その単位領域には、前記先端領域情報と前記終端領域情報と前記格納領域情報及び前記出力領域情報が、有又は否の単位情報として、前記メッセージと共に収納されていることを特徴とする請求項1又は2に記載の車載通信装置。
【請求項4】
前記状態管理手段は、読み込み時間帯を定めて前記メッセージ格納領域に格納された前記メッセージの読み込みを指示しており、
前記読み込み時間帯における前記メッセージの読み込み途中に割り込み処理が発生して読み込み処理が遅延している間に、新たな前記メッセージボックスへの書き込み処理を行うことを特徴とする請求項1ないし3のいずれか1項に記載の車載通信装置。
【請求項5】
前記状態管理手段は、長文の前記メッセージの書き込みに際して、分割して書き込みを指示しており、分割された前記メッセージは前記格納領域情報と前記出力領域情報によって、正しい順序で書き込み・読み込みが行われることを特徴とする請求項1ないし3のいずれか1項に記載の車載通信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−222441(P2012−222441A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−83584(P2011−83584)
【出願日】平成23年4月5日(2011.4.5)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】