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

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

Info

Publication number
JP2009253464A
JP2009253464A JP2008096526A JP2008096526A JP2009253464A JP 2009253464 A JP2009253464 A JP 2009253464A JP 2008096526 A JP2008096526 A JP 2008096526A JP 2008096526 A JP2008096526 A JP 2008096526A JP 2009253464 A JP2009253464 A JP 2009253464A
Authority
JP
Japan
Prior art keywords
relay
unit
data
hardware
frame
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
JP2008096526A
Other languages
English (en)
Inventor
Naoya Kurahashi
直也 倉橋
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 JP2008096526A priority Critical patent/JP2009253464A/ja
Publication of JP2009253464A publication Critical patent/JP2009253464A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】データの中継により生じる異常の発生箇所を特定できるゲートウェイ装置及びゲートウェイ方法を提供する。
【解決手段】
所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理をハードウェア処理によって行うハードウェア中継手段と、ネットワーク間のデータの中継処理における所定処理を、ソフトウェア処理によって行うソフトウェア中継手段と、ハードウェアによるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータの中継が所定時間よりも短い時間内に行われている場合に、ハードウェア中継手段が異常であると判断する異常個所特定手段とを備える。これによれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
【選択図】図2

Description

本発明は、車両の挙動を制御する制御装置間で送受信されるデータの中継を行うゲートウェイ装置及びゲートウェイ方法に関し、データの中継に伴って生じる異常の発生箇所を特定する装置及び方法に関する。
近年、車両には、車両を構成するエンジンを制御するエンジン制御装置、ドアの開閉を制御するボデー制御装置、及びオーディオを制御するオーディオ制御装置等といった複数の制御装置(ECU:Electronic Control Unit)が搭載される傾向がある。
これら複数の制御装置は、接続されたネットワーク間を相互に通信可能に接続しているが、送受信されるデータによっては、ネットワーク間の受け渡しが必要なものと不要なものとがあり、通信負荷の低減のためには、受け渡しを行うデータの選別を行う必要があり、また、異なる方式又は速度で通信を行う複数のネットワークを介して制御装置が通信するためには、ネットワークの中継地点において、データを中継するゲートウェイ装置が必要となる。
また近年、制御装置間で送受信される情報が増加するだけでなく、車両に搭載される制御装置の数が増加する傾向にあるため、ゲートウェイ装置が行う中継処理に要する処理時間が増加するという問題が生じている。
そこで、ハードウェアによりデータを中継するハードウェア中継、又はソフトウェアを用いて中継するソフトウェア中継のいずれか一つを、中継するデータに基づいて選択して中継することで、中継処理に要する処理時間を軽減できる中継方法が知られるに至った(例えば、特許文献1)。
この中継方法は、ハードウェア中継又はソフトウェア中継のいずれか1つを指定して送信されたデータから、指定された中継方法を判定する判定ステップと、前記判定ステップで判定された中継方法に従ってデータを中継する中継ステップとを備えることを特徴としている。
特開2003−69583号公報
ところで上記のような中継方法において、中継するデータの消失等の異常が発生した場合に、例えば、全ての中継を停止することがないようにするためには、ハードウェア中継又はソフトウェア中継のいずれの処理において異常が生じたかを特定する必要がある。
本発明は、上記問題に鑑みて成されたものであり、その目的とするところは、データの中継により生じる異常の発生箇所を特定できるゲートウェイ装置及びゲートウェイ方法を提供することにある。
本発明に係るゲートウェイ装置は、所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理を、ハードウェア処理によって行うハードウェア中継手段と、ネットワーク間のデータの中継処理における所定処理を、ソフトウェア処理によって行うソフトウェア中継手段と、ハードウェアによるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータの中継が所定時間よりも短い時間内に行われている場合に、ハードウェア中継手段が異常であると判断する異常個所特定手段とを備えることを特徴としている。
上記構成において、所定処理は、ネットワークからデータを受信する受信処理が行われた後に行われる処理であり、異常個所特定手段は、ハードウェア中継手段によるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータ中継が所定時間よりも短い時間内に行われており、かつ、受信処理が所定時間よりも短い時間内に行われている場合に、ハードウェア中継手段が異常であると判断する構成を採用できる。
上記構成において、受信処理を実行する受信手段を更に備え、異常個所特定手段は、ハードウェア中継手段によるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータ中継が所定時間よりも短い時間内に行われており、かつ、受信処理が所定時間よりも短い時間を超えて実行されていない場合に、受信手段が異常である構成を採用できる。
本発明に係るゲートウェイ方法は、所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理を、ハードウェア処理によって行うハードウェア中継ステップと、ネットワーク間のデータの中継処理における所定処理を、ソフトウェア処理によって行うソフトウェア中継ステップと、ハードウェアによるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータの中継が所定時間よりも短い時間内に行われている場合に、ハードウェア中継手段が異常であると判断する異常個所特定ステップとを備えることを特徴としている。
請求項1の構成によれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
請求項2の構成によれば、受信処理におけるデータの中継時間間隔に基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
請求項3の構成によれば、受信処理におけるデータの中継時間間隔に基づいて、データの中継により生じる異常の発生箇所を受信手段であると精度良く特定できる。
請求項4の構成によれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
図1は、本発明のゲートウェイ装置の一実施形態を示す構成図である。
車両100は、例えば、乗用車、バス、及びトラック等の自動車で構成される。尚、本実施例では、車両100が自動車で構成されるとして説明を行うが、これに限定される訳ではなく、原動機付自転車、軽車両、及びトロリーバス、戦車及び装甲車等の軍用車両、並びに鉄道車両で構成される実施例を採用できる。
本実施例において、ゲートウェイ装置1000が車両100に搭載される場合について説明するが、これに限定される訳ではない。例えば、ゲートウェイ装置1000は、船舶、航空機、並びに人工衛星、宇宙探査機、及び宇宙ステーション等の宇宙機に搭載される構成を採用できる。また更に、ゲートウェイ装置1000は、車両又は船舶等に搭載されることがない構成を採用できる。
車両100は、ゲートウェイ装置1000及びECU(Electronic Control Unit)2011、2021、及び2031、並びにECU2012、2013、2022、2023、2032、及び3033(後述する図2参照)を備える。
ゲートウェイ装置1000について説明する前に、ECU2011から2033について説明する。
ECU2011から2033は、車両100の挙動を制御する。本実施例では、ECU2011から2033は、車両100が備えるエンジンの点火装置(ignition)の点火タイミングを制御することで、車両100の挙動を制御するとして説明を行うが、これに限定される訳ではない。
ここで、車両100の挙動は、広く車両100の動きをいう。車両100の動きは、例えば、車両100の速度及び加速度の変化、車両100の進行方向及びヨーイングの変化、並びに車両100に加わる加重の変化を含むだけでなく、車両100が備えるエアバッグの動作、ドアの開閉、オーディオの動作、及びナビゲーションの動作を含む。
ECU2011から2033は、図示を省略するが、異なる通信方式又は通信速度で通信するバスで構成される通信網(つまり、ネットワーク)を介してゲートウェイ装置1000と接続する。本実施例においては、ECU2011から2033は、CANプロトコルを用いてゲートウェイ装置1000と通信を行うとして説明するが、これに限定される訳ではなく、例えば、ECU2011から2033は、LIN(Local Interconnect Network)プロトコルを用いて通信する構成を採用できる。
ゲートウェイ装置1000は、車両100の挙動を制御するECU2011から2033間で、送受信されるデータを中継する。具体的には、ゲートウェイ装置1000は、ECU2011から2033のいずれか1つからデータを受信し、受信したデータを中継する中継先の通信網へ中継する。
本発明に係るゲートウェイ装置1000は、主にハードウェア処理によってデータを中継する中継部と、主にソフトウェア処理によってデータを中継等する中継部との2つの中継部によって構成される。
尚、ゲートウェイ装置1000がデータを中継するために、一度に受信又は送信するデータをフレーム・データという。本実施例では、フレーム・データは、例えば、CAN(Controller Area Network)プロトコルに従った枠となる所定のデータから開始する所定の長さを有するデータであるとして説明するが、これに限定される訳ではない。
ここで図2を参照して、ゲートウェイ装置1000のハードウェア構成の一例について説明する。図2は、ゲートウェイ装置1000のハードウェア構成の一例を表す図である。
ゲートウェイ装置1000は、CANコントローラ1110から1130、CANインタフェース部1200、ハードウェア中継部1300(以下、ハードマクロともいう)、及びソフトウェア処理部1400で構成される。
本実施例において、ゲートウェイ装置1000は、3つのCANコントローラ1110から1130で構成されるとして説明するが、この数に限定される訳ではなく、CANコントローラの数が複数であればよい。
CANコントローラ1110から1130は、それぞれ同様の接続、構成、及び機能を有するため、以下単に、CANコントローラ1110についてのみ説明を行う。
CANコントローラ1110は、CANバスBC10を介してECU2011から2013に接続し、かつCANインタフェース部1200に接続している。
CANコントローラ1110は、CANインタフェース部1200を介して接続するハードウェア中継部1300及び(ソフトウェア処理部1400を構成する)ソフトウェア中継部1410の1つ以上が中継するフレーム・データを、制御装置であるECU2011ないし2031から受信し、受信したデータをハードウェア中継部1300又はソフトウェア中継部1410へ出力する。尚、ソフトウェア中継部1410については図示を省略しているため後述することとする。
また、CANコントローラ1110は、ハードウェア中継部1300又はソフトウェア中継部1410から、中継先であるECU2011から2013へ中継するデータを取得し、取得したデータを他のECU2011から2013へ送信する。
尚、CANコントローラ1110ないし1130とCANバスBC10ないし30とを結ぶ伝送路をチャネルという。本実施例では、CANコントローラ1110とCANバスBC10とを結ぶ伝送路をチャネルCH0とし、CANコントローラ1120とCANバスBC20とを結ぶ伝送路をチャネルCH1とし、CANコントローラ1130とCANバスBC30とを結ぶ伝送路をチャネルCH2とする。
尚、CANバスBC10には、ECU2011から2013が接続し、CANバスBC20には、ECU2021から2023が接続し、CANバスBC30には、ECU2031から2033が接続する。
ここで図3を参照して、CANコントローラ1110のハードウェア構成の一例について説明を行う。図3は、CANコントローラ1110のハードウェア構成の一例を表す図である。
CANコントローラ1110は、バッファ1111及びCAN通信部1114で構成される。
バッファ1111は、例えば、RAM(Random Access Memory)及びレジスタで構成され、CAN通信部1114に接続している。
バッファ1111は、互いに関連付けられた複数のメッセージボックス1112と完了フラグ1113とで構成される。
メッセージボックスは、例えば、RAMで構成される。メッセージボックスは、データの受信に用いる受信用メッセージボックス1112Aと送信に用いる送信用メッセージボックス1112Bとに種別される。
受信用メッセージボックス1112Aは、CAN通信部1114が受信したフレーム・データを記憶する記憶領域である。また、送信用メッセージボックス1112Bは、CANバス10へと送信されるフレームデータを保存する記憶領域である。
尚、後に説明する図4では、メッセージボックス1112を受信用メッセージボックス1112Aと送信用メッセージボックス1112Bとに分けて図示する。しかしこれは、1つのメッセージボックス1112を送信用と受信用とに分けて使用するため、説明の便宜上、分けて図示するに過ぎない。勿論、受信用メッセージボックス1112Aと送信用メッセージボックス1112Bとを、物理上、別途に設ける構成を採用できる。
完了フラグ1113は、例えば、レジスタによって記憶され、受信用メッセージボックス1112Aと、送信用メッセージボックス1112Bとのそれぞれに関連付けて設けられている。
受信用メッセージボックス1112Aに関連付けた完了フラグ1113(以下単に、受信完了フラグ1113という)は、CAN通信部1114が実行するフレーム・データを受信するための処理が完了した場合に立ち上げられる(つまり、ONとなる)フラグである。
より詳細に説明すると、受信完了フラグ1113は、CAN通信部1114が受信したフレーム・データであって、ハードウェア中継部1300又はソフトウェア処理部1400が未だ取得していないデータを、受信用メッセージボックス1112Aが記憶していることを表すフラグである。
送信用メッセージボックス1112Bに関連付けた完了フラグ1113(以下単に、送信完了フラグ1113という)は、送信用メッセージボックス1112Bにフレームデータが格納された場合に立ち下げられる(つまり、OFFとなる)フラグである。また、完了フラグ1113は、格納されたフレームデータのECU2011から13に対する送信が完了した場合に立ち上げられる(つまり、ONとなる)フラグである。
CAN通信部1114は、バッファ1111、CANインタフェース部1200、及びCANバス10に接続する。
CAN通信部1114は、CAN受信処理を実行することで、CANプロトコルに従ってCANバス10からフレーム・データを受信する。また、CAN通信部1114は、受信したデータを受信用メッセージボックス1112Aに保存すると共に、データを保存したメッセージボックスに関連付けた受信完了フラグ1113を立ち上げる(つまり、ONとする)。
更に、CAN通信部1114は、フレーム・データを受信したことを通知する受信割込信号を、CANインタフェース部1200を介してハードウェア中継部1300及びソフトウェア処理部1400へ出力する。
尚、CAN通信部1114から受信割込信号を取得したハードウェア中継部1300又はソフトウェア処理部1400は、CANインタフェース部1200を介してフレーム・データを参照した後に、参照したデータを保存した受信用メッセージボックス1112Aに関連付けた受信完了フラグ1113を立ち下げる。
また、CAN通信部1114は、CAN送信処理を実行することで、CANプロトコルに従って、CANインタフェース部1200から出力されるフレーム・データをCANバス10へ送信する。
CAN通信部1114は、CANバス10へのフレームデータの送信を完了した後に、送信が完了したデータを保存した送信用メッセージボックス1112Bに関連付けた送信完了フラグ1113を立ち上げる。
尚、CAN受信処理及びCAN送信処理は、CANプロトコルに従ってフレーム・データを送受信するための公知の処理により実現できるため、説明を省略する。
ここで図2に戻り、ゲートウェイ装置1000の構成について引き続き説明を行う。
CANインタフェース部1200は、CANコントローラ1110から1130及びハードウェア中継部1300に接続している。CANインタフェース部1200は、CANコントローラ1110から1130とCANインタフェース部1200との間でデータ転送を可能とするバスB10から12と、CANインタフェース部1200とハードウェア中継部1300及びCPU1410との間でデータ転送を可能とするバスB2とのインタフェースを提供する。
尚、CANインタフェース部1200、ハードウェア中継部1300、及びソフトウェア処理部1400は、バスB2を介して互いにデータ転送が可能なように接続している。
ハードウェア中継部1300は、車両100の挙動を制御する制御装置であるECU2011から2033間で送受信されるデータを、後述するハードウェア中継処理を実行することによってソフトウェア処理部1400へ中継する。尚、ハードウェア中継処理は、ハードウェアを用いて実行される処理である。
尚、ハードウェア中継部1300は、フレーム・データの内でNMフレーム(Network Management)を除くフレーム(以下単に、中継フレームという)のデータを転送する。
また、後述するソフトウェア処理部1400は、フレーム・データの内でNMフレームのデータを送受信すると共に、ハードウェア中継部1300が中継した中継フレームのデータを中継する。
尚、NMフレームとは、CANプロトコルを用いて通信を行う通信網に接続する装置の状態を表すフレーム・データであり、かつネットワークの管理に用いられるフレーム・データをいう。
尚、ゲートウェイ装置1000は、中継の必要がないフレーム・データをも受信する。中継の必要がないフレーム・データは、ゲートウェイ装置1000によって破棄される。
ここで図4を参照して、ハードウェア中継部1300のハードウェア構成について説明する。図4は、ハードウェア中継部1300のハードウェア構成の一例を表す図である。
ハードウェア中継部1300は、検索エンジン部1310、ルーティング・マップ1320、及び送信バッファ1330で構成される。
検索エンジン部1310は、図示を省略するが、例えば、RAMで構成されるメモリを有し、CANインタフェース部1200、ルーティング・マップ1320、送信バッファ1330、及びソフトウェア処理部1400に接続している。検索エンジン部1310は、後述する経路検索処理を実行することで、フレーム・データに基づいて中継先のチャネル等を検索する。
尚、検索エンジン部1310は、経路検索処理を実行するためのハードウェア回路で構成される。よって、経路検索処理は、ハードウェア処理であり上記のハードウェア中継処理に相当する。
次に図5を参照して、検索エンジン部1310が実行する経路検索処理について説明する。図5は、検索エンジン部1310が実行する経路検索処理の一例を表すフローチャートである。
尚、検索エンジン部1310は、CANコントローラ1110ないし1130から、受信割込信号を取得した場合に経路検索処理を実行する。
先ず、検索エンジン部1310は、CANインタフェース部1200を介して、CANコントローラ1110ないし1130から中継フレームのフレーム・データ(以下単に、中継フレーム・データという)を取得する(ステップST0001)。
その後、検索エンジン部1310は、取得した中継フレーム・データに関連付けたCANコントローラ1110ないし1130の受信完了フラグを立ち下げる(ステップST0002)。次に、検索エンジン部1310は、取得したフレーム・データから、フレーム・データのフォーマット種別IDE、フレーム種別RTR、及びフレーム・データを発信した装置のID、中継元のチャネル、及び中継先のチャネルを取得する(ステップST0003)。
その後、検索エンジン部1310は、ルーティング・マップ1320から、取得したフォーマット種別IDE、フレーム種別RTR、及びCAN IDを保存する行(以下単に、エントリともいう)を検索する(ステップST0004)。
次に、検索エンジン部1310は、検索した行のデータをパリティを用いて検査するパリティ検査処理を実行する(ステップST0005)。尚、パリティ検査処理については後述する。
尚、本実施例では、ステップST0005において、ルーティング・マップ1320が保存するデータをパリティを用いて検査する方法について説明するが、これに限定される訳ではなく、ステップST0005において、フレーム・データをパリティを用いて検査する構成を採用できる。
また、本実施例では、パリティを用いてデータの誤りを検出する方法について説明したが、これに限定される訳ではなく、例えば、チェック・サム、CRC(Cyclic Redundancy Check)、ハッシュ値、ハミング符号、疎グラフ符号(Sparse graph code) 、又は畳込符号(Convolutional code)を用いてデータの誤りを検出する構成を採用できる。
ステップST0005を実行した後に、検索エンジン部1310は、検索した行が保存する中継する先のチャネル(以下単に、中継先チャネルという)TxCHの送信FIFO(First In, First Out)へ、フレーム・データを出力する(ステップST0006)。
尚、送信FIFOは、後述する送信バッファ1330を構成する記憶領域であって、データの先入れ先出しに用いられるものである。送信バッファ1330は、保存するデータの送信先チャネル及び送信するデータの種類毎に、複数の送信FIFOを有する。
ステップST0006を実行した後に、検索エンジン部1310は、データを出力したFIFOに関連付けられたハードウェアカウンタ(以下、メッセージカウンタともいう)をインクリメントする(ステップST0007)。その後、検索エンジン部1310は、経路検索処理の実行を終了する。
尚、ハードウェアカウンタとは、関連付けられたFIFOが保存するデータの数を表すカウンタであって、ハードウェア中継部1300が中継するデータの数を表すカウンタである。
ここで、検索エンジン部1310が実行するパリティ検査処理について説明する前に、図4に戻り、パリティ検査処理で用いるパリティを保存するルーティング・マップ1320の構成について説明する。
ルーティング・マップ1320は、例えば、ROMで構成される。ルーティング・マップ1320は、検索エンジン部1310に接続している。
ルーティング・マップ1320は、フレーム・データのフォーマット種別IDE、フレーム種別RTR、及びIDと、フレーム・データの中継元及び中継先とを関連付けるテーブルを保存する。
ここで、図6を参照して、ルーティング・マップ1320が保存するテーブルについて説明を行う。図6は、ルーティング・マップ1320が保存するテーブルの一例を表す図である。
図6に示すテーブルは、Par1フィールド、IDEフィールド、RTRフィールド、IDフィールド、Par2フィールド、FIFOフィールド、TxCHフィールド、Label(ラベル)1フィールド、Label(ラベル)0フィールド、RxCHフィールド、及びMaskInfoフィールドを有する。
Par1フィールドはIDEフィールド、RTRフィールド、及びIDフィールドが保存するデータのパリティを、IDEフィールドはフレーム・データのフォーマット種別を、RTRフィールドはフレーム種別を、IDフィールドはIDを保存する。
Par2フィールドはFIFOフィールドからMaskInfoフィールドまでのフィールドが保存するデータのパリティを、FIFOフィールドは中継先のFIFOを、TxCHフィールドは中継先チャネルを、Label1及びLabel0は中継するデータに付加するデータを、RxCHは受信した元のチャネル(以下単に、受信元チャネルという)を、MaskInfoは行のソートに用いるインデックスの計算時に用いるマスク値を保存する。
尚、IDEフィールド、RTRフィールド、及びIDフィールドは、キーフィールドであって、IDEフィールド、RTRフィールド、及びIDフィールドの保存するデータが全て重複する行は、テーブル中に存在しない。
次に、図7を参照して、検索エンジン部1310が実行するパリティ検査処理について説明する。図7は、検索エンジン部1310が実行するパリティ検査処理の一例を表すフローチャートである。
先ず、検索エンジン部1310は、取得したフレーム・データのフォーマット種別IDE、フレーム種別RTR、及びIDからパリティを算出する(ステップST0101)。次に、検索した行が保存するフォーマット種別IDE、フレーム種別RTR、及びIDに対するパリティを、Par1フィールドから取得する(ステップST0102)。
その後、検索エンジン部1310は、ステップST0101で算出したパリティと、ステップST0102で検索したパリティとが一致するか否かを判断する(ステップST0103)。検索エンジン部1310は、パリティとが一致すると判断する場合にはステップST0104の処理を、そうで無い場合にはステップST0108の処理を実行する。
ステップST0103において、検索エンジン部1310は、パリティが一致すると判断した場合には、検索した行が保存するFIFOフィールドからMaskInfoフィールドまでのフィールドが保存するデータ(以下単に、FIFO及び中継先CH等という)を取得する(ステップST0104)。
次に、検索エンジン部1310は、FIFO及び中継先CH等からパリティを算出する(ステップST0105)。その後、検索エンジン部1310は、検索した行が保存するFIFO及び中継先CH等に対するパリティを、Par2フィールドから取得する(ステップST0106)。
その後、検索エンジン部1310は、ステップST0105で算出したパリティと、ステップST0106で検索したパリティとが一致するか否かを判断する(ステップST0107)。検索エンジン部1310は、パリティとが一致すると判断する場合にはパリティ検査処理の実行を終了し、そうで無い場合にはステップST0108の処理を実行する。
ステップST0103又はステップST0107の処理において、検索エンジン部1310は、パリティが一致しないと判断した場合には、ソフトウェア処理部1400へ、パリティ・エラーを検出した旨を通知するパリティエラー検出信号を出力する(ステップST0108)。その後、検索エンジン部1310は、パリティ検査処理の実行を終了する。
ここで図4に戻り、ハードウェア中継部1300の構成について引き続き説明を行う。
送信バッファ1330は、例えば、RAM及びレジスタで構成される。送信バッファ1330は、検索エンジン部1310、及びソフトウェア処理部1400に接続している。
送信バッファ1330を構成するRAMのメモリ領域は、フレーム・データを保存する送信FIFO1331、1333、1335、及び1337を構成し、送信バッファ1330を構成するレジスタは、送信FIFO1331、1333、1335、及び1337に保存されたデータ数を表すハードウェアカウンタ(つまり、メッセージカウンタ)1332、1334、1336、及び1338を保存する。尚、FIFOについては、既に説明したため、詳細な説明を省略する。
ここで、送信FIFO1331及び1333は、チャネルCH0へ中継されるフレーム・データを保存し、送信FIFO1335及び1337は、チャネルCH1へ中継されるデータを保存する。
また、送信FIFO1331及び1333は、それぞれ異なる予め定められた種類のフレーム・データを保存される。送信FIFO1331及び1333へのフレームデータの保存は、検索エンジン部1310よって行われる。検索エンジン部1310は、ルーティングマップ1320を用いてIDE、RTR、及びIDが一致したエントリ(Entry)を検索すると共に、検索したエントリの情報TxCH及びFIFO(中継先情報)に従ってフレームデータを送信FIFO1331及び1333に保存する。尚、送信FIFO1335及び1337についても同様であるので、説明を省略する。
また、図4において、ハードウェア中継部1300がチャネルCH2へ中継等するフレーム・データを保存するFIFO及びFIFOが保存するデータ数を表すカウンタの図示を省略しているために説明を省略するが、ハードウェア中継部1300がフレーム・データをチャネルCH2へ中継する機能を有することは当然である。
ここで図2に戻り、ゲートウェイ装置1000の構成について、引き続き説明を行う。
ソフトウェア処理部1400は、車両100の挙動を制御する制御装置であるECU2011から2033間で送受信されるデータを中継等するソフトウェア処理を実行する。
ソフトウェア処理部1400は、例えば、CPU(Central Processing Unit)等の演算部1401、例えば、フラッシュ・メモリ等の記憶部1402、及び割込制御部1403で構成され、演算部1401、記憶部1402、及び割込制御部1403は、それぞれバスによってデータの授受が可能なように接続している。
ソフトウェア処理部1400は、ソフトウェア処理部1400を構成する記憶部1402に格納したプログラムを演算部1401が読み、読込んだプログラムに従って演算部1401が演算を行うことで後述する各部の機能を実現する。
また、割込制御部1403は、プログラムに従った演算を行う演算部1401に対して、ハードウェア中継部1300等の他のハードウェアを制御するための演算等を割込んで実行することを要求する割込信号の入出力を制御する。
ここで図8を参照して、ソフトウェア処理部1400が有する機能について説明する。図8は、ソフトウェア処理部1400の一構成例を説明する機能ブロック図である。
ソフトウェア処理部1400は、ソフトウェア中継部1410、監視部1420、カウンタ記憶部1430、及び特定部1440で構成される。
ソフトウェア中継部1410は、CANインタフェース部1200、ハードウェア中継部1300、及びカウンタ記憶部1430に接続する。ソフトウェア中継部1410は、ソフトウェア中継処理を実行することで、車両100の挙動を制御する制御装置であるECU2011から2033間で送受信されるデータの一部をソフトウェア処理によって送受信すると共に、ハードウェア中継部1300が中継するデータをソフトウェア処理によって中継する。
ここで図9を参照して、ソフトウェア中継部1410の構成について説明を行う。図9は、ソフトウェア中継部1410の一構成例を表す機能ブロック図である。
ソフトウェア中継部1410は、NM(Network Management)フレーム送受信部1411及び中継フレーム中継部1412で構成される。
NMフレーム送受信部1411は、CANインタフェース部1200及びカウンタ記憶部1430に接続している。NMフレーム送受信部1411は、後述するNMフレーム受信処理を実行することでNMフレームを受信し、NMフレーム送信処理を実行することで所定の場合に所定のNMフレームを所定チャネルへ送信するメッセージボックスへ送信する。
ここで図10を参照して、NMフレーム送受信部1411が実行するNMフレーム受信処理について説明を行う。図10は、NMフレーム送受信部1411が実行するNMフレーム受信処理の一例を表すフローチャートの一部である。
先ず、NMフレーム送受信部1411は、ソフトウェアカウンタの値を「0」とすることで初期化する(ステップST0201)。尚、ソフトウェアカウンタは、NMフレーム送受信部1411によって構成されるソフトウェア中継部1410が受信するデータの数を表す。また、NMフレーム送受信部1411が受信するデータは、ゲートウェイ装置1000が受信したNMフレームの内で所定のIDを有するフレームであるため、ソフトウェアカウンタをNMフレーム受信カウンタともいう。
次に、NMフレーム送受信部1411は、終了信号を取得したか否かを判断する(ステップST0202)。NMフレーム送受信部1411は、終了信号を取得したと判断した場合にはNMフレーム受信処理の実行を終了し、そうで無い場合にはステップST0203の処理を実行する。
ステップST0202において、NMフレーム送受信部1411は、終了信号を取得しないと判断した場合には、CANインタフェース部1200を介して、CANコントローラ1110ないし1130のいずれか1つからNMフレームを受信する(ステップST0203)。
次に、NMフレーム送受信部1411は、受信したNMフレームを保存するCANコントローラ1110ないし1130の受信完了フラグを立ち下げる(ステップST0204)。
その後、NMフレーム送受信部1411は、NMフレームからIDを取得する(ステップST0205)。次に、NMフレーム送受信部1411は、取得したIDが、所定のIDであるか否かを判断する(ステップST0206)。NMフレーム送受信部1411は、取得したIDが、所定のIDであると判断する場合にはステップST0207の処理を、そうで無い場合にはステップST0202に戻り上記処理処理を繰り返す。
ステップST0206において、NMフレーム送受信部1411は、取得したIDが所定のIDであると判断した場合には、カウンタ記憶部1430のソフトウェアカウンタ(つまり、NMフレーム受信カウンタ)をインクリメントする(ステップST0207)。その後、NMフレーム送受信部1411は、ステップST0202に戻り上記処理処理を繰り返す。
本実施例において、NMフレーム送受信部1411は、所定のIDを有するNMフレームを受信する毎にソフトウェアカウンタをインクリメントするとして説明したが、これに限定される訳ではなく、NMフレーム送受信部1411は、NMフレームを送信する毎にソフトウェアカウンタをインクリメントする構成を採用できる。この構成において、ソフトウェアカウンタは、ソフトウェア中継部1410が送信するデータの数を表す。
本実施例において、NMフレーム中継部1411は、NMフレームを所定のメッセージボックスに出力するとして説明したが、これに限定される訳ではない。
例えば、記憶部1402はルーティング・マップ1320が記憶するテーブルと同様のテーブルを記憶し、NMフレーム送受信部1411は、送受信するNMフレームのフォーマット種別IDE、フレーム種別RTR、及びCAN IDに基づいて送信先チャネルTxCHを検索し、検索したチャネルTxCHへデータを送信するCANコントローラ1110ないし1130の1つ以上が有するFIFOへ、NMフレームを出力する構成を採用できる。
ここで図9に戻り、ソフトウェア中継部1410の構成について引き続き説明を行う。
中継フレーム中継部1412は、ハードウェア中継部1300及びカウンタ記憶部1430に接続している。中継フレーム中継部1412は、後述する中継フレーム中継処理を実行することで、中継フレームをハードウェア中継部1300から中継先の中継チャネルへデータを送信するCANコントローラ1110から1130へ中継する。
ここで図11を参照して、中継フレーム中継部1412が実行する中継フレーム中継処理について説明を行う。図11は、中継フレーム中継部1412が実行する中継フレーム中継処理の一例を表すフローチャートである。
先ず、中継フレーム中継部1412は、カウンタ記憶部1430のデータ消失検出カウンタの値を「0」とすることで初期化する(ステップST0301)。
その後、中継フレーム中継部1412は、終了信号を受信したか否かを判断する(ステップST0302)。中継フレーム中継部1412は、終了信号を受信したと判断する場合には中継フレーム中継処理の実行を終了し、そうで無い場合にはステップST0303の処理を実行する。
ステップST0302において、中継フレーム中継部1412は、終了信号を受信していないと判断した場合には、ハードウェア中継部1300が有する送信FIFO1331、1333、1335、及び1337のいずれか1つから、メッセージカウンタが表す数だけ、中継フレームのデータを取得する(ステップST0303)。
次に、中継フレーム中継部1412は、ハードウェア中継部1300が中継するデータの消失を検出するデータ消失検出処理を実行する(ステップST0304)。尚、データ消失検出処理については後述する。
その後、中継フレーム中継部1412は、データを取得した送信FIFO1331、1333、1335、及び1337のいずれか1つに関連付けたハードウェアカウンタ(つまり、メッセージカウンタ)の値を「0」として初期化する(ステップST0305)。
次に、中継フレーム中継部1412は、中継フレームに対する所定の処理を実行する(ステップST0306)。
その後、中継フレーム中継部1412は、中継フレームが格納されていた送信FIFO1331、1333、1335、又は1337に対応するCANコントローラ1110が有する送信用メッセージボックス1112Bへ、中継フレームを出力する(ステップST0307)。その後、中継フレーム中継部1412は、ステップST0302に戻り、上記処理を繰り返す。
尚、上記のNMフレーム送信処理、NMフレーム受信処理、及び中継フレーム中継処理は、ソフトウェア処理である。よって、ソフトウェア中継部1410が実行するソフトウェア中継処理は、上記のNMフレーム送信処理、NMフレーム受信処理、及び中継フレーム中継処理を実行する処理に相当する。
ここで、中継フレーム中継部1412が実行するデータ消失検出処理の一例について説明する前に、図12を参照して、ハードウェアカウンタの時間変化について説明する。図12は、異常が発生していないハードウェア中継部1300が有するハードウェアカウンタの時間変化の一例を表す図である。
図12は、横軸で時間Tを、縦軸で所定の送信FIFO1331、1333、1335、又は1337に関連付けたハードウェアカウンタ(つまり、メッセージカウンタ)を表す。
よって図12は、時刻T11、12、21、22、及び23において、ハードウェア中継部1300が、所定の送信FIFOに1つのフレーム・データを保存すると共に、所定の送信FIFOに関連付けられたメッセージカウンタの値をインクリメントしたことを表す。
また図12は、時刻T1及びT2において、中継フレーム中継部1412が、中継フレーム中継処理を構成するステップST0303及びステップST0305の処理を実行した結果、送信FIFOに保存されたメッセージカウンタが表す数のフレーム・データを取得し、その後にメッセージカウンタの値を「0」として初期化したことを表す。
つまり図12は、ハードウェア中継部1300が所定の送信FIFOにフレーム・データを保存する毎にメッセージカウンタの値が増加し、かつ中継フレーム中継部1412が中継フレーム中継処理の所定のステップを実行する毎にメッセージカウンタの値が「0」に戻ることを表す。
次に、図13を参照して、中継フレーム中継部1412が実行するデータ消失検出処理の一例について概説する。図13は、中継フレーム中継部1412が実行するデータ消失検出処理の一例について概説するための図である。
図13(a)は、図12と同様に、時間とメッセージカウンタの値との関係を表している。図13(a)は、例えば、メッセージカウンタを表すレジスタの値が「0」に固着したために、ハードウェア中継部1300が、所定の送信FIFOにフレーム・データを保存した後であっても、所定の送信FIFOに関連付けられたメッセージカウンタの値がインクリメントしない状態を表す。
また図13(b)は、横軸で時間Tを、縦軸でデータ消失検出カウンタの値を表す。尚、データ消失検出カウンタは、中継フレーム中継部1412が、ハードウェア中継部1300によって中継されるデータの消失を検出した回数を表すカウンタである。
図13(b)は、時刻T1からT4において、中継フレーム中継部1412がソフトウェア処理である中継フレーム中継処理の所定のステップを実行したことを表す。
ここで、中継フレーム中継部1412は、時刻T1からT4において、中継フレーム中継処理の所定のステップを実行する前に、メッセージカウンタの値が「0」であるか否かを判断する。
中継フレーム中継部1412は、メッセージカウンタの値が「0」であると判断する場合には、ハードウェア中継部1300が中継対象とするフレーム・データを消失したと判断し、データ消失検出カウンタをインクリメントする。その後、ハードウェア中継部1300は、データ消失検出処理の実行を終了する。
次に図14を参照して、中継フレーム中継部1412が実行するデータ消失検出処理について説明する。図14は、中継フレーム中継部1412が実行するデータ消失検出処理の一例を表すフローチャートである。
先ず、中継フレーム中継部1412は、カウンタ記憶部1430が記憶するIGON後経過カウンタを参照する(ステップST0401)。ここで、IGON後経過カウンタとは、車両100を構成するエンジンに設置される点火装置(ignition)が始動した後の経過時間を表すカウンタである。
次に、中継フレーム中継部1412は、IGON後経過カウンタが所定の値を超えたか否かを判断する(ステップST0402)。中継フレーム中継部1412は、IGON後経過カウンタが所定の値を超えたと判断する場合にはステップST0403の処理を、そうで無い場合にはステップST0410の処理を実行する。
この構成により、中継フレーム中継部1412は、車両100の挙動を制御する所定のECU2011から2033が起動し、かつゲートウェイ装置1000が中継すべきフレーム・データを送信している状態であるか否かを判断できるだけでなく、ハードウェア中継部1300が中継するデータを消失したことを精度良く検出できる。
ステップST0402において、中継フレーム中継部1412は、IGON後経過カウンタが所定の値を超えたと判断した場合には、カウンタ記憶部1430が記憶するパリティ・エラーフラグを参照する(ステップST0403)。
次に、中継フレーム中継部1412は、パリティ・エラーフラグが立っているか否かを判断する(ステップST0404)。中継フレーム中継部1412は、パリティ・エラーフラグが立っていると判断する場合にはステップST0410の処理を、そうで無い場合にはステップST0405の処理を実行する。
この構成により、中継フレーム中継部1412は、ハードウェア中継部1300が中継先の検索を失敗したか否かを判断するため、ハードウェア中継部1300が中継するデータを消失したことを精度良く検出できる。
尚、パリティ・エラーフラグは、ハードウェア中継部1300が、パリティ・エラーを検出した場合に立てられるフラグである。
ステップST0404において、中継フレーム中継部1412は、パリティ・エラーフラグが立っていないと判断した場合には、カウンタ記憶部1430が記憶する受信ロックフラグを参照する(ステップST0405)。
尚、受信ロックフラグは、監視部1420が、受信ロック状態を検出した場合に立てられるフラグである。また、受信ロック状態とは、CANコントローラ1110から1130がデータを受信できないロック状況をいう。この受信ロック状態は、監視部1420が、CANコントローラ1110から1130から出力される信号に基づいて検出する。
また本実施例では、受信ロック状態は、CANコントローラ1110から1130とECU2011から2033とを結ぶCANバス10から30が断線することで、CANコントローラ1110から1130がデータを受信できない状況を含むとして説明するが、データを受信できない原因は、これに限定される訳ではない。
次に、中継フレーム中継部1412は、受信ロックフラグが立っているか否かを判断する(ステップST0406)。中継フレーム中継部1412は、受信ロックフラグが立っていると判断する場合にはステップST0410の処理を、そうで無い場合にはステップST0407の処理を実行する。
この構成により、中継フレーム中継部1412は、CANコントローラ1110から1130が受信ロック状態であるか否かを判断するため、ハードウェア中継部1300が中継するデータを消失したことを精度良く検出できる。
ステップST0406において、受信ロックフラグが立っていないと判断した場合には、中継フレーム中継部1412は、ハードウェア中継部1300であるハードマクロから全メッセージカウンタを参照する(ステップST0407)。次に、中継フレーム中継部1412は、全てのメッセージカウンタの値が「0」であるか否かを判断する(ステップST0408)。中継フレーム中継部1412は、全てのメッセージカウンタの値が「0」であると判断する場合にはステップST0409の処理を、そうで無い場合にはステップST0410の処理を実行する。
ステップST0408において、中継フレーム中継部1412は、全てのメッセージカウンタの値が「0」であると判断した場合には、カウンタ記憶部1430が記憶するデータ消失検出カウンタをインクリメントする(ステップST0409)。その後、中継フレーム中継部1412は、中継フレーム中継処理の実行を終了する。
ステップST0402において、中継フレーム中継部1412は、IGON後経過カウンタが所定の値を超えないと判断した場合、ステップST0404において、パリティ・エラーフラグが立っていると判断した場合、ステップST0406において、受信ロックフラグが立っていると判断した場合、又はステップST0408において、いずれか1つのメッセージカウンタの値が「0」でないと判断した場合には、カウンタ記憶部1430のデータ消失検出カウンタの値を「0」とすることで初期化する(ステップST0410)。その後、中継フレーム中継部1412は、中継フレーム中継処理の実行を終了する。
本実施例では、中継フレーム中継部1412は、全てのメッセージカウンタの値が「0」であると判断した場合に、データ消失検出カウンタをインクリメントするとして説明したが、これに限定される訳ではない。例えば、全てのメッセージカウンタの値が変化しない場合に、データ消失検出カウンタをインクリメントする構成を採用できる。
ここで図8に戻り、ソフトウェア処理部1400の構成について、引き続き説明を行う。
監視部1420は、CANインタフェース部1200、ハードウェア中継部1300、及びカウンタ記憶部1430に接続している。監視部1420は、ハードウェア中継部1300を含むCANインタフェース部1200に接続するハードウェア又は装置を監視する。
ここで図15を参照して、監視部1420の構成について説明する。図15は、監視部1420の一構成例を表す機能ブロック図である。
監視部1420は、IG監視部1421、CAN監視部1422、パリティエラー監視部1423、及び受信ロック監視部1424で構成される。
IG監視部1421は、CANインタフェース部1200及びカウンタ記憶部1430に接続する。IG監視部1421は、IG監視処理を実行することで、点火装置を制御するECU2011から2033に対する電源の供給を監視して、点火装置の起動後の経過時間をカウントするカウンタであって、カウンタ記憶部1430が記憶するIGON後経過カウンタをカウントする。
CAN監視部1422は、CANインタフェース部1200及びカウンタ記憶部1430に接続している。CAN監視部1422は、後述するCAN監視処理を実行することで、CANコントローラを監視する。
ここで図16を参照して、CAN監視部1422が実行するCAN監視処理について説明する。図16は、CAN監視部1422が実行するCAN監視処理の一例を表すフローチャートである。
先ず、CAN監視部1422は、カウンタ記憶部1430が記憶する受信完了後経過カウンタの値を「0」として初期化する(ステップST0501)。
その後、CAN監視部1422は、終了信号を取得したか否かを判断する(ステップST0502)。CAN監視部1422は、終了信号を取得したと判断する場合にはCAN監視処理の実行を終了し、そうで無い場合にはステップST0503の処理を実行する。
ステップST0502において、CAN監視部1422は、終了信号を取得していないと判断する場合には、CANインタフェース部1200を介してCANコントローラ1110ないし1130の全てから受信完了フラグを取得する(ステップST0503)。
次に、CAN監視部1422は、いずれかの受信完了フラグが立っているか否かを判断する(ステップST0504)。CAN監視部1422は、受信完了フラグが立っていると判断する場合にはステップST0505の処理を、そうで無い場合にはステップST0506の処理を実行する。
ステップST0504において、CAN監視部1422は、受信完了フラグが立っていると判断した場合には、カウンタ記憶部1430が記憶する受信完了後経過カウンタの値を「0」として初期化する(ステップST0505)。その後、CAN監視部1422は、ステップST0502に戻り、上記処理を繰り返す。
ステップST0504において、CAN監視部1422は、いずれの受信完了フラグも立っていないと判断した場合には、カウンタ記憶部1430が記憶する受信完了後経過カウンタの値を「1」だけインクリメントする(ステップST0506)。その後、CAN監視部1422は、ステップST0502に戻り、上記処理を繰り返す。
ここで図15に戻り、引き続き監視部1420の構成について説明を行う。
パリティエラー監視部1423は、ハードウェア中継部1300及びカウンタ記憶部1430に接続している。パリティエラー監視部1423は、後述するパリティエラー監視処理を実行することで、ハードウェア中継部1300が検出するパリティエラーの発生を監視する。
ここで図17を参照して、パリティエラー監視部1423が実行するパリティエラー監視処理について説明する。図17は、パリティエラー監視部1423が実行するパリティエラー監視処理の一例を表すフローチャートである。
先ず、パリティエラー監視部1423は、カウンタ記憶部1430が記憶するパリティ・エラーフラグを立ち下げる(ステップST0601)。
その後、パリティエラー監視部1423は、終了信号を取得したか否かを判断する(ステップST0602)。パリティエラー監視部1423は、終了信号を取得したと判断する場合にはパリティエラー監視処理の実行を終了し、そうで無い場合にはステップST0603の処理を実行する。
ステップST0602において、パリティエラー監視部1423は、終了信号を取得していないと判断する場合には、ハードウェア中継部1300からパリティエラー検出信号を取得したか否かを判断する(ステップST0603)。パリティエラー監視部1423は、パリティエラー検出信号を取得したと判断する場合にはステップST0604の処理を、そうで無い場合にはステップST0602に戻り上記処理を繰り返す。
ステップST0603において、パリティエラー監視部1423は、パリティエラー検出信号を取得したと判断した場合には、パリティ・エラー・フラグを立ち上げる(ステップST0604)。その後、パリティエラー監視部1423は、ステップST0602に戻り上記処理を繰り返す。
ここで図15に戻り、引き続き監視部1420の構成について説明を行う。
受信ロック監視部1424は、CANインタフェース部1200及びカウンタ記憶部1430に接続している。受信ロック監視部1424は、後述する受信ロック監視処理を実行することで、CANコントローラ1110から1130における受信ロック状態の発生を監視する。
ここで図18を参照して、受信ロック監視部1424が実行する受信ロック監視処理について説明する。図18は、受信ロック監視部1424が実行する受信ロック監視処理の一例を表すフローチャートである。
先ず、受信ロック監視部1424は、カウンタ記憶部1430が記憶する受信ロックフラグを立ち下げて初期化する(ステップST0701)。
次に、受信ロック監視部1424は、割込後経過カウンタを値「0」とすることで初期化する(ステップST0702)。尚、割込後経過カウンタとは、CANコントローラ1110ないし1130から送信される受信割込信号を、CANインタフェース部1200を介して受信ロック監視部1424が受信した時点からの経過時間を表す。
その後、受信ロック監視部1424は、終了信号を取得したか否かを判断する(ステップST0703)。受信ロック監視部1424は、終了信号を取得したと判断した場合には受信ロック監視処理の実行を終了し、そうで無い場合にはステップST0704の処理を実行する。
ステップST0703において、受信ロック監視部1424は、終了信号を取得しなかったと判断した場合には、CANインタフェース部1200から受信割込信号を取得したか否かを判断する(ステップST0704)。受信ロック監視部1424は、受信割込信号を取得したと判断する場合には、ステップST0705の処理を、そうで無い場合にはステップST0708の処理を実行する。
ステップST0704において、受信ロック監視部1424は、受信割込信号を取得しなかったと判断した場合には、割込後経過カウンタをインクリメントする(ステップST0705)。次に、受信ロック監視部1424は、割込後経過カウンタが所定の閾値を超えたか否かを判断する(ステップST0706)。受信ロック監視部1424は、割込後経過カウンタが所定の閾値を超えたと判断する場合にはステップST0707の処理を実行し、そうで無い場合にはステップST703に戻り上記処理を繰り返す。
尚、ステップST0706において用いる閾値、及び以下に説明する閾値の全ては、当業者に期待し得る簡単な実験等によって適切な値に定めることができる。
ステップST0706において、受信ロック監視部1424は、割込後経過カウンタが所定の閾値を超えたと判断した場合には、カウンタ記憶部1430が記憶する受信ロックフラグを立ち上げる(ステップST0707)。その後、受信ロック監視部1424は、ステップST0703に戻り上記処理を繰り返す。
ステップST0704において、受信ロック監視部1424は、受信割込信号を取得したと判断した場合には、割込後経過カウンタの値を「0」とすることで初期化する(ステップST0708)。その後、受信ロック監視部1424は、ステップST0703に戻り上記処理を繰り返す。
ここで図8に戻り、引き続きソフトウェア処理部1400の構成について説明する。
カウンタ記憶部1430は、例えば、RAMで構成される記憶部1402で構成され、ソフトウェア中継部1410、監視部1420、及び特定部1440に接続している。カウンタ記憶部1430は、ソフトウェア中継部1410及び監視部1420によって更新される上記カウンタ及びフラグを記憶し、記憶するカウンタ及びフラグは、主に、特定部1440によって参照される。
特定部1440は、カウンタ記憶部1430に接続している。特定部1440は、後述する特定処理を実行することで、ハードウェア中継部1300が中継するデータ数と、ソフトウェア中継部1300が送信又は受信するデータ数とに基づいて、ハードウェア中継部1300及びソフトウェア中継部1410のいずれに異常が発生したかを特定する。
よって図19を参照して、特定部1440が実行する特定処理について説明する。図19は、特定部1440が実行する特定処理の一例を表すフローチャートである。
先ず、特定部1440は、終了信号を取得したか否かを判断する(ステップST0801)。特定部1440は、終了信号を取得したと判断する場合には特定処理の実行を終了し、そうで無い場合にはステップST0802の処理を実行する。
ステップST0803において、特定部1440は、終了信号を取得しないと判断した場合には、カウンタ記憶部1430からデータ消失カウンタを取得する(ステップST0802)。次に、特定部1440は、データ消失カウンタが所定値の閾値1を超えたか否かを判断する(ステップST0803)。つまり、特定部1440は、ハードウェア中継部1300によるデータ中継が所定時間(閾値1)以上行われていないかを判断する。特定部1440は、データ消失カウンタが所定値の閾値1を超えたと判断する場合にはステップST0804の処理を実行し、そうで無い場合には上記ステップST0801に戻り上記処理を繰り返す。
ステップST0803において、特定部1440は、データ消失カウンタが所定値の閾値1を超えたと判断した場合には、カウンタ記憶部1430からNMフレーム受信カウンタを取得する(ステップST0804)。
尚、特定部1440は、データ消失カウンタが所定値の閾値1を超えたと判断した場合には、中継するデータの消失をもたらす異常が発生したと判断する。
次に、特定部1440は、NMフレーム受信カウンタが所定値の閾値2よりも少ないか否かを判断する(ステップST0805)。つまり、特定部1440は、ソフトウェア中継部1410によるデータ中継が所定時間(閾値2)より短い時間に行われたか否かを判断する。特定部1440は、NMフレーム受信カウンタが所定値の閾値2よりも少ないと判断する場合にはステップST0806の処理を、そうで無い場合には上記ステップST0801に戻り上記処理を繰り返す。尚、閾値2は閾値1よりも小さい値である。
言い換えると、特定部1440は、NMフレーム受信カウンタが所定値の閾値2よりも少ないと判断する場合には、ソフトウェア中継部1410が中継するデータ数に基づいてソフトウェア中継部1410に異常が発生していないと判断する。
ステップST0805において、特定部1440は、NMフレーム受信カウンタが所定値の閾値2よりも少ないと判断した場合、つまり、ステップST0803において、ハードウェア中継部1300によるデータ中継が所定時間(閾値1)以上行われておらず、かつステップST0805において、ソフトウェア中継部1410によるデータ中継が所定時間(閾値1)よりも短い時間(閾値2)内に行われたと判断した場合には、カウンタ記憶部1430から受信完了後カウンタを取得する(ステップST0806)。
次に、特定部1440は、受信完了後カウンタが所定値の閾値3よりも小さいか否かを判断する(ステップST0807)。つまり、特定部1440は、CAN通信部1114によるCAN受信処理が所定時間(閾値3)より短い時間に行われたか否かを判断する。特定部1440は、受信完了後カウンタが所定値の閾値3よりも小さいと判断する場合にはステップST0808の処理を、そうで無い場合にはステップST0809の処理を実行する。尚、閾値3は閾値1よりも小さい値である。
尚、ステップST0805及びステップST0807の判断によって、特定部1440は、CANコントローラ1110から1130が何らかのフレーム・データを受信しているか否かを判断できる。
ステップST0807において、特定部1440は、受信完了後カウンタが所定値の閾値3よりも小さいと判断した場合、つまり、ステップST0803において、ハードウェア中継部1300によるデータ中継が所定時間(閾値1)以上行われておらず、ステップST0805において、ソフトウェア中継部1410によるデータ中継が所定時間(閾値1)よりも短い時間(閾値2)内に行われ、かつCANコントローラ1110による受信処理が所定時間(閾値1)よりも短い時間(閾値3)内に行われたと判断した場合には、ハードウェア中継部1300に異常が発生したと特定する(ステップST0808)。その後、特定部1440は、ステップST0801に戻り上記処理を繰り返す。
この構成によれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
またこの構成によれば、受信処理におけるデータの中継時間間隔に基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
ステップST0807において、特定部1440は、受信完了後カウンタが所定値の閾値3以上であると判断した場合、つまり、ステップST0803において、ハードウェア中継部1300によるデータ中継が所定時間(閾値1)以上行われておらず、ステップST0805において、ソフトウェア中継部1410によるデータ中継が所定時間(閾値1)よりも短い時間(閾値2)内に行われ、かつCANコントローラ1110による受信処理が所定時間(閾値1)よりも短い時間(閾値3)を超えて行われなかったと判断した場合には、CANコントローラ1110から1130に異常が発生したと特定する(ステップST0809)。その後、特定部1440は、ステップST0801に戻り上記処理を繰り返す。
この構成によれば、受信処理におけるデータの中継時間間隔に基づいて、データの中継により生じる異常の発生箇所をCANコントローラ1110から1130であると精度良く特定できる。
尚、本実施例において、特定部1440が、ハードウェア中継部1300に異常が発生したと特定した場合に、ハードウェア中継部1300を構成するメッセージカウンタを表すレジスタを初期化する構成を採用できる。
この構成によれば、レジスタを初期化することで、レジスタの固着を解消できると共に、ハードウェア中継部1300に発生した異常を解消することができる。
また本実施例において、特定部1440が、ハードウェア中継部1300に異常が発生したと特定した場合に、ハードウェア中継部1300に代わってソフトウェア中継部1410がフレーム・データを中継する構成を採用できる。
更に本実施例では、特定部1440は、NMフレーム受信カウンタが所定値の閾値2以上であると判断する場合には、異常個所の特定をしないとして説明したが、これに限定される訳ではなく、NMフレーム受信カウンタが所定値の閾値2以上であると判断する場合、つまり、ステップST0803において、ハードウェア中継部1300によるデータ中継が所定時間(閾値1)以上行われておらず、かつステップST0805において、ソフトウェア中継部1410によるデータ中継が所定時間(閾値1)よりも短い時間(閾値2)を超えて行われないと判断した場合にソフトウェア中継部1410に異常が発生したと特定する構成を採用できる。
この構成によれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、データの中継により生じる異常の発生箇所をソフトウェア中継手段であると精度良く特定できる。
本実施例においては、CANコントローラ1110から1130が受信手段に相当し、ハードウェア中継部1300がハードウェア中継手段に相当し、ソフトウェア中継部1410がソフトウェア中継手段に相当し、特定部1440が故障箇所特定手段に相当し、ハードウェア中継部1300が実行するハードウェア中継処理がハードウェア中継ステップに相当し、ソフトウェア中継部1410が実行するソフトウェア中継処理がソフトウェア中継ステップに相当し、特定部1440が実行する特定処理が故障箇所特定ステップに相当する。
ゲートウェイ装置1000は、演算部がROM及びRAMの少なくともひとつに格納されたプログラムを実行することによって実現される。また、このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。
本発明のゲートウェイ方法は、ゲートウェイ装置1000を用いて実施することができる。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
本発明のゲートウェイ装置の一実施形態を示す構成図である。 ゲートウェイ装置のハードウェア構成の一例を表す図である。 CANコントローラのハードウェア構成の一例を表す図である。 ハードウェア中継部のハードウェア構成の一例を表す図である。 検索エンジン部が実行する経路検索処理の一例を表すフローチャートである。 ルーティング・マップが保存するテーブルの一例を表す図である。 検索エンジン部が実行するパリティ検査処理の一例を表すフローチャートである。 ソフトウェア処理部の一構成例を説明する機能ブロック図である。 ソフトウェア中継部の一構成例を表す機能ブロック図である。 NMフレーム送受信部が実行するNMフレーム受信処理の一例を表すフローチャートである。 中継フレーム中継部が実行する中継フレーム中継処理の一例を表すフローチャートである。 異常が発生していないハードウェア中継部が有するハードウェアカウンタの時間変化の一例を表す図である。 中継フレーム中継部が実行するデータ消失検出処理の一例について概説するための図である。 中継フレーム中継部が実行するデータ消失検出処理の一例を表すフローチャートである。 監視部の一構成例を表す機能ブロック図である。 CAN監視部1424が実行するCAN監視処理の一例を表すフローチャートである。 パリティエラー監視部1423が実行するパリティエラー監視処理の一例を表すフローチャートである。 受信ロック監視部が実行する受信ロック監視処理の一例を表すフローチャートである。 特定部が実行する特定処理の一例を表すフローチャートである。
符号の説明
100…車両 1000…ゲートウェイ装置
1110,1120,1130…CANコントローラ(受信手段)
1111…バッファ
1112A,1122A…受信メッセージボックス
1112B,1122B…送信メッセージボックス
1200…CANインタフェース部
1300…ハードウェア中継部/ハードマクロ(ハードウェア中継手段)
1310…検索エンジン部 1320…ルーティング・マップ
1330…送信バッファ
1331,1333,1335,1337…送信FIFO
1332,1334,1336,1338…ハードウェアカウンタ(メッセージカウンタ)
1401…演算部 1402…記憶部
1403…割り込み制御部
1410…ソフトウェア中継部(ソフトウェア中継手段)
1411…NMフレーム送受信部 1412…中継フレーム中継部
1420…監視部 1421…IG監視部
1422…CAN監視部 1423…パリティエラー監視部
1424…受信ロック監視部
1430…カウンタ記憶部 1440…特定部(異常個所特定手段)
2011〜2033…ECU(制御装置)
CB10,10,30…CANバス
B10,11,12…バス1 B2…バス2
CH0…チャンネル0 CH1…チャンネル1
CH2…チャンネル2
Par1…IDE,RTR,及びIDに対するパリティ
Par2…FIFOからMaskInfoに対するパリティ
RxCh…1〜6CHが受信元チャネルであるかをbit毎に表すデータ
T1〜4…ソフトウェア処理(中継フレーム中継処理)タイミング
TxCH…1〜6CHが中継先チャネルであるかをbit毎に表すデータ

