JP2004363761A - データ通信方法 - Google Patents
データ通信方法 Download PDFInfo
- Publication number
- JP2004363761A JP2004363761A JP2003157748A JP2003157748A JP2004363761A JP 2004363761 A JP2004363761 A JP 2004363761A JP 2003157748 A JP2003157748 A JP 2003157748A JP 2003157748 A JP2003157748 A JP 2003157748A JP 2004363761 A JP2004363761 A JP 2004363761A
- Authority
- JP
- Japan
- Prior art keywords
- electronic control
- suppressed
- data
- unit
- control device
- 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.)
- Withdrawn
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
【課題】特定のユニット間での通信を優先する。
【解決手段】ユニット100fは、抑制対象のユニット100a〜100dによるデータの送信の頻度を抑制するために、ユニット100a〜100dでの送信不成功の状態を疑似的に発生させ、抑制対象のユニット100a〜100dによる送信が抑制された状態で、抑制対象でない電子制御装置100eへ新たなデータを送信する。したがって、特定のユニット100fおよび100e間での通信が優先され、その間の転送速度が相対的に高まる。
【選択図】 図1
【解決手段】ユニット100fは、抑制対象のユニット100a〜100dによるデータの送信の頻度を抑制するために、ユニット100a〜100dでの送信不成功の状態を疑似的に発生させ、抑制対象のユニット100a〜100dによる送信が抑制された状態で、抑制対象でない電子制御装置100eへ新たなデータを送信する。したがって、特定のユニット100fおよび100e間での通信が優先され、その間の転送速度が相対的に高まる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、データ通信方法に関し、特に、車両ネットワークに用いられるデータ通信方法に関する。
【0002】
【従来の技術】
近年、自動車分野のシステムにおいて、車両ネットワークが注目されている。車両ネットワークには、エンジン、トランスミッション、空調、およびオペレーションパネルなどの各電子制御装置(ユニット)が相互に通信可能に接続される。したがって、各ユニットを1対1で接続する場合とくらべて配線数を少なくし、重量を削減することができる。
【0003】
車両ネットワークとして利用できるものとして、コントローラエリアネットワーク(Controller Area Network、以下「CAN」と称する)と呼ばれる通信プロトコルが知られている(非特許文献1参照)。CANプロトコルでは、複数のユニット(ノード)はバス型に接続される。そして、データは、すべてのユニットに対して決まった形式で送信される。送信されるデータの先頭には、識別子(ID)が含まれており、各ユニットがデータを受信する際には、まず識別子が読み込まれ、自己に必要なデータか否かが判断される。
【0004】
CANプロトコルでは、バス型ネットワークが空いている時には、バス型ネットワークに接続されている総てのユニットが新たなデータの送信を開始することができる。一方、2つ以上のユニットが同時にデータの送信を始めた場合には、上述した識別子によって優先順位が決定される。具体的には、2つ以上のユニットが同時にデータの送信を開始した場合、各データの識別子に対して、ビット単位で調停(アービトレーション)が行われる。そして、調停の結果、一番高い優先順位を持つと判断されたユニットは、そのまま送信を続ける。一方、優先順位が低かったユニットは、直ちに送信を止める。
【0005】
識別子によって示される優先順位は、予め設定されている。一般的には、エンジン関係のデータ、自動変速機関係のデータ、およびブレーキ関係などのデータのように頻繁に更新する必要があるデータには、高い優先順位を示す識別子が割り振られている。一方、組立て、修理、および整備などにのみ用いるデータであって定常的には通信されないデータには、低い優先順位を示す識別子が割り振られている。したがって、優先順位が高いデータの通信が優先されるため、識別子によって示される優先順位が低いデータを大量に通信しようとする場合、通信時間が長くかかってしまう。
【0006】
しかしながら、状況によっては、本来は優先順位が低いデータを、他のデータに優先して通信したい場合がある。たとえば、生産工場やサービス工場における整備の際に、所望のユニットへ新たなデータやプログラムを書き込む場合には、これらデータやプログラムに割り振られた識別子で示される本来の優先順位は低いにもかかわらず、一時的に、他のデータに優先して通信できるようにすることが望ましい。言い換えれば、特定のユニット間での通信を、他のユニット間での通信に優先する必要性がある。このような必要性があるにもかかわらず、従来では、特定のユニット間での通信を他のユニット間での通信に優先させることが困難であった。
【0007】
【非特許文献1】
株式会社ルネサステクノロジ、“CAN入門書 Ver.2.01”、[online]、平成12年10月、株式会社ルネサステクノロジ、[平成15年5月13日検索]、インターネット<URL:http://www.renesas.com/jpn/products/mpumcu/specific/can#mcu/apllist.htm>
【0008】
【発明が解決しようとする課題】
したがって、本発明は、複数のユニットが接続されたネットワークにおいて、特定のユニット間での通信を他のユニット間での通信よりも一時的に優先することができ、特定のユニット間での転送速度を相対的に高めることができるデータ通信方法を提供することである。
【0009】
【課題を解決するための手段】
本発明の上記目的は、下記の手段によって達成される。
【0010】
本発明のデータ通信方法は、複数の電子制御装置が接続されたバス型ネットワークでのデータ通信方法であって、データを送信している電子制御装置が抑制対象の電子制御装置であるか否かを判断する判断段階と、前記データを送信している電子制御装置が抑制対象の電子制御装置である場合に、当該電子制御装置での送信不成功の状態を疑似的に発生させる状態発生段階と、前記抑制対象の電子制御装置での送信不成功の状態の発生度合い応じて当該抑制対象の電子制御装置による送信が抑制された状態で、前記抑制対象でない電子制御装置間で新たなデータを送信する送信段階と、を有することを特徴とする。
【0011】
【発明の効果】
本発明によれば、抑制対象の電子制御装置によるデータの送信の頻度を抑制するために、当該電子制御装置での送信不成功の状態を疑似的に発生させ、抑制対象の電子制御装置による送信が抑制された状態で、抑制対象でない電子制御装置間で新たなデータを送信するので、特定の電子制御装置間での通信を他の電子制御装置間での通信よりも一時的に優先することができ、特定の電子制御装置間での転送速度を相対的に高めることができる。
【0012】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を説明する。
【0013】
図1は、本発明が適用される車両ネットワークシステムを示すブロック図である。
【0014】
この車両ネットワークシステムでは、図1に示されるとおり、複数のユニット(ノード)100a〜100fがバス型ネットワーク200を介して通信可能に接続されている。バス型ネットワーク200は、2本のワイヤ200a,200bで構成されている。バス型ネットワーク200は、好ましくは、車両ネットワークであり、より具体的には、コントローラエリアネットワーク(CAN)とよばれ車両用LAN(ローカルエリアネットワーク)である。
【0015】
本実施の形態によるデータ通信方法では、ユニット100fは、データの送信先として希望するユニット(たとえば、ユニット100e)以外のユニット100a〜100dがデータを送信し始めた際に、適宜にエラーフラグを送信して送信エラー(送信不成功)状態を疑似的に発生させる機能を有する。この結果、ユニット100a〜100dは、送信エラーを繰り返し、後述するようにエラーパッシブ状態と呼ばれる状態に追い込まれる。エラーパッシブ状態となったユニット100a〜100dでは、データの送信が抑制される。そして、ユニット100a〜100dによる送信が抑制された状態で、ユニット100fは、相対的に高められた転送速度でユニット100eに所望の新たなデータを送信する。
【0016】
ここで、各ユニット100a〜100f(以下、総括して、ユニット100と称する場合がある)は、電子制御装置(ECU)である。各ユニット100は、車両に搭載されたエンジン、自動変速機器、ブレーキ、空調機器、およびオペレーションパネルなどを制御する装置である。
【0017】
特に、ユニット100fは、自由にエラーフラグを出力することができる電子制御装置(ECU)である。なお、エラーフラグについては、後述する。本実施の形態のユニット100fは、ネットワーク100が設けられている車両を整備する場合などにおいて、他のユニット(たとえば、ユニット100e)へのプログラムやデータの書き込みするために使用される。したがって、ユニット100fは、通常時には必要とされないため、図1に示されるとおり、コネクタ300を介して、ネットワーク200に着脱自在に取り付け可能に構成されていてもよい。
【0018】
図2は、ユニット100fの構成の一例を示す。ユニット100fは、マイクロコンピュータ110とトランシーバ120とを備える。なお、他のユニット100a〜100eについても、基本的な構成は、図2に示される構成と同様である。
【0019】
マイクロコンピュータ110は、各部を制御するCPU111、通信用コントローラ112、タイマ113、およびAD変換器114などを備える。このうち、通信用コントローラ112は、トランシーバ120を制御して、2本のワイヤ200a,200b間の電位差によりバス型ネットワーク200のレベル(バスレベル)を検出する。また、送信の際には、通信用コントローラ112は、トランシーバ120を制御して、2本のワイヤ200a,200b間の電位差としてのバスレベルを変化させることによって、受信側のユニットにデータが伝達される。
【0020】
ネットワーク200のバスレベルには、ロー(Low)レベルと、ハイ(High)レベルがあり、必ずどちらか一方のレベルをとる。ネットワーク200に接続されているユニット100a〜100fのうち、1つでもローレベルを出力すると、ネットワーク200のバスレベルはローレベルとなる。いいかえれば、すべてのユニット100a〜100fがハイレベルを出力しない限り、ネットワーク200のバスレベルは、ハイレベルにはならない。各ユニット100は、ローレベルとハイレベルとを適宜に切り替えることによって、論理レベル0と論理レベル1との配列を作り出し、データを出力することができる。
【0021】
なお、ネットワーク200に接続されているユニット100a〜100fのうち1つでも所定レベル(この場合には、ローレベル)を出力すると、ネットワーク200のバスレベルも所定レベルとなることから、CANやデバイスネットの場合は、この所定レベル(ローレベル)をドミナント(優勢)レベルとよび、他方のレベル(この場合には、ハイレベル)をレセシブレベルと呼ぶ。論理的にワイヤードアンドされたバス型のネットワークの場合、ドミナントレベルは、ローレベル(論理レベル「0」)であり、レセシブレベルは、ハイレベル(論理レベル「1」)である。以下の説明では、ローレベル(論理レベル0)がドミナントレベルであり、ハイレベル(論理レベル1)がレセシブレベルである場合を例にとって説明する。
【0022】
図3は、ユニットによって出力されるデータのフレーム構成を模式的に示したものである。
【0023】
ユニット100によって送出されるデータは、データフレームと呼ばれるデータ伝送単位に区切られて送信される。図3に示されるように、データフレーム400は、スタートオブフレーム(SOF)401、調停フィールド(アビトレーションフィールド)402、制御フィールド(コントロールフィールド)403、データフィールド404、CRDフィールド405、ACKフィールド406、およびエンドオブフレーム407とよばれる7つの部分から構成されている。なお、フレームの構成は、CANプロトコルで規定されている従来の構成と同様である。したがって、詳しい説明を省略する。
【0024】
ここで、調停フィールド402には、識別子(ID)が含まれている。この識別子(ID)は、フレームの優先順位を示す。具体的には、たとえば、11ビットからなる識別子においてドミナントレベル(ローレベル、すなわち、論理レベル「0」。以下同じ)が先頭から連続する数が多いほど優先順位が高い。また、この識別子は、データの内容に応じて設定されている。したがって、受信側のユニットは、この識別子によって取得するデータを区別することができる。また、識別子に基づいて、データを送信しているユニット100を判断することもできる。
【0025】
また、制御フィールド403以降の各ビットにおいて、ドミナントレベル(論理レベル「0」)が6ビット以上並ばないようにフレームが構成される。すなわち、ドミナントレベルが6ビット以上に亘って並ぶデータの場合は、スタフビットと呼ばれるレセシブレベル(ハイレベル、すなわち、論理レベル「1」。以下同じ)のビットが自動的に挿入され、最終的にドミナントレベルが6ビット以上並ばないようにフレームが構成される。そして、このようにドミナントレベルが6ビット以上並ばないように構成されたフレームが送信される。
【0026】
ユニット100は、データを送信する際に、ネットワーク200のバスレベルについて検出している。そして、ユニット100による出力レベルとネットワーク200でのバスレベルとが不一致となった場合に、送信不成功の状態であると判断される。たとえば、上述したように、最終的にドミナントレベルが6ビット以上並ばないようにフレームを構成した上でデータを送信しているはずであるにもかかわらず、ネットワーク上で検出されるバスレベルが6ビット以上連続してドミナントレベルとなった場合には、ユニット100による出力レベルとネットワーク200でのバスレベルとが必ず不一致となるので、送信エラー(送信不成功)の状態であると判断することができる。
【0027】
送信不成功の状態が発生した場合には、ユニット100は、送信エラーカウンタ値(TEC)と呼ばれる値を所定の加算値(たとえば、+8)だけ増加させる。この結果、送信エラーカウンタ値が所定値(たとえば、127)より大きくなると、ユニット100は、後述するエラーパッシブ状態とよばれるエラー状態となる。
【0028】
図4は、ユニットのエラー状態について模式的に示す図である。
【0029】
図4に示されるとおり、ユニット100は、エラーアクティブ状態、エラーパッシブ状態、およびバスオフ状態と呼ばれる3つの状態のうち、どれか一つの状態にある。
【0030】
初期状態では、ユニット100は、エラーアクティブ状態である。エラーアクティブ状態では、ユニットは、送信および受信を正常に実行できる。一方、送信エラー(送信不成功)の状態の発生度合いに応じて、送信エラーカウンタ値TECが127より大きくとなると、状態は、エラーアクティブ状態からエラーパッシブ状態へと遷移する。そして、送信エラーカウンタ値TECが255より大きくなると、状態は、バスオフ状態へ遷移する。
【0031】
エラーパッシブ状態となったユニットでは、先の送信を完了した後にすぐに送信を開始することができなくなり、送信が抑制される。なお、一旦、エラーパッシブ状態となったユニット100も、その後に正常な送信を繰り返すことによって、送信エラーカウンタ値TECが127以下となることで、エラーアクティブ状態へ復帰する。
【0032】
図5は、上記の説明内容をまとめたフローチャートであり、各ユニットにおける送信エラーの判断およびその取扱いの処理について示すフローチャートである。
【0033】
まず、初期状態では、ユニットは、エラーアクティブ状態である(ステップS101)。ユニット100は、データを送信する際に(ステップS102)、ネットワーク200上の状態を検出している(ステップS103)。そして、データを送信するユニットの出力レベルとネットワーク200のバスのレベルが不一致か否かが判断される(ステップS104)。データを送信するユニットの出力レベルとネットワーク200のバスのレベルが不一致の場合には(ステップS104:YES)、送信エラー(送信不成功)と判断され、送信エラーカウンタに所定の加算値(たとえば、8)が加えられる(ステップS105)。一方、データを送信するユニットの出力レベルとネットワーク200のバスのレベルが一致している場合には(ステップS104:NO)、他のエラーが発生していないことを条件に、正常に送信されたものと判断され、送信エラーカウンタから所定の減算値(たとえば、1)が減じられる(ステップS106)。
【0034】
たとえば、ネットワーク200のバスレベルにおいてドミナントレベル(ローレベル)が所定ビット数(6ビット)以上連続している場合には(ステップS104:YES)、送信ユニットの出力レベルとネットワーク200のバスのレベルが必ず不一致であるので、送信エラー(送信不成功)と判断される。一方、ドミナントレベル(ローレベル)が所定ビット数(6ビット)以上連続していない場合には(ステップS104:NO)、他のエラーが発生していないことを条件に、正常に送信されたものと判断される。
【0035】
この結果、カウント数が所定値(たとえば、127)より大きくなると(ステップS107:YES)、エラーパッシブ状態となり、所定時間が経過するまで(ステップS109:YES)、データの送信(ステップS102)が実行できなくなり、送信が抑制された状態となる。
【0036】
以上のように、本実施の形態で前提としているユニット100では、データを送信するユニットの出力レベルとネットワーク200のバスのレベルとが不一致となった場合に送信不成功の状態と判断されるとともに、送信不成功の状態の発生度合いに応じて、データの送信が抑制される状態(エラーパッシブ状態)に遷移する
次に、本実施の形態のデータ通信方法の処理を示すフローチャートを参照しつつ、その内容を詳述する。なお、ユニット100fからユニット100eへデータを送信する場合を例にとって説明する。以下の各ステップでの処理は、ユニット100fのCPU111および通信用コントローラ112などによって実行される。
【0037】
図6は、本実施の形態のデータ通信方法の処理を示すフローチャートである。図6は、ユニット100fの処理について示している。
【0038】
図6において、ユニット100fが新たなデータの送信を希望しない場合には(ステップS201:NO)、通常の処理を実行し(ステップS202)、ステップS203〜ステップS208の処理は実行しない。一方、ユニット100fが新たなデータの送信を希望する場合には(ステップS201:YES)、ステップS203〜ステップS208以下の本実施の形態に特有の処理を実行する。
【0039】
まず、抑制対象となるユニットに関する情報が設定される(ステップS203)。ここでは、ユニット100a〜100dが抑制対象であり、ユニット100e(自機も含めれば、ユニット100eとユニット100f)が抑制対象でない場合を例にとる。このステップS203では、抑制対象となるデータの識別子(ID)が設定される。もちろん、抑制対象とならないユニット100eに関する情報を定めて、それ以外のユニット100a〜100dの総てを抑制対象として設定してもよい。すなわち、各ユニット100のうち、抑制対象となるものと抑制対象とならないものが区別可能であれば、いかなる設定方法を採用することも可能である。
【0040】
次に、ネットワーク200を介してデータフレームが受信される。この場合、ユニット100fは、識別子(ID)が含まれる調停フィールド402(図3参照)までは少なくとも受信する(ステップS204)。したがって、制御フィールド403以降は、受信する必要はない。
【0041】
そして、ステップS204で受信された識別子(ID)に基づいて、データフレームを送信しているユニットが抑制対象のユニット100a〜100dであるか否かが判断される(ステップS205)。データフレームを送信しているユニットが抑制対象でないユニット100eである場合には(ステップS205:NO)、ステップS204に戻る。
【0042】
一方、データフレームを送信しているユニットが抑制対象のユニット100a〜100dである場合には(ステップS205:YES)、エラーフラグを送信する(ステップS206)。ここで、エラーフラグは、CANプロトコルで定義され、エラーを検知したときに他のユニットへエラーを通知するためのフレームである。本実施の形態のユニット100fでは、通常の場合と異なり、抑制対象のユニット100a〜100dでの送信エラーの状態を疑似的に作り出すべく、実際のエラーの有無にかかわらず、エラーフレームを送信することができる。
【0043】
ここで、エラーフラグは、ビットが所定数(6つ)以上連続して一定レベル(具体的には、ドミナントレベルであるローレベル)となる電気信号である。エラーフラグがユニット10fからネットワーク200上に送出されることによって、データを送信しているユニット100a〜100d(たとえば、ユニット100b)は、自機による出力レベルと、ネットワーク200でのバスレベルとが不一致となったと判断し、自機のデータ送信エラー(送信不成功)の状態であると判断する。
【0044】
このように、ステップS206の処理は、抑制対象のユニット100a〜100dでの送信不成功の状態を外部から疑似的に発生させる処理である。より具体的には、ステップS206の処理は、ビットが所定数(6つ)以上連続して一定レベル(ローレベル)となる電気信号をネットワーク上に送出することによって、抑制対象のユニット100a〜100dでの送信不成功の状態を疑似的に発生させる処理である。
【0045】
ステップS203〜ステップS206の処理が複数回にわたって繰り返されると、抑制対象のユニット100a〜100dは、図5のフローチャートのステップS104、S105、S107、およびS108で既に説明したように、それぞれの送信エラーカウンタの値が127を超えて、エラーパッシブ状態となり、送信が抑制される。
【0046】
図6のステップS207では、抑制対象のユニット100a〜100dがエラーパッシブ状態となったかどうかが推定される。すなわち、ユニット100fは、直接的に、他のユニットがエラーパッシブ状態であるか否かを知ることができない。したがって、ユニット100fは、抑制対象のユニット100a〜100dのそれぞれについて、エラーフラグを送信した回数などをカウントアップしていくことで、抑制対象のユニット100a〜100dが既にエラーパッシブ状態となっているかを推定する。一度のエラーフラグの送信によって1回の送信エラーが発生し、送信エラーカウンタの値は、たとえば+8増える。したがって、送信エラーカウンタの値が127を超えてエラーパッシブ状態となるためには、たとえば、ユニット100a〜100dの夫々に対して16回以上のエラーフラグが送信する必要がある。
【0047】
なお、抑制対象のユニット100a〜100dが複数ある場合には、最終的に抑制対象のユニット100a〜100dのすべてがエラーパッシブ状態となればよく、その順序には依存しない。実際には、ユニット100a〜100dのなかで識別子によって示される優先順位が高いデータを送出しているものから順番にエラーパッシブ状態に遷移する。
【0048】
そして、すべての抑制対象のユニット100a〜100dがエラーパッシブ状態になっていないと推定される段階では(ステップS207:NO)、ステップS204に戻り、抑制対象にユニットによるデータ送信時にエラーフラグを送信して、送信不成功の状態を疑似的に発生させる処理を繰り返す(ステップS205〜ステップS206)。
【0049】
一方、すべての抑制対象のユニット100a〜100dがエラーパッシブ状態になったと推定される場合には(ステップS207:YES)、ステップS208に進む。そして、ステップS208では、抑制対象のユニット100a〜100dがエラーパッシブ状態になって送信が抑制された状態で、抑制対象でないユニット100fとユニット100e間で、新たなデータが送信される。
【0050】
たとえば、ユニット100fがプログラムやデータの書込み用の装置であり、ユニット100eにプログラムを書き込みたい場合には、ユニット100e以外のユニット100a〜dによる送信を抑制した状態で、ネットワーク200を通じてプログラムやデータを書き込むことができる。
【0051】
したがって、ユニット100fが、送信データの識別子で示される本来の優先順位が低い場合であっても、他のユニット100a〜100dによる送信を抑制した上で、ユニット100fは、ユニット100eにデータを送信することができる。この結果、特定のユニット100fとユニット100e間での転送速度を相対的に高めることができる。特に、ネットワーク200を介して特定の電子制御装置にデータまたはプログラムを書き込む場合に、書込み時間が著しく長時間になることが防止することができる。
【0052】
なお、図6で示された本実施の形態のデータ通信方法において、ステップS204の処理は、バス型ネットワーク200を介してデータの識別子を受信する受信段階に対応する。また、ステップS205の処理は、上記の識別子に基づいて、データを送信している電子制御装置が抑制対象の電子制御装置であるか否かを判断する判断段階に対応する。
【0053】
また、ステップ206の処理は、データを送信している電子制御装置が抑制対象の電子制御装置である場合に、当該電子制御装置での送信不成功の状態を疑似的に発生させる状態発生段階に対応する。特に、ステップS206の処理は、抑制対象の電子制御装置によるデータ送信時に、ビットが所定数以上連続して一定レベル(すなわち、ドミナントレベルであるローレベル)となる電気信号を抑制対象の電子制御装置の外部からバス型ネットワーク200上に与えることによって、抑制対象の電子制御装置での送信不成功の状態を発生させる段階を含んでいる。この処理は、抑制対象の電子制御装置において、抑制対象の電子制御装置からのデータの送信時に、この抑制対象の電子制御装置による出力レベルとバス型ネットワーク200でのバスレベルとが不一致となった場合に送信不成功の状態と判断されること前提としている。
【0054】
また、ステップS208の処理は、抑制対象の電子制御装置での送信不成功の状態の発生度合い応じて当該抑制対象の電子制御装置による送信が抑制された状態で、抑制対象でない電子制御装置間で新たなデータを送信する送信段階に対応する。
【0055】
(変形例)
次に、本実施の形態の変形例について説明する。上記の図6で示されたデータ通信方法では、ステップS206において、ビットが所定数以上連続して一定レベルとなる電気信号をネットワーク上に送出することによって、抑制対象のユニットでの送信不成功の状態を疑似的に発生させる場合が示された。
【0056】
一方、本変形例では、このステップS206の処理に代えて、抑制対象のユニットによるデータ送信時に、バス型ネットワーク200でのバスレベルをビット単位で抑制対象のユニットの外部から変化させて、抑制対象のユニットでの送信不成功の状態を発生させる。
【0057】
図7は、本変形例のデータ通信方法の処理内容を示すフローチャートである。ステップS306以外のステップは、図6のフローチャートと同様である。したがって、詳しい説明を省略する。
【0058】
ステップS306では、抑制対象のユニット100a〜100dによるデータ送信時に、バス型ネットワーク200でのバスレベルをビット単位で抑制対象のユニット100a〜100dの外部から変化させて、抑制対象のユニット100a〜100dでの送信不成功の状態を発生させる。たとえば、抑制対象のユニット100a〜100dが出力したデータにおいてドミナントレベルが1ビット続く場合には、後続する5ビットをドミナントレベルに変化させて、ネットワーク200でのバスレベルが所定ビット数(6ビット)以上連続してドミナントレベルとなるようにする。同様に、抑制対象のユニットが出力したデータにおいてドミナントレベルが2ビット続く場合には、後続する4ビットをドミナントレベルに変化させ、ドミナントレベルが3ビット続く場合には、後続する3ビットをドミナントレベルに変化させる。さらに、抑制対象のユニットが出力したデータにおいてドミナントレベルが4ビット続く場合には、後続する2ビットをドミナントレベルに変化させ、ドミナントレベルが5ビット続く場合には、後続する1ビットをドミナントレベルに変化させる。
【0059】
この場合も、データを送信するユニットによる出力レベルとネットワーク200でのバスレベルとが必ず不一致となるので、データを送信するユニットにおいて送信不成功の状態が発生する。
【0060】
このように、本変形例では、ネットワーク200のバスレベルを検出し、検出結果に基づいて、バスレベルを1〜5ビットの可変長のビット単位で外部から変化させて、抑制対象のユニット100a〜100dでの送信不成功の状態を発生させる。
【0061】
本変形例でも、抑制対象のユニット100a〜100dは、送信不成功の状態の発生頻度に応じて、送信が抑制される。そして、送信が抑制された状態で、ユニット100fは、ユニット100eに対して、新たなデータを送信することができる。
【0062】
以上のように、本実施の形態および変形例のデータ通信方法によれば、以下の効果を奏することができる。
【0063】
(ア)抑制対象でないユニット100fおよびユニット100e以外のユニット100a〜100dを抑制対象として送信の頻度を抑制した後、ユニット100fおよびユニット100e間で通信することができるので、ユニット100fからユニット100e間への転送速度を実質的に高めることができる。したがって、データを大量に送受信する場合であっても、通信時間が著しく長くなることを防止することができる。特に、データの送受信を行うユニット100fおよびユニット100e以外のすべてのユニット100a〜100dを抑制対象とすることによって、転送速度を最大限に高めることができる。
【0064】
(イ)データフレームの識別子自体の設定を変更することなく、必要なときに一時的に特定のユニット間の通信を優先することができる。
【0065】
(ウ)また、抑制対象のユニット100a〜100dを、ネットワーク200から切り離してしまうバスオフ(図4参照)とするのではなく、エラーパッシブ状態とさせる。したがって、ユニット100fとユニット100eとの間のデータ送信が終了すれば、抑制対象のユニット100a〜100dも、正常に送信できるようになる。その結果、順次に送信エラーカウンタの値が下がり、エラーアクティブ状態に復帰することができる。したがって、ユニット100a〜100dの復帰の処理にかかる負担が少なく、復帰ができなくなるなどの問題が発生しない。
【0066】
(エ)図6に示されるように、判断段階(ステップS205)、状態発生段階(ステップS206)、および送信段階(ステップS208)は、ネットワーク200に着脱自在に接続される電子制御装置であるユニット100fによって実行できるので、特定のユニット間の通信を優先させたいときだけ、ユニット100fをネットワークに接続することができる。
【0067】
(オ)また、送信段階(ステップS205)において、ネットワーク200を介して、車両の特定のユニットにデータまたはプログラムを書き込む場合には、車両に設けられたネットワーク200を適宜に利用できるので、データやプログラムのインストールおよび更新を行うことができる。この際の書込み時間が短縮されるので、生産工程や整備工程の時間が短縮される。
【0068】
(カ)特に、CANプロトコルを活用しつつ、一時的に特定のユニット間の通信を優先させることができるので、応用性が高い。
【0069】
(キ)また、図6に示したように、ビットが所定数以上連続してドミナントレベルとなる電気信号をネットワーク上に送出することによって、抑制対象のユニットでの送信不成功の状態を発生させる場合には、ネットワークのバスレベルを確認して何ビット分をドミナントレベルに変化させるかを決定する必要がない。したがって、処理を簡略化することができる。
【0070】
以上のように、本実施の形態について説明したが、本発明は、これらの場合に限られない。たとえば、抑制対象となるユニットの範囲、および抑制対象としないユニットの範囲は、適宜に決めることができる。すなわち、ユニット100fからユニット100eへデータを送る場合に、ユニット100fおよびユニット100e以外のユニット100a〜100dを抑制対象としてもよく、ユニット100a〜100dの中にエラーパッシブ状態とすることが望ましくないユニット(たとえば、ユニット100a)がある場合には、このユニット100aを除いた残りのユニット100b〜100dを抑制対象としてもよい。
【0071】
また、上記の説明では、受信処理(図6のステップS204)、判断処理(図6のステップS205)、状態発生処理(ステップS206)、および最終的な送信処理(ステップS208)を実行する機能を一つのユニット100fに持たせる場合を説明したが、受信処理、判断処理、および状態発生処理の機能のみを有する専用の制御装置をネットワーク200に着脱自在に接続してもよい。この場合も、この制御装置によるエラーフラグの送信などによって特定のユニット間の通信を優先するように制御することができる。
【0072】
以上のように本実施の形態のデータ通信方法について説明したが、本発明は、これらの場合に限られず、当業者によって種々の変形、追加、および省略が可能であることはいうまでもない。
【図面の簡単な説明】
【図1】本発明が適用される車両ネットワークシステムを示すブロック図である。
【図2】図1に示されるユニット100fの構成の一例を示すブロック図である。
【図3】図1に示される各ユニットによって出力されるデータのフレーム構成を模式的に示す図である。
【図4】図1に示される各ユニットのエラー状態について模式的に示す図である。
【図5】図1に示される各ユニットにおける送信エラーの判断およびその取扱いの処理について示すフローチャートである。
【図6】図1に示されるユニット100fによる本実施の形態のデータ通信方法での処理内容について示すフローチャートである。
【図7】変形例におけるデータ通信方法での処理内容について示すフローチャートである。
【符号の説明】
100a〜100f…ユニット(電子制御装置)、
110…マイクロコンピュータ、
111…CPU、
112…通信用コントローラ、
120…トランシーバ、
200…ネットワーク、
300…コネクタ。
【発明の属する技術分野】
本発明は、データ通信方法に関し、特に、車両ネットワークに用いられるデータ通信方法に関する。
【0002】
【従来の技術】
近年、自動車分野のシステムにおいて、車両ネットワークが注目されている。車両ネットワークには、エンジン、トランスミッション、空調、およびオペレーションパネルなどの各電子制御装置(ユニット)が相互に通信可能に接続される。したがって、各ユニットを1対1で接続する場合とくらべて配線数を少なくし、重量を削減することができる。
【0003】
車両ネットワークとして利用できるものとして、コントローラエリアネットワーク(Controller Area Network、以下「CAN」と称する)と呼ばれる通信プロトコルが知られている(非特許文献1参照)。CANプロトコルでは、複数のユニット(ノード)はバス型に接続される。そして、データは、すべてのユニットに対して決まった形式で送信される。送信されるデータの先頭には、識別子(ID)が含まれており、各ユニットがデータを受信する際には、まず識別子が読み込まれ、自己に必要なデータか否かが判断される。
【0004】
CANプロトコルでは、バス型ネットワークが空いている時には、バス型ネットワークに接続されている総てのユニットが新たなデータの送信を開始することができる。一方、2つ以上のユニットが同時にデータの送信を始めた場合には、上述した識別子によって優先順位が決定される。具体的には、2つ以上のユニットが同時にデータの送信を開始した場合、各データの識別子に対して、ビット単位で調停(アービトレーション)が行われる。そして、調停の結果、一番高い優先順位を持つと判断されたユニットは、そのまま送信を続ける。一方、優先順位が低かったユニットは、直ちに送信を止める。
【0005】
識別子によって示される優先順位は、予め設定されている。一般的には、エンジン関係のデータ、自動変速機関係のデータ、およびブレーキ関係などのデータのように頻繁に更新する必要があるデータには、高い優先順位を示す識別子が割り振られている。一方、組立て、修理、および整備などにのみ用いるデータであって定常的には通信されないデータには、低い優先順位を示す識別子が割り振られている。したがって、優先順位が高いデータの通信が優先されるため、識別子によって示される優先順位が低いデータを大量に通信しようとする場合、通信時間が長くかかってしまう。
【0006】
しかしながら、状況によっては、本来は優先順位が低いデータを、他のデータに優先して通信したい場合がある。たとえば、生産工場やサービス工場における整備の際に、所望のユニットへ新たなデータやプログラムを書き込む場合には、これらデータやプログラムに割り振られた識別子で示される本来の優先順位は低いにもかかわらず、一時的に、他のデータに優先して通信できるようにすることが望ましい。言い換えれば、特定のユニット間での通信を、他のユニット間での通信に優先する必要性がある。このような必要性があるにもかかわらず、従来では、特定のユニット間での通信を他のユニット間での通信に優先させることが困難であった。
【0007】
【非特許文献1】
株式会社ルネサステクノロジ、“CAN入門書 Ver.2.01”、[online]、平成12年10月、株式会社ルネサステクノロジ、[平成15年5月13日検索]、インターネット<URL:http://www.renesas.com/jpn/products/mpumcu/specific/can#mcu/apllist.htm>
【0008】
【発明が解決しようとする課題】
したがって、本発明は、複数のユニットが接続されたネットワークにおいて、特定のユニット間での通信を他のユニット間での通信よりも一時的に優先することができ、特定のユニット間での転送速度を相対的に高めることができるデータ通信方法を提供することである。
【0009】
【課題を解決するための手段】
本発明の上記目的は、下記の手段によって達成される。
【0010】
本発明のデータ通信方法は、複数の電子制御装置が接続されたバス型ネットワークでのデータ通信方法であって、データを送信している電子制御装置が抑制対象の電子制御装置であるか否かを判断する判断段階と、前記データを送信している電子制御装置が抑制対象の電子制御装置である場合に、当該電子制御装置での送信不成功の状態を疑似的に発生させる状態発生段階と、前記抑制対象の電子制御装置での送信不成功の状態の発生度合い応じて当該抑制対象の電子制御装置による送信が抑制された状態で、前記抑制対象でない電子制御装置間で新たなデータを送信する送信段階と、を有することを特徴とする。
【0011】
【発明の効果】
本発明によれば、抑制対象の電子制御装置によるデータの送信の頻度を抑制するために、当該電子制御装置での送信不成功の状態を疑似的に発生させ、抑制対象の電子制御装置による送信が抑制された状態で、抑制対象でない電子制御装置間で新たなデータを送信するので、特定の電子制御装置間での通信を他の電子制御装置間での通信よりも一時的に優先することができ、特定の電子制御装置間での転送速度を相対的に高めることができる。
【0012】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を説明する。
【0013】
図1は、本発明が適用される車両ネットワークシステムを示すブロック図である。
【0014】
この車両ネットワークシステムでは、図1に示されるとおり、複数のユニット(ノード)100a〜100fがバス型ネットワーク200を介して通信可能に接続されている。バス型ネットワーク200は、2本のワイヤ200a,200bで構成されている。バス型ネットワーク200は、好ましくは、車両ネットワークであり、より具体的には、コントローラエリアネットワーク(CAN)とよばれ車両用LAN(ローカルエリアネットワーク)である。
【0015】
本実施の形態によるデータ通信方法では、ユニット100fは、データの送信先として希望するユニット(たとえば、ユニット100e)以外のユニット100a〜100dがデータを送信し始めた際に、適宜にエラーフラグを送信して送信エラー(送信不成功)状態を疑似的に発生させる機能を有する。この結果、ユニット100a〜100dは、送信エラーを繰り返し、後述するようにエラーパッシブ状態と呼ばれる状態に追い込まれる。エラーパッシブ状態となったユニット100a〜100dでは、データの送信が抑制される。そして、ユニット100a〜100dによる送信が抑制された状態で、ユニット100fは、相対的に高められた転送速度でユニット100eに所望の新たなデータを送信する。
【0016】
ここで、各ユニット100a〜100f(以下、総括して、ユニット100と称する場合がある)は、電子制御装置(ECU)である。各ユニット100は、車両に搭載されたエンジン、自動変速機器、ブレーキ、空調機器、およびオペレーションパネルなどを制御する装置である。
【0017】
特に、ユニット100fは、自由にエラーフラグを出力することができる電子制御装置(ECU)である。なお、エラーフラグについては、後述する。本実施の形態のユニット100fは、ネットワーク100が設けられている車両を整備する場合などにおいて、他のユニット(たとえば、ユニット100e)へのプログラムやデータの書き込みするために使用される。したがって、ユニット100fは、通常時には必要とされないため、図1に示されるとおり、コネクタ300を介して、ネットワーク200に着脱自在に取り付け可能に構成されていてもよい。
【0018】
図2は、ユニット100fの構成の一例を示す。ユニット100fは、マイクロコンピュータ110とトランシーバ120とを備える。なお、他のユニット100a〜100eについても、基本的な構成は、図2に示される構成と同様である。
【0019】
マイクロコンピュータ110は、各部を制御するCPU111、通信用コントローラ112、タイマ113、およびAD変換器114などを備える。このうち、通信用コントローラ112は、トランシーバ120を制御して、2本のワイヤ200a,200b間の電位差によりバス型ネットワーク200のレベル(バスレベル)を検出する。また、送信の際には、通信用コントローラ112は、トランシーバ120を制御して、2本のワイヤ200a,200b間の電位差としてのバスレベルを変化させることによって、受信側のユニットにデータが伝達される。
【0020】
ネットワーク200のバスレベルには、ロー(Low)レベルと、ハイ(High)レベルがあり、必ずどちらか一方のレベルをとる。ネットワーク200に接続されているユニット100a〜100fのうち、1つでもローレベルを出力すると、ネットワーク200のバスレベルはローレベルとなる。いいかえれば、すべてのユニット100a〜100fがハイレベルを出力しない限り、ネットワーク200のバスレベルは、ハイレベルにはならない。各ユニット100は、ローレベルとハイレベルとを適宜に切り替えることによって、論理レベル0と論理レベル1との配列を作り出し、データを出力することができる。
【0021】
なお、ネットワーク200に接続されているユニット100a〜100fのうち1つでも所定レベル(この場合には、ローレベル)を出力すると、ネットワーク200のバスレベルも所定レベルとなることから、CANやデバイスネットの場合は、この所定レベル(ローレベル)をドミナント(優勢)レベルとよび、他方のレベル(この場合には、ハイレベル)をレセシブレベルと呼ぶ。論理的にワイヤードアンドされたバス型のネットワークの場合、ドミナントレベルは、ローレベル(論理レベル「0」)であり、レセシブレベルは、ハイレベル(論理レベル「1」)である。以下の説明では、ローレベル(論理レベル0)がドミナントレベルであり、ハイレベル(論理レベル1)がレセシブレベルである場合を例にとって説明する。
【0022】
図3は、ユニットによって出力されるデータのフレーム構成を模式的に示したものである。
【0023】
ユニット100によって送出されるデータは、データフレームと呼ばれるデータ伝送単位に区切られて送信される。図3に示されるように、データフレーム400は、スタートオブフレーム(SOF)401、調停フィールド(アビトレーションフィールド)402、制御フィールド(コントロールフィールド)403、データフィールド404、CRDフィールド405、ACKフィールド406、およびエンドオブフレーム407とよばれる7つの部分から構成されている。なお、フレームの構成は、CANプロトコルで規定されている従来の構成と同様である。したがって、詳しい説明を省略する。
【0024】
ここで、調停フィールド402には、識別子(ID)が含まれている。この識別子(ID)は、フレームの優先順位を示す。具体的には、たとえば、11ビットからなる識別子においてドミナントレベル(ローレベル、すなわち、論理レベル「0」。以下同じ)が先頭から連続する数が多いほど優先順位が高い。また、この識別子は、データの内容に応じて設定されている。したがって、受信側のユニットは、この識別子によって取得するデータを区別することができる。また、識別子に基づいて、データを送信しているユニット100を判断することもできる。
【0025】
また、制御フィールド403以降の各ビットにおいて、ドミナントレベル(論理レベル「0」)が6ビット以上並ばないようにフレームが構成される。すなわち、ドミナントレベルが6ビット以上に亘って並ぶデータの場合は、スタフビットと呼ばれるレセシブレベル(ハイレベル、すなわち、論理レベル「1」。以下同じ)のビットが自動的に挿入され、最終的にドミナントレベルが6ビット以上並ばないようにフレームが構成される。そして、このようにドミナントレベルが6ビット以上並ばないように構成されたフレームが送信される。
【0026】
ユニット100は、データを送信する際に、ネットワーク200のバスレベルについて検出している。そして、ユニット100による出力レベルとネットワーク200でのバスレベルとが不一致となった場合に、送信不成功の状態であると判断される。たとえば、上述したように、最終的にドミナントレベルが6ビット以上並ばないようにフレームを構成した上でデータを送信しているはずであるにもかかわらず、ネットワーク上で検出されるバスレベルが6ビット以上連続してドミナントレベルとなった場合には、ユニット100による出力レベルとネットワーク200でのバスレベルとが必ず不一致となるので、送信エラー(送信不成功)の状態であると判断することができる。
【0027】
送信不成功の状態が発生した場合には、ユニット100は、送信エラーカウンタ値(TEC)と呼ばれる値を所定の加算値(たとえば、+8)だけ増加させる。この結果、送信エラーカウンタ値が所定値(たとえば、127)より大きくなると、ユニット100は、後述するエラーパッシブ状態とよばれるエラー状態となる。
【0028】
図4は、ユニットのエラー状態について模式的に示す図である。
【0029】
図4に示されるとおり、ユニット100は、エラーアクティブ状態、エラーパッシブ状態、およびバスオフ状態と呼ばれる3つの状態のうち、どれか一つの状態にある。
【0030】
初期状態では、ユニット100は、エラーアクティブ状態である。エラーアクティブ状態では、ユニットは、送信および受信を正常に実行できる。一方、送信エラー(送信不成功)の状態の発生度合いに応じて、送信エラーカウンタ値TECが127より大きくとなると、状態は、エラーアクティブ状態からエラーパッシブ状態へと遷移する。そして、送信エラーカウンタ値TECが255より大きくなると、状態は、バスオフ状態へ遷移する。
【0031】
エラーパッシブ状態となったユニットでは、先の送信を完了した後にすぐに送信を開始することができなくなり、送信が抑制される。なお、一旦、エラーパッシブ状態となったユニット100も、その後に正常な送信を繰り返すことによって、送信エラーカウンタ値TECが127以下となることで、エラーアクティブ状態へ復帰する。
【0032】
図5は、上記の説明内容をまとめたフローチャートであり、各ユニットにおける送信エラーの判断およびその取扱いの処理について示すフローチャートである。
【0033】
まず、初期状態では、ユニットは、エラーアクティブ状態である(ステップS101)。ユニット100は、データを送信する際に(ステップS102)、ネットワーク200上の状態を検出している(ステップS103)。そして、データを送信するユニットの出力レベルとネットワーク200のバスのレベルが不一致か否かが判断される(ステップS104)。データを送信するユニットの出力レベルとネットワーク200のバスのレベルが不一致の場合には(ステップS104:YES)、送信エラー(送信不成功)と判断され、送信エラーカウンタに所定の加算値(たとえば、8)が加えられる(ステップS105)。一方、データを送信するユニットの出力レベルとネットワーク200のバスのレベルが一致している場合には(ステップS104:NO)、他のエラーが発生していないことを条件に、正常に送信されたものと判断され、送信エラーカウンタから所定の減算値(たとえば、1)が減じられる(ステップS106)。
【0034】
たとえば、ネットワーク200のバスレベルにおいてドミナントレベル(ローレベル)が所定ビット数(6ビット)以上連続している場合には(ステップS104:YES)、送信ユニットの出力レベルとネットワーク200のバスのレベルが必ず不一致であるので、送信エラー(送信不成功)と判断される。一方、ドミナントレベル(ローレベル)が所定ビット数(6ビット)以上連続していない場合には(ステップS104:NO)、他のエラーが発生していないことを条件に、正常に送信されたものと判断される。
【0035】
この結果、カウント数が所定値(たとえば、127)より大きくなると(ステップS107:YES)、エラーパッシブ状態となり、所定時間が経過するまで(ステップS109:YES)、データの送信(ステップS102)が実行できなくなり、送信が抑制された状態となる。
【0036】
以上のように、本実施の形態で前提としているユニット100では、データを送信するユニットの出力レベルとネットワーク200のバスのレベルとが不一致となった場合に送信不成功の状態と判断されるとともに、送信不成功の状態の発生度合いに応じて、データの送信が抑制される状態(エラーパッシブ状態)に遷移する
次に、本実施の形態のデータ通信方法の処理を示すフローチャートを参照しつつ、その内容を詳述する。なお、ユニット100fからユニット100eへデータを送信する場合を例にとって説明する。以下の各ステップでの処理は、ユニット100fのCPU111および通信用コントローラ112などによって実行される。
【0037】
図6は、本実施の形態のデータ通信方法の処理を示すフローチャートである。図6は、ユニット100fの処理について示している。
【0038】
図6において、ユニット100fが新たなデータの送信を希望しない場合には(ステップS201:NO)、通常の処理を実行し(ステップS202)、ステップS203〜ステップS208の処理は実行しない。一方、ユニット100fが新たなデータの送信を希望する場合には(ステップS201:YES)、ステップS203〜ステップS208以下の本実施の形態に特有の処理を実行する。
【0039】
まず、抑制対象となるユニットに関する情報が設定される(ステップS203)。ここでは、ユニット100a〜100dが抑制対象であり、ユニット100e(自機も含めれば、ユニット100eとユニット100f)が抑制対象でない場合を例にとる。このステップS203では、抑制対象となるデータの識別子(ID)が設定される。もちろん、抑制対象とならないユニット100eに関する情報を定めて、それ以外のユニット100a〜100dの総てを抑制対象として設定してもよい。すなわち、各ユニット100のうち、抑制対象となるものと抑制対象とならないものが区別可能であれば、いかなる設定方法を採用することも可能である。
【0040】
次に、ネットワーク200を介してデータフレームが受信される。この場合、ユニット100fは、識別子(ID)が含まれる調停フィールド402(図3参照)までは少なくとも受信する(ステップS204)。したがって、制御フィールド403以降は、受信する必要はない。
【0041】
そして、ステップS204で受信された識別子(ID)に基づいて、データフレームを送信しているユニットが抑制対象のユニット100a〜100dであるか否かが判断される(ステップS205)。データフレームを送信しているユニットが抑制対象でないユニット100eである場合には(ステップS205:NO)、ステップS204に戻る。
【0042】
一方、データフレームを送信しているユニットが抑制対象のユニット100a〜100dである場合には(ステップS205:YES)、エラーフラグを送信する(ステップS206)。ここで、エラーフラグは、CANプロトコルで定義され、エラーを検知したときに他のユニットへエラーを通知するためのフレームである。本実施の形態のユニット100fでは、通常の場合と異なり、抑制対象のユニット100a〜100dでの送信エラーの状態を疑似的に作り出すべく、実際のエラーの有無にかかわらず、エラーフレームを送信することができる。
【0043】
ここで、エラーフラグは、ビットが所定数(6つ)以上連続して一定レベル(具体的には、ドミナントレベルであるローレベル)となる電気信号である。エラーフラグがユニット10fからネットワーク200上に送出されることによって、データを送信しているユニット100a〜100d(たとえば、ユニット100b)は、自機による出力レベルと、ネットワーク200でのバスレベルとが不一致となったと判断し、自機のデータ送信エラー(送信不成功)の状態であると判断する。
【0044】
このように、ステップS206の処理は、抑制対象のユニット100a〜100dでの送信不成功の状態を外部から疑似的に発生させる処理である。より具体的には、ステップS206の処理は、ビットが所定数(6つ)以上連続して一定レベル(ローレベル)となる電気信号をネットワーク上に送出することによって、抑制対象のユニット100a〜100dでの送信不成功の状態を疑似的に発生させる処理である。
【0045】
ステップS203〜ステップS206の処理が複数回にわたって繰り返されると、抑制対象のユニット100a〜100dは、図5のフローチャートのステップS104、S105、S107、およびS108で既に説明したように、それぞれの送信エラーカウンタの値が127を超えて、エラーパッシブ状態となり、送信が抑制される。
【0046】
図6のステップS207では、抑制対象のユニット100a〜100dがエラーパッシブ状態となったかどうかが推定される。すなわち、ユニット100fは、直接的に、他のユニットがエラーパッシブ状態であるか否かを知ることができない。したがって、ユニット100fは、抑制対象のユニット100a〜100dのそれぞれについて、エラーフラグを送信した回数などをカウントアップしていくことで、抑制対象のユニット100a〜100dが既にエラーパッシブ状態となっているかを推定する。一度のエラーフラグの送信によって1回の送信エラーが発生し、送信エラーカウンタの値は、たとえば+8増える。したがって、送信エラーカウンタの値が127を超えてエラーパッシブ状態となるためには、たとえば、ユニット100a〜100dの夫々に対して16回以上のエラーフラグが送信する必要がある。
【0047】
なお、抑制対象のユニット100a〜100dが複数ある場合には、最終的に抑制対象のユニット100a〜100dのすべてがエラーパッシブ状態となればよく、その順序には依存しない。実際には、ユニット100a〜100dのなかで識別子によって示される優先順位が高いデータを送出しているものから順番にエラーパッシブ状態に遷移する。
【0048】
そして、すべての抑制対象のユニット100a〜100dがエラーパッシブ状態になっていないと推定される段階では(ステップS207:NO)、ステップS204に戻り、抑制対象にユニットによるデータ送信時にエラーフラグを送信して、送信不成功の状態を疑似的に発生させる処理を繰り返す(ステップS205〜ステップS206)。
【0049】
一方、すべての抑制対象のユニット100a〜100dがエラーパッシブ状態になったと推定される場合には(ステップS207:YES)、ステップS208に進む。そして、ステップS208では、抑制対象のユニット100a〜100dがエラーパッシブ状態になって送信が抑制された状態で、抑制対象でないユニット100fとユニット100e間で、新たなデータが送信される。
【0050】
たとえば、ユニット100fがプログラムやデータの書込み用の装置であり、ユニット100eにプログラムを書き込みたい場合には、ユニット100e以外のユニット100a〜dによる送信を抑制した状態で、ネットワーク200を通じてプログラムやデータを書き込むことができる。
【0051】
したがって、ユニット100fが、送信データの識別子で示される本来の優先順位が低い場合であっても、他のユニット100a〜100dによる送信を抑制した上で、ユニット100fは、ユニット100eにデータを送信することができる。この結果、特定のユニット100fとユニット100e間での転送速度を相対的に高めることができる。特に、ネットワーク200を介して特定の電子制御装置にデータまたはプログラムを書き込む場合に、書込み時間が著しく長時間になることが防止することができる。
【0052】
なお、図6で示された本実施の形態のデータ通信方法において、ステップS204の処理は、バス型ネットワーク200を介してデータの識別子を受信する受信段階に対応する。また、ステップS205の処理は、上記の識別子に基づいて、データを送信している電子制御装置が抑制対象の電子制御装置であるか否かを判断する判断段階に対応する。
【0053】
また、ステップ206の処理は、データを送信している電子制御装置が抑制対象の電子制御装置である場合に、当該電子制御装置での送信不成功の状態を疑似的に発生させる状態発生段階に対応する。特に、ステップS206の処理は、抑制対象の電子制御装置によるデータ送信時に、ビットが所定数以上連続して一定レベル(すなわち、ドミナントレベルであるローレベル)となる電気信号を抑制対象の電子制御装置の外部からバス型ネットワーク200上に与えることによって、抑制対象の電子制御装置での送信不成功の状態を発生させる段階を含んでいる。この処理は、抑制対象の電子制御装置において、抑制対象の電子制御装置からのデータの送信時に、この抑制対象の電子制御装置による出力レベルとバス型ネットワーク200でのバスレベルとが不一致となった場合に送信不成功の状態と判断されること前提としている。
【0054】
また、ステップS208の処理は、抑制対象の電子制御装置での送信不成功の状態の発生度合い応じて当該抑制対象の電子制御装置による送信が抑制された状態で、抑制対象でない電子制御装置間で新たなデータを送信する送信段階に対応する。
【0055】
(変形例)
次に、本実施の形態の変形例について説明する。上記の図6で示されたデータ通信方法では、ステップS206において、ビットが所定数以上連続して一定レベルとなる電気信号をネットワーク上に送出することによって、抑制対象のユニットでの送信不成功の状態を疑似的に発生させる場合が示された。
【0056】
一方、本変形例では、このステップS206の処理に代えて、抑制対象のユニットによるデータ送信時に、バス型ネットワーク200でのバスレベルをビット単位で抑制対象のユニットの外部から変化させて、抑制対象のユニットでの送信不成功の状態を発生させる。
【0057】
図7は、本変形例のデータ通信方法の処理内容を示すフローチャートである。ステップS306以外のステップは、図6のフローチャートと同様である。したがって、詳しい説明を省略する。
【0058】
ステップS306では、抑制対象のユニット100a〜100dによるデータ送信時に、バス型ネットワーク200でのバスレベルをビット単位で抑制対象のユニット100a〜100dの外部から変化させて、抑制対象のユニット100a〜100dでの送信不成功の状態を発生させる。たとえば、抑制対象のユニット100a〜100dが出力したデータにおいてドミナントレベルが1ビット続く場合には、後続する5ビットをドミナントレベルに変化させて、ネットワーク200でのバスレベルが所定ビット数(6ビット)以上連続してドミナントレベルとなるようにする。同様に、抑制対象のユニットが出力したデータにおいてドミナントレベルが2ビット続く場合には、後続する4ビットをドミナントレベルに変化させ、ドミナントレベルが3ビット続く場合には、後続する3ビットをドミナントレベルに変化させる。さらに、抑制対象のユニットが出力したデータにおいてドミナントレベルが4ビット続く場合には、後続する2ビットをドミナントレベルに変化させ、ドミナントレベルが5ビット続く場合には、後続する1ビットをドミナントレベルに変化させる。
【0059】
この場合も、データを送信するユニットによる出力レベルとネットワーク200でのバスレベルとが必ず不一致となるので、データを送信するユニットにおいて送信不成功の状態が発生する。
【0060】
このように、本変形例では、ネットワーク200のバスレベルを検出し、検出結果に基づいて、バスレベルを1〜5ビットの可変長のビット単位で外部から変化させて、抑制対象のユニット100a〜100dでの送信不成功の状態を発生させる。
【0061】
本変形例でも、抑制対象のユニット100a〜100dは、送信不成功の状態の発生頻度に応じて、送信が抑制される。そして、送信が抑制された状態で、ユニット100fは、ユニット100eに対して、新たなデータを送信することができる。
【0062】
以上のように、本実施の形態および変形例のデータ通信方法によれば、以下の効果を奏することができる。
【0063】
(ア)抑制対象でないユニット100fおよびユニット100e以外のユニット100a〜100dを抑制対象として送信の頻度を抑制した後、ユニット100fおよびユニット100e間で通信することができるので、ユニット100fからユニット100e間への転送速度を実質的に高めることができる。したがって、データを大量に送受信する場合であっても、通信時間が著しく長くなることを防止することができる。特に、データの送受信を行うユニット100fおよびユニット100e以外のすべてのユニット100a〜100dを抑制対象とすることによって、転送速度を最大限に高めることができる。
【0064】
(イ)データフレームの識別子自体の設定を変更することなく、必要なときに一時的に特定のユニット間の通信を優先することができる。
【0065】
(ウ)また、抑制対象のユニット100a〜100dを、ネットワーク200から切り離してしまうバスオフ(図4参照)とするのではなく、エラーパッシブ状態とさせる。したがって、ユニット100fとユニット100eとの間のデータ送信が終了すれば、抑制対象のユニット100a〜100dも、正常に送信できるようになる。その結果、順次に送信エラーカウンタの値が下がり、エラーアクティブ状態に復帰することができる。したがって、ユニット100a〜100dの復帰の処理にかかる負担が少なく、復帰ができなくなるなどの問題が発生しない。
【0066】
(エ)図6に示されるように、判断段階(ステップS205)、状態発生段階(ステップS206)、および送信段階(ステップS208)は、ネットワーク200に着脱自在に接続される電子制御装置であるユニット100fによって実行できるので、特定のユニット間の通信を優先させたいときだけ、ユニット100fをネットワークに接続することができる。
【0067】
(オ)また、送信段階(ステップS205)において、ネットワーク200を介して、車両の特定のユニットにデータまたはプログラムを書き込む場合には、車両に設けられたネットワーク200を適宜に利用できるので、データやプログラムのインストールおよび更新を行うことができる。この際の書込み時間が短縮されるので、生産工程や整備工程の時間が短縮される。
【0068】
(カ)特に、CANプロトコルを活用しつつ、一時的に特定のユニット間の通信を優先させることができるので、応用性が高い。
【0069】
(キ)また、図6に示したように、ビットが所定数以上連続してドミナントレベルとなる電気信号をネットワーク上に送出することによって、抑制対象のユニットでの送信不成功の状態を発生させる場合には、ネットワークのバスレベルを確認して何ビット分をドミナントレベルに変化させるかを決定する必要がない。したがって、処理を簡略化することができる。
【0070】
以上のように、本実施の形態について説明したが、本発明は、これらの場合に限られない。たとえば、抑制対象となるユニットの範囲、および抑制対象としないユニットの範囲は、適宜に決めることができる。すなわち、ユニット100fからユニット100eへデータを送る場合に、ユニット100fおよびユニット100e以外のユニット100a〜100dを抑制対象としてもよく、ユニット100a〜100dの中にエラーパッシブ状態とすることが望ましくないユニット(たとえば、ユニット100a)がある場合には、このユニット100aを除いた残りのユニット100b〜100dを抑制対象としてもよい。
【0071】
また、上記の説明では、受信処理(図6のステップS204)、判断処理(図6のステップS205)、状態発生処理(ステップS206)、および最終的な送信処理(ステップS208)を実行する機能を一つのユニット100fに持たせる場合を説明したが、受信処理、判断処理、および状態発生処理の機能のみを有する専用の制御装置をネットワーク200に着脱自在に接続してもよい。この場合も、この制御装置によるエラーフラグの送信などによって特定のユニット間の通信を優先するように制御することができる。
【0072】
以上のように本実施の形態のデータ通信方法について説明したが、本発明は、これらの場合に限られず、当業者によって種々の変形、追加、および省略が可能であることはいうまでもない。
【図面の簡単な説明】
【図1】本発明が適用される車両ネットワークシステムを示すブロック図である。
【図2】図1に示されるユニット100fの構成の一例を示すブロック図である。
【図3】図1に示される各ユニットによって出力されるデータのフレーム構成を模式的に示す図である。
【図4】図1に示される各ユニットのエラー状態について模式的に示す図である。
【図5】図1に示される各ユニットにおける送信エラーの判断およびその取扱いの処理について示すフローチャートである。
【図6】図1に示されるユニット100fによる本実施の形態のデータ通信方法での処理内容について示すフローチャートである。
【図7】変形例におけるデータ通信方法での処理内容について示すフローチャートである。
【符号の説明】
100a〜100f…ユニット(電子制御装置)、
110…マイクロコンピュータ、
111…CPU、
112…通信用コントローラ、
120…トランシーバ、
200…ネットワーク、
300…コネクタ。
Claims (9)
- 複数の電子制御装置が接続されたバス型ネットワークでのデータ通信方法であって、
データを送信している電子制御装置が抑制対象の電子制御装置であるか否かを判断する判断段階と、
前記データを送信している電子制御装置が抑制対象の電子制御装置である場合に、当該電子制御装置での送信不成功の状態を疑似的に発生させる状態発生段階と、
前記抑制対象の電子制御装置での送信不成功の状態の発生度合い応じて当該抑制対象の電子制御装置による送信が抑制された状態で、前記抑制対象でない電子制御装置間で新たなデータを送信する送信段階と、を有することを特徴とするデータ通信方法。 - 前記データ通信方法は、前記バス型ネットワークを介してデータの識別子を受信する受信段階を有し、
前記判断段階は、前記識別子に基づいて、データを送信している電子制御装置が抑制対象の電子制御装置であるか否かを判断することを特徴とする請求項1に記載のデータ通信方法。 - 前記抑制対象の電子制御装置では、当該抑制対象の電子制御装置からのデータの送信時に、当該抑制対象の電子制御装置による出力レベルと前記バス型ネットワークでのバスレベルとが不一致となった場合に送信不成功の状態と判断されることを特徴とする請求項1に記載のデータ通信方法。
- 前記状態発生段階は、前記抑制対象の電子制御装置によるデータ送信時に、前記バス型ネットワークでのバスレベルをビット単位で前記抑制対象の電子制御装置の外部から変化させて、前記抑制対象の電子制御装置での送信不成功の状態を疑似的に発生させる段階を含むことを特徴とする請求項3に記載のデータ通信方法。
- 前記状態発生段階は、前記抑制対象の電子制御装置によるデータ送信時に、ビットが前記所定数以上連続して一定レベルとなる電気信号を前記抑制対象の電子制御装置の外部から前記バス型ネットワーク上に与えることによって、前記抑制対象の電子制御装置での送信不成功の状態を疑似的に発生させる段階を含むことを特徴とする請求項3に記載のデータ通信方法。
- 前記新たなデータを送受信する電子制御装置を除くすべての電子制御装置が前記抑制対象の電子制御装置となることを特徴とする請求項1〜5のいずれか一つに記載のデータ通信方法。
- 少なくとも、前記判断段階、および前記状態発生段階は、前記バス型ネットワークに着脱自在に接続される電子制御装置によって実行されることを特徴とする請求項1〜6のいずれか一つに記載の電子制御装置。
- 前記バス型ネットワークは車両に設置される車両ネットワークであることを特徴とする請求項1〜7のいずれか一つに記載の電子制御装置。
- 前記送信段階は、前記車両ネットワークを介して車両内に設置された電子制御装置にデータまたはプログラムを書き込む段階を含むことを特徴とする請求項8に記載の電子制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003157748A JP2004363761A (ja) | 2003-06-03 | 2003-06-03 | データ通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003157748A JP2004363761A (ja) | 2003-06-03 | 2003-06-03 | データ通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004363761A true JP2004363761A (ja) | 2004-12-24 |
Family
ID=34051364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003157748A Withdrawn JP2004363761A (ja) | 2003-06-03 | 2003-06-03 | データ通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004363761A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008142394A (ja) * | 2006-12-12 | 2008-06-26 | Shimadzu Corp | 医用診断装置 |
WO2012020761A1 (ja) * | 2010-08-09 | 2012-02-16 | 国立大学法人名古屋大学 | 通信システム及び通信装置 |
JP2017069941A (ja) * | 2015-09-29 | 2017-04-06 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 不正検知電子制御ユニット、車載ネットワークシステム及び通信方法 |
-
2003
- 2003-06-03 JP JP2003157748A patent/JP2004363761A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008142394A (ja) * | 2006-12-12 | 2008-06-26 | Shimadzu Corp | 医用診断装置 |
WO2012020761A1 (ja) * | 2010-08-09 | 2012-02-16 | 国立大学法人名古屋大学 | 通信システム及び通信装置 |
JP2012039446A (ja) * | 2010-08-09 | 2012-02-23 | Nagoya Univ | 通信システム及び通信装置 |
US9209942B2 (en) | 2010-08-09 | 2015-12-08 | National University Corporation Nagoya University | Communication system and communication apparatus |
JP2017069941A (ja) * | 2015-09-29 | 2017-04-06 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 不正検知電子制御ユニット、車載ネットワークシステム及び通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10193859B2 (en) | Security apparatus, attack detection method, and storage medium | |
US8868807B2 (en) | Communication system, master node, and slave node | |
US8719477B2 (en) | Communication system, master node, and slave node | |
US20140223048A1 (en) | Communication network and method for communicating in a communication network | |
US20230048058A1 (en) | Anomaly determination method, anomaly determination device, and recording medium | |
US10230656B2 (en) | Method and apparatus for controlling message over heterogeneous network | |
JP2006191337A (ja) | バス間のメッセージ転送を行うゲートウエイ装置及びそれを使用したネットワークシステム | |
US10471911B2 (en) | Power supply control apparatus, communication system, and power supply control method | |
JPH10257078A (ja) | 車両多重通信装置 | |
JP6410914B1 (ja) | シリアル通信システム | |
JP2004363761A (ja) | データ通信方法 | |
JP7147635B2 (ja) | 不正送信データ検知装置 | |
JP4042790B2 (ja) | 電気機器および電気機器における通信機能正常判定方法 | |
JP2006319381A (ja) | 緊急メッセージ送信方法 | |
JP4884490B2 (ja) | 通信システム及び通信方法 | |
JP5396812B2 (ja) | 伝送制御装置および伝送制御方法 | |
JP2007336179A (ja) | 車載データベースシステム | |
CN109154928A (zh) | 管理状态帧的丢失的多路复用网络 | |
WO2024214525A1 (ja) | 車載中継装置、車載装置および車載システム | |
JP4862629B2 (ja) | 中継装置の送信タイミング制御方法、中継装置及び通信システム | |
JP7154161B2 (ja) | 車両制御装置 | |
US12028184B2 (en) | Controller area network module and method for the module | |
JP2000040013A (ja) | 二重化通信システムの回線異常検出方法 | |
CN115499791B (zh) | 面向服务的通信方法、装置、电子设备及存储介质 | |
JP2012114724A (ja) | 電子制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |