(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら本発明の実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【0012】
図1に示されるように、本実施形態のECU10(電制制御装置)は、他の電子制御装置であるノードA5及びノードB6との間で、CAN(Controller Area Network)プロトコルに基づくCAN通信を行うものである。ECU10と、ノードA5と、ノードB6とは、CANバス4を経由して相互にメッセージを送受信可能なように構成されている。
【0013】
ECU10は、CANトランシーバ2と、CANコントローラ3と、を備えている。CANトランシーバ2は、CANコントローラ3とCANバス4との間で、メッセージを送受信するものである。CANトランシーバ2は、CANバス4の電気的条件を満たす信号を送受信するように構成されている。CANコントローラ3は、CANプロトコルに従って他のECU(ノードA5、ノードB6)との通信を制御するものである。
【0014】
CANコントローラ3について、
図2を参照しながらより詳細に説明する。
図2に示されるように、CANコントローラ3は、データ格納部31と、受信CAN−IDリスト32と、を備えている。
【0015】
データ格納部31は、32個のメールボックス0〜31を有している(
図2ではメールボックス0,1のみを示している)。メールボックス0_310は、設定項目と、それに対応する設定値を格納することができるように構成されている。メールボックス0_310には、CAN−IDレジスタ310aと、メッセージレジスタ310bと、送受信設定レジスタ310cと、DLCレジスタ310dと、が設けられている。
【0016】
CAN−IDレジスタ310aは、メッセージの種類及び優先度を表す識別コードであるCAN−IDを格納する領域である。メッセージレジスタ310bは、フレームに載せて送信するメッセージ又は受信フレームから抽出したメッセージを格納する領域である。送受信設定レジスタ310cは、メールボックスの使用方法(送信/受信)を示す送受信設定情報を格納する領域である。DLCレジスタ310dは、メッセージのデータ長を示すDLC(Data Length Code)を格納する領域である。
【0017】
メールボックス1_311も同様に、設定項目と、それに対応する設定値を格納することができるように構成されている。メールボックス1_311には、CAN−IDレジスタ311aと、メッセージレジスタ311bと、送受信設定レジスタ311cと、DLCレジスタ311dと、が設けられている。CAN−IDレジスタ311aは、CAN−IDレジスタ310aと同様であるので説明を省略する。メッセージレジスタ311b、送受信設定レジスタ311c、及びDLCレジスタ311dも同様に、メッセージレジスタ310b、送受信設定レジスタ310c、及びDLCレジスタ310dと同様であるので説明を省略する。また、メールボックス2以降についても同様の構成であるので、それらの説明を省略する。
【0018】
受信CAN−IDリスト32は、受信対象CAN−IDレジスタ321と、ノードレジスタ322と、DLCレジスタ323と、を備えている。受信対象CAN−IDレジスタ321は、このCANコントローラ3が受信するメッセージを示す識別コードであるCAN−IDを格納する領域である。ノードレジスタ322は、受信対象CAN−IDレジスタ321に格納されるCAN−IDに対応する送信元ノードを特定する情報を格納する領域である。DLCレジスタ323は、受信対象CAN−IDレジスタ321に格納されるCAN−IDが特定するメッセージのDLCを格納する領域である。
【0019】
続いて、
図3,4,5を参照しながら、CANコントローラ3の動作について説明する。
図3は、CANコントローラ3の動作について説明するフローチャートである。
図4は、最初にメッセージを受信した場合のCANコントローラ3の状態を示す図である。
図5は、
図4の状態の後にメッセージを受信した場合のCANコントローラ3の状態を示す図である。尚、受信CAN−IDリスト32の受信対象CAN−IDレジスタ321には、CAN−IDが「0x0123」「0x0111」「0x1234」であるメッセージが受信対象となるように情報が格納され、ノードレジスタ322及びDLCレジスタ323には対応する情報が格納されている。初期状態では、データ格納部31に含まれる各メールボックス0〜31には何も情報が格納されていない状態である。
【0020】
図4に示されるように、ノードA5から、CAN−IDが「0x0123」であるメッセージを受信したものとする。
図3のステップS101では、受信したCAN−ID「0x0123」と、受信CAN−IDリスト32に格納されている受信対象CAN−ID「0x0123」「0x0111」「0x1234」とを比較する。
【0021】
ステップS101に続くステップS102では、ステップS101の比較の結果、該当するCAN−IDが存在するか否かを判断する。該当するCAN−IDが存在しなければ処理を終了し、該当するCAN−IDが存在すればステップS103の処理に進む。本例では、受信したCAN−ID「0x0123」と、受信CAN−IDリスト32に格納されている受信対象CAN−ID「0x0123」とが一致するので、ステップS103の処理に進む。
【0022】
ステップS103では、受信したCAN−ID「0x0123」がデータ格納部31に含まれるメールボックス0〜31に割り当て済みか否かを判断する。割り当て済みであればステップS106の処理に進み、割り当て済みでなければステップS105の処理に進む。上述したように、初期状態では、データ格納部31に含まれる各メールボックスには何も情報が格納されていない状態なので、ステップS105の処理に進む。
【0023】
ステップS105では、未使用のメールボックスに、受信したCAN−ID及びDLCを登録する。
図4に示す例では、メールボックス0_310に、CAN−ID「0x0123」及びDLC「8」を登録する。
【0024】
ステップS106では、対象メールボックスに、受信したメッセージを記憶する。
図4に示す例では、受信したメッセージをメッセージレジスタ310bに記憶している。尚、この後に同じCAN−IDのメッセージを受信した場合は、メッセージレジスタ310bを書き換えていく。
【0025】
続いて、
図5に示されるように更にノードA5から、CAN−IDが「0x0111」であるメッセージを受信した場合の処理について説明する。
図3のステップS101に続くステップS102では、受信したCAN−ID「0x0111」と、受信CAN−IDリスト32に格納されている受信対象CAN−ID「0x0111」とが一致するので、ステップS103の処理に進む。
【0026】
ステップS103では、メールボックス0_310にCAN−ID「0x0123」が割り当てられ、新たに受信したCAN−ID「0x0111」はいずれのメールボックスにも割り当てられていないことが確認できる。従って、ステップS104の判断の結果、ステップS105の処理に進み、メールボックス1_311に、CAN−ID「0x0111」及びDLC「8」を登録する。続くステップS106では、受信したメッセージをメッセージレジスタ311bに記憶している。
【0027】
続いて、
図6及び
図7を参照しながら、CANコントローラ3の別の動作について説明する。尚、受信CAN−IDリスト32の受信対象CAN−IDレジスタ321には、CAN−IDが「0x0123」「0x0111」「0x1234」であるメッセージが受信対象となるように情報が格納され、ノードレジスタ322及びDLCレジスタ323には対応する情報が格納されている。初期状態では、データ格納部31に含まれる各メールボックスには何も情報が格納されていない状態である。
【0028】
図7に示されるように、ノードA5から、CAN−IDが「0x0123」であるメッセージを受信したものとする。
図6のステップS201では、受信したCAN−ID「0x0123」と、受信CAN−IDリスト32に格納されている受信対象CAN−ID「0x0123」「0x0111」「0x1234」とを比較する。
【0029】
ステップS201に続くステップS202では、ステップS201の比較の結果、該当するCAN−IDが存在するか否かを判断する。該当するCAN−IDが存在しなければ処理を終了し、該当するCAN−IDが存在すればステップS203の処理に進む。本例では、受信したCAN−ID「0x0123」と、受信CAN−IDリスト32に格納されている受信対象CAN−ID「0x0123」とが一致するので、ステップS203の処理に進む。
【0030】
ステップS203では、受信したCAN−ID「0x0123」がデータ格納部31に含まれるメールボックス0〜31に割り当て済みか否かを判断する。割り当て済みであればステップS208の処理に進み、割り当て済みでなければステップS205の処理に進む。上述したように、初期状態では、データ格納部31に含まれる各メールボックスには何も情報が格納されていない状態なので、ステップS205の処理に進む。
【0031】
ステップS205では、受信したCAN−ID「0x0123」に対応するノード「A」と同一のノードである受信対象CAN−IDがあるかどうかを判断する。同一ノードが受信CAN−IDリスト32に含まれていればステップS207の処理に進み、同一ノードが受信CAN−IDリスト32に含まれていなければステップS206の処理に進む。
図7に示す例では、ノード「A」に対応する受信対象CAN−IDは「0x0123」に加えて、「0x0111」もあるのでステップS207の処理に進む。
【0032】
ステップS207では、未使用のメールボックスに、受信したCAN−ID及びDLCを登録すると共に、同一ノードのCAN−ID及びDLCを登録する。
図7に示す例では、メールボックス0_310に、CAN−ID「0x0123」及びDLC「8」を登録すると共に、メールボックス1_311に、CAN−ID「0x0111」及びDLC「8」を登録する。
【0033】
ステップS206では、未使用のメールボックスに、受信したCAN−ID及びDLCを登録する。
【0034】
ステップS208では、対象メールボックスに、受信したメッセージを記憶する。
図7に示す例では、受信したメッセージをメッセージレジスタ310bに記憶している。従って、メールボックス0_310には、CAN−ID「0x0123」に対応するメッセージが格納されるが、メールボックス1_311には、CAN−ID「0x0111」が割り当てられただけの状態となっている。
【0035】
従来は、
図8に示されるような、CANコントローラ3Fが用いられており、
図2,4,5,7に例示するような受信CAN−IDリスト32を有するものではなく、データ格納部31Fのみを有するものであった。そのため、メールボックス0_310Fが有するCAN−IDレジスタ310aFには初期状態でCAN−IDが割り付けられており、メールボックス1_311F以降も同様に初期状態でCAN−IDが割り付けられていた。従って、メッセージレジスタ310bF、送受信設定レジスタ310cF、DLCレジスタ310dFに格納される情報は固定化されており、受信する可能性のあるメッセージの種別分だけメールボックスが必要であった。
【0036】
一方、本実施形態では、複数のメールボックス0〜31の中の少なくとも一つのメールボックスのCAN−IDレジスタが未使用状態とされている場合、例えば、メールボックス0_310のCAN−IDレジスタ310aが未使用状態とされている場合(
図2に示すようなメールボックスの状態である場合)であって、受信CAN−IDが受信対象メッセージを特定する受信対象CAN−IDと一致し、且つそれが初回の受信である場合に、複数のメールボックス0〜31の中の第1メールボックスであるメールボックス0_310に、受信対象CAN−IDを割り付けると共に、対応する受信メッセージを格納する新規割付処理を行っている。そのため、予めメールボックスにCAN−IDを割り付ける必要が無くなり、実際に受信したメッセージや高い確度で受信することが想定されるCAN−IDを割り付けることができ、メールボックスを効率的に使うことができる。
【0037】
また、メールボックス0_310のCAN−IDレジスタ310aに受信対象CAN−IDが既に割り付けられている場合(
図4に例示する状態)に、受信CAN−IDが、割り付け済みの受信対象CAN−IDと一致する場合は、対応する受信メッセージを格納し、受信CAN−IDが、割り付け済みの受信対象CAN−IDと一致しない場合(
図5に例示する状態)は、メールボックス0_310の受信対象CAN−IDを変更しない割付維持処理を行う。この場合、メールボックス1_311に受信対象CAN−IDを割り付ける新規割付処理を行う。
【0038】
このような割付処理を行うにあたって、ECU10の電源投入時に、メールボックス0〜31それぞれのCAN−IDレジスタ310a,311a等に割り付けられているCAN−IDを保持することが一つの好ましい態様である。ECU10が自動車に搭載されることを想定した場合、ノードA5やノードB6の構成が変わることはその自動車が商品として流通した後は想定しにくいので、割付状態を保持することで起動処理を円滑に行うことができる。
【0039】
一方、このような割付け処理を行うにあたって、ECU10の電源投入時に、メールボックス0〜31それぞれのCAN−IDレジスタ310a,311a等に割り付けられているCAN−IDを初期化することも別の好ましい態様である。上述したように、ECU10を搭載した自動車が商品として流通した後は、ノードA5やノードB6の構成が変わることが想定しにくいものの、自動車を開発中の状況においてはノードA5やノードB6の構成が変わることが想定される。このような状況に対応するため、上述した初期化処理を行うことも好ましい態様である。