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

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

Info

Publication number
JP2010103648A
JP2010103648A JP2008271352A JP2008271352A JP2010103648A JP 2010103648 A JP2010103648 A JP 2010103648A JP 2008271352 A JP2008271352 A JP 2008271352A JP 2008271352 A JP2008271352 A JP 2008271352A JP 2010103648 A JP2010103648 A JP 2010103648A
Authority
JP
Japan
Prior art keywords
communication data
transmission
storage unit
transmission processing
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
JP2008271352A
Other languages
English (en)
Inventor
Susumu Nishibashi
奨 西橋
Masashi Yamashita
真史 山下
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 JP2008271352A priority Critical patent/JP2010103648A/ja
Publication of JP2010103648A publication Critical patent/JP2010103648A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】効率良く通信データを中継できるゲートウェイ装置及びゲートウェイ方法を提供する。
【解決手段】
第1の通信網から受信した通信データを記憶する第1の記憶部から、第2の通信網に送信処理を行う通信データを記憶する第2の記憶部へ、通信データを優先度に基づいて移す第1の送信処理手段と、第2の記憶部に記憶された通信データを第2の網に送信する第2の送信処理手段とを備え、第2の記憶部は、複数の通信データを記憶可能であり、第2の送信処理手段は、第2の記憶部に記憶された全ての通信データの送信が完了した場合に、第1の通信処理手段に対して送信が完了した旨の送信完了通知を行い、第1の送信処理手段は、第2の送信処理手段から送信完了通知を受けると、第1の記憶部に記憶された通信データの優先度に基づいて、第1の記憶部に記憶された通信データを第2の記憶部に移す処理を行う。
【選択図】図2

Description

