JP4225285B2 - 通信ノード故障検出装置及び方法 - Google Patents

通信ノード故障検出装置及び方法 Download PDF

Info

Publication number
JP4225285B2
JP4225285B2 JP2005047254A JP2005047254A JP4225285B2 JP 4225285 B2 JP4225285 B2 JP 4225285B2 JP 2005047254 A JP2005047254 A JP 2005047254A JP 2005047254 A JP2005047254 A JP 2005047254A JP 4225285 B2 JP4225285 B2 JP 4225285B2
Authority
JP
Japan
Prior art keywords
bus
priority
data frame
arbitration
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005047254A
Other languages
English (en)
Other versions
JP2006237832A (ja
Inventor
信洋 横川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2005047254A priority Critical patent/JP4225285B2/ja
Publication of JP2006237832A publication Critical patent/JP2006237832A/ja
Application granted granted Critical
Publication of JP4225285B2 publication Critical patent/JP4225285B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、通信ノード故障検出装置及び方法に係り、特に、優先度を示す調停領域が設けられたデータフレームをCANバスに送信すると共に、その送信過程でCANバスにその送信データフレームよりも優先度の高いものが流れる場合にそのデータフレームの送信を中断するノードの故障を検出するうえで好適な通信ノード故障検出装置及び方法に関する。
従来から、同じバスラインに接続された複数のノード間でそのバスラインへのデータ送信が競合しないように調停が実施されるCAN通信が知られている(例えば、特許文献1や特許文献2参照)。CAN通信において、バスラインは、CAN−H及びCAN−Lの一対の通信ラインから構成されており、その状態がCAN−HとCAN−Lとの間に電位差が生じないレセッシブレベル(ビット“1”)とレセッシブレベルよりも優位なその間に電位差が生ずるドミナントレベル(ビット“0”)との何れか一に切り替わるようになっている。
また、CAN通信に用いられるデータフレームは、データの先頭を示すスタートオブフレーム(SOF;ビット“0”)の次に設けられた、送信の優先度を示す11ビット又は29ビットの調停領域(IDフィールド)を有している。CAN通信において、2つ以上のノードがバスラインへ同時にデータを送信するときは、それらのノード間での調停は、優先度の高いデータフレーム具体的にはMSBからドミナントレベルのビットが多く継続するデータフレームを送信するノードが優先され(調停に勝ち)、優先度の低いデータフレーム具体的にはレセッシブレベルがより早く現れるデータフレームを送信するノードが調停負けするように実施される。
各ノードは、少なくとも自己のデータフレームの送信過程においてバスラインの通信状態を監視する。そして、その監視結果に基づいて自己の送信したデータフレームのビットが“1”であるにもかかわらずモニタ結果がビット“0”であるときは、自己のデータ送信に関し調停負けが生じたとして、その後のデータフレームの送信を一時中止(中断)し、所定時間経過後に再び同一のデータフレームの送信を繰り返す。
特開2000−165415号公報 特開2001−119416号公報
ところで、ノードは、データフレーム送信中にCAN−HとCAN−Lとの間を電位差が生じたままに維持させる故障(バス支線の一部断線を含む)を起こすことがある。かかる故障が生じているノードがその故障を認識することなくバスラインに所望のデータフレームを送信する状況を考えると、そのデータフレームの調停領域におけるビット“1”が送信される際にもそのモニタ結果がビット“0”に維持されることとなり、送信フレームとモニタ結果とが一致しないものとなる。この場合、故障が生じているノード(特に、調停領域にCAN通信のルールに従ったスタッフビットが挿入されないほどに低優先のデータフレームを送信するノード)としては、自己の故障と認識せずに、単に他ノードとの調停に負けたと判定してしまい、即座にデータ送信を中断する。調停負け自体は故障ではないため、以後、その故障ノードは、故障に起因してモニタ結果が“0”に固定されて不一致が生ずるにもかかわらず同じデータフレームの再送信を繰り返すこととなる。その結果、バスライン上へ故障ノードから調停領域で途切れる不完全なデータフレームが乱発することとなり、故障が生じていない他の正常なノードからのデータフレームが破壊され続ける不都合が発生する。
本発明は、上述の点に鑑みてなされたものであり、自ノードの故障を、他ノードとの間で調停負けが生じたと継続して誤判定することなく確実に検出することが可能な通信ノード故障検出装置及び方法を提供することを目的とする。
上記の目的は、優先度を示す調停領域が設けられたデータフレームをCANバスに送信するデータ送信手段と、前記データ送信手段により前記データフレームをCANバスに送信する過程で該CANバスの通信状態を監視するモニタ手段と、前記モニタ手段による前記通信状態がCANバスに送信している前記データフレームのものよりも優先度の高いものである場合に、他ノードとの間で調停負けが生じたとして該データフレームのCANバスへの送信を中断する送信中断手段と、を備えるノードの故障を検出する装置であって、前記調停負けが同一の前記データフレームに対して所定回数連続して生じたか否かを判別する調停負け回数判別手段と、前記調停負け回数判別手段により前記調停負けが前記所定回数連続して生じたと判別される場合に、前記データ送信手段によりCANバスに送信する該データフレームの前記調停領域における優先度を、CAN通信のルールに従ってスタッフビットが挿入される所定の高優先のものに変更する優先度変更手段と、前記優先度変更手段による優先度変更後、前記データ送信手段により該データフレームがCANバスに送信される際に、前記モニタ手段によるCANバスの通信状態の監視結果としてスタッフビットの状態が該優先度変更手段による優先度変更に係る挿入されたものと不一致であるときは、自ノードにCANバスをドミナントレベルに固着させる故障が生じていると判定する故障検出手段と、を備える通信ノード故障検出装置により達成される。
上記の目的は、優先度を示す調停領域が設けられたデータフレームをCANバスに送信するデータ送信手段と、前記データ送信手段により前記データフレームをCANバスに送信する過程で該CANバスの通信状態を監視するモニタ手段と、前記モニタ手段による前記通信状態がCANバスに送信している前記データフレームのものよりも優先度の高いものである場合に、他ノードとの間で調停負けが生じたとして該データフレームのCANバスへの送信を中断する送信中断手段と、を備えるノードの故障を検出する方法であって、前記調停負けが同一の前記データフレームに対して所定回数連続して生じたか否かを判別する調停負け回数判別ステップと、前記調停負け回数判別ステップにおいて前記調停負けが前記所定回数連続して生じたと判別される場合に、前記データ送信手段によりCANバスに送信する該データフレームの前記調停領域における優先度を、CAN通信のルールに従ってスタッフビットが挿入される所定の高優先のものに変更する優先度変更ステップと、前記優先度変更ステップにおける優先度変更後、前記データ送信手段により該データフレームがCANバスに送信される際に、前記モニタ手段によるCANバスの通信状態の監視結果としてスタッフビットの状態が該優先度変更手段による優先度変更に係る挿入されたものと不一致であるときは、自ノードにCANバスをドミナントレベルに固着させる故障が生じていると判定する故障検出ステップと、を備える通信ノード故障検出方法により達成される。

この態様の発明において、調停負けが同一のデータフレームに対して所定回数連続して生じたと判別されると、そのデータフレームの調停領域における優先度が、CAN通信のルールに従ってスタッフビットが挿入される所定の高優先のものに変更される。このように調停領域における優先度を所定の高優先のものに変更すれば、その変更後のデータフレームがスタッフビットが挿入された状態で送信されることとなるが、このスタッフビットは調停領域での優先度を示すものではないため、このスタッフビットが“1”であればモニタ結果もビット“1”である必要がある。すなわち、挿入されたスタッフビットに対するモニタ結果が一致すれば、CANバスをドミナントレベルに固着させる故障はノードには生じていないと判断できる一方、そのモニタ結果が一致しなければ、その故障がノードに生じていると判断できる。従って、優先度変更後のCANバスの通信状態を監視すれば、ノードの故障を、他ノードとの間で調停負けが生じたと継続して誤判定することなく確実に検出することが可能となる。
この場合、上記した通信ノード故障検出装置において、前記データフレームは、11ビットの前記調停領域を有することとしてもよい。
また、上記した通信ノード故障検出装置において、前記データフレームは、29ビットの前記調停領域を有すると共に、前記優先度変更手段は、前記調停負け回数判別手段により前記調停負けが前記所定回数連続して生じたと判別された場合に、前記データフレームの前記調停領域を29ビットのものから11ビットのものに変更したうえで、該調停領域の優先度をCAN通信のルールに従ってスタッフビットが挿入される所定の高優先のものに設定することとしてもよい。
一般に、29ビットの調停領域を有するデータフレームではそのMSBから3ビットがビット“1”を有する“110”バイナリと固定されているため、29ビットの調停領域のままでその優先度を高優先のものへ切り替えても、ノード故障の発生にもかかわらず他ノードとの間で調停負けが生じたとの誤判定が継続するおそれがある。これに対して、この態様の発明によれば、調停負けが同一のデータフレームに対して所定回数連続して生じたと判別された場合には、一旦、そのデータフレームの調停領域が29ビットのものから11ビットのものに変更されたうえで、その優先度がスタッフビットが挿入される所定の高優先のものに変更されるため、29ビットの調停領域を有するデータフレームを送信するノードの故障でも、他ノードとの間で調停負けが生じたと継続して誤判定することなく確実に検出することが可能となる。
本発明によれば、ノードの故障を、他ノードとの間で調停負けが生じたと継続して誤判定することなく確実に検出することができる。
以下、図面を参照して、本発明の具体的な実施の形態について説明する。図1は、本発明の一実施例である通信ノード故障検出装置を搭載するノードを備えるネットワークシステムの要部構成図を示す。本実施例のネットワークシステムは、例えば車両に搭載されるCAN(Controller Area Network)通信ネットワークシステムである。
本実施例のシステムは、図1に示す如く、ノード10を備えている。ノード10は、車両の各種制御装置に設けられるコンピュータを主体に構成された電子制御ユニットであるECUやインテリジェントなセンサであって、複数設けられている。例えば、ステアリング舵角に応じた信号を出力する舵角センサ、車両の重心軸周りに生ずるヨーレートに応じた信号を出力するヨーレートセンサ、スロットル開度やアクセル開度,エンジン水温等に基づいてエンジン制御を行うエンジンECU、車輪速やヨーレート,ステアリング舵角等に基づいて車両の旋回挙動を安定化させるVSC(Vehicle Stability Control)−ECU、シフト操作位置等に基づいて車両のシフトポジションを制御するトランスミッションECU、ブレーキ踏力やステアリング舵角等に基づいて車両の制動力を制御するブレーキECU、ステアリング舵角等に基づいて操舵アシスト力を制御するパワーステアリングECU、エアコン操作スイッチや車内温等に基づいて車内のエアコンディションを制御するオートエアコンECU等である。
各ノード10は、共通のCANバス12を介して互いに接続されており、CANバス12によるCAN通信ネットワークを構成している。CANバス12は、CAN−HとCAN−Lとのツイストペア線からなる共有バスであり、CAN−HとCAN−Lとの間の電位差を切り替えてレベル変化する。具体的には、そのレベルがCAN−HとCAN−Lとの間に電位差が生じないレセッシブレベル(ビット“1”)とレセッシブレベルよりも優位なその間に電位差が生ずるドミナントレベル(ビット“0”)との何れか一に切り替わるようになっている。CANバス12は、各ノード10から送出(送信)されるデータを後に詳述する所定の通信プロトコルに従って時分割多重で伝送(多重通信)することを可能としている。このため、各ノード10は、他のノード10との間でCANバス12を介して各種のデータを送受信することが可能である。
各ノード10は、中央演算処理装置であるCPU20、及び、CANバス12に接続するバスインターフェース22を備えている。CPU20には、RAM24、ROM26、及びコントローラ28が内蔵されている。RAM24は、CPU20の演算中の情報や演算結果を格納する領域である。ROM26は、CPU20が使用するプログラムを格納すると共に、自ノード10が受信すべき他ノード10からのデータ固有の識別IDを格納する領域である。コントローラ28は、通信データを格納するレジスタを有し、設定した識別IDとCANバス12上の通信データ中の識別IDとを照合して、その照合が一致する場合に、その受信データをレジスタに格納する。
CPU20は、CAN通信の所定の通信プロトコルに準じて作成されROM26に格納されたプログラムに従ってコントローラ28を制御して、CANバス12を介したデータフレームの送受信制御を行う。具体的には、自ノード10の出力データをCANバス12を介して他のノード10へ送信すべくデジタル化し、また、他のノード10からCANバス12を介して受信した入力データをデコードして自身での制御を実行する。また、バスインターフェース22は、コントローラ28により制御され、他ノード10にデータを送信すると共に、自ノード10に送信されてきたデータを受信する。
各ノード10がCANバス12へ向けて送出するデータは、予め所定の構成を有するデータフレームにより構成されている。すなわち、このデータフレームは、少なくとも、先頭から順に、フレームの始まりを示すスタートオブフレーム(SOF)と、データ種類として他の種類のデータと区別するための各データ固有の識別IDを示すIDフィールド(複数のノード10からの送信データが衝突した際における当該データを送信するうえでの優先順位を示す調停領域)と、から構成されている。SOFは、常にCAN−HとCAN−Lとの間に電位差が生ずるドミナントレベル(ビット“0”)の1ビットデータである。また、IDフィールドは、高優先のデータほどMSBからドミナントレベルのビットが多く継続し、低優先のデータほどMSBにより近くにレセッシブレベルが現れる11ビットのデータである。
また、データフレームは、調停領域であるIDフィールドの後は、例えば、当該データの長さを示すデータ長コード(DLC)と、データ自体の内容(例えば、車輪速の情報や駆動トルクの制御指令値等)を示すフィールドと、伝送エラーをチェックするためのCRCフィールドと、正常に受信が完了したことを確認するためのフィールドと、フレームの終わりを示すエンドオブフレーム(EOF)と、から構成されている。
尚、本実施例のネットワークシステムは、各ノード10がCANバス12を介して他のノード10へ送信すべきデータを時分割多重で送信することが可能なシステムである。各ノード10は、それぞれ定期或いは不定期にデータをCANバス12へ向けて送出するが、CANバス12に他のデータが流れていない状態ではデータ送出を開始することができる一方、他の1以上のノード10から同時にデータ送信が開始されたときは送信優先順位に従ってデータ送信を行い、他のノード10からのデータ送信が行われているときは一定時間待機した後にデータ送信を行う。
すなわち、本実施例のCAN通信システムにおいては、複数のノード10からのデータ送信が同時に開始されるときは、それらのノード10間でデータ送信の許可・禁止を決定する調停が行われる。具体的には、各ノード10はそれぞれ、データフレームの1ビット目のSOF(ビット“0”)からCANバス12への送信を開始し、次のIDフィールドをMSBから順にCANバス12へ送信する。各ノード10はそれぞれ、少なくとも自己のバスインターフェース22からCANバス12に対してデータフレームの送信を行った場合、その送信ごとに、CANバス12に流れた送信結果(送信ビット)を監視(モニタ)する。詳細には、ノード10が送信すべきであるとして生成した所望のデータフレームの各ビットと、実際にCANバス12に流れたデータフレームの各ビットとを比較することにより、自ノード10による所望のデータフレームがCANバス12に送信されてその送信が成功したか否かを判別する。
複数のノード10からのデータ送信が同時に開始されるときには、それらの各ノード10は、まず、ビット“0”のSOFを送信するので、自己のデータフレームのSOFに関しその送信が成功したと判別する。そして、次にはIDフィールドの送信をそのMSBから順に行うが、この送信過程で、自己の送信する所望のIDフィールドのビットが“0”である状況下において実際にCANバス12に流れたデータのモニタ結果としてビット“0”を得たときは、自己のデータ送信に関し調停に勝ちその送信が成功したと判断して以後のデータフレームの送信を継続する。一方、自己の送信する所望のIDフィールドのビットが“1”である状況下において実際にCANバス12に流れたデータのモニタ結果としてビット“0”を得たときは、自己のデータ送信に関し調停負けが生じその送信が失敗したと判断して以後のデータフレームの送信を一時中止(中断)する。
かかるCAN通信システムにおいては、複数のノード10からのデータ送信が同時に開始されたときは、送信優先度の高いデータフレーム具体的にはIDフィールドのMSBからドミナントレベルのビットが多く継続するデータフレームを送信するノード10が優先され(調停勝ちし)、送信優先度の低いデータフレーム具体的にはIDフィールドでレセッシブレベルがより早く現れるデータフレームを送信するノード10が調停負けするように、それらのノード10間でのデータ送信に関する調停が実施される。尚、ノード10は、CANバス12へのデータフレームの送信途中で自己の調停負けを起こした場合には、その後所定時間が経過した後に再び同一のデータフレームの送信をSOFから順に開始するものとし、調停負けごとにその送信を繰り返し行う。
ところで、ノード10は、データフレームの送信中にCANバス12のCAN−HとCAN−Lとの間を電位差が生じたままのドミナントレベル(ビット“0”)に維持させる故障(CANバス12の支線の一部断線を含む)を起こすことがある。かかる故障を起こしているノード(以下、故障ノードと称す)10がその故障を認識することなくCANバス12に対するデータ送信を行うものとすると、故障が生じていない他の正常なノード(以下、正常ノードと称す)10からCANバス12へ送信されるデータフレームが破壊され続ける不都合が発生する。
すなわち、故障ノードがその故障を認識することなくCANバス12に対してデータフレームを送信する状況を考えると、そのデータフレーム中におけるビット“0”のSOFやその後の調停領域であるIDフィールドにおけるビット“0”のデータが送信される際には、モニタ結果がビット“0”に維持されて送信すべきデータフレームのものと一致するので、不都合は生じないが、IDフィールドにおけるビット“1”のデータが送信される際にもモニタ結果がビット“0”に維持されることとなり、送信すべきデータフレームのものと一致しないこととなる。
このようなモニタ結果の不一致が発生すると、故障ノード(特に、調停領域にCAN通信のルールに従ったスタッフビットが挿入されないほどに低優先のデータフレームを送信するノード)10は、自己の故障と認識せずに単に他ノード10との間の調停に負けたと判定してしまう。このため、故障ノード10は、自己の故障に起因して自己のデータ送信に対するモニタ結果が“0”に固定されるにもかかわらず調停負けが生じたと誤判定することに起因してそのデータフレームの送信中断と再送信とを繰り返すこととなり、その結果、CANバス12上へ故障ノード10からIDフィールド中に途切れる不完全なデータフレームが乱発することとなり、正常ノード10からのデータフレームが破壊され続けてしまう。
そこで、本実施例のシステムは、自ノード10の故障を、他ノード10との間で調停負けが生じていると誤判定するのを継続させることなく確実に検出することとしている。以下、本実施例のシステムにおいて行われる各ノード10における故障を検出する手法を説明する。
図2は、本実施例のノード10において通信ノード故障検出装置を構成するCPU20のコントローラ28が実行する制御ルーチンの一例のフローチャートを示す。図3は、本実施例の通信ノード故障検出装置においてデータフレームのIDフィールド(調停領域)における優先度を変更するのに適した優先度を説明するための図を示す。また、図4は、本実施例の通信ノード故障検出装置において行われるノード故障検出の手法を説明するための図を示す。
CANバス12に接続する各ノード10はそれぞれ、データフレームの送信ごとに、その送信過程で、所望データフレームのIDフィールドにおけるビット“1”のデータが送信される際にモニタ結果がビット“0”に維持されることにより、実際にデータ送信に関する調停が行われて調停負けが生じたか否かを判別する(ステップ100)。その結果、調停負けが生じたと判別された場合は、所定のカウンタCNTを“1”だけインクリメントする処理を実行する(ステップ102)。尚、この所定のカウンタCNTは、同じデータフレームの送信に関し調停負けが連続して生じた回数を計数するためのカウンタである。一方、調停負けが生じていないと判別された場合は、上記した所定のカウンタCNTを“0”にリセットする処理を実行し(ステップ104)、上記ステップ100の処理を繰り返す。
ノード10は、上記の如く所定のカウンタCNTを“1”だけインクリメントする(ステップ102)と、次に、その所定のカウンタCNTが所定回数N0に達したか否かを判別する(ステップ106)。尚、この所定回数N0は、ノード10が故障しているか否かを検出すべきタイミングとして設定された、同じデータフレームの送信に関し調停負けが連続して生ずべき回数であり、2回以上の回数(例えば5回)に設定されている。その結果、否定判定がなされた場合は、再び上記ステップ100の処理を行い、一方、肯定判定がなされた場合は、その送信を繰り返しているデータフレームの調停領域であるIDフィールドが示す優先度を、所定の高優先のものに変更する(ステップ108)。
ここで、CAN通信においては、5ビット連続して同じデータ(“0”又は“1”)の送信を行う際には6ビット目にそのデータと反転したデータ(“1”又は“0”;スタッフビット)を挿入しなければならないというルールが存在する。
例えば、図3(A)に示す如く11ビットのIDフィールドが“080(=00010000000バイナリ)”であるときは、データフレームのSOFから4ビット連続してデータが“0”となるが、5ビット目がデータ“0”ではないため、6ビット目にスタッフビット“1”が挿入されることはない。一方、IDフィールドの4ビット目がデータ“1”となった後、5ビット連続してデータが“0”となるため、その直後にはスタッフビット“1”が挿入される。尚、IDフィールドが“080”よりも大きい値であるときは、この“080”のIDフィールドのものよりも上位にデータ“1”が現れるので、“080”のものと同様に、IDフィールドの上位にスタッフビット“1”が挿入されることはない。
このように11ビットのIDフィールドが、MSBからデータ“0”が4ビット以上連続しない“080”以上であるときは、IDフィールドの上位にスタッフビット“1”が挿入されることなくデータフレームの送信が行われる。かかるデータフレームを送信するノード10が故障ノードであるときは、SOFから数えて2ビット目から5ビット目までの何れかにビット“1”のデータが送信されることとなるが、そのモニタ結果はビット“0”に維持されるので、調停負けが発生したとしてその送信が中断されて、それが繰り返される。
一方、図3(B)に示す如く11ビットのIDフィールドが“07F(=00001111111バイナリ)”であるときは、データフレームのSOFから5ビット連続してデータが“0”となるため、6ビット目にスタッフビット“1”が挿入される。尚、IDフィールドが“07F”よりも小さい値であるときも、この“07F”のIDフィールドのものと同位又はそれよりも下位で初めてデータ“1”が現れるので、“07F”のものと同様に、IDフィールドの上位から5ビット目(SOFを含めれば6ビット目)にスタッフビット“1”が挿入される。
このように11ビットのIDフィールドが、MSBからデータ“0”が4ビット以上連続する“07F”以下であるときは、データフレームの送信がIDフィールドの上位にスタッフビット“1”を挿入した状態で行われる。かかるデータフレームを送信するノード10が故障ノードであるときは、SOFから数えて6ビット目に必ずビット“1”のデータが送信されることとなるが、そのモニタ結果はビット“0”に維持されて不一致が生ずることとなる。このスタッフビットのデータは、IDフィールド内に挿入されたものであるが、送信優先度を示す調停に関するものではないため、調停負けが生じたと判定することはできない一方で、モニタ結果が必ず“1”となる必要がある。従って、挿入されたスタッフビットに対するモニタ結果が一致すれば、CANバス12をドミナントレベル“0”に固着させる故障はノード10には生じていないと判断できる一方、そのモニタ結果が一致しなければ、かかる故障がノード10に生じていると判断できる。
このような点に鑑みて、ノード10は、上記ステップ108においてIDフィールドの示す優先度を、CAN通信のルールに従ってスタッフビット“1”が挿入される“07F”以下の高優先のものへ変更する。そして、その優先度変更後のデータフレームをSOFから順にCANバス12に対して送信し(ステップ110)、そのデータフレームの送信過程において先頭から6ビット目のスタッフビットの状態をモニタする(ステップ112)。
その結果、ノード10は、スタッフビットに対するモニタ結果が“1”となり一致するときは、自ノード10が正常であるとして以後のデータフレームの送信を継続する(ステップ114)。一方、スタッフビットに対するモニタ結果が“0”となり不一致であるときは、自ノード10にCANバス12をドミナントレベル“0”に固着させる故障が生じていると判定する(ステップ116)。
例えば、故障しているノード10が図4(A)に示す如く“080”以上である“120”の11ビットデータを有するIDフィールドを送信する場合、その故障ノード10は、まず、(1)SOFからデータフレームの送信を開始し、そして次に、(2)“00100100000”のバイナリデータを有するIDフィールドをMSBから順に送信する。これらの送信過程で、故障ノード10は、IDフィールドのMSBから数えて2ビット目までの送信では、モニタ結果もビット“0”となるので調停勝ちしているとして自己のデータフレームの送信を継続する一方、そのMSBから数えて3ビット目のビット“1”のデータの送信では、モニタ結果がビット“0”となるので(3)調停負けが生じたと誤判定して、(4)以後のデータフレームの送信を中断する。そして、(5)所定時間経過後に上記(1)〜(4)の処理を繰り返し行う。
故障ノード10は、上記(1)〜(4)の処理を繰り返し行って同一のデータフレームの送信中断が生じた回数或いは調停負けが生じた回数が所定回数連続したと判別した場合、(6)その11ビットデータのIDフィールドを、“120”の11ビットデータから例えば図4(B)に示す如く“07F”以下である“030”の11ビットデータへ変更する。そして次回データ送信をすべき際には、そのIDフィールドを有するデータフレームの送信をSOFから開始し、SOFの次に、(7)“00000110000”バイナリデータをMSBから順に送信する。
故障ノード10は、IDフィールドのMSBから数えて4ビット目までの送信では、モニタ結果も“0”となるので調停勝ちしているとしてその自己のデータフレームの送信を継続できる。一方、(8)IDフィールドのMSBから数えて5ビット目(SOFから数えて6ビット目)にはCAN通信のルールに従ってスタッフビット“1”を挿入したうえで、そのスタッフビットの送信を実行する。しかし、このスタッフビットの送信ではそのモニタ結果が“0”となり不一致となるので、(9)スタッフエラーが生じていると認識し、自ノード10にCANバス12をドミナントレベル“0”に固着させる故障が生じていると判定する。ノード10は、かかる自己の故障判定を行った場合、ノード故障処理として、(10)継続中のデータフレームの送信を以後停止し、また、後の故障診断のために、自ノード10の故障(CANバス12の支線の一部断線を含む)が生じている旨を故障診断用データとして自ノード10の有するメモリ内に記憶するなどの処理を実行する。
このように本実施例によれば、同一のデータフレームの送信に関し調停負けが所定回数連続したノード10において、そのデータフレームの送信優先度を、CAN通信のルールに従ってスタッフビットが挿入されるほどの高優先のものへ変更したうえで、そのスタッフビットのモニタ結果に基づいて、CANバス12をドミナントレベル“0”に固着させる故障が自ノード10に生じたか否かを検出することができる。従って、本実施例の通信ノード故障検出装置によれば、自ノード10に生じたCANバス12をドミナントレベル“0”に固着させる故障を、他ノード10とのデータ送信に関する調停負けが生じていると継続して誤判定することなく確実に検出することが可能となっている。
また、同一のデータフレームの送信に関して調停負けが自ノード10の故障に起因するものではなく他ノード10との競合に起因して偶然的に所定回数連続する場合もある。これに対して、本実施例の通信ノード故障検出装置においては、かかる事態が生じても、スタッフビットに対するモニタ結果が“1”となり一致する筈であるので、自ノード10に故障が生じていると誤判定されるのを防止することができる。従って、本実施例によれば、正常なノード10或いはその正常なノード10に接続するCANバス12の支線を誤って交換してしまう事態を防止することができる。
ノード10の故障が検出されると、そのノード10からの以後のデータフレームの送信は停止される。このため、本実施例のシステムによれば、故障ノード10からCANバス12上へ調停領域であるIDフィールドの中途で途切れる不完全なデータフレームが乱発されるのを抑制することができ、その乱発に起因した正常ノード10からのデータフレームの破壊を大幅に低減することが可能となっている。また、ノード10の故障が検出されると、その故障発生の旨がメモリに記憶される。この点、本実施例のシステムによれば、ノード故障診断時に、各ノード10の有するメモリに格納されている情報それぞれからノード故障の有無を外部に抽出して読み出すことができ、これにより、その故障診断を正確に行うことができ、正常なノード10やCANバス12の誤交換を防止することが可能となっている。
尚、上記の実施例においては、ノード10のCPU20が、バスインターフェース22からCANバス12へIDフィールドが設けられたデータフレームを送信することにより特許請求の範囲に記載した「データ送信手段」が、少なくともデータ送信過程でCANバス12に流れた送信結果をモニタすることにより特許請求の範囲に記載した「モニタ手段」が、モニタ結果が自己の送信中のデータフレームのものよりも優先度の高い者である場合に、他ノード10との間で調停負けが生じたとしてそのデータフレームのCANバス12への送信を中断することにより特許請求の範囲に記載した「送信中断手段」が、図2に示すルーチン中ステップ106の処理を実行することにより特許請求の範囲に記載した「調停負け回数判別手段」及び「調停負け回数判別ステップ」が、ステップ108の処理を実行することにより特許請求の範囲に記載した「優先度変更手段」及び「優先度変更ステップ」が、ステップ112〜116の処理を実行することにより特許請求の範囲に記載した「故障検出手段」及び「故障検出ステップ」が、それぞれ実現されている。
ところで、上記の実施例においては、IDフィールドが11ビットデータであるデータフレームを各ノード10がCANバス12に送信するものとしているが、IDフィールドが29ビットデータであるデータフレームを送信することとしてもよい。但し、IDフィールドが29ビットデータであるデータフレームをノード10が送信する状況にあるときは、その故障検出を以下の如く行う必要がある。
すなわち、29ビットのIDフィールドでは、一般に、MSBを含めそのMSBから3ビットが“110”バイナリと固定されているため、29ビットのままでその優先度を所定の高優先のものへ切り替えても、ノード故障の発生にもかかわらず他ノードとの間で調停負けが生じたとの誤判定が継続するおそれがある。そこで、この構成では、調停負けが同一のデータフレームに対して所定回数連続した場合、一旦、そのデータフレームのIDフィールドを29ビットのものから11ビットのものに変更し、そのうえでそのデータフレームのIDフィールドをCAN通信のルールに従ってスタッフビットが挿入されるほどの高優先のものに設定する。かかる構成によれば、送信優先度の変更後は、上記した実施例と同様の手法でスタッフビットのモニタ結果からノード故障の有無を検出できるので、29ビットのIDフィールドを有するデータフレームを送信するノード10の故障でも、他ノード10との間で調停負けが生じたと継続して誤判定することなく確実に検出することが可能となり、上記した実施例と同様の効果を得ることが可能となる。
また、上記の実施例においては、CAN通信ネットワークシステムを、車両の有する各種の電子制御装置をノード10としてCANバス12を介して互いに接続させたものとしたが、本発明はこれに限定されるものではなく、車両以外に搭載されて、複数のノード10をCANバス12を介して接続させたものであればよい。
本発明の一実施例である通信ノード故障検出装置を搭載するノードを備えるシステムの要部構成図である。 本実施例の通信ノード故障検出装置において実行される制御ルーチンの一例のフローチャートである。 本実施例の通信ノード故障検出装置においてデータフレームの調停領域における優先度を変更するのに適した優先度を説明するための図である。 本実施例の通信ノード故障検出装置において行われるノード故障検出の手法を説明するための図である。
符号の説明
10 ノード
12 CANバス
20 CPU
28 コントローラ

Claims (4)

  1. 優先度を示す調停領域が設けられたデータフレームをCANバスに送信するデータ送信手段と、前記データ送信手段により前記データフレームをCANバスに送信する過程で該CANバスの通信状態を監視するモニタ手段と、前記モニタ手段による前記通信状態がCANバスに送信している前記データフレームのものよりも優先度の高いものである場合に、他ノードとの間で調停負けが生じたとして該データフレームのCANバスへの送信を中断する送信中断手段と、を備えるノードの故障を検出する装置であって、
    前記調停負けが同一の前記データフレームに対して所定回数連続して生じたか否かを判別する調停負け回数判別手段と、
    前記調停負け回数判別手段により前記調停負けが前記所定回数連続して生じたと判別される場合に、前記データ送信手段によりCANバスに送信する該データフレームの前記調停領域における優先度を、CAN通信のルールに従ってスタッフビットが挿入される所定の高優先のものに変更する優先度変更手段と、
    前記優先度変更手段による優先度変更後、前記データ送信手段により該データフレームがCANバスに送信される際に、前記モニタ手段によるCANバスの通信状態の監視結果としてスタッフビットの状態が該優先度変更手段による優先度変更に係る挿入されたものと不一致であるときは、自ノードにCANバスをドミナントレベルに固着させる故障が生じていると判定する故障検出手段と、
    を備えることを特徴とする通信ノード故障検出装置。
  2. 前記データフレームは、11ビットの前記調停領域を有することを特徴とする請求項1記載の通信ノード故障検出装置。
  3. 前記データフレームは、29ビットの前記調停領域を有すると共に、
    前記優先度変更手段は、前記調停負け回数判別手段により前記調停負けが前記所定回数連続して生じたと判別された場合に、前記データフレームの前記調停領域を29ビットのものから11ビットのものに変更したうえで、該調停領域の優先度をCAN通信のルールに従ってスタッフビットが挿入される所定の高優先のものに設定することを特徴とする請求項1記載の通信ノード故障検出装置。
  4. 優先度を示す調停領域が設けられたデータフレームをCANバスに送信するデータ送信手段と、前記データ送信手段により前記データフレームをCANバスに送信する過程で該CANバスの通信状態を監視するモニタ手段と、前記モニタ手段による前記通信状態がCANバスに送信している前記データフレームのものよりも優先度の高いものである場合に、他ノードとの間で調停負けが生じたとして該データフレームのCANバスへの送信を中断する送信中断手段と、を備えるノードの故障を検出する方法であって、
    前記調停負けが同一の前記データフレームに対して所定回数連続して生じたか否かを判別する調停負け回数判別ステップと、
    前記調停負け回数判別ステップにおいて前記調停負けが前記所定回数連続して生じたと判別される場合に、前記データ送信手段によりCANバスに送信する該データフレームの前記調停領域における優先度を、CAN通信のルールに従ってスタッフビットが挿入される所定の高優先のものに変更する優先度変更ステップと、
    前記優先度変更ステップにおける優先度変更後、前記データ送信手段により該データフレームがCANバスに送信される際に、前記モニタ手段によるCANバスの通信状態の監視結果としてスタッフビットの状態が該優先度変更手段による優先度変更に係る挿入されたものと不一致であるときは、自ノードにCANバスをドミナントレベルに固着させる故障が生じていると判定する故障検出ステップと、
    を備えることを特徴とする通信ノード故障検出方法。
JP2005047254A 2005-02-23 2005-02-23 通信ノード故障検出装置及び方法 Expired - Fee Related JP4225285B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005047254A JP4225285B2 (ja) 2005-02-23 2005-02-23 通信ノード故障検出装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005047254A JP4225285B2 (ja) 2005-02-23 2005-02-23 通信ノード故障検出装置及び方法

Publications (2)

Publication Number Publication Date
JP2006237832A JP2006237832A (ja) 2006-09-07
JP4225285B2 true JP4225285B2 (ja) 2009-02-18

Family

ID=37045031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005047254A Expired - Fee Related JP4225285B2 (ja) 2005-02-23 2005-02-23 通信ノード故障検出装置及び方法

Country Status (1)

Country Link
JP (1) JP4225285B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5098429B2 (ja) * 2007-05-11 2012-12-12 トヨタ自動車株式会社 通信システム
JP6206232B2 (ja) * 2014-02-13 2017-10-04 株式会社デンソー 車載制御装置
JP6747367B2 (ja) * 2017-04-18 2020-08-26 株式会社デンソー 舵角検出装置、および、これを用いた電動パワーステアリング装置
JP7135985B2 (ja) * 2019-04-12 2022-09-13 株式会社デンソー 通信装置
CN115174304B (zh) * 2022-06-24 2023-12-22 南京国电南自维美德自动化有限公司 一种识别符分段自定义的can总线通信方法

Also Published As

Publication number Publication date
JP2006237832A (ja) 2006-09-07

Similar Documents

Publication Publication Date Title
JP6887040B2 (ja) 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
US10193859B2 (en) Security apparatus, attack detection method, and storage medium
CN107113214B (zh) 不正常检测电子控制单元、车载网络系统以及通信方法
JP6566400B2 (ja) 電子制御装置、ゲートウェイ装置、及び検知プログラム
JP5798251B2 (ja) メッセージの大きさがフレキシブルな直列データ伝送におけるデータ伝送信頼性を改善するための方法及び装置
JP4225285B2 (ja) 通信ノード故障検出装置及び方法
US11516045B2 (en) Anomaly determination method, anomaly determination device, and recording medium
JPH10233789A (ja) 通信システムおよびそれに使用される電子制御装置
JP2008271040A (ja) 通信装置、通信システム
JP5696685B2 (ja) 車載通信システム、車載通信システムの通信異常監視方法、及び車載通信システムの通信異常監視プログラム
JP5064161B2 (ja) 電子制御ユニット
WO2014039032A1 (en) Method and apparatus for isolating a fault-active controller in a controller area network
CN108632242B (zh) 通信装置及接收装置
JP2009171310A (ja) 通信装置、及び通信装置における故障判定方法
JP2006222800A (ja) 多重通信装置
JP2021034828A (ja) 通信装置及びプロトコルの切替方法
JP5892890B2 (ja) 通信制御装置
JP6365876B2 (ja) ノード
JP4462040B2 (ja) ノード状態判定装置及びこの装置を備えるノード並びにノード状態判定方法
JP5212339B2 (ja) データ中継装置及びデータ中継方法
JP4570753B2 (ja) エラーコード送出装置および方法
EP4213448A1 (en) Controller area network module and method for the module
JP2014027509A (ja) 通信制御装置
JP7190964B2 (ja) 通信異常検出装置
JP4172461B2 (ja) ノード診断システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080812

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081010

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081117

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131205

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees