JP2010251837A - ゲートウェイ装置及びゲートウェイ方法 - Google Patents

ゲートウェイ装置及びゲートウェイ方法 Download PDF

Info

Publication number
JP2010251837A
JP2010251837A JP2009095943A JP2009095943A JP2010251837A JP 2010251837 A JP2010251837 A JP 2010251837A JP 2009095943 A JP2009095943 A JP 2009095943A JP 2009095943 A JP2009095943 A JP 2009095943A JP 2010251837 A JP2010251837 A JP 2010251837A
Authority
JP
Japan
Prior art keywords
data
software processing
storage unit
frame
communication
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
Application number
JP2009095943A
Other languages
English (en)
Inventor
Susumu Nishibashi
奨 西橋
Yoshihide Oda
好秀 小田
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.)
Denso Ten Ltd
Original Assignee
Denso Ten Ltd
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 Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP2009095943A priority Critical patent/JP2010251837A/ja
Publication of JP2010251837A publication Critical patent/JP2010251837A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】ゲートウェイ装置に宛てて送信されたデータを効率的に蓄積できるゲートウェイ装置及び方法を提供する。
【解決手段】
車両の制御を行う制御装置との間で通信路を介して送受信するデータを、ハードウェア回路を用いて通信する2以上の通信部と、通信部が受信したデータをソフトウェア処理するソフトウェア処理部と、通信部が通信路を介して制御装置へ送信するデータを蓄積する蓄積部とを備えるゲートウェイ装置において、制御装置が送信するデータは、他の制御装置へ中継する中継データと、ソフトウェア処理部が処理する処理データとを含み、ソフトウェア処理部は、通信部が中継データを送信しない通信路に関する蓄積部が処理データを蓄積するように設定すると共に、設定した蓄積部が蓄積する処理データをソフトウェア処理する。この構成によれば、使用しない蓄積部に処理データを効率的に蓄積できる。
【選択図】図3

Description