本発明は、制御装置間で送受信されるデータの中継を行うゲートウェイ装置及びゲートウェイ方法に関する。
従来より、例えば、ECU(Electronic Control Unit)等の車両を制御するために車両に搭載される車載装置間で送受信されるデータを、データの送信先を表すIDコードによって定まる順位が高い順に中継するゲートウェイ装置が知られている(例えば、特許文献1)。
この装置は、送信して中継するデータに含まれる送信先を示すIDコードとIDコードにより定まる順位とを関連付けて記憶する記憶手段と、送信するデータが二以上存在する場合に、送信するデータを一時的に保存するメッセージボックスへ転送するデータであって、記憶手段が記憶する順位が最も高いデータを判断する判断手段とを設けたことを特徴とする。
特開2005−159568号公報
ところで上記のようなゲートウェイ装置においては、順位が最も高いデータのみを転送するために、データの中継効率が向上しないという問題があった。
つまり、このゲートウェイ装置は、二以上のデータを転送するために、個々のデータに対して個々の転送処理を実行する必要がある。よって、このゲートウェイ装置が二以上のデータを転送する場合、転送を完了する前に他の車載装置がデータの送信を開始すると、データを転送する機会を逸してしまうという問題があった。
また、このゲートウェイ装置においては、一度の処理により二以上のデータを転送する場合に比べて、転送のために直接的に必要とされない処理を実行するための時間であるオーバヘッドが多く生じるという問題があった。
特に、例えば、このゲートウェイ装置が三以上のバス間において送受信されるデータを中継する場合には、中継するデータが飛躍的に増大すると共に、データ中継の遅延が増大することで、車載装置が行う車両の制御に悪影響を与えるという問題があった。
本発明は、上記問題に鑑みて成されたものであり、その目的とするところは、効率良く通信データを中継できるゲートウェイ装置及びゲートウェイ方法を提供することにある。
本発明に係るゲートウェイ装置は、第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ装置であって、第1の通信網から受信した通信データを記憶する第1の記憶部と、第2の通信網に送信処理を行う通信データを記憶する第2の記憶部と、第1の記憶部に記憶された通信データを優先度に基づいて第2の記憶部に移す第1の送信処理手段と、第2の記憶部に記憶された通信データを第2の網に送信する第2の送信処理手段と、を備え、第2の記憶部は、複数の通信データを記憶可能であり、第2の送信処理手段は、ハードウェアで構成され、第2の記憶部に記憶された全ての通信データの送信が完了した場合に、第1の通信処理手段に対して送信が完了した旨の送信完了通知を行い、第1の送信処理手段は、第2の送信処理手段から送信完了通知を受けると、第1の記憶部に記憶された通信データの優先度に基づいて、第1の記憶部に記憶された通信データを第2の記憶部に移す処理を行う、ことを特徴としている。
本発明に係るゲートウェイ装置は、第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ装置であって、第1の通信網から受信した通信データを記憶する第1の記憶部と、第2の通信網に送信処理を行う通信データを記憶する第2の記憶部と、第1の記憶部に記憶された通信データを優先度に基づいて第2の記憶部に移す第1の送信処理手段と、第2の記憶部に記憶された通信データを第2の網に送信する第2の送信処理手段と、を備え、第2の記憶部は、複数の通信データを記憶可能であり、第2の送信処理手段は、第2の記憶部に記憶された全ての通信データの送信が完了した場合に、第1の通信処理手段に対して送信が完了した旨の送信完了通知を行い、第1の送信処理手段は、第2の送信処理手段から送信完了通知を受けると、第1の記憶部に記憶された通信データの優先度に基づいて、第1の記憶部に記憶された通信データを第2の記憶部に移す処理を行う、ことを特徴としている。
本発明に係るゲートウェイ装置は、第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ装置であって、第1の通信網から受信した通信データを記憶する第1の記憶部と、第2の通信網に送信処理を行う通信データを記憶する第2の記憶部と、第1の記憶部に記憶された通信データを優先度に基づいて第2の記憶部に移す第1の送信処理手段と、第2の記憶部に記憶された通信データを第2の網に送信する第2の送信処理手段と、を備え、第2の記憶部は、複数の通信データを記憶可能であり、第2の送信処理手段は、第2の記憶部に記憶された通信データを1つずつ送信し、送信が完了した場合に、第1の通信処理手段に対して送信が完了した旨の送信完了通知を行い、第1の送信処理手段は、第2の送信処理手段から送信完了通知を受けると、第1の記憶部に記憶された通信データの優先度に基づいて、第1の記憶部に記憶された通信データを第2の記憶部に移す処理を行う、ことを特徴としている。
上記構成において、第1の送信処理手段は、所定の周期で2以上の通信データを移す処理を行う構成を採用できる。
上記構成において、所定の周期は、第2の送信処理手段が2以上の通信データを送信する処理を行うために要する時間よりも長い構成を採用できる。
上記構成において、第2の記憶部は、記憶する通信データを第2の送信処理手段が他の通信データに優先して送信する程度を表す優先度に基づいて割り当てた2以上の領域で構成され、第2の送信処理手段は、一の優先度に基づいて割り当てた領域が記憶する通信データを、他の領域が記憶する通信データに優先して送信する処理を行う構成を採用できる。
上記構成において、第2の送信処理手段は、第2の記憶部が記憶する位置で定まる順位に基づいて通信データを第2の網へ送信する処理を行い、第1の送信処理手段は、第2の記憶部が記憶している通信データの順位よりも遅い順位を定める位置へ、通信データを転送する処理を行う構成を採用できる。
上記構成において、通信データの種類を識別する識別情報に基づいて検索した第1の記憶部へ通信データを送信すると共に、識別情報に基づいて他の通信データに優先して送信する程度を表す優先データを通信データに付加する処理を行う第3の送信処理手段を更に備え、第1の送信処理手段は、第3の送信処理手段が付加した優先データに基づいて、第2の記憶部が有する領域へ優先して通信データを転送する処理を行う構成を採用できる。
上記構成において、第1の送信処理手段は、通信データを転送する処理を行うと共に、第3の送信処理手段が通信データに付加した優先データを通信データから削除する構成を採用できる。
上記構成において、第3の送信処理手段が行う処理は、ハードウェア処理であり、第1の送信処理手段が行う処理は、ソフトウェア処理である構成を採用できる。
本発明に係るゲートウェイ方法は、第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ方法であって、第1の通信網から受信した通信データを記憶する第1の記憶部から、第2の通信網に送信処理を行う通信データを記憶する第2の記憶部へ、通信データを優先度に基づいて移す第1の送信処理ステップと、第2の記憶部に記憶された通信データを第2の網に送信する第2の送信ステップと、を備え、第2の記憶部は、複数の通信データを記憶可能であり、第2の送信処理ステップは、ハードウェアを用いて実行され、第2の記憶部に記憶された全ての通信データの送信が完了した場合に、第1の通信処理ステップに対して送信が完了した旨の送信完了通知を行い、第1の送信処理ステップでは、第2の送信処理ステップから送信完了通知を受けると、第1の記憶部に記憶された通信データの優先度に基づいて、第1の記憶部に記憶された通信データを第2の記憶部に移す処理を行う、ことを特徴としている。
本発明に係るゲートウェイ方法は、第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ方法であって、第1の通信網から受信した通信データを記憶する第1の記憶部から、第2の通信網に送信処理を行う通信データを記憶する第2の記憶部へ、通信データを優先度に基づいて移す第1の送信処理ステップと、第2の記憶部に記憶された通信データを第2の網に送信する第2の送信ステップと、を備え、第2の記憶部は、複数の通信データを記憶可能であり、第2の送信処理ステップは、第2の記憶部に記憶された全ての通信データの送信が完了した場合に、第1の通信処理ステップに対して送信が完了した旨の送信完了通知を行い、第1の送信処理ステップでは、第2の送信処理ステップから送信完了通知を受けると、第1の記憶部に記憶された通信データの優先度に基づいて、第1の記憶部に記憶された通信データを第2の記憶部に移す処理を行う、ことを特徴としている。
本発明に係るゲートウェイ方法は、第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ方法であって、第1の通信網から受信した通信データを記憶する第1の記憶部から、第2の通信網に送信処理を行う通信データを記憶する第2の記憶部へ、通信データを優先度に基づいて移す第1の送信処理ステップと、第2の記憶部に記憶された通信データを第2の網に送信する第2の送信ステップと、を備え、第2の記憶部は、複数の通信データを記憶可能であり、第2の送信処理ステップは、第2の記憶部に記憶された通信データを1つずつ送信し、送信が完了した場合に、第1の通信処理ステップに対して送信が完了した旨の送信完了通知を行い、第1の送信処理ステップでは、第2の送信処理ステップから送信完了通知を受けると、第1の記憶部に記憶された通信データの優先度に基づいて、第1の記憶部に記憶された通信データを第2の記憶部に移す処理を行う、ことを特徴としている。
請求項1から3の構成によれば、通信データの送信が完了した旨の通知を受けて2以上の通信データを転送するため、効率良く通信データを送信して中継できる。
請求項4の構成によれば、通信データの送信を行わない期間であっても、所定の周期で2以上の通信データを転送するため、効率良く通信データを送信して中継できる。
請求項5の構成によれば、所定の周期に基づいて前回に転送した2以上の通信データを送信した後に、所定の周期に基づいた今回の転送を行うため、効率良く通信データを転送できる。
請求項6の構成によれば、優先度に基づいて割り当てた領域が記憶する通信データを他の領域が記憶する通信データに優先して送信するため、優先度に基づいて効率良く通信データを送信できる。
請求項7の構成によれば、第2の記憶部が記憶した順序に従って効率良く通信データを送信できる。
請求項8の構成によれば、通信データに優先して中継する程度に基づいて通信データを他の通信データに優先して転送するため、効率良く通信データを転送できる。
請求項9の構成によれば、優先データを通信データから削除して転送するため、通信データの内容に影響を与えずに、効率良く通信データを転送できる。
請求項10の構成によれば、ハードウェア処理により中継先を検索した通信データを、ソフトウェア処理によって効率良く転送できる。
請求項11から13の構成によれば、通信データの送信が完了した旨の通知を受けて2以上の通信データを転送するため、効率良く通信データを送信して中継できる。
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
図1は、本発明のゲートウェイ装置の一実施形態を示す構成図である。
図1に示すゲートウェイ装置1000を備える車両100は、例えば、乗用車、バス、及びトラック等の自動車で構成される。尚、本実施例では、車両100が自動車で構成されるとして説明を行うが、これに限定される訳ではなく、原動機付自転車、軽車両、及びトロリーバス、並びに戦車及び装甲車等の軍用車両で構成される実施例を採用できる。車両100は、図1に示すゲートウェイ装置1000及びECU(Engine Control Unit)2011、2021、及び2031、並びに図示を省略するが、ECU2012、2013、2022、2023、2032、及び3033を備える。
ゲートウェイ装置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)プロトコルに従った枠となる所定のデータから開始する所定の長さを有するデータであるとして説明するが、これに限定される訳ではない。
尚、車両の挙動を制御する制御装置であるECU2011から2033のいずれかが送信するデータを、以下単に、通信データという。また、本実施例において、通信データは、フレームデータであるとして説明を行う。
ここで図2を参照して、ゲートウェイ装置1000のハードウェア構成の一例について説明する。図2は、ゲートウェイ装置1000のハードウェア構成の一例を表す図である。
ゲートウェイ装置1000は、第2送信処理部(以下、CANコントローラともいう)1110から1130、CANインタフェース部1200、第3送信処理部1300(以下、ハードウェア処理部又はハードマクロともいう)、及び第1送信処理部1400(以下、ソフトウェア処理部ともいう)で構成される。尚、本実施例において、ゲートウェイ装置1000は、3つの第2送信処理部1110から1130で構成されるとして説明するが、この数に限定される訳ではなく、第2送信処理部の数が複数であればよい。また、第2送信処理部1110から1130は、それぞれ同様の接続、構成、及び機能を有するため、以下単に、第2送信処理部1110について説明を行う。
第2送信処理部1110は、CANバスBC10を介してECU2011から2013に接続し、かつCANインタフェース部1200に接続している。第2送信処理部1110は、後述するように、例えば、RAM(Random Access Memory)で構成される第2記憶部1111を有する。
第2送信処理部1110は、ハードウェア処理である第2通信処理を実行することで、他の通信データに優先して送信する程度を表す優先度に基づいて割り当てた第2記憶部1111における一の領域が記憶する通信データを、他の領域が記憶する通信データに優先して送信する処理を行う。また、第2送信処理部1110は、第2記憶部1111が記憶する位置で定まる順位に基づいて通信データを中継する経路へ送信する。尚、通信データを中継する経路をチャネルという。チャネルは、第2送信処理部1110ないし1130とCANバスBC10ないし30と結ぶ伝送路をいう。本実施例では、第2送信処理部1110とCANバスBC10とを結ぶ伝送路をチャネルCH0とし、第2送信処理部1120とCANバスBC20とを結ぶ伝送路をチャネルCH1とし、第2送信処理部1130とCANバスBC30とを結ぶ伝送路をチャネルCH2とする。
尚、CANバスBC10には、ECU2011から2013が接続し、CANバスBC20には、ECU2021から2023が接続し、CANバスBC30には、ECU2031から2033が接続する。本実施例において、CANバスBC10で構成される通信網を第1通信網、CANバスBC20で構成される通信網を第2通信網、CANバスBC30で構成される通信網を第3通信網という。ゲートウェイ装置1000は、第1の通信網から受信した通信データを、第2通信網又は第3通信網へ中継する。また、ゲートウェイ装置1000は、第1の通信網に接続するある制御装置から受信した通信データを、第1の通信網に接続する他の制御装置へ中継しても良い。
ここで図3を参照して、第2送信処理部1110のハードウェア構成の一例について説明を行う。図3は、第2送信処理部1110のハードウェア構成の一例を表す図である。
第2送信処理部1110は、第2記憶部1111、シーケンサ1112、及びプロトコルエンジン1113を備える。
第2記憶部1111は、例えば、RAM(Random Access Memory)で構成され、図示を省略するが、シーケンサ1112及びCANインタフェース部1200に接続している。第2記憶部1111は、ECU2011から2033から受信したデータであって、かつシーケンサ1112によって転送されたフレームデータ、及び第1送信処理部1400によって転送された2以上のフレームデータを記憶する。第2記憶部1111は、例えば、配列又はリストで構成されるメッセージボックス1111ABCを有する。尚、メッセージボックスは、例えば、RAMの一領域で構成され、第2送信処理部1110が受信したフレームデータ、又は第2送信処理部1110が送信するフレームデータを記憶する記憶領域である。
ここで図4を参照して、メッセージボックス1111ABCの構成について説明する。図4は、メッセージボックス1111ABCの一構成例を表す図である。
図4に示すメッセージボックス1111ABCは、受信用メッセージボックス1111A、送信用メッセージボックス1111B、及びその他のメッセージボックス1111Cで構成される。
受信用メッセージボックス1111Aは、第2送信処理部1110が受信したフレームデータを記憶する一領域である。また、送信用メッセージボックス1111Bは、第2送信処理部1110が送信するフレームデータを記憶する領域である。更に、その他のメッセージボックス1111Cは、ゲートウェイ装置1000以外の装置が使用するデータを記憶する領域である。
図4に示す送信用メッセージボックス1111Bは、記憶する通信データであるフレームデータを第2送信処理部1110が他の通信データに優先して送信する程度を表す優先度に基づいて割り当てた2以上の領域で構成される。ここで、本実施例において、優先度に基づいて割り当てた領域は、優先送信用メッセージボックス1111BPと一般送信用メッセージボックス1111BNとであるとして説明を行う。
優先送信用メッセージボックス1111BPは、一般送信用メッセージボックス1111BNが記憶するフレームデータに比べて優先的に送信するフレームデータを記憶する領域である。尚、本実施例において、図4に示す受信用メッセージボックス1111A、優先送信用メッセージボックス1111BP、及び一般送信用メッセージボックス1111BNは、それぞれ最大で4つのフレームデータを記憶できる静的な配列であるとして説明を行う。
ここで図3に戻り、第2送信処理部1110の構成について引き続き説明を行う。
シーケンサ1112は、受信転送回路1112A、送信転送回路1112B、及びテンポラリバッファ1112Cで構成され、メッセージボックス1111ABC、プロトコルエンジン1113、及び図示を省略するが、CANインタフェース部1200に接続する。
シーケンサ1112は、予め定められた処理に従って、メッセージボックス1111ABC及びプロトコルエンジン1113の間で、フレームデータを転送する。
受信転送回路1112Aは、第2記憶部1111、テンポラリバッファ1112C、及び図示を省略するが、CANインタフェース部1200に接続する。受信転送回路1112Aは、受信転送処理を実行することで、フレームデータをテンポラリバッファ1112Cから第2記憶部1111へ転送する。
ここで、受信転送回路1112Aが実行する受信転送処理の一例について説明する。
受信転送回路1112Aは、テンポラリバッファ1112Cから、プロトコルエンジン1113が受信したフレームデータを取得する。次に、受信転送回路1112Aは、第2記憶部1111が有する受信用メッセージボックスから、フレームデータを記憶していないボックスを検索する。その後、受信転送回路1112Aは、検索した受信用メッセージボックス1111Aへ、受信したフレームバッファを転送する。次に、受信転送回路1112Aは、フレームデータを受信したことを通知する受信割込信号を、CANインタフェース部1200を介して第3送信処理部1300へ出力する。その後、受信転送回路1112Aは、受信転送処理の実行を終了する。
送信転送回路1112Bは、テンポラリバッファ1112C及び第2記憶部1111に接続する。送信転送回路1112Bは、送信転送処理を実行することで、フレームデータを第2記憶部1111からテンポラリバッファ1112Cへ転送する。ここで、送信転送回路1112Bが実行する送信転送処理の一例について説明する。
送信転送回路1112Bは、第2記憶部1111が有する送信用メッセージボックス1111Bからフレームデータを取得する。尚、送信転送回路1112Bは、送信用メッセージボックス1111Bの内で、優先送信用メッセージボックス1111PBが記憶するフレームデータを、一般送信用メッセージボックス1111PNが記憶するフレームデータに優先して取得する。
この構成によれば、優先度に基づいて割り当てた領域が記憶する通信データを他の領域が記憶する通信データに優先して送信するため、優先度に基づいて効率良く通信データを送信できる。
また、送信転送回路1112Bは、優先送信用メッセージボックス1111PBの内で、配列の添え字が小さい配列の要素であるフレームデータを優先して取得する。尚、一般送信用メッセージボックス1111PNについても同様である。その後、送信転送回路1112Bは、取得したフレームデータをテンポラリバッファ1112Cへ転送する。次に、送信転送回路1112Bは、送信転送の実行を終了する。
つまり、配列の添え字は配列の先頭要素を格納した領域を示すアドレスからのシフト量を表すため、送信転送回路1112Bは、第2記憶部1111がフレームデータを記憶する位置で定まる順位に基づいて通信データであるフレームデータを転送する。
この構成によれば、第2の記憶部が記憶した順序に従って効率良く通信データを送信できる。
テンポラリバッファ1112Cは、例えば、RAM(Random Access Memory)で構成され、受信転送回路1112A、送信転送回路1112B、受信回路1113A、及び送信回路1113Bに接続する。テンポラリバッファ1112Cは、フレームデータを一時的に記憶する。
プロトコルエンジン1113は、受信回路1113Aと送信回路1113Bとで構成され、CANバス10、シーケンサ1112、及び図示を省略するが、CANインタフェース部1200に接続している。プロトコルエンジン1113は、CANプロトコルに従ってフレームデータを送受信する。
受信回路1113Aは、CANバスBC10及びシーケンサ1112が有するテンポラリバッファ1112Cに接続している。受信回路1113Aは、受信処理を実行することで、CANプロトコルに従ってCANバスBC10からフレームデータを受信した後に、受信したフレームデータをテンポラリバッファ1112Cへ保存する。
送信回路1113Bは、CANバスBC10、テンポラリバッファ1112C、及びCANインタフェース部1200に接続している。送信回路1113Bは、送信処理を実行することで、フレームデータを送信する。
ここで、送信回路1113Bが実行する送信処理の一例について説明する。
先ず、送信回路1113Bは、シーケンサ1112が有する送信転送回路1112Bが転送したフレームデータをテンポラリバッファ1112Cから取得する。次に、送信回路1113Bは、取得したフレームデータをCANプロトコルに従って1フレームずつ中継先のECU2011から2013へ送信する。その後、取得した全フレームデータの送信が終了すると、送信回路1113Bは、中継が完了した旨の通知を、CANインタフェース部1200を介して後述する第1送信処理部1400へ出力する。次に、送信回路1113Bは、送信処理の実行を終了する。
尚、送信回路1113Bがテンポラリバッファ1112Cから取得するフレームデータは、第1送信処理部1400が転送した通信データである。また、送信回路1113Bは、取得したフレームデータを、後述する第3送信処理部1300が検索した経路(つまり、チャネルCH0)へ送信する。つまり、送信回路1113Bは、第1送信処理部1400が転送したフレームデータである通信データを第3送信処理部1300が検索した経路路へ送信して中継した後に、第3送信処理部1300が検索した経路への中継が完了した旨の通知を第1の送信処理手段へ出力する。
尚、第2送信処理部1110が実行する第2通信処理は、受信処理の後に受信転送処理を実行する処理と、送信転送処理の後に送信処理を実行する処理とを並列的に実行する処理をいう。
ここで図2に戻り、ゲートウェイ装置1000の構成について引き続き説明を行う。
CANインタフェース部1200は、第2送信処理部1110から1130及び第3送信処理部1300に接続している。CANインタフェース部1200は、第2送信処理部1110から1130とCANインタフェース部1200との間でデータ転送を可能とするバスB10から12と、CANインタフェース部1200と第3送信処理部1300及び第1送信処理部1400との間でデータ転送を可能とするバスB2とのインタフェースを提供する。尚、CANインタフェース部1200、第3送信処理部1300、及び第1送信処理部1400は、バスB2を介して互いにデータ転送が可能なように接続している。
第3送信処理部1300は、ハードウェア処理である第3送信処理を実行することで、車両100の挙動を制御する制御装置2011から2033が送信するフレームデータである通信データを中継するための経路を検索すると共に、検索した経路に基づいて割り当てた第1の記憶部が有する領域に通信データを保存する処理を行う。また、第3送信処理部1300は、通信データの種類を識別する識別情報に基づいて経路を検索すると共に、識別情報に基づいて優先度を表す優先データを通信データに付加する処理を行う。
ここで図5を参照して、第3送信処理部1300のハードウェア構成について説明する。図5は、第3送信処理部1300のハードウェア構成の一例を表す図である。
第3送信処理部1300は、検索エンジン部1310、ルーティングマップ1320、及び第1記憶部1330で構成される。
検索エンジン部1310について説明する前に、ルーティングマップ1320について説明する。
ルーティングマップ1320は、例えば、ROM(Read Only Memory)又はRAM(Random Access Memory)で構成される。ルーティングマップ1320は、検索エンジン部1310に接続している。ルーティングマップ1320は、フレームデータのフォーマット種別IDE、フレームデータのフレーム種別を識別する識別情報RTR、及びフレームデータを送信した装置を識別するIDと、フレームデータの中継先RxCHとを関連付けて保存するテーブルを保存する。
ここで、図6を参照して、ルーティングマップ1320が保存するテーブルについて説明を行う。図6は、ルーティングマップ1320が保存するテーブルの一例を表す図である。
図6に示すテーブルは、Par1フィールド、IDEフィールド、RTRフィールド、IDフィールド、Par2フィールド、FIFOフィールド、TxCHフィールド、Label(ラベル)1フィールド、Label(ラベル)0フィールド、RxCHフィールド、及びMaskInfoフィールドを有する。
Par1フィールドはIDEフィールド、RTRフィールド、及びIDフィールドが保存するデータのパリティを保存する。IDEフィールドはフレームデータのフォーマット種別IDEを保存する。RTRフィールドはフレーム種別を識別する識別情報RTRを保存する。IDフィールドはフレームデータのIDを保存する。
Par2フィールドはFIFOフィールドからMaskInfoフィールドまでのフィールドが保存するデータのパリティを保存する。FIFOフィールドは中継先のFIFOを保存する。TxCHフィールドは中継先チャネルTxCHを保存する。Label1及びLabel0フィールドは中継するデータに付加するデータを保存する。
RxCHは受信した元のチャネル(以下単に、受信元チャネルという)を保存する。MaskInfoは行のソートに用いるインデックスの計算時に用いるマスク値を保存する。本実施例において、Label0及びLabel1は、優先度を表す優先データであるとして説明するが、これに限定される訳ではない。
ここで図5に戻り、第3送信処理部1300の構成について引き続き説明する。
検索エンジン部1310は、図示を省略するが、例えば、RAMで構成されるメモリを有し、CANインタフェース部1200、ルーティングマップ1320、第1記憶部1330、及び第1送信処理部1400に接続している。検索エンジン部1310は、後述する検索処理を実行する。尚、検索エンジン部1310は、第2送信処理部1110から1130がCANインタフェース部1200を介して出力する受信割込信号を受信した場合に、検索処理を実行する。
ここで図7を参照して、検索エンジン部1310が実行する検索処理について説明を行う。図7は、検索エンジン部1310が実行する検索処理の一例を表すフローチャートである。
先ず、検索エンジン部1310は、CANインタフェース部1200を介して、受信割込信号を出力した第2送信処理部1110ないし1130のいずれかが有する第2記憶部の受信用メッセージボックスからフレームデータを取得する(ステップST0001)。次に、検索エンジン部1310は、取得したフレームデータから、フレームデータのフォーマット種別IDE、フレームデータのフレーム種別を表す識別情報RTR、フレームデータを発信した装置のID、中継元チャネルRxCH、及び中継先チャネルTxCHを取得する(ステップST0002)。その後、検索エンジン部1310は、ルーティングマップ1320から、取得したフォーマット種別IDE、フレーム種別を表す識別情報RTR、ID、中継元のチャネルRxCH、及び中継先チャネルTxCHを保存するレコードを検索する(ステップST0003)。
次に、検索エンジン部1310は、Par1フィールド及びPar2フィールドが保存するパリティを用いて検索した行のデータを検査するパリティ検査を実行する(ステップST0004)。尚、検索エンジン部1310が、パリティ検査の実行によってデータの誤りを検出した場合には、誤りを検出した場合に実行するよう定めた所定の処理を実行する。尚、誤りを検出した場合に実行する所定の処理は、第1送信処理部1400へ所定の信号を出力する処理を含む。
本実施例では、パリティを用いてデータの誤りを検出する方法について説明したが、これに限定される訳ではなく、例えば、チェック・サム、CRC(Cyclic Redundancy Check)、ハッシュ値、ハミング符号、疎グラフ符号(Sparse graph code)、又は畳込符号(Convolutional code)を用いてデータの誤りを検出する構成を採用できる。
ステップST0004を実行した後に、検索エンジン部1310は、識別情報RTR等を用いて検索したレコードの優先度を表す優先データLabel1を取得する(ステップST0005)。次に、検索エンジン部1310は、ステップST0001で取得したフレームデータに優先データを付加する(ステップST0006)。その後、検索エンジン部1310は、検索したレコードが保存する中継先チャネルTxCHの送信FIFO(First In First Out)へ、フレームデータを出力する(ステップST0007)。尚、送信FIFOは、後述する第1記憶部1330を構成する記憶領域であって、データの先入れ先出しに用いられるものである。第1記憶部1330は、保存するデータの送信先チャネル(つまり、経路)及び送信するデータの種類毎に、複数の送信FIFOを有する。ステップST0007を実行した後に、検索エンジン部1310は、データを出力したFIFOに関連付けられたメッセージカウンタをインクリメントする(ステップST0008)。その後、検索エンジン部1310は、検索処理の実行を終了する。尚、メッセージカウンタとは、関連付けられたFIFOが保存するデータの数を表すカウンタをいう。
ここで図5に戻り、第3送信処理部1300の構成について引き続き説明を行う。
第1記憶部1330は、例えば、RAM及びレジスタで構成される。第1記憶部1330は、検索エンジン部1310、及び第1送信処理部1400に接続している。
第1記憶部1330を構成するRAMのメモリ領域は、フレームデータを保存する送信FIFO1331、1333、1335、及び1337を構成する。第1記憶部1330を構成するレジスタは、送信FIFO1331、1333、1335、及び1337に保存されたデータ数を表すメッセージカウンタ1332、1334、1336、及び1338を保存する。尚、FIFOについては、既に説明したため、詳細な説明を省略する。
ここで、送信FIFO1331及び1333は、チャネルCH0へ中継されるフレームデータを保存し、送信FIFO1335及び1337は、チャネルCH1へ中継されるデータを保存する。また、送信FIFO1331及び1333は、それぞれ異なる予め定められた種類のフレームデータを保存する。つまり、検索エンジン部1310は、中継するフレームデータのフォーマット種別及びフレーム種別をIDEフィールド及びRTRフィールドに保存するレコードを検索すると共に、検索したレコードのTxCHフィールドが保存する中継先チャネル、及びFIFOフィールドが保存する中継先のFIFOに基づいて定まる送信FIFO1331又は1333へフレームデータを出力する。よって、送信FIFO1335及び1337はそれぞれ異なる種類のフレームデータを保存する。尚、送信FIFO1335及び1337についても同様であるので、説明を省略する。また、図4において、第3送信処理部1300がチャネルCH2へ中継するフレームデータを保存するFIFOと、FIFOが保存するデータ数を表すカウンタとの図示を省略しているために詳細な説明を省略するが、第3送信処理部1300がフレームデータをチャネルCH2へ中継する機能を有することは当然である。
ここで図2に戻り、ゲートウェイ装置1000の構成について、引き続き説明を行う。
第1送信処理部1400は、ソフトウェア処理である第1送信処理を実行することで、第3送信処理部1300が保存した2以上の通信データを、第2記憶部1111に転送する処理を行う。
第1送信処理部1400は、例えば、CPU(Central Processing Unit)等の演算部1410、例えば、フラッシュ・メモリ等の第3記憶部1420、及び割込制御部1430で構成され、演算部1410、第3記憶部1420、及び割込制御部1430は、それぞれバスによってデータの授受が可能なように接続している。第1送信処理部1400は、第3記憶部1420に格納したプログラムを演算部1410が読み、読込んだプログラムに従って演算部1410が演算を行うことで後述する各部の機能を実現する。また、割込制御部1430は、プログラムに従った演算を行う演算部1410に対して、第3送信処理部1300等の他のハードウェアを制御するための演算等を割込んで実行することを要求する割込信号の入出力を制御する。
ここで図8を参照して、第1送信処理部1400が有する機能について説明する。図8は、第1送信処理部1400の一構成例を説明するための機能ブロック図である。
第1送信処理部1400は、第3記憶部1420、割振部1451、及び転送部1461で構成される。尚、図8において、第1送信処理部1400は、FIFO1331が記憶するフレームデータを割振る割振部1451及び転送する転送部1461の1組で構成されるとして図示しているが、これに限定される訳ではない。第1送信処理部1400は、FIFO1331から1337毎に1組の割振部1451から1457及び転送部1461から1467を有する。
第3記憶部1420は、他のフレームデータに比べて優先的に中継されるフレームデータ(以下単に、優先フレームという)を記憶する記憶領域である優先用バッファ1421と、優先的に中継されることがない一般的なフレームデータ(以下単に、一般フレームという)を記憶する記憶領域である一般用バッファ1422とで構成される。優先用バッファ1421及び一般用バッファ1422は、少なくとも2以上のフレームデータを記憶することができる配列で構成される。尚、図8において、第3記憶部1420は、ただ1組の優先用バッファ1421と一般用バッファ1422とを図示しているが、これに限定される訳ではない。第3記憶部1420は、第1記憶部1330を構成するFIFO1331から1337毎に1組の優先用バッファ1421から1427と一般用バッファ1422から1428とを有する。
割振部1451は、第3送信処理部1300を構成する第1記憶部1330のFIFOバッファ1331、並びに第3記憶部1420を構成する優先用バッファ1421及び一般用バッファ1422に接続する。
割振部1451は、後述する割振処理を実行することで、第1記憶部1330のFIFOバッファ1331が記憶するフレームデータを、フレームデータの優先度に基づいて、第3記憶部1420を構成するFIFOバッファ1331に対応する優先用バッファ1421又は一般用バッファ1422へ割り振る。尚、割振部1451は、検索エンジン部1310から、FIFOバッファ1331にフレームデータを格納したことを表す割込み信号を取得した場合、及び所定の時間が経過した場合に割振処理を実行する。
ここで、割振部1451が実行する割込処理の一例について説明する。
先ず、割振部1451は、第1記憶部1330のFIFOバッファ1331が保存するフレームデータ数を表すメッセージカウンタの値を参照する。次に、割振部1451は、メッセージカウンタが値「0」であるか否かを判断する。割振部1451は、メッセージカウンタが値「0」であると判断した場合には、割振処理の実行を終了する。
メッセージカウンタが値「0」でないと判断した場合には、割振部1451は、FIFOバッファ1331から、フレームデータを1つ参照する。次に、割振部1451は、参照したフレームデータの優先データに基づいて一般フレームか優先フレームかを判断する。
優先フレームであると判断した場合には、割振部1451は、第3記憶部1420を構成する優先用バッファ1421を構成する配列の要素の内で、フレームデータを記憶していない要素(以下単に、空き要素という)が存在するか否かを判断する。割振部1451は、空き要素が存在しないと判断した場合には、割振処理の実行を終了する。
空き要素が存在すると判断した場合には、割振部1451は、参照したフレームデータをFIFOバッファ1331から取得した後に、空き要素にフレームデータを割り振って格納する。その後、割振部1451は、メッセージカウンタの値を、値「1」だけ減じる。その後、割振部1451は、上記のメッセージカウンタの値を参照する処理から繰り返す。
一般フレームであると判断した場合には、割振部1451は、第3記憶部1420を構成する一般用バッファ1422を構成する配列の要素に、空き要素が存在するか否かを判断する。割振部1451は、空き要素が存在しないと判断した場合には、割振処理の実行を終了する。
空き要素が存在すると判断した場合には、割振部1451は、参照したフレームデータをFIFOバッファ1331から取得した後に、空き要素にフレームデータを割り振って格納する。その後、割振部1451は、メッセージカウンタの値を、値「1」だけ減じる。その後、割振部1451は、上記のメッセージカウンタの値を参照する処理から繰り返す。
転送部1461は、第3記憶部1420を構成する優先用バッファ1421及び一般用バッファ1422、並びに第2送信処理部1110に接続する。尚、図8において、転送部1461は、FIFO1331が記憶するフレームデータを中継する中継先チャネルへ送信する第2送信処理部1110に接続するとして図示している。また、図示を省略する転送部1461から1467は、FIFO1331から1337が記憶するフレームデータを中継する中継先チャネルへ送信する第2送信処理部1110から1130のいずれかに接続する。
転送部1461は、ソフトウェア処理である転送処理を実行することで、第3送信処理部1300が保存した2以上の通信データを、2以上の通信データを記憶できる第2記憶部1111が有する領域に転送する処理を行う。特に、転送部1461は、第2記憶部1111が記憶している通信データの送信順位よりも遅い順位を定める位置(つまり、配列の要素)へ、通信データを転送して格納する処理を行う。また、転送部1461は、通信データを転送する処理を行うと共に、第3送信処理部1300が通信データに付加した優先データを通信データから削除する。尚、転送部1461は、第3送信処理部1300が検索した経路への中継が完了した旨の通知を第2送信処理部1110ないし1130のいずれかから受けた場合、及び所定の周期を定める所定の期間を経過した場合に、2以上の通信データを転送する第1送信処理を行う。第1送信処理を行う所定の周期は、第2送信処理部1110が2以上の通信データを送信する処理を行うために要する時間よりも長い。本実施例において、第1送信処理を行う所定の周期は1m秒であり、第2送信処理部1110が2以上の通信データを送信する処理を行うために要する時間は約96μ秒から約220μ秒であるとして説明するが、これに限定される訳ではなく、より好適な値は、当業者が実験などにより定めることができる。
この構成によれば、通信データの送信を行わない期間であっても、所定の周期で2以上の通信データを転送するため、効率良く通信データを送信して中継できる。
また、この構成によれば、所定の周期に基づいて前回に転送した2以上の通信データを送信した後に、所定の周期に基づいた今回の転送を行うため、効率良く通信データを転送できる。
転送部1461が実行する転送処理は、優先フレームを転送する優先転送処理と、一般フレームを転送する一般転送処理とで構成される。転送部1461は、優先転送処理と一般転送処理とを並列的又は直列的に実行することで、転送処理を実行する。
ここで図9及び10を参照して、転送部1461が実行する転送処理について説明する。図9は、転送部1461が実行する転送処理の一例を表すフローチャートの一部であり、図10は、転送部1461が実行する転送処理の一例を表すフローチャートの他部である。
先ず、転送部1461は、転送することができるフレームデータの数(以下単に、転送可能数という)を表す変数の値を「0」として初期化する(ステップST0101)。次に、4番目(つまり、最後)に送信される優先フレームを格納するために用いるメッセージボックスがフレームデータを格納しているか否かを判断する(ステップST0102)。尚、n番目に送信される優先フレームを格納するために用いるメッセージボックスを、以下単に、優先送信用メッセージボックス[n-1]という。また、優先送信用メッセージボックス[n-1]がフレームデータを格納していないことを、以下単に、空であるという。転送部1461は、優先送信用メッセージボックス[3]が空であると判断する場合にはステップST0103の処理を実行し、そうでない場合にはステップST0116の処理を実行する。
ステップST0102において、優先送信用メッセージボックス[3]が空であると判断した場合には、転送部1461は、転送可能数を表す変数の値を、値「1」だけインクリメントする(ステップST0103)。
次に、転送部1461は、ステップST0104からST0109の処理を実行する(ステップST0104からST0109)。尚、ステップST0104からST0109の処理は、優先送信用メッセージボックス[2]、優先送信用メッセージボックス[1]、及び優先送信用メッセージボックス[0]について、順に、ステップST0102及びST0103の処理を実行する処理であるため、詳細な説明を省略する。
ステップST0109を実行した後、転送部1461は、優先用バッファ2421にフレームデータが存在するか否かを判断する(ステップST0110)。転送部1461は、優先用バッファ2421にフレームデータが存在すると判断する場合にはステップST0111の処理を実行し、そうでない場合には、優先転送処理の実行を終了する。
ステップST0110において、転送部1461は、優先用バッファ1421にフレームデータが存在すると判断した場合には、優先用バッファ2421からフレームデータを取得する(ステップST0111)。次に、転送部1461は、フレームデータから優先データを削除する(ステップST0112)。本実施例において、転送部1461が優先データをフレームデータから削除するとして説明したが、これに限定される訳ではなく、例えば、フレームデータを転送される第2送信処理部1110から1130のいずれかが優先データをフレームデータから削除する構成を採用できる。この構成によれば、優先データを通信データから削除して転送するため、通信データの内容に影響を与えずに、効率良く通信データを転送できる。
その後、転送部1461は、優先送信用メッセージボックス1111BPを構成する配列の添字(つまり、第2記憶部1111の領域である優先送信用メッセージボックス1111BPがフレームデータを記憶する位置)を表す変数iの値を、要素数「4」から転送可能数を表す変数の値を減算した値とする(ステップST0113)。尚、本実施例において、配列の添字は、値「0」から開始するとして説明する。次に、転送部1461は、優先送信用メッセージボックス[i] にフレームデータを格納する(ステップST0114)。その後、転送部1461は、転送可能数を表す変数の値を値「1」だけデクリメントする(ステップST0115)。
ステップST0102、ST0104、ST0106、及びST0108において優先送信用メッセージボックス[3]から[0]が空でないと判断した場合、及びステップST0115を実行した後に、転送部1461は、転送可能数が値「0」であるか否かを判断する(ステップST0116)。転送部1461は、転送可能数が値「0」であると判断する場合には優先転送処理の実行を終了し、そうでない場合にはステップST0110に戻り、上記処理を繰り返す。尚、転送部1461が実行する一般転送処理については、上記の優先転送処理と同様であるので、説明を省略する。この構成によれば、通信データの送信が完了した旨の通知を受けて2以上の通信データを転送するため、効率良く通信データを送信して中継できる。
尚、第3送信処理部1300が行う処理は、ハードウェア処理であり、第1送信処理部1400が行う処理は、ソフトウェア処理であり、第2送信処理部1110から1130が行う処理は、ハードウェア処理である。この構成によれば、ハードウェア処理により中継経路を検索した通信データを、ソフトウェア処理によって効率良く転送できるだけでなく、ソフトウェア処理により転送された通信データを、ハードウェア処理によって中継経路へ効率良く送信して中継できる。
次に、図11を参照して、本実施例におけるゲートウェイ装置1000が備える優先送信用メッセージボックス1111BP及び一般送信用メッセージボックス1111BNの数について説明する。図11は、優先送信用メッセージボックス1111BP及び一般送信用メッセージボックス1111BNの数について説明するための図である。
図11(a)は、優先フレームを送信する装置を識別するIDと、IDで識別される装置が優先フレームを送信する周期とを関連付けた表である。
図11(a)に示すように、「010」のIDで識別される装置は、「12」ミリ秒周期で優先フレームを送信する。また、「121」のIDで識別される装置は、「18」ミリ秒周期で優先フレームを送信する。更に、「256」のIDで識別される装置は、「36」ミリ秒周期で優先フレームを送信する。
つまり、「36」ミリ秒周期で、「010」、「121」、及び「256」のIDで識別される3つの装置が同時にフレームデータを送信する。よって、3つの装置が同時に送信したフレームデータを中継する本発明に係るゲートウェイ装置1000は、少なくとも3つの優先送信用メッセージボックスを備える必要がある。
尚、厳密には、「312」のIDで識別される装置が送信するフレームデータの送信周期「64」ミリ秒をも考慮すると、「576」ミリ秒周期で、4つの装置が同時にフレームデータを送信するため、本発明に係るゲートウェイ装置1000は、少なくとも4つの優先送信用メッセージボックスを備える必要があるともいえる。
しかし実際には、ゲートウェイ装置1000が備える必要がある優先送信用メッセージボックスの数は、複数の装置が同時にフレームデータを送信する周期と、第2送信処理部1110から1130がフレームデータを送信するために要する時間と、フレームデータの中継の遅延が車両100の制御に及ぼす影響とを考慮して、4つの優先送信用メッセージボックスを備える必要がある否かを当業者が定めることができる。尚、優先送信用メッセージボックスの数は、当業者に期待しうる程度を超える試行錯誤や複雑高度な実験等をすることなく、当業者によって決定される。
図11(b)は、一般フレームを送信する装置を識別するIDと、IDで識別される装置が一般フレームを送信する周期とを関連付けた表である。
図11(b)に示すように、「64」ミリ秒周期で、「224」、「263」、及び「312」のIDで識別される3つの装置が同時にフレームデータを送信する。よって、本発明に係るゲートウェイ装置1000は、少なくとも3つの一般送信用メッセージボックスを備える必要がある。尚、実際にゲートウェイ装置1000が備える必要がある一般送信用メッセージボックスの数については、優先送信用メッセージボックスと同様に、当業者によって決定される。
本実施例においては、第3送信処理部1300が第3の送信処理手段に相当し、第1送信処理部1400が第1の送信処理手段に相当し、第2送信処理部1110から1130が第2の送信処理手段に相当する。
第2の実施例においては、第3送信処理部が付加した優先データに基づいて、第2記憶部が有する領域へ優先して通信データを転送する転送処理の一例について説明する。
尚、実施例2で説明するゲートウェイ装置2000は、第2送信処理部2110から2130、CANインタフェース部2200、第3送信処理部2300、及び第1送信処理部2400で構成される。第2送信処理部2110から2130、CANインタフェース部2200、第3送信処理部2300、及び第1送信処理部2400は、実施例1で説明した第2送信処理部1110から1130、CANインタフェース部1200、第3送信処理部1300、及び第1送信処理部1400とそれぞれ同様の接続、構成、及び機能を有するため、以下主に、相違点ついて説明を行う。
第2送信処理部2110は、実施例1と同様に、第2記憶部2111、シーケンサ2112、及びプロトコルエンジン2113を備える。
ここで図12を参照して、第2記憶部2111について説明する。図12は、実施例2における第2記憶部2111の一構成例を表す図である。
第2記憶部2111は、実施例1と同様に、メッセージボックス2111ABCを有する。メッセージボックス2111ABCは、実施例1と同様に、受信用メッセージボックス2111A、送信用メッセージボックス2111B、その他のメッセージボックス2111Cで構成される。しかし、送信用メッセージボックス2111Bは、実施例1と異なり、優先送信用メッセージボックス1111BPと一般送信用メッセージボックス1111BNとに相当する領域を有さない。送信用メッセージボックス2111Bは、添字が小さい要素から順番に送信されるフレームデータを記憶する計8つの要素からなる配列で構成される。
次に、実施例2におけるゲートウェイ装置2000の構成について引き続き説明する。
第1送信処理部2400は、実施例1と同様に、第3記憶部2420、割振部2451から2457、及び転送部2461から2467で構成される。
第3記憶部2420は、実施例1と同様に、優先用バッファ2421から2427及び一般用バッファ2422から2428で構成される。
転送部2461から転送部2467は、ほぼ同様の構成、及び機能を有するので、転送部2461についてのみ説明する。転送部2461は、実施例1と同様に転送処理を実行する。しかし、実施例2で実行される転送処理は、実施例1と異なり、優先転送処理及び一般転送処理を実行する処理ではない。実施例2で実行される転送処理は、第3送信処理部2300が付加した優先データに基づいて割振った優先フレームを、第2記憶部2111が有する領域へ優先して転送する処理である。
ここで図13及び14を参照して、転送部2461が実行する転送処理について説明する。図13は、転送部2461が実行する転送処理の一例を表すフローチャートの一部であり、図14は、転送部2461が実行する転送処理の一例を表すフローチャートの他部である。
先ず、転送部2461は、転送可能数を記憶する変数の値を、値「0」として初期化する(ステップST0201)。次に、8番目(つまり、最後)に送信されるフレームデータを格納するために用いるメッセージボックスがフレームデータを格納しているか否かを判断する(ステップST0202)。転送部2461は、送信用メッセージボックス[7]が空であると判断する場合にはステップST0203の処理を実行し、そうでない場合にはステップST0224の処理を実行する。
ステップST0202において、転送部2461は、送信用メッセージボックス[7]が空であると判断した場合には、転送可能数を表す変数の値を、値「1」だけインクリメントする(ステップST0203)。次に、転送部2461は、ステップST0204からST0217の処理を実行する(ステップST0204からST0217)。尚、ステップST0204からST0217の処理は、送信用メッセージボックス[6]から送信用メッセージボックス[0]について、順に、ステップST0202及びST0203の処理を実行する処理であるため、詳細な説明を省略する。
ステップST0217を実行した後、転送部2461は、優先用バッファ2421にフレームデータが存在するか否かを判断する(ステップST0218)。転送部2461は、優先用バッファ2421にフレームデータが存在すると判断する場合にはステップST0219の処理を実行し、そうでない場合には、ステップST0225の処理を実行する。
ステップST0218において、転送部2461は、優先用バッファ2421にフレームデータが存在すると判断した場合には、優先用バッファ2421からフレームデータを取得する(ステップST0219)。次に、転送部2461は、フレームデータから優先データを削除する(ステップST0220)。その後、転送部2461は、送信用メッセージボックス2111Bを構成する配列の添字(つまり、第2記憶部2111の領域である送信用メッセージボックス2111Bがフレームデータを記憶する位置)を表す変数iの値を、配列の要素数「8」から転送可能数を表す変数の値を減算した値とする(ステップST0221)。次に、転送部2461は、送信用メッセージボックス[i] にフレームデータを格納する(ステップST0222)。その後、転送部2461は、転送可能数を表す変数の値を値「1」だけデクリメントする(ステップST0223)。
ステップST0202、ST0204、ST0206、ST0208、ST0210、ST0212、ST0214、及びST0216において送信用メッセージボックス[7]から[0]が空でないと判断した場合、及びステップST0223を実行した後に、転送部2461は、転送可能数が値「0」であるか否かを判断する(ステップST0224)。転送部2461は、転送可能数が値「0」であると判断する場合には転送処理の実行を終了し、そうでない場合にはステップST0218に戻り、上記処理の実行を繰り返す。
ステップST0218において、優先用バッファ2421にフレームデータが存在しないと判断した場合には、転送部2461は、一般用バッファ2422にフレームデータが存在するか否かを判断する(ステップST0225)。転送部2461は、一般用バッファ2422にフレームデータが存在すると判断する場合にはステップST0226の処理を実行し、そうでない場合には転送処理の実行を終了する。
ステップST0225において、転送部2461は、一般用バッファ2422にフレームデータが存在すると判断した場合には、一般用バッファ2422からフレームデータを取得する(ステップST0226)。次に、転送部2461は、フレームデータから優先データを削除する(ステップST0227)。
その後、転送部2461は、配列の添字を表す変数iの値を、配列の要素数「8」から転送可能数を表す変数の値を減算した値とする(ステップST0228)。
次に、転送部2461は、送信用メッセージボックス[i] にフレームデータを格納する(ステップST0229)。その後、転送部2461は、転送可能数を表す変数の値を値「1」だけデクリメントする(ステップST0230)。
ステップST0230を実行した後に、転送部2461は、転送可能数が値「0」であるか否かを判断する(ステップST0231)。転送部2461は、転送可能数が値「0」であると判断する場合には転送処理の実行を終了し、そうでない場合にはステップST0225に戻り、上記処理を繰り返す。
この構成によれば、通信データに優先して中継する程度に基づいて通信データを他の通信データに優先して転送するため、効率良く通信データを転送できる。
本実施例においては、第3送信処理部2300が第3の送信処理手段に相当し、第1送信処理部2400が第1の送信処理手段に相当し、第2送信処理部2110から2130が第2の送信処理手段に相当する。
ゲートウェイ装置1000及び2000は、演算部がROM及びRAMの少なくともひとつに格納されたプログラムを実行することによって実現される。また、このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。
本発明のゲートウェイ方法は、ゲートウェイ装置1000又は2000を用いて実施することができる。
また、ゲートウェイ装置1000又は2000がソフトウェア処理を実行することで実現する機能の一部又は全部は、ハードウェア回路を用いて実現することができる。逆に、ゲートウェイ装置1000又は2000がハードウェア回路を用いて実現する機能の一部又は全部は、ソフトウェア処理を実行することで実現することができる。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
本発明のゲートウェイ装置の一実施形態を示す構成図である。 ゲートウェイ装置のハードウェア構成の一例を表す図である。 第2送信処理部のハードウェア構成の一例を表す図である。 メッセージボックスの一構成例を表す図である。 第3送信処理部のハードウェア構成の一例を表す図である。 ルーティングマップが保存するテーブルの一例を表す図である。 検索エンジン部が実行する検索処理の一例を表すフローチャートである。 第1送信処理部の一構成例を説明するための機能ブロック図である。 転送部が実行する転送処理の一例を表すフローチャートの一部である。 転送部が実行する転送処理の一例を表すフローチャートの他部である。 優先送信用メッセージボックス及び一般送信用メッセージボックスの数について説明するための図である。 実施例2における第2記憶部の一構成例を表す図である。 実施例2において転送部が実行する転送処理の一例を表すフローチャートの一部である。 実施例2において転送部が実行する転送処理の一例を表すフローチャートの他部である。 実施例2において転送部が実行する転送処理の一例を表すフローチャートの他部である。
符号の説明
100…車両 1000…ゲートウェイ装置
1110,1120,1130…第2送信処理部(CANコントローラ)(第2の送信処理手段)
1111…第2記憶部 1111A…受信メッセージボックス
1111ABC…メッセージボックス 1111B…送信用メッセージボックス
1111BN…一般送信用メッセージボックス
1111BP…優先送信用メッセージボックス
1111C…その他のメッセージボックス
1112…シーケンサ 1112A…受信転送回路
1112B…送信転送回路 1112C…テンポラリバッファ
1113…プロトコルエンジン 1113A…受信回路
1113B…送信回路 1200…CANインタフェース部
1300…第3送信処理部(ハードマクロ)(第3の送信処理手段)
1310…検索エンジン部 1320…ルーティングマップ
1330…第1記憶部
1331,1333,1335,1337…送信FIFO
1332,1334,1336,1338…メッセージカウンタ
1400…第1送信処理部(ソフトウェア処理部)(第1の送信処理手段)
1410…演算部 1420…第3記憶部
1421…優先用バッファ 1422…一般用バッファ
1430…割り込み制御部 1451…割振部
1461…転送部
2011〜2013,2021〜2023,2031〜2033…ECU
2111…第2記憶部 2111A…受信用メッセージボックス
2111ABC…メッセージボックス 2111B…送信用メッセージボックス
2111C…その他のメッセージボックス
B2,10〜12…バス BC10〜30…CANバス
CH0…チャンネル0 CH1…チャンネル1
CH2…チャンネル2