Claims (4)

  1. 所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理を、ハードウェア処理によって行うハードウェア中継手段と、
    ネットワーク間のデータの中継処理における前記所定処理を、ソフトウェア処理によって行うソフトウェア中継手段と、
    前記ハードウェアによるデータの中継が所定時間以上行われておらず、前記ソフトウェア中継手段によるデータの中継が前記所定時間よりも短い時間内に行われている場合に、前記ハードウェア中継手段が異常であると判断する異常個所特定手段と、を備えることを特徴とするゲートウェイ装置。
  2. 前記所定処理は、ネットワークからデータを受信する受信処理が行われた後に行われる処理であり、
    前記異常個所特定手段は、前記ハードウェア中継手段によるデータの中継が所定時間以上行われておらず、前記ソフトウェア中継手段によるデータ中継が前記所定時間よりも短い時間内に行われており、かつ、前記受信処理が前記所定時間よりも短い時間内に行われている場合に、前記ハードウェア中継手段が異常であると判断することを特徴とする請求項1に記載のゲートウェイ装置。
  3. 前記受信処理を実行する受信手段を更に備え、
    前記異常個所特定手段は、前記ハードウェア中継手段によるデータの中継が所定時間以上行われておらず、前記ソフトウェア中継手段によるデータ中継が前記所定時間よりも短い時間内に行われており、かつ、前記受信処理が前記所定時間よりも短い時間を超えて実行されていない場合に、前記受信手段が異常であると判断することを特徴とする請求項2に記載のゲートウェイ装置。
  4. 所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理を、ハードウェア処理によって行うハードウェア中継ステップと、
    ネットワーク間のデータの中継処理における前記所定処理を、ソフトウェア処理によって行うソフトウェア中継ステップと、
    前記ハードウェアによるデータの中継が所定時間以上行われておらず、前記ソフトウェア中継手段によるデータの中継が所定時間よりも短い時間内に行われている場合に、前記ハードウェア中継手段が異常であると判断する異常個所特定ステップと、を備えることを特徴とするゲートウェイ方法。