本発明は、車両の挙動を制御する制御装置間で送受信されるデータの中継を行うゲートウェイ装置及びゲートウェイ方法に関する。
近年、車両には、エンジンを制御するエンジン制御装置、ドアの開閉を制御するボデー制御装置、及びオーディオを制御するオーディオ制御装置等といった複数の制御装置(ECU:Electronic
Control Unit)が搭載されている。これら複数の制御装置は、接続されたネットワークを介して相互に通信可能に接続している。このため、複数のネットワークを介して制御装置がデータ通信するためには、ネットワークの中継地点においてデータを中継するゲートウェイ装置が必要となる。ここで、近年、制御装置間で送受信されるデータ量が増加するだけでなく、車両に搭載される制御装置の数が増加する傾向にある。この傾向によって、ゲートウェイ装置が制御装置の接続するネットワークへデータを中継するためにバスを占有する割合(つまり、バス占有率)の増加が生じた。このバス占有率の増加により、ゲートウェイ装置によるデータ中継の遅延及びデータ中継の失敗が発生するという問題が生じた。
このため、データ中継時のバス占有率を軽減できるゲートウェイ装置が知られるに至った(例えば、特許文献1)。このゲートウェイ装置は、通信バスを介して受信したデータの宛先となる端末を検知する宛先検知手段と、複数の通信バスのうち、宛先検知手段が検知した端末が接続している通信バスにのみ、受信したデータを送出することを特徴としている。
ここで、上記のゲートウェイ装置は、データの中継をソフトウェア処理によって実現するため、データの中継速度が十分に向上しない。このため、データの中継をハードウェア処理によって実現するゲートウェイ装置が知られるに至った。また、近年、車両に搭載される装置数が増加したため、例えば、装置の開発又は故障診断に用いる各装置の状態を表す情報を効率的に取得する必要が生じていた。このため、ネットワークを介して各装置へ送信した要求データに対する各装置の応答データに基づいて、各装置の状態を表す情報を取得する状態取得方法が知られるに至った。また同時に、データの中継をハードウェア処理によって実現すると共に、要求データに応答した応答データの返信をソフトウェア処理によって実現するゲートウェイ装置が知られるに至った。更に、中継するデータが、例えば、データ化け等により破壊又は変化しているか否かを検査するために、偶奇パリティを用いたパリティチェックを行うゲートウェイ装置が知られるに至った。
特開2003−264571号公報
ところで、上記要求データが応答を要求する装置は、ゲートウェイ装置のデータ中継先である制御装置のみならず、ゲートウェイ装置自身をも含む。また、ネットワークを介して通信されるデータは、上記の要求データのみならず、ゲートウェイ装置が実行するアプリケーションの処理に用いるアプリケーションデータをも含む。よって、上記のゲートウェイ装置は、受信したデータが、他の制御装置を宛先とするデータであるか、ゲートウェイ装置自身を宛先とするデータであるか、又は破棄するデータであるかを検知する必要がある。ここで、データ中継をハードウェア処理で実現すると共に、要求データに対する返信をソフトウェア処理で実現する上記のゲートウェイ装置が、更に、データの宛先の検知をハードウェア処理で実現する構成を採用できる。しかし、この構成では、宛先がゲートウェイ自身であると検知したデータを一時的に蓄積する蓄積手段を更に追加する必要があり、既存の蓄積手段を効率的に使用できないという問題があった。つまり、上記のゲートウェイ装置には、処理速度の異なるハードウェアとソフトウェアとの間で受渡されるデータを一時的に蓄積することで緩衝装置の役割を果たすハードウェアバッファを追加する必要があった。また、上記ゲートウェイ装置の様に、ハードウェア処理で中継先を検知する装置は、検知した中継先毎にデータを蓄積する構成を有するが、ゲートウェイ装置自身を宛先とするデータを蓄積する構成を有さない。このため、上記ゲートウェイ装置は、受信したデータの宛先がゲートウェイ装置自身であるか否かの検知をソフトウェア処理で実現する必要がある。このため、上記ゲートウェイ装置には、ハードウェア処理で中継先を検知することで確保したCPU(Central
Processing Unit)資源が浪費されるという問題があった。
更に、上記のパリティチェックを行うゲートウェイ装置では、データの処理過程で生じるデータの破壊又は変化を、ミラーリング検査に比べて精度良く検出できないという問題があった。つまり例えば、偶奇パリティチェックを行うゲートウェイ装置では、奇数個のビット化けの発生を検出できるが、偶数個のビット化けを検出できないという問題があった。
そこで、本発明の目的とするところは、ゲートウェイ装置に宛てて送信されたデータを効率的に蓄積できるゲートウェイ装置及びゲートウェイ方法を提供することにある。
本発明に係るゲートウェイ装置は、車両の制御を行う制御装置との間で通信路を介して送受信するデータを通信する2以上の通信コントローラと、通信コントローラが受信したデータをソフトウェア処理するソフトウェア処理部と、通信コントローラが通信路を介して制御装置へ送信するデータを蓄積する蓄積部とを備えるゲートウェイ装置において、通信コントローラが制御装置から受信するデータは、他の制御装置への中継を要する中継データを含み、ソフトウェア処理部は、受信部が受信するデータの種類に基づいて通信コントローラが中継データを送信しない通信路を検出すると共に、検出した通信路に関する蓄積部がデータを蓄積するように設定することを特徴としている。
この構成によれば、中継データを通信路へ中継しないために使用しない蓄積部にソフトウェア処理の対象とするデータを効率的に蓄積できる。
上記構成において、制御装置が送信するデータは、ソフトウェア処理部の処理を要する処理データを更に含み、ソフトウェア処理部は、処理データの種類毎に、検出した前記通信路に関する蓄積部が処理データを蓄積するように設定すると共に、設定した蓄積部が蓄積する処理データをソフトウェア処理する構成を採用できる。
この構成によれば、中継データを通信路へ中継しないために使用しない蓄積部に、ゲートウェイ装置に宛てて送信された処理データを種類に基づいて効率的に蓄積できる。
上記構成において、中継データを識別する情報と、中継データの中継に用いる通信路を識別する情報とを関連付けて記憶する第1記憶部と、処理データを識別する情報と、処理データを蓄積するようにソフトウェア処理部が設定した蓄積部に関する通信路を識別する情報とを関連付けて記憶する第2記憶部と、通信コントローラが受信したデータを識別する情報に基づいて第1記憶部及び第2記憶部が記憶する情報が識別する通信路を検索すると共に、検索した通信路に関する蓄積部へデータを転送するハードウェア構成されるハードウェア転送部とを更に備え、ソフトウェア処理部は、第1記憶部が記憶する情報を変更した場合、及び第2記憶部が情報を記憶していない場合の1つ以上の場合に、第1記憶部が記憶する情報が識別する通信路ではない通信路を、中継データを送信しない通信路として検出すると共に、検出した通信路に関連した蓄積部が処理データを蓄積するように設定する構成を採用できる。
この構成によれば、通信コントローラによってデータの中継に用いられる通信路の構成及び通信路に接続する制御装置を表す第1記憶部の情報のいずれか1つ以上を変更しても、中継データを送信しない通信路に関する蓄積部が処理データを蓄積するように容易に設定できる。
上記構成において、ソフトウェア処理部は、通信コントローラが受信した処理データの量及び種類のいずれか1つ以上を監視すると共に、監視する処理データの量及び種類のいずれか1つ以上が変化した場合に、前記中継データを送信しない通信路に関連した蓄積部が処理データを蓄積するように再設定する構成を採用できる。
この構成によれば、通信コントローラが受信するデータの量及び種類が変化した場合であっても、中継データを送信しない通信路に関する蓄積部が処理データを蓄積するように容易に設定できる。
上記構成において、処理データは、ソフトウェア処理部がアプリケーションの実行に用いるアプリケーションデータ、故障の診断に用いる情報を収集するソフトウェア処理の実行に用いるダイアグデータ、及びソフトウェア処理部が蓄積部の蓄積するデータを測定及び調整するソフトウェア処理の実行に用いるキャリブレーションデータのいずれか1つ以上である構成を採用できる。
この構成によれば、ソフトウェア処理に用いるアプリケーションデータ、ダイアグデータ、及びキャリブレーションデータのいずれか1つ以上を、使用しない蓄積部へ効率的に蓄積できるため、これらのデータに基づいたソフトウェア処理を効率的に実行できる。
上記構成において、ソフトウェア処理部は、通信コントローラが中継データを全ての通信路に対して送信する場合には、データの種類を識別する情報に基づいて通信コントローラが受信したデータから処理データを検索すると共に、検索した処理データをソフトウェア処理する構成を採用できる。
この構成によれば、全ての通信路へ中継データを中継するために全ての蓄積部を使用する場合であっても、蓄積部へ処理データを蓄積することなく、通信コントローラから処理データを取得してソフトウェア処理できる。
上記構成において、通信コントローラが受信したデータをデータの種類に基づいて定まる蓄積部へ転送するハードウェアで構成されるハードウェア転送部を更に備え、ソフトウェア処理部は、通信コントローラが受信したデータを、データの種類に基づいて定まる蓄積部と、検出した通信路に関する蓄積部とに複製して転送するようハードウェア転送部を設定すると共に、データ種類に基づいて定まる蓄積部が蓄積するデータと、検出した通信路に関する蓄積部が蓄積するデータとを比較することで、データを検査するソフトウェア処理を更に実行する構成を採用できる。
この構成によれば、検査の対象とするデータと、検査の対象とするデータを複製したデータとを比較してデータの異常を検出するため、データに生じるデータ化けを精度良く検出できる。
上記構成において、中継データを識別する情報と、中継データの中継に用いる通信路を識別する情報とを関連付けて記憶する第1記憶部と、ソフトウェア処理部の検査が必要な検査データを識別する情報と、検査データを蓄積するようにソフトウェア処理部が設定した蓄積部に関する通信路を識別する情報とを関連付けて記憶する第2記憶部とを更に備え、ハードウェア中継部は、通信部が受信したデータを識別する情報に基づいて第1記憶部及び第2記憶部が記憶する情報が識別する通信路を検索すると共に、検索した通信路に関する蓄積部へデータを転送し、ソフトウェア処理部は、第1記憶部が記憶する情報を変更した場合、及び第2記憶部が情報を記憶していない場合の1つ以上の場合に、第1記憶部が記憶する情報が識別する通信路ではない通信路を、前記中継データを送信しない通信路として検出すると共に、検出した前記通信路に関連した蓄積部が検査データを蓄積するように設定する構成を採用できる。
この構成によれば、通信コントローラによってデータの中継に用いられる通信路の構成及び通信路に接続する制御装置を表す第1記憶部の情報のいずれか1つ以上を変更しても、中継データを送信しない通信路に関する蓄積部が検査データを蓄積するように容易に設定できる。
上記構成において、検査データを識別する情報は、検査データの種類及び検査データの中継に用いる通信路のいずれか1つ以上と、他のデータよりも優先的に検査を行う必要性を表す優先度とを関連付けた情報であり、ソフトウェア処理部は、優先度に基づいて定めるデータを検査する構成を採用できる。
この構成によれば、優先度に基づいて検査を行うデータを効率的に定めるため、効率良くデータを検査できる。
本発明に係るゲートウェイ方法は、車両の制御を行う制御装置との間で通信路を介して送受信するデータを、通信コントローラを用いて通信する通信ステップと、通信ステップで受信したデータをソフトウェア処理するソフトウェア処理ステップと、通信ステップで通信路を介して制御装置へ送信するデータを蓄積部へ蓄積する蓄積ステップとを備えるゲートウェイ方法において、通信ステップで制御装置から受信するデータは、他の制御装置への中継を要する中継データと、ソフトウェア処理部の処理を要する処理データとを含み、ソフトウェア処理ステップは、通信ステップで受信するデータの種類に基づいて、通信ステップで中継データを送信しない通信路に関する蓄積部が蓄積ステップにおいて処理データを蓄積するように設定することを特徴としている。
この構成によれば、中継データを通信路へ中継しないために使用しない蓄積部に、ゲートウェイ装置に宛てて送信された処理データを種類に基づいて効率的に蓄積できる。
本明細書開示のゲートウェイ装置及びゲートウェイ方法によれば、ゲートウェイ装置に宛てて送信されたデータを効率的に蓄積できる。
本発明のゲートウェイ装置で構成されるゲートウェイシステムの一実施形態を示す構成図である。 ゲートウェイ装置の一構成例を表すハードウェア構成図である。 ハードウェア中継部の一構成例を表すハードウェア構成図である。 通信仕様の一部を表す図である。 通信仕様の他部を表す図である。 通信仕様の他部を表す図である。 第1ルーティングマップが記憶するテーブルの一例を表す図である。 第2ルーティングマップが記憶するテーブルの一例を表す図である。 ソフトウェア処理部が実行する生成処理の一例を表すフローチャートである。 ソフトウェア処理部が実行する追加処理の一例を表すフローチャートである。 ソフトウェア処理部が実行する検査処理の一例を表すフローチャートである。 ソフトウェア処理部が実行する設定処理の一例を表すフローチャートである。 実施例1において、ソフトウェア処理部が実行するFIFO0設定処理の一例を表すフローチャートである。 実施例1において、ソフトウェア処理部が実行するFIFO1設定処理の一例を表すフローチャートである。 実施例1において、ソフトウェア処理部が実行する後処理の一例を表すフローチャートの一部である。 実施例1において、ソフトウェア処理部が実行する後処理の一例を表すフローチャートの他部である。 ソフトウェア処理部の一構成例を、中継フレームを取り扱う機能に基づいて表す機能ブロック図である。 ソフトウェア処理部の一構成例を、GW宛てフレームを取り扱う機能に基づいて表す機能ブロック図である。 ソフトウェア処理部の一構成例を、NMフレームを取り扱う機能に基づいて表す機能ブロック図である。 実施例1において、ゲートウェイ装置が実行する初期化処理の一例を表すフローチャートである。 実施例6におけるゲートウェイ装置の一構成例を表す図である。 実施例6において、ゲートウェイ装置が実行する初期化処理の一例を表すフローチャートである。
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
図1は、本発明のゲートウェイ装置で構成されるゲートウェイシステムの一実施形態を示す構成図である。
図1に示すゲートウェイシステムSは、例えば、乗用車、バス、及びトラック等の自動車である車両に搭載される。尚、車両は、原動機付自転車、軽車両、及びトロリーバス、軍用車両、及び鉄道車両を含む。また、ゲートウェイシステムSは、船舶、航空機、並びに人工衛星、宇宙探査機、及び宇宙ステーション等の宇宙機に搭載される構成を採用できる。また更に、ゲートウェイシステムSは、車両又は船舶等に搭載されずに使用される構成を採用できる。
ゲートウェイシステムSは、CANバスBC0からBC3、ECU(Electronic Control Unit)1から43、故障診断装置100、及びゲートウェイ装置200で構成される。尚、図1は、ECU3から14、18から27、及び34から43の表示を省略している。
CANバスBC0は、ECU1から14、故障診断装置100、及びゲートウェイ装置200とをCAN(Controller Area Network)プロトコルを用いて通信可能に接続するバスである。また、CANバスBC1はECU15から27及びゲートウェイ装置200を、CANバスBC2はECU28から30及びゲートウェイ装置200を、CANバスBC3はECU31から43及びゲートウェイ装置200を、同様に通信可能に接続する。尚、CANバスは、LIN(Local
Interconnect Network)プロトコルを用いて通信する構成を採用できる。
ECU1から43は、車両の挙動を制御する制御装置である。ECU1から43は、車両の挙動を制御するためのフレームデータ(以下単に、制御フレームという)、及び接続するネットワークを管理するためのフレームデータ(以下単に、NM(Network
Management)という)を送信する。本実施例では、ECU1から43は、ゲートウェイ装置200がフレームを中継するネットワークに接続された各ECUが同期してスリープするようNMフレームを通信して管理するとして説明を行うが、これに限定される訳ではない。
尚、フレームデータとは、ゲートウェイ装置200がデータを中継するために、一度に受信又は送信するデータをいう。本実施例では、フレームデータは、例えば、CANプロトコルに従った枠となる所定のデータから開始する所定の長さを有するデータであるとして説明するが、これに限定される訳ではない。
ここで、車両の挙動は、広く車両の動きをいう。車両の動きは、例えば、車両の速度及び加速度の変化、車両の進行方向及びヨーイングの変化、並びに車両に加わる加重の変化を含むだけでなく、車両が備えるエアバッグの動作、ドアの開閉、オーディオの動作、及びナビゲーションの動作を含む。
故障診断装置100は、CANバスBC0を介して直接的又は間接的に接続するECU1から43及びゲートウェイ装置200の故障診断を行う。具体的には、故障診断装置100は、ECU1から43及びゲートウェイ装置200に対して故障診断に用いるフレームデータ(以下単に、ダイアグフレームという)を送信する。また、ダイアグフレームは、フレームの宛先としたECU1から43若しくはゲートウェイ装置200の故障診断に用いる情報又は故障診断の結果を故障診断装置100へ返信するように求める要求を表すとして説明するが、これに限定される訳ではない。更に、故障診断に用いる情報は、故障診断の対象とする装置(以下単に、対象装置という)の状態を表す情報を含むとして説明するが、これに限定される訳ではない。例えば、故障診断に用いる情報は、対象装置が用いる環境設定を表す情報を含む構成を採用できる。更に、対象装置の状態を表す情報は、例えば、対象装置の使用期間等の経年劣化を表す情報を含む。
また更に、故障診断装置100は、ECU1から43及びゲートウェイ装置200が記憶するデータの調整(キャリブレーション)及び測定を行う。具体的には、故障診断装置100は、ECU1から43及びゲートウェイ装置に対してCCP(CAN
Calibration Protocol)フレームデータ(以下単に、CCPフレームという)を送信する。
ゲートウェイ装置200は、4本のバスBC0からBC3と接続する。つまり、ゲートウェイ装置200は、異なる4つのネットワークに接続するECU1から43及び故障診断装置100に接続する。ゲートウェイ装置200は、中継機能と応答機能と実行機能とを発揮する。ゲートウェイ装置200が発揮する中継機能は、あるネットワークに接続された装置が送信したフレームを受信すると共に、受信したフレームを中継先のネットワークに接続する装置へ送信して中継する機能をいう。ゲートウェイ装置200が発揮する応答機能とは、ゲートウェイ装置200へ宛てて送信されたダイアグフレーム又はCCPフレームを受信すると共に、受信したフレームの要求に応じて所定のフレームを故障診断装置100へ返信する機能をいう。ゲートウェイ装置200が発揮する実行機能とは、ゲートウェイ装置200へ宛てて送信されたフレームに対してアプリケーションが表すソフトウェア処理を実行する機能をいう。尚、ゲートウェイ装置200が実行するアプリケーションは、ダイアグアプリケーション、CCPアプリケーション、及び一般アプリケーションに類別される。
ダイアグアプリケーションは、ダイアグフレームの求めに応じて、故障診断に用いる情報を収集した後に、収集した情報を故障診断装置100へ返信する処理を表すアプリケーションである。また、ダイアグアプリケーションは、収集した情報に基づいて行った故障診断の結果を返信するアプリケーションであっても良い。CCPアプリケーションは、CCPフレームに応じて、ゲートウェイ装置200が記憶するデータの調整及び測定をする処理を表すアプリケーションである。一般アプリケーションは、ダイアグアプリケーション及びCCPアプリケーション以外のアプリケーションをいう。また、一般アプリケーションが表すソフトウェア処理の対象とするフレームを、以下単に、アプリケーションフレームという。
ここで、図2を参照して、ゲートウェイ装置200の構成について説明する。図2は、ゲートウェイ装置200の一構成例を表すハードウェア構成図である。
図2に示すゲートウェイ装置200は、CANコントローラ210から215、CANインタフェース部220、ハードウェア中継部230(以下、ハードマクロともいう)、及びソフトウェア処理部240で構成される。
CANコントローラ210から215は、ハードウェア回路で構成される。ここで、CANコントローラ210ないし213は、CANバスBC0ないしBC3とそれぞれ接続する。しかし、CANコントローラ214及び215はCANバスと接続せず、フレームを通信することがない。尚、CANコントローラ210ないし213とそれぞれCANバスBC0ないし3とを結ぶ通信路をチャネルという。本実施例では、CANコントローラ210とCANバスBC0とを結ぶ通信路をチャネルCH0とし、順次同様に、チャネルCH1からCH3までを定義する。本実施例において、ゲートウェイ装置200は、6つのCANコントローラ210から215で構成されるとして説明するが、この数に限定される訳ではなく、CANコントローラの数が複数であればよい。また、CANコントローラ210から215は、それぞれ同様の接続、構成、及び機能を有するため、以下単に、CANコントローラ210についてのみ説明を行う。
CANコントローラ210は、受信処理を実行することで、CANバスBC0に接続するECU1から14及び故障診断装置100のいずれかが送信したフレームを、CANバスBC0を介して受信する。次に、CANコントローラ210は、受信したフレームをハードウェア中継部230又はソフトウェア処理部240へ出力する。また、CANコントローラ210は、送信処理を実行することで、ハードウェア中継部230又はソフトウェア中継部1410からフレームを取得する。次に、CANコントローラ210は、取得したフレームをCANバスBC0に接続するECU1から14及び故障診断装置100のいずれか1つ以上へ送信する。
ここで、CANコントローラ210ないし213が受信するフレームについて説明する。CANコントローラ210ないし213が受信するフレームは、NMフレーム、制御フレーム、ダイアグフレーム、CCPフレーム、及びアプリケーションフレームを含む。また、CANコントローラ210ないし213が受信するフレームは、ゲートウェイ装置200へ宛てたフレームと、ゲートウェイ装置200以外の装置(つまり、ECU1から43及び故障診断装置100)へ宛てたフレームとに類別される。ゲートウェイ装置200以外の装置へ宛てたフレームは、ゲートウェイ装置200が宛先の装置へ中継するフレームデータ(以下単に、中継フレーム又は中継データという)である。ゲートウェイ装置200へ宛てたフレーム(以下単に、GW宛てフレーム又は処理データという)は、ゲートウェイ装置200がソフトウェア処理に用いるフレームデータである。尚、CANコントローラ210ないし213が受信するフレームは、中継データであり、かつ処理データであっても構わない。
次に、図3を参照して、CANコントローラ210のハードウェア構成の一例について説明を行う。図3は、CANコントローラ等の一構成例を表すハードウェア構成図である。尚、図3は、CANコントローラ212及び213の図示を省略している。
CANコントローラ210は、例えば、RAM(Random Access Memory)で構成されるバッファを有する。CANコントローラ210が有するバッファは、複数のメッセージボックスとして使用される。1つのメッセージボックスは、1つのデータフレームを蓄積する領域である。メッセージボックスは、フレームの受信に用いる受信用メッセージボックス210aと送信に用いる送信用メッセージボックス210bとに種別される。
ここで、図2に戻り、ゲートウェイ装置200の構成について引き続き説明を行う。
CANインタフェース部220は、CANコントローラ210から215とCANインタフェース部220との間でそれぞれデータ転送を可能とするバスB0から5と、CANインタフェース部220とハードウェア中継部230及びソフトウェア処理部240との間でデータ転送を可能とするバスBIとのインタフェースを提供する。尚、CANインタフェース部220、ハードウェア中継部230、及びソフトウェア処理部240は、バスBIを介して互いにデータ転送が可能なように接続している。
ハードウェア中継部230は、ハードウェア回路で構成される。ハードウェア中継部230は、ハードウェア中継処理を実行することで、中継データをソフトウェア処理部240へ中継する中継機能を実現する。
ここで、再度、図3を参照して、ハードウェア中継部230のハードウェア構成について説明する。
ハードウェア中継部230は、検索エンジン部231、第1ルーティングマップ232a、第2ルーティングマップ232b、及び送信バッファ233で構成される。尚、送信バッファ233、第1ルーティングマップ232a、第2ルーティングマップ232b、及び検索エンジン部231の順に説明する。
送信バッファ233は、例えば、RAM及びレジスタで構成される。送信バッファ233を構成するRAMのメモリ領域は、フレームを蓄積する送信FIFO_0 300a、310a、320a、330a、340a、及び350a、並びに送信FIFO_1
301a、311a、321a、331a、341a、及び351aを構成する。また、送信バッファ233を構成するレジスタは、送信FIFO_0 300aから350a及び送信FIFO_1
301aから351aに保存されたデータ数を表すメッセージカウンタ300bから350b、並びに301bから351bを保存する。尚、図3は、送信FIFO320aから351a、及びメッセージカウンタ320bから351bの図示を省略している。ここで、送信FIFO300a及び301aは、デフォルトで、チャネルCH0へ中継されるフレームを蓄積し、送信FIFO310a及び311aは、チャネルCH1へ中継されるフレームを蓄積する。同様に、送信FIFO320aから351aは、チャネルCH2からCH5へ中継されるフレームを蓄積する。また、送信FIFO_0
300aから350aは、デフォルトで、制御フレームを蓄積する。更に、送信FIFO_1 301aから351aは、デフォルトで、ダイアグフレーム及びCCPフレームを蓄積する。
ここで、CANコントローラ214及び215はCANバスと接続しないため、チャネルCH4及びCH5が中継フレームの送信に用いられない。また、CANバスに接続するECUの通信仕様によっては、チャネルCH0からCH3の1つ以上が中継フレームの送信に用いられない場合が生じる。そこで、本件発明のゲートウェイ装置200は、フレームの送信に用いられないチャネルに関する送信FIFO_0又は送信FIFO_1がGW宛てフレームを蓄積するようソフトウェア処理部240を用いて設定する。
第1ルーティングマップ232aは、例えば、ROMで構成される。第1ルーティングマップ232aは、中継フレームを識別する識別情報(つまり、CANID)と、フレームの中継先のチャネルCHとを関連付けて記憶する。また、第1ルーティングマップ232aは、識別情報と、識別情報が識別するフレームが例えば、データ化けにより破壊又は変更されているか否か検査するためのパリティを記憶する。第1ルーティングマップ232aが記憶する情報は、ゲートウェイ装置200を製造する場合、ゲートウェイ装置200の故障を修理する場合、又はゲートウェイ装置200を搭載した車両の使用者が、例えば、オーディオ機器等のアクセサリとアクセサリを制御するECUとを追加することでゲートウェイ装置200による中継を要するフレームを送信するECUを車両に追加した場合等に、整備士等によって書き換えられる。書き換えられる情報は、ゲートウェイシステムSを構成する装置により行われる通信の仕様を表す通信仕様書に基づいて定まる。尚、書き換えられた第1ルーティングマップ232aが記憶する情報は、ソフトウェア処理部240によって参照される。
ここで、第1ルーティングマップ232aが記憶する情報について説明する前に、図4から6を参照して、第1ルーティングマップ232aが記憶する情報を定める通信仕様について説明する。図4から6は、ゲートウェイシステムSを構成する装置の通信仕様の一例を表す図である。図4から6に示すテーブルは、通信仕様書Dに記載されたテーブルである。通信仕様書Dは、例えば、ドキュメントファイル等でゲートウェイシステムSの通信仕様を表す。尚、ゲートウェイ装置200は、この通信仕様書Dを表す電子ファイルを記憶する訳ではない。図4に示すテーブルは、フレーム情報フィールドとチャネル0フィールドとを有する。フレーム情報フィールドは、フレームの特徴を表す情報を保存するフィールドである。具体的には、フレーム情報フィールドは、CANIDフィールド、DLCフィールド、及び送信周期フィールドで構成される。CANIDフィールドは、例えば、CANID等のフレームを識別する識別情報を保存する。DLCフィールドは、例えば、DLC(Data
Length code)等といった、同一行(つまり、エントリ)の識別情報で識別されるフレームの長さを表すコード長を保存する。送信周期フィールドは、同様に、フレームの送信周期を表す情報を保存する。チャネル0フィールドは、チャネル0を用いてECU1から14、故障診断装置100、及びゲートウェイ装置200がフレーム送信、受信、又は中継のいずれを行うかを表す情報を保存する。
具体的には、図4は、CANID「100」で識別されるフレームのDLCが「8bit」であり、送信周期が「50ms」であることを表す。また、図4は、CANID「100」で識別されるフレームをECU1が送信し、ECU6及びECU12が受信し、ゲートウェイ装置200が受信も中継もしないことを表す。CANID「710」で識別されるフレームも同様に、ゲートウェイ装置200が受信も中継もしないフレームである。
また、図4は、CANID「500」、「700」、「701」、「750」、及び「780」で識別されるフレームは、GW宛てフレームであることを表す。特に、これらのフレームの内で、CANID「500」及び「700」で識別されるフレームは、後述するように中継フレームでもある。尚、上記以外のCANIDで識別されるフレームは、中継フレームであるが、GW宛てフレームではない。
尚、図6及び図7に示すテーブルは、図5に示したテーブルとは異なり、チャネル1からチャネル3フィールドを有する。具体的には、CANID「500」で識別されるフレームは、ゲートウェイ装置200によって中継され、チャネル2を用いてECU29に送信され、かつチャネル3を用いてECU32及び40に送信されることを表す。また、CANID「702」で識別されるフレームは、ゲートウェイ装置200によって中継され、チャネル2を用いてECU15からECU27に送信されることを表す。
次に、図7を参照して、第1ルーティングマップ232aが記憶する情報について説明を行う。図7は、第1ルーティングマップ232aが記憶するテーブルの一例を表す図である。
第1ルーティングマップ232aは、CANIDフィールド、中継元チャネルフィールド、中継先チャネルフィールド、送信FIFOフィールド、及びデータラベルフィールドを有する。CANIDフィールドは、通信仕様書DのCANIDフィールドと同様である。中継元チャネルフィールドは、同一行の識別情報が識別するフレームの中継元チャネルを表す情報を保存する。中継先チャネルフィールドは、同様に、フレームの中継先チャネルを表す情報を保存する。
具体的には、CANID「500」で識別されるフレームは、中継元チャネルがチャネル「0」であり、中継先チャネルがチャネル「2」及び「3」であることを表す。また、CANID「702」で識別されるフレームは、中継元チャネルがチャネル「0」であり、中継先チャネルがチャネル「1」であることを表す。
また、送信FIFOフィールドは、同一行に保存したCANIDが識別するフレームを蓄積する送信FIFOの種類を識別する情報を保存する。具体的には、数字「0」で送信FIFIO_0を表し、数字「1」で送信FIFIO_1を表す。データラベルフィールドは、同一行に保存したCANIDが識別するフレームの種類を表すデータラベルを保存する。
ここで、図3に戻り、引き続きゲートウェイ装置200の構成について説明する。
第2ルーティングマップ232bは、例えば、RAMで構成される。第2ルーティングマップ232bは、ソフトウェア処理部240が書き込む情報を記憶する。
ここで、図8を参照して、第2ルーティングマップ232bが記憶する情報について説明を行う。図8は、第2ルーティングマップ232bが記憶するテーブルの一例を表す図である。
第2ルーティングマップ232bは、図7に示す第1ルーティングマップ232aと同じフィールドを有する。第2ルーティングマップ232bは、第1ルーティングマップ232aが記憶する情報と同じを記憶する。更に、第2ルーティングマップ232bは、GW宛てフレームを識別する情報と、中継フレームを送信しないチャネルであって、GW宛てフレームを蓄積するようにソフトウェア処理部240が設定した送信FIFOに関するチャネルを識別する情報とを関連付けて記憶する。
具体例を挙げて説明すると、図8に示す第2ルーティングマップ232bは、図4から図6を参照して説明したGW宛てフレームを識別する情報「500」、「700」、「701」、「750」、及び「780」を、中継フレームを送信しないチャネルCH4及びCH5を識別する情報と、GW宛てフレームを蓄積する送信FIFOの種類を表す情報とに関連付けて記憶する。
再度、図3に戻り、ゲートウェイ装置200の構成について引き続き説明する。
検索エンジン部231は、CANインタフェース部220、第2ルーティングマップ232b、及び送信バッファ233に接続している。検索エンジン部231は、後述する検索処理を実行することで、フレームを識別する識別情報に基づいて中継先のチャネルCHを検索する。
ここで、検索エンジン部231が実行する検索処理の一例について説明する。尚、検索エンジン部231は、CANコントローラ210ないし213から、フレームを受信したことを表す割込信号(以下単に、受信割込信号という)を受信した場合に検索処理を実行する。
先ず、検索エンジン部231は、CANインタフェース部220を介して、CANコントローラ210ないし213から中継フレームを取得する。次に、検索エンジン部231は、取得したフレームの識別情報に基づいて、第2ルーティングマップが記憶するパリティ、並びに中継先チャネルCHを識別する情報及び送信FIFOの種類を表す情報を検索する。検索エンジン部231は、パリティに基づいて取得したフレームのデータ化けの有無を検査し、データ化けを検出した場合には取得したフレームを破棄する。データ化けを検出しない場合には、検索エンジン部231は、検索した情報が識別するチャネルCHの送信FIFOへフレームを転送する。尚、検索エンジン部231は、フレームを転送した送信FIFOに関連付けられたメッセージカウンタをインクリメントする。その後、検索エンジン部231は、検索処理の実行を終了する。
ここで、図2に戻り、ゲートウェイ装置200の構成について引き続き説明を行う。
ソフトウェア処理部240は、ソフトウェア処理を行う。ソフトウェア処理部240は、例えば、CPU(Central Processing Unit)等の実行部241、例えば、フラッシュ・メモリ等の記憶部242、及び割込制御部243で構成され、実行部241、記憶部242、及び割込制御部243は、それぞれバスによってデータの授受が可能なように接続している。ソフトウェア処理部240は、記憶部242に格納したプログラムを実行部241が読み、読込んだプログラムに従って実行部241が演算を行うことで後述する各部の機能を実現する。また、割込制御部243は、プログラムに従った演算を行う実行部241に対して、CANコントローラ210から215及びハードウェア中継部230等のハードウェアを制御するための演算を割込んで実行することを要求する割込信号の入出力を制御する。
ここで、ソフトウェア処理部240が有する機能について説明する。
ソフトウェア処理部240は、第2ルーティングマップ232bを生成する生成機能を有する。ここで、図9を参照して、生成機能を実現するためにソフトウェア処理部240が実行する生成処理について説明する。図9(a)は、ソフトウェア処理部240が実行する生成処理の一例を表すフローチャートである。尚、ソフトウェア処理部240が生成処理を実行するタイミングについては、実施例2から5において詳細に説明する。
先ず、ソフトウェア処理部240は、変数を初期化する変数初期化処理を実行する(ステップS01)。変数初期化処理は、図9(b)に示すように、チャネルCH0からCH5毎に送信FIFOの2つの種類に対応して設けたフラグ変数を値「OFF」に初期化する処理である。このフラグ変数は、チャネル毎に設けた2種類の送信FIFOが中継フレームを蓄積する場合に、値「ON」を保持するフラグである。次に、ソフトウェア処理部240は、第1ルーティングマップ232aから、未処理の中継情報を1行(エントリ)分だけ読み出す(ステップS02)。尚、中継情報は、エントリが保存するフレームの中継に用いる情報をいう。その後、ソフトウェア処理部240は、読み出した情報を第2ルーティングマップ232bへ追加する追加処理を実行する(ステップS03)。次に、ソフトウェア処理部240は、読み出した中継情報に従って中継フレームを中継した場合に使用するチャネルを検査する検査処理を実行する(ステップS04)。その後、ソフトウェア処理部240は、第1ルーティングマップ232aから全行を読み出したか否かを判断する(ステップS05)。ソフトウェア処理部240は、全行を読み出したと判断する場合にはステップS06の処理を実行し、そうでない場合にはステップS02に戻り上記処理を繰り返す。
ステップS05において、第1ルーティングマップ232aから全行を読みだしたと判断した場合には、ソフトウェア処理部240は、設定処理を実行する(ステップS06)。尚、設定処理は、ステップS04で実行した検査処理の結果、使用しないと判断したチャネルに関する送信FIFOがGW宛てフレームを蓄積するように設定する処理をいう。その後、ソフトウェア処理部240は、後処理を実行する(ステップS07)。次に、ソフトウェア処理部240は、生成処理の実行を終了する。尚、後処理は、検査処理において全てのチャネルを使用すると判断した場合に、所定のチャネルに関する送信FIFOがGW宛てフレームを蓄積するよう設定する処理をいう。
次に、図10を参照して、ソフトウェア処理部240が実行する追加処理について説明する。図10は、ソフトウェア処理部240が実行する追加処理の一例を表すフローチャートである。
先ず、ソフトウェア処理部240は、読み出した中継情報からフレームを識別する識別情報(つまり、CANID)を取得する(ステップS11)。次に、ソフトウェア処理部240は、中継情報からフレームの受信チャネルを取得する(ステップS12)。その後、ソフトウェア処理部240は、中継情報から送信チャネルを取得する(ステップS13)。次に、ソフトウェア処理部240は、中継情報からフレームを蓄積する送信FIFOの種類を識別する情報を取得する(ステップS14)。その後、ソフトウェア処理部240は、取得したCANIDが中継のみを必要とするフレーム(つまり、GW宛てフレームであって、中継フレームではない)であるか否かを判断する(ステップS15)。ソフトウェア処理部240は、中継のみを必要とするフレームであると判断する場合にはステップS20の処理を、そうでない場合にはステップS16の処理を実行する。
ステップS15において、ソフトウェア処理部240は、中継のみを必要とするフレームでないと判断した場合には、CANIDの種類がGW宛てのCCPフレームであるか、GW宛てのダイアグフレームであるか、GW宛てのアプリケーションフレームであるかを判断する(ステップS16)。ソフトウェア処理部240は、CANIDの種類がGW宛てのCCPフレームであると判断する場合にはステップS17の処理を、GW宛てのアプリケーションフレームであると判断する場合にはステップS18の処理を、GW宛てのダイアグフレームであると判断する場合にはステップS19の処理を実行する。
ステップS16において、ソフトウェア処理部240は、CANIDの種類がGW宛てのCCPフレームであると判断した場合には、中継情報のデータラベルにGW宛てCCPフレームを表す値のデータラベルを設定する(ステップS17)。ステップS16において、ソフトウェア処理部240は、CANIDの種類がGW宛てのアプリケーションフレームであると判断した場合には、GW宛てのアプリケーションフレームを表す値のデータラベルを設定する(ステップS18)。ステップS16において、ソフトウェア処理部240は、CANIDの種類がGW宛てのダイアグフレームであると判断した場合には、GW宛てのダイアグフレームを表す値のデータラベルを設定する(ステップS19)。
ステップS15において、中継のみを必要とするフレームであると判断した場合、又はステップS17からS19のいずれかの処理を実行した後には、ソフトウェア処理部240は、中継情報を第2のルーティングマップへ追加する(ステップS20)。その後、ソフトウェア処理部240は、追加処理の実行を終了する。
次に、図11を参照して、ソフトウェア処理部240が実行する検査処理について説明する。図11は、ソフトウェア処理部240が実行する検査処理の一例を表すフローチャートである。
先ず、ソフトウェア処理部240は、チャネルの番号を表す変数chに値「0」を代入して初期化する(ステップS21)。次に、ソフトウェア処理部240は、変数chがゲートウェイ装置200の使用できるチャネルの最大の番号「5」以下であるか否かを判断する(ステップS22)。ソフトウェア処理部240は、変数chが「5」以下であると判断する場合にはステップS23の処理を実行し、そうでない場合には検査処理の実行を終了する。
ステップS22において、変数chが「5」以下であると判断した場合には、ソフトウェア処理部240は、変数chで表されるチャネルが図10のステップS13で中継情報から取得した送信チャネルであるか否かを判断する(ステップS23)。ソフトウェア処理部240は、変数chが表すチャネルが送信チャネルであると判断する場合にはステップS24の処理を実行し、そうでない場合にはステップS27の処理を実行する。
ステップS23において、変数chで表されるチャネルが送信チャネルであると判断した場合には、ソフトウェア処理部240は、中継情報から取得した送信FIFOの種類を表す情報が送信FIFO_0を表す値「0」であるか否かを判断する(ステップS24)。ソフトウェア処理部240は、送信FIFOの種類を表す情報が値「0」であると判断する場合にはステップS25の処理を、そうでない場合にはステップS26の処理を実行する。
ステップS23において、送信FIFOの種類を表す情報が値「0」であると判断した場合には、ソフトウェア処理部240は、変数chが表すチャネルのFIFO_0に対応したフラグ変数の値を「ON」とする(ステップS25)。
ステップS23において、送信FIFOの種類を表す情報が値「0」でないと判断した場合には、ソフトウェア処理部240は、変数chが表すチャネルのFIFO_1に対応したフラグ変数の値を「ON」とする(ステップS26)。
ステップS23において、変数chが表すチャネルが送信チャネルでないと判断した場合、又はステップS25若しくはステップS26を実行した後に、ソフトウェア処理部240は、変数chの値を「1」だけインクリメントする(ステップS27)。その後、ソフトウェア処理部240は、ステップS22に戻り上記処理を繰り返す。
次に、図12を参照して、ソフトウェア処理部240が実行する設定処理について説明する。図12は、ソフトウェア処理部240が実行する設定処理の一例を表すフローチャートである。
先ず、ソフトウェア処理部240は、GW宛ダイアグ完了フラグ、GW宛CCP完了フラグ、及びGWアプリ宛完了フラグの値を「OFF」として初期化する(ステップS31)。尚、GW宛ダイアグ完了フラグ、GW宛CCP完了フラグ、及びGWアプリ宛完了フラグは、GW宛てのダイアグフレーム、CCPフレーム、及びアプリケーションフレームを格納する送信FIFOの設定を完了した場合に値「ON」を保存するフラグである。次に、ソフトウェア処理部240は、チャネルの番号を表す変数chに値「0」を代入して初期化する(ステップS32)。その後、ソフトウェア処理部240は、変数chの値がチャネルの最大番号「5」以下であるか否かを判断する(ステップS33)。ソフトウェア処理部240は、変数chの値が「5」以下であると判断する場合にはステップS34の処理を、そうでない場合には設定処理の実行を終了する。
ステップS33において、変数chの値が「5」以下であると判断した場合には、ソフトウェア処理部240は、FIFO0設定処理を実行する(ステップS34)。尚、FIFO0設定処理は、使用しないと判断したチャネルに関する送信FIFO_0がGW宛てフレームを蓄積するように設定する処理である。その後、ソフトウェア処理部240は、FIFO1設定処理を実行する(ステップS35)。FIFO1設定処理は、FIFO0設定処理と同様に、送信FIFO_1を設定する処理である。次に、ソフトウェア処理部240は、変数chの値を「1」だけインクリメントする(ステップS36)。その後、ソフトウェア処理部240は、ステップS33に戻り上記処理を繰り返す。
次に、図13を参照して、ソフトウェア処理部240が実行するFIFO0設定処理について説明する。図13は、ソフトウェア処理部240が実行するFIFO0設定処理の一例を表すフローチャートである。
先ず、ソフトウェア処理部240は、図12の設定処理で用いた変数chが表すチャネルの送信FIFO_0に対応したフラグ変数の値が「ON」であるか否かを判断する(ステップS41)。つまり、ソフトウェア処理部240は、変数chが表すチャネルの送信FIFO_0を中継フレームの蓄積に用いるか否かを判断する。ソフトウェア処理部240は、フラグ変数の値が「ON」であると判断する場合にはFIFO0設定処理の実行を終了し、そうでない場合にはステップS42の処理を実行する。
ステップS41において、フラグ変数の値が「ON」でない(つまり、「OFF」である)と判断した場合には、ソフトウェア処理部240は、GWアプリ宛完了フラグの値が「OFF」であるか否かを判断する(ステップS42)。つまり、GW宛てのアプリケーションフレームを、使用しないチャネルに関する送信FIFO_0が蓄積するように既に設定したか否かを判断する。ソフトウェア処理部240は、GWアプリ宛完了フラグの値が「OFF」であると判断する場合にはステップS43の処理を、そうでない場合にはFIFO0設定処理の実行を終了する。
ステップS42において、GWアプリ宛完了フラグの値が「OFF」であると判断した場合には、ソフトウェア処理部240は、第2ルーティングマップ232bからGW宛てのアプリケーションフレームを表すデータラベルが設定された全ての行(つまり、エントリ)を検索する(ステップS43)。次に、ソフトウェア処理部240は、検索した行の変数chが表す送信チャネルフィールドの値を「1」とし、かつ送信FIFOフィールドの値を「0」とする(ステップS44)。つまり、ソフトウェア処理部240は、変数chが表すチャネルの送信FIFO_0がGW宛てのアプリケーションフレームを蓄積するように設定する。その後、ソフトウェア処理部240は、GWアプリ宛完了フラグの値を「ON」とする(ステップS45)。次に、ソフトウェア処理部240は、FIFO0設定処理の実行を終了する。
次に、図14を参照して、ソフトウェア処理部240が実行するFIFO1設定処理について説明する。図14は、ソフトウェア処理部240が実行するFIFO1設定処理の一例を表すフローチャートである。
先ず、ソフトウェア処理部240は、図12の設定処理で用いた変数chが表すチャネルの送信FIFO_1に対応したフラグ変数の値が「ON」であるか否かを判断する(ステップS51)。尚、ステップS51の処理は、図14のステップS41と同様であるため説明を省略する。ソフトウェア処理部240は、フラグ変数の値が「ON」であると判断する場合にはFIFO1設定処理の実行を終了し、そうでない場合にはステップS52の処理を実行する。
ステップS51において、フラグ変数の値が「ON」でない(つまり、「OFF」である)と判断した場合には、ソフトウェア処理部240は、GW宛ダイアグ完了フラグの値が「OFF」であるか否かを判断する(ステップS52)。尚、ステップS52の処理は、図13のステップS42の処理と同様なので説明を省略する。ソフトウェア処理部240は、GW宛ダイアグ完了フラグの値が「OFF」であると判断する場合にはステップS53の処理を、そうでない場合にはステップS56の処理を実行する。
ステップS52において、GW宛ダイアグ完了フラグの値が「OFF」であると判断した場合には、ソフトウェア処理部240は、第2ルーティングマップ232bからGW宛てのダイアグフレームを表すデータラベルが設定された全ての行を検索する(ステップS53)。次に、ソフトウェア処理部240は、検索した行の変数chが表す送信チャネルフィールドの値を「1」とし、かつ送信FIFOフィールドの値を「1」とする(ステップS54)。つまり、ソフトウェア処理部240は、変数chが表すチャネルの送信FIFO_1がGW宛てのダイアグフレームを蓄積するように設定する。その後、ソフトウェア処理部240は、GW宛ダイアグ完了フラグの値を「ON」とする(ステップS55)。次に、ソフトウェア処理部240は、FIFO1設定処理の実行を終了する。
ステップS52において、フラグ変数の値が「OFF」でない(つまり、「ON」である)と判断した場合には、ソフトウェア処理部240は、GW宛CCP完了フラグの値が「OFF」であるか否かを判断する(ステップS56)。尚、ステップS56の処理は、図13のステップS42と同様であるため説明を省略する。ソフトウェア処理部240は、GW宛CCP完了フラグの値が「OFF」であると判断する場合にはステップS57の処理を、そうでない場合にはFIFO1設定処理の実行を終了する。
ステップS56において、GW宛ダイアグ完了フラグの値が「OFF」であると判断した場合には、ソフトウェア処理部240は、第2ルーティングマップ232bからGW宛てのCCPフレームを表すデータラベルが設定された全ての行を検索する(ステップS57)。次に、ソフトウェア処理部240は、検索した行の変数chが表す送信チャネルフィールドの値を「1」とし、かつ送信FIFOフィールドの値を「1」とする(ステップS58)その後、ソフトウェア処理部240は、GW宛CCP完了フラグの値を「ON」とする(ステップS59)。その後、ソフトウェア処理部240は、FIFO1設定処理の実行を終了する。
この構成によれば、中継データを通信路へ中継しないために使用しない蓄積部(つまり、送信FIFO)に、ゲートウェイ装置200に宛てて送信された処理データを種類に基づいて効率的に蓄積できる。またこの構成によれば、宛先がゲートウェイ宛てのフレームを一時的に蓄積する蓄積部を更に追加することなく、フレームの宛先の検知をハードウェア処理で実現できる。つまり、ゲートウェイ宛てフレームを蓄積するために既存の蓄積部を効率的に使用できる。
次に、図15及び図16を参照して、ソフトウェア処理部240が実行する後処理について説明する。図15は、ソフトウェア処理部240が実行する後処理の一例を表すフローチャートの一部であり、図16は、ソフトウェア処理部240が実行する後処理の一例を表すフローチャートの他部である。
先ず、ソフトウェア処理部240は、GWアプリ宛完了フラグの値が「OFF」であるか否かを判断する(ステップS61)。ソフトウェア処理部240は、GW宛完了フラグの値が「OFF」であると判断する場合にはステップS62の処理を、そうでない場合にはステップS64の処理を実行する。
ステップS61において、GWアプリ宛完了フラグの値が「OFF」であると判断した場合には、ソフトウェア処理部240は、第2ルーティングマップ232bからGW宛てのアプリケーションフレームを表すデータラベルが設定された全ての行を検索する(ステップS62)。次に、ソフトウェア処理部240は、検索した行の送信チャネルCH0のフィールド値を「1」とし、かつ送信FIFOフィールドの値を「0」とする(ステップS63)。
ステップS61において、GWアプリ宛完了フラグの値が「OFF」でない(つまり、「ON」である)と判断した場合、又はステップS63を実行した後に、ソフトウェア処理部240は、GW宛ダイアグ完了フラグの値が「OFF」であるか否かを判断する(ステップS64)。ソフトウェア処理部240は、GW宛ダイアグ完了フラグの値が「OFF」であると判断する場合にはステップS65の処理を、そうでない場合にはステップS67の処理を実行する。
ステップS64において、GW宛ダイアグ完了フラグの値が「OFF」であると判断した場合には、ソフトウェア処理部240は、第2ルーティングマップ232bからGW宛てのダイアグフレームを表すデータラベルが設定された全ての行を検索する(ステップS65)。次に、ソフトウェア処理部240は、検索した行の送信チャネルCH0のフィールド値を「1」とし、かつ送信FIFOフィールドの値を「1」とする(ステップS66)。
ステップS64において、GW宛ダイアグ完了フラグの値が「OFF」でない(つまり、「ON」である)と判断した場合、又はステップS66を実行した後に、ソフトウェア処理部240は、GW宛CCP完了フラグの値が「OFF」であるか否かを判断する(ステップS67)。ソフトウェア処理部240は、GW宛CCP完了フラグの値が「OFF」であると判断する場合にはステップS68の処理を、そうでない場合には後処理の実行を終了する。
ステップS67において、GW宛CCP完了フラグの値が「OFF」であると判断した場合には、ソフトウェア処理部240は、第2ルーティングマップ232bからGW宛てのCCPフレームを表すデータラベルが設定された全ての行を検索する(ステップS68)。次に、ソフトウェア処理部240は、検索した行の送信チャネルCH0のフィールド値を「1」とし、かつ送信FIFOフィールドの値を「1」とする(ステップS69)。その後、ソフトウェア処理部240は、後処理の実行を終了する。
次に、図17を参照して、ソフトウェア処理部240が有する機能について引き続き説明を行う。図17は、ソフトウェア処理部240の一構成例を、中継フレームを取り扱う機能に基づいて表す機能ブロック図である。
図17に示すように、ソフトウェア処理部240は、イベント系優先FIFO400a、イベント系一般FIFO400b、状態系ID毎優先バッファ400c、状態系ID毎一般バッファ400d、CCP用FIFO401a、ダイアグ用FIFO401b、優先フレーム送信部400e、一般フレーム送信部400f、CCPフレーム送信部401c、ダイアグフレーム送信部401d、及びハンドリング部409で構成される。尚、優先フレーム送信部400e、一般フレーム送信部400f、CCPフレーム送信部401c、ダイアグフレーム送信部401d、及びハンドリング部409が有する機能は、ソフトウェア処理部240がそれぞれ所定のソフトウェア処理を実行することで実現される。
イベント系優先FIFO400aは、記憶部242で構成される。イベント系優先FIFO400aは、送信FIFO_0 300aが蓄積したイベント系優先フレームを蓄積する機能を有する。イベント系優先FIFO400aは、蓄積するフレームを先入れ先出しする。尚、イベント系優先フレームとは、イベント系フレームであり、かつ優先フレームであるフレームをいう。イベント系フレームは、例えば、車両の乗員が窓を閉める又はエアコンのスイッチを入れる等の所定の操作を行った、又は車両が所定の状態に陥った(つまり、所定のイベントが発生した)場合に送信されるフレームをいう。また、優先フレームとは、他のフレームよりも優先して中継する必要があるフレームをいい、一般フレームとは、他のフレームよりも優先して中継又はソフトウェア処理する必要がないフレームをいう。
イベント系一般FIFO400bは、イベント系優先FIFO400aと同様であるため、主に相違点について説明する。イベント系一般FIFO400bは、送信FIFO_0
300aが蓄積したイベント系一般フレームを蓄積する機能を有する。
状態系ID毎優先バッファ400cは、記憶部242で構成される。状態系ID毎優先バッファ400cは、送信FIFO_0 300aが蓄積した状態系優先フレームを蓄積する機能を有する。尚、状態系優先フレームとは、状態系フレームであり、かつ優先フレームであるフレームをいう。状態系フレームとは、車両の制御のために定期的に送信されるフレームであり、例えば、車両の速度又は車両が搭載するエンジンの回転数等といった車両の状態を表すフレームをいう。
状態系一般FIFO400dは、状態系優先FIFO400cと同様であるため、主に相違点について説明する。状態系一般FIFO400dは、送信FIFO_0 300aが蓄積した状態系一般フレームを蓄積する機能を有する。
優先フレーム送信部400eは、イベント系優先FIFO400a及び状態系優先FIFO400cが蓄積する優先フレームをハンドリング部409へ送信する機能を有する。
一般フレーム送信部400fは、イベント系一般FIFO400b及び状態系一般FIFO400dが蓄積する一般フレームをハンドリング部409へ送信する機能を有する。
CCP用FIFO401aは、記憶部242で構成される。CCP用FIFO401aは、送信FIFO_1 301aが蓄積したCCPフレームを蓄積する機能を有する。CCP用FIFO401aは、蓄積するフレームを先入れ先出しする。
ダイアグ用FIFO401bは、記憶部242で構成される。ダイアグ用FIFO401bは、送信FIFO_1 301aが蓄積した中継フレームのダイアグフレームを蓄積する機能を有する。ダイアグ用FIFO401bは、蓄積するフレームを先入れ先出しする。
CCPフレーム送信部401cは、優先フレーム送信部400eと同様であるため、以下主に相違点について説明する。CCPフレーム送信部401cは、CCP用FIFO401aが蓄積するフレームをハンドリング部409へ送信する機能を有する。
ダイアグフレーム送信部401dは、優先フレーム送信部400eと同様であるため、以下主に相違点について説明する。ダイアグフレーム送信部401dは、ダイアグ用FIFO401bが蓄積するフレームをハンドリング部409へ送信する機能を有する。
ハンドリング部409は、ハンドリング機能を有する。ハンドリング機能は、優先フレーム送信部400e、一般フレーム送信部400f、CCPフレーム送信部401c、及びダイアグフレーム送信部401dからフレームを受信する機能と、受信したフレームの優先順位に基づいて、CANインタフェース部220を介してCANコントローラ210へフレームを送信する機能とで構成される。
尚、図17は、ソフトウェア処理部240が有する機能の内で、チャネルCH0に関する送信FIFOが蓄積するフレームを、チャネルCH0へフレームを送信するCANコントローラ210に対して中継する機能のみを図示する。しかし、これに限定される訳ではなく、ソフトウェア処理部240は、チャネルCH1から3に関する送信FIFOが蓄積するフレームを、チャネルCH1から3へフレームを送信するCANコントローラ211から213に中継する機能をも有する。
次に、図18を参照して、ソフトウェア処理部240が有する機能について、引き続き説明を行う。図18は、ソフトウェア処理部240の一構成例を、GW宛てフレームを取り扱う機能に基づいて表す機能ブロック図である。
図18に示すように、ソフトウェア処理部240は、ダイアグ通信部441a、ダイアグアプリ実行部441b、アプリ実行部450a、CCP通信部451a、CCPアプリ実行部451b、及びハンドリング部409から459で構成される。尚、ダイアグ通信部441aないしハンドリング部409から459が有する機能は、ソフトウェア処理部240が所定の処理を実行することで実現される。
ダイアグ通信部441aは、ソフトウェア処理部240が設定処理を実行することでGW宛てのダイアグフレームを蓄積するよう設定された送信FIFO_1 341aが蓄積するダイアグフレームを、ダイアグアプリ実行部441bへ送信する機能を有する。
ダイアグアプリ実行部441bは、記憶部242が記憶するダイアグアプリケーションを実行する機能を有する。ダイアグアプリケーションは、ダイアグフレームの要求に対して応答する処理を表す。よって、ダイアグアプリ実行部441bは、ダイアグフレームに対する応答機能を有するといえる。具体的には、ダイアグアプリ実行部441bは、ダイアグ通信部441aから受信したダイアグフレームの求めに応じて故障診断に用いる情報を収集すると共に、収集した情報(又は収集した情報に基づいて行った故障診断の結果)を表す応答フレームをハンドリング部409へ出力する。尚、ハンドリング部409は、応答フレームを故障診断装置100へチャネルCH0を用いて送信する。
アプリ実行部450aは、記憶部242が記憶する一般アプリケーションを実行する実行機能を有する。アプリ実行部450aは、GW宛てのアプリケーションフレームを蓄積するよう設定されたFIFO_0
350aが蓄積するアプリケーションフレームを用いて一般アプリケーションが表す処理を実行する。次に、アプリ実行部450aは、処理を実行した所定のフレームをハンドリング部409から459へ出力する。
CCP通信部451aは、GW宛てのCCPフレームを蓄積するよう設定された送信FIFO_1 351aが蓄積するフレームをCCPアプリ実行部451bへ送信する機能を有する。
尚、ソフトウェア処理部240は、フレーム処理経路変更処理を実行することで、ダイアグ通信部441a、アプリ実行部450a、及びCCP通信部451a(以下、ダイアグ通信部441a等という)とそれぞれ接続する送信FIFOを変更又は設定する。尚、ダイアグ通信部441a等とそれぞれ接続する送信FIFOは、生成処理の実行により定まる。
CCPアプリ実行部451bは、記憶部242が記憶するCCPアプリケーションを実行する機能を有する。CCPアプリケーションは、CCPフレームの要求に対して応答する処理を表す。よって、CCPアプリ実行部451bは、CCPフレームに対する応答機能を有するといえる。CCPアプリ実行部451bは、CCP通信部451aから受信したCCPフレームの求めに応じてゲートウェイ装置200が記憶するデータの測定及び調整をすると共に、測定した情報等を表す応答フレームをハンドリング部409へ出力する。
ハンドリング部409は、図17のハンドリング部409と同一の部である。ハンドリング部409は、ダイアグアプリ実行部441b及びCCPアプリ実行部451b等が出力したフレームを、CANインタフェース部220を介してCANコントローラ210へ送信する。ハンドリング部419から459は、ハンドリング部409と同様であるため、以下主に相違点について説明する。ハンドリング部419から459は、アプリ実行部450aが出力するフレームを、CANインタフェース部220を介してCANコントローラ211から215へ送信する。
次に、図19を参照して、ソフトウェア処理部240が有する機能について、引き続き説明を行う。図19は、ソフトウェア処理部240の一構成例を、NMフレームを取り扱う機能に基づいて表す機能ブロック図である。
ソフトウェア処理部240は、NM用FIFO490aから495a、NM処理部490bから495b、協調NM処理部490cから495c、及びNM送信部490dから495dで構成される。尚、NM処理部490bから495dの有する機能は、ソフトウェア処理部240がそれぞれ所定の処理を実行することで実現される。
NM用FIFO490aから495aは、記憶部242で構成される。NM用FIFO490aから495aは、それぞれCANインタフェース部220を介して接続するCANコントローラ210から215が受信したNMフレームを蓄積する機能を有する。NM用FIFO490aから495aは、蓄積するフレームを先入れ先出しする。
NM処理部490bから495bは、それぞれNM処理を実行することで、NM用FIFO490aから495aが蓄積するNMフレームをそれぞれ取得する。次に、NM処理部490bから495bは、取得したNMフレームに基づいて、それぞれチャネルCH0からCH5に接続するECUと同期してゲートウェイ装置200をスリープさせる機能を実現する。尚、NM処理部490bから495bは、NMフレームをそれぞれ協調NM処理部490cから495cへ出力する。
協調NM処理部490cから495cは、それぞれ協調NM処理を実行することで、NM処理部490bないし495bからNMフレームを取得する。次に、協調NM処理部490cから495cは、取得したNMフレームに基づいて、ゲートウェイ装置200に接続するチャネルCH0からCH4と接続するECU1から43と協調してゲートウェイ装置200をスリープさせる機能を有する。尚、協調NM処理部490cから495cは、NMフレームをNM送信部490dから495dへ出力する。
NM送信部490dから495dは、それぞれ協調NM処理部490cないし495cから取得するNMフレームを、CANインタフェース部220を介してCANコントローラ210から215へそれぞれ送信する機能を有する。
ここで、図20を参照して、ゲートウェイ装置200が第2ルーティングマップ232bを生成することに伴って実行する初期化処理について説明する。図20は、ゲートウェイ装置200が実行する初期化処理の一例を表すフローチャートである。
先ず、ゲートウェイ装置200は、実行部241を初期化するCPU初期化処理を実行する(ステップS71)。次に、ゲートウェイ装置200は、図9を参照して説明した生成処理を実行する(ステップS72)。その後、ゲートウェイ装置200は、上記のフレーム処理経路変更処理を実行する(ステップS73)。次に、ゲートウェイ装置200は、ハードウェア中継部230を初期化する中継機能初期化処理を実行する(ステップS74)。その後、ゲートウェイ装置200は、初期化処理の実行を終了する。
尚、本実施例においては、ECU1から43が制御装置に相当し、チャネルCH0から5が通信路に相当し、CANコントローラ210から215が通信コントローラに相当し、送信FIFO_0
300aから350a及び送信FIFO_1 301aから351aが蓄積部に相当し、第1ルーティングマップ232aが第1記憶部に相当し、第2ルーティングマップ232bが第2記憶部に相当し、検索エンジン部231が検索部に相当する。
第2の実施例においては、第1ルーティングマップが記憶する情報を変更した場合、及び第2ルーティングマップが情報を記憶していない場合の1つ以上の場合に、第2ルーティングマップが記憶する情報を生成するゲートウェイ装置について説明する。尚、実施例2で説明する不図示のゲートウェイ装置300は、実施例1とほぼ同様の構成であるため、以下主に、相違点について説明する。
ゲートウェイ装置300を構成する不図示のソフトウェア処理部340は、後述する検出処理を実行することで、第1ルーティングマップ332aが記憶する情報の変更、又は第2ルーティングマップ332bが記憶する情報のクリアを検出する機能を実現する。尚、第1ルーティングマップ332aが記憶する情報の変更を検出する機能は、ソフトウェア処理部340が後述する第1検出処理を実行することで実現される。また、第2ルーティングマップ332bが記憶する情報のクリアを検出する機能は、ソフトウェア処理部340が後述する第2検出処理を実行することで実現される。
ここで、ソフトウェア処理部340が実行する第1検出処理の一例について説明を行う。尚、本実施例においては、ソフトウェア処理部340は、定周期で第1検出処理及び第2検出処理を実行するとして説明するが、これに限定される訳ではなく、ゲートウェイ装置300が起動する場合に実行する構成を採用できる。
先ず、ソフトウェア処理部340は、第1ルーティングマップ332aの行毎に(つまり、エントリ毎に)、パリティを算出する。次に、前回に参照した第1ルーティングマップ332aの行毎に算出したパリティと比較を行う。その後、パリティが相違する行が存在する場合には、ソフトウェア処理部340は、第1ルーティングマップ332aが記憶する情報の変更を検出し、そうでない場合には変更を検出しない。次に、ソフトウェア処理部340は、今回算出したパリティを記憶部342に保存する。その後、ソフトウェア処理部340は、第1検出処理の実行を終了する。
次に、ソフトウェア処理部340が実行する第2検出処理の一例について説明を行う。
先ず、ソフトウェア処理部340は、第2ルーティングマップ332bが情報を記憶するか否かを判断する。ソフトウェア処理部340は、第2ルーティングマップ332bが情報を記憶する場合に情報のクリアを検出せず、情報を記憶しない場合に情報のクリアを検出する。その後、ソフトウェア処理部340は、第2検出処理の実行を終了する。
この構成によれば、ゲートウェイ装置300が用いるチャネルの構成及びチャネルを用いるECUの構成が変化した場合であっても、第1ルーティングマップ332aが記憶する情報を変更、又は第2ルーティングマップ332bが記憶する情報をクリアするだけで、第2ルーティングマップ332bが記憶する情報を容易に生成できる。具体例を挙げて説明すると、例えば、ゲートウェイ装置300の出荷後に、車両の所有者の趣向によって車両に新たなアクセサリ機器及びアクセサリ機器を制御するECUを追加した場合でも、第1ルーティングマップ332aが記憶するチャネル構成等を変更することで、第2ルーティングマップ332bが記憶する情報を容易に生成できる。つまり、車両に搭載するECUをネットワークに対して抜き差した場合であっても、第2ルーティングマップ332bが記憶する情報を容易に生成できる。
第3の実施例においては、CANコントローラが受信したGW宛てフレームの量及び種類のいずれか1つ以上が変化した場合に、第2ルーティングマップが記憶する情報を生成する不図示のゲートウェイ装置400について説明する。尚、実施例3で説明するゲートウェイ装置400は、実施例1とほぼ同様の構成であるため、以下主に、相違点について説明する。
ゲートウェイ装置400を構成する不図示のソフトウェア処理部440は、後述する監視処理を実行することで、CANコントローラ410から413が受信するGW宛てフレームの量及び種類のいずれか1つ以上の変化を監視する機能を実現する。
ここで、ソフトウェア処理部440が実行する監視処理の一例について説明を行う。尚、本実施例においては、ソフトウェア処理部440は、定周期で監視処理を実行するとして説明するが、これに限定される訳ではない。
先ず、ソフトウェア処理部440は、CANコントローラ410から413が受信して受信バッファのメッセージボックスに蓄積するフレームのデータラベル(又はCANID)に基づいてGW宛てフレームを検索する。次に、ソフトウェア処理部440は、フレームの種類毎に、検索したフレームの量を算出する。その後、ソフトウェア処理部440は、前回に算出したフレームの量との差異を算出して、GW宛てフレームの量及び種類の変化を監視する。ソフトウェア処理部440は、例えば、算出した差異が所定の閾値を超えた場合に、GW宛てフレームの量及び種類の変化が生じたと判断し、そうでない場合には変化が生じないと判断する。次に、ソフトウェア処理部440は、今回算出した量をフレームの種類毎に記憶部424へ保存する。その後、ソフトウェア処理部440は、監視処理の実行を終了する。
この構成によれば、CANコントローラ410から413が受信するデータの量及び種類の変化を監視することで、ゲートウェイ装置400が用いるチャネル構成及びチャネルを用いるECU構成の変化を監視できる。また、この構成によれば、CANコントローラ410から413が受信するデータの量及び種類が変化した場合であっても、中継フレームを送信しないチャネルに関する蓄積部がGW宛てフレームを蓄積するよう容易に設定できる。尚、本実施例において、ソフトウェア処理部440は、CANコントローラ410から415が所定時間内に受信したフレームを識別する情報(つまり、CANID)に基づいて、フレームを送信するECUがネットワークに接続しているか否かを検出する構成を採用できる。この構成において、ソフトウェア処理部440は、接続を検出したECUへ中継フレームを送受信するために用いるチャネル以外のチャネルに関する送信FIFOがGW宛てのフレームを蓄積するよう設定する構成を採用できる。この構成によれば、接続を検出したECUへ中継フレームを送信するために用いるチャネル以外のチャネルに関する送信FIFOにGW宛てフレームを効率的に蓄積できる。
第4の実施例においては、CANコントローラが中継フレームを全てのチャネルに対して送信する場合に、ソフトウェア処理部がハードウェア中継部(ハードマクロ)を介さずに、GW宛てフレームをCANコントローラから直接に受信するゲートウェイ装置について説明する。尚、実施例4で説明する不図示のゲートウェイ装置500は、実施例1とほぼ同様の構成であるため、以下主に、相違点について説明する。
先ず、実施例4において、ゲートウェイ装置500を構成する不図示のソフトウェア処理部540が実行する後処理について説明する。
先ず、ソフトウェア処理部540は、GWアプリ宛完了フラグ、GW宛ダイアグ完了フラグ、又はGW宛CCP完了フラグが値「OFF」であると判断すると、CANコントローラ510ないし515からGW宛てのアプリケーションフレーム、GW宛てのダイアグフレーム、又はGW宛てのCCPフレームを直接的に取得するよう不図示のアプリ実行部、ダイアグ通信部、又はCCP通信部を設定する。その後、ソフトウェア処理部540は、後処理の実行を終了する。
この構成によれば、全てのチャネルへ中継フレームを中継するために全ての送信FIFOを使用する場合であっても、送信FIFOへGW宛てフレームを蓄積することなく、CANコントローラ510ないし515からGW宛てフレームを取得してソフトウェア処理できる。
尚、不図示の第1ルーティングマップ532aは、更に、フレームを識別する識別情報(つまり、CANID)と、フレームを送信する送信周期(つまり、ゲートウェイ装置500の受信頻度)を表す情報とを関連付けて記憶する構成を採用できる。この構成において、ゲートウェイ装置500は、第1ルーティングマップ532aが記憶する情報が表す受信頻度、又はデータラベルが表すフレームを処理する優先度に基づいて、GW宛てのダイアグフレーム、CCPフレーム、及びアプリケーションフレームのいずれか1つ以上をソフトウェア処理部540がハードウェア中継部530を介さずにCANコントローラ510ないし515から直接に受信するように設定する構成を採用できる。また、ソフトウェア処理部540がそれら以外のGW宛てのフレームを、ハードウェア中継部530を介して受信するように設定する構成を採用できる。特に、ハードウェア中継部530のGW宛てフレームを中継する時間が、ソフトウェア処理部540のGW宛てフレームを受信する時間よりも長い場合には、受信頻度が高いフレーム又は優先度が高いフレームを、ソフトウェア処理部がCANコントローラ510ないし515から直接に受信する構成を採用できる。尚、逆の場合には、受信頻度が高いフレーム又は優先度が高いフレームを、ソフトウェア処理部がハードウェア中継部530を介して受信する構成を採用できる。尚、ハードウェア中継部530のGW宛てフレームを中継する時間は、ハードウェア中継部530がCANコントローラ510ないし513から送信FIFOへGW宛てフレームを中継するために要する時間をいう。また、ソフトウェア処理部540のGW宛てフレームを受信する時間は、ソフトウェア処理部540がCANコントローラ510ないし513の受信したフレームから、GW宛てフレームを検索した後に、検索したフレームを受信するために要する時間をいう。
この構成によれば、フレームの受信頻度及び優先度のいずれか1つ以上に基づいて、ソフトウェア処理部540がCANコントローラ510ないし513からGW宛てフレームを受信するか、ハードウェア中継部530を介して受信するかを定めるため、GW宛てフレームの受信において遅延の発生を防止できる。
第5の実施例においては、ゲートウェイ装置が新たにインストールしたアプリケーションの実行に用いるフレームを、他のフレームとは別の送信FIFOが蓄積するよう設定できるゲートウェイ装置について説明する。尚、実施例5で説明する不図示のゲートウェイ装置600は、実施例1とほぼ同様の構成であるため、以下主に、相違点について説明する。
ゲートウェイ装置600を構成する不図示のソフトウェア処理部640は、検出処理を実行することで、例えば、インタネットを介して新規の一般アプリケーション(以下単に、新規アプリケーションという)をインストールしたことを検出する機能を実現する。
ここで、ソフトウェア処理部640が実行する初期化処理を構成する設定処理の一例について説明する。実施例5において、ソフトウェア処理部640が実行する設定処理は、実施例1で図12を参照して説明した設定処理とほぼ同様であるため、以下主に、相違点について説明する。
先ず、ソフトウェア処理部640は、GW宛ダイアグ完了フラグ、GW宛CCP完了フラグ、及びGWアプリ宛完了フラグのみならず、GW新規アプリ宛完了フラグの値を「OFF」として初期化する。GW新規アプリ宛完了フラグは、GW宛てのアプリケーションフレームを格納する送信FIFOの設定を完了したことを表すフラグである。次に、ソフトウェア処理部640は、図12のステップS32からステップS36の処理を実行した後に、設定処理の実行を終了する。
次に、ソフトウェア処理部640が実行するFIFO0設定処理の一例について説明する。実施例5において、ソフトウェア処理部640が実行するFIFO0設定処理は、実施例1で図13を参照して説明したFIFO0設定処理とほぼ同様であるため、以下主に、相違点について説明する。
ステップS42において、GWアプリ宛完了フラグの値が「OFF」でない(つまり、「ON」である)と判断した場合には、ソフトウェア処理部640は、GW新規アプリ宛完了フラグの値が「OFF」であるか否かを判断する。ソフトウェア処理部640は、GW新規アプリ宛完了フラグの値が「OFF」でない(つまり、「ON」である)と判断した場合には、FIFO0設定処理の実行を終了し、そうでない場合には、第2ルーティングマップ232bからGW宛ての新規アプリフレームを表すデータラベル又はCANIDが設定された全ての行(つまり、エントリ)を検索する。尚、新規アプリフレームは、新規アプリケーションの実行に用いるフレームをいう。次に、ソフトウェア処理部640は、検索した行の変数chが表す送信チャネルフィールドの値を「1」とし、かつ送信FIFOフィールドの値を「0」とする。その後、ソフトウェア処理部640は、FIFO0設定処理の実行を終了する。
この構成によれば、ゲートウェイ装置600がアプリケーションを新規に追加した場合でも、新たに追加したアプリケーションの実行に用いるフレームを、他のアプリケーションの実行に用いるフレームとは別の送信FIFOが保存するよう設定できる。よって、例えば、ゲートウェイ装置600を工場出荷した後に、新たなアプリケーションをインストールした場合であっても、既にインストールされたアプリケーションの実行を妨げることなく、新規アプリフレームを未使用の送信FIFOに蓄積するよう設定できる。
第6の実施例においては、受信したデータに対してミラーチェックを行うゲートウェイ装置について説明する。尚、ミラーチェックとは、検査を必要とする検査データと、検査データを予め複製した複製データとを比較することで、検査データの破壊及び変化のいずれか1つ以上の発生を検査することをいう。また、検査データは、実施例1で説明した中継データ及び処理データのいずれか1つ以上であっても構わない。尚、実施例6で説明するゲートウェイ装置は、実施例1から5とほぼ同様の構成であるため、以下主に、実施例1との相違点について説明する。
先ず、図21を参照して、実施例6におけるゲートウェイ装置700の構成について概説する。図21は、実施例6におけるゲートウェイ装置700の一構成例について概説するための図である。
図26に示すゲートウェイ装置700は、CANコントローラが中継データの送信に使用しない(つまり、未使用の)チャネルCH1(つまり、空きチャネル)に転送するデータを蓄積する送信FIFO310aを有する。ここで、従来のゲートウェイ装置は、未使用の送信FIFO310a及びCANコントローラ711をチャネルCH1へのデータ中継に使用しない。しかし、本発明に係るゲートウェイ装置700は、チャネルCH0へ中継する中継データを複製した複製データを送信FIFO310aに蓄積する点で異なる。また、ゲートウェイ装置700は、チャネルCH0へ中継する中継データを送信FIFO300aから読み出す場合に、送信FIFO310aが蓄積した複製データをも読み出すと共に、読み出した中継データと複製データとを比較してミラーチェックを行う点で従来のゲートウェイ装置と異なる。ゲートウェイ装置700は、ミラーチェックにより、例えば、中継データの破壊又は変化等のデータ化けを検出した場合には、異常の生じた中継データを破棄する。尚、ゲートウェイ装置700は、検出した異常の通知、又は異常に関するダイアグ記録をする構成を採用できる。
この構成によれば、検査の対象とするデータと、検査の対象とするデータを複製したデータとを比較してデータの異常を検出するため、データに生じるデータ化けを精度良く検出できる。また例えば、偶奇パリティチェックを行う場合と比べて、偶数個のビット化けをも検出できる。またこの構成によれば、データ化けを検出したデータを破棄するため、データ化したデータを中継することで車両を危険な状態又は故障した状態に陥らせることを防止できる(フェールセーフ)。
ゲートウェイ装置700は、実施例1と同様に不図示のソフトウェア処理部740等で構成される。ソフトウェア処理部740は、実施例1と同様のタイミングで、同様の初期化処理を実行する。ソフトウェア処理部740が実行する初期化処理は、実施例1で説明した図20の初期化処理と同様に、CPU初期化処理、生成処理、フレーム処理経路変更処理、及び中継機能初期化処理を順に実行する処理である。
ここで図22を参照して、ゲートウェイ装置700が実行する初期化処理について概説した後に、ソフトウェア処理部740が実行する初期化処理を構成する上記各処理について説明を行う。図22は、実施例6において、ゲートウェイ装置700が実行する初期化処理の一例を表すフローチャートである。
先ず、ゲートウェイ装置700は、実施例1と同様にCPU初期化処理を実行する(ステップS81)。次に、ゲートウェイ装置700は、第1ルーティングマップを読み出す(ステップS82)。その後、ゲートウェイ装置700は、優先度情報テーブルファイルを参照する。尚、優先度情報テーブルファイルは、他のデータよりも優先的に検査データの検査を行う必要性を表す優先度を保存するテーブルである。次に、ゲートウェイ装置700は、第1ルーティングマップから空きチャネルを検出する(ステップS84)。その後、ゲートウェイ装置700は、複製データを空きチャネルへ転送するよう第1ルーティングマップを書換える(ステップS85)。次に、ゲートウェイ装置700は、書換えたマップを第2ルーティングマップとする(ステップS85)。その後、ゲートウェイ装置700は、初期化処理の実行を終了する。
次に、ソフトウェア処理部740が実行する生成処理の一例について説明を行う。ソフトウェア処理部740が実行する生成処理は、実施例1と異なり、処理データではなく検査の必要な検査データを中継データの送信に用いられない通信路に蓄積するよう設定した第2ルーティングマップを、第1ルーティングマップが記憶する情報を用いて生成する処理である。また、ソフトウェア処理部740は、検査データを識別する情報を用いて第2ルーティングマップを生成する。ここで、検査データを識別する情報は、検査データの種類及び検査データの中継に用いるチャネルのいずれか1つ以上と、検査データの優先度とを関連付けた情報である。具体的には、検査データを識別する情報は、検査データのIDと優先度とを関連付けた情報、又は検査データの中継に用いるチャネルと優先度とを関連付けた情報をいう。例えば、ソフトウェア処理部740は、検出した中継に用いない送信FIFOの数よりも検査データの種類の方が多い場合には、検査データのIDに関連付けた優先度が高いデータの複製データを優先して、未使用の送信FIFOに転送するよう第2ルーティングマップを設定する。また、例えば、ソフトウェア処理部740は、検出した送信FIFOの数よりも検査データの種類の方が多い場合には、検査データの中継に用いるチャネルに関連付けた優先度が高いデータの複製データを優先して第2ルーティングマップを設定する。尚、優先度によって検査データを識別する情報は、第1ルーティングマップ、又は新規の(つまり、別の)テーブルファイルである優先度情報テーブルファイルに保存される。尚、第2ルーティングマップを生成するタイミングについては、実施例1から5で説明したタイミングと同様であるので説明を省略する。
この構成によれば、CANコントローラがデータの中継に用いる通信路の構成及び通信路に接続する制御装置を表す第1ルーティングマップが記憶する情報を変更しても、中継データを送信しない通信路に関する送信FIFOが検査データを蓄積するように容易に設定できる。またこの構成によれば、優先度に基づいて検査を行うデータを効率的に定めて効率良くデータを検査できる。つまり、優先度に基づく所定の種類のデータ、又は優先度に基づく所定のチャネルのデータのみをミラーリングチェックできる。
次に、ソフトウェア処理部740が実行する初期化処理を構成するフレーム処理経路変更処理について説明を行う。
ソフトウェア処理部740が実行するフレーム処理経路変更処理は、実施例1と異なり、不図示の優先フレーム送信部及び一般フレーム送信部が中継フレームを取得する送信FIFOだけでなく、取得する中継フレームの複製フレームを蓄積する送信FIFOをも、優先フレーム送信部及び一般フレーム送信部がフレームを取得する送信FIFOとして設定する処理である。
ゲートウェイ装置200から700が備えるソフトウェア処理部240から740が実行する処理を表すプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。更に、ゲートウェイ装置200から700がソフトウェア処理を実行することで実現する機能の一部又は全部は、ハードウェア回路を用いて実現することができる。また逆に、ゲートウェイ装置200から700がハードウェア回路を用いて実現する機能の一部又は全部は、ソフトウェア処理を実行することで実現することができる。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
1〜43…ECU 100…故障診断装置
200…ゲートウェイ装置 240…ソフトウェア処理部
210〜215…CANコントローラ(通信コントローラ)
230…ハードウェア中継部(ハードマクロ)
232a…第1ルーティングマップ(第1記憶部)
232b…第2ルーティングマップ(第2記憶部)
300a〜350a…送信FIFO_0 (蓄積部)
301a〜351a…送信FIFO_1 (蓄積部)
CH0〜3…チャンネル0〜3(通信網)
D…通信仕様書 S…ゲートウェイシステム