Claims (13)

  1. 第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ装置であって、
    前記第1の通信網から受信した通信データを記憶する第1の記憶部と、
    前記第2の通信網に送信処理を行う通信データを記憶する第2の記憶部と、
    前記第1の記憶部に記憶された通信データを優先度に基づいて前記第2の記憶部に移す第1の送信処理手段と、
    前記第2の記憶部に記憶された通信データを前記第2の網に送信する第2の送信処理手段と、を備え、
    前記第2の記憶部は、複数の通信データを記憶可能であり、
    前記第2の送信処理手段は、ハードウェアで構成され、前記第2の記憶部に記憶された全ての通信データの送信が完了した場合に、前記第1の通信処理手段に対して送信が完了した旨の送信完了通知を行い、
    前記第1の送信処理手段は、前記第2の送信処理手段から前記送信完了通知を受けると、前記第1の記憶部に記憶された通信データの優先度に基づいて、前記第1の記憶部に記憶された通信データを前記第2の記憶部に移す処理を行う、ことを特徴とするゲートウェイ装置。
  2. 第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ装置であって、
    前記第1の通信網から受信した通信データを記憶する第1の記憶部と、
    前記第2の通信網に送信処理を行う通信データを記憶する第2の記憶部と、
    前記第1の記憶部に記憶された通信データを優先度に基づいて前記第2の記憶部に移す第1の送信処理手段と、
    前記第2の記憶部に記憶された通信データを前記第2の網に送信する第2の送信処理手段と、を備え、
    前記第2の記憶部は、複数の通信データを記憶可能であり、
    前記第2の送信処理手段は、前記第2の記憶部に記憶された全ての通信データの送信が完了した場合に、前記第1の通信処理手段に対して送信が完了した旨の送信完了通知を行い、
    前記第1の送信処理手段は、前記第2の送信処理手段から前記送信完了通知を受けると、前記第1の記憶部に記憶された通信データの優先度に基づいて、前記第1の記憶部に記憶された通信データを前記第2の記憶部に移す処理を行う、ことを特徴とするゲートウェイ装置。
  3. 第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ装置であって、
    前記第1の通信網から受信した通信データを記憶する第1の記憶部と、
    前記第2の通信網に送信処理を行う通信データを記憶する第2の記憶部と、
    前記第1の記憶部に記憶された通信データを優先度に基づいて前記第2の記憶部に移す第1の送信処理手段と、
    前記第2の記憶部に記憶された通信データを前記第2の網に送信する第2の送信処理手段と、を備え、
    前記第2の記憶部は、複数の通信データを記憶可能であり、
    前記第2の送信処理手段は、前記第2の記憶部に記憶された通信データを1つずつ送信し、送信が完了した場合に、前記第1の通信処理手段に対して送信が完了した旨の送信完了通知を行い、
    前記第1の送信処理手段は、前記第2の送信処理手段から前記送信完了通知を受けると、前記第1の記憶部に記憶された通信データの優先度に基づいて、前記第1の記憶部に記憶された通信データを前記第2の記憶部に移す処理を行う、ことを特徴とするゲートウェイ装置。
  4. 前記第1の送信処理手段は、所定の周期で前記2以上の通信データを移す処理を行うことを特徴とする請求項1から3のいずれかに記載のゲートウェイ装置。
  5. 前記所定の周期は、前記第2の送信処理手段が前記2以上の通信データを送信する処理を行うために要する時間よりも長いことを特徴とする請求項4に記載のゲートウェイ装置。
  6. 前記第2の記憶部は、記憶する前記通信データを前記第2の送信処理手段が他の前記通信データに優先して送信する程度を表す優先度に基づいて割り当てた2以上の領域で構成され、
    前記第2の送信処理手段は、一の前記優先度に基づいて割り当てた領域が記憶する通信データを、他の前記領域が記憶する通信データに優先して送信する処理を行うことを特徴とする請求項1から5のいずれかに記載のゲートウェイ装置。
  7. 前記第2の送信処理手段は、前記第2の記憶部が記憶する位置で定まる順位に基づいて前記通信データを前記第2の網へ送信する処理を行い、
    前記第1の送信処理手段は、前記第2の記憶部が記憶している通信データの前記順位よりも遅い順位を定める位置へ、前記通信データを転送する処理を行うことを特徴とする請求項1から6のいずれかに記載のゲートウェイ装置。
  8. 前記通信データの種類を識別する識別情報に基づいて検索した前記第1の記憶部へ前記通信データを送信すると共に、前記識別情報に基づいて他の前記通信データに優先して送信する程度を表す優先データを前記通信データに付加する処理を行う第3の送信処理手段を更に備え、
    前記第1の送信処理手段は、前記第3の送信処理手段が付加した優先データに基づいて、前記第2の記憶部が有する領域へ優先して前記通信データを転送する処理を行うことを特徴とする請求項6に記載のゲートウェイ装置。
  9. 前記第1の送信処理手段は、前記通信データを移す処理を行うと共に、前記第3の送信処理手段が前記通信データに付加した優先データを前記通信データから削除することを特徴とする請求項8に記載のゲートウェイ装置。
  10. 前記第3の送信処理手段が行う処理は、ハードウェア処理であり、
    前記第1の送信処理手段が行う処理は、ソフトウェア処理であることを特徴とする請求項1から9のいずれかに記載のゲートウェイ装置。
  11. 第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ方法であって、
    前記第1の通信網から受信した通信データを記憶する第1の記憶部から、前記第2の通信網に送信処理を行う通信データを記憶する第2の記憶部へ、前記通信データを優先度に基づいて移す第1の送信処理ステップと、
    前記第2の記憶部に記憶された通信データを前記第2の網に送信する第2の送信ステップと、を備え、
    前記第2の記憶部は、複数の通信データを記憶可能であり、
    前記第2の送信処理ステップは、ハードウェアを用いて実行され、前記第2の記憶部に記憶された全ての通信データの送信が完了した場合に、前記第1の通信処理ステップに対して送信が完了した旨の送信完了通知を行い、
    前記第1の送信処理ステップでは、前記第2の送信処理ステップから前記送信完了通知を受けると、前記第1の記憶部に記憶された通信データの優先度に基づいて、前記第1の記憶部に記憶された通信データを前記第2の記憶部に移す処理を行う、ことを特徴とするゲートウェイ方法。
  12. 第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ方法であって、
    前記第1の通信網から受信した通信データを記憶する第1の記憶部から、前記第2の通信網に送信処理を行う通信データを記憶する第2の記憶部へ、前記通信データを優先度に基づいて移す第1の送信処理ステップと、
    前記第2の記憶部に記憶された通信データを前記第2の網に送信する第2の送信ステップと、を備え、
    前記第2の記憶部は、複数の通信データを記憶可能であり、
    前記第2の送信処理ステップは、前記第2の記憶部に記憶された全ての通信データの送信が完了した場合に、前記第1の通信処理ステップに対して送信が完了した旨の送信完了通知を行い、
    前記第1の送信処理ステップでは、前記第2の送信処理ステップから前記送信完了通知を受けると、前記第1の記憶部に記憶された通信データの優先度に基づいて、前記第1の記憶部に記憶された通信データを前記第2の記憶部に移す処理を行う、ことを特徴とするゲートウェイ方法。
  13. 第1の通信網から送られてきた通信データを第2の通信バスに中継するゲートウェイ方法であって、
    前記第1の通信網から受信した通信データを記憶する第1の記憶部から、前記第2の通信網に送信処理を行う通信データを記憶する第2の記憶部へ、前記通信データを優先度に基づいて移す第1の送信処理ステップと、
    前記第2の記憶部に記憶された通信データを前記第2の網に送信する第2の送信ステップと、を備え、
    前記第2の記憶部は、複数の通信データを記憶可能であり、
    前記第2の送信処理ステップは、前記第2の記憶部に記憶された通信データを1つずつ送信し、送信が完了した場合に、前記第1の通信処理ステップに対して送信が完了した旨の送信完了通知を行い、
    前記第1の送信処理ステップでは、前記第2の送信処理ステップから前記送信完了通知を受けると、前記第1の記憶部に記憶された通信データの優先度に基づいて、前記第1の記憶部に記憶された通信データを前記第2の記憶部に移す処理を行う、ことを特徴とするゲートウェイ方法。