JP2008096526A 2008-04-02 2008-04-02 ゲートウェイ装置及びゲートウェイ方法 Withdrawn JP2009253464A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008096526A JP2009253464A (ja) 2008-04-02 2008-04-02 ゲートウェイ装置及びゲートウェイ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008096526A JP2009253464A (ja) 2008-04-02 2008-04-02 ゲートウェイ装置及びゲートウェイ方法

Publications (1)

Publication Number Publication Date
JP2009253464A true JP2009253464A (ja) 2009-10-29

Family

ID=41313752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008096526A Withdrawn JP2009253464A (ja) 2008-04-02 2008-04-02 ゲートウェイ装置及びゲートウェイ方法

Country Status (1)

Country Link
JP (1) JP2009253464A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012144537A1 (ja) * 2011-04-19 2012-10-26 三菱電機株式会社 ネットワーク解析支援装置、ネットワーク試験装置、ネットワーク解析支援方法、ネットワーク試験方法、ネットワーク解析支援プログラム及びネットワーク試験プログラム
JP2013055593A (ja) * 2011-09-06 2013-03-21 Denso Corp 通信装置
JP2017069966A (ja) * 2014-12-01 2017-04-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
CN110962778A (zh) * 2019-11-28 2020-04-07 安徽江淮汽车集团股份有限公司 汽车的网关设备及汽车
WO2022163386A1 (ja) * 2021-01-27 2022-08-04 株式会社オートネットワーク技術研究所 車載装置、及び中継方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012144537A1 (ja) * 2011-04-19 2012-10-26 三菱電機株式会社 ネットワーク解析支援装置、ネットワーク試験装置、ネットワーク解析支援方法、ネットワーク試験方法、ネットワーク解析支援プログラム及びネットワーク試験プログラム
JP5420112B2 (ja) * 2011-04-19 2014-02-19 三菱電機株式会社 ネットワーク解析支援装置、ネットワーク試験装置、ネットワーク解析支援方法、ネットワーク試験方法、ネットワーク解析支援プログラム及びネットワーク試験プログラム
US9660894B2 (en) 2011-04-19 2017-05-23 Mitsubishi Electric Corporation Network analysis assistance device, network assessment device, network analysis assistance method, network assessment method, network analysis assistance program and network assessment program
JP2013055593A (ja) * 2011-09-06 2013-03-21 Denso Corp 通信装置
JP2017069966A (ja) * 2014-12-01 2017-04-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
CN110962778A (zh) * 2019-11-28 2020-04-07 安徽江淮汽车集团股份有限公司 汽车的网关设备及汽车
WO2022163386A1 (ja) * 2021-01-27 2022-08-04 株式会社オートネットワーク技術研究所 車載装置、及び中継方法