Claims (5)

  1. 車両の制御を行う制御装置との間で通信路を介して送受信するデータを通信する2以上の通信コントローラと、前記通信コントローラが受信したデータをソフトウェア処理するソフトウェア処理部と、前記通信コントローラが前記通信路を介して前記制御装置へ送信するデータを蓄積する蓄積部とを備えるゲートウェイ装置において、
    前記通信コントローラが前記制御装置から受信するデータは、他の前記制御装置への中継を要する中継データを含み、
    前記ソフトウェア処理部は、前記通信コントローラが受信するデータの種類に基づいて前記通信コントローラが前記中継データを送信しない通信路を検出すると共に、検出した前記通信路に関する蓄積部が前記データを蓄積するように設定することを特徴とするゲートウェイ装置。
  2. 前記制御装置が送信するデータは、前記ソフトウェア処理部の処理を要する処理データを更に含み、
    前記中継データを識別する情報と、前記中継データの中継に用いる通信路を識別する情報とを関連付けて記憶する第1記憶部と、
    前記処理データを識別する情報と、前記処理データを蓄積するように前記ソフトウェア処理部が設定した蓄積部に関する前記通信路を識別する情報とを関連付けて記憶する第2記憶部と、
    前記通信コントローラが受信したデータを識別する情報に基づいて前記第1記憶部及び前記第2記憶部が記憶する情報が識別する通信路を検索すると共に、検索した前記通信路に関する蓄積部へ前記データを転送するハードウェアで構成されるハードウェア転送部とを更に備え、
    前記ソフトウェア処理部は、前記第1記憶部が記憶する情報を変更した場合、及び前記第2記憶部が情報を記憶していない場合の1つ以上の場合に、前記第1記憶部が記憶する情報が識別する通信路ではない通信路を、前記中継データを送信しない通信路として検出すると共に、検出した前記通信路に関連した前記蓄積部が前記処理データを蓄積するように設定することを特徴とする請求項1に記載のゲートウェイ装置。
  3. 車両の制御を行う制御装置との間で通信路を介して送受信するデータを、通信コントローラを用いて通信する通信ステップと、前記通信ステップで受信したデータをソフトウェア処理するソフトウェア処理ステップと、前記通信ステップで前記通信路を介して前記制御装置へ送信するデータを蓄積部へ蓄積する蓄積ステップとを備えるゲートウェイ方法において、
    前記通信ステップで前記制御装置から受信するデータは、他の前記制御装置への中継を要する中継データを含み、
    前記ソフトウェア処理ステップは、前記通信ステップで受信するデータの種類に基づいて前記通信ステップで前記中継データを送信しない通信路を検出すると共に、検出した前記通信路に関する前記蓄積部が前記蓄積ステップにおいて前記データを蓄積するように設定することを特徴とするゲートウェイ方法。
  4. 前記通信コントローラが受信したデータを前記データの種類に基づいて定まる前記蓄積部へ転送するハードウェアで構成されるハードウェア転送部を更に備え、
    前記ソフトウェア処理部は、前記通信コントローラが受信したデータを、前記データの種類に基づいて定まる蓄積部と、検出した前記通信路に関する蓄積部とに複製して転送するよう前記ハードウェア転送部を設定すると共に、前記データ種類に基づいて定まる蓄積部が蓄積するデータと、検出した前記通信路に関する蓄積部が蓄積するデータとを比較することで、前記データを検査するソフトウェア処理を更に実行することを特徴とする請求項1に記載のゲートウェイ装置。
  5. 前記通信ステップで受信したデータを前記データの種類に基づいて定まる前記蓄積部へハードウェアを用いて転送するハードウェア転送ステップを更に備え、
    前記ソフトウェア処理ステップは、前記通信ステップで受信したデータを、前記データの種類に基づいて定まる蓄積部と、検出した前記通信路に関する蓄積部とに複製して転送するよう前記ハードウェア転送ステップで用いるハードウェアを設定すると共に、前記データ種類に基づいて定まる蓄積部が蓄積するデータと、検出した前記通信路に関する蓄積部が蓄積するデータとを比較することで、前記データを検査するソフトウェア処理を更に実行することを特徴とする請求項4に記載のゲートウェイ方法。