JP2008271352A 2008-10-21 2008-10-21 ゲートウェイ装置及びゲートウェイ方法 Withdrawn JP2010103648A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008271352A JP2010103648A (ja) 2008-10-21 2008-10-21 ゲートウェイ装置及びゲートウェイ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008271352A JP2010103648A (ja) 2008-10-21 2008-10-21 ゲートウェイ装置及びゲートウェイ方法

Publications (1)

Publication Number Publication Date
JP2010103648A true JP2010103648A (ja) 2010-05-06

Family

ID=42293906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008271352A Withdrawn JP2010103648A (ja) 2008-10-21 2008-10-21 ゲートウェイ装置及びゲートウェイ方法

Country Status (1)

Country Link
JP (1) JP2010103648A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013099667A1 (ja) * 2011-12-27 2013-07-04 株式会社オートネットワーク技術研究所 中継装置、通信ハーネス及び通信システム
US8665891B2 (en) 2011-06-15 2014-03-04 Denso Corporation Gateway apparatus
JP2016509442A (ja) * 2013-02-21 2016-03-24 ルノー エス.ア.エス. 2つのcanバス間でフレームを送信するための方法および装置
JP2016054385A (ja) * 2014-09-03 2016-04-14 株式会社オートネットワーク技術研究所 割当装置、割当方法、コンピュータプログラム、及び中継装置の製造方法

