車両用通信装置
【課題】予め設けられているメッセージバッファを用いて通信データ量の増大に対応する
【解決手段】メッセージと、メッセージの種別を示すCANID(以下IDという)とが少なくとも格納される複数のメッセージバッファ(以下MBという)と、MBに格納されたデータを抽出してフレームを構成し送信すると共に、フレームを受信した場合には、フレームから抽出したIDと一致するIDが格納されたMBに、抽出したメッセージを格納するCANコントローラ11を備え、ID毎に予め設定された、データパターン(以下DPという)1でフレームを送信するタイミングに近づくと、DP1のデータとサム値CSUM1を、このタイミングに対応したIDが格納されているMBに格納すると共に、DP2でフレームを送信するタイミングに近づくと、DP2のデータとサム値CSUM2を、このIDが格納されたMBに格納する。
【解決手段】メッセージと、メッセージの種別を示すCANID(以下IDという)とが少なくとも格納される複数のメッセージバッファ(以下MBという)と、MBに格納されたデータを抽出してフレームを構成し送信すると共に、フレームを受信した場合には、フレームから抽出したIDと一致するIDが格納されたMBに、抽出したメッセージを格納するCANコントローラ11を備え、ID毎に予め設定された、データパターン(以下DPという)1でフレームを送信するタイミングに近づくと、DP1のデータとサム値CSUM1を、このタイミングに対応したIDが格納されているMBに格納すると共に、DP2でフレームを送信するタイミングに近づくと、DP2のデータとサム値CSUM2を、このIDが格納されたMBに格納する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッセージバッファを利用してメッセージの送受信を行う車両用通信装置に関する。
【背景技術】
【0002】
車両において制御の高度化やサービスの充実を図るために、電子制御ユニット(ECU)等の車載機器同士を通信バスで相互に接続してローカルエリアネットワーク(いわゆる車内LAN)を構成し、車載機器間で情報を共有することが行われており(例えば、特許文献1を参照)、特に車内LANに多用されている通信プロトコルとして、CSMA/CD方式の一つであるCAN(Controller Area Network )プロトコルが知られている。
【0003】
このCANプロトコルでは、送信メッセージをフレーム化して通信バスへ送信する前には、送信メッセージの種類を表す識別IDコード(以下、CANIDという)が設定されたメッセージバッファに送信メッセージを格納するとともに、通信バスを介してフレームを受信した場合には、フレームから抽出した受信メッセージを、この受信メッセージに付与されているCANIDと同一のCANIDが予め設定されたメッセージバッファに格納するように規定されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−265402号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、制御の高度化等により、車内LAN内の車載機器間でやり取りされる通信データ量が増大している。しかし、車載機器に搭載された通信装置内に設けられているメッセージバッファの数の上限は予め決められている(例えば32個)。このため、通信データ量が増大すると、メッセージバッファを増設しなければならなくなるという問題があった。
【0006】
本発明は、こうした問題に鑑みてなされたものであり、予め設けられているメッセージバッファを用いて通信データ量の増大に対応することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するためになされた請求項1に記載の発明は、メッセージと、メッセージの種別であるメッセージ種別を示すメッセージ識別コードとが少なくとも格納される複数のメッセージバッファと、メッセージバッファに格納されたデータを抽出してフレームを構成し通信バス上に送信するとともに、通信バスを介してフレームを受信した場合には、受信したフレームから抽出したメッセージ識別コードと一致するメッセージ識別コードが格納されているメッセージバッファに、フレームから抽出したメッセージを格納する送受信手段とを備える車両用通信装置であって、第1格納手段が、メッセージ識別コード毎に予め設定された第1タイミングになると、第1タイミングに対応したメッセージ識別コードのメッセージについて予め設定された第1データ種別のデータと、第1データ種別を示す第1データ種別情報とを、第1タイミングに対応したメッセージ識別コードが格納されているメッセージバッファに格納するとともに、第2格納手段が、メッセージ識別コード毎に第1タイミングと異なるように予め設定された第2タイミングになると、第1タイミングに対応したメッセージ識別コードのメッセージについて第1データ種別と異なるように予め設定された第2データ種別のデータと、第2データ種別を示す第2データ種別情報とを、第2タイミングに対応したメッセージ識別コードが格納されているメッセージバッファに格納する。
【0008】
このように構成された車両用通信装置では、まず、第1タイミングになると、第1タイミングに対応したメッセージ識別コードのメッセージについて、第1データ種別のデータと、第1データ種別情報とが、第1タイミングに対応したメッセージ識別コードが格納されているメッセージバッファに格納される。これにより、メッセージバッファに格納されたメッセージ識別コード、第1データ種別のデータ、および第1データ種別情報が含まれるフレームが送信される。さらに、第1タイミングと異なる第2タイミングになると、第2タイミングに対応したメッセージ識別コードのメッセージについて、第1データ種別と異なる第2データ種別のデータと、第2データ種別情報とが、第2タイミングに対応したメッセージ識別コードが格納されているメッセージバッファに格納される。これにより、メッセージバッファに格納されたメッセージ識別コード、第2データ種別のデータ、および第2データ種別情報が含まれるフレームが送信される。つまり、同一のメッセージ識別コードを含みデータ種別の異なるデータを含む2種類のフレームがそれぞれ異なるタイミングで送信される。そして、この2種類のフレームにはそれぞれ、データ種別を示す情報が含まれている。
【0009】
このため、第1タイミングの直後に送信されたフレームを受信した通信装置は、この受信フレームから抽出したメッセージ識別コードと一致するメッセージ識別コードが格納されているメッセージバッファに、フレームから抽出したメッセージ(すなわち、第1データ種別のデータと第1データ種別情報)を格納する一方、第2タイミングの直後に送信されたフレームを受信した通信装置は、この受信フレームから抽出したメッセージ識別コードと一致するメッセージ識別コードが格納されているメッセージバッファに、フレームから抽出したメッセージ(すなわち、第2データ種別のデータと第2データ種別情報)を格納する。
【0010】
したがって、同一のメッセージ識別コードが格納されているメッセージバッファに、データ種別が異なる2種類のデータを時分割で格納することができるとともに、同一のメッセージ識別コードが格納されているメッセージバッファに格納されたデータのデータ種別を第1データ種別情報および第2データ種別情報により認識することができる。
【0011】
これにより、第1データ種別のデータと第2データ種別のデータのそれぞれのデータ量が1つのメッセージバッファに記憶可能なデータ量を超えておらず、且つ、第1データ種別のデータと第2データ種別のデータとの総データ量が、1つのメッセージバッファに記憶可能なデータ量を超えている場合において、第1データ種別のデータを格納するためのメッセージバッファと、第2データ種別のデータを格納するためのメッセージバッファとを別々に設ける必要がなくなり、予め設けられているメッセージバッファを用いて通信データ量の増大に対応することが可能になる。
【0012】
さらに、第1データ種別のデータと第2データ種別のデータの受信を必要とする車両用通信装置(以下、第1,2データ必要通信装置という)と、第1データ種別のデータの受信を必要とするとともに第2データ種別のデータの受信を不要とする車両用通信装置(以下、第2データ不要通信装置という)とが混在する車両用通信システムにおいて、或る車両用通信装置が第2データ種別のデータを含むフレームを送信した場合に、第1,2データ必要通信装置では、受信したフレームに第2データ種別情報が含まれるか否かを判断するための機能が必要である一方、第2データ不要通信装置では、受信したフレームに第2データ種別情報が含まれるか否かを判断するための機能が不要である。そして、車両用通信システムを構成する複数の車両用通信装置のうち、第2データ種別のデータを必要とする車両用通信装置(第1,2データ必要通信装置)のみに、第2データ種別情報が含まれるか否かを判断するための上記機能を追加すればよく、第2データ不要通信装置に対しては何らかの機能を追加することなく、第2データ種別のデータを送受信することが可能な車両用通信システムを構築することが可能となる。
【0013】
また、請求項1に記載の車両用通信装置において、請求項2に記載のように、第1データ種別情報は、第1データ種別のデータについて、予め設定された第1チェックサム算出式に基づいて算出された第1チェックサム値であり、第2データ種別情報は、第2データ種別のデータについて、第1チェックサム算出式と異なるように予め設定された第2チェックサム算出式に基づいて算出された第2チェックサム値であるようにしてもよいし、請求項3に記載のように、第1データ種別情報は、第1データ種別のデータについてのデータ長であり、第2データ種別情報は、第2データ種別のデータについてのデータ長であり、第1データ種別のデータと第2データ種別のデータとで、データ長が異なるようにしてもよい。
【0014】
チェックサム値およびデータ長は、フレームに含まれる情報として、従来、広く利用されているものであり、チェックサム値またはデータ長を含むフレームを送受信するように構成された車両用通信システムにおいて、フレームに新たな情報を追加することなく、第1データ種別のデータと第2データ種別のデータとの識別を可能とすることができる。具体的には、送受信データの誤り検出のためにチェックサムを含むデータを送受信する通信システムでは第1,2データ種別情報としてチェックサム値を利用すればよく、データ長を含むデータを送受信する通信システムでは、第1,2データ種別情報としてデータ長を利用すればよい。
【図面の簡単な説明】
【0015】
【図1】車両用通信システム1とメッセージバッファの構成を示すブロック図である。
【図2】第1実施形態の送信メッセージ格納処理を示すフローチャートである。
【図3】第1実施形態のメッセージバッファMBのデータパターンを示す図である。
【図4】第1実施形態の受信メッセージ格納処理を示すフローチャートである。
【図5】データパターン2が不要な第1実施形態の受信メッセージ格納処理を示すフローチャートである。
【図6】第2実施形態の送信メッセージ格納処理を示すフローチャートである。
【図7】第2実施形態のメッセージバッファMBのデータパターンを示す図である。
【図8】第2実施形態の受信メッセージ格納処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
(第1実施形態)
以下に本発明の第1実施形態を図面とともに説明する。
図1は、本発明が適用された車両用通信システム1の構成を示すブロック図である。
【0017】
車両用通信システム1は、車両に搭載され、図1に示すように、複数の電子制御装置(以下、ECUという)10a,10b,10c,…を、共通の通信バスBSを介して相互に通信可能となるように接続することで構成され、これらECU10a,10b,10c,…のそれぞれがノードとして機能するようにされている。なお、この車両用通信システム1では、通信プロトコルとしてCAN(CAN;Controller Area Network)が採用されている。以下、ECU10a,10b,10c…を特に区別しないでいずれか一つを指す場合は、ECU10と表記する。
【0018】
ECU10a,10b,10c…としては、具体的には、エンジン制御を司るエンジンECU、ブレーキ制御を司るブレーキECU、ステアリング制御を司るステアリングECU、サスペンション制御を司るサスペンションECU、ライトのオン/オフを制御するECU等、種々の電子制御装置を挙げることができる。なお図1では、ECU10を5つ図示しているが、通信システム1を構成するECU10の数がこれに限定されないことは言うまでもない。
【0019】
ECU10は、CANプロトコルに従って他のECUとの通信を制御するCANコントローラ11と、CANコントローラ11と通信バスBSとの間でデータを送受信するためのCANトランシーバ12と、CANコントローラ11を介して他のECUとの間でメッセージを交換することにより、他のECUと連携して各種処理を実行する制御部13とを備えている。
【0020】
CANトランシーバ12は、予め規定された通信バスの電気的条件を満たす信号を確実に送受信するように構成されている。
CANコントローラ11は、ECU間で送受信されるメッセージ等を格納するためのメッセージバッファMBを複数(本実施形態で32個)備えたデータ格納部21と、メッセージバッファMBの格納値に基づいてメッセージをフレーム化し、CANトランシーバ12を介して通信バスBSに送信する送信制御、CANトランシーバ12を介してフレームを受信してメッセージの抽出等を行う受信制御、バス上でフレームが衝突した際のバス権の調停制御等、CANプロトコルに従った通信制御を実行するプロトコルコア部22と、プロトコルコア部22の送信制御および受信制御時に、データ格納部21へのアクセスを制御するアクセス制御部23とを備えている。
【0021】
なお、データ格納部21に設けられたメッセージバッファMBのそれぞれには、メッセージバッファを識別するためのボックス番号(本実施形態では0〜31の整数値)が付与されている。
【0022】
また各メッセージバッファMBには、メッセージの種類および優先度を表す識別コード(以下、CANIDという)を格納するためのCANIDレジスタR1、メッセージのデータ長を示すDLC(Data Length Code)を格納するためのDLCレジスタR2、フレームに載せて送信するメッセージまたは受信フレームから抽出したメッセージを格納するためのメッセージレジスタR3が設けられている。なお、メッセージレジスタR3には1バイトのデータ記憶領域が8個設けられており、メッセージレジスタR3は最大8バイトのデータを記憶することができる。そして、1バイトのデータ記憶領域のそれぞれには、記憶領域を識別するためデータ番号(本実施形態では1〜8の整数値)が付与されている。以下、付与されたデータ番号がnであるデータ記憶領域を第nデータ記憶領域(nは1〜8の整数値)というとともに、付与されたデータ番号が1,2,3,4,5,6,7,8であるデータ記憶領域に格納されているデータをそれぞれ、data1,data2,data3,data4,data5,data6,data7,data8と表記する。
【0023】
また制御部13は、CPU31、ROM32、およびRAM33を備え、ROM32が記憶するプログラムに基づく処理をCPU31が実行することにより、各種処理を実行する。例えば、他のECUに対して送信すべきメッセージ(以下、送信メッセージという)がある場合、メッセージの内容からそのメッセージに対応するCANIDを特定し、特定したCANIDが設定されているメッセージバッファMBのメッセージレジスタR3にメッセージを格納する。
【0024】
また制御部13は、CANコントローラ11からフレームを受信した旨の通知を受けた場合に、メッセージバッファMBのメッセージレジスタR3の内容を読み出すことにより、他のECUからのメッセージを受信する。
【0025】
このように構成されたECU10において、制御部13は、送信メッセージをメッセージバッファMBに格納する送信メッセージ格納処理と、メッセージバッファMBに格納された受信メッセージをRAM33に格納する受信メッセージ格納処理を実行する。
【0026】
まず、制御部13が実行する送信メッセージ格納処理の手順を図2,3を用いて説明する。図2は送信メッセージ格納処理を示すフローチャートである。図3は、メッセージバッファMBのデータパターンを示す図である。この送信メッセージ格納処理は、ECU10が起動している間に繰り返し実行される処理である。
【0027】
この送信メッセージ格納処理が実行されると、制御部13のCPU31は、まずS10にて、フレームを送信するタイミングに近づいているCANIDがあるか否かを判断する。ここで、フレームを送信するタイミングに近づいているCANIDがない場合には(S10:NO)、送信メッセージ格納処理を一旦終了する。一方、フレームを送信するタイミングに近づいているCANIDがある場合には(S10:YES)、S20にて、データパターン1で送信するタイミングであるか否かを判断する。
【0028】
なお、データパターン1は、下式(1)で算出されたサム値CSUM1が、メッセージバッファMBの第8データ記憶領域に格納されるものである(図3(a)を参照)。
【0029】
【数1】
【0030】
また、データパターン2は、下式(2)で算出されたサム値CSUM2が、メッセージバッファMBの第8データ記憶領域に格納されるものである(図3(b)を参照)。
【0031】
【数2】
【0032】
また、データパターン1でフレーム送信を実行するタイミングと、データパターン2でフレーム送信を実行するタイミングが、CANID毎に予め設定されている。
そしてS20にて、データパターン1で送信するタイミングである場合には(S20:YES)、S30にて、今回送信するデータ(すなわち、data1〜7)について上式(1)でサム値CSUM1を算出して、S50に移行する。
【0033】
一方、S20にて、データパターン1で送信するタイミングでない場合には(S20:NO)、データパターン2で送信するタイミングであると判断して、S40にて、今回送信するデータ(すなわち、data1〜7)について上式(2)でサム値CSUM2を算出して、S50に移行する。
【0034】
そしてS50に移行すると、フレームを送信するタイミングに近づいているとS10で判断されたCANIDが格納されたメッセージバッファMBの第1〜7データ記憶領域に、今回送信するデータ(data1〜7)を格納するとともに、第8データ記憶領域に、S30またはS40で算出されたサム値CSUM1またはサム値CSUM2を格納する。その後S60にて、S50の処理でメッセージバッファMBに格納されたメッセージをフレーム化して送信する処理をCANコントローラ11に実行させて、送信メッセージ格納処理を一旦終了する。
【0035】
次に、制御部13が実行する受信メッセージ格納処理の手順を図4を用いて説明する。図4は受信メッセージ格納処理を示すフローチャートである。この受信メッセージ格納処理は、ECU10が起動している間に繰り返し実行される処理である。
【0036】
この受信メッセージ格納処理が実行されると、制御部13のCPU31は、まずS110にて、メッセージバッファMBにメッセージが格納されたか否かを判断する。ここで、メッセージバッファMBにメッセージが格納されていない場合には(S110:NO)、受信メッセージ格納処理を一旦終了する。一方、メッセージバッファMBにメッセージが格納された場合には(S110:YES)、S120にて、メッセージが格納されたとS110の処理で判断されたメッセージバッファMBのメッセージレジスタR3について上式(1)でサム値CSUM1を算出する。
【0037】
その後S130にて、S120で算出されたサム値CSUM1が、メッセージが格納されたとS110の処理で判断されたメッセージバッファMBのdata8と一致しているか否かを判断する。ここで、サム値CSUM1がdata8と一致している場合には(S130:YES)、S160に移行する。
【0038】
一方、サム値CSUM1がdata8と一致していない場合には(S130:NO)、S140にて、メッセージが格納されたとS110の処理で判断されたメッセージバッファMBのメッセージレジスタR3について上式(2)でサム値CSUM2を算出する。
【0039】
その後S150にて、S140で算出されたサム値CSUM2が、メッセージが格納されたとS110の処理で判断されたメッセージバッファMBのdata8と一致しているか否かを判断する。ここで、サム値CSUM2がdata8と一致していない場合には(S150:NO)、受信メッセージ格納処理を一旦終了する。一方、サム値CSUM2がdata8と一致している場合には(S150:YES)、S160に移行する。
【0040】
そしてS160に移行すると、メッセージが格納されたとS110で判断されたメッセージバッファMBのメッセージレジスタR3に格納されたメッセージを、制御用RAMにコピーし、受信メッセージ格納処理を一旦終了する。
【0041】
なお、制御用RAMは、RAM33内に設けられたデータ記憶領域であり、データ格納部21に設けられたメッセージバッファMBのそれぞれに対応して設けられている。これにより、制御部13のCPU31が、制御用RAMにコピーされたメッセージを参照し、このメッセージが示す情報を用いて、車両制御処理を実行することができる。
【0042】
このように構成されたECU10では、メッセージと、メッセージの種別を示すCANIDとが少なくとも格納される複数のメッセージバッファMBと、メッセージバッファMBに格納されたデータを抽出してフレームを構成し通信バスBS上に送信するとともに、通信バスBSを介してフレームを受信した場合には、受信したフレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージを格納するCANコントローラ11とを備え、CANID毎に予め設定された、データパターン1でフレームを送信するタイミングに近づくと(S10:YES,S20:YES)、データパターン1のデータと、サム値CSUM1とを、このタイミングに対応したCANIDが格納されているメッセージバッファMBに格納する(S30,S50)とともに、データパターン2でフレームを送信するタイミングに近づくと(S10:YES,S20:NO)、データパターン2のデータと、サム値CSUM2とを、このタイミングに対応したCANIDが格納されているメッセージバッファMBに格納する(S40,S50)。
【0043】
このため、まず、データパターン1のデータとサム値CSUM1とがメッセージバッファMBに格納されることにより、このメッセージバッファMBに格納されたCANID、データパターン1のデータ、およびサム値CSUM1が含まれるフレームが送信される。さらに、データパターン2のデータとサム値CSUM2とがメッセージバッファMBに格納されることにより、このメッセージバッファMBに格納されたCANID、データパターン2のデータ、およびサム値CSUM2が含まれるフレームが送信される。つまり、同一のCANIDを含みデータ種別の異なるデータを含む2種類のフレームがそれぞれ異なるタイミングで送信される。そして、この2種類のフレームにはそれぞれ、データ種別を示す情報(すなわち、サム値CSUM1,2)が含まれている(以下、データパターン1のデータおよびサム値CSUM1を含むフレームを第1フレーム、データパターン2のデータおよびサム値CSUM2を含むフレームを第2フレームともいう)。
【0044】
このため、第1フレームを受信したECU10は、この受信フレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージ(すなわち、データパターン1のデータとサム値CSUM1)を格納する一方、第2フレームを受信したECU10は、この受信フレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージ(すなわち、データパターン2のデータとサム値CSUM2)を格納する。
【0045】
したがって、同一のCANIDが格納されているメッセージバッファMBに、データ種別が異なる2種類のデータを時分割で格納することができるとともに、同一のCANIDが格納されているメッセージバッファMBに格納されたデータのデータ種別をサム値CSUM1,2により認識することができる。
【0046】
これにより、データパターン1のデータとデータパターン2のデータのそれぞれのデータ量が1つのメッセージバッファMBに記憶可能なデータ量を超えておらず、且つ、データパターン1のデータとデータパターン2のデータとの総データ量が、1つのメッセージバッファMBに記憶可能なデータ量を超えている場合において、データパターン1のデータを格納するためのメッセージバッファMBと、データパターン2のデータを格納するためのメッセージバッファMBとを別々に設ける必要がなくなり、予め設けられているメッセージバッファMBを用いて通信データ量の増大に対応することが可能になる。
【0047】
さらに、データパターン1のデータとデータパターン2のデータの受信を必要とするECU10(以下、第1,2データ必要ECU10という)と、データパターン1のデータの受信を必要とするとともにデータパターン2のデータの受信を不要とするECU10(以下、第2データ不要ECU10という)とが混在する車両用通信システムにおいて、或るECU10がデータパターン2のデータを含むフレームを送信した場合に、第1,2データ必要ECU10では、受信したフレームにサム値CSUM2が含まれるか否かを判断するための機能が必要である一方、第2データ不要ECU10では、受信したフレームにサム値CSUM2が含まれるか否かを判断するための機能が不要である。
【0048】
すなわち、データパターン2のフレームが不要なECU10(第2データ不要ECU10)における受信メッセージ格納処理は、図5に示すように、S140とS150の処理が省略されて、S130において、サム値CSUM1がdata8と一致していない場合には(S130:NO)、受信メッセージ格納処理を一旦終了するように構成された点以外は、データパターン2のフレームを必要とするECU10における受信メッセージ格納処理と同一である。
【0049】
つまり、車両用通信システム1を構成する複数のECU10のうち、データパターン2のデータを必要とする車両用通信装置(第1,2データ必要ECU10)のみに、サム値CSUM2が含まれるか否かを判断するための上記機能を追加すればよく、第2データ不要ECU10に対しては何らかの機能を追加することなく、データパターン2のデータを送受信することが可能な車両用通信システム1を構築することが可能となる。
【0050】
また、チェックサム値は、フレームに含まれる情報として、従来、広く利用されているものであり、チェックサム値を含むフレームを送受信するように構成された車両用通信システム1において、フレームに新たな情報を追加することなく、データパターン1のデータとデータパターン2のデータとの識別を可能とすることができる。
【0051】
以上説明した実施形態において、ECU10は本発明における車両用通信装置、CANコントローラ11は本発明における送受信手段、S30,S50の処理は本発明における第1格納手段、S40,S50の処理は本発明における第2格納手段である。
【0052】
また、CANIDは本発明におけるメッセージ識別コード、S10とS20でYESと判断されるタイミングは本発明における第1タイミング、データパターン1のデータは本発明における第1データ種別のデータ、サム値CSUM1は本発明における第1データ種別情報、S10でYESと判断されS20でNOと判断されるタイミングは本発明における第2タイミング、データパターン2のデータは本発明における第2データ種別のデータ、サム値CSUM2は本発明における第2データ種別情報である。
【0053】
また、式(1)は本発明における第1チェックサム算出式、サム値CSUM1は本発明における第1チェックサム値、式(2)は本発明における第2チェックサム算出式、サム値CSUM2は本発明における第2チェックサム値である。
【0054】
(第2実施形態)
以下に本発明の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分のみを説明する。
【0055】
第2実施形態における車両用通信システム1は、送信メッセージ格納処理と受信メッセージ格納処理が変更された点以外は第1実施形態と同じである。
まず、第2実施形態における送信メッセージ格納処理の手順を図6,7を用いて説明する。図6は第2実施形態の送信メッセージ格納処理を示すフローチャートである。図7は、第2実施形態におけるメッセージバッファMBのデータパターンを示す図である。
【0056】
この送信メッセージ格納処理が実行されると、制御部13のCPU31は、まずS210にて、フレームを送信するタイミングに近づいているCANIDがあるか否かを判断する。ここで、フレームを送信するタイミングに近づいているCANIDがない場合には(S210:NO)、送信メッセージ格納処理を一旦終了する。一方、フレームを送信するタイミングに近づいているCANIDがある場合には(S210:YES)、S220にて、データパターン1で送信するタイミングであるか否かを判断する。
【0057】
なお、データパターン11は、メッセージバッファMBのメッセージレジスタR3に8バイトのデータが格納されるものである(図7(a)を参照)。また、データパターン12は、メッセージバッファMBのメッセージレジスタR3に4バイトのデータが格納されるものである(図7(b)を参照)。
【0058】
また、データパターン11でフレーム送信を実行するタイミングと、データパターン12でフレーム送信を実行するタイミングが、CANID毎に予め設定されている。
そしてS220にて、データパターン11で送信するタイミングである場合には(S220:YES)、S230にて、フレームを送信するタイミングに近づいているとS210で判断されたCANIDが格納されたメッセージバッファMBのメッセージレジスタR3に、今回送信するデータ(data1〜8)を格納するとともに、データパターン11でのデータ長を示すデータ長値DLC1(本実施形態では8)をDLCレジスタR2に格納して、S250に移行する。
【0059】
一方、S220にて、データパターン12で送信するタイミングでない場合には(S220:NO)、データパターン12で送信するタイミングであると判断して、S240にて、フレームを送信するタイミングに近づいているとS210で判断されたCANIDが格納されたメッセージバッファMBのメッセージレジスタR3に、今回送信するデータ(data1〜4)を格納するとともに、データパターン12でのデータ長を示すデータ長値DLC2(本実施形態では4)をDLCレジスタR2に格納して、S250に移行する。
【0060】
そしてS250に移行すると、S230またはS240の処理でメッセージバッファMBに格納されたメッセージをフレーム化して送信する処理をCANコントローラ11に実行させて、送信メッセージ格納処理を一旦終了する。
【0061】
次に、第2実施形態における受信メッセージ格納処理の手順を図8を用いて説明する。図8は第2実施形態の受信メッセージ格納処理を示すフローチャートである。
この受信メッセージ格納処理が実行されると、制御部13のCPU31は、まずS310にて、メッセージバッファMBにメッセージが格納されたか否かを判断する。ここで、メッセージバッファMBにメッセージが格納されていない場合には(S310:NO)、受信メッセージ格納処理を一旦終了する。一方、メッセージバッファMBにメッセージが格納された場合には(S310:YES)、S320にて、メッセージが格納されたとS310の処理で判断されたメッセージバッファMBのデータ長がデータ長値DLC1と一致しているか否かを判断する。
【0062】
ここで、データ長がデータ長値DLC1と一致している場合には(S320:YES)、S340に移行する。一方、データ長がデータ長値DLC1と一致していない場合には(S320:NO)、S330にて、メッセージが格納されたとS310の処理で判断されたメッセージバッファMBのデータ長がデータ長値DLC2と一致しているか否かを判断する。
【0063】
ここで、データ長がデータ長値DLC2と一致している場合には(S330:YES)、S340に移行する。一方、データ長がデータ長値DLC2と一致していない場合には(S330:NO)、受信メッセージ格納処理を一旦終了する。
【0064】
そしてS340に移行すると、メッセージが格納されたとS110で判断されたメッセージバッファMBのメッセージレジスタR3に格納されたメッセージを、制御用RAMにコピーし、受信メッセージ格納処理を一旦終了する。
【0065】
このように構成されたECU10では、CANID毎に予め設定された、データパターン11でフレームを送信するタイミングに近づくと(S210:YES,S220:YES)、データパターン11のデータとデータ長値DLC1とを、このタイミングに対応したCANIDが格納されているメッセージバッファMBに格納する(S230)とともに、データパターン12でフレームを送信するタイミングに近づくと(S210:YES,S220:NO)、データパターン12のデータとデータ長値DLC2とを、このタイミングに対応したCANIDが格納されているメッセージバッファMBに格納する(S240)。
【0066】
このため、まず、データパターン11のデータとデータ長値DLC1とがメッセージバッファMBに格納されることにより、このメッセージバッファMBに格納されたCANID、データパターン11のデータ、およびデータ長値DLC1が含まれるフレームが送信される。さらに、データパターン12のデータとデータ長値DLC2とがメッセージバッファMBに格納されることにより、このメッセージバッファMBに格納されたCANID、データパターン12のデータ、およびデータ長値DLC2が含まれるフレームが送信される。つまり、同一のCANIDを含みデータ種別の異なるデータを含む2種類のフレームがそれぞれ異なるタイミングで送信される。そして、この2種類のフレームにはそれぞれ、データ種別を示す情報(すなわち、データ長値DLC1,2)が含まれている(以下、データパターン11のデータおよびデータ長値DLC1を含むフレームを第3フレーム、データパターン12のデータおよびデータ長値DLC2を含むフレームを第4フレームともいう)。
【0067】
このため、第3フレームを受信したECU10は、この受信フレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージ(すなわち、データパターン11のデータとデータ長値DLC1)を格納する一方、第4フレームを受信したECU10は、この受信フレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージ(すなわち、データパターン12のデータとデータ長値DLC2)を格納する。
【0068】
したがって、同一のCANIDが格納されているメッセージバッファMBに、データ種別が異なる2種類のデータを時分割で格納することができるとともに、同一のCANIDが格納されているメッセージバッファMBに格納されたデータのデータ種別をデータ長値DLC1,2により認識することができる。
【0069】
これにより、データパターン11のデータとデータパターン12のデータのそれぞれのデータ量が1つのメッセージバッファMBに記憶可能なデータ量を超えておらず、且つ、データパターン11のデータとデータパターン12のデータとの総データ量が、1つのメッセージバッファMBに記憶可能なデータ量を超えている場合において、データパターン11のデータを格納するためのメッセージバッファMBと、データパターン12のデータを格納するためのメッセージバッファMBとを別々に設ける必要がなくなり、予め設けられているメッセージバッファMBを用いて通信データ量の増大に対応することが可能になる。
【0070】
またデータ長は、フレームに含まれる情報として、従来、広く利用されているものであり、データ長値を含むフレームを送受信するように構成された車両用通信システム1において、フレームに新たな情報を追加することなく、データパターン11のデータとデータパターン12のデータとの識別を可能とすることができる。
【0071】
以上説明した実施形態において、S230の処理は本発明における第1格納手段、S240の処理は本発明における第2格納手段である。
また、S210とS220でYESと判断されるタイミングは本発明における第1タイミング、データパターン11のデータは本発明における第1データ種別のデータ、データ長値DLC1は本発明における第1データ種別情報、S210でYESと判断されS220でNOと判断されるタイミングは本発明における第2タイミング、データパターン12のデータは本発明における第2データ種別のデータ、データ長値DLC2は本発明における第2データ種別情報である。
【0072】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態においては、データパターンが2種類であるものを示したが、3種類以上であってもよい。
【符号の説明】
【0073】
1…車両用通信システム、10…ECU、11…CANコントローラ、12…CANトランシーバ、13…制御部、21…データ格納部、22…プロトコルコア部、23…アクセス制御部、31…CPU、32…ROM、33…RAM、BS…通信バス、MB…メッセージバッファ、R1…CANIDレジスタ、R2…DLCレジスタ、R3…メッセージレジスタ
【技術分野】
【0001】
本発明は、メッセージバッファを利用してメッセージの送受信を行う車両用通信装置に関する。
【背景技術】
【0002】
車両において制御の高度化やサービスの充実を図るために、電子制御ユニット(ECU)等の車載機器同士を通信バスで相互に接続してローカルエリアネットワーク(いわゆる車内LAN)を構成し、車載機器間で情報を共有することが行われており(例えば、特許文献1を参照)、特に車内LANに多用されている通信プロトコルとして、CSMA/CD方式の一つであるCAN(Controller Area Network )プロトコルが知られている。
【0003】
このCANプロトコルでは、送信メッセージをフレーム化して通信バスへ送信する前には、送信メッセージの種類を表す識別IDコード(以下、CANIDという)が設定されたメッセージバッファに送信メッセージを格納するとともに、通信バスを介してフレームを受信した場合には、フレームから抽出した受信メッセージを、この受信メッセージに付与されているCANIDと同一のCANIDが予め設定されたメッセージバッファに格納するように規定されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−265402号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、制御の高度化等により、車内LAN内の車載機器間でやり取りされる通信データ量が増大している。しかし、車載機器に搭載された通信装置内に設けられているメッセージバッファの数の上限は予め決められている(例えば32個)。このため、通信データ量が増大すると、メッセージバッファを増設しなければならなくなるという問題があった。
【0006】
本発明は、こうした問題に鑑みてなされたものであり、予め設けられているメッセージバッファを用いて通信データ量の増大に対応することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するためになされた請求項1に記載の発明は、メッセージと、メッセージの種別であるメッセージ種別を示すメッセージ識別コードとが少なくとも格納される複数のメッセージバッファと、メッセージバッファに格納されたデータを抽出してフレームを構成し通信バス上に送信するとともに、通信バスを介してフレームを受信した場合には、受信したフレームから抽出したメッセージ識別コードと一致するメッセージ識別コードが格納されているメッセージバッファに、フレームから抽出したメッセージを格納する送受信手段とを備える車両用通信装置であって、第1格納手段が、メッセージ識別コード毎に予め設定された第1タイミングになると、第1タイミングに対応したメッセージ識別コードのメッセージについて予め設定された第1データ種別のデータと、第1データ種別を示す第1データ種別情報とを、第1タイミングに対応したメッセージ識別コードが格納されているメッセージバッファに格納するとともに、第2格納手段が、メッセージ識別コード毎に第1タイミングと異なるように予め設定された第2タイミングになると、第1タイミングに対応したメッセージ識別コードのメッセージについて第1データ種別と異なるように予め設定された第2データ種別のデータと、第2データ種別を示す第2データ種別情報とを、第2タイミングに対応したメッセージ識別コードが格納されているメッセージバッファに格納する。
【0008】
このように構成された車両用通信装置では、まず、第1タイミングになると、第1タイミングに対応したメッセージ識別コードのメッセージについて、第1データ種別のデータと、第1データ種別情報とが、第1タイミングに対応したメッセージ識別コードが格納されているメッセージバッファに格納される。これにより、メッセージバッファに格納されたメッセージ識別コード、第1データ種別のデータ、および第1データ種別情報が含まれるフレームが送信される。さらに、第1タイミングと異なる第2タイミングになると、第2タイミングに対応したメッセージ識別コードのメッセージについて、第1データ種別と異なる第2データ種別のデータと、第2データ種別情報とが、第2タイミングに対応したメッセージ識別コードが格納されているメッセージバッファに格納される。これにより、メッセージバッファに格納されたメッセージ識別コード、第2データ種別のデータ、および第2データ種別情報が含まれるフレームが送信される。つまり、同一のメッセージ識別コードを含みデータ種別の異なるデータを含む2種類のフレームがそれぞれ異なるタイミングで送信される。そして、この2種類のフレームにはそれぞれ、データ種別を示す情報が含まれている。
【0009】
このため、第1タイミングの直後に送信されたフレームを受信した通信装置は、この受信フレームから抽出したメッセージ識別コードと一致するメッセージ識別コードが格納されているメッセージバッファに、フレームから抽出したメッセージ(すなわち、第1データ種別のデータと第1データ種別情報)を格納する一方、第2タイミングの直後に送信されたフレームを受信した通信装置は、この受信フレームから抽出したメッセージ識別コードと一致するメッセージ識別コードが格納されているメッセージバッファに、フレームから抽出したメッセージ(すなわち、第2データ種別のデータと第2データ種別情報)を格納する。
【0010】
したがって、同一のメッセージ識別コードが格納されているメッセージバッファに、データ種別が異なる2種類のデータを時分割で格納することができるとともに、同一のメッセージ識別コードが格納されているメッセージバッファに格納されたデータのデータ種別を第1データ種別情報および第2データ種別情報により認識することができる。
【0011】
これにより、第1データ種別のデータと第2データ種別のデータのそれぞれのデータ量が1つのメッセージバッファに記憶可能なデータ量を超えておらず、且つ、第1データ種別のデータと第2データ種別のデータとの総データ量が、1つのメッセージバッファに記憶可能なデータ量を超えている場合において、第1データ種別のデータを格納するためのメッセージバッファと、第2データ種別のデータを格納するためのメッセージバッファとを別々に設ける必要がなくなり、予め設けられているメッセージバッファを用いて通信データ量の増大に対応することが可能になる。
【0012】
さらに、第1データ種別のデータと第2データ種別のデータの受信を必要とする車両用通信装置(以下、第1,2データ必要通信装置という)と、第1データ種別のデータの受信を必要とするとともに第2データ種別のデータの受信を不要とする車両用通信装置(以下、第2データ不要通信装置という)とが混在する車両用通信システムにおいて、或る車両用通信装置が第2データ種別のデータを含むフレームを送信した場合に、第1,2データ必要通信装置では、受信したフレームに第2データ種別情報が含まれるか否かを判断するための機能が必要である一方、第2データ不要通信装置では、受信したフレームに第2データ種別情報が含まれるか否かを判断するための機能が不要である。そして、車両用通信システムを構成する複数の車両用通信装置のうち、第2データ種別のデータを必要とする車両用通信装置(第1,2データ必要通信装置)のみに、第2データ種別情報が含まれるか否かを判断するための上記機能を追加すればよく、第2データ不要通信装置に対しては何らかの機能を追加することなく、第2データ種別のデータを送受信することが可能な車両用通信システムを構築することが可能となる。
【0013】
また、請求項1に記載の車両用通信装置において、請求項2に記載のように、第1データ種別情報は、第1データ種別のデータについて、予め設定された第1チェックサム算出式に基づいて算出された第1チェックサム値であり、第2データ種別情報は、第2データ種別のデータについて、第1チェックサム算出式と異なるように予め設定された第2チェックサム算出式に基づいて算出された第2チェックサム値であるようにしてもよいし、請求項3に記載のように、第1データ種別情報は、第1データ種別のデータについてのデータ長であり、第2データ種別情報は、第2データ種別のデータについてのデータ長であり、第1データ種別のデータと第2データ種別のデータとで、データ長が異なるようにしてもよい。
【0014】
チェックサム値およびデータ長は、フレームに含まれる情報として、従来、広く利用されているものであり、チェックサム値またはデータ長を含むフレームを送受信するように構成された車両用通信システムにおいて、フレームに新たな情報を追加することなく、第1データ種別のデータと第2データ種別のデータとの識別を可能とすることができる。具体的には、送受信データの誤り検出のためにチェックサムを含むデータを送受信する通信システムでは第1,2データ種別情報としてチェックサム値を利用すればよく、データ長を含むデータを送受信する通信システムでは、第1,2データ種別情報としてデータ長を利用すればよい。
【図面の簡単な説明】
【0015】
【図1】車両用通信システム1とメッセージバッファの構成を示すブロック図である。
【図2】第1実施形態の送信メッセージ格納処理を示すフローチャートである。
【図3】第1実施形態のメッセージバッファMBのデータパターンを示す図である。
【図4】第1実施形態の受信メッセージ格納処理を示すフローチャートである。
【図5】データパターン2が不要な第1実施形態の受信メッセージ格納処理を示すフローチャートである。
【図6】第2実施形態の送信メッセージ格納処理を示すフローチャートである。
【図7】第2実施形態のメッセージバッファMBのデータパターンを示す図である。
【図8】第2実施形態の受信メッセージ格納処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
(第1実施形態)
以下に本発明の第1実施形態を図面とともに説明する。
図1は、本発明が適用された車両用通信システム1の構成を示すブロック図である。
【0017】
車両用通信システム1は、車両に搭載され、図1に示すように、複数の電子制御装置(以下、ECUという)10a,10b,10c,…を、共通の通信バスBSを介して相互に通信可能となるように接続することで構成され、これらECU10a,10b,10c,…のそれぞれがノードとして機能するようにされている。なお、この車両用通信システム1では、通信プロトコルとしてCAN(CAN;Controller Area Network)が採用されている。以下、ECU10a,10b,10c…を特に区別しないでいずれか一つを指す場合は、ECU10と表記する。
【0018】
ECU10a,10b,10c…としては、具体的には、エンジン制御を司るエンジンECU、ブレーキ制御を司るブレーキECU、ステアリング制御を司るステアリングECU、サスペンション制御を司るサスペンションECU、ライトのオン/オフを制御するECU等、種々の電子制御装置を挙げることができる。なお図1では、ECU10を5つ図示しているが、通信システム1を構成するECU10の数がこれに限定されないことは言うまでもない。
【0019】
ECU10は、CANプロトコルに従って他のECUとの通信を制御するCANコントローラ11と、CANコントローラ11と通信バスBSとの間でデータを送受信するためのCANトランシーバ12と、CANコントローラ11を介して他のECUとの間でメッセージを交換することにより、他のECUと連携して各種処理を実行する制御部13とを備えている。
【0020】
CANトランシーバ12は、予め規定された通信バスの電気的条件を満たす信号を確実に送受信するように構成されている。
CANコントローラ11は、ECU間で送受信されるメッセージ等を格納するためのメッセージバッファMBを複数(本実施形態で32個)備えたデータ格納部21と、メッセージバッファMBの格納値に基づいてメッセージをフレーム化し、CANトランシーバ12を介して通信バスBSに送信する送信制御、CANトランシーバ12を介してフレームを受信してメッセージの抽出等を行う受信制御、バス上でフレームが衝突した際のバス権の調停制御等、CANプロトコルに従った通信制御を実行するプロトコルコア部22と、プロトコルコア部22の送信制御および受信制御時に、データ格納部21へのアクセスを制御するアクセス制御部23とを備えている。
【0021】
なお、データ格納部21に設けられたメッセージバッファMBのそれぞれには、メッセージバッファを識別するためのボックス番号(本実施形態では0〜31の整数値)が付与されている。
【0022】
また各メッセージバッファMBには、メッセージの種類および優先度を表す識別コード(以下、CANIDという)を格納するためのCANIDレジスタR1、メッセージのデータ長を示すDLC(Data Length Code)を格納するためのDLCレジスタR2、フレームに載せて送信するメッセージまたは受信フレームから抽出したメッセージを格納するためのメッセージレジスタR3が設けられている。なお、メッセージレジスタR3には1バイトのデータ記憶領域が8個設けられており、メッセージレジスタR3は最大8バイトのデータを記憶することができる。そして、1バイトのデータ記憶領域のそれぞれには、記憶領域を識別するためデータ番号(本実施形態では1〜8の整数値)が付与されている。以下、付与されたデータ番号がnであるデータ記憶領域を第nデータ記憶領域(nは1〜8の整数値)というとともに、付与されたデータ番号が1,2,3,4,5,6,7,8であるデータ記憶領域に格納されているデータをそれぞれ、data1,data2,data3,data4,data5,data6,data7,data8と表記する。
【0023】
また制御部13は、CPU31、ROM32、およびRAM33を備え、ROM32が記憶するプログラムに基づく処理をCPU31が実行することにより、各種処理を実行する。例えば、他のECUに対して送信すべきメッセージ(以下、送信メッセージという)がある場合、メッセージの内容からそのメッセージに対応するCANIDを特定し、特定したCANIDが設定されているメッセージバッファMBのメッセージレジスタR3にメッセージを格納する。
【0024】
また制御部13は、CANコントローラ11からフレームを受信した旨の通知を受けた場合に、メッセージバッファMBのメッセージレジスタR3の内容を読み出すことにより、他のECUからのメッセージを受信する。
【0025】
このように構成されたECU10において、制御部13は、送信メッセージをメッセージバッファMBに格納する送信メッセージ格納処理と、メッセージバッファMBに格納された受信メッセージをRAM33に格納する受信メッセージ格納処理を実行する。
【0026】
まず、制御部13が実行する送信メッセージ格納処理の手順を図2,3を用いて説明する。図2は送信メッセージ格納処理を示すフローチャートである。図3は、メッセージバッファMBのデータパターンを示す図である。この送信メッセージ格納処理は、ECU10が起動している間に繰り返し実行される処理である。
【0027】
この送信メッセージ格納処理が実行されると、制御部13のCPU31は、まずS10にて、フレームを送信するタイミングに近づいているCANIDがあるか否かを判断する。ここで、フレームを送信するタイミングに近づいているCANIDがない場合には(S10:NO)、送信メッセージ格納処理を一旦終了する。一方、フレームを送信するタイミングに近づいているCANIDがある場合には(S10:YES)、S20にて、データパターン1で送信するタイミングであるか否かを判断する。
【0028】
なお、データパターン1は、下式(1)で算出されたサム値CSUM1が、メッセージバッファMBの第8データ記憶領域に格納されるものである(図3(a)を参照)。
【0029】
【数1】
【0030】
また、データパターン2は、下式(2)で算出されたサム値CSUM2が、メッセージバッファMBの第8データ記憶領域に格納されるものである(図3(b)を参照)。
【0031】
【数2】
【0032】
また、データパターン1でフレーム送信を実行するタイミングと、データパターン2でフレーム送信を実行するタイミングが、CANID毎に予め設定されている。
そしてS20にて、データパターン1で送信するタイミングである場合には(S20:YES)、S30にて、今回送信するデータ(すなわち、data1〜7)について上式(1)でサム値CSUM1を算出して、S50に移行する。
【0033】
一方、S20にて、データパターン1で送信するタイミングでない場合には(S20:NO)、データパターン2で送信するタイミングであると判断して、S40にて、今回送信するデータ(すなわち、data1〜7)について上式(2)でサム値CSUM2を算出して、S50に移行する。
【0034】
そしてS50に移行すると、フレームを送信するタイミングに近づいているとS10で判断されたCANIDが格納されたメッセージバッファMBの第1〜7データ記憶領域に、今回送信するデータ(data1〜7)を格納するとともに、第8データ記憶領域に、S30またはS40で算出されたサム値CSUM1またはサム値CSUM2を格納する。その後S60にて、S50の処理でメッセージバッファMBに格納されたメッセージをフレーム化して送信する処理をCANコントローラ11に実行させて、送信メッセージ格納処理を一旦終了する。
【0035】
次に、制御部13が実行する受信メッセージ格納処理の手順を図4を用いて説明する。図4は受信メッセージ格納処理を示すフローチャートである。この受信メッセージ格納処理は、ECU10が起動している間に繰り返し実行される処理である。
【0036】
この受信メッセージ格納処理が実行されると、制御部13のCPU31は、まずS110にて、メッセージバッファMBにメッセージが格納されたか否かを判断する。ここで、メッセージバッファMBにメッセージが格納されていない場合には(S110:NO)、受信メッセージ格納処理を一旦終了する。一方、メッセージバッファMBにメッセージが格納された場合には(S110:YES)、S120にて、メッセージが格納されたとS110の処理で判断されたメッセージバッファMBのメッセージレジスタR3について上式(1)でサム値CSUM1を算出する。
【0037】
その後S130にて、S120で算出されたサム値CSUM1が、メッセージが格納されたとS110の処理で判断されたメッセージバッファMBのdata8と一致しているか否かを判断する。ここで、サム値CSUM1がdata8と一致している場合には(S130:YES)、S160に移行する。
【0038】
一方、サム値CSUM1がdata8と一致していない場合には(S130:NO)、S140にて、メッセージが格納されたとS110の処理で判断されたメッセージバッファMBのメッセージレジスタR3について上式(2)でサム値CSUM2を算出する。
【0039】
その後S150にて、S140で算出されたサム値CSUM2が、メッセージが格納されたとS110の処理で判断されたメッセージバッファMBのdata8と一致しているか否かを判断する。ここで、サム値CSUM2がdata8と一致していない場合には(S150:NO)、受信メッセージ格納処理を一旦終了する。一方、サム値CSUM2がdata8と一致している場合には(S150:YES)、S160に移行する。
【0040】
そしてS160に移行すると、メッセージが格納されたとS110で判断されたメッセージバッファMBのメッセージレジスタR3に格納されたメッセージを、制御用RAMにコピーし、受信メッセージ格納処理を一旦終了する。
【0041】
なお、制御用RAMは、RAM33内に設けられたデータ記憶領域であり、データ格納部21に設けられたメッセージバッファMBのそれぞれに対応して設けられている。これにより、制御部13のCPU31が、制御用RAMにコピーされたメッセージを参照し、このメッセージが示す情報を用いて、車両制御処理を実行することができる。
【0042】
このように構成されたECU10では、メッセージと、メッセージの種別を示すCANIDとが少なくとも格納される複数のメッセージバッファMBと、メッセージバッファMBに格納されたデータを抽出してフレームを構成し通信バスBS上に送信するとともに、通信バスBSを介してフレームを受信した場合には、受信したフレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージを格納するCANコントローラ11とを備え、CANID毎に予め設定された、データパターン1でフレームを送信するタイミングに近づくと(S10:YES,S20:YES)、データパターン1のデータと、サム値CSUM1とを、このタイミングに対応したCANIDが格納されているメッセージバッファMBに格納する(S30,S50)とともに、データパターン2でフレームを送信するタイミングに近づくと(S10:YES,S20:NO)、データパターン2のデータと、サム値CSUM2とを、このタイミングに対応したCANIDが格納されているメッセージバッファMBに格納する(S40,S50)。
【0043】
このため、まず、データパターン1のデータとサム値CSUM1とがメッセージバッファMBに格納されることにより、このメッセージバッファMBに格納されたCANID、データパターン1のデータ、およびサム値CSUM1が含まれるフレームが送信される。さらに、データパターン2のデータとサム値CSUM2とがメッセージバッファMBに格納されることにより、このメッセージバッファMBに格納されたCANID、データパターン2のデータ、およびサム値CSUM2が含まれるフレームが送信される。つまり、同一のCANIDを含みデータ種別の異なるデータを含む2種類のフレームがそれぞれ異なるタイミングで送信される。そして、この2種類のフレームにはそれぞれ、データ種別を示す情報(すなわち、サム値CSUM1,2)が含まれている(以下、データパターン1のデータおよびサム値CSUM1を含むフレームを第1フレーム、データパターン2のデータおよびサム値CSUM2を含むフレームを第2フレームともいう)。
【0044】
このため、第1フレームを受信したECU10は、この受信フレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージ(すなわち、データパターン1のデータとサム値CSUM1)を格納する一方、第2フレームを受信したECU10は、この受信フレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージ(すなわち、データパターン2のデータとサム値CSUM2)を格納する。
【0045】
したがって、同一のCANIDが格納されているメッセージバッファMBに、データ種別が異なる2種類のデータを時分割で格納することができるとともに、同一のCANIDが格納されているメッセージバッファMBに格納されたデータのデータ種別をサム値CSUM1,2により認識することができる。
【0046】
これにより、データパターン1のデータとデータパターン2のデータのそれぞれのデータ量が1つのメッセージバッファMBに記憶可能なデータ量を超えておらず、且つ、データパターン1のデータとデータパターン2のデータとの総データ量が、1つのメッセージバッファMBに記憶可能なデータ量を超えている場合において、データパターン1のデータを格納するためのメッセージバッファMBと、データパターン2のデータを格納するためのメッセージバッファMBとを別々に設ける必要がなくなり、予め設けられているメッセージバッファMBを用いて通信データ量の増大に対応することが可能になる。
【0047】
さらに、データパターン1のデータとデータパターン2のデータの受信を必要とするECU10(以下、第1,2データ必要ECU10という)と、データパターン1のデータの受信を必要とするとともにデータパターン2のデータの受信を不要とするECU10(以下、第2データ不要ECU10という)とが混在する車両用通信システムにおいて、或るECU10がデータパターン2のデータを含むフレームを送信した場合に、第1,2データ必要ECU10では、受信したフレームにサム値CSUM2が含まれるか否かを判断するための機能が必要である一方、第2データ不要ECU10では、受信したフレームにサム値CSUM2が含まれるか否かを判断するための機能が不要である。
【0048】
すなわち、データパターン2のフレームが不要なECU10(第2データ不要ECU10)における受信メッセージ格納処理は、図5に示すように、S140とS150の処理が省略されて、S130において、サム値CSUM1がdata8と一致していない場合には(S130:NO)、受信メッセージ格納処理を一旦終了するように構成された点以外は、データパターン2のフレームを必要とするECU10における受信メッセージ格納処理と同一である。
【0049】
つまり、車両用通信システム1を構成する複数のECU10のうち、データパターン2のデータを必要とする車両用通信装置(第1,2データ必要ECU10)のみに、サム値CSUM2が含まれるか否かを判断するための上記機能を追加すればよく、第2データ不要ECU10に対しては何らかの機能を追加することなく、データパターン2のデータを送受信することが可能な車両用通信システム1を構築することが可能となる。
【0050】
また、チェックサム値は、フレームに含まれる情報として、従来、広く利用されているものであり、チェックサム値を含むフレームを送受信するように構成された車両用通信システム1において、フレームに新たな情報を追加することなく、データパターン1のデータとデータパターン2のデータとの識別を可能とすることができる。
【0051】
以上説明した実施形態において、ECU10は本発明における車両用通信装置、CANコントローラ11は本発明における送受信手段、S30,S50の処理は本発明における第1格納手段、S40,S50の処理は本発明における第2格納手段である。
【0052】
また、CANIDは本発明におけるメッセージ識別コード、S10とS20でYESと判断されるタイミングは本発明における第1タイミング、データパターン1のデータは本発明における第1データ種別のデータ、サム値CSUM1は本発明における第1データ種別情報、S10でYESと判断されS20でNOと判断されるタイミングは本発明における第2タイミング、データパターン2のデータは本発明における第2データ種別のデータ、サム値CSUM2は本発明における第2データ種別情報である。
【0053】
また、式(1)は本発明における第1チェックサム算出式、サム値CSUM1は本発明における第1チェックサム値、式(2)は本発明における第2チェックサム算出式、サム値CSUM2は本発明における第2チェックサム値である。
【0054】
(第2実施形態)
以下に本発明の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分のみを説明する。
【0055】
第2実施形態における車両用通信システム1は、送信メッセージ格納処理と受信メッセージ格納処理が変更された点以外は第1実施形態と同じである。
まず、第2実施形態における送信メッセージ格納処理の手順を図6,7を用いて説明する。図6は第2実施形態の送信メッセージ格納処理を示すフローチャートである。図7は、第2実施形態におけるメッセージバッファMBのデータパターンを示す図である。
【0056】
この送信メッセージ格納処理が実行されると、制御部13のCPU31は、まずS210にて、フレームを送信するタイミングに近づいているCANIDがあるか否かを判断する。ここで、フレームを送信するタイミングに近づいているCANIDがない場合には(S210:NO)、送信メッセージ格納処理を一旦終了する。一方、フレームを送信するタイミングに近づいているCANIDがある場合には(S210:YES)、S220にて、データパターン1で送信するタイミングであるか否かを判断する。
【0057】
なお、データパターン11は、メッセージバッファMBのメッセージレジスタR3に8バイトのデータが格納されるものである(図7(a)を参照)。また、データパターン12は、メッセージバッファMBのメッセージレジスタR3に4バイトのデータが格納されるものである(図7(b)を参照)。
【0058】
また、データパターン11でフレーム送信を実行するタイミングと、データパターン12でフレーム送信を実行するタイミングが、CANID毎に予め設定されている。
そしてS220にて、データパターン11で送信するタイミングである場合には(S220:YES)、S230にて、フレームを送信するタイミングに近づいているとS210で判断されたCANIDが格納されたメッセージバッファMBのメッセージレジスタR3に、今回送信するデータ(data1〜8)を格納するとともに、データパターン11でのデータ長を示すデータ長値DLC1(本実施形態では8)をDLCレジスタR2に格納して、S250に移行する。
【0059】
一方、S220にて、データパターン12で送信するタイミングでない場合には(S220:NO)、データパターン12で送信するタイミングであると判断して、S240にて、フレームを送信するタイミングに近づいているとS210で判断されたCANIDが格納されたメッセージバッファMBのメッセージレジスタR3に、今回送信するデータ(data1〜4)を格納するとともに、データパターン12でのデータ長を示すデータ長値DLC2(本実施形態では4)をDLCレジスタR2に格納して、S250に移行する。
【0060】
そしてS250に移行すると、S230またはS240の処理でメッセージバッファMBに格納されたメッセージをフレーム化して送信する処理をCANコントローラ11に実行させて、送信メッセージ格納処理を一旦終了する。
【0061】
次に、第2実施形態における受信メッセージ格納処理の手順を図8を用いて説明する。図8は第2実施形態の受信メッセージ格納処理を示すフローチャートである。
この受信メッセージ格納処理が実行されると、制御部13のCPU31は、まずS310にて、メッセージバッファMBにメッセージが格納されたか否かを判断する。ここで、メッセージバッファMBにメッセージが格納されていない場合には(S310:NO)、受信メッセージ格納処理を一旦終了する。一方、メッセージバッファMBにメッセージが格納された場合には(S310:YES)、S320にて、メッセージが格納されたとS310の処理で判断されたメッセージバッファMBのデータ長がデータ長値DLC1と一致しているか否かを判断する。
【0062】
ここで、データ長がデータ長値DLC1と一致している場合には(S320:YES)、S340に移行する。一方、データ長がデータ長値DLC1と一致していない場合には(S320:NO)、S330にて、メッセージが格納されたとS310の処理で判断されたメッセージバッファMBのデータ長がデータ長値DLC2と一致しているか否かを判断する。
【0063】
ここで、データ長がデータ長値DLC2と一致している場合には(S330:YES)、S340に移行する。一方、データ長がデータ長値DLC2と一致していない場合には(S330:NO)、受信メッセージ格納処理を一旦終了する。
【0064】
そしてS340に移行すると、メッセージが格納されたとS110で判断されたメッセージバッファMBのメッセージレジスタR3に格納されたメッセージを、制御用RAMにコピーし、受信メッセージ格納処理を一旦終了する。
【0065】
このように構成されたECU10では、CANID毎に予め設定された、データパターン11でフレームを送信するタイミングに近づくと(S210:YES,S220:YES)、データパターン11のデータとデータ長値DLC1とを、このタイミングに対応したCANIDが格納されているメッセージバッファMBに格納する(S230)とともに、データパターン12でフレームを送信するタイミングに近づくと(S210:YES,S220:NO)、データパターン12のデータとデータ長値DLC2とを、このタイミングに対応したCANIDが格納されているメッセージバッファMBに格納する(S240)。
【0066】
このため、まず、データパターン11のデータとデータ長値DLC1とがメッセージバッファMBに格納されることにより、このメッセージバッファMBに格納されたCANID、データパターン11のデータ、およびデータ長値DLC1が含まれるフレームが送信される。さらに、データパターン12のデータとデータ長値DLC2とがメッセージバッファMBに格納されることにより、このメッセージバッファMBに格納されたCANID、データパターン12のデータ、およびデータ長値DLC2が含まれるフレームが送信される。つまり、同一のCANIDを含みデータ種別の異なるデータを含む2種類のフレームがそれぞれ異なるタイミングで送信される。そして、この2種類のフレームにはそれぞれ、データ種別を示す情報(すなわち、データ長値DLC1,2)が含まれている(以下、データパターン11のデータおよびデータ長値DLC1を含むフレームを第3フレーム、データパターン12のデータおよびデータ長値DLC2を含むフレームを第4フレームともいう)。
【0067】
このため、第3フレームを受信したECU10は、この受信フレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージ(すなわち、データパターン11のデータとデータ長値DLC1)を格納する一方、第4フレームを受信したECU10は、この受信フレームから抽出したCANIDと一致するCANIDが格納されているメッセージバッファMBに、フレームから抽出したメッセージ(すなわち、データパターン12のデータとデータ長値DLC2)を格納する。
【0068】
したがって、同一のCANIDが格納されているメッセージバッファMBに、データ種別が異なる2種類のデータを時分割で格納することができるとともに、同一のCANIDが格納されているメッセージバッファMBに格納されたデータのデータ種別をデータ長値DLC1,2により認識することができる。
【0069】
これにより、データパターン11のデータとデータパターン12のデータのそれぞれのデータ量が1つのメッセージバッファMBに記憶可能なデータ量を超えておらず、且つ、データパターン11のデータとデータパターン12のデータとの総データ量が、1つのメッセージバッファMBに記憶可能なデータ量を超えている場合において、データパターン11のデータを格納するためのメッセージバッファMBと、データパターン12のデータを格納するためのメッセージバッファMBとを別々に設ける必要がなくなり、予め設けられているメッセージバッファMBを用いて通信データ量の増大に対応することが可能になる。
【0070】
またデータ長は、フレームに含まれる情報として、従来、広く利用されているものであり、データ長値を含むフレームを送受信するように構成された車両用通信システム1において、フレームに新たな情報を追加することなく、データパターン11のデータとデータパターン12のデータとの識別を可能とすることができる。
【0071】
以上説明した実施形態において、S230の処理は本発明における第1格納手段、S240の処理は本発明における第2格納手段である。
また、S210とS220でYESと判断されるタイミングは本発明における第1タイミング、データパターン11のデータは本発明における第1データ種別のデータ、データ長値DLC1は本発明における第1データ種別情報、S210でYESと判断されS220でNOと判断されるタイミングは本発明における第2タイミング、データパターン12のデータは本発明における第2データ種別のデータ、データ長値DLC2は本発明における第2データ種別情報である。
【0072】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態においては、データパターンが2種類であるものを示したが、3種類以上であってもよい。
【符号の説明】
【0073】
1…車両用通信システム、10…ECU、11…CANコントローラ、12…CANトランシーバ、13…制御部、21…データ格納部、22…プロトコルコア部、23…アクセス制御部、31…CPU、32…ROM、33…RAM、BS…通信バス、MB…メッセージバッファ、R1…CANIDレジスタ、R2…DLCレジスタ、R3…メッセージレジスタ
【特許請求の範囲】
【請求項1】
メッセージと、該メッセージの種別であるメッセージ種別を示すメッセージ識別コードとが少なくとも格納される複数のメッセージバッファと、
前記メッセージバッファに格納されたデータを抽出してフレームを構成し通信バス上に送信するとともに、該通信バスを介して前記フレームを受信した場合には、受信した前記フレームから抽出した前記メッセージ識別コードと一致する前記メッセージ識別コードが格納されている前記メッセージバッファに、前記フレームから抽出した前記メッセージを格納する送受信手段とを備える車両用通信装置であって、
前記メッセージ識別コード毎に予め設定された第1タイミングになると、該第1タイミングに対応した前記メッセージ識別コードの前記メッセージについて予め設定された第1データ種別のデータと、前記第1データ種別を示す第1データ種別情報とを、前記第1タイミングに対応した前記メッセージ識別コードが格納されている前記メッセージバッファに格納する第1格納手段と、
前記メッセージ識別コード毎に前記第1タイミングと異なるように予め設定された第2タイミングになると、該第1タイミングに対応した前記メッセージ識別コードの前記メッセージについて前記第1データ種別と異なるように予め設定された第2データ種別のデータと、前記第2データ種別を示す第2データ種別情報とを、前記第2タイミングに対応した前記メッセージ識別コードが格納されている前記メッセージバッファに格納する第2格納手段とを備える
ことを特徴とする車両用通信装置。
【請求項2】
前記第1データ種別情報は、前記第1データ種別のデータについて、予め設定された第1チェックサム算出式に基づいて算出された第1チェックサム値であり、
前記第2データ種別情報は、前記第2データ種別のデータについて、前記第1チェックサム算出式と異なるように予め設定された第2チェックサム算出式に基づいて算出された第2チェックサム値である
ことを特徴とする請求項1に記載の車両用通信装置。
【請求項3】
前記第1データ種別情報は、前記第1データ種別のデータについてのデータ長であり、
前記第2データ種別情報は、前記第2データ種別のデータについてのデータ長であり、
前記第1データ種別のデータと前記第2データ種別のデータとで、データ長が異なる
ことを特徴とする請求項1に記載の車両用通信装置。
【請求項1】
メッセージと、該メッセージの種別であるメッセージ種別を示すメッセージ識別コードとが少なくとも格納される複数のメッセージバッファと、
前記メッセージバッファに格納されたデータを抽出してフレームを構成し通信バス上に送信するとともに、該通信バスを介して前記フレームを受信した場合には、受信した前記フレームから抽出した前記メッセージ識別コードと一致する前記メッセージ識別コードが格納されている前記メッセージバッファに、前記フレームから抽出した前記メッセージを格納する送受信手段とを備える車両用通信装置であって、
前記メッセージ識別コード毎に予め設定された第1タイミングになると、該第1タイミングに対応した前記メッセージ識別コードの前記メッセージについて予め設定された第1データ種別のデータと、前記第1データ種別を示す第1データ種別情報とを、前記第1タイミングに対応した前記メッセージ識別コードが格納されている前記メッセージバッファに格納する第1格納手段と、
前記メッセージ識別コード毎に前記第1タイミングと異なるように予め設定された第2タイミングになると、該第1タイミングに対応した前記メッセージ識別コードの前記メッセージについて前記第1データ種別と異なるように予め設定された第2データ種別のデータと、前記第2データ種別を示す第2データ種別情報とを、前記第2タイミングに対応した前記メッセージ識別コードが格納されている前記メッセージバッファに格納する第2格納手段とを備える
ことを特徴とする車両用通信装置。
【請求項2】
前記第1データ種別情報は、前記第1データ種別のデータについて、予め設定された第1チェックサム算出式に基づいて算出された第1チェックサム値であり、
前記第2データ種別情報は、前記第2データ種別のデータについて、前記第1チェックサム算出式と異なるように予め設定された第2チェックサム算出式に基づいて算出された第2チェックサム値である
ことを特徴とする請求項1に記載の車両用通信装置。
【請求項3】
前記第1データ種別情報は、前記第1データ種別のデータについてのデータ長であり、
前記第2データ種別情報は、前記第2データ種別のデータについてのデータ長であり、
前記第1データ種別のデータと前記第2データ種別のデータとで、データ長が異なる
ことを特徴とする請求項1に記載の車両用通信装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【公開番号】特開2013−82352(P2013−82352A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−224188(P2011−224188)
【出願日】平成23年10月11日(2011.10.11)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願日】平成23年10月11日(2011.10.11)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】
[ Back to top ]