JP2009095943A 2009-04-10 2009-04-10 ゲートウェイ装置及びゲートウェイ方法 Withdrawn JP2010251837A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009095943A JP2010251837A (ja) 2009-04-10 2009-04-10 ゲートウェイ装置及びゲートウェイ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009095943A JP2010251837A (ja) 2009-04-10 2009-04-10 ゲートウェイ装置及びゲートウェイ方法

Publications (1)

Publication Number Publication Date
JP2010251837A true JP2010251837A (ja) 2010-11-04

Family

ID=43313725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009095943A Withdrawn JP2010251837A (ja) 2009-04-10 2009-04-10 ゲートウェイ装置及びゲートウェイ方法

Country Status (1)

Country Link
JP (1) JP2010251837A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012105016A1 (de) 2011-06-15 2012-12-20 Denso Corporation Gateway-Einrichtung
JP2014045421A (ja) * 2012-08-28 2014-03-13 Denso Corp ネットワークシステム
JP2014146997A (ja) * 2013-01-30 2014-08-14 Denso Corp 車両用ゲートウエイ装置
JP2014193654A (ja) * 2013-03-28 2014-10-09 Auto Network Gijutsu Kenkyusho:Kk 車載通信システム及び車載中継装置
JP2015097027A (ja) * 2013-11-15 2015-05-21 株式会社デンソー 電子制御装置
JP2017073765A (ja) * 2015-10-09 2017-04-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America セキュリティ装置、攻撃検知方法及びプログラム
WO2017061079A1 (ja) * 2015-10-09 2017-04-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ セキュリティ装置、攻撃検知方法及びプログラム
WO2022163386A1 (ja) * 2021-01-27 2022-08-04 株式会社オートネットワーク技術研究所 車載装置、及び中継方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8665891B2 (en) 2011-06-15 2014-03-04 Denso Corporation Gateway apparatus
DE102012105016A1 (de) 2011-06-15 2012-12-20 Denso Corporation Gateway-Einrichtung
US9800456B2 (en) 2012-08-28 2017-10-24 Denso Corporation On-board network system
JP2014045421A (ja) * 2012-08-28 2014-03-13 Denso Corp ネットワークシステム
JP2014146997A (ja) * 2013-01-30 2014-08-14 Denso Corp 車両用ゲートウエイ装置
JP2014193654A (ja) * 2013-03-28 2014-10-09 Auto Network Gijutsu Kenkyusho:Kk 車載通信システム及び車載中継装置
JP2015097027A (ja) * 2013-11-15 2015-05-21 株式会社デンソー 電子制御装置
JP2017073765A (ja) * 2015-10-09 2017-04-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America セキュリティ装置、攻撃検知方法及びプログラム
WO2017061079A1 (ja) * 2015-10-09 2017-04-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ セキュリティ装置、攻撃検知方法及びプログラム
US10193859B2 (en) 2015-10-09 2019-01-29 Panasonic Intellectual Property Corporation Of America Security apparatus, attack detection method, and storage medium
US10931634B2 (en) 2015-10-09 2021-02-23 Panasonic Intellectual Property Corporation Of America Security apparatus, attack detection method, and storage medium
US11336618B2 (en) 2015-10-09 2022-05-17 Panasonic Iniellectual Property Corporation Of America Security apparatus, attack detection method, and storage medium
WO2022163386A1 (ja) * 2021-01-27 2022-08-04 株式会社オートネットワーク技術研究所 車載装置、及び中継方法