Similar Documents

Publication Publication Date Title
EP3358788B1 (en) Illegality detection electronic control unit, vehicle onboard network system, and communication method
US10623291B2 (en) Operation method of communication node for detecting link errors in network
JP5637190B2 (ja) 通信システム及び通信方法
US11838303B2 (en) Log generation method, log generation device, and recording medium
CN111343085B (zh) 车载can总线网关的路由系统及方法
US10861258B2 (en) Method for preventing diagnostic errors in vehicle network and apparatus therefor
EP2584741A1 (en) Central Bus Guardian (CBG) and method for operating CBG
US8861370B2 (en) System and method for testing a communications network having a central bus guardian (CBG) to detect a faulty condition associated with the CBG
CN110546921B (zh) 不正当检测方法、不正当检测装置以及程序
CN109005678B (zh) 非法通信检测方法、非法通信检测系统以及记录介质
US20230048058A1 (en) Anomaly determination method, anomaly determination device, and recording medium
US20150312123A1 (en) Method and apparatus for isolating a fault in a controller area network
US11119969B2 (en) Communication system and communication control method
US20090210397A1 (en) Data search device and gateway device in communication apparatus
JP2009253464A (ja) ゲートウェイ装置及びゲートウェイ方法
JP2010251837A (ja) ゲートウェイ装置及びゲートウェイ方法
JP2008112224A (ja) エラー検出装置及びエラー検出方法
US10484280B2 (en) Operation method of a communication node in network
JP2007081484A (ja) ゲートウェイ、通信制御ユニットおよび周期データの代理送信方法
CN105637811A (zh) 语义消重
JP2019146145A (ja) 通信装置、通信方法及びプログラム
JP2010103648A (ja) ゲートウェイ装置及びゲートウェイ方法
US11451411B2 (en) First relay device, second relay device, and relay system
JP4886420B2 (ja) 中継接続ユニット
JP2009017154A (ja) 車載ゲートウェイ装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110607