(57)【要約】【課題】負荷を監視することなく、ネットワークに接続されたＥＣＵのデータを外部機器に中継できる中継装置を提供すること。【解決手段】車内のノード１２から接続端子を介して車外へデータを中継する中継装置１００であって、ノードから受信したデータを記憶する受信用記憶手段３２と、接続端子に送信する前記データを記憶する送信用記憶手段３１と、受信用記憶手段から送信用記憶手段にデータを中継するデータ中継手段３７と、データの優先度情報が登録された優先度テーブル３０と、受信用記憶手段のデータが、ノードから送信されたデータにより上書きされたことを検出する上書き検出手段３４と、上書き検出手段が上書きを検出した場合に、データ中継手段が中継する中継対象のデータを間引くと共に、上書き検出手段が上書きを検出する度に、優先度の低い前記データから順に、間引き対象の前記データを増やすデータ間引き手段３５と、を有することを特徴とする。【選択図】図３
2014072673.tif 000002
【特許請求の範囲】
【請求項１】
車載された複数のノードから、接続端子を介して車外へデータを中継する中継装置であって、
前記ノードから受信した前記データを記憶する受信用記憶手段と、
前記接続端子に送信する前記データを記憶する送信用記憶手段と、
前記受信用記憶手段から前記送信用記憶手段に前記データを中継するデータ中継手段と、
前記データの優先度情報が登録された優先度テーブルと、
前記受信用記憶手段の前記データが、前記ノードから送信された前記データにより上書きされたことを検出する上書き検出手段と、
前記上書き検出手段が上書きを検出した場合に、前記データ中継手段が中継する中継対象の前記データを間引くと共に、前記上書き検出手段が上書きを検出する度に、優先度の低い前記データから順に、間引き対象の前記データを増やすデータ間引き手段と、
を有することを特徴とする中継装置。
【請求項２】
前記データ中継手段は、周期的に前記接続端子にテストデータを送信し、前記テストデータの受信応答を取得したことを契機に、前記データの中継を開始する、
ことを特徴とする請求項１記載の中継装置。
【請求項３】
前記優先度テーブルには、１つの前記優先度情報に１つ以上の前記データの識別子が登録されており、
前記データ間引き手段は、前記上書き検出手段が上書きを検出する度に、同じ優先度情報に対応づけられた１つ以上の前記データの間引き頻度を大きくし、間引き頻度が閾値を超えると１段階、高い優先度情報に対応づけられた１つ以上の前記データの間引きを開始する、又は、
前記上書き検出手段が上書きを検出する度に、検出する前から間引いていた前記データの間引きを継続しながら、検出する前よりも１段階、高い優先度情報に対応づけられた１つ以上の前記データの間引きを開始する、
ことを特徴とする請求項１又は２記載の中継装置。
【請求項４】
当該中継装置には複数のバスが接続され、各バスに１つ以上の前記ノードが接続されており、
前記優先度テーブルには、１つの前記優先度情報に１つ以上の前記バスの識別子が登録されており、
前記データ間引き手段は、前記上書き検出手段が上書きを検出する度に、同じ優先度情報に対応づけられた１つ以上の前記バスから受信した前記データの間引き頻度を大きくし、間引き頻度が閾値を超えると１段階、高い優先度情報に対応づけられた１つ以上の前記データの間引きを開始する、又は、
前記上書き検出手段が上書きを検出する度に、検出する前から間引いていた前記バスから受信した前記データの間引きを継続しながら、検出する前よりも１段階、高い優先度情報に対応づけられた前記バスから受信した１つ以上の前記データの間引きを開始する、
ことを特徴とする請求項１又は２記載の中継装置。
【請求項５】
前記優先度テーブルには、１つの前記優先度情報に１つ以上の前記ノードの識別子が登録されており、
前記ノードが送信する前記データの識別子が登録されたノード・データ変換テーブルを有し、
前記データ間引き手段は、前記上書き検出手段が上書きを検出した場合、前記優先度情報に対応づけられた前記ノードの識別子を前記優先度テーブルから読み出し、さらに前記ノード・データ変換テーブルから該ノードの識別子に対応づけられた前記データの識別子を決定し、
前記データ間引き手段は、前記上書き検出手段が上書きを検出する度に、前記優先度情報から決定した前記データの間引き頻度を大きくし、間引き頻度が閾値を超えると１段階、高い優先度情報に対応づけられた１つ以上の前記データの間引きを開始する、又は、
前記上書き検出手段が上書きを検出する度に、検出する前から間引いていた前記データの間引きを継続しながら、検出する前よりも１段階、高い優先度情報から決定した１つ以上の前記データの間引きを開始する、
ことを特徴とする請求項１又は２記載の中継装置。
【請求項６】
前記データ間引き手段は、前記上書き検出手段が上書きを検出しない時間が所定時間以上継続した場合、優先度の高い前記データから順に間引く対象から除外する、
ことを特徴とする請求項１〜５いずれか１項記載の中継装置。
【請求項７】
前記接続端子から受信し前記ノードに中継する前記データを記憶する車内送信用記憶手段と、
前記接続端子から前記データを受信したことを検出するデータ受信検出手段と、
前記データ受信検出手段が前記データを受信したことを検出した場合、前記データ中継手段による前記データの中継を停止させるか又は中継する前記データを少なくする中継制御手段と、
を有することを特徴とする請求項１〜６いずれか１項記載の中継装置。
【請求項８】
前記中継制御手段は、前記車内送信用記憶手段に記憶された前記データを受信する前記ノードを特定して、前記データ中継手段による前記データの中継を停止させた場合でも、前記データ中継手段が、前記車内送信用記憶手段に記憶された前記データを受信した前記ノードが応答した応答データを前記接続端子に中継することを許可する、
ことを特徴とする請求項７項記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載された複数のノードから車外の機器へデータを中継する中継装置に関する。
【背景技術】
【０００２】
車両には多くの電子制御ユニット（以下、ＥＣＵ：Electronic  Control  Unitという）が搭載され、各ＥＣＵはＣＡＮ（Controller Area Network）などのネットワークを介して通信可能になっている。ＥＣＵがネットワーク上に送信するデータや記憶している情報を外部から確認したいという要請があり、従来から車両の運転席等に、外部機器（スキャンツール）をネットワークに接続するためのＤＬＣ（Data Link Connecter）が配置されている。
【０００３】
図１は、従来の車載ネットワークとＥＣＵを模式的に示す図の一例である。ＤＬＣに複数のＥＣＵが接続されているので、外部機器をＤＬＣに接続するだけで外部機器はＥＣＵが送信するデータを受信できる。しかしながら、ネットワークはバス負荷を分散するためＧＷ（ゲートウェイ装置）１，２でいくつかのバスに分割されており、外部機器がＧＷ１よりも先のＥＣＵからデータを受信することは困難であった。または困難ではないとしても複雑な操作が必要となっていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2011-61415号公報
【特許文献２】特開2006-287738号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、外部機器にデータを中継する新たな中継装置を新たに設けることが考えられる。図２は、外部機器とゲートウェイＥＣＵを模式的に説明する図の一例である。ゲートウェイＥＣＵ１００は複数のバス１〜ｎから外部機器２００に、また、外部機器２００からバス１〜ｎにデータを送信する中継装置である。ゲートウェイＥＣＵ１００を配置することで、ゲートウェイＥＣＵ１００に接続されたＥＣＵであれば、外部機器２００がデータを送受信することが可能になる。
【０００６】
しかしながら、このように１つのゲートウェイＥＣＵに各バスのＥＣＵが接続されると、ゲートウェイＥＣＵ１００の負荷が増大してしまう。このような不都合に対し、ゲートウェイＥＣＵ１００の負荷に応じて中継するデータを選択することが考えられている（例えば、特許文献１参照。）。特許文献１には、演算処理手段の負荷がいずれの段階にあるかに応じて、複数の検査処理のうち中継対象のデータに対し行う検査処理を選択する通信中継装置が開示されている。しかしながら、この場合、演算処理手段の負荷を監視する必要があり、ゲートウェイＥＣＵ１００が行うべき本来の中継処理を圧迫するおそれがある。
【０００７】
また、ゲートウェイＥＣＵ１００ではなくバス負荷が高くなった場合に、バス負荷を調整する技術が考えられる（例えば、特許文献２参照。）。しかしながら、この場合は、バス負荷を算出する処理が必要になり、バス負荷が高いほどバス負荷を算出する処理に能力を奪われる傾向になるため、同様の問題が生じる。
【０００８】
本発明は上記課題に鑑み、負荷を監視することなく、ネットワークに接続されたＥＣＵのデータを外部機器に中継できる中継装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、車載された複数のノードから、接続端子を介して車外へデータを中継する中継装置であって、前記ノードから受信した前記データを記憶する受信用記憶手段と、前記接続端子に送信する前記データを記憶する送信用記憶手段と、前記受信用記憶手段から前記送信用記憶手段に前記データを中継するデータ中継手段と、前記データの優先度情報が登録された優先度テーブルと、前記受信用記憶手段の前記データが、前記ノードから送信された前記データにより上書きされたことを検出する上書き検出手段と、前記上書き検出手段が上書きを検出した場合に、前記データ中継手段が中継する中継対象の前記データを間引くと共に、前記上書き検出手段が上書きを検出する度に、優先度の低い前記データから順に、間引き対象の前記データを増やすデータ間引き手段と、を有することを特徴とする。
【発明の効果】
【００１０】
負荷を監視することなく、ネットワークに接続されたＥＣＵのデータを外部機器に中継できる中継装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】従来の車載ネットワークとＥＣＵを模式的に示す図の一例である。
【図２】外部機器とゲートウェイＥＣＵを模式的に説明する図の一例である。
【図３】本実施形態のゲートウェイＥＣＵによるデータの中継を説明する図の一例である。
【図４】ゲートウェイＥＣＵのハードウェア構成図の一例である。
【図５】データフレームの一例を示す図である。
【図６】ゲートウェイＥＣＵの機能ブロック図の一例である。
【図７】転送管理テーブルの一例を示す図である。
【図８】転送処理部が転送処理を開始するまでの手順を示すフローチャート図の一例である。
【図９】優先順位テーブルの一例を示す図である。
【図１０】ゲートウェイＥＣＵによるＣＡＮフレームの転送手順を示すフローチャート図の一例である。
【図１１】優先順位テーブル等の一例を示す図である。
【図１２】優先順位テーブルの一例を示す図である。
【図１３】外部機器から受信するＣＡＮフレームと、ゲートウェイＥＣＵが転送するＣＡＮフレームを模式的に説明する図の一例である。
【図１４】ゲートウェイＥＣＵの機能ブロック図の一例である。
【図１５】ゲートウェイＥＣＵによるＣＡＮフレームの転送手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を参照しながら説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
【実施例１】
【００１３】
図３は、本実施形態のゲートウェイＥＣＵによるデータの中継を説明する図の一例である。図３（ａ）に示すように、各ＥＣＵ１２（区別する場合、ＥＣＵに"バス番号−連番"を付す）は、任意のタイミングでデータを送信する。ゲートウェイＥＣＵ１００はバス毎に少なくとも１つの受信バッファを有しており、受信バッファに記憶されたデータをＤＬＣ側に送信する。ＥＣＵ１２、データ又はバス１〜ｎには予め優先順位が定められている。この優先順位は、外部機器２００に優先的に送信されるデータを選択するための優先順位である。ここでは簡単のため、バス毎に優先順位が定められているものとする。優先順位は数が小さい方が高い。
【００１４】
図３（ａ）（ｂ）に示すように、各ＥＣＵのデータの送信頻度が増大したためバス負荷が増大する場合がある。各バスの受信バッファにはすでにデータが記憶されており、送信バッファにはまだ送信されていないデータが記憶されている。このため、受信バッファのデータが送信バッファに転送される前に、受信バッファのデータが上書きされる場合がある。ゲートウェイＥＣＵ１００はこの上書きを検出して、データの間引き処理を行う。間引き処理とは、バス側からＤＬＣ１１へのデータの中継を行わないことをいう。以下、単に「間引く」という場合がある。
【００１５】
ゲートウェイＥＣＵ１００は、優先順位の低いデータから順番に間引き処理を行う。図３（ｃ）では、データn-1、n-3が間引きされる。優先順位に拘わらず、ゲートウェイＥＣＵ１００が１つのデータに対し行う中継処理は同じなので、データが間引きされることで負荷が減少し受信バッファのデータが上書きされる頻度が減少することが期待できる。この後、ゲートウェイＥＣＵは、受信バッファのデータの上書きを検出する毎に、間引き対象のデータを増やす。間引き処理の具体的な態様は種々あるが、バス３のデータを1回置きに間引きしてもよいし、バス３のデータ全てを間引きしてもよい。
【００１６】
このように、上書きの検出とデータの間引き処理を繰り返すことで、優先順位の高いデータを優先的に外部機器２００に送信しながら、徐々に負荷の増大を抑制し上書きを少なくできる。また、ゲートウェイＥＣＵ１００の処理負荷を監視する必要がないので、ゲートウェイＥＣＵ１００の転送処理を圧迫することも低減される。
【００１７】
〔構成例〕
図３（ａ）に基づき、本実施例の車載システム３００について説明する。バス１〜ｎには１つ以上のＥＣＵ１２が接続されている。１つのバスに全てのＥＣＵ１２を比べる場合と比較して、バス負荷を低減できる。図ではゲートウェイＥＣＵ１００とは別に、バス間のデータ転送を受け持つＧＷ（ゲートウェイ）が記載されていないが、不図示のＧＷが配置されているか、ゲートウェイＥＣＵ１００が兼用するか又はあるＥＣＵ１２がＧＷの機能を兼ねている。
【００１８】
バス１には、例えば、エンジンＥＣＵ、スマートキーＥＣＵ、エアバッグＥＣＵ、ボディーＥＣＵ、パワーステアリングＥＣＵ、メータＥＣＵ、スキッド制御ＥＣＵ、及び、パワーマネージメントＥＣＵ等が接続されている。なお、ＥＣＵ１２だけでなくセンサが接続されている場合もある。バス２には、例えば、ドライビングサポートＥＣＵ、駐車支援ＥＣＵ、シートベルトＥＣＵ、クリアランスウォーニングＥＣＵ、及び、ヘッドランプスイブルＥＣＵ等が接続されている。バス３には、エンジンＥＣＵ、ドライビングサポートＥＣＵ、及び、スキッド制御ＥＣＵが接続されている。
【００１９】
各ＥＣＵ１２は処理能力の違いなどから構成の違いがあるが、ＣＰＵ２２、ＲＡＭ２３、ＲＯＭ２４、Ｉ／Ｏ及びＣＡＮコントローラなどを有するマイコン、電源回路、並びに、ワイヤーハーネスを接続するコネクターなどを有している。
【００２０】
ＤＬＣ１１は、外部機器２００を装着するための物理形状、電気信号、及び、ピンアサインが規定されたコネクターである。例えばＯＢＤ（On Board Diagnostic System）IIによりこれらが規定されている。ＯＢＤIIは更に、外部機器２００が要求するデータを後述するＣＡＮＩＤとして規定しており、このＣＡＮＩＤを受信したＥＣＵから、外部機器２００は要求したデータを受信することができる。すなわち、外部機器２００はＤＬＣ１１を介することで、車両のネットワークに接続されたＥＣＵと通信することができる。
【００２１】
図４は、ゲートウェイＥＣＵ１００のハードウェア構成図の一例を示す。ゲートウェイＥＣＵ１００はバス２８に接続された、ＣＰＵ２２、ＲＡＭ２３、ＲＯＭ２４、及び複数のＣＡＮコントーラ２１，２５〜２７（以下、バス１〜ｎに接続されたＣＡＮコントローラをそれぞれＣＡＮコントローラ１〜ｎ、ＤＬＣに接続されたＣＡＮコントローラをＣＡＮコントローラＳという）を有している。本実施例で使用されない構成は省略されている。ＣＰＵ２２はＲＯＭ２４に記憶されたプログラムをＲＡＭ２３に展開して実行して、後述するデータの間引きなどの処理を実行する。ＣＡＮコントーラ１〜ｎはバス毎に設けられる。ＣＡＮのバスはＨとＬの２本の通信線を１対としてその差動電圧により論理レベル（Ｈ or L）を伝達する。バス１〜ｎに接続された全てのＥＣＵ１２には同じ差動電圧が伝達される。また、データを送信したＥＣＵ１２は、送信中の自身のデータを監視（受信）できるようになっている。
【００２２】
ＣＡＮコントローラはデータ伝送に関する制御を行う。受信時、ＣＡＮコントローラでは不図示のトランシーバによりバス１〜ｎを流れる差動電圧をデジタル信号に変換する。ＣＡＮコントーラ１〜ｎはこのデジタル信号に対し、受信判断、ＡＣＫの応答、エラー検知等を行う。送信時、ＣＡＮコントローラはＣＡＮＩＤの設定、ＣＡＮフレームの作成、調停などを行い、トランシーバが論理レベルを差動電圧に変換する。
【００２３】
＜ＣＡＮフレーム＞
ＣＡＮを流れるデータはＣＡＮフレームと呼ばれ、データフレーム、リモートフレーム、エラーフレーム、及び、オーバーロードフレームの４種類があり、それぞれフォーマットが決まっている。主に使用するのはデータを送信するデータフレームと、データを要求するリモートフレームである。
【００２４】
図５はデータフレームの一例を示す図である。ＳＯＦはＣＡＮフレームの先頭を示す。ＣＡＮＩＤはデータを識別するための識別子であり、バスの使用権を調停する際にも使用される。ＲＩ，ＴＤｒ、ＲＥ０は制御用bitで固定値である。ＤＬＣ１１はデータフレームが格納するデータの長さを示す。ＤＡＴＡには送信対象のデータが格納される。ＣＲＣはエラー検出用の巡回冗長符号である。ＣＲＣの次の１bitはＣＲＣデリミタと呼ばれ、区切り用のbitである。ＡＣＫスロットは、受信側のＥＣＵが正常受信を伝えるための１bitである。送信側のＥＣＵがＡＣＫスロットをレセッシブ（１：劣性）で送信すると、受信側のＥＣＵはＡＣＫスロットにドミナント（０：優性）を設定する。このドミナントの設定をＡＣＫを返すという場合がある。ＡＣＫデリミタは区切り用の１bitである。ＥＯＦは送信の完了を示す。リモートフレームはＤＬＣ１１とＤＡＴＡがない以外はデータフレームと同様である。
【００２５】
各ＣＡＮコントローラのレジスタには、ゲートウェイＥＣＵ１００の起動時に受信すべきＣＡＮＩＤが登録されている。ＣＡＮコントローラはバス１〜ｎを流れるＣＡＮフレームのＣＡＮＩＤを監視し、それが登録されたＣＡＮＩＤである場合に受信する。また、この時、ＡＣＫスロットをドミナントに設定する。これにより、送信側のＥＣＵはＣＡＮフレームが正常に受信されたことを検知できる。
【００２６】
ＣＡＮコントローラ１〜ｎはＣＡＮフレームを受信すると、ＣＡＮフレームから必要なフィールドを取り出し受信バッファに記憶する。取り出すフィールドは、例えば、ＣＡＮＩＤ〜ＣＲＣであるが、受信バッファに記憶された状態のデータもＣＡＮフレームと称することにする。
【００２７】
〔機能について〕
図６は、ゲートウェイＥＣＵ１００の機能ブロック図の一例を示す。受信バッファ３２（以下、区別する場合、受信バッファ１〜ｎという）と送信バッファ３１（以下、区別する場合、送信バッファ１〜ｎという）とを有している。受信バッファ３２はＲＡＭ２３の予め定められたアドレスの領域又はＣＡＮコントローラ１〜ｎに用意されているメモリである。ＣＡＮコントローラ１〜ｎの数だけ受信バッファが用意される。送信バッファ３１は、受信バッファ３２の数を考慮して複数個、設けられる。図ではバス１〜ｎの数と等しくしたが、ｎ未満でもｎ以上でもよい。
【００２８】
受信検出部３３、上書き判定部３４、データ間引き部３５、及び、転送処理部３７は、ＣＰＵ２２がプログラムを実行しＤＭＡＣ（Direct  Memory  Access  Controller）や割込みコントローラなどのハードウェアと協働して実現される。
【００２９】
受信検出部３３は、ＣＡＮコントローラ１〜ｎがＣＡＮフレームを受信したことをＣＰＵ２２に受信割込みにより通知することを利用して、ＣＡＮコントローラがＣＡＮフレームを受信したことを検出する。割込み時に受信検出部３３はＣＡＮコントローラ１〜ｎの識別情報等からバス番号を判断する。受信検出部３３は、割込みの検知とバス番号を上書き判定部３４と転送処理部３７に通知する。
【００３０】
上書き判定部３４は、転送管理テーブル３６を参照して、過去に受信した各受信バッファのＣＡＮフレームの転送が完了したか否かを判定する。
【００３１】
図７は、転送管理テーブル３６の一例を示す図である。バス番号に対応づけて未転送フラグが登録されている。未転送フラグは転送するまで"１"になり、転送により"０"となるフラグである。上書き判定部３４は、受信検出部３３から通知されたバス番号の未転送フラグが"１"の場合、上書きが発生したと判定する。また、受信検出部３３から通知されたバス番号の未転送フラグが"０"の場合、上書きが発生したとは判定せずに未転送フラグに"１"に設定する。上書き判定部３４は、上書きを検知するとデータ間引き部３５に通知する。なお、１つのバスに複数の受信バッファ３２が用意されていてもよい。
【００３２】
＜転送処理＞
図６に戻り、転送処理部３７は外部機器２００が接続されたことを検知した場合に、転送処理を開始する。外部機器２００が接続されている場合、転送処理部３７は、受信検出部３３から通知されたバス番号により受信バッファ１〜ｎを特定し、記憶されたＣＡＮフレームをＤＬＣ側に送信する転送処理を行う。
【００３３】
図８は、転送処理部３７が転送処理を開始するまでの手順を示すフローチャート図の一例である。
【００３４】
転送処理部３７は、定期的にＤＬＣ側からテスト信号を送信する（Ｓ１０）。テスト信号は、外部機器２００が受信可能なＣＡＮＩＤを有し、外部機器２００が接続されていれば外部機器２００がＡＣＫスロットにドミナントを設定する（ＡＣＫを返す）ＣＡＮフレームであればよい。すなわち、ＤＡＴＡに送信すべきデータを格納する必要はない（格納してもよい）。転送処理部３７は、このようなＣＡＮＩＤを指定してＣＡＮコントローラＳに送信要求する。これにより、ＣＡＮコントローラＳはＣＡＮフレームを作成してＤＬＣ側に送信する。
【００３５】
転送処理部３７は、ＣＡＮコントローラＳがＡＣＫを検知したか否かを判定する（Ｓ２０）。ＡＣＫを検知しない場合（Ｓ２０のＮｏ）、ＤＬＣ１１には何も接続されていないので、転送処理部３７はＳ１０とＳ２０の処理を繰り返す。
【００３６】
ＣＡＮコントローラＳがＡＣＫを検知した場合（Ｓ２０のＹｅｓ）、転送処理部３７は外部機器２００がＤＬＣ１１に接続されたと判定する（Ｓ３０）。
【００３７】
これにより、転送処理部３７は受信バッファ１〜ｎに記憶されたデータの中継を開始する（Ｓ４０）。外部機器２００を使用するユーザから見ると、外部機器２００をＤＬＣ１１に接続するだけでデータを受信できるので、外部機器２００の操作性が向上する。外部機器２００からゲートウェイＥＣＵ１００にデータの送信要求を送信し、転送処理部３７は送信要求を受信した場合にデータの中継を開始してもよい。こうすることで消費電力を低減できる。
【００３８】
中継処理は、例えば、受信バッファ１〜ｎに記憶されているＣＡＮフレームのＣＡＮＩＤをＣＡＮコントローラＳに指定して、ＤＡＴＡ内のデータを送信バッファ１〜ｎに記憶し、送信指示することで行われる。必要であれば、ＤＡＴＡ内のデータを加工してもよく、ＣＡＮＩＤの変換などを行ってもよい。この場合、転送処理部３７は変換前後のＣＡＮＩＤの対応テーブルを有している。
【００３９】
また、転送処理部３７は外部機器２００を認証してもよい。例えば、外部機器２００がライセンス情報を記憶している場合に認証が成立すると判定し、認証が成立したらＣＡＮフレームの中継を行う。または、認証が成立しない場合に、中継するＣＡＮフレームを制限してもよい。
【００４０】
転送処理部３７は受信バッファ１〜ｎから送信バッファ１〜ｎにＣＡＮフレームを中継した場合、転送管理テーブル３６の未転送フラグに"０"を設定する。このように、未転送フラグが転送済か否かを示すので、上書き判定部３４は上書きの有無を判定できる。
【００４１】
＜ＣＡＮフレームの間引き＞
データ間引き部３５は、上書きが検知された場合に転送処理部３７にＣＡＮフレームの間引きを指示する。間引くデータを決定するため、転送処理部３７は優先順位テーブル３０を参照可能になっている。
【００４２】
図９は優先順位テーブルの一例を示す。優先順位テーブル３０には、優先順位にバス番号が対応づけられている。すなわち、バス１のＣＡＮフレームは優先順位が最も高く、バスｎのＣＡＮフレームは優先順位が最も低い。
【００４３】
転送処理部３７は、上書きの頻度に応じて優先順位が低いバスのＣＡＮフレームから順に中継対象から除外することで、ＣＡＮフレームを間引く。間引くＣＡＮフレームを決定するための規則には以下のようなものがある。
(i)  上書きが検知される毎に間引くＣＡＮフレームの優先順位を高くする
１レベル（１回目の上書き検知）  →  バスｎのＣＡＮフレームを１つ置きに間引く
２レベル（２回目の上書き検知）  →  バスｎ−１のＣＡＮフレームを１つ置きに間引く
：
ｎレベル（ｎ回目の上書き検知）    →  バス１のＣＡＮフレームを１つ置きに間引く
ｎ＋１レベル（ｎ＋１回目の上書き検知）  →  バスｎのＣＡＮフレームを３回に２回、間引く
：
または、バス全体のＣＡＮフレームを間引くこともできる
１レベル（１回目の上書き検知）  →  バスｎのＣＡＮフレームを全て送信しない
２レベル（２回目の上書き検知）  →  バスｎ−１のＣＡＮフレームを全て送信しない
：
ｎレベル（ｎ回目の上書き検知）    →  バス１のＣＡＮフレームを全て送信しない
(ii)  上書きが検知される毎に低い優先順位のバスから間引く頻度を大きくし、間引く頻度が閾値以上になったら次に高い優先順位のバスに対し間引く頻度を大きくしていく
１レベル（１回目の上書き検知）  →  バスｎのＣＡＮフレームを１つ置きに間引く
２レベル（２回目の上書き検知）  →  バスｎのＣＡＮフレームを３回に２回、間引く
３レベル（３回目の上書き検知）  →  バスｎのＣＡＮフレームを４回に３回、間引く
４レベル（４回目の上書き検知）  →  バスｎ−１のＣＡＮフレームを１つ置きに間引く
５レベル（５回目の上書き検知）  →  バスｎ−１のＣＡＮフレームを３回に２回、間引く
：
なお、(i)(ii)いずれの場合も、ｋレベルでは、ｋ-１以下のレベルで規定されるＣＡＮフレームを間引くことを継続する。
【００４４】
このように、間引きした状態でさらに上書きが検知される毎に、間引きのレベルが大きくなり間引かれるＣＡＮフレーム数が多くなっていく。(i)(ii)どちらの規則を採用するかは、バスを流れるＣＡＮフレームに基づき転送処理部３７に設定されている。なお、(i)と(ii)を組み合わせ、任意のバスについては(ii)を採用し、その他のバスには(i)を採用するなど、間引く規則は任意である。
【００４５】
データ間引き部３５は上記のレベルを転送処理部３７に指示する。ＣＡＮフレームを間引くように指示された転送処理部３７は、レベルに応じて間引き対象のバス番号やＣＡＮフレームを決定する。レベルにより間引き対象のバスと間引き頻度が決まるので、間引き対象のバスに接続されたＣＡＮコントローラがＣＡＮフレームを受信した場合、その数をカウントする。１つ置きに間引く場合、数が奇数の場合にだけ中継することなく転送管理テーブル３６の未転送フラグを"０"に設定する。このように、レベルに応じて間引き頻度を制御できる。なお、バス全体のＣＡＮフレームを間引く場合は、このようなカウントは不要になる。
【００４６】
図１０は、ゲートウェイＥＣＵ１００によるＣＡＮフレームの中継手順を示すフローチャート図の一例である。図１０の処理は、転送処理部３７が外部機器２００からＡＣＫを受信することでスタートする。
【００４７】
データ間引き部３５は、例えば受信検出部３３がＣＡＮフレームの受信を検出する毎に、ＣＡＮフレームの上書きが発生したか否かを判定する（Ｓ１１０）。上書きが発生していない場合（Ｓ１１０のＮｏ）、転送処理部３７はＣＡＮフレームの中継を実行する（Ｓ１４０）。
【００４８】
上書きが発生した場合（Ｓ１１０のＹｅｓ）、データ間引き部３５は変数iを１つ大きくする（Ｓ１２０）。変数ｉは間引きのレベルを示す整数であり、"０"の場合は間引きなしを意味する。
【００４９】
次いで、転送処理部３７は、iレベルの間引きを行う（Ｓ１３０）。すなわち、転送処理部３７は、変数iより定まるレベルに応じてＣＡＮフレームが間引かれるバス１〜ｎとその頻度を判定し、中継を行わないことでＣＡＮフレームを間引く。
【００５０】
次いで、データ間引き部３５は、最後にレベルを変更してから所定時間が経過したか否かを判定する（Ｓ１５０）。ここでは、ＣＡＮフレームの間引きのレベルを元に戻すか否かを判定する。最後にレベルを上げてから所定時間が経過した場合、上書きが検知されなくなってから所定時間が経過したことになるので、試験的に間引きのレベルを１つ戻す。また、最後にレベルを下げてから所定時間が経過した場合、そのレベルで上書きが検知されていないことになるので、試験的に間引きのレベルを１つ戻す。
【００５１】
したがって、データ間引き部３５は最後にレベルを変更してから所定時間が経過した場合（Ｓ１５０のＹｅｓ）、変数iを１つ小さくする（Ｓ１６０）。これにより上書きが検知されれば、変数iが１つ大きくなり間引きのレベルが増大し、上書きが検知されない状態が所定時間すれば、変数iがさらに１つ小さくなり間引きのレベルが低下する。こうすることで、バス負荷が低下すれば変数iがゼロに戻り、間引き処理を終了できる。
【００５２】
〔優先順位のグループと間引き処理の別の例〕
上記ではバス毎に優先順位が決まっていると説明したが、優先順位は様々な粒度で設定することができる。
【００５３】
Ａ．ＥＣＵ毎に優先順位が付与されている場合
図１１（ａ）はＥＣＵ毎に優先順位が付与されている場合の優先順位テーブル３０の一例を示す。図１１（ａ）では、優先順位に１つ以上のＥＣＵ番号が対応づけられている。ＥＣＵ番号は例えばＥＣＵを識別する型番やＣＡＮ上で重複しない一意の識別情報である。
【００５４】
このように優先順位が設定されている場合、同じ受信バッファに優先順位が異なるＥＣＵのＣＡＮフレームが記憶されることになる。しかしながら、受信バッファに記録されるＣＡＮフレームにはＥＣＵ番号は含まれないので、転送処理部３７は受信バッファのＣＡＮフレームの優先順位を判断できない。
【００５５】
このため、転送処理部３７は、図１１（ｂ）のようなＥＣＵ送信ＣＡＮＩＤテーブルを有している。ＥＣＵ送信ＣＡＮＩＤテーブルには、各ＥＣＵが送信するＣＡＮＩＤが登録されている。したがって、転送処理部３７は、データ間引き部３５から通知されるレベルにより、間引きの対象となるＥＣＵ番号とＣＡＮＩＤを特定できる。
【００５６】
データ間引き部３５が決定するＣＡＮフレームを決定するための規則は上記(i)(ii)と同様でよい。
(i)  上書きが検知される毎に間引くＥＣＵグループの優先順位を高くする
１レベル（１回目の上書き検知）  →  優先順位ｎのＥＣＵグループのＣＡＮフレームを１つ置きに間引く
２レベル（２回目の上書き検知）  →  優先順位ｎ−１のＥＣＵグループのＣＡＮフレームを１つ置きに間引く
：
ｎレベル（ｎ回目の上書き検知）  →  優先順位１のＥＣＵグループのＣＡＮフレームを１つ置きに間引く
ｎ＋１レベル（ｎ＋１回目の上書き検知）  →  優先順位ｎのＥＣＵグループのＣＡＮフレームを３回に２回、間引く
：
(ii)  上書きが検知される毎に低い優先順位のＥＣＵグループから間引く頻度を大きくし、間引く頻度が閾値以上になったら次に高い優先順位のＥＣＵグループに対し間引く頻度を大きくしていく
１レベル（１回目の上書き検知）→  優先順位ｎのＥＣＵグループのＣＡＮフレームを１つ置きに間引く
２レベル（２回目の上書き検知）→  優先順位ｎのＥＣＵグループのＣＡＮフレームを３回に２回、間引く
３レベル（３回目の上書き検知）→  優先順位ｎのＥＣＵグループのＣＡＮフレームを４回に３回、間引く
４レベル（４回目の上書き検知）→  優先順位ｎ−１のＥＣＵグループのＣＡＮフレームを１つ置きに間引く
５レベル（５回目の上書き検知）→  優先順位ｎ−１のＥＣＵグループのＣＡＮフレームを３回に２回、間引く
：
例えば(i)の場合、転送処理部３７は以下のようにしてＣＡＮフレームの間引きを行う。
・１レベルの場合
１レベルでは優先順位ｎのＥＣＵグループのＣＡＮフレームを間引くので、転送処理部３７は優先順位テーブル３０からＥＣＵ番号を特定する。この場合、ECU1-3、ECU2-3、ECU3-3が特定される。次に、ＥＣＵ送信ＣＡＮＩＤテーブルを参照して、ＣＡＮＩＤを特定する。よって１レベルでは、006、009及び010（ECU2-3のＣＡＮＩＤは省略）が間引きの対象となるＣＡＮフレームのＣＡＮＩＤである。したがって、転送処理部３７は、受信バッファに記憶されたＣＡＮフレームのＣＡＮＩＤを確認して006、009又は010であれば１つ置きに間引く（２回に１回だけ中継する）。
・２レベルの場合
２レベルでは優先順位n-1と優先順位nのＥＣＵのＣＡＮフレームを間引く。レベル２では、ECU1-2、ECU2-2、ECU3-2が特定される。次に、ＥＣＵ送信ＣＡＮＩＤテーブルを参照して、ＣＡＮＩＤを特定する。よって２レベルでは、003、004及び005（ECU2-2、3-2のＣＡＮＩＤは省略）が間引きの対象となるＣＡＮフレームのＣＡＮＩＤである。
【００５７】
したがって、転送処理部３７は、受信バッファに記憶されたＣＡＮフレームのＣＡＮＩＤを確認して003、004又は005であれば１つ置きに間引く（２回に１回だけ中継する）。また、レベル１の間引き処理を継続するので、006、009又は010であれば、１つ置きに間引く（２回に１回だけ中継する）。
【００５８】
このようにすることで、ＥＣＵ単位でデータを間引きくことができる。ＥＣＵは例えばエンジンを制御する機能のように同系統の機能がまとまっているので、同じＥＣＵが送信するＣＡＮフレームも同じ優先度の場合がある。したがって、ＥＣＵ毎に優先順位を付与することでＣＡＮフレームの優先順位を管理しやすくなる。
【００５９】
Ｂ．ＣＡＮＩＤ毎に優先順位が付与されている場合
図１２はＣＡＮＩＤ毎に優先順位が付与されている場合の優先順位テーブル３０の一例を示す。図１２では、優先順位にＣＡＮＩＤグループが対応づけられている。ＥＣＵではなくＣＡＮＩＤと優先順位を対応づけることで、同じＥＣＵが送信する複数のＣＡＮフレームに異なる優先順位を付与することができる。
【００６０】
データ間引き部３５が決定するＣＡＮフレームを決定するための規則は上記(i)(ii)と同様なので省略する。
【００６１】
例えば(i)の場合、転送処理部３７は以下のようにしてＣＡＮフレームの間引きを行う。
・１レベルの場合
１レベルでは優先順位ｎのＣＡＮＩＤグループのＣＡＮフレームを間引くので、転送処理部３７は優先順位テーブル３０からＣＡＮＩＤを特定する。よって１レベルでは、009及び010が間引きの対象となるＣＡＮフレームのＣＡＮＩＤである。したがって、転送処理部３７は、受信バッファに記憶されたＣＡＮフレームのＣＡＮＩＤを確認して009又は010であれば、１つ置きに間引く（２回に１回だけ中継する）。
・２レベルの場合
２レベルでは優先順位n-1と優先順位nのＣＡＮＩＤグループのＣＡＮフレームを間引く。レベル２では、008が間引きの対象となるＣＡＮフレームのＣＡＮＩＤである。
【００６２】
したがって、転送処理部３７は、受信バッファに記憶されたＣＡＮフレームのＣＡＮＩＤを確認して008であれば１つ置きに間引く（２回に１回だけ中継する）。また、レベル１の間引き処理を継続するので、009又は010であれば１つ置きに間引く（２回に１回だけ中継する）。
【００６３】
このようにすることで、ＣＡＮＩＤ単位でデータを間引きくことができる。ＥＣＵ毎に優先順位を設定することでよりきめ細かいデータの間引き制御が可能になる。
【００６４】
以上説明したように、本実施例のゲートウェイＥＣＵ１００は上書きを検知する毎に優先順位の低いＣＡＮフレームから徐々に間引くので、処理負荷やバス負荷を監視することなく、優先順位の高いＣＡＮフレームを確実に中継することができる。
【実施例２】
【００６５】
上記のように、外部機器２００がゲートウェイＥＣＵ１００に対しＣＡＮフレームを送信することがある。この場合、バス１〜ｎのバス負荷が高いと、ＣＡＮフレームをバス１〜ｎに送信することが困難になることが予想される。
【００６６】
図１３は、外部機器２００から受信するＣＡＮフレームと、ゲートウェイＥＣＵ１００が中継するＣＡＮフレームを模式的に説明する図の一例である。本実施例において、実施例１において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
【００６７】
外部機器２００がバス１〜ｎに送信するＣＡＮフレームは、例えばリモートフレームにより特定のＥＣＵにデータの送信を要求するものであったり、アクティブテストを行わせその結果を要求するものである。ゲートウェイＥＣＵ１００は、バス１〜ｎの全てに外部機器２００が送信したＣＡＮフレームを中継する。これは、どのバス１〜ｎに外部機器２００が送信したＣＡＮフレームに応答するＥＣＵが接続されているか不明なためである。このため、バス１〜ｎのバス負荷が高くなる。また、ゲートウェイＥＣＵ１００が、外部機器２００から受信したＣＡＮフレームのＣＡＮＩＤと送信先のバスを対応づけておくことも可能ではあるが、送信先を決定することで処理負荷が増大してしまう。
【００６８】
そこで、本実施例のゲートウェイＥＣＵ１００は、外部機器２００からＣＡＮフレームを受信した場合、バス１〜ｎから外部機器２００への転送処理を停止する。または、実施例１のように間引きする。一方、外部機器２００から送信要求され、ＥＣＵ１２が送信したＣＡＮフレームは外部機器２００に送信すべきなので、ＥＣＵが応答してゲートウェイＥＣＵ１００に送信したＣＡＮフレームを外部機器２００に送信する。こうすることで、外部機器２００はＣＡＮフレームをバス１〜ｎのＥＣＵに確実に送信でき、また、応答を受信することができる。
【００６９】
図１４は、ゲートウェイＥＣＵ１００の機能ブロック図の一例を示す。図６に対し、ＤＬＣ側に受信バッファ４０が、バス１〜ｎ側に送信バッファ４１が設けられ、また、外部受信検出部３８とバス送信制御部３９を有している。外部受信検出部３８は、ＣＡＮコントローラＳがＣＡＮフレームを受信した受信割込みにより外部機器２００からＣＡＮフレームを受信したことを検出する。外部受信検出部３８は、転送処理部３７とバス送信制御部３９に受信したことを通知するので、転送処理部３７はバス１〜ｎのＣＡＮフレームの中継を中止するか、又は、上書きの有無に関係なく間引きを開始する。
【００７０】
中継を中止するのでなく間引き処理する場合、実施例１のレベルの代わりに、外部機器２００から受信するＣＡＮフレームの単位時間当たりの受信量などに応じてレベルを指定することができる。
【００７１】
バス送信制御部３９は、ＤＬＣ側の受信バッファ４０のＣＡＮフレームを、送信バッファ４１に記憶することでバス１〜ｎに中継する。この場合、バス１〜ｎの順番にＣＡＮフレームを送信することで、ＣＡＮフレームに応答すべきＥＣＵが送信したＣＡＮフレームを、ゲートウェイＥＣＵ１００が中継することを可能にする。例えば、以下のように制御する。
１．バス２〜ｎから外部機器２００への中継を中止した状態で、バス１にＣＡＮフレームを送信する。ＡＣＫを受信した場合、バス１からＣＡＮフレームを受信すると共に、転送処理部３７にバス１の中継のみを許可する。ＡＣＫを受信しない場合、バス２に対し同様の送信処理を行う。
２．バス１，３〜ｎから外部機器２００への中継を中止した状態で、バス２にＣＡＮフレームを送信する。ＡＣＫを受信した場合、バス２からＣＡＮフレームを受信すると共に、転送処理部３７にバス２の中継のみを許可する。ＡＣＫを受信しない場合、バス３に対し同様の送信処理を行う。
【００７２】
中継を中止するのでなく間引き処理する場合、バス送信制御部３９がＣＡＮフレームを送信しているバス以外では、間引き処理を継続し、ＣＡＮフレームを送信しているバスでは同様にＡＣＫの有無を判定すればよい。
【００７３】
図１５は、ゲートウェイＥＣＵ１００によるＣＡＮフレームの中継手順を示すフローチャート図の一例である。図１５の処理は、転送処理部３７が外部機器２００からＡＣＫを受信することでスタートする。
【００７４】
外部受信検出部３８は外部機器２００からＣＡＮフレームを受信したか否かを判定する（Ｓ２１０）。１ＣＡＮフレームだけで受信したと判定してもよいし、単位時間に所定数以上のＣＡＮフレームを受信した場合に、ＣＡＮフレームを受信したと判定してもよい。
【００７５】
ＣＡＮフレームを受信した場合（Ｓ２１０のＹｅｓ）、転送処理部３７はバス１〜ｎのＣＡＮフレームの中継を中止するか、又は、間引きを開始する（Ｓ２２０）。この後、バス送信制御部３９はＤＬＣ側の受信バッファ４０に記憶されているＣＡＮフレームをバス１〜ｎの送信バッファ４１に中継する。この中継に対し、バス１〜ｎのＥＣＵから受信したＣＡＮフレームは外部機器２００に中継される。
【００７６】
外部受信検出部３８がＣＡＮフレームを受信していない場合（Ｓ２１０のＮｏ）、転送処理部３７はバス１〜ｎのＣＡＮフレームをＤＬＣ側に中継する（Ｓ２３０）。なお、この中継処理において上書きが検知されれば、実施例１のように間引き処理が行われる。
【００７７】
以上のように、本実施例のゲートウェイＥＣＵ１００は、外部機器２００からＣＡＮフレームを受信した場合、中継処理を中止等することで外部機器２００が車内にデータを送信することを可能にできる。
【符号の説明】
【００７８】
１１    ＤＬＣ
１２    ＥＣＵ
２１，２５〜２７  ＣＡＮコントローラ
３１    送信バッファ
３２    受信バッファ
３４    上書き判定部
３５    データ間引き部
３７    転送処理部
１００  ゲートウェイＥＣＵ
２００  外部機器
【図１】
2014072673.tif 000003
【図２】
2014072673.tif 000004
【図３】
2014072673.tif 000005
【図４】
2014072673.tif 000006
【図５】
2014072673.tif 000007
【図６】
2014072673.tif 000008
【図７】
2014072673.tif 000009
【図８】
2014072673.tif 000010
【図９】
2014072673.tif 000011
【図１０】
2014072673.tif 000012
【図１１】
2014072673.tif 000013
【図１２】
2014072673.tif 000014
【図１３】
2014072673.tif 000015
【図１４】
2014072673.tif 000016
【図１５】
2014072673.tif 000017