Similar Documents

Publication Publication Date Title
JP2010251837A (ja) ゲートウェイ装置及びゲートウェイ方法
JP5637190B2 (ja) 通信システム及び通信方法
US9417982B2 (en) Method and apparatus for isolating a fault in a controller area network
US10129124B2 (en) Method and apparatus for controlling in-vehicle mass diagnostic communication
US9110951B2 (en) Method and apparatus for isolating a fault in a controller area network
KR101575547B1 (ko) 캔 통신 시스템의 에러 분산감지 방법 및 캔 통신 시스템
US20150312123A1 (en) Method and apparatus for isolating a fault in a controller area network
WO2019187350A1 (ja) 不正検知方法、不正検知装置及びプログラム
JP4839109B2 (ja) 車載データベースシステム
US10812290B2 (en) On-vehicle communication system, switching device and on-vehicle communication method
CN112003772B (zh) 通信系统以及通信控制方法
JP5286659B2 (ja) 車載装置中継システム、車載装置中継方法及び中継装置
JP2007096799A (ja) 車載用電子制御ネットワークの監視装置
JP5348040B2 (ja) 車両通信システム及び電子制御装置
US8605602B2 (en) Field communication system
JP6332060B2 (ja) 車載ネットワーク
JP2009253464A (ja) ゲートウェイ装置及びゲートウェイ方法
JP2006191339A (ja) バス間のメッセージ転送を行うゲートウエイ装置
CN113341906B (zh) 一种故障处理方法、装置、设备及汽车
JP2008227591A (ja) 車載用の中継接続ユニット
JP2010167834A (ja) 中継装置、車両情報記録システム、及び車両情報記録方法
CN112398672B (zh) 一种报文检测方法及装置
JP2006340099A (ja) ゲートウェイ装置
JP4603899B2 (ja) 通信エラー検知機能付のゲートウェイ装置及び通信システム
JP6527647B1 (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: 20120703