Cited By (5)

* 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
WO2013099667A1 (ja) * 2011-12-27 2013-07-04 株式会社オートネットワーク技術研究所 中継装置、通信ハーネス及び通信システム
JP2013135429A (ja) * 2011-12-27 2013-07-08 Auto Network Gijutsu Kenkyusho:Kk 中継装置、通信ハーネス及び通信システム
JP2016509442A (ja) * 2013-02-21 2016-03-24 ルノー エス.ア.エス. 2つのcanバス間でフレームを送信するための方法および装置
JP2016054385A (ja) * 2014-09-03 2016-04-14 株式会社オートネットワーク技術研究所 割当装置、割当方法、コンピュータプログラム、及び中継装置の製造方法

Similar Documents

Publication Publication Date Title
JP5255579B2 (ja) 車内データ中継装置、車両制御システム
JP4376862B2 (ja) 通信メッセージ変換装置及び通信メッセージ変換方法
US7940666B2 (en) Communication node architecture in a globally asynchronous network on chip system
US7826479B2 (en) Communication message conversion device, communication method and communication system
CN108476162B (zh) 网络集线器、转发方法及车载网络系统
JP2006333438A (ja) ゲートウェイ装置及びルーティング方法
CN108476161B (zh) 电子控制单元、通信方法以及车载网络系统
US8041747B2 (en) Data search device and gateway device in communication apparatus
JP2008113096A (ja) ゲートウェイ装置及びデータ管理方法
JP2010103648A (ja) ゲートウェイ装置及びゲートウェイ方法
WO2021017667A1 (zh) 业务数据的传输方法和装置
US10599347B2 (en) Information processing system, information processing apparatus, and method for controlling information processing system
JP2017527219A (ja) ネットワークオンチップトポロジー内のトンネリング
CN112968821B (zh) 电子控制单元、通信方法以及车载网络系统
JP2009253464A (ja) ゲートウェイ装置及びゲートウェイ方法
CN108768778A (zh) 一种网络时延计算方法、装置、设备及存储介质
US20120005399A1 (en) Data transmission system and method of reading data
JP5728043B2 (ja) ゲートウェイ装置
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
JP4687925B2 (ja) 優先調停システム及び優先調停方法
KR101612825B1 (ko) Can 컨트롤러, 차량 내부 통신을 위한 게이트웨이 및 그 제어 방법
CN112787901B (zh) 网络集线器、转发方法及车载网络系统
US8073999B2 (en) Data input-output control apparatus
US11956188B1 (en) Security aware routing in an in-vehicle communication network
CN114338501B (zh) 对服务链网络调整网络拓扑的方法和装置、介质、控制器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110920

A072 Dismissal of procedure

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20130122

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130205